Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
A.3. Suporte do Mapeador de Dispositivo para o Gerenciador de Dispostivo udev
A função primária do gerenciador de dispositivo
udev
é fornecer uma maneira dinâmica de configurar nós no diretório /dev
. A criação destes nós é direcionada pela aplicação de regras udev
no espaço do usuário. Estas regras são processadas em eventos udev
enviados do kernel diretamente como um resultado de adicionar, remover ou alterar particulares dispositivos. Isto fornece um mecanismo conveniente e central para suporte hotplugging.
Além de criar os nós, o gerenciador de dispositivos
udev
é também capaz de criar qualquer link simbólico com seus próprios nomes, fornecendo aos usuários a liberdade de escolher seu um nome personalizado e estrutura de diretório no diretório /dev
, se necessário.
Cada evento
udev
contém informações básicas sobre o dispositivo sendo processado, tais como seu nome, o sub sistema que pertence, o tipo de dispositivo, seus números maiores e menores usados e o tipo de evento. Dado isso e tendo a possibilidade de acessar toda a informação encontrada no diretório /sys
que é também acessível dentro das regras udev
, os usuários são capazes de utilizar filtros simples baseados nestas informações e rodar as regras condicionalmente baseadas nas mesmas.
O gerenciador de dispositivo
udev
também fornece uma maneira centralizada de configurar permissões nos nodos. Um usuário pode fácilmente adicionar um conjunto de regras personalizadas para definir as permissões para qualquer dispositivo especificado com qualquer parte de informação disponível enquanto o evento está em processamento.
Também é possível adicionar ganchos de programas diretamente nas regras
udev
. O gerenciador de dispositivos udev
pode chamar estes programas para fornecer maior processamento que seja necessário para manusear o evento. Além disso, o programa pode exportar variáveis de ambiente, como resultado deste processamento. Qualquer resultado dado pode ser usado em outras regras como uma fonte suplementária de informação.
Qualquer software usando a bilbioteca
udev
é capaz de receber e processar eventos udev
com todas as informações disponíveis, então o processamento não é vinculado somente ao daemon udev
.
A.3.1. Integração do udev com o Mapeador de Dispositivo
No RHEL 6, o Mapeador de Dispositivo fornece suporte direto para integração
udev
. Isto sincroniza do Mapeador de Dispositivos com todos processamentos udev
relacionados aos mapeadores de dispositivos, incluindo dispositivos LVM. A sincronização é necessária uma vez que a aplicação de regra no udev
daemon é uma forma de processamento paralela com o programa que é a fonte das mudanças dos dispositivos (como dmsetup
e LVM). Sem este suporte, era um problema para um usuário tentar remover um dispositivo que estava ainda aberto e processado pelas regras udev
como um resultado de mudanças de eventos anteriores; isso era particularmente comum quando havia um curto tempo entre mudanças deste dispositivo.
A versão RHEL 6 fornece suporte oficial para regras
udev
em Dispositivos de Mapeamento em geral e também para LVM. A Tabela A.1, “Regras do udev para os Dispositivos de Mapeador de Dispositivo” resume estas regras, que estão instaladas em /lib/udev/rules.d
.
Tabela A.1. Regras do udev para os Dispositivos de Mapeador de Dispositivo
Nome de Arquivo | Descrição | ||
---|---|---|---|
10-dm.rules |
| ||
11-dm-lvm.rules |
| ||
13-dm-disk.rules | Contém regras para serem aplicadas para todos Mapeadores de Dispositivos em geral e cria symlinks no /dev/disk/by-id , /dev/disk/by-uuid e diretórios /dev/disk/by-uuid . | ||
95-dm-notify.rules | Contém a regra para notificar o processo de espera usando libdevmapper (assim como o LVM e dmsetup ). A notificação é feita após que todas as regras anteriores são aplicadas, para assegurar que qualquer processamento udev seja completo. Processo notificado é então retomado. |
Você pode adicionar regras de permissões personalizadas por meio do arquivo
12-dm-permissions.rules
. Este arquivo não é instalado no diretório /lib/udev/rules
. Ele é encontrado no diretório /usr/share/doc/device-mapper-version
. O arquivo 12-dm-permissions.rules
é um molde contendo dicas de como configurar as permissões, baseadas por exemplo em algumas regras correspondentes; o arquivo contém exemplos de algumas situações comuns. Você pode editar este arquivo e colocar manualmente no diretório /etc/udev/rules.d
onde ele vai sobreviver à atualizações, então as configurações permanecerão.
Estas regras definem todas as variantes que poderiam ser usadas por outras regras enquanto processava os eventos.
As seguintes variáveis são definidas em 10-dm.rules:
DM_NAME
: Nome do dispositivo do Mapeador de DispositivoDM_UUID
: UUID do dispositivo do Mapeador de DispositivoDM_SUSPENDED
: o estado suspenso do dispostivo do Mapeador de DispositivoDM_UDEV_RULES_VSN
: Versão de regrasudev
(este é principalmente para todas as outras regras para verificar que as variáveis citadas anteriormente são definidas diretamente pelas regras oficiais do Mapeador de Dispositivo)
As seguintes variáveis estão definidas em
11-dm-lvm.rules
:
DM_LV_NAME
: nome do volume lógicoDM_VG_NAME
: nome do grupo de volumeDM_LV_LAYER
: nome da camada LVM
Todas essas variáveis podem ser usadas no arquivo
12-dm-permissions.rules
para definir a permissão de específicos dispositivos de Mapeadores de Dispositivos, conforme documentado no arquivo 12-dm-permissions.rules
.