ProxmoxVE8 ZFS 阵列重组 替换硬盘

以下内容仅为我在折腾过程中的总结,难免有不对的地方,欢迎指正

ZFS文件系统介绍可以参考这篇文章:https://www.geeklinux.cn/174.html

解决流程:

准备新硬盘,关闭pve节点插入替换损坏硬盘(新旧硬盘容量相同)

磁盘选项卡中对新插入的硬盘进行GPT初始化

使用ssh连接到pve主机进行故障恢复

模拟磁盘的Offline状态

我使用VMware WorkStation 安装的ProxmoxVE并组建了zfs存储池,采用删除磁盘的状态模拟故障现象,并使用zpool status命令查看当前状态,如下图所示有一块盘已经处于remove 状态了,导致整个zfs出现了严重的io delay,zfs的状态为degraded。

openaiassets_2b02025dc89238996645e28f8d459553_2579861720595618640.png

使用新添加的硬盘恢复

我加了一块硬盘为sdb,在pve webui界面将其转化为GPT分区表

openaiassets_6629fd2a64234e1720420b0196b82558_2579861720598713681.png

完成之后使用ssh登陆到pve服务器

使用 zpool status 记录损坏硬盘的id

openaiassets_0fa92161568eb0ca0a8134e622c60729_2579861720598951196.png

获取新硬盘的id,

udevadm info --query=all --name=/dev/sdX | grep by-id
ls -l /dev/disk/by-id/ | grep sdX

很多获取硬件id的方法 这里就举例两种 ,x为你的硬盘

有些情况下可能需要关机后才能移除硬盘,这时如果重新启动时出现“failed to import zfs名”的报错,那么解决方案如下: 1.开机进入boot选项后,按“e”键,进入编辑模式,在quiet前加入“rootdelay=35”,再按“ctrl+x”键进入。 2.进入系统后,可以修改grub在quiet前加入rootdelay=35,修改后长期有效

使用zpool replace 命令替换存储池中的设备

sudo zpool replace zfspool  旧设备id  新设备id       # zfspool为池的名称 不一定要使用id,也可以使用/dev/sdX 但不推荐

如下图所示,zfspool存储池先是处于降级状态(DEGRADED)并且正在进行数据重新同步(resilvering)

同步完成之后变为ONLINE状态

ProxmoxVE8 ZFS 阵列重组 替换硬盘

如果重新同步完成后旧设备仍然显示在配置中,可以使用zpool detach命令将其移除。例如:

zpool detach zfspool ata-VMware_Virtual_SATA_Hard_Drive_01000000000000000001-part1/old

本文来自投稿,不代表极客运维立场,如若转载,请注明出处:https://www.geeklinux.cn/cloud-compute/pve/175.html

(0)
geeklinux.cn的头像geeklinux.cn
上一篇 2024 年 7 月 10 日 下午3:01
下一篇 2024 年 7 月 14 日 上午11:10

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注