由于平常开发主要是在Windows下进行,对于Linux的使用仅局限于服务器端虚拟机,所以初始分区这块一直使用的是默认配置,随着目前Windows Only开发收窄以及考虑今后跨平台开发,后期主力开发系统将逐渐迁移到Linux下,当然发行版肯定是基于Debian的,毕竟这个发行版较熟悉一些。如果主力开发系统迁移到Linux下那么分区又是一个绕不开的话题,所以我又将目前主流的LVM分区管理方式进行了学习,记录本文以备忘。
1 LVM 介绍
LVM 全称是逻辑卷管理(Logical Volume Manager),既然是逻辑卷就需要和传统的物理卷作出区分,传统物理卷一般在安装操作系统的时候进行分区划分,分区多少空间以后就是多少空间,空间不够怎么办?对不起,这个就麻烦了,就好比Windows下经常有人问C盘空间不够怎么办?能不能从其他分区划出一部分空间给C盘?以前我一般建议使用压缩卷或者一些第三方分区软件进行操作,实际上这些都是有局限和一定风险的,后来我也就不再推荐这个做法了。逻辑卷可以理解成在物理卷上进行了一层抽象,屏蔽物理卷的局限性,LVM技术最大的特点就是可伸缩性,也就是说可以方便的扩容和缩减存储空间。
1.1 PV、PE、VG和LV
为了便于进一步引入LVM相关知识,这里对PV、PE、VG和LV的基本概念进行介绍:
- (1) PV(Physical Volume)
- PV物理卷可以简单理解成实际硬盘之类的存储设备,如果要想使用LVM,那么物理存储设备需要被创建成PV物理卷。
- (2) PE(Physical Extents)
- PE是可被LVM寻址的最小单元,默认是4MB,这个默认值是可以修改的,但是我们一般维持默认不变,PE可以理解成从PV划分的块。
- (3) VG(Volume Group)
- VG表示卷组,VG建立在PV之上,可以理解成逻辑上VG是PE的集合,物理上VG建立在PV之上。
- (4) LV(Logical Volume)
- LV表示逻辑卷,这个是操作系统真正所要利用的分区卷,LV建立在VG之上,LV的分区大小取决于VG中划分出的大小(PE数量)。
PV、PE、VG和LV的关系可以简单使用下面的示意图表示:
2 LVM操作
下面我将简单介绍4种使用LVM管理的卷操作方式,需要提醒的是以下操作存在一定的风险,建议先搭建实验环境模拟测试,本人不对以下操作可能带来的数据损失负责。
2.1 创建分区
创建一个分区需要进行这些步骤,首先连接或者分配物理磁盘,其次将物理磁盘初始化成PV(Physical Volume),然后将PV加入VG(Volume Group),最后从VG上分配LV(Logical Volume)并最终格式化文件系统并挂载以完成分区创建。
一个例子如下所示:
1. 将物理磁盘初始化成物理卷PV
例如我们有磁盘/dev/sdb
和/dev/sdc
,那么可以通过下面的命令将磁盘初始化成PV:
pvcreate /dev/sdb /dev/sdc
2. 创建卷组VG,并将第1步创建的PV加入
vgcreate myvg /dev/sdb /dev/sdc
这里myvg是卷组的名字,这个可以根据喜好自定义。
3. 基于卷组VG创建逻辑卷LV
lvcreate -n mylv -L 16G myvg
这里mylv是逻辑卷的名字,同样可以根据喜好自定义。
2.2 删除分区
删除分区和创建分区执行相反的操作,比如删除第2.1节创建的分区,遵循下面的步骤,请注意部分操作可根据实际情况酌情选择:
1.删除LV
lvremove /dev/myvg/mylv
2.删除VG(根据情况选择)
vgremove myvg
3.删除物理卷(根据情况选择)
pvremove /dev/sdb
2.3 扩容分区
扩容分区也称作拉伸逻辑卷,首先我们需要确保卷组VG中有足够的空闲空间,如果空间不足将会导致后续操作失败,查看VG空闲空间的命令是vgdisplay
,空闲空间满足条件后使用lvextend
命令拉伸逻辑卷。
1.扩容1G大小空间
lvextend -L +1G /dev/myvg/mylv
扩容完成后建议使用lvdisplay确认一下扩充后的大小,然后使用resize2fs
更新文件系统。
2.更新文件系统
resize2fs /dev/myvg/mylv
更新完成后建议使用df -h
查看并确认更新后的结果。
3.扩容卷组(根据情况选择)
扩容分区前我们一般会通过vgdisplay
检查VG的空闲空间,如果此时空闲空间不足,那么就需要此步操作来扩容(拉伸)卷组了。
3.1 将新硬盘格式化为PV
pvcreate /dev/sdd
此步同2.1 创建分区 第1步。
3.2 将新格式化创建的PV添加到卷组中
vgextend myvg /dev/sdd
最后使用vgdisplay
确认操作结果。
2.4 缩减分区
缩减分区也称为缩小逻辑卷,需要注意的是此操作需要离线执行(需要卸载和重新挂载逻辑卷)。
1.卸载已有的分区(逻辑卷)
umount /dev/myvg/mylv
2.缩小文件系统
resize2fs /dev/myvg/mylv 1G
3.缩小逻辑卷LV
lvreduce -L -1G /dev/myvg/mylv
此步骤后可使用lvdisplay
查看并确认操作结果。
4.重新挂载分区(逻辑卷)
mount /dev/myvg/mylv /mnt
3 总结
LVM为Linux系统管理员提供了一种灵活管理存储空间的方式,大大降低了系统维护和管理的成本,尤其对于数据量增长的业务模式尤其适用,在线扩充存储空间避免了数据备份迁移的成本,大大缩短了业务恢复的时间。
To continue use comments feature please understand our privacy policy first and then you should allow the following type of cookies that for comment service:
By click the button below you will being asked by a pop-up box to confirm which cookies you're happy for me to use.
Understood & Confirm Cookie Settings