Настройка SAP ERP с LVM и High Availability

Пошаговая инструкция по настройке SAP ERP в кластере высокой доступности с использованием LVM (Logical Volume Manager) и Pacemaker для обеспечения отказоустойчивости критически важных компонентов SAP.

Базовая конфигурация LVM

Создание физических томов и групп томов

Начните с создания физических томов и логических томов для SAP:

# Создание физического тома
pvcreate /dev/sdb

# Создание группы томов
vgcreate sap-vg /dev/sdb

# Создание логических томов
lvcreate -L 10G -n sap-lv sap-vg
lvcreate -L 5G -n log-lv sap-vg

# Форматирование файловых систем
mkfs.ext4 /dev/sap-vg/sap-lv
mkfs.ext4 /dev/sap-vg/log-lv

# Создание точек монтирования
mkdir -p /usr/sap
mkdir -p /var/log/sap

# Добавление в fstab
echo "/dev/sap-vg/sap-lv /usr/sap ext4 defaults 0 2" >> /etc/fstab
echo "/dev/sap-vg/log-lv /var/log/sap ext4 defaults 0 2" >> /etc/fstab

# Монтирование файловых систем
mount -a

Настройка кластера высокой доступности

Установка и настройка Pacemaker

Установите необходимые пакеты для кластера:

# Установка pacemaker и corosync
yum install -y pacemaker corosync pcs

# Включение и запуск pcsd
systemctl enable pcsd
systemctl start pcsd

# Установка пароля для пользователя hacluster
passwd hacluster

Создание кластера

Настройте кластер на всех узлах:

# Аутентификация узлов кластера
pcs host auth node1 node2

# Создание кластера
pcs cluster setup sap-cluster node1 node2

# Запуск кластера
pcs cluster start --all
pcs cluster enable --all

Настройка ресурсов кластера

Создайте ресурсы для SAP в Pacemaker:

# Создание LVM ресурса
pcs resource create sap-lvm ocf:heartbeat:LVM volgrpname=sap-vg exclusive=true

# Создание ресурса файловой системы
pcs resource create sap-fs ocf:heartbeat:Filesystem \
  device=/dev/sap-vg/sap-lv \
  directory=/usr/sap \
  fstype=ext4

# Создание ресурса экземпляра SAP
pcs resource create sap-instance ocf:heartbeat:SAPInstance \
  InstanceName=PRD_ASCS00_sapnode1 \
  START_PROFILE=/usr/sap/PRD/SYS/profile/START_ASCS00_sapnode1

# Создание группы ресурсов
pcs resource group add sap-group sap-lvm sap-fs sap-instance

# Установка ограничения местоположения
pcs constraint location sap-group prefers node1=100

Мониторинг и диагностика

Команды проверки статуса

Проверьте состояние кластера и ресурсов:

# Проверка статуса кластера
pcs status

# Просмотр ресурсов
pcs resource show

# Просмотр ограничений
pcs constraint show

# Просмотр статуса узлов
pcs node show

Логи

Мониторинг логов для диагностики проблем:

# Логи Pacemaker
tail -f /var/log/pacemaker/pacemaker.log

# Логи Corosync
tail -f /var/log/cluster/corosync.log

# Логи SAP
tail -f /usr/sap/PRD/ASCS00/work/dev_w0

Операции обслуживания

Перевод узла в режим ожидания

Для планового обслуживания:

# Перевод узла в режим ожидания
pcs node standby node1

# Вывод узла из режима ожидания
pcs node unstandby node1

Управление ресурсами

Управление ресурсами кластера:

# Остановка ресурса
pcs resource disable sap-group

# Запуск ресурса
pcs resource enable sap-group

# Перемещение ресурса на конкретный узел
pcs resource move sap-group node2

# Очистка ограничения перемещения
pcs resource clear sap-group

Детальный пример реализации

Начальная настройка кластера

Настройка кластера с несколькими узлами:

# Аутентификация узлов кластера
pcs host auth ha-node-1 ha-node-2 ha-node-3

# Создание кластера с указанием IP-адресов
pcs cluster setup sap-s4 ha-node-1 addr=16.2.0.11 ha-node-2 addr=16.2.0.12 --enable --start

# Отключение STONITH (только для тестирования - в production включить!)
pcs property set stonith-enabled=false

Важно: В production окружении обязательно включите STONITH для предотвращения split-brain ситуаций.

Настройка Quorum

