参考资料:
- https://docs.oracle.com/cd/E56344_01/html/E54077/zpool-1m.html#scrolltoc
- https://www.cnblogs.com/surplus/p/14054907.html
- 我的这个方法我觉得很有点不优雅,但是一时也没找到更好的操作方法
常用指令
镜像阵列不需要担心啥,可以直接detach掉坏的盘。不过值得注意的是PVE的系统盘有三个分区
BIOS boot
EFI
ZFS
前两个是启动引导,第三个才是需要attach到zfs阵列里面的,因此你需要先想办法把前两个分区完全克隆到新盘里面去。
dd if=/dev/sda of=/dev/sdb
因为这个系统是三个分区,我还不知道要怎么只克隆分区,因此我是先直接dd整块盘。然后我去骑自行车骑了一圈回来发现tmd还在dd,于是就取消操作了。我看新盘的三个分区都出来了,然后将新盘的ZFS分区加入到原先的zfs mirror就结束了。拔掉另一块mirror盘发现也能正常启动。
zpool list # 列出指定池以及运行状态和空间使用情况。
zpool status <pool> # 查看pool池的详细运行状态。
zpool detach <pool> <device> # 从存储池pool中分离device。
zpool attach <pool> <device> <new_device> # 将 new_device 连接到现有的 zpool 设备。现有设备不能是 raidz 配置的一部分。如果 device 当前不是某个镜像配置的一部分,device 将自动转换为 device 和 new_device 的双向镜像。如果 device 是某个双向镜像的一部分,则连接 new_device 将创建一个三向镜像,依此类推。无论哪种情况,new_device 都会立即开始重新同步。
zpool scrub # 检查修复指定池中的所有数据以验证其校验和是否正确。