• 検索結果がありません。

調整された複製ボリュームの作成

ドキュメント内 管理ガイド (ページ 88-100)

第 5 章 ストレージボリュームの設定

5.6. 分散複製ボリュームの作成

5.7.3. 調整された複製ボリュームの作成

調整された複製ボリュームを作成するコマンドには、以下の構文があります。

# gluster volume create VOLNAME replica 3 arbiter 1 HOST1:DATA_BRICK1 HOST2:DATA_BRICK2 HOST3:ARBITER_BRICK3

これにより、3 つの複製ブリックごとに 1 つの仲裁を持つボリュームが作成されます。仲裁者は、3 つ のブリックのすべてのセットの最後のブリックです。

注記 注記

このコマンドの構文が誤解を招く。このセットには合計 3 つのブリックがあります。こ のコマンドは、2 つのブリックを持つボリュームを作成します。このボリュームは、す べてのデータを複製するブリックと、メタデータのみを複製する 1 つの仲裁ブリックと 1 つです。

以下の例では、server3 および server6 のブリックは仲裁ブリックです。3 つのブリックのセットが複 数提供されるため、仲裁ブリックが付いた分散複製ボリュームが作成されます。

# gluster volume create testvol replica 3 arbiter 1 \

server1:/bricks/brick server2:/bricks/brick server3:/bricks/arbiter_brick \ server4:/bricks/brick server5:/bricks/brick server6:/bricks/arbiter_brick

# gluster volume info testvol Volume Name: testvol Type: Distributed-Replicate

Volume ID: ed9fa4d5-37f1-49bb-83c3-925e90fab1bc Status: Created

Snapshot Count: 0

Number of Bricks: 2 x (2 + 1) = 6 Transport-type: tcp

Bricks:

Brick1: server1:/bricks/brick Brick2: server2:/bricks/brick

Brick3: server3:/bricks/arbiter_brick (arbiter) Brick1: server4:/bricks/brick

Brick2: server5:/bricks/brick

Brick3: server6:/bricks/arbiter_brick (arbiter) Options Reconfigured:

transport.address-family: inet performance.readdir-ahead: on nfs.disable: on

5.7.4. 少ないノード間での複数の仲裁で複製されたボリュームの作成

複数の仲裁レプリカのボリューム、または複数のレプリカセットを持つ単一ボリュームを設定する場合 は、以下の手法のいずれかを使用して、合計でノード数を減らすことができます。

別のボリュームのデータブリックとして同じノード上の 1 つのボリュームの仲裁りを固定し、

複数の仲裁ボリュームをチェーンでつなぎます。チェーンは、ファイルサイズがメタデータ ファイルサイズ(32128 KiB)に近づく場合に、書き込み負荷に便利です。これにより、すべての メタデータ I/O が単一のディスクを通過しないようにします。

分散複製された分散ボリュームでは、別のレプリカサブボリュームのデータブリックと同じ ノードにアービターを配置することもできます。これは、同じデータを共有しないためです。

複数のボリュームのブリックを単一の専用ノードに配置します。専用の仲裁ノードは、大きな ファイルを持つ書き込み負荷や読み取り重みのワークロードに適しています。

例5.6 専用設定の例専用設定の例

以下のコマンドは、firstvol と secondvol の 2 つの決定済み複製ボリュームを作成します。server3 には、両方のボリュームの仲裁ブリックが含まれます。

# gluster volume create firstvol replica 3 arbiter 1 server1:/bricks/brick server2:/bricks/brick server3:/bricks/arbiter_brick

# gluster volume create secondvol replica 3 arbiter 1 server4:/bricks/data_brick server5:/bricks/brick server3:/bricks/brick

5 つのサーバー間で設定された 2 つの gluster ボリュームで、専用の仲裁ノードに 2 つの 3 方向の アービジョニングされた複製ボリュームを作成します。

例5.7 チェーン設定の例チェーン設定の例

