Cómo migrar volúmenes entre clústeres de DreamCompute

Generalidades

DreamCompute ofrece múltiples clústeres (también llamados a menudo zonas de disponibilidad) que son instalaciones independientes de OpenStack con sus propios servidores, almacenamiento y panel de control. Algunos clústeres tienen características diferentes, como el almacenamiento SSD que es útil para un plan de almacenamiento de datos determinado. La migración de datos entre clústeres no está automatizada en este momento, pero esta guía te mostrará cómo lograrlo tú mismo.

Esta guía asume que te sientes cómodo trabajando con SSH también como con utilidades de líneas de comando como dd y el CLI de OpenStack. Para más información sobre esas utilidades, mira los artículos de abajo.

Cosas a tener en cuenta

Aquí hay un par de cosas a tener en cuenta y planees durante la migración.

Sólo Volúmenes

Esta guía se centra únicamente en la migración de volúmenes, lo que es útil si tienes varios volúmenes adjuntos a una sola instancia y deseas mantener ese esquema de almacenamiento en el nuevo clúster. Ten en cuenta que este método no funciona con almacenamiento efímero y está diseñado solo para la copia de volumen a volumen. Si deseas mover instancias, consulta el artículo a continuación.

Planea una ventana de mantenimiento

Para evitar la corrupción u otro comportamiento extraño, es más seguro mover los datos cuando el volumen no tiene servicios en ejecución o archivos abiertos. La copia de los datos suele ser bastante rápida para volúmenes más pequeños, pero para volúmenes más grandes puede llevar algún tiempo. Recuerda, la copia debe completarse antes de que se pueda restaurar el servicio.

Migrar un Volumen usando SSH y dd

Para este tipo de movimiento, se supone que has detenido todos los servicios que utilizan los datos del volumen, has desmontado de forma segura cualquier partición en la instancia que lo usa y lo ha separado de la instancia en el menú Volúmenes del panel.

Como una descripción general, lo siguiente sera configurado para completar esta tarea.

   CLÚSTER FUENTE      CLÚSTER DE DESTINO

 +---------------+     +---------------+
 | Temp Instance |---->| Temp Instance |
 +---------------+     +---------------+
         |(mount)              |(mount)
+----------------+      +--------------+
| Volume To Copy |      |  New Volume  |
+----------------+      +--------------+

Proceso de migración

  1. Crea dos nuevas instancias de "fotocopiadora" (una en cada grupo de origen y de destino), utilizando la versión más pequeña disponible. Esta guía usa comandos de Ubuntu. También se recomienda que las instancias sean efímeras, ya que no serán necesarias una vez que se complete la migración.

    Para simplificar, las dos instancias temporales se conectarán mediante contraseñas en lugar de claves SSH, pero puedes hacerlo de la forma que prefieras. Para configurar las instancias para la autenticación de contraseña, actívala con los siguientes comandos.
    [user@instance]$ sudo -i
    [root@instance]# sed -i -e 's/PasswordAuthentication no/PasswordAuthentication yes/' \
                   /etc/ssh/sshd_config
    [root@instance]# sed -i -e 's/PermitRootLogin without-password/PermitRootLogin yes/' \
                   /etc/ssh/sshd_config
    [root@instance]# service ssh restart
    [root@instance]# passwd root
  2. Crea un volumen en el clúster de destino que sea del mismo tamaño (o mayor) que el volumen de origen.
  3. Adjunta el volumen de origen a la instancia temporal en el clúster de origen. Adjunta el volumen de destino a la instancia temporal en el clúster de destino. No es necesario montar ninguno de ellos.
  4. Determina la letra del disco de los volúmenes en ambas instancias. Generalmente /dev/vda sería el disco de inicio de tu instancia, entonces sería /dev/vdb o /dev/vdc. Una manera de verlo es con el comando fdisk:
    [root@instance]# fdisk -l /dev/vdb | grep Disk
    [root@instance]# fdisk -l /dev/vdc | grep Disk
    
  5. Usa el que coincide con el tamaño del volumen es el que se va a utilizar. Pueden tener diferentes letras de unidad en cada instancia, así que tome nota de eso.

    Ahora los datos pueden ser copiados usando dd y SSH. Para simplificar las cosas, inicia sesión en la instancia en el clúster de destino utilizando tu dirección IPv6. A continuación, en el siguiente comando, reemplaza IPV6-OF-SOURCE-INSTANCE con la dirección IPv6 de la instancia de origen, el primer /dev/vdX con la letra de unidad del volumen de origen y el segundo /dev/vdX con la letra de unidad del volumen de destino.
    [root@destinstance]# ssh root@IPV6-OF-SOURCE-INSTANCE \
                       "dd if=/dev/vdX | gzip -1 -" | gunzip - | dd of=/dev/vdX
    
    Una vez que se haya completado el comando, desconecta el volumen de destino de la instancia y verifica que tenga los datos que deseas al intentar iniciarlo o adjuntarlo a otra instancia. Si todo parece correcto, has terminado y puede destruir ambas instancias temporales.

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?