热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

Centos7LVM(逻辑卷管理器)

LVM是什么?LVM即逻辑卷管理器,是Linux系统用户对硬盘分区管理的一种机制,理论性较强,其创建的初衷是为了解决硬盘设备在创建完分区后不易修改分区大小的权限,LVM技术是在硬盘

LVM是什么?

LVM即逻辑卷管理器,是Linux系统用户对硬盘分区管理的一种机制,理论性较强,其创建的初衷是为了解决硬盘设备在创建完分区后不易修改分区大小的权限,LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,他提供了一个抽象的卷组,可以把多个硬盘进行罐组合并。这样一来,用户就不用担心物理硬盘设备的底层架构布局,可以轻松实现对硬盘分区的动态调整。简而言之,生产中我们某个分区不够用的情况下,出来清理历史数据外,就是调整当前数据的存储位置,否则分区一旦满了,就没法工作了,而LVM技术就可以解决不用迁移原来的数据(原来的分区必须是LVM格式的),就可以随意添加硬盘,然后向LVM分区动态添加空间,当然,也可以缩减空间。重点是原来的数据不会受到任何影响。


了解几个概念

  物理卷:PV【Physical Volume】

  卷组:VG【Volume Group】

  逻辑卷:LV【Logical Volume】

  基本单元:PE【Physical Extent】

  物理卷处于LVM中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID磁盘阵列。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,而且物理卷在建立后可以动态的扩建或者缩小红箭。这就是LVM的核心理念。


部署逻辑卷

  首先我们看看物理卷、卷组和逻辑卷的常用命令。















































功能/命令 物理卷管理卷组管理逻辑卷管理
扫描pvscanvgscanlvscan
建立pvcreatevgcreatelvcreate
显示pvdisplayvgdisplaylvdisplay
删除pvremovevgremovelvremove
扩展 vgextendlvextend
缩小 vgreducelvreduce

 

 

 

 

 

 

 

 

 


操作步骤

  首先我们准备两块5GB的硬盘,在虚拟机里添加即可,分别是/dev/sdb和/dev/sdc两块硬盘。

  1、让新建家的两块硬盘设备支持LVM技术。(注意,当前操作系统是Centos7.7 最小化安装的没有lvm相关命令,需要yum install -y lvm2进行安装)

  #pvcreate /dev/sdb /dev/sdc

  

   2、把两块硬盘设备加入到storage卷组中,然后查看卷组的状态。

  #vgcreate storage /dev/sdb  /dev/sdc

  

  #vgdisplay

  

   3、切割出一个6GB的逻辑卷设备。

    这里需要注意切割单位的问题。在对逻辑卷进行切割时候有两种计量单位。第一种是以容量为单位,所使用的参数是-L。例如,在使用-L 6G生成一个大小等于6G的逻辑卷。另外一种是以基本单位的个数为单位,所使用的参数为-l。每个单元的到校默认为4MB。例如使用-l 1000可以生成一个大小为4MBx1000=4000MB的逻辑卷。后者显然有点繁琐,我们就用-L计量单位为各位演示下面的操作。

  # lvcreate -n vo -L 6G storage

  

   查看逻辑卷

  # lvdisplay

  

   4、把生成好的逻辑卷进行格式化,然后挂载使用,这里我们用ext4格式为各位演示。Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上是做了一个符号链接),同时会以卷组的名称来建立一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称、逻辑卷名称)

  # mkfs.ext4 /dev/storage/vo

  

  创建挂载目录,并挂载逻辑卷

  # mkdir /lvmtest

  # mount /dev/storage/vo /lvmtest/

  5、查看挂载状态,并写入挂载配置文件,使其永久生效。

  # vim /etc/fstab  (追加至最后一条)

  /dev/storage/vo /lvmtest ext4 defaults 0 0

   

  验证

  


扩容逻辑卷

  前面我们挂载了两块5GB的硬盘,我们初始给LVM的使用空间是6GB,我们最大可以扩容到10GB,下面进行扩容。

  1、首先需要卸载之前的lvm挂载盘。

  # umount /lvmtest/

  2、把前面LVM的6GB扩容至9GB。

  # lvextend -L 9G /dev/storage/vo 

  

   3、检查硬盘完整性,并重置硬盘容量。

  # e2fsck  -f /dev/storage/vo

  

  重置硬盘容量,这一步很重要,如果不重置LVM容量将还是6GB。下面是ext4的重置方法,xfs格式需要用命令:# xfs_growfs /dev/storage/vo

  # resize2fs /dev/storage/vo

   

   最后,我们挂载一下,然后验证LVM容量。

  


