Pelo que entendi, isso é possível, mas não consigo encontrar uma resposta direta em nenhum lugar sobre como exatamente fazer isso e não quero correr o risco de perder dados experimentando isso sozinho, por isso estou perguntando aqui.
Eu tenho um servidor doméstico com cinco discos rodando CentOS. Um é um SSD que contém o sistema operacional. Os quatro discos restantes são discos rígidos de 4 TB configurados em RAID10 com mdraid. O sistema de arquivos em uso é o xfs.
Estou pensando em tentar substituir os discos de 4 TB por discos de 8 TB. O que exatamente precisa ser feito para que essa substituição aconteça sem a necessidade de reconfigurar um novo RAID e perder dados?
Details output:
[root@fluttershy ~]# mdadm -D /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Mon Apr 18 12:46:24 2016
Raid Level : raid10
Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
Used Dev Size : 3906885632 (3725.90 GiB 4000.65 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Jun 13 11:04:41 2016
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : fluttershy:data (local to host fluttershy)
UUID : aa8f857a:g8bd0344:06d2f6d3:bac01a46
Events : 13440
Number Major Minor RaidDevice State
0 8 1 0 active sync set-A /dev/sda1
1 8 17 1 active sync set-B /dev/sdb1
2 8 33 2 active sync set-A /dev/sdc1
3 8 49 3 active sync set-B /dev/sdd1
Responder1
Conclua as etapas a seguir para cada disco; substitua /dev/sda1
por outros discos conforme necessário. Você deve completartodosSiga estas etapas para um disco antes de prosseguir para o disco seguinte.
- Marque o disco como com falha para que o MD pare de usá-lo:
mdadm --manage /dev/md127 --fail /dev/sda1
- Remova o disco da matriz:
mdadm --manage /dev/md127 --remove /dev/sda1
- Substitua fisicamente o disco.
- Particione o novo disco usando o tipo
0xDA
com uma partição abrangendo todo o disco. - Adicione o novo disco ao array:
mdadm --manage /dev/md127 --add /dev/sda1
O MD reconstruirá o array assim que você adicionar o disco de substituição. Certifique-se de que a reconstrução esteja concluídaantesvocê prossegue para o próximo disco. Você pode verificar o status do array executando cat /proc/mdstat
.
Uma veztodosdos discos foram substituídos e a matriz reconstruída, expanda a matriz para preencher a capacidade máxima de todos os discos com mdadm --grow /dev/md127 --size=max
. Você pode redimensionar o sistema de arquivos para preencher o RAID expandido; no seu caso, use o xfs_growfs
comando.
Mais informações sobre como aumentar um array MD estão disponíveis no siteWiki RAID Linux.
Como acontece com qualquer outra tarefa de manipulação de disco, você deve fazer um backup antes de começar.
Responder2
Você gostaria de trocar cada disco um por um primeiro.
Para fazer isso, você 'falharia' em cada disco e o substituiria por seu novo substituto de 8 TB; na verdade, se você tiver portas sobressalentes, poderá adicionar os discos extras e colocar o mdadm 'substituir' no lugar, em vez de remover um disco de o ataque e tendo um risco maior de falha.
Esta pergunta detalha a melhor maneira que posso encontrar de fazer isso 'com segurança'
Depois de fazer isso, você simplesmente desejará expandir o FS existente para o espaço recém-criado. Parece que o comando para isso é 'xfs_growfs', mas não tenho experiência com xfs para explicar exatamente como você faria isso.
Como sempre, tenha backups prontos (e raid não é backup!).