web-dev-qa-db-ja.com

glusterself-healを使用してdirの合計サイズを修復するにはどうすればよいですか

Glusterfsクラスターを構築します。タイプは、次のような4つのサーバーを備えたStriped ReplicatedVolumesです。

Volume Name: test-volume
Type: Striped-Replicate
Volume ID: bdb596e6-a7d2-44a4-8791-1b4fdc57469c
Status: Started
Number of Bricks: 1 x 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.90.245.18:/exp1
Brick2: 10.90.245.35:/exp2
Brick3: 10.90.245.36:/exp3
Brick4: 10.90.245.37:/exp4

100Gファイルをテストボリュームにアップロードしながら、クライアントからマウントします。サーバー上の各ファイルは50Gである必要があります。データをクラスターにアップロードしている間、クラスターのサーバーをオフにします。クライアントがファイルのアップロードを完了している間に、サーバーを起動し、サービスglusterdを起動します。そして、glusterボリュームは次のような情報を修復します。

root@alyrokif:/exp1# gluster volume heal test-volume info
Gathering Heal info on volume test-volume has been successful

Brick 10.90.245.18:/exp1
Number of entries: 0

Brick 10.90.245.35:/exp2
Number of entries: 0

Brick 10.90.245.36:/exp3
Number of entries: 0

Brick 10.90.245.37:/exp4
Number of entries: 0

そして、そのような再起動されたサーバーのストレージディレクトリ:

root@xetvmcjg:/exp2# ll -h
total 742M
drwxr-xr-x  3 root root 4.0K Mar 28 16:37 ./
drwxr-xr-x 24 root root 4.0K Mar 27 16:30 ../
drw------- 72 root root 4.0K Mar 28 16:36 .glusterfs/
-rw-r--r--  2 root root 50G Mar 28 16:37 testfile

他の3台のサーバーには50Gがありました。しかし、再起動されたサーバーには742MBしかありませんでした。では、どうすればこの742MBを50Gにすることができますか。

3
baoyin.li

Gluster3.3を使用していると思います

Glusterはプロアクティブな自己修復を行いますが、これに気付くために提案する必要があるかもしれません。これは、クライアントからファイルにアクセスすることでトリガーできます。これにより、同期が不完全であることが(10分以内に)認識され、修復が開始されます。

強制的に回復することもできます。

gluster volume heal testvol

そして、そうする必要があるかどうかに関係なく、ボリューム上のすべてを強制的に修復するために(ファイルがたくさんある場合は非常に長い時間がかかる可能性があります)

gluster volume heal testvol full

修復の進行状況を追跡するコマンドはすでに見つかりましたが、これはglusterログファイルにも反映されています。

1
sysadmin1138