參考此頁的一段原文:
Be careful here. Keep in mind that if any single vdev fails, the entire pool fails with it. There is no fault tolerance at the pool level, only at the individual vdev level! So if you create a pool with single disk vdevs, any failure will bring the whole pool down.
要好好理解上面這段話,任何單一的 vdev 故障,都會導致整個 pool 的故障, pool 沒有任何的容錯機制,只有在 vdev 層級才有容錯機制。基於上述的提醒,若你有16顆硬碟,是想要用兩組 vdev 來建 pool的話,是非常不建議你用兩組 raidz1 來建 pool,即 8顆raid1 兩組,這樣對資料是很危險的。
說明:底下的SOP範例都是使用硬碟代號來組建raid,在實際使用上硬碟代號經常會變動,因此不太建議使用硬碟代號來組建raid,而建議改用wwn 或硬碟序號來建raid,具體執行指令可參考上一章節 2.建raidz。
指令:
zpool status 儲存池名稱
pool: vic1
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
vic1 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sdc ONLINE 0 0 0
sdd ONLINE 0 0 0
errors: No known data errors
並用指令 hdparm -i /dev/sdX 查清楚每一顆硬碟序號,才不會在換硬碟時搞錯顆硬碟了
zpool offline vic1 /dev/sdc
或是另一個指令 (不建議)
zpool detach pool-name /dev/sdd
detach與offline的差別:
detach: 若沒有其它有效的備份碟的話,執行此指令會被拒絕。若此碟可能還會被加回此儲存池(pool)的話,請用offline來替代。
開機後先用指令查看狀態
pool: vic1
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: none requested
config:
NAME STATE READ WRITE CKSUM
vic1 DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
ata-WDC_WD40EZRZ-00WN9B0_WD-WCC4E2LALV2A ONLINE 0 0 0
sdd OFFLINE 0 0 0
上面會看到 /dev/sdd 還在,只是呈離線狀態
先用指令 hdparm -i /dev/sd? 查出我們剛換上去的新硬碟現在是哪個硬碟代號,只能一個個查了
我查出新硬碟位於 /dev/sdc
zpool replace -f vic1 /dev/sdd /dev/sdc
再看狀態
pool: vic1
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Mon Jul 18 02:24:48 2016
922M scanned out of 372G at 28.8M/s, 3h39m to go
922M resilvered, 0.24% done
config:
NAME STATE READ WRITE CKSUM
vic1 DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
ata-WDC_WD40EZRZ-00WN9B0_WD-WCC4E2LALV2A ONLINE 0 0 0
replacing-1 OFFLINE 0 0 0
sdd OFFLINE 0 0 0
sdc ONLINE 0 0 0 (resilvering)
已經下了 replace 指令了,也看到了它正在重建資料當中 (resilvering)
但是 sdd 還在,估計最後還得下個卸載指令
zpool detach vic1 /dev/sdd
更正:資料重建完之後它就會消失了。
做完以上動作基本上就可以了
若因為機器故障,無法再開機,就必須把 mirror 硬碟,拿其中一顆到另外一台機器上讀取
底下是在另一台機器上的操作方式:
指令
zpool list
看有沒有自動偵測到可用的 pool 若有的話就可直接下指令掛載
指令
zfs mount -a
上面這指令是掛載pool裡所有可掛載的內容
上述兩招若不行,就是沒有偵測到可用的 pool, 改下此指令
zpool import
上面的指令會列出可用的 pool name
後面帶pool名稱,則可掛載
zpool import vic1
會提示一些警告訊息,可能要加 -f 強制選項才能掛載
這裡是介紹使用 pve 安裝介面使用 zfs raid1 來安裝系統,所做出來的系統碟在遇到問題時怎麼排除
系統碟使用zfs主要按照此頁 pve wiki 上面的資料來操作
實作指令:待補...
Text