martes, 12 de junio de 2018

Flex Cluster RAC 12cR2 en Linux + ASM Filter Driver + DNS y DHCP en Windows Server 2016 – Parte 2


Continuamos con los pasos para instalar y configurar de manera correcta Oracle Flex Cluster RAC 12cR2 utilizando los servicios Oracle Grid Naming Services y ASM Filter Driver.
En la primera parte configuramos los servicios DNS y DHCP sobre un servidor Windows Server 2016; también preparamos los servidores Oracle Linux para poder soportar la instalación de la Infraestructura Grid y motor de base de datos 12cR2.

Para este segundo articulo nos vamos a enfocar en la configuración de los discos compartidos mediante ASM Filter Driver, verificaremos si la configuración realizada cumple los pre-requisitos de instalación y finalmente instalaremos la Infraestructura Grid 12cR2.


Comparto nuevamente la información de la arquitectura de ejemplo:
Definimos los servidores involucrados utilizando Oracle Virtual Box con 2 segmentos de red:
  • Red Pública:  172.68.1.1
  • Red Privada: 192.68.1.1

Ambos servidores poseen 2 tarjetas de red para soportar los segmentos de red definidos.

Nodo 1
Nodo 2
DNS y DHCP
Servidor
oraclerac1
oraclerac2
WIN-JZG2016
Sistema Operativo
Oracle Linux 6.8
Oracle Linux 6.8
Windows Server 2016
IP Publica
172.68.1.31
172.68.1.33
172.68.1.17
IP Privada
192.68.1.31
192.68.1.33


Para mi caso, que voy a configurar Oracle Grid Naming Service (GNS), debo definir una IP virtual llamada GNS-VIP

Nombre
gns-vip.oracle.com
IP
172.68.1.35


¿Qué es ASM Filter Driver?

Oracle ASMFD es una nueva funcionalidad en Oracle 12c que permite validar las escrituras de I/O sobre los discos ASM. Rechaza todo requerimiento de escritura a disco que se considere invalido y protege los discos ASM de escrituras accidentales.
Simplifica la configuración y administración de discos al eliminar la necesidad de nombrar los discos cada vez que el servidor se reinicie.


Esta nueva funcionalidad ayuda a proteger la información almacenada en discos ASM y puede llegar a reemplazar la funcionalidad de cumple ASMLIB.  
Personalmente, yo no suelo utilizar ASMLIB; por lo que ASMFD me ofrece una opción mas interesante para la configuración de los discos compartidos.


Configuración de Disco Compartidos con ASM Filter Driver

Para la instalación de una arquitectura Oracle RAC, es indispensable configurar discos que puedan ser accedidos desde cualquier nodo del clúster.  Estos discos compartidos pueden estar configurados mediante NAS, SAN, NFS u OCFS.  Lo importante es que ambos servidores puedan ver y modificar la información de manera simultánea.

Durante la instalación de Oracle RAC 12cR2 se solicita la creación de 2 Diskgroups obligatorios. El primer Diskgroup almacena los recursos físicos de clúster (OCR y Votingk Disk) y el segundo Diskgroup es asignado para la base de datos Grid Infraestructue Management Repository.  El recurso para los 2 Diskgroups debe de ser como minino 40Gb de disco compartido.

Para nuestro caso que utilizamos un ambiente virtualizado (Virtual Box), debemos seguir los siguientes pasos:

1.     Asignar al primer servidor 4 discos de tamaño fijo y de tipo VDI.  La suma de los discos debe ser como mínimo 40Gb de espacio.




Seleccionamos la opción Administrador de medios virtuales y definimos los nuevos discos como Compartidos.



Agregamos los discos al segundo servidor del clúster.



2.     Levantamos los servidores para poder configurar los nuevos discos compartidos.  Formateamos los discos desde el primer nodo del clúster.

[root@oraclerac1 ~]# fdisk /dev/sdf
[root@oraclerac1 ~]# fdisk /dev/sdg
[root@oraclerac1 ~]# fdisk /dev/sdh
[root@oraclerac1 ~]# fdisk /dev/sdi


