Este artículo es parte del artículo principal LAMP: Montando un servidor web en casa. Índice de contenidos.
En este capítulo crearemos volúmenes lógicos en /dev/sda3 para el resto de particiones que nos faltan (recuerda que venimos de este post anterior), y crearemos el RAID1 por software para nuestros discos SATA (/dev/sdb y /dev/sdc).
Vamos a ello:
Creación de volúmenes lógicos dentro de /dev/sda3. Lo primero es crear la unidad física:
root@slackware:pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
Podemos visualizar el resultado con el comando pvscan
root@slackware:pvscan
PV /dev/sda3 lvm2 [66.10 GiB] Total: 1 [66.10 GiB] / in use: 0 [0 ] / in no
VG: 1 [66.10 GiB]
Creamos seguidamente el grupo de volúmenes:
root@slackware:vgcreate VGsistem /dev/sda3
Volume group "VGsistem" successfully created
Igualmente podemos visualizar el grupo:
root@slackware:vgscan
Reading all physical volumes, This may take a while...
Found volume group "VGsistem" using metadata type lvm2
Y a continuación, dentro de ese grupo de volúmenes, podemos crear nuestros volúmenes lógicos. Recordad que yo ajusto mis volúmenes lógicos a la manera en que a mí me gusta particionar mi sistema; el número y nombre de estos volúmenes lógicos se ajustará a vuestros gustos y/o necesidades:
root@slackware:lvcreate -L8G -n LVraiz VGsistem
Logical volume "LVraiz" created
root@slackware:lvcreate -L12G -n LVtmp VGsistem
root@slackware:lvcreate -L12G -n LVopt VGsistem
root@slackware:lvcreate -L8G -n LVhome VGsistem
Como podéis observar el comando lvcreate es muy intuitivo: con la opción -L asignamos un tamaño inicial al volumen, y con la opción -n podemos asignarle un nombre identificativo.He dejado unos pocos GB libres por lo que pueda parar. De nuevo podemos visualizar el resultado de nuestras acciones:
root@slackware:lvscan
ACTIVE '/dev/VGsistem/LVraiz' [8.00 GiB] inherit
ACTIVE '/dev/VGsistem/LVopt' [12.00 GiB] inherit
ACTIVE '/dev/VGsistem/LVtmp' [12.00 GiB] inherit
ACTIVE '/dev/VGsistem/LVhome' [8.00 GiB] inherit
Hasta aquí hemos terminado de construir nuestro diseño para /dev/sda (que habíamos espejado por hardware en un post anterior). Nos resta espejar nuestros dos discos SATA, esta vez en RAID1 por software, en donde caerá el directorio /var. Para ello usamos mdadm, pero antes un par de aclaraciones:
Si no vas a usar initramfs para el arranque del sistema (obligatorio su uso cuando separas /usr en una partición) tanto la partición /boot como la raíz (/) deben utilizar un formato de metadatos antiguo, que especificaremos con la etiqueta --metadata=0,90, dado que por defecto se creará, si no, con 1,20. Para más info sobre estilos de metadatos RAID os insto a leer el man mdadm. Como anécdota, sabed que el formato de superbloque 0,90 limitaría nuestro array a un máximo de 28 dispositivos, y nunca mayores de 2 TB.
root@slackware:mdadm --create /dev/md1 --level=1 --raid-devices=2
/dev/sdb /dev/scd
Lo visualizamos:
root@slackware:mdadm --detail --scan
ARRAY /dev/md1 metadata=1.2 name=slackware:1
UUID=582ab00a:a06a87ff:cb63de6d:xxxxxxx
Y podemos ver su progreso:
root@slackware:mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Mon Dec 15 13:03:33 2014
Raid Level : raid1
Array Size : 976631360 (931.39 GiB 1000.07 GB)
Used Dev Size : 976631360 (931.39 GiB 1000.07 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Dec 15 13:08:33 2014
State : active, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Status : 3% complete
Name : slackware:1 (local to host slackware)
UUID : 582ab00a:a06a87ff:cb63de6d:057c170a
vents : 2
Number Major Minor RaidDevice State
8 16 0 active sync /dev/sdb
8 32 1 active sync /dev/sdc
Fijáos que os he pegado un output en el que el concepto State: aparece como active, resyncing. Se están sincronizando los discos, y el proceso dependerá tanto del tamaño de los mismos como de la capacidad de procesamiento de nuestro equipo.
En este punto deberemos esperar a que la sincronización de discos se lleve a cabo, en cuyo caso aparecerá como State: clean.
Añado la salida de /proc/mdstat:
root@slackware:cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
[multipath]
md1 : active raid1 sdc[1] sdb[0]
976631360 blocks super 1.2 [2/2] [UU]
[>....................] resync = 4.6% (45035904/976631360) finish=165.5min
speed=93764K/sec
unused devices: <none>
El proceso en curso es más evidente en esta salida.
Una vez terminado, creamos el sistema de ficheros en el raid, en mi caso he elegido ext4:
root@slackware:mkfs.ext4 /dev/md1
Y procedemos a crear la unidad física primero, luego el grupo de volumen, y finalmente el volumen lógico, en ese orden:
root@slackware:pvcreate /dev/md1
root@slackware:vgcreate VGvar /dev/md1
root@slackware:lvcreate -l 80%FREE VGvar -n LVvar
Yo he dejado un 20% del disco reservado para posibles necesidades.
Todo este último proceso generará un volumen lógico que se montará (si durante el proceso de instalación lo decido así, esa es la idea) en fstab como:
/dev/mapper/VGvar-LVvar /var /ext4 defaults 1 2
Si todo ha ido convenientemente, es el momento de ejecutar el setup de slackware: cuidadin con elegir correctamente cada uno de las particiones/volúmenes para cada directorio, dado que son visibles tanto /dev/sda3 (en la que hicimos lv) como /dev/md1 (que ya creamos el volumen lógico LVvar en ella).
Hay disponibles en red varios tutoriales de instalación de slackware, por lo que no me voy a reiterar en ello.Éste es el oficial aunque me temo que la versión traducida al castellano está desactualizada; éste otro está muy documentado.
Pero ATENCIÓN: NO SE DEBE REINICIAR EL SISTEMA HASTA QUE NO HAYAMOS GENERADO NUESTRO initrd para el correcto arranque del sistema y que el kernel pueda encontrar todas nuestras unidades montadas. para ello, hacemos un chroot a /mnt, y ejecutamos el script mkinitrd_command_generator que hará gustosamente el trabajo por nosotros:
root@slackware:chroot /mnt
root@slackware:$( /usr/share/mkinitrd/mkinitrd_command_generator.sh -r )
OK: /lib/modules/3.10.17/kernel/drivers/scsi/megaraid.ko added.
OK: /lib/modules/3.10.17/kernel/fs/mbcache.ko added.
OK: /lib/modules/3.10.17/kernel/fs/jbd2/jbd2.ko added.
OK: /lib/modules/3.10.17/kernel/fs/mbcache.ko added.
OK: /lib/modules/3.10.17/kernel/fs/jbd2/jbd2.ko added.
OK: /lib/modules/3.10.17/kernel/fs/ext4/ext4.ko added.
/boot/initrd.gz created.
Be sure to run lilo again if you use it.
La salida debe ser similar a la que se muestra.
Finalmente, ejecutamos lilo para actualizar nuestro lilo.conf, no sin antes añadir esta línea a nuestro lilo.conf:
initrd = /boot/initrd.gz
Para ello, editáis lilo con vuestro editor favorito:
root@slackware:vim /etc/lilo.conf
##Si no conocéis vi, para empezar a insertar texto debéis estar en modo insert, pulsando la tecla i)
##Debe quedar así:
image = /boot/vmlinuz
initrd = /boot/initrd.gz
root = /dev/VGsistem/LVraiz
label = Slackware
read-only
Salimos del editor vi (tecleamos Esc y luego :wq) y por último actualizamos el gestor de arranque:
root@slackware:/sbin/lilo
Eso es todo: ahora sí que tenemos nuestro sistema listo para continuar configurando Apache, soporte para PHP y MySQL.
Fuentes:
Instalación de gentoo con raid y LVM2, en inglés.
Gestión de raid a través de mdadm, de alcancelibre.org. Imprescindible.
Installing Slackware on logical volumes, en inglés.
man pages de los respectivos comandos.
Los siguientes comentarios son de la persona que los haya enviado. Este sitio no se hace responsable de las opiniones expresadas por los participantes en los foros y secciones de comentarios, y el hecho de publicar las mismas no significa que esté de acuerdo con ellas.