Развертывание горизонтально масштабируемой системы SAP HANA с резервным узлом на виртуальных машинах Azure с помощью Azure NetApp Files в SUSE Linux Enterprise Server
В этой статье описывается, как развернуть высокодоступную систему SAP HANA в конфигурации с горизонтальным увеличением масштаба и резервированием на виртуальных машинах Azure с помощью Azure NetApp Files для томов общего хранилища.
В примерах конфигураций, командах установки и т. д. экземпляр системы HANA имеет значение 03, а ее идентификатор — HN1. Примеры основаны на HANA 2.0 SP4 и SUSE Linux Enterprise Server для SAP 12 SP4.
Прежде чем начать, ознакомьтесь со следующими примечаниями и документацией по SAP.
- Документация по Azure NetApp Files
- К 1928533 заметки SAP относятся:
- список размеров виртуальных машин Azure, поддерживаемых для развертывания ПО SAP;
- важные сведения о доступных ресурсах для каждого размера виртуальной машины Azure;
- сведения о поддерживаемом программном обеспечении SAP и сочетаниях операционных систем и баз данных;
- сведения о требуемой версии ядра SAP для Windows и Linux в Microsoft Azure.
- В примечании к SAP 2015553 описываются предварительные требования к SAP при развертывании программного обеспечения SAP в Azure
- В примечании к SAP 2205917 содержатся рекомендуемые параметры ОС для SUSE Linux Enterprise Server for SAP Applications
- В примечании к SAP 1944799 содержатся рекомендации по SAP HANA для SUSE Linux Enterprise Server for SAP Applications
- Примечание SAP 2178632, в котором содержатся подробные сведения обо всех доступных метриках мониторинга для SAP в Azure.
- Примечание SAP 2191498, в котором содержатся сведения о необходимой версии агента SAP Host Agent для Linux в Azure.
- Примечание SAP 2243692, в котором содержатся сведения о лицензировании SAP для Linux в Azure.
- В примечании к SAP 1984787 содержатся общие сведения о SUSE Linux Enterprise Server 12
- Примечание SAP 1999351, в котором содержатся дополнительные сведения об устранении неполадок, связанных с расширением для расширенного мониторинга Azure для SAP.
- Примечание SAP 1900823, в котором содержатся сведения о требованиях к хранилищу SAP HANA.
- Вики-сайт сообщества SAP, который содержит все необходимые примечания SAP для Linux.
- SAP NetWeaver на виртуальных машинах Linux. Руководство по планированию и внедрению
- Развертывание программного обеспечения SAP на виртуальных машинах Linux в Azure
- Развертывание СУБД Виртуальных машин Azure для SAP на Linux.
- Рекомендации профессионалов по использованию SUSE SAP: содержит все необходимые сведения для настройки высокой доступности и репликации системы SAP HANA локально (для использования в качестве общего базового показателя; они предоставляют намного более подробную информацию)
- Заметки о выпуске расширения SUSE высокого уровня доступности 12 SP3
- Тома NFS версии 4.1 в Azure NetApp Files для SAP HANA
Обзор
Одним из способов достижения высокого уровня доступности HANA является настройка автоматической отработки отказа узла. Чтобы настроить автоматическую отработку отказа узла, добавьте одну или несколько виртуальных машин в систему HANA и настройте их в качестве резервных узлов. При сбое активного узла происходит автоматический переход на резервный узел. В представленной конфигурации с виртуальными машинами Azure вы достигаете автоматической отработки отказа с помощью NFS на Azure NetApp Files.
Примечание.
Для резервного узла требуется доступ ко всем томам базы данных. Тома HANA должны быть подключены как тома NFSv4. Улучшенный механизм блокировки на основе аренды файлов в протоколе NFSv4 используется для ограждения I/O
.
Внимание
Чтобы создать поддерживаемую конфигурацию, необходимо развернуть тома HANA и журнальные тома как тома NFSv4.1 и подключить их с помощью протокола NFSv4.1. Конфигурация автоматической отработки отказа узла HANA с резервным узлом не поддерживается для NFSv3.
На предыдущей схеме, которая соответствует сетевым рекомендациям для SAP HANA, три подсети представлены в одной виртуальной сети Azure:
- для связи с клиентами;
- для связи с системой хранения данных;
- для обмена данными между узлами SAP HANA.
Тома NetApp для Azure находятся в отдельной подсети, делегированной Azure NetApp Files.
Для этого примера конфигурации подсетями являются следующие адреса:
client
10.23.0.0/24storage
10.23.2.0/24hana
10.23.3.0/24anf
10.23.1.0/26
Настройка инфраструктуры Azure NetApp Files
Прежде чем продолжить настройку инфраструктуры Azure NetApp Files, ознакомьтесь с документацией по Azure NetApp Files.
Служба Azure NetApp Files доступна в нескольких регионах Azure. Проверьте, предоставляется ли служба Azure NetApp Files в выбранном регионе Azure.
Перейдите по приведенной ниже ссылке, чтобы узнать о доступности службы Azure NetApp Files по регионам Azure: Доступность Azure NetApp Files по региону Azure.
Важные замечания
При создании Azure NetApp Files для SAP NetWeaver в архитектуре SUSE High Availability следует учитывать важные рекомендации, описанные в томах NFS версии 4.1 в Azure NetApp Files для SAP HANA.
Выбор размера базы данных HANA в Azure NetApp Files
Пропускная способность тома Azure NetApp Files зависит от размера тома и уровня обслуживания, как описано в разделе Уровни обслуживания для Azure NetApp Files.
При разработке инфраструктуры SAP HANA в Azure с помощью Azure NetApp Files помните о рекомендациях в томах NFS версии 4.1 в Azure NetApp Files для SAP HANA.
Конфигурация в этой статье представлена простыми томами Azure NetApp Files.
Внимание
Для производственных систем, где производительность является ключевым, рекомендуется оценить и рассмотреть возможность использования группы томов приложений Azure NetApp Files для SAP HANA.
Развертывание ресурсов Azure NetApp Files
В следующих инструкциях предполагается, что вы уже развернули виртуальную сеть Azure. Ресурсы Azure NetApp Files и виртуальные машины, к которым будут подключаться ресурсы Azure NetApp Files, должны быть развернуты в одной виртуальной сети Azure или в одноранговых виртуальных сетях Azure.
Создайте учетную запись NetApp в выбранном регионе Azure, следуя инструкциям в разделе Создание учетной записи NetApp.
Настройте пул емкости Azure NetApp Files, следуя инструкциям по настройке пула емкости Azure NetApp Files.
В архитектуре HANA, представленной в этой статье, используется один пул емкости Azure NetApp Files с уровнем обслуживания Ультра. Для рабочих нагрузок HANA в Azure рекомендуется использовать уровень обслуживанияAzure NetApp Files Ультра или Премиум.
Делегируйте подсеть в Azure NetApp Files согласно инструкциям по делегированию подсети в Azure NetApp Files.
Разверните тома Azure NetApp Files, следуя инструкциям по созданию тома NFS для Azure NetApp Files.
При развертывании томов обязательно выберите версию NFSv4.1. На данный момент для доступа к протоколу NFSv4.1 требуется добавить его в список разрешений. Разверните тома в выделенной подсети Azure NetApp Files. IP-адреса томов Azure NetApp Files назначаются автоматически.
Учтите, что ресурсы Azure NetApp Files и виртуальные машины Azure должны находиться в одной виртуальной сети Azure или в одноранговых виртуальных сетях Azure. Например, HN1-Data-Mnt00001, HN1-log-mnt00001 и т. д. — это имена томов, а NFS://10.23.1.5/HN1-Data-mnt00001, NFS://10.23.1.4/HN1-log-mnt00001 и т. д. — это пути к файлам на томах Azure NetApp Files.
- volume HN1-data-mnt00001 (nfs://10.23.1.5/HN1-data-mnt00001)
- volume HN1-data-mnt00002 (nfs://10.23.1.6/HN1-data-mnt00002)
- volume HN1-log-mnt00001 (nfs://10.23.1.4/HN1-log-mnt00001)
- volume HN1-log-mnt00002 (nfs://10.23.1.6/HN1-log-mnt00002)
- volume HN1-shared (nfs://10.23.1.4/HN1-shared)
В этом примере мы использовали отдельный том Azure NetApp Files для каждого тома данных HANA и журнального тома. Для более производительной конфигурации, оптимизированной для небольших или непродуктивных систем, можно разместить все подключения к данным и все журналы на одном томе.
Развертывание виртуальных машин Linux с помощью портала Azure
Сначала необходимо создать тома Azure NetApp Files. Затем сделайте следующее.
Создайте подсети виртуальной сети Azure в вашей виртуальной сети Azure.
Разверните виртуальные машины.
Создайте дополнительные сетевые интерфейсы и подключите сетевые интерфейсы к соответствующим виртуальным машинам.
Каждая виртуальная машина имеет три сетевых интерфейса, которые соответствуют трем подсетям виртуальной сети Azure (
client
,storage
иhana
).Дополнительные сведения см. в статье Создание виртуальной машины Linux в Azure с несколькими сетевыми картами.
Внимание
Для рабочих нагрузок SAP HANA низкий показатель задержки чрезвычайно важен. Чтобы добиться низких значений задержки, пообщайтесь с представителями корпорации Майкрософт. Так виртуальные машины и тома Azure NetApp Files развернуты близко друг от друга. При подключении новой системы SAP HANA, которая использует SAP HANA Azure NetApp Files, отправьте необходимые сведения.
В следующих инструкциях предполагается, что вы уже создали группу ресурсов, виртуальную сеть Azure и три подсети виртуальной сети Azure: client
, storage
и hana
. При развертывании виртуальных машин выберите подсеть клиента, чтобы сетевой интерфейс клиента был основным интерфейсом на виртуальных машинах. Кроме того, необходимо настроить явный маршрут к делегированной подсети Azure NetApp Files через шлюз подсети хранилища.
Внимание
Убедитесь, что выбранная операционная система была сертифицирована для использования SAP HANA на конкретных типах виртуальных машин. Список сертифицированных для SAP HANA типов виртуальных машин и выпусков ОС доступен на сайте Certified and Supported SAP HANA® Hardware (Сертифицированное и поддерживаемое оборудование SAP HANA®). Чтобы просмотреть подробные сведения о поддерживаемых SAP HANA на определенных типах виртуальных машин выпусках ОС, щелкните необходимый тип виртуальной машины.
Создайте группу доступности для SAP HANA. Убедитесь, что задан максимальный домен обновления.
Создайте три виртуальные машины (hanadb1, hanadb2 и hanadb3), выполнив следующие действия.
a. Используйте образ SLES4SAP из коллекции Azure, который поддерживается для SAP HANA.
b. Выберите ранее созданную группу доступности для SAP HANA.
c. Выберите подсеть виртуальной сети Azure для клиента. Выберите Ускоренная сеть.
При развертывании виртуальных машин имя сетевого интерфейса создается автоматически. В этих инструкциях мы будем называть автоматически создаваемые сетевые интерфейсы, подключенные к подсети виртуальной сети Azure клиента, такие как hanadb1-Client, hanadb2-Client и hanadb3-Client.
Создайте три сетевых интерфейса, по одному для каждой виртуальной машины, для
storage
подсети виртуальной сети (в этом примере — hanadb1-storage, hanadb2-storage и hanadb3-storage).Создайте три сетевых интерфейса, по одному для каждой виртуальной машины, для
hana
подсети виртуальной сети (в этом примере — hanadb1-hana, hanadb2-hana и hanadb3-hana).Подключите вновь созданные виртуальные сетевые интерфейсы к соответствующим виртуальным машинам, выполнив следующие действия.
- Перейдите к виртуальной машине на портале Azure.
- В меню слева выберите Виртуальные машины. Выполните фильтрацию по имени виртуальной машины (например, hanadb1), а затем выберите виртуальную машину.
- В области Обзор выберите Остановить, чтобы освободить виртуальную машину.
- Выберите Сеть, а затем подключите сетевой интерфейс. Из раскрывающегося списка Подключение сетевого интерфейса выберите уже созданные сетевые интерфейсы для подсетей
storage
иhana
. - Выберите Сохранить.
- Повторите шаги с б) по д) для оставшихся виртуальных машин (в нашем примере — hanadb2 и hanadb3).
- Пока оставьте виртуальные машины в остановленном состоянии. Далее мы включим функцию ускорения сети для всех новых подключенных сетевых интерфейсов.
Включите ускорение сети для дополнительных сетевых интерфейсов для подсетей
storage
иhana
, выполнив следующие действия.Откройте Azure Cloud Shell на портале Azure.
Выполните следующие команды, чтобы включить ускоренную сеть для дополнительных сетевых интерфейсов, подключенных к подсетям
storage
иhana
.az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-hana --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-hana --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-hana --accelerated-networking true
Запустите виртуальные машины, выполнив следующие действия.
- В меню слева выберите Виртуальные машины. Выполните фильтрацию по имени виртуальной машины (например, hanadb1), а затем выберите ее.
- В области Обзор выберите Запуск.
Настройка и подготовка операционной системы
Инструкции в следующих разделах начинаются с одной из следующих версий.
- [A]: применимо ко всем узлам;
- [1]: применимо только к узлу 1;
- [2]: применимо только к узлу 2.
- [3]: применимо только к узлу 3
Настройте и подготовьте ОС, выполнив следующие действия.
[A]: сохраните файлы узлов на виртуальных машинах. Включите в них записи для всех подсетей. Для этого примера в
/etc/hosts
были добавлены приведенные ниже записи.# Storage 10.23.2.4 hanadb1-storage 10.23.2.5 hanadb2-storage 10.23.2.6 hanadb3-storage # Client 10.23.0.5 hanadb1 10.23.0.6 hanadb2 10.23.0.7 hanadb3 # Hana 10.23.3.4 hanadb1-hana 10.23.3.5 hanadb2-hana 10.23.3.6 hanadb3-hana
[A] Измените параметры конфигурации DHCP и Cloud для сетевого интерфейса для хранения, чтобы избежать непреднамеренного изменения имени узла.
В следующих инструкциях предполагается, что сетевой интерфейс хранилища имеет значение
eth1
.vi /etc/sysconfig/network/dhcp # Change the following DHCP setting to "no" DHCLIENT_SET_HOSTNAME="no" vi /etc/sysconfig/network/ifcfg-eth1 # Edit ifcfg-eth1 #Change CLOUD_NETCONFIG_MANAGE='yes' to "no" CLOUD_NETCONFIG_MANAGE='no'
[A] Добавьте сетевой маршрут, чтобы связь с Azure NetApp Files проходила через сетевой интерфейс хранилища.
В следующих инструкциях предполагается, что сетевой интерфейс хранилища имеет значение
eth1
.vi /etc/sysconfig/network/ifroute-eth1 # Add the following routes # RouterIPforStorageNetwork - - - # ANFNetwork/cidr RouterIPforStorageNetwork - - 10.23.2.1 - - - 10.23.1.0/26 10.23.2.1 - -
Перезагрузите виртуальную машину, чтобы активировать изменения.
[A] Подготовьте ОС для запуска NetApp Systems с NFS, как описано в примечании SAP 3024346 — Параметры ядра Linux для NetApp NFS. Создайте файл /etc/sysctl.d/91-NetApp-HANA.conf для параметров конфигурации NetApp.
vi /etc/sysctl.d/91-NetApp-HANA.conf # Add the following entries in the configuration file net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.tcp_rmem = 4096 131072 16777216 net.ipv4.tcp_wmem = 4096 16384 16777216 net.core.netdev_max_backlog = 300000 net.ipv4.tcp_slow_start_after_idle=0 net.ipv4.tcp_no_metrics_save = 1 net.ipv4.tcp_moderate_rcvbuf = 1 net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_sack = 1
[A] Создайте файл конфигурации /etc/sysctl.d/ms-az.conf с параметрами конфигурации Microsoft для Azure.
vi /etc/sysctl.d/ms-az.conf # Add the following entries in the configuration file net.ipv6.conf.all.disable_ipv6 = 1 net.ipv4.tcp_max_syn_backlog = 16348 net.ipv4.conf.all.rp_filter = 0 sunrpc.tcp_slot_table_entries = 128 vm.swappiness=10
[! СОВЕТ] Избегайте настройки net.ipv4.ip_local_port_range и net.ipv4.ip_local_reserved_ports явным образом в файлах конфигурации sysctl, чтобы разрешить агенту узла SAP управлять диапазонами портов. Дополнительные сведения см. в примечании к SAP 2382421.
[A] Настройте параметры sunrpc для объемов NFSv3, как рекомендуется в примечании SAP 3024346 — Параметры ядра Linux для NetApp NFS.
vi /etc/modprobe.d/sunrpc.conf # Insert the following line options sunrpc tcp_max_slot_table_entries=128
Монтируйте тома Azure NetApp Files
[A] Создайте точки подключения для томов базы данных HANA.
mkdir -p /hana/data/HN1/mnt00001 mkdir -p /hana/data/HN1/mnt00002 mkdir -p /hana/log/HN1/mnt00001 mkdir -p /hana/log/HN1/mnt00002 mkdir -p /hana/shared mkdir -p /usr/sap/HN1
[1] Создайте каталоги узлов для/usr/sap на HN1-shared.
# Create a temporary directory to mount HN1-shared mkdir /mnt/tmp # if using NFSv3 for this volume, mount with the following command mount 10.23.1.4:/HN1-shared /mnt/tmp # if using NFSv4.1 for this volume, mount with the following command mount -t nfs -o sec=sys,nfsvers=4.1 10.23.1.4:/HN1-shared /mnt/tmp cd /mnt/tmp mkdir shared usr-sap-hanadb1 usr-sap-hanadb2 usr-sap-hanadb3 # unmount /hana/shared cd umount /mnt/tmp
[A] Проверьте параметры домена NFS. Убедитесь, что домен настроен в качестве домена Azure NetApp Files по умолчанию, т. е.
defaultv4iddomain.com
, а для сопоставления установлено значение Никто.Внимание
Обязательно укажите домен NFS в
/etc/idmapd.conf
виртуальной машине в соответствии с конфигурацией домена по умолчанию в Azure NetApp Files:defaultv4iddomain.com
. В случае несоответствия между конфигурацией домена на клиенте NFS (т. е. виртуальной машине) и NFS-сервере (т. е. конфигурацией Azure NetApp) разрешения для файлов на томах NetApp в Azure, подключенных к виртуальным машинам, будут отображаться какnobody
.sudo cat /etc/idmapd.conf # Example [General] Verbosity = 0 Pipefs-Directory = /var/lib/nfs/rpc_pipefs Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
[A] Проверьте параметр
nfs4_disable_idmapping
. Оно должно иметь значение Y. Чтобы создать структуру каталогов, гдеnfs4_disable_idmapping
находится, выполните команду подключения. Вы не сможете вручную создать каталог в /sys/modules, так как доступ зарезервирован для ядра или драйверов.# Check nfs4_disable_idmapping cat /sys/module/nfs/parameters/nfs4_disable_idmapping # If you need to set nfs4_disable_idmapping to Y mkdir /mnt/tmp mount 10.23.1.4:/HN1-shared /mnt/tmp umount /mnt/tmp echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping # Make the configuration permanent echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
[A] Создайте группу SAP HANA и пользователя вручную. Для идентификаторов групп sapsys и пользователя hn1adm должны быть заданы одинаковые идентификаторы, которые предоставляются во время подключения. (В этом примере идентификаторы имеют значение 1001.) Если идентификаторы заданы неправильно, доступ к томам будет невозможен. Идентификаторы групп sapsys и учетных записей пользователей hn1adm и sapadm должны быть одинаковыми на всех виртуальных машинах.
# Create user group sudo groupadd -g 1001 sapsys # Create users sudo useradd hn1adm -u 1001 -g 1001 -d /usr/sap/HN1/home -c "SAP HANA Database System" -s /bin/sh sudo useradd sapadm -u 1002 -g 1001 -d /home/sapadm -c "SAP Local Administrator" -s /bin/sh # Set the password for both user ids sudo passwd hn1adm sudo passwd sapadm
[A] Подключите общие тома Azure NetApp Files.
sudo vi /etc/fstab # Add the following entries 10.23.1.5:/HN1-data-mnt00001 /hana/data/HN1/mnt00001 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.6:/HN1-data-mnt00002 /hana/data/HN1/mnt00002 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.4:/HN1-log-mnt00001 /hana/log/HN1/mnt00001 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.6:/HN1-log-mnt00002 /hana/log/HN1/mnt00002 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.23.1.4:/HN1-shared/shared /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount all volumes sudo mount -a
Для рабочих нагрузок, требующих более высокой пропускной способности, рассмотрите возможность
nconnect
подключения, как описано в томах NFS версии 4.1 в Azure NetApp Files для SAP HANA. Проверьте, поддерживается лиnconnect
Azure NetApp Files в выпуске Linux.[1] Подключите тома конкретного узла к hanadb1.
sudo vi /etc/fstab # Add the following entries 10.23.1.4:/HN1-shared/usr-sap-hanadb1 /usr/sap/HN1 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[2] Подключите тома конкретного узла к hanadb2.
sudo vi /etc/fstab # Add the following entries 10.23.1.4:/HN1-shared/usr-sap-hanadb2 /usr/sap/HN1 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[3] Подключите тома конкретного узла к hanadb3.
sudo vi /etc/fstab # Add the following entries 10.23.1.4:/HN1-shared/usr-sap-hanadb3 /usr/sap/HN1 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[A] Убедитесь, что все тома HANA подключены с использованием протокола NFS версии NFSv4.1.
sudo nfsstat -m # Verify that flag vers is set to 4.1 # Example from hanadb1 /hana/data/HN1/mnt00001 from 10.23.1.5:/HN1-data-mnt00001 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.5 /hana/log/HN1/mnt00002 from 10.23.1.6:/HN1-log-mnt00002 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.6 /hana/data/HN1/mnt00002 from 10.23.1.6:/HN1-data-mnt00002 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.6 /hana/log/HN1/mnt00001 from 10.23.1.4:/HN1-log-mnt00001 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4 /usr/sap/HN1 from 10.23.1.4:/HN1-shared/usr-sap-hanadb1 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4 /hana/shared from 10.23.1.4:/HN1-shared/shared Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.2.4,local_lock=none,addr=10.23.1.4
Установка
В этом примере для развертывания SAP HANA в конфигурации с горизонтальным увеличением масштаба с резервным узлом Azure мы использовали HANA 2.0 SP4.
Подготовка к установке SAP HANA
[A] Перед установкой HANA задайте корневой пароль. После завершения установки можно будет отключить корневой пароль. Выполните как
root
командуpasswd
.[1] Убедитесь, что вы можете войти с помощью SSH в hanadb2 и hanadb3без запроса пароля.
ssh root@hanadb2 ssh root@hanadb3
[A] Установите дополнительные пакеты, необходимые для HANA 2.0 SP4. Дополнительные сведения см. в примечании к SAP 2593824.
sudo zypper install libgcc_s1 libstdc++6 libatomic1
[2], [3] Измените владельца каталогов SAP HANA
data
иlog
на hn1adm.# Execute as root sudo chown hn1adm:sapsys /hana/data/HN1 sudo chown hn1adm:sapsys /hana/log/HN1
Установка HANA
[1] Установите SAP Hana, следуя инструкциям из руководства по установке и обновлению SAP HANA 2.0. В этом примере мы устанавливаем SAP HANA с горизонтальным увеличением масштаба с главным, одним рабочим и одним резервным узлом.
Запустите программу hdblcm из каталога с установочным программным обеспечением HANA. Используйте параметр
internal_network
и передайте диапазон адресов подсети, используемой для обмена данными между узлами HANA../hdblcm --internal_network=10.23.3.0/24
Введите следующие значения на запрос в командной строке:
- На запрос Choose an action (Выберите действие): введите 1 (установка).
- На запрос Additional components for installation (Выберите дополнительные компоненты для установки): введите 2, 3.
- Для пути установки: нажмите клавишу ВВОД (путь по умолчанию — /hana/shared).
- На запрос Local Host Name (Имя локального узла): нажмите клавишу ВВОД, чтобы принять значение по умолчанию.
- На запрос Желаете добавить узлы в систему? введите y
- На запрос Добавить имена узлов с разделителями-запятыми: введите hanadb2, hanadb3
- На запрос Имя привилегированного пользователя [root]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос Пароль привилегированного пользователя: введите пароль привилегированного пользователя
- Для ролей узла hanadb2: введите 1 (для рабочей роли)
- На запрос Группа отработки отказа узла для узла hanadb2 [default]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос Storage Partition Number (Номер раздела хранилища) для хоста hanadb2 [<<назначать автоматически>>]: нажмите клавишу Enter, чтобы принять значение по умолчанию
- На запрос Рабочая группа для узла hanadb2 [default]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос Выберите роли для узла hanadb3: введите 2 (режим ожидания)
- На запрос Группа отработки отказа узла для узла hanadb3 [default]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос Рабочая группа для узла hanadb3 [default]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос SAP HANA System ID (Идентификатор системы SAP HANA): введите HN1.
- На запрос Instance number [00] (Номер экземпляра [00]): введите 03.
- На запрос Local Host Worker Group [default] (Рабочая группа локального узла [по умолчанию]): нажмите клавишу ВВОД, чтобы принять значение по умолчанию.
- На запрос Select System Usage / Enter index [4] (Выберите использование системы или введите индекс [4]): введите 4 (пользовательское значение).
- На запрос Location of Data Volumes [/hana/hata/HN1] (Расположение томов данных [/hana/hata/HN1]): нажмите клавишу ВВОД, чтобы принять значение по умолчанию.
- На запрос Location of Log Volumes [/hana/hata/HN1] (Расположение томов журналов [/hana/hata/HN1]): нажмите клавишу ВВОД, чтобы принять значение по умолчанию.
- На запрос Restrict maximum memory allocation? [n] (Ограничить максимальное выделение памяти? [n]): введите n.
- На запрос Имя узла сертификата для узла hanadb1 [hanadb1]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос Имя узла сертификата для узла hanadb2 [hanadb2]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос Имя узла сертификата для узла hanadb3 [hanadb3]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- На запрос System Administrator (hn1adm) Password (Пароль системного администратора (hn1adm)): введите пароль.
- На запрос System Database User (system) Password (Пароль пользователя системной базы данных (system)): введите пароль системы.
- На запрос Confirm System Database User (system) Password (Подтвердите пароль пользователя системной базы данных (system)): еще раз введите пароль системы.
- На запрос Restart system after machine reboot? (Перезапустить систему после перезагрузки компьютера?) [n]: введите n
- На запрос Do you want to continue (y/n)? (Продолжить (да или нет)?): проверьте сводку и, если все настроено правильно, введите y (Да).
[1] Проверьте global.ini.
Откройте файл global.ini и убедитесь, что конфигурация внутреннего взаимодействия между узлами SAP HANA настроена. Проверьте раздел communication. В нем должен быть указан диапазон адресов для подсети
hana
, а параметрlisteninterface
должен иметь значение.internal
. Проверьте раздел internal_hostname_resolution. Он должен содержать IP-адреса виртуальных машин HANA, принадлежащих к подсетиhana
.sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini # Example #global.ini last modified 2019-09-10 00:12:45.192808 by hdbnameserve [communication] internal_network = 10.23.3/24 listeninterface = .internal [internal_hostname_resolution] 10.23.3.4 = hanadb1 10.23.3.5 = hanadb2 10.23.3.6 = hanadb3
[1] Добавьте сопоставление узлов, чтобы обеспечить использование IP-адресов клиента для связи между клиентами. Добавьте раздел
public_host_resolution
и добавьте соответствующие IP-адреса из подсети клиента.sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini #Add the section [public_hostname_resolution] map_hanadb1 = 10.23.0.5 map_hanadb2 = 10.23.0.6 map_hanadb3 = 10.23.0.7
[1] Перезапустите SAP HANA, чтобы активировать изменения.
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
[1] Убедитесь, что клиентский интерфейс будет использовать IP-адреса из подсети
client
для обмена данными.sudo -u hn1adm /usr/sap/HN1/HDB03/exe/hdbsql -u SYSTEM -p "password" -i 03 -d SYSTEMDB 'select * from SYS.M_HOST_INFORMATION'|grep net_publicname # Expected result "hanadb3","net_publicname","10.23.0.7" "hanadb2","net_publicname","10.23.0.6" "hanadb1","net_publicname","10.23.0.5"
Сведения о том, как проверить конфигурацию, см. в примечании SAP 2183363 - Configuration of SAP HANA internal network (2183363: настройка внутренней сети SAP HANA).
Чтобы оптимизировать SAP HANA под базовое хранилище Azure NetApp Files, задайте следующие параметры SAP HANA.
max_parallel_io_requests
128async_read_submit
onasync_write_submit_active
onasync_write_submit_blocks
all
Дополнительные сведения приведены в статье Конфигурации стека ввода-вывода для SAP HANA.
Начиная с систем SAP HANA 2.0 параметры можно задать в
global.ini
. Дополнительные сведения см. в примечании к SAP 1999930.Для систем SAP HANA 1.0 версии SPS12 и более ранних эти параметры можно настроить во время установки, как описано в примечании к SAP 2267798.
Хранилище, используемое Azure NetApp Files, имеет ограничение размера файла, равное 16 терабайтам (ТБ). SAP HANA не осведомлена неявно об ограничениях размера хранилища и не будет создавать новый файл данных при достижении предельного размера файла в 16 ТБ. Так как SAP HANA попытается увеличивать размер файла за пределы 16 ТБ, эта попытка приведет к ошибкам и, в конце концов, к сбою сервера индексации.
Внимание
Чтобы SAP HANA не пыталась увеличивать размер файлов данных за пределы 16 ТБ подсистемы хранения, задайте следующие параметры в
global.ini
.
Тестовая отработка отказа SAP HANA
Примечание.
В этой статье содержатся ссылки на термины, которые корпорация Майкрософт больше не использует. Когда эти термины будут удалены из программных продуктов, мы удалим их и из этой статьи.
Имитация сбоя узла на рабочем узле SAP HANA. Выполните следующие действия.
Прежде чем имитировать сбой узла, выполните следующие команды в качестве hn1adm, чтобы записать состояние среды.
# Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - | # Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN
Для имитации сбоя узла выполните следующую команду в качестве привилегированного пользователя на рабочем узле, hanadb2 в этом случае.
echo b > /proc/sysrq-trigger
Наблюдайте за системой до завершения отработки отказа. После завершения отработки отказа запишите состояние, которое должно выглядеть следующим образом.
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY # Check the landscape status /usr/sap/HN1/HDB03/exe/python_support> python landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | no | info | | | 2 | 0 | default | default | master 2 | slave | worker | standby | worker | standby | default | - | | hanadb3 | yes | info | | | 0 | 2 | default | default | master 3 | slave | standby | slave | standby | worker | default | default |
Внимание
При возникновении аварии ядра не следует задерживать отработку отказа SAP HANA. Установите значение
kernel.panic
на 20 секунд на всех виртуальных машинах HANA. Настройка выполняется в/etc/sysctl
. Перезагрузите виртуальные машины, чтобы активировать изменение. Если это изменение не выполняется, отработка отказа может занять 10 или более минут, если на узле возникла авария ядра.
Удалите сервер имен, выполнив следующие действия.
Перед тестированием проверьте состояние среды, выполнив следующие команды в качестве hn1adm:
#Landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - | # Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY
Выполните следующие команды в качестве hn1adm на активном главном узле, hanadb1 в этом случае.
hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB kill
Резервный узел hanadb3 войдет в работу в качестве главного узла. Ниже приведено состояние ресурса после завершения теста отработки отказа.
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | no | info | | | 1 | 0 | default | default | master 1 | slave | worker | standby | worker | standby | default | - | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | info | | | 0 | 1 | default | default | master 3 | master | standby | master | standby | worker | default | default |
Перезапустите экземпляр HANA на hanadb1 (то есть на той же виртуальной машине, где был уничтожен сервер имен). Узел hanadb1 повторно присоединится к среде и сохранит свою резервную роль.
hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB start
После запуска SAP HANA в hanadb1 должно быть указано следующее состояние.
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | info | | | 1 | 0 | default | default | master 1 | slave | worker | standby | worker | standby | default | - | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | info | | | 0 | 1 | default | default | master 3 | master | standby | master | standby | worker | default | default |
Опять же, остановите сервер имен на активном в данный момент главном узле (то есть на узле hanadb3).
hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB kill
Узел hanadb1 возобновит роль главного узла. После завершения теста отработки отказа состояние будет выглядеть следующим образом.
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList & python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - |
Запустите SAP HANA в hanadb3, который будет готов к работе в качестве резервного узла.
hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB start
После запуска SAP HANA в hanadb3 состояние выглядит следующим образом.
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList & python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - |
Следующие шаги
- Планирование и реализация виртуальных машин Azure для SAP
- Развертывание виртуальных машин Azure для SAP NetWeaver
- SAP NetWeaver на виртуальных машинах Azure. Руководство по развертыванию СУБД SQL Server
- Тома NFS версии 4.1 в Azure NetApp Files для SAP HANA
- Чтобы узнать больше об обеспечении высокого уровня доступности и планировании аварийного восстановления SAP HANA на виртуальных машинах Azure, ознакомьтесь со статьей Высокий уровень доступности SAP HANA на виртуальных машинах Azure.