oVirt en 2 horas. Parte 4. Operaciones básicas

Hoy analizamos una serie de operaciones básicas que el administrador del entorno de virtualización necesitará realizar regularmente. El artículo es una continuación de la serie oVirt: parte 1 , parte 2 y parte 3 :

Contenido




Artículos


  1. Introducción
  2. Instalación del gestor (ovirt-engine) e hipervisores (hosts)
  3. Ajustes adicionales
  4. Operaciones básicas: estamos aquí

Tradicionalmente, para detalles sobre tareas administrativas, bienvenido a la documentación .

Al ingresar a oVirt verá 2 portales:

  • Portal de administración
  • Portal de VM

El primero está destinado a las tareas administrativas y administrativas, el segundo, para clientes de máquinas, pero también puede ser utilizado por el administrador, algunas funciones son aún más convenientes allí.

En la parte superior de la ventana de cada colección de objetos oVirt hay un potente cuadro de búsqueda, con indicaciones contextuales.

Como ejemplo, seleccionar hosts problemáticos en el panel de control en realidad causa un filtro:

status = unassigned or status = maintenance or status = installing or status = reboot or status = preparingformaintenance or status = pendingapproval or status = connecting or status = installingos or status = kdumping


Crear VM y plantilla


Creo que ya creó una máquina virtual simple en la Parte 2, ahora conoceremos otras entidades virtuales que están directamente relacionadas con las máquinas virtuales: máquinas virtuales, plantillas y grupos.

Una plantilla es una copia de una máquina (generalmente preparada previamente) diseñada para crear máquinas idénticas (clonación). La plantilla puede tener una versión, es conveniente, porque no es necesario hacer una nueva plantilla separada después de cada actualización de la máquina de referencia. Más detalles en la documentación .

Un grupo es un grupo de máquinas idénticas generadas a partir de una sola plantilla. Conveniente para VDI (infraestructura de escritorio virtual), cuando docenas o cientos de usuarios necesitan proporcionar un entorno de trabajo idéntico y esto se hace literalmente en un abrir y cerrar de ojos. Lea más sobre los grupos en la documentación .

Creemos una plantilla para la que podamos clonar una máquina creada anteriormente, pero para la demostración, haremos lo contrario: importe una plantilla de la colección externa Glance Images: Storage -> Domains -> ovirt-image-repository (1), Import (2):


Fig. 1 - Importación de la imagen Fedora 32.

Marcamos “Importar como plantilla” (3, Importar como plantilla), le damos un nombre a la plantilla (4). Se recomienda encarecidamente que el disco tenga un nombre descriptivo (5, alias de disco).

El progreso de las tareas se monitorea convenientemente en la sección Tareas .


Higo. 2 - Progreso en completar tareas en oVirt.

Después de una carga exitosa, la plantilla se agrega a la lista.


Higo. 3 - Plantillas.

Según la plantilla cargada, cree un grupo:


Fig. 4 - Crear un grupo.

Vaya a Compute -> Pools (1), New (2), seleccione la plantilla Fedora32 (3), versión - latests (4), asigne el nombre "myPoolA- ??" (5) Todavía no tocamos los campos Número de VM y VM prearrancada, volveremos a ellos en el siguiente paso. A continuación, active la configuración avanzada (6) y continúe con la configuración de la ejecución inicial.


Higo. 4 - Configurar el inicio inicial.

Porque de Glance Images hemos descargado Cloud Image, necesitamos configurar la autenticación. Compruebe que "Usar Cloud-Init / Sysprep" (1) esté habilitado, abra Autenticación (2), especifique el nombre de usuario, por ejemplo, root o usuario (3). Para crear una contraseña única para el grupo, deshabilite "Usar contraseña ya configurada" (4) e ingrese su contraseña (5). Haga clic en "Aceptar": se crea el grupo, aparecieron máquinas idénticas en Compute -> Virtual Machines (preste atención a su icono, es diferente de una máquina que funciona por separado).

