鱒身(Masu_mi)のブログ

知った事をメモする場所。

s3fsを試した

FUSEを利用したs3fs というツールがありS3互換のオブジェクトストレージをマウントできるので試してみた。

tl;dr

以下のコピペで ${target_dir}${target_bucket} をマウントできる。 オプションを与えたいときは-o で与える。特にエンドポイントを与えたいときはurl で与えられる。 S3互換のオブジェクトストレージを利用する場合はこれが必要。

$ echo <<EOCONF > ~/.passwd-s3fs && chmod 600 ~/.passwd-s3fs
${ACCESS_KEY_ID}:${SECRET_KEY_ID}
EOCONF
$ s3fs ${target_bucket} ${target_dir} -o url=${endpoint_url}

インストール周辺

v1.74でコンパイルこけてgcc調べたり必要が出て面倒だったのでver.を下げました。

$ yum install fuse
$ modprobe fuse
$ yum install libxslt-devel
$ wget  http://s3fs.googlecode.com/files/s3fs-1.73.tar.gz
$ tar zxvf s3fs-1.73.tar.gz
$ cd s3fs-1.73
$ ./configure --prefix=/home/vagrant/local
$ make
$ make install

リージョン間速度比較

US, Tokyoのリージョンエンドポイントを指定してtimeで比較したけど大差なし(オブジェクト数:1)。 バケットないファイル数が多くTCPウィンドウサイズを越えたりすると急に劣化が起きるか比較したい。

$ s3fs sample.bucket ./test_s3fs/ -o url=http://s3.amazonaws.com
$ time ls ./test_s3fs
...
real    0m0.212s
...

$ s3fs sample.bucket ./test_s3fs/ -o url=http://s3-ap-northeast-1.amazonaws.com
$ time ls ./test_s3fs
...
real    0m0.225s
...