miércoles, 9 de enero de 2008

Clonado Ubuntu vía SSH

El problema era clonar el Ubuntu 7.10 que tenía funcionando en una máquina Virtual PC hacia el disco de 650 GB de mi nuevo servidor Linux. No fue buena idea, al parecer el disco virtual de tamaño dinámico no se llevaba bien con la estructura del disco de 650 GB, parece que había un problema de emulación SCSI vs. IDE/PATA.

En la práctica esto significó que aunque el disco se clonó, el Linux copiado en el server tuvo muchos problemas del tipo "segmentation faults" que hicieron al sistema clonado inoperante. Peor todavía, al tratar de instalar el gOS que venía con la motherboard, manteniendo el disco clonado en otra partición, comenzaron a aparecer problemas de hardware, congelamiento, errores I/O etc. La única forma de solucionarlo fué haciendo una partición que ocupa todos los 650 GB del disco duro, total, eso más tarde se puede modificar.

En todo caso el procedimientoes de clonar por ssh es el mismo que se usa para hacer backup remoto de servidores, así es que lo describiré porque puede servir para otras cosas.

En el laptop IPCLENOVO tengo Windows XP y varios Linux en máquina virtual, entre ellos el Ubuntu 7.10. Para arrancar el server usé un live CD con trinity-rescue-kit.3.3-build-306.iso, una vez arrancado hice ifconfig para ver la IP de ese equipo (192.168.1.103), luego arranqué el Ubuntu 7.10 desde Virtual PC y con ifconfig también anoté la IP (192.168.1.109) luego hice ping para ver sis se conectaban sin problemas cosa que ocurrió.

Luego volvi a arrancar Trinity en el server, pero esta vez con la opción SSH server habilitada. En el Ubntu 7.10 de Virtual PC instalé el meta-paquete ssh. Luego me fuí a Windows en el laptop y usando Putty abrí sesiones ssh para 192.168.1.103 (server con Trinity) y a 192.168.1.109 (para Ubuntu 7.10 VPC)). Ingresadas estas sesiones y autentificado, seguí el procedimiento indicado en este link, para hacer la transferencia. Fundamentalmente consiste en:

nc -l -p 9000 | dd of=/dev/hda en el sistema con Trinity

Luego en la sesión de Ubuntu Virtual PC

sudo bash
dd if=/dev/sda | nc 192.168.1.103 9000

Aparentemente no ocurre nada, exepto que los prompts desaparecen de ambas sesiones, pero la actividad de los discos duros muestra que se está haciendo la transferencia de los 16 GB desde el Ubuntu Virtual PC hacia el server con Trinity, después de casi una hora, esta transferencia se completa. Los conceptos clave en este caso son: la transferencia por cables de la red local usando ssh (ambos equipos van conectados por cable al router), el esquema amo-esclavo de conexión y el comando dd para clonar un disco.

2 comentarios:

Andres Hernando dijo...

Clonar discos con distintas geometrias (especialmente cuando uno es virtual) suena a particularmente complicado para lo que quieres hacer... onofre?

Siempre hay cientos de formas de despellejar el minino, pero yo, para hacer backup de mis servidores y archivos de tesis y trabajo sobre ssh uso rsync, lo bueno es que el mismo script me sirve para hacer backup de lo que tengo en la LAN (computadores y laptop, incluyendo los Windows de mi mujer) a disco externo y de lo que mantengo en los servidores para analisis numerico de Harvard... En definitiva, mientras sea por IP y SSH, rsync lo hace sin problemas. Ademas es backup incremental asi que solo copia lo que ha cambiado entre el directorio origen y el destino... simple, bonito y eficiente.

Saludos,
AHG.

Tomas Bradanovic dijo...

ía bien complicado, especialmente cuando me dijeron que empezara a editar los nombres de los sistemas de archivos en las configuraciones, ahi pensé que la cosa venía peluda y probablemente no iba a funcionar, pero que diablos.

Rsync suena bien, claro que los tipos tienn sus propios script ya hechos y quien sabe por que esotéricas razones que prefiero no averiguar.

Cuida tu tesis logo, mira que sin querer te mandé los potentes malos deseos de los bradanovic por las news, saca doble respaldo por si las moscas.