3.     La funcionalidad ASM Filter Driver se encuentra lista para utilizar en el instalador de la Infraestructura Grid 12cR2.
Como ya lo había comentado en artículos anteriores, a partir de la versión Oracle 12cR2, el instalador de la infraestructura Grid solo se debe descomprimir en la ruta de instalación.


[oracle@oraclerac1 Instaladores]$ cp  linuxx64_12201_grid_home.zip /u01/app/12.2.0/grid/.

[oracle@oraclerac1 grid]$ unzip -q linuxx64_12201_grid_home.zip


4.     Con el usuario root definimos la variable de entorno ORACLE_HOME y utilizamos el comando afd_label para poder asignar los discos a un nombre con ASM Filter Driver.

[root@nodo1 oracle]# cd /u01/app/12.2.0/grid/bin
[root@nodo1 oracle]# export ORACLE_HOME=/u01/app/12.2.0/grid

[root@nodo1 oracle]# ./asmcmd afd_label OCR1 /dev/sdf1 --init
[root@nodo1 oracle]# ./asmcmd afd_label DATA1 /dev/sdg1 --init
[root@nodo1 oracle]# ./asmcmd afd_label DATA2 /dev/sdh1 --init
[root@nodo1 oracle]# ./asmcmd afd_label DATA3 /dev/sdi1 –init


5.     Verificamos si las etiquetas fueron creadas en todos los discos de manera correcta.


[root@oraclerac1 bin]# ./asmcmd afd_lslbl /dev/sdf1
---------------------------------------------------------------------
Label                     Duplicate  Path
=====================================================================
OCR1                                  /dev/sdf1

[root@oraclerac1 bin]# ./asmcmd afd_lslbl /dev/sdg1
---------------------------------------------------------------------
Label                     Duplicate  Path
=====================================================================
DATA1                                  /dev/sdg1

[root@oraclerac1 bin]# ./asmcmd afd_lslbl /dev/sdh1
---------------------------------------------------------------------
Label                     Duplicate  Path
=====================================================================
DATA2                                  /dev/sdh1

[root@oraclerac1 bin]# ./asmcmd afd_lslbl /dev/sdi1
---------------------------------------------------------------------
Label                     Duplicate  Path
=====================================================================
DATA3                                  /dev/sdi1


6.     Si se desea quitar la etiqueta ASMFD a un disco, puedes utilizar el comando afd_unlabel


[root@nodo1 oracle]# ./asmcmd afd_unlabel /dev/sdf1 –init



7.     Al momento de etiquetar los discos, ASMFD define los permisos como root:disk. 
Solo por esta vez es necesario definir los permisos de los discos como oracle:asmadmin en ambos servidores.  Esto se realiza para evitar errores en la verificación de la instalación.

[root@oraclerac1 dev]# chown oracle:asmadmin /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
[root@oraclerac1 dev]# chmod 660 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
[root@oraclerac1 bin]# ls -l /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1


[root@oraclerac2 dev]# chown oracle:asmadmin /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
[root@oraclerac2 dev]# chmod 660 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1
[root@oraclerac2 bin]# ls -l /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1



Verificación de los servidores del clúster.

Procedemos a verificar la configuración de la arquitectura que hemos preparado.  Seguimos los siguientes pasos.

1.     Instalar el paquete cvuqdisk que viene con el instalador de Infraestructura Grid.  Es importante instalar dicho paquete en todos los servidores del clúster.

[root@nodo1 rpm]# cd /u01/app/12.2.0/grid/cv/rpm
[root@nodo1 rpm]# export CVUQDISK_GRP=oinstall
[root@nodo1 rpm]# rpm -ivh cvuqdisk -1.0.10-1.rpm


2.     Verificamos si la configuración GNS se encuentra correctamente configurada.

[oracle@oraclerac1 grid]$ ./runcluvfy.sh  comp gns -precrsinst -domain gns.oracle.com -vip gns-vip.oracle.com -verbose

