首页
解决方案
数据库专业技术服务全栈式PostgreSQL解决方案Oracle分布式存储化数据库云PolarDB一体化解决方案
产品
CLup:PostgreSQL高可用集群平台 CMiner: PostgreSQL中的CDC CData高性能数据库云一体机 CBackup数据库备份恢复云平台 CPDA高性能双子星数据库机 CSYun超融合虚拟机产品 ZQPool数据库连接池 ConshGuard数据保护产品
文档
文章
客户及伙伴
中启开源
关于我们
公司简介 联系我们
中启开源
修改标题
往前插入
往后插入
删除

虚拟机模板

1. 虚拟机模板管理界面总览

虚拟机模板主界面如下:

虚拟机模板管理有以下功能:

在此界面中,可以增加、修改、删除虚拟机模板,也可以把一个虚拟机拷贝成模板。

2. 添加虚拟机模板

点“增加”按钮,弹出增加虚拟机模板的界面,见下图:
img

模板类型有:

在界面的“模板配置”是需要输入一段xml的内容,这个内容是与Linux下的虚拟机管理命令virsh dumpxml中得到的虚拟机的xml配置是基本相同的,但在此xml配置文件,但其中的一些配置项用一些占位符如{vm_name}、{vm_uuid}等取代,一个xml内容的示例如下:

  1. <domain type='kvm'>
  2. <name>{vm_name}</name>
  3. <uuid>{vm_uuid}</uuid>
  4. <title>{vm_title}</title>
  5. <memory unit='KiB'>{vm_mem_size}</memory>
  6. <currentMemory unit='KiB'>{vm_mem_size}</currentMemory>
  7. <vcpu placement='static'>{vm_cpu_cores}</vcpu>
  8. <os>
  9. <type arch='{cpu_arch}' machine='{kvm_machine}'>hvm</type>
  10. <bootmenu enable='yes'></bootmenu>
  11. </os>
  12. <features>
  13. <acpi></acpi>
  14. <apic></apic>
  15. </features>
  16. <cpu mode='host-passthrough' check='partial' />
  17. <clock offset='utc'>
  18. <timer name='rtc' tickpolicy='catchup'></timer>
  19. <timer name='pit' tickpolicy='delay'></timer>
  20. <timer name='hpet' present='no'></timer>
  21. <timer name='hypervclock' present='yes'></timer>
  22. </clock>
  23. <on_poweroff>destroy</on_poweroff>
  24. <on_reboot>restart</on_reboot>
  25. <on_crash>destroy</on_crash>
  26. <pm>
  27. <suspend-to-mem enabled='no'></suspend-to-mem>
  28. <suspend-to-disk enabled='no'></suspend-to-disk>
  29. </pm>
  30. <devices>
  31. <emulator>{emulator}</emulator>
  32. <disk type='file' device='disk'>
  33. <driver name='qemu' type='qcow2'></driver>
  34. <source file='{vm_os_file}'></source>
  35. <target dev='hda' bus='ide'></target>
  36. <boot order='1'></boot>
  37. <alias name='ide0-0-0'></alias>
  38. <address type='drive' controller='0' bus='0' target='0' unit='0'></address>
  39. </disk>
  40. <disk type='file' device='cdrom'>
  41. <driver name='qemu' type='raw'></driver>
  42. <source file='{iso_file}'></source>
  43. <backingStore></backingStore>
  44. <target dev='hdb' bus='ide'></target>
  45. <readonly></readonly>
  46. <boot order='2'></boot>
  47. <alias name='ide0-0-1'></alias>
  48. <address type='drive' controller='0' bus='0' target='0' unit='1'></address>
  49. </disk>
  50. <disk type='file' device='cdrom'>
  51. <target dev='sdda' bus='sata'/>
  52. <readonly/>
  53. <alias name='sata0-0-0'/>
  54. <address type='drive' controller='0' bus='0' target='0' unit='0'/>
  55. </disk>
  56. <disk type='file' device='cdrom'>
  57. <target dev='sddb' bus='sata'/>
  58. <readonly/>
  59. <alias name='sata0-0-1'/>
  60. <address type='drive' controller='0' bus='0' target='0' unit='1'/>
  61. </disk>
  62. <disk type='file' device='cdrom'>
  63. <target dev='sddc' bus='sata'/>
  64. <readonly/>
  65. <alias name='sata0-0-2'/>
  66. <address type='drive' controller='0' bus='0' target='0' unit='2'/>
  67. </disk>
  68. <disk type='file' device='cdrom'>
  69. <target dev='sddd' bus='sata'/>
  70. <readonly/>
  71. <alias name='sata0-0-3'/>
  72. <address type='drive' controller='0' bus='0' target='0' unit='3'/>
  73. </disk>
  74. <controller type='usb' index='0' model='ich9-ehci1'>
  75. <alias name='usb'></alias>
  76. <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x7'></address>
  77. </controller>
  78. <controller type='usb' index='0' model='ich9-uhci1'>
  79. <alias name='usb'></alias>
  80. <master startport='0'></master>
  81. <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0' multifunction='on'></address>
  82. </controller>
  83. <controller type='usb' index='0' model='ich9-uhci2'>
  84. <alias name='usb'></alias>
  85. <master startport='2'></master>
  86. <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x1'></address>
  87. </controller>
  88. <controller type='usb' index='0' model='ich9-uhci3'>
  89. <alias name='usb'></alias>
  90. <master startport='4'></master>
  91. <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x2'></address>
  92. </controller>
  93. <controller type='pci' index='0' model='pci-root'>
  94. <alias name='pci.0'></alias>
  95. </controller>
  96. <controller type='ide' index='0'>
  97. <alias name='ide'></alias>
  98. <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'></address>
  99. </controller>
  100. <controller type='virtio-serial' index='0'>
  101. <alias name='virtio-serial0'></alias>
  102. <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'></address>
  103. </controller>
  104. <controller type='sata' index='0'>
  105. <alias name='sata0'/>
  106. <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
  107. </controller>
  108. <controller type='scsi' index='0' model='virtio-scsi'>
  109. <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
  110. </controller>
  111. <interface type='bridge'>
  112. <mac address='{mac_address}'></mac>
  113. <source bridge='br0'></source>
  114. <target dev='vnet0'></target>
  115. <model type='virtio'></model>
  116. <alias name='net0'></alias>
  117. <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'></address>
  118. </interface>
  119. <serial type='pty'>
  120. <source path='/dev/pts/3'></source>
  121. <target port='0'></target>
  122. <alias name='serial0'></alias>
  123. </serial>
  124. <console type='pty' tty='/dev/pts/3'>
  125. <source path='/dev/pts/3'></source>
  126. <target type='serial' port='0'></target>
  127. <alias name='serial0'></alias>
  128. </console>
  129. <input type='tablet' bus='usb'>
  130. <alias name='input0'></alias>
  131. <address type='usb' bus='0' port='1'></address>
  132. </input>
  133. <input type='mouse' bus='ps2'>
  134. <alias name='input1'></alias>
  135. </input>
  136. <input type='keyboard' bus='ps2'>
  137. <alias name='input2'></alias>
  138. </input>
  139. <graphics type='vnc' port='{vnc_port}' autoport='no' listen='0.0.0.0' keymap='en-us' passwd='{vnc_password}'>
  140. <listen type='address' address='0.0.0.0'></listen>
  141. </graphics>
  142. <sound model='ich6'>
  143. <alias name='sound0'></alias>
  144. <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'></address>
  145. </sound>
  146. <memballoon model='virtio'>
  147. <alias name='balloon0'></alias>
  148. <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'></address>
  149. </memballoon>
  150. </devices>
  151. </domain>

