J'ai à l'origine créé un RAID logiciel à l'aide d'un contrôleur qui ne pouvait traiter que 2 To par disque. Les disques sont des disques de 3 To. Cela a bien fonctionné, mais n'a utilisé que les 2 premiers To de chaque disque.
J'ai maintenant changé le contrôleur pour voir l'intégralité des 3 To. Je voudrais donc également /dev/md0
utiliser les 1 derniers To.
J'ai essayé:
# mdadm --grow /dev/md0 --size=max
mdadm: component size of /dev/md0 has been set to 2147479552K
Mais comme vous pouvez le voir, il ne voit que les 2 To. Si j'essaye de le forcer plus haut:
# mdadm --grow /dev/md0 --size=2147483648
mdadm: Cannot set device size for /dev/md0: No space left on device
Donc, d'une manière ou d'une autre, le système peut voir que les disques sont de 3 To (en /proc/partitions
), mais le RAID ne peut pas les voir comme 3 To.
Détails de mdadm:
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Mar 2 15:14:46 2012
Raid Level : raid6
Array Size : 38654631936 (36863.93 GiB 39582.34 GB)
Used Dev Size : 2147479552 (2048.00 GiB 2199.02 GB)
Raid Devices : 20
Total Devices : 21
Persistence : Superblock is persistent
Update Time : Wed Apr 25 19:47:09 2012
State : active
Active Devices : 20
Working Devices : 21
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 4096K
Name : node5:1
UUID : 8603c3df:b740ba22:8c9c82fd:a18b3133
Events : 845
Number Major Minor RaidDevice State
20 65 32 0 active sync /dev/sds
1 65 64 1 active sync /dev/sdu
2 65 80 2 active sync /dev/sdv
3 65 96 3 active sync /dev/sdw
4 8 192 4 active sync /dev/sdm
5 8 32 5 active sync /dev/sdc
6 8 48 6 active sync /dev/sdd
7 8 64 7 active sync /dev/sde
8 8 80 8 active sync /dev/sdf
9 8 96 9 active sync /dev/sdg
10 8 112 10 active sync /dev/sdh
11 8 128 11 active sync /dev/sdi
12 8 144 12 active sync /dev/sdj
13 8 160 13 active sync /dev/sdk
14 8 176 14 active sync /dev/sdl
15 8 208 15 active sync /dev/sdn
16 8 224 16 active sync /dev/sdo
17 8 240 17 active sync /dev/sdp
18 65 0 18 active sync /dev/sdq
19 65 16 19 active sync /dev/sdr
21 65 48 - spare /dev/sdt
Tailles de disque:
# cat /proc/partitions |grep 2930266584
8 48 2930266584 sdd
8 32 2930266584 sdc
8 112 2930266584 sdh
8 96 2930266584 sdg
8 80 2930266584 sdf
8 128 2930266584 sdi
8 176 2930266584 sdl
8 64 2930266584 sde
65 32 2930266584 sds
8 192 2930266584 sdm
8 144 2930266584 sdj
65 80 2930266584 sdv
8 224 2930266584 sdo
8 208 2930266584 sdn
8 160 2930266584 sdk
8 240 2930266584 sdp
65 0 2930266584 sdq
65 64 2930266584 sdu
65 16 2930266584 sdr
65 48 2930266584 sdt
65 96 2930266584 sdw
Éditer:
# mdadm --version
mdadm - v3.1.4 - 31st August 2010
# uname -a
Linux lemaitre 3.2.0-0.bpo.1-amd64 #1 SMP Sat Feb 11 08:41:32 UTC 2012 x86_64 GNU/Linux
Le RAID6 utilise les disques complets (c'est-à-dire pas de partitions)
Ce matin, le système s'est écrasé. Après un redémarrage, le système n'a pas trouvé le RAID (ce qui était terrible). Tous les disques sont apparus comme des pièces de rechange (S):
cat /proc/mdstat
Personalities :
md0 : inactive sdr[20](S) sds[21](S) sdq[18](S) sdp[17](S) sdo[16](S) sdn[15](S) sdl[14](S) sdk[13](S) sdj[12](S) sdi[11](S) sdh[10](S) sdg[9](S) sdf[8](S) sde[7](S) sdd[6](S) sdc[5](S) sdm[4](S) sdv[3](S) sdu[2](S) sdt[1](S)
42949652460 blocks super 1.2
Même ici, il est clair que mdadm
n'a pas trouvé la taille de 3 To.
J'ai couru mdadm --stop /dev/md0
. Suppression de l'entrée dans /etc/mdadm/mdadm.conf. Ran
mdadm -A --scan --force
, qui a provoqué la mise en ligne et la reconstruction du RAID.
la source
fdisk -l /dev/sdd
montre-t-on? Quel système d'exploitation utilisez-vous, quelle est la version mdadm?Réponses:
J'ai fouillé / sys et me suis beaucoup plus rapproché de la réponse.
Cela correspond à ce que nous avons vu auparavant. Mais ça:
semble expliquer pourquoi le RAID voit la mauvaise taille: la plupart des disques apparaissent comme 2 To tandis que les 2 qui ont été remplacés apparaissent comme 3 To. Tous les disques sont du même modèle, voyons donc si nous pouvons changer la taille perçue:
Voila. Component_size est encore petit, cependant:
Peut-être que cela peut être modifié par mdadm:
Cela se bloque malheureusement
mdadm
et l'accès ultérieur à / dev / md0 est bloqué. Tout comme l'accès à component_size:Suce. Mais la bonne partie est que dans syslog, il est dit:
Le système de fichiers sur / dev / md0 fonctionnait toujours.
Après un redémarrage, j'ai dû refaire 'mdadm --grow / dev / md0 --size = max'. Attendez ensuite la
resync
fin. Là encore, l'accès à / dev / md0 a été bloqué. Donc encore un autre redémarrage, suivixfs_growfs /dev/md0
puis le redimensionnement était terminé.la source
Je pense que lors de la création, la taille de l'appareil a été enregistrée quelque part dans les métadonnées. Changer le contrôleur ne change pas les métadonnées.
Retirez le disque de rechange du md, puis ajoutez-le de nouveau au jeu RAID en tant que nouveau disque. Vous devrez probablement supprimer les métadonnées (consultez la page de manuel pour --zero-superblock ou effacez le disque entier). Si cela fonctionne pour un seul disque, répétez la procédure pour tous les lecteurs restants également. Enfin, faites le --grow.
Ne retirez pas les disques supplémentaires avant la fin de la synchronisation !!
la source
fail
un lecteur, puisremove
il, puiszero-superblock
il pour supprimer les métadonnées. Comme votre ensemble RAID est en cours d'utilisation, vous pouvez l'ajouter en tant que pièce de rechange, ce qui signifie qu'il ne se synchronisera pas jusqu'à ce qu'un autre disque tombe en panne (c'est un comportement normal), mais il ne fonctionne que pour un seul lecteur OU vousadd
et cela nécessite une synchronisation. Je sais que ça prend une éternité. Ou vous acceptez le fait que vous ne pouvez pas ajouter tout le stockage disponible. L'un des avantages de l'utilisation d'une table de partition que vous n'avez pas. Ne pas utiliser une table de partition n'est pas mauvais, mais dans ce cas particulier, cela vous aurait aidé.