基于对象存储设备的负载平衡方法

文档序号:6573025阅读:302来源:国知局
专利名称:基于对象存储设备的负载平衡方法
技术领域
本发明属于计算机存储技术领域,具体涉及一种基于对象存储设备的负载平衡方法。
背景技术
随着计算机技术和网络通信技术的飞速发展,全球信息存储量以每年超过30%的速度急剧增长,存储在硬盘上的数据增长率更是高达114%。面对数据量的爆炸性增长以及人们对存储系统的容量、安全性、可扩展性和可用性等方面的需求,传统的直接存储模式(Direct Access Storage,DAS)已显得力不从心,这使得网络存储成为存储技术领域必然的趋势。当前网络存储的主要架构有附网存储(NAS,Network Attached Storage)和存储区域网(SAN,Storage Area Network)。NAS和SUN虽然解决了直接存储的许多问题,但是也有其自身的局限性,在一定程度上不能完全满足存储技术发展的要求。面向对象存储技术(OBS,Object Basedstorage)是以数据为中心网络存储模式,采用了对象作为基本传输单位,使数据存储和元数据管理分离,突破了NAS中常见的数据路径瓶颈和SAN的文件共享限制,并在安全性、跨平台性、可用性和可扩展性等特性中更胜一筹,可能成为下一代互联网络存储的标准。
对象存储系统(OBSS,Obiect-Based Storage System)将对象接口和智能存储设备相结合,可达到PB级的存储规模。而随着存储系统规模的扩大和使用频率的增强,存储节点间负载不均衡的现象不可避免的会显现,成为整个系统的瓶颈,严重时甚至会导致整个系统的性能急剧下降。

