J'utilise mdadm pour plusieurs miroirs RAID1. md7 est un miroir N-way composé de 3 disques tournants (tous marqués en écriture) et d'un SSD :
md7 : active raid1 sdd1[0] sde5[3](W) sdf5[4](W) sdc1[1](W)
234428416 blocks [4/4] [UUUU]
md6 : active raid1 sdf6[0] sde6[1]
1220988096 blocks [2/2] [UU]
md2 : active raid1 sdb6[0] sda6[1]
282229824 blocks [2/2] [UU]
md1 : active raid1 sdb2[0] sda2[1]
19534976 blocks [2/2] [UU]
md0 : active raid1 sdb1[0] sda1[1]
192640 blocks [2/2] [UU]
L'ensemble du système s'est bloqué 3 fois au cours des 2 dernières semaines, ce qui a nécessité un redémarrage à froid. Pour l'instant, je vais supposer que le blocage du système n'est pas lié à mon problème md, bien que je ne puisse pas complètement exclure cette possibilité. Chaque fois que nous avons redémarré, md7 a exigé une reconstruction, mais je ne peux pas trouver comment dire à partir des journaux quel disque a déclenché la reconstruction. J'ai pensé qu'iostat pourrait m'aider pendant que le RAID était en cours de reconstruction :
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 43.39 1038.34 558.83 223108 120075
sdb 66.88 1445.47 648.86 310588 139420
sdc 36.42 12.99 22256.81 2792 4782320
sdd 190.75 23227.78 331.14 4990954 71152
md0 2.11 21.39 0.23 4596 50
md1 173.72 1855.87 522.14 398770 112192
md2 11.68 65.84 27.59 14146 5928
md6 27.42 149.83 69.51 32194 14936
sde 75.83 70.81 22326.91 15214 4797384
sdf 79.31 99.41 22326.91 21360 4797384
sr0 0.04 2.61 0.00 560 0
md7 202.31 1287.41 331.07 276626 71136
...mais il me semble que md7 utilise sdd pour reconstruire tous les autres disques de ce RAID. Je pensais que c'était simplement parce que sdd est un SSD et que tous les autres disques sont marqués en écriture, mais dans ce cas, il ne devrait reconstruire que le seul disque qui était désynchronisé (à moins que tous les disques tournants soient désynchronisés, ce qui me semble peu probable).
Une autre théorie que j'ai est que tous les disques tournants sont toujours désynchronisés au redémarrage simplement parce que les écritures du SSD sont si rapides qu'il a le temps de finir d'écrire un bloc pendant que les autres sont encore en train d'écrire, puis le système se bloque avant que les autres disques finissent d'écrire ce bloc ?
Alors, comment puis-je savoir quel(s) disque(s) a (ont) déclenché la resynchronisation ? Est-ce que le fait que j'ai un miroir n-way avec un mélange de disques SSD et de disques rotatifs peut être responsable du fait que tous les disques rotatifs sont toujours reconstruits après l'un de ces gels, ou est-ce que le pilote md garantit qu'un bloc n'est pas considéré comme écrit sur un disque tant qu'il n'a pas été écrit avec succès sur tous les disques ?