缩小逻辑卷

  相较于扩容逻辑卷,在对逻辑卷进行缩减容量操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据。另外Linux系统规定,在对LVM逻辑卷进行缩容操作之前,要先检查文件系统的完整性(也是为了保证数据安全)。在执行缩容操作前记得先把文件系统卸载掉。

  1、卸载。

  # umount /lvmtest/

  2、检查文件系统的完整性。

  # e2fsck -f /dev/storage/vo

  

   3、把逻辑卷vo的容量缩减到5GB。

  # resize2fs  /dev/storage/vo   5G

  

   4、重新挂载文件系统并查看系统状态。

  # mount -a

  #df -h

  


删除逻辑卷

  生产环境中想要重新部署LVM或者不再继续使用LVM时,则需要执行LVM的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠覆。

  1、取消逻辑卷与目录的挂载关联,删除配置文件中的永久生效(/etc/fstab下的挂载记录)的设备参数。

  #umount /lvmtest

  #vim /etc/fstab,进来删除或者注释LVM挂载记录。

  2、删除逻辑卷设备,需要输入y来确认操作。

  # lvremove /dev/storage/vo

  

   3、删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。

  # vgremove storage

  

   4、删除物理卷设备。

  # pvremove  /dev/sdb /dev/sdc

  

   5、最后一步,在上述操作完成没有报错之后,再执行lvdisplay、vgdisplay、pvdisplay命令来查看LVM的信息时就不会再看到信息了。

  


 问题一:

  如果我们之前已经完成了/dev/sdb和/dev/sdc两块硬盘的操作,比如我们两块硬盘的总容量是10GB,我们已经用了9GB,我们又想新加一块硬盘怎么操作呢?如下:

  现状:

  

 

   

  开始:

  这里我们用的是虚拟机,添加硬盘我们就不再赘述,我们直接开始。

  1、查看硬盘信息。

  

  2、让新加的sdd硬盘设备支持LVM技术。

  # pvcreate /dev/sdd

  

  3、 把sdd这块硬盘设备加入到storage卷组中,然后查看卷组状态。

  # vgextend storage /dev/sdd

  # vgdisplay

  如下图所示,已经添加成功。

  

   4、扩容、扩容、扩容,给它扩容到14GB,记住每次扩容缩容都必须先卸载文件系统。

  # umount /lvmtest/

  # lvextend -L 14G /dev/storage/vo

  

   检查硬盘完整性,并重置硬盘容量。

  # e2fsck -f /dev/storage/vo 

  # resize2fs /dev/storage/vo

  

   5、最后挂载文件系统,并验证效果。

  


逻辑卷快照

  LVM具备“快照卷”功能,功能类似于VMware workstation的快照功能,可以对某个逻辑卷设备做一次快照,如果日后发现数据改错了,可以利用做好的亏按照进行覆盖还原,不过它有两个特点。

  1、亏按照卷的容量必须等同于逻辑卷的容量。

  2、快照卷仅此一次有效,一旦执行还原操作后则会被立即自动删除。

  3、那么问题来了,比如我卷组总共空间2TB,当前数据已经有1.5TB,我得做一个一样大的卷组,显然当前的这个卷组是不可能再有1.5TB的空间了,除非扩容,很浪费空间。据说快照和逻辑卷必须是在同一卷组上。

  4、这个东西凭我个人的经验,生产过程中基本用不到,阿里云有快照那个更安全快捷。本地有本地备份和异地备份文件,有兴趣可以自己了解一下。



推荐阅读
  • CentOS 7 磁盘与文件系统管理指南
    本文详细介绍了磁盘的基本结构、接口类型、分区管理以及文件系统格式化等内容,并提供了实际操作步骤,帮助读者更好地理解和掌握 CentOS 7 中的磁盘与文件系统管理。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文详细介绍了VMware的多种认证选项,帮助你根据职业需求和个人技能选择最合适的认证路径,涵盖从基础到高级的不同层次认证。 ... [详细]
  • 本文介绍如何通过更改软件源来提前体验Ubuntu 8.10,包括详细的配置步骤和相关注意事项。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文详细介绍了Linux系统中init进程的作用及其启动过程,解释了运行级别的概念,并提供了调整服务启动顺序的具体步骤和实例。通过了解这些内容,用户可以更好地管理系统的启动流程和服务配置。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 在Ubuntu 8.04中安装美观的Cairo-Dock桌面增强工具
    本文介绍如何在Ubuntu 8.04系统中安装和配置Cairo-Dock,这款桌面增强工具以其精美的界面和高效的功能备受用户青睐。文章将指导您通过简单的步骤完成安装,并提供一些实用的配置建议。 ... [详细]
author-avatar
bj_gqdy_342
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有