Herramientas de usuario

Herramientas del sitio


wikitecnica:xen

XEN

Conceptos

El entorno de virtualización XEN consta de 3 elementos de software que hace posible la operación de varias máquinas virtuales en un equipo de cómputo.

  • Hipervisor XEN, un fragmento de software cargado en la memoria del equipo por el bootloader, interactua de manera directa con el hardware y genera una abstracción de los dispositivos físicos con que interactúan los kernels de las máquinas virtuales.
  • DOM0 la máquina virtual que inicia como un módulo de XEN en el arranque de la máquina, interactua con el hipervisor mediante los comandos xm o xl que permiten crear, destruir, mover o apagar máquinas virtuales, mediante archivos de configuración se asignan recursos de almacenamiento en disco, memoria y procesadores que se asignan a cada máquina virtual. DOM0 administra el I/0 del conjunto de máquinas virtuales.
  • DOMU's Paravirtuales Estas máquinas virtuales son linux y operan con una versión del kernel modificada para operar con el hardware mediante el hipervisor.
  • DOMU´s Virtualización Total Estas máquinas se construyen a partir de un sistema operativo sin modificación y la interacción con el hardware se hace a través del emulador QEMU.
En CPT utilizamos la virtualización total en la construcción de servidores virtuales basados en Windows, actualmente ya se encuentran 
disponibles un conjunto de drivers windows que permiten que este sistema operativo interactue con el hipervisor mejorando sensiblemente 
el rendimiento. Detalles en virtualización de windows.

Requerimientos

  • Hardware X86 de 64 bits, 16 GB en RAM, 4 procesadores, 1 TB en disco duro, soporte a virtualización en los procesadores si se quiere operar virtualización total.
  • Las Herramientas que permite asociar un bridge de varias interfaces virtuales asociadas a una interfaz de red física del equipo.
  • Un kernel de linux modificado para XEN que permita el establecimiento de DOM0.
  • Una versión mínima del sistema operativo linux que corresponda a la versión del kernel modificado para XEN.

Arranque de DOM0

Instalación del hipervisor y el kernel de XEN

  • Bajar la versión mínima de CentOS 6 de: http://centos.blazar.mx/6.7/isos/x86_64/
  • Elaborar una instalación normal de CentOS a partir del iso obtenido en el punto anterior, reservando 200 MB ext4 /boot.
  • Elaborar un respaldo de / del sistema operativo instalado previo a la instalación de los paquetes de XEN.
  • Deshabilitar selinux.
  • Instalar el repositorio de XEN
yum install centos-release-xen
  • Instalar el kernel de XEN y el hipervisor:
yum install xen
  • Durante la instalación del hipervisor y la instalación del kernel corre el script grub-bootxen que modifica el archivo grub.conf, verificar el cambio y modificar las variables KEYTABLE y LANG con los valores que se muestran a continuación.
title CentOS (3.7.10-1-el6xen.x86_64)
root (hd0,0)
kernel /xen.gz dom0_mem=512M  cpufreq=xen  dom0_max_vcpus=0 dom0_vcpus_pin
module /vmliuz-3.7.10-1-el6xen.x86_64 ro root=/dev/mapper/vg_alterno-LogVol01 rd_NO_LUKS  rd_NO_DM
SYSFlatarcrrheb-sun16  crashkernel=auto  KEYBOARDTYPE=pc  KEYTABLE=la-latin1  rd_NO_DM   LANG=es_ES.UTF8
rd_LVM_LV=vg_alterno/LogVol01  rhgb quiet
module intiramfs-3.7.10-1.el6xen.x86_64.img
  • Reiniciar el equipo.

Infraestructura de red

Se establece una red LAN entre DOM0 y los equipos huéspedes DOMUS habilitando las utilerías de bridge de linux, la interfaz del bridge br0.

  • Instalación del paquete para habilitar bridges: yum install bridge-utils
  • Configuración de la interfaz de red del bridge, editando el archivo: /etc/sysconfig/network-scripts/ifcfg-br0
  • La interfaz de virtual del bridge puede asociarse a una interfaz física, si se desea que los DOMUS sean accesibles desde una LAN.
             
DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=none
IPADDR=10.10.1.2
PREFIX=24
  • Si se requiere acceso a las DOMUS desde una LAN modificar /etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
ONBOOT=yes
TYPE=Ethernet
NM_CONTROLLED=no
BOOTPROTO=static
BRIDGE=br0
  • Reiniciar los servicios de red: service network restart

Generación de DOMUS

La generación de DOMUS consiste en:

  • Asignación de almacenamiento
  • Creación de los archivos de configuración

Asignación de Almacenamiento

El almacenamiento en disco de las máquinas virtuales es dinámico se expande o contrae de acuerdo a las necesidades, asimismo los requerimientos de contar con respaldos en linea reduce las opciones de tecnologías de almacenamiento a 3:

  1. Volúmenes lógicos de LVM en discos internos o conectados via ISCSCI (SAN) a DOM0.
  2. Imágenes de los sistemas de archivos de las DOMUS que se almacenan como archivos en el sistema de archivos de DOM0.

