GlusterFSサーバーの追加と削除
この記事では、単一のサーバーに障害が発生した場合に回復するための次の方法を示します。
-
その代わりに、新しいIPアドレスを使用して新しいサーバーを追加します(作業量の少ない修正)。
-
新しいサーバーを追加しますが、障害が発生したサーバーのIPアドレスは保持します(より多くの作業を必要とする修正)。
前の記事を完了すると、少なくとも2つのノードを持つGlusterFSアレイができ、ノードを追加および削除する方法を知っているはずです。
この記事の目的上、完全に複製された4ノードのGlusterボリュームで実行している必要があります。
GlusterFSアレイにテスト用の偽のデータを入力します。
このシナリオでは、web03は失敗しますが、IPアドレス192.168.0.5の新しいノードを追加して置き換えます。この方法は、障害が発生したサーバーと同じIPアドレスを持つ新しいサーバーを追加するよりも簡単です。
この記事では、ディザスタリカバリの2つの形式を紹介します。
- 1つのノードがダウンし、代わりに新しいノードを追加しています。
- 1つのノードがダウンし、再構築されてIPが維持されました。これは、修正するのにより多くの作業が必要であることが判明しました。
このシナリオでは、web03は再びダウンしますが、192.168.0.5に新しいノードを追加して置き換えます。この方法ははるかに簡単です。
-
実行中のサーバーの1つを使用して、新しいサーバーをクラスターに追加します。
root@matt:~# gluster peer probe 192.168.0.5 peer probe: success
-
故障したレンガを新しいレンガと交換します:
root@matt:~# gluster volume replace-brick www 192.168.0.3:/srv/.bricks/www 192.168.0.5:/srv/.bricks/www commit force volume replace-brick: success: replace-brick commit successful
-
システムを修復する:
root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
heal
の進行状況に関する情報を取得します 操作:root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful ... Brick 192.168.0.4:/srv/.bricks/www Number of entries: 23 /wordpress/wp-admin/upload.php
-
分散システムを実行している場合は、次のコマンドを実行します。
root@matt:~# gluster volume rebalance www fix-layout start volume rebalance: www: success: Starting rebalance on volume www has been successful. ID: 0a9719c1-cf04-4161-b3b0-cc6fd8dd9108 root@matt:~# gluster volume rebalance www status Node Rebalanced-files size scanned failures skipped status run time in secs --------- ----------- ----------- ----------- ----------- ----------- ------------ -------------- localhost 0 0Bytes 0 0 0 completed 1.00 localhost 0 0Bytes 0 0 0 completed 1.00 192.168.0.2 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.5 0 0Bytes 0 0 0 completed 1.00 volume rebalance: www: success:
IPアドレスを保持する
このシナリオでは、IPアドレスが192.168.0.3のサーバーweb03がクラッシュし、完全に回復できません。
復旧するには、同じIPアドレスを使用して新しいサーバーを構築します 、障害が発生したサーバーとしてGlusterFSに提示し、自己回復させます。次に、ボリュームをGlusterFSに再調整します。
交換用サーバーの構築と構成については、以前の記事を参照してください。
-
新しいサーバーを構築し、そのサーバーにGlusterFSをインストールして、ディスクをブリック用に準備します。
-
障害が発生したサーバーのピアUUIDをサーバーに提供します。 UUIDを取得するには、実行中のサーバーの1つ(web01など)で次のコマンドを実行します。
root@web01:~# grep 192.168.0.3 /var/lib/glusterd/peers/*/var/lib/glusterd/peers/ba502dc2-447f-466a-a732-df989e71b551:hostname1=192.168.0.3
-
ファイル名(元のWeb03 UUID)をコピーします。前の例では、次のようになります。
ba502dc2-447f-466a-a732-df989e71b551
。 -
障害が発生したサーバーのUUIDを新しいサーバーに割り当てます。
-
Glusterデーモンを停止します:
root@web03:~# service glusterfs-server stop glusterfs-server stop/waiting
-
生成されたノードUUIDを
glusterd
内のコピーされたノードUUIDに置き換えます 構成ファイル:root@web03:~# UUID=ba502dc2-447f-466a-a732-df989e71b551 root@web03:~# sed -i "s/\(UUID\)=\(.*\)/\1=$UUID/g" /var/lib/glusterd/glusterd.info root@web03:~# cat /var/lib/glusterd/glusterd.info UUID=ba502dc2-447f-466a-a732-df989e71b551 operating-version=2
注:
ba502dc2-447f-466a-a732-df989e71b551
UUIDはUUIDの例です。障害が発生したサーバーのUUIDに置き換える必要があります(web01で記憶されています)。 -
-
サーバーを再起動します:
root@web03:~# service glusterfs-server start glusterfs-server start/running, process 10732
-
新しいサーバーで、他のサーバーが表示されていることを確認します。
root@web03:~# gluster peer status peer status: No peers present
-
ピアサーバーが表示されていない場合は、明示的に追加する必要があります:
root@web03:~# gluster peer probe 192.168.0.1 peer probe: success root@web03:~# gluster peer probe 192.168.0.2 peer probe: success root@web03:~# gluster peer probe 192.168.0.4 peer probe: success
-
gluster peer status
を実行します web03で再度コマンドを実行します。応答は次のようになります。State: Accepted peer request (Connected)
-
デーモンをもう一度再起動すると、ピアサーバーが表示されます。
root@web03:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 9123 root@web03:~# gluster peer status Number of Peers: 3 Hostname: 192.168.0.2 Uuid: 177cd473-9421-4651-8d6d-18be3a7e1990 State: Peer in Cluster (Connected) Hostname: 192.168.0.1 Uuid: 8555eac6-de14-44f6-babe-f955ebc16646 State: Peer in Cluster (Connected) Hostname: 192.168.0.4 Uuid: 1681b266-dc31-42e1-ab82-4e220906eda1 State: Peer in Cluster (Connected)
-
ボリュームのステータスを確認します:
root@web03:~# gluster volume status No volumes present
-
ピアサーバーからボリュームを取得します:
root@web03:~# gluster volume sync 192.168.0.2 all Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y volume sync: success
-
ブリックのファイルシステムを順番に設定します。次の例では、ブリックは /srv/.bricks/wwwに格納されています :
root@web03:~# mkdir /srv/.bricks/www
-
実行中のサーバーの1つに移動し、
attr
をインストールします 正しいボリュームIDを取得します。root@web02:~# apt-get install attr -y ... root@web02:~# getfattr -n trusted.glusterfs.volume-id /srv/.bricks/www getfattr: Removing leading '/' from absolute path names # file: srv/.bricks/www trusted.glusterfs.volume-id=0s42V5HW+LSuyzqotW1jgAhA==
-
ボリュームID文字列をクリップボードにコピーします。この例では、
0s42V5HW+LSuyzqotW1jgAhA==
です。 。 -
交換用サーバーで、その拡張属性を適用します:
root@web03:~# apt-get install attr -y ... root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
-
サーバーを再起動してから、システムを修復します。
root@matt:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 13318 root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
heal
の進行状況に関する情報を取得します 手術。新しいサーバーは期待どおりに実行されているはずです。root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful Brick 192.168.0.1:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.2:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.3:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.4:/srv/.bricks/www Number of entries: 0
これで、GlusterFSアレイで障害が発生したサーバーから回復する方法を学習しました。