Cela fonctionne comme ceci:
La plupart des systèmes d'exploitation ont un appel système qui permet une «écriture synchrone». Cela signifie que pendant une opération d'écriture, si une écriture est terminée, il est garanti qu'elle a été validée sur le disque.
L'écriture synchrone n'est donc pas mise en cache. Il bloque l'application jusqu'à ce qu'elle soit terminée. Ce type d'opération est évidemment plus lent que l'écriture en cache qui conserve les données dans la mémoire du système d'exploitation jusqu'à ce que le disque soit suffisamment inactif, puis écrit les données.
Certains logiciels critiques, tels que les logiciels de base de données, effectuent des écritures synchrones pour les données critiques, car une mise à jour à moitié écrite en cas de panne de courant peut nuire à l'intégrité de la base de données.
Les contrôleurs RAID sont notoirement lents avec les écritures RAID-5, donc cela devient un problème si votre logiciel d'application utilise beaucoup d'écritures synchrones. Pour cette raison, les contrôleurs RAID-5 sont équipés de leurs propres caches.
Ce que fait le contrôleur RAID, c'est qu'il écrit les données dans son cache à la place et se trouve sur le système d'exploitation, lui disant qu'il a validé les données sur le disque alors que les données sont en fait toujours dans le cache RAID.
Mais que se passe-t-il si l'alimentation est perdue alors que les données sont encore dans la mémoire tampon du contrôleur RAID? Vous auriez des données à moitié écrites et probablement incohérentes sur vos disques.
Vous pouvez dire que ce comportement va à l'encontre du but d'une écriture synchrone ... s'il était correct d'avoir une écriture en cache, le logiciel d'application ne demanderait pas une écriture de synchronisation en premier lieu.
Le compromis est le suivant: le contrôleur RAID repose toujours sur le système d'exploitation sur lequel il a validé les données sur le disque, mais pour protéger ces données critiques en cas de panne de courant, le contrôleur RAID dispose d'une batterie qui maintient le cache en vie pendant un certain temps jusqu'à ce que l'alimentation soit coupée. restauré.
Ainsi, après le retour de l'alimentation et la rotation et l'initialisation des disques, le contrôleur a toujours ces données dans son cache grâce à la batterie et peut terminer l'écriture de votre transaction sur le disque.
Tout le monde est content.
C'est pourquoi les contrôleurs RAID ne vous permettent généralement pas d'activer le cache d'écriture sauf si vous disposez d'une batterie fonctionnelle et chargée.