Verifying GNS Integrity ...
  Verifying subdomain is a valid name ...PASSED
  Verifying GNS VIP is a valid address ...PASSED
  Verifying Port 53 available for component 'GNS' ...PASSED
Verifying GNS Integrity ...PASSED

Verification of GNS integrity was successful.

CVU operation performed:      GNS integrity
Date:                         May 31, 2018 7:20:26 PM
CVU home:                     /u01/app/12.2.0/grid/
User:                         oracle



3.     Verificamos la configuración de los servidores donde se instalará la infraestructura Grid 12cR2.  En mi caso tengo una advertencia sobre memoria ya que no cuento con más de 8GB de RAM para cada servidor.

[oracle@oraclerac1 grid]$ ./runcluvfy.sh stage -pre crsinst -n oraclerac1,oraclerac2

Verifying Physical Memory ...FAILED (PRVF-7530)
Verifying Available Physical Memory ...PASSED
Verifying Swap Size ...PASSED
Verifying Free Space: oraclerac2:/usr,oraclerac2:/var,oraclerac2:/etc,oraclerac2:/sbin ...PASSED
Verifying Free Space: oraclerac2:/tmp ...PASSED
Verifying Free Space: oraclerac1:/usr,oraclerac1:/var,oraclerac1:/etc,oraclerac1:/sbin ...PASSED
Verifying Free Space: oraclerac1:/tmp ...PASSED
Verifying User Existence: oracle ...
  Verifying Users With Same UID: 500 ...PASSED
Verifying User Existence: oracle ...PASSED
Verifying Group Existence: asmadmin ...PASSED
Verifying Group Existence: asmdba ...PASSED
Verifying Group Existence: oinstall ...PASSED
Verifying Group Membership: asmadmin ...PASSED
Verifying Group Membership: asmdba ...PASSED
Verifying Group Membership: oinstall(Primary) ...PASSED
Verifying Run Level ...PASSED
Verifying Hard Limit: maximum open file descriptors ...PASSED
Verifying Soft Limit: maximum open file descriptors ...PASSED
Verifying Hard Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum user processes ...PASSED
Verifying Soft Limit: maximum stack size ...PASSED
Verifying Architecture ...PASSED
Verifying OS Kernel Version ...PASSED
Verifying OS Kernel Parameter: semmsl ...PASSED
Verifying OS Kernel Parameter: semmns ...PASSED
Verifying OS Kernel Parameter: semopm ...PASSED
Verifying OS Kernel Parameter: semmni ...PASSED
Verifying OS Kernel Parameter: shmmax ...PASSED
Verifying OS Kernel Parameter: shmmni ...PASSED
Verifying OS Kernel Parameter: shmall ...PASSED
Verifying OS Kernel Parameter: file-max ...PASSED
Verifying OS Kernel Parameter: ip_local_port_range ...PASSED
Verifying OS Kernel Parameter: rmem_default ...PASSED
Verifying OS Kernel Parameter: rmem_max ...PASSED
Verifying OS Kernel Parameter: wmem_default ...PASSED
Verifying OS Kernel Parameter: wmem_max ...PASSED
Verifying OS Kernel Parameter: aio-max-nr ...PASSED
Verifying OS Kernel Parameter: panic_on_oops ...PASSED
Verifying Package: binutils-2.20.51.0.2 ...PASSED
Verifying Package: compat-libcap1-1.10 ...PASSED
Verifying Package: compat-libstdc++-33-3.2.3 (x86_64) ...PASSED
Verifying Package: libgcc-4.4.7 (x86_64) ...PASSED
Verifying Package: libstdc++-4.4.7 (x86_64) ...PASSED
Verifying Package: libstdc++-devel-4.4.7 (x86_64) ...PASSED
Verifying Package: sysstat-9.0.4 ...PASSED
Verifying Package: ksh ...PASSED
Verifying Package: make-3.81 ...PASSED
Verifying Package: glibc-2.12 (x86_64) ...PASSED
Verifying Package: glibc-devel-2.12 (x86_64) ...PASSED
Verifying Package: libaio-0.3.107 (x86_64) ...PASSED
Verifying Package: libaio-devel-0.3.107 (x86_64) ...PASSED
Verifying Package: nfs-utils-1.2.3-15 ...PASSED
Verifying Package: e2fsprogs-1.42.8 ...PASSED
Verifying Package: e2fsprogs-libs-1.42.8 (x86_64) ...PASSED
Verifying Package: smartmontools-5.43-1 ...PASSED
Verifying Package: net-tools-1.60-110 ...PASSED
Verifying Port Availability for component "Oracle Notification Service (ONS)" ...PASSED
Verifying Port Availability for component "Oracle Cluster Synchronization Services (CSSD)" ...PASSED
Verifying Users With Same UID: 0 ...PASSED
Verifying Current Group ID ...PASSED
Verifying Root user consistency ...PASSED
Verifying Package: cvuqdisk-1.0.10-1 ...FAILED (PRVG-11550)
Verifying Node Connectivity ...
  Verifying Hosts File ...PASSED
  Verifying Check that maximum (MTU) size packet goes through subnet ...PASSED
  Verifying subnet mask consistency for subnet "172.68.1.0" ...PASSED
  Verifying subnet mask consistency for subnet "192.68.1.0" ...PASSED
