qemu-img convert -f <原格式> -O <目标格式> <原文件路径> <目标文件路径> 这里 -f <原格式>可以忽略。qemu-img会自动识别
vmdk转qcow2
qemu-img convert -O qcow2 Centos_7.6-disk1.vmdk Centos_7.6-disk1.qcow2
qcow2转vmdk
qemu-img convert -O vmdk Centos_7.6-disk1.qcow2 Centos_7.6-disk1.vmdk
vdi转qcow2
qemu-img convert -O qcow2 Centos_7.6-disk1.vdi Centos_7.6-disk1.qcow2
vhd&vhdx转qcow2
qemu-img convert -O qcow2 Centos_7.6-disk1.vhdx Centos_7.6-disk1.qcow2
RAW转qcow2
qemu-img convert -O qcow2 Centos_7.6-disk1.raw Centos_7.6-disk1.qcow2
img转qcow2
qemu-img convert -O qcow2 Centos_7.6-disk1.img Centos_7.6-disk1.qcow2
qm虚拟导入参考
ESXi OVA 导入ProxmoxVE 虚拟机
首先从esxi主机的管理客户端vSphere Client中把要迁移的虚拟机关机选中需要迁移的机器,在菜单“文件”–“导出”–“导出OVF模板”,然后格式选择“单个文件(OVA)”,等待导出完成
Centos7.6.ova
上传Centos7.6.ova虚拟机存储(local-lvm的备份默认路径为:/var/lib/vz/template/iso)
解压 Centos7.6.ova
一个ovf文件,文件包虚拟机的硬件配置,例如cpu规格、内存等
一个或多个vmdk,虚拟机的硬盘镜像,数量取决于虚拟机有多少个硬盘。
tar -xvf Centos7.6.ova
qm基本硬件环境
主板类型
简化
–machine q35|i440fx
完整
–machine (pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)
CPU
–sockets <N> //几个物理插槽
–vcpus <N> //几个核心
–cpu <string> //CPU类型 host | kvm64 | qemu64 等等
–cpulimit <0-128> //CPU限制
–cpuunits <2-262144> //CPU权重
其他信息
–bios seabios|ovmf //选择是哪种bios类型
–boot cdn //启动顺序。cdrom disk network
–ostype //l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win7 | win8 | wvista | wxp
(注意前两个 一个是linux 2.4内核 一个是linux2.6内核以上,所以是字母小写L,不是1)
–agent 1 //开启qemu-guest-agent
–name vmname //虚拟机名称
–scsihw virtio-scsi-pci | virtio-scsi-single | megasas | pvscsi | lsi53c810 |lsi //磁盘控制器类型
–serial<N> (/dev/.+|socket) //增加串口,N=0-3。一般指定串口0,类型为socket。此项对于需要串口情况非常有用,例如cloudinit。
硬盘参数
–scsi<N> [pool]:[size] //其中N为scsi序号,从0开始。pool为储存池名称,例如local-lvm,[size]是硬盘大小,不需要指定磁盘名,系统创建。
例: qm create 100 –scsi0 local-lvm:40
创建虚拟机100,并且在local-lvm上创建一个40G的scsi磁盘。
–ide<N> [pool]:[size] //ide磁盘
–sata<N> [pool]:[size] //sata磁盘
网络参数
–net[N]
这是一个option。N是整数,一般用序列。代表网卡序列
model
网卡类型。e1000 | e1000-82540em | e1000-82544gc | e1000-82545em | i82551 | i82557b | i82559er | ne2k_isa | ne2k_pci | pcnet | rtl8139 | virtio | vmxnet3
bridge=<bridge>
bridge=vmbr[N].N代表桥接网卡的序号。
firewall=<1|0>
防火墙是否开启。值为1则开启,0为关闭
link_down=<1|0>
是否连接网卡,1为连接,0为端口。默认值为连接,所以一般不指定此项。
macaddr=<XX:XX:XX:XX:XX:XX>
指定网卡的MAC地址
rate=<number>
限速。单位mbps。一般不指定这项
tag=<integer>]
VLAN 标签
trunks=<vlanid[;vlanid…]>
trunk选项
<model>=<macaddr>
此项是model和mac的合集。可以不用上面的两个选项。直接这样设置。
cloud-init
cloudinit常用于公有云中。
需要虚拟机有cloud drive
#创建cloud drive
qm set 100 –ide2 local-lvm:cloudinit –ciuser root –cipassword YOU_password
单一导入ESXI OVA虚拟机到 ProxmoxVE
qm create 103 –name Centos7.6 –ostype l26 –agent 1 –bios seabios –boot cdn –bootdisk ide0 –onboot yes –memory 4096 –cores 2 –sockets 1 –cpu host –scsihw pvscsi –serial0 socket –start 0 –net0 virtio,bridge=vmbr0
将Esxi的磁盘导入local-lvm存储
var/lib/vz/template/iso 上传到此目录或者自定义到任意目录
qm importdisk 103 /var/lib/vz/template/iso/Centos_7.6-disk1.vmdk local-lvm –format=qcow2
将新磁盘以ideo或者scsi驱动器的形式绑定给虚拟机
qm set 103 –ide0 local-lvm:vm-103-disk-0
增加一个磁盘
qm set 103 –ide1 local-lvm:100
将 VM 转换成 template
qm template 103
从 template 中克隆系统
qm clone 103 104 –name Centos7.6-01
启动104 vm
qm start 104
qm批量一键导入 OVA 虚拟机10台
前提,esxi 创建安装导出的OVA虚拟机
vi /root/qm-ova.sh
#!/bin/bash
clear
wget -N -P /root/ ftp://192.168.12.20//VMware/OVA/Centos7.6.ova –ftp-user=user –ftp-password=you_password
tar -xvf Centos7.6.ova -C /root/
echo “###”
echo “### create multiple qm Containers”
echo “###”
if [ $# -lt 3 ]; then
echo “usage: $0 <from id> <to id> <name>”
echo “example: $0 120 130 centos”
exit
else
# which template to use from local storage
vmdk=”/root/Centos_7.6-disk1.vmdk”
# create container (4096MB RAM, 200GB Storage, DHCP)
for i in `seq $1 $2`; do
clear
echo “###”
echo “### create qm Container ID $i from $2”
echo “###”
qm create $i \
–name $3$i \
–ostype l26 \
–agent 1 \
–bios seabios \
–boot cdn \
–bootdisk ide0 \
–onboot yes \
–memory 4096 \
–cores 2 \
–sockets 1 \
–cpu host \
–scsihw pvscsi \
–serial0 socket \
–start 0 \
–net0 virtio,bridge=vmbr0
qm importdisk $i $vmdk local-lvm –format=qcow2
qm set $i –ide0 local-lvm:vm-$i-disk-0
qm set $i –ide1 local-lvm:100
qm start $i
#qm template $i
done
fi
qm批量部署开始
sh qm-ova.sh 120 130 centos
qm批量创建完成
qm一键可以删除
for i in `seq 120 130`; do qm stop $i; qm destroy $i; done