3 votos

VMware ESXi: Pausa el proceso de VM (para permitir el almacenamiento NFS para reiniciar), los efectos secundarios en las bases de datos, AD, casos especiales?

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...

  1. 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 con ps -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 de kill -CONT [pid].
  2. 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 de kexec-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:

  1. Cuál es el método preferible, o son igual de bueno/malo?
  2. ¿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.?
  3. 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:

  1. 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?
  2. ¿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
  3. 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.
  4. ¿Cuáles son los hechos, las diferencias técnicas entre las dos soluciones y
    1. Se estancó la ejecución de VM procesos debido a la sobrecarga de la CPU en el host
    2. 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?

7voto

Tina Puntos 21

Buena pregunta...

Pero, ¿por qué es necesario reiniciar el servidor NFS, de todos modos?

Todo-en-uno de los diseños no son razonables ya. Como un experimento de ciencia o casa pequeña-situación de laboratorio, seguro. Pero al igual que cualquier solución, esperar a construir en el tiempo de inactividad y las ventanas de mantenimiento cuando sea necesario.

Así que...

  • Conjunto de VM de inicio y cierre de la orden (buena cosa a tener en el lugar).

enter image description here

  • Puede seleccionar múltiples máquinas virtuales para apagar o poner en pausa al mismo tiempo. (Yo solía suspender VMs cuando hice esto)

enter image description here

  • Hacer lo que sea necesario para el NFS VM.
  • Comer el tiempo de inactividad.

Si usted no puede tener este tipo de tiempo de inactividad, usted no debe estar ejecutando un todo-en-uno el almacenamiento y la VM de la instalación, o debería considerar tradicionales de almacenamiento SAN (o una versión low cost) y varios hosts de máquina virtual.

6voto

Adam Rushad Puntos 66

Mi sugerencia sería la de evitar este problema por completo. Usted mencionó que el aumento de los costos y una completa re-diseñar la arquitectura son aguafiestas, pero ¿qué usted podría considerar en esta situación es tener dos de almacenamiento de máquinas virtuales en el host en un nodo de clúster de conmutación por error. Esto le permitiría a la revisión de uno de ellos (pero no ambos al mismo tiempo) sin que afecte a la disponibilidad de NFS o iSCSI servido por el clúster. Todavía no es una solución compatible, pero al menos permiten una cierta flexibilidad en el mantenimiento en el costo de aumento de los recursos de la cabeza (principalmente, sin embargo la cantidad de memoria que le dan a la segunda de almacenamiento VM) para el almacenamiento.

Si el cambio de la arquitectura es totalmente inaceptable, entonces la opción más segura sería la de apagar las máquinas virtuales.

La siguiente mejor solución sería habilitar la hibernación en sus máquinas virtuales. La hibernación sería el de asegurar que todos los sistemas de archivos en modo inactivo, ayudando a evitar un posible caso de corrupción.

Siguiente, usted puede tomar una instantánea de la máquina virtual con el estado de la memoria, forzar la finalización de la máquina virtual de proceso, a continuación, volver a la instantánea cuando se hace. Esto supone una pequeña ventana de la posibilidad de pérdida de datos, pero estoy seguro de que nunca iba a probar esta fuera de una ventana de mantenimiento, donde cualquier pérdida de datos, sería inaceptable, por lo que este debe ser bastante intrascendente. Esta solución es tan rápida como hacer una instantánea, asegura VMs no se quejan por la pérdida de los discos, pero no incurrir en posibles pérdidas de datos.

Por último, si desea detener los procesos (y lo he probado de que en realidad hace el trabajo), entonces me gustaría sugerir fuertemente que la sincronización de todos los discos en el huésped primero (en Linux, esto se haría con /bin/sync. La utilidad proporcionada por SysInternals para Windows: http://technet.microsoft.com/en-us/sysinternals/bb897438.aspx), y realizar su mantenimiento de forma rápida para relojes de no ponerse demasiado hacia atrás.

Como para los posibles efectos secundarios, cualquier ANUNCIO conectado la máquina debe ser (por defecto) a 5 minutos de la DC. Por lo tanto, después de cualquier solución en la que la máquina virtual no está continuamente disponible, salvo un apagado normal, yo sugeriría que la fuerza de la reanudación de la huésped para actualizar su reloj. En servidores de base de datos, no hacen estas cosas cuando el servidor está ocupado, ya que aumenta las posibilidades de corrupción del sistema de ficheros.

El principal riesgo en todos los de las opciones más allá de un apagado normal o alta disponibilidad de almacenamiento es el de la corrupción. No podrían ser algunos de e/S en un búfer que se cayó que la aplicación puede pensar, equivocadamente, se ha completado con éxito. Peor aún, las e/s puede haber sido re-ordenada por una capa inferior para una mejor escritura patrón. Esto podría permitir que los datos han sido parcialmente escrito fuera de orden. Tal vez el recuento de filas se incrementa antes de una DB de la fila de datos fue escrito, o una suma de comprobación actualizado antes de que el checksummed de datos se cambia físicamente. Esto puede ser mitigado por la que sólo permite sincrónico escribe a su almacenamiento, pero a costa del rendimiento.

5voto

Some French Guy Puntos 96
  1. Cuál es el método preferible, o son igual de bueno/malo?

Ninguno de los dos.

Este es el costo de un diseño terrible, yo no haría esta situación peor por hacer nada mas que apagar sus máquinas virtuales, trabajando en el almacenamiento de la VM, a continuación, reiniciar el otro VMs. También me gustaría conseguir a alguien para el rediseño de su instalación mediante un admitidos/compatible de la arquitectura.

  1. ¿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.?

Es inherentemente impredecible, lo que podría suceder en este tiempo no puede suceder si usted hizo esta vez. Es insoportable.

  1. Donde uno debe de tener cuidado? Un comentario en el blog menciona cronometraje pueden surgir problemas cuando la CPU está congelada, por ejemplo.

Es difícil responder a esta de manera constructiva.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: