Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Oracle 11gR2: gerenciando ASM Dynamic Volume Manager

Recommended Posts

Saudações pessoal, neste artigo vamos aprender a gerenciar duas novas features do Oracle 11gR2, o ASM Dynamic Volume Manager (ADVM) e o ASM Cluster File System (ACFS).

 

O ADVM e o ACFS são features da versão do Oracle 11gR2, eles estão no Oracle Grid Infrastructure - já conhecido na versão 11gR1.

 

O objetivo do ADVM é fornecer para o SO um device do tipo block device, que servirá de suporte para a criaçãdo ACFS. O comando mkfs poderá ser utilizado para a criação do ACFS.

 

Uma vez montado, o ACFS pode ser utilizado para armazenar tanto os arquivos que já conhecemos do nosso dia a dia, como também arquivos do tipo ASM; a Oracle University até sugere a instalação do software Oracle em ACFS (sou contra essa idéia).

 

Pretendo utilizar inicialmente essa feature, para armazenar backups do RMAN,arquivos para utl_file_dir, o ADRCI, exports lógicos (exp e expdp).

 

Existem quatro módulos de Kernel que são carregados no SO, que fornecem serviços de dados. No Linux, são:

 

  • oracleasm, que é o módulo ASM
  • oracleadvm, que é o módulo ASM Dynamic Volume Manager
  • oracleoks, que é o módulo de serviço do Kernel
  • oracleacfs, que é o módulo do ASM file system.

Esses módulos fornecem o ASM Cluster File System (ACFS) snapshots e o ADVM e cluster services.

 

Os volumes ASM são apresentados para o SO como arquivos de device em /dev/asm/<volume name>-nnn, onde "nnn" é o número do grupo do disco.

 

O device volume aparece como outro arquivo ASM, para a instância ASM e para o utilitário ASMCMD.

 

Os comandos de SO são transparentes para as camadas da ASM. Os arquivos e diretórios criados no ACFS e os ACFS snapshots são visíveis para

os comandos operacionais do SO.

 

A grosso modo, um ACFS é um file system compartilhado entre nós de um cluster.

 

 

ASM Dynamic Volume

O ADVM é a base para o ACFS. Ele fornece gerenciamento de serviços para o volume e uma interface de disco padrão para permitir que o ACFS

utilize o espaço alocado para o ADVM entro do ASM diskgroup.

 

Esses volumes usam as mesmas políticas de mirrors e striping que os outros tipos de arquivos ASM, archives, e os datafiles usam.

 

Como os outros arquivos do tipo ASM, os ASM volume file, precisam estar inteiramente contidos em um diskgroup, e pode haver muitos volumes files em um único diskgroup.

 

Os ASM dynamic volumes podem ser criados através de uma instrução SQL, pelo ASMCMD, ou pelo ASMCA (console gráfica para gerenciamento da ASM).

 

Depois que um volume é criado, ele necessita ser ativado para gerar um device no SO, em /dev/asm. ACFS - ou outro file system como NTFS, são criados sob o ASM volume device.

 

O Driver ADVM mapeia as requisições de I/O do ASM volume device subjacente ao dynamic volume file que está contido dentro do ASM diskgroup.

 

  • ASM Dynamic Volume Striping

O Dynamic Volume é basicamente igual a qualquer outro arquivo ASM. Ele é composto de unidades de alocação conhecidadas como AU (Alocation Unit). As AU, estão distribuídas através dos discos da ASM e podem ser espelhadas para propósitos de proteção.

 

Como qualquer outro arquivo ASM, o Dynamic Volume precisa estar inteiramente contido no diskgroup.

 

Os extents e alocação de espaço do Dynamic Volume, é diferente em relação a um arquivo ASM.

 

Em um diskgroup com uma AU de 1Mb, cada volume extent tem 64Mb de tamanho. Os volume extents são alocados em grupos baseados no número

de colunas de strips especificadas para o volume. O número default de colunas de striping é quatro. O tamanho do volume extent é multiplicado

pelo número de colunas de strip, que determina o volume allocation unit (VAU) para o volume.

 

O valor default do VAU é 256 Mb, criado em um diskgroup com AU de 1Mb. O tamanho total do volume deve ser multiplo do VAU.

 

