Funciona assim:
A maioria dos sistemas operacionais possui uma chamada de sistema que permite a chamada "gravação síncrona". Isso significa que, durante uma operação de gravação, se uma gravação foi concluída, é garantido que ela foi confirmada no disco.
A gravação síncrona é, portanto, não armazenada em cache. Ele bloqueia o aplicativo até que seja concluído. Esse tipo de operação é obviamente mais lento que a gravação em cache, que mantém os dados na memória do sistema operacional até o disco ficar ocioso o suficiente e, em seguida, grava os dados.
Alguns softwares críticos, como o software de banco de dados, executam gravações síncronas para dados críticos, porque uma atualização semi-gravada em caso de perda de energia pode prejudicar a integridade do banco de dados.
Os controladores RAID são notoriamente lentos com as gravações RAID-5, o que se tornará um problema se o seu aplicativo usar muitas gravações síncronas. Por esse motivo, os controladores RAID-5 estão equipados com seus próprios caches.
O que o controlador RAID faz é gravar os dados no cache e mentir no sistema operacional, informando que os dados foram comprometidos no disco, enquanto os dados ainda estão no cache RAID.
Mas e se a energia fosse perdida enquanto os dados ainda estavam no buffer do controlador RAID? Você teria dados semi-escritos e provavelmente inconsistentes em seus discos.
Você pode dizer que esse comportamento anula o objetivo de uma gravação síncrona ... se fosse aceitável uma gravação em cache, o software do aplicativo não solicitaria uma gravação de sincronização em primeiro lugar.
O compromisso é o seguinte: o controlador RAID ainda está no sistema operacional que comprometeu os dados no disco, mas para proteger esses dados críticos em caso de falta de energia, o controlador RAID possui uma bateria que mantém o cache ativo por algum tempo até que a energia possa ser consumida. restaurado.
Portanto, depois que a energia voltar e os discos girarem e inicializarem, o controlador ainda terá esses dados em cache graças à bateria e poderá terminar de gravar sua transação no disco.
Todo mundo está feliz.
É por isso que os controladores RAID geralmente não permitem ativar o cache de gravação, a menos que você tenha uma unidade de bateria funcional e carregada.