系统可以通过多种方式唯一地标识磁盘或分区、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_...
虽然更麻烦,但我同意它更精确。
答案1
zpool
使用您在创建池时和修改设备(例如附加磁盘或向池中添加 vdev)时指定的设备名称。因此,您可以使用您选择的名称销毁/重新创建池,或者依次分离/附加所有设备(当然,这只有在具有足够冗余的池布局时才可能实现)。
这就是它在 Solaris 上的工作方式,在 Linux 或 BSD 等其他系统上可能存在特定的警告。