AlibabaCloudでSambaを使った安価なファイルサーバーを構築

2023/03/03に公開

目次

  1. AlibabaCloud で安価なファイルサーバーを構築
  2. 利用するツール一覧
  3. FUSEとは
  4. 特徴を把握
  5. 構築手順
  6. 最後に

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