Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как развернуть высокодоступную систему SAP HANA в масштабируемой конфигурации с резервным режимом на виртуальных машинах Azure с помощью Azure NetApp Files для общих томов хранилища.
В примерах конфигураций, командах установки и т. д. экземпляр системы HANA имеет значение 03, а ее идентификатор — HN1. Примеры основаны на HANA 2.0 SP4 и SUSE Linux Enterprise Server для SAP 12 SP4.
Прежде чем начать, ознакомьтесь со следующими примечаниями и документацией по SAP.
- документация Azure NetApp Files
- Заметка SAP 1928533 включает:
- Список размеров 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 для SUSE Linux Enterprise Server for SAP Applications
- Примечание SAP 2178632: содержит подробные сведения обо всех метриках мониторинга, которые сообщаются для SAP в Azure
- Примечание SAP 2191498: содержит необходимую версию агента узла SAP для 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.
- Планирование и реализация виртуальных машин Azure для SAP на Linux
- Развертывание виртуальных машин Azure для SAP на Linux
- развертывание СУБД Azure Virtual Machines для SAP в Linux
- SUSE SAP HA Best Practices Guides. Содержит все необходимые сведения для настройки высокой доступности NetWeaver и 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.
- для связи с клиентами;
- для связи с системой хранения данных;
- для внутренней связи между узлами HANA.
Тома Azure NetApp находятся в отдельной подсети, делегированной Azure NetApp Files.
Для этого примера конфигурации подсетями являются следующие адреса:
-
client10.23.0.0/24 -
storage10.23.2.0/24 -
hana10.23.3.0/24 -
anf10.23.1.0/26
Настройка инфраструктуры Azure NetApp Files
Прежде чем продолжить настройку инфраструктуры Azure NetApp Files, ознакомьтесь с документацией Azure NetApp Files.
Azure NetApp Files доступен в нескольких регионах Azure. Проверьте, предлагает ли выбранный регион Azure Azure NetApp Files.
Сведения о доступности 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 на уровне Ultra Service. Для рабочих нагрузок HANA на Azure рекомендуется использовать Azure NetApp Files Ultra или Premiumservice Level.
Доверьте подсеть службе Azure NetApp Files, согласно инструкциям в разделе Делегирование подсети для Azure NetApp Files.
Разверните тома Azure NetApp Files, согласно инструкциям из Создание тома NFS для Azure NetApp Files.
При развертывании томов обязательно выберите версию NFSv4.1 . На данный момент для доступа к протоколу NFSv4.1 требуется добавить его в список разрешений. Разверните тома в указанной Azure NetApp Files субсети. IP-адреса томов NetApp Azure назначаются автоматически.
Помните, что ресурсы 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)
- том 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 для SAP HANA на определенных типах виртуальных машин, которые вы используете. Чтобы просмотреть список сертифицированных типов виртуальных машин SAP HANA и выпусков ОС для этих типов, перейдите на сайт сертифицированные платформы IaaS SAP HANA. Перейдите к сведениям о типе указанной в списке виртуальной машины, чтобы получить полный список релизов ОС, поддерживаемых SAP HANA для данного типа виртуальной машины.
Создайте группу доступности для SAP HANA. Убедитесь, что задан максимальный домен обновления.
Создайте три виртуальные машины (hanadb1, hanadb2, hanadb3), выполнив следующие действия:
a. Используйте образ SLES4SAP в коллекции Azure, поддерживаемой для SAP HANA.
б. Выберите группу доступности, созданную ранее для SAP HANA.
с. Выберите клиентскую подсеть виртуальной сети Azure. Выберите "Ускоренная сеть".
При развертывании виртуальных машин имя сетевого интерфейса создается автоматически. В этих инструкциях по простоте мы рассмотрим автоматически созданные сетевые интерфейсы. которые подключены к подсети виртуальной сети клиента Azure, как hanadb1-client, hanadb2-client и hanadb3-client.
Создайте три сетевых интерфейса для каждой виртуальной машины для
storageподсети виртуальной сети (в этом примере hanadb1-storage, hanadb2-storage и hanadb3-storage).Создайте три сетевых интерфейса для каждой виртуальной машины для
hanaподсети виртуальной сети (в этом примере hanadb1-hana, hanadb2-hana и hanadb3-hana).Подключите вновь созданные виртуальные сетевые интерфейсы к соответствующим виртуальным машинам, выполнив следующие действия.
- Перейдите на виртуальную машину на портале Azure.
- В левой области выберите Virtual Machines. Отфильтруйте имя виртуальной машины (например, hanadb1), а затем выберите виртуальную машину.
- В области Обзор выберите Остановить, чтобы освободить виртуальную машину.
- Выберите Сеть, а затем подключите сетевой интерфейс. Из раскрывающегося списка Подключение сетевого интерфейса выберите уже созданные сетевые интерфейсы для подсетей
storageиhana. - Нажмите Сохранить.
- Повторите шаги b через e для оставшихся виртуальных машин (в нашем примере 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Примечание.
Вам не нужно устанавливать пакет Azure CLI на узлах HANA для выполнения команды
az. Его можно запустить с любого компьютера с установленным интерфейсом командной строки или использовать Azure Cloud Shell.
Запустите виртуальные машины, выполнив следующие действия.
- В левой области выберите Virtual Machines. Отфильтруйте имя виртуальной машины (например, 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 и облака для сетевого интерфейса для хранилища, чтобы избежать непреднамеренных изменений имени узла.
В следующих инструкциях предполагается, что сетевой интерфейс хранилища является
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] Подготовка ОС для запуска SAP HANA в 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и сопоставление имеет значение nobody.Внимание
Убедитесь, что домен 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 v4.1 в Azure NetApp Files для SAP HANA. Проверьте, поддерживается лиnconnectAzure 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 смонтированы с использованием протокола версии 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 с пакетом обновления 4 (SP4).
Подготовка к установке SAP HANA
[A] Перед установкой HANA задайте корневой пароль. После завершения установки можно будет отключить корневой пароль. Выполните как
rootкомандуpasswd.[1] Убедитесь, что вы можете войти через SSH в hanadb2 и hanadb3, не запрашивая пароль.
ssh root@hanadb2 ssh root@hanadb3[A] Установите дополнительные пакеты, необходимые для HANA 2.0 с пакетом обновления 4 (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В командной строке введите следующие значения:
- По запросу Выберите действие: введите 1 (для установки).
- На запрос Additional components for installation (Выберите дополнительные компоненты для установки): введите 2, 3.
- Путь установки: нажмите клавишу ввода (путь по умолчанию — /hana/shared).
- Для Local Host Name: нажмите Enter, чтобы принять значение по умолчанию.
- В разделе Вы хотите добавить узлы в систему? введите y
- Для добавления имен узлов, разделенных запятыми: введите hanadb2, hanadb3
- Для имени корневого пользователя [root]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- Для пароля корневого пользователя: введите пароль корневого пользователя
- Для ролей для узла hanadb2: введите 1 (для рабочей роли)
- Для Группы отказоустойчивости узлов для узла hanadb2 [по умолчанию]: нажмите Enter, чтобы принять значение по умолчанию
- Для номера секции хранилища для узла hanadb2 [<<назначить автоматически>>]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- Для рабочей группы узла hanadb2 [по умолчанию] нажмите клавишу ввода, чтобы принять значение по умолчанию
- Для выбора ролей для узла hanadb3: введите 2 (для резервного копирования)
- Для группы перехода на резервный узел для узла hanadb3 [по умолчанию]: нажмите Enter, чтобы принять значение по умолчанию
- Для рабочей группы для узла hanadb3 [по умолчанию]: нажмите клавишу ВВОД, чтобы принять значение по умолчанию
- Для SAP HANA Системный идентификатор: введите HN1
- Введите номер экземпляра [00]: 03.
- На запрос Local Host Worker Group [default] (Рабочая группа локального узла [по умолчанию]): нажмите клавишу ВВОД, чтобы принять значение по умолчанию.
- На запрос Select System Usage / Enter index [4] (Выберите использование системы / Введите индекс [4]): введите 4 (для пользовательского использования).
- На запрос Location of Data Volumes [/hana/data/HN1] (Расположение томов данных): нажмите клавишу ВВОД, чтобы принять значение по умолчанию.
- В поле Location of Log Volumes [/hana/log/HN1] (Расположение томов журналов [/hana/log/HN1]): нажмите клавишу ВВОД, чтобы принять значение по умолчанию.
- На запрос Restrict maximum memory allocation? [n] (Ограничить максимальное выделение памяти? [n]): введите n.
- Для сертификата имени хоста для узла hanadb1 [hanadb1]: нажмите Enter, чтобы принять значение по умолчанию.
- Для имени узла сертификата для узла hanadb2 [hanadb2]: нажмите Enter, чтобы принять значение по умолчанию
- Для имени узла сертификата для узла hanadb3 [hanadb3]: нажмите Enter, чтобы принять значение по умолчанию
- На запрос System Administrator (hn1adm) Password (Пароль системного администратора (hn1adm)): введите пароль.
- Для System Database User (system) Password (Пароль пользователя системной базы данных (system)): введите пароль системы.
- На запрос Confirm System Database User (system) Password (Подтвердите пароль пользователя системной базы данных (system)): введите пароль пользователя system.
- На запрос Restart system after machine reboot? (Перезапустить систему после перезагрузки компьютера?) [n]: введите n
- На запрос Do you want to continue (y/n)? (Хотите продолжить (д/н)?): проверьте сводку и, если все выглядит правильно, введите д (Да).
[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 Note 2183363 — конфигурация внутренней сети SAP HANA.
Чтобы оптимизировать SAP HANA для базового хранилища Azure NetApp Files, задайте следующие параметры SAP HANA:
-
max_parallel_io_requests128 -
async_read_submitна -
async_write_submit_activeНа -
async_write_submit_blocksВсе
Дополнительные сведения см. в разделе I/O stack configuration for 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. Выполните следующие действия.
Прежде чем имитировать сбой узла, выполните следующие команды как adm hn1, чтобы получить состояние среды:
# 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Чтобы имитировать сбой узла, выполните следующую команду от имени пользователя root на рабочем узле, который 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 или более минут, если на узле возникает паника ядра.
Удалите сервер имен, выполнив следующие действия.
Перед тестом проверьте состояние среды, выполнив следующие команды как adm hn1:
#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 Virtual Machines для SAP
- развертывание СУБД Azure Virtual Machines для SAP
- тома NFS версии 4.1 для Azure NetApp Files для SAP HANA
- Сведения о том, как установить высокий уровень доступности и планирование аварийного восстановления SAP HANA на Azure виртуальных машинах, см. в статье Доступность SAP HANA на Azure Virtual Machines (виртуальных машинах).