Lxn-Chan!

(~ ̄▽ ̄)→))* ̄▽ ̄*)o

vCenter 虚拟机导出及 PVE 侧导入手记

从vCenter导出虚拟机

其实这部分没什么好记的,主要是路径拼接和转义。

导出可以选ova或者ovf格式,导入PVE建议使用ovf,会简单一些,OVA的话适合用于分发。

  1. 安装ovftools,很可惜我已经忘了从哪下载的了
    1
    unzip VMware-ovftool-4.6.3-24031167-lin.x86_64.zip && cd ovftools
  2. 导出的基本逻辑
    1
    ./ovftool vi://[USERNAME]:[PASSWORD]@[VSPHERE]/[PATH]/[VM-NAME] "/path/to/output-folder"

在 ovftool 的 vi:// URL 里,所有特殊符号都必须变成 URL 编码,否则 vCenter 以为你在乱写路径。

例如:

1
2
3
# administrator@vsphere.local
# Admin#4062&1733
vi://administrator%40vsphere.local:Admin%234062%261733@192.168.20.88/Datacenter/vm/testedVM

那么接下来是/[PATH]/[VM-NAME],这里记录一个笨方法,直接写根路径,然后让ovftools自己把文件列出来:

1
2
3
4
root@Vostro-3470:~/ovftool# ./ovftool "vi://administrator%40vsphere.local:Admin%234062%261733@192.168.20.88/"
Error: Found wrong kind of object (Folder). Possible completions are:
Datacenter
hosts

这样我们就知道根目录下有Datacenterhosts两个目录,然后一点一点往下找就可以了,直至找到虚拟机名称。

ovf导入PVE

我的PVE使用了Ceph作为后端存储,其中cephfs用于存储ISO镜像、CT模板、片段和导入;datapool0(RBD)用于存储VM磁盘和CT卷。

那么我们现在需要做的就是将ovf整个文件夹传入Cephfs,然后使用qm命令导入。

传入ovf

现在我已在本地导出vCenter的虚拟机,清单如下:

1
2
3
4
5
6
7
8
root@Vostro-3470:/userdisk0/testvm/WindowsServer/WindowsServer# ls -la
total 9578360
drwxr-xr-x 2 root root 96 Nov 10 18:21 .
drwxr-xr-x 3 root root 21 Nov 10 18:14 ..
-rw-r--r-- 1 root root 9807947264 Nov 10 18:21 WindowsServer-disk1.vmdk
-rw-r--r-- 1 root root 270840 Nov 10 18:21 WindowsServer-file1.nvram
-rw-r--r-- 1 root root 273 Nov 10 18:21 WindowsServer.mf
-rw-r--r-- 1 root root 10410 Nov 10 18:21 WindowsServer.ovf

然后将整个文件夹传入PVE主机Cephfs的挂载点内:

1
scp -rC WindowsServer/ root@192.168.20.88:/mnt/pve/cephfs/import/

然后应该可以在PVE的Cephfs中看到刚才传入的文件。接下来进行导入:

在PVE上导入虚拟机

导入的基本命令格式:

1
qm importovf [VM ID] [STORAGE] [OPTIONS]

其中VM ID取一个不存在的ID;STORAGE我这里选择Ceph的RBD;OPTIONS因为我这里采用了Ceph存储,所以要启用--format raw,使得磁盘镜像以raw格式导入。

1
qm importovf 123 WindowsServer.ovf datapool0 --format raw

等待导入完成即可。

Windows 虚拟机配置改动

  • 处理器-类别:默认导入后是kvm64,根据实际情况改;
  • BIOS类型:默认导入后是SeaBIOS(Legacy),根据实际情况改,如果从Legacy改成EFI还需要添加一个EFI磁盘(用于存储EFI配置);
  • 机型:Windows 8 及以上建议改成q35
  • SCSI控制器:改成VMware PVSCSI
  • 网络设备:添加VMware vmxnet3

其他项诸如显示我这里没改也可以正常启动,后面再安装QEMU Guest Tools即可。

Linux 虚拟机配置变动

Linux 虚拟机测试了 CentOS 7 和 ubuntu 24 ,目前确定一定会变动的配置只有网卡,

  • 处理器-类别:默认导入后是kvm64,根据实际情况改;
  • BIOS类型:默认导入后是SeaBIOS(Legacy),根据实际情况改,如果从Legacy改成EFI还需要添加一个EFI磁盘(用于存储EFI配置);
  • SCSI控制器:改成VirtIO SCSI single
  • 网络设备:添加VMware vmxnet3

CentOS7

迁移后由于设备树拓扑和总线地址改变,原有网卡配置将不再适用于新网卡,最简单的方法是将原有配置文件中的DEVICE=改成新网卡名(例如ens18)。

启动后由于磁盘接口更改,CentOS/RHEL 系列的 initramfs 是“按需打包”,不是“全家桶模式”。它会根据你上次开机时的硬件环境来决定 initramfs 里要放入哪些驱动,目的是让系统启动更快、更小、更稳定。

则第一次启动一定会卡在找不到磁盘,需要进入rescue模式,重新打包initramfs:

1
dracut --regenerate-all --force

随后重启应该就可以进入系统了。

ubuntu 24

迁移后由于设备树拓扑和总线地址改变,原有网卡配置将不再适用于新网卡,最简单的方法是将原有netplan配置文件中的网卡名改成新网卡名(例如enp6s18)。

 简单说两句



联系站长 | 服务状态 | 友情链接

备案号:辽ICP备19013963号

津公网安备12011602300394号

中国互联网违法和不良信息举报中心

架构版本号:8.1.7 | 本站已全面支持IPv6

正在载入运行数据(1/2)请稍后...
正在载入运行数据(2/2)请稍后...

♥stand with innovative technologies of all kinds♥

Copyright 2024 LingXuanNing, All rights reserved.