## 🖥️ Etapa 0 - Preparativos en vCenter
### 👤 Usuario de vCenter para STONITH (fence_vmware_soap)
- [ ] Crear un usuario dedicado en vCenter (ej: `svc-cluster-fence`)
- [ ] Asignar permisos mínimos requeridos sobre las VMs del clúster:
| Permiso vCenter | Requerido |
|-------------------------------------|-----------|
| `VirtualMachine.Interact.PowerOff` | ✅ |
| `VirtualMachine.Interact.PowerOn` | ✅ |
| `VirtualMachine.Config.Query` | ✅ |
| `VirtualMachine.Config.Settings` | ✅ |
| `VirtualMachine.Inventory` | ✅ |
| `System.Read` | ✅ |
- [ ] Asignar rol personalizado o usar el rol "Virtual Machine User"
- [ ] Aplicar los permisos al nivel de Datacenter, carpeta o VMs
### ⚙️ Reglas y ajustes de DRS/HA
- [ ] Crear regla de anti-afinidad entre nodos del clúster (ASCS y ERS)
- [ ] Deshabilitar DRS automático para las VMs del clúster (recomendado:
manual o parcialmente automatizado)
- [ ] Deshabilitar snapshot o backup con freeze en VMs SAP productivas
---
## 🧾 Etapa 1 - Requisitos previos y sistema base
- [ ] Verificar que ambas VMs estén creadas y con recursos suficientes
(RAM, CPU, disco) # ambos
- [ ] Establecer IP fija y hostname FQDN en cada nodo # ambos
- [ ] Validar conectividad entre nodos (`ping`, `ssh`, resolución DNS) # ambos
- [ ] Configurar NTP o `chronyd` sincronizado # ambos
- [ ] Registrar ambos nodos a Red Hat Subscription Manager # ambos
```bash
subscription-manager register
subscription-manager attach --auto
```
---
## 📦 Etapa 2 - Habilitar repositorios y paquetes necesarios
- [ ] Habilitar los repos oficiales # ambos
```bash
subscription-manager repos --enable=rhel-8-for-x86_64-baseos-rpms \
--enable=rhel-8-for-x86_64-appstream-rpms \
--enable=rhel-8-for-x86_64-sap-netweaver-rpms \
--enable=rhel-8-for-x86_64-sap-solutions-rpms \
--enable=rhel-8-for-x86_64-highavailability-rpms
```
- [ ] Instalar paquetes base # ambos
```bash
dnf install -y pcs pacemaker fence-agents-all \
resource-agents-sap resource-agents-sap-hana \
tuned-profiles-sap sap-cluster-connector
```
---
## 🔐 Etapa 3 - Configurar usuario hacluster y PCS
- [ ] Verificar que el usuario `hacluster` fue creado automáticamente por la
instalación del paquete `pcs` # ambos
- [ ] Establecer contraseña al usuario `hacluster` # ambos
```bash
passwd hacluster
```
- [ ] Habilitar e iniciar `pcsd` # ambos
```bash
systemctl enable --now pcsd
```
- [ ] Autenticar ambos nodos con `pcs` # nodo1
```bash
pcs cluster auth nodo1 nodo2 -u hacluster -p TU_CLAVE
```
---
## ⚙️ Etapa 4 - Crear y arrancar clúster básico
- [ ] Crear el clúster # nodo1
```bash
pcs cluster setup --name sap_ha_cluster nodo1 nodo2
pcs cluster start --all
pcs cluster enable --all
```
- [ ] Deshabilitar quorum sólo si estás en pruebas # nodo1
```bash
pcs property set no-quorum-policy=freeze
```
---
## 🔌 Etapa 5 - Configurar STONITH con VMware
- [ ] Instalar agentes si faltan # ambos
```bash
dnf install -y fence-agents-vmware
```
- [ ] Crear recurso STONITH para cada nodo # nodo1
```bash
pcs stonith create fence_vm1 fence_vmware_soap \
ip="vcenter.example.com" login="user" passwd="pass" \
ssl=1 port="VM-NAME" pcmk_host_list="nodo1"
pcs stonith create fence_vm2 fence_vmware_soap \
ip="vcenter.example.com" login="user" passwd="pass" \
ssl=1 port="VM-NAME" pcmk_host_list="nodo2"
```
---
## 📁 Etapa 6 - Recursos compartidos por NFS
- [ ] Validar que el servidor NFS esté en HA (recomendado) # N/A
- [ ] Verificar que los directorios como
`/sapmnt`, `/usr/sap/trans` estén exportados # ambos
- [ ] Crear recursos NFS # nodo1
```bash
pcs resource create sapmnt Filesystem \
device="nfs-server:/export/sapmnt" \
directory="/sapmnt" fstype=nfs4 \
options="hard,intr,nfsvers=4.1,_netdev" \
op monitor interval=30s timeout=60s
```
---
## 🧠 Etapa 7 - Recursos SAPInstance
- [ ] Crear recurso ASCS # nodo1
```bash
pcs resource create sap_ascs SAPInstance \
InstanceName=SAP_ASCS00_<SID> \
StartProfile="/usr/sap/<SID>/SYS/profile/START_ASCS00_<HOST>" \
AUTOMATIC_RECOVER=false \
op monitor interval=60s timeout=60s on-fail=restart
```
- [ ] Crear recurso ERS # nodo1
```bash
pcs resource create sap_ers SAPInstance \
InstanceName=SAP_ERS10_<SID> \
StartProfile="/usr/sap/<SID>/SYS/profile/START_ERS10_<HOST>" \
AUTOMATIC_RECOVER=false \
op monitor interval=60s timeout=60s on-fail=restart
```
---
## 🔄 Etapa 8 - Agrupamiento, orden y colocación
- [ ] Crear grupo de recursos # nodo1
```bash
pcs resource group add sap_group sapmnt sap_ascs
```
- [ ] Colocar ERS separado de ASCS # nodo1
```bash
pcs constraint colocation add sap_ers with sap_ascs -inf: same-node=false
```
- [ ] Preferencias de ubicación # nodo1
```bash
pcs constraint location sap_ascs prefers nodo1=50
pcs constraint location sap_ers prefers nodo2=50
```
---
## 🧪 Etapa 9 - Validación
- [ ] Verificar estado general # cualquier nodo
```bash
pcs status
crm_mon -1
```
- [ ] Probar failover # nodo1
```bash
pcs resource move sap_ascs nodo2
pcs resource clear sap_ascs
```
- [ ] Validar logs: `/var/log/pacemaker.log`, `/var/log/messages`,
y SAP `/usr/sap/<SID>/ASCS00/work/dev_*` # ambos
---
## 🧷 Extras opcionales
- [ ] Aplicar profile de tuning para SAP # ambos
```bash
tuned-adm profile sap-netweaver
```
- [ ] Documentar todos los pasos y respaldar configuración # nodo1
```bash
pcs config show > cluster-config-backup.txt
```
Notas importante :
El recurso SAP_ERS
(Enqueue Replication Server) es fundamental en entornos SAP HA,
especialmente para proteger la cola de bloqueo (Enqueue Server
) y asegurar que el
sistema pueda conmutar sin pérdida de locks críticos.
✅ Qué debes configurar en el recurso SAP_ERS
📌 Prerrequisitos
El software SAP (ERS) debe estar instalado en ambos nodos.
El ERS se ejecuta como un instance number
, típicamente algo como ERS##
(ej. ERS20
).
El usuario sapadm
o el correspondiente de la SID debe existir.
El clúster debe tener acceso completo al filesystem compartido, si aplica.
🧩 Recurso tipo: ocf:heartbeat:SAPInstance
El recurso SAP_ERS
se configura con el mismo agente OCF que se usa para una
instancia SAP (SAPInstance
), pero apuntando a la instancia de tipo ERS
.
pcs resource create SAP_ERS ocf:heartbeat:SAPInstance \
SID=PRD \
InstanceName=ERS20_prdadm \
START_PROFILE="/usr/sap/PRD/SYS/profile/START_ERS20_hostanme" \
AUTOMATIC_RECOVER=false \
op monitor interval=60s timeout=60s \
op start timeout=600s \
op stop timeout=600s \
meta resource-stickiness=1000 \
meta priority=10 \
--group sap_ers_group
⚠️ Ajustá SID
, InstanceName
, START_PROFILE
, y el group
según tu entorno
Parametros explicados
Parámetro |
Descripción |
SID=PRD |
El System ID de tu entorno SAP. |
InstanceName=ERS20_prdadm |
ERS20 es el número de instancia, seguido del usuario del sistema SAP (prdadm ). |
START_PROFILE |
Ruta al perfil de arranque del ERS. Podés encontrarlo en /usr/sap/<SID>/SYS/profile/ . |
AUTOMATIC_RECOVER=false |
Es importante dejar esto en false en ERS. |
monitor , start , stop |
Opciones de tiempo de espera (modificables según tus tiempos). |
resource-stickiness |
Qué tanto se "pega" el recurso al nodo actual. |
priority=10 |
Ayuda al cluster a decidir prioridades en failovers. |
--group |
(Opcional) lo podés incluir dentro de un grupo si lo vas a manejar junto a otros recursos como IP virtual, file system, etc. |