V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bingfengfeifei
V2EX  ›  程序员

请教一个 PVE 和 ZFS 的问题

  •  
  •   bingfengfeifei · 228 天前 · 1067 次点击
    这是一个创建于 228 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    4 条回复    2024-04-22 22:15:57 +08:00
    bingfengfeifei
        1
    bingfengfeifei  
    OP
       228 天前
    是不是比较稳妥的办法是再加一块硬盘,加入到 zfs 里面,然后形成 1+4 这种方式。
    单硬盘跑系统,然后数据在 zfs 里面
    NatsumeMio
        2
    NatsumeMio  
       228 天前
    最稳妥的方法是全部虚拟机 backup 一遍,把备份文件拷过去,然后在新机器上弄重做存储池并恢复虚拟机。

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

    2.剩下的 4 个 2TB 的 HDD 机械硬盘,如果你喜欢用 ZFS ,可以组一个 RAIDZ ,也就是 RAIDZ1 ,由 3 个数据盘 + 1 个校验盘组成。
    bingfengfeifei
        4
    bingfengfeifei  
    OP
       217 天前
    @laminux29 最后找公司加了一个机械盘,填补了这一块空缺,其他的没敢动。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:47 · PVG 09:47 · LAX 17:47 · JFK 20:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.