S3QLでさくらのオブジェクトストレージサービスをローカルマウントしてみよう(CentOS7版)
編集部注:本記事は2021年3月まで提供しておりました旧オブジェクトストレージサービスに関する情報です。現行のオブジェクトストレージとは互換性のないAPIを用いているため、現在はご利用いただけません。ご了承ください。
以前、「S3QLでさくらのオブジェクトストレージサービスをローカルマウントしてみよう」にてS3QLの構築を紹介させていただきましたが、今回はCentOS7.2で構築する手順をご紹介したいと思います。
なお、この記事では以下のWebサイトを参考にしています。
Highly available filesystem with S3QL and Orbit - Brightbox Cloud
nikratio / S3QL / wiki / installation centos — Bitbucket
S3QLのインストール手順
ベースとなるアーカイブは「CentOS 7.2 64bit #1128011222159」を使っています。
※ 作業はrootユーザーで行ってください。
1. OSのパッケージの更新
CentOSを最新状態にします。
# yum update
2. 必要パッケージのインストール
S3QLに必要なパッケージをインストールしていきます。
# yum --enablerepo=epel install python34-devel \ python34-setuptools \ python34-crypto \ python34-apsw \ systemd-devel \ libattr-devel \ sqlite-devel \ fuse-devel \ psmisc
3. pipで必要なパッケージをインストール
Pythonのパッケージ管理システムであるpip使って必要パッケージをインストールします。
# easy_install-3.4 pip # pip3 install \ defusedxml \ requests \ dugong \ llfuse \ pytest \ pytest-catchlog \ git+https://github.com/systemd/python-systemd.git#egg=systemd
4. S3QLのインストール
S3QLのサイトから最新版を取得してインストールします。
# cd /usr/local/src/ # curl -L -O https://bitbucket.org/nikratio/s3ql/downloads/s3ql-2.21.tar.bz2 # tar jxf s3ql-2.21.tar.bz2 # cd s3ql-2.21 # python3 setup.py build_ext --inplace # python3 setup.py install
これでインストール完了です。
次は設定を行います。
S3QLの設定手順
S3QLを使うための設定ファイルを作成します。
事前にさくらのクラウドでオブジェクトストレージを作成しておきます。
必要になるパラメータは以下の2つです。
・アクセスキーID(権限は「読み/書き」)
・シークレットアクセスキー
実際に設定していくため、下記の値を仮に使っていきます。
・アクセスキーID: sakura-object-storage
・シークレットアクセスキー: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1. 設定ファイルの作成
オブジェクトストレージを使用するための設定を入れていきます。
# mkdir /root/.s3ql/ # vi /root/.s3ql/authinfo2 [s3c] storage-url: s3c://b.sakurastorage.jp/sakura-object-storage backend-login: sakura-object-storage backend-password: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX # chmod 600 /root/.s3ql/authinfo2
2. マウントポイントの設定
ストレージのマウントポイントを作成します。
# mkdir /var/sakura_storage
3. キャッシュ用ディレクトリの作成
S3QLのキャッシュファイル用のディレクトリを作成します。
# mkdir /var/cache/s3ql # chmod 700 /var/cache/s3ql
4. S3QLファイルシステムの作成
オブジェクトストレージ内にS3QLのファイルシステムを構築します。
# mkfs.s3ql --plain --cachedir /var/cache/s3ql --authfile /root/.s3ql/authinfo2 s3c://b.sakurastorage.jp/sakura-object-storage
4. ファイルシステムのマウント
オブジェクトストレージをマウントします。
# mount.s3ql --cachedir /var/cache/s3ql --authfile /root/.s3ql/authinfo2 --compress none --cachesize 1048576 \
--allow-other s3c://b.sakurastorage.jp/sakura-object-storage /var/sakura_storage/
うまくできましたでしょうか?
mount コマンドで確認して s3c://b.sakurastorage.jp/...... が見え、/var/sakura_storage/ 内にファイルを読み書きできれば成功です!
次はOS起動時に自動でマウントするように起動スクリプトを作ります。
(下記は例となります)
1. Systemd用パラメータファイル作成
# vi /etc/sysconfig/s3ql
AUTHFILE="/root/.s3ql/authinfo2"
STORAGEURL="s3c://b.sakurastorage.jp/sakura-object-storage"
MOUNTPOINT="/var/sakura_storage"
# chmod 600 /etc/sysconfig/s3ql
2. ServiceタイプのUnit設定ファイル作成
# vi /etc/systemd/system/s3ql.service [Unit] Description=mount s3ql filesystem After=network.service [Service] Type=simple EnvironmentFile=/etc/sysconfig/s3ql ExecStart=/usr/bin/mount.s3ql --fg --cachedir /var/cache/s3ql --authfile ${AUTHFILE} --compress none --cachesize 1048576 --allow-other ${STORAGEURL} ${MOUNTPOINT} ExecStop=/usr/bin/umount.s3ql ${MOUNTPOINT} TimeoutStopSec=42 [Install] WantedBy=multi-user.target
3. Service起動確認
このスクリプトでマウントできるかどうかのテストをします。
# systemctl start s3ql.service
これで無事マウントできれば、次は再起動後も自動でマウントされるように設定をします。
# systemctl enable s3ql.service
終わりに
今回はなるべく既存パッケージを使うようにしているので、前回の手順よりは楽に導入できると思います。S3QLをオブジェクトストレージの活用にぜひお役立てください。