七、逻辑卷管理
逻辑卷管理(简称LVM),是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层。
通过LVM管理可以轻松管理磁盘分区,如:若干个磁盘分区连接为一整块的卷组,形成一个存储池。管理员可以在卷组上随意创建逻辑卷组,并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便调整卷组大小,并且可以按照磁盘存储的方式进行命名、管理和分配。
LVM的配置信息记录在叫做VGDA(Volume Group Descriptor Area)的区域,LVM就是通过读取这个区域来获取LVM的配置信息,比如:PP的大小、初始偏移、PV的数量和信息、排列顺序以及映射关系等。LVM初始化的时候会读取这些信息,然后在缓存中生成对应的映射公式,从而完成LV的挂载。挂载之后就可以接受IO了。比如上层访问某个LV的LBA 0xFF地址,那么LVM就通过缓存中的映射关系判断这个地址对应的实际物理磁盘在哪儿或者哪几个实际地址。假设这个地址实际对应了磁盘a的LBA 0xAA地址,那么就会通过磁盘控制器驱动直接给这个地址发送数据,而这个地址被RAID控制器接收后,可能还要做一次转换。因为OS的“物理磁盘”可能对应真正的存储总线上的多块物理磁盘,这个映射要通过RAID控制器来做了,原理都是一样的。
卷管理软件就是运行在OS操作系统磁盘控制器驱动程序之上的一层软件程序,它的作用是实现RAID卡硬件管理磁盘空间所实现不了的功能,比如随时扩容等。
从底向上依次是物理磁盘、磁盘控制器、IO总线、总线驱动、磁盘控制器驱动、卷管理软件程序、OS磁盘管理器中看见的磁盘设备。
八、文件系统IO
图中的IO Manager是操作系统内核的一个模块,专门用来管理IO,并协调文件系统、卷、磁盘驱动程序各个模块之间的运作。整个流程解释如下:
1) 某时刻,某应用程序调用文件系统接口,准备写入某文件某个字节开始的若干字节。
2) IO Manager最终将这个请求发送给文件系统模块。
3)文件系统将某个文件对应的逻辑偏移映射成卷的LBA地址偏移。
4)文件系统向IO Manager请求调用卷管理软件模块的接口。
5)卷管理软件将卷对应的LBA地址偏移翻译映射成实际物理磁盘对应的LBA地址偏移,并请求磁盘控制器驱动程序。
6)IO Manager向磁盘控制器驱动程序请求对应LBA地址段的数据从内存写入到某块物理磁盘。
Windows系统的IO简化流程图
[email protected] liupan
[email protected]