Verifying Node Connectivity ...PASSED
Verifying Multicast check ...PASSED
Verifying Network Time Protocol (NTP) ...
  Verifying '/etc/ntp.conf' ...PASSED
  Verifying '/var/run/ntpd.pid' ...PASSED
Verifying Network Time Protocol (NTP) ...PASSED
Verifying Same core file name pattern ...PASSED
Verifying User Mask ...PASSED
Verifying User Not In Group "root": oracle ...PASSED
Verifying Time zone consistency ...PASSED
Verifying resolv.conf Integrity ...
  Verifying (Linux) resolv.conf Integrity ...PASSED
Verifying resolv.conf Integrity ...PASSED
Verifying DNS/NIS name service ...PASSED
Verifying Domain Sockets ...PASSED
Verifying /boot mount ...PASSED
Verifying Daemon "avahi-daemon" not configured and running ...PASSED
Verifying Daemon "proxyt" not configured and running ...PASSED
Verifying User Equivalence ...PASSED
Verifying /dev/shm mounted as temporary file system ...PASSED
Verifying File system mount options for path /var ...PASSED
Verifying zeroconf check ...PASSED
Verifying ASM Filter Driver configuration ...PASSED

Pre-check for cluster services setup was unsuccessful on all the nodes.


Failures were encountered during execution of CVU verification request "stage -pre crsinst".

Verifying Physical Memory ...FAILED
oraclerac2: PRVF-7530 : Sufficient physical memory is not available on node
            "oraclerac2" [Required physical memory = 8GB (8388608.0KB)]

oraclerac1: PRVF-7530 : Sufficient physical memory is not available on node
            "oraclerac1" [Required physical memory = 8GB (8388608.0KB)]

CVU operation performed:      stage -pre crsinst
Date:                         May 30, 2018 10:24:06 PM
CVU home:                     /u01/app/12.2.0/grid/
User:                         oracle




Estamos listos para configurar infraestructura Grid 12cR2 sobre nuestros servidores.


Configuración de infraestructura Grid 12cR2.

Como indique en pasos anteriores, la instalación de la infraestructura Grid solo se basa en copiar el archivo ZIP en el directorio correspondiente y descomprimirlo.
Luego de la descompresión debemos empezar con la configuración en los siguientes pasos:

1.     Nos ubicamos en el directorio de instalación de infraestructura Grid y ejecutamos el comando GridSetup.sh desde el primer nodo del clúster.

[oracle@oraclerac1 grid]$ cd /u01/app/12.2.0/grid
[oracle@oraclerac1 grid]$ ./gridSetup.sh


