        |
MetrosunXX en Linux
Friday, 10 June 2005, 4:47:06 pm
Creado el maestro con el procedimiento de abajo Falta meter en el maestro los programas que lo distinguen de database (tanto lo de TCE como los programas compilados con Pro*C).
Descripción del proyecto
He creado una copia de database con el siguiente procedimiento (es un poco largo, pero no se tarda demasiado en hacer --por otro lado espero no equivocarme en nada en esta descripción ya que la estoy escribiendo de memoria):
- Se pone un disco duro virgen en hda y la cederromera en hdc
- Se arranca desde el "Debian GNU/Linux 3.1 Sarge Netinst CD (rc3)"
- Se aceptan las opciones de idioma, teclado y se le pone al pc una dirección IP (en mi caso le he puesto IP: 3.0.1.171 Gateway: 3.0.1.51 DNS: 3.0.1.51 hostname: metrosunXX domainname: metro.local
- Te vas a la consola 2 (Alt+F2) y pulsas ENTER para activarla
- Particionas el disco con un fdisk. Las particiones que he puesto son las siguientes (disco duro de 120GB):
hda1: /boot (50MB) hda2: extended (todo el resto del HDD; lo que hace por defecto) hda5: swap (2G) hda6: / (8GB) hda7: /u01 (5GB) hda8: /u02 (20GB) hda9: /u03 (20GB) hda10 /u04 (20GB) hda11: /u05 (20GB) hda12: /u06 (22GB) |
- Marcas la partición hda1 como bootable.
- Pones a todas las particiones el tipo fd (Linux RAID). NOTA: La hda2 no tiene tipo, ya que es una partición extended que solo está para contener otras particiones.
- Haces enlaces desde los dispositivos udev a los nombres "clasicos":
# cd /dev # for i in 1 2 3 4 5 6 7 8 9 10 11 12 ; do ln -s /dev/discs/disc0/part$i /dev/hda$i ; done # ln -s /dev/discs/disc0/disc /dev/hda
- Tenemos que conseguir que cargue los módulos de RAID. La única manera que sé de hacerlo bien es forzando a que el instalador lo haga por nosotros. Para eso, vuelves al instalador de debian (alt-f1) y le das a particionar manualmente
- Allí le dices RAID
- Entonces le das a sí y a crear un nuevo volumen.
- Eliges RAID-1, y le aceptas los valores por defecto de 2 discos y 0 spares.
- Entonces seleccionas solo la partición part1 y le das a ok
- Le dices que has terminado de particionar
- Ya tenemos hecha una partición RAID, lo que significa que están cargados todos los módulos necesarios. Vuelves a la consola (alt-F2)
- Creamos los dispositivos "antiguos" de raid (lo necesitamos para que luego todo funcione):
# cd /dev/md ; for i in * ; do ln -s /dev/md/$i /dev/md$i ; done
- Deshacemos la partición raid que había creado el instalador de debian (en el siguiente punto la crearemos "a nuestra manera").
# mdadm --stop /dev/md0 # mdadm --zero-superblock /dev/hda1
- Ahora creamos los dispositivos raid "a nuestra manera" (lo que queremos es que los nombres de los dispositivos md se correspondan con los de las particiones del disco duro, que es mucho más fácil de mantener después):
# for i in 1 5 6 7 8 9 10 11 12 ; do mdadm --create /dev/md$i --level=1 --raid-disks=2 /dev/hda$i missing ; done
- Formateamos las particiones ext3:
# for i in 1 6 7 8 9 10 11 12 ; do mkfs.ext3 /dev/md$i ; done
- Preparamos la partición de swap:
# mkswap -v1 /dev/md5
- Montamos todo para prepararnos a copiar database en este PC:
# cd /tmp # mkdir dest # mount -t ext3 /dev/md6 /tmp/dest # cd dest # mkdir boot # mount -t ext3 /dev/md1 /tmp/dest/boot # for i in 1 2 3 4 5 6 ; do mkdir /tmp/dest/u0$i ; mount -t ext3 /dev/md$(($i+6) /tmp/dest/u0$i ; done
- Obtenemos los programas que vamos a necesitar para poder hacer la copia
# cd /tmp/dest # wget ftp://metro:laclave@3.0.1.124/bin/gzip # wget ftp://metro:laclave@3.0.1.124/bin/tar # wget ftp://metro:laclave@3.0.1.124/bin/nc # chmod 755 tar gzip nc
- Ponemos a metrosunXX a esperar los datos:
# cd /tmp/dest # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. # PATH=$PATH:. # nc -l -p 10000 | tar -xvzpf -
- En database iniciamos el volcado de datos:
database # cd / database# mount -o remount,rw /boot database# tar -cvpf - . | gzip -1 | ./socket-upipe-client 3.0.1.171 10000
- Esperamos a que temine de copiar (tarda bastante, pero debería der menos de 1 hora...).
- En metrosunXX salimos y volvemos a activar la consola (pata quitar va variable de entorno de LD_LIBRARY_PATH):
# exit Press enter to activate this console.[ENTER]
- Entramos con un chroot al nuevo hdd
# cd /tmp # chroot dest
- Modificamos el /etc/network/interfaces y ponemos la ip que le queremos dar al PC (en mi caso, 3.0.1.171)
# vi /etc/network//interfaces
- Modificamos el /etc/fstab para que use los sistemas de archivos como ext3 (más seguro que ext2).
- Modificamos el lilo.conf para que no proteste por no tener segundo disco duro:
En el /etc/lilo.conf cambiamos la línea raid-extra-boot=/dev/hda,/dev/hdc Por la línea raid-extra-boot=/dev/hda
- Ejecutamos el lilo:
# lilo
- Volvemos a poner bien el lilo.conf
En el /etc/lilo.conf cambiamos la línea raid-extra-boot=/dev/hda Por la línea raid-extra-boot=/dev/hda,/dev/hdc
- Salimos del entorno chroot
# exit
- Desmontamos los dispositivos:
# for j in 1 2 ; do for i in `df | grep dest | cut -c 57-` ; do umount $i ; done ; done
- Reiniciamos pulsando Control+Alt+Suprim y lo apagamos cuando está haciendo los chequeos de la BIOS.
- Quitamos el CD-ROM
- Añadimos el segundo disco duro (hdc)
- Arrancamos
- Entramos cono root
- Copiamos la tabla de partición del primer disco al segundo
# sfdisk -d /dev/hda | sfdisk /dev/hdc
- Añadimos las nuevas particiones al RAID
# for i in 1 5 6 7 8 9 10 11 12 ; do mdadm --add /dev/md$i /dev/hda$i ; done
- Ejecutamos el lilo para que ponga el arranque en el segundo HDD:
# lilo
- Esperamos a que termine de sincronizar los discos (esto hay que hacerlo en un terminal bastante grande, usa un xterm y escribe en el un resize antes de ejecutar este comando):
# watch /proc/mdstat
- Una vez que ha terminado de sincronizar, sal con un Control+C
- Ya puedes apagar el ordenador con un
# shutdown -h now.
|