さくらの BASE Storage を使ってみる

もう、あちらこちらに情報は出ている () けれど、さくらの 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 を設定しておくのがよさそう。

本サービス開始時に価格がそれなりで出れば (さくらなら大丈夫でしょう、きっと) 、バックアップ用に使う予定。