share facebook facebook twitter menu hatena pocket slack

2011.05.11 WED

EC2(CentOS 5.6)でfuse-2.8.5とs3fs-1.40を利用するために

鈴木 宏康

WRITTEN BY 鈴木 宏康

前回、CentOS 5.6にfuse-2.8.5とs3fs-1.40のインストールでインストールが出来ましたが、s3fsを実際に利用してみようとしたところ、非常に難航しました。

はじめに、下記のようなエラーが表示されました。

# s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp
s3fs: error while loading shared libraries: libfuse.so.2:
cannot open shared object file: No such file or directory

これは、fuseを/usr/localにインストールしていたので、そこにライブラリパスが通っていないことが原因でした。

対策として、/etc/ld.so.confを下記のように調整したところ、無事解決ました。
(反映にはldconfigを実行する必要があります。)

/usr/local/lib
include ld.so.conf.d/*.conf

すると今度は、下記のようなエラーに変わりました。

# ldconfig
# s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp
s3fs: credentials file /etc/passwd-s3fs
should not have others permissions

これは単に、/etc/passwd-s3fsが適切に作成されてないということなので、下記のように作成しておきます。

※Access Key:Secret Keyの形式でchmod 600しておきます。

AAAAAAAAAAAAAAAAAAAA:SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS

すると今度は、下記のようなエラーが表示されました。
これは、デバイスが無いのでmodprobe fuseをしてくださいとのことでした。
実際にmodprobe fuseをすると、モジュール自体が無いとのことでした。

# s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp
fuse: device not found, try 'modprobe fuse' first
# modprobe fuse
FATAL: Module fuse not found.

このエラーを解決するために、fuseモジュールを作成します。
今回は、こちらのDiscussion Forums:fuse and Xen?で提供されているファイルを利用しました。

手順は下記となります。

# cd /
# curl -OL https://forums.aws.amazon.com/servlet/JiveServlet/download/30-11544-42641-670/modules-added-to-ami-6bae4b02.tgz
# tar xvzf modules-added-to-ami-6bae4b02.tgz
lib/modules/2.6.16-xenU/kernel/fs/binfmt_aout.ko
lib/modules/2.6.16-xenU/kernel/fs/fuse/fuse.ko
lib/modules/2.6.16-xenU/kernel/fs/relayfs/relayfs.ko
lib/modules/2.6.16-xenU/kernel/net/xfrm/xfrm_user.ko
# /sbin/depmod
# modprobe fuse
# s3fs static.cloudpack.jp /mnt/s3/static_cloudpack_jp

長々と書いてきましたが、、これでs3fsが利用出来るようになりました。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。