LVM是Logical
Volume
Manager(逻辑卷管理器)的简写,它为主机提供了更高层次的磁盘存储管理能力。LVM可以帮助系统管理员为应用与用户方便地分配存储空间。在LVM管理下的逻辑卷可以按需改变大小或添加移除。另外,LVM可以为所管理的逻辑卷提供定制的命名标识。因此,使用LVM主要是方便了对存储系统的管理,增加了系统的扩展性。
目前LVM在Linux下有两个版本,分别是LVM
1和LVM
2,LVM2不仅仅是Linux逻辑卷管理在版本与功能上的升级,而且是架构在一个新的内核存储子系统(DM,device-mapper)之上的。这个存储子系统提供了一个轻量级的、可扩展的卷管理设施。除了在原有LVM卷管理功能的基础上,Linux的逻辑卷管理将会为用户提供更多的存储管理方案,如镜像、加密卷、多路径技术。所以在本节将以LVM
2为例来详细介绍LVM的创建与管理。
LVM相关概念和术语
LVM是建立在磁盘分区和文件系统之间的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个逻辑的盘卷,再在盘卷上来建立文件系统。LVM的结构如图1如示:

图1
LVM结构图
在上面的LVM结构图中,涉及到了很多LVM的相关术语,那么关于这些术语的详细说明如下:
物理卷(physical
volume,PV)
物理卷就是指硬盘分区,也可以是整个硬盘或已创建的软RAID
,是LVM的基本存储设备,与普通物理存储介质的区别是该设备包含有LVM相关的管理参数。
卷组(volume
group,VG)
卷组是由一个或多个物理卷所组成的存储池,在卷组上能创建一个或多个“LVM分区”(逻辑卷)。
逻辑卷(logical
volume,LV)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,它建立在卷组之上,是一个标准的块设备,在逻辑卷之上可以建立文件系统。可以做这样一个设想来理解以上三者的关系:如果把PV比做地球的一个板块,VG则是一个地球,因为地球是由多个板块组成的,那么在地球上划分一个区域并标记为亚洲,则亚洲就相当于一个LV。
物理块(physical
extent,PE)
物理卷以大小相等的物理块为存储的基本单位,同时也是LVM寻址的最小单元。
逻辑块(logical
extent,LE)
逻辑卷以大小相等的逻辑块为存储的基本单位,在同一个卷组中,LE的大小和PE是相等的,并且一一对应。
卷组描述区域(Volume
Group Descriptor Area,VGDA)
和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。VGDA包括以下内容:
PV描述符、VG描述符、LV描述符、和一些PE描述符。系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。
创建逻辑卷
创建逻辑卷通常包括如下步骤:
  • 创建分区
  • 创建物理卷
  • 创建卷组
  • 激活卷组
  • 创建逻辑卷
  • 创建文件系统

下面将通过一个具体的实例来详细介绍创建逻辑卷的整个过程。
【实例1】
利用/dev/sdb、/dev/sdc、/dev/sdd这三块磁盘创建一个卷组,再在卷组上创建两个逻辑卷,并指定将其中一个逻辑卷的映射模式为条带映射,实现的步骤如下:
1、创建物理卷
创建物理卷的命令是 “pvcreate”,该命令可以将需要添加到卷组的分区或磁盘创建为物理卷。操作如下:
                        #
                        pvcreate /dev/sdb /dev/sdc /dev/sdd
                          Physical
                        volume "/dev/sdb" successfully created
                          Physical
                        volume "/dev/sdc" successfully created
  Physical volume
                        "/dev/sdd" successfully created
2、创建卷组
创建卷组的命令为“vgcreate”,将使用“pvcreate”建立的物理卷创建为一个完整的卷组,如下:
                        #
                        vgcreate vgtest /dev/sdb /dev/sdc /dev/sdd
  Volume group
                        "vgtest" successfully created
