请教一个 PVE 和 ZFS 的问题

260 天前
 bingfengfeifei

公司有一个 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 ,有没有什么数据丢失风险或者无法开机的风险。

1122 次点击
所在节点    程序员
4 条回复
bingfengfeifei
260 天前
是不是比较稳妥的办法是再加一块硬盘,加入到 zfs 里面,然后形成 1+4 这种方式。
单硬盘跑系统,然后数据在 zfs 里面
NatsumeMio
260 天前
最稳妥的方法是全部虚拟机 backup 一遍,把备份文件拷过去,然后在新机器上弄重做存储池并恢复虚拟机。

你现在折腾出问题了公司肯定找你麻烦(
laminux29
260 天前
1.加一个 128GB 的 SATA3-SSD ,作为 PVE 的系统盘。品牌建议三星、镁光,买不到就台电。淘宝二手不贵。
分区方案:
64GB ,给 SWAP 。
64GB ,给 root ,EXT4 ,启动分区。
磁盘建议 MBR 。
该磁盘建议插在 SATA3 接口。

2.剩下的 4 个 2TB 的 HDD 机械硬盘,如果你喜欢用 ZFS ,可以组一个 RAIDZ ,也就是 RAIDZ1 ,由 3 个数据盘 + 1 个校验盘组成。
bingfengfeifei
249 天前
@laminux29 最后找公司加了一个机械盘,填补了这一块空缺,其他的没敢动。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1031545

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX