[Linux实用命令]-10-逻辑卷(LVM)管理实例详解

作者 : 开心源码 本文共5101个字,预计阅读时间需要13分钟 发布时间: 2022-05-14 共179人阅读

引言

这篇文章使用CentOS7实例演示LVM的创立更改和删除,LVM(Logical Volume Manager)是Linux环境下对硬盘分区进行管理的一种机制,可以实现多块硬盘空间的动态划分和调整,跨硬盘储存文件等功能。常用于装备大量硬盘并随时需要添加或者删除硬盘的环境,也同样适于仅有一、两块硬盘的环境。

文章目录

  • 0×1.LVM基本术语与试验环境详情
  • 0×2.如何创立LVM
  •     a.如何创立PV
  •     b.如何创立VG
  •     c.如何创立LV
  •     d.文件系统格式化
  •     e.挂载和使用
  • 0×3.如何扩充和缩小LVM
  •    a.如何扩充LV
  •    b.如何扩充VG
  •    c.如何缩小LV
  •    d.如何缩小VG
  • 0×4.如何创立LVM备份(快照)
  • 0×5.如何删除LVM
  •    a.如何删除LV
  •    b.如何删除VG
  •    c.如何删除PV

0×1.LVM基本术语与试验环境详情

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

物理卷(PV physical volume): 它可以是物理硬盘上的分区,也可以是整块物理硬盘;
卷组(VG volume group): 建立在物理卷之上,一个卷组至少包括一个物理卷,可以动态增删物理卷;
逻辑卷(LV logical volume):建立在卷组之上,卷组中未分配的空间可以用来建立逻辑卷,并且可以动态调整大小直到用完卷组空间,系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同卷组(卷组是物理卷容器,它又被不同逻辑卷动态占用着,就如同一块物理硬盘被分割成不同的区域一样);
物理区域(PE physical extend): PE是PV中可以用于分配的最小储存单元,一旦确定大小不能更改,同一VG中的所有PV的PE大小要一致;
逻辑区域(LE logical extend): LE是LV中可以用来分配的最小存储单元,LE的大小取决于LV所在卷中的PE大小;
卷组形容区域(VGDA volume group descriptor area):VGDA在建立物理卷时建立,用于形容PV本身,所属VG,VG中的LV,以及LV中的PE大小等等;

实验环境详情:

操作系统:CentOS7;
硬盘:/dev/sda(系统所在硬盘)、/dev/sdb(20G)、/dev/sdc(20G) ;
使用/dev/sdb、/dev/sdc这两块硬盘完成下面的试验;

0×2.如何创立LVM

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

a.如何创立PV

#LVM的创立必需使用root权限,假如没有给硬盘分区,可以直接使用硬盘号将其创立为PV,将sdb和sdc这两块硬盘创立成PVqing@qingsword.com:~$ sudo pvcreate /dev/sd[b-c]#假如硬盘已经被分区,请携带分区号,例如,sdb和sdc都划分了一个分区,假如使用分区的形式增加,最好在fdisk创立分区时,使用t将分区类型改成8e(LVM)qing@qingsword.com:~$ sudo pvcreate /dev/sdb1 /dev/sdc1#查看刚创立好的PVqing@qingsword.com:~$ sudo pvsPV       VG   Fmt  Attr PSize  PFree/dev/sdb lvm2 ---  20.00g 20.00g/dev/sdc lvm2 ---  20.00g 20.00g

PV创立好了即可以创立VG了。

Ps:若使用fdisk分区后提醒找不到分区,可以执行partprobe命令刷新分区表。

b.如何创立VG

#将sdb和sdc这两块已经创立成PV的硬盘划分到vg0这个卷组池中,vg0是自己设置的名称,代表一个卷组池(同样,假如硬盘已经分区,请携带分区号)qing@qingsword.com:~$ sudo vgcreate vg0 /dev/sd[b-c] Volume group "vg0" successfully created#查看VG池qing@qingsword.com:~$ sudo vgsVG #PV #LV #SN Attr   VSize  VFreevg0 2  0   0  wz--n- 39.99g 39.99g#查看PV列表,b和c的VG列都属于vg0这个卷组池了qing@qingsword.com:~$ sudo pvsPV       VG   Fmt  Attr PSize  PFree/dev/sdb vg0 ---  20.00g 20.00g/dev/sdc vg0 ---  20.00g 20.00g

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

c.如何创立LV

#从卷组vg0中拿出10G,分配给lv0,其中-n后面是lv自己设置名称,-L后面跟需要从vg0中分配给lv0的大小以及从哪个VG分配qing@qingsword.com:~$ sudo lvcreate -n lv0 -L 10G vg0#查看lv,可以看到lv0大小10G,并且属于vg0这个卷组池(这就像是从vg0这块硬盘上划分了一个10G的分区,分区号lv0)qing@qingsword.com:~$ sudo lvsLV  VG  Attr     LSize lv0 vg0 -wi-a--- 10.00g                                          

创立好lv后即可以格式化它。

d.文件系统格式化

#创立好的lv所在目录是"/dev/卷组名称/逻辑卷名称",所以本例就是/dev/vg0/lv0,将它格式化成ext4文件系统qing@qingsword.com:~$ sudo mkfs.ext4 /dev/vg0/lv0

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

e.挂载和使用

#将lv0挂载到/mnt目录下(不肯定非要挂载到/mnt才能使用,请根据实际情况挂载到其余目录)qing@qingsword.com:~$ sudo mount /dev/vg0/lv0 /mnt

0×3.如何扩充和缩小LVM

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

a.如何扩充LV

#首先确保VG池中有足够的VFree空间可供使用(VSize是这个VG的总大小,VFree是还剩下多少空间可以划分,PV是这个VG包含多少个物理卷,LV是这个VG以及划分了多少个逻辑卷)qing@qingsword.com:~$ sudo vgsVG #PV #LV #SN Attr   VSize  VFreevg0 2   1   0  wz--n- 39.99g 29.99g#给lv0添加5G的大小#lvextend还有一个-l参数,这个参数允许我们输入一个PE值来扩充LV大小,这个PE值可以通过vgdisplay命令来查看到,在vgdisplay命令输出中"Free PE"后面的大小就是这个vg剩余的PE大小,假如想一次性将剩余的空间一律划分给当前vg,可以使用命令"lvextend -l +8900 /dev/vg0/lv0",其中8900就是在vgdisplay命令输出中"Free PE"后面看到的值qing@qingsword.com:~$ sudo lvextend -L +5G /dev/vg0/lv0#升级lv0大小(必需)qing@qingsword.com:~$ sudo resize2fs /dev/vg0/lv0#假如是xfs文件系统,上一条命令会报错,必需使用xfs_growfs来刷新磁盘大小,如下qing@qingsword.com:~$ sudo xfs_growfs /dev/vg0/lv0#查看,lv0被扩充到了15Gqing@qingsword.com:~$ df -h文件系统             容量  已用  可用 已用% 挂载点/dev/mapper/vg0-lv0 15G  25M   14G  1% /mnt

b.如何扩充VG

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

#新添加加一块硬盘sdd(20G),将它创立成PV后划分到vg0下,此时vg0的容量将添加sdd硬盘的大小qing@qingsword.com:~$ sudo pvcreate /dev/sddqing@qingsword.com:~$ sudo vgextend vg0 /dev/sdd#vg0的总大小扩充了20Gqing@qingsword.com:~$ sudo vgsVG #PV #LV #SN Attr   VSize  VFreevg0 3  1    0  wz--n- 59.99g 44.99g

c.如何缩小LV

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

#缩小逻辑卷之前,假如此逻辑卷已经挂载,必需先卸载,以lv0为例qing@qingsword.com:~$ sudo umount /dev/vg0/lv0#首先对lv0进行检查qing@qingsword.com:~$ sudo e2fsck -f /dev/vg0/lv0#而后缩小文件系统,本例将lv0从15G缩小到10G大小qing@qingsword.com:~$ sudo resize2fs /dev/vg0/lv0 10G#最后将lv0缩小到10G(肯定要和上面resize2fs命令中的大小相同),缩小有风险,请慎用qing@qingsword.com:~$ sudo lvreduce -L 10G /dev/vg0/lv0  WARNING: Reducing active logical volume to 10.00 GiB  THIS MAY DESTROY YOUR DATA (filesystem etc.)Do you really want to reduce lv0? [y/n]: y#重新挂载使用qing@qingsword.com:~$ sudo mount /dev/vg0/lv0 /mnt

Ps:由于xfs文件系统自带了扩充和缩小的特性,所以xfs文件系统并不需要使用LVM技术,以上缩小的试验仅适用于ext文件系统。

d.如何缩小VG

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

#将sdc这块硬盘从vg0中移除qing@qingsword.com:~$ sudo vgreduce vg0 /dev/sdc

0×4.如何创立LVM备份(快照)

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

#以前面创立的lv0距离,首先lvs查看一下lv0的大小,使用相同大小创立备份qing@qingsword.com:~$ sudo lvsLV  VG   Attr       LSizelv0 vg0  -wi-a----- 10.00g#-L后面填写的大小和lv0大小一致,-s -n后面跟自己设置的备份名称,再跟需要备份的逻辑卷完整路径qing@qingsword.com:~$ sudo lvcreate -L 10G -s -n lv0bk /dev/vg0/lv0#快照保存了创立时,对应逻辑卷所有数据,路径"/dev/vg0/lv0back"qing@qingsword.com:~$ sudo lvsLV    VG   Attr       LSize  Pool Originlv0   vg0  owi-a-s--- 10.00g                                                   lv0bk vg0  swi-a-s--- 10.00g   lv0#假如逻辑卷出了问题,可以用快照恢复,快照恢复一次后,会自删除(注意:恢复前肯定要将被恢复的分区先umount卸载,否则可能出现无法恢复的错误)qing@qingsword.com:~$ sudo lvconvert --merge /dev/vg0/lv0bkqing@qingsword.com:~$ sudo lvsLV    VG   Attr       LSize  Pool Originlv0   vg0  owi-a-s--- 10.00g

0×5.如何删除LVM

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

a.如何删除LV

#卸载lv0qing@qingsword.com:~$ sudo umount /dev/vg0/lv0#删除lv0,假如lv0存在快照,会讯问能否删除快照qing@qingsword.com:~$ sudo lvremove /dev/vg0/lv0Do you really want to remove active logical volume lv0? [y/n]: y

b.如何删除VG

#删除vg0qing@qingsword.com:~$ sudo vgremove vg0

c.如何删除PV

#删除两块pv硬盘,删除前请确保这个pv没有被增加到vg中,否则应该先使用vgreduce移除vg中的pvqing@qingsword.com:~$ sudo pvremove /dev/sd[b-c]
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » [Linux实用命令]-10-逻辑卷(LVM)管理实例详解

发表回复