今回はそれを使ってみます。
インストール
s3fsはFUSEというファイルシステムを構築するためのフレームワークをベースとして作られているため、動作にはFUSEのインストールが必要です。
最初にインストールやベースとなる挙動に必要なものをyumからインストールします。
# yum -y install gcc # yum -y install gcc-c++ # yum -y install libstdc++-devel # yum -y install pkgconfig # yum -y install make # yum -y install curl-devel # yum -y install libxml2-devel
次にFUSEのインストールです。FUSEはyumからも取得できますが、リポジトリにはs3fsが対応しているfuseのバージョンよりも古いものしかないためここからソースを取得してインストールします。
$ wget http://downloads.sourceforge.net/project/fuse/fuse-2.X/2.8.5/fuse-2.8.5.tar.gz?r=&ts=1310717181&use_mirror=jaist -O fuse-2.8.5.tar.gz $ tar xvzf fuse-2.8.5.tar.gz $ cd fuse-2.8.5/ $ ./configure prefix=/usr $ make # make install
次にpkgconfigパスを環境変数に設定します。
PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig/ #configureにprefixをつけなかった場合は/usr/local/lib/pkgconfigです。
fuseをモジュールとしてカーネルにロードします。
# ldconfig # modprobe fuse
続いてs3fsをインストールします。
ここからs3fsをダウンロードしてインストールします。
$ wget http://s3fs.googlecode.com/files/s3fs-1.40.tar.gz $ cd s3fs-1.40 $ ./configure prefix=/usr $ make # make installこれでインストールは完了です。
設定
マウントするs3のアカウント情報をs3fsに教えるために、/etc/passwd-s3fsにキー情報を記載します。
# echo アクセスキー:シークレットキー > /etc/passwd-s3fs # chmod 640 /etc/passwd-s3fs複数の認証を設定する場合は
# echo バケット名:アクセスキー:シークレットキー > /etc/passwd-s3fs # chmod 640 /etc/passwd-s3fsとします。
それではマウントしてみます。
# mkdir /mnt/s3 # s3fs myfirst-bucket /mnt/s3
これでmyfirst-bucketというバケットが/mnt/s3というディレクトリとしてマウントすることができました。
# df -k Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/sda1 10321208 3364700 6432220 35% / none 314952 0 314952 0% /dev/shm fuse 274877906944 0 274877906944 0% /mnt/s3
おまけ
ついでに起動時の自動マウントの設定を行います。
/etc/fstabの最終行に以下の設定を追記し、自動でボリュームをマウントするようにします。
# vi /etc/fstab ...... s3fs#myfirst-bucket /mnt/s3 fuse allow_other,default_acl=public-read 0 0
しかしこれだけでは、fuseが有効になっていないため、自動マウントに失敗します。
fstabの設定が実行される前にfuseを有効にするため、
rc.sysinit内のfstabの記述より前にfuseをカーネルにロードして有効にします。
# vi /etc/rc.d/rc.sysinit ..... . /etc/init.d/functions modprobe fuse ←----------------追記 .... fstabの記述
これで、起動時に自動的にマウントされるようになります。
以上、現場からでした。