Je me demande quel est le but d'une BBU. Ma première compréhension a été qu'il permet au cache d'écrire les données sur le disque lors d'une panne de courant. Mais certaines spécifications disent qu'un BBU peut conserver ses données jusqu'à 72h. Je m'attendrais à ce que les données soient écrites sur le disque en quelques millisecondes (étant donné que le disque est toujours aussi alimenté).
Un BBU devrait-il donc non seulement protéger le cache, mais le disque entier pendant quelques secondes également? Cela ne serait-il pas encore plus sûr, car les données du cache sont écrites sur le disque au lieu d'être dans le cache et d'attendre à nouveau l'alimentation? Après environ une seconde, le disque pourrait être arrêté.
raid
hardware-raid
controller
bbu
tanascius
la source
la source
Réponses:
Il n'alimente pas les disques, il conserve simplement les données dans le cache pendant (dans ce cas) jusqu'à 72 heures jusqu'à ce que vous remettiez la machine en ligne. Lorsque vous remettez la machine sous tension, elle réécrit le contenu du cache sur les disques.
Il ne fait que protéger contre une panne de courant. Si (pour une raison quelconque) la machine perd de l'énergie sans vider proprement les données sur le disque, la batterie maintient le contenu du cache en vie jusqu'à ce que vous puissiez redémarrer la machine.
Ce n'est pas un onduleur pour disques, car les disques peuvent se trouver dans une matrice de disques externe, ou même sur un circuit d'alimentation différent. Même un onduleur pourrait échouer.
la source
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.
la source
proper shutdown
demande si le RAID lui appartient lors du vidage?proper
ou l'improper
arrêt. Le système d'exploitation émet un signal de mise hors tension et le bloc d'alimentation le fait, après la mise hors tension. Lorsque l'alimentation est coupée, la mémoire volatile et tout son contenu sont perdus!Il convient de mentionner que certains contrôleurs de disque plus récents sont désormais dotés d'un cache flash haute vitesse qui conserve les données beaucoup plus longtemps que les 72 heures habituelles, il est souvent beaucoup plus volumineux (~ 1 Go). Si vous avez besoin de détails sur les pièces, faites-le moi savoir.
la source
Considérez ce cache BBU comme ajoutant un niveau de protection similaire à celui offert par un système de fichiers journalisé. Il est là pour permettre aux transactions, simples écritures dans ce cas, de se terminer si elles sont interrompues par une panne de courant. Une fois l'alimentation coupée, le contrôleur ne peut pas continuer à écrire, car cela entraînerait des résultats complètement imprévisibles. Au lieu de cela, il conserve les données aussi longtemps qu'il le peut et finira de les écrire si / quand l'alimentation reprend. Ce qu'il ne fait pas, c'est agir comme un onduleur pour les disques.
la source
Obtenir cette batterie de 100 $ est un must, en particulier sur un serveur DB, même si les pannes de courant sont rares. Même si les transactions sont activées et que votre serveur perd de l'énergie avant que ces modifications aient quitté le cache et soient validées sur le disque, vous vous retrouverez avec une requête incomplète ou des données corrompues.
la source
Si votre serveur tombe en panne, se bloque ou que quelqu'un tire le câble d'alimentation, une BBU vous protégera des données corrompues ou perdues, si vous utilisez le cache d'écriture. L'utilisation d'un USV ne vous protège que contre les pannes de courant.
Si vous ne souhaitez pas utiliser le cache d'écriture, vous n'avez pas besoin d'un BBU.
la source
Une carte RAID peut avoir 1 Go de cache; même s'il n'est généralement pas entièrement utilisé pour un cache d'écriture, vous pouvez supposer qu'il stockera une longue file d'attente de données non écrites.
Les systèmes de fichiers et les bases de données supposent que leurs écritures synchrones ne sont pas réorganisées même en cas de panne de courant. Normalement, une écriture synchrone ne reviendra qu'une fois les données sur le disque, mais cela est relativement lent. Les cartes RAID améliorent les performances en regroupant les écritures plus petites et en les réorganisant pour qu'elles soient moins aléatoires.
S'il n'y avait pas de BBU, une panne de courant sous charge aurait des résultats désastreux, avec des écritures que la carte RAID avait promis d'être là en train d'être perdue (comme dans le cas d'un système de fichiers, vous pouvez avoir des références à un nouveau fichier ou répertoire, mais manque dit fichier ou répertoire, même si le système de fichiers a spécifiquement créé le nouveau fichier avant toute référence à celui-ci pour éviter cela), vous obligeant à restaurer à partir de sauvegardes ou simplement espérer que vos données ne sont pas trop mal gâchées. Pire encore, si quelqu'un a supprimé un fichier secret et que quelqu'un d'autre a créé un fichier lisible par le monde, il peut arriver que certains des contenus du fichier secret se trouvent dans le fichier lisible par le monde. Une fois que vous avez brisé les hypothèses sur lesquelles le système de fichiers est construit, tout est possible.
Supposer qu'un onduleur garantit une alimentation ininterrompue est naïf; que faire si la machine tombe en panne et que vous devez tirer sur le cordon d'alimentation, ou si quelqu'un trébuche dessus?
Les disques SATA grand public (et SSD) mettent parfois en cache les écritures synchrones également, mais leurs caches sont beaucoup plus petits et l'utilisation par le consommateur est moins exigeante, de sorte qu'ils peuvent généralement s'en tirer.
Les contrôleurs RAID modernes ont également un flash, dans lequel ils copient le contenu du cache d'écriture en cas de panne de courant, de sorte que la batterie n'a pas besoin de durer plus de quelques secondes.
la source