Adicionando unidades a uma matriz RAID 10

10

Como eu cresceria uma matriz RAID10 usando o mdadm?

Obviamente, eu precisaria adicionar 2 drives por vez, ou teria que ser 4 drives?

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

Ou seria mais sensato optar pelo RAID5?

    
por stuartc 17.07.2011 / 16:48

6 respostas

4

Da última vez que eu verifiquei, o mdadm não vai deixar você --grow raid10. Eu olhei para a manpage de mdadm agora e ainda diz: Opções de crescimento atualmente suportadas, incluindo alteração do tamanho ativo de dispositivos de componentes e alteração do número de dispositivos ativos em níveis de RAID em 1/4/5/6, alterando o nível de RAID entre 1, 5 e 6, alterando o tamanho do bloco e o layout para RAID5 e RAID5, além de adicionar ou remover um bitmap de intenção de gravação.

    
por 17.07.2011 / 17:02
11

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

Aqui vai o exemplo do crescimento do RAID 10 de 4 drives para 6 usando o mdadm 3.3-2ubuntu2 @ Linux 4.2.0-10-generic. Testado com dados ext4, o sistema de arquivos foi desmontado, o ext4 foi estendido depois que o RAID cresceu 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
    
por 01.10.2015 / 12:26
9

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

Você pode expandir um array do RAID 10, mas não como você está esperando. Você teria que aninhar vários níveis de ataque. Isto pode ser feito com o mdadm em 2 drives em raid 10, que tem um desempenho bastante bom dependendo do layout, mas você teria que fazer múltiplos arrays de 2 raid 10 de disco, e então conectá-los ao nó lógico. Em seguida, para expandir, adicione mais alguns e divida isso. Se esse é o seu caso de uso (precisando expandir muito), é recomendável usar um array de paridade, que pode ser criado.

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

Além disso, você não especificou o tamanho de suas unidades, mas cuidado com o RAID 5 em novas unidades grandes. Embora se você for cuidadoso, pode recuperar de um erro de leitura irrecuperável, arrisca o tempo de inatividade e a possibilidade de não conseguir se recuperar.

- edite para adicionar info-- 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 bom layout, mas como de costume, pondere os prós e contras de todas as soluções.

    
por 04.01.2013 / 17:44
9

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

This is a major new release so don't be too surprised if there are a few issues...

Some highlights are:

...

  • RAID10 arrays can be reshaped to change the number of devices, change the chunk size, or change the layout between 'near' and 'offset'. This will always change data_offset, and will fail if there is no room for data_offset to be moved.

...

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

    
por 01.03.2014 / 22:19
6

Eu sei que é mais trabalho e pode ser confuso, mas você sempre pode separar vários espelhos.

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

    
por 18.10.2012 / 17:24
4

Você não pode crescer um array RAID10, isso é verdade. Mas você pode iniciar com duas unidades (ao custo de nenhuma redundância neste ponto) e, posteriormente, adicionar mais duas. Eu usei esse método para alternar de um array RAID5 com quatro unidades de disco para RAID10 com quatro unidades de disco.

Eu degradou o RAID5 e removi um disco do array. Isso me deu dois discos que estavam livres para usar. Então eu criei um array RAID10 com algo ao longo das linhas de 'mdadm --create --level 10 / dev / md0 / dev / sda1 missing / dev / sdc1 missing'. Isso foi o suficiente para iniciar o array.

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

É provavelmente uma boa ideia se alguém mais qualificado do que eu possa falar sobre qualquer impacto no desempenho que possa ter tido. Mas a principal razão para o meu post é mostrar que é possível começar com o RAID10 e duas unidades.

Nota: leia a seguinte mensagem do fórum que pergunta e responde se a ordem do disco no mdadm é importante .

    
por 10.12.2011 / 00:52