[发明专利]数据的改写方法及装置在审
申请号: | 201710242728.9 | 申请日: | 2017-04-14 |
公开(公告)号: | CN107025291A | 公开(公告)日: | 2017-08-08 |
发明(设计)人: | 刘浩 | 申请(专利权)人: | 新华三技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京林达刘知识产权代理事务所(普通合伙)11277 | 代理人: | 刘新宇 |
地址: | 310052 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据 改写 方法 装置 | ||
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据的改写方法及装置。
背景技术
分布式文件系统进行改写操作的过程中,若系统调用I/O(Input/Output,输入/输出)接口后,收到硬盘返回的写完成信息前发生异常导致掉电,则系统无法收到硬盘返回的写完成信息,从而系统无法得知数据是否完成改写操作,导致硬盘上的数据不可靠。其中,改写可以指将本次写入的数据替换硬盘中的原有数据的操作,即将新数据替换旧数据。在分布式文件系统中,可以通过日志系统进行掉电保护,即在硬盘进行改写操作之前,先将数据写入日志系统,在数据成功写入日志系统后,再将数据写入硬盘。若系统在将数据写入硬盘的过程中发生异常导致掉电,则系统等待上电后,可以读取日志系统中的数据并将该数据再次写入硬盘。
图1示出相关技术中改写操作的应用场景的示意图。如图1所示,存储系统在接收到来自客户端的写请求后,先将数据写入日志系统。其中,日志系统可以通过在硬盘的分区上创建XFS(本地文件系统的一种),然后在本地文件系统中创建一个文件,将客户端发送的数据写入文件。数据在日志系统中写完成后,通知存储系统日志系统写完成。存储系统获取数据在硬盘上的LBA(Logical Block Address,逻辑区块地址),并向该LBA写入数据。
日志系统解决了由于数据写入过程中系统掉电引起的数据破坏的问题,但是同时引入了两次写入数据的问题。如图1所示,在第一次写操作中,将数据写入日志系统。在第二次写操作中,将数据写入硬盘。一份数据需要在存储系统的硬盘进行两次写操作。在存储系统中,硬盘处理I/O接口的速度和CPU(Central Processing Unit,中央处理器)处理I/O接口的速度相比慢很多,此外,硬盘处理I/O接口的速度和内存处理I/O接口的速度相比也慢很多,而两次写入数据的问题将导致硬盘需要处理的I/O接口次数翻倍,进而导致存储系统处理业务的IOPS(Input/Output Operations Per Second,每秒进行读写操作的次数)和带宽都降低,导致存储系统的性能降低。
发明内容
有鉴于此,本公开提出了一种数据的改写方法及装置,能够防止系统掉电时破坏旧数据,避免采用日志系统进行掉电保护引起的两次写入数据引起的IOPS和带宽降低,存储系统的性能降低的问题。
根据本公开的第一方面,提供了一种数据的改写方法,包括:
在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;
根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;
将所述待写入数据写入所述第一逻辑区块地址对应的逻辑区块;
在元数据中记录所述第一逻辑区块地址;
获取所述改写请求对应的第二逻辑区块地址,所述第二逻辑区块地址对应的逻辑区块存储所述待写入数据对应的旧数据;
将所述第二逻辑区块地址加入回收列表。
在一种可能的实现方式中,所述第一逻辑区块地址对应的逻辑区块为存储空间大于或等于所述待写入数据的大小的逻辑区块中距离所述当前的磁头位置最近的逻辑区块。
在一种可能的实现方式中,获取硬盘当前的磁头位置,包括:
获取记录的提交I/O接口中的偏移地址。
在一种可能的实现方式中,确定第一逻辑区块地址之前,所述方法还包括:
在所述待写入数据的大小不为第一数值的整数倍的情况下,将所述待写入数据的大小调整为所述第一数值的整数倍。
根据本公开的第二方面,提供了一种数据的改写装置,包括:
第一获取模块,用于在接收到客户端的改写请求的情况下,获取硬盘当前的磁头位置,所述改写请求包括待写入数据和所述待写入数据的大小;
确定模块,用于根据所述当前的磁头位置和所述待写入数据的大小,确定第一逻辑区块地址,所述第一逻辑区块地址对应的逻辑区块为空闲的逻辑区块;
写入模块,用于将所述待写入数据写入所述第一逻辑区块地址对应的逻辑区块;
记录模块,用于在元数据中记录所述第一逻辑区块地址;
第二获取模块,用于获取所述改写请求对应的第二逻辑区块地址,所述第二逻辑区块地址对应的逻辑区块存储所述待写入数据对应的旧数据;
加入模块,用于将所述第二逻辑区块地址加入回收列表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于新华三技术有限公司,未经新华三技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710242728.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种同心式双层块茎蔬菜清洗装置
- 下一篇:一种偏心调浆桶
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置