Nota sobre el nombre del grupo. Como notaron, al final es "- ??". Esto incluye la numeración "normalizada" de máquinas (complementada con ceros: 01, 02, ..., 09, 10, etc.) De lo contrario, la numeración será números naturales sin alineación (1, 2, ..., 9, 10, ...)
Antes de continuar, regresemos a la configuración del grupo. Observe que el campo "Número de máquinas virtuales" ha cambiado a "Aumentar el número de máquinas virtuales en el grupo". Especificamos 31 aquí y el número de máquinas en el grupo se convierte casi instantáneamente en 32. Ahora, en el campo “VM prearrancada”, ingresamos 16; esto obligará a oVirt a mantener el número especificado de máquinas preiniciadas y listas para conectar a los usuarios. Aquí es donde terminaremos sobre máquinas, plantillas y grupos y pasaremos a la migración.

Iconos clave de VM:

  • unidad de rack - servidor;
  • monitor - escritorio;
  • 3 torres: servidor de la piscina;
  • 3 monitores - escritorio de la piscina;
  • rebobinar (rebobinar): sin estado (la máquina restablece su estado a su estado original después del apagado; todos los cambios se revierten);
  • triángulo en el monitor naranja: el cambio de configuración solicitado requiere un reinicio.


Migración de VM (migración en vivo)


La migración del estado de la máquina encendida es simple: haga clic con el botón derecho en una máquina o grupo de máquinas. El procedimiento es similar al de vMotion en vSphere.


Higo. 5 - Comienza la migración.

Calcular -> Máquina virtual, seleccione una o más máquinas, Migrar.


Higo. 6 - El proceso de migración se puede observar en hosts (Compute -> Hosts).

Al mismo tiempo, no se mueven más de 2 autos.

Migración de almacenamiento


Pero este procedimiento puede parecer inusual para el usuario de VMware vSphere, porque Los enfoques para almacenar imágenes de disco y configuraciones de máquina en sistemas difieren.
Para transferir el almacenamiento de VM, vaya a discos (Almacenamiento -> Discos) o dominios (Almacenamiento -> Dominios -> {Nombre de dominio} -> Discos). Seleccione la (s) unidad (es) y presione Mover . Eso es todo, las unidades se envían a otro almacenamiento.

Nota: debido a la organización interna, existen restricciones para migrar el almacén y el grupo de plantillas. La mejor forma de familiarizarse con la migración del almacenamiento es en una máquina separada, fuera del grupo.
La copia del disco se realiza en los mismos menús que la carga / descarga manual.

Renombrar VM y disco


Cambiar el nombre de una máquina o plantilla es muy simple: edite e ingrese un nuevo nombre. Cambiar el nombre de un grupo requiere eliminar sus máquinas y volver a crearlo, porque basado en él, las máquinas virtuales se generan con los nombres y la configuración correspondientes.

También es posible cambiar el nombre de un disco, pero la ruta es más larga que
e: Compute -> Virtual Machine -> {VM Name} -> Disks -> {VM Disk Alias} -> Edit, Alias.
Los identificadores de objetos internos están construidos en UUID. Al cambiar el nombre, en realidad cambiamos los alias.

La sección trata sobre la actualización, que es actualización (menor), no actualización (mayor), cuando cambia el número de versión (este es un procedimiento más complicado y no forma parte de las tareas diarias).

Actualizar oVirt-Host (hipervisor)


Las actualizaciones de host son más simples que en vSphere, el administrador de actualizaciones en oVirt está integrado orgánicamente en la plataforma y no requiere ninguna configuración. Oficial actualización de la documentación .


Higo. 7 - Si hay actualizaciones, el administrador las informará con un icono de CD.


Higo. 8 - Antes de comenzar la actualización, debe habilitar el modo de mantenimiento (Administración -> Mantenimiento), iniciará automáticamente la migración de VM a otros hosts (ver Figura 6) y se preparará para la actualización.


