Use libvirt with Xen/xVM

本文介绍 Libvirt Xen 驱动的部署前提条件及虚拟机管理方式,包括通过 Xen daemon 和 Xen Store daemon 访问,直接进行 hypercall 调用等。并提供了不同类型虚拟机的 XML 配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The libvirt Xen driver provides the ability to manage virtual machines on any Xen release from 3.0.1 onwards.

Deployment pre-requisites

The libvirt Xen driver uses a combination of channels to manage Xen virtual machines.

  • XenD: Access to the Xen daemon is a mandatory requirement for the libvirt Xen driver. It requires that the UNIX socket interface be enabled in the /etc/xen/xend-config.sxp configuration file. Specifically the config settings (xend-unix-server yes). This path is usually restricted to only allow the root user access. As an alternative, the HTTP interface can be used, however, this has significant security implications.
  • XenStoreD: Access to the Xenstore daemon enables more efficient codepaths for looking up domain information which lowers the CPU overhead of management.
  • Hypercalls: The ability to make direct hypercalls allows the most efficient codepaths in the driver to be used for monitoring domain status.
  • XM config: When using Xen releases prior to 3.0.4, there is no inactive domain management in XenD. For such releases, libvirt will automatically process XM configuration files kept in the /etc/xen directory. It is important not to place any other non-config files in this directory.

Example domain XML config

Below are some example XML configurations for Xen guest domains. For full details of the available options, consult the domain XML format guide.

Paravirtualized guest bootloader

Using a bootloader allows a paravirtualized guest to be booted using a kernel stored inside its virtual disk image

<domain type='xen' >
<name>fc8</name>
<bootloader>/usr/bin/pygrub</bootloader>
<os>
<type>linux</type>
</os>
<memory>131072</memory>
<vcpu>1</vcpu>
<devices>
<disk type='file'>
<source file='/var/lib/xen/images/fc4.img'/>
<target dev='sda1'/>
</disk>
<interface type='bridge'>
<source bridge='xenbr0'/>
<mac address='aa:00:00:00:00:11'/>
<script path='/etc/xen/scripts/vif-bridge'/>
</interface>
<console tty='/dev/pts/5'/>
</devices>
</domain>

Paravirtualized guest direct kernel boot

For installation of paravirtualized guests it is typical to boot the domain using a kernel and initrd stored in the host OS

<domain type='xen' >
<name>fc8</name>
<os>
<type>linux</type>
<kernel>/var/lib/xen/install/vmlinuz-fedora8-x86_64</kernel>
<initrd>/var/lib/xen/install/initrd-vmlinuz-fedora8-x86_64</initrd>
<cmdline> kickstart=http://example.com/myguest.ks </cmdline>
</os>
<memory>131072</memory>
<vcpu>1</vcpu>
<devices>
<disk type='file'>
<source file='/var/lib/xen/images/fc4.img'/>
<target dev='sda1'/>
</disk>
<interface type='bridge'>
<source bridge='xenbr0'/>
<mac address='aa:00:00:00:00:11'/>
<script path='/etc/xen/scripts/vif-bridge'/>
</interface>
<graphics type='vnc' port='-1'/>
<console tty='/dev/pts/5'/>
</devices>
</domain>

Fullyvirtualized guest BIOS boot

Fullyvirtualized guests use the emulated BIOS to boot off the primary harddisk, CDROM or Network PXE ROM.

<domain type='xen' id='3'>
<name>fv0</name>
<uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
<os>
<type>hvm</type>
<loader>/usr/lib/xen/boot/hvmloader</loader>
<boot dev='hd'/>
</os>
<memory>524288</memory>
<vcpu>1</vcpu>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<features>
<pae/>
<acpi/>
<apic/>
</features>
<clock sync="localtime"/>
<devices>
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
<interface type='bridge'>
<source bridge='xenbr0'/>
<mac address='00:16:3e:5d:c7:9e'/>
<script path='vif-bridge'/>
</interface>
<disk type='file'>
<source file='/var/lib/xen/images/fv0'/>
<target dev='hda'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/var/lib/xen/images/fc5-x86_64-boot.iso'/>
<target dev='hdc'/>
<readonly/>
</disk>
<disk type='file' device='floppy'>
<source file='/root/fd.img'/>
<target dev='fda'/>
</disk>
<graphics type='vnc' port='5904'/>
</devices>
</domain>

Fullyvirtualized guest direct kernel boot

With Xen 3.2.0 or later it is possible to bypass the BIOS and directly boot a Linux kernel and initrd as a fullyvirtualized domain. This allows for complete automation of OS installation, for example using the Anaconda kickstart support.

<domain type='xen' id='3'>
<name>fv0</name>
<uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid>
<os>
<type>hvm</type>
<loader>/usr/lib/xen/boot/hvmloader</loader>
<kernel>/var/lib/xen/install/vmlinuz-fedora8-x86_64</kernel>
<initrd>/var/lib/xen/install/initrd-vmlinuz-fedora8-x86_64</initrd>
<cmdline> kickstart=http://example.com/myguest.ks </cmdline>
</os>
<memory>524288</memory>
<vcpu>1</vcpu>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<features>
<pae/>
<acpi/>
<apic/>
</features>
<clock sync="localtime"/>
<devices>
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
<interface type='bridge'>
<source bridge='xenbr0'/>
<mac address='00:16:3e:5d:c7:9e'/>
<script path='vif-bridge'/>
</interface>
<disk type='file'>
<source file='/var/lib/xen/images/fv0'/>
<target dev='hda'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/var/lib/xen/images/fc5-x86_64-boot.iso'/>
<target dev='hdc'/>
<readonly/>
</disk>
<disk type='file' device='floppy'>
<source file='/root/fd.img'/>
<target dev='fda'/>
</disk>
<graphics type='vnc' port='5904'/>
</devices>
</domain>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值