Cloud disk capacity expansion Guide for SAP

更新时间:
复制 MD 格式

Resize cloud disks for SAP applications and databases on Alibaba Cloud by using Logical Volume Manager (LVM) to extend partitions and file systems.

Cloud disk capacity expansion Guide for SAP

Release history

Version

Revision date

Changes

Release date

1.0

2019-03-26

1.1

2019-03-29

1. Updated operation instructions for adding a data disk.

2. Updated document links.

2019-03-29

1.2

2019-04-02

1. Updated the reference for shrinking a disk.

2. Optimized the layout.

2019-04-02

1.3

2019-12-30

1. Updated the resize cloud disk online.

2019-12-30

Overview

You can resize both system disks and data disks for SAP applications and databases on Alibaba Cloud. Before you resize a disk, review the following references:

For more information about system disk resizing, see:

Resize cloud disks offline

After resizing a disk, run the appropriate file system commands to extend the file system.

To shrink a disk, see Shrink disk.

The following example uses SUSE Linux Enterprise Server for SAP Applications 12 SP3 with LVM managing disk partitions and file systems (XFS and Ext). Commands may vary by operating system version. Refer to your operating system documentation for details.

In this example, the /hana/data, /usr/sap, and /sapcd file systems of SAP applications are resized.

  • The /hana/data, /hana/log, and /hana/shared file systems are XFS. They stripe data across three SSDs by using LVM to improve SAP HANA data I/O performance.

  • The /usr/sap partition is an XFS file system that stores data on an ultra disk in a separate volume group.

  • The /sapcd partition is an Ext4 file system that stores data on a raw disk not partitioned or managed by LVM.

Example

Disk type

File system size before resizing

File system size after resizing

File system type

Volume group

Striped based on LVM

Mount point

Data disk

30 GB

50 GB

XFS

datavg

Yes

/hana/data

Data disk

30 GB

60 GB

XFS

sapvg

No

/usr/sap

Data disk

20 GB

40 GB

Ext4

N/A

No

/sapcd

Note

Note We recommend that you create a snapshot of a disk before resizing it to prevent data loss caused by incorrect operations. For more information, see Create a snapshot.

Data disk resizing

Create a data disk

Add a data disk when you need to mount a new file system, an existing disk reaches its capacity limit, or you want to stripe multiple disks with LVM to improve I/O performance.

Example: Create a 20 GB disk and attach it to the /usr/sap/T01 file system.

1. Create a 20 GB disk in the Elastic Compute Service (ECS) console and attach the disk to an ECS instance. The system allocates a name to the disk, for example, /dev/vdg.

# lsblk
NAME               MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda                253:0    0  40G  0 disk 
└─vda1             253:1    0  40G  0 part /
vdb                253:16   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  50G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vdc                253:32   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  50G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vdd                253:48   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  50G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vde                253:64   0  60G  0 disk 
└─sapvg-lvusrsap   254:0    0  60G  0 lvm  /usr/sap
vdf                253:80   0  40G  0 disk /sapcd
vdg                253:96   0  20G  0 disk

2. Add the disk to an existing volume group and create a logical volume.

Add the disk to an existing volume group.

# vgextend sapvg /dev/vdg
  Volume group "sapvg" successfully extended

# pvs -a
  PV                    VG     Fmt  Attr PSize  PFree 
  /dev/datavg/lvhdata               ---      0      0 
  /dev/datavg/lvhlog                ---      0      0 
  /dev/datavg/lvhshared             ---      0      0 
  /dev/root                         ---      0      0 
  /dev/sapvg/lvusrsap               ---      0      0 
  /dev/vdb              datavg lvm2 a--  40.00g 13.33g
  /dev/vdc              datavg lvm2 a--  40.00g 13.33g
  /dev/vdd              datavg lvm2 a--  40.00g 13.33g
  /dev/vde              sapvg  lvm2 a--  60.00g     0 
  /dev/vdf                          ---      0      0 
  /dev/vdg              sapvg  lvm2 a--  20.00g 20.00g

# lvcreate -l 100%FREE -n lvsapsid sapvg
  Logical volume "lvsapsid" created.

# mkfs.xfs /dev/sapvg/lvsapsid 
meta-data=/dev/sapvg/lvsapsid    isize=256    agcount=4, agsize=1310464 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5241856, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