2.     Seleccionamos la opción de configuración para un nuevo clúster.



3.     Seleccionamos la opción de configuración para un nuevo clúster. La configuración clásica se le denomina “Standalone Cluster”.
Oracle Domain Services Cluster es una nueva opción en Oracle 12cR2 para nubes privadas. En ella, múltiples configuraciones de clúster se agrupan bajo un mismo servicio de dominio.


4.     Definimos el nombre del clúster, nombre del SCAN, puerto de SCAN. 
Debido a la configuración de este ejemplo, seleccionamos la configuración GNS y definimos el GNS-VIP y el sub-dominio definido en el DNS.


5.     Definimos los nodos que serán parte de la arquitectura de clúster. Podemos definir que tipo de nodo se configura: HUB o LEAF. 


Para la versión Oracle 12cR2 se debe tener al menos 2 nodos HUB para poder soportar nodos de tipo LEAF.

En este punto se configuran las llaves de confianza SSH entre ambos servidores.


6.     Asignamos una interfaz de red para la Red Pública y otra, para la Red Privada.  La Red ASM es fundamental para la configuración Flex ASM.  Puede configurarse en la misma interfaz que la Red Privada o puede tener su propia interfaz.


7.     Configuramos los recursos de clúster sobre 2 Diskgroups ASM.



8.     Creamos 2 Diskgroups con los discos configurados con ASM Filter Driver.
a.     DG_OCR:  Para OCR y Voting Disk.
b.     DG_DATA: Para Grid Infraestructue Management Repository

Como los discos ya se han etiquetado con ASM Filster Driver, la configuración los reconoce como candidatos para formar parte del Diskgroups.
Para nuestro ejemplo necesitamos seleccionar la opción “Configure Oracle ASM Filter Driver”



9.     Definimos el password para cada usuario administrador de ASM.


10.  Definimos los grupos de sistema operativo para cada Rol y, el directorio ORACLE_BASE de la instalación.
Si es la primera vez que instalan un producto Oracle, deben definir el directorio para Oracle Inventory.




11.  Cuando la configuración realiza la verificación de los servidores; esta me muestra una advertencia en la configuración del DNS.  Esto se debe a que para poder verificar el DNS es necesario ingresar el password del usuario Root.


Para poder verificar correctamente este mensaje, abrimos 2 sesiones al primero servidor del clúster y ejecutamos los siguientes comandos.

SESION 1

[oracle@oraclerac1 grid]$ ./runcluvfy.sh comp dns -server -domain gns.oracle.com -vipaddress gns-vip.oracle.com/255.255.255.0/eth2 -verbose -method root
Enter "ROOT" password:

Verifying Task DNS configuration check ...
Waiting for DNS client requests...
Verifying Task DNS configuration check ...PASSED

Verification of DNS Check was successful.

CVU operation performed:      DNS Check
Date:                         Jun 2, 2018 9:21:42 PM
CVU home:                     /u01/app/12.2.0/grid/
User:                         oracle


SESION 2

[oracle@oraclerac1 grid]$ ./runcluvfy.sh comp  dns -client -domain gns.oracle.com -vip gns-vip.oracle.com  -method root -verbose -last
Enter "ROOT" password:

Verifying Task DNS configuration check ...PASSED

Verification of DNS Check was successful.

CVU operation performed:      DNS Check
Date:                         Jun 2, 2018 9:22:27 PM
CVU home:                     /u01/app/12.2.0/grid/
User:                         oracle


12.  Procedemos a ejecutar la configuración de la infraestructura Grid en modo clúster.


A mitad de la instalación nos solicita ejecutar scripts con el usuario Root.  Es importante ejecutar los scripts de manera ordenada.


Es muy importante que todos los pasos se ejecuten de manera correcta.



Finalizamos la instalación de la infraestructura Grid en modo clúster. Ahora nos toca instalar el motor de base de datos.

No hay comentarios.:

Publicar un comentario