在系统安装时候大多情况下有可能因为考虑不周,导致站群服务器空间不足问题,这时候如果没有 lvm 逻辑卷管理工具的话,往往就是查询站群服务器大档案删除之,或者应用迁移。但如果有了 lvm 逻辑卷管理,只需要新增硬碟,并将新硬碟的空间划分到不足的分割槽及可,如果空间浪费也可以减少对应分割槽的空间,这样可大大增加对空间的利用率
 
在安装系统时使用 lvm 逻辑卷管理,建立方法如下:

在系统安装到硬碟分割槽时选择 “建立自定义布局”

首先建立一个/boot 分割槽,/boot 分割槽不能在逻辑卷中,所以先需要建立一个分割槽给/boot,选中空闲的空间,点选建立,然后点选标准分割槽,点建立

建立/boot 分割槽,挂载点选择/boot,大小设定为 500,单位为 MB,然后固定大小,点选建立,至此/boot 分割槽建立完成

建立 lvm 物理卷点选剩余的空间,建立,建立时选择 “lvm 物理卷”

建立 lvm 物理卷,档案系统型别预设,空间大小使用全部可用空间,点选建立,至此物理卷建立完毕

从 lvm 物理卷建立 lvm 逻辑卷组,选中刚建立的 lvm 物理卷,然后点建立,建立时选择 lvm 卷组

从 lvm 逻辑卷组建立 lvm 逻辑卷,开启建立卷组对话方块,输入卷组名称(随意,看懂就行),然后在下面新增卷组中包含的 lvm 逻辑卷,我这里在当前卷组分配了 2048 的 swap,再把剩余所有空间分配到了根分割槽

效果图

效果图

通过以上步骤我们已经完成了在系统安装时采用 lvm 逻辑卷管理的方式
 
在已有系统中增加新硬碟并使用逻辑卷管理:

新增一块新硬碟(我这里使用的是虚拟机器,新增硬碟步骤略)
将新硬碟初始化为物理卷(我这里新新增的新硬碟为/dev/sdb)
pvcreate /dev/sdb
结果为 “Physical volume “/dev/sdb” successfully created” 代表建立成功
建立逻辑卷组
vgcreate VolGroup2 /dev/sdb
VolGroup2 为逻辑卷组的名称,/dev/sdb 我们前面已经初始化成物理卷,所以这里我们指定的是物理卷。整条命令的意思是建立一个名为 VolGroup2 的逻辑卷组,并将/dev/sdb 物理卷加入到此逻辑卷组中
结果为 “Volume group “VolGroup2” successfully created” 代表建立成功
建立逻辑卷
lvcreate -L 5G  -n LogVol01 VolGroup2
此命令的意思是从 VolGroup2 卷组建立一个名为 LogVol01 的逻辑卷
结果为 “Logical volume “LogVol01” created” 表示逻辑卷建立成功,成功后会在/dev/mapper 目录下生成一个名为 VolGroup2-LogVol01 名称的逻辑卷档案
格式化刚建立的 VolGroup2-LogVol01 逻辑卷
mkfs.ext4 /dev/mapper/VolGroup2-LogVol01
将格式化后的逻辑卷挂载到我们站群服务器的/data 目录
mkdir /data
blkid | grep VolGroup2-LogVol01
记住 UUID
编辑/etc/fstab 档案,在档案最后加入
UUID=c0d28e46-c8b8-4d39-a355-b155e2852e36 /data ext4 defaults 0 0
mount -a
效果如下

刚才新增的硬碟为 10G,只分配了 5G 的空间给 VolGroup2-LogVol01,我们现在再把其它剩余的空间用来给根分割槽扩容,操作步骤如下:

从 VolGroup2 建立一个新的逻辑卷,并使用剩余所有空间
lvcreate -l 100%FREE  -n LogVol02 VolGroup2
将新建立的逻辑卷格式化,并挂载到/data2
mkdir /data2
mkfs.ext4 /dev/mapper/VolGroup2-LogVol02
blkid | grep VolGroup2-LogVol02
echo “UUID=7f427618-22bd-4e98-90ff-7f782d067644 /data2 ext4 defaults 0 0” >> /etc/fstab
mount -a
效果如下

 
增加新硬碟为给现有 lvm 逻辑卷扩容空间:

新增一块新硬碟(我这里使用的是虚拟机器,新增硬碟步骤略)
把新硬碟初始化成物理卷
pvcreate /dev/sdc
检视 VolGroup2 逻辑卷组资讯
vgdisplay VolGroup2

从以上资讯可以看出 VolGroup2 共有 10G,也就是我们新增的第二块硬碟的大小
扩容 VolGroup2 的大小,用我们第三块盘去扩容
vgextend VolGroup2 /dev/sdc
检视扩容后的大小,为 25G

通过上一步我们已经将 VolGroup2 扩容到了 25G,也就意味著还有剩余空间没有被分配到逻辑卷,这时候我们可以利用这些剩余空间来增加逻辑卷的大小,但只能增加 VolGroup2 中的逻辑卷,而 VolGroup1 中的逻辑卷还需要另外的新硬碟来扩充套件 VolGroup1 的空间
lvextend -L+5G /dev/mapper/VolGroup2-LogVol01
通过上面的命令,我们将 VolGroup2-LogVol01 逻辑卷增加了 5G 的空间
这时候我们实际显示还是原来的空间,我们需要再执行下面的命令
resize2fs /dev/mapper/VolGroup2-LogVol01
最后再检视空间,这时候/data 增加了 5G

将第三块硬碟的剩余所有空间,扩充套件到/data2
lvextend -l+100%FREE /dev/mapper/VolGroup2-LogVol02
resize2fs /dev/mapper/VolGroup2-LogVol02
结果如下

这时候如果我们要扩容根分割槽的容量,同样的道理,只需要再新增一块新硬碟,然后把硬碟初始化成物理卷,再把物理卷加入到 VolGroup1 的组里面,然后就可以扩容根分割槽了

执行以下命令
pvcreate /dev/sdd
vgextend VolGroup1 /dev/sdd
lvextend -l+100%FREE /dev/mapper/VolGroup1-LogVol01
在执行上面命令之前我已经对/dev/sdd 的空间划分了 3G 给交换分机档案,详情见下面 b 步骤
resize2fs /dev/mapper/VolGroup1-LogVol01
通过上面命令,根分割槽也扩容了 2G,结果如下

经测试如果要对 lvm 的交换分机进行扩容,操作如下:
lvextend -l+3G /dev/mapper/VolGroup1-LogVol00
swapoff -a
mkswap /dev/mapper/VolGroup1-LogVol00
swapon /dev/mapper/VolGroup1-LogVol00
这时候交换结果如下: