Situación:
En un sistema integrado de Todo-En-Uno ESXi/ZFS-servidor de Almacenamiento, donde el almacenamiento VM utiliza desnudo discos de metal y las exportaciones de los sistemas de archivos a través de NFS (o iSCSI) a ESXi, que se utiliza como piscina de almacenamiento para las otras VMs, existe un problema a la hora de actualizar el almacenamiento de la máquina virtual, debido a que numerosas máquinas virtuales en ejecución dependen de él y será el tiempo de espera con NFS.AllPathsDown
o causas similares, lo que equivale a tirar el coche de un normal servidor sin necesidad de apagarlo.
Por supuesto, es posible apagar todas las máquinas virtuales, pero esto se hace muy lento y también tedioso (o tiene que ser escrito). Mover las máquinas virtuales a otro host puede ser posible, pero incluso más tiempo y puede no ser posible en pequeñas configuraciones, donde una sola máquina es suficiente. La suspensión de la VMs podría trabajar, pero también es bastante lento (a veces más lento que el cierre).
Posibles soluciones...
- Un simple pero eficiente solución parece ser la de parada de la máquina virtual de procesos a través de la CLI con
kill -STOP [pid]
después de encontrar conps -c | grep -v grep | grep [vmname]
, hacer el upgrade/reiniciar el almacenamiento de la máquina virtual, luego continuar con la ejecución de la máquina virtual de procesos mediante el uso dekill -CONT [pid]
. - Una solución similar podría ser la combinación de rearranque rápido (disponible en Solaris/illumos a través de
reboot -f
o en Linux a través dekexec-reboot
) que tarda segundos en lugar de minutos, y el NFS tiempo de espera en ESXi (en la pérdida de la conexión NFS todos los I/O es suspendido por creo que 120 segundos, hasta que se asume que el almacenamiento es permanentemente). Si el tiempo de arranque es en el interior de la ESXi NFS ventana, en teoría debería ser comparable a la de un disco que no responda durante un minuto porque de corrección de error, pero luego se reanuda el funcionamiento normal.
... y los problemas?
Ahora, mis preguntas son:
- Cuál es el método preferible, o son igual de bueno/malo?
- ¿Cuáles son los efectos secundarios no deseados en casos especiales como bases de datos, Active Directory controladores de máquinas con los usuarios que ejecutan los trabajos, etc.?
- Donde uno debe de tener cuidado? Un comentario en el blog menciona cronometraje pueden surgir problemas cuando la CPU está congelada, por ejemplo.
Edit: Para aclarar el alcance de esta pregunta
Después de recibir las dos primeras respuestas, creo que he redactado mi pregunta no es lo suficientemente clara o a la izquierda demasiada información en aras de la brevedad. Soy consciente de lo siguiente:
- No es compatible con VMware o cualquier otra persona, no lo hacen!: Yo no menciono esto porque el primer enlace ya lo dice y también me gustaría que no se han preguntado si esta máquina fue administrado por el soporte técnico de VMware. Se trata de una cuestión puramente técnica, apoyo a la materia que está fuera del ámbito de este capítulo.
- Si el diseño de un nuevo sistema de hoy en día, algunos se podían hacer las cosas de otras maneras: Correcto, pero a medida que el sistema ha estado funcionando estable durante algunos años, prefiero no tirar al bebé con el agua del baño y empezar completamente de nuevo, la introducción de nuevos problemas.
- Comprar hardware X y usted no tendrá este problema! Cierto, yo podría comprar 2 o 3 servidores adicionales con costo similar y tienen una amplia HA de instalación. Yo sé cómo se hace, no es tan difícil. Pero esta no es la situación aquí. Si esto era una solución viable en mi caso, no me han hecho la pregunta en el primer lugar.
- Sólo tiene que aceptar el retraso de apagar y reiniciar: yo sé que esto es una posibilidad, ya que es lo que estoy haciendo actualmente. Me han hecho la pregunta para encontrar mejores alternativas dentro de la configuración actual, o para aprender de justificadas razones técnicas, algunos de los métodos descritos tendrá problemas - "es impredecible", sin ninguna explicación de por qué no es una respuesta fundamentada en mi libro.
Por lo tanto, para reformular las preguntas:
- Cuál de los dos métodos es técnicamente preferible y por qué, suponiendo que la instalación es fija, y el objetivo es reducir el tiempo de inactividad, sin la introducción de efectos secundarios negativos para la integridad de los datos?
- ¿Cuáles son los efectos secundarios no deseados en casos especiales como
- activa/ralentí/reposo bases de datos con los usuarios y/o aplicaciones que tienen acceso a ellos
- Active Directory de controladores de la máquina y/o en otros equipos (en el mismo dominio)
- propósito general de las máquinas de ralentí o con los usuarios de los trabajos en ejecución o ejecución automatizada de los trabajos de mantenimiento, como copias de seguridad
- electrodomésticos, como la monitorización de la red o routers
- de tiempo de red con o sin el uso de NTP en este servidor o en otro o en varios servidores
- En que casos especiales es aconsejable no hacer esto, ya que los aspectos negativos son mayores que la ventaja? Donde uno debe de tener cuidado? Un comentario en el blog menciona cronometraje pueden surgir problemas cuando la CPU está congelada, por ejemplo, pero no proporciona ningún razonamiento, la prueba o que los resultados de la prueba.
- ¿Cuáles son los hechos, las diferencias técnicas entre las dos soluciones y
- Se estancó la ejecución de VM procesos debido a la sobrecarga de la CPU en el host
- El aumento de tiempo de Espera de e/S de disco debido a fallos de los discos o los controladores, suponiendo que está por debajo de la NFS umbral?