Búsqueda de sitios web

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


Introducido por RedHat en RHEL 7.5 y posteriores, VDO, abreviatura de Virtual Date Optimizer, es una tecnología de virtualización de bloques que proporciona deduplicació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 solo con una copia. Cuando se agrega un archivo idéntico en un dispositivo de bloque, se marca como duplicado y en su lugar se hace referencia al archivo original. Al hacerlo, VDO ayuda a ahorrar espacio en el volumen de bloque.

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

Paso 1: instale 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, continúe e instale los módulos y dependencias del kernel VDO usando el comando.

sudo dnf install kmod-kvdo vdo
  • vdo: este es un conjunto de herramientas de administración para Virtual Data Optimizer.
  • kmod-kvdo: este es un grupo de módulos de kernel para 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 siguiente comando lsblk.

lsblk

En el resultado, 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 el 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:

  • crear: esto inicia la creación del volumen VDO.
  • –name=vdo1: esto le da al volumen una etiqueta conocida como vdo1. Siéntase libre de asignar cualquier nombre de su elección.
  • –device=/dev/xvdb: la opción del dispositivo especifica el disco en el que se creará el volumen.
  • –vdoLogicalSize=300G: indica la capacidad de volumen efectiva que utilizará el sistema operativo, en este caso, 300G.

Paso 3: Probar el nuevo volumen VDO

El nuevo volumen VDO se creó en /dev/mapper/vdo1 siguiendo la salida 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

El indicador --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 del disco adicional, el espacio utilizado y disponible como el uso de %.

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

Además, tenga en cuenta que ya tenemos un uso de volumen 4.1G, lo que se traduce en 4%, pero no hemos escrito nada sobre 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 utilizar con el indicador --verbose para recuperar información más detallada como se muestra:

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

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

Paso 4: particionar el volumen VDO

Después de obtener suficiente información del volumen, debemos 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

Luego podrá ver las estadísticas de los volúmenes recién creados ejecutando el comando.

sudo lvs

Paso 4: Formatear y montar sistemas de archivos

Normalmente, cuando se crea un sistema de archivos, se lleva a cabo una operación de recorte en el dispositivo. Esto no es deseable en el caso del VDO. Al formatear 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á utilizando el sistema de archivos EXT$, utilice 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 VDO, notará que el ahorro % ha cambiado al 99%, lo cual es bastante impresionante. Esto implica que la deduplicación está funcionando como se esperaba.

sudo vdostats --hu

Puede investigar más a fondo utilizando 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 desde un dispositivo de almacenamiento adicional en RHEL 8. Más tarde seguimos adelante y demostramos cómo se pueden crear más volúmenes y sistemas de archivos a partir de esos volúmenes.