公司有一个 PVE 的研发环境,部署在一台服务器上面,24 核 96G 的,有 4 块 2T 的硬盘。 环境是我负责维护,之前没看过 PVE 里面的设置,只是在上面创建虚拟机。 昨天仔细看了下配置,发现存在一些问题,这个需要怎么调整比较好。
之前的情况是有一块硬盘 sda1 做了 LVM ,该硬盘作为根文件系统以及 PVE 的存储使用。 还有一个 ZFS 的存储,使用了全部 4 块硬盘做了 raidz1-0 。 系统能正常跑起来,但是目前发现其实四块硬盘只用了 sda1 ,ZFS 完全是废弃的,而且 ZFS 同时也挂载到了根分区(可能 LVM 优先级更高,现在根分区应该是跑在 sda1 的 LVM 上面),而且由于 SDA1 做了 LVM ,所以 ZFS 状态是丢失了一块硬盘。
lsblk 如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.8T 0 disk
├─sda1 8:1 0 1007K 0 part
├─sda2 8:2 0 512M 0 part
└─sda3 8:3 0 1.8T 0 part
├─pve-swap 253:0 0 8G 0 lvm [SWAP]
└─pve-root 253:1 0 96G 0 lvm /
sdb 8:16 0 1.8T 0 disk
├─sdb1 8:17 0 1007K 0 part
├─sdb2 8:18 0 512M 0 part
└─sdb3 8:19 0 1.8T 0 part
sdc 8:32 0 1.8T 0 disk
├─sdc1 8:33 0 1007K 0 part
├─sdc2 8:34 0 512M 0 part
└─sdc3 8:35 0 1.8T 0 part
sdd 8:48 0 1.8T 0 disk
├─sdd1 8:49 0 1007K 0 part
├─sdd2 8:50 0 512M 0 part
└─sdd3 8:51 0 1.8T 0 part
zfs 状态如下:
root@pve:/rpool/ROOT/pve-1# zpool status
pool: rpool
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
config:
NAME STATE READ WRITE CKSUM
rpool DEGRADED 0 0 0
raidz1-0 DEGRADED 0 0 0
9698329627238426027 UNAVAIL 0 0 0 was /dev/disk/by-id/ata-HGST_HUS724020ALA640_PN2134P6HDG0LP-part3
ata-HGST_HUS724020ALA640_PN2134P6HDTJ4P-part3 ONLINE 0 0 0
ata-HGST_HUS724020ALA640_PN2134P6HE1BRP-part3 ONLINE 0 0 0
ata-HGST_HUS724020ALA640_PN2134P6HDT8DP-part3 ONLINE 0 0 0
errors: No known data errors
zfs 挂载点如下
root@pve:/# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 1.77T 3.38T 151K /rpool
rpool/ROOT 1.23G 3.38T 140K /rpool/ROOT
rpool/ROOT/pve-1 1.23G 3.38T 1.23G /
rpool/data 1.77T 3.38T 7.38G /rpool/data
可以看到 LVM 的 pve-root 和 zfs 的 rpool/ROOT/pve-1 都挂载了根目录。目前我已经将 LVM 里面的镜像文件移动到了 ZFS 里面。 但是这个根文件系统以及 ZFS 丢失的磁盘如何处理呢?
目前有没有办法将根文件系统移动到 ZFS 里面,然后再将 SDA1 重新添加回 ZFS ,有没有什么数据丢失风险或者无法开机的风险。
1
bingfengfeifei OP 是不是比较稳妥的办法是再加一块硬盘,加入到 zfs 里面,然后形成 1+4 这种方式。
单硬盘跑系统,然后数据在 zfs 里面 |
2
NatsumeMio 228 天前
最稳妥的方法是全部虚拟机 backup 一遍,把备份文件拷过去,然后在新机器上弄重做存储池并恢复虚拟机。
你现在折腾出问题了公司肯定找你麻烦( |
3
laminux29 228 天前
1.加一个 128GB 的 SATA3-SSD ,作为 PVE 的系统盘。品牌建议三星、镁光,买不到就台电。淘宝二手不贵。
分区方案: 64GB ,给 SWAP 。 64GB ,给 root ,EXT4 ,启动分区。 磁盘建议 MBR 。 该磁盘建议插在 SATA3 接口。 2.剩下的 4 个 2TB 的 HDD 机械硬盘,如果你喜欢用 ZFS ,可以组一个 RAIDZ ,也就是 RAIDZ1 ,由 3 个数据盘 + 1 个校验盘组成。 |
4
bingfengfeifei OP @laminux29 最后找公司加了一个机械盘,填补了这一块空缺,其他的没敢动。。。
|