這是在 nexenta 開放式儲存上。我有一個 zpool 由於某些磁碟而處於 UNAVAIL 狀態。
# zpool import -F
pool: delta
id: XYAZA
state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
devices and try again.
config:
delta UNAVAIL insufficient replicas
raidz2-0 UNAVAIL insufficient replicas
c0t5000C500573978EBd0 ONLINE
c0t5000C50057397933d0 ONLINE
c0t5000C50057397C47d0 UNAVAIL cannot open
c0t5000C5005739997Fd0 UNAVAIL cannot open
c0t5000C50057399F87d0 ONLINE
c0t5000C5005739A90Bd0 ONLINE
c0t5000C5005739ABC7d0 UNAVAIL cannot open
c0t5000C5005739AC0Fd0 ONLINE
raidz2-1 DEGRADED
c0t5000C50057398657d0 ONLINE
c0t5000C50057398E03d0 ONLINE
c0t5000C50057398EF7d0 ONLINE
c0t5000C50057398FAFd0 ONLINE
c0t5000C5005739A39Fd0 UNAVAIL cannot open
c0t5000C5005739AAFFd0 ONLINE
spare-6 DEGRADED
c0t5000C5005739AC3Fd0 UNAVAIL cannot open
c0t5000C50057398EDBd0 ONLINE
c0t5000C5005739AE9Bd0 ONLINE
~# zpool import -FXf delta
cannot import 'delta': I/O error
Destroy and re-create the pool from
a backup source.
- 我怎麼能讓 zpool import 正常工作?
- 是否指出“UNAVAIL”的磁碟,如何修復/更換它們?
更新:2018 年 9 月 7 日
在Nexenta 上找到磁碟到插槽的對應後,重新安裝增量磁碟區中的磁碟後,我可以讓raidz2-1 群組中的磁碟聯機,但raidz2-0 群組中的3 個磁碟仍繼續顯示為UNAVAIL 。
# zpool import -F
pool: delta
id: XYAZA
state: UNAVAIL
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
devices and try again.
config:
delta UNAVAIL insufficient replicas
raidz2-0 UNAVAIL insufficient replicas
c0t5000C500573978EBd0 ONLINE
c0t5000C50057397933d0 ONLINE
c0t5000C50057397C47d0 UNAVAIL cannot open
c0t5000C5005739997Fd0 UNAVAIL cannot open
c0t5000C50057399F87d0 ONLINE
c0t5000C5005739A90Bd0 ONLINE
c0t5000C5005739ABC7d0 UNAVAIL cannot open
c0t5000C5005739AC0Fd0 ONLINE
raidz2-1 DEGRADED
c0t5000C50057398657d0 ONLINE
c0t5000C50057398E03d0 ONLINE
c0t5000C50057398EF7d0 ONLINE
c0t5000C50057398FAFd0 ONLINE
c0t5000C5005739A39Fd0 ONLINE
c0t5000C5005739AAFFd0 ONLINE
spare-6 DEGRADED
c0t5000C5005739AC3Fd0 UNAVAIL cannot open
c0t5000C50057398EDBd0 ONLINE
c0t5000C5005739AE9Bd0 ONLINE
online
我在設備上為另一個池找到了一個備用磁碟。現在的問題是 1. 我是否應該將備件分離/附加到 raidz2-1 組,該組在 spare-6 的子類別下只有一個磁碟 UNAVAIL ?或 2. 我是否應該將備用磁碟分離/附加到仍有 3 個磁碟 UNAVAIL 的 raidz2-0 組?
鑑於該池已離線(匯出後)並且現在不可匯入。
我查看了有關如何建立此池的一些歷史記錄,它是過去使用以下命令建立的
zpool create -m /volumes/delta -o autoreplace=on delta raidz2 c0t5000C500573978EBd0 c0t5000C50057397933d0 c0t5000C50057397C47d0 c0t5000C5005739997Fd0 c0t5000C50057399F87d0 c0t5000C5005739A90Bd0 c0t5000C5005739ABC7d0 c0t5000C5005739AC0Fd0 raidz2 c0t5000C50057398657d0 c0t5000C50057398E03d0 c0t5000C50057398EF7d0 c0t5000C50057398FAFd0 c0t5000C5005739A39Fd0 c0t5000C5005739AAFFd0 c0t5000C5005739AC3Fd0 c0t5000C5005739AE9Bd0
這是否表明 raidz2-0 和 raidz2-1 是兩個 RAIDZ 鏡像池?
如果是,我是否應該優先修復 raidz2-1 組磁碟以使其聯機,而不是 raidz2-0(有 3 個磁碟故障)?
答案1
- 我是否應該將備件分離/附加到 raidz2-1 組,該組在 Spare-6 的子類別下只有一個磁碟 UNAVAIL ?
您的備用磁碟已自動附加raidz2-1
並已重新同步。通常,您現在可以將c0t5000C5005739AC3Fd0
其從系統中分離並刪除,因為它曾經失敗過一次(或將其重新用於另一個系統,並希望獲得最好的結果,如果您沒有任何空閒資源)。
但這對你沒有幫助,因為raidz2-0
仍然處於下降狀態。如果任何zpool 中的 vdev 失敗,整個池及其上的所有資料都會遺失。如果無法維持配置的奇偶校驗,每個 vdev 都會失敗,因為其中有足夠的磁碟發生故障。在您的情況下,每個 Z2 vdev 可以承受兩個磁碟的遺失,但其中一個遺失了三個磁碟。
- 我是否應該將備用磁碟分離/附加到仍然有 3 個磁碟 UNAVAIL 的 raidz2-0 組?
首先,你現在沒有真正的空閒時間。即使您從中刪除了工作磁碟raidz2-1
(不建議!),在修復raidz2-0
.奇偶校驗資料必須來自某個地方,在這種情況下,它必須來自故障磁碟。如果您至少無法讓其中一個正常工作,那麼最好的選擇就是從備份中還原。
我查看了有關如何建立此池的一些歷史記錄,過去它是使用以下命令創建的
zpool create -m /volumes/delta [...]
這是否表明 raidz2-0 和 raidz2-1 是兩個 RAIDZ 鏡像池?
不,這表示您的池由兩個條帶化 vdev 組成,每個 vdev 都配置有 raidz2 冗餘和 8 個磁碟。每個 vdev 中最多可以遺失 2 個磁碟。如果您在任何一場比賽中輸掉 3 場,比賽就結束了。
在 ZFS 中,所有冗餘都是在 vdev 層級處理的。該池始終在所有現有 vdev 上進行條帶化。如果任何 vdev 發生故障,池就會發生故障。鏡像是vdev 的一種冗餘類型,與raidz1/z2/z3 不相容(您可以混合和匹配具有不同冗餘類型的vdev,但最弱的冗餘類型將定義池的強度,並且性能會受到影響,因此這是不建議)。
如果是,我是否應該優先修復 raidz2-1 組磁碟以使其聯機,而不是 raidz2-0(有 3 個磁碟故障)?
不,你必須先修復raidz2-0
。
它們都屬於 Seagate,有 SEAGATE,Rev. A001 和 SEAGATE,Rev. 0002 的混合,大小 1.82TB
這現在對您沒有幫助,但也許在將來:建議混合和匹配製造商和型號,甚至製造日期,以平衡“一批壞驅動器”的情況。例如,如果您購買了4 個主要製造商(Seagate、Western Digital、Hitachi、Toshiba)中的每一個的4 個磁碟,並將它們在您的vdev 上分成2-2 個,即使一個製造商的所有磁碟同時發生故障,您仍會有一個工作池。