其中vgcreate命令第一个参数是指定该卷组的名为“vgtest”,该名称可以根据需要随便定义,后面接添加到该卷组的物理卷。同时在使用vgcreate
在创建卷组时,还可以指定PE的大小,需要加上-s参数来实现,PE大小范围为8
KB 到 16GB,并且必须总是2的倍数。一个卷组里面最多允许65534个PE存在。默认设置的PE大小为4
MB,这表示卷组上创建的所有逻辑卷都以 4
MB 为增量单位来进行扩充或缩减,所以4
MB 的PE决定了单个逻辑卷最大容量为
256
GB,若要创建更大的逻辑卷则创建卷组时需要指定更大的PE。
3、创建逻辑卷
创建完卷组后,现在就可通过“lvcreate”命令来创建逻辑卷了,同时在创建逻辑卷的时候,还可以指定逻辑块与物理块映射的模式,逻辑卷的映射模式共有如下两种:

  • 线性模式――按照顺序把一定范围内的物理块与逻辑块映射,这也是默认的映射方式。例如,把逻辑卷中1-25的LE映射到PV1,把26-50的LE映射到PV2上。
  • 条带模式――将把逻辑块以条带的形式映射到不同的物理卷中,这种方式与前面讲到的RAID
            0有些类似,这种方式可以提高逻辑卷读写的性能。例如,将逻辑卷的LE
            1映射为PV1的PE1,LE
            2映射为PV2的PE1,LE
            3映射为PV3的PE1。

那么创建逻辑卷的操作如下:
                        #
                        lvcreate -i 3 -I 4 -L 180M -n lvtest1 vgtest
  Logical volume
                        "lvtest1" created
上面的提示信息表明成功创建了一个名为“lvtest1”的逻辑卷,其命令中的几个参数的说明如下:

  • -i:采用条带模式的映射方式创建逻辑卷,该参数的值用于指定所创建的逻辑卷将映射在几个PV上。
  • -I:指定使用条带模式时所采用块的大小,单位为KB,其值必须是:2N(N≥2)。
  • -L:指定创建逻辑卷的大小,单位的可以用K、M、G、T表示KB、MB、GB及TB。
  • -n:用来指定所创建的逻辑卷名称,该名称可以根据需要随便定义。

在使用“-i”参数指定PV的个数时,一定要确认所指定的这些PV是没有完全被分配给任何逻辑卷的,否则将创建失败,其次若这些PV的大小不等,那么所创建的逻辑卷只能取最小值。
下面再使用剩余的空间来创建第二个逻辑卷,通过“vgdisplay”命令可查看当前卷组剩余的空间,如下:
                        #
                        vgdisplay
                          ---
                        Volume group ---
                          VG
                        Name               vgtest
                          System
                        ID            
                          Format
                                       lvm2
                          Metadata
                        Areas        3
                          Metadata
                        Sequence No  11
                          VG
                        Access             read/write
                          VG
                        Status             resizable
                          MAX
                        LV                0
                          Cur
                        LV                1
                          Open
                        LV               0
                          Max
                        PV                0
                          Cur
                        PV                3
                          Act
                        PV                3
                          VG
                        Size               300.00 MB
                          PE
                        Size               4.00 MB
                          Total
                        PE              75
                          Alloc
                        PE / Size       45 / 180.00 MB
                          Free
                         PE / Size       30 / 120.00 MB
  VG UUID            
                         1Nbgxo-U4Ux-Y5Hb-TDzT-d5Fp-Iov7-wKFHG5
从如上的信息可了解到“vgtest”卷组还剩余30个空闲的PE,那么将这些空闲的空间全部划分给另一个逻辑卷,操作如下:
                        #
                        lvcreate -l 30 -n lvtest2 vgtest
  Logical volume
                        "lvtest2" created
其中“-l”用于指定逻辑卷的LE数量,默认为4MB,所以此次创建的逻辑卷的大小是120M,该参数与“-L”效果一样。
4、创建文件系统
在逻辑卷上创建文件系统和在分区上创建文件系统方法是一样,例如,在逻辑卷上创建ext3格式的文件系统,命令如下:
                        #
                        mkfs.ext3 /dev/vgtest/lvtest1
# mkfs.ext3
                        /dev/vgtest/lvtest2
以上就是在Linux下创建逻辑卷的整个步骤。
LVM的维护
在LVM的日常维护工作中,通常会需要对逻辑卷扩容、添加新的物理卷等操作,下面将结合【实例1】中所创建的逻辑卷来介绍LVM常用的管理操作,如下:
1、激活卷组
卷组若不被激活,卷组和逻辑卷是不能被访问的,在LVM
2里创建的卷组默认是激活的,那么手动激活卷组的命令是:
                        #
                        vgchange -a y vgtest
  2 logical volume(s)
                        in volume group "vgtest" now active
其中“-a”用于设置指定的卷组是否可用,参数“y”表示激活卷组,若设置为“n”则表示暂停卷组使用。
2、为卷组增加新的物理卷
当卷组空间不足时,可以加入新的物理卷来扩大卷组容量,这时可用“vgextend”命令来实现,如下:
                        #
                        vgextend vgtest /dev/sde
  Volume
                        group "vgtest" successfully extended
