| Works
GlusterFS (Red Hat Storage) で非同期レプリケーションの設定
今まではネットの情報を参考に緩い感じでやっていたのですが、基本に立ち返って推奨の方法を。
なかなか人から教わる機会がなかったもので、試行錯誤だけだと結構抜けてしまうところが多いです。
環境は古めですが、Red Hat Storege 2.0(RHEL 6.2 + GlusterFS 3.3)を想定。
設定のポイントは以下のような感じでしょうか。
- "root"ユーザーは使わず、受信側では一般ユーザーを作成
- 必要なコマンド(gsyncd)以外の実行権は与えない
①送信側ボリュームと受信側ボリュームは作成済みと想定(それぞれ"source_vol", "dest_vol")
受信側で一般ユーザー/グループを作成します。
ここでは"repuser", "repgroup"とします。
【受信側で実行】
# groupadd repgroup
# useradd -G repgroup repuser
# passwd repuser
②送信側でSSH秘密鍵を作成します。
この時、秘密鍵の既定のパスは決まっているのでそこに作成。
【送信側で実行】
# ssh-keygen -f /var/lib/glusterd/geo-replication/secret.pem
③秘密鍵と一緒にできた公開鍵(secret.pem.pub)を実行コマンドを制限するためのオプションを追加し、受信側サーバで使うユーザーのauthorized_keysに登録します。
【送信側で実行】
# sed -i 's/^/command="\/usr\/libexec\/glusterfs\/gsyncd" /' /var/lib/glusterd/geo-replication/secret.pem.pub
# ssh-copy-id -i /var/lib/glusterd/geo-replication/secret.pem.pub
④受信側で一般ユーザーがGlusterFSのボリュームを扱うための設定を実施
"/etc/glusterfs/glusterd.vol"ファイル中に以下のオプションを追記
(ユーザー名"repuser", ボリューム名"dest_vol"に注意)
option mountbroker-root /var/mountbroker-root
option mountbroker-geo-replication.repuser dest_vol
option geo-replication-log-group repgroup
⑤前述の設定で記載した"mountbroker-root"のマウントポイントを作成してサービスを再起動。
【受信側で実行】
# mkdir -p /var/mountbroker-root
# service glusterd restart
⑥ここまでで準備は完了。
あとは送信側からgeo-replicationを実行します。
【送信側で実行】
# gluster volume geo-replication source_vol repuser@target_host::dest_vol start
受信側のボリュームにファイルが送られており、"gluster volume georeplication ~ status"コマンドやログファイルにエラーが出ていなければ成功。