Trabajar con etiquetas o tags de LVM en Red Hat
En la entrada de hoy veremos como trabajar con etiquetas o tags de LVM en sistemas Red Hat y similares. La idea de esta entrada es un encontronazo que tuve con un clúster de RHEL y cómo lo solventé revisando y actualizando dichas etiquetas. Pero empecemos por el principio.
Si os interesa también podéis escuchar el episodio de podcast:
Etiquetas o tags en LVM
Una etiqueta LVM es una palabra que se puede utilizar para agrupar objetos de LVM2 del mismo tipo. Las etiquetas se pueden adjuntar a objetos como volúmenes físicos, grupos de volúmenes y volúmenes lógicos. Estas se pueden adjuntar a los hosts en una configuración de clúster, cómo os he comentado antes.
Las etiquetas se pueden dar desde la línea de comandos en lugar de los argumentos PV, VG o LV. Es importante remarcar que estas deben tener el prefijo @ para evitar ambigüedades. Cada etiqueta se expande reemplazándola con todos los objetos que poseen esa etiqueta y que son del tipo esperando por su posición en la línea de comandos.
Estas etiquetas LVM son cadenas que pueden tener hasta 1024 caracteres. Las etiquetas no pueden comenzar con guion. Una etiqueta válida solo puede constar de un rango limitado de caracteres. Los permitidos son [A-Za-z0-9_+.-]
. A partir de la versión 6.1 de RHEL, la lista de caracteres permitidos se amplio y las etiquetas pueden contener los caracteres /, =, !, :, # y &
.
Solo se pueden etiquetas los objetos de un grupo de volúmenes. Los volúmenes físicos pierden sus etiquetas si se eliminan de un grupo de volúmenes; esto se debe a que las etiquetas se almacenan como parte de los metadatos del grupo de volúmenes y se eliminan cuando se elimina el volumen físico.
Trabajar con etiquetas o tags en LVM
Fichero de configuración
Es importante consultar el fichero de configuración /etc/lvm/lvm.conf
, y la sección donde se indican como están configuradas las etiquetas.
# If volume_list is defined, each LV is only activated if there is a # match against the list. # "vgname" and "vgname/lvname" are matched exactly. # "@tag" matches any tag set in the LV or VG. # "@*" matches if any tag defined on the host is also set in the LV or VG # # volume_list = [ "vg1", "vg2/lvol1", "@tag1", "@*" ]
Añadir etiquetas LVM
El comando vgchange se utiliza para añadir o eliminar etiquetas. Por ejemplo, si queremos añadir la etiqueta lvm_test_etiqueta
en el grupo de volúmenes datos_vg
# vgchange --addtag lvm_test_etiqueta /dev/datos_vg Volume group "datos_vg" successfully changed
Podemos verificar el cambio utilizando el comando vgs
# vgs -o vg_tags /dev/vg00
VG Tags
lvm_test_etiqueta
O bien listar los tags de todos los volúmenes, así:
vgs -o +vg_tags
Modificamos el archivo de configuración /etc/lvm/lvm.conf
y vamos a la sección, como se muestra a principio de la entrada y agregamos una línea volume_list
similar a la siguiente:
# vi /etc/lvm/lvm.conf ... volume_list = ["@lvm_test_etiqueta"] ...
Eliminar etiquetas LVM
Para eliminar etiquetas, debemos añadir el parámetro —deltag
al comando vgchange
, de la siguiente manera:
# vgchange --deltag lvm_test_etiqueta /dev/datos_vg Volume group "vg00" successfully changed
Y verificamos:
# vgs -o vg_tags /dev/datos_vg
VG Tags
Si no vamos a utilizar más una etiqueta debemos eliminarla del fichero de configuración /etc/lvm/lvm.conf
, esto es muy importante, si no queremos liarla parda.
Añadir y eliminar etiquetas LVM en volúmenes lógicos
Nos podemos encontrar con la necesidad de etiquetar un volumen lógico particular en lugar de un grupo de volúmenes completo. Esto se puede hacer usando los mismos comandos. Solo debemos utilizar lvchange
en lugar vgchange
, por ejemplo para mostrar información del volumen:
# lvs -o lv_tags
LV Tags
Y esto es todo. Podéis consultar las fuentes consultadas para ampliar información: