Gluster ファイル システムで自己修復および再バランス操作を実行する方法 - パート 2
前回の記事「GlusterFS (ファイル システム) とインストールの概要 – パート 1」では、ファイル システムとその利点について簡単に概要を説明し、いくつかの基本的なコマンドを説明しました。この記事では自己修復と再バランスという 2 つの重要な機能について言及する価値があり、GlusterFS についての説明は省略します。役に立たない。ここで自己修復とリバランスという用語について理解しておきましょう。
レプリケートされたボリュームの自己修復とは何を意味しますか?
この機能はレプリケートされたボリュームで使用できます。レプリケートされたボリューム [最小レプリカ数 2] があるとします。何らかの障害により、レプリカ ブリックのうちの 1 つ以上のブリックがしばらくダウンし、ユーザーがたまたまオンライン ブリックにのみ影響するファイルをマウント ポイントから削除したとします。
オフライン ブリックが後でオンラインになるときは、そのファイルをこのブリックからも削除する必要があります。つまり、修復と呼ばれるレプリカ ブリック間の同期を実行する必要があります。オフライン ブリック上でのファイルの作成/変更も同様です。 GlusterFS には、ブリックがオンラインになるたびにこれらの状況に対処するための自己修復デーモンが組み込まれています。
リバランスとは何を意味しますか?
ブリックが 1 つだけある分散ボリュームを考えてみましょう。たとえば、 マウント ポイントを介してボリューム上にファイルを 10 個作成します。ボリュームにはブリックしかないため、すべてのファイルは同じブリック上に存在します。ボリュームにもう 1 つのブリックを追加すると、2 つのブリック間でファイルの合計数のバランスを再調整する必要がある場合があります。 GlusterFS でボリュームが拡張または縮小される場合、ボリュームに含まれるさまざまなブリック間でデータのバランスを再調整する必要があります。
GlusterFS での自己修復の実行
1. 次のコマンドを使用して、複製ボリュームを作成します。
gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b
注: 同じサーバー上にブリックを含む複製ボリュームを作成すると、警告が表示される場合がありますが、警告を無視して続行する必要があります。
2. ボリュームを起動してマウントします。
gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/
3. マウントポイントからファイルを作成します。
touch /mnt/foo
4. 2 つのレプリカ ブリックで同じことを確認します。
ls /home/a/
foo
ls /home/b/
foo
5. 次に、ボリューム ステータス情報から取得したPIDを使用して、対応する glusterfs デーモンを強制終了し、ブリックの 1 つをオフラインに送信します。
gluster volume status vol
サンプル出力
Status of volume: vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.1.16:/home/a 49152 Y 3799
Brick 192.168.1.16:/home/b 49153 Y 3810
NFS Server on localhost 2049 Y 3824
Self-heal Daemon on localhost N/A Y 3829
注: サーバー上に自己修復デーモンが存在することを確認してください。
kill 3810
gluster volume status vol
サンプル出力
Status of volume: vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.1.16:/home/a 49152 Y 3799
Brick 192.168.1.16:/home/b N/A N N/A
NFS Server on localhost 2049 Y 3824
Self-heal Daemon on localhost N/A Y 3829
これで 2 番目のブリックがオフラインになりました。
6. ファイル foo をマウント ポイントから削除し、ブリックの内容を確認します。
rm -f /mnt/foo
ls /home/a
ls /home/b
foo
foo が 2 番目のレンガにまだ存在していることがわかります。
7. 次に、レンガをオンラインに戻します。
gluster volume start vol force
gluster volume status vol
サンプル出力
Status of volume: vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.1.16:/home/a 49152 Y 3799
Brick 192.168.1.16:/home/b 49153 Y 4110
NFS Server on localhost 2049 Y 4122
Self-heal Daemon on localhost N/A Y 4129
これでレンガがオンラインになりました。
8. レンガの中身を確認します。
ls /home/a/
ls /home/b/
ファイルは自己修復デーモンによって 2 番目のブリックから削除されました。
注: ファイルが大きい場合、自己修復操作が正常に完了するまでに時間がかかる場合があります。以下のコマンドを使用して修復ステータスを確認できます。
gluster volume heal vol info
GlusterFS での再バランスの実行
1. 分散ボリュームを作成します。
gluster create volume distribute 192.168.1.16:/home/c
2. ボリュームを起動してマウントします。
gluster volume start distribute
mount -t glusterfs 192.168.1.16:/distribute /mnt/
3. 10 個のファイルを作成します。
touch /mnt/file{1..10}
ls /mnt/
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
ls /home/c
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
4. ボリュームディストリビュートに別のブリックを追加します。
gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d
5. バランスを再調整します。
gluster volume rebalance distribute start
volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.
6. 内容を確認します。
ls /home/c
file1 file2 file5 file6 file8
ls /home/d
file10 file3 file4 file7 file9
ファイルのバランスが再調整されました。
注: 次のコマンドを実行すると、再バランスのステータスを確認できます。
gluster volume rebalance distribute status
サンプル出力
Node Rebalanced-files size scanned failures skipped status run time in secs
--------- ----------- --------- -------- --------- ------- -------- -----------------
localhost 5 0Bytes 15 0 0 completed 1.00
volume rebalance: distribute: success:
これで、GlusterFS に関するこのシリーズを終了する予定です。自己修復機能と再バランス機能に関する疑問があれば、お気軽にここにコメントしてください。