[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

安装及运用一台全虚拟化的 Xen 客端系统

1. 引言

除了安装半虚拟化的客端系统外,Xen 亦可以在拥有合适硬件的机器上寄存全虚拟化的客端系统。这代表你可以执行未经修改的操作系统如 CentOS 3 或微软 Windows。

这份教学文件描述你可以如何安装一台全虚拟化的客端系统,而不须使用 virt-manager,或它的文字版 virt-install。很多时候,用户须要这些工具不能提供的自定设置,因此用它们背后的工具多数会更好。这份教学文件利用来自 libvirt 组件的 virsh 工具,它是一件用来管理虚拟机器的万用工具。

我们会看一个安装 CentOS 3 的样例。之后我们会讨论可在设置上作出的改动。

2. 检查你的硬件

要安装一台全虚拟化的客端系统,你须要一个支持 VT-X(Intel)或 AMD-V(AMD)扩展的处理器。你可以简易地检查这个功能,就是通过查看 /proc/cpuinfo 内的 flags 文件内是否含有 vmxsvm 标志。譬如:

$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
flags           : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm

某些系统缺省并不启用 VT-X 或 AMD-V 的支持,请检查你的 BIOS 设置来确定你的 CPU 扩展已被启用。来自 cpuinfo 的内容在这方面不能作准。就算 BIOS 内的虚拟化设置已被停用,vmx 这个标志仍会被显示。

3. 创建一个映像

第一步是要创建存有 domU 虚拟硬盘的映像档。由于它只需要是一个被零填满的文件,我们的好朋 dd 便大派用场。在这个教学文档内,我们会将映像放在 /srv/xen 内,虽然官方普遍认可的位置似乎是 /var/lib/xen/images。假若你希望在文件增长时才配置数据块,你可以创建一个有洞的文件。以下的指令会创建一个 4096MB 的 /srv/xen/centos3.img 文件,虽然实际数据块是以迟缓的方式来配置:

# dd if=/dev/zero of=/srv/xen/centos3.img oflag=direct bs=1M seek=4095 count=1

如果你想立即配置所有数据块,你亦可以这样做:

# dd if=/dev/zero of=/srv/xen/centos3.img oflag=direct bs=1M count=4096

这个方法可以避免日后存有映像档的磁盘区满载时,不能配置数据块的问题。

假如你使用 SELinux,你一定要确保映像档拥有正确的安全性脉络(xen_image_t),否则 domU 系统访问虚拟硬盘时便会被拒绝。你可以用 ls 进行检查:

# ls -Z /srv/xen/centos3.img 
-rw-r--r--  root root user_u:object_r:xen_image_t      /srv/xen/mailserver.img

假如你在配置文件案脉络时遇到问题,请参阅 Xen 提示与技巧这一页。无论如何,停用 SELinux,一如某些有关这方面的教学文档所推荐,是个很坏的权宜之计。反过来,通过阅读两篇手册(semanage(8)restorecon(8))来换取多一层保障更为化算!

4. 安装客端系统

在安装之前,我们须要一个配置文件来定义客端系统。你可以利用以下样例来安装 CentOS 3:

<domain type='xen'>
  <name>CentOS3</name>
  <os>
    <type>hvm</type>
    <loader>/usr/lib/xen/boot/hvmloader</loader>
    <boot dev='cdrom'/>
  </os>
  <memory>262144</memory>
  <vcpu>1</vcpu>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>destroy</on_reboot>
  <on_crash>destroy</on_crash>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <devices>
    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
    <interface type='bridge'>
      <source bridge='xenbr0'/>
      <script path='vif-bridge'/>
    </interface>
    <disk type='file' device='disk'>
      <driver name='file'/>
      <source file='/srv/xen/centos3.img'/>
      <target dev='hda'/>
    </disk>
    <disk type='file' device='cdrom'>
      <source file='/srv/xen/boot-centos3.iso'/>
      <target dev='hdc'/>
      <readonly/>
    </disk>
    <graphics type='vnc' port='5900'/>
  </devices>
</domain>

此刻,配置文件内的下列方面是最要的:

你现在可以用 virsh 打开这台虚拟系统。假设它的配置文件被存储为 /srv/xen/centos3.xml,你可以用下面的指令来引导这台虚拟系统:

virsh create /srv/xen/centos3.xml

当指令在没有错误的情况下完成,这个客端系统便在运作中。你须要通过一个 VNC 查看器才能查看它的图像主控台。要连接到这个本地,你首先需要它的本地编号。你可以利用 virsh list 这个指令来取得它:

$ virsh list
 Id Name                 State
----------------------------------
  0 Domain-0             running
 12 CentOS3              running

在这个例子中,客端系统是以 12 这个编号来运行。你现在可以用 vncviewer localhost:<编号> 来连接到这个系统。在这里,要执行的指令便是 vncviewer localhost:12。运气好的话,你应该会看见 ISOLinux 的提示字符,让你可以按既往的方法来进行安装 :^)。

安装完成后,客端系统将会被关闭。

5. 应用客端系统

针对日常运作,你需要对客端系统的设置作出调整。首先,你必须将开机设备由 cdrom 改为 hd,好让它能用硬盘的映像开机。此外,为了一致性,把 on_rebooton_crash 的选项改为 restart 亦是一个好主意。以下的配置文件已包含了这些改动,以及删除了 cdrom 这个设备:

<domain type='xen'>
  <name>CentOS3</name>
  <os>
    <type>hvm</type>
    <loader>/usr/lib/xen/boot/hvmloader</loader>
    <boot dev='hd'/>
  </os>
  <memory>262144</memory>
  <vcpu>1</vcpu>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <devices>
    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
    <interface type='bridge'>
      <source bridge='xenbr0'/>
      <script path='vif-bridge'/>
    </interface>
    <disk type='file' device='disk'>
      <driver name='file'/>
      <source file='/srv/xen/centos3.img'/>
      <target dev='hda'/>
    </disk>
    <graphics type='vnc' port='5900'/>
  </devices>
</domain>

现在你可以利用这个配置文件来引导客端系统:

virsh create /srv/xen/centos3.xml

你可以利用上面描述的步骤来连接到图像主控台。

6. 应用一台实体的光盘机

你亦可以在虚拟客端系统内应用一台实体的光盘机。请采用以下的客端光盘机项目,并在 source 选项内列出被应用的光盘机的设备名称:

<disk type='block' device='cdrom'>
  <driver name='phy'/>
  <source dev='/dev/hdc'/>
  <target dev='hdc'/>
  <readonly/>
</disk>

7. 安装 Windows

如果 Windows 的安装程序在引导 Windows 内核时当机(xentop 这个指令多数会汇报客端的工作量是 100%),这个问题很大机会可以借着停用客端的 ACPI 及 APIC 而得以解决。你可以通过注释掉以下选项来达至这个目的。请将

<acpi/>
<apic/>

改为

<!-- <acpi/> -->
<!-- <apic/> -->

然后重新引导客端系统。

Translation of revision 11


2023-09-11 07:23