Higo. 9 - El icono de llave inglesa indica que el host está listo para el servicio.


Higo. 10 - Instalación -> Actualización inicia el procedimiento de actualización.


Higo. 11 - Podemos pedirle al administrador que le dé al host un comando para reiniciar después de que se complete la actualización, para que surta efecto.


Higo. 12 - Después del reinicio, sacamos el hipervisor del modo fuera de servicio (Administración -> Activar).

Revisamos todos los hosts y los actualizamos.

Actualizar oVirt-Engine (administrador)


Al principio, esto puede ser confuso, pero la actualización del administrador se realiza utilizando la configuración del motor, con pasos adicionales, como se describe en la documentación .

  1. Si es posible, haga un archivo o una instantánea de la máquina, asegúrese de que la última copia de seguridad programada se realizó correctamente.
  2. Verificamos y actualizamos los paquetes de instalación:

    $ sudo engine-upgrade-check
    $ sudo update ovirt\*setup\*
  3. La parte principal de la actualización la realiza el programa de configuración del motor. Ella hará una serie de preguntas de configuración, luego detendrá el servicio ovirt-engine, descargará e instalará paquetes actualizados, creará un archivo y actualizará la base de datos, aplicará la configuración actualizada e iniciará el servicio ovirt-engine.

    $ sudo engine-setup

    Tras una actualización exitosa, recibiremos el mensaje:

    Execution of setup completed successfully

    Ejemplo de salida del script de configuración del motor
    $ sudo engine-setup

    [ INFO  ] Stage: Initializing
    [ INFO  ] Stage: Environment setup
              Configuration files: ['/etc/ovirt-engine-setup.conf.d/10-packaging-jboss.conf', '/etc/ovirt-engine-setup.conf.d/10-packaging.conf', '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf']
              Log file: /var/log/ovirt-engine/setup/ovirt-engine-setup-20200522232449-o97vyx.log
              Version: otopi-1.8.2 (otopi-1.8.2-1.el7)
    [ INFO  ] Stage: Environment packages setup
    [ INFO  ] Stage: Programs detection
    [ INFO  ] Stage: Environment setup (late)
    [ INFO  ] Stage: Environment customization
             
              --== PRODUCT OPTIONS ==--
             
             
              --== PACKAGES ==--
             
    [ INFO  ] Checking for product updates...
              Setup needs to install or update the following packages:
              [updated] ovirt-engine-4.3.5.5-1.el7.noarch will be updated
    ...
              [update] ovirt-engine-wildfly-overlay-17.0.1-1.el7.noarch is an update
              Replying "No" will abort Setup. You can pass the option "--offline" to prevent installing or updating packages.
              Do you wish to update them now? (Yes, No) [Yes]: 
    [ INFO  ] Checking for an update for Setup...
             
              --== NETWORK CONFIGURATION ==--
             
              Setup can automatically configure the firewall on this system.
              Note: automatic configuration of the firewall may overwrite current settings.
              NOTICE: iptables is deprecated and will be removed in future releases
              Do you want Setup to configure the firewall? (Yes, No) [Yes]: 
    [ INFO  ] firewalld will be configured as firewall manager.
             
              --== DATABASE CONFIGURATION ==--
             
              The detected DWH database size is 439 MB.
              Setup can backup the existing database. The time and space required for the database backup depend on its size. This process takes time, and in some cases (for instance, when the size is few GBs) may take several hours to complete.
              If you choose to not back up the database, and Setup later fails for some reason, it will not be able to restore the database and all DWH data will be lost.
              Would you like to backup the existing database before upgrading it? (Yes, No) [Yes]: 
              Perform full vacuum on the oVirt engine history
              database ovirt_engine_history@localhost?
              This operation may take a while depending on this setup health and the
              configuration of the db vacuum process.
              See https://www.postgresql.org/docs/10/sql-vacuum.html
              (Yes, No) [No]: 
             
              --== OVIRT ENGINE CONFIGURATION ==--
             
              Perform full vacuum on the engine database engine@localhost?
              This operation may take a while depending on this setup health and the
              configuration of the db vacuum process.
              See https://www.postgresql.org/docs/10/sql-vacuum.html
              (Yes, No) [No]: 
             
              --== STORAGE CONFIGURATION ==--
             
             
              --== PKI CONFIGURATION ==--
             
             
              --== APACHE CONFIGURATION ==--
             
             
              --== SYSTEM CONFIGURATION ==--
             
             
              --== MISC CONFIGURATION ==--
             
             
              --== END OF CONFIGURATION ==--
             
    [ INFO  ] Stage: Setup validation
              During execution engine service will be stopped (OK, Cancel) [OK]: 
    [ INFO  ] Cleaning stale zombie tasks and commands
             
              --== CONFIGURATION PREVIEW ==--
             
              Default SAN wipe after delete           : False
              Firewall manager                        : firewalld
              Update Firewall                         : True
              Host FQDN                               : ovirt.example.com
              Upgrade packages                        : True
              Set up Cinderlib integration            : False
              Engine database secured connection      : False
              Engine database user name               : engine
              Engine database name                    : engine
              Engine database host                    : localhost
              Engine database port                    : 5432
              Engine database host name validation    : False
              Engine installation                     : True
              PKI organization                        : JSC Open Lab
              Set up ovirt-provider-ovn               : False
              Configure WebSocket Proxy               : True
              DWH installation                        : True
              DWH database secured connection         : False
              DWH database host                       : localhost
              DWH database user name                  : ovirt_engine_history
              DWH database name                       : ovirt_engine_history
              Backup DWH database                     : True
              DWH database port                       : 5432
              DWH database host name validation       : False
              Configure Image I/O Proxy               : True
              Configure VMConsole Proxy               : True
             
              Please confirm installation settings (OK, Cancel) [OK]: 
    [ INFO  ] Cleaning async tasks and compensations
    [ INFO  ] Unlocking existing entities
    [ INFO  ] Checking the Engine database consistency
    [ INFO  ] Stage: Transaction setup
    [ INFO  ] Stopping engine service
    [ INFO  ] Stopping ovirt-fence-kdump-listener service
    [ INFO  ] Stopping dwh service
    [ INFO  ] Stopping Image I/O Proxy service
    [ INFO  ] Stopping vmconsole-proxy service
    [ INFO  ] Stopping websocket-proxy service
    [ INFO  ] Stage: Misc configuration (early)
    [ INFO  ] Stage: Package installation
    [ INFO  ] Yum Status: Downloading Packages
    ...
    [ INFO  ] Stage: Misc configuration
    [ INFO  ] Upgrading CA
    [ INFO  ] Not rewriting /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf because it was changed manually. You might want to compare it with /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf.new and edit as needed.
    [ INFO  ] Backing up database localhost:ovirt_engine_history to '/var/lib/ovirt-engine-dwh/backups/dwh-20200522233531.6LDItj.dump'.
    [ INFO  ] Creating/refreshing DWH database schema
    [ INFO  ] Configuring Image I/O Proxy
    [ INFO  ] Configuring WebSocket Proxy
    [ INFO  ] Backing up database localhost:engine to '/var/lib/ovirt-engine/backups/engine-20200522233538.LZCwME.dump'.
    [ INFO  ] Creating/refreshing Engine database schema
    [ INFO  ] Creating/refreshing Engine 'internal' domain database schema
              Unregistering existing client registration info.
    [ INFO  ] Generating post install configuration file '/etc/ovirt-engine-setup.conf.d/20-setup-ovirt-post.conf'
    [ INFO  ] Stage: Transaction commit
    [ INFO  ] Stage: Closing up
    [ INFO  ] Starting engine service
    [ INFO  ] Starting dwh service
    [ INFO  ] Restarting ovirt-vmconsole proxy service
             
              --== SUMMARY ==--
             
    [ INFO  ] Restarting httpd
              Web access is enabled at:
                  http://ovirt.example.com:80/ovirt-engine
                  https://ovirt.example.com:443/ovirt-engine
              SSH fingerprint: SHA256:JvilhbwRuMjBCJEjQVPlFQgk0aLaKz7Od0WzsZtx4j4
              Did not update /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf because it was changed manually. You might want to compare it with /etc/ovirt-imageio-proxy/ovirt-imageio-proxy.conf.new and edit as needed.
             
              --== END OF SUMMARY ==--
             
    [ INFO  ] Stage: Clean up
              Log file is located at /var/log/ovirt-engine/setup/ovirt-engine-setup-20200522232449-o97vyx.log
    [ INFO  ] Generating answer file '/var/lib/ovirt-engine/setup/answers/20200522233608-setup.conf'
    [ INFO  ] Stage: Pre-termination
    [ INFO  ] Stage: Termination
    [ INFO  ] Execution of setup completed successfully

  4. Actualizamos el sistema operativo y otros paquetes adicionales:
    $ sudo yum update

    Si es necesario (actualizando el núcleo o sus componentes) reiniciamos la máquina.


