Criei um RAID 5 baseado em mdadm a partir de seis discos rígidos usando o seguinte comando:
# mdadm --create /dev/md0 --level=5 --raid-devices=5 \
/dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 \
--spare-devices=1 /dev/sdg1
Eu esperava que o array tivesse um hot spare, a saber / dev / sdg1. No entanto, a verificação mdadm --detail
mostra 2 peças de reposição:
# mdadm --detail --scan
ARRAY /dev/md0 metadata=1.2 spares=2 name=...
Além disso, o tamanho da matriz, como mostrado por, df
é de 2 TB, o que corresponderia a apenas quatro das minhas unidades de 500 GB sendo usadas.
Então, o que exatamente é a semântica --spare-devices
? A página do manual afirma que "especifica o número de dispositivos sobressalentes (eXtra) na matriz inicial.", Mas esse não parece ser o caso aqui.
mdadm
software-raid
jstarek
fonte
fonte
mdadm --detail
incluindo a unidade de paridade na contagem de "peças de reposição"). Você pode verificar isso criando um array RAID 6 sem hot spare; se minha teoria for válida, ela também mostrará peças = 2.cat /proc/mdstat
), acho que você verá o número 1. esperadoRespostas:
Essa saída está correta. Você criou um RAID 5 com 5 discos (apenas 4 deles serão "usados" por espaço). E você adicionou uma unidade extra de reposição.
Então você realmente tem um RAID 5 que permite uma falha no disco + uma unidade extra de reposição.
Se o que você deseja é realmente RAID 5 com 6 discos e tem espaço para 5 discos, você precisa alterar seu comando para:
Mas, neste caso, você pode tolerar apenas uma falha de disco, conforme as especificações do RAID 5.
EDIT: Adicionando o link da página oficial de invasão: Você pode ver uma invasão 5 com 6 discos e ela indica como sobressalente = 1: Criação inicial da matriz
ATUALIZAÇÃO: Decidi criar um ataque 5 no meu sistema e o valor sobressalente desaparece quando a matriz está em um estado limpo:
Estado limpo:
Assim, como no comentário do OP, durante a criação inicial do RAID 5, ele possui a unidade sobressalente até que a compilação / sincronização do RAID seja concluída.
fonte
Por uma questão de clareza, agregarei as informações fornecidas por derobert e Alexandre Alves e mais alguns testes meus aqui:
mdadm
O--spare-devices
parâmetro de funciona como afirma a página do manual, ou seja, define o número de unidades "hot spare" em uma matriz. Um "hot spare", como na terminologia RAID normal, não tem nada a ver com as unidades extras presentes em uma matriz RAID 5 ou RAID 6 - é uma unidade extra que deve assumir o controle assim que uma unidade na matriz falhou.O número de unidades sobressalentes é fornecido no momento da criação da matriz. Mais tarde, pode ser verificado usando
#mdadm --detail --scan
.No entanto, durante o breve período de inicialização de um RAID 5 baseado em mdadm, há uma otimização, descrita em https://raid.wiki.kernel.org/index.php/Initial_Array_Creation , que faz com que uma unidade sobressalente adicional apareça em a saída desse comando:
"Para o raid5, há uma otimização: o mdadm pega um dos discos e o marca como 'sobressalente'; em seguida, cria o array no modo degradado. O kernel marca o disco sobressalente como 'reconstruindo' e começa a ler o 'bom' discos, calcule a paridade e determine o que deve estar no disco sobressalente e, em seguida, apenas grave nele. "
Após a inicialização da matriz, o número de sobressalentes relatados volta ao número selecionado no momento da criação.
fonte