11.15.2.2. gluster CLI からのファイルスプリットブレインのリカバリー
以下の方法で、gluster CLI からスプリットブレインを解決できます。
- より大きなファイルをソースとしてを使用
- 最新の mtime をソースとして使用します。
- 1 つのレプリカを特定のファイルのソースとして使用します。
- すべてのファイルに対して、1 つのレプリカをソースとして使用します。注記
entry/type-mismatch
スプリットブレイン解決は CLI を使用してサポートされていません。entry/type-mismatch
のスプリットブレインを解決する方法は、23章ファイルのスプリットブレインの手動リカバリー を参照してください。
より大きなファイルをソースとして選択
このメソッドは、ファイル修復ごとに有用で、サイズが大きくなるとファイルがソースとして考慮されることが判断されます。
- 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
# 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 チェックサムの違いが確認できます。 - ボリュームのルート (または) の 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 を持つファイルをソースとして考慮する必要がある場合に役に立ちます。
- 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
# 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 チェックサムと変更時間は相違点です。 - 以下のコマンドを実行します。
# 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 つのレプリカを選択する
このメソッドは、どのファイルをソースとして考慮するかを把握する場合に便利です。
- 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
# 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 チェックサムの違いが確認できます。 - 以下のコマンドを実行します。
# 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 つのレプリカをソースとして選択
このメソッドは、特定のブリックをレプリカのペアのスプリットブレインファイルのソースとして使用する場合に便利です。
- 以下のコマンドを実行して、スプリットブレインにあるファイルの一覧を取得します。
# gluster volume heal VOLNAME info split-brain
コマンド出力から、スプリットブレインにあるファイルを特定します。 - 以下のコマンドを実行します。
# gluster volume heal <VOLNAME> split-brain source-brick <HOSTNAME:BRICKNAME>
このコマンドでは、このレプリカのスプリットブレインにあるすべてのファイルについて、<HOSTNAME:BRICKNAME> 修復のソースとして取得されます。以下に例を示します。# gluster volume heal test-volume split-brain source-brick test-host:b1