2013年6月23日日曜日

s3fsのインストール方法

P.S 20160317
fuse のインストール先が sourceforge -> Github に移行していたので修正しました

■環境
CentOS release 6.3 (Final)
fuse 2.8.5 -> 2.9.5
s3fs 1.61

■fuseインストール
yum install -y gcc libstdc++-devel gcc-c++ curl-devel libxml2-devel openssl-devel mailcap make
cd /var/tmp

wget http://sourceforge.net/projects/fuse/files/fuse-2.X/2.8.5/fuse-2.8.5.tar.gz/download
wget https://github.com/libfuse/libfuse/releases/download/fuse_2_9_5/fuse-2.9.5.tar.gz
tar zxvf fuse-2.9.5.tar.gz
cd fuse-2.9.5
./configure --prefix=/usr
make
make install
ldconfig
modprobe fuse
何もエラーが表示されなければ完了です
念のためfuse.pcがインストールされていることを確認します
find / -name "fuse.pc"

■s3fsインストール
cd /var/tmp/
wget https://s3fs.googlecode.com/files/s3fs-1.61.tar.gz
tar zvxf s3fs-1.61.tar.gz
cd s3fs-1.61
(ソースを修正した場合は以下以降を再度実行することで再インストールできる)
export PKG_CONFIG_PATH=/usr/bin/lib/pkgconfig/:/usr/lib/pkgconfig/
./configure --prefix=/usr
make
make install
s3fs-h
でヘルプが表示されればインストール完了

■マウント
※クラウドストレージにマウントしたいバケットを作成
※コントロールパネルからaccesskeyとsecretkeyを取得しておく
mkdir -p /mnt/s3fs
echo "accesskey:secretkey" > /etc/passwd-s3fs
chmod 600 /etc/passwd-s3fs
s3fs "s3fs" /mnt/s3fs/ -o url="http://ncss.nifty.com/"
cd /mnt/s3fs/
touch test
(コンパネでエクスプローラからtestがバケット配下に作成されていることを確認する)

(再起動等でアンマウントしてしまった際には以下で再マウント可能)
modprobe fuse
s3fs "s3fs" /mnt/s3fs/ -o url="http://ncss.nifty.com/"

■ソースコード修正
src/curl.cppでオレオレ証明書を許可する設定と
src/s3fs.cppでタイムスタンプの付け方をUTCからJSTに変換するのを追加
src/s3fs.cppでキャッシュを参照せずに常にストレージアクセスする設定はいれてない(負荷増大が懸念されるため)
ソースコード修正後は再度s3fsインストールからやり直せばOK

■備忘録
  • fuseは2.9.2が最新版で出ていたのでそれをインストールしても問題ないかもしれません
  • 一旦ローカル側に保存してからストレージへの転送を開始するためローカル側に転送するファイルを受け入れられるだけのストレージ容量が必要

0 件のコメント:

コメントを投稿