Índice:
- Por que separar logs de banco de dados em um storage?
- O impacto da contenção por I/O no desempenho
- Riscos para a integridade com logs no mesmo disco
- A natureza sequencial da escrita nos logs
- Padrões de leitura e escrita para arquivos de dados
- Quando a separação passa a ser necessária?
- Como implementar um storage para os registros
- Benefícios práticos ao isolar os arquivos
- SSDs ou HDDs para os logs do banco?
- O storage NAS como solução para os logs
Muitas empresas enfrentam lentidão inexplicável em seus bancos de dados.
A causa frequentemente reside em um gargalo pouco visível que é a disputa por acesso no mesmo disco.
Essa competição acontece porque os arquivos principais e os logs de transações concorrem pelos mesmos recursos.
Um gargalo físico limita a velocidade operacional.
Como resultado o desempenho geral cai e a integridade dos dados fica exposta.
Entender o momento certo para separar esses componentes evita prejuízos.
Por que separar logs de banco de dados em um storage?
O log de transações registra as alterações aplicadas ao banco de dados para assegurar a consistência e a recuperação após falhas.
Separar esses registros em um storage dedicado otimiza o fluxo de escrita e leitura pois isola duas cargas de trabalho com naturezas distintas.
Os arquivos principais do banco exigem leituras e escritas aleatórias enquanto os logs são gravados em fluxo contínuo e sequencial.
Quando esses dois padrões de acesso competem pelo mesmo conjunto de discos o sistema operacional precisa mover as cabeças de leitura dos HDDs constantemente.
Esse movimento físico gera latência e cria uma fila de espera para as operações.
Mesmo em sistemas com SSDs a controladora do storage ainda sofre com a alternância entre tipos de I/O embora o impacto seja menor.
A separação em um equipamento exclusivo para os logs elimina essa disputa.
Cada sistema de armazenamento trabalha com a carga para a qual foi otimizado.
As transações são confirmadas mais rapidamente e as consultas aos dados principais ganham velocidade.
O impacto da contenção por I/O no desempenho
A contenção de I/O ocorre quando várias operações tentam acessar o mesmo disco simultaneamente.
Essa situação é bastante comum em bancos de dados.
Um usuário pode executar uma consulta que varre milhões de registros enquanto o sistema grava centenas de novas transações nos logs.
Ambas as atividades disputam a mesma largura de banda e a mesma capacidade de IOPS do storage.
O resultado imediato é o aumento drástico na latência.
As aplicações que dependem do banco ficam lentas e os usuários percebem a perda de agilidade.
Em cenários com picos de acesso o banco de dados pode parar de responder o que causa indisponibilidade e prejuízos.
Monitorar a fila do disco ajuda a diagnosticar esse problema.
Se o valor estiver alto de forma consistente é um sinal claro de que o subsistema de armazenamento não suporta a demanda.
Isolar os logs em um storage separado alivia essa pressão e equilibra a carga.
Riscos para a integridade com logs no mesmo disco
Manter os arquivos de logs e os de dados no mesmo volume físico representa um ponto único de falha.
Se esse disco ou array de RAID falhar você perde ambos os componentes ao mesmo tempo.
Sem os logs de transações a recuperação do banco para um estado consistente fica quase impossível.
Qualquer transação em andamento no momento da falha será perdida.
Esse risco aumenta a probabilidade de corrupção nos dados.
Uma falha de energia durante uma escrita intensa pode deixar o banco em estado inconsistente.
Os logs garantem a reversão de operações incompletas ou a reaplicação daquelas que foram confirmadas mas não salvas nos arquivos principais.
A separação física funciona como uma medida de proteção.
Com os logs em um storage independente a perda de um dos volumes não compromete o outro.
Isso aumenta as chances de recuperação e minimiza a perda de dados.
A natureza sequencial da escrita nos logs
Os logs de transações funcionam como um diário.
Cada nova alteração no banco é adicionada ao final do arquivo em uma operação de escrita sequencial.
Esse padrão é eficiente para os discos pois as cabeças de gravação não precisam se mover para locais diferentes.
Elas apenas continuam a escrever em blocos contíguos.
Essa característica deixa o desempenho da escrita nos logs previsível.
Um conjunto de discos dedicado a essa tarefa pode atingir taxas de transferência altas pois não há interrupções por operações de leitura ou escrita aleatória.
O fluxo de trabalho ocorre de forma otimizada e sem surpresas.
Quando misturado com outras operações todo esse benefício desaparece.
A necessidade de buscar dados em partes aleatórias do disco força o sistema a interromper o fluxo sequencial o que degrada o desempenho de ambas as tarefas.
Essa é a principal razão técnica para o isolamento.
Padrões de leitura e escrita para arquivos de dados
Ao contrário dos logs os arquivos de dados de um banco são acessados de forma aleatória.
Uma consulta pode precisar de um registro no início do arquivo, outro no meio e um terceiro no final.
Da mesma forma uma atualização pode modificar blocos espalhados por todo o volume.
Esse padrão de acesso é mais lento porque exige que o sistema de armazenamento localize e acesse vários endereços físicos.
A performance aqui é medida principalmente em IOPS que são as operações de entrada e saída por segundo.
Quanto mais IOPS um storage entrega mais rápido ele responde a essas requisições aleatórias.
Um sistema de armazenamento otimizado para I/O aleatório geralmente usa vários discos em paralelo ou SSDs que não possuem partes móveis.
Ao separar os logs você libera o potencial do storage principal para lidar apenas com essa carga de trabalho aleatória o que melhora o tempo de resposta das consultas.
Quando a separação passa a ser necessária?
A decisão de separar os logs de banco de dados não é universal mas alguns sinais indicam que o momento chegou.
O primeiro sinal é o volume de transações.
Sistemas OLTP como lojas virtuais, sistemas de ponto de venda ou ERPs geram um fluxo contínuo e intenso de escritas nos logs.
Outro indicador importante é o requisito de recuperação.
Se sua empresa possui um RPO muito baixo e não pode tolerar a perda de dados nem mesmo por alguns minutos a separação é obrigatória.
Ela garante que os logs estejam protegidos e disponíveis para uma recuperação precisa.
Se o monitoramento de desempenho aponta alta latência no disco e uma longa fila de I/O a separação é a solução mais direta.
Continuar com uma arquitetura unificada apenas agrava o problema e limita o crescimento do negócio.
Como implementar um storage para os registros
A implementação de um storage dedicado para os logs é simples.
Uma abordagem comum utiliza um storage NAS com suporte ao protocolo iSCSI.
Com ele você pode criar um LUN e apresentar o volume ao servidor do banco de dados como se fosse um disco local.
Esse LUN deve ser formatado e montado no sistema operacional.
Depois basta configurar o software do banco de dados para gravar os arquivos de log nesse novo volume.
A maioria dos sistemas como SQL Server, Oracle e PostgreSQL oferece opções claras para especificar o caminho dos arquivos.
Para obter desempenho superior o ideal é que esse LUN seja criado sobre um conjunto de discos SSD.
A baixa latência dos SSDs favorece a escrita sequencial e de alta frequência dos logs o que acelera a confirmação das transações e melhora a resposta de todo o sistema.
Benefícios práticos ao isolar os arquivos
Isolar os logs em um storage separado traz benefícios imediatos.
O primeiro benefício é o aumento na velocidade das transações.
Como a escrita nos logs não compete com outras operações ela ocorre sem atrasos.
Os usuários percebem essa melhora diretamente em aplicações que exigem muitas inserções ou atualizações.
As consultas e relatórios executados sobre os arquivos de dados também ficam mais rápidos.
O storage principal agora dedica todos os recursos para atender às leituras aleatórias sem interrupções.
Isso melhora o desempenho de sistemas de BI e analytics.
A resiliência do ambiente também aumenta.
Com os logs em um sistema separado a falha em um dos storages não significa a perda total.
As rotinas de backup e recuperação ficam mais confiáveis e rápidas pois o processo para restaurar o banco a partir dos logs é ágil e seguro.
SSDs ou HDDs para os logs do banco?
A escolha entre SSDs e HDDs para armazenar os logs depende do orçamento e da exigência de desempenho.
Para a maioria dos cenários com bancos de dados transacionais os SSDs são a escolha correta.
A razão está na latência.
Os logs exigem escritas de baixa latência.
Cada transação precisa ser confirmada no disco antes que o banco a considere completa.
Os SSDs oferecem tempos de resposta na casa dos microssegundos enquanto os HDDs trabalham com milissegundos.
Essa diferença multiplicada por milhares de transações gera um impacto enorme.
Embora os HDDs sejam mais baratos por terabyte a economia não compensa o gargalo gerado.
Usar HDDs para logs em um ambiente de alta performance limita o sistema.
O uso de HDDs para os arquivos de dados pode fazer sentido em sistemas com grande volume e menor exigência de IOPS como em data warehouses.
O storage NAS como solução para os logs
Um storage NAS moderno oferece a flexibilidade necessária para resolver o gargalo dos logs de banco de dados com eficiência.
Com suporte a iSCSI ele permite criar um volume de bloco rápido e dedicado que o servidor do banco de dados enxerga como um disco local de alta performance.
Essa abordagem isola as cargas de trabalho sem a complexidade de uma SAN Fibre Channel.
Muitos modelos de NAS permitem usar SSDs para cache ou como um tier de armazenamento principal.
Isso possibilita criar um LUN sobre SSDs para os logs enquanto os arquivos de dados podem residir em um conjunto de HDDs mais econômico no mesmo equipamento.
Essa configuração otimiza o custo e o desempenho.
Se sua infraestrutura sofre com a lentidão do banco de dados a separação dos logs é uma ação estratégica.
Na Storage NAS temos a experiência para projetar o sistema de armazenamento ideal para sua necessidade para garantir velocidade, segurança e integridade aos dados.
Entre em contato e descubra como podemos ajudar.
Não perca mais tempo: fale AGORA com um especialista!
Tire suas dúvidas sobre storages em minutos e descubra como podemos ajudar você ainda hoje. Atendimento rápido e direto pelo WhatsApp.
QUERO FALAR NO WHATSAPP