it-swarm.dev

Adicionando drives a um RAID 10 Array

Como eu cresceria um array RAID10 usando mdadm?

Obviamente, eu precisaria adicionar 2 unidades de cada vez, ou teriam que ser 4 unidades?

Tenho a sensação de que é apenas uma má ideia.

Ou seria mais sensato optar apenas pelo RAID5?

11
stuartc

Da última vez que verifiquei, o mdadm não permite --grow raid10. Eu dei uma olhada na página de manual do mdadm agora e ainda diz: Opções de crescimento atualmente suportadas, incluindo alterar o tamanho ativo dos dispositivos componentes e alterar o número de dispositivos ativos em níveis de RAID 1/4/5/6, alterar o nível de RAID entre 1, 5, e 6, alterando o tamanho do bloco e o layout para RAID5 e RAID5, bem como adicionar ou remover um bitmap de intenção de gravação.

5
Stingray

Para aumentar o RAID 10, você precisa do mdadm na versão min. 3.3 e kernel versão min 3.5. Você também precisa de um número par de discos - os não emparelhados só podem funcionar como sobressalentes ou, eventualmente, crescer para o modo degradado (não testado).

Aqui vai o exemplo de crescimento do RAID 10 de 4 drives para 6 usando mdadm 3.3-2ubuntu2 @ Linux 4.2.0-10-generic. Testado com dados ext4 nele, o sistema de arquivos foi desmontado, ext4 foi estendido após o crescimento do RAID sem nenhum problema.

~$ cat /proc/mdstat
md126 : active raid10 sdd1[1] sdc1[0] sdf1[3] sde1[2]
976428032 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
bitmap: 0/8 pages [0KB], 65536KB chunk

~$ Sudo mdadm /dev/md126 --add /dev/sdi1 /dev/sdj1
mdadm: added /dev/sdi1
mdadm: added /dev/sdj1
~$ Sudo mdadm --grow /dev/md126 --raid-devices=6

~$ cat /proc/mdstat
md126 : active raid10 sdj1[5] sdi1[4] sdd1[1] sdc1[0] sdf1[3] sde1[2]
1464642048 blocks super 1.2 512K chunks 2 near-copies [6/6] [UUUUUU]
bitmap: 0/6 pages [0KB], 131072KB chunk
16
Cieniek

Sei que tem mais de um ano, mas alguém pode achar isso útil ...

Você pode expandir um array raid 10, mas não como você espera. Você teria que aninhar vários níveis de ataque. Isso pode ser feito com mdadm em 2 unidades no raid 10, o que tem um desempenho bastante bom dependendo do layout, mas você teria que fazer várias matrizes de 2 RAID 10 de disco e anexá-las ao nó lógico. Em seguida, para expandir, adicione mais alguns e risque-os. Se esse for o seu caso de uso (precisando expandir muito), seria sensato usar uma matriz de paridade, que pode ser aumentada.

Essas são as limitações que você obtém com o raid 10, enquanto mantém um melhor desempenho geral de leitura/gravação. E um esclarecimento, raid 5/6 absolutamente não "Em geral, fornece melhor desempenho de gravação ...". O Raid 5/6 tem seus próprios prós/contras, assim como o raid 10, mas o desempenho de gravação não é um pró para o raid 5/6.

Além disso, você não especificou o tamanho de suas unidades, mas tome cuidado com o raid 5 em novas unidades grandes. Porém, se você for cuidadoso, poderá se recuperar de um erro de leitura irrecuperável, há o risco de tempo de inatividade e a possibilidade de não ser capaz de se recuperar.

--edit para adicionar informações-- Use ferramentas como hdparm (hdparm -i) e lshw para obter os números de série junto com o nome do dispositivo (/ dev/sda) quando houver uma falha. Isso garantirá que você remova o dispositivo correto ao substituí-lo. Seta para cima no comentário de Travis, pois é muito correto e um layout agradável, mas como sempre, pondera os prós e contras de cada solução.

9
edong23

Algumas ótimas notícias do anúncio de lançamento do mdadm 3.3:

Este é um novo lançamento importante, então não se surpreenda se houver alguns problemas ...

Alguns destaques são:

...

  • Matrizes RAID10 pode ser remodelado para alterar o número de dispositivos, altere o tamanho do bloco ou altere o layout entre ' próximo a 'e' deslocamento '. Isso sempre mudará o data_offset e falhará se não houver espaço para o data_offset ser movido.

...

De acordo com esta resposta em U&L, você precisará de pelo menos o Linux 3.5 também.

9
user84636

Eu sei que dá mais trabalho e pode ficar confuso, mas você sempre pode riscar vários espelhos.

Por exemplo, acabei de configurar uma matriz 10 de RAID de 4 unidades e depois quero adicionar outra matriz 10 de RAID de 4 unidades. Basta usar o mdadm para criar uma nova matriz RAID 10 nas novas unidades. Você pode então criar outro array 0 raid usando os dois dispositivos raid existentes. No entanto, eu usaria os recursos do lvm para criar a distribuição, mantendo assim as configurações do mdadm e os dispositivos/dev/md em um estado fácil de entender. Qualquer um dos métodos funcionaria, e provavelmente há mais, mas é isso que eu poderia fazer de cabeça.

6
Travis

Você não pode aumentar um array RAID10, isso é verdade. Mas você pode começar com duas unidades (sem redundância neste ponto) e, posteriormente, adicionar mais duas. Usei esse método para mudar de uma matriz RAID5 com quatro unidades de disco para RAID10 com quatro unidades de disco.

Eu degradei o RAID5 e removi um disco do array. Isso me deu dois discos de uso gratuito. Então criei um array RAID10 com algo parecido com 'mdadm --create --level 10/dev/md0/dev/sda1 ausente/dev/sdc1 ausente'. Isso foi o suficiente para iniciar a matriz.

Quando movi os dados do arranjo RAID5 degradado para o arranjo RAID10, adicionei dois discos RAID5 ao arranjo RAID10 e acrescentei um extra como sobressalente.

Provavelmente, é uma boa ideia falar sobre o impacto que isso possa ter causado no desempenho de alguém que tenha mais conhecimento do que eu. Mas o principal motivo da minha postagem é mostrar que é possível começar com RAID10 e duas unidades.

Nota: leia a seguinte postagem do fórum que pergunta e responde se a ordem do disco no mdadm importa .

3
drumfire