如何将现有的 ZFS 磁盘连接到 Proxmox VM

如何将现有的 ZFS 磁盘连接到 Proxmox VM

我们有一个 Proxmov HV 设置,连接到 2 个 FreeNAS 盒。我们使用 FreeNAS ZFS over iSCSI 接口将 zvols 作为卷呈现给 Proxmox VM。

我们已经在 FreeNAS 端启用了快照功能,并让 NAS 盒相互复制。

我们现在要做的是将现有快照安装到 Proxmox VM 以进行恢复。

答案1

首先,您需要对 FreeNAS 盒、Promox HV 盒(正在运行 VM)和 VM 进行控制台访问。您还需要对 FreeNAS 和可能的 Proxmox 进行 UI 访问。

您需要输入您自己的泳池路径和名称。

在 NAS 上的 SSH 会话中:

  1. 保留您想要的快照。这将确保它不会被意外删除。

    sudo zfs hold keep tank/tank-iscsi/*snapshot-name*

  2. 如果需要获取快照列表,此命令可以提供帮助

sudo zfs list -t snapshot -o name | grep *vm-id*

  1. 如果您使用原始 NAS 作为源(主 NAS)

    sudo zfs clone tank/tank-iscsi/*snapshot-name* tank/tank-iscsi/*cloned-snapshot-name*

  2. 如果您使用复制 NAS 作为源(复制 NAS)

    sudo zfs clone tank/replicated/tank-iscsi/*snapshot-name* tank/replicated/tank-iscsi/*cloned-snapshot-name*

注意:zvol 路径/名称必须少于 67 个字符,并且不能是只读的。这可能需要修改父数据集。

在 FreeNAS UI 中:

  1. 导航Sharing->iSCSI->Extents->Add Extent
  2. 添加新范围:
    • 姓名:
    • 主 NAS:tank/tank-iscsi/*cloned-snapshot-name*
    • 复制 NAS:tank/replicated/tank-iscsi/*cloned-snapshot-name*
    • 设备:选择克隆快照名称
  3. 导航Sharing->iSCSI->Associated Targets->Add Target
    • 选择正确的存储。(我们使用与其他目标相同的存储罐)
    • 输入不会影响未来添加的 LUN ID(即较大的数字)
    • 选择刚刚创建的范围

注意:由于存在复制,因此可以在任一 NAS 上执行此操作。如果使用复制目标,请确保 ReadOnly 为 false 且复制已关闭。您可能需要在 Proxmox 中为复制 iscsi 目标设置新的存储 iscsi 目标作为路径。

在 Proxmox HV 上的 SSH 中(https://johnkeen.tech/proxmox-physical-disk-to-vm-only-2-commands/):

  1. 检查 zvol 对 Proxmox 是否可见:

    • 主 NAS:pvesm list tank-zfs-iscsi
    • 复制 NAS:pvesm list tank-zfs-iscsi-replicated
  2. 将磁盘添加到虚拟机:

    • 主 NAS:qm set *vm-id* -virtio1 tank-zfs-iscsi:*cloned-snapshot-name*
    • 复制 NAS:qm set *vm-id* -virtio1 tank-zfs-iscsi-replicated:*cloned-snapshot-name*

在虚拟机中(https://sontsysadmin.blogspot.com/2017/09/mounting-lvm-with-same-pv-lv-vg-names.html):

  1. 检查磁盘是否存在(最有可能是 vbb 或 vbc)
  2. 更改 LVM 卷的名称
  3. 装载卷
vgimportclone --basevgname recover /dev/vdX3
lvs
vgchange -a y  recover
ls /dev/recover/
mkdir /mnt/recover
mount /dev/recover/ubuntu-lv /mnt/recover/
ls /mnt/recover/

如果出现以下错误:

 $ vgchange -ay recover
  device-mapper: create ioctl on recover-ubuntu--lv LVM-3jIHEjL7LvdGGd4BP08N failed: Device or resource busy 

尝试以下命令重置磁盘:

dmsetup ls
    recover-ubuntu--lv      (253:1)
    ubuntu--vg-ubuntu--lv   (253:0)
dmsetup remove recover-ubuntu--lv

重试$ vgchange -ay recover

打扫干净

在虚拟机上:

umount /mnt/recover
lvchange -an recover
vgchange -an recover

在 Proxmox UI 上

  • 分离磁盘如果不再需要快照,则可以将其删除(注意:此操作无法撤消,一旦删除,就无法再删除)

在 NAS SSH 上:

  • 释放快照上的保留:

sudo zfs release keep Slow1/slow1-iscsi/*snapshot-name*

相关内容