Diferencia entre revisiones de «Xestión de volumes de almacenamento con FreeNAS»
(Sin diferencias)
|
Revisión actual del 01:18 31 ene 2017
Neste apartado imos ver os aspectos básicos da xestión dos dispositivos de almacenamento en FreeNAS, definindo tanto volumes simples (sen redundancia de datos, aínda que poderán estar repartidos en varios discos), como volumes con datos redundantes para evitar a perda de datos ante o fallo de un ou varios discos.
Xestión de volumes e discos con FreeNAS
Ímonos achegar neste primeiro apartado á xestión de discos coa ferramenta de administración de FreeNAS:
Vemos a listaxe de discos e os seus parámetros. Fixarse na nomenclatura que utiliza FreeNAS para os distintos discos, de ada1 a ada4 neste caso. Téñase en conta que o propio disco no que se instalou o sistema non vai aparecer nesta listaxe de discos. Podemos picar en Edit para modificar os parámetros de funcionamento dun disco.
Vemos os parámetros que se poden modificar sobre un disco, como a optimización do uso de enerxía, o nivel acústico e o sistema de monitorización e análise do disco. Estes parámetros só terán efectos sobre discos físicos; no noso caso os discos son en realidade simples ficheiros, ao estar traballando con unha máquina virtual.
Na imaxe podemos ver a ventá que se mostra escollendo a opción de Wipe (Borrar) sobre un disco. O que conseguiremos é borrar todos os datos que haxa no disco. Deberemos usar as opcións de encher con ceros ou datos aleatorios se queremos asegurarmos de que non se poidan recuperar eses datos con ferramentas de análise de discos.
Xestión de volumes simples
Vexamos agora como crear volumes simples así como as operacións que poderemos facer sobre eles. Actualmente FreeNAS xa non ten soporte para sistemas de ficheiros UFS, que se mantiña como opción para sistemas con menores recursos de hardware. Deste xeito o único sistema de ficheiros soportado de forma completa é ZFS.
Creación dun volume (pool) ZFS
É importante aclarar que FreeNAS vai chamar volume ao que en realidade en ZFS é un grupo ou pool de volumes, xa que este sistema de ficheiros parte da base de que conta con un conxunto de discos (aínda que este conxunto pode ser un só disco, por suposto). Logo, dentro deste pool podemos crear diferentes estruturas, como conxuntos de datos (datasets) e volumes (zvols), como veremos máis adiante. De feito, en xeral con ZFS recoméndase crear un único volume que englobe a todos os discos do sistema, e logo dividilos como queiramos usando volumes e particións.
En primeiro lugar, teremos que crear un volume (en realidade, un pool) ZFS:
Antes de nada, se ao entrar por primeira vez se creou un volume co asistente imos borralo. Para así ver como se partiría de cero nun sistema sen ningún volume creado. Seleccionamos o volume volume_inicial (ollo, o volume é o elemento principal, que dentro ten un conxunto de datos co mesmo nome), e picamos no botón de Desmontar volume.
Para crear o volume temos que darlle un nome (volzfs neste caso) e seleccionar os discos que o formarán (de momento, só un). Para facelo utilizamos o selector do apartado de Volume Layout (Disposición do volume), seleccionando só un disco e disposición en Stripe. Máis adiante, cando seleccionemos máis de un disco veremos o efecto do selector de discos e outros tipos de disposición dos mesmos. Picamos no botón de Engadir volume.
Vemos o volume creado as opcións que temos sobre el. Na versión actual de FreeNAS, ao crear un volume créase tamén automaticamente un conxunto de datos dentro del co mesmo nome (como veremos máis adiante, un conxunto de datos é similar a unha partición de disco, aínda que ofrece máis posibilidades que unha partición tradicional). Seleccionando o volume podemos ver as opcións dispoñibles sobre o mesmo.
Operacións sobre un pool ZFS
Imos ver as operacións que podemos utilizar sobre un volume ZFS e sobre o conxunto de datos que sempre teremos creado dentro del. Lémbrese que na versión actual de FreeNAS a creación dun volume ZFS supón automaticamente a creación dun conxunto de datos, e moitas das operacións que antes se realizaban sobre o volume foron cambiadas de lugar con respecto ás versións anteriores, e agora se aplican sobre o conxunto de datos.
Picamos no botón de Modo avanzado para ver todas as opcións do conxunto de datos. O máis relevante é a posibilidade de establecer unha cota (que sería o espazo máximo que pode ocupar este conxunto de datos) ou un espazo reservado (que sería un espazo mínimo garantido) para o conxunto de datos. Estas opcións será realmente útiles cando creemos novos conxuntos de datos, e así poderemos limitar o espazo total que terán dispoñible dentro do pool.
Engadir novos discos ao pool
Unha das opcións máis útiles de ZFS é a posibilidade de engadir novos discos a un pool xa creado. Desta forma, se nun volume temos problemas porque estamos consumindo todo o espazo que nos proporcionan os discos, simplemente teremos que engadir un novo disco ao volume e xa teremos ampliado o volume. Se o hardware do equipo permite a substitución en quente de discos, poderemos facer toda a operación sen ter que apagar a máquina, tendo así o servizo dispoñible en todo momento.
Picamos no Xestor de Volumes. Seleccionamos como Volume a estender o volume ZFS que temos creado, e marcamos os discos a agregar seleccionando como disposición do volume a de stripe (en franxas). Neste caso, os catro discos que temos no sistema teñen o mesmo tamaño, pero non tería por que ser así. O tamaño do disco que se engada non ten por que ser igual que os discos xa engadidos no pool. Picamos en Estender volume.
Imos agora a crear outro volume co nome volzfs2 para comprender o funcionamento do selector de discos. Podemos arrastrar o selector en vertical ou horizontal e vaise seleccionar o layout (disposición) máis adecuado aumentando o tamaño do volume no posible (se arrastramos en vertical) ou configurando discos redundantes para proporcionar tolerancia ante fallos no disco (se arrastramos en horizontal).
Nesta ventá, podemos seleccionar manualmente os discos que queremos introducir no volume, así como a súa disposición. Quen queira pode probar que seleccionando aquí a opción de mirror si que nos permite estender o volume. En calquera caso, pénsese que tamaño debería gañar o volume, e por que. No noso caso, imos escoller a disposición en stripe.
Crear un conxunto de datos
Un volume ZFS pode dividirse en conxuntos de datos ou datasets. Para entendernos, os conxuntos de datos veñen sendo como particións do disco; e para cada unha delas poderemos establecer distintos permisos, niveis de compresión de datos, crear instantáneas, etc.
Pero o que é máis importante: podemos definir unha cota do que pode ocupar cada un dos conxunto de datos. Será como o tamaño que lle damos a unha partición que se fai sobre un disco duro, pero con dúas salvidades: poderemos cambiala cando queiramos (sen ter que reformatar nin mover nada), e o espazo que se lle dea ao conxunto de datos non se lle quita ao volume (aínda que tamén podemos reservar un espazo para o conxunto de datos se o desexamos), simplemente é unha cota do que pode ocupar como máximo ese conxunto de datos.
Aí vemos o conxunto de datos, que ven sendo como un volume máis, que está montado na ruta /mnt/nome_do_volume/nome_do_conxunto_de_datos e que ten 10GB de capacidade, aínda que o volume segue conservando o mesmo tamaño que antes. Dentro do conxunto de datos pódense crear novos conxuntos de datos se se desexa (por exemplo, poderíamos crear neste caso un por cada grupo de alumnos).
Crear un volume
Agora ven unha opción que pode resultar algo confusa, xa que podemos crear dentro do volume un volume ZFS ou zvol. Pero o caso é que o zvol non é o mesmo que o que nós temos agora creado, e que FreeNAS tamén lle chama volume. Realmente o que temos creado é un pool de volumes ZFS e agora podemos crear dentro del un volume, hai que ter isto presente para non confundirse.
Agora ben ¿para que serve un zvol? Pois con esta opción o que crearemos será un dispositivo de bloque sobre o volume ZFS. Isto si que será como unha partición dun disco, que terá un tamaño fixo (logo non poderemos cambialo), e este tamaño restarase ao tamaño do pool. A utilidade máis importante dos volumes ZFS é exportalos como dispositivos iSCSI, e así un servidor poderá usar este volume como se fose un disco físico.
Crear instantáneas
Coas instantáneas podemos capturar a información actual dun volume ou dun conxunto de datos para poder revertela nun futuro se nos interesa (igual que podemos facer en VirtualBox coas máquinas virtuais). Imos a continuación a ilustrar o seu funcionamento:
Con respecto á realización de instantáneas nun volume ZFS, cabe destacar dúas consideracións importantes:
- Pode supoñer un consumo de disco considerable, xa que obriga a manter unha copia dos ficheiros modificados a partir da instantánea.
- Non elimina a necesidade de facer copias de seguridade para garantir que ante un fallo nos discos poidamos recuperar a información.
Xestión de volumes de discos redundantes
A diferenza co volume de datos que manexamos no apartado anterior, imos ver agora como podemos usar varios discos nun mesmo volume replicando os datos entre eles, co obxectivo de manter a información e a dispoñibilidade do sistema aínda que algún dos discos físicos falle.
Discos en espello (RAID 1)
O nivel máis básico de RAID, pero tamén un dos que mellor rendemento proporciona para lecturas de ficheiros pequenos, é o RAID en espello ou RAID 1:
Pero imos ver o contido do volume co Terminal. Segue funcionando, podemos acceder á información que había nel e incluso podemos gardar novos datos; aínda que estes datos non se gardarán en espello, só se gardarán no disco que segue activo. Por iso o RAID está degradado, xa que agora non temos redundancia dos datos. Se neste momento fallase o disco que queda, perderíamos a información.
obtemos un erro. Por que? Resulta que o disco que queremos usar pertencía a outro volume, concretamente ao volume volzfs. Pero ese volume non o eliminamos? Pois non, se non se marcou a opción de "Borrar os datos" simplemente se desmontou o volume, pero seguía configurado e de feito podería terse montado de novo. Neste caso provocouse esta situación de forma intencionada para mostralo. Na versión actual de FreeNAS, xa se ofrece a opción de forzar o reemprazo, limpando o contido do disco escollido, así que marcamos esa opción e reemprazamos o disco.
No momento en que poñemos o novo disco, o sistema empezará automaticamente a reconstruír o espello, copiando nese novo disco todos os datos do disco que quedaba no RAID. Isto pode levar máis ou menos tempo dependendo dos datos que haxa no disco. No noso caso, pronto comprobaremos que o estado do RAID pasa de seguida de novo a healthy (saudable): problema solucionado, agora o RAID está de novo correcto e aínda que fallase un disco non perderíamos a información.
Outros niveis de RAID (RAID 5, RAID 6...)
Xa vimos que existen máis niveis de RAID que o RAID 1, sendo os máis frecuentes RAID 5 e RAID 6. No caso de FreeNAS, co sistema de ficheiros ZFS en realidade estaremos facendo uso dunhas variantes propietarias destes niveis, que se chaman RAIDZ1 e RAIDZ2. Tamén podería usar a variante RAIDZ3, que sería similar pero utilizando tres discos de redundancia para poder soportar fallos ata en tres discos.
Creamos un novo volume seleccionando en horizontal os catro discos, e poderemos seleccionar os layouts RAIDZ e RAIDZ2. Como se pode ver, as disposicións posibles dependen do número de discos seleccionados, xa que RAIDZ1 require como mínimo tres discos, RAIDZ2 catro, e necesitaríamos cinco discos como mínimo para RAIDZ3. Seleccionamos RAIDZ e creamos o volume.
Para determinar o número de discos que se deberían usar nun RAIDZ, recoméndanse seguir as seguintes pautas para obter o rendemento óptimo:
- Non facer RAIDs de máis de 12 discos.
- Con RAIDZ1 usar 3, 5, ou 9 discos.
- Con RAIDZ2 usar 4, 6, ou 10 discos.
- Con RAIDZ3 usar 5, 7, ou 11 discos.