Qual é a diferença entre criar uma matriz mdadm usando partições ou todos os discos diretamente


26

Alguém pode me explicar, qual é a diferença entre criar uma mdadmmatriz usando partições ou todos os discos diretamente? Supondo que pretendo usar todas as unidades. Observe que eles estão com o GPT.

Imagine o RAID6 criado de duas maneiras:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1

ou:

mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Existe alguma diferença?

EDIT1: Quero dizer, por exemplo, operações de confiabilidade, capacidade de gerenciamento ou recuperação nessas matrizes, etc.

EDIT2: Eu uso unidades de diferentes fabricantes. Mas essa não é realmente a questão. Todos eles têm exatamente o mesmo tamanho, eu entendo que pode haver fabricantes fabricando unidades de tamanhos ligeiramente diferentes. Mas, para o bem desta pergunta, vamos supor que eles sejam do mesmo tamanho.

EDIT3: Tipo de exoneração de responsabilidade: Até agora, estou sempre particionando as unidades.


2
Eu sempre fui curioso sobre isso, mas nunca perguntei a ninguém. Uma diferença que vejo é que, usando os discos particionados (sda1, etc), você obtém um pouco menos de espaço em disco (alguns KB), pois a GPT reserva algum espaço para informações da partição.
GMaster

Respostas:


25

A diferença mais importante é que ela permite aumentar a flexibilidade de substituição de disco. É melhor detalhado abaixo, juntamente com várias outras recomendações.

Deve-se considerar o uso de uma partição em vez de todo o disco. Isso deve estar de acordo com as recomendações gerais de configuração de uma matriz e certamente poderá poupar algumas dores de cabeça no futuro, quando novas substituições de disco forem necessárias.

Os argumentos mais importantes são:

Discos de diferentes fabricantes (ou mesmo modelos diferentes da "mesma capacidade" do mesmo fabricante) não têm necessariamente o mesmo tamanho de disco e, mesmo a menor diferença de tamanho, impedem a substituição de um disco com falha por um mais novo se o segundo for menor que o primeiro. O particionamento permite que você contorne isso;

Nota lateral sobre por que usar discos de diferentes fabricantes: Os discos falharão, não se trata de um "se", mas de um "quando". Os discos do mesmo fabricante e do mesmo modelo têm propriedades semelhantes e, portanto, maiores chances de falharem juntos nas mesmas condições e tempo de uso. A sugestão é usar discos de diferentes fabricantes, modelos diferentes e, em especial, que não pertençam ao mesmo lote (considere comprar em lojas diferentes, se você estiver comprando discos do mesmo fabricante e modelo). Não é incomum que uma segunda falha de disco aconteça durante um resotre após uma substituição de disco, quando discos do mesmo lote são usados. Você certamente não quer que isso aconteça com você.

Então, as recomendações:

1) Particione os discos que serão usados ​​com uma capacidade um pouco menor do que o espaço total em disco (por exemplo, eu tenho uma matriz RAID5 de 2 TB e os particionei intencionalmente, gastando cerca de 100 MB em cada). Em seguida, use / dev / sd? 1 de cada um para compor a matriz - Isso adicionará uma margem de segurança caso um novo disco de substituição tenha menos espaço do que os originais usados ​​para montar a matriz quando ela foi criada;

2) Use discos de diferentes fabricantes;

3) Use discos de modelos diferentes se fabricantes diferentes não forem uma opção para você;

4) Use discos de diferentes lotes;

5) Substitua os discos de forma proativa antes que eles falhem e nem todos ao mesmo tempo. Isso pode ser um pouco paranóico e realmente depende da crítica dos dados que você possui. Eu costumo ter discos com 6 meses de diferença de idade entre si;

6) Faça backups regulares (sempre, independentemente de você usar ou não uma matriz). O ataque não serve ao mesmo objetivo de backups. As matrizes garantem alta disponibilidade; os backups permitem restaurar arquivos perdidos (incluindo os que são excluídos acidentalmente ou são danificados por vírus, alguns exemplos de algo que o uso de matrizes não o protegerá).