其中“/dev/sde”是新增的物理卷,前提该设备已经使用“pvcreate”进行了初始化了。
3、从卷组中移除物理卷
要从一个卷组中移除一个物理卷,首先要确认要移除的物理卷没有被任何逻辑卷正在使用,通过“pvdisplay”命令可查看到该物理卷信息,如下:
                        #
                        pvdisplay /dev/sde
                          ---
                        Physical volume ---
                          PV
                        Name               /dev/sde
                          VG
                        Name               vgtest
                          PV
                        Size               100.00 MB / not usable 0   
                          Allocatable
                                  yes
                          PE
                        Size (KByte)       4096
                          Total
                        PE              25
                          Free
                        PE               25
                          Allocated
                        PE          0
  PV
                        UUID               ee2IFC-UHUq-Xg67-icwt-AhdJ-7kRz-JdDjiq
若其中的“Total
PE”与“ Free
PE”相等,表明该物理卷没有被使用,如果某个物理卷正在被逻辑卷所使用,就需要将该物理卷的数据转移到其它地方,然后再移除。移除物理卷的命令为“vgreduce”,如下:
                        #
                        vgreduce vgtest /dev/sde
  Removed
                        "/dev/sde" from volume group "vgtest"
4、在物理卷间转移数据
当发现逻辑卷下的某个磁盘有错误,或有其它需求要转移其中物理卷的数据时(如,更换大容量或更高速的物理设备),那么可通过“pvmove”来实现在物理卷之间转移数据,例如,将物理卷“/dev/sdd”上的数据转移到“/dev/sde”具体操作如下:
                        #
                        pvmove /dev/sdd /dev/sde
  /dev/sdd: Moved:
                        100.0%
其中/dev/sde的大小一定要大于或等于/dev/sdd,其次在使用“pvmove
”前需要用 “modprobe
dm-mirror”命令来加载dm-mirror模块,因为“pvmove”在转移数据时需要用到该模块,而默认系统是不加载该模块的。
5、扩展逻辑卷
在前面提到过,LVM提供了方便调整逻辑卷大小的功能,扩展逻辑卷大小的命令是“lvextent”,例如,将“lvtest2”的空间大小调整到160M,操作如下:
                        #
                        lvextend -L 160M /dev/vgtest/lvtest2
                          Extending
                        logical volume lvtest2 to 160.00 MB
  Logical volume
                        lvtest2 successfully resized
也可以在原来的基础增加相应的大小,如下:
                        #
                        lvextend -L +40M /dev/vgtest/lvtest2
                          Extending
                        logical volume lvtest2 to 160.00 MB
  Logical volume
                        lvtest2 successfully resized
逻辑卷扩展后并不会马上生效,需要使用“resize2fs”命令重新加载逻辑卷的大小,该命令只针对ext2/ext3的文件系统(若是reiserfs的文件系统,则使用“resize_reiserfs”命令),如果该逻辑卷正在使用中,就应该先将该逻辑卷卸载后再执行“resize2fs”命令,操作如下:
                        #
                        umount /dev/vgtest/lvtest2
                        #
                        resize2fs /dev/vgtest/lvtest2
                        resize2fs
                        1.35 (28-Feb-2004)
                        The
                        filesystem is already 163840 blocks long.  Nothing to do!
# mount
                        /dev/vgtest/lvtest2 /mnt/lvtest2/
以上这些操作可以通过“ext2online”命令直接来实现,这样就不用做卸载逻辑卷等操作了,如下:
                        #
                        ext2online /dev/vgtest/lvtest2
ext2online v1.1.18 -
                        2001/03/18 for EXT2FS 0.5b
6、删除逻辑卷
   删除逻辑卷前首先需要将其卸载,其命令是“lvremove”,如下:
                        #
                        lvremove /dev/vgtest/lvtest2
                        Do
                        you really want to remove active logical volume "lvtest2"?
                        [y/n]: y
  Logical volume
                        "lvtest2" successfully removed
   其中输入“y”确认确认删除该逻辑卷。
7、移除卷组
在移除卷组前首先要确认该卷组中已没有任何的逻辑卷了,或者可使用“vgchange”手工将卷组停止,移除卷组的具体操作如下:
                        #
                        vgremove vgtest
  Volume group
                        "vgtest" successfully removed
8、删除物理卷
在删除物理卷前,必须确认该物理卷已从卷组中移除了,删除物理卷的命令是“pvremove”,如下:
                        #
                        pvremove /dev/sde
  Labels on physical
                        volume "/dev/sde" successfully wiped
