Para que serve uma BBU (controlador de invasão)?


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 armazenar 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).

Portanto, uma BBU não deve apenas proteger o cache, mas o disco inteiro 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 energia novamente? Depois de um segundo, o disco pode ser desligado.


Embora as baterias RAID não energizem as unidades reais, existe algo em nosso mundo que se assemelha ao que você imaginava originalmente: alguns SSDs de servidor têm "supercapacitores" que fornecem energia de backup para confirmar gravações em cache durante os milissegundos após uma falha de energia.
Skyhawk

Respostas:


17

Ele não energiza os discos, apenas mantém os dados no cache por (neste caso) até 72 horas até você colocar a máquina novamente em operação. Quando você liga a máquina, ela grava o conteúdo do cache de volta nos discos.

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

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


1
Portanto, a diferença para um no-break para discos é que ele foi projetado para um cenário em que os discos não estão no mesmo circuito de energia? Em todos os outros casos (controlador e discos em um circuito), um no-break seria superior? Eu ainda prefiro que os últimos comandos sejam gravados no disco em vez de aguardar no cache durante uma falha de energia.
tanascius

Então compre também um no-break para o seu servidor! Uma BBU não tem energia suficiente para executar uma matriz de unidades. Ele oferece uma janela grande o suficiente para você recuperar a energia e salvar as alterações. A maioria das interrupções é muito curta e a maioria das pessoas não precisa das despesas adicionais de um no-break para máquinas não vitais.
21410 JamesRyan

1
Tudo o que a BBU faz é manter os dados no cache até você reiniciar o computador. O controlador sabe o que foi liberado para o disco (o disco indica que a operação foi concluída). Qualquer coisa que não seja liberada para o disco é preservada até que a máquina seja reiniciada.
ConcernedOfTunbridgeWells

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 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.


Gostaria de perguntar sobre a localização do controlador. É uma parte da placa mãe ou embutida no disco rígido?
Valentin Tihomirov

Além disso, eu gostaria de saber como o SO pode enviar uma proper shutdownsolicitação se o RAID estiver disponível quando a liberação for emitida?
Valentin Tihomirov 17/02

@ValentinTihomirov Não existe tal coisa properou improperdesligamento. O SO emite um sinal de desligamento e a PSU o faz, depois que a energia é desligada. À medida que a energia é desligada, a memória volátil e todo o seu conteúdo são perdidos!
PF4Public

4

Vale ressaltar que alguns controladores de disco mais novos agora vêm com cache flash de alta velocidade que retém os dados por muito mais tempo do que as 72 horas normais, geralmente também é muito maior (~ 1 GB). Se precisar de detalhes da peça, entre em contato.


Obrigado pela informação, mas não sou Sysadmin e provavelmente nunca irá criar um RAID profissional ... Eu sou apenas curioso sobre o BBU :)
tanascius

3

Pense nesse cache da BBU como adicionando um nível de proteção semelhante ao oferecido por um sistema de arquivos com diário. 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 escrever, pois isso resultaria em resultados completamente imprevisíveis. Em vez disso, ele mantém os dados o máximo possível e termina de gravá-los se / quando a energia voltar. O que não faz é agir como um no-break para as unidades.


Mas quando eu tenho um no-break para as unidades + controlador - para que eu preciso da BBU? Apenas para um scneario onde o no-break falha também?
tanascius 19/02/10

Boa pergunta. Se você sabe que o servidor SEMPRE será desligado normalmente, também não estou convencido da necessidade de uma BBU.
John Gardeniers

2
Uma BBU geralmente é usada para configurações de write-back. Alguns controladores RAID não ativam o write-back sem a presença de uma BBU. No entanto, acho que é uma má ideia supor que o servidor sempre seja desligado corretamente.
ConcernedOfTunbridgeWells

2

É essencial ter essa bateria de US $ 100, especialmente em um servidor de banco de dados, mesmo que as falhas de energia sejam raras. Mesmo se você tiver transações ativadas e seu servidor perder energia antes que essas alterações tenham saído do cache e comprometidas com o disco, você ficará com uma consulta incompleta ou com dados corrompidos.


1

Se o servidor travar, travar ou alguém puxar o cabo de alimentação, uma BBU o protegerá contra dados corrompidos ou perdidos, se você estiver usando cache de gravação. O uso de um USV apenas protege você contra falta de energia.

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


1

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

Os sistemas de arquivos e bancos de dados pressupõem que suas gravações síncronas não sejam reordenadas, mesmo no caso de falta 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 o cartão RAID prometeu estar perdendo (como no caso de um sistema de arquivos, você pode ter referências a um novo arquivo ou diretório, mas não há informações arquivo ou diretório, mesmo que o sistema de arquivos tenha criado especificamente o novo arquivo antes de qualquer referência a ele para evitar isso), exigindo que você restaure dos backups ou apenas espere que seus dados não sejam muito danificados. Pior ainda, se alguém excluiu um arquivo secreto e outra pessoa criou um arquivo legível pelo mundo, pode acontecer que parte do conteúdo do arquivo secreto seja encontrado no arquivo legível pelo mundo. Depois de quebrar as suposições em que o sistema de arquivos é construído, tudo é possível.

Supondo que um no-break garanta energia ininterrupta é ingênuo; e se a máquina travar e você precisar puxar o cabo de alimentação ou alguém tropeçar nele?

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

Os controladores RAID modernos também possuem flash, para o qual copiam o conteúdo do cache de gravação no caso de falta de energia, para que a bateria não precise durar mais do que alguns segundos.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.