Importar VM


Puede importar desde VMware, Exportar dominio (una entidad especial para intercambiar imágenes entre el Centro de datos), Dispositivo virtual (OVA), XEN, KVM. Todas las opciones admitidas oficialmente:

  1. Importar VM desde VMware ESXi / VSPHERE se ejecuta en el host + autenticación al host donde se ejecuta ESXi / VSPHERE en
  2. Importar KVM / Xen VM desde Libvirt: el usuario especifica la URL + autenticación al host donde se ejecuta Libvirt
  3. Importar KVM / Xen VM desde una ruta determinada: el usuario especifica la ruta nfs / posix a la configuración y discos de la VM
  4. Importar VM que se exportó desde VMware: el usuario especifica la ruta nfs / posix al archivo ova
  5. Subir KVM / Xen VM: el usuario especifica los archivos de la configuración y los discos
  6. Subir VM que se exportó desde VMware: el usuario especifica el archivo ova
  7. Importar VM desde carpeta: el usuario especifica la ruta a la carpeta que contiene VM KVM / Xen o VM exportada desde VMware

Consideremos 2 opciones: importar desde vSphere y una máquina independiente con KVM. Para iniciar la importación de material en Compute -> Virtual Machines, haga clic en el botón para elementos de menú adicionales (3 puntos verticales, consulte la Fig. 13). La máquina fuente debe estar apagada.