3. Mount a new file system to the specified mount point.

Note

Note: Before you mount a new partition to a non-empty directory, move all subdirectories and files to another directory. After mounting, move them back.

mount /dev/mapper/sapvg-lvsapsid /usr/sap/T01

# df -Th
Filesystem                   Type      Size  Used Avail Use% Mounted on
devtmpfs                     devtmpfs  3.9G  8.0K  3.9G   1% /dev
tmpfs                        tmpfs     8.0G     0  8.0G   0% /dev/shm
tmpfs                        tmpfs     3.9G  660K  3.9G   1% /run
tmpfs                        tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1                    ext4       40G  3.6G   34G  10% /
/dev/vdf                     ext4       40G   48M   38G   1% /sapcd
/dev/mapper/datavg-lvhdata   xfs        50G   33M   50G   1% /hana/data
/dev/mapper/datavg-lvhlog    xfs        10G   33M   10G   1% /hana/log
/dev/mapper/datavg-lvhshared xfs        20G   33M   20G   1% /hana/shared
/dev/mapper/sapvg-lvusrsap   xfs        60G   33M   60G   1% /usr/sap
tmpfs                        tmpfs     799M     0  799M   0% /run/user/0
/dev/mapper/sapvg-lvsapsid   xfs        20G   33M   20G   1% /usr/sap/T01

4. Add the file system configuration to the fstab file.

echo "/dev/mapper/sapvg-lvsapsid      /usr/sap/T01    xfs     defaults        0       0" >>/etc/fstab

Data disk resizing

View the file system type

Log on to the ECS instance to view file system information.

The operating system is SUSE Linux Enterprise 12. The file system types of data disks include XFS and Ext4.

# df -Th
Filesystem                   Type      Size  Used Avail Use% Mounted on
devtmpfs                     devtmpfs  3.9G  8.0K  3.9G   1% /dev
tmpfs                        tmpfs     8.0G     0  8.0G   0% /dev/shm
tmpfs                        tmpfs     3.9G  624K  3.9G   1% /run
tmpfs                        tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1                    ext4       40G  3.6G   34G  10% /
tmpfs                        tmpfs     799M     0  799M   0% /run/user/0
/dev/mapper/sapvg-lvusrsap   xfs        30G   33M   30G   1% /usr/sap
/dev/mapper/datavg-lvhdata   xfs        30G   33M   30G   1% /hana/data
/dev/mapper/datavg-lvhlog    xfs        10G   33M   10G   1% /hana/log
/dev/mapper/datavg-lvhshared xfs        20G   33M   20G   1% /hana/shared
/dev/vdf                     ext4       20G   44M   19G   1% /sapcd

Extend partitions

Run the lsblk command to display all partitions on the ECS instance. For more information about LVM partitions, see LVM Howto.

The following command output indicates the disk status before resizing:

# lsblk
NAME               MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda                253:0    0  40G  0 disk 
└─vda1             253:1    0  40G  0 part /
vdb                253:16   0  20G  0 disk 
├─datavg-lvhshared 254:0    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:1    0  30G  0 lvm  /hana/data
└─datavg-lvhlog    254:2    0  10G  0 lvm  /hana/log
vdc                253:32   0  20G  0 disk 
├─datavg-lvhshared 254:0    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:1    0  30G  0 lvm  /hana/data
└─datavg-lvhlog    254:2    0  10G  0 lvm  /hana/log
vdd                253:48   0  20G  0 disk 
├─datavg-lvhshared 254:0    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:1    0  30G  0 lvm  /hana/data
└─datavg-lvhlog    254:2    0  10G  0 lvm  /hana/log
vde                253:64   0  30G  0 disk 
└─sapvg-lvusrsap   254:3    0  30G  0 lvm  /usr/sap
vdf                253:80   0  20G  0 disk /sapcd

In the ECS console, select the target disk and resize it. After the resize is complete, restart the ECS instance.

# lsblk
NAME               MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda                253:0    0  40G  0 disk 
└─vda1             253:1    0  40G  0 part /
vdb                253:16   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  30G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vdc                253:32   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  30G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vdd                253:48   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  30G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vde                253:64   0  60G  0 disk 
└─sapvg-lvusrsap   254:0    0  30G  0 lvm  /usr/sap
vdf                253:80   0  40G  0 disk /sapcd

