Skip to main content
NetApp solutions for SAP

HANA system provisioning and installation

Contributors netapp-nbauer

This chapter describes the specific installation and configuration of the SAP HANA system BM1 used for this solution documentation. The HANA system QM1 has been deployed in the same way.

Additional generic deployment information and best practices can be found SAP HANA on NetApp ASA Systems with Fibre Channel Protocol.

Storage configuration

The following screenshots show the creation of the storage unit BM1_data_mnt00001. Storage units for HANA log and shared have been created in the same way.

hana sc bare metal asar2 image 002

The WWPN of the HANA host FCP adapters can be listed with the sanlun command which is part of the NetApp host utilities as described in chapter HANA host configuration.

sapcc-hana-tst-02:~ # sanlun fcp show adapter
host20             WWPN:100070b7e40bbadb
host21             WWPN:100070b7e40bbadc

hana sc bare metal asar2 image 003

Click add to create the storage unit.

hana sc bare metal asar2 image 004

The screenshot shows the three storage units created for the HANA system BM1.

hana sc bare metal asar2 image 005

HANA host configuration

Before setting up the host, NetApp SAN host utilities must be downloaded from the NetApp Support site and installed on the HANA servers. The host utility documentation includes information about additional software that must be installed depending on the FCP HBA used.

The NetApp SAN host utilities can also be used to get the WWPN of the host adapters required to configure the host mapping on the storage system.

sapcc-hana-tst-02:~ # sanlun fcp show adapter
host20             WWPN:100070b7e40bbadb
host21             WWPN:100070b7e40bbadc

Multipath configuration

  1. Run the Linux rescan-scsi-bus.sh -a command on each server to discover new LUNs.

  2. Run the sanlun lun show command and verify that all required LUNs are visible. The output shows the LUNs and the corresponding device files have four FC paths from the host to the storage controllers.

sapcc-hana-tst-02:~ # sanlun lun show | grep BM1
a30-hana-primary              BM1_shared_1                   /dev/sdx        host21     FCP        250g    cDOT
a30-hana-primary              BM1_log_mnt00001_1             /dev/sdw        host21     FCP        250g    cDOT
a30-hana-primary              BM1_data_mnt00001_1            /dev/sdv        host21     FCP        250g    cDOT
a30-hana-primary              BM1_shared_1                   /dev/sdu        host21     FCP        250g    cDOT
a30-hana-primary              BM1_log_mnt00001_1             /dev/sdt        host21     FCP        250g    cDOT
a30-hana-primary              BM1_data_mnt00001_1            /dev/sds        host21     FCP        250g    cDOT
a30-hana-primary              BM1_shared_1                   /dev/sdh        host20     FCP        250g    cDOT
a30-hana-primary              BM1_log_mnt00001_1             /dev/sdg        host20     FCP        250g    cDOT
a30-hana-primary              BM1_shared_1                   /dev/sdk        host20     FCP        250g    cDOT
a30-hana-primary              BM1_data_mnt00001_1            /dev/sdl        host20     FCP        250g    cDOT
a30-hana-primary              BM1_log_mnt00001_1             /dev/sdi        host20     FCP        250g    cDOT
a30-hana-primary              BM1_data_mnt00001_1            /dev/sdj        host20     FCP        250g    cDOT
sapcc-hana-tst-02:~ #
  1. Run the multipath -r and multipath -ll command to get the worldwide identifiers (WWIDs) for the device file names.

sapcc-hana-tst-02:~ # multipath -r

sapcc-hana-tst-02:~ # multipath -ll
3600a0980383235324a245a4749384947 dm-3 NETAPP,LUN C-Mode
size=250G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 20:0:10:2 sdk 8:160  active ready running
  |- 20:0:11:2 sdh 8:112  active ready running
  |- 21:0:9:2  sdu 65:64  active ready running
  `- 21:0:11:2 sdx 65:112 active ready running
3600a098038323537342b596e55666737 dm-2 NETAPP,LUN C-Mode
size=250G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 20:0:10:0 sdj 8:144 active ready running
  |- 20:0:11:0 sdl 8:176 active ready running
  |- 21:0:9:0  sds 65:32 active ready running
  `- 21:0:11:0 sdv 65:80 active ready running
