Show Table of Contents
A.3. Soporte de mapeador de dispositivo para el Gestor de dispositivos udev
El papel principal del gestor de dispositivos
udev
es el de proveer una forma dinámica para configurar los nodos en el directorio /dev
. La creación de estos nodos está dirigida por la aplicación de las reglas udev
en el espacion de usuario. Estas reglas se procesan en eventos udev
enviados directamente desde el kernel como resultado de la adición, remoción o cambio de dispositivos particulares. Así se proporciona un mecanismo central y conveniente para soporte de conexión en caliente.
Además de crear nodos reales, el gestor de dispositivo
udev
puede crear enlaces simbólicos también con sus propios nombres, proporcionando a los usuarios la libertad de escoger su propio nombre personalizado y la estructura de directorio en el directorio /dev
, en caso de necesidad.
Cada evento
udev
contiene información básica sobre el dispositivo que está siendo procesado, tal como su nombre, el subsistema al que pertenece, el tipo de dispositivo, su número mayor e inferior utilizado y el tipo del evento. De acuerdo con esto, y teniendo la posibilidad de acceder a toda la información hallada en el directorio /sys
que también es accesible dentro de las reglas udev
, los usuarios pueden utilizar filtros sencillos basados en esta información y ejecutar las reglas condicionalmente con base en esta información.
El gestor de dispositivo
udev
también proporciona una forma centralizada de establecer los permisos de nodos. Un usuario puede facilmente agregar un conjunto de reglas personalizado para definir los permisos para cualquier dispositivo especificado por cualquier bit de información que está disponible mientras procesa el evento.
También es posible agregar directamente ganchos de programa en reglas
udev
. El gestor de dispositivo udev
puede llamar estos programas para proveer más procesamiento necesario para maneja el evento. También, el programa puede exportar variables de entorno como resultado de este procesamiento. Los resultados proporcionados pueden utilizarse más adelante en las reglas como fuente complementaria de información.
Cualquier software que utilice la biblioteca
udev
puede recibir y procesar eventos udev
con toda la información que está disponible, por lo tanto el procesamiento no esá ligado al demonio udev
unicamente.
A.3.1. integración udev con el Mapeador de Dispositivos
En RHEL 6, el Mapeador de Dispositivo proporciona soporte directo para integración
udev
. De esta manera sincroniza el Mapeador de Dispositivo con todo el procesamiento udev
relacionado con dispositivos de Mapeador de Dispositivo, incluyendo dispositivos LVM. La sincronización es necesaria porque la aplicación de reglas en el demonio udev
es una forma de procesamiento paralelo con el programa que es la fuente de los cambios de dispositivos (tales como dmsetup
y LVM). Sin este soporte, era un problema común para el usuario intentar retirar un dispositivo que estaba aún abierto y procesado por reglas udev
como resultado de un cambio de evento previo; esto era en particular común cuando había un tiempo muy corto entre cambios para ese dispositivo.
El lanzamiento de RHEL 6 proporciona oficialmente reglas
udev
soportadas para dispositivos de Mapeador de Dispositivo en general y para LVM. Tabla A.1, “Reglas udev para Dispositivos de Mapeador de Dispositivo” resume dichas reglas, las cuales se instalan en /lib/udev/rules.d
.
Tabla A.1. Reglas udev para Dispositivos de Mapeador de Dispositivo
Nombre de archivo | Descripción | ||
---|---|---|---|
10-dm.rules |
| ||
11-dm-lvm.rules |
| ||
13-dm-disk.rules | Contiene reglas para aplicar a dispositivos de Mapeador de Dispositivo en general y crea symlinks en los directorios /dev/disk/by-id , /dev/disk/by-uuid /dev/disk/by-uuid . | ||
95-dm-notify.rules | Contiene la regla para notificar el proceso de espera mediante libdevmapper (justo como LVM y dmsetup ). La notificación se hace después de que se aplican todas las reglas anteriores para asegurarse de que todo el procesamiento udev esté completo. Luego, el proceso notificado se reanuda. |
Puede agregar reglas de permisos personalizadas por medio del archivo
12-dm-permissions.rules
. Este archivo no está instalado en el directorio /lib/udev/rules
; se encuentra en el directorio /usr/share/doc/device-mapper-version
.El archivo 12-dm-permissions.rules
es una plantilla que contiene algunos consejos de cómo establecer los permisos, basados en algunas reglas coincidentes dadas como ejemplo; el archivo contiene ejemplos para situaciones más comunes. Puede editar este archivo y colocarlo manualmente en el directorio /etc/udev/rules.d
donde sobrevivirá actualizaciones, por lo que la configuración permanecerá.
Estas reglas establecen todas las variables básicas que podrían ser utilizadas por otras reglas durante el procesamiento de eventos.
Las siguientes variables están establecidas en 10-dm.rules:
DM_NAME
: nombre de dispositivo de Mapeador de DispositivoDM_UUID
: UUID de dispositivo de Mapeador de DispositivoDM_SUSPENDED
: el estado suspendido del dispositivo del Mapeador de DispositivosDM_UDEV_RULES_VSN
: versión de reglasudev
(principalmente para todas las otras reglas para verificar que variables mencionadas anteriormente sean establecidas por reglas Mapeador de Dispositivo oficiales)
Las siguientes variables se establecen en
11-dm-lvm.rules
:
DM_LV_NAME
: nombre de volumen lógicoDM_VG_NAME
: nombre de grupo de volúmenesDM_LV_LAYER
: nombre de capa de LVM
Todas las variables pueden ser utilizadas en el archivo
12-dm-permissions.rules
para definir un permiso para dispositivos de Mapeador de Dispositivos, como se documentó en el archivo 12-dm-permissions.rules
file.