The /dev/vdb, /dev/vdc, and /dev/vdd disks each contain three partitions: /hana/shared, /hana/data, and /hana/log. These partitions stripe data across the three disks. Although the total disk space increased from 40 GB to 120 GB, the logical volume remains at 30 GB. Resize the volume group first, and then resize the logical volume.

The /dev/vde disk has one logical volume, /usr/sap. The disk space increased to 60 GB, but the logical volume remains at 30 GB. Resize the volume group first, and then resize the logical volume.

The /dev/vdf disk is not partitioned. The disk size after resizing matches the partition size (40 GB).

Extend the volume group and logical volume

Use LVM commands to resize file systems.

1. Extend physical volumes.

# pvresize /dev/vdb /dev/vdc /dev/vdd /dev/vde
  Physical volume "/dev/vdb" changed
  Physical volume "/dev/vdc" changed
  Physical volume "/dev/vdd" changed
  Physical volume "/dev/vde" changed
  4 physical volume(s) resized / 0 physical volume(s) not resized

2. Resize logical volumes as required. In this example, logical volumes are resized as follows:

# lvresize -L +20G /dev/datavg/lvhdata
  Using stripesize of last segment 64.00 KiB
  Rounding size (12800 extents) up to stripe boundary size for segment (12801 extents)
  Size of logical volume datavg/lvhdata changed from 30.00 GiB (7680 extents) to 50.00 GiB (12801 extents).
  Logical volume lvhdata successfully resized

# lvresize -L +30G /dev/sapvg/lvusrsap
  Size of logical volume sapvg/lvusrsap changed from 30.00 GiB (7679 extents) to 60.00 GiB (15359 extents).
  Logical volume lvusrsap successfully resized

3. Extend logical volumes.

Example: Resize XFS file systems.

# xfs_growfs /usr/sap
meta-data=/dev/mapper/sapvg-lvusrsap isize=256    agcount=4, agsize=1965824 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=7863296, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3839, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7863296 to 15727616

 # xfs_growfs /hana/data
meta-data=/dev/mapper/datavg-lvhdata isize=256    agcount=16, agsize=491504 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=7864064, imaxpct=25
         =                       sunit=16     swidth=48 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3840, version=2
         =                       sectsz=512   sunit=16 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7864064 to 13108224

Example: Run the resize2fs command to resize Ext file systems (Ext2, Ext3, and Ext4).

# resize2fs /dev/vdf
resize2fs 1.42.11 (09-Jul-2014)
Filesystem at /dev/vdf is mounted on /sapcd; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/vdf is now 10485760 blocks long.

4. Verify the resizing.

# df -Th
Filesystem                   Type      Size  Used Avail Use% Mounted on
devtmpfs                     devtmpfs  3.9G  8.0K  3.9G   1% /dev
tmpfs                        tmpfs     8.0G     0  8.0G   0% /dev/shm
tmpfs                        tmpfs     3.9G  648K  3.9G   1% /run
tmpfs                        tmpfs     3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/vda1                    ext4       40G  3.6G   34G  10% /
/dev/vdf                     ext4       40G   48M   38G   1% /sapcd
tmpfs                        tmpfs     799M     0  799M   0% /run/user/0
/dev/mapper/datavg-lvhdata   xfs        50G   33M   50G   1% /hana/data
/dev/mapper/datavg-lvhlog    xfs        10G   33M   10G   1% /hana/log
/dev/mapper/datavg-lvhshared xfs        20G   33M   20G   1% /hana/shared
/dev/mapper/sapvg-lvusrsap   xfs        60G   33M   60G   1% /usr/sap

# lsblk
NAME               MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda                253:0    0  40G  0 disk 
└─vda1             253:1    0  40G  0 part /
vdb                253:16   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  50G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vdc                253:32   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  50G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vdd                253:48   0  40G  0 disk 
├─datavg-lvhshared 254:1    0  20G  0 lvm  /hana/shared
├─datavg-lvhdata   254:2    0  50G  0 lvm  /hana/data
└─datavg-lvhlog    254:3    0  10G  0 lvm  /hana/log
vde                253:64   0  60G  0 disk 
└─sapvg-lvusrsap   254:0    0  60G  0 lvm  /usr/sap
vdf                253:80   0  40G  0 disk /sapcd