数据存储的方法及设备的制造方法

文档序号:8412418阅读:328来源:国知局
数据存储的方法及设备的制造方法
【技术领域】
[0001]本发明涉及一种数据存储技术,尤其涉及一种串行高级技术SATA硬盘的数据存储的方法及设备。
【背景技术】
[0002]“静默数据破坏”现象指的是数据在存储系统内传输时,由于经过多种传输通道和复杂的软件处理,导致某个数据错误,而这种错误无法立即检测出来,在后续的数据检查和访问中才发现数据已经出错。为了解决“静默数据破坏”问题,现有技术中通过对硬盘每扇区的数据生成相应的保护信息(Protect1n Informat1n,简称:PI)校验字段,来实现系统内的数据完整性,其中,对于存储系统中使用的串行连接小型计算机系统接口(SerialAttached Small Computer System Interface,简称:SAS)盘和光纤通道(Fiber Channel,简称:FC)盘可以支持标准的PI格式,常用的是520字节/扇区,其中,512字节存放用户数据,8字节存放校验数据。
[0003]然而,对于企业级存储系统使用的串行高级技术(Serial Advanced TechnologyAttachment,简称:SATA)硬盘不支持标准的PI格式,常用的用户数据和PI校验数据在硬盘上的排布方式如图1和图2所示,图1中,硬盘扇区大小为512字节/扇区,每65个扇区中前64个扇区存放用户数据,最后一个扇区存放前64个用户数据对应的校验数据,图2中,每65个扇区,第一个扇区存放用户数据,第二个扇区存放第一个扇区用户数据的校验数据和接下来的用户数据,图1和图2中,每32K用户数据就可以对齐一次,当输入/输出(Input/Output,简称:10)彡32KB时,对硬盘的访问没有惩罚,当10 < 32KB时,必须要在该盘上读数据一次,为了获得校验还需读校验一次,一般情况下需要多访问一个扇区,且数据和校验还需要进行解析、修改,惩罚比较严重,对性能会有很大的影响,但是现有技术中对于扇区大小为512字节的硬盘,有相当一部分应用的10大于32KB,所以对性能不会有很大的影响。
[0004]然而随着硬盘逐渐切换到4096字节/扇区,若按照图1和图2的排布方方式,则每2M用户数据才能对齐一次,这样所有业务的10都会小于2M,为了读取校验,所有业务的访问不可避免地存在读写惩罚,对性能会有很大的影响,而且对于SAS/SATA盘混插的存储系统,硬盘格式的不同,存储系统软件对数据的组织和处理无法统一,造成技术实现更加复杂。

【发明内容】

