Zfs

FreeNAS 混亂:不確定發生了什麼。raidz1“降級”,磁碟“故障”

  • May 16, 2014

對不起,敘述很長,但我完全糊塗了。

我在一個配置為 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:

&lt;ST3000DM001-9YN166 CC4C&gt;          at scbus4 target 0 lun 0 (ada0,pass0)
&lt;WDC WD30EZRX-00MMMB0 80.00A80&gt;    at scbus4 target 1 lun 0 (aprobe1,pass6,ada4)
&lt;WDC WD30EZRX-00MMMB0 80.00A80&gt;    at scbus5 target 0 lun 0 (ada1,pass1)
&lt;ST3000DM001-9YN166 CC4C&gt;          at scbus5 target 1 lun 0 (ada2,pass2)
&lt;ASUS DRW-24B1ST  a 1.04&gt;        at scbus6 target 0 lun 0 (cd0,pass3)
&lt;Hitachi HDS5C3030ALA630 MEAOA580&gt;  at scbus7 target 0 lun 0 (ada3,pass4)
&lt; USB Flash Memory 1.00&gt;          at scbus8 target 0 lun 0 (da0,pass5)

gpart show

=&gt;    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)

=&gt;      0  1930257  da0s1  BSD  (943M)
       0      16        - free -  (8.0K)
     16  1930241      1  !0  (943M)

=&gt;        34  5860533101  ada0  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        34  5860533101  ada1  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        34  5860533101  ada2  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        34  5860533101  ada3  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        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

=&gt;    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)

=&gt;      0  1930257  da0s1  BSD  (943M)
       0      16        - free -  (8.0K)
     16  1930241      1  !0  (943M)

=&gt;        34  5860533101  ada1  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        34  5860533101  ada2  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        34  5860533101  ada3  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        34  5860533101  ada4  GPT  (2.7T)
         34          94        - free -  (47K)
       128    4194304    1  freebsd-swap  (2.0G)
   4194432  5856338703    2  freebsd-zfs  (2.7T)

=&gt;        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 小時內完成。

現在 zp​​ool 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 是否匹配。這會告訴你位是否損壞。如果沒有,那麼文件可能會受到無形的損壞。它是否足以成為一個問題將取決於你。

引用自:https://serverfault.com/questions/418870