Siguiendo con la serie de artículos sobre ZFS bajo FreeBSD vamos a explicar como crear un pool ZFS básico, tan solo crearemos el pool y lo montaremos.
Antes de continuar con el artículo es aconsejable que revisemos
este anterior
para que todos los conceptos queden claros.
Para que FreeBSD monte los pools ZFS en el arranque debemos habilitar el servicio:
Arrancamos el servicio:
Consultamos los discos disponibles en el sistema:
<BHYVE SATA DISK 001> at scbus0 target 0 lun 0 (ada0,pass0)
<BHYVE SATA DISK 001> at scbus1 target 0 lun 0 (ada1,pass1)
Podemos ver que el sistema tiene dos discos, el primero fué utilizado para la instalación del SO, vamos a emplear el segundo como almacenamiento de datos, en tal caso podemos utilizar el disco entero o crear particiones. El único caso en el que se deben crear particiones de forma obligatoria es si el pool va a ser bootable.
Consultamos el espacio del pool del sistema:
NAME USED AVAIL REFER MOUNTPOINT
zroot 996M 4.35G 192K /zroot
Consultamos el estado del pool del sistema:
pool: zroot
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
ada0p3 ONLINE 0 0 0
errors: No known data errors
Podemos ver que zroot ocupa el disco ada0, partición 3.
FreeBSD no recomienda utilizar discos enteros en ningún caso:
Caution: Using an entire disk as part of a bootable pool is strongly discouraged, as this may render the pool unbootable. Likewise, you should not use an entire disk as part of a mirror or RAID-Z vdev. These are because it it impossible to reliably determine the size of an unpartitioned disk at boot time and because there’s no place to put in boot code.
Creamos una tabla de particiones GPT nueva:
ada1 created
Consultamos el estado de las particiones del disco:
=> 40 2097072 ada1 GPT (1.0G)
40 2097072 - free - (1.0G)
Creamos la partición:
ada1p1 added, but partition is not aligned on 8192 bytes
Consultamos el estado de las particiones del disco:
=> 40 2097072 ada1 GPT (1.0G)
40 2097072 1 freebsd-zfs (1.0G)
Creamos el pool con la partición recién creada:
Consultamos el estado del pool:
pool: data
state: ONLINE
scan: none requested
config:
NAME STATE READ WRITE CKSUM
data ONLINE 0 0 0
ada1p1 ONLINE 0 0 0
errors: No known data errors
Podemos ver el espacio del pool en /data:
NAME USED AVAIL REFER MOUNTPOINT
data 528K 831M 192K /data