Você pode usar a entrada DEVICE
em mdadm.conf
para considerar apenas nomes de dispositivos específicos e ignorar todo o resto. Por padrão, mdadm
aceita todos os dispositivos de bloco listados em /proc/partitions
.
DEVICE /dev/emc*
Infelizmente, isso só pode ser considerado uma solução ruim. Ainda é uma grande confusão, pois há muitos casos que podem acabar usando o dispositivo errado.
Este também é um problema que você encontra em dispositivos de loop:
# losetup --find --show /dev/sdi2
/dev/loop4
Agora, /dev/loop4
e /dev/sdc3
são idênticos, o que também significa que eles compartilham o mesmo UUID:
# blkid /dev/sdi2 /dev/loop4
/dev/sdi2: UUID="0a73725c-7e29-4171-be5d-be31d56bf8fe" TYPE="ext2"
/dev/loop4: UUID="0a73725c-7e29-4171-be5d-be31d56bf8fe" TYPE="ext2"
Agora, qual dispositivo deve ser usado quando você mount UUID=0a73725c-7e29-4171-be5d-be31d56bf8fe
?
# mount UUID=0a73725c-7e29-4171-be5d-be31d56bf8fe /mnt/tmp
# df -h /mnt/tmp
Filesystem Size Used Avail Use% Mounted on
/dev/loop4 2.0G 490M 1.4G 26% /mnt/tmp
Acabou escolhendo o dispositivo de loop neste caso, o que pode ou não ter sido minha intenção.
A duplicação de dispositivos como esse é um problema enorme porque, de repente, os UUIDs supostamente únicos não são mais exclusivos e, portanto, o dispositivo errado pode acabar sendo usado.
O LVM também se depara com esse problema. Ele é descrito em detalhes aqui: link
Infelizmente, essa documentação também não fornece uma solução adequada, ela simplesmente sugere uma solução alternativa de filtro de dispositivo.Para uma solução adequada, seria melhor evitar completamente ter dois dispositivos de bloco diferentes representando os mesmos dados. Geralmente isso envolve colocar dados em um deslocamento. Eu não sei se o multipath tem um recurso de deslocamento por padrão.
Com as tabelas de partições, mdadm, LUKS, LVM, você geralmente obtém o offset de graça, já que eles têm um cabeçalho no início do dispositivo pai, e os dispositivos de bloqueio secundários que eles fornecem são diferentes disso.
Assim, em / dev / sdx você só vê a tabela de partição, / dev / sdx1 você vê apenas o cabeçalho mdadm, / dev / md1 você vê apenas o cabeçalho LUKS, / dev / mapper / cryptomd1 você só vê o cabeçalho LVM e / dev / VG / LV você só vê o sistema de arquivos porque cada um desses dispositivos é deslocado de seus dados pais.
Se você fizesse o mesmo para a configuração de vários caminhos, os metadados do mdadm seriam visíveis apenas no /dev/emcpowera
, mas não no /dev/sdk
, e não haveria maneira de os últimos serem montados em um RAID por engano. / p>