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
- Introducción
- Instalación del gestor (ovirt-engine) e hipervisores (hosts)
- Ajustes adicionales
- 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 quee: 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 .- 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.
- Verificamos y actualizamos los paquetes de instalación:
$ sudo engine-upgrade-check
$ sudo update ovirt\*setup\*
- 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
- 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:- Importar VM desde VMware ESXi / VSPHERE se ejecuta en el host + autenticación al host donde se ejecuta ESXi / VSPHERE en
- Importar KVM / Xen VM desde Libvirt: el usuario especifica la URL + autenticación al host donde se ejecuta Libvirt
- Importar KVM / Xen VM desde una ruta determinada: el usuario especifica la ruta nfs / posix a la configuración y discos de la VM
- Importar VM que se exportó desde VMware: el usuario especifica la ruta nfs / posix al archivo ova
- Subir KVM / Xen VM: el usuario especifica los archivos de la configuración y los discos
- Subir VM que se exportó desde VMware: el usuario especifica el archivo ova
- 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 datossu 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!