除此之外,LVM还可以提供snapshot(快照)等功能,其snapshot能够快速的备份当前逻辑卷中的数据,从而大大减轻备份数据的负担,只是目前来说技术并不是很成熟。

转载于:https://blog.51cto.com/allenyu/159696

linux LVM的创建和管理相关推荐

  1. linux逻辑卷创建与管理,CentOS创建LVM linux逻辑卷创建及管理

    在管理linux服务器的时候,我们经常要使用到lvm来管理磁盘,使用lvm可以很方便的对分区进行扩容等分配. LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux ...

  2. Linux LVM(逻辑卷管理)

    Lvm基本应用 什么是LVM? LVM 的全称是 Logical Volume Manager,中文为逻辑卷管理,它是Linux对磁盘分区的一种管理机制,它在传统的硬盘(或硬盘分区)和文件系统之间建立 ...

  3. 【Linux】Linux进程的创建与管理

    在Linux系统中,除了系统启动之后的第一个进程由系统来创建,其余的进程都必须由已存在的进程来创建,新创建的进程叫做子进程,而创建子进程的进程叫做父进程.那个在系统启动及完成初始化之后,Linux自动 ...

  4. linux系统怎么做快照,linux LVM快照创建步骤

    1.首先将硬盘sdb分4个区每个区大小200M,分别是sdb{5,6,7,8}.后将四个分区建立pv 2.之后把pv加入vg此处引入PE的概念. 由于vg是多个PE(块)组成的,而且每个vg块的PE最 ...

  5. linux lvm使用情况,Linux LVM系列(一)lvm使用

    简介 逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑&qu ...

  6. 通用线程: 学习 Linux LVM

    为什么80%的码农都做不了架构师?>>>    通用线程: 学习 Linux LVM "逻辑卷管理"为存储器管理带来的魔力 Daniel Robbins ( dr ...

  7. linux查看lvm命令,linux lvm常用命令总结

    linux LVM 1 创建 .删除思路创建:Linux分区---物理卷---卷组---逻辑卷删除:逻辑卷---卷组----物理卷---Linux分区 2 linux分区 linux中我们通常使用fd ...

  8. linux lvm 查看,Linux LVM 详解

    逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑" ...

  9. Linux LVM简明教程

    逻辑卷管理LVM是一个多才多艺的硬盘系统工具.无论在Linux或者其他类似的系统,都是非常的好用.传统分区使用固定大小分区,重新调整大小十分麻烦.但是,LVM可以创建和管理"逻辑" ...

最新文章

  1. Theano3.4-练习之多层感知机
  2. c#打包工具支持bat_程序打包工具
  3. linux 先编译 再安装,Linux下编译安装FFmpeg
  4. php pack方法,php pack()函数详解与示例
  5. c语言函数官网,c语言函数
  6. 苹果谈iPhone遭CIA攻击:强烈要求用户升级系统
  7. bootstrap-引用-命名来源
  8. Python: str、datetime、time、seconds
  9. 单片机:DS1302时钟
  10. java md5加密源码_javaMD5加密源码
  11. EHS法律法规的收集渠道
  12. 公司企业邮箱IP被列入国际黑名单组织怎么解决
  13. 山西台达plc可编程控制器_可编程控制器(PLC)故障的常见原因及处理方法
  14. 计算机操作系统软件序列号,怎么找我电脑操作系统的序列号?
  15. c语言查表法编程流水灯,通过查表法的流水灯汇编程序
  16. 微软 bing 壁纸 每日一图 bing api
  17. 正则表达式匹配,2位数字,单个字符-华图在线试题修改
  18. Word文字报告自动与Excel数据同步更新
  19. 共享内存 shmget函数
  20. SQL面试题:经典排名问题(相同分数是否要并列,排名是否有间隔)

热门文章

  1. Laravel 传递数据到视图
  2. 图像滤镜艺术---(Lightleaks Filter)漏光滤镜
  3. 联手Slack,IBM欲开发多元化智能聊天机器人
  4. Android中获取系统内存信息以及进程信息-----ActivityManager的使用(一)
  5. 老王学linux-centos6.7drbd8.4.3
  6. Unit Test测试框架中的测试的执行顺序
  7. 【树莓派 Raspberry-Pi 】系统安装及一些必要的配置
  8. 微软推安全浏览器Gazelle,取代操作系统?
  9. PXE部署映像(WinPE 2.0)
  10. 【转载】Real6410 Linux 常见问题总结(截至2010/07/26)