系统可以通过多种方式唯一标识磁盘或分区、GUID/UUID、连接方式“usb-...”以及传统目录结构“/dev/sda”。zpool 似乎在它们之间随机选择。我如何获得 zpool 状态以使用目录结构列出阵列,因为它是其他工具唯一知道的?
更多信息:
历史揭示了池是如何创建的:
zpool history XX
History for 'XX':
YYYY-MM-DD.HH:MM:SS zpool create -f XX -m /XX raidz sda sdb sdc sdd sde
但是现在状态为:
zpool status XX
pool: XX
...
STATE READ WRITE CKSUM
XX 0 0 0
raidz1-0 0 0 0
ata-WDC_WD10EFRX-68PJCN0_WD-XXXXXXXXXXXX ONLINE 0 0 0
...
构建时使用的名称与现在列出的名称不同。然而,该数组在创建后已经移动了很多。
更新和结论:
看起来大多数实用程序都可以使用 ZFS 使用的长名称来代替短名称,通过
/dev/disk/by-id/*
说
smartctl --all /dev/disk/by-id/ata-WDC_...
虽然更麻烦,但我同意它更精确。
zpool
使用您在创建池时和修改设备(例如附加磁盘或向池中添加 vdev)时提供的设备名称。因此,您可以使用您选择的名称销毁/重新创建池,或者一个接一个地分离/附加所有设备(当然,这仅适用于具有足够冗余的池布局)。这就是它在 Solaris 上的工作方式,在 Linux 或 BSD 等其他系统上可能存在特定的警告。