Для кластеров с четным количеством узлов настройте quorum device:

# Установка пакетов для quorum device
yum install pcs corosync-qnetd

# Запуск и включение сервисов
systemctl start pcsd.service
systemctl enable pcsd.service

# Настройка quorum device
pcs qdevice setup model net --enable --start

# Настройка firewall
firewall-cmd --permanent --add-service=high-availability
firewall-cmd --add-service=high-availability

# Добавление quorum device в кластер
pcs host auth ha-node-3.faz.local
pcs quorum device add model net host=ha-node-3.faz.local algorithm=ffsplit

Конфигурация хранилища для SAP компонентов

Создание физических томов

Создайте отдельные физические тома для различных компонентов SAP:

# Создание физических томов для различных компонентов SAP
pvcreate /dev/sdb  # ASCS
pvcreate /dev/sdc  # ERS
pvcreate /dev/sdd  # SAP Trans

Ресурс SAP ASCS

Настройка ресурсов для ASCS (ABAP Central Services):

# Создание группы томов и логического тома для ASCS
vgcreate cluster_s4_ascs_vg /dev/sdb
lvcreate -l 100%FREE -n ascs1_lv cluster_s4_ascs_vg
mkfs.xfs /dev/cluster_s4_ascs_vg/ascs1_lv

# Создание ресурсов Pacemaker для ASCS
pcs resource create cl_s4_ascs_vg ocf:heartbeat:LVM-activate \
  vgname=cluster_s4_ascs_vg \
  activation_mode=exclusive \
  vg_access_mode=system_id \
  --group ASCS_GROUP

pcs resource create cl_s4_ascs_fs ocf:heartbeat:Filesystem \
  device=/dev/cluster_s4_ascs_vg/ascs1_lv \
  directory=/usr/sap/DEV/ASCS1 \
  fstype=xfs \
  --group ASCS_GROUP

pcs resource create cl_s4_ascs_ip IPaddr2 \
  ip=16.2.0.15 \
  cidr_netmask=24 \
  --group ASCS_GROUP

Ресурс SAP ERS

Настройка ресурсов для ERS (Enqueue Replication Server):

# Создание группы томов и логического тома для ERS
vgcreate cluster_s4_ers_vg /dev/sdc
lvcreate -l 100%FREE -n ers1_lv cluster_s4_ers_vg
mkfs.xfs /dev/cluster_s4_ers_vg/ers1_lv

# Создание ресурсов Pacemaker для ERS
pcs resource create cl_s4_ers_vg ocf:heartbeat:LVM-activate \
  vgname=cluster_s4_ers_vg \
  activation_mode=exclusive \
  vg_access_mode=system_id \
  --group ERS_GROUP

pcs resource create cl_s4_ers_fs ocf:heartbeat:Filesystem \
  device=/dev/cluster_s4_ers_vg/ers1_lv \
  directory=/usr/sap/DEV/ERS1 \
  fstype=xfs \
  --group ERS_GROUP

pcs resource create cl_s4_ers_ip IPaddr2 \
  ip=16.2.0.16 \
  cidr_netmask=24 \
  --group ERS_GROUP

Ресурс SAP Transport с NFS

Настройка ресурсов для SAP Transport Directory с NFS:

# Создание группы томов и логического тома для SAP Trans
vgcreate cluster_s4_saptrans_vg /dev/sdd
lvcreate -l 100%FREE -n saptrans_lv cluster_s4_saptrans_vg
mkfs.xfs /dev/cluster_s4_saptrans_vg/saptrans_lv

# Создание ресурсов Pacemaker для SAP Trans
pcs resource create cl_s4_saptrans_vg ocf:heartbeat:LVM-activate \
  vgname=cluster_s4_saptrans_vg \
  activation_mode=exclusive \
  vg_access_mode=system_id \
  --group TRANS_GROUP

pcs resource create cl_s4_saptrans_fs ocf:heartbeat:Filesystem \
  device=/dev/cluster_s4_saptrans_vg/saptrans_lv \
  directory=/mnt/trans/ \
  fstype=xfs \
  --group TRANS_GROUP

pcs resource create cl_s4_saptrans_ip IPaddr2 \
  ip=16.2.0.17 \
  cidr_netmask=24 \
  --group TRANS_GROUP

# Настройка NFS сервера
pcs resource create cl_s4_saptrans_nfs nfsserver \
  nfs_no_notify=true \
  --group TRANS_GROUP

