我的软路由底层是PVE系统,最近给
raidz1
磁盘阵列换硬盘,参考了文章《【转】Proxmox系统替换zfs中的坏盘并重建/恢复阵列》,(看标题,文章是转载的,文末的「原文」连接似乎也是转载的。后续查找也并没有找到原文出处,只能感谢原作者了) 顺利搞定。本文记录一下执行的主要操作以及一些注意事项。
大致步骤
下面是我自己的更换磁盘的主要过程,详细的技术操作和说明请参考前面提到的文章《【转】Proxmox系统替换zfs中的坏盘并重建/恢复阵列》。
因为第一次更换硬盘没有把握先把数据都备份了。
zpool status -v
命令查看存储池的状态。smartctl -i /dev/disk/by-id/ata-WDC_WD10EALX-759BA1_WD-WCATR8114145
查看磁盘的详细信息,这是需要更换的那张硬盘。zpool offline data /dev/disk/by-id/ata-WDC_WD10EALX-759BA1_WD-WCATR8114145
把硬盘下线。关机并把旧硬盘拆下,把新硬盘装上。
在PVE的图形界面把,对新硬盘格式化。
用
zpool replace -f data ata-WDC_WD10EALX-759BA1_WD-WCATR8114145 ata-Kingchuxing_1TB_2021122800190
完成硬盘更换。这个步骤花费最多时间,可以通过zpool status
命令查看替换进度。我的情况数据量不到600G,花费大概1个半小时,比预期要快。
注意事项
一些文章介绍到使用
sgdisk
命令的情况。稍微研究了一下,猜测这是把存储池作为引导分区的情况。我的PVE装在独立的硬盘上,也不需要对存储池做引导,所以并不需要这么做。当时我对此迷惑了一阵子,所以这里特别记录一下。硬盘是通过外界硬盘盒连接的,以为把硬盘下线之后就能够热插拔,因此更换的时候并没有关机,然后系统同时丢失两个硬盘。当时有点慌,好在关机后过一段时间再启动电脑系统又重新识别了所有硬盘了。这番操作主要的疑惑在于不了解更换硬盘的过程是否应该关机,是否可以关机。我后来思考了一下,在条件允许的情况下尽可能关机操作会比较好。
- 在完成替换后顺便通过
zpool add -f data cache usb-ADATA_SP_900_00000000460D-0:0
给存储池添加了一个缓存磁盘。完成之后才反应过来,于我的情况来说,这么做的意义并不大。我的软路由并非作为个人电脑使用,系统内部的数据读写体量不大。而作为数据备份和私有云的数据空间,因为受到局域网的速度限制(大概50MB/s),估计缓存的作用并不大。