OBS: Exceto por todo o racional não negligenciável acima, não há muitas diferenças técnicas adicionais entre o uso de / dev / sd? vs / dev / sd? #.

Boa sorte


Na maioria das vezes, isso não está relacionado ...
user1133275

No entanto, acho que o aviso do @Kalavan se refere ao uso de várias partições no mesmo disco que os componentes de uma matriz. Isso certamente não faria muito sentido, pois remove a redundância. Sabemos, porém, que essa não era a intenção da sua pergunta, mas o aviso dele faz sentido de qualquer maneira.
Marcelo

Se o gerenciamento manual das partições parece um aborrecimento, deve-se usar sfdisk -d src | sfdisk tgtousgdisk --backup && sgdisk --load-backup
andyn

7

Outro argumento importante é que algumas placas-mãe podem excluir seus superblocos RAID se você usar dispositivos de disco inteiros e não tomar muito cuidado ao limpá-los ao adicionar discos a uma matriz RAID que já foram dispositivos GPT.

Aprendi isso da maneira mais difícil, quando o UEFI da minha placa mãe ASRock tornou meu RAID inutilizável:

Para se proteger contra isso, sempre execute sgdisk --zapem um disco anteriormente formatado em GPT que você deseja usar para um RAID de todo o dispositivo.

wipefs -a também pode funcionar para limpar todos os tipos de informações de particionamento restantes (não apenas a GPT) antes de adicionar o dispositivo ao disco.


Dito isto, apenas o uso de partições parece uma prática recomendada para tornar isso menos provável .

Eu nunca soube quais eram os argumentos reais para essa melhor prática (além da resposta do @ Marcelo explicando que ele pode lidar com discos de tamanhos ligeiramente diferentes). Agora eu sei.

A propósito, se isso acontecer com você, seus dados não serão perdidos. Você provavelmente pode apenas usar sgdisk --zapo dispositivo e, em seguida, recriar o RAID com, por exemplo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc /dev/sdd(o mdadm informará que ele já detectou dados antigos e pergunta se você deseja continuar reutilizando esses dados). Tentei várias vezes e funcionou, mas ainda recomendo fazer um backup antes de fazer isso.


2

Há algumas postagens citando problemas com o uso de todo o dispositivo como um membro RAID em vez de partição, uma aqui . Eu posso confirmar que esse é o caso.

Então, se você criar RAID utilizando todo o dispositivo (digamos, /dev/sda, /dev/sdb, ... em vez de /dev/sda1, /dev/sdb1...) o dispositivo RAID não faz remontagem após uma reinicialização mesmo se você tiver de configuração salvo sob mdadm.conf. Também existe a possibilidade de substituir o firmware da placa principal ou remover o superbloqueio RAID. Na minha configuração, a execução mdadm --assemble --scan --verbosenão me recupera da configuração do RAID e parece ser o caso do superbloqueio de RAID não estar disponível.


Testei a configuração do RAID1 usando unidades de 2x10 GB dentro do VirtualBox. O RAID foi criado em todo o dispositivo e é remontado após a reinicialização. O problema pode ser aplicável apenas a dispositivos físicos.
Lungten

0

Para evitar futuras dores de cabeça, use partições. Todas as unidades falham, não se trata de "se", mas "quando". Se você estiver usando unidades inteiras, após uma falha na unidade, deverá substituí-lo exatamente pelo mesmo tamanho de modelo. Mesmo alguns MB maiores, devido a diferentes fabricantes ou alterações no processo, qualquer que seja, causarão falha na substituição da unidade.

Usando partições, quando uma das unidades atuais de 2 TB falha, você obtém uma substituição de 4 TB (ou qualquer outra coisa, só precisa ser maior) e cria o mesmo tamanho de partição de 2 TB. Sim, você pode estar perdendo espaço nessa nova unidade grande. Usar o restante dessa unidade como uma partição não-raid pode ser possível, mas pode afetar o desempenho de maneiras estranhas. Após várias falhas e substituições de unidades, você substituirá todas as unidades originais de 2 TB e agora poderá estender sua matriz RAID para usar tamanhos de partição maiores.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.