一、什么是LVM

不管是使用传统的MBR分区方式或者是GPT的分区方式,在最后数据量逐渐变大的过程中都会出现空间不足的情况,但是若是使用将此分区的数据全部迁移至一个更大空间的磁盘上的迁移时间也是不可想象的,为了解决这个问题,LVM就诞生了。
LVM(Logical volume Manager)是逻辑卷管理的简称。
LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上次服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的。


二、LVM原理


PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。


三、LVM实现过程

1、创建PV(即从一块硬盘中创建分区,或者直接将此硬盘作为一个PV)
需要将此分区的标志该为lvm格式

pvcreate /dev/vdb1
pvcreate /dev/vdb2

2、创建VG
vgcreate vg0 /dev/vdb1 vg0任意,表示将/dev/vdb1加入到vg0这个物理卷组中

3、创建LV
lvcreate -L 50M -n lv0 vg0
-L 表示大小,该lv0的物理卷大小设置为50M 
-n 表示逻辑卷的名字,可任意

4、格式化此逻辑卷
若是xfs文件系统,仅可以进行拉申,不可以进行缩减
若是ext4文件系统,可以进行拉申,也可以进行缩减


此时呈现给上层服务是逻辑卷的状态,但是上层服务是没有感知的,可以将逻辑卷与真实的硬盘分区一样的进行使用。


四、xfs文件系统

当物理卷组中的空间足够使用时,直接对逻辑卷进行拉申即可
lvextend -L 500M /dev/vg0/lv0 对设备进行拉申
xfs_growfs /dev/vg0/lv0 为热拉申,即在设备/dev/vg0/lv0正在使用的情况下进行拉申操作


设备与文件系统均被扩展至500M
当物理卷组中的空间不够使用时,若物理卷空间足够,之间将物理卷中没有加入物理圈足中的分区直接加入到物理圈足中,如果物理卷不够时,在硬盘中在进行分区,或者在加入新的硬盘。

/dev/vdb4是扩展分区
pvcreate /dev/vdb5
vgextend vg0 /dev/vdb5
lvextend -L 1G /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0 


五、ext4文件系统

(1)拉申操作
lvextend -L 500M /dev/vg0/lv0 拉申设备
resize2fs /dev/vg0/lv0 拉申文件系统

(2)缩减操作
umount /mnt/
e2fsck -f /dev/vg0/lv0 对逻辑卷中的文件进行扫描,以确定需要缩减多少空间,以免出现丢失文件的情况
resize2fs /dev/vg0/lv0 100M 缩减文件系统到100M

lvreduce -L 100M /dev/vg0/lv0 缩减设备至100M
(3)迁移操作

若需要将/dev/vdb1物理卷上的文件全部迁移至/dev/vdb2物理卷上,然后将/dev/vdb1从物理卷中取出
pvmove /dev/vdb1 /dev/vdb2

迁移成功
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
(4)快照
通过使用lvm的快照我们可以轻松的备份数据,由于snapshot和源lvm的关系,snapshot只能够临时使用,不能脱离源lvm而存在.
snapshotCOW(COPY-ON-WRITE)简单原理:

当一个snapshot创建的时候,仅拷贝原始卷里的数据,这部是物理上的数据拷贝,因此snapshot创建的特别块,当原始卷里的数据由写入时,备份卷开始记录原始卷哪些数据发生了变化,然后在原始卷新书局覆盖旧数据时,将旧数据拷贝到snapshot的预留空间中,起到备份数据的作用,就保证了所有数据和创建备份卷之前的数据一致性。
snapshot的特点:
采用COW实现方式时,snapshot的大小并不需要和原始卷一样大
1、根据原始卷数据的改变大小范围来设置
2、根据原始卷数据的更新频率来定,一旦snapshot的空间记录满了原始卷块变换的信息,那么这个snapshot就不能使用了
lvcreate -L 50M -n lv0backup -s /dev/vg0/lv0
创建一个50M 名字为lv0backup源设备为/dev/vg0/lv0的快照
此快照不需要格式化,直接进行挂载使用就行

