分布式存储系统管理装置及方法

文档序号:6434007阅读:182来源:国知局
专利名称:分布式存储系统管理装置及方法
分布式存储系统管理装置及方法技术领域
本申请涉及分布式存储技术领域,尤其涉及一种具有高可用存储失效处理能力的 分布式存储系统管理装置及方法。
背景技术
传统的存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能 的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储系统采 用可扩展的系统结构,通过利用多台存储服务器分担存储负荷,并利用位置服务器定位存 储信息,不仅提高了系统的可靠性、可用性和存取效率,还使得后续的扩展更为便利。
另一方面,在各种应用环境中,存储系统中的数据都是宝贵的财富,各种存储系统 均会致力于保证所存储的数据不因各种原因丢失。在分布式存储系统中,个别存储服务器 的宕机、停机维护或网络故障等问题都有可能导致数据的丢失,甚至可能会导致整个存储 系统的不可用,进而会影响到存储系统所服务的应用系统的可用性。为了避免这种状况的 发生,分布式存储系统中通常采用以下两种存储失效处理机制,同时,这两种机制也都各自 存在一定的缺点。
第一种存储失效处理机制中,是将两个不同的物理存储服务器配置为主从服务 器,例如服务器A (主服务器)和服务器B (从服务器),正常情况下应用系统访问服务器A 进行数据的读取和写入,并且写入服务器A的数据会同步至服务器B ;—旦服务器A发生宕 机等故障,应用系统便切换至服务器B进行数据读写;而在服务器A恢复正常后,再将服务 器B的数据回迁到服务器A上。该机制的缺点在于,首先,正常情况下,从主服务器到从服 务器的数据同步也会存在延时,当主服务器出现故障时,可能会导致小部分数据无法及时 同步到从服务器,从而出现数据丢失;其次,主服务器从故障恢复正常后,需要将从服务器 的数据迁回主服务器,由于此期间从服务器的数据一直在不断写入,所以这个迁回过程会 比较复杂;最后,一旦主服务器、从服务器同时都出现故障,便会导致存储系统完全不可用。
另外一种新近出现的存储失效处理机制中,应用系统在进行数据写入时,是将同 一个数据写入到多个(例如3个)彼此不相关联的服务器上,只要成功写入一定数量(例 如2个)的服务器即认定为写入操作完成;而应用系统在进行数据读取时,便到上述多个服 务器上同时读取,只要从一定数量(例如2个)的服务器上读取成功便认定为读取操作完 成。由上述可以看出,该机制是通过数据备份的数量来弥补可能的服务器故障所造成的存 储失效,其缺点在于,应用系统的数据读取和写入操作都需要同时访问多个服务器,然而写 入操作并不能保证每次写入的数据完全不出差错,而读取操作便可能会读取到不一致的数 据,这样应用系统在读取数据时还需要进行数据校验并修复不正确的数据,因此整个过程 实现比较复杂且会导致系统性能变差。发明内容
本申请的实施例旨在提供一种分布式存储系统管理装置及方法,以解决上述分布式系统中存储失效处理机制所存在的问题。
为实现上述目的,本申请的实施例提供了一种分布式存储系统管理装置,应用于包括N个存储服务器的分布式存储系统,该装置包括分组管理单元、数据写入单元及数据读取单元,其中,
所述分组管理单元用于将所述N个存储服务器中的M个存储服务器分为X个对等序列并形成I个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述N、M、x、y为自然数常量且满足 N>3,2<M<N,x>2,y>l,x*y>M;zS 自然数变量且满足2 彡 z 彡 x ;
所述数据写入单元用于将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;
所述数据读取单元用于从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
本申请的实施例还提供一种分布式存储系统管理方法,应用于包括N个存储服务器的分布式存储系统,并包括以下步骤
S1.将M个存储服务器分为X个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述N、M、x、y为自然数常量且满足N彡3,2<M<N,x彡2,y彡l,x*y彡M;z 为自然数变量且满足2<ζ<χ;
S21.在执行数据写入操作时将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;
S22.在执行数据读取操作时从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
由上述技术方案可知,本申请实施例提供的分布式存储系统管理装置及方法,通过对等序列及虚拟节点组的双重功能划分对存储服务器进行管理,能够保证数据备份在虚拟节点组中分属不同对等序列的存储服务器中,从而在某个对等序列中的存储服务器失效时可以继续由该虚拟节点组中其他对等序列的存储服务器提供数据读写服务。


