一、简介

  lvm即逻辑卷管理器(logical volume manager),它是linux环境下对磁盘分区进行管理的一种机制。lvm是建立在硬盘和分区之上的一个逻辑层,来提高分区管理的灵活性。它是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层的磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。在文件系统看来,逻辑卷组就是一个完整的硬盘。

二、lvm中的一些概念

  • 物理存储介质(the physical media)

  这里指的是系统的存储设备:硬盘,是存储系统最底层的存储单元。通俗的讲,就是我们能看到的能摸到的物理设备。

  • 物理卷(physical volume)

  物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备如(RAID),是lvm的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与lvm相关的管理参数。物理卷可以是整个硬盘,硬盘上的分区或从逻辑上与磁盘分区具有同样功能的设备如(RAID)。物理卷在lvm系统中是最底层的概念。通俗的理解,就是含有lvm参数的硬盘或者分区。我们一般用fdisk等划分的分区,不能直接被lvm系统所管理,因为他们没有lvm系统管理的相关参数,没有与lvm系统建立连接。所以需要需要将它们变为可以被lvm系统管理的物理卷PV,然后我们就可以直接用lvm系统来进行相关的操作了。

  • 卷组(volume group)

  lvm卷组类似于非lvm系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个lvm分区(逻辑卷),lvm卷组由一个或多个物理卷组成。

  • 逻辑卷(logical volume)

  lvm逻辑卷类似于非lvm系统中的硬盘分区,在逻辑卷之上可以建立文件系统(如/home或者/usr等)。

  • pe(physical extent)

  每一个物理卷被划分为称为PE的基本单元,具有唯一编号的PE是可以被lvm寻址的最小单元。PE的大小是可配置的,默认为4MB。PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE大小需要一致。

  • le(logical extent)

  逻辑卷也被划分为称为LE的可被寻址的基本单位。在同一个卷组中,le的大小和pe是相同的,并且一一对应。

三、一些特殊理解

  1. 可以看到,物理卷pv是由大小相等的基本单元pe组成,一个卷组由一个或多个物理卷组成。
  2. 和非lvm系统将分区信息的元数据保存在位于分区的起始位置中的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷起始处VGDA(卷组描述符区域)中。VGDA包括以下内容:PV描述符、VG描述符、LV描述符、和一些PE描述符。
  3. 系统启动lvm时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置,当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置。
  4. lvm的基本构成:整块裸硬盘或某个分区--》物理卷PV--》卷组VG--》逻辑卷LV。然后再逻辑卷上面制作文件系统,将其用mount挂载。
  5. 如果要使用整块硬盘最为物理卷的话,这块硬盘必须没有分区表信息,需要清楚硬盘分区表的信息。

四、lvm操作

  //查看物理磁盘状态

  #fdisk -l

  //使用fdisk对/dev/sdb分区

  #fdisk /dev/sdb

  //进入lvm模式

  #lvm

  //查看lvm磁盘状态

  #lvmdiskscan

  //查看lvm的配置文件

  #dumpconfig

  //创建PV

  #pvcreate /dev/sdb1

  //查看PV状态

  #pvdisplay

  //再次查看lvm磁盘状态

  #lvmdiskscan

  //创建VG

  #vgcreate vg_name /dev/sdb1

  //查看VG状态

  #vgdisplay

  //查看所有VG

  #vgs

  //创建LV

  #lvcreate --size 10G --name lv_name vg_name

  //查看lv状态

  #lvs

  //退出lvm配置模式

  #exit

  //ext3格式化逻辑卷

  #mkfs -t ext3 -j /dev/vg_name/lv_name

  //使用lvm,首先创建挂载点

  #mkdir /mnt/lvm

  //挂载卷

  #mount /dev/vg_name/lv_name /mnt/lvm

  //检查磁盘空间

  #df -m /mnt/lvm

  //扩大lvm卷

  如果lvm空间不够用,现在准备向lvm卷增加更多空间。首先,卸载该卷,并使用lvresize命令调整卷大小。然后还必须用e2fsck检查整个文件系统,并运行resize2fs调整该卷上ext3文件系统的大小

  //卸载

  #umount /mnt/lvm

  //调整卷大小

  #lvresize --size 20G /dev/vg_name/lv_name

  //检查文件系统

  #e2fsck -f /dev/vg_name/lv_name

  //调整文件系统大小

  resize2fs /dev/vg_name/lv_name 20G

  //重新挂载卷

  #mount /dev/vg_name/lv_name /mnt/lvm

  

  //缩小LVM卷

  缩减现有的lvm卷里不需要的空间是也可以使用lvresize。和前面一样,在调整卷大小之前先卸载这个卷,然后运行e2fsck,检查文件系统和resize2fs调整成希望的大小。

  //删除lvm逻辑卷和组,使用lvremove可以删除卷组里的lvm逻辑卷

  #lvremove /dev/vg_name/lv_name

  //使用vgremove可以删除现有的lvm卷组

  #vgremove vg_name

