在系统安装时候大多情况下有可能因为考虑不周,导致服务器空间不足问题,这时候如果没有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
- 效果如下
- 从VolGroup2创建一个新的逻辑卷,并使用剩余所有空间
增加新硬盘为给现有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
这时候交换结果如下:
- 执行以下命令