LVM详解;Linux逻辑卷管理
目录:
- LVM技术的产生原因
- LVM术语介绍
- LVM快照原理
- 案例精析
- 步骤分析
- 实操
LVM技术的产生原因
LVM是存储的一种管理方式。
LVM全称是逻辑卷管理,LogicalVolumeManager(逻辑卷管理)
我们在部署服务器的时候最底层是存储设备磁盘,上层是文件系统,我们不管是做RADI还是做LVM都是为了创建文件系统,所以RAID和lvm都是为了让咱们管理存储更加方便。通过下面两幅图我们能够看到他们之间的关系
使用LVM的优点有哪些?
文件系统可以跨多个磁盘,因此文件系统大小不会受物理磁盘的限制。
可以在系统运行的状态下动态的扩展文件系统的大小。
可以增加新的磁盘到LVM的存储池中。
可以以镜像的方式冗余重要的数据到多个物理磁盘。
- 可以方便的导出整个卷组到另外一台机器。
LVM术语介绍
- 物理卷Physical Volume(PV):可以在上面建立卷组的媒介,可以是硬盘分区,也可以是硬盘本身或者回环文件(loopback file)。物理卷包括一个特殊的header,其余部分被切割为一块块物理区域(physical extents)
- 卷组Volume Group(VG):由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)
- 逻辑卷Logical Volume(LV):虚拟分区,由物理区域(physical extents)组成
- 物理区域Physical Extent(PE):硬盘可供指派给逻辑卷的最小单位(通常为4MB)
- 逻辑区域Logical Extent(LE):跟PE一样,只不过站在LV的视角上是叫LE,而在VG的视角上则是叫PE,其本质是一样的
注解:分区的大小为物理边界。文件系统的大小为逻辑边界或文件系统边界
以上这些专业术语之间的逻辑关系如下图所示
LVM快照原理
我们知道LVM可以弹性的调整文件系统的大小,其实LVM除了可以调整文件系统的大小之外,还有另一个功能就是系统快照。
所谓系统快照就是将某一时刻文件系统中的数据记录到快照区中,这里的某一时刻指的是在原始数据被改变的那一瞬间,原始数据会移到快照区里。而其他没有改变的数据,快照区和文件系统共享。所以刚建立快照时快照区内容和文件系统的内容一样。
由于只有当数据发生改变是才会将原始数据移动到快照区,因此快照区中保存的内容比较少。
快照区的原理图如下:
在刚创建快照的时候,文件系统和快照区共享所有的PE,也就是说此时的快照区和文件系统的内容是一样的。并且在快照区中保留的一些区块,这些区块用于存储数据的(如左图的左侧三个区块)。当文件系统的某个区块的数据将要发生改变时,则会将这个区块中的原始数据移动到快照区的空留处。而那些没有被修改的区块,仍然与文件系统共享。在上图中,区块A的数据将要发生改变,所以就将区块A的数据移动到快照区中,而B到I之间的区块没有修改,仍然和文件系统共享。由此可以看出,LVM的系统快照功能也是一个备份工具。
当一个snapshot创建的时候,仅拷贝原始卷里数据的元数据(meta-data)。创建的时候,并不会有数据的物理拷贝,因此snapshot的创建几乎是实时的,当原始卷上有写操作执行时,snapshot跟踪原始卷块的改变,这个时候原始卷上将要改变的数据在改变之前被拷贝到snapshot预留的空间里,因此这个原理的实现叫做写时复制(copy-on-write)。
在写操作写入块之前,将原始数据移动到 snapshot空间里,这样就保证了所有的数据在snapshot创建时保持一致。而对于snapshot的读操作,如果是读取数据块是没有修改过的,那么会将读操作直接重定向到原始卷上,如果是要读取已经修改过的块,那么就读取拷贝到snapshot中的块。
创建snapshot的大小并不需要和原始卷一样大,其大小仅仅只需要考虑两个方面:从shapshot创建到释放这段时间内,估计块的改变量有多大;数据更新的频率。一旦 snapshot的空间记录满了原始卷块变换的信息,那么这个snapshot立刻被释放,从而无法使用,从而导致这个snapshot无效。
案例精析
步骤分析
LV建立流程:
- 建立PV
- 建立VG,将PV加入到VG中。
- 建立LV,并设置LV大小。
- 格式化LV或LP成你需要的文件系统。
LV删除流程:
- umountFS
- 删除LV。
- 将PV从所在的VG中删除。
- 删除VG。
实操
练习:
1)创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
1. 创建pv
[root@localhost ~]# pvcreate /dev/sda6 /dev/sdb1
//这两个分区一块儿是16G的,一块儿是4G的。
//查看pv(pvs,pvdisplay)
[root@centos ~]# pvsPV VG Fmt Attr PSize PFree /dev/sda6 lvm2 ---- 16.00g 16.00g/dev/sdb1 lvm2 ---- 4.01g 4.01g
[root@centos ~]# pvdisplay "/dev/sda6" is a new physical volume of "16.00 GiB"--- NEW Physical volume ---PV Name /dev/sda6VG Name PV Size 16.00 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID Qj8AC0-3o4k-AWRc-vZti-daND-wdR3-ncYX9V"/dev/sdb1" is a new physical volume of "4.01 GiB"--- NEW Physical volume ---PV Name /dev/sdb1VG Name PV Size 4.01 GiBAllocatable NOPE Size 0 Total PE 0Free PE 0Allocated PE 0PV UUID d9AIXC-iQH8-Aqfg-HgI2-8cBs-zYne-77JIJk
2.创建VG
[root@centos ~]# vgcreate -s 16M testvg /dev/sdb1 /dev/sda6Volume group "testvg" successfully created
//查看vg
[root@centos ~]# vgdisplay
3.创建lv
[root@centos ~]# lvcreate -L 5G -n testlv testvgLogical volume "testlv" created.
[root@centos ~]# lvdisplay
//查看lv
4.格式化lv与挂载
[root@centos ~]# mke2fs -t ext4 /dev/testvg/testlv
//格式化
[root@centos ~]# mount /dev/testvg/testlv /usrs/
//挂载
2)新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
[root@centos /usrs]# useradd -d /usrs/archlinux archlinux
//添加用户
[root@centos /usrs]# cp -r /etc/pam.d/ ./archlinux/
//拷贝文件到家目录中
3)扩展testlv至7G,要求archlinux用户的文件不能丢失
//1.扩展逻辑卷标
[root@centos /usrs]# lvextend -L 7G /dev/testvg/testlv
//2.扩展文件系统
[root@centos /usrs]# resize2fs /dev/testvg/testlv
//3.查看之前存储内容
[root@centos /usrs]# ls ./archlinux/
4)对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
[root@centos /usrs]# lvcreate -L 100M -s -n snap_20180227 -p r /dev/testvg/testlv
//创建快照
[root@centos /usrs]# mount /dev/testvg/snap_20180227 /mnt/
//挂载快照
[root@centos /usrs]# rm -rf /usrs/*
//删除源文件内容
[root@centos /usrs]# cp -a /mnt/* /usrs/
//将快照内容拷贝回源文件
[root@centos /usrs]# ls /usrs/
//查看现在源文件的内容
[root@centos /usrs]# umount /mnt/
//卸载快照
[root@centos /usrs]#lvremove /dev/testvg/snap_20180227
//删除快照
【注解:】在做实验的时候,第一天做了一半儿,剩下的一半儿是第二天做的,然后服务器直接重启了,这就导致了一个问题。我的/usrs目录中没有任何内容,后来排查之后发现是LV并没有挂载到该目录中。也许,在真正的生产环境中,每做一个操作,都要进一步的设置,以保证这个操作不仅当前有效,而且服务器重启之后依然有效。
LVM详解;Linux逻辑卷管理相关推荐
- LVM(logical volume manager) 逻辑卷管理器
LVM(logical volume manager) 逻辑卷管理器 其中主要分为这几个概念 1物理卷-简称PV 物理卷在逻辑卷管理器中属于最底层的,任何的逻辑卷和卷组都必需依靠物理卷来建立,物理卷可 ...
- linux逻辑卷管理,RAID磁盘阵列,过程管理,VDO
linux逻辑卷管理,RAID磁盘阵列,过程管理,VDO 文章目录 linux逻辑卷管理,RAID磁盘阵列,过程管理,VDO 新建一个逻辑卷 问题 方案 步骤 一:创建卷组 二:创建逻辑卷 三:格式化 ...
- linux逻辑卷管理快照,逻辑卷管理器(LVM)以及快照(特殊逻辑卷)的用法
1.LVM基本介绍 2.PV.VG.LV关系详解(PV/VG/LV的创建.扩展逻辑卷大小.减小(减小操作很少用,仅作学习)) 3.快照的概念以及基本用法(特殊的逻辑卷) 4.总结LVM基本介绍 LVM ...
- Linux 逻辑卷管理器(LVM)
为什么要使用逻辑卷? 逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,为了解决硬盘设备在创建分区后不易修改分区大小的缺陷.尽管对传统的硬盘分区进行强制扩容或缩容从理论上讲是可行的.但是却 ...
- linux逻辑卷管理(LVM )
逻辑卷管理的技术可理解为,将单个或多个物理磁盘分区(PV物理卷)组成逻辑卷组(VG),再把卷组分成多个逻辑卷(LV),主要特点是,在不影响原来数据情况下可简易的扩充磁盘的大小(缩小硬盘空间可能会导至数 ...
- boot lvm 分区_LVM磁盘逻辑卷管理
微信公众号:云计算通俗讲义 持续输出技术干货,欢迎关注! 通过本文你将了解: 卷管理 LVM PV VG LV LVM与Device Mapper 01 卷管理 卷管理软件对待RAID提交给上层操作系 ...
- 【Linux逻辑卷管理】之pvcreate、pvdisplay和pvremove
文章目录 一.逻辑卷管理(LVM)概念 1. LVM 定义 2. 物理卷(PV) 3. 卷组(VG) 4. 逻辑卷(LV) 二.创建逻辑卷 1. pvcreate命令将分区标记为物理卷,==创建物理卷 ...
- 深入剖解linux逻辑卷LVM
一.LVM概念 LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管 ...
- LVM (Logic Volume Management,逻辑卷管理)
是传统商业Unix就带有的一项高级磁盘管理工具,异常强大.后来LVM移植到了Linux操作系统上,尽管不像原来Unix版本那么强大,但瘦死的骆驼比马大,Linux的LVM仍然非常强大,可以在生产运行系 ...
- linux逻辑卷管理
2019独角兽企业重金招聘Python工程师标准>>> 摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘 ...
最新文章
- 武鸣高中2021高考成绩查询,2019年广西两大重点高中成绩大比拼
- spearman相关性_Spearman的相关性及其在机器学习中的意义
- 笔记本电脑怎么清理灰尘_笔记本发热怎么办?这里有解决方案
- 【转】C/C++的64位整型 不同编译器间的比较
- apache重写模块开启
- pycharm 没有 python template languages_开发效率神器说说Pycharm的骚操作
- Javascript:学习笔记
- c语言实现循环队列初始化从键盘输入,2017年12月计算机二级考试C语言考前提分卷(2)...
- 技术岗的职业规划_致程序员:30岁+的职业规划是什么?这些你必须知道!
- 课程学习评价系统设计与实现
- 笔记:盖洛普《伟大管理的12要素》中的12原则
- Day10--路由嵌套+项目前后台搭建
- centos7 RAID磁盘阵列卡驱动安装图文教程
- 《MLB棒球创造营》:走近棒球运动·迈阿密马林鱼队
- springboot整合es实现聚合搜索(api搜索版)
- 盘点“大宗商品电子交易模式”的8种交易流程
- matlab对数据的量化分析方法,金融量化分析数据传输方法与流程
- 国学游戏之神州方块源码
- mybatis-generator同名表的处理
- 2021图机器学习有哪些新突破?麦吉尔大学博士后一文梳理展望领域趋势
热门文章
- 用AlphaGo背后的人工智能做金融投资
- 万里航行总舵手——业务测试架构的设计
- 在ASP.NET中加密页面机制
- 断网重启路由器就好_每天都要重启路由器?难怪WIFI越用越慢,宽带师傅透露其中窍门...
- python递归函数代码_python – 进行深度优先搜索的递归函数
- 小蠓虫如何灭_怎样消灭蠓虫?
- MSP430使用__delay_cycles实现延时1ms和1us
- Android 两个App间进行IPC通信
- 7-28 求矩阵的局部极大值 (15 分)
- C语言 — 运算符的优先级与结合性