O volume striping é similar ao ASM striping. A configuração default do stripe é de 128K, com quatro colunas de stripe.

 

Em outras palavras, o dado é escrito por sua vez através de 4 unidades de alocação em chuncks de 128Kb , até cada grupo de 4 AUs for

preenchido.

 

Setando o número de colunas no Oracle ADVM volume para 1, desliga efetivamente o striping para o ADVM volume.

 

Observação: para adicionar um volume em um diskgroup, os atributos COMPATIBLE.ASM , COMPATIBLE.ADVM e COMPATIBLE.RDBMS precisam ser no mínimo 11.2, pois o ADVM surgiu na release 11gR2.

 

  • Restrições do ASM Dynamic volume

Device partitions não são suportadas (não se pode usar o fdisk ou similar) no Oracle ADVM dynamic volumes. Eles substituem o tradicional device partitioning. Cada volume é individualmente nomeado e pode ser configurado para um single file system.

 

Oracle ADVM volumes podem ser criados sob demanda em ASM diskgroup e serem dinamicamente aumentados quando necessário. Esses atributos fazem o Oracle ADVM volume ser mais flexivel que devices físicos associados a esquemas de partição.

 

No Linux, os volumes do Oracle ADVM são criados como dispositivos de bloco, independente da configuração de armazenamento do diskgroup.

Não é possível utilizar RAW(8) para mapear Oracle ADVM em raw devices.

 

Não se deve usar multipath nos ADVM volumes devices. O multpath deverá ser aplicado no disco bruto que originalmente foi utilizado para

formar o diskgroup da ASM.

 

Não se deve usar ASMLIB em um ADVM volume device, estas funções não são suportadas e não servem para nada.

 

O ADVM volume não suporta NFS e Exadata. Ele também não pode ser usado como boot device ou um file system do root.

 

 

ASM Cluster File System (ACFS)

Está embutido no ASM, trabalha como um file system. Nele é possível trabalhar com arquivos binários, arquivos de relatórios, traces,

alert logs e outras aplicações.

 

Com o ACFS, a ASM se tornou uma completa solução de armazenamento para arquivos do banco e arquivos que não são do banco. Suporta endian neutral metadata. Ele pode ser exportado utlizando protocolos como NFS (Network file system) e CIFS (Common Internet File Systems).

 

O ACFS elimina a necessidade de soluções de terceiros para cluster file system e pode ser utilizado em single node, bem como

RAC além de ambientes com Grid Computing.

 

Também suporta crescimento e redução dinâmica de tamanho sem downtime, e possui alta disponibilidade, faz espelhamento e striping em cima de RAID.

 

Ele pode ser gerenciado através do Enterprise Manager, SQL Plus e ASMCMD, e também está integrado com ferramentas nativas do SO.

 

  • ACFS Architecture

O ACFS architecture introduz um novo tipo de arquivo ASM, conhecido como dynamic volume.

 

O dynamic volume é essencialmente um arquivo ASM, que pode ser apresentado como um volume para um file system bem como um datafile para

o banco.

 

ASM Dynamic Volume Manager (ADVM), associado a um device driver, fornece interface entre dynamic volumes e o ACFS.

 

No ASM dynamic volume é possível rodar qualquer outro file system, como por exemplo um NT file system (NTFS).

 

  • Restrições do ASM Cluster file system

O ACFS não pode ser utilizado como um file system do root ou uma partição de boot. Ele também não pode ser utilizado como diretório home do Grid Infrastructure

 

  • ACFS Snapshots

Um ACFS Snapshot é um snapshot online, read-only, point-in-time, uma cópia do ACFS file system. O Snapshot é uma cópia inicial da alocação do storage que é mantida pelo file system.

 

Antes do Oracle ACFS file estender, ser modificado ou deletado, o valor atual é copiado para um snapshot usando a técnica do COW (copy-on-write). Os snapshots são disponibilizados imediatamente para o uso depois que eles são criados. Eles estão sempre online enquanto o file system está montado.

 

Como resultado, O Oracle ACFS snapshot pode suportar recuperação online de arquivos que foram alterados ou excluídos acidentalmente do file system. Para cada file system são suportadas 63 visões. Um ACFS snapshot pode ser também usado como fonte de um backup de file system.

 

