##概要
さくらのクラウドからさくらのオブジェクトストレージをマウントする手順
環境:
- CentOS6.8
前提条件:
- オブジェクトストレージにバケット作成済み
- さくらのクラウドにインスタンス作成済み
##s3fsのインストール
yum では入らないようなのでソースからインストールする
##必要なパッケージをインストール
$ sudo yum install pkgconfig libcurl libcurl-devel libxml2-devel make automake gcc libstdc++-devel gcc-c++
##fuseをソースからインストール(最新バージョンはこちらで確認 https://github.com/libfuse/libfuse/releases)
$ sudo cd /usr/local/src
$ sudo wget https://github.com/libfuse/libfuse/releases/download/fuse-2.9.7/fuse-2.9.7.tar.gz
$ sudo tar zxvf fuse-2.9.7.tar.gz
$ sudo cd fuse-2.9.7
$ sudo ./configure --prefix=/usr
$ sudo make
$ sudo make install
##パスを設定
$ sudo echo "export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/usr/lib64/pkgconfig" >> ~/.bash_profile
$ sudo source ~/.bash_profile
##共有ライブラリの依存関係情報を更新する
$ sudo ldconfig
##カーネルモジュールをロード
$ sudo modprobe fuse
##s3fsをgitからインストール
##※さくらで動作確認済みのバージョン1.74をインストール(1.80だと正常に動かない部分があった)
$ sudo cd /usr/local/src
$ sudo wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.74.tar.gz
$ sudo cd s3fs-fuse
$ sudo ./autogen.sh
$ sudo ./configure
$ sudo make
$ sudo make install
##アクセスキーの設定
複数マウントしたい場合は次の行に書く
$ vim ~/.passwd-s3fs
------------------------------------------------------------
<バケット名>:<アクセスキー>:<シークレットアクセスキー
<バケット名>:<アクセスキー>:<シークレットアクセスキー
------------------------------------------------------------
$ chmod 600 ~/.passwd-s3fs
##sshfsの設定を行う
ファイルを作成してuser_allow_other
と記述
##rootでもアクセスできるようになる
$ echo 'user_allow_other' >> /etc/fuse.conf
##マウントする
##マウントポイントのディレクトリ作成
$ mkdir -p /mnt/dirb01
##マウントする
##sigv2オプションがないとエラーになるのでつける。
##デフォルトの認証方法(Signature Version 4)だとエラーになる
##さくらのオブジェクトストレージはSignature Version 2
##nomultipartオプションを付けないと20M以上のファイルの転送でエラーとなる?
$ /usr/local/bin/s3fs dirb01 /mnt/dirb01/ -o allow_other,url=https://b.sakurastorage.jp,nomultipart
##確認する
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda2 16G 11G 4.7G 70% /
tmpfs 939M 0 939M 0% /dev/shm
/dev/vdb 59G 54G 2.0G 97% /mnt/disk1
s3fs 256T 0 256T 0% /mnt/dirb01 ##←これ
##マウントしたディレクトリに1Gのダミーファイルを作成してみる
$ cd /mnt/dirb01
$ dd if=/dev/zero of=tempfile1G bs=1G count=1
$ ll
-rw-r--r--. 1 admin admin 1.0G Aug 4 06:17 tempfile1G
##ログを出力する場合
マウントがうまくいかない場合-d
オプションをつけてログを確認する
出力先→ less /var/log/messages
##起動時にマウントする
↓fstabに記述する方法がわからなかったのでとりあえず
追記する
/etc/rc.local
su - [実行するユーザ名] -c "/usr/local/bin/s3fs dirb01 /mnt/dirb01/ -o allow_other,url=https://b.sakurastorage.jp,nomultipart"
↑rootで実行されるためsu - [実行するユーザ名]
で実行ユーザを指定するようにしている
アンマウントする場合
fusermount -u /mnt/dirb01/
busy状態でアンマウントできない場合-z
オプションを加える
fusermount -zu /mnt/dirb01/