Importar máquinas desde vCenter


En el mago:

  • Fuente de datos: VMware;
  • Proveedor externo: en Administración -> Proveedores puede configurar una plantilla para operaciones frecuentes;
  • vCenter: nombre o dirección del servidor vCenter;
  • ESXi: de qué hipervisor recogeremos el automóvil;
  • Ceter de datos: ruta completa al clúster;
  • Clúster: que contiene un clúster de hipervisor;
  • Nombre de usuario / contraseña: nombre de usuario y contraseña para conectarse a vCenter;
  • Verifique el certificado SSL del servidor: cuando use certificados autofirmados, deberá deshabilitar su verificación.


Higo. 13 - Importar máquinas virtuales de VMware vSphere.

Importar máquinas de KVM


Detalles sobre la importación desde KVM en la documentación .

Primero, debe habilitar la conexión al KVM desde el exterior, si esto no se ha configurado antes.

Permiso para exportar máquinas a KVM
, . ! , , , . , ., ArchLinux.

, libvirtd

$ sudo vim /etc/sysconfig/libvirtd



LIBVIRTD_ARGS="--listen"



$ sudo cp /etc/libvirt/libvirtd.conf /etc/libvirt/libvirtd.conf.`date +%F`
$ sudo vim /etc/libvirt/libvirtd.conf