pcs resource create cl_s4_saptrans_nfs_export exportfs \
  clientspec=16.2.0.0/255.255.255.0 \
  options=rw,sync,no_root_squash \
  directory=/mnt/trans/ \
  fsid=1 \
  --group TRANS_GROUP

Ресурс NFS клиента

Настройка NFS клиента для монтирования Transport Directory:

# Создание ресурса NFS клиента
pcs resource create cl_s4_saptrans_nfs_client Filesystem \
  device='16.2.0.17:/mnt/trans/' \
  directory='/usr/sap/trans' \
  fstype='nfs' \
  interleave=true \
  --group TRANS_FS_GROUP

pcs resource clone TRANS_FS_GROUP interleave=true

Конфигурация общего хранилища GFS2

Настройка DLM и lvmlockd

Для общего хранилища необходимо настроить DLM (Distributed Lock Manager):

# Создание ресурсов DLM для общего хранилища
pcs resource create cl_s4_dlm ocf:pacemaker:controld \
  op monitor interval=30s on-fail=fence \
  --group DLM_GROUP

pcs resource clone DLM_GROUP interleave=true

pcs resource create cl_s4_lvmlockd ocf:heartbeat:lvmlockd \
  op monitor interval=30s on-fail=fence \
  --group DLM_GROUP

# Создание общей группы томов
vgcreate --shared cl_s4_sap_etc /dev/sdf
vgchange --lockstart cl_s4_sap_etc

# Создание логических томов
lvcreate --activate sy -L10G -n sapmnt_lv cl_s4_sap_etc
lvcreate --activate sy -l+100%FREE -n sapsys_lv cl_s4_sap_etc

# Форматирование с GFS2
mkfs.gfs2 -j2 -p lock_dlm -t sap_s4_dev:sapmnt /dev/cl_s4_sap_etc/sapmnt_lv
mkfs.gfs2 -j2 -p lock_dlm -t sap_s4_dev:sapsys /dev/cl_s4_sap_etc/sapsys_lv

# Создание ресурсов Pacemaker для общего хранилища
pcs resource create cl_s4_sapmnt ocf:heartbeat:LVM-activate \
  lvname=sapmnt_lv \
  vgname=cl_s4_sap_etc \
  activation_mode=shared \
  vg_access_mode=lvmlockd \
  --group ETC_GROUP

pcs resource create cl_s4_sapsys ocf:heartbeat:LVM-activate \
  lvname=sapsys_lv \
  vgname=cl_s4_sap_etc \
  activation_mode=shared \
  vg_access_mode=lvmlockd \
  --group ETC_GROUP

pcs resource clone ETC_GROUP interleave=true
pcs constraint order start DLM_GROUP-clone then ETC_GROUP-clone

Примечание: GFS2 позволяет нескольким узлам одновременно монтировать одну и ту же файловую систему, что необходимо для общих каталогов SAP.

Настройка STONITH

Конфигурация SBD для STONITH

Настройте STONITH (Shoot The Other Node In The Head) для предотвращения split-brain:

# Включение SBD для STONITH
pcs stonith create sbd fence_sbd \
  devices=/dev/sdc \
  pcmk_reboot_timeout=10

# Включение STONITH в кластере
pcs property set stonith-enabled=true

Важно: STONITH критически важен для production окружений. Он гарантирует, что в случае проблем с сетью или узлом, проблемный узел будет отключен, предотвращая конфликты данных.

Конфигурационные файлы LVM

Настройка списка томов

Добавьте в /etc/lvm/lvm.conf:

activation {
    lock_start_list = [ "cl_s4_sap_etc" ]
    # ... другие настройки ...
}

volume_list = [ "cluster_s4_ascs_vg", "cluster_s4_ers_vg", "cluster_s4_saptrans_vg" ]

Эта конфигурация гарантирует, что указанные группы томов будут активированы при загрузке системы, а общая группа томов будет заблокирована через lvmlockd.

Заключение

После выполнения всех шагов у вас будет настроенный кластер высокой доступности для SAP ERP с:

  • Отказоустойчивым хранилищем на базе LVM
  • Автоматическим переключением ресурсов при сбоях
  • Общим хранилищем GFS2 для общих каталогов SAP
  • Настроенным STONITH для предотвращения split-brain
  • Мониторингом и управлением через Pacemaker

Кластер готов к развертыванию SAP приложений и обеспечивает высокую доступность критически важных компонентов.