SAP HANAをIBM Power Virtual Serverにデプロイしてみた 〜SLES編〜

# 今回やった内容
まず、今回は本番環境向けの設定ではなく、非本番プロファイルを使用しての構築です。
目的として、SAP HANAをIBM PowerVS環境でデプロイするにあたり、オーダーしたOSの初期パラメータやHANAデプロイに必要なパッチ、パラメータ類の確認を行いました。

*必要パッチやパラメータ類はSAP Noteを参考として、SAP HANAをデプロイするところまでを確認します。


# 環境
HANA

+ SAP HANA2.0 SPS05 Rev055


OS

+ SUSE Linux Enterprise Server for SAP 12SP4


Server

+ IBM Power System E980
+ リージョン：Tokyo
+ プロファイル：np1-1×128

*HANAモデル非本番プロファイルを使用しています。



# 作業内容
初めに今回SAP HANAを構築する上で、追加構成が必要となったパラメータについてまとめておきたいと思います。
結果的に以下のパラメータ設定とパッケージ追加が必要となりました。

+ saptune
+ autoNUMA balancing (saptune構成時に自動修正)
+ transparent hugepages (saptune構成時に自動修正)

続いて詳細手順についてご紹介いたします。

# 〜SUSE Linux Enterprise Server（SLES）〜
### インスタンス作成

IBM CloudインターフェースからPowerVSインスタンスを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1714470/fe23779f-0baf-cbe1-fa8e-32c8d49762e9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1714470/9e9c5c5a-3c1e-45a3-07fb-a8fd8eabecb5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1714470/c42a1e6e-313d-5b42-ab6e-cc73928356d9.png)


作成されたインスタンスの管理画面の確認を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1714470/26c53f2a-b5a9-2d0b-4445-f325f0c7ebbd.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1714470/8c543605-a845-8af2-1fc1-a42dfbfa73d8.png)



### ディスク構成

ディスク構成を確認してHANA用ディスクのマウントを行い、今回は追加ボリュームとして、HANAのプログラム、データ、ログ用途で500GBを追加してアサインします。

```php
hana-1core-128gb:~ # df -h
ファイルシス                                        サイズ  使用  残り 使用% マウント位置
devtmpfs                                               64G  128K   64G    1% /dev
tmpfs                                                  96G     0   96G    0% /dev/shm
tmpfs                                                  64G   26M   64G    1% /run
tmpfs                                                  64G     0   64G    0% /sys/fs/cgroup
/dev/mapper/360050768108101f720000000000055dc-part3   100G  7.4G   90G    8% /
tmpfs                                                  13G     0   13G    0% /run/user/0
```

HANA用ディスクの確認を行います。

```php
hana-1core-128gb:~ # fdisk -l

〜〜〜
中略
〜〜〜

ディスク /dev/mapper/360050768108101f720000000000055db: 500 GiB, 536870912000 バイト, 1048576000 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 32768 バイト / 32768 バイト


ディスク /dev/mapper/360050768108101f720000000000055dc: 100 GiB, 107374182400 バイト, 209715200 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 32768 バイト / 32768 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 57DF6308-8FFA-450D-BF51-815364A98851

デバイス                                            開始位置  最後から    セクタ サイズ タイプ
/dev/mapper/360050768108101f720000000000055dc-part1     2048     18431     16384     8M PowerPC PReP boot
/dev/mapper/360050768108101f720000000000055dc-part2    18432    280575    262144   128M Linux スワップ
/dev/mapper/360050768108101f720000000000055dc-part3   280576 209715166 209434591  99.9G Linux ファイルシステム
```

ファイルシステムを作成し、/hana へマウントします。

```php
hana-1core-128gb:~ # df -h
ファイルシス                                        サイズ  使用  残り 使用% マウント位置
devtmpfs                                               64G  128K   64G    1% /dev
tmpfs                                                  96G     0   96G    0% /dev/shm
tmpfs                                                  64G   27M   64G    1% /run
tmpfs                                                  64G     0   64G    0% /sys/fs/cgroup
/dev/mapper/360050768108101f720000000000055dc-part3   100G  7.4G   90G    8% /
tmpfs                                                  13G     0   13G    0% /run/user/0
/dev/mapper/360050768108101f720000000000055db         500G   33M  500G    1% /hana
```

