Nesta resposta, deixe claro que todos os seus dados serão destruídos em todos os membros da matriz (drives), então faça o backup primeiro!
Abra o terminal e torne-se root
( su
); se você tiver sudo
ativado, você também pode fazer, por exemplo, sudo -i
; veja man sudo
para todas as opções):
sudo -i
Primeiro, devemos apagar as unidades, se houver algum sistema de dados e de arquivos antes, isto é. Suponha que tenhamos 4 membros: sda
, sdb
, sdc
, sdd
:
pv < /dev/zero > /dev/sda
pv < /dev/zero > /dev/sdb
pv < /dev/zero > /dev/sdc
pv < /dev/zero > /dev/sdd
Para verificar novamente se não há nada deixado para trás, você pode espiar com GParted em todas as unidades, e se houver algum sistema de arquivos diferente de unknown
, limpe-o:
wipefs --all /dev/sda
wipefs --all /dev/sdb
wipefs --all /dev/sdc
wipefs --all /dev/sdd
Em seguida, inicializamos todas as unidades com a tabela de partição GUID (GPT):
gdisk /dev/sda
gdisk /dev/sdb
gdisk /dev/sdc
gdisk /dev/sdd
Em todos os casos, use o seguinte:
o
Digite para a nova tabela de partições GUID vazia (GPT)
y
Digite para confirmar sua decisão
w
Digite para gravar as alterações em y
Digite para confirmar sua decisão
Agora, precisamos particionar todas as unidades, mas não faça isso com o GParted, porque isso criaria um sistema de arquivos no processo, o qual não queremos, use gdisk
novamente:
gdisk /dev/sda
gdisk /dev/sdb
gdisk /dev/sdc
gdisk /dev/sdd
Em todos os casos use o seguinte:
n
Digite para a nova partição
Digite para a primeira partição
Enter para default do primeiro setor
Enter para default do último setor
fd00
Digite para o tipo Linux RAID
w
< kbd> Digite para gravar as alterações de y
Digite para confirmar sua decisão
Para triplicar a verificação se não houver nada deixado para trás, você pode espiar com GParted em todas as partições recém-criadas e, se elas contiverem qualquer sistema de arquivos diferente de unknown
, limpe-o:
wipefs --all /dev/sda1
wipefs --all /dev/sdb1
wipefs --all /dev/sdc1
wipefs --all /dev/sdd1
Você pode examinar as unidades agora:
mdadm --examine /dev/sda /dev/sdb /dev/sdc /dev/sdd
Deveria dizer:
(type ee)
Em caso afirmativo, examinamos agora as partições:
mdadm --examine /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Deveria dizer:
No md superblock detected
Em caso afirmativo, podemos criar o array RAID6:
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
Aguardaremos até que a matriz seja totalmente criada, com o qual poderemos assistir:
watch -n 1 cat /proc/mdstat
Após a criação da matriz, devemos analisar seu detalhe:
mdadm --detail /dev/md0
Deveria dizer:
State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0
Agora, criamos o sistema de arquivos na matriz, se você usar ext4
, é melhor evitar isso, porque ext4lazyinit
levaria uma quantidade considerável de tempo, daí o nome "lazyinit", portanto, recomendo que você evite este:
mkfs.ext4 /dev/md0
Em vez disso, você deve forçar uma inicialização instantânea completa com:
mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0
Ao especificar essas opções, os inodes e o diário serão inicializados imediatamente durante a criação, útil para matrizes maiores.
Se você escolher um atalho e criar o ext4
filesystem com o "melhor comando evitado", observe que ext4lazyinit
levará um tempo considerável para inicializar todos os inodes, você pode assisti-lo até que seja feito, por exemplo com:
iotop
De qualquer forma você escolhe fazer a inicialização do sistema de arquivos, você deve montá-lo depois que ele terminar sua inicialização:
Agora criamos um diretório para esse array RAID6:
mkdir -p /mnt/raid6
E simplesmente monte:
mount /dev/md0 /mnt/raid6
Como estamos essencialmente prontos, podemos usar o GParted novamente para verificar rapidamente se ele mostra linux-raid
filesystem, junto com o raid
flag em todas as unidades.
Se isso acontecer, criamos corretamente o array RAID6 com partições GPT e agora podemos copiar arquivos nele.
Veja qual UUID tem o sistema de arquivos md
:
blkid /dev/md0
Copie o UUID para a área de transferência.
Agora, precisamos editar fstab
com seu editor de texto favorito:
nano /etc/fstab
E adicione uma entrada a ela:
UUID=<the UUID you have in the clipboard> /mnt/raid6 ext4 defaults 0 0
Você pode verificar se está correto, depois de salvar as alterações:
mount -av | grep raid6
Deveria dizer:
already mounted
Se isso acontecer, salvamos a configuração da matriz; Caso você não tenha nenhum dispositivo md
criado, basta fazer isso:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
Caso já existam arrays, apenas execute o comando anterior sem redirecionar para o arquivo conf:
mdadm --detail --scan
e adicione a nova matriz ao arquivo conf manualmente.
No final, não se esqueça de atualizar seu initramfs:
update-initramfs -u
Verifique se você fez tudo de acordo com o planejado e, em caso afirmativo, poderá reiniciar:
reboot --reboot