一、简介

  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中的ob_start用法详解

    用PHP的ob_start();控制您的浏览器cache Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出 ...

  2. webpack构建与loaders

    loaders 定义 先了解一下webpack,webpack是一个用于针对js文件的构建工具,在被构建的js文件中,我们可以使用require语句和webpack loader,如下: var cs ...

  3. 让我们一起学Node.js-文章列表

    新浪的博客最近不给力,只好在博客园落个窝.至此之后,技术随笔会在博客园以及新浪的博客上同时更新,如果新浪给力的话~~~ 如果你想看先前新浪博客上分享的技术,请点击此处 忘尘子新浪博客! 我是拜读了朴灵 ...

  4. 解决pydev报unsolved import的问题

    安装Flask_RESTful-0.2.11包后, 并在pydev 对应的 interpreter 重新刷新了System PYTHONPATH, 看见Lib\site-packages\flask_ ...

  5. 更简洁的 CSS 清理浮动方式

    CSS清理浮动有很多种方式,像使用 br 标签自带的 clear 属,使用元素的 overflow,使用空标签来设置 clear:both 等等.但考虑到兼容问题和语义化的问题,一般我们都会使用如下代 ...

  6. 包介绍 - UriTemplates (用于处理格式化Uri模板)

    UriTemplates 用于处理格式化Uri模板 PM> Install-Package Tavis.UriTemplates 设置Uri Path Segment [Fact] public ...

  7. nyoj 613 免费馅饼 广搜

    免费馅饼 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy ...

  8. JQuery-EasyUI DataGrid CRUD

    ASP.NET使用EasyUI-DataGrid + ashx + JQuery Ajax:实现数据的增删查改,查询和分页! 数据表: 学生表:学生编号.姓名.性别.班级编号.年龄 班级表:班级编号. ...

  9. 利用session防止用户未经登录而直接访问

    在编写项目的时候,突然想如果按常理出牌,不首先进入登录界面而直接访问网页内容,可不可以呢?如此一来便尝试了一下,整的可以直接进入管理员页面,获取完全的管理权限.于是在网上查看了一下解决方案,学习了一下 ...

  10. 关于hibernate链接数据源的配置参数详细解释(转)

    具体使用方法还可以参考以下地址: http://blog.csdn.net/xb12369/article/details/41517409 以下信息转自: http://baike.baidu.co ...