3600a098038323537342b596e55666738 dm-5 NETAPP,LUN C-Mode
size=250G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 20:0:10:1 sdi 8:128 active ready running
  |- 20:0:11:1 sdg 8:96  active ready running
  |- 21:0:9:1  sdt 65:48 active ready running
  `- 21:0:11:1 sdw 65:96 active ready running
sapcc-hana-tst-02:~ #
  1. Edit the /etc/multipath.conf file and add the WWIDs and alias names.

sapcc-hana-tst-02:~ # cat /etc/multipath.conf
        multipaths {
        multipath {
                wwid    3600a098038323537342b596e55666737
                alias   a30-hana-primary-BM1-data-mnt00001
        }
        multipath {
                wwid    3600a098038323537342b596e55666738
                alias   a30-hana-primary-BM1-log-mnt00001
        }
        multipath {
                wwid    3600a0980383235324a245a4749384947
                alias   a30-hana-primary-BM1-shared
        }
}
  1. Run the multipath -r command to reload the device map.

  2. Verify the configuration by running the multipath -ll command to list all the LUNs, alias names, and storage paths.

sapcc-hana-tst-02:~ # multipath -r

sapcc-hana-tst-02:~ # multipath -ll
a30-hana-primary-BM1-data-mnt00001 (3600a098038323537342b596e55666737) dm-2 NETAPP,LUN C-Mode
size=250G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 20:0:10:0 sdj 8:144 active ready running
  |- 20:0:11:0 sdl 8:176 active ready running
  |- 21:0:9:0  sds 65:32 active ready running
  `- 21:0:11:0 sdv 65:80 active ready running
a30-hana-primary-BM1-log-mnt00001 (3600a098038323537342b596e55666738) dm-5 NETAPP,LUN C-Mode
size=250G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 20:0:10:1 sdi 8:128 active ready running
  |- 20:0:11:1 sdg 8:96  active ready running
  |- 21:0:9:1  sdt 65:48 active ready running
  `- 21:0:11:1 sdw 65:96 active ready running
a30-hana-primary-BM1-shared (3600a0980383235324a245a4749384947) dm-3 NETAPP,LUN C-Mode
size=250G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
  |- 20:0:10:2 sdk 8:160  active ready running
  |- 20:0:11:2 sdh 8:112  active ready running
  |- 21:0:9:2  sdu 65:64  active ready running
  `- 21:0:11:2 sdx 65:112 active ready running
sapcc-hana-tst-02:~ #

Host file system configuration

Create file systems

sapcc-hana-tst-02:~ # ls -al /dev/mapper
total 0
drwxr-xr-x  2 root root     200 Feb  9 10:12 .
drwxr-xr-x 21 root root    5360 Feb  9 08:53 ..
lrwxrwxrwx  1 root root       7 Feb  9 10:12 a30-hana-primary-BM1-data-mnt00001 -> ../dm-2
lrwxrwxrwx  1 root root       7 Feb  9 10:12 a30-hana-primary-BM1-log-mnt00001 -> ../dm-5
lrwxrwxrwx  1 root root       7 Feb  9 10:12 a30-hana-primary-BM1-shared -> ../dm-3
crw-------  1 root root 10, 236 Feb  9 08:53 control
lrwxrwxrwx  1 root root       7 Feb  9 08:53 system-root -> ../dm-0
lrwxrwxrwx  1 root root       7 Feb  9 08:53 system-swap -> ../dm-1
sapcc-hana-tst-02:~ #

sapcc-hana-tst-02:~ # mkfs.xfs /dev/mapper/a30-hana-primary-BM1-data-mnt00001
meta-data=/dev/mapper/a30-hana-primary-BM1-data-mnt00001 isize=512    agcount=4, agsize=16384000 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=0    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=65536000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=32000, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
sapcc-hana-tst-02:~ #
sapcc-hana-tst-02:~ #
sapcc-hana-tst-02:~ #
sapcc-hana-tst-02:~ # mkfs.xfs /dev/mapper/a30-hana-primary-BM1-log-mnt00001
meta-data=/dev/mapper/a30-hana-primary-BM1-log-mnt00001 isize=512    agcount=4, agsize=16384000 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=0    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=65536000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=32000, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
sapcc-hana-tst-02:~ # mkfs.xfs /dev/mapper/a30-hana-primary-BM1-shared
meta-data=/dev/mapper/a30-hana-primary-BM1-shared isize=512    agcount=4, agsize=16384000 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=0    bigtime=0 inobtcount=0
data     =                       bsize=4096   blocks=65536000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=32000, version=2
         =                       sectsz=4096  sunit=1 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
Discarding blocks...Done.
sapcc-hana-tst-02:~ #

Create mount points

