11.15.2.2. gluster CLI からのファイルスプリットブレインのリカバリー

以下の方法で、gluster CLI からスプリットブレインを解決できます。
  • より大きなファイルをソースとしてを使用
  • 最新の mtime をソースとして使用します。
  • 1 つのレプリカを特定のファイルのソースとして使用します。
  • すべてのファイルに対して、1 つのレプリカをソースとして使用します。
    注記
    entry/type-mismatch スプリットブレイン解決は CLI を使用してサポートされていません。entry/type-mismatch のスプリットブレインを解決する方法は、23章ファイルのスプリットブレインの手動リカバリー を参照してください。

より大きなファイルをソースとして選択

このメソッドは、ファイル修復ごとに有用で、サイズが大きくなるとファイルがソースとして考慮されることが判断されます。

  1. 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
    # gluster volume heal VOLNAME info split-brain
    Brick <hostname:brickpath-b1>
    <gfid:aaca219f-0e25-4576-8689-3bfd93ca70c2>
    <gfid:39f301ae-4038-48c2-a889-7dac143e82dd>
    <gfid:c3c94de2-232d-4083-b534-5da17fc476ac>
    Number of entries in split-brain: 3
    
    Brick <hostname:brickpath-b2>
    /dir/file1
    /dir
    /file4
    Number of entries in split-brain: 3
    コマンド出力から、スプリットブレインにあるファイルを特定します。
    ブリックからファイルで stat および md5 チェックサムを実行すると、ファイルサイズと md5 のチェックサムに違いがあります。以下は、ファイルの stat および md5 のチェックサム出力です。
    On brick b1:
    # stat b1/dir/file1
      File: ‘b1/dir/file1’
      Size: 17              Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919362      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 13:55:40.149897333 +0530
    Modify: 2015-03-06 13:55:37.206880347 +0530
    Change: 2015-03-06 13:55:37.206880347 +0530
     Birth: -
    
    # md5sum b1/dir/file1
    040751929ceabf77c3c0b3b662f341a8  b1/dir/file1
    
    On brick b2:
    # stat b2/dir/file1
      File: ‘b2/dir/file1’
      Size: 13              Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919365      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 13:54:22.974451898 +0530
    Modify: 2015-03-06 13:52:22.910758923 +0530
    Change: 2015-03-06 13:52:22.910758923 +0530
     Birth: -
    
    # md5sum b2/dir/file1
    cb11635a45d45668a403145059c2a0d5  b2/dir/file1
    ファイルのサイズと md5 チェックサムの違いが確認できます。
  2. ボリュームのルート (または) の gfid-string 表現から表示される完全なファイル名と共に以下のコマンドを実行します。このファイルは、heal info コマンドの出力に表示されます。
    # gluster volume heal <VOLNAME> split-brain bigger-file <FILE>
    以下に例を示します。
    # gluster volume heal test-volume split-brain bigger-file /dir/file1
    Healed /dir/file1.
修復が完了したら、両方のブリックの md5sum とファイルサイズが同じである必要があります。以下は、ファイル修復の完了後の stat および md5 checksums コマンドの出力例です。
On brick b1:
# stat b1/dir/file1
  File: ‘b1/dir/file1’
  Size: 17              Blocks: 16         IO Block: 4096   regular file
Device: fd03h/64771d    Inode: 919362      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-03-06 14:17:27.752429505 +0530
Modify: 2015-03-06 13:55:37.206880347 +0530
Change: 2015-03-06 14:17:12.880343950 +0530
 Birth: -

# md5sum b1/dir/file1
040751929ceabf77c3c0b3b662f341a8  b1/dir/file1

On brick b2:
# stat b2/dir/file1
  File: ‘b2/dir/file1’
  Size: 17              Blocks: 16         IO Block: 4096   regular file
Device: fd03h/64771d    Inode: 919365      Links: 2
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2015-03-06 14:17:23.249403600 +0530
Modify: 2015-03-06 13:55:37.206880000 +0530
Change: 2015-03-06 14:17:12.881343955 +0530
 Birth: -

# md5sum b2/dir/file1
040751929ceabf77c3c0b3b662f341a8  b2/dir/file1

最新の mtime をソースとするファイルの選択

