ล้างข้อผิดพลาด ZFS ถาวรในพูลที่มีประโยชน์


20

ฉันขัดสระในวันนี้และหลังจากขัดเสร็จฉันสังเกตเห็นว่ามีข้อผิดพลาดที่ไฟล์เสียหาย ฉันไม่สนใจเกี่ยวกับไฟล์ดังนั้นฉันจึงลบมัน น่าเสียดายที่ข้อผิดพลาดยังคงอยู่ (ตอนนี้ถูกอ้างอิงโดยเลขฐานสิบหกและไม่ใช่ชื่อไฟล์) และฉันไม่รู้วิธีล้างมัน

  • ฉันควรจะกังวลไหม ฉันยังไม่เป็นอิสระจากข้อผิดพลาดนี้หรือยัง
  • ฉันสามารถแก้ไขข้อผิดพลาดได้หรือไม่? หากไฟล์หายไปฉันไม่ต้องการเห็นข้อผิดพลาดนี้อีกในอนาคต

สำหรับการอ้างอิงต่อไปนี้เป็นคำสั่งที่ฉันใช้และเอาต์พุตที่มีหมายเหตุประกอบ:

กำลังตรวจสอบสถานะ

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>

มันดูไม่ดีเลย!


ไฟล์ส่วนหนึ่งของสแน็ปช็อต (รายการ zfs -t all) และถูกเก็บไว้รอบ ๆ หรือไม่?
ลันด์แมน

คำตอบ:


14

ขัดผิวสระอีกครั้ง (ถ้าคุณยังไม่ได้ทำ):

zpool scrub

ข้อผิดพลาดนั้นกำลังบอกคุณว่า inode <0x9f115> เสียหาย (การลบไฟล์ทำให้การแมปไฟล์ inode เสียหาย>> ดังนั้นจึงเป็นเพียงการรายงาน inode ทันที) อาจมีบางอย่างที่ยังคงเปิดไฟล์อยู่หรือเมตาดาต้าต้องการเพียงล้างข้อมูล

หากต้องการล้างข้อผิดพลาดหากคุณไม่จำเป็นต้องขัดสีและสกปรกด้วย zdb ซึ่งไม่ได้จัดทำเอกสารแบบสาธารณะโดย oracle (และเอกสารไม่ดีที่อื่น) - และในอัตราใด ๆ ก็อาจบ่งบอกถึงสิ่งผิดปกติได้


7

ฉันรู้ว่าฉันมาสายไปงานปาร์ตี้ แต่แค่อยากจะเพิ่มว่าถ้าการขัดเพิ่มเติมไม่สามารถแก้ไขปัญหาเช่นนี้ได้แทนที่จะมองzdbคุณก็สามารถเริ่มขัดได้แล้วปล่อยให้มันทำงานสักสองสามนาทีและ zpool scrub -s zstorageแล้วหยุดมันด้วย ที่จะทำงานสำหรับฉันที่ล้างข้อผิดพลาดถาวรสำหรับไฟล์เมื่อเมื่อข้อผิดพลาดการอ่าน / เขียน / การตรวจสอบทั้งหมดอยู่ที่ศูนย์

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

แก้ไข:หลังจากที่ต้องทำเช่นนี้สองสามครั้งฉันก็ตระหนักว่าระยะเวลาที่คุณปล่อยให้การขัดถูนั้นส่งผลต่อการทำงานของมันหรือไม่ (ขึ้นอยู่กับว่าบล็อกนั้นมีลักษณะอย่างไรในตอนแรก) ดังนั้นถ้ามันไม่ทำงานในตอนแรกลองอีกสองสามครั้งและปรับเวลาของเมื่อคุณหยุดมัน


สำหรับฉันมันใช้งานไม่ได้ - ข้อผิดพลาดถาวรยังคงอยู่ที่นั่นและฉันจะเห็นพวกเขาอีกครั้งหากฉันขัดเต็ม
William Stein

3
นั่นทำเพื่อฉัน ฉันได้ทำการขัดแบบเต็มและข้อผิดพลาดไม่ได้ถูกล้าง แต่จากนั้นฉันก็เริ่ม -> หยุดและมันก็สะอาด ขอบคุณ
Stu

ตอนนี้ดูเหมือนจะใช้งานได้สำหรับฉัน (ตอนนี้ฉันใช้ ZFS เวอร์ชันล่าสุดบน linux แล้ว)
วิลเลียมสไตน์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.