Esse artigo faz parte da revista SQL Magazine edição 55. Clique aqui para ler todos os artigos desta edição

e="FONT-SIZE: 10pt; BACKGROUND: yellow; FONT-FAMILY: Verdana"> 

Robusto, escalonável e prático, o ASM (Automatic Storage Manager) é um recurso que está disponível a partir da versão 10g Release 1 do Oracle Database. Com ele, a administração dos arquivos do banco de dados ficou mais simples e mais confiável, aprimorando assim a administração e o desempenho do produto. Para implementá-lo, não é necessária uma licença adicional já que não se trata de um produto separado e sim de um recurso agregado à plataforma.

Ao longo deste artigo serão explicados os conceitos elementares do ASM, além de demonstrar como ele simplifica, de fato, a rotina dos administradores.

 

Como funciona o ASM?

O ASM foi introduzido no Oracle Database 10g R1 com a proposta de simplificar a administração dos arquivos do banco e aprimorar o desempenho do produto. Trata-se de um recurso que notavelmente aproveita os tradicionais conceitos do já consagrado RAID (Redundant Array of Independent Drives) que, por sua vez, é usado para criar redundância e balanceamento de dados entre discos rígidos. Tanto no RAID quanto no ASM – frisando que são tecnologias completamente diferentes – a segurança é obtida com uma técnica chamada mirroring (espelhamento – ver Nota DevMan 1), onde o mesmo bloco de informações é gravado em dois ou mais discos diferentes que podem ter em comum um tipo de hardware conhecido como placa controladora (ver Nota 1). Já a velocidade é obtida com uma técnica chamada de stripping (divisão) onde um arquivo de, por exemplo, 10 Megabytes é dividido em duas ou mais partes e gravado simultaneamente em diferentes dispositivos. Assim, o tempo de gravação de um arquivo pode cair pela metade ou mais, na proporção da quantidade de “pedaços” em que o arquivo é dividido, que é determinado pela quantidade de discos ligados na mesma placa controladora.

 

Nota 1. Placa Controladora

A placa controladora é um tipo de hardware usado para controlar a E/S dos dispositivos de armazenamento ligado a ela, normalmente discos rígidos do tipo SCSI ou Serial ATA. Uma placa controladora pode gerenciar mais de um dispositivo, dependendo do seu tipo e modelo sendo que arranjos do tipo RAID são funções comuns à maioria delas.

 

Nota DevMan 1. Espelhamento de Disco (Mirroring)

Espelhamento de Disco (disk mirroring) ou RAID1 consiste na replicação lógica de volumes de disco em discos físicos separados em tempo real para garantir disponibilidade contínua. Um volume espelhado é uma representação lógica completa de cópias de volumes separados.

No contexto de recuperação de desastres, dados espelhados são referenciados como replicação. Dependendo da tecnologia usada, replicação pode ser realizada de forma síncrona, assíncrona, semi-síncrona ou point-in-time (em um momento agendado). A solução de replicação é normalmente especificada para cada SGBD.

 

Explicação

É reconhecido que discos estão em uma hierarquia não 100% confiável de componentes de sistemas de computadores. Espelhamento é uma técnica que permite que um sistema mantenha automaticamente múltiplas cópias de dados de forma que em casos de falhas no disco o sistema possa continuar o seu processo ou rapidamente recuperar seus dados. Espelhamento pode ser feito localmente onde ele é definido especificamente para suprir no caso da falha de um filho, ou remotamente onde ele forma parte de um esquema de recuperação de desastres mais sofisticado, ou ele pode ser feito tanto localmente como remotamente, especialmente para sistemas de alta disponibilidade. Normalmente os dados estão espelhados em um disco que é fisicamente idêntico ao original, apesar do processo poder ser aplicado em discos lógicos no qual o formato físico dos discos é escondido do processo de espelhamento.

Tipicamente, espelhamento é provido ou por soluções de hardware como array de discos ou em software juntamente com o sistema operando. Como os dados são escritos em disco, o sistema automaticamente escreve uma segunda cópia para uma ou mais localizações adicionais. O sistema pode considerar que os dados estão escritos seguramente ou quando um dos drives confirma uma operação de escrita com sucesso ou quando ambos os drives confirmam, dependendo de quão crítica é a integridade dos dados, atentando para o fato de que existe normalmente uma vantagem de desempenho em não aguardar por uma segunda operação de escrita. Os dados podem ser lidos a partir de qualquer disco. Um sistema de alto desempenho reconheceria qual o disco está em um melhor estado físico para recuperar os dados mais rapidamente.

Existem vários cenários para o que pode acontecer quando um disco falha. Em um sistema hot swap, no evento de falha de disco, o sistema por si só tipicamente diagnostica uma falha de disco e sinaliza uma falha. Sistemas sofisticados podem automaticamente ativar um disco reserva “quente” (standby) e usar o disco ativo que restou para copiar os dados recentes para este disco. Alternativamente, um novo disco é instalado e os dados são copiados para ele. Em sistemas menos sofisticados, o sistema fica operando no disco reserva que restou até que um novo disco seja instalado sem problemas.

A cópia dos dados de um par do espelhamento para outro é normalmente chamada de rebuilding (reconstrução). Durante este processo de reconstrução, o desempenho do sistema é normalmente afetado, pois o disco do sistema está completamente ocupado copiando os dados de um disco para outro.

 

Outros Benefícios do Espelhamento

Além de prover uma cópia adicional dos dados para o propósito de redundância em caso de falhas de hardware, espelhamento de disco pode permitir que cada disco seja acessado separadamente para o propósito de leitura. Sob certas circunstâncias, isso pode significar melhorias de desempenho, pois o sistema pode escolher para cada leitura qual o disco pode ser consultado mais rapidamente para recuperar os dados. Isso é especialmente significante onde existem várias tarefas competindo por dados ao mesmo tempo, e em casos onde a troca entre tarefas leva mais tempo que a própria tarefa, cujos problemas podem ser reduzidos com esta solução. Isso é uma importante consideração em configurações de hardware que acessam frequentemente os dados no disco.

Em algumas implementações, o disco espelhado pode ser dividido e usado para backup de dados, permitindo que o primeiro disco se mantenha ativo. No entanto, a operação de merge (junção) de dois discos pode requerer um período de sincronização se qualquer atividade de E/S de escrita ocorreu no disco espelhado.

 

Unindo o uso dessas duas técnicas – mirroring & stripping – o desempenho do sistema operacional é sensivelmente aprimorado de maneira transparente para o usuário e com uma intervenção mínima do operador que fica responsável apenas por definir e implementar o melhor arranjo físico dos discos. A diferença principal entre o RAID e o ASM é que ao invés de fazer o espelhamento de todo o volume, como acontece no RAID, no ASM a "cópia dos blocos" é realizada em nível de objetos, tais como tabelas, visões materializadas, índices, etc. Além disso, um é fornecido direto pela placa controladora enquanto o outro é provido pelo software que acompanha o banco de dados.

 

Porque usar o ASM?

Dificilmente uma empresa decidirá pelo uso do Oracle Database se não pretender guardar um volume razoável de informações. Muitas corporações, principalmente financeiras, governamentais e acadêmicas, detêm quantidades de dados assustadoras que crescem exponencialmente ao longo de um único mês. Na tradicional arquitetura do Oracle Database esses dados são armazenados fisicamente em arquivos denominados “ ...

Quer ler esse conteúdo completo? Tenha acesso completo