发明内容
本发明提供一种基于对象存储设备的负载平衡方法,目的在于通过合理调度I/O负载和热点数据迁移,使系统负载均衡分布于各存储节点间,以充分发挥各高性能存储设备节点的性能优势。
本发明的一种基于对象存储设备的负载平衡方法,顺序包括下述步骤(1)主动负载检测步骤,各设备节点主动进行自身的负载检测,并将负载因子发送到元数据服务器;(2)设备负载统计步骤,按照归一化方法计算各设备节点的负载,并依据负载情况对各设备节点进行排序;(3)对象迁移和副本管理步骤,对负载值超过迁移阈值的设备节点作为热点对象并对其进行迁移和副本管理;(4)对象属性扩展步骤,对OSD SCSI协议标准的属性页进行了扩展,自定义一个负载属性页,预定义负载值、热度、主副本判断、副本信息和负载权值这五个属性项,将需要的各设备节点的负载信息、迁移信息以对象属性的方式保存;(5)I/O请求处理步骤,依据对象的分布信息,在各设备节点间调度I/O请求,使得各设备节点负载均衡。
所述的基于对象存储设备的负载平衡方法,其特征在于所述主动负载检测步骤顺序包括下述过程(1)各设备节点从/proc虚拟文件系统中读取系统队列长度以及磁盘、CPU、内存和网络的负载信息;(2)计算各设备节点负载因子;(3)对各设备节点负载因子进行判断,负载因子≤30,延时10秒;若30<负载因子≤60,延时30秒;负载因子>60,延时60秒;
(4)再次从/proc虚拟文件系统中读取系统队列长度以及磁盘、CPU、内存和网络的负载信息;(5)向元数据服务器发送各设备节点负载因子,转过程(1)。
所述的基于对象存储设备的负载平衡方法,其特征在于所述设备负载统计步骤顺序包括下述过程(1)定义负载因子,将各设备节点负载因子LOAD定义为LOAD=W1*Lrql+W2*Ldisk+W3*Lcpu+W4*Lmem+W5*Lnet进行归一化管理,Lrql、Ldisk、Lcpu、Lmem和Lnet分别为对象存储设备的系统队列长度、磁盘负载、CPU负载、内存负载和网络负载,W1、W2、W3、W4、W5为对应的权值,且∑Wi(i=1,2,3,4,5)=1;(2)设定初始负载权值,以文件系统标准测试程序Iozone对各设备节点的负载全面测试后得到的负载值为依据设置Wi初始值;(3)判断单项负载状况;(4)根据负载信息修正负载权值Wi,连续五次检测单项负载值均大于80或小于20,则其对应权值增加或降低10%,否则不变;(5)计算各设备节点负载因子;(6)向元数据服务器发送各设备节点负载因子;(7)元数据服务器按各设备节点负载因子大小进行排序,维护升序设备队列,转过程(3)。
所述的基于对象存储设备的负载平衡方法,其特征在于所述对象迁移和副本管理步骤顺序包括下述过程(1)设定迁移阈值,该迁移阈值为进行迁移的临界条件;(2)检测负载,检测各设备节点负载,并统计各设备节点最近十次的负载均值;
(3)判断负载均值,对各设备节点最近十次负载均值进行判断,若该均值大于迁移阈值,转过程(4),否则转过程(5);(4)元数据服务器从邻近选择负载因子最小的设备节点作为迁移目标,对对象进行迁移;迁移完成后元数据服务器更新副本信息;(5)若最近十次负载均值小于阈值的一半,删除副本,更新对象元数据信息,否则,转过程(2)。
所述的基于对象存储设备的负载平衡方法,其特征在于所述对象属性扩展步骤顺序包括下述过程(1)确定扩展方式,确定使用临时属性扩展方式;(2)规定各设备节点的属性页码,各设备节点的属性页码为C000 0000h到EFFF FFFFh,即D=C000 0000h,则D+5h表示C000 0005h;(3)定义负载属性页结构,定义负载值、热度、主副本判断、副本信息和负载权值这五个属性项。
所述的基于对象存储设备的负载平衡方法,其特征在于所述I/O请求处理步骤顺序包括下述过程(1)判断用户请求类型,读请求,进行过程(2);写请求,进行过程(3);更新请求,进行过程(4);(2)判断请求的对象是否存在副本,存在则选择轻负载副本读取,转过程(5);否则直接从该对象读取,转过程(5);(3)根据文件大小决定分片数目N,元数据服务器选择系统中负载因子最低的N个设备节点进行写操作,转过程(5);(4)判断对象的主副本信息后,对对象主本进行更新操作,更新完成后,再更新对象所有副本,进行下一过程;(5)更新元数据信息和对象属性信息。
本发明适用于基于对象的大规模存储系统,具有以下特点(1)对象存储设备主动获取各项负载、发送负载值;(2)各项负载的权值依据实测数据,并可动态修正;(3)通过扩展对象的负载值属性、热度属性、主副本判断属性和副本信息属性提供决策信息;(4)通过负载检测和属性扩展为元数据服务器进行I/O操作的流程进行优化调度提供决策依据;(5)根据动态负载信息实现热点数据的负载迁移;本发明不仅可以实现系统的负载均衡,同样适用于重要数据的备份选择以及元数据服务器的后备节点选择等需要动态选择设备的应用。