O Oracle ACFS snapshot é mantido junto com os outros arquivos no file system, eliminando a necessidade de alocar espaço em outros

file system, sendo assim não desperdiça espaço.

 

O Oracle ACFS file system pode ser redimencionado dinâmicamente para acomodar arquivos acidionais ou requisão de armazenamento para

os Snapshots.

 

 

Premissas

Nesse artigo não abordo a instalação do Oracle RAC 11gR2, partiremos do princípio que este ambiente já está previamente instalado. No meu caso, tenho dois nós - racnode1 e racnode2, e estou utilizando Linux Red Hat 5.4 x86-64, simulando em Wmware Workstation versão 7.0.1. Quanto ao banco, utilizo a versão 11gR2.

 

Para montar o meu ambiente RAC, utilizei como referência Jeffrey Hunter. Confira mais neste link.

 

Agora, mão na massa!

 

 

01. Criação do diskgroup ACFSDG1 com 20 Gb

Iremos criar um ADVM com 30Gb de espaço, antes disso precisaremos de um diskgroup que receberá o nome de ACFSDG1. Vamos então verificar se temos discos disponiveis

 

[grid@racnode1 trace]$ sqlplus

 

SQL*Plus: Release 11.2.0.2.0 Production on Tue Dec 21 16:56:17 2010

 

Copyright © 1982, 2010, Oracle. All rights reserved.

 

Enter user-name: sys as sysasm

Enter password:

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production

With the Real Application Clusters and Automatic Storage Management options

SQL> COL HEADER_STATUS FORMAT A30

SQL> COL PATH FORMAT A30

SQL> SELECT GROUP_NUMBER,HEADER_STATUS,PATH,TOTAL_MB FROM V$ASM_DISK;

 

GROUP_NUMBER HEADER_STATUS PATH TOTAL_MB

------------ ------------------------------ ------------------------------ ----------

0 CANDIDATE ORCL:CRSVOL1 0

0 CANDIDATE ORCL:CRSVOL3 0

0 CANDIDATE ORCL:DISCO3 0

0 CANDIDATE ORCL:DISCO4 0

0 CANDIDATE ORCL:DISCO5 0

0 CANDIDATE ORCL:DISCO6 0

0 CANDIDATE ORCL:DISCO8 0

0 CANDIDATE ORCL:DISCO7 0

3 MEMBER ORCL:CRSVOL2 2014

1 MEMBER ORCL:DISCO1 10015

1 MEMBER ORCL:DISCO2 10015

2 MEMBER ORCL:DISCO9 10015

 

 

12 rows selected.Atenção: os discos com status de CANDIDATE serão utilizados.

 

 

02. Criando o diskgroup que armazenará nosso ADVM

SQL> CREATE DISKGROUP ACFSDG1 EXTERNAL REDUNDANCY DISK 'ORCL:DISCO3','ORCL:DISCO4';

 

Diskgroup created.

 

SQL> SELECT NAME,STATE,TOTAL_MB FROM V$ASM_DISKGROUP;

 

NAME STATE TOTAL_MB

------------------------------ ----------- ----------

DADOS MOUNTED 20030

FRA MOUNTED 10015

OCRASM1 MOUNTED 2014

ACFSDG1 MOUNTED 20030Nosso novo diskgroup ACFSDG1 foi criado, como podemos ver, ele está com status MOUNTED.

 

Observação: façam a mesma query na instância ASM2. Se o diskgroup ACFSDG1 não estiver montado, emita o comando ALTER DISKGROUP ACFSDG1 MOUNT;

 

 

03. Setando os atributos para 11.2

Para que nosso artigo seja concluído com sucesso, nosso diskgroup ACFSDG1 necessita ter no minimo o valor 11.2 para os seguintes atributos

 

  • COMPATIBLE.ASM
  • COMPATIBLE.RDBMS
  • COMPATIBLE.ADVM

SQL> SELECT COMPATIBILITY,DATABASE_COMPATIBILITY FROM V$ASM_DISKGROUP WHERE NAME='ACFSDG1';

 

COMPATIBILITY DATABASE_COMPATIBILITY

------------------------------------------------------------ ------------------------------------------------------------

10.1.0.0.0 10.1.0.0.0

 

