Ici, on a deux serveurs avec du RAID5 logiciel composé de 4 SSD identiques.
On remarque une chose surprenante : à quasi chaque reboot, le premier serveur part en resync/rebuild. Pas le deuxième. Il n'y a pas de rebuild/resync tant qu'il n'y a pas de reboot.
Différence entre les deux serveurs ? Le write intent bitmap n'est pas activé sur le premier (celui qui resync, donc).
Le bitmap, je conçois ça comme un journal de système de fichiers en version minimaliste : les chunks qui vont être re-écrits sont marqués comme endommagés, sur chaque disque puis l'écriture classique a lieu puis les chunks sont marqués comme propres. En cas d'interruption au milieu de l'écriture, il n'y a pas besoin de resync/rebuild tout le contenu de la grappe mais juste les chunks encore marqués comme endommagés ! Resync/rebuild partiel, en quelque sorte. Ainsi, on s'épargne un coûteux rebuild surtout sur un RAID5/6 où ça coûte vraiment cher en temps.
Mon hypothèse est que la grappe RAID n'est pas toujours correctement fermée lors de l'arrêt du serveur. Donc il y a des écritures pas terminées genre un fichier de log ou un DRBD ou... Du coup ça resync.
Sauf qu'un resync/rebuild de l'intégralité de la grappe "pour rien", c'pas recommandé pour un SSD. Alors oui, ils sont loin d'être aussi sensibles en nombre de cycles d'écriture qu'à leur début mais quand même, évitons le gaspillage.
Il semblerait qu'un external bitmap, stocké sur d'autres disques que ceux de la grappe RAID elle-même soit plus performant qu'un internal bitmap. Comme on n'a pas d'autres disques que les SSD eux-mêmes, on a ajouté un internal write intent bitmap : « mdadm --grow --bitmap=internal /dev/md0 ». Cet ajout se fait sans perte de données.
Une fois que cela est fait, une ligne est ajoutée dans /proc/mdstat : « bitmap: 4/4 pages [16KB], 65536KB chunk » et mdadm --detail /dev/md0 affiche : « Intent Bitmap : Internal ».
Forcément, cela génère des écritures supplémentaires lors des écritures normales (hors resync/rebuild) donc des performances en écriture plus faibles (les benchmarks trouvés sur le web varient tellement que je ne m'y fie pas). En gros : écritures communes plus lentes, resync/rebuild plus rapides et ne portant pas sur la totalité de la grappe. Mais sur un couple SSD + RAID5, ça me semble être un bon plan… le temps de trouver ce qui déclenche ce resync.
Tue May 10 21:00:55 2016 - permalink -
-
https://askubuntu.com/questions/50618/switching-mdadm-to-an-external-bitmap