lvm根分区扩容
请在测试环境先测试,理论上支持在线扩容
1.确定 / 分区类型
可确定根分区为lvm,所以以下通过lvm扩容
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 458K 0 rom
vda 254:0 0 10G 0 disk
├─vda1 254:1 0 232M 0 part /boot
└─vda2 254:2 0 9.8G 0 part
└─disk1-root 253:0 0 108.8G 0 lvm /
vdb 254:16 0 2G 0 disk [SWAP]
vdc 254:32 0 200G 0 disk
└─vdc1 254:33 0 200G 0 part /home
vdd 254:48 0 100G 0 disk
2.给虚机新加一块磁盘,要参考之前 / 分区的磁盘类型,这里我加的磁盘是 /dev/vdd,磁盘大小为100G
3.先创建pv
pvcreate /dev/vdd
4.确定vg名称,扩容vg
可以从设备名称中提取出卷组名称,例如执行df -Th,如果设备名称是"/dev/mapper/vg1-root",那么卷组名称就是"vg1"。
(1)通过以下名命令也可以确定vg名称为disk-1
# vgdisplay
--- Volume group ---
VG Name disk1 # vg卷组名
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size <109.77 GiB
PE Size 4.00 MiB
Total PE 28100
Alloc PE / Size 27845 / <108.77 GiB
Free PE / Size 255 / 1020.00 MiB
VG UUID 2OWY0T-i4Uj-koHo-Vt02-3y1o-igH8-136rwT
(2)通过以下命令扩容vg
# vgextend disk1 /dev/vdd
Volume group "disk1" successfully extended
5.确定根分区lvm卷组名称,扩展逻辑卷
(1)通过以下命令确定lvm卷组名称
# lvdisplay
--- Logical volume ---
LV Path /dev/disk1/root # lvm卷组名
LV Name root
VG Name disk1
LV UUID CcumzE-AfFQ-kq9S-eo1B-fGAL-wqcE-CSrwhs
LV Write Access read/write
LV Creation host, time debian, 2019-08-27 15:18:53 +0800
LV Status available
# open 1
LV Size <9.77 GiB
Current LE 2501
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
(2)通过以下命令扩容lvm
# lvextend -L +99G /dev/disk1/root
Size of logical volume disk1/root changed from <9.77 GiB (2501 extents) to <108.77 GiB (27845 extents).
Logical volume disk1/root successfully resized.
此处+99G表示 / 分区在原有基础上,新增99G,+ 100G会报错;
Insufficient free space: 25600 extents needed, but only 25599 available
表示需要25600个LVM extent(一种LVM抽象概念,表示一组连续的物理块),而“但只有25599个可用”表示当前卷组中只有25599个未分配的extent可用,因此只能 +99G。
6.确定根分区文件系统类型,格式化
(1)可以确定 / 分区的文件系统类型为xfs,因此下面使用xfs_growfs进行文件系统扩容
# df -Th
Filesystem Type Size Used Avail Use% Mounted on
udev devtmpfs 7.9G 0 7.9G 0% /dev
tmpfs tmpfs 1.6G 8.5M 1.6G 1% /run
/dev/mapper/disk1-root xfs 9.8G 8.7G 1.1G 90% /
tmpfs tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/vdc1 xfs 200G 93G 108G 47% /home
/dev/vda1 ext2 223M 82M 130M 39% /boot
tmpfs tmpfs 1.6G 0 1.6G 0% /run/user/0
(2)扩容 / 文件系统
# xfs_growfs /
meta-data=/dev/mapper/disk1-root isize=512 agcount=4, agsize=640256 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=0
= reflink=0
data = bsize=4096 blocks=2561024, 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
data blocks changed from 2561024 to 28513280
其中,"/"是根分区的挂载点。这个命令会将文件系统扩展到逻辑卷的末尾。
7.检查是否扩容成功,下图可见,根分区size变为了109G
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.9G 0 7.9G 0% /dev
tmpfs 1.6G 8.5M 1.6G 1% /run
/dev/mapper/disk1-root 109G 8.8G 100G 9% /
tmpfs 7.9G 0 7.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
/dev/vdc1 200G 93G 108G 47% /home
/dev/vda1 223M 82M 130M 39% /boot
tmpfs 1.6G 0 1.6G 0% /run/user/0