En esta serie de artículos quiero mostrarles paso a
paso como preparar un ambiente de servidores para instalar y configurar Oracle
Flex Cluster RAC 12cR2; utilizando la opción GNS para la definición de nombres
y ASM Filter Driver para la configuración de discos.
Voy a detallar consideraciones que deben tener en
cuenta para poder utilizar las funcionalidades que Oracle RAC 12cR2 te ofrece.
Para este primer articulo nos vamos a enfocar en la
definición de Flex Cluster y la configuración de los servicios DNS y DCHP sobre
Windows Server 2016, además de los servidores que serán parte de la instalación
Oracle RAC 12cR2.
¿Qué se Oracle Flex
Cluster?
En versiones anteriores, a una arquitectura de 32
nodos a más se le consideraba como un clúster extremadamente grande debido a la
topología que utilizaba. A medida que aumenta
la cantidad nodos, las conexiones entre sí provocan contención de los recursos
de clúster y de red.
Oracle 12c introduce una nueva arquitectura llamada
Oracle Flex Cluster, diseñada para soportar una cantidad superior de nodos
(hasta 2000 nodos) como se suele configurar en ambientes CLOUD.
La topología de Flex Cluster se basa en dos tipos
de nodos: HUB y LEAF.
- Nodos HUB: Son los nodos principales de la arquitectura, son los responsables de conectarse al Storage compartido y acceder al OCR y Voting Disk.
- Nodos LEAF: Nodos más ligeros en recursos que se conectan a los diferentes nodos HUB para formar parte del clúster. No necesitan tener acceso directo al Storage compartido y utilizan la misma red pública y privada del clúster.
Implementación de Flex
Cluster RAC 12cR2
Ahora que tenemos una idea de que es Flex Cluster
vamos a proceder a realizar la implementación de esta arquitectura.
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 se configura la opción Oracle
Grid Naming Service (GNS), debo definir una IP virtual llamada GNS-VIP
Nombre
|
gns-vip.oracle.com
|
IP
|
172.68.1.35
|
Configuración de DNS y
DHCP
En la mayoría de artículos por internet se observa
la configuración DNS y DCHP sobre distribuciones Linux, sin embargo, en
Latinoamérica, la realidad es que la mayoría de empresas suelen configurar este
tipo de soluciones sobre Windows Server.
Debido a su interfaz familiar actualmente, elegí Windows Server 2016 para
esta demostración.
1.
Nuestro sistema operativo Windows debe tener instalado
correctamente los servicios DNS y DHCP como se muestra panel principal del
servidor.
En el caso que no tengas instalado dichos
servicios, es posible hacerlo mediante el disco de instalación de Windows
Server.
Para ellos elegimos la opción Manage -> Add Roles and
Features
En la pantalla de Roles seleccionamos los servicios
DNS y DHCP para que se puedan instalar.
2.
Vamos a crear un nuevo dominio llamado oracle.com.
En este dominio es donde definimos el nombre y las IPs publicas de los
servidores que forman parte de la arquitectura RAC que estamos configurando.
Seleccionamos la opción Tools -> DNS
Sobre el directorio de zonas seleccionamos la
opción Nueva Zona.
Definimos la zona como una primaria y con el nombre
oracle.com
3.
Creamos la zona reversa para que se puede resolver
las IPs con los nombres de cada servidor definido en el DNS.
Definimos la zona reversa primaria para IPs versión
4 del mismo segmento de red.
4.
Procedemos a definir los servidores con su
respectivas IPs. Para mi caso, que voy a
configurar Oracle Grid Naming Service (GNS), debo definir una IP virtual
llamada GNS-VIP.
Si no se utiliza GNS, es necesario definir la IPs públicas
y virtuales de cada servidor del clúster, además, las 3 IPs que conforman el
servicio Oracle SCAN.
Dentro del dominio oracle.com seleccionamos la
opción: New
Host (A or AAA)
Al final debemos tener una configuración como se
muestra en el cuadro.
5.
Para la configuración de Oracle GNS es muy
importante definir un sub-dominio para la definición dinámica de los nodos del
clúster. Este sub-domino debe tener
configurado el GNS-VIP como servidor autorizado.
Si no se configuración Oracle GNS, se puede omitir
este paso.
El nombre del sub-dominio que utilizamos es: gns.oracle.com
Seleccionamos la opción: New Delegation.
Definimos el Sub-dominio gns.oracle.com con GNS-VIP
6.
Oracle Grid Naming Services (GNS) te permite poder
definir de manera dinámica los nombres e IPs virtuales de cada nodo del clúster,
y también, las IPs que utilizamos para la configuración SCAN. Para poder realizar esta tarea, es necesario
configurar un servicio DHCP que pueda entregar las IPs que necesita el clúster.
Si no se configuración Oracle GNS, se puede omitir
este paso.
Dentro del mismo servidor Windows Server 2016 seleccionamos la opción: Tools -> DHCP
Dentro del directorio IPv4 seleccionamos la opción: New Scope
Definimos un nombre al grupo de IPs reservadas: rac 12c.
El rango de IPs:
·
Desde: 172.68.1.36
·
Hasta: 172.68.1.46
El dominio que utilizarán las IPs: gns.oracle.com con GNS-VIP
Con este ultimo paso finalizamos la configuración
de los servicios DNS y DHCP en el servidor Windows. Ahora el siguiente paso es preparar los
servidores Linux para la instalación de Oracle Flex Cluster 12cR2.
Configuración de los
servidores del clúster.
Debido a que estamos utilizando máquinas virtuales
para este ejemplo. Voy a proceder a
preparar un servidor completo y luego, clonarlo como un segundo servidor.
1.
Para una mejor performance de Oracle ASM, Oracle
recomienda utilizar Deadline I/O Scheduler.
Para poder habilitar esta opción debemos de
modificar la configuración GRUB del sistema operativo. Definimos la opción elevator=deadline
[root@oraclerac1 ~]# vi /boot/grub/grub.conf
…
title Oracle
Linux Server Unbreakable Enterprise Kernel (4.1.12-37.4.1.el6uek.x86_64)
root (hd0,0)
kernel
/vmlinuz-4.1.12-37.4.1.el6uek.x86_64 ro
root=UUID=726fc670-9cda-4a38-9fb1-81135ecd5a11 rd_NO_LUKS rd_NO_LVM
LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=128M KEYBOARDTYPE=pc KEYTABLE=us elevator=deadline rd_NO_DM rhgb quiet
initrd
/initramfs-4.1.12-37.4.1.el6uek.x86_64.img
…
2.
Definimos el nombre de los servidores y sus
respectivas IPs para las redes Pública y Privada.
[root@oraclerac1 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain
localhost6 localhost6.localdomain6
#IPs Publicas
172.68.1.31
oraclerac1.oracle.com
oraclerac1
172.68.1.33
oraclerac2.oracle.com
oraclerac2
#IPs Privadas
192.68.1.31
oraclerac1-priv.oracle.com
oraclerac1
192.68.1.33
oraclerac2-priv.oracle.com
oraclerac2
Para
máquinas virtuales se recomienda definir el parámetro NOZEROCONF en el
archivo de configuración de red /etc/sysconfig/network
[root@oraclerac1 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oraclerac1.oracle.com
GATEWAY=172.68.1.1
NOZEROCONF=yes
3.
Configuramos el archivo /etc/resolv.conf para que
los servidores del clúster puedan resolver el servicio DNS configurado en el
servidor Windows.
[root@oraclerac1 ~]# cat /etc/resolv.conf
# Generated by
NetworkManager
search
oracle.com
nameserver
172.68.1.17
4.
Para sincronizar la fecha de los servidores
utilizamos el servicio propio de Oracle llamado CTSS. Deshabilitamos el
servicio NTP de Linux.
[root@oraclerac1
~]# /sbin/service ntpd stop
Shutting down
ntpd:
[FAILED]
[root@oraclerac1
~]# mv /etc/ntp.conf /etc/ntp.old
5.
Instalamos los paquetes de sistema operativo
necesarios para la instalación de Infraestructura Grid y motor de base de
datos.
[root@oraclerac1
Packages]# yum install binutils -y
[root@oraclerac1
Packages]# yum install compat-libcap1 -y
[root@oraclerac1
Packages]# yum install compat-libstdc++-33 -y
[root@oraclerac1
Packages]# yum install compat-libstdc++-33.i686 -y
[root@oraclerac1
Packages]# yum install gcc -y
[root@oraclerac1
Packages]# yum install gcc-c++ -y
[root@oraclerac1
Packages]# yum install glibc -y
[root@oraclerac1
Packages]# yum install glibc.i686 -y
[root@oraclerac1
Packages]# yum install glibc-devel -y
[root@oraclerac1
Packages]# yum install glibc-devel.i686 -y
[root@oraclerac1
Packages]# yum install ksh -y
[root@oraclerac1
Packages]# yum install libgcc -y
[root@oraclerac1
Packages]# yum install libgcc.i686 -y
[root@oraclerac1
Packages]# yum install libstdc++ -y
[root@oraclerac1
Packages]# yum install libstdc++.i686 -y
[root@oraclerac1
Packages]# yum install libstdc++-devel -y
[root@oraclerac1
Packages]# yum install libstdc++-devel.i686 -y
[root@oraclerac1
Packages]# yum install libaio -y
[root@oraclerac1
Packages]# yum install libaio.i686 -y
[root@oraclerac1
Packages]# yum install libaio-devel -y
[root@oraclerac1
Packages]# yum install libaio-devel.i686 -y
[root@oraclerac1
Packages]# yum install libXext -y
[root@oraclerac1
Packages]# yum install libXext.i686 -y
[root@oraclerac1
Packages]# yum install libXtst -y
[root@oraclerac1
Packages]# yum install libXtst.i686 -y
[root@oraclerac1
Packages]# yum install libX11 -y
[root@oraclerac1
Packages]# yum install libX11.i686 -y
[root@oraclerac1
Packages]# yum install libXau -y
[root@oraclerac1
Packages]# yum install libXau.i686 -y
[root@oraclerac1
Packages]# yum install libxcb -y
[root@oraclerac1
Packages]# yum install libxcb.i686 -y
[root@oraclerac1
Packages]# yum install libXi -y
[root@oraclerac1
Packages]# yum install libXi.i686 -y
[root@oraclerac1
Packages]# yum install make -y
[root@oraclerac1
Packages]# yum install sysstat -y
[root@oraclerac1
Packages]# yum install unixODBC -y
[root@oraclerac1
Packages]# yum install unixODBC-devel -y
6.
Creamos los grupos de sistema operativo (incluyendo
RACDBA)
para la administración de recursos de clúster.
También, creamos el usuario oracle.
Si desean hacer separación de tareas, se puede
crear los usuarios grid y oracle.
[root@oraclerac1
Packages]# groupadd oinstall
[root@oraclerac1
Packages]# groupadd dba
[root@oraclerac1
Packages]# groupadd oper
[root@oraclerac1
Packages]# groupadd asmadmin
[root@oraclerac1
Packages]# groupadd asmdba
[root@oraclerac1
Packages]# groupadd asmoper
[root@oraclerac1
Packages]# groupadd backupdba
[root@oraclerac1
Packages]# groupadd dgdba
[root@oraclerac1
Packages]# groupadd kmdba
[root@oraclerac1
Packages]# groupadd racdba
[root@oraclerac1
Packages]# useradd -g oinstall -G
dba,oper,asmadmin,asmdba,asmoper,backupdba,dgdba,kmdba,racdba oracle
[root@oraclerac1
Packages]# passwd oracle
Changing
password for user oracle.
New password:
Retype new
password:
passwd: all
authentication tokens updated successfully.
7.
Creamos los directorios de instalación para la
infraestructura Grid y el motor de base de datos. Asignamos los permisos correctos a cada
directorio.
[root@oraclerac1 ~]# mkdir -p /u01/app/grid
/u01/app/oracle
[root@oraclerac1 ~]# mkdir -p /u01/app/12.2.0/grid
[root@oraclerac1
~]# chown -R oracle:oinstall /u01
[root@oraclerac1
~]# chmod -R 775 /u01
8.
Preparamos el sistema operativo de manera correcta
para la instalación de la infraestructura Grid y motor de base de datos.
a.
Detenemos el Firewall.
b.
Definimos parámetros de sistema operativo.
c.
Definimos los límites de sistema operativo.
d.
Desactivamos el servicio SELINUX
[root@oraclerac1
~]# service iptables stop
[root@oraclerac1
~]# chkconfig iptables off
[root@oraclerac1 ~]# cat /etc/sysctl.conf
…
# Controls the
maximum shared segment size, in bytes
kernel.shmmax =
68719476736
# Controls the
maximum number of shared memory segments, in pages
kernel.shmall =
4294967296
fs.aio-max-nr =
1048576
fs.file-max =
6815744
kernel.shmmni =
4096
kernel.sem = 250
32000 100 128
net.ipv4.ip_local_port_range
= 9000 65500
net.core.rmem_default
= 262144
net.core.rmem_max
= 4194304
net.core.wmem_default
= 262144
net.core.wmem_max
= 1048586
# Recommended
value for kernel.panic_on_oops
kernel.panic_on_oops
= 1
[root@oraclerac1
~]# cat /etc/security/limits.conf
oracle soft
nproc 2047
oracle hard
nproc 16384
oracle soft
nofile 1024
oracle hard
nofile 65536
oracle soft
stack 10240
oracle hard
memlock 3145728
# End of file
[root@oraclerac1
~]# cat /etc/selinux/config
# This file
controls the state of SELinux on the system.
# SELINUX= can
take one of these three values:
# enforcing - SELinux security policy is
enforced.
# permissive - SELinux prints warnings
instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE=
can take one of these two values:
# targeted - Targeted processes are
protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
Aquí finaliza la preparación de los servidores
involucrados. Si estas utilizando un
ambiente virtual como yo, es en este punto donde debes realizar la clonación
del servidor para poder crear el segundo nodo.
Te recomiendo realizar un snapshot a los servidores
en caso tengas dificultades en la instalación de Oracle Flex Cluster RAC 12cR2
Ya tenemos listo nuestros servicios DNS y DHCP
sobre Windows y nuestros 2 servidores Linux para la instalación.
No hay comentarios.:
Publicar un comentario