もう、あちらこちらに情報は出ている (例) けれど、さくらの BASE Storage (βサービス提供中) をファイルシステムとして使う方法の自分用メモ書き。 s3fs とそのベースとなる fuse 関連を導入するのだけれど、これらを扱うのは初めて。
- fuse に関しては CentOS 6 の fuse が古くて s3fs の requirement を満たさないのでこちらを先にダウンロードしてコンパイルする
- s3fs の最新版は GitHub の方なので、そちらからダウンロードしてコンパイルする
- 2014年 2月 10日時点で最新安定版は s3fs 1.7.6 と fuse 2.9.3
- コンパイルの前に libcurl-devel や libxml2-devel、openssl-devel パッケージをインストールしておく
- fuse、fuse-devel、fuse-lib パッケージが導入されているときは削除しておく
コンパイルは特にオプションをつけずに /usr/local の下へインストール。
以下の内容で /etc/ld.so.conf.d/usr-local.conf を作成。
/usr/local/lib
以下を実行すればサーバーのリブートをせずに fuse モジュールが読み込まれる。読み込み状況は lsmod で確認できる。
ldconfig modprobe fuse
s3fs のビルドの時は fuse 関連ファイルを見つけるために以下の環境変数を設定しておく。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
認証情報は /etc/passwd-s3fs に以下の形式で記述。
ユーザ名:トークン
/etc/fstab の登録例は以下の通り。 これで手動マウント時も面倒なオプションをつけずに済む。
s3fs#namespace /mnt/s3 fuse allow_other,umask=077,uid=300,gid=100,url=https://b.storage.sakura.ad.jp/ 0 0
http でも使えるけど、通信を暗号化したければ https を使用する。 コントロールパネルには URL としてネームスペースつきのものが表示されているけれど、(恐らく) 証明書関連でエラーとなるので上の URL を使用した。
umask や uid、gid はお好みで。 ちょっと使った感じでは細かくディレクトリのパーミッション等を設定できなさそうなので (多分そもそもがそういう仕組みじゃない)、使用ユーザーの uid を設定しておくのがよさそう。
本サービス開始時に価格がそれなりで出れば (さくらなら大丈夫でしょう、きっと) 、バックアップ用に使う予定。