このメソッドはファイル修復ごとに有用で、最新の mtime を持つファイルをソースとして考慮する必要がある場合に役に立ちます。

  1. 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
    # gluster volume heal VOLNAME info split-brain
    Brick <hostname:brickpath-b1>
    <gfid:aaca219f-0e25-4576-8689-3bfd93ca70c2>
    <gfid:39f301ae-4038-48c2-a889-7dac143e82dd>
    <gfid:c3c94de2-232d-4083-b534-5da17fc476ac>
    Number of entries in split-brain: 3
    
    Brick <hostname:brickpath-b2>
    /dir/file1
    /dir
    /file4
    Number of entries in split-brain: 3
    コマンド出力から、スプリットブレインにあるファイルを特定します。
    ブリックからファイルで stat および md5 チェックサムを実行すると、ファイルサイズと md5 のチェックサムに違いがあります。以下は、ファイルの stat および md5 のチェックサム出力です。
    On brick b1:
    
     stat b1/file4
      File: ‘b1/file4’
        Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919356      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 13:53:19.417085062 +0530
    Modify: 2015-03-06 13:53:19.426085114 +0530
    Change: 2015-03-06 13:53:19.426085114 +0530
     Birth: -
    
    
    # md5sum b1/file4
    b6273b589df2dfdbd8fe35b1011e3183  b1/file4
    
    On brick b2:
    
    # stat b2/file4
      File: ‘b2/file4’
      Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919358      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 13:52:35.761833096 +0530
    Modify: 2015-03-06 13:52:35.769833142 +0530
    Change: 2015-03-06 13:52:35.769833142 +0530
     Birth: -
    
    
    # md5sum b2/file4
    0bee89b07a248e27c83fc3d5951213c1  b2/file4
    md5 チェックサムと変更時間は相違点です。
  2. 以下のコマンドを実行します。
    # gluster volume heal <VOLNAME> split-brain latest-mtime <FILE>
    このコマンドでは、FILE は、ボリュームのルートで表示される完全なファイル名か、ファイルの gfid-string 表現のいずれかになります。
    以下に例を示します。
    # gluster volume heal test-volume split-brain latest-mtime /file4
    Healed /file4
    
    修復が完了したら、md5 チェックサム、ファイルサイズ、および両方のブリック時間が同じである必要があります。以下は、ファイル修復の完了後の stat および md5 checksums コマンドの出力例です。ブリックには、最新の mtime (brick b1) をソースとして持つことで、ファイルが修復されていることが分かります。
    On brick b1:
    # stat b1/file4
      File: ‘b1/file4’
      Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919356      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 14:23:38.944609863 +0530
    Modify: 2015-03-06 13:53:19.426085114 +0530
    Change: 2015-03-06 14:27:15.058927962 +0530
     Birth: -
    
    # md5sum b1/file4
    b6273b589df2dfdbd8fe35b1011e3183  b1/file4
    
    On brick b2:
    # stat b2/file4
     File: ‘b2/file4’
       Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919358      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 14:23:38.944609000 +0530
    Modify: 2015-03-06 13:53:19.426085000 +0530
    Change: 2015-03-06 14:27:15.059927968 +0530
     Birth:
    
    # md5sum b2/file4
    b6273b589df2dfdbd8fe35b1011e3183  b2/file4

特定のファイルのソースとして 1 つのレプリカを選択する

このメソッドは、どのファイルをソースとして考慮するかを把握する場合に便利です。

  1. 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
    # gluster volume heal VOLNAME info split-brain
    Brick <hostname:brickpath-b1>
    <gfid:aaca219f-0e25-4576-8689-3bfd93ca70c2>
    <gfid:39f301ae-4038-48c2-a889-7dac143e82dd>
    <gfid:c3c94de2-232d-4083-b534-5da17fc476ac>
    Number of entries in split-brain: 3
    
    Brick <hostname:brickpath-b2>
    /dir/file1
    /dir
    /file4
    Number of entries in split-brain: 3
    コマンド出力から、スプリットブレインにあるファイルを特定します。
    ブリックからファイルで stat および md5 チェックサムを実行すると、ファイルサイズと md5 のチェックサムに違いがあります。以下は、ファイルの stat および md5 のチェックサム出力です。
    On brick b1:
    
     stat b1/file4
      File: ‘b1/file4’
      Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919356      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 13:53:19.417085062 +0530
    Modify: 2015-03-06 13:53:19.426085114 +0530
    Change: 2015-03-06 13:53:19.426085114 +0530
     Birth: -
    
    # md5sum b1/file4
    b6273b589df2dfdbd8fe35b1011e3183  b1/file4
    
    On brick b2:
    
    # stat b2/file4
      File: ‘b2/file4’
      Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919358      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 13:52:35.761833096 +0530
    Modify: 2015-03-06 13:52:35.769833142 +0530
    Change: 2015-03-06 13:52:35.769833142 +0530
     Birth: -
    
    # md5sum b2/file4
    0bee89b07a248e27c83fc3d5951213c1  b2/file4
    ファイルのサイズと md5 チェックサムの違いが確認できます。
  2. 以下のコマンドを実行します。
    # gluster volume heal <VOLNAME> split-brain source-brick <HOSTNAME:BRICKNAME> <FILE>
    このコマンドでは、<HOSTNAME:BRICKNAME> に存在する FILE が、修復のソースとして取得されます。
    以下に例を示します。
    # gluster volume heal test-volume split-brain source-brick test-host:b1 /file4
    Healed /file4
    修復が完了したら、両方のブリックの md5 チェックサムとファイルサイズが同じである必要があります。以下は、ファイル修復の完了後の stat および md5 checksums コマンドの出力例です。
    On brick b1:
    # stat b1/file4
      File: ‘b1/file4’
      Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919356      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 14:23:38.944609863 +0530
    Modify: 2015-03-06 13:53:19.426085114 +0530
    Change: 2015-03-06 14:27:15.058927962 +0530
     Birth: -
    
    # md5sum b1/file4
    b6273b589df2dfdbd8fe35b1011e3183  b1/file4
    
    On brick b2:
    # stat b2/file4
     File: ‘b2/file4’
      Size: 4               Blocks: 16         IO Block: 4096   regular file
    Device: fd03h/64771d    Inode: 919358      Links: 2
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2015-03-06 14:23:38.944609000 +0530
    Modify: 2015-03-06 13:53:19.426085000 +0530
    Change: 2015-03-06 14:27:15.059927968 +0530
     Birth: -
    
    # md5sum b2/file4
    b6273b589df2dfdbd8fe35b1011e3183  b2/file4

全ファイルの 1 つのレプリカをソースとして選択

このメソッドは、特定のブリックをレプリカのペアのスプリットブレインファイルのソースとして使用する場合に便利です。

  1. 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
    # gluster volume heal VOLNAME info split-brain
    コマンド出力から、スプリットブレインにあるファイルを特定します。
  2. 以下のコマンドを実行します。
    # gluster volume heal <VOLNAME> split-brain source-brick <HOSTNAME:BRICKNAME>
    このコマンドでは、このレプリカのスプリットブレインにあるすべてのファイルについて、<HOSTNAME:BRICKNAME> 修復のソースとして取得されます。
    以下に例を示します。
    # gluster volume heal test-volume split-brain source-brick test-host:b1