前言

手上有很多2GB、8GB之类的小容量U盘,弃之可惜,所以我用lvm将这些u盘拼成了一个逻辑卷lv,将容量积少成多作为大容量存储空间使用。

比如现在是一个2GB的u盘 + 一个8GB的u盘拼成了一个总容量为9.5GB的lv

查看物理卷pv信息

# 命令
pvs

# 显示信息
PV         VG    Fmt  Attr PSize  PFree
/dev/sdc1  music lvm2 a--  <7.45g    0
/dev/sdd1  music lvm2 a--  <1.93g    0

查看物理卷pv详细信息

# 命令
pvdisplay

# 显示结果
--- Physical volume ---
PV Name               /dev/sdd1
VG Name               music
PV Size               <1.93 GiB / not usable 2.00 MiB
Allocatable           yes (but full)
PE Size               4.00 MiB
Total PE              493
Free PE               0
Allocated PE          493
PV UUID               Wrn9BJ-ezwM-pGYi-Ohdo-2eT0-Hzq1-wE2R9Y

--- Physical volume ---
PV Name               /dev/sdc1
VG Name               music
PV Size               7.45 GiB / not usable 2.00 MiB
Allocatable           yes (but full)
PE Size               4.00 MiB
Total PE              1907
Free PE               0
Allocated PE          1907
PV UUID               WJX8gr-AGx2-jRAf-tvwV-rcFV-r7vV-f2LK3F

现在想往这个lv中再加一个u盘进行扩容,本文记录一下操作步骤。


操作步骤

第一步:准备新磁盘

我准备了一个16GB容量的u盘,先用lsblkfdisk工具确认磁盘可以被系统正确识别。

图中这个/dev/sde就是新插入的u盘

# 命令
fdisk -l

# 显示信息
Disk /dev/sde: 14.84 GiB, 15931539456 bytes, 31116288 sectors
Disk model: STORAGE DEVICE
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

第二步:分区(可选)

这一步操作不是必须的,可以将物理磁盘分区,也可以不分区。我的lvm为了统一物理卷风格,所以都做了分区。

fdisk/dev/sde做个简单分区

sde           8:64   1 14.8G  0 disk
└─sde1        8:65   1 14.8G  0 part

第三步:创建物理卷pv

将新磁盘初始化为lvm物理卷。

pvcreate /dev/sde1

注意:如果没有第二步做分区,命令中的/dev/sde1需要调整为/dev/sde

查看pv的信息,确认/dev/sde1创建成功。

# 命令
pvs

# 显示信息
PV         VG    Fmt  Attr PSize   PFree
/dev/sdc1  music lvm2 a--   <7.45g      0
/dev/sdd1  music lvm2 a--   <1.93g      0
/dev/sde1        lvm2 ---  <14.84g <14.84g

第四步:将物理卷pv添加到卷组vg

vgs命令可以查看卷据信息

# 命令
vgs

## 显示信息
VG    #PV #LV #SN Attr   VSize  VFree
music   2   1   0 wz--n- <9.38g    0

可以看到卷据vg的名字叫做music,然后将pv添加到这个vg。

# 添加
vgextend music /dev/sde1

# 成功提示
Volume group "music" successfully extended

添加成功后,用vgs命令确认vg信息,可以看到pv数量从2变成3,容量多出了14.83g的未分配空间。

# 命令
vgs

# 显示信息
VG    #PV #LV #SN Attr   VSize   VFree
music   3   1   0 wz--n- <24.21g 14.83g

第五步:扩容逻辑卷lv

扩容lv需要获取完整的lv路径名称(lv path),这里用到lvdisplay命令查看

获取到完整的lv path以后就可以操作扩容了

# 命令
lvextend -l +100%FREE /dev/music/0

# 成功提示
Size of logical volume music/0 changed from <9.38 GiB (2400 extents) to <24.21 GiB (6197 extents).
Logical volume music/0 successfully resized.

vgs命令确认扩容结果,未分配空间VFree已经为0

# 命令
vgs

# 显示信息
VG    #PV #LV #SN Attr   VSize   VFree
music   3   1   0 wz--n- <24.21g    0

第六步:文件系统扩容

到这一步,就需要根据各自的文件系统用不同的命令进行扩容了。

如果是ext4,用到的是设备路径,这里是lv path

resize2fs /dev/music/0

如果是btrfs,用到的是挂载点(mount point)

btrfs filesystem resize max /mnt/music

# 成功提示
Resize device id 1 (/dev/dm-0) from 9.38GiB to max

到此就完成了往lvm中添加新磁盘&扩容的操作。🎉


喝杯奶茶