O que é um (raid-controller-) BBU para?

13

Eu estou querendo saber qual é o propósito de uma BBU. Meu primeiro entendimento foi que ele permite que o cache grave os dados no disco durante uma falha de energia. Mas algumas especificações dizem que uma BBU pode manter seus dados por até 72h. Eu esperaria que os dados fossem gravados no disco em milissegundos (dado que o disco ainda tem energia também).

Então, uma BBU não deve apenas proteger o cache, mas todo o disco por alguns segundos também? Isso não seria ainda mais seguro, porque os dados do cache são gravados no disco em vez de ficarem no cache e aguardarem a energia novamente? Depois de um segundo ou mais, o disco pode ser desligado.

    
por tanascius 19.02.2010 / 09:54

7 respostas

17

Ele não alimenta os discos, apenas mantém os dados no cache para (neste caso) até 72 horas, até você colocar a máquina novamente online. Quando você ligar a máquina, ela gravará o conteúdo do cache de volta nos discos.

Tudo o que ele faz é proteger contra uma falha de energia. Se (por algum motivo) a máquina perder energia sem limpar os dados para o disco, a bateria mantém o conteúdo do cache ativo até que você possa reiniciar a máquina.

Não é um UPS para discos, pois os discos podem estar em uma matriz de disco externa ou até mesmo em um circuito de energia diferente. Mesmo um no-break pode falhar.

    
por 19.02.2010 / 10:02
13

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 do que a gravação em cache, que mantém os dados na memória do SO até que o disco fique 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 pela metade em caso de perda de energia pode ser prejudicial à integridade do banco de dados.

Os controladores RAID são notoriamente lentos com gravações RAID-5, portanto, isso se torna um problema se o software aplicativo usar muitas gravações síncronas. Por esse motivo, os controladores RAID-5 são equipados com seus próprios caches.

O que o controlador RAID faz é gravar os dados em seu cache e LIES no SO, informando que os dados foram enviados para o disco, enquanto os dados ainda estão no cache do RAID.

Mas e se a energia foi perdida enquanto os dados ainda estavam no buffer do controlador RAID? Você teria dados parcialmente escritos e provavelmente inconsistentes em seus discos.

Você pode dizer que esse comportamento anula o propósito de uma gravação síncrona ... se fosse correto ter uma gravação em cache, o software do aplicativo não solicitaria uma gravação de sincronização em primeiro lugar.

O compromisso é este: o controlador RAID ainda está no sistema operacional para o qual os dados foram enviados ao disco, mas para proteger esses dados críticos em caso de falha de energia, o controlador RAID possui uma bateria que mantém o cache ativo por algum tempo até a energia pode ser restaurada.

Assim, depois que a energia voltar e os discos girarem e inicializarem, o controlador ainda terá esses dados em seu cache graças à bateria e poderá terminar de gravar sua transação no disco.

Todos estão felizes.

É por isso que os controladores RAID geralmente não permitem a ativação do cache de gravação, a menos que você tenha uma unidade de bateria funcional e carregada.

    
por 08.11.2011 / 15:15
4
Vale a pena mencionar que alguns controladores de disco mais recentes agora vêm com cache flash de alta velocidade que retém os dados por muito mais tempo do que as típicas 72 horas, e muitas vezes é muito maior também (~ 1GB). Se você precisar de detalhes da peça, me avise.

    
por 19.02.2010 / 11:22
3

Pense no cache da BBU como adicionando um nível de proteção semelhante ao proporcionado por um sistema de arquivos registrados. Está lá para permitir que transações, gravações simples neste caso, sejam concluídas se forem interrompidas por uma falha de energia. Uma vez que a energia cai, o controlador não pode continuar a gravar, pois isso resultaria em resultados completamente imprevisíveis. Em vez disso, armazena os dados pelo tempo que puder e terminará de escrevê-los se / quando a energia for retomada. O que ele não faz é agir como um no-break para as unidades.

    
por 19.02.2010 / 13:23
2

Obter essa bateria de US $ 100 é uma obrigação, especialmente em um servidor de banco de dados, mesmo que falhas de energia sejam raras. Mesmo se você tiver transações ativadas e seu servidor perder energia antes que essas alterações saiam do cache e sejam confirmadas no disco, você terá uma consulta incompleta ou dados corrompidos.

    
por 19.02.2010 / 10:28
1

Se o seu servidor trava, trava ou alguém puxa o cabo de alimentação, uma BBU irá protegê-lo contra dados corrompidos ou perdidos, se você estiver usando o cache de gravação. Usar um USV apenas protege contra falhas de energia.

Se você não quiser usar o cache de gravação, não precisa de uma BBU.

    
por 30.09.2011 / 15:15
1

Uma placa RAID pode ter 1 GB de cache; mesmo que geralmente não seja usado para um cache de gravação, você pode assumir que ele armazenará uma longa fila de dados não gravados.

Sistemas de arquivos e bancos de dados assumem que suas gravações síncronas não são reordenadas, mesmo no caso de uma falha de energia. Normalmente, uma gravação síncrona retornará somente depois que os dados estiverem no disco, mas isso é relativamente lento. As placas RAID melhoram o desempenho agrupando gravações menores e reordenando-as para que sejam menos aleatórias.

Se não houvesse BBU, uma falha de energia sob carga teria resultados desastrosos, com gravações que a placa RAID prometeu estar perdida (como no caso de um sistema de arquivos, você pode ter referências a um novo arquivo ou diretório, mas a falta disse arquivo ou diretório, mesmo que o sistema de arquivos criou especificamente o novo arquivo antes de qualquer referência a ele para evitar isso), exigindo que você restaurar a partir de backups ou apenas espero que seus dados não estão muito confusos. Pior ainda, se alguém excluiu um arquivo secreto e alguém criou um arquivo legível, pode acontecer que parte do conteúdo do arquivo secreto seja encontrado no arquivo legível. Depois de quebrar as suposições em que o sistema de arquivos é construído, tudo é possível.

Assumir que uma UPS garante energia ininterrupta é ingênua; e se a máquina cair e você precisar puxar o cabo de alimentação ou alguém tropeçar nele?

Os discos SATA do consumidor (e SSDs) às vezes também armazenam em cache as gravações síncronas, mas seus caches são muito menores e o uso do consumidor é menos exigente, de modo que normalmente eles podem se safar.

Controladores RAID modernos também têm flash, no qual copiam o conteúdo do cache de gravação em caso de falta de energia, portanto, a bateria não precisa durar mais do que alguns segundos.

    
por 26.12.2012 / 07:30