How to Fix Zfs Zpool Error Invalid Dev Speficification
如何修复 ZFS 创建zpool create出现的invalid vdev specification, xxx is part of active pool 错误
问题背景
在aws实例上运行zpool命令,出现下方错误
zpool create keydb raidz nvme1n1 nvme2n1 nvme3n1
Defaulting to 4K blocksize (ashift=12) for '/dev/nvme1n1'
Defaulting to 4K blocksize (ashift=12) for '/dev/nvme2n1'
Defaulting to 4K blocksize (ashift=12) for '/dev/nvme3n1'
invalid vdev specification
use '-f' to override the following errors:
/dev/nvme1n1 is part of active pool 'keydb'
按照提示执行, 还是不行
root@ip-10-230-3-239:/data# zpool create -f keydb raidz nvme1n1 nvme2n1 nvme3n1
Defaulting to 4K blocksize (ashift=12) for '/dev/nvme1n1'
Defaulting to 4K blocksize (ashift=12) for '/dev/nvme2n1'
Defaulting to 4K blocksize (ashift=12) for '/dev/nvme3n1'
invalid vdev specification
the following errors must be manually repaired:
/dev/nvme1n1 is part of active pool 'keydb'
解决方案
原因是某个volume之前被其他实例用过, 解挂后重新挂到这个实例, 数据不干净导致的.
root@ip-10-230-2-67:~# zpool import
pool: keydb
id: 5964941533506504514
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: http://www.sun.com/msg/ZFS-8000-EY
config:
keydb ONLINE
raidz1-0 ONLINE
nvme1n1 UNAVAIL corrupted data
disk/by-id/nvme-Amazon_Elastic_Block_Store_vol0fe3cb4f940810f22 ONLINE
disk/by-id/nvme-Amazon_Elastic_Block_Store_vol0ef00d1e936279515 ONLINE
有两个办法结局
1. 暴力import
zpool import -f
2. destroy之后, 再创建即可
zpool destroy keydb
zpool create keydb raidz nvme1n1 nvme2n1 nvme3n1
参考链接
Recover ZFS pool after having deleted zfs configuration file in /boot
本文链接
https://www.wxhmf.com/posts/how-to-fix-zfs-zpool-error-invalid-dev-speficification/