web-dev-qa-db-ja.com

正常なプールの永続的なZFSエラーをクリアする

今日、プールをスクラブしました。スクラブが終了した後、ファイルを破損するエラーが発生していることに気付きました。ファイルは気にしなかったので削除しました。残念ながら、エラーは残っており(現在はファイル名ではなく16進数のIDで参照されています)、それをクリアする方法がわかりません。

  • 心配する必要がありますか?私はまだこのエラーから本当に解放されていませんか?
  • エラーをクリアできますか?ファイルがなくなった場合、今後このエラーを表示したくありません。

参考までに、私が発行したコマンドと出力を、注釈付きで以下に示します。

ステータスの確認

kevin@atlas:~$ Sudo zpool status -v

pool: zstorage
state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
see: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
config:

    NAME                                          STATE     READ WRITE CKSUM
    zstorage                                      ONLINE       0     0     0
    raidz1-0                                    ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        /zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause/03 Harmony One.mp3

ルートに切り替えてファイルを削除する-不要

kevin@atlas:~$ Sudo -i

root@atlas:~# cd /zstorage/owncloud/kevin/files/Archives/Music/Kev\ Rev\ 7/graveyard/Old/Four\ Tet/Pause/

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# rm 03\ Harmony\ One.mp3

ステータスを再度確認しています

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# zpool status -v

pool: zstorage
state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
see: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
config:

    NAME                                          STATE     READ WRITE CKSUM
    zstorage                                      ONLINE       0     0     1
    raidz1-0                                    ONLINE       0     0     2
        ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        zstorage:<0x9f115>

ええと、エラーをクリアできるでしょうか?

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# zpool clear zstorage

root@atlas:/zstorage/owncloud/kevin/files/Archives/Music/Kev Rev 7/graveyard/Old/Four Tet/Pause# zpool status -v

pool: zstorage
state: ONLINE
status: One or more devices has experienced an error resulting in data
    corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
    entire pool from backup.
see: zfsonlinux.org/msg/ZFS-8000-8A
scan: scrub repaired 1.81M in 7h19m with 1 errors on Wed Feb 19 10:04:44 2014
config:

    NAME                                          STATE     READ WRITE CKSUM
    zstorage                                      ONLINE       0     0     0
    raidz1-0                                    ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WCC1T1735698  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00DC0B0_WD-WMC1T0506289  ONLINE       0     0     0
        ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2711600  ONLINE       0     0     0

errors: Permanent errors have been detected in the following files:

        zstorage:<0x9f115>

これは見栄えがしません!

21
Kevin Wood

プールをもう一度スクラブします(まだスクラブしていない場合)。

zpoolスクラブzstorage

そのエラーは、inode <0x9f115>が破損していることを示しています(ファイルを削除すると、filename-> inodeマッピングが壊れたため、inodeがレポートされます)。何かがまだファイルを開いているか、メタデータをクリーンアップする必要があるだけです(スクラブで行う必要があります)。

スクラブが発生しない場合にエラーをクリアするには、Oracleによって公に文書化されていない(および他の場所では十分に文書化されていない)zdbを使用してダーティにする必要があります。

16
quadruplebucky

私はパーティーに遅刻しているのはわかっていますが、追加のスクラブでこのような問題が解決しない場合は、zdbを調べる代わりに、スクラブを開始して実行できるようにしたかっただけです。数分後、zpool scrub -s zstorageで停止します。これは、すべての読み取り/書き込み/チェックサムエラーがゼロのときにファイルの永続的なエラーをクリアするのに役立ちました。

http://unixetc.co.uk/2012/01/22/zfs-corruption-persists-in-unlinked-files/

EDIT:これを数回実行する必要があった後、スクラブを実行させる時間の長さが、動作するかどうかに影響することにも気付きました(それが行うブロックは最初に見えます)。最初はうまくいかない場合は、数回試して、停止するタイミングを調整してください。

8
4oo4