A continuación se ilustran las operaciones de asignación, extensión y reducción espacio utilizando las 2 tecnologías mencionadas anteriormente:

Volúmenes lógicos (LVM)

Los volúmenes lógicos se construyen a partir de un reservorio global de almacenamiento que recibe el nombre volumeGroup, en ese reservorio se incluyen todos los discos físicos. Los 2 primeros comandos de la secuencia siguiente preparan los discos físicos y los agregan al volumeGroup.

  1. Inclusión de de descriptores de volúmenes físicos en discos físicos: pvcreate /dev/hda
  2. Creación de un grupo de volumen: vgcreate volGroup /dev/hda /dev/hdb
  3. Asignación de un volumen lógico a root: lvcreate -L 8G -n domuRoot volGroup
  4. Extensión de un volumen lógico de opt: lvextend -L+50G /dev/volGroup/domuOpt
  5. Reducción de un volumen lógico de swap: lvreduce -L-4G /dev/volGroup/domuSwap
  6. Creación de un snap para respaldar en línea: lvcreate -L 800M -s -n domuRootSnap /dev/volGroup/domuRoot

Archivos imagen

Los archivos imagen se construyen mediante el comando qemu-img que permite manipular archivos de tipo imagen donde incluir sistemas de archivos.

  1. Creación de una imagen para root: qemu-img create -f qcow2 -o size=8G ./domuRoot.img
  2. Extensión de una imagen de opt: qemu-img resize ./domuOpt.img +50G
  3. Reducción de una imagen de swap: qemu-img resize ./domuSwap.img -4G
  4. Creación de un snapshot: qemu-img create -f qcow2 -b ./snapDomuOpt ./domuOpt.img
La operaciones de extensión y reducción del sistema de archivos contenido en volumen lógico requiere que el
sistema de archivos escogido acepte extensiones y reducciones en el caso de ext4 es necesario:
    1. Extensión: 
        1.1 Extender el área de almacenamiento de acuerdo a la escogida de las señaladas en párrafos anteriores.
        1.2 Forzar la revisión del sistema de archivos: e2fsck -f /dev/volGroup/domuOpt
        1.3 Extender el sistema de archivos con el comando: resize2fs /dev/volGroup/domuOpt
    2. Reducción:
        2.1 Forzar al revisión del sistema de archivos: e2fsck -f /dev/volGroup/domuOpt
        2.2 Disminuir el tamaño del sistema de archivos: resize2fs /dev/volGroup/domuOpt 150G
        2.3 Disminuir el área de almacenamiento de acuerdo a la tecnología de almacenamiento seleccionada.

iSCI

Si se tiene acceso a un Storage Area Network (SAN) que ofrezca acceso a dispositivos de bloque mediante comandos SCSCI, es una opción preferencial para dotar de almacenamiento a DOMUS la manera mas sencilla de hacerlo asignar un volumen virtual a DOM0 y dejarlo disponible a la DOMU en el archivo de configuración.

Para configurar a DOM0 como un iniciador iSCI:

1. Instalar las herramientas de iSCI: //yum -y install isci-initator-utils//
2. Editar el archivo de configuración: //vi /etc/iscdid.conf//
3. En la línea 56 eliminar el comentario de método de autenticación: //node.session.auth.authmethod = CHAP//
4. En las lineas 60 y 61 agregar el nombre del usuario y la contraseña:
   //node.session.auth.username = centos7//
   //node.session.auth.password = xxxxxxxxx//
5. Descubre el objetivo donde el parámetro p se utiliza para indicar la IP del dispositivo que ofrece 
   el servicio SAN 
   //iscsiadm -m discovery -t sendtargets --portal 10.10.8.21:3260//
6. 

Creación de los archivos de configuración

Cada máquina virtual cuenta con un archivo de configuración localizado en el directorio /etc/xen, el nombre del archivo coincide con el identificador de la máquina que se muestra mediante el comando xl list.

La configuración consiste en la inclusión de valores para un conjunto de parámetros que requiere XEN para iniciar una máquina virtual, los parámetros tienen un nombre que es una palabra reservada el signo '=' y valores que puede ser un string o un arreglo de strings enmarcados por los caracteres [] que toman ciertos valores predefinidos. Hay parámetros globales, específicos de equipos paravirtuales y específicos de virtualización total.

Globales

  1. name: Asigna el nombre de la nueva máquina virtual, Ejemplo: name = “atlixco”
  2. memory: El valor representa la cantidad de memoria virtual, Ejemplo: memory = 6000
  3. maxmem: El valor máximo que el VM puede tener debe ser igual o mayor al valor del parámetro memory, si es mayor debe estar presente el driver balloon en el guest o la vm se cae.
  4. vcpus: No. de cpus virtuales en linea al momento de arranque, ejemplo: vcpus = 2
  5. maxvcpus: No. de cpus virtuales asignables a la máquina virtual, cuando el valor es mayor a vcpus la diferencia se reserva offline y se asigna dinámicamente.
  6. disk: Arreglo de parámetros donde se describe las características del almacenamiento, cada parámetro tiene 3 valores separados por comas:
    • El primer parámetro de iniciar con “/” y hace referencia al path de un dispositivo de bloque o de un archivo imagen
    • El segundo parámetro al formato cuando se trata de una imagen que puede tomar los valores: raw,qcow,qcow2,vhd
    • El tercer parámetro es el nombre del dispositivo como lo va a ver la máquina virtual, valores posibles: hda,hdb,hdc,xvba,xvbb, etcétera.
    • El cuarto parámetro, el modo de acceso: ro (Solo lectura), rw w (Lectura/Escritura)
    • Ejemplos: disk = [ '/dev/vg/rootDomu,xvda,w','/var/local/rootDomu.img,qcow2,hdb,rw','/var/local/windows2012r2.iso,hdc:cdrom,ro']

