1つのサーバがダウンしてしまい同じIPで起動できない場合の対処方法
まずは、peerに新サーバIPを追加
$ gluster peer probe 10.153.57.98 Probe successful
次に、Volume名をlogsとして、replace-brickしちゃえば置き換えられるかと思ったのですが怒られちゃいました(´・ω・`)
$ gluster volume replace-brick logs <故サーバIP>:/brick <新サーバIP>:/brick start brick: <故サーバIP>:/brick does not exist in volume: logs
そこで、既存Volumeを削除して同じ名前で再作成するというアプローチをとってみました
$ gluster volume stop logs Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y Stopping volume logs has been unsuccessful
ロックが掛かっていたりするとVolumeを停止できないそうなので、glusterdを再起動してみます
$ service glusterd stop glusterd を停止中: [ OK ] $ service glusterd start glusterd を起動中: [ OK ]
そして、Volume停止をリトライ
$ gluster volume stop logs Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y Stopping volume logs has been successful
今度は成功!
続いて、既存Volumeの削除
$ gluster volume delete logs Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y Deleting volume logs has been successful
故サーバIPをpeerから削除
$ gluster peer detach 10.153.57.194 Detach successful
あとは、Brickとして利用していたディレクトリからGFS関連の情報を削除
$ rm -rf /brick/.glusterfs
そして、Volume作成
$ gluster volume create logs replica 2 <既存サーバIP>:/brick <新サーバIP>:/brick /brick or a prefix of it is already part of a volume怒られちゃいました(´・ω・`)
attributeも変更しないといけないようなので変更
$ setfattr -x trusted.glusterfs.volume-id /brick $ setfattr -x trusted.gfid /brick
Volume作成リトライ
$ gluster volume create logs replica 2 <既存サーバIP>:/brick <新サーバIP>:/brick Creation of volume logs has been successful. Please start the volume to access data.
今度はうまくいきました!
あとは、Volumeをstart
$ gluster volume start logs Starting volume logs has been successful
Volumeの情報を確認
gluster volume info logs Volume Name: logs Type: Replicate Volume ID: 28fcf9b5-c4d3-4a41-9161-56fd3a1f2eac Status: Started Number of Bricks: 1x2=2 Transport-type: tcp Bricks: Brick1: <既存サーバIP>:/brick Brick2: <新サーバIP>:/brick
0 件のコメント:
コメントを投稿