完美体验请使用电脑访问
have a good day 💁‍♂️
Recommended
推荐阅读
拖拽上方图片可翻页
了解
任意位置向上滚动可显示导航
了解
日期: 2023-11-14

PVE如何在坏掉一块硬盘后重组ZFS Raid1

手动重组发现引导丢失了,可以用此方法解决

Article
文章正文

尝试一下PVE虚拟机重组系统raid1

最开始尝试了使用常规的 zpool replace ,但是这样的话系统是无法引导的,因为没有复制过去引导分区(EFI,BOOT),所以我找到了官方的一个文档说明这个问题,下面引用一下官方的链接。

https://pve.proxmox.com/wiki/ZFS_on_Linux#sysadmin_zfs_change_failed_dev

第一步 检查

先检查系统使用的是什么方式引导,如果已知则略过

1
proxmox-boot-tool status

因为我用的是boot传统引导,所以输出的是

1
2
3
4
5
6
Re-executing '/usr/sbin/proxmox-boot-tool' in new private mount namespace..
System currently booted with legacy bios
4F07-8E14 is configured with: grub (versions: 6.2.16-3-pve)
WARN: /dev/disk/by-uuid/4F08-1FC2 does not exist - clean '/etc/kernel/proxmox-boot-uuids'! - skipping
6A94-CEBE is configured with: grub (versions: 6.2.16-3-pve)
9165-9F6B is configured with: grub (versions: 6.2.16-3-pve)

第二步 复制分区

如何添加一块硬盘做RAID1

第一步 检查

首先查看zpool状态 我们一下代码

1
zpool status

获得输出结果应该类似于

1
2
3
4
5
6
7
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 2
sdb3 ONLINE 0 0 0

可以看到我们的rpool就是系统的zfsraid,我们有两块硬盘的第三分区做了raid1

第二步 准备硬盘

首先我们要找到自己刚接入的硬盘系统给的名称,我这里建议把没用的硬盘都拔掉以免混淆,当然你也可以使用id的方式进行选择硬盘,我这里不再赘述

使用命令

1
lsblk

输出结果应给是这样的

1
2
3
4
5
6
7
8
9
10
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 1G 0 part
└─sda3 8:3 0 237.5G 0 part
sdb 8:16 0 238.5G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 237.5G 0 part
sdc 8:32 0 238.5G 0 disk

可见我们的sdc是一个空的硬盘 没有任何分区

复制分区

我们将sda的分区复制给要添加到raid的sdc上面 使用以下指令

1
sgdisk /dev/sda -R /dev/sdc

注意,我们要加上前缀,这里的sda是健康的硬盘 sdc是要新添加的硬盘

重建GUID

我们使用以下指令进行重建

1
sgdisk -G /dev/sdc

这个sdc就是刚刚新添加的硬盘,这样硬盘的准备工作就完成了,我们在输入下列指令确认一下

1
lsblk

输出结果应该类似这样

1
2
3
4
5
6
7
8
9
10
11
12
13
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 1G 0 part
└─sda3 8:3 0 237.5G 0 part
sdb 8:16 0 238.5G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 237.5G 0 part
sdc 8:32 0 238.5G 0 disk
├─sdc1 8:33 0 1007K 0 part
├─sdc2 8:34 0 1G 0 part
└─sdc3 8:35 0 237.5G 0 part

重建引导

重建引导我们使用官方提供的工具 首先格式化第二个分区,也就是1G大小这个分区

1
proxmox-boot-tool format /dev/sdc2

然后使用这个命令进行初始化

1
proxmox-boot-tool init /dev/sdc2

使用此命令会进行重建EFI引导,如果用的是boot方式引导那么要多一步操作

传统引导方式

1
2
grub-install /dev/sdc
update-grub

用此方法即可使用新硬盘进行引导

第四步 添加到池

我们不需要把整个硬盘都添加到池,其他两个分区是引导分区,我们只需要把第三个分区进行添加即可,使用下列命令

检查pool状态

1
zpool status

输出结果应该为

1
2
3
4
5
6
7
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 2
sdb3 ONLINE 0 0 0

我们将新的硬盘添加到pool

1
zpool attach rpool sda3 sdc3

输出结果应该为

1
2
3
4
5
6
7
8
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
sda3 ONLINE 0 0 2
sdb3 ONLINE 0 0 0
sdc3 ONLINE 0 0 0 (resilvering)

此时不要惊慌 耐心等待重银完成,或者可以使用下列指令实时监控重银状态

1
zpool status -v

此时全部步骤操作完成!我们在查看一下硬盘状态

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 1G 0 part
└─sda3 8:3 0 237.5G 0 part
sdb 8:16 0 238.5G 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 237.5G 0 part
sdc 8:32 0 238.5G 0 disk
├─sdc1 8:33 0 1007K 0 part
├─sdc2 8:34 0 1G 0 part
└─sdc3 8:35 0 237.5G 0 part

成功!

Comment
有什么想说的嘛?欢迎表态

Gratitude!

感谢你的喜欢,但这一切都是兴趣使然;

有的时候喜欢一个人静一静,写写日记;可能写的不好,但是能找到网站的一定都是我的朋友。

感谢到访 ——Corwin

Copyright 2020 . All Rights Reserved.
京ICP备2020039573号

我的小伙伴们

4133chen 更多 >

Thank you for coming !

Copyright 2020 All Rights Reserved
京ICP备2020039573号

目前已经完成建设独立友情链接页面。

入口为:导航栏 > 浏览 > 点击友链图标