Estoy enviando un montón de servidores ESXi 5.1 a oficinas remotas donde serán alimentados a través de APC UPS.
Me gustaría que el UPS activara el apagado del servidor conectado; luego confiaría en la configuración de ESXi para encargarme del apagado / suspensión de las máquinas virtuales alojadas en él.
Puedo ver que APC tiene una solución documentada utilizando su apagado de red PowerChute , pero esto implica configurar un servidor adicional por oficina y requiere tarjetas de red en cada UPS. Generalmente estamos usando UPS sin una tarjeta de red (por ejemplo, Back-UPS Pro): vienen con un conector USB y están disponibles en los lugares donde se encuentran nuestras oficinas.
¿Cómo puedo conectar un UPS a un host ESXi a través de USB, luego hacer que ESXi detecte un corte de energía y luego actuar en consecuencia? ¿Alguien ha logrado hacer esto?
Respuestas:
Según APC, esto no es posible y requiere el apagado de la red Powerchute. Lo intentamos varias veces con USB y no encontramos solución.
VMWare tiene información aquí sobre el uso de la solución aprobada por APC.
También pensaría que SmartUPS sería una mejor opción y que puede caber con una tarjeta de red. Naturalmente más dinero, pero si sus servidores son importantes, ese costo debería valer la pena. También le brinda más monitoreo y alertas que podrían ser útiles en un sitio remoto. También debe garantizar un tiempo de ejecución suficiente para que todas las máquinas virtuales se apaguen limpiamente y luego apaguen el host
fuente
Si es posible. Aquí hay detalles de mi configuración similar.
Configuración de hardware: APC Smart-UPS 1500 conectado al host ESXi 5.1 a través de USB. Una máquina virtual Linux que se ejecuta en este host ESXi. El UPS está conectado a esta VM utilizando la opción de transferencia USB ESXi.
Configuración del software: maestro NUT (Network UPS Tools) que se ejecuta en la VM y esclavo NUT ESXi nativo que se ejecuta en el host ESXi.
Lógica de apagado: VM está ejecutando los usbhid-ups del controlador de UPS que son responsables de la comunicación con UPS a través de USB. El proceso upsd se conecta al UPS a través del controlador usbhid-ups y monitorea el estado del UPS. El proceso maestro upsmon que se ejecuta en la misma máquina se conecta al upsd e inicia el apagado. El host ESXi ejecuta la segunda instancia de upsmon, que también se conecta a la misma máquina virtual upsd a través de la red interna.
En caso de fallo de alimentación, tiene lugar la siguiente secuencia:
Descargas:
NUT para Linux podría instalarse desde el paquete.
El cliente NUT nativo para el servidor ESXi se puede descargar usando el último enlace de esta página: http://www.networkupstools.org/download.html
Algunos de mis scripts y archivos conf están aquí (solo se muestran las líneas modificadas): http://pastebin.com/KkEeanK1
Notas:
Por supuesto, hay más detalles, y me llevó algo de tiempo hacer que funcionara como debería. Pero ahora funciona muy bien. Este sistema tiene en cuenta los casos en los que simplemente apaga la VM de monitoreo desde adentro (el script de vmware-tools no se ejecuta), o si se trata de un apagado de VM iniciado por el host ESXi (sin indicador / etc / killpower, por lo que no se apaga el UPS), o si es un apagado de ESXi (lo mismo). Lo único importante es hacer que esta máquina virtual se ejecute lo antes posible después del arranque del host y apagarla por última vez (por lo que el tiempo de inactividad del host es predecible, como se dijo anteriormente, es alrededor de 1 minuto para mí y 2 minutos más que reservo por si acaso).
Mi UPS que monitorea Linux VM también es un servidor de intercambio Samba / NFS para almacenamiento de respaldo, el servidor NAT / DHCP para VM y algunos otros servicios livianos. Se necesitan alrededor de 22MHz de recursos compartidos de CPU ESXi y alrededor de 10MB de RAM activa cuando está inactivo. Debido al uso de la NUT, puede alimentar más dispositivos desde el mismo UPS si es necesario, y todos pueden apagarse con gracia. No se requiere PowerChute ni una costosa tarjeta de monitor de red.
fuente
Súper pregunta En realidad, es posible hacerlo bastante bien, al menos en algunas configuraciones. He probado la siguiente receta en varios hosts ESXi 5.5. Básicamente, la solución es la siguiente:
ctrl urb status -62
endmesg
, es probable que el controlador físico no coincide con el de la máquina virtual. Si coinciden, bueno, entonces es un problema. Tengo una configuración con este tipo de problema y no tengo una solución real.apcupsd
en la máquina virtual Linux: en Ubuntu, puede hacersudo apt-get install apcupsd
para instalar la última versión. El proyecto NUT también es bueno pero soy tradicionalista.sudo apt-get install putty-tools
plink root@<your ESXi host IP>
. Puede cerrar la conexión de inmediato. El objetivo es guardar la clave de host para que Plink no la solicite nuevamente cuando la ejecutamos a través de un script/etc/apcupsd/apcupsd.conf
y cambie los siguientes elementos para que coincidan:UPSNAME < the name you'd like your UPS to have > UPSCABLE usb UPSTYPE usb # DEVICE DIRECTIVE should be blank for USB DEVICE
también asegúrese de que/etc/default/apcupsd
tengaISCONFIGURED=yes
/etc/apcupsd/apccontrol
y desplácese hasta eldoshutdown
caso. Haz que se vea así:doshutdown) echo "UPS ${2} initiated Shutdown Sequence" | ${WALL} # Shut down indirectly by triggering the ESXi host to do the # shutdown via VMWare tools /usr/bin/plink root@< your ESXi host IP > -pw < your root pw > "/sbin/shutdown.sh && /sbin/poweroff" ;;
sudo service apcupsd restart
y vea si las cosas funcionan invocandoapcaccess
. Si no, revise los registros y dmesgvCenter -> <your host> -> Manage -> Settings -> VM Startup/Shutdown
. Asegúrese de que la acción de apagado sea apagar el sistema operativo invitado.Una vez que tiene estas cosas en ejecución, el
doshutdown
scriptlet del paso 8 se invoca en un fallo de alimentación. Este es el turno que invoca el script shutdown.sh en el host ESXi, que le indica al paquete VMWare Tools en cada VM en su host que realice un apagado limpio a través del SO huésped. En mi experiencia, funciona mejor que el software PowerChute de APC.Si desea monitorear cosas desde sus máquinas virtuales, puede configurar instancias de apcupsd esclavas en ellas que se conectan al control maestro de UPS Linux VM. Sus archivos esclavos apcupsd.conf deben tener una entrada como esta: las
UPSTYPE net < your UPS control VM IP >:3551
entradas como
UPSCABLE
y tal no importan en este caso. Esto funciona con la versión de Windows deapcupsd
(disponible aquí ) también. Puede utilizar el incluidoapctray.exe
para verificar el estado actual de las cosas.Eso prácticamente lo cubre, creo.
fuente
doshutdown
un poco la secuencia. Agregamos${APCUPSD} --killpower
justo antes de la/usr/bin/plink
parte para que el UPS se apague después de un tiempo y se reinicie automáticamente cuando vuelva la energía. Además, vale la pena señalar que el paso 6 debe hacerse comoroot
adquirido a través desu
osudo su
, pero nosudo -s
.Puede considerar usar la funcionalidad de transferencia de dispositivos USB a un invitado que ejecute PowerChute u otro software capaz de monitorear el estado del UPS y capaz de provocar un apagado en el host ESXi (por ejemplo, apcupsd ). Oficialmente, ESXi solo admite un número muy limitado de dispositivos USB para el paso , pero las personas han estado conectando y pasando a través de diferentes clases de dispositivos durante un tiempo con un éxito variable, pero el APC UPS USB parece funcionar de acuerdo con este tutorial para una VM de Windows o este para una VM Linux CentOS .
fuente
Eche un vistazo a vSphere Management Assistant (vMA) desde aquí. Lo usamos en mi oficina para hacer lo que está intentando, sin embargo, con Smart-UPS conectado a través de USB en lugar de Back-UPS.
fuente
Si bien es posible (probablemente / en general), no creo que sea buena idea apagar automáticamente una computadora con la batería. Si va a hacer eso, entonces, para la intención y propósitos más prácticos, probablemente debería ahorrarse el dinero de un UPS con batería y dejar que la pérdida de energía apague su máquina por usted. (Por supuesto, un apagado limpio siempre es preferible a una pérdida de energía, pero parece que se está perdiendo el tiempo de tener una batería de más de un par de minutos si apaga automáticamente todo cuando pierde la alimentación de energía. )
La forma en que siempre lo he manejado es tener alertas de monitoreo de las SA cuando se corta la energía, para que las SA puedan usar su materia gris para decidir cuándo (o incluso si) apagar los servidores. Si se trata de una breve interrupción, puede que no sea una buena idea apagar los servidores en absoluto, o es posible que desee dejar algunos servidores en funcionamiento el mayor tiempo posible, y solo apagarlos antes de que la batería esté a punto de agotarse. Realmente me parece una tarea de toma de decisiones más adecuada para un ser humano que una simple regla.
fuente
En los viejos tiempos de las instalaciones de metal desnudo , APC PowerChute Plus fue una parte esencial de mi proceso de instalación. Usando el cable de señalización serial simple y su binario solo de Red Hat , fue fácil configurar reglas para gobernar un servidor conectado localmente. Notificaciones básicas por correo electrónico para eventos de batería UPC, eventos de alimentación de línea y acciones de apagado disponibles:
y
o
Además de una interfaz razonable para ver lo que estaba sucediendo ...
Ese software finalmente se comercializó (o fue enterrado en el sitio web de APC). Hubo algunos enfoques de código abierto para proporcionar algo similar. Pero todo esto se complica con los hosts VMWare ESXi individuales.
Parece que esto es algo que VMWare debería haber incorporado en el hipervisor base. Es básico y podría ofrecer un nivel de protección decente para los usuarios. Los remedios más comunes que veo ahora son el paso de USB a una VM dedicada, un enfoque de demonio de red o hacer lo que hago; no configurar ningún apagado automático o de batería ...
Por supuesto, normalmente utilizo un UPS que puede soportar la carga del sistema durante una hora o más, pero ocurren interrupciones prolongadas. Tal vez una alternativa es recopilar algunas tarjetas de interfaz de red de bajo costo o renovadas y planear comprar dispositivos SmartUPS como mínimo ...
fuente
Mira el siguiente enlace . No es la solución más elegante, sino una solución muy práctica y muy sencilla. Existen posibles inconvenientes en términos de seguridad (dependiendo del diseño particular de su red, los invitados cargados en los Hosts y el acceso que los usuarios tienen a esos invitados, pero usted puede hacer esa llamada.
fuente
Utilicé la solución MrMajestyk y solo cambié el acceso ssh a través de plink con acceso ssh sin contraseña usando la clave pública rsa. La clave rsa generada en la máquina virtual apcupsd debe incluirse en / etc / ssh / keys-root / optional_keys del host vmware.
fuente