以下のコマンドは、6 x(2 + 1)設定において 6 台のサーバーにチェーンされた 6 つのサブボリューム で、調整された複製ボリュームを設定します。

# gluster volume create arbrepvol replica 3 arbiter 1 server1:/bricks/brick1 server2:/bricks/brick1 server3:/bricks/arbiter_brick1 server2:/bricks/brick2 server3:/bricks/brick2

server4:/bricks/arbiter_brick2 server3:/bricks/brick3 server4:/bricks/brick3 server5:/bricks/arbiter_brick3 server4:/bricks/brick4 server5:/bricks/brick4 server6:/bricks/arbiter_brick4 server5:/bricks/brick5 server6:/bricks/brick5 server1:/bricks/arbiter_brick5 server6:/bricks/brick6 server1:/bricks/brick6 server2:/bricks/arbiter_brick6

6 台のサーバーにチェーンされた複製された 6 つの gluster サブボリュームで、分散複製された分散 複製設定 6 *(2 + 1)を作成します。

5.7.5. 仲裁ボリュームへの変換

複製されたボリュームを仲裁ボリュームに変換するには、複製されたサブボリュームごとに新たな仲裁 ブリックを追加するか、レプリカのブリックを仲裁ブリックに置き換えてください。

手順5.1「レプリカ 2 ボリュームの仲裁ボリュームへの変換」

手順5.2「レプリカ 3 ボリュームの仲裁ボリュームへの変換」

手順

手順5.1 レプリカレプリカ 2 ボリュームの仲裁ボリュームへの変換ボリュームの仲裁ボリュームへの変換

警告 警告

geo レプリケーションが設定されている場合は、このプロセスを実行しないでくだ さい。競合状態が Bug 1683893 によって追跡されます。これは、geo レプリケー ションが有効になっている場合にボリュームを変換する際にデータが失われる可能 性があることを意味します。

1. 修復が進行中ではないことを確認します。修復が進行中ではないことを確認します。

# gluster volume heal VOLNAME info

保留中の修復エントリーが処理される 0 まで待ちます。

2. 自己修復の無効化および停止自己修復の無効化および停止

以下のコマンドを実行して、データ、メタデータ、およびエントリーの自己修復および自己修 復デーモンを無効にします。

# gluster volume set VOLNAME cluster.data-self-heal off

# gluster volume set VOLNAME cluster.metadata-self-heal off

# gluster volume set VOLNAME cluster.entry-self-heal off

# gluster volume set VOLNAME self-heal-daemon off 3. ボリュームに仲裁ブリックを追加するボリュームに仲裁ブリックを追加する

複製されたサブボリュームごとに Arbiter ブリックを追加してボリュームを変換します。

# gluster volume add-brick VOLNAME replica 3 arbiter 1 HOST:arbiter-brick-path

たとえば、既存の 2 方向の複製ボリューム testvol と Arbiter が使用する新しいブリックがある 場合は、以下のコマンドを使用してブリックを仲裁として追加できます。

# gluster volume add-brick testvol replica 3 arbiter 1 server:/bricks/arbiter_brick

既存の双方向の分散複製ボリュームがある場合には、以下のように、各サブボリュームに新し いブリックが必要です。これは、arbitrated distributedreplicated ボリュームに変換します。例 を以下に示します。

# gluster volume add-brick testvol replica 3 arbiter 1 server1:/bricks/arbiter_brick1 server2:/bricks/arbiter_brick2

4. クライアントのクライアントの volfiles が更新するのを待機します。が更新するのを待機します。

これには約 5 分かかります。

5. ブリックが正常に追加されたことの確認ブリックが正常に追加されたことの確認

# gluster volume info VOLNAME

# gluster volume status VOLNAME 6. Self-healing を再度有効にするを再度有効にする

以下のコマンドを実行して、サーバーで自己修復を再度有効にします。

# gluster volume set VOLNAME cluster.data-self-heal on