:

listen_tls = 0
listen_tcp = 1
listen_addr = "0.0.0.0"
auth_tcp = "none"



log_outputs="3:syslog:libvirtd"

libvirtd. , libvirtd > 0.6 ( libvirtd --version), .

$ sudo service libvirtd restart

tcp:16509.

CentOS 7 ( permanent):

$ sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="172.17.71.32/30" port port="16509" protocol="tcp" accept'

:

$ virsh -r -c 'qemu+tcp://mgmt@kvm46.example.com/system' list --all


Además, la importación en sí es muy simple:

Calcular -> Máquinas virtuales ->: (menú adicional, 3 puntos verticales) -> Importar -> Fuente (KVM a través de libvirt) -> URI (qemu + tcp: //kvm46.example.com / system) -> Requerir autenticación (Desactivar) -> Cargar.

Marcamos las máquinas necesarias, seleccionamos la política de asignación (Política de asignación).

Política de asignación: se prefiere la asignación previa para volúmenes de almacenamiento con detección cero de hardware, para volúmenes con alta E / S, volúmenes con alta ocupación, etc. En cualquier caso, miramos la situación y la analizamos.

La marca "Clone" marca, pero no copia el automóvil. Por ejemplo, se asignará una nueva dirección MAC para la interfaz de red.

En la pestaña General, es importante especificar el tipo de sistema operativo correcto, y en la pestaña Interfaces de red, puede especificar la red deseada. A continuación, "importar" y, dependiendo de la velocidad del equipo, obtenemos la máquina importada. Después de importar (o antes) no olvide instalar ovirt-guest-agent.


Administración de tareas


Cuando las tareas se congelan, comienzan los "bailes" difíciles, algunos de los cuales trataré de mencionar. Con un comportamiento regular, uno puede observarlos en la Fig. 2.

Si la tarea se realiza más o menos normalmente, las herramientas regulares son suficientes. Con pimers y fotos puedes ver aquí .

Las tareas se realizan en oVirt-host.

[mgmt@ovirt-nodeNN] $ sudo vdsm-client Host getAllTasksInfo
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Task getStatus taskID=<TASKID>
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Task stop taskID=<TaskID>
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Task clear taskID=<TaskID>
[mgmt@ovirt-nodeNN] $ sudo vdsm-client Host getAllTasksInfo

Además, vdsm-client puede intentar revertir la tarea, todos los métodos admitidos:

$ sudo vdsm-client Task -h

...
Métodos de tarea:
método [arg = valor]
getStatus Obtener información del estado de la tarea.
revierta una tarea para restaurar el estado anterior del sistema.
clear Descarta información sobre una tarea finalizada.
getInfo Obtener información sobre una tarea.
stop Detiene una tarea actualmente en ejecución.

Sin embargo, los movimientos se vuelven más complicados si la tarea no se puede detener utilizando métodos estándar.
Oficialmente, la herramienta Taskcleaner se utiliza para esto:

[mgmt@ovirt-engine] $ sudo /usr/share/ovirt-engine/setup/dbutils/taskcleaner.sh --help

Para casos aún más severos, se requiere la edición directa de la base de datos. Este método debe recurrirse solo como último recurso, con archivos nuevos de oVirt y las máquinas afectadas.

Entonces, conectamos la colección de software

[mgmt@ovirt-engine] $ sudo scl enable rh-postgresql10 "psql -d engine -U postgres"

Luego, conéctese a la base de datos

su postgres
psql -d engine -U postgres
select * from job order by start_time desc;

Y eliminación directa: ejecutar el procedimiento DeleteJob para la tarea problemática:

select DeleteJob('UUID_HERE');

Ejemplo:

select DeleteJob('ed0127c7-b052-4ec2-a67c-8b3a65d55e19');

¡Eso es todo por hoy, y espero que nunca necesites editar manualmente una base de datos!

All Articles