ブリック追加・削除
GlusterFS ではボリュームを作成した後にオンラインでブリックを追加することが可能です。ブリックの追加は次のように gluster volume add-brick コマンドによって行います。
gluster volume add-brick <ボリューム名> <stripe|replica> <数> <新しいブリック>...
また、ブリックの削除は次のように gluster volume remove-brick コマンドによって行います。
gluster volume remove-brick <ボリューム名> replica <数> <ブリック>...
ここで重要なのはブリックの追加・削除を行うコマンドで stripe や replica の指定ができることです。GlusterFS ではオンラインである程度のボリュームオプションの変更が行えるようになっています。
通常、いずれかのボリュームオプションでボリュームを作成し、ブリック追加を行った場合、ディストリビューテッドとしてこのブリックが追加されます。ただ、このボリュームオプションが非ディストリビューテッド系であればディストリビューテッドボリュームに変換されます。
また、ブリック追加・削除時に stripe や replica を指定することでストライプド系やレプリケーテッド系ボリュームにストライプを追加したりレプリケートを追加したりできます。
同時にもともとレプリケーテッド系ボリュームでない場合に replica を追加するとレプリケーテッド系ボリュームへ変換されます。一方でストライプド系ボリュームでない場合に stripe を指定することは推奨されません(未サポートです)。
これらの変換についてについては次の図を参考にして下さい。
上の図に関して、ディストリビューテッド系ボリュームに変更するには stripe と replica を掛けた数の倍のブリックを指定する必要があります。
例:stripe x replica = 4 であればブリック数は 8 や 12等 ※ stripe や replica の指定がない場合は 1と考える
また、ブリックの削除は図中の矢印が逆になると考えて下さい。
ブリックの追加・削除を行った後は手動でファイル構成を再配置するように指示する必要があります。この再配置をリバランスと言います。
リバランス
ブリックの追加や削除を行った後は手動でファイルの再配置をする必要があります。再配置はリバランスによって実施可能ですがリバランスを行うには2つのステップがあります。
- レイアウト(layout)の再配置今後新しく追加されるファイル(やディレクトリ)が新しい構成に配置されるようにする
- データの再配置既存のデータを新しい構成に再配置する
これらはレイアウト→データの順にそれぞれコマンドをどれか1つのサーバ上で実行していきます。レイアウトの再配置は次のようなコマンドになります。
gluster volume rebalance <ボリューム名> fix-layout start
レイアウトの再配置を行っただけでは既存のファイルは移動しない為、データの再配置を次のコマンドで行います。
gluster volume rebalance <ボリューム名> start
特にこのデータの再配置には長い時間を要するかもしれません。この時の進捗を含め状態を見るには次のコマンドを使います。
gluster volume rebalance <ボリューム名> status
最後にリバランスを停止するコマンドも用意されています。
gluster volume rebalance <ボリューム名> stop
- 4.1. ブリックとトランスレータ – GlusterFS Community ではじめる分散ファイルシステム
- 4.2. さまざまなボリュームオプション(その1) – GlusterFS Community ではじめる分散ファイルシステム
- 4.3. さまざまなボリュームオプション(その2) – GlusterFS Community ではじめる分散ファイルシステム
- 4.4. さまざまなボリュームオプション(その3) – GlusterFS Community ではじめる分散ファイルシステム
- 4.5. ヒーリングとスプリットブレイン – GlusterFS Community ではじめる分散ファイルシステム
- 4.6. ブリック追加・削除とリバランス – GlusterFS Community ではじめる分散ファイルシステム
- 4.7. GlusterFS のスケール – GlusterFS Community ではじめる分散ファイルシステム