11.9.4. 古いブリックを、Distributed-Dispersed ボリュームまたは分散ボリュームで新しいブログに置き換え

ディスクの障害やサーバーの障害など、ハードウェア障害の発生時に、1 つのブリックを置き換えることができます。置き換える必要のあるブリックは、オンラインまたはオフラインのどちらかですが、その他のすべてのブリックがオンラインである必要があります。
古いブリックを、Distributed ボリュームまたは Distributed-dispersed ボリュームで新しいブログに置き換え
  1. 古いブリックを置き換える新しいブリックが空であることを確認します。置き換える必要のあるブリックはオフラインの状態にすることができますが、その他のすべてのブリックはオンラインである必要があります。
  2. replace-brick コマンドを force オプションを指定して実行します。
    # gluster volume replace-brick VOL_NAME old_brick_path new_brick_path  commit force
    
    以下に例を示します。
    # gluster volume replace-brick test-volume server1:/rhgs/brick2 server1:/rhgs/brick2new  commit force
    volume replace-brick: success: replace-brick commit successful
    追加する新しいブリックは同じサーバーから表示するか、新しいサーバーを追加してから新しいブリックを追加してください。
  3. 新しいブリックがオンラインかどうかを確認します。
    # gluster volume status
    Status of volume: test-volume
    Gluster process                   TCP Port  RDMA Port  Online    Pid
    ------------------------------------------------------------------------------
    Brick server1:/rhgs/brick1        49187     0          Y       19927
    Brick server1:/rhgs/brick2new     49188     0          Y       19946
    Brick server2:/rhgs/brick3        49189     0          Y       19965
    Brick server2:/rhgs/brick4        49190     0          Y       19984
    Brick server3:/rhgs/brick5        49191     0          Y       20003
    Brick server3:/rhgs/brick6        49192     0          Y       20022
    NFS Server on localhost             N/A       N/A        N       N/A
    Self-heal Daemon on localhost       N/A       N/A        Y       20043
    
    Task Status of Volume test-volume
    ------------------------------------------------------------------------------
    There are no active volume tasks
    
  4. 新たに追加したブリックのデータは自動的に修復されます。修復するデータ量によっては、時間がかかる可能性があります。ブリックを置き換えた後に修復情報を確認して、他のブリックを置き換えたり削除する前に、すべてのデータが修復されたことを確認することが推奨されます。
    # gluster volume heal VOL_NAME info
    以下に例を示します。
    # gluster volume heal test-volume info
    Brick server1:/rhgs/brick1
    Status: Connected
    Number of entries: 0
    
    Brick server1:/rhgs/brick2new
    Status: Connected
    Number of entries: 0
    
    Brick server2:/rhgs/brick3
    Status: Connected
    Number of entries: 0
    
    Brick server2:/rhgs/brick4
    Status: Connected
    Number of entries: 0
    
    Brick server3:/rhgs/brick5
    Status: Connected
    Number of entries: 0
    
    Brick server3:/rhgs/brick6
    Status: Connected
    Number of entries: 0
    
    修復が完了したら、Number of entries フィールドの値はゼロとして表示されます。
  5. Red Hat Gluster Storage 3.4 では、heal info コマンドの summary オプションが導入されました。このコマンドは、スプリットブレインで待機しているエントリーの統計と、修復中のエントリーを表示します。このコマンドはエントリー数のみを表示し、実際の file-names または gfids は出力されません。
    ボリュームの概要を取得するには、以下のコマンドを実行します。
    # gluster volume heal VOLNAME info summary
    以下に例を示します。
    # gluster volume heal test-volume info summary
                Command output: Brick 192.168.2.8:/brick/1
                Status: Connected
                Total Number of entries: 363
                Number of entries in heal pending: 362
                Number of entries in split-brain: 0
                Number of entries possibly healing: 1
    
    注記
    'summary' オプションは、'info' コマンドとは異なり、ブリックに関する詳細情報を提供します。概要情報は、’info’ コマンドと同じように取得されます。
    --xml パラメーターは、XML 形式の summary オプションの出力を提供します。
    # gluster volume heal test-volume info summary --xml
    
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <cliOutput>
        <healInfo<
          <bricks>
            <brick hostUuid="9105dd4b-eca8-4fdb-85b2-b81cdf77eda3">
              <name>192.168.2.8:/brick/1</name>
                <status>Connected</status>
                  <totalNumberOfEntries>363</totalNumberOfEntries>
            <numberOfEntriesInHealPending>362</numberOfEntriesInHealPending>
                <numberOfEntriesInSplitBrain>0</numberOfEntriesInSplitBrain>
          <numberOfEntriesPossiblyHealing>1</numberOfEntriesPossiblyHealing>
                </brick>
              </bricks>
            </healInfo>
          <opRet>0</opRet>
        <opErrno>0</opErrno>
      <opErrstr/>
    </cliOutput>