Reparem - os atributos de nosso diskgroup (ACFSDG1), vamos seta-los para 11.2

 

SQL> ALTER DISKGROUP ACFSDG1 SET ATTRIBUTE 'COMPATIBLE.ASM'='11.2';

 

Diskgroup altered.

 

SQL> ALTER DISKGROUP ACFSDG1 SET ATTRIBUTE 'COMPATIBLE.RDBMS'='11.2';

 

Diskgroup altered.

 

SQL> ALTER DISKGROUP ACFSDG1 SET ATTRIBUTE 'COMPATIBLE.ADVM'='11.2';

 

Diskgroup altered.

 

SQL> SELECT COMPATIBILITY,DATABASE_COMPATIBILITY FROM V$ASM_DISKGROUP WHERE NAME='ACFSDG1';

 

COMPATIBILITY DATABASE_COMPATIBILITY

------------------------------------------------------------ ------------------------------------------------------------

11.2.0.0.0 11.2.0.0.0Agora, podemos prosseguir.

 

 

04. Criando o Oracle Automatic Storage Management Dynamic Volume ou para simplificar nosso volume dinâmico

Agora criaremos um volume de 8Gb de espaço utiilizando o diskgroup ACFSDG1. O nome desse volume será VOL1ACFS.

 

SQL> ALTER DISKGROUP ACFSDG1 ADD VOLUME VOL1ACFS SIZE 8G;

 

Diskgroup altered.

 

Confirmando a criação do volume

SQL> COL VOLUME_DEVICE FORMAT A40

SQL> SELECT VOLUME_NAME,VOLUME_DEVICE,SIZE_MB,STATE FROM V$ASM_VOLUME;

VOLUME_NAME VOLUME_DEVICE SIZE_MB STATE

------------------------------ ---------------------------------------- ---------- --------

VOL1ACFS /dev/asm/vol1acfs-135 8192 ENABLED

05. Criando o Oracle Automatic Storage Management Cluster File System

Nesse ponto criaremos nosso file system clusterizado, onde apresentaremos ao Linux.

 

Vejam que no item 4 o Oracle criou um device (/dev/asm/vol1acfs-135) apresentado na coluna VOLUME_DEVICE, para o nosso volume VOL1ACFS. Nesse momento, ele poderá ser apresentado como um device para o Linux, logo, poderemos utilizar o comando mkfs para a criação do nosso file system.

 

Observação: utilize a conta root para essa operação

 

[root@racnode1 ~]# mkfs -t acfs -b 8k /dev/asm/vol1acfs-135

mkfs.acfs: version = 11.2.0.2.0

mkfs.acfs: on-disk version = 39.0

mkfs.acfs: volume = /dev/asm/vol1acfs-135

mkfs.acfs: volume size = 8589934592

mkfs.acfs: Format complete.A flag -t indica que o file system será do tipo acfs.

 

Em seguida (conectado com root), vamos criar o caminho do nosso diretório (fazer em todos os nós do cluster)

 

mkdir -p /acfsclusterAgora, montaremos nosso file system (conectado com root , fazer em todos os nós do cluster)

 

mount -t acfs /dev/asm/vol1acfs-135 /acfsclusterReparem na associação entre o file system (acfscluster) e o device (/dev/asm/vol1acfs-135).

 

E, por último, concedendo permissão para o usuário Oracle (conectado como root, fazer em todos os nós do cluster)

 

chown oracle:dba /acfscluster

06. Criando um arquivo no novo file system

No nó racnode1 (conectado com oracle), criar o arquivo CLIENTES.TXT

 

[oracle@racnode1 ~]$ cd /acfscluster

[oracle@racnode1 acfscluster]$ touch CLIENTES.TXTNo nó racnode2 (conectado com oracle), constatar a criação do arquivo CLIENTES.TXT

 

[oracle@racnode2 ~]$ cd /acfscluster

[oracle@racnode2 acfscluster]$ ls -ltr

total 68

drwxr-xr-x 5 root root 4096 Dec 21 18:03 .ACFS/

drwx------ 2 root root 65536 Dec 21 18:03 lost+found/

