文档章节

说说IO(五)- 逻辑卷管理

abcijkxyz
 abcijkxyz
发布于 2016/07/08 16:29
字数 1670
阅读 3
收藏 0

LVM(逻辑卷管理),位于操作系统和硬盘之间,LVM屏蔽了底层硬盘带来的复杂性。最简单的,LVM使得N块硬盘在OS看来成为一块硬盘,大大提高了系统可用性。

 

 

LVM的引入,使得文件系统和底层磁盘之间的关系变得更为灵活,而且更方便关系。LVM有以下特点:

 

  • 统一进行磁盘管理。按需分配空间,提供动态扩展。
  • 条带化(Striped)
  • 镜像(mirrored)
  • 快照(snapshot)

 

 

LVM可以做动态磁盘扩展,想想看,当系统管理员发现应用空间不足时,敲两个命令就完成空间扩展,估计做梦都要笑醒:)

 

 

LVM的磁盘管理方式

 

LVM中有几个很重要的概念:

 

  • PV(physical volume):物理卷。在LVM中,一个PV对应就是操作系统能看见的一块物理磁盘,或者由存储设备分配操作系统的lun。一块磁盘唯一对应一个PV,PV创建以后,说明这块空间可以纳入到LVM的管理。创建PV时,可以指定PV大小,即可以把整个磁盘的部分纳入PV,而不是全部磁盘。这点在表面上看没有什么意义,但是如果主机后面接的是存储设备的话就很有意义了,因为存储设备分配的lun是可以动态扩展的,只有当PV可以动态扩展,这种扩展性才能向上延伸。
  • VG(volume group):卷组。一个VG是多个PV的集合,简单说就是一个VG就是一个磁盘资源池。VG对上屏蔽了多个物理磁盘,上层是使用时只需考虑空间大小的问题,而VG解决的空间的如何在多个PV上连续的问题。
  • LV(logical volume):逻辑卷。LV是最终可供使用卷,LV在VG中创建,有了VG,LV创建是只需考虑空间大小等问题,对LV而言,他看到的是一直联系的地址空间,不用考虑多块硬盘的问题。

 

有了上面三个,LVM把单个的磁盘抽象成了一组连续的、可随意分配的地址空间。除上面三个概念外,还有一些其他概念:

 

 

  • PE(physical extend): 物理扩展块。LVM在创建PV,不会按字节方式去进行空间管理。而是按PE为单位。PE为空间管理的最小单位。即:如果一个1024M的物理盘,LVM的PE为4M,那么LVM管理空间时,会按照256个PE去管理。分配时,也是按照分配了多少PE、剩余多少PE考虑。
  • LE(logical extend):逻辑扩展块。类似PV,LE是创建LV考虑,当LV需要动态扩展时,每次最小的扩展单位。

 

对于上面几个概念,无需刻意去记住,当你需要做这么一个东西时,这些概念是自然而然的。PV把物理硬盘转换成LVM中对于的逻辑(解决如何管理物理硬盘的问题),VG是PV的集合(解决如何组合PV的问题),LV是VG上空间的再划分(解决如何给OS使用空间的问题);而PE、LE则是空间分配时的单位。

 

 

 

 

如图,为两块18G的磁盘组成了一个36G的VG。此VG上划分了3个LV。其PE和LE都为4M。其中LV1只用到了sda的空间,而LV2和LV3使用到了两块磁盘。

      

串联、条带化、镜像

 

 

串联(Concatenation): 按顺序使用磁盘,一个磁盘使用完以后使用后续的磁盘。

 

条带化(Striping): 交替使用不同磁盘的空间。条带化使得IO操作可以并行,因此是提高IO性能的关键。另外,Striping也是RAID的基础。如:VG有2个PV,LV做了条带数量为2的条带化,条带大小为8K,那么当OS发起一个16K的写操作时,那么刚好这2个PV对应的磁盘可以对整个写入操作进行并行写入。

 



Striping带来好处有:

 

  • 并发进行数据处理。读写操作可以同时发送在多个磁盘上,大大提高了性能。

 

Striping带来的问题:

 

  • 数据完整性的风险。Striping导致一份完整的数据被分布到多个磁盘上,任何一个磁盘上的数据都是不完整,也无法进行还原。一个条带的损坏会导致所有数据的失效。因此这个问题只能通过存储设备来弥补。
  • 条带大小的设定很大程度决定了Striping带来的好处。如果条带设置过大,一个IO操作最终还是发生在一个磁盘上,无法带来并行的好处;当条带设置国小,本来一次并行IO可以完成的事情会最终导致了多次并行IO。

 