linux学习之lvm-逻辑卷管理器的更多相关文章

  1. Linux 笔记 - 第十七章 Linux LVM 逻辑卷管理器

    一.前言 在实际生产中,有时会遇到磁盘分区空间不足的情况,这时候就需要对磁盘进行扩容,普通情况下需要新加一块磁盘,重分区.格式化.数据复制.卸载旧分区.挂载新分区等繁琐的步骤,而且有可能造成数据的丢失 ...

  2. LVM逻辑卷管理器

    LVM概述 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...

  3. LVM逻辑卷管理测试——创建逻辑卷

    虚拟机里再添加两块硬盘,如下所示: 启动系统后,我们可以看到新添加的两块硬盘为/dev/sdb和/dev/sdc.每个2GB. [root@lxjtest ~]# fdisk -l Disk /dev ...

  4. LVM逻辑卷管理测试——逻辑卷扩展、收缩、快照及删除

    一.逻辑卷扩展 [root@lxjtest /]# umount /testLVM/ [root@lxjtest /]# df -h Filesystem Size Used Avail Use% M ...

  5. Linux逻辑卷管理器(LVM)

    LVM基础 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM),用户可以在系统运行时动态调整文件系统的大小,把数据从一块硬盘重定位到另一块硬盘,也可以提高I/O ...

  6. Linux逻辑卷管理器concept

    Linux逻辑卷管理concept-------------------------转载2013/10/09 通过使用Linux的逻辑卷管理器(Logical Volume Manager, LVM) ...

  7. LVM(逻辑卷管理器)部署、扩容、缩小

    物理卷 -- Physical Volume -- PV 卷组  -- Volume Group  -- VG 逻辑卷 -- Logical Volume -- LV 1.硬盘设备管理技术虽然能够有效 ...

  8. linux的存储管理(RALD) LVM 逻辑卷管理 虚拟阵列

    磁盘存储管理 LVM 逻辑卷 虚拟阵列 1.Linux系统中 磁盘使用 存在3个大问题: 1.灵活性 2.安全性 3.性能 2.解决办法RAID独立磁盘冗余阵列 RAID(Redundant Arra ...

  9. Linux系统磁盘管理(lvm逻辑卷管理)

    linux系统用户常遇到的一个问题就是如何精准的评估分区的大小,已分配合适的磁盘空间:普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文 ...

随机推荐

  1. PHP使用数据库的并发问题(转)

    在并行系统中并发问题永远不可忽视.尽管PHP语言原生没有提供多线程机制,那并不意味着所有的操作都是线程安全的.尤其是在操作诸如订单.支付等业务系统中,更需要注意操作数据库的并发问题. 接下来我通过一个 ...

  2. jq实现点击弹出框代码

    废话不多说,先贴代码吧 <script> function showBg() { //定义 showBg 函数 var bh = $("body").height(); ...

  3. Linux服务器管理: 系统管理:进程文件信息lsof

    lsof命令 列出进程打开或使用的文件信息 [root@loclahost/]#lsof [选项] 选项: -c 字符串: 只列出以字符串开头的进程打开的文件 -u 用户名: 只列出某个用户的进程打开 ...

  4. [译]git reflog

    用法 git reflog 显示整个本地仓储的commit, 包括所有branch的commit, 甚至包括已经撤销的commit, 只要HEAD发生了变化, 就会在reflog里面看得到. git ...

  5. Spark之命令

    Spark之命令 1.spark运行模式有4种: a.local 多有用测试, b. standalone:spark 集群模式,使用spark自己的调度方式. c. Yarn: 对Mapreduce ...

  6. 初始Jquery--以及工厂函数

    一.JavaScript框架 1什么是JavaScript框架 普通JavaScript的缺点:每种控件的操作方式不统一,不同浏览器下有区别,要编写跨浏览器的程序非常麻烦.因此出现了很多对JavaSc ...

  7. springmvc之自定义注解(annotation)

    参考:日志处理 三:Filter+自定义注解实现 系统日志跟踪功能 1.项目结构 2.pom.xml,添加需要依赖 <project xmlns="http://maven.apach ...

  8. Lvs原理及部署之ARP协议

    1.什么使ARP协议 ARP协议,全称"Address Resolution Protocol" ,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC ...

  9. JVM内存监控工具 JavaMelody

    这是一个需要web部署的工具,需要在容器中部署,然后将要监控的程序添加到该程序中即可. JavaMelody是java应用的监控工具,安装部署步骤如下: 1. 首先先下载javamelody.jar ...

  10. WWDC15 Session笔记 - Xcode 7 UI 测试初窥

    https://onevcat.com/2015/09/ui-testing/ WWDC15 Session笔记 - Xcode 7 UI 测试初窥 Unit Test 在 iOS 开发中已经有足够多 ...