如何使用本地 lvm 存储将 VMWare vmdk 迁移到 Proxmox 4.4

如何使用本地 lvm 存储将 VMWare vmdk 迁移到 Proxmox 4.4

直到最近我还在使用 Proxmox 4.0,这是我将 VMWare VM 转换为 Proxmox 的过程

  • 创建一个可运行的虚拟机。卸载 VMWare Tools
  • 安装 ProxMox
  • 驱动程序 ISO 并将必要的驱动程序复制到 C:\PVE 文件夹
  • 在 VMware 上启动 Windows 虚拟机并执行文件 Mergeide.reg。
  • 确保 Atapi.sys、Intelide.sys、Pciide.sys 和 Pciidex.sys 位于 %SystemRoot%\System32\Drivers 文件夹中。
  • 关闭 Windows。

然后使用 vdiskmanager 准备 VMDisk

"C:\Program Files\VMware\VMware Server\vmware-vdiskmanager" -r disk0.vmdk -t 0 disk0-pve.vmdk

然后将 vmdk 转换为 qcow2 文件

qemu-img convert -f vmdk disk0-pve.vmdk -O qcow2 disk0-pve.qcow2

现在在 Proxmox 中使用与 VMWare 中的 VM 相同的硬件规格创建 VM。然后重命名磁盘0-pve.qcow2vm-VID-磁盘-1.qcow2

然后将 qcow2 文件上传到/var/lib/vz/图像/VID

运行虚拟机并进行排序…

现在这是我的问题。

刚刚升级到 Proxmox 4.4,我相信从 4.2 版开始一切都发生了变化

我的 Proxmox 服务器安装创建到存储区域(当地的&本地lvm)当您创建虚拟机时,磁盘将放置在本地lvm存储。/etc/pve/qemu-server/VID.conf文件显示位置为本地-lvm:vm-VID-磁盘-1

我的第一个问题是这样的。

1) 我该如何处理我的 .qcow2 文件?我无法将其上传到/var/lib/vz/图像因为那里是空的,我不知道如何导航到本地lvm(我假设你不能,因为它是一个 lvm)

2)如何获得vm-VID-磁盘-1.qcow2文件(我上面创建的)本地-lvm:vm-VID-磁盘-1

其他问题…

在旧的 Proxmox 4.0 上,我曾经关闭虚拟机并下载qcow2作为备份(我知道我可以快照)但是qcow2文件用于场外紧急情况。

3)那么我如何获得本地-lvm:vm-VID-磁盘-1复制到vm-VID-磁盘-1.qcow2

当然,另一个问题是“创造”当地的存储量很小(由 proxmox 安装程序决定)。它决定使用 200Gb。

4) 但是其中一个磁盘(qcow2 文件)是 500Gb,那么我该如何将其传输到本地lvm

当然在 4.0 版本中这不是问题,因为它是“/”下的一个存储区域,我可以上传和下载qcow2通过 SFTP 文件。

我可以将磁盘放在 USB 磁盘上并安装它吗?

您对从我的 PC 安装到 SMB 共享有何看法?qcow2文件?proxmox 是否支持 SMB 安装?或者我需要安装 debian 软件包吗?如果是这样,这会破坏 proxmox 及其作为虚拟机管理程序的性能吗?

抱歉,问题太多了 :-)

答案1

这是将 vmdk 导入 proxmox vm 的解决方法。这就是我所做的。

1) 您可以将其视为 lvm。您可以查看https://www.howtoforge.com/linux_lvm关于 lvm。简要结构;

  • pv 物理卷,例如 /dev/sdb1
  • vg 卷组,物理卷组
  • lv 逻辑卷,来自 vg 的分配
    • 就像 /dev/vgname/lvname 一样,你调整大小

所以:

你可以看到

lvdisplay

你可以使用 mkfs,但要小心 proxmox

mkfs.ext4 /dev/vgname/lvname

你可以安装它

mount /dev/vgname/lvname /mnt/lvname

2) 您必须首先检查 vmdk 映像大小。这很重要,因为您不能将较大的映像放在较小的块设备上。详细信息: https://askubuntu.com/questions/657562/extracting-qcow2-image-to-a-smaller-real-drive/657682

qemu-img 信息 disk0.vmdk

image: disk0.vmdk
file format: vmdk
virtual size: 82G (88081432576 bytes)
disk size: 2.0G