Paravirtuales

  1. root: El dispositivo virtual donde se encuentra el sistema operativo. Ejemplo: root= “/dev/xvda ro”
  2. kernel: El path del kernel de la máquina virtual. Ejemplo: kernel= “/boot/vmlinuz-4.9.63-29.el6.x86_64”
  3. ramdisk: El path del sistema de archivos de arranque del kernel. Ejemplo: “/boot/initramfs-4.9.63-29.el6.img”
  4. vif: Arreglo de parámetros para indicar las características del dispositivo de red. Ejemplo: vif= ['bridge=br0','mac=00:16:3E:74:34:32']

Virtualización Total

  1. builder: La máquina virtual es de virtualización total. Ejemplo: builder=“hvm”
  2. vif: Arreglo de parámetros para configurar la red del equipo virtual, los parámetros toman se asignan considerando el nombre del parámetro separado por comas, los parámetros subrayados son exclusivos de hvm.
  3. Ejemplo: vif= ['_type=ioemu_,bridge=br0','mac=00:16:3E:74:34:32','_model_=rtl8139']
La preparación rápida de un archivo de configuración se hace copiando alguno paravirtual o hvm en operación
y cambiar los parámetros señalados anteriormente de acuerdo a las características del nuevo VPS

DOMUS Linux

En Linux tenemos 3 tipos de servidores:

  • Servidores de correo ZIMBRA
  • Servidores WEB basados en Apache
  • Servidores de aplicaciones WebDev

Creación de los sistemas de archivos de los servidores paravirtuales CentOS/Ubuntu

  • Espacio dedicado al sistema de archivos donde residirá el sistema operativo de 8 GB.
  • Espacio con tamaño del doble de la memoria asignada para el manejo de memoria virtual del SO virtualizado.
  • Espacio de tamaño variable para el sistema de archivos donde residirán los datos de la aplicación a instalar.
  EJEMPLO: PREPARACION DEL ALMACENAMIENTO DE UN SERVIDOR ZIMBRA
  En el DOM0 donde se instalará la máquina virtual linux, es necesario instalar el sistema operativo de la 
  máquina huésped mediante los comandos siguientes:
  - Formateo del sistema de archivos de root: mkfs -t ext4 /dev/volGroup/domuRoot
  - Montar el nuevo sistema de archivos:  mount /dev/volGroup/domuRoot /mnt 
  - Bajar los archivos del sistema operativo: (cd /mnt && tar xvfz /var/local/paq-instalados/Centos6Base.tgz) o
    (cd /mnt && tar xvfz /var/local/paq-instalados/Ubuntu16-04.tgz)
  - Formateo del sistema de archivos de datos: mkfs -t ext4 /dev/volGroup/domuOpt 
  - Preparación del área de swap: mkswap /dev/volGroup/domuSwap 
Los sistemas de archivos de datos donde residen las aplicaciones dependen del tipo de servidor a instalar,
cuando se trata de un ZIMBRA el archivo de datos se monta en /opt, cuando es un servidor WEB se monta en /home y
si se trata de un servidor de aplicaciones WebDev en /usr/local

Comandos XEN

Las recursos de las DOMUS pueden ser modificados de manera dinámica (sin dar de baja el equipo virtual), puede modificarse el número de vcpus, memoria o incluir un nuevo dispositivo de bloque.

  1. Modificación del número de vcpus: Pueden agregarse CPUS si el parámetro maxvcpus es mayor a a vcpus, si el parámetro anterior no esta configurado solo puede disminuirse el numero de cpus asignados. Ejemplo: xl vcpu-set zimbra 2
  2. Modificación de memoria asignada: La memoria que ve el server virtual es la asignada por el parámetro maxmem es posible asignar una cantidad menor, a la señalada en el parámetro memory del archivo de configuración. Ejemplo: xl mem-max zimbra 2g
  3. Agregar o demontar un dispositivo de bloque: Es posible agregar o eliminar un dispositivo de bloque a un DOMU, la maquina virtual reconoce y monta este dispositivo como hotplug.
EJEMPLO
xl block-attach zimbra  phy:/dev/lvmgrp/respZimbra xvdc w agrega el volumen lógico a la vm zimbra. 
xl block-detach zimbra xvdc lo elimina.

Bibliografía

/home/correoparatodos.mx/www1353/public_html/data/pages/wikitecnica/xen.txt · Última modificación: 2021/02/01 17:45 por adminwiki