วันนี้ได้มีโอกาศทดสอบทำ zfs zpool mirror+cache+log ทดสอบถอด disk cache กับ log ออก พบว่า pool fail จะกู้ข้อมูลยังไง?
ลองสั่ง
zpool import pool-name -f
ผลที่ได้ มีเสียวเลยครับ!!!
cannot import 'data_pool': no such pool available
ลองดู pool db หรือ signature disk (ถ้าสร้าง pool แบบเลือกเป็น disk จะอยู่ใน partition 1)
zdb -l /dev/sdb1
ผลที่ได้
------------------------------------
LABEL 0
------------------------------------
version: 5000
name: 'raid1-cache'
state: 0
txg: 319
pool_guid: 17176831795566606353
errata: 0
hostid: 2877909868
hostname: 'node1'
top_guid: 1620325715334265316
guid: 17195744663847841469
vdev_children: 2
vdev_tree:
type: 'mirror'
id: 0
guid: 1620325715334265316
metaslab_array: 65
metaslab_shift: 33
ashift: 12
asize: 1000189984768
is_log: 0
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 17195744663847841469
path: '/dev/disk/by-id/ata-ST1000DM003-1CH162_S1DHZWFC-part1'
devid: 'ata-ST1000DM003-1CH162_S1DHZWFC-part1'
phys_path: 'pci-0000:00:1f.2-ata-6'
whole_disk: 1
create_txg: 4
children[1]:
type: 'disk'
id: 1
guid: 4322749718336279230
path: '/dev/disk/by-id/ata-WDC_WD1002FBYS-18A6B0_WD-WMATV1021622-part1'
devid: 'ata-WDC_WD1002FBYS-18A6B0_WD-WMATV1021622-part1'
phys_path: 'pci-0000:00:1f.2-ata-4'
whole_disk: 1
create_txg: 4
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
labels = 0 1 2 3
OK เจอข้อมูล signature กรณีนี้ disk ไม่ได้เสียนะครับ
มาลอง import กันเลยครับ สั่งตามนี้
zpool import -f -F -m poolname
พบว่า import ได้เลยไม่สนใจพวก log และ cache device ไม่ขออธิบายพวก option ให้ไปหาอ่านเองนะครับ
pool: raid1-cache
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: http://zfsonlinux.org/msg/ZFS-8000-4J
scan: none requested
config:
NAME STATE READ WRITE CKSUM
raid1-cache DEGRADED 0 0 0
mirror-0 ONLINE 0 0 0
ata-ST1000DM003-1CH162_S1DHZWFC ONLINE 0 0 0
ata-WDC_WD1002FBYS-18A6B0_WD-WMATV1021622 ONLINE 0 0 0
logs
2856806483326932070 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-INTEL_SSDSC2CW060A3_CVCV153305QV060AGN-part1
errors: No known data errors
เพิ่มเติมให้อีกนิด หลังจากเรา import ได้แล้ว zfs จะยังไม่ mount ให้นะครับเพราะ zfs มองเห็น dir เดิมที่ยังมีข้อมูลบางอย่างอยู่ ถ้าบังคับ mount ข้อมูลที่อยู่ใน dir นั้นจะหายไปเลย ต้องระวัง
สั่งตามนี้
zfs mount -O -a
จะพบว่าทั้ง sub volume และข้อมูลกลับมาพร้อมใช้งานแล้วครับ
NAME USED AVAIL REFER MOUNTPOINT
raid1-cache 463M 899G 120K /raid1-cache
raid1-cache/subvol-101-disk-0 462M 7.55G 462M /raid1-cache/subvol-101-disk-0
Link ที่เกี่ยวข้อง
https://www.truenas.com/community/threads/import-zfs-pool-with-missing-log-device-missing-device.82200/
https://forum.proxmox.com/threads/mount-zfs-when-directory-not-empty.29657/