sapcc-hana-tst-02:~ # mkdir -p /hana/data/BM1/mnt00001
sapcc-hana-tst-02:~ # mkdir -p /hana/log/BM1/mnt00001
sapcc-hana-tst-02:~ # mkdir -p /hana/shared/BM1
sapcc-hana-tst-02:~ # chmod -R /hana/data
sapcc-hana-tst-02:~ # chmod 777 -R /hana/data
sapcc-hana-tst-02:~ # chmod 777 -R /hana/log
sapcc-hana-tst-02:~ # chmod 777 -R /hana/shared
sapcc-hana-tst-02:~ #

Mount file systems

sapcc-hana-tst-02:~ # cat /etc/fstab
/dev/system/root  /                       btrfs  defaults                      0  0
/dev/system/root  /var                    btrfs  subvol=/@/var                 0  0
/dev/system/root  /usr/local              btrfs  subvol=/@/usr/local           0  0
/dev/system/root  /tmp                    btrfs  subvol=/@/tmp                 0  0
/dev/system/root  /srv                    btrfs  subvol=/@/srv                 0  0
/dev/system/root  /root                   btrfs  subvol=/@/root                0  0
/dev/system/root  /opt                    btrfs  subvol=/@/opt                 0  0
/dev/system/root  /home                   btrfs  subvol=/@/home                0  0
/dev/system/root  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
/dev/system/root  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
/dev/system/swap  swap                    swap   defaults                      0  0
/dev/system/root  /.snapshots             btrfs  subvol=/@/.snapshots          0  0
UUID=E88D-60DA    /boot/efi               vfat   utf8                          0  2
192.168.175.86:/sapcc_share/ /mnt/sapcc-share/ nfs rw,vers=3,hard,timeo=600,rsize=1048576,wsize=1048576,intr,noatime,nolock 0 0
/dev/mapper/a30-hana-primary-BM1-shared /hana/shared xfs defaults 0 0
/dev/mapper/a30-hana-primary-BM1-log-mnt00001 /hana/log/BM1/mnt00001 xfs relatime,inode64 0 0
/dev/mapper/a30-hana-primary-BM1-data-mnt00001 /hana/data/BM1/mnt00001 xfs relatime,inode64 0 0
sapcc-hana-tst-02:~ #


sapcc-hana-tst-02:~ # df -h
Filesystem                                      Size  Used Avail Use% Mounted on
devtmpfs                                        4.0M     0  4.0M   0% /dev
tmpfs                                           190G  8.0K  190G   1% /dev/shm
tmpfs                                            51G   11M   51G   1% /run
tmpfs                                           4.0M     0  4.0M   0% /sys/fs/cgroup
/dev/mapper/system-root                          60G   15G   45G  25% /
/dev/mapper/system-root                          60G   15G   45G  25% /.snapshots
/dev/mapper/system-root                          60G   15G   45G  25% /boot/grub2/i386-pc
/dev/mapper/system-root                          60G   15G   45G  25% /boot/grub2/x86_64-efi
/dev/mapper/system-root                          60G   15G   45G  25% /home
/dev/mapper/system-root                          60G   15G   45G  25% /opt
/dev/mapper/system-root                          60G   15G   45G  25% /root
/dev/mapper/system-root                          60G   15G   45G  25% /srv
/dev/mapper/system-root                          60G   15G   45G  25% /tmp
/dev/mapper/system-root                          60G   15G   45G  25% /usr/local
/dev/mapper/system-root                          60G   15G   45G  25% /var
/dev/nvme0n1p1                                  253M  5.1M  247M   3% /boot/efi
192.168.175.86:/sapcc_share/                    1.4T  859G  567G  61% /mnt/sapcc-share
tmpfs                                            26G   44K   26G   1% /run/user/463
tmpfs                                            26G   24K   26G   1% /run/user/0
/dev/mapper/a30-hana-primary-BM1-shared         250G  288M  250G   1% /hana/shared
/dev/mapper/a30-hana-primary-BM1-log-mnt00001   250G  288M  250G   1% /hana/log/BM1/mnt00001
/dev/mapper/a30-hana-primary-BM1-data-mnt00001  250G  288M  250G   1% /hana/data/BM1/mnt00001
sapcc-hana-tst-02:~ #

HANA installation

The HANA installation can now be executed.

Note With the described configuration the /usr/sap/BM1 directory will be stored on the OS disk. If /usr/sap/BM1 should be stored on a separate disk, an additional LUN must be configured on the storage system.