全部产品
云市场

SAP系统云盘扩容后处理(基于LVM)

更新时间:2019-08-02 10:15:00


版本管理

版本 修订日期 变更类型 生效日期
1.0 2019/3/26
1.1 2019/3/29 1.更新了新增数据盘操作说明
2.更新部分文档link
2019/3/29
1.2 2019/4/2 1.更新了云盘缩容参考
2.优化排版布局
2019/4/2

云盘扩容场景概述

本文档描述了如何在阿里云环境中,对SAP系统应用或数据库云盘扩容后的处理。云盘扩容主要包括系统盘扩容和数据盘扩容,在对云盘扩容前请先阅读

系统盘的扩容请参考:

云盘扩容后,需要使用特定文件系统的命令将文件系统扩展为需要的容量。

特殊场景下需要进行云盘缩容,请参考:磁盘缩容

这里以SUSE 12 SP3 for SAP为例,使用LVM管理磁盘的分区和文件系统(包括XFS和EXT),不同版本或者不同操作系统命令可能有差异,请参考对应操作系统的产品手册。

本次扩容的场景假设SAP应用的 /hana/data , /usr/sap,/sapcd 这三个文件系统需要扩容:

  • /hana/data,/hana/log,/hana/shared 使用三块SSD云盘做了LVM条带化以满足HANA的性能要求,文件系统为XFS。(有关SAP HANA存储需求请参考SAP HANA TDI-Storage Requirements
  • /usr/sap 使用了一块高效云盘,划分到了单独的vg中,文件系统为XFS。
  • /sapcd 未使用LVM管理,裸盘直接挂载,文件系统为EXT4。

示例

属性 文件系统原大小 扩容后大小 文件系统 VG LVM条带化 挂载点
数据盘 30G 50G XFS datavg /hana/data
数据盘 30G 60G XFS sapvg /usr/sap
数据盘 20G 40G EXT4 N/A /sapcd

注意
在云盘扩容前,建议对云盘做快照,以防止误操作导致的数据丢失。更多信息,请参考 创建快照

数据盘扩容

新增数据盘

新增数据盘,一般用于新挂载文件系统、单块云盘容量已经超过最大容量限制或多盘做LVM条带化提升磁盘IO性能的场景。

新建云盘请参考:创建按量付费云盘创建预付费云盘

不同块存储产品的性能对比,请参考:块存储性能

示例:新增20G云盘并挂载到文件系统 /usr/sap/T01

1.控制台新建一块20G云盘 ,并挂载到当前ECS,系统自动分配磁盘名 /dev/vdg

  1. # lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. vda 253:0 0 40G 0 disk
  4. └─vda1 253:1 0 40G 0 part /
  5. vdb 253:16 0 40G 0 disk
  6. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  7. ├─datavg-lvhdata 254:2 0 50G 0 lvm /hana/data
  8. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  9. vdc 253:32 0 40G 0 disk
  10. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  11. ├─datavg-lvhdata 254:2 0 50G 0 lvm /hana/data
  12. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  13. vdd 253:48 0 40G 0 disk
  14. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  15. ├─datavg-lvhdata 254:2 0 50G 0 lvm /hana/data
  16. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  17. vde 253:64 0 60G 0 disk
  18. └─sapvg-lvusrsap 254:0 0 60G 0 lvm /usr/sap
  19. vdf 253:80 0 40G 0 disk /sapcd
  20. vdg 253:96 0 20G 0 disk

2.扩展到已有的vg并新建lv

将新加的云盘扩展到现有的vg中

  1. # vgextend sapvg /dev/vdg
  2. Volume group "sapvg" successfully extended
  3. # pvs -a
  4. PV VG Fmt Attr PSize PFree
  5. /dev/datavg/lvhdata --- 0 0
  6. /dev/datavg/lvhlog --- 0 0
  7. /dev/datavg/lvhshared --- 0 0
  8. /dev/root --- 0 0
  9. /dev/sapvg/lvusrsap --- 0 0
  10. /dev/vdb datavg lvm2 a-- 40.00g 13.33g
  11. /dev/vdc datavg lvm2 a-- 40.00g 13.33g
  12. /dev/vdd datavg lvm2 a-- 40.00g 13.33g
  13. /dev/vde sapvg lvm2 a-- 60.00g 0
  14. /dev/vdf --- 0 0
  15. /dev/vdg sapvg lvm2 a-- 20.00g 20.00g
  16. # lvcreate -l 100%FREE -n lvsapsid sapvg
  17. Logical volume "lvsapsid" created.
  18. # mkfs.xfs /dev/sapvg/lvsapsid
  19. meta-data=/dev/sapvg/lvsapsid isize=256 agcount=4, agsize=1310464 blks
  20. = sectsz=512 attr=2, projid32bit=1
  21. = crc=0 finobt=0, sparse=0
  22. data = bsize=4096 blocks=5241856, imaxpct=25
  23. = sunit=0 swidth=0 blks
  24. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  25. log =internal log bsize=4096 blocks=2560, version=2
  26. = sectsz=512 sunit=0 blks, lazy-count=1
  27. realtime =none extsz=4096 blocks=0, rtextents=0

3.挂载新的文件系统到指定挂载点

注意:如果新建的分区需要挂载到非空目录,请先将该目录下的子目录和文件临时移动或备份到其他目录下,待挂载成功后再将子目录和文件移动或拷贝回来。

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

4.将新加的文件系统添加到fstab

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

数据盘扩容

查看当前文件系统

要查询当前实例的文件系统,请先登录ECS的操作系统。
当前示例的操作系统为SUSE 12,数据盘的文件系统为XFS和EXT4。

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

扩展分区

使用lsblk命令查看实例上存储设备的信息。有关LVM分区的介绍,请参考LVM how to

云盘扩容前状态

  1. # lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. vda 253:0 0 40G 0 disk
  4. └─vda1 253:1 0 40G 0 part /
  5. vdb 253:16 0 20G 0 disk
  6. ├─datavg-lvhshared 254:0 0 20G 0 lvm /hana/shared
  7. ├─datavg-lvhdata 254:1 0 30G 0 lvm /hana/data
  8. └─datavg-lvhlog 254:2 0 10G 0 lvm /hana/log
  9. vdc 253:32 0 20G 0 disk
  10. ├─datavg-lvhshared 254:0 0 20G 0 lvm /hana/shared
  11. ├─datavg-lvhdata 254:1 0 30G 0 lvm /hana/data
  12. └─datavg-lvhlog 254:2 0 10G 0 lvm /hana/log
  13. vdd 253:48 0 20G 0 disk
  14. ├─datavg-lvhshared 254:0 0 20G 0 lvm /hana/shared
  15. ├─datavg-lvhdata 254:1 0 30G 0 lvm /hana/data
  16. └─datavg-lvhlog 254:2 0 10G 0 lvm /hana/log
  17. vde 253:64 0 30G 0 disk
  18. └─sapvg-lvusrsap 254:3 0 30G 0 lvm /usr/sap
  19. vdf 253:80 0 20G 0 disk /sapcd

登录控制台,选择需要扩容的云盘,完成扩容操作后重启ECS

  1. # lsblk
  2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  3. vda 253:0 0 40G 0 disk
  4. └─vda1 253:1 0 40G 0 part /
  5. vdb 253:16 0 40G 0 disk
  6. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  7. ├─datavg-lvhdata 254:2 0 30G 0 lvm /hana/data
  8. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  9. vdc 253:32 0 40G 0 disk
  10. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  11. ├─datavg-lvhdata 254:2 0 30G 0 lvm /hana/data
  12. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  13. vdd 253:48 0 40G 0 disk
  14. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  15. ├─datavg-lvhdata 254:2 0 30G 0 lvm /hana/data
  16. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  17. vde 253:64 0 60G 0 disk
  18. └─sapvg-lvusrsap 254:0 0 30G 0 lvm /usr/sap
  19. vdf 253:80 0 40G 0 disk /sapcd

/dev/vdb,/dev/vdc,/dev/vdd 三块云盘做了条带化处理,对应的文件系统是/hana/data /hana/log /hana/shared。虽然云盘的扩容已经生效(单盘40G,扩容后总容量120G),但lv的大小还是原始大小(30G),需要先扩展vg,再扩展lv。

云盘/dev/vde只有一个lv /usr/sap。云盘的扩容已经生效(60G),但lv的大小还是原始大小(30G),需要先扩展vg,再扩展lv。

云盘/dev/vdf 没有做lvm,分区的大小反映了新的大小。(40G)

扩展vg和lv

使用LVM命令将文件系统的大小调整为新的容量。
1.umount掉相关的文件系统挂载点

  1. umount -f /hana/data /hana/log /hana/shared /usr/sap

2.扩展pv

  1. # pvresize /dev/vdb /dev/vdc /dev/vdd /dev/vde
  2. Physical volume "/dev/vdb" changed
  3. Physical volume "/dev/vdc" changed
  4. Physical volume "/dev/vdd" changed
  5. Physical volume "/dev/vde" changed
  6. 4 physical volume(s) resized / 0 physical volume(s) not resized

3.按需求调整lv大小,按本示例规划调整如下:

  1. # lvresize -L +20G /dev/datavg/lvhdata
  2. Using stripesize of last segment 64.00 KiB
  3. Rounding size (12800 extents) up to stripe boundary size for segment (12801 extents)
  4. Size of logical volume datavg/lvhdata changed from 30.00 GiB (7680 extents) to 50.00 GiB (12801 extents).
  5. Logical volume lvhdata successfully resized
  6. # lvresize -L +30G /dev/sapvg/lvusrsap
  7. Size of logical volume sapvg/lvusrsap changed from 30.00 GiB (7679 extents) to 60.00 GiB (15359 extents).
  8. Logical volume lvusrsap successfully resized

4.扩展lv
示例:扩展XFS文件系统

  1. # mount -a
  2. # xfs_growfs /usr/sap
  3. meta-data=/dev/mapper/sapvg-lvusrsap isize=256 agcount=4, agsize=1965824 blks
  4. = sectsz=512 attr=2, projid32bit=1
  5. = crc=0 finobt=0 spinodes=0
  6. data = bsize=4096 blocks=7863296, imaxpct=25
  7. = sunit=0 swidth=0 blks
  8. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  9. log =internal bsize=4096 blocks=3839, version=2
  10. = sectsz=512 sunit=0 blks, lazy-count=1
  11. realtime =none extsz=4096 blocks=0, rtextents=0
  12. data blocks changed from 7863296 to 15727616
  13. # xfs_growfs /hana/data
  14. meta-data=/dev/mapper/datavg-lvhdata isize=256 agcount=16, agsize=491504 blks
  15. = sectsz=512 attr=2, projid32bit=1
  16. = crc=0 finobt=0 spinodes=0
  17. data = bsize=4096 blocks=7864064, imaxpct=25
  18. = sunit=16 swidth=48 blks
  19. naming =version 2 bsize=4096 ascii-ci=0 ftype=1
  20. log =internal bsize=4096 blocks=3840, version=2
  21. = sectsz=512 sunit=16 blks, lazy-count=1
  22. realtime =none extsz=4096 blocks=0, rtextents=0
  23. data blocks changed from 7864064 to 13108224

示例:扩展ext2,ext3或ext4文件系统,使用resize2fs命令扩展每个卷上的文件系统

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

5.验证结果

  1. # df -Th
  2. Filesystem Type Size Used Avail Use% Mounted on
  3. devtmpfs devtmpfs 3.9G 8.0K 3.9G 1% /dev
  4. tmpfs tmpfs 8.0G 0 8.0G 0% /dev/shm
  5. tmpfs tmpfs 3.9G 648K 3.9G 1% /run
  6. tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
  7. /dev/vda1 ext4 40G 3.6G 34G 10% /
  8. /dev/vdf ext4 40G 48M 38G 1% /sapcd
  9. tmpfs tmpfs 799M 0 799M 0% /run/user/0
  10. /dev/mapper/datavg-lvhdata xfs 50G 33M 50G 1% /hana/data
  11. /dev/mapper/datavg-lvhlog xfs 10G 33M 10G 1% /hana/log
  12. /dev/mapper/datavg-lvhshared xfs 20G 33M 20G 1% /hana/shared
  13. /dev/mapper/sapvg-lvusrsap xfs 60G 33M 60G 1% /usr/sap
  14. # lsblk
  15. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
  16. vda 253:0 0 40G 0 disk
  17. └─vda1 253:1 0 40G 0 part /
  18. vdb 253:16 0 40G 0 disk
  19. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  20. ├─datavg-lvhdata 254:2 0 50G 0 lvm /hana/data
  21. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  22. vdc 253:32 0 40G 0 disk
  23. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  24. ├─datavg-lvhdata 254:2 0 50G 0 lvm /hana/data
  25. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  26. vdd 253:48 0 40G 0 disk
  27. ├─datavg-lvhshared 254:1 0 20G 0 lvm /hana/shared
  28. ├─datavg-lvhdata 254:2 0 50G 0 lvm /hana/data
  29. └─datavg-lvhlog 254:3 0 10G 0 lvm /hana/log
  30. vde 253:64 0 60G 0 disk
  31. └─sapvg-lvusrsap 254:0 0 60G 0 lvm /usr/sap
  32. vdf 253:80 0 40G 0 disk /sapcd