图1为本申请分布式存储系统管理装置实施例的结构示意图2为本申请分布式存储系统管理方法实施例一的流程图3为本申请分布式存储系统管理方法实施例二的流程图。
具体实施方式
下面将详细描述本申请的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本申请。
图1为本申请分布式存储系统管理装置实施例的结构示意图,如图所示,本实施例的分布式存储系统管理装置11,用于对包括N个存储服务器121 12Ν的分布式存储系统进行管理。分布式存储系统管理装置11进一步包括分组管理单元110,其用于对上述分布式存储系统中的N个存储服务器121 12N进行分组管理,具体包括在存储服务器121 12N中,选取M个存储服务器划分为X个对等序列,每个对等序列中包含一定数量的存储服务器,在一个实施例中,每个对等序列包含的存储服务器的个数相同,当然每个对等序列中包含的服务器的个数也可以不相同;接下来,继续将上述所选取的M个存储服务器划分为I个虚拟节点组,且使得每个虚拟节点组中都包括z个彼此属于不同对等序列的存储服务器;最后,将其余N-M个存储服务器设置为临时存储服务器。上述各字母所表示的量中,N、M、X、y为自然数常量且其取值分别满足N彡3,2彡M < N,X彡2,y彡1, X · y彡M( “ · ”为乘法标记);z为自然数变量且取值满足2彡z彡X。在一个实施例中, z可以是自然数常量,也即,使得每个虚拟节点组中存储服务器的个数相同,在这种情况下, 为了满足每个虚拟节点组中各个存储服务器彼此属于不同对等序列,实际上x、y、M的取值需要满足M = X · y,而此时z = X。
下面结合数组的概念可以更好地理解本实施例中分组管理单元110以对等序列和虚拟节点组来对M个存储服务器进行双重划分的过程。例如,假设数组a[x]w如下
权利要求
1.一种分布式存储系统管理装置,应用于包括N个存储服务器的分布式存储系统,该装置包括分组管理单元、数据写入单元及数据读取单元,其中,所述分组管理单元用于将所述N个存储服务器中的M个存储服务器分为X个对等序列并形成I个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述N、M、X、y为自然数常量且满足N > 3,2<M<N,x>2,y>l,x*y>M;zS自然数变量且满足2彡z彡x ;所述数据写入单元用于将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;所述数据读取单元用于从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
2.如权利要求1所述的分布式存储系统管理装置,其中,还包括数据迁移单元,所述数据迁移单元用于在不可用的存储服务器恢复可用时,将对应的临时存储服务器中存储的数据迁回该恢复可用的存储服务器;并用于在不可用的存储服务器无法恢复可用时,将该存储服务器所在的虚拟节点组里可用的存储服务器中存储的数据迁移至选择的一个临时存储服务器,并以该临时存储服务器替换所述不可用的存储服务器。
3.如权利要求2所述的分布式存储系统管理装置,其中,还包括重试控制单元及失效判断单元,所述重试控制单元用于控制所述数据写入单元及所述数据读取单元在执行对应的数据写入或读取操作失败时按第一预定次数重试该数据写入或读取操作;所述失效判断单元用于在所述重试控制单元控制的重试达到所述第一预定次数时判断对应的存储服务器为不可用,并将该判断结果通知所述数据写入单元及所述数据读取单元;以及用于在存储服务器被判断为不可用后,利用所述重试控制单元按第二预定次数重复检测该存储服务器的状态,在检测为可用时判断该存储服务器恢复可用或者在检测为不可用达到所述第二预定次数时判断该存储服务器无法恢复可用,并将该判断结果通知所述数据迁移单元。
4.如权利要求1所述的分布式存储系统管理装置,其中,还包括数据路由单元,所述数据路由单元用于确定所述数据写入单元写入数据以及所述数据读取单元读取数据时所选择的虚拟节点组。
5.如权利要求4所述的分布式存储系统管理装置,其中,所述数据路由单元还包括路由选择子单元,所述路由选择子单元用于分别赋以0、1.....y-1的编号管理所述y个虚拟节点组,并根据将待写入的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为所述数据写入单元写入该数据的虚拟节点组,以及根据将待读取的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为所述数据读取单元读取该数据的虚拟节点组。
6.如权利要求1所述的分布式存储系统管理装置,其中,x、y、M的取值满足M= x*y0
7.—种分布式存储系统管理方法,应用于包括N个存储服务器的分布式存储系统,其中,该方法包括以下步骤S1.将M个存储服务器分为X个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述 N、M、X、y 为自然数常量且满足N>3,2<M<N,x>2,y>l,x*y>M;zSgS数变量且满足2 < z < X ;S21.在执行数据写入操作时将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;S22.在执行数据读取操作时从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
8.如权利要求7所述的分布式存储系统管理方法,其中,还包括以下步骤S31.在不可用的存储服务器恢复可用时,将对应的临时存储服务器中存储的数据迁回该恢复可用的存储服务器;S32.在不可用的存储服务器无法恢复可用时,将该存储服务器所在的虚拟节点组里可用的存储服务器中存储的数据迁移至选择的一个临时存储服务器,并以该临时存储服务器替换所述不可用的存储服务器。
9.如权利要求8所述的分布式存储系统管理方法,其中,还包括以下步骤S41.在执行数据写入或读取操作失败时重试该数据写入或读取操作;S42.在步骤S41重试达到第一预定次数时判断对应的存储服务器为不可用;S43.在存储服务器被判断为不可用后,重复检测该存储服务器的状态,在检测为可用时判断该存储服务器恢复可用并转步骤S31,在检测为不可用且达到第二预定次数时判断该存储服务器无法恢复可用并转步骤S32。
10.如权利要求7所述的分布式存储系统管理方法,其中,还包括以下步骤分别赋以O、1.....y-ι的编号管理所述y个虚拟节点组,并在步骤S21执行数据写入操作时,根据将待写入的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为写入该数据的虚拟节点组;以及在步骤S22执行数据读取操作时,根据将待读取的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为读取该数据的虚拟节点组。
全文摘要
本申请公开了一种分布式存储系统管理装置,应用于包括N个存储服务器的分布式存储系统,该装置将其中M个存储服务器分为x个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器。本申请还相应公开了一种分布式存储系统管理方法。本申请实施例提供的分布式存储系统管理装置及方法,通过对等序列及虚拟节点组的双重功能划分对存储服务器进行管理,能够保证数据备份在虚拟节点组中分属不同对等序列的存储服务器中,从而在某个对等序列中的存储服务器失效时可以继续由该虚拟节点组中其他对等序列的存储服务器提供数据读写服务。
文档编号G06F3/06GK103019614SQ20111028580
公开日2013年4月3日 申请日期2011年9月23日 优先权日2011年9月23日
发明者李智慧, 何坤, 余俊, 周异 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1