在网络中磁盘管理是一项很重要的管理,磁盘内存储着重要的信息,它对于整个网络正常运行息息相关,我们又知道对于企业的各种数据每时每刻都在发生着变化,对于快速增长的企业来说它的数据信息量也在跟着快速增长,我们该怎样事先规划好存储企业信息容量的大小呢,好像现在都不能预知未来。此时Linux里的LVM很好的解决了这个问题,本次博文的主题就是关于Linux磁盘管理之LVM的介绍.
一:什么是LVM
LVM:逻辑卷管理(Logical Volume Manager,缩写为LVM)它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,我们可以通过LVM对逻辑层进行管理。
二:为什么要有LVM管理
我们讲过企业的数据信息无时无刻不在变化,将来某一天企业的磁盘没有多余的空间可以用来存放数据,有哪种方法可以不用在停机的情况下实现对企业磁盘空间的扩容呢,随着LVM的出现这些问题我们可以迎刃而解。
三:LVM各层介绍。
PV(physical volume,PV):物理卷,物理磁盘分区不过它的文件格式不是ext4这些,而是具有LVM管理功能的LVM格式在磁盘分区文件格式选择里属于8e的格式(对于磁盘分区我们在这里不在做过多的介绍)。
VG(Volume Group,VG):卷组,卷组是在PV物理卷的基础上创建的,卷组是有一个或多个物理卷组成的,卷组可以在物理卷PV的基础上扩展和缩小。
PE(physical extent,PE)每个物理卷只有被扩展成PE后才能进行VG的扩展,它就相当于有许多同等大小的block块(默认为4M,可以指定大小一般为2的N次方M),VG就是有这些PE块组成的,正式由于这些PE块VG才可以实现自由的扩展和缩小。
LV(logical volume,LV)逻辑卷,在VG的基础上创建,可以进行格式化,创建文件系统可以被挂载。对于用户相当于一个磁盘不过实际上是在VG上逻辑出来的,可以实现扩展和缩小不过要在VG的基础上,扩展的边界是不可能超过VG的。
四:LVM的管理
上图我们可以看出LV创建是在VG的基础上创建的,VG是在PV的基础上创建的。所以我们要想创建LV必须要先从PV开始,下面介绍下各个卷的管理命令。
1)PV的管理命令。
pvcreate, pvs, pvdisplay, pvremove, pvmove, pvscan
pvcreate:创建pv,磁盘分区的格式要为8e的LVM格式。
pvcreate /PATH/DEVICE{#,#}
pvs:创建完成之后可以用pvs查看。
display:查看每个磁盘的详细信息(后面要指定那个磁盘号)
display /PATH/DEVICE#
pvremove :移除磁盘
pvremove /PATH/DEVICE#
pvscan:查看每个磁盘的信息。
2) VG的管理命令
vgcreate, vgs, vgdisplay, vgremove, vgextend, vgreduce, vgscan
vgcreate:创建vg
vgcreate vg的名字 /PATH/DEVICE#
vgs:查看vg的信息
vgextend:扩展vg
vgextend vg的名字 /PATH/DEVICE#
vgreduce:移除VG
vgreduce vg的名字 /PATH/DEVICE#
vgremove:移除vg (在移除VG之前要先用vgreduce转移数据)
vgremove vg名字
vgdisplay:列出所有的vg信息。
3)LV的管理命令
lvcreate, lvs, lvdisplay, lvremove, lvextend, lvreduce, lvscan
lvcreate:创建LV
lvcreate -L lv大小 -n lv的名字 vg的名字
lvs: 查看lv的信息
lvextend:扩展lv的大小
扩展lv前要检查下你要扩展的大小是否超过了VG还剩空间的大小。扩展LV要先扩展物理边界再扩展逻辑边界。
扩展物理边界:lvextend -L 5G /PATH/vg名字/lv名字
强制进行文件检测:e2fsck -f /PATH/vg名字/lv名字
扩展逻辑边界:resize2fs /PATH/vg名字/lv名字
lvreduce:缩减LV
缩减lv(缩减有危险,缩减要在离线情况下进行)
1先确定缩减后大小,并确保对应目标逻辑卷中有可容纳原有的数据
2先卸载文件系统
3进行强制检测 e2fsck -f /PATH/vg名字/lv名字
4缩减逻辑边界 resize2fs /PATH/vg名字/lv名字 大小
5缩减物理边界 lvreduce -L 大小 /PATH/vg名字/lv名字
lvremove:移除lv
lvremove /PATH/vg名字/lv名字
五:LV的创建
要想创建lv必须要先创建pv,在pv的基础上要创建vg,在vg的基础之上在创lv。盆友们按着这个逻辑和上面已经给出的命令尝试创建一个lv吧。当然删除的话要先从lv开始在一步一步向前。
因本人能力有限望大家多多批评。