- Temos alguma foto para janeiro, mais perto de fevereiro?
- Agora vamos ver ... Sim, existe! Agora abra.Acontece que existe um tempo médio de vida útil da base de teste, há um tempo de vida útil para os instantâneos acordados por todos os envolvidos, mas alguns ambientes permanecem por muito tempo na imagem, o que não pode ser excluído ... e acaba sendo útil para os colegas. E menos para menos dá uma vantagem.
Geralmente, para qualquer sistema em que algo possa acontecer, você precisa criar backups. E se ainda estiver em desenvolvimento e finalizado, em algum lugar também é necessário implantar ambientes de desenvolvimento e teste. Além disso, para backups e ambientes de teste que funcionam, de fato, com os mesmos dados, você precisa de muito espaço. E, no entanto, esses ambientes devem, de alguma forma, levar ao estado atual. E tudo isso requer recursos de hardware e tempo.
No nosso caso, esses requisitos foram cobertos pelos servidores Oracle ZFS Storage Appliance e Oracle / Sun, que na verdade se fundiram no mesmo ecossistema do Exadata, que apareceu pouco antes deles.
Como existe um switch InfiniBand no Exadata, através do qual seus componentes se comunicam, e o ZFS Storage também é um Oracle Appliance, então:
- primeiro, foi conectado diretamente a esse switch por parte de suas portas;
- em segundo lugar, ele pode armazenar arquivos de espaço de tabela com segmentos compactados na compactação colunar híbrida Exadata (EHCC), economizando muito espaço no sistema principal. Se você tentar restaurar o banco de dados em um servidor separado, após a recuperação, consultando os dados compactados, receberá o erro: "ORA-64307: a compressão colunar híbrida não é suportada para espaços de tabela nesse tipo de armazenamento" - porque os arquivos de dados compactado no EHCC deve ser armazenado no Oracle Appliance;
- em terceiro lugar, isso abre a possibilidade de usar as capacidades do ZFS para armazenar arquivos do ambiente de teste.
Bem, e o lugar? A duplicação deve ser evitada.
Os ambientes de teste precisam dos mesmos dados que estão nos backups. Esses dados podem executar as duas funções? Ser um backup e uma base para qualquer ambiente de teste privilegiado que precise de um conjunto de dados completo? Eles podem!
O Oracle ZFS Storage Appliance é uma matriz que fornece, entre outras coisas, a capacidade de formar compartilhamentos de rede em execução no sistema de arquivos ZFS. No sistema de arquivos ZFS, é possível criar instantâneos, com base nos quais você pode implantar clones, visíveis como novos compartilhamentos de rede. Usamos esta oportunidade da seguinte maneira:
- No ZFS Storage (como chamaremos a matriz, para não confundir com o sistema de arquivos), dois compartilhamentos são criados - o Archivelog é adicionado a um e os arquivos de banco de dados ao outro;
- O compartilhamento é montado no servidor Oracle / Sun (que também é um Appliance) e, no próprio servidor, sobe uma instância do Oracle Database, atuando como um modo de espera físico em cascata - ele recebe logs de um site de backup condicional e aplica as alterações nos arquivos no compartilhamento;
- O uso de logs é organizado de acordo com o princípio da unidade de trabalho (Olá a todos os participantes da computação distribuída!). No nível do algoritmo, é introduzido o conceito de unidade de trabalho, que corresponde a um determinado intervalo de tempo. Depois de rolar os logs pelo intervalo necessário, a instância para e os arquivos permanecem no compartilhamento em um estado consistente em relação um ao outro e no arquivo de controle. Na verdade, esse é um backup a frio, também é uma cópia de imagem, além da qual é feito um instantâneo;
- Quando chega a hora de recriar o ambiente de teste, um clone é criado a partir da captura instantânea desejada. Ele é montado no servidor em que o ambiente está sendo executado, após o qual os arquivos são abertos como um banco de dados com um nome diferente e no modo de Leitura / Gravação;
- No processo de trabalho na base de teste, são feitas alterações que são adiadas como parte do clone e elas estão crescendo lentamente. Ao final do ciclo de vida, o meio cresce ao máximo.
- Para reduzir o consumo de espaço em disco, usamos a compactação LZJB, que o ZFS Storage executa em tempo real.
Em resumo:
- Na configuração atual, os ambientes de teste podem executar E / S até o nível de 3,75 Gb / s;
O máximo para leitura é limitado pelas configurações de porta InfiniBand existentes no servidor, o máximo para gravação é CPU nos controladores de armazenamento ZFS e atinge cerca de 2 Gb / s. (Sim, sim! Como 10 GbE não era suficiente, foram adquiridos switches separados para servidores de teste, que incluíam o ZFS Storage e os próprios servidores); - Vários instantâneos são criados por dia, que agora são armazenados, dependendo da base, de 2 semanas a 2 meses. Depois disso, todos são excluídos, exceto os instantâneos criados às 00:00, no primeiro dia de cada mês - eles são armazenados por mais de um quarto. Houve casos em que os instantâneos armazenados por cerca de seis meses se mostraram úteis;
- Se necessário, todo o banco de dados industrial pode ser restaurado a partir do instantâneo desejado. Também com uma velocidade da ordem de 1 ... 3 Gb / s, mas a opção de criar um clone a partir do instantâneo desejado é muito mais popular, a partir do qual os dados das tabelas desejadas são descarregados;
- O tempo para recriar o ambiente de teste é de aproximadamente 1 hora (com a transferência de vários circuitos adicionais etc.);
- O tempo para fornecer aos colegas um clone do qual você pode coletar dados para recuperação ou apenas algum tipo de análise é de 15 minutos (sob uma combinação ideal de condições) a 1-2 horas (com uma grande carga paralela no ZFS Storage ou nos J);
- Se necessário, você pode restaurar a partir do instantâneo e clone, e de todo o banco de dados;
- Uma grande restrição de desempenho é o número de IOPS gerado por ambientes de teste ou instâncias de espera em cascata. E aqui o sistema se comporta de maneira absolutamente adequada e previsível - assim que seu número é selecionado para 75 IOPS por HDD (contém discos de 3,5 ”a 7200 rpm) sob carga prolongada, o sistema começa a diminuir gradualmente. E com pouco tempo - Flash de gravação e leitura são visivelmente mais fáceis;
- O número de IOPS, a quantidade total de dados recebidos, a carga na CPU, o número de leituras de caches na RAM e Flash, bem como várias dezenas (se não centenas) de métricas podem ser visualizadas na interface de gerenciamento da web;
- Você pode trabalhar com objetos de armazenamento do ZFS usando as solicitações REST descritas na documentação. Com a ajuda deles, foi possível automatizar a remoção de snapshots obsoletos, mas muito mais pode ser feito!