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

Ian*_*ers 5 migration vmware-workstation proxmox

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

  • 创建一个工作虚拟机。卸载 VMWare 工具
  • 安装 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。然后将disk0-pve.qcow2重命名为vm-VID-disk-1.qcow2

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

运行虚拟机并排序...

现在这是我的问题。

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

我的 Proxmox 服务器安装创建到存储区域(local & local-lvm)当你创建一个 VM 时,磁盘被放置在local-lvm存储上。该/etc/pve/qemu-server/VID.conf文件显示位置为本地LVM:VM-VID-盘1

所以我的第一个问题是这个。

1) 我如何处理我的 .qcow2 文件?我无法将它上传到/var/lib/vz/images因为它是空的,我不知道如何导航到local-lvm(我假设你不能因为它是一个 lvm)

2)如何将vm-VID-disk-1.qcow2文件(我在上面创建)获取到local-lvm:vm-VID-disk-1

其他问题…

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

3) 那么如何将local-lvm:vm-VID-disk-1复制到vm-VID-disk-1.qcow2

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

4) 但是其中一个磁盘(qcow2 文件)是 500Gb,那么我如何将其发送到local-lvm

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

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

您对从我的带有qcow2文件的PC 挂载到 SMB 共享有什么想法?proxmox 甚至支持 SMB 安装吗?还是我需要安装 debian 软件包?如果是这样,这会破坏 proxmox 及其作为管理程序的性能吗?

对不起很多问题:-)

小智 6

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

1)你可以像lvm一样。关于lvm可以看https://www.howtoforge.com/linux_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
Run Code Online (Sandbox Code Playgroud)

您可以看到磁盘大小,它是 vmdk 文件的磁盘使用情况。而虚拟大小,就是vm的硬盘大小。

然后,您创建一个带有 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 界面上调整 vm 的磁盘大小。但是您必须检查qemu-img info以确保 vmdk 小于 vm 的磁盘。

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

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