一、简介

  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. gradle 默认属性

    Properties(未翻译) Property Description allprojects 包含该项目及其子项目的属性 ant The AntBuilder for this project. ...

  2. 发布自己的包到Nuget上

    1.首先下载Nuget.exe https://dist.nuget.org/index.html 2.设置环境变量  设置apikey nuget setApiKey <my_api_key& ...

  3. linq学习

    最全的linq学习文章: http://www.cnblogs.com/heyuquan/p/Linq-to-Objects.html

  4. MySql的安装及配置详细指引!

    一.安装My Sql数据库 1.1,首先下载MySQL与HeidiSQL工具,双击打开后可以看到名为”mysql-5.0.22-win32 Setup.exe”的安装程序,双击执行该程序. 1.2,打 ...

  5. 快速切换IP的批处理!

    内容如下: @echo off color 1A Title [SMART专用 IP设置V1.0] cls echo. echo SMART专用 IP设置V1.0 %date%%time% echo. ...

  6. Android应用如何监听自己是否被卸载及卸载反馈功能的实现

    一个应用被用户卸载肯定是有理由的,而开发者却未必能得知这一重要的理由,毕竟用户很少会主动反馈建议,多半就是用得不爽就卸,如果能在被卸载后获取到用户的一些反馈,那对开发者进一步改进应用是非常有利的.目前 ...

  7. 今天<s:hidden>突然能用了

    曾经好几个作业中都想要用<s:hidden>隐形传值,一直没有成功. 今天放弃使用了,竟然成功了. 我放弃使用居然成功了,原来只要设置好getter和setter之后就不用管了,只要变量名 ...

  8. Codeforces Round #270 1002

    Codeforces Round #270 1002 B. Design Tutorial: Learn from Life time limit per test 1 second memory l ...

  9. 我们为之奋斗过的C#-----C#的一个简单理解

    我们首先来简单叙述一下什么是.NET,以及C#的一个简单理解和他们俩的一个区别. 1 .NET概述 .NET是Microsoft.NET的简称,是基于Windows平台的一种技术.它包含了能在.NET ...

  10. mysql连表更新

    1.需求 有2张表,a表和b表,要把b表的name数据复制到a表中,当2表的id字段一样的时候 UPDATE A a, B b SET a.name = b.my_name WHERE a.id = ...