Por alguma razão, quando tento renomear uma matriz mdadm raid para um nome textual, a alteração não é necessária.
Eu tentei o conselho desta questão de falha no servidor , mas sem sucesso.
~$ mdadm --version
mdadm - v3.1.4 - 31st August 2010
~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Sep 27 08:32:32 2011
Raid Level : raid1
Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Oct 2 17:59:37 2011
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : omicron:0 (local to host omicron)
UUID : 75c4a555:482aecd0:ade70dfc:1547926a
Events : 17
Number Major Minor RaidDevice State
0 8 80 0 active sync /dev/sdf
1 8 96 1 active sync /dev/sdg
~$ sudo mdadm --stop /dev/md0
mdadm: stopped /dev/md0
~$ sudo mdadm --assemble /dev/md/alpha --update=name /dev/sd[gf]
mdadm: /dev/md/alpha has been started with 2 drives.
~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Sep 27 08:32:32 2011
Raid Level : raid1
Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Sun Oct 2 18:06:11 2011
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : omicron:0 (local to host omicron)
UUID : 75c4a555:482aecd0:ade70dfc:1547926a
Events : 17
Number Major Minor RaidDevice State
0 8 80 0 active sync /dev/sdf
1 8 96 1 active sync /dev/sdg
~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdf[0] sdg[1]
1953513424 blocks super 1.2 [2/2] [UU]
md126 : active (auto-read-only) raid1 sdd[0] sde[1]
1953513424 blocks super 1.2 [2/2] [UU]
md127 : active (auto-read-only) raid1 sdb[0] sda[1]
976762496 blocks [2/2] [UU]
unused devices: <none>
Como você pode ver, o nome ainda é relatado omicron:0
e alcançável através do arquivo de dispositivo antigo. Tentar sudo mdadm --detail /dev/md/alpha
funcionará e reportará o mesmo nome errado até a próxima reinicialização, quando ele parar de funcionar.
Parece que, ao descobrir qual nome colocar, o mdadm fica confuso e apenas cria o arquivo do dispositivo.
A PARTE, DE LADO
Existe alguma maneira de fazer o mdadm forçar uma atualização da parte do nome do superbloco (ou seja, definir explicitamente o nome que você deseja que o array) sem ter que recriar explicitamente o superbloco? (ie sudo mdam --zero-superblock /dev/sd[fg]; sudo mdadm --create /dev/md/alpha --raid-devices=2 --level=1 --assume-clean --name=alpha /dev/sd[fg]
)
O problema é que, após a reinicialização, apesar de ter sido adicionado ARRAY /dev/md/alpha metadata=1.2 name=omicron:alpha UUID=c66a267...
ao mdadm.conf, o arquivo do dispositivo nomeado desaparece e é substituído por um de formato padrão. (/ dev / md125 ou similar)
Como faço para que uma matriz mdadm renomeada mantenha seu nome? - Ou seja - Como posso fazer o ubuntu persistir os arquivos do dispositivo entre as botas?
sudo mdadm --assemble /dev/md/alpha --name={newname} --update=name /dev/sd[gf]
Esperança de que faz sentido ou torna mais claro ....mdadm --stop --scan md127
A maneira de fazer com que o Ubuntu persista a mudança de nome entre as botas é atualizar o initramfs. Após atualizar o nome da matriz e o mdadm.conf, é necessário emitir o seguinte comando:
Todo o processo:
O terceiro comando deve retornar algo como:
Cole o resultado em /etc/mdadm/mdadm.conf (substituindo a linha antiga). Ou execute:
Próxima execução:
Finalmente, reinicie.
Essa discussão foi útil .
fonte
A primeira resposta de pille e NN funciona.
O truque aqui é que, quando você não especifica a
--name
opção, a única renomeação feitamdadm
é atribuir o nome da matriz a partir do número do dispositivo que ele alocou. Nesta pergunta, é 0, então o novo nome da matriz é 0.Como você especifica o nome do dispositivo ("alpha" aqui) a ser usado no comando assemble, ele criará e usará o nome do dispositivo. Porém, no início automático,
mdadm
cria um dispositivo com base no nome que vê no superbloco, ou seja, nesse caso, 0; portanto, o nome do dispositivo especificado no comando assemble é perdido.Para fazer com que seu nome mude de forma consistente e consistente, você deve usar o mesmo nome na última parte do nome do dispositivo e no novo nome da matriz. Nesse caso, para o dispositivo "alpha", você precisaria usar esta linha de comando:
Você também pode alterar o nome do host. Para fazer isso, você deve declará-lo explicitamente usando a
-name=<hostname>:<array_name>
sintaxe.Isso pode ser útil, por exemplo, após a alteração do nome da máquina.
fonte
Parece que a resposta que você procura está correta na página de manual do mdadm
e para montar
O que explica por que o atributo name não fica fixo depois de definido. Se você conseguiu fazê-lo funcionar, aceite um comentário que resposta foi o que você fez. Como alternativa, você sempre pode criar links simbólicos usando uma regra udev e o UUID da matriz como uma âncora.
Não vejo sentido em adicionar o nome falso ao /etc/mdadm.conf, você já está usando o UUID, que é o nome do array canônico. Adicionar outra variável, que você considere adequada para alterar, é apenas manutenção desnecessária e pede problemas, por exemplo, a matriz falha ao iniciar.
Além dessas observações, o melhor lugar para entender por que você simplesmente não pode atualizar o nome em tempo de execução é executar ping na lista de discussão linux-raid.
fonte
depois de alterar o nome, você tentou atualizar o seu
mdadm.conf
?fonte
O mdadm tem um erro quando os volumes de invasão são criados internamente com um espaço em seu nome. Esses volumes não serão montados corretamente devido a um erro de formatação no arquivo /etc/mdadm/mdadm.conf gerado. Você precisa renomeá-los lá, mas não será persistente. Portanto, é necessário renomear os nomes internos ... mas não é suportado em todos os controladores RAID que bloqueiam seus metadados e não suportam a opção de nome. Não vejo como renomear esses volumes (mesmo que sejam referenciados internamente por seu UUID, os nomes são aqueles usados pelo Linux; o Windows, pelo contrário, não possui esse bug e monta perfeitamente volumes RAID que contêm espaços em seus nomes)!
fonte