说明
关于 ZFS 的内容,在 DIY NAS系列04 — ZFS 存储池管理 一文中已有详细介绍。然而,过去 ZFS 存储池一直运行在正常状态,尚未在实际生产环境中进行过存储池故障及恢复的操作。今天,恰巧木子使用了 3 年的 NAS 系统中的 ZFS 存储池发生了故障,借此机会我们记录了相关的恢复操作流程,也算是对于 ZFS 存储池管理的一个完整闭环。
故障现象
当通过 zpool status -v
查看存储池状态显示 DEGRADED
,对应故障磁盘状态为 UNAVAIL
,并关联硬盘信息 was /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E1GE-part1
,这样可以很快定位到硬盘,即:Serial Number
为 Z1X6E1GE
。但如果是看到的是 was /dev/sdg1
时,就需要再通过其它命令确认硬盘 Serial Number
。
# 查看存储池状态,已经降级(DEGRADED)
❯ zpool status -v
pool: HDD
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 Aug 12 11:21:07 2024
1003G scanned at 12.7G/s, 38.5M issued at 499K/s, 8.29T total
0B resilvered, 0.00% done, no estimated completion time
config:
NAME STATE READ WRITE CKSUM
HDD DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
3590686044359175262 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E1GE-part1
通过挂载点快速定位硬盘 Serial Number
。
# 如下所示,显示的是对应挂载点信息,没有 Serial Number 信息。
❯ zpool status -v
pool: HDD
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 Aug 12 11:21:07 2024
1003G scanned at 12.7G/s, 38.5M issued at 499K/s, 8.29T total
0B resilvered, 0.00% done, no estimated completion time
config:
NAME STATE READ WRITE CKSUM
HDD DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
3590686044359175262 UNAVAIL 0 0 0 was /dev/sdg1 # 挂载点信息
# 通过挂载点(序列号)查找对应硬盘 SN 号,但如果您不确认哪个是 SN 号,可以通过下面 4 条命令进行辅佐验证。
❯ ls -l /dev/disk/by-id/ | grep sdg | grep ata-ST2000
lrwxrwxrwx@ - root 13 8月 10:42 ata-ST2000NM0033-9ZM175_Z1X6E1GE -> ../../sdg
lrwxrwxrwx@ - root 13 8月 10:44 ata-ST2000NM0033-9ZM175_Z1X6E1GE-part1 -> ../../sdg1
lrwxrwxrwx@ - root 13 8月 10:42 ata-ST2000NM0033-9ZM175_Z1X6E1GE-part9 -> ../../sdg9
# 通过以下 4 个命令都可以获取硬盘 SN号 或者 MN 号。
❯ lsblk -o NAME,HCTL,MODEL,SERIAL
NAME HCTL MODEL SERIAL
sda 1:0:0:0 KingFast 0919201400443
├─sda1
└─sda2
├─rl-root
├─rl-swap
└─rl-home
sdb 4:0:0:0 ST2000NM0033-9ZM175 Z1X7RWV0
├─sdb1
└─sdb9
sdc 3:0:0:0 ST2000NM0033-9ZM175 Z1X6E24N
├─sdc1
└─sdc9
sdd 0:0:0:0 ST2000DL001-9VT156 5YD0GNWY
├─sdd1
└─sdd9
sde 2:0:0:0 ST2000NM0033-9ZM175 Z1X6E0J6
├─sde1
└─sde9
sdf 5:0:0:0 ST2000NM0033-9ZM175 Z1X6D0WX
├─sdf1
└─sdf9
sdg 6:0:0:0 ST2000NM0033-9ZM175 Z1X6E1GE
├─sdg1
└─sdg9
❯ smartctl -i /dev/sdg | grep Serial
Serial Number: Z1X6E1GE
❯ hdparm -I /dev/sdg
/dev/sdg:
ATA device, with non-removable media
Model Number: ST2000NM0033-9ZM175
Serial Number: Z1X6E1GE
Firmware Revision: SN06
Transport: Serial, SATA Rev 3.0
❯ udevadm info --query=all --name=/dev/sdg | grep ID_SERIAL
E: ID_SERIAL=ST2000NM0033-9ZM175_Z1X6E1GE
E: ID_SERIAL_SHORT=Z1X6E1GE
仅仅获取硬盘 SN 号是不够的,不可能每个硬盘都拆下来看对应 SN 号,这时候就需要确认硬盘所在 SATA 接口。
# 查看对应物理硬盘所接的 SATA 接口,通过 udevadm 获取对应信息为 pci-0000:05:00.0-ata-1,即硬盘接在 PCI 接口 0000:05:00.0 的 SATA 0 口上。
❯ udevadm info --query=all --name=/dev/sdg | grep DEVLINKS
E: DEVLINKS=/dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E1GE /dev/disk/by-diskseq/7 /dev/disk/by-path/pci-0000:05:00.0-ata-1 /dev/disk/by-id/scsi-35000c50087fef8d8 /dev/disk/by-path/pci-0000:05:00.0-ata-1.0 /dev/disk/by-id/scsi-SATA_ST2000NM0033-9ZM_Z1X6E1GE /dev/disk/by-id/wwn-0x5000c50087fef8d8 /dev/disk/by-id/scsi-0ATA_ST2000NM0033-9ZM_Z1X6E1GE /dev/disk/by-id/scsi-1ATA_ST2000NM0033-9ZM175_Z1X6E1GE
# 获取 PCI 信息
❯ lspci | grep 05:00.0
05:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9170 PCIe 2.0 x1 2-port SATA 6 Gb/s Controller (rev 13)
# 木子这里有两个 SATA 控制器,PCI 05:00.0 实际是插在主板上的一个 2 口 PCI 转 SATA 转接板。
❯ lspci | grep "SATA controller"
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port Desktop SATA AHCI Controller (rev 05)
05:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9170 PCIe 2.0 x1 2-port SATA 6 Gb/s Controller (rev 13)
# 通过 dmesg 可以看到 PCI 0000:05:00.0 对应接口为 ata7 和 ata8 口,其中 ata8 口状态是 down 的,说明物理硬盘接在 ata7 口上。
❯ dmesg | grep -i 'SATA'
[ 0.018032] ACPI: SSDT 0x00000000CCE8D3E8 00036D (v01 SataRe SataTabl 00001000 INTL 20091112)
[ 1.834759] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 3 Gbps 0x3f impl SATA mode
[ 1.852292] ata1: SATA max UDMA/133 abar m2048@0xdc402000 port 0xdc402100 irq 29
[ 1.852412] ata2: SATA max UDMA/133 abar m2048@0xdc402000 port 0xdc402180 irq 29
[ 1.852528] ata3: SATA max UDMA/133 abar m2048@0xdc402000 port 0xdc402200 irq 29
[ 1.852645] ata4: SATA max UDMA/133 abar m2048@0xdc402000 port 0xdc402280 irq 29
[ 1.852762] ata5: SATA max UDMA/133 abar m2048@0xdc402000 port 0xdc402300 irq 29
[ 1.852878] ata6: SATA max UDMA/133 abar m2048@0xdc402000 port 0xdc402380 irq 29
[ 1.853256] ahci 0000:05:00.0: AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
[ 1.854153] ata7: SATA max UDMA/133 abar m512@0xdc110000 port 0xdc110100 irq 30
[ 1.854275] ata8: SATA max UDMA/133 abar m512@0xdc110000 port 0xdc110180 irq 30
[ 2.157130] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.157255] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.157362] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.157468] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.157567] ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.165043] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 2.165168] ata8: SATA link down (SStatus 0 SControl 300)
[ 3.675210] ata7: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
综合以上信息,基本可以确认硬盘 /dev/sdg
接在 PCI SATA 0 上。
通过 smartctl
命令验证 /dev/sdg
硬盘是否真得损坏:
❯ smartctl -A /dev/sdg
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-6.1.96-1.el9.elrepo.x86_64] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
5 Reallocated_Sector_Ct 0x0033 100 100 010 Pre-fail Always - 100 # 重映射扇区数,这个值如果为 100 ,说明已经没有可用于坏道映射的可冗余空间了。
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 10 # 目前正在等待重新分配的扇区数量。如果该值不为 0 ,则磁盘存在潜在的坏扇区。
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0 # 记录离线状态下发现的无法校正的坏扇区数。
上面的检测数据并不代表硬盘 100% 损坏,可以通过 fsck
或 e2fsck
等命令进行检测或修复,当然还有很多方法,比如:屏蔽物理坏道等,有机会再开篇详解。
在硬盘的外壳上,通常可以直接看到以下几种信息:
- 型号(Model Number):
- 通常标识为 "Model" 或 "Model Number"。
- 例如:ST2000NM0033-9ZM175。
- 序列号(Serial Number):
- 通常标识为 "Serial" 或 "Serial Number"。
- 例如:Z1X6E1GE。
- 制造商(Manufacturer):
- 制造商的名字,比如 Seagate、Western Digital 等。
从木子拆下硬盘可以看到,对应 Serial Number
没有错。
ZFS 存储池修复
ZFS 存储池修复相对简单,更换新硬盘、开机,然后使用 zpool replace
替换硬盘,再通过 zpool status -v
查看对应状态,数据开始恢复,并显示有对应数据同步速度、预计完成时间、数据量等。
# 将存储池中硬盘 ID 为 3590686044359175262 替换成新更换的硬盘
❯ zpool replace HDD 3590686044359175262 /dev/sdg
# 查看同步状态
❯ zpool status -v
pool: HDD
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 Aug 12 11:21:07 2024
1.14T scanned at 9.55G/s, 5.43G issued at 45.6M/s, 8.29T total
568M resilvered, 0.06% done, 2 days 04:55:08 to go
config:
NAME STATE READ WRITE CKSUM
HDD DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
replacing-5 DEGRADED 0 0 0
3590686044359175262 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E1GE-part1
sdg ONLINE 0 0 0 (resilvering) # 重新同步中
errors: No known data errors
# 持续查看状态
❯ zpool status -v
pool: HDD
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 Aug 12 11:21:07 2024
1.14T scanned at 2.88G/s, 62.5G issued at 158M/s, 8.29T total
9.62G resilvered, 0.74% done, 15:07:33 to go #自 2024 年 8 月 12 日星期一 11:21:07 以来,重新同步正在进行中以 2.88G/s 的速度扫描了 1.14T,以 158M/s 的速度发送了 62.5G,总计 8.29T,已重新同步 9.62G,已完成 0.74%,还需要 15:07:33 的时间。
config:
NAME STATE READ WRITE CKSUM
HDD DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
replacing-5 DEGRADED 0 0 0
3590686044359175262 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E1GE-part1
sdg ONLINE 0 0 0 (resilvering)
errors: No known data errors
# 存储池恢复完成
❯ zpool status -v
pool: HDD
state: ONLINE
status: One or more devices has experienced an unrecoverable error. An
attempt was made to correct the error. Applications are unaffected. # 一个或多个设备遇到不可恢复的错误。已尝试更正该错误。应用程序不受影响。
action: Determine if the device needs to be replaced, and clear the errors
using 'zpool clear' or replace the device with 'zpool replace'. # 确定是否需要更换设备,并使用 zpool clear 清除错误或使用 zpool replace 替换设备。
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-9P
scan: resilvered 1.50T in 13:54:45 with 0 errors on Sat Aug 17 17:54:28 2024
config:
NAME STATE READ WRITE CKSUM
HDD ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
sdg ONLINE 0 7 0
errors: No known data errors
# 存储池恢复完成以后,需要进行清除错误操作
❯ zpool clear HDD
# 再查看存储池状态,无异常
❯ zpool status -v
pool: HDD
state: ONLINE
scan: resilvered 1.50T in 13:54:45 with 0 errors on Sat Aug 17 17:54:28 2024
config:
NAME STATE READ WRITE CKSUM
HDD ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
sdg ONLINE 0 0 0
errors: No known data errors
从日志来看,ZFS 在 13 小时 54 分钟 45 秒内恢复了 1.5TB 的数据。计算一下每秒恢复的数据量:
-
将时间转换为秒:
- 13 小时 = 13 * 3600 秒 = 46800 秒
- 54 分钟 = 54 * 60 秒 = 3240 秒
- 45 秒 = 45 秒
- 总时间 = 46800 + 3240 + 45 = 50085 秒
-
将 1.5TB 转换为 MB:
- 1TB = 1024GB
- 1GB = 1024MB
- 因此,1.5TB = 1.5 1024 1024MB = 1572864MB
-
计算每秒恢复的数据量:
- 每秒恢复的数据量 = 总数据量(MB) / 总时间(秒)
- 每秒恢复的数据量 = 1572864MB / 50085 秒 ≈ 31.4MB/s
因此,根据日志信息,ZFS 在 13 小时 54 分钟 45 秒内恢复 1.5TB 数据的速度大约是 31.4MB/s。
木子硬件信息如下:
- 硬盘接口:SATA 2.0
- 单盘容量:2TB
- RAID 类型:RAID 5
- 数据类型:大文件居多(电影)
- 恢复速度:31.4MB/s
希望以上数据能为您提供参考。因此,在使用 ZFS 时,不建议选择8TB 这种大容量的硬盘,因为一旦发生磁盘故障,数据恢复的周期会非常长,尤其是在存在大量小文件的情况下。
填坑
因为操作失误,木子在替换 ZFS 存储池硬盘时,用的挂载点信息 /dev/sdg
,这会存在一个问题,重启服务器会出现硬盘与挂载点错位,从而造成 ZFS 存储池磁盘故障的情况。
❯ zpool status -v
pool: HDD
state: ONLINE
scan: resilvered 1.50T in 13:54:45 with 0 errors on Sat Aug 17 17:54:28 2024
config:
NAME STATE READ WRITE CKSUM
HDD ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
3590686087659175262 UNAVAIL 0 0 0 was /dev/sdg1
errors: No known data errors
解决方案
这时候如果使用 zpool replace HDD 3590686087659175262 /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X7SE5Z
命令去替换 3590686087659175262
故障硬盘,会报错:此设备已经在存储池。而在 RAID 5 模式下,想删除对应磁盘,再重新添加也不可行。
操作步骤:先将现有存储池信息从服务器上删除,再重启服务器,这时候检测存储池状态是没有可用存储池的,再从磁盘导入存储池,就能解决此问题。
# 删除存储池信息
❯ rm -rf /etc/zfs/zpool.cache
# 重启服务器
❯ reboot
# 查看存储池信息不可用
❯ zpool status -v
# 这时候如果直接导入磁盘 ID 中的存储池信息,是可以正常使用的,但是对应的 NAME 信息为 wwn-0x5000c5009230bee8,与存储池其它磁盘 NAME 信息是不一致的,这时候怎么解决了?
❯ zpool import -d /dev/disk/by-id HDD
❯ zpool status -v
pool: HDD
state: ONLINE
scan: resilvered 908K in 00:00:02 with 0 errors on Mon Aug 19 10:33:46 2024
config:
NAME STATE READ WRITE CKSUM
HDD ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
wwn-0x5000c5009230bee8 ONLINE 0 0 0
如上所示,直接导入存储池信息是可用的,也不会再出现重启挂载点错位问题,但是对应的 NAME
信息为 wwn-0x5000c5009230bee8
,与存储池其它磁盘 NAME
信息是不一致的,这时候怎么解决了?
骚操作:先将现有存储池信息从服务器上删除,再重启服务器,然后创建软链接,再从磁盘导入存储池,就能解决此问题。
# 先将磁盘 ID 软链接到一个临时目录,然后再导入临时目录的存储池信息,这样就能解决问题。
❯ mkdir /tmp/zfs-import/
❯ ln -s /dev/disk/by-id/ata-ST2000* /tmp/zfs-import
❯ ls -l /tmp/zfs-import/
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000DL001-9VT156_5YD0GNWY -> /dev/disk/by-id/ata-ST2000DL001-9VT156_5YD0GNWY
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000DL001-9VT156_5YD0GNWY-part1 -> /dev/disk/by-id/ata-ST2000DL001-9VT156_5YD0GNWY-part1
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000DL001-9VT156_5YD0GNWY-part9 -> /dev/disk/by-id/ata-ST2000DL001-9VT156_5YD0GNWY-part9
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6D0WX -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6D0WX
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6D0WX-part1 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6D0WX-part1
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6D0WX-part9 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6D0WX-part9
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6E0J6 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E0J6
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6E0J6-part1 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E0J6-part1
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6E0J6-part9 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E0J6-part9
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6E24N -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E24N
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6E24N-part1 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E24N-part1
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X6E24N-part9 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X6E24N-part9
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X7RWV0 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X7RWV0
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X7RWV0-part1 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X7RWV0-part1
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X7RWV0-part9 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X7RWV0-part9
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X7SE5Z -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X7SE5Z
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X7SE5Z-part1 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X7SE5Z-part1
lrwxrwxrwx@ - root 19 8月 18:30 ata-ST2000NM0033-9ZM175_Z1X7SE5Z-part9 -> /dev/disk/by-id/ata-ST2000NM0033-9ZM175_Z1X7SE5Z-part9
# 从链接 /tmp/zfs-import 目录导入存储池
❯ zpool import -d /tmp/zfs-import HDD
# 再查看存储池信息,恢复正常,完美解决。
❯ zpool status -v
pool: HDD
state: ONLINE
scan: resilvered 908K in 00:00:02 with 0 errors on Mon Aug 19 10:33:46 2024
config:
NAME STATE READ WRITE CKSUM
HDD ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
ata-ST2000DL001-9VT156_5YD0GNWY ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E0J6 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6E24N ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7RWV0 ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X6D0WX ONLINE 0 0 0
ata-ST2000NM0033-9ZM175_Z1X7SE5Z ONLINE 0 0 0
errors: No known data errors
注:删除服务器上存储池信息,再从磁盘导入存储池,并不会造成存储池数据丢失或者数据重组等情况,所以在非业务高峰期,可以放心操作。