本发明专利技术提供了一种对象存储系统中对象一致性操作的方法,采用多副本的方式保存对象,同一对象的不同副本存储在不同的OSD上;在同一对象的副本中选定一个为主副本,其余作为从副本,所有修改操作均发给主副本;主副本将修改操作写入内存,然后将修改操作转发给从副本;从副本接收到修改操作后,应答主副本;主副本受到应答后,应答客户端;主副本控制主从的磁盘操作。本发明专利技术通过主副本和从副本之间的确认信号的交换,使得每次对元数据的修改,都能使得主从副本之间保持一致,保证了副本间的一致性。
【技术实现步骤摘要】
本专利技术涉及计算机存储领域,具体来说,涉及一种基于对象存储系统的多副本访问方法。
技术介绍
对象存储技术对外提供对象接口,对象存储系统具有很强的可扩展性、可共享性、 跨平台行性、高可靠性以及高可用性等良好性能。对象存储系统具有用户多、网络环境复杂和存储对象类型多种多样等特点,这对对象存储系统在提供持续稳定、高性能的存储服务方面提出了更高的要求。为了保障对象存储系统能够稳定有效地提供高性能存储服务,将副本技术引入对象存储系统,通过创建对象副本,将副本放置在合适的存储节点上,实现I/ 0请求的就近响应,从而达到降低访问延迟、节约网络带宽、提高系统性能的目的。多副本的对象存储系统中,保证副本间的一致性是核心的问题,大多数系统都是通过在MDS的控制下进行写操作的,这样的写性能较低。分布式的系统中,部件之间的网络交互比较频繁,一种操作往往依赖于其他部件的操作结果,单纯通过顺序操作的方式会大大降低系统的效率,因此将任务划分成独立的阶段,当需要等待其他部件的操作结果时,将资源挂起,等待对方完成后唤醒,继续处理,这样大大增加服务器的并发处理能力,提高了系统的性能。
技术实现思路
本专利技术的目的在于提供一种高可靠性,高可用性的基于对象存储的对象访问方法。,采用多副本的方式保存对象,同一对象的不同副本存储在不同的OSD上;在同一对象的副本中选定一个为主副本,其余作为从副本,所有修改操作均发给主副本;主副本将修改操作写入内存,然后将修改操作转发给从副本;从副本接收到修改操作后,应答主副本;主副本受到应答后,应答客户端;主副本控制主从的磁盘操作。优选的,所述主副本控制主从的磁盘操作过程为主副本像从副本发出写磁盘命令,并且进行本地写磁盘;从副本接到写磁盘命令后,将数据写入磁盘,并将写入的结果应答主副本;主副本收到应答后检查是否出现错误,并处理各个从副本的写磁盘错误。优选的,所述客户端用于用户与系统进行数据交互,客户端提供通用文件系统接口,多客户访问时,采用网络文件系统。优选的,所述客户端向MDS获取对象的存储信息及副本信息;如果是读操作,则选择可用的副本发送读请求;如果是写操作,则向主副本发送写请求。优选的,所述OSD响应客户端的请求,如果是读,则读取本地对象信息,返给客户端;如果是写,则先将数据接收到内存,然后转给给从副本,从副本接收到内存后,应答主副本,主副本应答客户端,主副本后端控制主和从的磁盘操作。优选的,所述操作在每一阶段绑定一类线程;所述阶段包括本地数据接收,本地内存接收,转发从副本,本地底部处理和磁盘操作。本专利技术通过主副本和从副本之间的确认信号的交换,使得每次对元数据的修改, 都能使得主从副本之间保持一致,保证了副本间的一致性。附图说明图1为系统的交互模型工作过程图。图2写操作流程3分阶段处理4线程与阶段的关系图具体实施例方式本专利技术的数据操作处理过程如下1内存操作主副本接收客户端的写操作,并将页面缓存在本地;主副本将页面转发给从副本, 接收到从副本的应答后,应答客户端写成功。应答客户端后,主从副本的内存是一致的。2磁盘操作主副本将内存中的脏页面写入磁盘,并告知从副本写入磁盘。主副本只将应答客户端的脏页面写入磁盘,并告知从副本写入相同的页面,保证主从副本磁盘的一致性。3分阶段处理主副本通过分阶段处理方法,提高处理能力,将每一阶段绑定一类线程,资源只阻塞在队里上,线程不因资源阻塞。将阶段分为本地数据接收、本地内存接收、转发从副本、 本地底部处理、磁盘操作几个阶段,与网络相关的处理通过专门模块完成。数据交互的过程包括客户端与系统的外部数据交互以及系统内部的数据交互。外部数据交互过程为用户通过客户端与系统进行数据交互,客户端提供通用文件系统接口,使用时与本地文件系统没有区别,多个客户端访问时,与NFS方式类似。内部数据交互过程为客户端向MDS获取对象的存储信息及副本信息;如果是读操作,选择可用的副本发送读请求,如果是写操作,向主副本发送写请求;OSD响应客户端的请求,如果是读,读取本地对象信息,返给客户端,如果是写,先将数据接收到内存,然后转给给从副本,从副本接收到内存后,应答主副本,主副本应答客户端,主副本后端控制主和从的磁盘操作。下面结合附图做更细地描述图1为系统的交互模型工作过程图。客户端从MDS获取对象的存储位置信息,向主副本发起写操作;主副本将数据接受后,向从副本转发;从副本接受数据后,应答主副本;主副本得到全部从副本应答后,向4客户端应答写完成。图2为系统的主副本写内部处理过程。1接受来自客户端的页面,通过网络层获取; 2进行本地的内存操作;3将页面转发给从副本;4进行磁盘操作。图3为系统的分阶段处理方式。1第一阶段,处理本地的内存操作并将数据转发给从副本;2第二阶段,应答客户端,组织需要写入磁盘的页面,触发第三阶段;3第三阶段,将需要写入的页面号转发给从副本,本地进行磁盘操作;4第四阶段,处理写磁盘失败的副本。图4为各阶段与线程的对应关系。1第一阶段由threadjnaster处理,通过网络层接受数据,保存在本地的内存结构中,然后将数据转发给从副本,在网络的回调处理中,触发第二阶段的处理;2第二阶段由threacLbottom处理,所有副本的写内存完成后,向客户端应答写成功,将完成的页面进行处理后,触发第三阶段的处理;3第三阶段由threacLdisk处理,将已经操作完成的页面通知从副本写入磁盘,本地进行磁盘写入操作,在网络的回调函数中,触发第四阶段的处理;4第四阶段由threacLbottom处理,如果存在副本写入失败时,进行错误处理。权利要求1.,其特征在于采用多副本的方式保存对象,同一对象的不同副本存储在不同的OSD上; 在同一对象的副本中选定一个为主副本,其余作为从副本,所有修改操作均发给主副本;主副本将修改操作写入内存,然后将修改操作转发给从副本; 从副本接收到修改操作后,应答主副本; 主副本受到应答后,应答客户端; 主副本控制主从的磁盘操作。2.如权利要求1所述的方法,其特征在于所述主副本控制主从的磁盘操作过程为 主副本像从副本发出写磁盘命令,并且进行本地写磁盘;从副本接到写磁盘命令后,将数据写入磁盘,并将写入的结果应答主副本; 主副本收到应答后检查是否出现错误,并处理各个从副本的写磁盘错误。3.如权利要求1所述的方法,其特征在于所述客户端用于用户与系统进行数据交互, 客户端提供通用文件系统接口,多客户访问时,采用网络文件系统。4.如权利要求1所述的方法,其特征在于所述客户端向MDS获取对象的存储信息及副本信息;如果是读操作,则选择可用的副本发送读请求;如果是写操作,则向主副本发送写请求。5.如权利要求1所述的方法,其特征在于所述OSD响应客户端的请求,如果是读,则读取本地对象信息,返给客户端;如果是写,则先将数据接收到内存,然后转给给从副本,从副本接收到内存后,应答主副本,主副本应答客户端,主副本后端控制主和从的磁盘操作。6.如权利要求1所述的方法,其特征在于所述操作在每一阶段绑定一类线程;所述阶段包括本地数据接收,本地内存接收,转发从副本,本地底部处理和磁盘操作。全文摘要本专利技术提供了,采用多副本的方式保存对象,同一对象的不同副本存储在不同的OSD上;在同一对象的副本中选定一个为主副本文档来自技高网...
【技术保护点】
【技术特征摘要】
【专利技术属性】
技术研发人员:付根希,姜国梁,彭成,王勇,苗艳超,
申请(专利权)人:无锡城市云计算中心有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。