11.8. ボリュームの縮小

信頼できるストレージプールがオンラインになり、利用可能な間にボリュームを縮小できます。たとえば、ハードウェアやネットワークの障害により、分散ボリュームでアクセスできなくなるブリックを削除する必要がある場合があります。
分散レプリケートされたボリュームを縮小する場合、削除されるブリックの数はレプリカ数の倍数である必要があります。たとえば、レプリカ数 3 で分散レプリケートされたボリュームを縮小するには、ブリックを 3 の倍数 (6、9、12 など) から削除する必要があります。また、削除するブリックは、同じサブボリューム (同じレプリカセット) からのものである必要があります。データを移行し、削除ブリック操作を行うには、複製していないボリュームですべてのブリックが利用できる必要があります。複製ボリュームまたは判別ボリュームでは、レプリカセットの少なくとも 1 つのデータブリックが利用できる必要があります。
このガイドラインは、arbiter ブリックを使用して Distributed Replicated ボリュームからディストリビューションセットを削除する場合と同じです。判別分散複製ボリュームのレプリカ数をレプリカ 3 に減らす場合は、判別ブリックのみを削除する必要があります。複製された分散型分散からボリュームを減らす場合は、各レプリカサブボリュームから arbiter ブリックと 1 つのレプリカブリックを削除します。

ボリュームの縮小

  1. 以下のコマンドを使用してブリックを削除します。
    # gluster volume remove-brick VOLNAME BRICK start
    以下に例を示します。
    # gluster volume remove-brick test-volume server2:/rhgs/brick2 start
              Remove Brick start successful
    注記
    remove-brick コマンドが force で実行されるか、オプションなしで実行すると、ブリックのデータは glusterFS マウントポイントからアクセスできなくなります。start オプションを使用すると、データは他のブリックに移行され、コミットに成功すると、削除されたブリック情報がボリューム設定から削除されます。データには依然としてブリックから直接アクセスできます。
  2. 以下のコマンドを使用して、削除ブリック操作のステータスを表示することができます。
    # gluster volume remove-brick VOLNAME BRICK status
    以下に例を示します。
    # gluster volume remove-brick test-volume server2:/rhgs/brick2 status
          Node Rebalanced  size scanned failures skipped   status  run time
    	         -files					                                     in h:m:s
    ----------  --------- ------ ------ -------- ------  --------- --------
    localhost        5032 43.4MB  27715       0    5604  completed  0:15:05
    10.70.43.41         0 0Bytes      0       0       0  completed  0:08:18
    
    volume rebalance: test-volume: success
  3. 以前の status コマンドで表示されるデータ移行が完了したら、以下のコマンドを実行してブリック削除をコミットします。
    # gluster volume remove-brick VOLNAME BRICK commit
    以下に例を示します。
    # gluster volume remove-brick test-volume server2:/rhgs/brick2 commit
  4. ブリックを削除したら、以下のコマンドを使用してボリューム情報を確認できます。
    # gluster volume info 
    このコマンドは、以下のような情報を表示します。
    # gluster volume info
    Volume Name: test-volume
    Type: Distribute
    Status: Started
    Number of Bricks: 3
    Bricks:
    Brick1: server1:/rhgs/brick1
    Brick3: server3:/rhgs/brick3
    Brick4: server4:/rhgs/brick4

11.8.1. Geo レプリケーションボリュームの縮小

  1. 以下のコマンドを使用してブリックを削除します。
    # gluster volume remove-brick VOLNAME BRICK start
    以下に例を示します。
    # gluster volume remove-brick MASTER_VOL MASTER_HOST:/rhgs/brick2 start
    Remove Brick start successful
    注記
    remove-brick コマンドが force で実行されるか、オプションなしで実行すると、ブリックのデータは glusterFS マウントポイントからアクセスできなくなります。start オプションを使用すると、データは他のブリックに移行され、コミットに成功すると、削除されたブリック情報がボリューム設定から削除されます。データには依然としてブリックから直接アクセスできます。
  2. Geo レプリケーション config checkpoint を使用して、そのブリックのすべてのデータがスレーブに同期されるようにします。
    1. チェックポイントを設定して、データ同期のステータスを確認します。
      # gluster volume geo-replication MASTER_VOL SLAVE_HOST::SLAVE_VOL config checkpoint now
    2. 以下のコマンドを使用して、geo レプリケーションセッションのチェックポイント完了を確認します。
      # gluster volume geo-replication MASTER_VOL SLAVE_HOST::SLAVE_VOL status detail
  3. 以下のコマンドを使用して、削除ブリック操作のステータスを表示することができます。
    # gluster volume remove-brick VOLNAME BRICK status
    以下に例を示します。
    # gluster volume remove-brick  MASTER_VOL MASTER_HOST:/rhgs/brick2 status
  4. プライマリーとセカンダリーの間の geo レプリケーションセッションを停止します。
    # gluster volume geo-replication MASTER_VOL SLAVE_HOST::SLAVE_VOL stop
  5. 以前の status コマンドで表示されるデータ移行が完了したら、以下のコマンドを実行してブリック削除をコミットします。
    # gluster volume remove-brick VOLNAME BRICK commit
    以下に例を示します。
    # gluster volume remove-brick  MASTER_VOL MASTER_HOST:/rhgs/brick2 commit
  6. ブリックを削除したら、以下のコマンドを使用してボリューム情報を確認できます。
    # gluster volume info 
  7. ホスト間の geo レプリケーションセッションを開始します。
    # gluster volume geo-replication MASTER_VOL SLAVE_HOST::SLAVE_VOL start