Buenas gente, les comento que estoy moviendo maquinas virtuales con Xen, que tengo instaladas en diferentes particiones de discos. estoy pudiendo moverlas en frio de un servidor a otro sin inconvenientes. Para ello uso el comando dd, lo que me permite crear un archivo de imagen a partir de una particion, moverlo, y despues clonar ese archivo en otra particion y poder levantar la maquina virtual. El problema que tengo, que no le he podido encontrar la vuelta, es cuando la particion de destino es mas grande que el archivo, como puedo hacer para que ese espacio de sobra quede como espacio libre en la nueva maquina virtual. Osea, supongamos tengo una maquina virtual sobre una partición de 30 Gigas, pero que dentro del equipo virtual tengo 10 ocupados, esta al generar la imagen con dd, me genera un archivo de 30 gigas, me gustaría que me genere un archivo de 10 gigas. y luego al copiarlo a otro servidor y con dd nuevamente clonar la imagen en una partición de 50 gigas, me gustaría que la maquina virtual levantada quedara con sus 10 gigas ocupados y 40 gigas libres. Se entiende lo que pretendo hacer?? no se si es posible, ya que no he encontrado mucha información, salu2 Carlitos
On Tue, Dec 30, 2008 at 8:36 AM, Carlos Moreira carlos.moreira@imcanelones.gub.uy wrote:
Buenas gente, les comento que estoy moviendo maquinas virtuales con Xen, que tengo instaladas en diferentes particiones de discos. estoy pudiendo moverlas en frio de un servidor a otro sin inconvenientes. Para ello uso el comando dd, lo que me permite crear un archivo de imagen a partir de una particion, moverlo, y despues clonar ese archivo en otra particion y poder levantar la maquina virtual. El problema que tengo, que no le he podido encontrar la vuelta, es cuando la particion de destino es mas grande que el archivo, como puedo hacer para que ese espacio de sobra quede como espacio libre en la nueva maquina virtual. Osea, supongamos tengo una maquina virtual sobre una partición de 30 Gigas, pero que dentro del equipo virtual tengo 10 ocupados, esta al generar la imagen con dd, me genera un archivo de 30 gigas, me gustaría que me genere un archivo de 10 gigas. y luego al copiarlo a otro servidor y con dd nuevamente clonar la imagen en una partición de 50 gigas, me gustaría que la maquina virtual levantada quedara con sus 10 gigas ocupados y 40 gigas libres. Se entiende lo que pretendo hacer?? no se si es posible, ya que no he encontrado mucha información, salu2 Carlitos
Con dd no resolverías el caso ya que éste te va a hacer una copia bloque a bloque; no vas a evitar que te copie bloques no utilizados por la MV (porque dd no sabe cuáles están usados y cuáles no) ni te va a modificar el tamaño de llegada sin destruir el sistema de archivos. Para poder hacer todas esas cosas que necesitas deberías trabajar a nivel de filesystem.
Se me ocurren dos maneras: una, agrandando el filesystem destino una vez que ha sido copiado (con resize2fs); la otra, copiando directamente los archivos sobre un filesystem preparado de antemano, y del tamaño deseado, que me parece más práctico.
Para esto último necesitarías primero hacer un filesystem en la partición destino (que por defecto va a resultar del tamaño máximo que quepa en la partición) y copiar los archivos de la MV sobre ese filesystem.
Una sugerencia para esto es utilizar rsync, que con ventaja sobre dd, va a copiar solamente los bloques del filesystem que estén utilizados. Otra sugerencia es evitar copiar contenidos de directorios que se generan solos, como /proc, /sys, /dev.
Con rsync no vas a poder copiar el espacio de swap (porque no es direccionable como un filesystem), así que no sé si esta técnica es compatible con el objetivo de migrar MVs "en caliente", es decir, sin interrumpir la operación de la MV, pero para esto hay técnicas aparte. Sí lo es si hablamos de migración "en frío" lo cual entiendo es tu objetivo. El espacio de swap entonces debería ser preparado en la máquina destino, y no haría falta copiarlo.
El procedimiento que te describo es para copiar directamente de partición a partición, pero si deseas crear un archivo conteniendo la imagen de la MV (para hacer backups, o porque te parece más seguro manipularlo así) también se puede hacer: creo un archivo del tamaño ocupado del filesystem de la MV, le hago filesystem, lo monto con la opción loop y copio la MV con rsync sobre ese directorio, con la misma idea que antes. Al desmontar, tengo un archivo con el filesystem copiado. Luego invierto el procedimiento hacia la máquina física destino. Esto tiene ventajas como poder hacer el backup sobre otro equipo (posiblemente en otro lugar, para prevención de desastres), elegir los archivos que se incluirán o no, etc.
Otra posibilidad, aún más económica en espacio, es simplemente crear un archivo tar.gz del filesystem de la MV. Esto tiene que ser óptimo porque solamente se copiarán los archivos, sin espacio extra. En cambio, en la opción con rsync, va a quedar sobredimensionado el archivo destino de la copia aunque sea por un poquito. La ventaja con rsync es que si haces la copia más de una vez (para rescatar estados diferentes de la MV) sobre el mismo archivo, rsync solamente copiará los archivos que hayan cambiado, así optimizas el tiempo de creación de esas imágenes.
Otra cosa a tener en cuenta es que el filesystem de la MV origen esté en estado consistente al momento de hacer la copia; una manera es haciendo la imagen mientras la MV está apagada; otra, es utilizar LVM en lugar de particiones crudas, sacar un snapshot (mientras la MV está funcionando, o no) y copiar el snapshot. LVM es tu amigo, en ciertos casos te va a permitir modificar dinámicamente el tamaño de los discos virtuales aun *sin apagar las MV*.
Eduardo Grosclaude wrote:
On Tue, Dec 30, 2008 at 8:36 AM, Carlos Moreira carlos.moreira@imcanelones.gub.uy wrote:
Buenas gente, les comento que estoy moviendo maquinas virtuales con Xen, que tengo instaladas en diferentes particiones de discos. estoy pudiendo moverlas en frio de un servidor a otro sin inconvenientes. Para ello uso el comando dd, lo que me permite crear un archivo de imagen a partir de una particion, moverlo, y despues clonar ese archivo en otra particion y poder levantar la maquina virtual. El problema que tengo, que no le he podido encontrar la vuelta, es cuando la particion de destino es mas
yo lo que hago es un star de todo el disco, y entonces abro ese star en el nuevo disco ... así da igual si es grande o peque... realmente me ha pasado un par de veces y el dd te deja el nuevo disco del tamaño del viejo y no le he hecho mucho swing a resolverlo, con star lo logro
saludos! epe
Ing. Ernesto Pérez Estévez escribió:
Eduardo Grosclaude wrote:
On Tue, Dec 30, 2008 at 8:36 AM, Carlos Moreira carlos.moreira@imcanelones.gub.uy wrote:
Buenas gente, les comento que estoy moviendo maquinas virtuales con Xen, que tengo instaladas en diferentes particiones de discos. estoy pudiendo moverlas en frio de un servidor a otro sin inconvenientes. Para ello uso el comando dd, lo que me permite crear un archivo de imagen a partir de una particion, moverlo, y despues clonar ese archivo en otra particion y poder levantar la maquina virtual. El problema que tengo, que no le he podido encontrar la vuelta, es cuando la particion de destino es mas
yo lo que hago es un star de todo el disco, y entonces abro ese star en el nuevo disco ... así da igual si es grande o peque... realmente me ha pasado un par de veces y el dd te deja el nuevo disco del tamaño del viejo y no le he hecho mucho swing a resolverlo, con star lo logro
saludos! epe
que es star?? sinceramente no lo conozco, y no lo tengo instalado por defecto.
CentOS-es mailing list CentOS-es@centos.org http://lists.centos.org/mailman/listinfo/centos-es
Carlos Moreira wrote:
yo lo que hago es un star de todo el disco, y entonces abro ese star en el nuevo disco ... así da igual si es grande o peque... realmente me ha pasado un par de veces y el dd te deja el nuevo disco del tamaño del viejo y no le he hecho mucho swing a resolverlo, con star lo logro
saludos! epe
que es star?? sinceramente no lo conozco, y no lo tengo instalado por defecto.
el star es un programa similar al tar pero más rápido y menos ocnsumidor de memoria. Si no le conoces, puedes usar el tar mientras tanto. saludos! epe