Guía A2 – Creación de un RAID con redundancia y rendimiento en FreeNAS
Fase 1. Personalización de la interfaz de configuración Web.
Paso 1 - Ingresar al apliance FreeNAS
Paso 2 – Asignar nombre el datastore
Paso 3 – Configuración de ficha General
Paso 4 – Actualizar el sistema FreeNAS
Paso 5 – Configuración del servicio SSH
Fase 2. Configuración del RAID
Paso 0 – Pasos previos con VMware Workstation
Paso 0 – Pasos previos con Oracle VirtualBox
Paso 1 – Verificar que se encuentren los cuatro discos disponibles
Paso 3 – Comprobar la creación del RAID
Fase 3. Comprobación del funcionamiento del RAID
Paso 1a – Simular falla en un disco duro en VMware Workstation Profesional o Player
Paso 1b – Simular falla en un disco duro en VirtualBox
Paso 2 – Verificar disponibilidad el RAID
Paso 3 Agregar un disco al RAID 1+0
A1 - Resumen de comandos para RAID
El objetivo de esta guía es configurar un servidor para la SAN basado en FreeNAS 11.X con un RAID 1+0 o similar con discos ISCI, de forma que se obtenga alta disponibilidad en el servicio de almacenamiento de los discos ISCI.
Para esta práctica se utilizará el siguiente software.
· Un equipo o una MV con dos tarjetas de red marca Intel. (De preferencia)
· La red NAT configurada o una lopback
· Conexión a Internet.
· Cuatro discos duros tipo iSCSI. (De preferencia)
· VMware Workstaion Profesional (De preferecia)
· Oracle VirtualBox en su versión más reciente, si no se cuenta con el equipo físico
La EMPRESAY ha contratado los servicios profesionales de vuestro equipo de trabajo para realizar las siguientes tareas:
· Personalizar la interfaz de configuración Web.
· Agregar redundancia en el sistema de almacenamiento del servidor FreeNAS con un RAID 1+0 o similar, usando cuatro discos duros.
· Investigar cómo puede utilizarse discos SPARE
Para realizar las tareas anteriores en la “EMPRESAY” se tienen las siguientes condiciones:
· Un equipo físico para el datastore ds01 con FreeNAS 11.X (o MV en VirtualBox) con 16GB de RAN
· Una red LAN de alta velocidad (1 GBps) para la SAN
· El equipo del ds01 tiene dos tarjetas de red
· El equipo del ds01 tiene 4 discos SCSI de 20 GB y 10K rpm (Si es MV 4 discos SATA)
El datastore (ds01) estará compuesto inicialmente por cinco discos duros, el primero para el sistema operativo y el resto para el arreglo de discos, dichos discos pueden ser discos SAS o SCSI. Si la práctica se realiza en una máquina virtual con VMware Workstation Profesional, se utilizarán cuatro discos del tipo SCSI, Si se utiliza Oracle VirttualBox, se utilizarán cuatro discos tipo SATA (los cuales deberán tener la opción hotplug habilitada). Con esto, puedra simular una falla al retirar uno de los discos duros. El primer disco que se muestra en la figura 1 corresponde al disco de sistema operativo, en dónde hay dos particiones. El arreglo de los cuatro discos formará un área de almacenamiento que es denominada volumen.
Figura 1. Distribución inicial de los discos duros del datastore ds01 (fuente: elaboración propia)
En la figura 2, se ilustra el arreglo de discos que se utilizarán, es de tener en cuenta que el área de datos final depende del formato utilizado y que los valores finales siempre son mayores al tamaño de los discos sin formato. La información del RAID 1+0 se divide en un primer espejo formado por el disco 1 y el disco 3, y un segundo espejo formado por el disco 2 y el disco 4.
Figura 2. Arreglo de discos para proveer alta disponibilidad en el almacenamiento. (fuente: elaboración propia)
Cálculo del tamaño disponible total
Caso No. 1
Si se utilizan 4 discos de 20 GB en un RAID tipo 1+0 el tamaño de almacenamiento disponible total será de 37.3 GB
Debido a que actualmente los GB, TB son unidades obsoletas para el almacenamiento, se utilizan GiB o TiB por ser más exactas, así que el espacio final del RAID será de 34.7383 GiB
Figura 3. Cálculo del arreglo de discos utilizando Raid Calculator 1.6
(fuente: https://www.servethehome.com/raid-calculator)
Figura 4. Cálculo del tamaõ en GB a GiB usando un convertidor de UnitJuggler
(fuente: https://www.unitjuggler.com/memory-convertir-GiB-a-GB.html)
Caso No. 2
Si se utiliza Una máquina virtual para ejecutar FreeNAS, los discos creados tienen un tamaño total que depende del tamaño de los sectores del sistema de archivos (NTFS o VFAT) que se esté utilizando. Para las pantallas de este ejercicio, los 4 discos duros del RAID tienen el tamaño de 21.5 GB, por lo que el tamaño del RAID 1+0 será de 40 GB, y el tamaño de almacenamiento será de 37.25 GiB, pero como FreeNAS utiliza opciones de compresión, el valor cuando el RAID está vacío (sin datos), es diferente.
Los siguientes sitios presentan herramientas para la comprensión del cálculo de discos duros
Calculadoras con parámetros para RAID:
· https://www.servethehome.com/raid-calculator/ (calcula tamaño aproximado)
· https://eaegis.com/pages/raid-calculator (calcula el tamaño aproximado, solo RAID estándares)
· https://raidcalculators.com/usable-capacity.php (calcula el tamaño aproximado, solo RAID estándares)
· http://www.raid-calculator.com/default.aspx (sencilla, útil para velocidad)
· https://planetcalc.com/5210/ (sencilla, útil para velocidad)
· https://eaegis.com/pages/raid-calculator
Cálculo de IOPS
· https://raidcalculators.com/workload-iops.php
Calculadora para comparar dos tipos de RAID
· http://wintelguy.com/raidcfg.pl
Calculadora para capacidad en ZFS
· http://wintelguy.com/zfs-calc.pl
· https://raidcalculators.com/zfs-raidz-capacity.php
Calculadoras gráficas:
· https://www.asustor.com/es/service/raid_calculator
· https://www.synology.com/es-es/support/RAID_calculator?hdds=1%20TB|1%20TB
Calculadora para GB a GiB
· https://www.unitjuggler.com/memory-convertir-GiB-a-GB.html
· http://wintelguy.com/gb2gib.html
@Nota: Se recomienda utilizar Mozila Firefox, Opera o Vivaldi.
Para esta guía se utilizará el hostame = ds01
· Dirección de escucha para la interfaz web: 192.168.50.2
· Idioma de la interfaz web: Spanish
· Distribución de idioma para la consola: Latin American (accent key), United States (accent key), según el caso
· Zona horaria: America/El_Salvador
@Nota: En un escenario real, está opción debe habilitarse solo si se tiene un entrono muy seguro
El indicar de estado debe aparecer en color verde.
a. Apagar la máquina virtual (MV) del ds01
b. Dar clic en el enlace “Edit virtual machine”
c. crear el disco según las siguientes especificaciones:
· Tipo de disco: SCSI
· Nuevo disco virtual
· Los discos tendrán una capacidad de 20GB cada uno
· El disco virtual debe estar en un solo archivo (No Split)
· Formato de los discos virtuales será: vmdk
· Los nombres para los discos serán: r1_ disco1.vmdk, r1_disco2.vmdk, r1_disco3.vmdk, r1_disco4.vmdk
Cada disco debe tener el mismo tipo y tamaño. También hay que verificar que puerto SCSCI ocupan
Por ejemplo, el cuarto disco del RAID debe tener la controladora 0 y el puerto 4
@Nota: Por el momento Oracle VirtualBox solo permite controladoras SATA con soporte hotplug
a. Apagar la máquina virtual (MV) del ds01
b. Dar clic en el icono de agregar controladoras de disco
Las especificaciones para los discos duros serán:
· Tipo de disco: SATA
· Formato de los discos virtuales será: vdi
· Tipo de almacenamiento para los discos: dinámico
· Los nombres para los discos serán: r1_ disco1.vdi, r1_disco2.vdi, r1_disco3.vdi, r1_disco4.vdi
· Los discos tendrán una capacidad de 20GB cada uno
· Todos los discos tendrán la opción: “Conectable en caliente”
· Cuando los discos son IDE o SATA el identificador comienza con adxY
· Cuando los discos son SCSI o SAS el identificador comienza con daxY
Por consola se puede observar
root@ds01:~ # ls -l /dev/ad*
crw-r----- 1 root operator 0x52 Sep 4 00:26 /dev/ada0
crw-r----- 1 root operator 0x54 Sep 4 00:26 /dev/ada0p1
crw-r----- 1 root operator 0x55 Sep 4 00:26 /dev/ada0p2
crw-r----- 1 root operator 0x56 Sep 4 00:26 /dev/ada1
crw-r----- 1 root operator 0x59 Sep 4 00:26 /dev/ada2
crw-r----- 1 root operator 0x5a Sep 4 00:26 /dev/ada3
crw-r----- 1 root operator 0x6a Sep 4 00:26 /dev/ada4
root@ds01:~ # dmesg | grep -i transfers
cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
ada0: 33.300MB/s transfers (UDMA2, PIO 65536bytes)
ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada3: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada4: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
@Nota: FreeNAS oculta el disco de sistema /dev/ada0, el cual posee dos particiones, la participación de intercambio (swap) /dev/ada0p1 y la partición de sistema /dev/ada01p2.
En la pantalla “Volume Manager” se deberá definir lo sigueinte:
· El nombre del Volumen: miRaid01
· Agregar los discos a utilizar: dar un clic en el botón “+”
· Seleccionar tipo de arreglo: “Mirror”
Esperar un par de minutos (el proceso dependerá del tamaño del disco duro), es de observar que el tamaño resultante es mayor que 35 GB y menor que 40 GB
@Nota: El asistente de forma predeterminada ha creado dos espejos formados por: disco ada1 y ada3, y los discos ada2 y ada4. No activa la deduplicación ni la encriptación.
Si se utiliza la opción de configuración manual de deben definir las siguientes opciones:
Completar pantalla:
· Escriba el nombre del Volumen: miRaid01
· Encriptación: NO
· Discos miembros del volumen: Presionando la tecla “Ctrl” y seleccionar los cuatro discos SATA (ada1, ada2, ada3 y ada4).
· Deduplicación: Apagado
· Tipo de grupo: mirror
Dar clic en botón: “Añadir Volumen”
El volumen miRaid01, tiene un espacio de 34.6 GiB, resultado de (20 || 20 = 20) + (20 || 20 = 10) ≈ 36 GiB
root@ds01:~ # zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
freenas-boot 15.9G 753M 15.1G - - 4% 1.00x ONLINE -
miRaid01 35.8G 11.4M 35.7G - 0% 0% 1.00x ONLINE /mnt
@Nota: El volumen freenas-boot, corresponde al dispositivo de almacenamiento para el sistema operativo.
root@ds01:~ # zpool status -v
pool: freenas-boot
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
freenas-boot ONLINE 0 0 0
ada0p2 ONLINE 0 0 0
errors: No known data errors
pool: miRaid01
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
miRaid01 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gptid/f85bbf54-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
gptid/fa89c1be-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
gptid/fc34c7c9-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
gptid/fdd9fe67-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
errors: No known data errors
En esta prueba se simulará que uno de los discos duros del RAID 1+0 presenta una falla, por lo que el RAID deberá mostrar que el disco no se encuentra disponible. Para simular la falla se desconectará el disco SATA 4 por medio de los comandos de administración de Oracle VirtualBox.
Digitar el siguiente comando en una sola línea.
C:\> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list runningvms
"router01_apl352" {c1f81e46-044b-4256-87a7-002345fff032}
"FreeNAS_11.1U4" {ac57ee0f-a6e5-4eb3-8534-d202440a734c}
C:\> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" showvminfo FreeNAS_11.1U4
Name: FreeNAS_11.1U4
Groups: /Pre_Diseno
Guest OS: FreeBSD (64-bit)
UUID: ac57ee0f-a6e5-4eb3-8534-d202440a734c
Config file: D:\temp2\FreeNAS_11.1U4.vbox
Snapshot folder: D:\temp2\Snapshots
Log folder: D:\temp2\Logs
Hardware UUID: ac57ee0f-a6e5-4eb3-8534-d202440a734c
Memory size: 2048MB
Page Fusion: off
VRAM size: 128MB
CPU exec cap: 100%
HPET: off
Chipset: piix3
Firmware: BIOS
Number of CPUs: 2
PAE: on
Long Mode: on
Triple Fault Reset: off
APIC: on
X2APIC: off
CPUID Portability Level: 0
CPUID overrides: None
. . .
Default Frontend:
Storage Controller Name (0): IDE
Storage Controller Type (0): PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0): 2
Storage Controller Port Count (0): 2
Storage Controller Bootable (0): on
Storage Controller Name (1): SATA
Storage Controller Type (1): IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1): 30
Storage Controller Port Count (1): 4
Storage Controller Bootable (1): on
IDE (0, 0): D:\temp2\FreeNAS_11.1U4.vdi (UUID: 85d98072-0b1d-471b-a05b-3f0ee2301494)
IDE (1, 0): D:\temp2\isos\FreeNAS-11.4-U4.iso (UUID: 4c28b6d9-7c5e-495c-b90f-fb92844d29e3)
SATA (0, 0): D:\temp2\r1_disco01.vdi (UUID: dc4870b1-655c-4066-b205-87fc7f133d84)
SATA (1, 0): D:\temp2\r1_disco02.vdi (UUID: 6132127b-78de-4c2c-b3f3-5a5846cdeff2)
SATA (2, 0): D:\temp2\r1_disco03.vdi (UUID: f6cff19d-21ec-4ce9-8412-9f71c1792737)
SATA (3, 0): D:\temp2\r1_disco04.vdi (UUID: d235d3d7-45ba-4e39-aa2c-00bf11499b84)
NIC 1: MAC: 080027C38C12, Attachment: Bridged Interface 'Adaptador de bucle invertido KM-TEST de Microsoft', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: allow-all, Bandwidth group: none
NIC 2: MAC: 08002782857C, Attachment: Bridged Interface 'Adaptador de bucle invertido KM-TEST de Microsoft', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: allow-all, Bandwidth group: none
NIC 3: disabled
NIC 4: disabled
NIC 5: disabled
NIC 6: disabled
NIC 7: disabled
NIC 8: disabled
. . .
. . .
Digitar el siguiente comando en una sola línea.
C:\> "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" storageattach FreeNAS_11.1U4 --storagectl SATA --device 0 --port 3 --medium none
@Nota: Si se desea agregar en caliente un disco el comando es el siguiente (en una sola línea):
“C:\Program Files\Oracle\VirtualBox>VBoxManage.exe” storageattach nombre_MV --storagectl SATA --device 0 --port 3 --medium ruta_del_archivo\t_disco03.vdi --type hdd
Digitar los siguientes comandos:
root@ds01:~ # dmesg |tail -10
. . .
. . .
ada4 at ahcich3 bus 0 scbus5 target 0 lun 0
ada4: <VBOX HARDDISK 1.0> s/n VBd235d3d7-849b4911 detached
GEOM_ELI: Device ada4p1.eli destroyed.
GEOM_ELI: Detached ada4p1.eli on last close.
(ada4:ahcich3:0:0:0): Periph destroyed
root@ds01:~ # camcontrol devlist
<VBOX HARDDISK 1.0> at scbus0 target 0 lun 0 (pass0,ada0)
<VBOX CD-ROM 1.0> at scbus1 target 0 lun 0 (pass1,cd0)
<VBOX HARDDISK 1.0> at scbus2 target 0 lun 0 (pass2,ada1)
<VBOX HARDDISK 1.0> at scbus3 target 0 lun 0 (pass3,ada2)
<VBOX HARDDISK 1.0> at scbus4 target 0 lun 0 (pass4,ada3)
Se comprueba que el disco duro hay desaparecido
Digitar el siguiente programa
root@ds01:~ # zpool status miRaid01
pool: miRaid01
state: DEGRADED
status: One or more devices has been removed by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: none requested
config:
NAME STATE READ WRITE CKSUM
miRaid01 DEGRADED 0 0 0
mirror-0 ONLINE 0 0 0
gptid/f85bbf54-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
gptid/fa89c1be-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
mirror-1 DEGRADED 0 0 0
gptid/fc34c7c9-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
15041453628166204454 REMOVED 0 0 0 was /dev/gptid/fdd9fe67-9140-11e7-97f0-080027c38c12
errors: No known data errors
Digitar el siguiente comando en una sola línea
C:\> "c:\Program Files\Oracle\\VirtualBox\\VBoxManage.exe" storageattach FreeNAS_11.1U4 --storagectl SATA --device 0 --port 3 --medium D:\temp2\MV\Pre_Diseno\FreeNAS_11.1U4\r1_disco04.vdi --type hdd
root@ds01:~ # zpool status miRaid01
pool: miRaid01
state: ONLINE
scan: resilvered 2.63M in 0h0m with 0 errors on Mon Sep 4 02:25:40 2017
config:
NAME STATE READ WRITE CKSUM
miRaid01 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gptid/f85bbf54-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
gptid/fa89c1be-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
gptid/fc34c7c9-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
gptid/fdd9fe67-9140-11e7-97f0-080027c38c12 ONLINE 0 0 0
errors: No known data errors
1. Investigar los comandos de zpool para agregar un nuevo disco duro al raid miRaid01. Simular la falla en el disco SATA 02, borrar el archivo vdi, crear un nuevo disco duro y agregar este nuevo disco duro al RAID.
o Simular falla en disco SATA 02
o Borrar el archivo r1_disco02.vdi
o Crear un nuevo disco duro r1_disco02nue.vdi
o Agregar el disco duro r1_disco02nue al RAID miRaid01
o Comprobar el estado del RAID
2. Investigar que son los disco SPARE, simule una falla y compruebe que el disco SPARE es tomado en sustituto del disco que se ha remplazado.
Ver discos duros, IDE (ad), SATA (ad), ISCI (da), SAS (da)
[root@datastore1] ~# dmesg | grep -i --color SATA
[root@datastore1] ~# dmesg | grep -i transfers
Ver la información de un disco específico, por ejemplo, soporte para smartdrive
[root@datastore1] ~# smartctl -i /dev/ada0
[root@datastore1] ~# camcontrol identify ada0 | more
[root@datastore1] ~# diskinfo -v ada0
Ver temperatura en los discos
[root@datastore1] ~# smartctl -d ata -A /dev/ad0 | grep -i temperature
Ver particiones por disco duro
Ver por número de partición
[root@datastore1] ~# gpart show
Ver por número etiqueta de partición
[root@datastore1] ~# gpart show -p
Ver por número RAW de la partición
[root@datastore1] ~# gpart show -r
Ver estado del RAID Z
[root@datastore1] ~# zpool list
[root@datastore1] ~# zpool status
[root@datastore1] ~# zpool status miRaid01
[root@datastore1] ~# zpool get all miRaid01
Para limpiar el estado
[root@datastore1] ~# zpool clear miRaid01
Ver historial de acciones en el pool
[root@datastore1] ~# zpool history –il
Crear espejo
[root@datastore1] ~# zpool create tank mirror c4t5d0 c4t6d0
zpool add tank mirror c4t7d0 c4t8d0
Estado del RAID (zpool)
https://www.freebsd.org/cgi/man.cgi?zpool%288%29
Administración de los pool
https://www.freebsd.org/doc/handbook/zfs-zpool.html
Comandos para reemplazo de disco
https://serverfault.com/questions/586847/need-to-replace-disk-in-zpool-confused