数据的改写方法及装置制造方法及图纸

技术编号:15956335 阅读:21 留言:0更新日期:2017-08-08 09:55
本公开涉及一种数据的改写方法及装置。该数据的改写方法包括:在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,根据当前的磁头位置和待写入数据的大小,确定第一逻辑区块地址,将待写入数据写入第一逻辑区块地址对应的逻辑区块,在元数据中记录第一逻辑区块地址,并获取改写请求对应的第二逻辑区块地址,将第二逻辑区块地址加入回收列表。本公开的数据的改写方法及装置,能够防止系统掉电时破坏旧数据,并避免采用日志系统进行掉电保护引起的两次写入数据,从而提高IOPS和带宽,提高存储系统的性能。

【技术实现步骤摘要】
数据的改写方法及装置
本公开涉及计算机
,尤其涉及一种数据的改写方法及装置。
技术介绍
分布式文件系统进行改写操作的过程中,若系统调用I/O(Input/Output,输入/输出)接口后,收到硬盘返回的写完成信息前发生异常导致掉电,则系统无法收到硬盘返回的写完成信息,从而系统无法得知数据是否完成改写操作,导致硬盘上的数据不可靠。其中,改写可以指将本次写入的数据替换硬盘中的原有数据的操作,即将新数据替换旧数据。在分布式文件系统中,可以通过日志系统进行掉电保护,即在硬盘进行改写操作之前,先将数据写入日志系统,在数据成功写入日志系统后,再将数据写入硬盘。若系统在将数据写入硬盘的过程中发生异常导致掉电,则系统等待上电后,可以读取日志系统中的数据并将该数据再次写入硬盘。图1示出相关技术中改写操作的应用场景的示意图。如图1所示,存储系统在接收到来自客户端的写请求后,先将数据写入日志系统。其中,日志系统可以通过在硬盘的分区上创建XFS(本地文件系统的一种),然后在本地文件系统中创建一个文件,将客户端发送的数据写入文件。数据在日志系统中写完成后,通知存储系统日志系统写完成。存储系统获取数据在硬盘上的LBA(LogicalBlockAddress,逻辑区块地址),并向该LBA写入数据。日志系统解决了由于数据写入过程中系统掉电引起的数据破坏的问题,但是同时引入了两次写入数据的问题。如图1所示,在第一次写操作中,将数据写入日志系统。在第二次写操作中,将数据写入硬盘。一份数据需要在存储系统的硬盘进行两次写操作。在存储系统中,硬盘处理I/O接口的速度和CPU(CentralProcessingUnit,中央处理器)处理I/O接口的速度相比慢很多,此外,硬盘处理I/O接口的速度和内存处理I/O接口的速度相比也慢很多,而两次写入数据的问题将导致硬盘需要处理的I/O接口次数翻倍,进而导致存储系统处理业务的IOPS(Input/OutputOperationsPerSecond,每秒进行读写操作的次数)和带宽都降低,导致存储系统的性能降低。
技术实现思路
有鉴于此,本公开提出了一种数据的改写方法及装置,能够防止系统掉电时破坏旧数据,避免采用日志系统进行掉电保护引起的两次写入数据引起的IOPS和带宽降低,存储系统的性能降低的问题。根据本公开的第一方面,提供了一种数据的改写方法,包括:在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;将所述待写入数据写入所述第一逻辑区块地址对应的逻辑区块;在元数据中记录所述第一逻辑区块地址;获取所述改写请求对应的第二逻辑区块地址,所述第二逻辑区块地址对应的逻辑区块存储所述待写入数据对应的旧数据;将所述第二逻辑区块地址加入回收列表。在一种可能的实现方式中,所述第一逻辑区块地址对应的逻辑区块为存储空间大于或等于所述待写入数据的大小的逻辑区块中距离所述当前的磁头位置最近的逻辑区块。在一种可能的实现方式中,获取硬盘当前的磁头位置,包括:获取记录的提交I/O接口中的偏移地址。在一种可能的实现方式中,确定第一逻辑区块地址之前,所述方法还包括:在所述待写入数据的大小不为第一数值的整数倍的情况下,将所述待写入数据的大小调整为所述第一数值的整数倍。根据本公开的第二方面,提供了一种数据的改写装置,包括:第一获取模块,用于在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;确定模块,用于根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;写入模块,用于将所述待写入数据写入所述第一逻辑区块地址对应的逻辑区块;记录模块,用于在元数据中记录所述第一逻辑区块地址;第二获取模块,用于获取所述改写请求对应的第二逻辑区块地址,所述第二逻辑区块地址对应的逻辑区块存储所述待写入数据对应的旧数据;加入模块,用于将所述第二逻辑区块地址加入回收列表。在一种可能的实现方式中,所述第一逻辑区块地址对应的逻辑区块为存储空间大于或等于所述待写入数据的大小的逻辑区块中距离所述当前的磁头位置最近的逻辑区块。在一种可能的实现方式中,所述第一获取模块包括:磁头位置获取子模块,用于获取记录的提交I/O接口中的偏移地址。在一种可能的实现方式中,所述装置还包括:调整模块,用于在所述待写入数据的大小不为第一数值的整数倍的情况下,将所述待写入数据的大小调整为所述第一数值的整数倍。根据本公开的第三方面,提供了一种数据的改写装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;将所述待写入数据写入所述第一逻辑区块地址对应的逻辑区块;在元数据中记录所述第一逻辑区块地址;获取所述改写请求对应的第二逻辑区块地址,所述第二逻辑区块地址对应的逻辑区块存储所述待写入数据对应的旧数据;将所述第二逻辑区块地址加入回收列表。根据本公开的第四方面,提供了一种非易失性计算机可读存储介质,当所述存储介质中的指令由终端和/或服务器的处理器执行时,使得终端和/或服务器能够执行上述方法。本公开的数据的改写方法及装置,改变了相关技术中使用先写入日志系统,然后再写入存储系统的方法,而在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,根据当前的磁头位置和待写入数据的大小,确定第一逻辑区块地址,将待写入数据写入第一逻辑区块地址对应的逻辑区块,在元数据中记录第一逻辑区块地址,并获取改写请求对应的第二逻辑区块地址,将第二逻辑区块地址加入回收列表,由此能够防止系统掉电时破坏旧数据,并避免采用日志系统进行掉电保护引起的两次写入数据,从而提高IOPS和带宽,提高存储系统的性能。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。附图说明包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。图1示出相关技术中改写操作的应用场景的示意图。图2示出根据本公开一实施例的数据的改写方法的流程图。图3示出根据本公开一实施例的调用提交I/O接口的示意图。图4示出根据本公开一实施例的元数据的结构示意图。图5a示出相关技术中改写操作的处理流程的示意图。图5b示出根据本公开一实施例的改写操作的处理流程的示意图。图5c示出根据本公开一实施例的改写操作的处理流程的另一示意图。图5d示出根据本公开一实施例的改写操作的处理流程的另一示意图。图6示出根据本公开一实施例的数据的改写方法的一示例性的流程图。图7示出根据本公开一实施例的调整待写入数据的大小时逻辑区块的结构示意图。图8是根据一示例性实施例示出的一种数据的改写装置的框图。图9是根据一示例性实施例示出的一种数据的改写装置的一示例性的框图。图10本文档来自技高网
...

