XenServer: Administración con la consola del host, XenCenter, xe CLI y Powershell

   En esta lección haremos una breve presentación de cuatro herramientas que permiten administrar un entorno XenServer: la consola de cada host físico, la consola gráfica XenCenter, la utilidad por línea de comandos xe y el snapin de XenServer para Powershell.

MA-icono-manual14(ACCEDE AQUÍ AL INDICE DEL MANUAL DE CITRIX XENSERVER)

CONTENIDO DE LA LECCION

  • Caso práctico
  • Consola del host
  • XenCenter
  • xe CLI
  • Powershell

 

Caso práctico

   En este momento, L023 Formación ya tiene instalados los tres servidores XenServer de producción (L023XSE01, L023XSE02 y L023XSE03)y el servidor de test (L023XSE04). El técnico de sistemas debe familiarizarse un poco con las interfaces de administración del entorno.

Consola del host

   La consola del servidor físico es el primer método de administración de un servidor XenServer que disponemos, ya que se nos presenta automáticamente cada vez que iniciamos el servidor. También es la más directa y accesible, porque el resto de modos de administración que presentaremos dependen de una correcta conectividad TCP/IP con los hosts.

   Aunque la funcionalidad de la consola es más limitada que las otras opciones de administración, como XenCenter (si no tenemos en cuenta la última entrada del menú, que da acceso al comando xe), sí que permite realizar algunas tareas muy importantes, sobre todo en el caso de que el host no sea accesible vía XenCenter, como por ejemplo cuando se presentan problema de conectividad o de mala respuesta del funcionamiento de los resource pools o high availability.

   Comentaremos a continuación algunas de las opciones disponibles:

  • Network and Management Interface: permite realizar la reconfiguración de TCP/IP.
  • Virtual Machines: Operaciones de encendido, aparado y reinicio sobre las máquinas virtuales y valores básicos del rendimiento (sólo CPU y memoria)
  • Disks and Storage Repositories: creación y administración de los storage repositories.
  • Resource Pool Configuration: permite unir y desunir el host de un resource pool así como promoverlo a host master de un resource pool.
  • Remote Service Configuration: permite habilitar y deshabilitar las conexiones ssh sobre el host.
  • Backup, Restore and Update: permite realizar copias de seguridad y restauraciones de los metadatos (configuración) de las máquinas virtuales. Sobre todo es interesante que permite realizar una programación periódica de dicha copia.
  • Reboot or Shutdown: aunque el objetivo de esta entrada de menú es obvio, es importante señalarla como último recurso para poder realizar un apagado “ordenado” del host.
  • Local Command Shell: acceso directo a la línea de comandos del servidor, con lo que se puede hacer uso directo del comando xe.
  • XenCenter

       La consola de administración XenCenter es el principal punto de interacción con un entorno XenServer. Sus distintos menús permiten acceder a gran parte de sus opciones de configuración y administración.

       La aplicación nos presenta un menú principal superior con los distintos objetos a administrar y las acciones contextuales a ejecutar en los submenús, junto con una pequeña barra de herramientas con accesos a tareas habituales, un panel izquierdo con los objetos ya configurados, y un panel derecho que muestra la información y opciones disponibles sobre el objeto seleccionado en el panel izquierdo.

       A lo largo de este manual haremos uso continuo de XenCenter, por lo que nos familiarizaremos con los diferentes caminos de los menús en siguientes lecciones. Pero ahora al menos vamos a ver algunas opciones de configuración de XenCenter y localizaremos cómo se puede acceder a información importante que debe ser revisada habitualmente al trabajar con un entorno XenServer.

    Pestaña de logs en cada objeto:

       Cada vez que se realice una operación sobre un objeto del panel izquierdo de XenCenter, se puede realizar un seguimiento de su desarrollo en el panel derecho, en la pestaña “Logs”. Esta pestaña muestra información en forma de barra de progreso y mensajes informativos, así como el resultado correcto o erróneo en su finalización.

       La información mostrada depende del objeto seleccionado: servidor, máquina virtual, pool. etc…

    System Alerts:

       Haciendo clic en la parte derecha del panel de menú principal, en el texto “System Alerts”, o en la opción de menú Tools –> System Alerts, se accede a la ventana de información de alertas. En ella aparece un listado de alertas del entorno categorizado por severidad, objetos u objetos afectados, fecha….

      Al mantener seleccionada cualquiera de las alertas, desde la parte inferior de la ventana se puede acceder a una ayuda, a la página web donde se informa sobre el contenido de la alerta, o proceder a descartarla (“Dismiss”).

       Es importante revisar las alertas del sistema habitualmente. Se puede así estar al tanto de errores que se han producido en el sistema, o como en este caso, a actualizaciones pendientes de instalar en os servidores.

       Es posible configurar una dirección de correo a la que enviar las alertas, así como generar alertas a nuestra medida cuando el rendimiento del servidor se mueva en unos límites marcados por nosotros. En el panel izquierdo, si seleccionamos un servidor y en el panel derecho de XenCenter vamos a la pestaña “General” y hacemos clic en “Properties”, debemos ir a las opciones “Email Options” y “Alerts” respectivamente. En este momento aun no tenemos creado ningún pool de servidores. En caso que ya estuviera creado, se establecerían opciones análogas en la propiedades del pool.

    Updates:

       Se puede revisar en tiempo real si hay actualizaciones publicadas para nuestro entorno en la opción de menú Tools –> Check for updates. De esta manera sabremos si hay actualizaciones, acceder a la página de Citrix con información sobre cada actualización y el correspondiente enlace de descarga. También nos aparecen los servidores ó componentes afectados por la actualización.

    Plugins:

       Existen plugins desarrollados para XenCenter que amplían su funcionalidad, o que facilitan tareas de administración rutinarias. Por ejemplo, se pueden descargar varios plugins desarrollados por la comunidad XenServer así como a información sobre el desarrollo de plugins en la web http://www.xenserver.org/partners/developing-products-for-xenserver/21-xencenter-development/87-xencenter-plugins-dev2.html

    Opciones de consola de Escritorio Remoto de Windows:

       Una vez que se tengan creadas máquinas virtuales, al seleccionarlas, se puede acceder a su consola desde el panel derecho. Esta consola puede ejecutarse en el modo nativo de XenServer o por Escritorio Remoto de Windows (normalmente con mejor rendimiento), si dicha característica está activada y configurada en le máquina virtual Windows. Por defecto, XenCenter intenta conectar por escritorio remoto si es posible. Pero este comportamiento puede ser molesto en algunas ocasiones. Todo esto se puede configurar desde la opción de menú Tools –> Options –> Console, en las opciones agrupadas en “Windows Remote Desktop console options”.

    xe CLI

      La utilidad de línea de comandos xe está disponible en la consola del host (opción de menú “Local Command Shell”), por conexión ssh al host, y también en el equipo de administración Windows en el que hayamos instalado XenCenter. Es importante señalar que muchas tareas de configuración y administración no están disponibles en XenCenter, pero sí a través del comando xe.

       En el caso del equipo Windows, xe está en el mismo directorio que el ejecutable XenCenter (en una instalación típica, “C:Program Files (x86)CitrixXenCenter”, que convendrá tener incluido en la variable de entorno PATH).

    Sintaxis de xe

       Los comandos xe CLI tienen la sintaxis básica del modo:

    xe nombre-comando argumento1=valor1 argumento2=valor2

       Si el comando se ejecuta desde Windows, también se debe indicar el host contra el que se quiere ejecutar y un usuario y contraseña con el suficiente nivel de acceso.

    xe nombre-comando argumento1=valor1 argumento2=valor2… -s host -u usuario -pw contraseña

      Hay dos tipos de comandos: de bajo nivel, en los que directamente se manipulan los parámetros asociados a las clases API, y los de alto nivel, que manipulan objetos como hosts, máquinas virtuales, etc…

       Los comandos de bajo nivel que se pueden lanzar en cada clase pueden ser (algunas clases no admiten todas estas variaciones):

    <clase>-list

    <clase>-param-get

    <clase>-param-set

    <clase>-param-list

    <clase>-param-add

    <clase>-param-remove

    <clase>-param-clear

       Y las clases a las que se puede acceder son:  bond, console, host , host-crashdump, host-cpu, network, patch, pbd, pif, pool, sm, sr, task, template, vbd, vdi, vif, vlan y vm.

            Para presentar los dos tipos de comandos en una visión de conjunto, en la siguiente tabla se listan las diferentes áreas a las que se puede acceder con ellos, y ejemplos:

    Área

    Ejemplo
    Appliances de máqinas virtuales (vApps) xe appliance-create …
    Audit de ficheros de acceso (RBAC) del pool xe audit-log-get …
    Agrupamientos de interfaces (bonds) xe bond-create …
    Unidades de CD/DVD de hosts físicos xe cd-list
    Consolas xe console-list
    Disaster Recovery xe appliance-recover…
    Eventos xe event-wait…
    GPUs físicas, virtuales y agrupadas xe vgpu-create…
    Host físicos xe host-disable…
    Logs xe log-set-output…
    Mensajes: notificaciones alertas y eventos xe message-create…
    Network xe network-create…
    Patch: updates para los hosts XenServer xe patch-apply…
    PBD: Physical Block Devices xe pbd-create…
    PIF: objetos de las interfaces de red xe pif-reconfigure-ip…
    Resource pools xe pool-ha-enable…
    Storage Manager xe sm-list
    Storage repositories xe sr-list
    Task: tareas largas asíncronas xe task-list
    Template xe template-list…
    Updates para la edición OEM de XenServer xe update-upload…
    User: cambio de contraseña de usuario xe user-password-change…
    VBD: Virtual Block Devices xe vbd-list
    VDI: Virtual Disk Images xe vdi-list
    VIF: Virtual Network Interfaces xe vif-list
    VLAN vlan-create…
    VM: máquinas virtuales xe vm-list…

       Algunas de estas áreas son accesibles principalmente por comandos de bajo nivel, manipulando los parámetros de las distintas clases.

       En el resto de artículos de XenServer se hará uso del comando xe aplicable en cada caso, lo que facilitará una visión más práctica y amplia de sus posibilidades.

    El “uuid”

       De manera recurrente, el comando xe hace uso del “uuid”. Este es un identificador largo, único para cada objeto de nuestro entorno. Esto (entre otras cosas) puede hacer que el uso del comando xe pueda ser algo engorroso.

       Desde XenCenter, podemos obtener el uuid de cada host. Para ello, se selecciona el host en cada caso, en el panel derecho, dentro de la pestaña “General”, panel “General”, vamos al campo “UUID”.

       En nuestro laboratorio, obtenemos de esta manera el uuid de L023XSE01. Este resulta ser: a8248274-03b3-4317-9f0d-2ef0389bdb92.

    Práctica: Obtener mediante el comando xe el modelo de una interfaz de red física

       El comando xe pif-list nos proporciona información sobre las interfaces físicas de red. Sin embargo, por defecto los comandos <clase>-list no proporcionan toda la información (parámetros del objeto) disponibles. Se le puede indicar al comando que nos muestre todos los parámetros utilizando el argumento params=all.

    C:Usersgdrivia>xe -s l023xse01 -u root -pw rootpwd pif-list params=all
    uuid ( RO)                       : f706b4d4-c66a-970d-8038-ef75f24bea5c
    device ( RO): eth0
    MAC ( RO): 00:0c:29:f1:60:37
    physical ( RO): true
    managed ( RO): true
    currently-attached ( RO): true
    MTU ( RO): 1500
    VLAN ( RO): -1
    bond-master-of ( RO):
    bond-slave-of ( RO): <not in database>
    tunnel-access-PIF-of ( RO):
    tunnel-transport-PIF-of ( RO):
    management ( RO): true
    network-uuid ( RO): 3b61be6a-f081-7bb0-cc28-e3197d62e6b0
    network-name-label ( RO): Pool-wide network associated with eth0
    host-uuid ( RO): a8248274-03b3-4317-9f0d-2ef0389bdb92
    host-name-label ( RO): l023xse01
    IP-configuration-mode ( RO): Static
    IP ( RO): 192.168.160.21
    netmask ( RO): 255.255.255.0
    gateway ( RO): 192.168.160.201
    IPv6-configuration-mode ( RO): None
    IPv6 ( RO):
    IPv6-gateway ( RO):
    primary-address-type ( RO): IPv4
    DNS ( RO): 192.168.160.10
    io_read_kbs ( RO): <expensive field>
    io_write_kbs ( RO): <expensive field>
    carrier ( RO): true
    vendor-id ( RO): 8086
    vendor-name ( RO): Intel Corporation
    device-id ( RO): 100f
    device-name ( RO): 82545EM Gigabit Ethernet Controller (Copper)
    speed ( RO): 1000 Mbit/s
    duplex ( RO): full
    disallow-unplug ( RW): false
    pci-bus-path ( RO): 0000:02:01.0
    other-config (MRW):

    uuid ( RO)                       : 35848593-e635-6dfc-a5f0-164d8eb2d819
    device ( RO): eth1
    MAC ( RO): 00:0c:29:f1:60:41
    physical ( RO): true
    managed ( RO): true
    currently-attached ( RO): true
    MTU ( RO): 1500
    VLAN ( RO): -1
    bond-master-of ( RO):
    bond-slave-of ( RO): <not in database>
    tunnel-access-PIF-of ( RO):
    tunnel-transport-PIF-of ( RO):
    management ( RO): false
    network-uuid ( RO): b7f87fca-ac17-1d86-95ff-b039d3ee7b46
    network-name-label ( RO): Pool-wide network associated with eth1
    host-uuid ( RO): a8248274-03b3-4317-9f0d-2ef0389bdb92
    host-name-label ( RO): l023xse01
    IP-configuration-mode ( RO): None
    IP ( RO):
    netmask ( RO):
    gateway ( RO):
    IPv6-configuration-mode ( RO): None
    IPv6 ( RO):
    IPv6-gateway ( RO):
    primary-address-type ( RO): IPv4
    DNS ( RO):
    io_read_kbs ( RO): <expensive field>
    io_write_kbs ( RO): <expensive field>
    carrier ( RO): true
    vendor-id ( RO): 1022
    vendor-name ( RO): Advanced Micro Devices [AMD]
    device-id ( RO): 2000
    device-name ( RO): 79c970 [PCnet32 LANCE]
    speed ( RO): 0 Mbit/s
    duplex ( RO): half
    disallow-unplug ( RW): false
    pci-bus-path ( RO): 0000:02:02.0
    other-config (MRW):

       El resultado del comando nos confirma que sólo tenemos configurada la IP de la interfaz eth0, que es la que elegimos como interfaz de gestión durante el proceso de instalación de XenServer en el servidor y a la que asignamos la IP 192.168.160.21.

       Pero estamos interesados en un resultado algo más conciso: el fabricante y modelo de la interfaz de red eth1. Para ello, debemos indicar al argumento “params”que nos liste sólo los parámetros “vendor-name” y “device–name”. Anteriormente le hemos indicado que nos muestre todos los parámetros al escribir params=all. Además queremos que sólo nos muestre los resultados para la interfaz eth1.

    C:Usersgdrivia>xe -s l023xse01 -u root -pw rootpwd pif-list device=eth1 params=vendor-name,device-name
    vendor-name ( RO)    : Advanced Micro Devices [AMD]
    device-name ( RO): 79c970 [PCnet32 LANCE]

     

     

    Powershell

       El último modo de administración de XenServer que vamos a ver es mediante el snapin de XenServer disponible para Powershell. Este se obtiene dentro del paquete SDK, descargable en el  http://xenserver.org/overview-xenserver-open-source-virtualization/download.html

       Al descomprimir el archivo zip hay una carpeta llamada “XenServerPSSnapIn_old” que contiene el snapin para powershell v1.0. En nuestro caso instalamos el snapin de la carpeta “XenServerPSSnapIn”, para powershell v2.0.

       Para hacer uso de los cmdlets XenServer disponibles tras la instalación, se debe cargar el snapin en la sesión powershell

    PS C:Windowssystem32> Add-PSSnapin XenServerPSSnapIn

    Para ver los cmdlets, podemos ejecutar:

    PS C:Windowssystem32> Get-Command *Xen*

     

    Práctica: Obtener mediante cmdlets de powershell el modelo de una interfaz de red física

       Antes de ejecutar los cmd-lets para interaccionar con los servidores, debemos conectar con ellos:

    PS C:Windowssystem32> Connect-XenServer -server l023xse01

    NOTA: Nos habrá aparecido una ventana para introducir las credenciales de conexión. En nuestro laboratorio, en este momento, sólo podemos hacer login con el usuario root. Aun no hemos creado ni habilitado otros usuarios en XenServer.

    PS C:Windowssystem32> $pifinfo = Get-XenPIFProperty -Ref $pifref -XenProperty Metrics

    PS C:Windowssystem32> Get-XenPIFProperty -Ref $pifref -XenProperty Metrics | select vendor_name, device_name

    vendor_name                                         device_name
    ———–                                         ———–
    Advanced Micro Devices [AMD]                        79c970 [PCnet32 LANCE]

MA icono siguiente Siguiente: Lección 4 – XenServer: Instalación de actualizaciones en hosts XenServer individuales