一种数据修改写方法及装置制造方法及图纸

技术编号:18783180 阅读:21 留言:0更新日期:2018-08-29 06:45
一种数据修改写方法及装置。该方法包括:元数据服务器接收客户端发送的修改写请求,修改写请求中携带有修改数据,修改数据用于替换存储在第一磁盘中的第一位置处的原始数据;元数据服务器确定能够存储修改数据的第二位置,第二位置位于第一磁盘或第二磁盘上;元数据服务器将修改写请求以及第二位置的第二标识信息发送给OSD;元数据服务器接收OSD反馈的响应信息后将文件元数据中的第一位置的第一标识信息修改为第二标识信息,则客户端可以根据第二标识信息读取修改数据。在这种方式中,修改数据和原始数据存放在不同的位置,原始数据被读取的过程中也可以执行数据修改过程,业务不易中断,有助于提高业务处理效率。

【技术实现步骤摘要】
一种数据修改写方法及装置
本专利技术实施例涉及数据存储
,尤其涉及一种数据修改写方法及装置。
技术介绍
为了提升硬盘利用率,目前的数据存储方法通常为分布式存储,即客户端将文件数据分散的写入不同的存储区域(例如磁盘)中。客户端写入文件数据之后,可以对文件数据进行修改,目前的文件分布式系统的数据修改写过程主要依据两阶段提交机制。图1示出了目前的文件分布式系统(distributedfilesystem,DFS)中数据修改写过程的示意图,如图1所示,第一阶段为,元数据服务器(MetadataServer,MDS)向磁盘的对象存储进行OSD发送prepare请求,然后接收OSD返回的prepare响应。该第一阶段的目的为确定磁盘做好准备工作,即通知OSD中止在磁盘进行读写操作的业务,例如若其它客户端需要读取该磁盘上的文件数据时,不响应其它客户端,以做好对磁盘上的文件数据进行修改的准备。第二阶段为,当磁盘做好准备工作后,元数据服务器向OSD发送commit请求,然后接收OSD返回的commit响应。该第二阶段的作用是正式提交修改数据。具体过程为,OSD将磁盘上的文件数据(以下将称为原始数据)释放,元数据服务器将修改数据存放在缓存上,并告知OSD缓存的存储位置,OSD将缓存上的修改数据写入磁盘上。在修改数据写入成功后,元数据服务器可以响应其它客户端读取修改数据的请求,以维持其它客户端业务的正常运行。通过以上描述可知,目前的数据修改过程较为复杂,而且容易出现业务中断,进而导致业务处理效率较低的问题。
技术实现思路
本专利技术实施例提供一种数据修改写方法及装置,用以解决目前的分布式文件系统中数据修改过程较为复杂,而且容易出现业务中断,进而导致业务处理效率较低的问题。第一方面,本专利技术实施例提供一种数据修改写方法,该方法包括:元数据服务器接收客户端发送的修改写请求,所述修改写请求中携带有修改数据,所述修改数据用于替换存储在第一磁盘中的第一位置处的原始数据;所述元数据服务器确定能够存储所述修改数据的第二位置,所述第二位置位于所述第一磁盘或第二磁盘上;所述元数据服务器将所述修改写请求以及所述第二位置的第二标识信息发送给对象存储设备OSD,所述OSD为用于将所述修改数据写入所述第二位置的控制设备;所述元数据服务器接收所述OSD反馈的响应信息,所述响应信息用于指示所述OSD将所述修改数据成功写入所述第二位置;所述元数据服务器将文件元数据中存储的所述第一位置的第一标识信息修改为所述第二标识信息,以使所述客户端能够根据所述第二标识信息读取所述修改数据。在本专利技术实施例中,修改数据和原始数据存放在不同的位置,例如修改数据和原始数据可以存储在同一磁盘中的不同位置或者可以存储在不同磁盘中。当原始数据存储在第一位置时,文件元数据中存储的是第一位置的第一标识信息,客户端可以通过该第一标识信息读取原始数据,当修改数据成功的存放在第二位置后,文件元数据中的第一标识信息修改为第二标识信息后,客户端可以继续根据第二标识信息读取修改数据。在这种方式中,修改数据和原始数据存放在不同的位置,原始数据被读取的过程中也可以执行数据修改过程,即业务不易中断,有助于提高业务处理效率。在一个可能的设计中,所述第一磁盘中包含多个分片,所述第二位置和所述第一位置分别位于所述第一磁盘上的同一分片中或不同分片中;若所述第二位置和所述第一位置分别位于所述第一磁盘上的同一分片中,所述第一标识信息包括所述第一磁盘的磁盘标识、所述同一分片的分片标识和第一位置在所述同一分片中的第一存储地址;所述第二标识信息包括所述第一磁盘的磁盘标识、所述同一分片的分片标识和第二位置在所述同一分片中的第二存储地址;或者若所述第一位置位于所述第一磁盘上的第一分片中,所述第二位置位于所述第一磁盘上的第二分片中,所述第一标识信息包括所述第一磁盘的磁盘标识、所述第一分片的分片标识和第一位置在所述第一分片中的第一存储地址;所述第二标识信息包括所述第一磁盘的磁盘标识、所述第二分片的分片标识和第二位置在所述第二分片中的第二存储地址。在本专利技术实施例中,一个磁盘中包含多个分片,修改数据和原始数据可以分别存放在第一磁盘中的不同分片中,也可以分别位于第一磁盘中的同一分片中。修改数据(或原始数据)的存储位置的标识信息可以是磁盘标识、分片标识以及修改数据(或原始数据)在分片中的存储地址等。在这种方式中,修改数据和原始数据存放在不同的位置,原始数据被读取的过程中也可以执行数据修改过程,即业务不易中断,有助于提高业务处理效率。一个可能的设计中,所述第二存储地址为相对于所述第一存储地址的地址偏移量。在本专利技术实施例中,地址偏移量可以较为准确的确定修改数据的具体存储位置,方便读取,当然第二存储地址还可能包括其它参数,以上只是举例,本专利技术实施例对此不作具体的限定。在一个可能的设计中,所述第一位置位于所述第一磁盘上的第一分片中,所述第二位置位于所述第二磁盘上的第二分片中;所述第一标识信息包括所述第一磁盘的磁盘标识、第一分片的分片标识和第一位置在所述第一分片中的第一存储地址;所述第二标识信息包括所述第二磁盘的磁盘标识、所述第二分片的分片标识和第二位置在所述第二分片中的第二存储地址。在本专利技术实施例中,一个磁盘中包含多个分片,修改数据和原始数据可以分别存放在不同磁盘的不同分片中。修改数据(或原始数据)的存储位置的标识信息可以是磁盘标识、分片标识以及修改数据(或原始数据)在分片中的存储地址等。在这种方式中,修改数据和原始数据存放在不同的位置,原始数据被读取的过程中也可以执行数据修改过程,即业务不易中断,有助于提高业务处理效率。在一个可能的设计中,所述元数据服务器向所述OSD发送释放请求,所述释放请求用于释放存储在所述第一位置处的原始数据;所述元数据服务器接收所述OSD反馈的用于指示释放成功的响应信息。在本专利技术实施例中,文件元数据被修改之后,元数据服务器可以向OSD发送释放请求,以使OSD删除第一位置处存储的原始数据,以便存储其它数据。在这种方式中,修改数据和原始数据存放在不同的位置,原始数据被读取的过程中也可以执行数据修改过程,即业务不易中断,有助于提高业务处理效率。在一个可能的设计中,所述元数据服务器将所述修改请求以及所述第二位置的第二标识信息发送给所述OSD时,具体可以通过对所述修改数据进行处理得到N个子修改数据;所述元数据服务器将N个子修改数据以及所述第二标识信息分别发送给磁盘阵列中的N个磁盘分别对应的OSD,以使每个OSD分别将接收到的子修改数据写入对应磁盘中第二标识信息对应的存储位置处;其中,所述磁盘阵列包括N个层叠的磁盘,每个磁盘中的所述第二标识信息对应的存储位置是相同的;N为大于等于2的整数;所述元数据服务器接收所述OSD反馈的响应信息时具体为:收齐每个OSD反馈的所述响应信息。在本专利技术实施例中,磁盘阵列包括N个层叠的磁盘,每个磁盘对应一个OSD,元数据服务器可以将修改数据进行处理得当N个子修改数据,并分别将N个子修改数据和第二标识信息发送给磁盘阵列中每个磁盘对应的OSD,每个OSD分别将接收到的子修改数据写入对应磁盘中的第二标识信息对应的存储位置处后,元数据服务器可以收齐每个OSD反馈的响应信息。在这种方式中,在向磁盘阵列中每本文档来自技高网...

