一、什么是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. FastJson 支持配置的PropertyNamingStrategy四种策略

    摘要: FastJson默认使用CamelCase,在1.2.15版本之后,FastJson支持配置PropertyNamingStrategy,支持四种策略: CamelCase.PascalCas ...

  2. 函数对象的call()、apply() 方法区别

    函数对象的call().apply() 方法 函数作为对象提供了call(),apply() 方法,他们也可以用来调用函数,这两个方法都接受一个对象作为参数,用来指定本次调用时函数中this的指向: ...

  3. java项目打包生成MD5文件

    之所以发出这篇博客,因为我前几天搞这个问题搞了几天,各种百度居然都没有找到相关的案例,虽然很简单的事件.可是百度博客上面居然都搜不到案例o(* ̄︶ ̄*)o觉得奇怪!!! 新总监来了,项目要上线,以前都 ...

  4. Floyd算法-傻子也能看懂的弗洛伊德算法(转)

                暑假,小哼准备去一些城市旅游.有些城市之间有公路,有些城市之间则没有,如下图.为了节省经费以及方便计划旅程,小哼希望在出发之前知道任意两个城市之前的最短路程.          ...

  5. Spring Security(15)——权限鉴定结构 RoleVoter

    http://www.cnblogs.com/fenglan/p/5913432.html

  6. POJ 1258 Agri-Net 【Prime】模板题

    题目链接>>> 题目大意:     给你N*N矩阵,表示N个村庄之间的距离.FJ要把N个村庄全都连接起来,求连接的最短距离(即求最小生成树).解析如下: #include <c ...

  7. lvs dr 模型配置详解

    前期准备: 两台服务器 note01(lvs服务器) note02(real sever) 1 首先在note01配置子网卡: ifconfig eth0: :2意思是eth0的子接口,随便一个数字就 ...

  8. C++雾中风景13:volatile解惑

    笔者入职百度时,二面面试官的让我聊聊C++之中的volatile关键词.volatile在Java和C++之中的差别可谓是天差地别,我只是简单聊了聊Java之中的volatile,面试官对我的回答并不 ...

  9. Python中list、字典、字符串的讲解

    python 的list讲解  计算机中的数组是从0开始的 list中的下标.角标.索引说的都是一个 数组都是从0开始的. stus=["刘",“王”,“张”] stus2=[] ...

  10. JVM五大知识点

    1 JVM的基本特性 1.1 基于栈(Stack-based): 不同于Intel x86和ARM等比较流行的计算机处理器都是基于寄存器(register)架构,JVM是基于栈执行的. 1.2 符号引 ...