Para propósito de este laboratorio, hemos creado 2 máquinas virtuales, a las cuales le hemos instalado Oracle Linux 7.7, creamos un cluster de weblogic 12c de 2 nodos, uno en cada máquina y montamos un almacenamiento compartido en cada máquina virtual.

Aquí te muestro los pasos de como lo hice:
Creación del almacenamiento compartido en linux:
Se debe agregar un nuevo disco a las máquinas virtuales, este debe tener un tamaño estático ya que con el modo dinámico, oracle vm no permite usar el almacenamiento compartido.
Luego de montar el disco compartido en la máquina virtual debemos asegurarnos que cada nodo lo vea:
En un nodo debemos ejecutar crear la partición primaria con el siguiente comando:
fdisk /dev/sdb
Luego de haber creado la partición, debemos configurar el filesystem donde se montará la nueva unidad:
mkdir /shared_wls
Creamos la carpeta en la raíz y luego ejecutaremos el siguiente comando:
/sbin/mkfs.ext3 -L /shared_wls/ /dev/sdb1
Posterior a esto únicamente lo montamos:
mount /dev/sdb1 /shared_wls/
Luego en el nodo2 ejecutaremos el siguiente comando:
fdisk /dev/sdb
Y montaremos la partición en la carpeta compartida:
mount /dev/sdb1 /shared_wls/
De esta manera el directorio /shared_wls quedaría compartido entre las máquinas virtuales.
Configuración de AdminServer para alta disponibilidad:
Primero debemos crear una red virtual o agregar una nueva tarjeta a cada nodo, que tenga una nueva dirección ip, en este caso realizamos una red virtual en la tarjeta de red actual:
Esta red únicamente estará habilitada en un nodo, en el otro se deberá tener down.
Luego de haber instalado y configurado el cluster de weblogic deberemos realizar los siguientes pasos para hacer al admin server en alta disponibilidad:
Crearemos una nueva máquina para el admin server:
Con el puerto 5557 y el listen address con el nombre del hostname en las máquinas físicas:



Ingresaremos a la máquina y agregaremos al AdminServer, si el admin server ya esta en otra máquina, la tenemos que desligar:

Ahora crearemos un node manager exclusivo para el admin server:

Primero crearemos el directorio en AdminServer/nodemanager

Luego debemos copiar el archivo:

cp /u01/app/middleware/Oracle_Home/user_projects/domains/pruebas/nodemanager/nodemanager.properties  
/u01/app/middleware/Oracle_Home/user_projects/domains/pruebas/servers/AdminServer/nodemanager
Y luego de copiar deberemos modificar las siguiente líneas del archivo de tal manera que quede así:
Ahora crearemos un nuevo archivo para iniciar el nodemanager de admin, para ello iremos a $DOMAIN_HOME/bin:
cp startNodeManager.sh startNodeManagerAdmin.sh
Ingresamos al archivo y debemos cambiar la siguiente ruta de modo que quede apuntando al nuevo nodemanager del AdminServer que creamos:
Ahora procederemos a iniciar el nodemanager del admin:
nohup ./startNodeManagerAdmin.sh > nodeAdmin.log 2>&1 &
Luego inicaremos el AdminServer por medio del nodemanager, también se puede hacer usando el script de startWebLogic.sh, pero la buena práctica es hacerlo por medio del nodemanager:
Usamos el wlst.sh
nmConnect('weblogic','pandaT88', '192.168.1.97','5557','pruebas','/u01/app/middleware/Oracle_Home/user_projects/domains/pruebas','ssl')
En caso de hacerlo con el script del startWebLogic.sh deberemos cambiar la siguiente línea del script para que apunte al nuevo hostname:
Luego de probar que el admin server arranque correctamente y podamos acceder a él usando la nueva ip debemos configurar las rutas en el almacenamiento compartido:
Nodo1:
En el nodo2:
De esta forma queda compartida la configuración del AdminServer por medio del storage compartido.
El proceso de arranque en cada uno es el mismo aplicado en paso anteriores ya que se mantienen los mismos scripts.
En caso de que falle alguno de los 2 nodos, solo es necesario inciar la tarjeta de red donde este la ip virtual e iniciar el adminServer manualmente.

2 respuestas a «Cómo configurar un AdminServer de Weblogic 12c en Alta Disponibilidad»

  1. Hola,

    Esta muy buena esta guia, lo q para el disco compartido debe usarse un sistema de fichero para cluster como por ejemplo OCFS2, con todo sus servicios, si usas uno que no sea de ese tipo las excrituras de un nodo no las vera el otro a no ser que montes y desmontes el nodo y si excriben los 2 a las misma vez se corrompera el sistema de archivo.

    Saludos

    1. Hola Pedro,

      Es correcto, eso sería lo más recomendable, al mismo tiempo, si no se pudiera tener un disco compartido, entonces se puede utilizar una carpeta compartida por nfs, así obtendríamos el mismo resultado, sin embargo sería más riesgoso, ya que si el nodo donde esta la carpeta compartida se dañase, se perdería el acceso de los demás nodos.

      Una última opción para hacer esta solución, es crear una carpeta que realice rsync o scp con los demás nodos como una tarea programada, así se sincronizaría la información del AdminServer y el NodeManager en los otros nodos, de esta forma no se correría el riesgo de la opción anterior, sin embargo, en caso de que el nodo con la tarea programada se dañara, se debe recrear la tarea programada en el nuevo nodo que levantará el AdminServer.

      Saludos

Deja una respuesta

Tu dirección de correo electrónico no será publicada.