镜像(mirror)

如同名字。LVM提供LV镜像的功能。即当一个LV进行IO操作时,相同的操作发生在另外一个LV上。这样的功能为数据的安全性提供了支持。如图,一份数据被同时写入两个不同的PV。

 

 

使用mirror时,可以获得一些好处:

  • 读取操作可以从两个磁盘上获取,因此读效率会更好些。
  • 数据完整复杂了一份,安全性更高。
但是,伴随也存在一些问题:
  • 所有的写操作都会同时发送在两个磁盘上,因此实际发送的IO是请求IO的2倍
  • 由于写操作在两个磁盘上发生,因此一些完整的写操作需要两边都完成了才算完成,带来了额外负担。
  • 在处理串行IO时,有些IO走一个磁盘,另外一些IO走另外的磁盘,一个完整的IO请求会被打乱,LVM需要进行IO数据的合并,才能提供给上层。像一些如预读的功能,由于有了多个数据获取同道,也会存在额外的负担。

 

快照(Snapshot)

 

快照如其名,他保存了某一时间点磁盘的状态,而后续数据的变化不会影响快照,因此,快照是一种备份很好手段。

 

但是快照由于保存了某一时间点数据的状态,因此在数据变化时,这部分数据需要写到其他地方,随着而来回带来一些问题。关于这块,后续存储也涉及到类似的问题,后面再说。

 

本文转载自:http://blog.csdn.net/yuwenruli/article/details/6708097

共有 人打赏支持
abcijkxyz
粉丝 63
博文 6196
码字总数 1876
作品 0
深圳
项目经理
私信 提问
#11 硬连接与软链接与RAID与LVM2

两种特殊文件: 设备文件: mknod 符号链接文件: 链接:就是访问一个文件的不同路径; 硬连接: 数据块指针指向同一个数据块的文件; 不能跨文件系统创建硬连接; 目录文件不能创建硬连接;...

谁等了谁
06/26
0
0
浅谈linux性能调优之十九:lvm高级使用

上节引出了“逻辑卷”管理技术,大家都知道它比传统磁盘管理所具有的优势,我这里有一个关于lvm管理的手册“LVM HOWTO”,大多介绍是概念,使用方法。要的话可以给我留言或者在网上找找,练会...

OscerSong
2013/07/30
0
0
Linux学习笔记:存储管理

Linux系统中所有的硬件设备都是通过文件的方式来表现和使用的,我们将这些文件称为设备文件,在Linux下的/dev目录中有大量的设备文件,根据设备文件的不同,又分为字符设备文件和块设备文件。...

何时心安
2017/05/12
0
0
LV2 卷组 特殊文件

两种特殊文件; 设备文件; mknod 符号链接文件; 链接;就是访问一个文件的不同的路径 硬链接; 数据块指针指向同一个数据块的文件; 每次创建硬链接都会增加inode的引用计数 注意;不能跨文...

杨铄
2017/05/27
0
0
linux系统管理之存储管理

存储管理: 这里我们要学介绍两种磁盘阵列: 磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数...

运维小弟qaq
2017/05/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

崛起于Springboot2.X之集成工作流Activiti5.22(42)

声明:该博客主要是Springboot1.X和Springboot2.X集成Activiti5.22版本,并说一下两个版本的搭建不同的地方 技术:Springboot2.0.3+mysql+jpa(自动生成25张表)+Activiti5.22 /然后Springboo...

木九天
7分钟前
0
1
windows环境下搭建rabbitMQ开发环境

windows环境下搭建rabbitMQ开发环境 下载与安装 erlang rabbitmq 是使用erlang语言开发的,所以需要erlang环境; 下载地址 rabbitmq 下载地址 rabbitmq与erlang版本关系 下载之后直接安装即可...

晨猫
18分钟前
0
0
JVM 中的守护线程

特点 通常由JVM启动 运行在后台处理任务,比如垃圾回收等 用户启动线程执行结束或者JVM结束时,会等待所有的非守护线程执行结束,但是不会因为守护线程的存在而影响关闭。 判断线程是否为守护...

小刀爱编程
22分钟前
1
0

参考 极客时间《数据结构与算法之美》

grace_233
35分钟前
2
0
谈谈KMP算法

KMP算法的资料网上已经一大把了,主要用来解决某个文本片段是否包含另一个子串问题。这里假设文本片段的长度n大于子串长度m,如: 文本串为ABCDABGHIJK 子串为 ABCDABE 在传统的暴力解法中当...

FAT_mt
36分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部