【技术保护点】
1.一种数据修改写方法,其特征在于,包括:元数据服务器接收客户端发送的修改写请求,所述修改写请求中携带有修改数据,所述修改数据用于替换存储在第一磁盘中的第一位置处的原始数据;所述元数据服务器确定能够存储所述修改数据的第二位置,所述第二位置位于所述第一磁盘或第二磁盘上;所述元数据服务器将所述修改写请求以及所述第二位置的第二标识信息发送给对象存储设备OSD,所述OSD为用于将所述修改数据写入所述第二位置的控制设备;所述元数据服务器接收所述OSD反馈的响应信息,所述响应信息用于指示所述OSD将所述修改数据成功写入所述第二位置;所述元数据服务器将文件元数据中存储的所述第一位置的第一标识信息修改为所述第二标识信息,以使所述客户端能够根据所述第二标识信息读取所述修改数据。

【技术特征摘要】
1.一种数据修改写方法,其特征在于,包括:元数据服务器接收客户端发送的修改写请求,所述修改写请求中携带有修改数据,所述修改数据用于替换存储在第一磁盘中的第一位置处的原始数据;所述元数据服务器确定能够存储所述修改数据的第二位置,所述第二位置位于所述第一磁盘或第二磁盘上;所述元数据服务器将所述修改写请求以及所述第二位置的第二标识信息发送给对象存储设备OSD,所述OSD为用于将所述修改数据写入所述第二位置的控制设备;所述元数据服务器接收所述OSD反馈的响应信息,所述响应信息用于指示所述OSD将所述修改数据成功写入所述第二位置;所述元数据服务器将文件元数据中存储的所述第一位置的第一标识信息修改为所述第二标识信息,以使所述客户端能够根据所述第二标识信息读取所述修改数据。2.如权利要求1所述的方法,其特征在于,所述第一磁盘中包含多个分片,所述第二位置和所述第一位置分别位于所述第一磁盘上的同一分片中或不同分片中;若所述第二位置和所述第一位置分别位于所述第一磁盘上的同一分片中,所述第一标识信息包括所述第一磁盘的磁盘标识、所述同一分片的分片标识和第一位置在所述同一分片中的第一存储地址;所述第二标识信息包括所述第一磁盘的磁盘标识、所述同一分片的分片标识和第二位置在所述同一分片中的第二存储地址;或者若所述第一位置位于所述第一磁盘上的第一分片中,所述第二位置位于所述第一磁盘上的第二分片中,所述第一标识信息包括所述第一磁盘的磁盘标识、所述第一分片的分片标识和第一位置在所述第一分片中的第一存储地址;所述第二标识信息包括所述第一磁盘的磁盘标识、所述第二分片的分片标识和第二位置在所述第二分片中的第二存储地址。3.如权利要求2所述的方法,其特征在于,所述第二存储地址为相对于所述第一存储地址的地址偏移量。4.如权利要求1所述的方法,其特征在于,所述第一位置位于所述第一磁盘上的第一分片中,所述第二位置位于所述第二磁盘上的第二分片中;所述第一标识信息包括所述第一磁盘的磁盘标识、第一分片的分片标识和第一位置在所述第一分片中的第一存储地址;所述第二标识信息包括所述第二磁盘的磁盘标识、所述第二分片的分片标识和第二位置在所述第二分片中的第二存储地址。5.如权利要求1所述的方法,其特征在于,所述方法还包括:所述元数据服务器向所述OSD发送释放请求,所述释放请求用于释放存储在所述第一位置处的原始数据;所述元数据服务器接收所述OSD反馈的用于指示释放成功的响应信息。6.如权利要求1所述的方法,其特征在于,所述元数据服务器将所述修改请求以及所述第二位置的第二标识信息发送给所述OSD,包括:所述元数据服务器对所述修改数据进行处理得到N个子修改数据;所述元数据服务器将N个子修改数据以及所述第二标识信息分别发送给磁盘阵列中的N个磁盘分别对应的OSD,以使每个OSD分别将接收到的子修改数据写入对应磁盘中第二标识信息对应的存储位置处;其中,所述磁盘阵列包括N个层叠的磁盘,每个磁盘中的所述第二标识信息对应的存储位置是相同的;N为大于等于2的整数;所述元数据服务器接收所述OSD反馈的响应信息,包括:所述元数据服务器收齐每个OSD反馈的所述响应信息。7.一种数据修改写装置,其特征在于,包括:接收单元,用于接收客户端发送的修改写请求,所述修改写请求中携带有修改数据,所述修改数据用于替换存储在第一磁盘中的第一位置处的原始数据;处理单元,用于确定能够存储所述修改数据的...

【专利技术属性】
技术研发人员:汪正洋
申请(专利权)人:西安华为技术有限公司
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1