Criar ASM Diskgroups dentro de volumes NFS
Neste artigo vou abordar a utilização de arquivos em volumes NFS como discos
ASM.
A ideia dessa configuração surgiu da minha necessidade de montar um
ambiente de laboratório com Oracle 12c em RAC usando o Hyper-V do meu
notebook.
Como o Hyper-V não suporta (até o momento em que este post foi
criado, em 2016) o compartilhamento de discos entre VMs quando usados apenas
discos locais, foi necessário buscar um método alternativo para criar o
ambiente. Dessa forma, além das duas máquinas virtuais para os hosts do RAC,
criei mais uma para ser o servidor NFS.
Aviso: Apesar da utilização de arquivos em volumes NFS como discos
ASM ser uma configuração suportada pela Oracle, ela deve ser utilizada com
muita cautela, principalmente se pretende usá-la em produção. A utilização
de volumes NFS requer a montagem no modo "hard", o que faz com que a
instância ASM ou o Database esperem indefinidamente por uma resposta do
servidor NFS quando este ficar indisponível. Isso significa que o ASM não
poderá fornecer de forma efetiva o espelhamento de dados. De uma forma
geral, para usar essa configuração os Diskgroups devem ser configurados com
redundância "External" e a comunicação com os volumes NFS deve ser
confiável.
Ref.:
How To Create ASM Diskgroups using NFS/NAS Files? (Doc ID 731775.1)
Configurando o servidor NFS (O Storage)
No ambiente de laboratório que estou montando o SO usado é o Oracle Linux 7, portanto todos os comandos aqui são relativos a essa versão, que trouxe varias novidades em relação ao Oracle Linux 6, principalmente a adição do systemd como mecanismo de controle e gerenciamento de serviços, devices, sockets e pontos de montagem.
Primeiramente instale o servidor NFS.
[root@ol7nfs01 ~]# yum install nfs-utils
Crie o diretório onde serão colocados os arquivos que serão usados como discos pelo ASM
[root@ol7nfs01 ~]# mkdir /nfs
Edite o arquivo /etc/exports para configurar a publicação do diretório pelo servidor NFS. Tenha atenção aos parâmetros usados e somente altere-os se souber o que está fazendo. Nesse laboratório o diretório que estou exportando é o "/nfs".
[root@ol7nfs01 ~]# cat /etc/exports
/nfs *(rw,sync,no_wdelay,insecure_locks,no_root_squash)
Inicie e ative o serviço do NFS, para que o mesmo inicie sempre que o servidor reiniciar.
[root@ol7nfs01 ~]# systemctl start nfs-server
[root@ol7nfs01 ~]# systemctl enable nfs-server
Configurando o cliente NFS (O Database Server)
A primeira atividade nos servidores de banco que montarão o diretório NFS é criar a pasta que servirá de ponto de montagem.
[root@ol7db01 ~]# mkdir -p /u01/oradata
Em seguida edite o arquivo /etc/fstab para que o volume NFS seja montado sempre que o servidor for reiniciado. Adicione a seguinte linha ao fstab, sendo que "ol7nfs01" é o nome do servidor NFS. Novamente atenção aos parâmetros e somente altere-os se souber o que está fazendo.
ol7nfs01:/nfs /u01/oradata nfs rw,bg,hard,nointr,tcp,vers=3,timeo=600,rsize=32768,wsize=32768,actimeo=0 0 0
Agora você pode montar o volume NFS
[root@ol7db01 ~]# mount -a
Em seguida configure o "ownership" e as permissões do diretório. Estou assumindo que o usuário oracle e o grupo oinstall já estão criados.
[root@ol7db01 ~]# chown -R oracle:oinstall /u01/oradata
[root@ol7db01 ~]# chmod -R 775 /u01/oradata
O próximo passo é criar os arquivos que serão usados como discos para o ASM. Vou criar alguns arquivos de 10 GB para usar nos diskgroups DATA e RECO. Como no meu laboratório vou instalar o Grid Infrastructure sob o usuário grid, usarei ele para criar os arquivos.
[grid@ol7db01 ~]$ mkdir /u01/oradata/asm
[grid@ol7db01 ~]$ dd if=/dev/zero of=/u01/oradata/asm/data01.disk bs=1k count=10000000
[grid@ol7db01 ~]$ dd if=/dev/zero of=/u01/oradata/asm/data02.disk bs=1k count=10000000
[grid@ol7db01 ~]$ dd if=/dev/zero of=/u01/oradata/asm/data03.disk bs=1k count=10000000
[grid@ol7db01 ~]$ dd if=/dev/zero of=/u01/oradata/asm/data04.disk bs=1k count=10000000
[grid@ol7db01 ~]$ dd if=/dev/zero of=/u01/oradata/asm/data05.disk bs=1k count=10000000
[grid@ol7db01 ~]$ dd if=/dev/zero of=/u01/oradata/asm/reco01.disk bs=1k count=10000000
[grid@ol7db01 ~]$ dd if=/dev/zero of=/u01/oradata/asm/reco02.disk bs=1k count=10000000
Devemos ajustar novamente as permissões no diretório e arquivos criados.
[grid@ol7db01 ~]$ chmod 775 /u01/oradata/asm
[grid@ol7db01 ~]$ chmod 664 /u01/oradata/asm/*
Agora o ambiente já está preparado e podemos iniciar a instalação do Grid Infrastructure. Na tela de criação do diskgroup do ASM inicialmente não vão aparecer os discos candidatos. Basta clicar em "Change Discovery Path" e indicar o diretório NFS onde foram criados os arquivos.
Na tela para alterar o caminho de descoberta dos discos, digite o caminho com o asterisco como caractere coringa.
Quando retornar à tela de seleção de discos, os arquivos aparecerão listados.
Deste ponto em diante o processo é exatamente igual à qualquer instalação do Grid Infrastructure.
Comentários
Postar um comentário