逻辑卷(LVM)管理实例详解

LVM基本术语

下面是LVM需要了解的基本术语:

 

 物理卷(PV physical volume: 它可以是物理硬盘上的分区,也可以是整块物理硬盘;

 卷组(VG volume group: 建立在物理卷之上,一个卷组至少包括一个物理卷,可以动态增删物理卷;

 逻辑卷(LV logical volume:建立在卷组之上,卷组中未分配的空间可以用来建立逻辑卷,并且可以动态调整大小直到用完卷组空间,系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同卷组(卷组是物理卷容器,它又被不同逻辑卷动态占用着,就好像一块物理硬盘被分割成不同的区域一样);

 物理区域(PE physical extend: PEPV中可以用于分配的最小储存单元,一旦确定大小不能更改,同一VG中的所有PVPE大小要一致;

 逻辑区域(LE logical extend: LELV中可以用来分配的最小存储单元,LE的大小取决于LV所在卷中的PE大小;

卷组描述区域(VGDA volume group descriptor area):VGDA在建立物理卷时建立,用于描述PV本身,所属VGVG中的LV,以及LV中的PE大小等等;

 

试验环境介绍:

操作系统:CentOS7

硬盘:/dev/sda(系统所在硬盘)、/dev/sdb20G)、/dev/sdc20G

使用/dev/sdb/dev/sdc这两块硬盘完成下面的实验;

如何创建LVM

创建LVM步骤:创建物理卷(PV->将物理卷加入卷组(VG->使用卷组创建逻辑卷(LV->格式化逻辑卷->挂载使用

如何创建PV

#LVM的创建必须使用root权限,如果没有给硬盘分区,可以直接使用硬盘号将其创建为PV,将sdbsdc这两块硬盘创建成PV

[root@localhost ~]# pvcreate /dev/sd{b,c}
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created

#查看刚创建好的PV

[root@localhost ~]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sda2  vg0  lvm2 a--u 59.99g  7.99g
  /dev/sdb        lvm2 ---- 20.00g 20.00g
  /dev/sdc        lvm2 ---- 20.00g 20.00g

PV创建好了就可以创建VG了。

如何创建VG

#sdbsdc这两块已经创建成PV的硬盘划分到vg0这个卷组池中,vg0是自定义的名称,代表一个卷组池(同样,如果硬盘已经分区,请携带分区号)

[root@localhost ~]# vgcreate vg1 /dev/sd{b,c}
  Volume group "vg1" successfully created

#查看VG池

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg0    1   4   0 wz--n- 59.99g  7.99g
  vg1    2   0   0 wz--n- 39.99g 39.99g

创建好卷组池就能从池中划分容量给逻辑卷(LV)了。

如何创建LV

#从卷组vg0中拿出10G,分配给lv0,其中-n后面是lv自定义名称,-L后面跟需要从vg0中分配给lv0的大小以及从哪个VG分配

[root@localhost ~]# lvcreate -n lv0 -L 10G vg1
  Logical volume "lv0" created.
[root@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0  -wi-ao---- 20.00g                                                    
  swap vg0  -wi-ao----  2.00g                                                    
  usr  vg0  -wi-ao---- 10.00g                                                    
  var  vg0  -wi-ao---- 20.00g                                                    
  lv0  vg1  -wi-a----- 10.00g

创建好lv后就可以格式化它。

文件系统格式化

#创建好的lv所在目录是"/dev/卷组名称/逻辑卷名称",所以本例就是/dev/vg0/lv0,将它格式化成ext4文件系统

[root@localhost ~]# mkfs.ext4 /dev/vg1/lv0

格式化完成后就能挂载使用它了

挂载和使用

#将lv0挂载到/web目录下(不一定非要挂载到/web才能使用,请根据实际情况挂载到其他目录)

[root@localhost ~]# mkdir /web
[root@localhost ~]# mount /dev/vg1/lv0 /web/
如何扩充和缩小LVM

只要卷组(VG)中有空余空间,就能将其增加到对应逻辑卷(LV)中;或将对应逻辑卷(LV)中的某些分区删除,让其成为卷组(VG)中的空余空间。

如何扩充LV

#首先确保VG池中有足够的VFree空间可供使用(VSize是这个VG的总大小,VFree是还剩下多少空间可以划分,PV是这个VG包含多少个物理卷,LV是这个VG以及划分了多少个逻辑卷)

[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg0    1   4   0 wz--n- 59.99g  7.99g
  vg1    2   1   0 wz--n- 39.99g 29.99g

#给lv0增加5G的大小

[root@localhost ~]# lvextend -L +15G /dev/vg1/lv0
  Size of logical volume vg1/lv0 changed from 10.00 GiB (2560 extents) to 15.00 GiB (3840 extents).
  Logical volume lv0 successfully resized.

#更新lv0大小(必须)

[root@localhost ~]# resize2fs /dev/vg1/lv0

#查看,lv0被扩充到了15G

[root@localhost ~]# df -h /dev/vg1/lv0 
Filesystem           Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv0   25G   28M   24G   1% /mnt
如何扩充VG

如果此时我们的VG池容量不够,可以给计算机添加一块物理硬盘,先将它创建成PV,之后将它放入VG池即可,请看下面的实例:

#新增加一块硬盘sdd(20G),将它创建成PV后划分到vg0下,此时vg0的容量将增加sdd硬盘的大小

[root@localhost ~]# pvcreate /dev/sdd
  Physical volume "/dev/sdd" successfully created
[root@localhost ~]# vgextend vg1 /dev/sdd
  Volume group "vg1" successfully extended
[root@localhost ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  vg0    1   4   0 wz--n- 59.99g  7.99g
  vg1    3   1   0 wz--n- 59.99g 34.99g
如何缩小LV

注意:缩小LV大小有一定风险,可能造成数据丢失,如果不是必要,最好不要缩小它:

#缩小逻辑卷之前,如果此逻辑卷已经挂载,必须先卸载,以lv1为例

[root@localhost ~]# umount /web

#首先对lv0进行检查

[root@localhost ~]# e2fsck -f /dev/vg1/lv0

#然后缩小文件系统,本例将lv0从15G缩小到10G大小

[root@localhost ~]# resize2fs /dev/vg1/lv0 10G

#最后将lv0缩小5G,缩小有风险,请慎用

[root@localhost ~]# lvreduce -L -5G /dev/vg1/lv0

WARNING: Reducing active logical volume to 20.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg1/lv0? [y/n]: y
  Size of logical volume vg1/lv0 changed from 25.00 GiB (6400 extents) to 20.00 GiB (5120 extents).
  Logical volume lv0 successfully resized.

#重新挂载使用

[root@localhost ~]# mount /dev/vg1/lv0 /web/
如何缩小VG

缩小VG比缩小LV稍微安全一点,确保这个要被移除的分区或者硬盘没有被使用后,可以用下面的命令将它从VG池中去除:

#将sdc这块硬盘从vg0中移除

root@localhost ~]# vgreduce vg1 /dev/sdd
  Removed "/dev/sdd" from volume group "vg1"
如何创建LVM备份(快照)

注意:逻辑卷的备份是放在和逻辑卷同一个卷组中的,也需要占用卷组的大小,所以卷组的大小不够备份就不会成功:

[root@localhost ~]# lvcreate -L 10G -s -n lv0bk /dev/vg1/lv0 
  Logical volume "lv0bk" created.
[root@localhost vg1]# ls
lv0  lv0bk

#快照保存了创建时,对应逻辑卷所有数据,路径"/dev/vg0/lv0back",如果lv0的数据被破坏,只需要将快照文件挂载到某个目录,然后将其中的数据完整拷贝到lv0即可将lv0恢复到快照创建时的状态

[root@localhost vg1]# lvs
  LV    VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert                                                  
  lv0   vg1  owi-a-s--- 10.00g                                                    
  lv0bk vg1  swi-a-s--- 10.00g      lv0    0.00
如何删除LVM

删除LVM的步骤:如果逻辑卷已挂载,需要先卸载->删除逻辑卷(LV)->删除卷组(VG)->删除物理卷(PV)。

如何删除LV

#卸载lv1

[root@localhost vg1]# umount /dev/vg1/lv0

#删除lv0,如果lv0存在快照,会询问是否删除快照

[root@localhost vg1]# lvremove /dev/vg1/lv0
Do you really want to remove active logical volume lv0bk? [y/n]: y
  Logical volume "lv0bk" successfully removed
Do you really want to remove active logical volume lv0? [y/n]: y
  Logical volume "lv0" successfully removed

如何删除VG

[root@localhost vg1]# vgremove vg1
  Volume group "vg1" successfully removed

如何删除PV

[root@localhost vg1]# pvremove /dev/sd{b,c}
  Labels on physical volume "/dev/sdb" successfully wiped
  Labels on physical volume "/dev/sdc" successfully wiped

 

原创文章,作者:M20_he,如若转载,请注明出处:http://www.178linux.com/42259

(0)
M20_heM20_he
上一篇 2016-09-01 08:50
下一篇 2016-09-01 08:50

相关推荐

  • rsync+inotify实现文件同步

    一、前言 什么是rsync,remote synchronize远程同步简写。Linux系统上由rsync这个软件包提供。rsync有几个特点,镜像保存整个文件目录树或文件系统;有较高的数据传输效率;可以借助ssh实现安全数据传输;支持匿名传输等。rsync同步只是针对变化的文件进行传输,意味着其会在源和目标之间比较文件的异同。相对与scp来说,第一次传输两…

    Linux干货 2015-10-31
  • 第七周-磁盘管理、RAID及Shell脚本练习

    一、创建一个10G分区,并格式为ext4文件系统; (1)、 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl; (2)、挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@N1 ~]# mkfs.ext4 -b 2048 -m 2 -L MYDATA /…

    Linux干货 2017-08-13
  • 磁盘管理之磁盘分区,主引导分区表修复

    磁盘管理: I/O Ports: I/O设备地址 一切皆文件: open(), read(), write(), close() 设备类型: 块设备:block,存取单位“块”,磁盘 字符设备:char,存取单位“字符”,键盘 设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信 设备号码: 主设备号:major number, 标识设备类型…

    Linux干货 2016-08-25
  • LVS的工作原理

    LB Load Balancing:解决方案 硬件: F5 BIG-IP 思杰 Citrix Netscaler A10 A10 Array  Redware 软件:lvs  linux Virtual Server 作者章文嵩博士 ipvs相当于netfilter,工作在内核中,将用户转发    框架,需要依赖以规则…

    Linux干货 2016-12-07
  • 磁盘分区及lvm管理

    1. 硬盘类型 /dev/sda VS /dev/hda /dev/sda     /dev/sda1     /dev/sda2     /dev/sda3 而又的安装时硬盘驱动设备名为 /dev/hda    /dev/hda1 &nb…

    Linux干货 2016-09-19
  • N26_第一周作业

    一、描述计算机的组成及其功能。 计算机系统:是由硬件(Hardware)系统和软件(Software)系统两大部分构成。 1、硬件系统: 1)控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。2)运算器(Datapath):运算器的功能是…

    2017-02-20

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-01 15:26

    文章操作性强,同时建议对逻辑卷的工作原理进行简介,同时也能通过作图来展示自己对lvm的理解。