さくらのクラウドのオブジェクトストレージを使ってみる

投稿者: | 2017-08-18

当サーバは、さくらインターネットのVPSを使用していますが、今回、サーバのバックアップにさくらインターネットが提供するオブジェクトストレージを使用してみました。

今回は、オブジェクトストレージを特定のディレクトリにマウントする方法を紹介します。

前提条件

OSは、CentOS7です。
さくらのVPSを利用しています。さくらインターネットのサービス外のサーバで使用する場合、別途転送料が掛かるみたいなので、注意して下さい。

s3fsのインストール

まず、関連ソフトウェアのインストールをyumで行います。

sudo yum install fuse fuse-devel libcurl-devel libxml2-devel openssl-devel

s3fsをダウンロードし、インストールします。さくらのオブジェクトストレージはs3fsのバージョン1.8以降では、正しく動作しませんでしたので、今回は動作報告がある1.74を使用しています。

wget https://github.com/s3fs-fuse/s3fs-fuse/archive/v1.74.tar.gz
tar zxvf v1.74.tar.gz
cd s3fs-fuse-1.74/
./autogen.sh 
make
sudo make install

s3fsの設定

ここから先は、すべてroot権限が必要ですので、suすることを前提で解説します。操作ミスをしないように注意して下さい。

s3fsで使用するアクセスキーを設定します。アクセスキーは、さくらのクラウドのオブジェクトストレージのバケット画面で確認できます。
アクセスキーは権限が「読み/書き」となっている物を使用します。
バケットの作成方法については、さくらのクラウドのサポートサイトをご確認下さい。

vi /etc/passwd-s3fs

エディタが開いたら、アクセスキーIDとシークレットアクセスキーをコロンで区切って記述します。

ACCESSKEYID:SECRETACCESSKEY

ファイルを保存したら、パーミッションを600にします。

chmod 600 /etc/passwd-s3fs

マウントポイントの作成とテスト

マウントポイントを作成します。今回、マウント先は「/mnt/objstore」とします。お好みで変更して下さい。

mkdir /mnt/objstore

マウントができるかどうかテストします。BACKETNAME には、バケットの名前を指定します。

/usr/local/bin/s3fs BACKETNAME /mnt/objstore -o url=https://b.sakurastorage.jp/ -o allow_other

ファイルを置いてみて、さくらのクラウド オブジェクトストレージのバケット画面にある「オブジェクト一覧」をクリックしてみて、サーバで置いたファイルが見えることを確認します。

うまくマウント出来ない場合は、デバッグ出力を試して下さい。何らかのヒントになると思います。

/usr/local/bin/s3fs BACKETNAME /mnt/objstore -o url=https://b.sakurastorage.jp/ -d -d -f -o f2 -o curldbg

確認が終わったら、アンマウントします。

/usr/bin/fusermount -u /mnt/objstore/

もし、ロックされてアンマウントを失敗する場合、-zオプションを指定することで、強制的にアンマウントできます。

自動マウントさせる

CentOS7では、systemctlを使用して自動実行を管理しますので、systemctl用の設定ファイルを記述します。ここではサービス名に「sakura-obj」を使用しています。お好みで変更して下さい。

vi /etc/systemd/system/sakura-obj.service

エディタが開いたら、以下の内容を入力します。BACKETNAME には、バケットの名前を指定します。

[Unit]
Description=mount SakuraCloud Object storage
After=network.target

[Service]
Type=simple
RemainAfterExit=yes
ExecStart=/usr/local/bin/s3fs BACKETNAME /mnt/objstore -o url=https://b.sakurastorage.jp/ -o allow_other
ExecStop=/usr/bin/fusermount -u /mnt/objstore/

[Install]
WantedBy=multi-user.target

systemctlをリロードし、自動起動するように設定します。

systemctl daemon-reload
systemctl enable sakura-obj.service

サービスを起動して、正しくマウントされているか確認します。

systemctl start sakura-obj.service
systemctl status sakura-obj.service

「active (exited)」と表示され、dfでマウント状態が確認できていれば成功です。一度サーバを再起動して、自動的にマウントされることを確認して下さい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください