为了能动态调整磁盘分区大小,在Linux下经常会使用LVM对磁盘进行管理,提供灵活、可伸缩的存储池。创建LVM的基本步骤如下:
- 安装LVM
- 磁盘分区
- 创建物理卷(PV)
- 创建卷组(VG)
- 创建逻辑卷(LV)
- 格式化文件系统
- 挂载
然而,现在越来越多人在创建物理卷(PV)之前都不对磁盘分区,直接用整块磁盘创建物理卷(PV),这样是可以正常使用的,只是在后续扩容步骤上有所差异,本文将介绍在磁盘不分区直接创建PV的情况下具体的LVM扩容步骤
演示环境信息
数据盘sdb
原大小为25G,未划分磁盘分区,直接用于创建物理卷(PV),卷组(VG)名称为data
,逻辑卷(LV)名称为mysql
,文件系统为XFS
,挂载点为/data/mysql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| [root@centos7 ~] NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 64G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 63G 0 part / sdb 8:16 0 25G 0 disk └─data-mysql 253:0 0 25G 0 lvm /data/mysql sr0 11:0 1 1024M 0 rom
[root@centos7 ~] PV VG Fmt Attr PSize PFree /dev/sdb data lvm2 a-- <25.00g 0
[root@centos7 ~] VG data 1 1 0 wz--n- <25.00g 0
[root@centos7 ~] LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert mysql data -wi-ao---- <25.00g
[root@centos7 ~] Filesystem Type Size Used Avail Use% Mounted on /dev/sda2 ext4 62G 1.2G 58G 3% / devtmpfs devtmpfs 907M 0 907M 0% /dev tmpfs tmpfs 918M 0 918M 0% /dev/shm tmpfs tmpfs 918M 8.9M 909M 1% /run tmpfs tmpfs 918M 0 918M 0% /sys/fs/cgroup /dev/sda1 ext4 976M 104M 806M 12% /boot tmpfs tmpfs 184M 0 184M 0% /run/user/0 /dev/mapper/data-mysql xfs 25G 33M 25G 1% /data/mysql
|
扩容需求
将/data/mysql
目录扩容到50G
扩容步骤
扩容磁盘
目前各云服务器商或者各类虚拟化软件(例如VMware Workstation、Parallers Desktop)都支持对硬盘进行扩容,具体的操作步骤此处不进行赘述。扩容完成后执行以下命令确认/dev/sdb
的大小
扩容LVM
- 执行以下命令扩容物理卷(PV)和卷组(VG)。
1 2 3 4 5 6 7 8 9
| pvresize -t /dev/sdb
pvresize /dev/sdb
pvs vgs
|
- 执行以下命令对
mysql
逻辑卷(LV)进行扩容,把data
卷组(VG)中的所有剩余空间都分配给mysql
逻辑卷(LV)
1 2 3 4 5 6
| vgdisplay
lvextend -l +6400 /dev/data/mysql
|
- 执行以下命令查看
mysql
逻辑卷大小
扩容文件系统
- 执行以下命令查看根分区文件系统类型
1
| mount | grep -w /data/mysql
|
- 如果是XFS文件系统执行以下命令扩容文件系统
- 如果是EXT4文件系统执行以下命令扩容文件系统
1 2
| resize2fs /dev/data/mysql
|
- 执行以下命令确认是否扩容成功