詳細なストレージの設定は下記をご参照ください。
IBM System Storage Architecture and Configuration Guide for SAP HANA TDI
https://www.ibm.com/support/pages/node/6355415



### 初期パラメータ

初期構築時のパラメータ確認を行い、追加で必要なパラメータ類の確認を行います。
*参考：2205917 - SAP HANA DB: Recommended OS settings for SLES 12 / SLES for SAP Applications 12

kernelバージョンの確認を行います。

```php:kernel
hana-1core-128gb:~ # uname -r
4.12.14-95.51-default
```

UserTasksMaxの確認を行います。

```php:Increase-User-TasksMax
hana-1core-128gb:~ # cat /etc/systemd/logind.conf.d/sap.conf
[Login]
UserTasksMax=infinity
```

transparent-hugepagesの確認を行います。

```php:Disable-transparent-hugepages
hana-1core-128gb:~ # cat /sys/kernel/mm/transparent_hugepage/enabled
always [madvise] never
```

pagecache_limit_mbの確認を行います。

```php:Linux-Pagecache-Limit
hana-1core-128gb:~ # cat /proc/sys/vm/pagecache_limit_mb
0
```



### パラメータ修正

saptuneの環境設定を行います。

```php:saptune
hana-1core-128gb:~ # rpm -qa | grep saptune
saptune-2.0.3-3.11.1.ppc64le
yast2-saptune-1.3-3.4.2.noarch
hana-1core-128gb:~ #
hana-1core-128gb:~ #
hana-1core-128gb:~ # saptune solution apply HANA
    WARNING: [block] section detected: Traversing all block devices can take a considerable amount of time.
    INFO: Trying scheduler in this order: noop, none.
    INFO: 'noop' will be used as new scheduler for device 'sda sdb sdc sdd sde sdf sdg sdh sdi sdj sdk sdl sdm sdn sdo sdp'.
    WARNING: Be aware: system-wide UserTasksMax is now set to infinity according to SAP recommendations.
This opens up entire system to fork-bomb style attacks.
    WARNING: System does not support Intel's performance bias setting
    WARNING: governor settings not supported by the system
    WARNING: latency settings not supported by the system
All tuning options for the SAP solution have been applied successfully.

Remember: if you wish to automatically activate the solution's tuning options after a reboot,you must instruct saptune to configure "tuned" daemon by running:
    saptune daemon start
```

kernel.numa_balancingのDisableを確認を行います。

```php:Turn-off-autoNUMA-balancing	
hana-1core-128gb:~ # sysctl kernel.numa_balancing
kernel.numa_balancing = 0
```

transparent_hugepageのDisableを確認を行います。

```php:Disable-transparent-hugepages	
	hana-1core-128gb:~ # cat /sys/kernel/mm/transparent_hugepage/enabled
	always madvise [never]
	hana-1core-128gb:~ # 
```



### HANA構築＆稼働確認

HANAのインストールを実施します。

```php
hana-1core-128gb:/work/hana/SAP_HANA_DATABASE # ./hdblcm


SAP HANA Lifecycle Management - SAP HANA Database 2.00.055.00.1615413201
************************************************************************

Scanning software locations...
Detected components:
    SAP HANA Database (2.00.055.00.1615413201) in /work/hana/SAP_HANA_DATABASE/server
    SAP HANA Database Client (2.8.22.1621352674) in /work/hana/SAP_HANA_CLIENT/client

〜〜〜
中略
〜〜〜

Summary before execution:
=========================

SAP HANA Database System Installation
   Installation Parameters
      Remote Execution: ssh
      Database Isolation: low
      Install Execution Mode: standard
      Installation Path: /hana/shared
      Local Host Name: hana-1core-128gb
      SAP HANA System ID: H02
      Instance Number: 00
      Local Host Worker Group: default
      System Usage: custom
      Location of Data Volumes: /hana/data/H02
      Location of Log Volumes: /hana/log/H02
      SAP HANA Database secure store: ssfs
      Certificate Host Names: hana-1core-128gb -> hana-1core-128gb
      System Administrator Home Directory: /usr/sap/H02/home
      System Administrator Login Shell: /bin/sh
      System Administrator User ID: 1002
      ID of User Group (sapsys): 79
      SAP HANA Database Client Installation Path: /hana/shared/H02/hdbclient
   Software Components
      SAP HANA Database
         Install version 2.00.055.00.1615413201
         Location: /work/hana/SAP_HANA_DATABASE/server
      SAP HANA Database Client
         Install version 2.8.22.1621352674
         Location: /work/hana/SAP_HANA_CLIENT/client
   Log File Locations
      Log directory: /var/tmp/hdb_H02_hdblcm_install_2021-06-29_15.10.51
      Trace location: /var/tmp/hdblcm_2021-06-29_15.10.51_18647.trc

Do you want to continue? (y/n): y

〜〜〜
中略
〜〜〜

SAP HANA Database System installed
You can send feedback to SAP with this form: https://hana-1core-128gb:1129/lmsl/HDBLCM/H02/feedback/feedback.html
Log file written to '/var/tmp/hdb_H02_hdblcm_install_2021-06-29_15.10.51/hdblcm.log' on host 'hana-1core-128gb'.
```

