Cloud disk capacity expansion Guide for SAP
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:
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 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: 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