发明名称 一种存储系统自动精简配置的方法
摘要 本发明提供一种存储系统自动精简配置的方法,自动精简配置通常用于存储系统中,旨在给操作系统提供大容量的虚拟驱动器。自动精简技术可以虚拟提供超过实际的容量空间给上层,即让操作系统认为可以使用的容量大于实际提供给它的实际容量。这主要是因为企业中的数据往往是在逐渐增加,而不是一开始就有这么多,采用自动精简配置可以提高存储容量的利用率。自动精简配置存储方案能够给操作系统提供大容量的虚拟驱动器。操作系统在分配磁盘空间时认为有这么大的磁盘空间,因此随着企业数据量的增加,企业可以考虑情况分步增加存储设备,不需要对操作系统进行调整。这就相当于是实现了存储设备的热插拔功能,可以提高磁盘设备的存储效率和灵活性。
申请公布号 CN102968279B 申请公布日期 2016.06.08
申请号 CN201210453207.5 申请日期 2012.11.13
申请人 浪潮电子信息产业股份有限公司 发明人 王恩东;张宇;文中领
分类号 G06F3/06(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 代理人
主权项 一种存储系统自动精简配置的方法, 其特征在于系统包括5个功能模块,它们分别为:池组织模块;精简分配模块;精简回收模块;动态扩容模块;空间预警模块,各功能模块说明如下:(1)池组织模块:池组织就是对每一个分配的存储单元数据的记录和管理,本系统中,采取逻辑上管理两个设备:数据设备和元数据设备;在池组织模块中,元数据的管理是比较复杂的,因为自动精简配置需要管理数据设备上每一个数据块,而且还要有结构来描述存储池和精简卷,所以需要大量的元数据来管理这些内容,因此,单独分配一个设备来存储元数据的信息,这个设备称为元数据设备,元数据设备用以存储数据设备中存储单元的分配信息以及存储池操作产生的元数据信息,而数据设备,则是按照存储单元粒度进行切割的实际存储设备,该设备中无元数据信息;由此可见,池组织模块元数据的管理需要管理两个设备,元数据设备和数据设备,因此,需要针对这两个设备分别管理,在这里就需要一套空间映射space‑map的管理机制来记录每个存储单元的映射情况,辅助元数据的管理,同时,这套机制不光可以辅助实现元数据的管理,还能够充当新存储单元的分配器,存储单元的粒度也是在池组织模块中定义的;元数据管理的空间映射的管理机制包含两种实现方式:管理实际设备——数据设备的实现方式;管理元数据空间——元数据设备的实现方式;在池组织模块中,元数据管理包含这两种实现方式,元数据的管理需要这两种实现方式共同作用,从而实现池组织元数据全面的管理;(2)精简分配模块:在精简分配模块中,系统使用写时分配技术,物理磁盘容量只有在应用程序写真实数据到逻辑卷时才进行分配,简单理解就是只有在有写请求的时候,才会按需从存储池中分配新的存储单元给该请求;在精简分配模块中,当有写请求时,针对该请求所对应的存储单元:首先,要查找元数据中保存的元数据信息,这里分为两种情况:a)找到,说明该存储单元已完成映射,因此直接将其映射到逻辑卷;b)未找到,说明该存储单元未完成映射,则需要对该请求进行延迟处理,随后在精简分配主线程中完成该请求的操作;    针对未找到的情况,还需后续处理该写请求,主要是分配新的存储单元,完成该存储单元的映射,并能在下一次的处理中,因为其已完成映射,所以就能完成这个写请求的操作;(3)精简回收模块:文件系统层获悉空间释放情况发通知给下层块设备,对应本发明中存储池产生的逻辑卷,逻辑卷接收释放通知,丢弃相应的存储单元;精简回收包括两个层面:应用程序所在的文件系统层;实际数据所在的逻辑卷层,而这其中一个重要的问题是文件系统与逻辑卷的通信机制问题,文件系统不会有精简的“意识”,当一份空间不再被使用时,没有现成的机制去通报这些情况,而逻辑卷也不会主动回收空间,除非你“告诉”它,因此就需要设计一套文件系统与逻辑卷的通信机制;针对通信机制的问题,要设计文件系统与底层块驱动,通过支持discard来实现文件系统与逻辑卷的通信,目前,discard支持是为优化linux内核对SSD的支持,而在ext4和xfs文件系统是添加的一套机制;discard是linux的术语,是为通知存储设备这些扇区不再存储有效数据,其本质就是文件系统通过discard告诉底层的SSD盘哪些扇区可以被删除,使用类似的这种通信机制去修改SCSI协议,能更好的支持自动精简配置的精简回收功能,并且不需要采取第三方工具;因此,设计类似discard支持的通信机制,在精简回收模块,当文件系统删除某个文件后,通过discard通知逻辑卷该文件对应的一块区域不再存储有效数据,在逻辑卷所属的存储池层进行回收;(4)动态扩容模块:实现存储池容量的扩充;动态扩容主要逻辑:a)根据上层传入的扩容参数或扩容完的映射表信息,计算扩容完的存储单元的数量;b)使用空间映射机制完成扩容的实现,即实现存储池,也就是池组织模块中数据设备的扩容;c)计算底层存储池需要扩容的存储单元的数量;循环逐次处理每个存储单元的初始化信息,这里主要是在数据设备元数据中分配新的存储单元记录数据块映射的扩容信息;然后保存扩容的信息;扩容循环结束后,修改数据设备的容量大小;提交存储池的元数据刷新至磁盘;(5)空间预警模块:底层或内核态检测预警信息,有则通知用户层或用户态,用户层或用户态监听预警信息;空间预警模块主要实现当空间容量已经达到预警阀值,由底层或内核态向用户层或用户态报警;空间预警模块要分为两部分,分别为内核态和用户态,需要实现内核态和用户态的通信;空间预警模块主要逻辑为:1)在内核态,检测空间容量是否达到预警阀值;2)当达到预警阀值,向用户态发送预警信息;3)用户态监测预警信息,接收预警信息,通知管理员;但是如何将内核态的信息,捕捉后,通知用户态,是空间预警模块的最基本技术点。
地址 250014 山东省济南市高新区舜雅路1036号