FreeNAS 混亂:不確定發生了什麼。raidz1“降級”,磁碟“故障”
對不起,敘述很長,但我完全糊塗了。
我在一個配置為 raidz 卷的 5x3TB SATA 磁碟的盒子上使用 FreeNAS-8.0.4-RELEASE-p2-x64 (11367)。
幾天前,控制台給了我這個警報:
CRITICAL: The volume raid-5x3 (ZFS) status is DEGRADED
zpool status
給了:pool: raid-5x3 state: DEGRADED 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: http://www.sun.com/msg/ZFS-8000-8A scrub: resilver completed after 3h25m with 7607009 errors on Sun Aug 12 06:26:44 2012 config: NAME STATE READ WRITE CKSUM raid-5x3 DEGRADED 0 0 7.29M raidz1 DEGRADED 0 0 14.7M ada0p2 ONLINE 0 0 0 10739480653363274060 FAULTED 0 0 0 was /dev/ada1p2 ada2p2 ONLINE 0 0 0 ada3p2 ONLINE 0 0 3 254M resilvered ada1p2 ONLINE 0 0 0 errors: 7607009 data errors, use '-v' for a list
我做了一個
zpool status -v
並得到:
Permanent errors have been detected in the following files:
它列出了 2,660 個文件(大約 50,000 個)
加上以下內容:
raid-5x3/alpha:<0x0> raid-5x3/alpha:<0xf5ec> raid-5x3/alpha:<0xf5ea>
我們關閉了伺服器,放入了一個新驅動器,除了已經存在的五個驅動器。
去控制台
view disks
,它只是說永遠“載入” *無法進入“替換”選項!然後我們得到:
zpool status -v pool: raid-5x3 state: DEGRADED 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: http://www.sun.com/msg/ZFS-8000-8A scrub: none requested config: NAME STATE READ WRITE CKSUM raid-5x3 DEGRADED 0 0 0 raidz1 DEGRADED 0 0 0 ada0p2 ONLINE 0 0 0 10739480653363274060 UNAVAIL 0 0 0 was /dev/ada1p2 ada2p2 ONLINE 0 0 0 ada3p2 ONLINE 0 0 0 ada1p2 ONLINE 0 0 0 errors: Permanent errors have been detected in the following files: raid-5x3/alpha:<0x0> /mnt/raid-5x3/alpha/staff/Sound FX jw/Sound FX - scary horror/11 DR-EerieAct3-Waterphone..aif /mnt/raid-5x3/alpha/staff/Wheelhouse Shoots/ROCKY_THE_MUSICAL/ SHOOTS/WESTPORT/Cannon-CARD-B/CONTENTS/CLIPS001/AA0876/AA087601.SIF
…然後是 2,860 個文件和“raid-5x3/alpha:<….>”條目…
camcontrol devlist
:<ST3000DM001-9YN166 CC4C> at scbus4 target 0 lun 0 (ada0,pass0) <WDC WD30EZRX-00MMMB0 80.00A80> at scbus4 target 1 lun 0 (aprobe1,pass6,ada4) <WDC WD30EZRX-00MMMB0 80.00A80> at scbus5 target 0 lun 0 (ada1,pass1) <ST3000DM001-9YN166 CC4C> at scbus5 target 1 lun 0 (ada2,pass2) <ASUS DRW-24B1ST a 1.04> at scbus6 target 0 lun 0 (cd0,pass3) <Hitachi HDS5C3030ALA630 MEAOA580> at scbus7 target 0 lun 0 (ada3,pass4) < USB Flash Memory 1.00> at scbus8 target 0 lun 0 (da0,pass5)
gpart show
=> 63 7831467 da0 MBR (3.7G) 63 1930257 1 freebsd [active] (943M) 1930320 63 - free - (32K) 1930383 1930257 2 freebsd (943M) 3860640 3024 3 freebsd (1.5M) 3863664 41328 4 freebsd (20M) 3904992 3926538 - free - (1.9G) => 0 1930257 da0s1 BSD (943M) 0 16 - free - (8.0K) 16 1930241 1 !0 (943M) => 34 5860533101 ada0 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada1 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada2 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada3 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada4 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T)
glabel status
Name Status Components ufs/FreeNASs3 N/A da0s3 ufs/FreeNASs4 N/A da0s4 ufs/FreeNASs1a N/A da0s1a gptid/446dd91d-8f15-11e1-a14c-f46d049aaeca N/A ada4p1 gptid/447999cb-8f15-11e1-a14c-f46d049aaeca N/A ada4p2
似乎新驅動器未正確連接?
重新連接它並重新啟動。
現在控制台顯示綠燈警報。
但是當我去“查看所有捲”時,它只是說“正在載入……”
然後:
glabel status
Name Status Components ufs/FreeNASs3 N/A da0s3 ufs/FreeNASs4 N/A da0s4 ufs/FreeNASs1a N/A da0s1a
camcontrol devlist:程式碼:在 scbus0 目標 0 lun 0 (ada0,pass0) 在 scbus4 目標 0 lun 0 (ada1,pass1) 在 scbus4 目標 1 lun 0 (ada2,pass2) 在 scbus5 目標 0 lun 0 (ada3,pass3) 在scbus5 目標 1 lun 0 (ada4,pass4) 在 scbus6 目標 0 lun 0 (cd0,pass5) 在 scbus7 目標 0 lun 0 (ada5,pass6) <USB 快閃記憶體 1.00> 在 scbus8 目標 0 lun 0 (da0,pass7)
gpart show
=> 63 7831467 da0 MBR (3.7G) 63 1930257 1 freebsd [active] (943M) 1930320 63 - free - (32K) 1930383 1930257 2 freebsd (943M) 3860640 3024 3 freebsd (1.5M) 3863664 41328 4 freebsd (20M) 3904992 3926538 - free - (1.9G) => 0 1930257 da0s1 BSD (943M) 0 16 - free - (8.0K) 16 1930241 1 !0 (943M) => 34 5860533101 ada1 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada2 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada3 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada4 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T) => 34 5860533101 ada5 GPT (2.7T) 34 94 - free - (47K) 128 4194304 1 freebsd-swap (2.0G) 4194432 5856338703 2 freebsd-zfs (2.7T)
zpool status
:pool: raid-5x3 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: http://www.sun.com/msg/ZFS-8000-8A scrub: none requested config: NAME STATE READ WRITE CKSUM raid-5x3 ONLINE 0 0 0 raidz1 ONLINE 0 0 0 ada1p2 ONLINE 0 0 0 ada2p2 ONLINE 0 0 2 ada4p2 ONLINE 0 0 0 ada5p2 ONLINE 0 0 0 ada3p2 ONLINE 0 0 0 errors: 7607009 data errors, use '-v' for a list
此時,FreeNAS 論壇上有人說,“你完蛋了,在某些時候你有 2 個磁碟發生故障,再見數據。”
這是真的?
我點擊了“scrub”按鈕……zpool 狀態顯示“resilver 正在進行中……還有 900 小時”……這就像一個月……並且一直持續到 30,000 小時……
**切入:**今天,我們重新檢查了所有驅動器上的所有連接。
然後它再次開始重新同步,但速度要快得多。
我隨機檢查了幾個文件——以前報告為損壞的文件,現在它們“似乎”沒問題。(這意味著我能夠複製和播放它們——我們的大部分數據都是影片文件。)
我想做的是將我們沒有備份且未損壞的所有內容複製到另一台機器,然後將其升級到RAIDZ2。
我在想也許發生的事情是 2 個驅動器脫落了。我認為我們的熱插拔托架質量很差。
但是,話又說回來,他們確實看起來是有聯繫的,只是出了故障……我不知道。
resilver 在 3.5 小時內完成。
現在 zpool status 說:
pool: raid-5x3 state: ONLINE scrub: resilver completed after 3h31m with 0 errors on Fri Aug 17 21:46:12 2012 config: NAME STATE READ WRITE CKSUM raid-5x3 ONLINE 0 0 0 raidz1 ONLINE 0 0 0 ada1p2 ONLINE 0 0 0 ada2p2 ONLINE 0 0 0 236G resilvered ada4p2 ONLINE 0 0 0 ada5p2 ONLINE 0 0 0 252G resilvered ada3p2 ONLINE 0 0 0 errors: No known data errors
這是否意味著數據已恢復?“沒有已知錯誤”聽起來很有希望!
我現在已經開始磨砂了。(還有 8 小時。)
我們沒有所有數據的備份……所以我們需要找出這些文件中的哪些已損壞,哪些是可用的。
驅動器發生故障了嗎?如果有,是哪一個?還是剛剛鬆動?
我需要更換一個嗎?二?
我們的任何數據安全嗎?如果是這樣,哪些文件?
我還沒有使用足夠多的 zfs 來說明數據完整性。zpool 列表給出了 raidz1-0 線上 0 0 0 c8t1d0p0 線上 0 0 0 c8t2d0p0 線上 0 0 0 c8t3d0p0 線上 0 0 0
smartctl -d sat,12 -a /dev/rdsk/c8t3d0p0 列出特定屬性。-d sat -data -d scsi 可能會使其工作,具體取決於您擁有的驅動器類型。查看原始讀取錯誤率、重定位扇區數、尋軌錯誤率、硬體 ecc 和待定扇區重定位。-t short 或 -t long 而不是 -a 將開始測試。長時間的測試可能需要一個或多個小時,具體取決於驅動器。read seak 和硬體錯誤不一定是失敗。但是,如果他們不斷在列表之間跳轉,它們可以成為一個很好的指標。此外,一些驅動器製造商可能會要求您使用他們的工具來獲得驅動器 rma’d。
如果我處於您的位置並且不確定驅動器,我會在通過與製造商合作或 rma 驗證其良好狀態後更換驅動器。我會將額外的驅動器作為熱備件放入,這樣如果再次發生,您就可以準備好另一個驅動器並等待。z2 也不是一個壞主意,但我仍然會保留備用。現在有了驅動器的大小,它們確實需要很長時間才能重建,並且可能會遇到第二個錯誤。
至於損壞的文件,如果您仍然有原始文件,那麼這些“損壞”文件之一的其他位置會對其進行 md5 計算,然後查看損壞文件的 md5 是否匹配。這會告訴你位是否損壞。如果沒有,那麼文件可能會受到無形的損壞。它是否足以成為一個問題將取決於你。