Ahora configuraremos la alberca de ZFS y sus datasets. Si tiene de 3 a 4 discos, se recomienda raidz
. Si tiene de 5 a 6 discos, se recomienda raidz2
. Menos de 3 discos no es recomendable ya que la única redundancia posible sería con 2 discos en modo espejo con solo un disco de redundancia y solo 50% de capacidad. Para más de 6 discos es recomendable que mejor haga 2 o más albercas. También se prepararán directorios para la configuración de los contenedores en la partición del SO, o sea, en el SSD. Esto brinda mejor rendimiento en la ejecución de las mismas. La configuración de los contenedores se respaldara a los discos duros una vez al día.
- Después de iniciar sesión, asumir
root
ejecutandosudo -i
. - Ejecutar:
./scripts/generate_zfs_key.sh
. Se generará una llave hexadecimal en/keys/Tank.dat
. Es recomendable que respalde esta llave en un lugar seguro ya que si el SSD falla y se pierde la llave, los datos en la alberca se perderán para siempre. - Ejecutar:
./scripts/create_zfs_pool.sh raidz2 /dev/disk/by-id/disk1 /dev/disk/by-id/disk2 /dev/disk/by-id/disk3 /dev/disk/by-id/disk4 /dev/disk/by-id/disk5 /dev/disk/by-id/disk6
. Adecúe los parámetros para escoger el tipo deraidz
adecuado. Es recomendable usar los nombres de los discos por id, por uuid o por label. No use el nombre de disco (por ejemplo /dev/sda) ya que estos pueden cambiar después de un reinicio y la alberca no funcionará. - Ejecutar:
printf "nasj\nnask" | ./scripts/create_zfs_datasets.sh
. Se crearan datasets con el nombre del usuario en mayúsculas, por ejemploTank/NASJ
. Ademas creará un datasetTank/Apps
para respaldar la configuración de los contenedores y un datasetTank/MediaCenter
para guardar los archivos de media. Los datasets que serán usados como Samba shares serán configurados para que SELinux permita el acceso a ellos por Samba. - Ejecutar:
./scripts/create_app_folders.sh
para generar los directorios de los contenedores en el SSD. - Ejecutar:
./scripts/generate_dataset_mount_units.sh
. Esto generara unidades de Systemd que montaran los datasets deTank
automáticamente después de cargar la llave al reiniciar el servidor. Ejecute este comandocat /etc/zfs/zfs-list.cache/Tank
para verificar que el archivo de cache no esté vacío. Si está vacío, intente ejecutar el script de nuevo ya que significa que no se generó el cache ni las unidades.
Tip
Para ajustar el tamaño máximo de ZFS ARC use el comando echo {size_in_bytes} > /sys/module/zfs/parameters/zfs_arc_max
reemplazando {size_in_bytes}
por el tamaño en bytes que desea establecer. Para hacer el cambio permanente ejecute el comando echo "options zfs zfs_arc_max={size_in_bytes}" > /etc/modprobe.d/zfs.conf && dracut --force
.
Caution
Asignar un valor muy alto puede causar inestabilidad en el sistema, solo cámbielo si sabe lo que hace.