AlibabaCloudでSambaを使った安価なファイルサーバーを構築
目次
- AlibabaCloud で安価なファイルサーバーを構築
- 利用するツール一覧
- FUSEとは
- 特徴を把握
- 構築手順
- 最後に
AlibabaCloud で安価なファイルサーバーを構築
今回はAlibabaCloud上にECS仮想サーバーを使って、OSSという安価なオブジェクトストレージをマウントして安価なファイルサーバーを構築してみます。
利用するツール一覧
今回は以下のツールを利用します。
- ECS:AlibabaCloudの仮想サーバー OSはLinux(Windowsライセンス費用節約)
- OSS:AlibabaCloudのオブジェクトストレージ
- ossfs:AlibabaCloudが開発したFUSEベースのオブジェクトストレージマウントツール
- samba:オープンソースのファイルサーバー
FUSEとは
FUSE(Filesystem in Userspace)とはりユーザー空間にあるファイルシステムです。
通常Linuxのファイルシステムはカーネル空間にあります。つまりファイルシステムに関するソースコードは全部Linuxのカーネルにあります。FUSEの特徴はファイルシステムのロジック部分はユーザー空間にあります。
特徴:
- 修正の自由度が高い
- パフォーマンスが悪い
特徴を把握
まずオブジェクトストレージのOSSはコンテンツ保存、ビッグデータなどの利用シーンに適していますが、頻繁に更新するデータは向いていないです。オブジェクトストレージは単純なKey Value構造で、編集はできず、更新したいなら基本的に全部上書きになります。
FUSEはオブジェクトストレージを仮想サーバー上にマウントしているだけで、頻繁にアクセスするファイルをサーバー側にキャッシュするといた機能がないです。
今回は検証用ですが、本番用のファイルサーバーとして利用する場合、そのような特徴とレイテンシーを理解する上で使う必要があります。
構築手順
構築手順はこちらです。
1.まず仮想サーバーECSを起動
ECS管理コンソールでTシリーズのバーストインスタンスを起動します。
OSはLinuxのUbuntuもしくはAlibabaCloud Linux 3にします。
2.OSSのバケットを作成
OSS管理コンソールでバケットを作成します。
3.サーバーにossfsのインストール
wget https://gosspublic.alicdn.com/ossfs/ossfs_1.80.7_ubuntu20.04_amd64.deb
sudo apt-get update
sudo apt-get install gdebi-core
sudo gdebi ossfs_1.80.6_ubuntu16.04_amd64.deb
4.ECSにOSSへのアクセス権限付与
ECSサーバーのRAMロールにOSSのアクセス権限を付与します。
今回は検証用でFullAccess権限を付与します。
ロールの作成
ロールの設定
5.ossfsでバケットのマウント
ポイントとしてはメタデータから認証情報を取得します。
ossfs#fuse-samba-bucket /mnt/sharefuse fuse _netdev,allow_other,-oram_role=http://100.100.100.200/latest/meta-data/ram/security-credentials/rai-ecs-oss-full 0 0
これだけ実施すると今度サーバーを再起動したら手動でマウントし直す必要があります。
fstabにマウント情報を登録しておけば、毎回再起動するときに、手動でマウントする必要がないです。具体的なfstabの書き方は割愛します。
6.Sambaのインストールと設定
インストール
sudo apt install samba
設定
sudo vi /etc/samba/smb.conf
設定ファイルの最後に追加
[sharefuse]
comment = share folder
browseable = yes
path = /mnt/sharefuse/
create mask = 0755
directory mask = 0755
public = yes
available = yes
writable = yes
sambaを再起動
sudo service smbd restart
7.動作確認
セキュリティグループの以下のポートを自宅のIPアドレスに開けます。
- tcp:445
- tcp:139
- udp:137
- udp:138
WindowsPCのエクスプローラからシェアフォルダにアクセスできることを確認します。
最後に
簡単な確認ならこのような形でセキュリティグループを開ける形で確認します。SMBはバージョン2以降暗号化はしていますが、インターネット前提で設計したものではないため、本格的な利用の場合は専用線、Site-To-Site VPNなどのセキュリティ環境でアクセスする必要があります。
また本格利用の場合、認証情報としてSambaとActive Directryの連携が必要になってくる場合があります。
ossfsはFUSEベースのシンプルなツールで、よくアクセスするファイルをECSのディスクにキャッシュする機能がないです。
一方でキャッシュ機能があるCloud Storage Gateway エージェント版というのがあります。こちらを使えば、OSSをECSにマウントするだけでなく、よくアクセスするファイルをECS側にキャッシュして、ローカルのPOSIXで高速にアクセスできます。
Cloud Storage Gateway エージェント版はまだパブリックプレビューですが、今後GAになったらまた検証して、ブログを書く予定です。
Discussion