你可以看到磁盘大小,它是 vmdk 文件的磁盘使用情况。还有虚拟大小,它是虚拟机的硬盘大小。

然后,创建一个带有 82G“ide”磁盘的虚拟机(就我的情况而言)

您可以使用以下方法检查磁盘路径:

lvdisplay

然后以原始格式复制 vmdk 到其上:

qemu-img convert -p -O raw disk0.vmdk /dev/vgname/vm-111-disk-1

就是这样,对我有用。

对于大小问题,您可以使用调整 vmdk 的大小,qemu-img resize your.vmdk 82G或者在 Web 界面上调整虚拟机的磁盘大小。但您必须检查qemu-img info以确保 vmdk 小于虚拟机的磁盘。

您可以使用 SFTP 上传文件,也可以使用 USB,如上所示。使用不同的目录或磁盘,或在必要时挂载它们。

您可以在 proxmox 上使用 SMB,我猜 smbclient 已经安装好了。这不会破坏 proxmox。可能是安全问题,您可以检查 proxmox 上的开放端口,并限制某些 IP 子网的端口。

答案2

我也遇到过类似的事情。我在 Open Media Vault 上运行了一些 vm 映像。OMV 使用类似 的工具支持常规的普通 KVM virsh。我想将映像移动到运行 Proxmox 6.1 的新服务器。

首先,我将图像从 OMV 导出为qcow2文件,并将其移动到我的 Proxmox 服务器。然后在 Proxmox 中,我创建了一个“目录”样式的存储。目录存储与物理文件系统上的底层目录绑定 - 在我的情况下,它是一个位置/data。创建“目录”存储时,会自动在文件系统目录中创建多个子目录。保存 vm 图像的目录称为images。还创建了一个名为的目录,vm-images所以不要混淆。

我在 Proxmox 中创建了一个新的虚拟机,指定了“目录”存储并使用了 qcow2 格式。这样就创建了一个文件,/data/images/$VM_ID/vm-$VM_ID-disk-0.qcow2其中$VM_ID是虚拟机的数字标识符,通常从 100 开始向上。我使用导出的qcow2文件覆盖了该文件。

这有效,我能够启动虚拟机,但显然使用qcow2文件系统上的文件效率并不高。因此,在 Web UI 中,我转到虚拟机的硬件窗格,选择硬盘,然后使用“移动磁盘”按钮。这使我能够将磁盘映像复制到另一个存储介质,并且它还将其从文件转换qcow2为原始格式。我可以在移动时使用“删除源”复选框,或者我可以/data/images/$VM_ID/稍后从目录中删除源。甚至可以在虚拟机运行时进行此移动。

顺便说一句,在我执行此操作时,我的一些虚拟机变得完全没有响应。这是我自己的错。首先,数据目录由一对 Western Digital Red 3TB 硬盘镜像组成。WD Red 硬盘专为文件服务器的长寿命和可靠性而设计。它们是传统的 5200 rpm 硬盘,因此速度相对较慢。其次,我有一个 rsync 作业同时将大约 1.5TB 的数据写入镜像对。这些驱动器无法处理 rsync 作业的 I/O 并同时为多个虚拟机托管虚拟驱动器。Web UI 中 pve 节点摘要面板中的“I/O 延迟”显示的值大于 50%。I/O 延迟与通常看到的等待时间相同top。当我将虚拟机映像存储移动到不同的设备时,一切都很好。

我的另一个 Proxmox 错误是,我移动的其中一个虚拟机是使用 Cinnamon 桌面环境的 Linux“桌面”(Linux Mint)。Mint 项目基本上采用了 Ubuntu Linux,并将其与经过精心打磨的 Cinnamon 相结合,以获得非常不错的 Linux 桌面体验。但是,如果您没有 GPU,Cinnamon 就是个废物。OMV“服务器”是我买的二手旧游戏 PC。它有一个 NVIDIA GeForce GTX 560。它不是一个好的 GPU,但 Cinnamon 不需要好的 GPU,任何 GPU 都行。Proxmox 服务器是一台真正的服务器。它根本没有 GPU。

我甚至无法通过控制台登录虚拟机。我使用 ctrl-alt-f3 进入命令行,运行sudo apt install mint-meta-mate安装 mate 桌面,然后运行sudo update-alternatives --config x-session-manager选择 Mate 作为默认桌面。即使没有 GPU,也可以正常工作。

相关内容