LVM原理与实现的更多相关文章

  1. LVM原理及PV、VG、LV、PE、LE关系图

    PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区.VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立 ...

  2. LVM原理及实现过程

    这里引用鸟哥说明 LVM 的重点在於『可以弹性的调整 filesystem 的容量!』而并非在於效能与数据保全上面. 需要文件的读写效能或者是数据的可靠性,请参考前面的 RAID 小节. LVM 可以 ...

  3. 【Linux卷管理】LVM原理

    LVM 简介 每个Linux使用者在安装Linux时 都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能 ...

  4. LVM 创建分区扩展分区记录

    LVM 原理   图片来自百度百科   测试环境centOS 7                 LVM version:     2.02.115(2)-RHEL7 (2015-01-28)     ...

  5. lvm语法2

    LVM组成; LVM:logic volume manager .LVM即逻辑卷管理,现在使用版本为第二版,即version2 逻辑卷:pv,physical volume,即计算机上的磁盘设备,例如 ...

  6. Linux LVM逻辑卷配置过程详解(创建,增加,减少,删除,卸载)

    Linux LVM逻辑卷配置过程详解 许多Linux使用者安装操作系统时都会遇到这样的困境:如何精确评估和分配各个硬盘分区的容量,如果当初评估不准确,一旦系统分区不够用时可能不得不备份.删除相关数据, ...

  7. LVM逻辑卷

    LVM逻辑卷 一.LVM逻辑卷概述 1.LVM的作用: 扩充磁盘:不动数据,在使用状态,将磁盘容量变大. 能把多个物理的磁盘整合成一张大的虚拟的磁盘,比如:有3个5G的磁盘,能把它们整合成一个15G的 ...

  8. Linux中LVM2原理

    一.LVM原理 [MD]:Multi Device 多设备 Mdadm是一个用户空间工具,是RAID的管理工具,与真正的RAID工作没有太大关系.真正的RAID集成在linux内核中 [DM]Devi ...

  9. LVM逻辑分区的优缺点与步骤

    一.LVM简介 1. 什么是LVM? LVM是 Logical Volume Manager(逻辑卷管理)的简写 2. 为什么使用LVM? LVM通常用于装备大量磁盘的系统,但它同样适于仅有一.两块硬 ...

随机推荐

  1. 没有IDE的日子

    没有QT Creator,没有VS2008,没有Eclipse,也没有KDevelop,忘掉一切IDE. 好吧,现在我只有Vim了,可我跟Vim不熟. Vim魅力四射,光芒万丈,高高在上,她就是传说中 ...

  2. L1-006 连续因子 (20 分) 模拟

    一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续的数字.给定任一正整数 N,要求编写程序求出最长连续因子的个数,并输出最小的 ...

  3. Hdu-1098解题报告

    Hdu-1098解题报告 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1098 题意:已知存在一个等式f(x)=5*x^13+13*x^5+k*a*x ...

  4. zoj 1002 Fire Net 碉堡的最大数量【DFS】

    题目链接 题目大意: 假设我们有一个正方形的城市,并且街道是直的.城市的地图是n行n列,每一个单元代表一个街道或者一块墙. 碉堡是一个小城堡,有四个开放的射击口.四个方向是面向北.东.南和西.在每一个 ...

  5. Oracle 在字符串中输入单引号或特殊字符

    -- Start 字符串是用单引号括起来的,如果想在字符串中输入单引号该怎么办呢?有两种方法. 方法一:是用两个单引号代表一个单引号 SELECT 'I''m Shangbo' FROM DUAL; ...

  6. linux 学习笔记 文件权限管理篇

    chown chown -R mysql. /usr/local 把/usr/local/以及其下的所有的文件和子目录属主改为mysql ls -al * <---用这条命令查询 chgrp c ...

  7. 【ABP】ABP跨域调用API时出现的问题

    public override void Initialize() { IocManager.RegisterAssemblyByConvention(Assembly.GetExecutingAss ...

  8. IO流关键字

  9. 【DWM1000】 code 解密10 一 TAG 发送最后一个消息

    更上面ANCHOR发送信息时的RTLS_DEMO_MSG_ANCH_RESP, 我们很快就可以找到如下代码 case RTLS_DEMO_MSG_ANCH_RESP: { 这里面一部分是设置重要变量, ...

  10. STM32点亮闪烁LED灯

    详解请看其他博客: http://www.cnblogs.com/whik/p/6672730.html http://www.51hei.com/bbs/dpj-38605-1.html /*本程序 ...