https://blog.csdn.net/zebra2011/article/details/83046841
一、前言
之前发现ESXi是免费的时候,非常兴奋地把几台服务器都装上了,用着确实还行,但是用久了之后就发现,很多高端功能需要进一步付费才能使用,比如HA等。另外就是它还有很多局限性,比如账号权限配置、只能在windowns下用客户端登录、无法记住登录账号密码等,这些我来说,变得越来越不可忍受。
经过长时间的寻找,从XenServer到更加强大的OpneClound,都有了解甚至尝试去搭建试用,发现它们不是功能太有限就是搭建和维护难度太大,最终确定了一款叫Proxmox VE的软件,可以算是开源软件,免费使用免费升级,安装超级简单(可以下载iso像安装linux一样用u盘光盘之类来安装),而且有web管理端,常用功能直接在web就可以搞定,进阶功能又可以用命令行完成,使用一段时间后深得我心。现在要把之前在ESXi中的虚拟机迁移过去,因为在网上找到的资料都不完整,特此记录一下。值得注意的是本文的方法只能在Proxmox 5 以上版本使用,我在4.4上试过,发现没有qm importovf命令。
二、导出ova
首先第一步是从ESXi的管理客户端vSphere Client中把要迁移的虚拟机关机,然后选中它,在菜单“文件”-“导出”-“导出OVF模板”,然后格式选择“单个文件(OVA)”,等待导出完成。这个方法好像会把虚拟机硬盘未使用部分压缩起来,会比原来的vmdk文件小很多,如果你虚拟机的硬盘不是使用满了的话。
三、上传到目标主机
然后就是把ova文件上传到proxmox到主机。可以用winscp,也可以用web端。用web端的时候,在web左侧选择“文件夹视图”,然后展开“存储”,选中一个可以上传镜像的存储,比如“local(pve1)”,其中pve1是你的主机名字,在右边选择“内容”-“上传”即可。这里有一个技巧,因为上传的只能是iso或者容器模板,这里选择iso,然后把之前的ova文件加上一个iso后缀就可以上传成功了。
四、解压
用ssh客户端或者直接在web上登录你上传iso的主机,找到上传的ova文件,先用tar解压,例如上传的是vm01.ova.iso,则解压命令如下:
tar xvf vm01.ova.iso
解压成功之后会得到以下文件:
1.一个ovf文件,这个文件包含了虚拟机的硬件配置,例如cpu规格、内存等。
2.一个或多个vmdk文件,这些是虚拟机的硬盘镜像,数量取决于虚拟机有多少个硬盘。
五、导入
最后使用命令把ovf导入到proxmox中。命令如下:
qm importovf 999 vm01.ovf local --format qcow2
其中:
999 是虚拟机的id,在proxmox所有虚拟机中要唯一,是一个3位数字。
vm01.ovf 是tar解压出来的ovf文件
--format qcow2 是指定导入后硬盘镜像的格式,默认是raw格式。
六、后记
导入成功后发现网卡好像没有成功导入,可以在保持导入的虚拟机关机的情况下手动添加相应的网卡,如果需要保持mac地址不变的话,可以先在vsphere client中把相应的网卡mac复制出来,添加的时候再用复制出来的mac填进去即可。
七、补充
有些用EFI引导的系统(现在大部分新出来的系统都是这种)迁移过来会需要更多设置才可以用。我有一台centos 6.7就是用EFI引导的,一开始没弄清门路死活引导不起来,后来经过对EFI原理https://blog.csdn.net/yx06a1203/article/details/52946535进行详细了解发现,只需要简单设置就可以跑起来。
首先需要要在web配置页面中,在“选项”栏中把BIOS的值改成“OVMF(UEFI)”,再从“硬件”栏给该虚拟机加上一个“EFI磁盘”,该磁盘的作用跟电脑主板上的NVRAM差不多,就是用来存储EFI的配置信息,例如启动项列表。如果没有这个磁盘,每次配置好启动项之后,只要虚拟机一关,配置信息就会消失。
然后在虚拟机启动的时候按下“ESC”键进入所谓的“BIOS”配置界面,依次选择“Boot Maintenance Manager”->"Boot Options"->"Add Boot Option",接着会出来若干个包含了EFI分区的硬盘(一般是1个),回车键选中该硬盘,依次选择目录"<EFI>"->"redhat"->"grub.efi",这时候会出来一个填写启动项信息的界面,我在"Input the description"中填写了“centos6.7”,然后选中"Commit Changes and Exit"。这个时候直接返回了“Boot Options”界面,选中菜单"Change Boot Order"进行启动项顺序的调整,把之前新添加的"<centos6.5>"调到最上面即可。然后选择"Commit Changes and Exit"返回刚才的界面,接着一直按“ESC”出去到最外面的界面,选择"Continue"就会成功出现centos的启动菜单了。