Uso mi máquina Ubuntu como un servidor de archivos para clientes Windows / Linux / Mac que usan un recurso compartido Samba. Necesito que sea fácilmente expandible simplemente agregando más discos duros sin tener que mover ningún dato de un lado a otro.
Así es como lo he hecho hasta ahora. He agregado con éxito un cuarto disco duro. Ahora sería bueno saber si es así como se debe hacer. ¿Qué estoy haciendo mal o qué podría hacer mejor?
Crear la matriz inicial de 3 unidades
Comencé con tres unidades vacías: / dev / sdb, / dev / sdc y / dev / sdd.
Primero creé particiones vacías en todas las unidades:
$ fdisk /dev/sdX
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc
Cuando se crearon particiones RAID vacías en los tres discos, creé una matriz RAID5:
$ mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1
Ahora se crea la matriz RAID5 y ya se está construyendo. Lleva tiempo, pero puede continuar con la creación de un nuevo volumen físico LVM2:
$ pvcreate /dev/md0
Ahora creemos un nuevo grupo de volúmenes:
$ vgcreate vd_raid /dev/md0
Luego, necesitamos crear un nuevo volumen lógico dentro de ese grupo de volúmenes. Primero tenemos que averiguar el tamaño exacto del grupo de volúmenes creado:
$ vgdisplay vg_raid
El tamaño se puede ver desde la fila que indica el "PE total" en extensiones físicas. Imaginemos que es 509. Ahora cree un nuevo volumen lógico que tome todo el espacio disponible:
$ lvcreate -l 509 vg_raid -n lv_raid
Finalmente, podemos crear un sistema de archivos sobre ese volumen lógico:
$ mkfs.xfs /dev/mapper/vg_raid-lv_raid
Para poder usar nuestra matriz RAID recién creada, necesitamos crear un directorio y montarlo:
$ mkdir /raid
$ mount /dev/mapper/vg_raid-lv_raid /raid
Ahora está listo para usar. Pero para que se monte automáticamente después de reiniciar, necesitamos guardar la geometría RAID en el archivo de configuración de mdadm:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Luego agregue la siguiente línea a / etc / fstab que monta la matriz RAID automáticamente:
/dev/mapper/vg_raid-lv_raid /raid auto auto,noatime,nodiratime,logbufs=8 0 1
Ahora la matriz RAID está lista para usar y se monta automáticamente en el directorio / raid después de cada arranque.
Agregar una nueva unidad a la matriz
Imaginemos que ahora tiene una nueva unidad, / dev / sde, que desea agregar a la matriz creada anteriormente sin perder ningún dato.
Primero, la nueva unidad debe dividirse como todas las demás unidades:
$ fdisk /dev/sde
n # Create a new partition
p # Primary
1 # First partition
[enter] # Starting point to first sector (default)
[enter] # Ending point to last sector (default)
t # Change partition type
fd # Type: Linux raid autodetect
w # Write changes to disc
Luego debe agregarse a la matriz RAID:
$ mdadm --add /dev/md0 /dev/sde1
Ahora la matriz RAID5 incluye cuatro unidades, que solo tres están en uso actualmente. La matriz debe ampliarse para incluir las cuatro unidades:
$ mdadm --grow /dev/md0 --raid-devices=4
Luego, el volumen físico LVM2 debe expandirse:
$ pvresize /dev/md0
Ahora el volumen físico cambia de tamaño de manera predeterminada para cubrir todo el espacio disponible en la matriz RAID. Necesitamos descubrir el nuevo tamaño en extensión física:
$ vgdisplay vg_raid
Imaginemos que el nuevo tamaño es ahora 764 (se puede ver en "PE total"). Ahora expanda el volumen lógico para cubrir esto:
$ lvextend /dev/mapper/vg_raid-lv_raid -l 764
Luego expanda el sistema de archivos XFS. Esto debe hacerse mientras el sistema de archivos está en línea y montado:
$ xfs_grow /raid
Por defecto se expande para cubrir todo el espacio disponible. Finalmente, la geometría de la matriz RAID debe actualizarse porque la matriz ahora incluye un nuevo disco. Primero elimine la línea agregada de /etc/mdadm/mdadm.conf y luego agregue una nueva:
$ mdadm --detail --scan >> /etc/mdadm/mdadm.conf