图1为本发明的流程框图;图2为本发明的主动负载检测步骤流程图;图3为本发明的负载统计步骤流程图;图4为本发明对象迁移和副本管理步骤流程图;图5为本发明的对象属性扩展步骤流程图;图6为本发明的扩展属性页结构示意图;图7为本发明的I/O请求处理步骤流程图。
具体实施例方式
下面结合附图和实施例对本发明进一步详细说明。
图1为本发明的流程框图。本发明包括(1)主动负载检测步骤;(2)设备负载统计步骤;(3)对象迁移和副本管理步骤;(4)对象属性扩展步骤;(5)I/O请求处理步骤。
图2为本发明的主动负载检测步骤流程图。从/proc虚拟文件系统中读取的负载信息;计算负载因子,对各设备节点负载因子进行判断,若负载因子较高,则说明设备处于忙碌状态,应减少负载统计的次数,否则说明设备处于空闲状态,可以增加负载统计次数,设定负载因子≤30,延时10秒;若30<负载因子≤60,延时30秒;负载因子>60,延时60秒;再次从/proc虚拟文件系统中读取系统队列长度、磁盘、CPU、内存和网络的负载信息;向元数据服务器发送各设备节点的负载因子;再次依据负载因子判断延时,如此循环。
图3为本发明的负载统计步骤流程图。将存储设备的负载因子LOAD定义为LOAD=W1*Lrql+W2*Ldisk+W3*Lcpu+W4*Lmem+W5*Lnet进行归一化管理,Lrql、Ldisk、Lcpu、Lmem和Lnet分别为对象存储设备的系统队列长度、磁盘负载、CPU负载、内存负载和网络负载,W1、W2、W3、W4、W5为对应的权值,且∑Wi(i=1,2,3,4,5)=1;计算负载值时将五项负载均转换为以100为单位所占的比例,由∑Wi=1可知负载值LOAD大于等于零小于等于一百。以Iozone对各设备节点的负载全面测试后得到系统请求队列长度的均值为3.280,最大值为7.806,CPU、内存、网络带宽的使用率均值分别为33.0781%、58.0078%、24.4531%,磁盘I/O吞吐量均值为46.1016MB/S,使用率均值为76.836%。选定W1为0.4,可得一组具有普适性的负载初始权值
;判断单项负载状况后,根据负载信息修正负载权值Wi,若某项负载在连续的五次检测中负载值均大于80或小于20,则其对应权值增加或降低10%,否则不变;计算各设备节点负载因子后向元数据服务器发送各设备节点负载因子;元数据服务器按各设备节点负载因子大小进行排序,维护升序设备队列。
图4为本发明的对象迁移和副本管理步骤流程图。热点对象定义为频繁进行读/写操作的对象,对象的频繁读/写必然导致对应存储设备节点负载的提升,对各设备节点设定迁移阈值,该迁移阈值为进行迁移的临界条件;检测各设备节点的负载情况,并统计、计算各设备节点最近十次的负载均值;判断负载均值,对各设备节点进行判断,若该均值大于迁移阈值,进行对象的迁移,对象迁移时元数据服务器从邻近选择负载因子最小的设备节点作为迁移目标,对对象进行迁移;迁移完成后元数据服务器更新副本信息;若最近十次负载均值小于阈值的一半,删除副本,更新对象元数据信息。
热点对象定义为频繁进行读/写操作的对象,阈值为进行迁移的临界条件,热度为对象操作的频繁程度,对对象的每一次读/写操作,热度加1,1分钟内没有读/写操作,热度减1;检测热度,若热度大于迁移阈值,则元数据服务器从邻近设备节点中选择负载因子最小的节点作为迁移目标,对其进行迁移;迁移完成后元数据服务器更新副本信息;若是读操作,将读请求迁移到轻载节点的对象副本,若是写操作,则需要更新所有副本;检测热度,若热度小于阈值的一半,则删除副本,更新元数据信息。
图5为本发明的对象属性扩展步骤流程图。功能为将本发明需要的负载信息、迁移信息以对象属性的方式保存。在OSD SCSI协议标准中,对象属性用许多个属性页来描述,每个属性页又由许多具体的属性项组成,属性页由属性页号Page Number来确定,属性项对应有属性号AttributeNumber,这样,具体一个属性项用二元组(Page Number,Attribute Number)来索引。对象属性按照存在时间的相对长短,可分为永久属性和临时属性,本发明中负载属性页中的各属性项均体现的是一段时间内的对象访问特征,适合用临时属性来描述;规定负载属性页的页码为C000 0000h到C000 FFFFh,即D=C000 0000h,则D+5h表示C000 0005h。
图6为本发明的负载属性页结构。对OSD SCSI协议标准的属性页进行扩展,自定义一个负载属性页,根据本发明的需求,预定义负载值、热度、主副本判断、副本信息和负载权值这五个属性项,其余属性项保留做今后扩展。
负载值属性项保存本发明设备负载统计步骤所得负载因子,由一个整型数据来描述,占四个字节。
热度属性项保存热度,由一个整型数据来描述,占四个字节,热度大表示操作频繁,由于热点数据主要由大量读并发产生,故可以通过副本策略来分散热度。热度超过设定阈值后,将对象的一个副本迁移到轻载节点上,若进行一次迁移后热度仍然较大,则进行第二次迁移。
主副本判断属性项用来判断对象是主本还是副本,由于只进行单一的判断,故设置为字符型数据,占用一个子节。写操作只在主本上进行,完成后再跟新副本信息。
副本信息属性项保存了对象是否存在副本,存在多少副本等信息,占用二十个字节。对于由于热点数据产生的副本,若一段时间后热点数据的热度下降至某一阈值,根据局部性原理,可认为热点已经消失,可删除副本。
负载权值属性项保存了本发明统计的五项负载对应的负载权值,每个权值由一个浮点型变量描述,占四个字节,五项负载占用二十个字节,并保留二十个字节作扩展使用。
图7为本发明的I/O请求处理步骤流程图。对象存储系统中,热点数据的产生几乎是由大量读操作并发而产生的,系统中保持多个副本后读/写负载可以分离,读操作可以在任何副本上进行,而更新操作只能应用于主本,且更新操作进行时所有读操作需要失效,待主本的更新操作完成并更新副本后,读操作才能重新开始。重要数据因可靠性的要求会存在多个副本,副本的大量存在为负载平衡和利用对象属性信息提供了很好的应用基础。I/O请求到达后,首先判断请求类型,请求类型可以分为读请求、写请求和更新请求。I/O为读请求时,判断是否存在副本,存在副本情况下,元数据服务器依据当前负载记录找出拥有副本的对象存储设备中负载最低的设备,将I/O请求引导至该设备;否则,不考虑负载状况,直接从拥有对象的存储设备中读取。I/O为写请求时,元数据服务器首先根据文件大小决定对象的分片数目N,再依据当前负载记录和历史负载记录从所有设备节点中选择负载最低的N个作为对象的存储节点,存储对象。I/O请求为更新请求时,更新操作只能应用于主本,主本的更新操作完成后再进行副本的更新。所有操作完成后更新元数据和对象属性信息。
权利要求
1.一种基于对象存储设备的负载平衡方法,顺序包括下述步骤(1)主动负载检测步骤,各设备节点主动进行自身的负载检测,并将负载因子发送到元数据服务器;(2)设备负载统计步骤,按照归一化方法计算各设备节点的负载,并依据负载情况对各设备节点进行排序;(3)对象迁移和副本管理步骤,对负载值超过迁移阈值的设备节点作为热点对象并对其进行迁移和副本管理;(4)对象属性扩展步骤,对OSD SCSI协议标准的属性页进行了扩展,自定义一个负载属性页,预定义负载值、热度、主副本判断、副本信息和负载权值这五个属性项,将需要的各设备节点的负载信息、迁移信息以对象属性的方式保存;(5)I/O请求处理步骤,依据对象的分布信息,在各设备节点间调度I/O请求,使得各设备节点负载均衡。
2.如权利要求1所述的基于对象存储设备的负载平衡方法,其特征在于所述主动负载检测步骤顺序包括下述过程(1)各设备节点从/proc虚拟文件系统中读取系统队列长度以及磁盘、CPU、内存和网络的负载信息;(2)计算各设备节点负载因子;(3)对各设备节点负载因子进行判断,负载因子≤30,延时10秒;若30<负载因子≤60,延时30秒;负载因子>60,延时60秒;(4)再次从/proc虚拟文件系统中读取系统队列长度以及磁盘、CPU、内存和网络的负载信息;(5)向元数据服务器发送各设备节点负载因子,转过程(1)。
3.如权利要求1所述的基于对象存储设备的负载平衡方法,其特征在于所述设备负载统计步骤顺序包括下述过程(1)定义负载因子,将各设备节点负载因子LOAD定义为LOAD=W1*Lrql+W2*Ldisk+W3*Lcpu+W4*Lmem+W5*Lnet进行归一化管理,Lrql、Ldisk、Lcpu、Lmem和Lnet分别为对象存储设备的系统队列长度、磁盘负载、CPU负载、内存负载和网络负载,W1、W2、W3、W4、W5为对应的权值,且∑Wi(i=1,2,3,4,5)=1;(2)设定初始负载权值,以文件系统标准测试程序Iozone对各设备节点的负载全面测试后得到的负载值为依据设置Wi初始值;(3)判断单项负载状况;(4)根据负载信息修正负载权值Wi,连续五次检测单项负载值均大于80或小于20,则其对应权值增加或降低10%,否则不变;(5)计算各设备节点负载因子;(6)向元数据服务器发送各设备节点负载因子;(7)元数据服务器按各设备节点负载因子大小进行排序,维护升序设备队列,转过程(3)。
4.如权利要求1所述的基于对象存储设备的负载平衡方法,其特征在于所述对象迁移和副本管理步骤顺序包括下述过程(1)设定迁移阈值,该迁移阈值为进行迁移的临界条件;(2)检测负载,检测各设备节点负载,并统计各设备节点最近十次的负载均值;(3)判断负载均值,对各设备节点最近十次负载均值进行判断,若该均值大于迁移阈值,转过程(4),否则转过程(5);(4)元数据服务器从邻近选择负载因子最小的设备节点作为迁移目标,对对象进行迁移;迁移完成后元数据服务器更新副本信息;(5)若最近十次负载均值小于阈值的一半,删除副本,更新对象元数据信息,否则,转过程(2)。
5.如权利要求1所述的基于对象存储设备的负载平衡方法,其特征在于所述对象属性扩展步骤顺序包括下述过程(1)确定扩展方式,确定使用临时属性扩展方式;(2)规定各设备节点的属性页码,各设备节点的属性页码为C000 0000h到EFFF FFFFh,即D=C000 0000h,则D+5h表示C000 0005h;(3)定义负载属性页结构,定义负载值、热度、主副本判断、副本信息和负载权值这五个属性项。
6.如权利要求1所述的基于对象存储设备的负载平衡方法,其特征在于所述I/O请求处理步骤顺序包括下述过程(1)判断用户请求类型,读请求,进行过程(2);写请求,进行过程(3);更新请求,进行过程(4);(2)判断请求的对象是否存在副本,存在则选择轻负载副本读取,转过程(5);否则直接从该对象读取,转过程(5);(3)根据文件大小决定分片数目N,元数据服务器选择系统中负载因子最低的N个设备节点进行写操作,转过程(5);(4)判断对象的主副本信息后,对对象主本进行更新操作,更新完成后,再更新对象所有副本,进行下一过程;(5)更新元数据信息和对象属性信息。
全文摘要
基于对象存储设备的负载平衡方法,属于计算机存储技术领域,目的在于通过合理调度I/O负载和热点数据迁移,使系统负载均衡分布于各存储节点间,以充分发挥各高性能存储设备节点的性能优势。本发明顺序包括(1)主动负载检测步骤;(2)设备负载统计步骤;(3)对象迁移和副本管理步骤;(4)对象属性扩展步骤;(5)I/O请求处理步骤。本发明对对象存储设备(OSD)的SCSI协议标准进行了扩展,借助对象存储模式的优点,为I/O调度提供决策依据,充分利用所有存储设备节点的处理能力,达到负载均衡,降低存储系统响应时间,提高存储系统吞吐率。
文档编号G06F17/30GK101013387SQ200710051509
公开日2007年8月8日 申请日期2007年2月9日 优先权日2007年2月9日
发明者王芳, 冯丹, 施展, 陈亮, 彭万利, 岳银亮 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1