2011年4月28日木曜日

EC2(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"モジュールを作成しなければいけないのですが、
今回は、こちらのフォーラムで提供されているファイルを利用しました。

手順は下記となります。

# 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"が利用出来るようになりました。

そろそろ、デフォルトカーネル(2.6.16-xenU)を卒業しないといけないのかなー...
--------
http://www.suz-lab.com

0 コメント: