Usando UUIDs com mdadm

10

Estou usando a GPT como meu esquema de particionamento. Verifico os UUIDs das minhas partições:

# ls -l /dev/disk/by-partuuid/
total 0
lrwxrwxrwx 1 root root 10 Oct 18 22:39 0793009a-d460-4f3d-83f6-8103f8ba24e2 -> ../../sdb3
lrwxrwxrwx 1 root root 10 Oct 18 22:39 13f83c47-ad62-4932-8d52-e93626166e7f -> ../../sdc3
lrwxrwxrwx 1 root root 10 Oct 18 22:39 1b247b1f-0b7b-419e-bc3b-0f90cbadb87c -> ../../sdc2
lrwxrwxrwx 1 root root 10 Oct 18 22:39 224d5933-7a23-4833-b785-79a67c9b9306 -> ../../sda1
lrwxrwxrwx 1 root root 10 Oct 18 22:39 2ff625b2-b96b-4ce5-b752-57cdf7092258 -> ../../sda3
lrwxrwxrwx 1 root root 10 Oct 18 22:39 449956f9-7289-49ed-9a37-ed6be9264d1c -> ../../sdb1
lrwxrwxrwx 1 root root 10 Oct 18 22:39 a2a95e45-7e4c-4b20-a2bd-66d96e737590 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Oct 18 22:39 a8c07f74-9d6d-4f45-9453-dd2e6998f100 -> ../../sda2
lrwxrwxrwx 1 root root 10 Oct 18 22:39 c2c9e94c-9c73-4d6e-a4ec-2229f56152e8 -> ../../sdc1

E adicione /dev/sdc2usando seu UUID:

# mdadm /dev/md0 --add /dev/disk/by-partuuid/1b247b1f-0b7b-419e-bc3b-0f90cbadb87c
mdadm: added /dev/disk/by-partuuid/1b247b1f-0b7b-419e-bc3b-0f90cbadb87c

Mas quando olho para os detalhes da matriz RAID, ela reporta em /dev/sdc2vez do UUID.

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Thu Oct 18 21:52:43 2012
     Raid Level : raid1
     Array Size : 1048564 (1024.16 MiB 1073.73 MB)
  Used Dev Size : 1048564 (1024.16 MiB 1073.73 MB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Fri Oct 19 15:57:19 2012
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : cow:0  (local to host cow)
           UUID : 9e691db1:f8fcc7d8:f56d9c11:1c202693
         Events : 47

    Number   Major   Minor   RaidDevice State
       2       8       34        0      active sync   /dev/sdc2
       1       8       18        1      active sync   /dev/sdb2
  1. É impossível construir uma matriz RAID usando UUIDs?
  2. Ou ele está usando o UUID, mas informa o nome normal para aumentar a legibilidade? Nesse caso, como posso saber?
  3. Eu gostaria de usar os UUIDs para poder mover os discos livremente na máquina sem quebrar nada. Isso não soa como uma boa ideia?
Excluído
fonte

Respostas:

13

O mdraid sempre permite mover discos livremente na máquina, independentemente de como você adiciona o disco à matriz. Ele rastreia os discos pelos metadados RAID (superblocos) armazenados no disco.

Observe que isso pressupõe que o mdadm pode encontrar os discos ao montar as matrizes. O padrão (especificado em /etc/mdadm/mdadm.conf) é normalmente DEVICE partitions, o que significa examinar todas as partições (em todos os discos) verificando se há superblocos de RAID. Ele verifica a correspondência entre o nome da matriz ou o UUID (dependendo do que você diz nesse arquivo de configuração), observe como os dois estão em sua --detailsaída.

Exemplo:

DEVICE partitions
:
ARRAY /dev/md0 metadata=1.2 UUID=9e691db1:f8fcc7d8:f56d9c11:1c202693

Quando instruído a montar /dev/md0, o mdadm varrerá todas as partições no sistema procurando por superblocos 1.2 com o UUID 9e691db1: f8fcc7d8: f56d9c11: 1c202693. Ele lerá o número do dispositivo etc. de cada um e usará essas informações para montar a matriz.

Você só mudaria a DEVICElinha se a digitalização de todas as partições fosse cara. Por exemplo, se você tiver centenas deles, pela rede. Em seguida, você pode listar os dispositivos relevantes lá, da maneira que desejar (por UUID deve funcionar bem).

derobert
fonte
Obrigado! Por padrão, o meu /etc/mdadm/mdadm.confdiz # by default (built-in), scan all partitions (/proc/partitions) and all containers for MD superblocks. alternatively, specify devices to scan, using wildcards if desired.. A DEVICElinha é superada por padrão no Ubuntu. Mas acho que o comportamento padrão será muito perfeitamente! (Eu não tenho muito, ele terá que digitalizar) #
1916 Excluído
Como saber o UUID do superbloco para colocar no arquivo de configuração?
Dims
O @Dims mdadm fornecerá o UUID para o array, o blkid e várias outras ferramentas para os dispositivos de bloco ... Talvez faça uma pergunta sobre isso com detalhes?
Derobert # 4/14