AWSには、s3fsというS3の領域をファイルシステムとしてマウントすることができる技術があります。
ということで、今回はこのs3fsを使ってみます。
○インストール
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のバージョンよりも古いものしかないため、Filesystem in Userspace by dzsekijo, mszerediらソースを取得してインストールします。
$ 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をインストールします。
FUSE-based file system backed by Amazon S3から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の記述
以上で、起動時に自動でマウントされるようになります。
こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら