Ha surgido la necesidad de redimensionar las particiones de un servidor de oficina, cambiando bastante el esquema de particiones. Disponemos de un segundo disco duro, así que lo utilizaremos como plantilla, copiaremos los datos del disco viejo al nuevo y de paso montaremos un RAID en espejo (RAID 1). Al acabar deberíamos tener ambos discos duros con la nueva distribución de particiones, con RAID activado y sin haber perdido ningún dato.
De los dos discos del sistema, /dev/sda es el disco duro actual que está funcionando ya en el equipo, y /dev/sdb es el disco duro nuevo al que queremos mover el sistema. Lo ideal es que ambos discos duros tengan el mismo tamaño para un montaje en espejo, o por lo menos, que las particiones que queramos espejar quepan en ambos discos (se pueden dejar particiones fuera del RAID, lo veremos ahora). El procedimiento es casi idéntico utilicemos RAID o no, pero ya puestos, vamos con todo. 🙂
Antes de empezar, haced un backup de todo lo importante que haya en ese equipo. No debería ser necesario, pero es mejor no correr riesgos innecesarios.
Este es el sistema actual antes de empezar, tiene un LVM configurado que no se necesita:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
root@oficina:~# df -h S.ficheros Tamaño Usados Disp Uso% Montado en rootfs 322M 120M 186M 40% / udev 10M 0 10M 0% /dev tmpfs 89M 556K 88M 1% /run /dev/mapper/espejo-root 322M 120M 186M 40% / tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 177M 0 177M 0% /run/shm /dev/sda1 228M 12M 204M 6% /boot /dev/mapper/espejo-home 446G 218G 206G 52% /home /dev/mapper/espejo-tmp 368M 11M 339M 3% /tmp /dev/mapper/espejo-usr 8,3G 7,4G 464M 95% /usr /dev/mapper/espejo-var 2,8G 1,6G 1,2G 58% /var root@oficina:~#root@oficina:~# fdisk -l /dev/sda Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, 976773168 sectores en total Units = sectores of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x000317f3 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 2048 499711 248832 83 Linux /dev/sda2 501758 976771071 488134657 5 Extendida /dev/sda5 501760 976771071 488134656 8e Linux LVM root@oficina:~# fdisk -l /dev/sdb Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, 976773168 sectores en total Units = sectores of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x00000000 El disco /dev/sdb no contiene una tabla de particiones válida root@oficina:~# |
El siguiente paso es crear en el disco nuevo /dev/sdb las particiones a nuestro gusto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
root@oficina:~# fdisk -l /dev/sdb Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, 976773168 sectores en total Units = sectores of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x00000000 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 * 63 996029 497983+ fd Linux raid autodetect /dev/sdb2 996030 2988089 996030 fd Linux raid autodetect /dev/sdb3 2988090 43054199 20033055 fd Linux raid autodetect /dev/sdb4 43054200 976773167 466859484 fd Linux raid autodetect root@oficina:~# |
No es obligatorio marcar el tipo de las particiones como Linux raid autodetect (código FD en el tipo de partición) pero lo veo recomendable para ser conscientes, y tomar las medidas pertinentes, si alguno de estos discos duros son utilizados en otro equipo con posterioridad.
/dev/sdb1 será la partición /boot configurada como RAID 1 (espejo)
/dev/sdb2 será una partición usada como SWAP, no configuraremos ningún RAID en ella por ahora, posteriormente añadiremos un RAID 0 para mejorar el rendimiento (será /dev/md/swap).
/dev/sdb3 será la partición / configurada como RAID 1
/dev/sdb4 será la partición /home configurada como RAID 1
Ahora montamos el RAID, esto hará que aparezcan unos dispositivos por cada partición controlada mediante RAID, y son los que utilizaremos en lugar de /dev/sda1 o /dev/sda2 a la hora de trabajar con los discos duros (en el fstab por ejemplo):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
root@oficina:~# apt-get install mdadm Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho mdadm ya está en su versión más reciente. 0 actualizados, 0 se instalarán, 0 para eliminar y 0 no actualizados. root@oficina:~# mdadm --create boot --name=boot --homehost="<none>" --level=1 --raid-devices=2 missing /dev/sdb1 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? yes mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/boot started. root@oficina:~# mdadm --create root --name=root --homehost="<none>" --level=1 --raid-devices=2 missing /dev/sdb3 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? yes mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/root started. root@oficina:~# mdadm --create home --name=home --homehost="<none>" --level=1 --raid-devices=2 missing /dev/sdb4 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? yes mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/home started. root@oficina:~# ls -la /dev/md total 0 drwxr-xr-x 2 root root 100 oct 22 20:36 . drwxr-xr-x 15 root root 3360 oct 22 20:36 .. lrwxrwxrwx 1 root root 8 oct 22 20:31 boot -> ../md127 lrwxrwxrwx 1 root root 8 oct 22 20:36 home -> ../md125 lrwxrwxrwx 1 root root 8 oct 22 20:35 root -> ../md126 root@oficina:~# |
Lo que hacemos es crear los volúmenes únicamente con las particiones del disco sdb, el disco sda lo añadiremos una vez que el sistema consiga arrancar desde el RAID (por eso indicamos ahora que está missing). Cuando incluyamos el disco sda en el RAID, se borrará por completo y se clonará a partir del disco duro que estamos configurando.
El parámetro name indica la etiqueta que tendrá, muy útil porque sino será algo como md0. El otro parámetro homehost indica el nombre del servidor, en nuestro caso no queremos que lo coloque, por eso le indicamos <none>, es útil cuando se mueven discos duros físicamente entre servidores.
Ahora toca formatear las particiones:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
root@oficina:~# mkfs.ext4 -m 0 -L BOOT /dev/md/boot mke2fs 1.42.5 (29-Jul-2012) Etiqueta del sistema de ficheros=BOOT OS type: Linux Tamaño del bloque=1024 (bitácora=0) Tamaño del fragmento=1024 (bitácora=0) Stride=0 blocks, Stripe width=0 blocks 124440 inodes, 497664 blocks 0 blocks (0.00%) reserved for the super user Primer bloque de datos=1 Número máximo de bloques del sistema de ficheros=67633152 61 bloque de grupos 8192 bloques por grupo, 8192 fragmentos por grupo 2040 nodos-i por grupo Respaldo del superbloque guardado en los bloques: 8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409 Allocating group tables: hecho Escribiendo las tablas de nodos-i: hecho Creating journal (8192 blocks): hecho Escribiendo superbloques y la información contable del sistema de ficheros: 0/6hecho root@oficina:~# mkswap /dev/sdb2 Setting up swapspace version 1, size = 996024 KiB no label, UUID=ec3df6d1-1774-4606-8c46-72e02e5d7737 root@oficina:~# mkfs.ext4 -m 0 -L ROOT /dev/md/root mke2fs 1.42.5 (29-Jul-2012) Etiqueta del sistema de ficheros=ROOT OS type: Linux Tamaño del bloque=4096 (bitácora=2) Tamaño del fragmento=4096 (bitácora=2) Stride=0 blocks, Stripe width=0 blocks 1253376 inodes, 5004144 blocks 0 blocks (0.00%) reserved for the super user Primer bloque de datos=0 Número máximo de bloques del sistema de ficheros=0 153 bloque de grupos 32768 bloques por grupo, 32768 fragmentos por grupo 8192 nodos-i por grupo Respaldo del superbloque guardado en los bloques: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: hecho Escribiendo las tablas de nodos-i: hecho Creating journal (32768 blocks): hecho Escribiendo superbloques y la información contable del sistema de ficheros: 0/hecho root@oficina:~# |
La opción -m 0 hace que se reserven un 0% de los bloques del sistema de archivos (generalmente se reserva un cierto porcentaje para evitar colapsos si se llena mucho, pero por experiencia propia tengo llegado a 0 bytes libres y todo sigue funcionando :D), y el parámetro -L XXXX establece una etiqueta.
Tuve un problema extraño con el disco duro al formatear la partición home, por alguna razón, tras dos horas generando el sistema de archivos, mostró este mensaje y el disco duro mostraba errores en dmesg:
ext2fs_mkdir: Attempt to read block from filesystem resulted in short read
smartctl -i /dev/sdb
Tras reiniciar, procedí a volver a generar el sistema de archivos y parece que funcionó:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
root@oficina:~# mkfs.ext4 -m 0 -L HOME /dev/md/home mke2fs 1.42.5 (29-Jul-2012) Etiqueta del sistema de ficheros=HOME OS type: Linux Tamaño del bloque=4096 (bitácora=2) Tamaño del fragmento=4096 (bitácora=2) Stride=0 blocks, Stripe width=0 blocks 29171712 inodes, 116682064 blocks 0 blocks (0.00%) reserved for the super user Primer bloque de datos=0 Número máximo de bloques del sistema de ficheros=0 3561 bloque de grupos 32768 bloques por grupo, 32768 fragmentos por grupo 8192 nodos-i por grupo Respaldo del superbloque guardado en los bloques: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000 Allocating group tables: hecho Escribiendo las tablas de nodos-i: hecho Creating journal (32768 blocks): hecho Escribiendo superbloques y la información contable del sistema de ficheros: hecho root@oficina:~# |
Ahora toca copiar los datos:
1 2 3 4 5 6 7 8 9 10 |
root@oficina:~# mount | grep \/dev udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=112460,mode=755) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) /dev/mapper/espejo-root on / type ext3 (rw,relatime,errors=remount-ro,barrier=1,data=ordered) /dev/sda1 on /boot type ext2 (rw,relatime,errors=continue) /dev/mapper/espejo-home on /home type ext3 (rw,relatime,errors=continue,barrier=1,data=ordered) /dev/mapper/espejo-tmp on /tmp type ext3 (rw,relatime,errors=continue,barrier=1,data=ordered) /dev/mapper/espejo-usr on /usr type ext3 (rw,relatime,errors=continue,barrier=1,data=ordered) /dev/mapper/espejo-var on /var type ext3 (rw,relatime,errors=continue,barrier=1,data=ordered) root@oficina:~# |
/dev/sda1 lo copiaremos en /dev/md/boot
/dev/mapper/espejo-root lo copiaremos en /dev/md/root
/dev/mapper/var lo copiaremos dentro de /dev/md/root en la carpeta var que existirá después de copiar el espejo-root
/dev/mapper/usr lo copiaremos dentro de /dev/md/root en la carpeta usr que existirá después de copiar el espejo-root
/dev/mapper/espejo-tmp no lo copiaremos, son sólo archivos temporales.
/dev/mapper/espejo-home lo copiaremos en /dev/md/home
Vamos a ello, montamos las unidades RAID y transferimos los ficheros:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
root@oficina:~# mkdir /mnt/root root@oficina:~# mkdir /mnt/boot root@oficina:~# mkdir /mnt/home root@oficina:~# mount /dev/md/root /mnt/root/ root@oficina:~# mount /dev/md/boot /mnt/boot/ root@oficina:~# mount /dev/md/home /mnt/home/ root@oficina:~# cp -xaRP /boot/* /mnt/boot/ root@oficina:~# rsync -auxHAX --exclude=/proc/* --exclude=/sys/* --exclude=/tmp/* / /mnt/root root@oficina:~# cp -xaRP /var/* /mnt/root/var/ root@oficina:~# cp -xaRP /usr/* /mnt/root/usr/ root@oficina:~# cp -xaRP /home/* /mnt/home/ root@oficina:~# mount -o bind /dev/ /mnt/root/dev/ root@oficina:~# mount -o bind /proc/ /mnt/root/proc/ root@oficina:~# mount -o bind /sys/ /mnt/root/sys/ root@oficina:~# umount /mnt/boot/ root@oficina:~# chroot /mnt/root/ |
Ya está todo copiado, vamos a configurar el equipo para que pueda arrancar desde el RAID:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
root@oficina:/# mount /dev/md/boot /boot/ root@oficina:/# vi /etc/fstab # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/md/root / ext4 errors=remount-ro 0 1 /dev/md/boot /boot ext4 defaults 0 2 /dev/md/home /home ext4 defaults 0 2 #/dev/mapper/espejo-swap_1 none swap sw 0 0 root@oficina:/# /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf root@oficina:/# update-initramfs -k all -u update-initramfs: Generating /boot/initrd.img-4.1.3-devel root@oficina:/# grub-install --recheck /dev/sdb Installation finished. No error reported. root@oficina:/# update-grub Generating grub.cfg ... Found linux image: /boot/vmlinuz-4.1.3-devel Found initrd image: /boot/initrd.img-4.1.3-devel done root@oficina:/# |
Parece que todo fue bien, pero tenemos que comprobarlo. Revisamos el fichero grub.cfg, tiene que cargar los módulos raid y mdraid1x. Además de eso, los identificadores de las particiones deberían ser los de las particiones RAID:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
root@oficina:/# vi /boot/grub/grub.cfg ... ### BEGIN /etc/grub.d/10_linux ### menuentry 'Debian GNU/Linux, with Linux 4.1.3-devel' --class debian --class gnu-linux --class gnu --class os { load_video insmod gzio insmod raid insmod mdraid1x insmod part_msdos insmod ext2 set root='(mduuid/a88ec28f7b0f29d73baa2ebb96f1f2aa)' search --no-floppy --fs-uuid --set=root 871c9c73-47f5-4497-bd37-d123b04b9db5 echo 'Loading Linux 4.1.3-devel ...' linux /vmlinuz-4.1.3-devel root=UUID=addeade3-fda8-4927-8e84-1749ec9d96d9 ro quiet echo 'Loading initial ramdisk ...' initrd /initrd.img-4.1.3-devel } ... root@oficina:/# blkid /dev/md/root /dev/md/root: LABEL="ROOT" UUID="addeade3-fda8-4927-8e84-1749ec9d96d9" TYPE="ext4" root@oficina:/# blkid /dev/md/boot /dev/md/boot: LABEL="BOOT" UUID="871c9c73-47f5-4497-bd37-d123b04b9db5" TYPE="ext4" root@oficina:/# |
Todo correcto. Si no funcionase, podéis colocar ese texto (menuentry { … }) en el archivo /etc/grub/40_custom y volver a ejecutar update-grub.
Ahora mismo tenemos un disco duro configurado para arrancar sin RAID, y el otro configurado para arrancar con RAID. Reiniciamos el equipo y o bien entramos en la BIOS para cambiar el orden de arranque de los discos duros, o bien intercambiamos físicamente los cables SATA. Yo he optado por intercambiar los cables (¡Ojo! ahora /dev/sda será el RAID bueno y /dev/sdb será el disco antiguo que sobreescribiremos). Si todo va bien deberíais ver esto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
root@oficina:~# df -h S.ficheros Tamaño Usados Disp Uso% Montado en rootfs 19G 11G 8,2G 57% / udev 10M 0 10M 0% /dev tmpfs 89M 628K 88M 1% /run /dev/disk/by-uuid/addeade3-fda8-4927-8e84-1749ec9d96d9 19G 11G 8,2G 57% / tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 177M 0 177M 0% /run/shm /dev/md127 463M 23M 437M 5% /boot /dev/md125 438G 217G 222G 50% /home root@oficina:~# ls -la /dev/disk/by-uuid/ | grep md lrwxrwxrwx 1 root root 11 jul 22 19:01 1697cc5b-d157-4b80-9422-597c38519d40 -> ../../md125 lrwxrwxrwx 1 root root 11 jul 22 19:01 871c9c73-47f5-4497-bd37-d123b04b9db5 -> ../../md127 lrwxrwxrwx 1 root root 11 jul 22 19:01 addeade3-fda8-4927-8e84-1749ec9d96d9 -> ../../md126 root@oficina:~# ls -la /dev/md/ total 0 drwxr-xr-x 2 root root 100 jul 22 19:01 . drwxr-xr-x 15 root root 3520 jul 22 19:01 .. lrwxrwxrwx 1 root root 8 jul 22 19:01 boot -> ../md127 lrwxrwxrwx 1 root root 8 jul 22 19:01 home -> ../md125 lrwxrwxrwx 1 root root 8 jul 22 19:01 root -> ../md126 root@oficina:~# cat /proc/mdstat Personalities : [raid1] md125 : active raid1 sda4[1] 466728256 blocks super 1.2 [2/1] [_U] md126 : active raid1 sda3[1] 20016576 blocks super 1.2 [2/1] [_U] md127 : active raid1 sda1[1] 497664 blocks super 1.2 [2/1] [_U] unused devices: <none> root@oficina:~# fdisk -l /dev/sda Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, 976773168 sectores en total Units = sectores of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x00000000 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sda1 * 63 996029 497983+ fd Linux raid autodetect /dev/sda2 996030 2988089 996030 fd Linux raid autodetect /dev/sda3 2988090 43054199 20033055 fd Linux raid autodetect /dev/sda4 43054200 976773167 466859484 fd Linux raid autodetect root@oficina:~# fdisk -l /dev/sdb Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, 976773168 sectores en total Units = sectores of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x000317f3 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 * 2048 499711 248832 83 Linux /dev/sdb2 501758 976771071 488134657 5 Extendida /dev/sdb5 501760 976771071 488134656 8e Linux LVM root@oficina:~# |
Ahora tenemos que borrar el disco duro antiguo e integrarlo en el RAID, para ello, copiamos la tabla de particiones desde el disco nuevo al viejo, reiniciamos para que el kernel redetecte todo bien y lo añadimos al array:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
root@oficina:~# dd if=/dev/sda of=/dev/sdb bs=512 count=1 1+0 registros leídos 1+0 registros escritos 512 bytes (512 B) copiados, 0,000153029 s, 3,3 MB/s root@oficina:~# fdisk -l /dev/sdb Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders, 976773168 sectores en total Units = sectores of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Identificador del disco: 0x00000000 Disposit. Inicio Comienzo Fin Bloques Id Sistema /dev/sdb1 * 63 996029 497983+ fd Linux raid autodetect /dev/sdb2 996030 2988089 996030 fd Linux raid autodetect /dev/sdb3 2988090 43054199 20033055 fd Linux raid autodetect /dev/sdb4 43054200 976773167 466859484 fd Linux raid autodetect root@oficina:~# reboot ... root@oficina:~# mdadm /dev/md/boot -a /dev/sdb1 mdadm: added /dev/sdb1 root@oficina:~# mdadm /dev/md/root -a /dev/sdb3 mdadm: added /dev/sdb3 root@oficina:~# mdadm /dev/md/home -a /dev/sdb4 mdadm: added /dev/sdb4 root@oficina:~# |
Podéis ver como avanza la sincronización con los siguientes comandos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
root@oficina:~# cat /proc/mdstat Personalities : [raid1] md125 : active raid1 sdb4[2] sda4[1] 466728256 blocks super 1.2 [2/1] [_U] resync=DELAYED md126 : active raid1 sdb3[2] sda3[1] 20016576 blocks super 1.2 [2/1] [_U] [==========>..........] recovery = 51.8% (10377088/20016576) finish=4.1min speed=38823K/sec md127 : active raid1 sdb1[2] sda1[1] 497664 blocks super 1.2 [2/2] [UU] unused devices: <none> root@oficina:~# mdadm --detail /dev/md/home /dev/md/home: Version : 1.2 Creation Time : Wed Jul 22 20:36:26 2015 Raid Level : raid1 Array Size : 466728256 (445.11 GiB 477.93 GB) Used Dev Size : 466728256 (445.11 GiB 477.93 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Jul 22 19:14:16 2015 State : clean, degraded, resyncing (DELAYED) Active Devices : 1 Working Devices : 2 Failed Devices : 0 Spare Devices : 1 Name : home UUID : 6d19ec6c:1498b05d:aa842f0a:f4ade329 Events : 3470 Number Major Minor RaidDevice State 2 8 20 0 spare rebuilding /dev/sdb4 1 8 4 1 active sync /dev/sda4 root@oficina:~# cat /proc/mdstat Personalities : [raid1] md125 : active raid1 sdb4[2] sda4[1] 466728256 blocks super 1.2 [2/1] [_U] [>....................] recovery = 1.0% (4936064/466728256) finish=228.6min speed=33654K/sec md126 : active raid1 sdb3[2] sda3[1] 20016576 blocks super 1.2 [2/2] [UU] md127 : active raid1 sdb1[2] sda1[1] 497664 blocks super 1.2 [2/2] [UU] unused devices: <none> root@oficina:~# mdadm --detail /dev/md/root /dev/md/root: Version : 1.2 Creation Time : Wed Jul 22 20:35:43 2015 Raid Level : raid1 Array Size : 20016576 (19.09 GiB 20.50 GB) Used Dev Size : 20016576 (19.09 GiB 20.50 GB) Raid Devices : 2 Total Devices : 2 Persistence : Superblock is persistent Update Time : Wed Jul 22 19:24:13 2015 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Name : root UUID : d725447d:6141736f:ffbdb132:42ee270b Events : 4383 Number Major Minor RaidDevice State 2 8 19 0 active sync /dev/sdb3 1 8 3 1 active sync /dev/sda3 root@oficina:~# |
Se puede lanzar el comando automáticamente cada 10 segundos usando:
1 |
watch -n 10 cat /proc/mdstat |
En mi caso, tardará 4 horas en sincronizar los dos discos duros de más de 400 GB. Mientras tanto, vamos con un bonus, vamos a crear un RAID 0 sobre la segunda partición de ambos discos, que era la que reservamos para SWAP (1024 MB + 1024 MB). RAID 0 no ofrece redundancia pero sí mejora el rendimiento, algo que tiene mucho sentido para la SWAP. Vamos a ello, es igual que lo que hicimos antes, pero con nivel 0:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
root@oficina:~# mdadm --create swap --name=swap --homehost="<none>" --level=0 --raid-devices=2 /dev/sda2 /dev/sdb2 mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md/swap started. root@oficina:~# mkswap -L SWAP /dev/md/swap mkswap: /dev/md/swap: warning: don't erase bootbits sectors on whole disk. Use -f to force. Setting up swapspace version 1, size = 1991676 KiB LABEL=SWAP, UUID=5be8a945-aa1c-4a1c-89f7-7419ebed388c root@oficina:~# cat /proc/mdstat Personalities : [raid1] [raid0] md124 : active raid0 sdb2[1] sda2[0] 1991680 blocks super 1.2 512k chunks md125 : active raid1 sdb4[2] sda4[1] 466728256 blocks super 1.2 [2/1] [_U] [>....................] recovery = 3.5% (16569216/466728256) finish=407.6min speed=18404K/sec md126 : active raid1 sdb3[2] sda3[1] 20016576 blocks super 1.2 [2/2] [UU] md127 : active raid1 sdb1[2] sda1[1] 497664 blocks super 1.2 [2/2] [UU] unused devices: <none> root@oficina:~# /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf root@oficina:~# update-initramfs -k all -u && update-grub update-initramfs: Generating /boot/initrd.img-4.1.3-devel Generating grub.cfg ... Found linux image: /boot/vmlinuz-4.1.3-devel Found initrd image: /boot/initrd.img-4.1.3-devel No volume groups found done root@oficina:~# vi /etc/fstab ... #/dev/mapper/espejo-swap_1 none swap sw 0 0 /dev/md/swap none swap sw 0 0 ... root@oficina:~# swapon -a root@oficina:~# free total used free shared buffers cached Mem: 903268 138012 765256 0 14600 75796 -/+ buffers/cache: 47616 855652 Swap: 1991676 0 1991676 root@oficina:~# |
Listo, ahora sólo queda esperar a que acabe de sincronizar el disco y habremos terminado. 🙂