最後に稼働確認をしてみます。

```php
hana-1core-128gb:/work/hana/SAP_HANA_DATABASE # su - h02adm -c "HDB info"
USER          PID     PPID  %CPU        VSZ        RSS COMMAND
h02adm      21435    21434  33.3       7232       5184 /bin/sh /usr/sap/H02/HDB00/HDB info
h02adm      21524    21435   0.0      11200       5248  \_ ps fx -U h02adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
h02adm      20339        1   0.0     710400      35648 hdbrsutil  --start --port 30003 --volume 2 --volumesuffix mnt00001/hdb00002.00003 --identifier 1624947329
h02adm      19881        1   0.0     710336      35584 hdbrsutil  --start --port 30001 --volume 1 --volumesuffix mnt00001/hdb00001 --identifier 1624947292
h02adm      19754        1   0.0      10496       4736 sapstart pf=/hana/shared/H02/profile/H02_HDB00_hana-1core-128gb
h02adm      19761    19754   0.1     455552      83392  \_ /usr/sap/H02/HDB00/hana-1core-128gb/trace/hdb.sapH02_HDB00 -d -nw -f /usr/sap/H02/HDB00/hana-1core-128gb/daemon.ini pf=/usr/sap/H02/SYS/profile/H02_HDB00_hana-1core-128gb
h02adm      19779    19761   100   10783744    6837504      \_ hdbnameserver
h02adm      20021    19761   0.4    2522176     157248      \_ hdbcompileserver
h02adm      20024    19761   218    4727424    3168320      \_ hdbpreprocessor
h02adm      20071    19761   115   11366912    7202432      \_ hdbindexserver -port 30003
h02adm      20074    19761   3.6    5581248    1330688      \_ hdbxsengine -port 30007
h02adm      20438    19761   3.8    4394304     622272      \_ hdbwebdispatcher
h02adm      19661        1   2.8     479360      35456 /usr/sap/H02/HDB00/exe/sapstartsrv pf=/hana/shared/H02/profile/H02_HDB00_hana-1core-128gb -D -u h02adm
hana-1core-128gb:/work/hana/SAP_HANA_DATABASE # 
```



# まとめ
今回は非本番環境のデプロイを実施し、HANAの稼働確認まで簡単に行うことができました。
時間計測はしてないので感覚にはなってしまいますが、今回の環境下では事前準備などを行いスムーズにいけば正味1時間でデプロイできました。
次回はデプロイの自動化にチャレンジ！



# 参考
2205917 - SAP HANA DB: Recommended OS settings for SLES 12 / SLES for SAP Applications 12 Version 63 from 18.05.2021
https://launchpad.support.sap.com/#/notes/2205917

2886607 - Linux: Running SAP applications compiled with GCC 9.x Version 2 from 26.06.2020
https://launchpad.support.sap.com/#/notes/2886607

IBM Cloud Docs: IBM Power Systems Virtual Server の概説
https://cloud.ibm.com/docs/power-iaas?topic=power-iaas-getting-started

IBM Cloud Docs: IBM Cloud for SAP の概要
https://cloud.ibm.com/docs/sap?topic=sap-overview