[0005]本发明提供一种数据存储的方法及设备,解决了现有技术中为读取校验数据而导致的系统性能降低的问题,同时降低了 SATA盘混插的存储系统对数据处理的复杂度。
[0006]第一方面,本发明提供一种数据存储的方法,包括:
[0007]将系统中格式化后的硬盘空间划分为用户数据存储空间和校验数据存储空间,所述用户数据存储空间用于存储用户数据,所述校验数据存储空间用于存储所述用户数据对应的校验数据,其中系统的硬盘为串行高级技术SATA硬盘或与SATA硬盘混插的硬盘;
[0008]当系统接收到写请求时,将用户数据写入所述用户数据存储空间,同时将用户数据对应的校验数据写入所述校验数据存储空间;
[0009]当系统接收到读请求时,从硬盘的用户数据存储空间读取所述用户数据,同时从校验数据存储空间读取所述用户数据对应的校验数据。
[0010]在第一方面的第一种可能的实现方式中,所述用户数据存储空间和所述校验数据存储空间分别由多个逻辑单元号LUN组成,其中所述用户数据存储空间的LUN的分配顺序与所述校验数据存储空间的LUN分配顺序相同。
[0011]根据第一方面和第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述将用户数据写入所述用户数据存储空间,同时将用户数据对应的校验数据写入所述校验数据存储空间,包括:
[0012]将用户数据先写入系统的高速缓冲存储器Cache的数据区,其中系统的Cache包括用于存储用户数据的数据区以及用于存储所述用户数据对应的校验数据的校验区;
[0013]根据用户数据计算出对应的校验数据,或获取前端用户数据生成的校验数据,并将所述校验数据写入所述cache的校验区;
[0014]将所述Cache数据区的用户数据写入所述系统的硬盘用户数据存储空间,同时将所述cache的校验区的校验数据写入所述校验数据存储空间。
[0015]根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,将所述Cache数据区的用户数据写入所述系统的硬盘用户数据存储空间,同时将所述cache的校验区的校验数据写入所述校验数据存储空间,包括:
[0016]将所述Cache数据区的用户数据写入所述用户数据存储空间的LUN中;
[0017]根据所述用户数据在所述用户数据存储空间的LUN中的用户数据地址,以及所述用户数据地址与所述校验数据在所述校验数据存储空间的LUN中的地址的映射关系,得出所述用户数据对应的所述校验数据的地址,即校验数据地址;
[0018]根据所述校验数据地址将所述校验数据写入所述校验数据存储空间的LUN中。
[0019]根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,从硬盘的用户数据存储空间读取所述用户数据,同时从校验数据存储空间读取所述用户数据对应的校验数据,包括:
[0020]若接收到读请求时,首先在系统Cache的数据区读所述用户数据,如果在系统Cache的数据区能够读取到所述用户数据,则向主机返回所述用户数据;
[0021]如果在系统的Cache的数据区中无法读取到所述用户数据,则从系统的硬盘用户数据存储空间读取所述用户数据,同时从校验数据存储空间读取所述用户数据对应的校验数据。
[0022]根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,如果在系统的Cache的数据区中无法读取到所述用户数据,从系统的硬盘用户数据存储空间读取所述用户数据,同时从校验数据存储空间读取所述用户数据对应的校验数据,包括:
[0023]从硬盘的用户数据存储空间的LUN中读取所述用户数据,并根据校验算法计算出所述用户数据对应的校验数据;
[0024]根据所述用户数据在所述用户数据存储空间的LUN中的地址与所述校验数据在所述校验数据存储空间的LUN中的地址的映射关系,获取校验数据地址;
[0025]根据所述校验数据地址,从校验数据空间的LUN中读出对应的校验数据,并将所述读取的校验数据与所述计算出的校验数据进行比较。
[0026]根据第一方面的第三种或五种可能的实现方式,在第六种可能的实现方式中,所述用户数据在所述用户数据存储空间的LUN中的地址与所述校验数据在所述校验数据存储空间的LUN中的地址的映射关系如下所示:
[0027]校验数据地址=所述LUN的校验数据起始地址+(用户数据地址-所述LUN的用户数据起始地址)/m,其中m为所述LUN的用户数据存储空间容量与校验数据存储空间容量的比值。
[0028]第二方面,本发明提供一种数据存储设备,包括:
[0029]用户数据存储模块,用于存储用户数据;
[0030]校验数据存储模块,用于存储所述用户数据对应的校验数据;
[0031]写模块,用于当系统接收到写请求时,将用户数据写入所述用户数据存储模块,同时将用户数据对应的校验数据写入所述校验数据存储模块;
[0032]读模块,用于当系统接收到读请求时,从硬盘的用户数据存储空间读取所述用户数据,同时从校验数据存储空间读取所述用户数据对应的校验数据。
[0033]在第二方面的第一种可能的实现方式中,还包括所述用户数据存储模块和所述校验数据存储模块分别由由多个逻辑单元号LUN组成,其中所述用户数据存储空间的LUN的分配顺序与所述校验数据存储空间的LUN分配顺序相同。
[0034]根据第二方面或第二方面的第一种可能的实现方式,第二种可能的实现方式中,所述写模块,包括:
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1