虚拟机模板
1. 虚拟机模板管理界面总览
虚拟机模板主界面如下:
虚拟机模板管理有以下功能:
- 添加一个模板
- 把虚拟机拷贝成模板
- 查看模板配置
- 修改模板配置
- 删除模板
- 编辑模板的镜像
在此界面中,可以增加、修改、删除虚拟机模板,也可以把一个虚拟机拷贝成模板。
2. 添加虚拟机模板
点“增加”按钮,弹出增加虚拟机模板的界面,见下图:
模板类型有:
- 普通模板: 当从此类型的模板创建虚拟机时,会把已准备好的的模板的镜像文件直接复制成虚拟机的OS镜像盘。
- ISO模板: 为从ISO镜像文件中安装一个虚拟机提供配置模板。
在界面的“模板配置”是需要输入一段xml的内容,这个内容是与Linux下的虚拟机管理命令virsh dumpxml中得到的虚拟机的xml配置是基本相同的,但在此xml配置文件,但其中的一些配置项用一些占位符如{vm_name}、{vm_uuid}等取代,一个xml内容的示例如下:
<domain type='kvm'><name>{vm_name}</name><uuid>{vm_uuid}</uuid><title>{vm_title}</title><memory unit='KiB'>{vm_mem_size}</memory><currentMemory unit='KiB'>{vm_mem_size}</currentMemory><vcpu placement='static'>{vm_cpu_cores}</vcpu><os><type arch='{cpu_arch}' machine='{kvm_machine}'>hvm</type><bootmenu enable='yes'></bootmenu></os><features><acpi></acpi><apic></apic></features><cpu mode='host-passthrough' check='partial' /><clock offset='utc'><timer name='rtc' tickpolicy='catchup'></timer><timer name='pit' tickpolicy='delay'></timer><timer name='hpet' present='no'></timer><timer name='hypervclock' present='yes'></timer></clock><on_poweroff>destroy</on_poweroff><on_reboot>restart</on_reboot><on_crash>destroy</on_crash><pm><suspend-to-mem enabled='no'></suspend-to-mem><suspend-to-disk enabled='no'></suspend-to-disk></pm><devices><emulator>{emulator}</emulator><disk type='file' device='disk'><driver name='qemu' type='qcow2'></driver><source file='{vm_os_file}'></source><target dev='hda' bus='ide'></target><boot order='1'></boot><alias name='ide0-0-0'></alias><address type='drive' controller='0' bus='0' target='0' unit='0'></address></disk><disk type='file' device='cdrom'><driver name='qemu' type='raw'></driver><source file='{iso_file}'></source><backingStore></backingStore><target dev='hdb' bus='ide'></target><readonly></readonly><boot order='2'></boot><alias name='ide0-0-1'></alias><address type='drive' controller='0' bus='0' target='0' unit='1'></address></disk><disk type='file' device='cdrom'><target dev='sdda' bus='sata'/><readonly/><alias name='sata0-0-0'/><address type='drive' controller='0' bus='0' target='0' unit='0'/></disk><disk type='file' device='cdrom'><target dev='sddb' bus='sata'/><readonly/><alias name='sata0-0-1'/><address type='drive' controller='0' bus='0' target='0' unit='1'/></disk><disk type='file' device='cdrom'><target dev='sddc' bus='sata'/><readonly/><alias name='sata0-0-2'/><address type='drive' controller='0' bus='0' target='0' unit='2'/></disk><disk type='file' device='cdrom'><target dev='sddd' bus='sata'/><readonly/><alias name='sata0-0-3'/><address type='drive' controller='0' bus='0' target='0' unit='3'/></disk><controller type='usb' index='0' model='ich9-ehci1'><alias name='usb'></alias><address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'></address></controller><controller type='usb' index='0' model='ich9-uhci1'><alias name='usb'></alias><master startport='0'></master><address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'></address></controller><controller type='usb' index='0' model='ich9-uhci2'><alias name='usb'></alias><master startport='2'></master><address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'></address></controller><controller type='usb' index='0' model='ich9-uhci3'><alias name='usb'></alias><master startport='4'></master><address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'></address></controller><controller type='pci' index='0' model='pci-root'><alias name='pci.0'></alias></controller><controller type='ide' index='0'><alias name='ide'></alias><address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'></address></controller><controller type='virtio-serial' index='0'><alias name='virtio-serial0'></alias><address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'></address></controller><controller type='sata' index='0'><alias name='sata0'/><address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/></controller><controller type='scsi' index='0' model='virtio-scsi'><address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/></controller><interface type='bridge'><mac address='{mac_address}'></mac><source bridge='br0'></source><target dev='vnet0'></target><model type='virtio'></model><alias name='net0'></alias><address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'></address></interface><serial type='pty'><source path='/dev/pts/3'></source><target port='0'></target><alias name='serial0'></alias></serial><console type='pty' tty='/dev/pts/3'><source path='/dev/pts/3'></source><target type='serial' port='0'></target><alias name='serial0'></alias></console><input type='tablet' bus='usb'><alias name='input0'></alias><address type='usb' bus='0' port='1'></address></input><input type='mouse' bus='ps2'><alias name='input1'></alias></input><input type='keyboard' bus='ps2'><alias name='input2'></alias></input><graphics type='vnc' port='{vnc_port}' autoport='no' listen='0.0.0.0' keymap='en-us' passwd='{vnc_password}'><listen type='address' address='0.0.0.0'></listen></graphics><sound model='ich6'><alias name='sound0'></alias><address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'></address></sound><memballoon model='virtio'><alias name='balloon0'></alias><address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'></address></memballoon></devices></domain>
当模板类型为“普通模板”时,占位符如下:
- {vm_name} : 虚拟机在Linux物理机下的真实名称。
- {vm_uuid}:虚拟机的uuid
- {vm_title}:虚拟机的title,即显示的名称
- {vm_mem_size}:虚拟机的内存大小,单位为KB
- {vm_cpu_cores}:虚拟机的vcpu数
- {vm_os_file}:虚拟机的OS镜像文件名
- {mac_address}:虚拟机网卡的MAC地址
- {vnc_port}:虚拟机的VNC端口
- {vnc_password}:虚拟机的VNC密码
当用此模板创建虚拟机时,这些占位符会被替换成真实的值。
当模板类型为“ISO模板”时,多了一个占用符:
- {iso_file}:这表示ISO镜像文件的路径。
当增加了类型为“普通模板”的虚拟机模板后,需要在每台物理机上增加真正的模板镜像文件后,才能根据此模板创建虚拟机,方法如下:
zfs create zp01/tpl00000001cp centos7.4.qcow2 /zp01/tpl00000001/.
上面命令中的“centos7.4.qcow2”是已准备好的安装有操作系统的虚拟机OS盘的镜像文件。
点“把虚拟机拷贝成模板”按钮,弹出如下界面,见下图:
在此界面中输入已有虚拟机的ID和模板名称,点“提交按钮”后就开始创建模板。注意只能把已关电的虚拟机拷贝成模板,所以请保证虚拟机处于关电状态中,另在整个创建模板的过程中,千万不要启动虚拟机,否则创建出的模板的镜像文件会存在不一致的情况。
在把虚拟机拷贝成模板的过程中,因为要把镜像文件拷贝到所有物理机上,所以此过程会花费较长的时间,没有完成之前,看到的模板状态都是“同步中”:
当状态从“同步中”变成“正常”之后,模板才完成了创建过程。
若是添加ISO模板,则填写好上诉信息就可创建成功。
若是添加普通模板,则需要上传虚拟机镜像文件才能使用。
上传虚拟机镜像文件后,该模板就可使用了。
3 把虚拟机拷贝成模板:
需要填写被拷贝的虚拟机ID,以及模板名称,即可把虚拟机拷贝成普通模板,方便之后快速创建虚拟机,创建就能用。
4. 查看模板配置:
可查看该模板的配置信息:
5. 修改模板配置:
可修改模板ID、模板名称、模板配置的信息:
6. 删除模板:
选择一个模板,点击删除,即可删除该模板:
7. 编辑模板的镜像:
此功能只有用虚拟机拷贝成的模板才有,选择该模板,点击进入镜像编辑界面,可编辑模板的镜像。
在此界面中,在搜索框中可以按“物理机名称”、“物理机IP”搜索该模板的镜像,同样支持通配符百分号“%”及下划线“_”。
创建镜像的虚拟机:
注:此方法创建的虚拟机被禁用快照功能。
创建成功:
创建后可进行虚拟机的基础功能:删除、开机、重启关机、强制重启、登录、管理,这一系列基础功能在虚拟机管理模块有详细讲解。若是修改了镜像,可点击修改生效使修改生效。