-rw-r--r-- 1 oracle oinstall 0 Dec 21 18:55 CLIENTES.TXTReparem que o arquivo CLIENTES.TXT foi criado a partir do nó racnode1. Quando fazemos um ls -ltr no file system (acfscluster) no nó racnode2,

o arquivo é listado.

 

 

07. Configurando o file system para ser montado no próximo reboot

Depois que criamos e configuramos nosso ACFS, precisamos registrá-lo junto a estrutura do Grid Infrastructure. Por default o Oracle não monta automaticamente nosso file system.

 

Conectado como root (executar em apenas um nó)

 

[root@racnode1 ~]# acfsutil registry -a /dev/asm/vol1acfs-135 /acfscluster

acfsutil registry: mount point /acfscluster successfully added to Oracle RegistryA partir de agora, no próximo reboot o file system acfscluster que acabamos de criar será montado automaticamente.

 

 

08. Utilizando o Oracle Automatic Storage Management Cluster File System Snapshots

Ainda não chegamos no fim do assunto, precisamos discutir o uso dos snapshots, termo esse bem conhecido no mundo dos DBAs e em TI como um todo.

 

Os snapshots possibilitam a criação de cópias dos arquivos que estão armazenados no file system.

 

Com o instuito de conservar espaço em disco, o snapshot trabalha com alterações em nível de bloco ao invés de nível de arquivo. Depois

da criação de um snapshot, só os blocos modificados serão copiados. Quando um arquivo for deletado do file system, aí sim o Oracle

manterá o arquivo com todos os seus blocos.

 

Vamos ao exemplo:

 

Iremos criar um snapshot com o nome bkpsnap (conectado com root)

 

root@racnode1 ~]# /sbin/acfsutil snap create bkpsnap /acfscluster

acfsutil snap create: Snapshot operation is complete.Essa operação criará o diretório /snaps/bkpsnap, embaixo do diretório /acfscluster/.ACFS

 

A partir desse momento, todos os blocos alterados do arquivo CLIENTES.TXT serão mantidos e gerenciado pelo Oracle no diretório /acfscluster/.ACFS/snaps/bkpsnap.

 

Pronto, agora nosso arquivo CLIENTES.TXT está protegido.

 

 

09. Simulando a perda do arquivo CLIENTES.TXT, através de usuário em comum, como o rm -f

Conectado com o usuário Oracle

 

[oracle@racnode1 acfscluster]$cd /acfscluster

[oracle@racnode1 acfscluster]$rm -f CLIENTES.TXT

[oracle@racnode1 acfscluster]$ ls -ltr

total 68

drwxr-xr-x 5 root root 4096 Dec 21 18:03 .ACFS/

drwx------ 2 root root 65536 Dec 21 18:03 lost+found/Reparem que o arquivo foi deletado de seu local de origem /acfscluster/, porém, o arquivo agora se encontra em /acfscluster/.ACFS/snaps/bkpsnap

 

[oracle@racnode1 acfscluster]$ cd /acfscluster/.ACFS/snaps/bkpsnap

[oracle@racnode1 bkpsnap]$ ls -ltr

total 4

?--------- ? ? ? ? ? lost+found

drwxr-xr-x 5 root root 4096 Dec 21 18:03 .ACFS/

-rw-r--r-- 1 oracle oinstall 0 Dec 21 18:55 CLIENTES.TXTVeja que o arquivo está salvo e íntegro em seu devido lugar.

 

 

Conclusão

Essas novas features vieram para auxiliar as empresas no que diz respeito a custos, podendo eliminar as atuais soluções de terceiros para

clusterização de file system, uma vez que essas features não são options, ou seja, não requerem aquisição de licensas adicionais para seu uso.

 

Quanto à implementação, recomendo planejamento e testes em ambientes de desenvolvimento/homologação para a devida implementação com sucesso em ambiente de produção - são belas features.

 

Encerrando, quero agradecer dois grandes amigos, Bruno Cantelli e Marcus Vinicius Pedro Miguel, dois excelentes profissionais que me ajudaram e me ajudam nos assuntos referentes a infra-estrutura para o ambiente em RAC.

 

Encerramos por aqui e até a próxima.

 

[random]

 

http://imasters.com.br/artigo/19351/oracle/oracle-11gr2-gerenciando-asm-dynamic-volume-manager-e-asm-cluster-file-system/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.