NAS y NFS con RAID5 en Proxmox

Y bien, sí, se nos murió el NAS[a @ArmandoF y a mi], y sí, teníamos copia de todo lo que había dentro del difunto, pero teníamos que hacer algo. El NAS se murió por la tarjeta de red que era tristemente a 100Mbps, todo funcionaba excepto la tarjeta de red, totalmente inútil entonces.

Bueno, teníamos una PC de pruebas, un H81 y una tarjeta de red PCI Express a 1GB, con un i3 4170 con 4GB de RAM y ahí mismo le pusimos los HDD del NAS. En resumen, el hardware utilizado:

  • Motherboard: H81.
  • Micro: Intel Core i3 4170.
  • RAM: 4GB.
  • Tarjeta de red: Una On-Board y otra PCI Express, a 1Gbps las dos.
  • HDD: 4 de 1Tb, uno para instalar Proxmox y 3 para el NAS en RAID 5.

Entonces, primero instalamos Proxmox, y lo optimizamos, con las 2 tarjetas de red en modo Bonding. Cualquier duda instalando proxmox lléguese por el blog de nuestro querido amigo Héctor.

Ahora la cuestión era crear el RAID 5 por software. Para lo cual consola en mano:

Examinamos los HDD:

[email protected]:~# fdisk -l

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 607BF701-71AB-4602-972B-54EF67D769A8

Device Start End Sectors Size Type
/dev/sda1 2048 4095 2048 1M BIOS boot
/dev/sda2 4096 528383 524288 256M EFI System
/dev/sda3 528384 1953525134 1952996751 931.3G Linux LVM

Disk /dev/sdb: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0x00000000

Device Start End Sectors Size Type
/dev/sdb1 2048 1953523711 1953521664 931.5G Linux filesystem

Disk /dev/sdc: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0x00000000

Device Start End Sectors Size Type
/dev/sdc1 2048 1953523711 1953521664 931.5G Linux filesystem

Disk /dev/sdd: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 0x00000000

Como pueden ver, en “sda” está instalado Proxmox, los demás son los que usaremos en el array del NAS, y no tienen tabla de particiones. Por lo cual particionaremos.

[email protected]:~# parted -a optimal /dev/sdb

GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt 
(parted) mkpart primary 1 -1
(parted) align-check 
alignment type(min/opt) [optimal]/minimal? optimal 
Partition number? 1 
1 aligned
(parted) quit

Después de iniciar “parted”, con los parámetros anteriores, alinea las particiones a iniciar con un cilindro divisible por 4096, lo cual alinea correctamente todas las particiones de los discos.

Como usaremos GPT, podemos clonar la tabla de particiones con “sgdisk” a los demas discos y así ahorrar trabajo:

[email protected]:~# sgdisk --backup=table /dev/sdb
[email protected]:~# sgdisk --load-backup=table /dev/sdc
[email protected]:~# sgdisk --load-backup=table /dev/sdd

Ahora que nuestros discos estan particionados correctamente, solo nos queda hacer al array con mdadm:

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sd[bcd]1

Para crear el arreglo RAID, necesitamos pasarle como parametros a mdadm, el nombre[md0], el tipo de arreglo[level], cantidad de dispositivos[raid-devices] y por último las particiones[sdb1, sdc1, sdd1].

Ahora debemos crearle un sistema de archivos a este RAID, por lo cual optimizaremos el comando, mkfs.ext4:

[email protected]:~# mkfs.ext4 -b 4096 -E stride=128,stripe-width=256 /dev/md0

Para hacer el calculo me guié por el script de esta página que poniendole los datos te dice como debes crear el sistema de archivos optimizado segun el tipo de RAID que deseas hacer…

Ahora debemos editar “fstab” para que monte automáticamente en el inicio del sistema el RAID en alguna carpeta del sistema, por lo cual añadimos el final del archivo, en “/etc/fstab”:

[email protected]:~# echo "/dev/md0 /mnt/storage ext4 defaults 0 0" >> /etc/fstab

Debemos crear la carpeta “storage” dentro de /mnt.

[email protected]:~# mkdir -p /mnt/storage

Sólo nos queda ejecutar:

[email protected]:~# mount -a

Lo cual monta todos los dispositivos que están en fstab que no han sido montados previamente por el sistema. También debemos actualizar “initrd” para que lea el array RAID en el inicio del sistema y eso sería todo lo que falta.

[email protected]:~# update-initramfs -u

Hay personas que prefieren llegado a este punto, reiniciar el nodo sobre el cual estamos haciendo todas las pruebas, para que cuando reinicie todos los cambios se apliquen, otros que no, yo no voy a reiniciar…

Ahora solo ejecutamos “df -h”, y veremos el espacio libre de nuestro arreglo:

[email protected]:~# df -h /mnt/storage/
Filesystem Size Used Avail Use% Mounted on
/dev/md0 1.8T  68MB 1.7T 1% /mnt/storage

Listo entonces el RAID5, ahora instalaremos el NFS para después añadirlo desde la interfaz web del proxmox en el Nodo Principal:

apt-get install nfs-kernel-server

Y editar el archivo de particiones exportadas para que nuestros servers proxmox sean los únicos que lo usen VLAN_10 en este ejemplo:

/mnt/storage 192.168.10.0 (rw,sync,no_root_squash,no_subtree_check)

Ahora sólo queda, añadir al server NAS como un nodo más, para esto debemos loguarnos en el Nodo Principal de nuestro Cluster Proxmox y ejecutar en la consola:

[email protected]:~# pvecm add IP-NODO-NAS

Ojo, leer atentamente la página de creación de clusters/nodos de Proxmox, cuando añades un nodo a un cluster el Proxmox elimina el archivo /etc/pve/storage.cfg del nodo, el cual almacena la información de las máquinas virtuales que tengas en ese nodo, por lo cual deberías añadir manualmente las MV después. Pero, como este nodo está vacío, me lo puedo saltar tranquilamente.

Nos va a pedir el password de root del nodo NAS, el cual tecleamos y listo. Ya tenemos vinculado nuestro NAS al clúster Proxmox.

Ahora sólo queda, añadir el espacio de almacemaniento del nodo nuevo, es decir el NAS, un nuevo storage en formato NFS, como se ve en la foto:

Sólo click en añadir, y hemos terminado. Ya podemos sincronizar todas las salvas del Proxmox, para el nuevo punto de montaje.

Listo, extenso pero útil. Un saludo y espero les sirva.

Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*