[FrontPage] [TitleIndex] [WordIndex

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

Instalando y usando un invitado Xen completamente virtualizado

Además de instalar sistemas invitados paravirtualizados, Xen puede hospedar invitados completamente virtualizados en las computadoras que posean el hardware apropiado. Esto significa que usted puede correr sistemas operativos que no guardan relación entre sí, como es el caso de CentOS 3 o Microsoft Windows.

Este artículo describe cómo usted puede instalar un invitado completamente virtualizado, sin usar virt-manager o su variante de consola virt-install. A menudo, los usuarios necesitan personalizar más allá de las posibilidades que le brindan estas herramientas, así que usualmente es mejor utilizar las herramientas que están debajo. Este artículo usa la herramienta genérica virsh, del paquete libvirt, para la administración de máquinas virtuales.

En nuestro ejemplo veremos una instalación de CentOS 3. Después de esto, algunos posibles cambios a la configuración serán discutidos.

1. Comprobando el hardware

Para poder instalar un invitado completamente virtualizado, usted necesita un CPU con la extensión VT-X(Intel) o AMD-V(AMD). Usted puede comprobar esto fácilmente si busca el campo banderas (flags) de /proc/cpuinfo para ver si tiene la bandera vmx o svm. Por ejemplo:

$ 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

Algunos sistemas no tienen el soporte para VT-X o AMD-V habilitado por defecto, compruebe la configuración de su BIOS para ver si la extensión de su CPU está habilitada. La información de cpuinfo no nos muestra esto. Aún si el soporte para la virtualización en el BIOS está deshabilitado, la bandera vmx será mostrada.

2. Creando una imagen

El primer paso es crear un imagen que sostenga el disco virtual de domU. Como esto puede ser un fichero vacío, nuestro usual amigo dd puede ser utilizado. En este artículo pondremos la imagen en /srv/xen, aunque la ubicación aprobada semi-oficialmente parece ser /var/lib/xen/imgaes. Si prefiere situar bloques al disco mientras el fichero crece, usted puede crear un fichero con un hueco. El comando siguiente creara un fichero /srv/xen/centos3.img de 4096MB, así los bloques de datos son ubicados relajadamente.

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

Si usted desea revertir todo los bloques de datos completamente, puede hacer lo siguiente:

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

Esto evitará los problemas de ubicación de bloque de datos si el volumen que sostiene la imagen se llena.

Si usted está usando SELinux, es importante que compruebe que la imagen tiene el contexto (xen_image_t) de seguridad correcto, de lo contrario el acceso al disco virtual le será denegado al sistema domU. Usted puede comprobar esto con ls:

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

Si está teniendo problemas a la hora de ajustar el contexto del fichero, por favor eche un vistazo a la página de los trucos y mañas de Xen. Desactivar SELinux a cualquier precio, como algunos artículos que tratan este tema advierten, es una solución muy pobre. Para calzar la seguridad, es buena idea leer las páginas man semanage(8) y restorecon(8).

3. Instalando el sistema invitado

Para comenzar la instalación, necesitaremos un fichero de configuración que defina al sistema invitado. Puede utilizar el ejemplo siguiente para instalar 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>

Los siguientes aspectos de la configuración son importantes en este punto:

Usted ahora puede iniciar el sistema invitado con virsh. Suponga que el fichero de configuración fue salvado como /srv/xen/centos3.xml, usted puede iniciar el sistema invitado con el comando siguiente:

virsh create /srv/xen/centos3.xml

Cuando el comando regresa sin error alguno, el invitado está corriendo. Usted tendrá que adjuntar un visor VNC a la consola gráfica. Para adjuntarlo a este dominio específico, primero necesitará el identificador (ID) del dominio. Esto puede ser recuperado a través del comando virsh list:

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

En este ejemplo, el sistema invitado está corriendo con el identificador 12. Ahora usted se puede adjuntar a este sistema con vncviewer localhost:<ID>. En este caso, el comando a usar sería vncviewer localhost:12. Con un poco de suerte el prompt de ISOLinux será mostrado, permitiéndole comenzar la instalación.

Después de la instalación, el sistema invitado se apagará.

4. Usando el sistema invitado

Usted tendrá que ajustar un poco la configuración del sistema invitado para su uso normal. Primero que todo, tendrá que cambiar el dispositivo de inicio de cdrom a hd para iniciar desde la imagen del disco duro. Además, es buena idea cambiar a restart la opciones on_reboot y on_crash para la consistencia. La siguiente configuración tiene estos cambios, así como la eliminación del dispositivo 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>

Usted puede iniciar el sistema invitado con esta configuración, ejecutando el comando:

virsh create /srv/xen/centos3.xml

Usted puede adjuntar una consola gráfica con el mismo procedimiento descrito arriba.

5. Usando un dispositivo CD-ROM real

Usted puede usar un dispositivo CD-ROM real en el invitado virtual. Para ello use la siguiente entrada de dispositivo para la torre de CD-ROM de su invitado, cambiando la opción source para listar el nombre del dispositivo de la torre de CD-ROM a ser utilizada:

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

6. Instalando Windows

Si el instalador de Windows se cuelga cuando el núcleo de Windows está iniciado (el comando xentop usualmente dirá que el invitado está 100% ocupado), esto puede ser resuelto deshabilitando la ACPI y la APIC en el invitado. Usted puede hacer esto si comenta las opciones de configuración siguientes:

Cambie

<acpi/>
<apic/>

por

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

y reinicie la instalación.


2023-09-11 07:23