首页 > 代码库 > Linux之LVM管理

Linux之LVM管理

    在网络中磁盘管理是一项很重要的管理,磁盘内存储着重要的信息,它对于整个网络正常运行息息相关,我们又知道对于企业的各种数据每时每刻都在发生着变化,对于快速增长的企业来说它的数据信息量也在跟着快速增长,我们该怎样事先规划好存储企业信息容量的大小呢,好像现在都不能预知未来。此时Linux里的LVM很好的解决了这个问题,本次博文的主题就是关于Linux磁盘管理之LVM的介绍.


   一:什么是LVM

   LVM:逻辑卷管理(Logical Volume Manager,缩写为LVM它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,我们可以通过LVM对逻辑层进行管理。wKiom1PF6faCqwjsAADrU4DhhyI941.jpg


     二:为什么要有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查看。

wKiom1PF-CXS6uVQAAFQWRmsD8I241.jpg

display:查看每个磁盘的详细信息(后面要指定那个磁盘号)

    display /PATH/DEVICE#

 wKioL1PF-iSSgnpGAAGihHHzTiI629.jpg

pvremove :移除磁盘

  pvremove /PATH/DEVICE#

wKiom1PF-kHAVwHyAAEveL9k7JI826.jpg

pvscan:查看每个磁盘的信息。



  2) VG的管理命令

vgcreate, vgs, vgdisplay, vgremove, vgextend, vgreduce, vgscan


vgcreate:创建vg

   vgcreate  vg的名字  /PATH/DEVICE#

vgs:查看vg的信息

   wKiom1PF_zDhMcvdAAER9K7JkC8804.jpg

vgextend:扩展vg

   vgextend vg的名字  /PATH/DEVICE#

wKiom1PGAKSyPmG0AAEqc0STrrE301.jpg


vgreduce:移除VG

  vgreduce  vg的名字  /PATH/DEVICE#


wKiom1PGGUvjY1O5AAEsW38ksq8158.jpg


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的信息

wKioL1PGEMOANLEPAAFdDzxJ7pk302.jpg

lvextend:扩展lv的大小

   扩展lv前要检查下你要扩展的大小是否超过了VG还剩空间的大小。扩展LV要先扩展物理边界再扩展逻辑边界。

   扩展物理边界:lvextend -L 5G /PATH/vg名字/lv名字

   强制进行文件检测:e2fsck -f /PATH/vg名字/lv名字

   扩展逻辑边界:resize2fs /PATH/vg名字/lv名字


wKioL1PGHCXyeTSBAACFaJNXk_o250.jpg



wKioL1PGFimAbqGjAAVulh_HzjM475.jpg


lvreduce:缩减LV

   缩减lv(缩减有危险,缩减要在离线情况下进行)

   1先确定缩减后大小,并确保对应目标逻辑卷中有可容纳原有的数据

   2先卸载文件系统

   3进行强制检测 e2fsck -f  /PATH/vg名字/lv名字

   4缩减逻辑边界 resize2fs  /PATH/vg名字/lv名字  大小

   5缩减物理边界 lvreduce -L 大小 /PATH/vg名字/lv名字

wKiom1PGF2_jFdfSAAVBHOIryJc499.jpg


lvremove:移除lv

  lvremove /PATH/vg名字/lv名字

  


五:LV的创建

   要想创建lv必须要先创建pv,在pv的基础上要创建vg,在vg的基础之上在创lv。盆友们按着这个逻辑和上面已经给出的命令尝试创建一个lv吧。当然删除的话要先从lv开始在一步一步向前。

   因本人能力有限望大家多多批评。

本文出自 “slayer” 博客,谢绝转载!