我有一个名为 test_pool 的池,只有在运行“zfs import”时才能看到它。我如何删除此池并从中分离相关设备?
# zpool import
pool: test_pool
id: 13538020891587345121
state: FAULTED
status: One or more devices contains corrupted data.
action: The pool cannot be imported due to damaged devices or data.
The pool may be active on another system, but can be imported using
the '-f' flag.
see: http://zfsonlinux.org/msg/ZFS-8000-5E
config:
data_pool FAULTED corrupted data
raidz1-1 ONLINE
sdf UNAVAIL corrupted data
sdg UNAVAIL corrupted data
sdh UNAVAIL corrupted data
我尝试# zpool import test_pool -f
导入并销毁它,但收到以下消息
cannot import 'data_pool': one or more devices is currently unavailable
答案1
如果池未导入,则继续擦除实际块设备上的数据。这实际上会擦除池。
您不必擦除整个设备 - 只需擦除元数据就足够了。
sudo wipefs /dev/sd{f,g,h}
您应该看到类似下面的内容:
DEVICE OFFSET TYPE UUID LABEL
sdf 0x3f000 zfs_member 13538020891587345121 ...
sdf 0x3e000 zfs_member 13538020891587345121 ...
sdf 0x3d000 zfs_member 13538020891587345121 ...
...
sdh 0x3ffa2000 zfs_member 13538020891587345121 ...
如果您确实看到每行都只带有zfs_member
和UUID
匹配的输出,则说明您找到了正确的设备 - 继续将它们清除:
sudo wipefs --all --backup /dev/sd{f,g,h}
此后,zpool import
应该找不到任何要导入的池。
PS 您可以使用相同的方法来销毁任何类型的设备 - 软件 raid、DRBD、文件系统等。