怀德维宁

大邦维屏,大宗维翰。怀德维宁,宗子维城。

0%

【翻译】libvirt虚拟机xml配置文件格式(1)General metadata

原文网址:https://libvirt.org/formatdomain.html#id8

所有的虚拟机都需要的根元素是domain。其包含两个属性项,typo属性项指明了被用来运行虚拟机的虚拟机管理程序(hypervisor)。该项允许的数值与驱动相关,包含了xen、kvm、hvf(从8.1.0和QEMU 2.12版本起)、qemu和lxc。第二个属性项是id,代表运行客户机(guest)的一个唯一数字标识符。不活跃的客户机没有id。

<domain type='kvm' id='1'>
  <name>MyGuest</name>
  <uuid>4dea22b3-1d52-d8f3-2516-782e98ab3fa0</uuid>
  <genid>43dc0cf8-809b-4adb-9bea-a9abb5f3d90e</genid>
  <title>A short description - title - of the domain</title>
  <description>Some human readable description</description>
  <metadata>
    <app1:foo xmlns:app1="http://app1.org/app1/">..</app1:foo>
    <app2:bar xmlns:app2="http://app1.org/app2/">..</app2:bar>
  </metadata>
  ...

name名称

name元素的内容为虚拟机提供了一个小名。这个名称应该仅由字母或数字字符组成,同时在母机(host)范围内该名称必须是唯一的。该名称经常被用来生成文件以储存持久化配置文件。

uuid统一唯一标识符

uuid属性项的内容为虚拟机提供了一个全局唯一标识符。uuid的格式必须符合RFC 4122标准,例如3e3fce45-4f53-4fa7-bb32-11f34168b82b。该属性项可以省略,那么当定义define或创建一个新的虚拟机时,会生成一个随机的uuid。也可以通过
SMBIOS System Information规范提供uuid。(uuid从libvirt 0.0.1版本起提供支持,sysinfo从libvirt 0.8.7版本起提供支持)

genid代际id

从libvirt 4.4.0版本开始,genid属性项使用与uuid相同格式的一个128位、随机加密的整数数值标识符代表全局唯一标识符(Globally Unique Identifier,即GUID),为虚拟机增加一个代际id。当虚拟机重复运行之前已经运行的某些操作时,该值用来帮助通知客户机。例如:

  • 虚拟机开始执行一个快照
  • 虚拟机从备份中恢复
  • 虚拟机陷入到故障恢复操作中
  • 虚拟机正在导入import、拷贝copy或克隆clone

客户机操作系统注意到了这些变化,通过标记分布式数据库的拷贝为脏数据、重新初始化它的随机数生成器等操作做出正常的反应。

libvirt xml解析器既可以接受给定的GUID数值,也可以未配置的情况,这时会生成一个GUID并保存在xml文件中。对于上述的过渡性操作,libvirt将会在重新运行之前改变GUID。

title标题

title是可选配置项,为domain提供了一个简短的描述空间。title中不应该包含任何换行。从libvirt 0.9.10版本开始提供对title的支持。

description描述

description属性项为虚拟机提供了一个人类易读的描述。该数据不会被libvirt使用,但是却包含用户想要的所有内容。从libvirt 0.7.2版本开始提供支持。

metadata元数据

metadata节点可以被应用程序以xml节点(node)/树(tree)的形式用来存储特定数据。应用程序必须使用xml节点(node)/树(tree)中的特定命名空间(namespace),每一个命名空间只有一个顶层(top-level)元素(如果应用程序需要使用结构体,则在其命名空间元素下存在相应子元素)。从libvirt 0.9.10版本开始提供支持。

本章节描述了用来代表作用域的xml文件格式,根据运行的作用于种类的格式变化,有一些可选配置项用来加载文件。对于特定虚拟机的细节可以查看
相关文件