ノード交換

特定ノードが障害で完全停止して、新規構築したサーバを同じノードとして再登録した上で、レプリカボリュームの再レプリケーションを行う手順を紹介します。

※ここでは、「ボリューム構成手順」で作成したボリューム「vol03」において、gluster04が停止したため、新規構築したサーバをgluster04として再登録する手順を示します。

まず、gluster04が障害で完全停止したとします。gluser01からpeerの状態を確認すると、gluster04が「Disconnected」になっています。

# gluster peer status

Number of Peers: 3

Hostname: gluster03

Uuid: 074cb218-1231-414c-8749-fd25d3caa49c

State: Peer in Cluster (Connected)

Hostname: gluster04

Uuid: f0ff63e7-4322-4a6d-95f3-b3ba32ae2fd8

State: Peer in Cluster (Disconnected)

Hostname: gluster02

Uuid: 05f1b9da-bdad-4383-a897-5cba9429a2db

State: Peer in Cluster (Connected)

「vol03」は、gluster01〜gluster04からなるボリュームとして定義されています。

# gluster vol info vol03

Volume Name: vol03

Type: Distributed-Replicate

Volume ID: bd00efac-1ac7-42f0-920c-22ab8e529a59

Status: Started

Number of Bricks: 2 x 2 = 4

Transport-type: tcp

Bricks:

Brick1: gluster01:/data/brick03

Brick2: gluster02:/data/brick03

Brick3: gluster03:/data/brick03

Brick4: gluster04:/data/brick03

一方、「vol03」のステータスを確認すると、gluster04の情報が含まれなくなっています。

# gluster vol status vol03

Status of volume: vol03

Gluster process Port Online Pid

------------------------------------------------------------------------------

Brick gluster01:/data/brick03 24009 Y 6978

Brick gluster02:/data/brick03 24009 Y 4238

Brick gluster03:/data/brick03 24009 Y 3926

NFS Server on localhost 38467 Y 6984

Self-heal Daemon on localhost N/A Y 6994

NFS Server on gluster02 38467 Y 4243

Self-heal Daemon on gluster02 N/A Y 4249

NFS Server on gluster03 38467 Y 3931

Self-heal Daemon on gluster03 N/A Y 3937

この状態で新規サーバを構築して、gluster04と同じホストネーム、IPアドレスなどをアサインした後、GlusterFSをインストールします。新規構築したgluster04で次のコマンドを実行します。

# mkdir /data/brick03

# service glusterd start

# gluster peer probe gluster01

# service glusterd restart

は じめにブリックに対応するディレクトリを作成しています。次にglusterdサービスを起動して、既存のノード(この例ではgluster01)を指定 して「peer probe」を実行した後に、glusterdサービスを再起動します。(「gluster peer probe」は、既存のノードからgluster04を指定して実行するわけではないので、注意してください。)

※ 新規構築したgluster04の/var/lib/glusterd/glusterd.infoには、glusterdサービスを起動したタイミングで、新しいUUIDが設定されます。理由があって、新規構築前のgluster04と同じUUIDを再利用する場合は、gluster01に加えて、他の既存ノードすべてにgluster04から「gluster peer probe」を実行する必要があります。

gluster01でpeerの状態を確認すると、新しいUUIDでgluster04が最登録されています。

# gluster peer status

Number of Peers: 3

Hostname: gluster03

Uuid: 074cb218-1231-414c-8749-fd25d3caa49c

State: Peer in Cluster (Connected)

Hostname: gluster04

Uuid: 728a6d0d-117e-4e21-8cc1-19f609e88ee1

State: Peer in Cluster (Connected)

Hostname: gluster02

Uuid: 05f1b9da-bdad-4383-a897-5cba9429a2db

State: Peer in Cluster (Connected)

同じくボリューム「vol03」の状態を確認すると、gluster04の情報が復活しています。

# gluster vol status vol03

Status of volume: vol03

Gluster process Port Online Pid

------------------------------------------------------------------------------

Brick gluster01:/data/brick03 24009 Y 6978

Brick gluster02:/data/brick03 24009 Y 4238

Brick gluster03:/data/brick03 24009 Y 3926

Brick gluster04:/data/brick03 24009 Y 24132

NFS Server on localhost 38467 Y 6984

Self-heal Daemon on localhost N/A Y 6994

NFS Server on gluster04 38467 Y 24138

Self-heal Daemon on gluster04 N/A Y 24144

NFS Server on gluster02 38467 Y 4243

Self-heal Daemon on gluster02 N/A Y 4249

NFS Server on gluster03 38467 Y 3931

Self-heal Daemon on gluster03 N/A Y 3937

※ 既知の問題により、このタイミングで、gluster04のBrickがOnlineになっていない場合があります。この場合は、gluster04で、再度、glusterdを再起動します。

# service glusterd restart

この後、次のコマンドで再レプリケーションを実施します。

# gluster vol heal vol03 full

※ノード再構築時は、Self-heal daemonによる自動再レプリケーションは実施されません。再レプリケーションを行うには、上記の「full」オプション付きのhealコマンドを実施する必要があります。