当模板类型为“普通模板”时,占位符如下:

当用此模板创建虚拟机时,这些占位符会被替换成真实的值。

当模板类型为“ISO模板”时,多了一个占用符:

当增加了类型为“普通模板”的虚拟机模板后,需要在每台物理机上增加真正的模板镜像文件后,才能根据此模板创建虚拟机,方法如下:

  1. zfs create zp01/tpl00000001
  2. cp centos7.4.qcow2 /zp01/tpl00000001/.

上面命令中的“centos7.4.qcow2”是已准备好的安装有操作系统的虚拟机OS盘的镜像文件。

点“把虚拟机拷贝成模板”按钮,弹出如下界面,见下图:

在此界面中输入已有虚拟机的ID和模板名称,点“提交按钮”后就开始创建模板。注意只能把已关电的虚拟机拷贝成模板,所以请保证虚拟机处于关电状态中,另在整个创建模板的过程中,千万不要启动虚拟机,否则创建出的模板的镜像文件会存在不一致的情况。

在把虚拟机拷贝成模板的过程中,因为要把镜像文件拷贝到所有物理机上,所以此过程会花费较长的时间,没有完成之前,看到的模板状态都是“同步中”:

当状态从“同步中”变成“正常”之后,模板才完成了创建过程。

若是添加ISO模板,则填写好上诉信息就可创建成功。

若是添加普通模板,则需要上传虚拟机镜像文件才能使用。

上传虚拟机镜像文件后,该模板就可使用了。

3 把虚拟机拷贝成模板:

需要填写被拷贝的虚拟机ID,以及模板名称,即可把虚拟机拷贝成普通模板,方便之后快速创建虚拟机,创建就能用。

4. 查看模板配置:

可查看该模板的配置信息:

5. 修改模板配置:

可修改模板ID、模板名称、模板配置的信息:

6. 删除模板:

选择一个模板,点击删除,即可删除该模板:

7. 编辑模板的镜像:

此功能只有用虚拟机拷贝成的模板才有,选择该模板,点击进入镜像编辑界面,可编辑模板的镜像。

在此界面中,在搜索框中可以按“物理机名称”、“物理机IP”搜索该模板的镜像,同样支持通配符百分号“%”及下划线“_”。

创建镜像的虚拟机:

注:此方法创建的虚拟机被禁用快照功能。

创建成功:

创建后可进行虚拟机的基础功能:删除、开机、重启关机、强制重启、登录、管理,这一系列基础功能在虚拟机列表管理模块有详细讲解。若是修改了镜像,可点击修改生效使修改生效。

目录
img