扩展虚拟硬盘的大小(ZFS)

扩展虚拟硬盘的大小(ZFS)

我在 VMWare 工作站中使用带有一个虚拟硬盘的 Debian Jessie。

在 /dev/sda1 上我有一个 /boot,在 /dev/sda2 上我有 /,在 /dev/sda3 上我有 swap,并且 /dev/sda5 和 /dev/sda6 我在 ZFS 镜像池中(总共大约 4.7 GB)并且已经在 zfs_pool/home 上安装了 /home,一切运行正常,但我有以下情况:我的镜像池的容量即将用完,我想增加镜像池的容量,但首先:我的虚拟磁盘容量。

虚拟文件系统

如上图所示,我将虚拟硬盘扩展到 10GB,并使用 gparted 创建 /dev/sda7 分区,从 zfs_pool 中我分离了 /dev/sda5,连接了 /dev/sda7 并将数据从 /dev/sda6 重新同步到 /dev/sda7,然后我也分离了 /dev/sda6,因为现在我想增加镜像池的容量,我需要创建(从 /dev/sda5 和 /dev/sda6)一个分区并将其作为镜像附加到 /dev/sda7(这是增加镜像池容量的推荐方法吗?)

现在我的池不处于镜像状态,它仅由 /dev/sda7 组成,但如果我想删除 /dev/sda5 和 /dev/sda6,我的分区 /dev/sda7 现在将具有名称 /dev/sda5,并且当我重新启动时,zfs 无法识别我的池,这是 zdb 和 fdisk -l 的输出

ZDB 和 fdisk

如您所见,路径仍然是 /dev/sda7,但我有 /dev/sda5,(我认为)正确的数据在哪里,有什么解决方案可以替换此路径吗?或者只是从未分配的空间中创建仅包含 /dev/sda5 和 /dev/sda6 的新镜像池?

谢谢您的回答并祝您有愉快的一天。

答案1

增加容量的最佳方法
增加池容量的最佳方法是向池中添加vdev。如果这不是一个选项,那么您可以以某种方式替换驱动器resilver -> replace -> resilver

你的配置发生了什么
Linux 根据分区数量设置分区名称,在您的例子中,您有 7 个分区,因此您有 名称sda1..7。但是当您合并这两个分区时,这会减少您的分区数量,从而产生 名称sda1..5。这就是为什么根据唯一标识符添加驱动器是一个好主意,因为如果名称sda发生变化,ZFS 仍然可以找到它。

如何修复此问题
如果您运行,zpool import它应该能够找到以前构建的池,/dev/sda7以及现在的池/dev/sda5。您很可能会得到类似下面的输出:

# zpool import

  pool: dozer
  id: 2704475622193776801
  state: ONLINE
  action: The pool can be imported using its name or numeric identifier.
  config:
    dozer       ONLINE
      c1t9d0    ONLINE

我第一次尝试使用 导入池 ID zpool import 2704475622193776801。如果不成功,您可能需要使用 命令 将其导入为其他名称,以重命名池zpool import old_name new_name

笔记
您的第一张图片显示zpool status

NAME:       STATE     READ  WRITE  CKSUM
zfs_pool    ONLINE       0      0      0
    sda7    ONLINE       0      0      0

在此配置中没有mirrorvdev。通过将新合并的分区添加到此池,它不会镜像驱动器,而是所谓的dynamic stripe本质上的镜像RAID 0。为了创建镜像,您可能需要重新创建池。祝你好运,希望这对你有帮助!

来源导入 ZFS 存储池

相关内容