如何確定 FreeNAS / ZFS 設置中哪個磁碟出現故障
我正在 Supermicro X6DHE-XB 3U 機箱中建構基於 FreeNAS 的伺服器,該機箱具有 4G RAM、16 個 SATA 熱插拔托架。它帶有 2x8 埠 3Ware RAID 卡,但我打算只使用 ZFS 功能而不是硬體 RAID。我的初始驅動器組將是 8x2TB HITACHI Deskstar 7K3000 HDS723020BLA642 驅動器。
如果我使用的是基於硬體的 RAID,它會在驅動器發生故障的驅動器托架上給我一個紅燈。當驅動器發生故障時,它如何與 ZFS 一起工作?我認為不能保證 sda=bay1、sdb=bay2 等,那麼您如何確定需要更換哪個驅動器?ZFS 是否可以向 SATA 控制器報告以打開“故障驅動器”指示燈?它只報告驅動器序列號嗎?如果驅動器故障如此嚴重以至於無法報告其序列號怎麼辦?我認為在上線之前寫下每個驅動器的序列號以及它進入的托架是個好主意。是否有任何其他“預生產”任務可以在未來更輕鬆地更換驅動器?
zpool status -v
應該告訴你哪個磁碟線上或不線上。
目前版本的 FreeNAS(目前是 9.3 版)將為添加到 zpool 的每個驅動器創建一個 gptid。創建後,“zpool 狀態”將立即看起來像這樣(取決於您的池配置)…
zpool status
pool: myzfstest
state: ONLINE
scan: none
請求配置:
NAME STATE READ WRITE CKSUM myzfstest ONLINE 0 0 0 raidz-0 ONLINE 0 0 0 gptid/4fc2b789-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/51d38480-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/54c672cc-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/56a07638-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 raidz2-1 ONLINE 0 0 0 gptid/630e1317-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/6557b52d-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/667a1318-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/68cadf75-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 logs mirror-2 ONLINE 0 0 0 gptid/8839f22e-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/8a6d0b14-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 cache gptid/8c2f3824-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 gptid/8da9ba80-7b7f-11e4-9585-de9b81338d40 ONLINE 0 0 0 spares gptid/72f039f2-7b8a-11e4-9585-de9b81338d40 AVAIL gptid/750df91d-7b8a-11e4-9585-de9b81338d40 AVAIL
錯誤:沒有已知的數據錯誤
不幸的是,Web GUI 沒有顯示這些數字。所以,如果你得到一個錯誤,說“gptid/6557b52d-7b7f-11e4-9585-de9b81338d40”是壞的……你怎麼知道要拉哪個驅動器?在安裝時弄清楚該部分需要一些跑腿工作。
- 當你建立你的系統。記下每個驅動器的序列號,並記下該驅動器的插入位置。例如,在雙面 JBOD 案例中,您可能需要注意前/後、行和列。
- 當您啟動 FreeNAS 時,在 Web GUI 中,轉到“儲存>卷/查看磁碟”。在該選項卡上,您應該有所有驅動器及其序列號的列表。請注意為您在上一個列表中擁有的每個序列號提供的驅動器名稱。如果您沒有看到序列號,則必須進入 shell 並鍵入
smartctl -a /dev/ada0 | grep ^Serial
(用列表中的每個驅動器名稱替換“/dev/ada0”)- 現在,在 shell 中,我們需要將驅動器名稱與所有 gptid 編號相匹配。所以,輸入
glabel status
,你應該得到這樣的東西……# glabel status CORRECT>glabel status (y|n|e|a)? yes Name Status Components ufs/FreeNASs3 N/A ada0s3 ufs/FreeNASs4 N/A ada0s4 ufs/FreeNASs1a N/A ada0s1a gptid/616cddb6-7b7f-11e4-9585-de9b81338d40 N/A ada0p2 gptid/630e1317-7b7f-11e4-9585-de9b81338d40 N/A da1p1 gptid/6557b52d-7b7f-11e4-9585-de9b81338d40 N/A da2p1 gptid/667a1318-7b7f-11e4-9585-de9b81338d40 N/A da3p1 gptid/68cadf75-7b7f-11e4-9585-de9b81338d40 N/A da4p1
- 現在寫入所有 gptid 編號以將它們與驅動器名稱相關聯,從而將它們與序列號及其位置相關聯。 注意:當您看到類似“da3p1”的內容時,它是標識為 da3 的驅動器的分區之一。Web GUI 中的列表將僅顯示磁碟的標籤“da3”。
現在,當出現錯誤提示 gptid 編號為xyz的磁碟有錯誤時,您將能夠參考您的工作表並知道您需要拉/更換哪個驅動器。
我知道這對於原始海報來說已經太晚了;但是,也許其他人會發現這很有用。