【技术保护点】
一种数据的改写方法,其特征在于,包括:在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;将所述待写入数据写入所述第一逻辑区块地址对应的逻辑区块;在元数据中记录所述第一逻辑区块地址;获取所述改写请求对应的第二逻辑区块地址,所述第二逻辑区块地址对应的逻辑区块存储所述待写入数据对应的旧数据;将所述第二逻辑区块地址加入回收列表。

【技术特征摘要】
1.一种数据的改写方法,其特征在于,包括:在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;将所述待写入数据写入所述第一逻辑区块地址对应的逻辑区块;在元数据中记录所述第一逻辑区块地址;获取所述改写请求对应的第二逻辑区块地址,所述第二逻辑区块地址对应的逻辑区块存储所述待写入数据对应的旧数据;将所述第二逻辑区块地址加入回收列表。2.根据权利要求1所述的方法,其特征在于,所述第一逻辑区块地址对应的逻辑区块为存储空间大于或等于所述待写入数据的大小的逻辑区块中距离所述当前的磁头位置最近的逻辑区块。3.根据权利要求1所述的方法,其特征在于,获取硬盘当前的磁头位置,包括:获取记录的提交I/O接口中的偏移地址。4.根据权利要求1至3中任一项所述的方法,其特征在于,确定第一逻辑区块地址之前,所述方法还包括:在所述待写入数据的大小不为第一数值的整数倍的情况下,将所述待写入数据的大小调整为所述第一数值的整数倍。5.一种数据的改写装置,其特征在于,包括:第一获取模块,用于在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;确定模块,用于根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;写入模块,用于将所述待写入数据写...

【专利技术属性】
技术研发人员:刘浩
申请(专利权)人:新华三技术有限公司
类型:发明
国别省市:浙江,33

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

1