# gluster volume set VOLNAME cluster.metadata-self-heal on

# gluster volume set VOLNAME cluster.entry-self-heal on

# gluster volume set VOLNAME self-heal-daemon on 7. すべてのエントリーが修復されていることを確認します。すべてのエントリーが修復されていることを確認します。

# gluster volume heal VOLNAME info

すべての修復が正常に完了したこと 0 を確認するには、保留中の修復エントリーが完了するま で待ちます。

手順

手順5.2 レプリカレプリカ 3 ボリュームの仲裁ボリュームへの変換ボリュームの仲裁ボリュームへの変換

警告 警告

geo レプリケーションが設定されている場合は、このプロセスを実行しないでくだ さい。競合状態が Bug 1683893 によって追跡されます。これは、geo レプリケー ションが有効になっている場合にボリュームを変換する際にデータが失われる可能 性があることを意味します。

1. 修復が進行中ではないことを確認します。修復が進行中ではないことを確認します。

# gluster volume heal VOLNAME info

保留中の修復エントリーが処理される 0 まで待ちます。

2. ボリュームのレプリカ数をボリュームのレプリカ数を 2 に減らします。に減らします。

ボリュームのすべてのサブボリュームからブリックを 1 つ削除し、レプリカ数が 2 に減りま す。たとえば、2 つのサブボリュームにデータを分散するレプリカ 3 ボリュームで、以下のコ マンドを実行します。

# gluster volume remove-brick VOLNAME replica 2 HOST:subvol1-brick-path HOST:subvol2-brick-path force

注記 注記

分散複製ボリュームでは、データはサブボリュームに分散され、サブボリューム 内のブリック間で複製されます。つまり、ボリュームのレプリカ数を減らするに は、サブボリュームからブリックを削除する必要があります。

ブリックは、gluster volume info 出力内のサブボリュームでグループ化されま す。レプリカ数が 3 の場合、1 番目の 3 つ目のボリュームが 1 番目のサブボ リュームを形成すると、次の 3 つのブリックは 2 番目のサブボリュームを形成 します。

# gluster volume info VOLNAME [...]

Number of Bricks: 2 x 3 = 6 Transport-type: tcp

Bricks:

Brick1: node1:/test1/brick Brick2: node2:/test2/brick Brick3: node3:/test3/brick Brick4: node1:/test4/brick Brick5: node2:/test5/brick Brick6: node3:/test6/brick [...]

このボリュームでは、データは 2 つのサブボリュームに分配され、それぞれは 3 つのブリックで構成されます。最初のサブボリュームは、1、2、3 のブリックか ら構成されます。2 番目のサブボリュームは、4、5、6 のブリックで構成されて います。以下のコマンドを使用して、各サブボリュームからブリックを削除する と、必要に応じてレプリカ数が 2 に減ります。

# gluster volume remove-brick VOLNAME replica 2 HOST:subvol1-brick-path HOST:subvol2-brick-path force

3. 自己修復の無効化および停止自己修復の無効化および停止

以下のコマンドを実行して、データ、メタデータ、およびエントリーの自己修復および自己修 復デーモンを無効にします。

# gluster volume set VOLNAME cluster.data-self-heal off

# gluster volume set VOLNAME cluster.metadata-self-heal off

# gluster volume set VOLNAME cluster.entry-self-heal off

# gluster volume set VOLNAME self-heal-daemon off 4. ボリュームに仲裁ブリックを追加するボリュームに仲裁ブリックを追加する

複製されたサブボリュームごとに Arbiter ブリックを追加してボリュームを変換します。

# gluster volume add-brick VOLNAME replica 3 arbiter 1 HOST:arbiter-brick-path たとえば、既存の複製ボリュームがある場合には、以下のようになります。

# gluster volume add-brick testvol replica 3 arbiter 1 server:/bricks/brick 既存の分散複製ボリュームがある場合には、以下のようになります。

ドキュメント内 管理ガイド (ページ 88-100)