Cómo crear un volumen VDO en un dispositivo de almacenamiento en RHEL 8


Introducido por RedHat en RHEL 7.5 y posterior, VDO abreviatura de Virtual Date Optimizer es una tecnología de virtualización de bloques que proporciona desduplicación en línea y compresión de datos a nivel de dispositivo de bloque.

La idea de la deduplicación es bastante simple: eliminar copias de datos duplicados y quedarse con una sola copia. Cuando se agrega un archivo idéntico en un dispositivo de bloque, se marca como un duplicado y en su lugar se hace referencia al archivo original. Al hacerlo, VDO ayuda a ahorrar espacio en el volumen del bloque.

En este tutorial, aprenderá a crear un volumen VDO en un dispositivo de almacenamiento en el sistema RHEL 8.

Paso 1: Instale el VDO en RHEL 8

Para comenzar, inicie sesión en su servidor y actualice su RHEL usando el comando dnf.

$ sudo dnf update -y

Una vez completada la actualización de los paquetes y el kernel, proceda e instale los módulos y las dependencias del kernel de VDO mediante el comando.

$ sudo dnf install kmod-kvdo vdo
  • vdo – This is a set of Management tools for Virtual Data Optimizer.
  • kmod-kvdo – This is a group of Kernel Modules for Virtual Data Optimizer.

Después de una instalación exitosa, inicie, habilite y verifique el demonio vdo.

$ sudo systemctl start vdo
$ sudo systemctl enable vdo
$ sudo systemctl status vdo

Paso 2: Cree un volumen VDO en RHEL 8

Antes de crear un volumen vdo, asegúrese de tener un disco duro adicional en su sistema. En este tutorial, hemos adjuntado un volumen adicional xvdb . Esto se puede demostrar ejecutando el comando lsblk a continuación.

$ lsblk

En la salida, puede ver claramente que el segundo disco tiene una capacidad de 100 GB.

Ahora, crearemos un volumen VDO vacío en el disco /dev/xvdb .

$ sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

Encontrará el error que se muestra.

Este es un error común y la solución es simplemente reiniciar su servidor.

$ sudo reboot

En la segunda prueba, se ejecutará el comando, creando un volumen VDO vacío en el dispositivo /dev/xvdb .

$ sudo vdo create --name=vdo1 --device=/dev/xvdb --vdoLogicalSize=300G

Analicemos el comando y echemos un vistazo a la opción utilizada:

  • create – This initiates the creation of the VDO volume.
  • –name=vdo1 – This gives the volume a label known as vdo1. Feel free to assign any name of your choice.
  • –device=/dev/xvdb – The device option specifies the disk on which the volume will be created.
  • –vdoLogicalSize=300G – This indicates the effective volume capacity to be used by the operating system, in this case, 300G.

Paso 3: Probar el nuevo volumen VDO

El nuevo volumen VDO se ha creado en /dev/mapper/vdo1 siguiendo el resultado que vimos en el paso anterior. Podemos usar el comando ls como se muestra para investigar los permisos y la propiedad de los archivos.

$ ls -l /dev/mapper/vdo1

Para obtener información más detallada, utilice el comando vdostats para recuperar estadísticas sobre el tamaño y el uso del volumen.

$ vdostats --hu

La bandera --hu muestra la información en un formato legible por humanos, es decir, un formato que es mucho más fácil de leer y descifrar con facilidad. Podemos ver atributos como el nombre del dispositivo, el tamaño en el disco adicional, el espacio usado y disponible como el uso de % .

Observe atentamente que % Guardar se indica como No aplicable (N/A).

Además, tenga en cuenta que ya tenemos algo de uso de volumen 4.1G que se traduce en un 4%, pero no hemos escrito nada en el volumen. ¿Porqué es eso? Esto se debe a que la deduplicación universal ya se ha escrito en el disco y es lo que hace posible la deduplicación.

El comando vdostats se puede usar con la marca --verbose para recuperar información más detallada como se muestra:

$ sudo vdostats --verbose /dev/mapper/vdo1 | grep -B6 ‘saving percent’

Lo que puede ver son básicamente los mismos datos que en el ejemplo anterior pero en un formato diferente.

Paso 4: Partición del volumen VDO

Después de obtener suficiente información del volumen, necesitamos particionarlo y luego crear un sistema de archivos para que pueda usarse como un disco normal.

Creemos un volumen físico y un grupo de volúmenes como se muestra, ejecute los siguientes comandos.

$ sudo pvcreate /dev/mapper/vdo1
$ sudo vgcreate vdo1vg /dev/mapper/vdo1

Para mostrar las estadísticas de la ejecución del grupo de volúmenes:

$ sudo vgdisplay vdo1vg

Ahora, crearemos 2 volúmenes lógicos del mismo tamaño, cada uno con una capacidad de 50G.

$ sudo lvcreate -n vdo1v01 -L 50G vdo1vg
$ sudo lvcreate -n vdo1v02 -L 50G vdo1vg

Posteriormente, puede ver las estadísticas de los volúmenes recién creados ejecutando el comando.

$ sudo lvs

Paso 4: formateo y montaje de sistemas de archivos

Por lo general, cuando se crea un sistema de archivos, se lleva a cabo una operación de recorte en el dispositivo. Esto es indeseable en el caso de VDO. Cuando formatee usando el comando mkfs, use la opción -K para indicarle al comando que no descarte bloques durante la creación del sistema de archivos.

$ sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v01
$ sudo mkfs.xfs  -K /dev/vdo1vg/vdo1v02

Si está usando el sistema de archivos EXT $, use la opción “-E nodiscard”.

Cree los puntos de montaje para montar los volúmenes:

$ sudo mkdir /data/v01
$ sudo mkdir /data/v02

Ahora monte los sistemas de archivos en sus puntos de montaje como se muestra.

$ sudo mount -o discard /dev/vdo1vg/vdo1v01  /data/v01
$ sudo mount -o discard /dev/vdo1vg/vdo1v02  /data/v02

Ahora, cuando inspeccione el volumen de VDO, notará que el ahorro de % ha cambiado al 99%, lo cual es bastante impresionante. Esto implica que la deduplicación funciona como se esperaba.

$ sudo vdostats --hu

Puede investigar más con el comando df -Th. En la sección inferior, verá los sistemas de archivos montados en /data/v01 y /data/v02 respectivamente.

$ df -hT

En este tutorial, demostramos cómo puede crear un volumen VDO a partir de un dispositivo de almacenamiento adicional en RHEL 8. Posteriormente, seguimos adelante y demostramos cómo puede crear más volúmenes y crear sistemas de archivos a partir de esos volúmenes.