ZFS

Tutorial de instantáneas de ZFS

Tutorial de instantáneas de ZFS

Las instantáneas son importantes ya sea que esté ejecutando una máquina virtual simple en la computadora de su hogar o si se trata de una base de datos empresarial que se actualiza y modifica constantemente. Es importante tener instantáneas, es decir, una copia de todo el sistema de archivos tal como estaba en un período de tiempo determinado.

Las personas a menudo pierden la pista de dónde salieron las cosas, se eliminó un archivo y nadie se dio cuenta de que había desaparecido. Han pasado varias copias de seguridad y ahora se da cuenta de que falta un archivo importante en todas las copias de seguridad disponibles de las últimas 5 semanas. En este tutorial, veremos cómo usar las instantáneas de ZFS y abordaremos varias políticas de instantáneas que funcionarían de manera óptima, tanto en términos de utilización de recursos como de recuperabilidad.

Mecanismo de copia en escritura

ZFS tiene una descripción general de alto nivel de archivos y directorios y comprende cómo se escriben los datos en el disco. Cuando se escriben datos físicamente en un disco, se hace en bloques discretos. Normalmente, el tamaño del bloque puede llegar a 1 MB, pero el valor predeterminado suele ser de 128 KB. Ahora, esto significa que cada modificación (lectura, escritura o eliminación) ocurrirá en los bloques discretos.

El mecanismo de copia en escritura asegura que cada vez que se modifica un bloque, en lugar de modificar el bloque directamente, se realiza una copia del bloque con las modificaciones necesarias realizadas en el nuevo bloque.

Esto es especialmente útil en los casos en los que, por ejemplo, hay un corte de energía y su sistema falla mientras se escriben nuevos datos en el disco. Si eso sucede en un sistema de archivos tradicional, sus archivos se dañarán o quedarán con agujeros. Pero si está utilizando ZFS, puede perder la transacción en curso mientras eso estaba sucediendo, pero el último estado válido de sus archivos seguirá intacto.

Las instantáneas también dependen de esta funcionalidad y, de hecho, en gran medida. Cuando toma una instantánea de un conjunto de datos dado ('conjunto de datos' es el término de ZFS para un sistema de archivos), ZFS simplemente registra la marca de tiempo cuando se realizó la instantánea. Eso es! No se copian datos y no se consume almacenamiento adicional.

Solo cuando el sistema de archivos cambia y los datos que contiene difieren de la instantánea, la instantánea comienza a consumir almacenamiento adicional. Lo que sucede debajo del capó es esto: en lugar de reciclar los bloques viejos con el tiempo, ZFS los mantiene alrededor. Esto también mejora la utilización del almacenamiento. Si toma una instantánea de un conjunto de datos de 20 GB y modifica solo algunos archivos de texto aquí y allá, es posible que la instantánea solo ocupe unos pocos MB de espacio.


Crear instantáneas

Para demostrar el uso de instantáneas, comencemos con un conjunto de datos que tiene muchos archivos de texto, solo para simplificar el asunto. La máquina virtual que usaré para la demostración está ejecutando FreeBSD 11.1-RELEASE-p3, que es la última versión estable disponible en el momento de escribir este artículo. El sistema de archivos raíz está montado en el zroot pool por defecto y muchos de los directorios familiares como / usr / src, / home, / etc ¿Están todos sus propios conjuntos de datos montados en zroot. Si no sabe lo que significa un grupo (o un zpool), en la lengua vernácula de ZFS, valdría la pena leerlo antes de continuar.

Uno de los muchos sistemas de archivos, o conjuntos de datos, que vienen por defecto en FreeBSD es: zroot / usr / src

Para ver sus propiedades, ejecute el siguiente comando.

[correo electrónico protegido]: ~ $ zfs list zroot / usr / src

Como puede ver, utiliza 633 MB de almacenamiento. Contiene todo el árbol de fuentes del sistema operativo.

Tomemos una instantánea de zroot / usr / src

[correo electrónico protegido]: ~ $ zfs instantánea zroot / usr / [correo electrónico protegido]

El símbolo @ actúa como un delimitador entre el conjunto de datos y el nombre de la instantánea, que en nuestro caso es instantánea1.

Ahora veamos el estado de la instantánea a medida que se crea.

Ejecutando el comando:

lista zfs -rt todo zroot / usr / src

Puedes ver que la instantánea no ocupa espacio extra cuando nace. Tampoco hay espacio disponible, ya que es un conjunto de datos estrictamente de solo lectura, la instantánea en sí no puede crecer, modificarse ni reducirse. Por último, no está montado en ningún lugar, lo que lo hace completamente aislado de la jerarquía del sistema de archivos dada.

Ahora, eliminemos el sbin directorio en / usr / src /

[correo electrónico protegido]: $ rm / usr / src / sbin

Mirando la instantánea, ahora verás que ha crecido,

Esto se espera porque el mecanismo de copia en escritura está en funcionamiento aquí y la eliminación (o modificación) de los archivos ha llevado a que más datos se asocien solo a la instantánea y no al conjunto de datos que se está utilizando realmente.

Observe la columna REFERIR en la salida anterior. Le brinda la cantidad de datos accesibles en el conjunto de datos, mientras que la columna USADO solo le muestra cuánto espacio está ocupado en el disco físico.

El mecanismo de copia en escritura de ZFS a menudo ofrece estos resultados contrarios a la intuición en los que la eliminación de un archivo haría que pareciera que ahora se está utilizando más espacio que antes. Sin embargo, habiendo leído hasta ahora, sabes lo que está sucediendo realmente!

Antes de terminar, recuperemos el sbin de instantánea1. Para hacer eso, simplemente ejecute:

[email protected]: / usr / src $ zfs rollback zroot / usr / [email protected]

Política de instantáneas

La siguiente pregunta que debe hacerse es: con qué frecuencia desea tomar las instantáneas? Si bien puede variar de una empresa a otra, tomemos el ejemplo de una base de datos muy dinámica que cambia de vez en cuando.

Para empezar, comenzaría a tomar instantáneas cada 6 horas aproximadamente, pero debido a que la base de datos cambia tanto, pronto sería imposible almacenar todas las numerosas instantáneas que se crearon. Por lo tanto, el siguiente paso sería purgar las instantáneas que tengan más de, digamos, 48 ​​horas.

Ahora, el problema sería recuperar algo que se ha perdido hace 49 horas. Para evitar este problema, puede conservar una o dos instantáneas de ese historial de 48 horas y conservarlas durante una semana. Purgarlos cuando sean mayores que eso.

Y si puede continuar de esta manera, podría acumular instantáneas hasta la génesis del sistema, solo en orden decreciente de frecuencia. Por último, me gustaría señalar que estas instantáneas son de SÓLO LECTURA, lo que significa que si te infecta un ransomware y obtienes todos tus datos encriptados (modificados). Lo más probable es que estas instantáneas aún estén intactas.

Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...