本发明专利技术公开了一种基于SSD和磁盘的可靠混合存储系统实现方法,该方法用SSD和磁盘构建混合的存储系统,其中SSD响应用户的读写请求,磁盘用作备份,用户发出读请求时,完全由SSD响应;用户发出写请求时,将数据写到SSD的同时,在磁盘上作备份;若SSD失效,可根据磁盘上的数据恢复SSD的数据;若磁盘失效,可根据SSD上的数据重建磁盘中的数据。本实施例针对SSD写性能较差、寿命有限、价格较贵的特点,用廉价的磁盘作SSD的备份实现混合存储系统,既保证SSD的高性能,又提高整个混合存储系统的可靠性,同时将混合存储系统的造价控制在可接受的范围之内,具有读写性能高且系统可靠性好、不易发生关联故障、使用寿命长、成本低廉的优点。
【技术实现步骤摘要】
本专利技术涉及计算机存储系统领域,具体涉及一种用磁盘作为SSD的备份以实现一种可靠且廉价的基于SSD和磁盘的可靠混合存储系统实现方法。
技术介绍
基于闪存的SSD(Solid State Drive,固态盘)是一种新型的大规模存储设备。相比于磁盘,它具有较低的读写延迟;因为其固有的并行性,SSD可提供很高的带宽;另外,它还具有功耗低、质量轻、对工作环境要求较低等优点。总之,SSD有望成为下一代的主流存储设备。但是,目前闪存的价格还很高,相同容量的SSD和磁盘价格相差近十倍,所以SSD当前主要用在高端系统中,或者用作磁盘的缓存。SSD的另一缺陷是寿命有限。闪存的每个存储单元只能承受有限次数的写操作,写操作数目超过这一限制后,该存储单元将变得不可靠,最终可能导致数据丢失。典型的存储系统包含大量的存储设备,存储设备失效是一种频繁发生的事件,如何利用不可靠的存储设备构建可靠的存储系统是一大挑战。传统的用来提高可靠性的方法包括RAID (Redundant Array of Independent Disks,独立磁盘冗余阵列)技术、备份技术坐寸ο常用的RAID技术包括RAID1、RAID5、RAID6。RAIDl将用户数据分块,每块数据在两个不同的存储设备上各写一份,当一个存储设备失效时,可以通过另一个存储设备恢复用户数据。RAID5在写入用户数据时产生校验信息,并将用户数据和校验信息写到不同的存储设备上。当用户数据丢失时,可通过校验信息恢复用户数据。RAID5能容忍一个存储设备失效。RAID6保存更多的校验信息,能容忍两个存储设备同时失效。备份技术在不同设备上保存用户数据的多个副本,用特定的协议保持这些副本间的一致性,只要有一个副本有效,用户数据就不会丢失。备份技术可看作是松散的RAIDl阵列。Google文件系统就是通过备份技术保证可靠性。但是,以上提到的RAID技术和备份技术都不能直接用到基于SSD的存储系统中。首先,SSD每个存储单元写入的次数有限。RAID技术在每次写操作时都会重新生成校验信息。原则上,生成的校验信息和更新的数据量一样大。所以,响应一个写请求最终写入的数据是实际请求的两倍,这就使SSD的寿命减半。其次,SSD的写延迟较大,而部分RAID技术(如RAID5)的写操作会引发两次读操作和两次写操作,这就更加增加了写操作的延迟。总之,基于SSD的RAID技术既降低SSD的性能,还缩短SSD的寿命。备份技术保存多个副本,需要较多的存储空间,而目前SSD的价格相对较高,只适合用作保证存储性能的高端设备,用它作备份显然过于昂贵。综上所述,现有技术的存储系统均无法实现既充分发挥SSD的性能优势,同时又能弥补SSD的寿命缺陷。如果设计一种廉价的基于SSD的存储系统,既能充分发挥SSD的性能优势,又能弥补SSD的寿命缺陷,将会极大地推广SSD在大规模存储领域的应用。
技术实现思路
本专利技术要解决的技术问题是提供一种读写性能高且系统可靠性好、不易发生关联故障、使用寿命长、成本低廉的基于SSD和磁盘的可靠混合存储系统实现方法。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于SSD和磁盘的可靠混合存储系统实现方法,其实施步骤如下:I)将SSD和磁盘准备就绪,其中磁盘的存储空间大于SSD的存储空间,跳转执行下一步;2)格式化SSD以及磁盘地址空间,将磁盘的线性地址空间以块为单位划分为数据块和空闲块,所述磁盘上的所有数据块组成一个线性地址空间,与SSD的线性地址空间 对应;跳转执行下一步;3)初始化磁盘的磁头位置,跳转执行下一步;4)接收操作系统发送对SSD的读写请求,跳转执行下一步;5)判定所述读写请求的请求类型,若请求类型为读请求,则跳转执行步骤6);若请求类型为写请求,则跳转执行步骤7);6)根据读请求的SSD地址从SSD读取数据,返回数据给操作系统,等待在下一个读写请求来到时跳转执行步骤4);7)根据写请求的SSD地址将写请求的数据写入SSD,跳转执行下一步;8)将所述写请求的SSD地址转换成磁盘地址,跳转执行下一步;9)比较所述磁盘地址与磁盘的磁头当前位置之间的距离,如果所述磁盘地址与磁盘的磁头当前位置之间的距离小于指定阈值,则判定所述磁盘地址与磁盘的磁头当前位置临近,跳转执行步骤10);否则跳转执行步骤11);10)根据写请求的磁盘地址将写请求的数据顺序地写入磁盘,等待在下一个读写请求来到时跳转执行步骤4);11)在磁盘中选择与磁盘的磁头当前位置最近的空闲块,跳转执行下一步;12)向所述空闲块写入写请求的数据作为临时数据,记录临时数据对应的磁盘地址,跳转执行下一步;13)等待指定时间,跳转执行下一步;14)判断在所述指定时间内是否有写请求到达,如果有则跳转执行步骤4);否则,跳转执行下一步;15)选择磁头当前位置最近且包含临时数据的空闲块,跳转执行下一步;16)读取所述空闲块中存储的临时数据,跳转执行下一步;17)等待指定时间,跳转执行下一步;18)判断在所述指定时间内是否有写请求到达,如果有则跳转执行步骤4);否则,跳转下一步;19)将所述空闲块中存储的临时数据写入对应的磁盘地址,跳转执行下一步;20)判断磁盘的空闲块中是否仍有包含临时数据的空闲块,如果所有临时数据都已经转移到数据块,则等待在下一个读写请求来到时跳转执行步骤4);否则跳转执行步骤13)继续将临时数据转移到数据块。作为本专利技术上述技术方案的进一步改进:所述步骤I)还包括建立用于暂存写请求及其数据的非易失主存,所述步骤5)判定所述读写请求的请求类型为写请求后,将写请求及其数据暂存在所述非易失主存中,如果写请求的数据最终被写入对应磁盘地址则将其从所述非易失主存中删除,每次开机启动则检查所述非易失主存中是否存在残留的写请求及其数据,如有则跳转执行步骤8)。所述步骤2)中将磁盘的线性地址空间以块为单位划分为数据块和空闲块的具体步骤为:将磁盘的线性地址空间划分为多个连续分布的数据段,每一个数据段包括多个数据块和一个空闲块。所述步骤8)具体是指根据式(I)将读写请求的SSD地址转换成磁盘地址;Addrmsk = (AddrBackup/ (BXS)) X (S+l) XB+(AddrBackup% (BXS)) (I)式(I)中,Addrmsk为磁盘地址;AddrBac;kup代表SSD地址对应数据块在磁盘线性地址空间中的磁盘地址;AddrBac;kup/(BXS)代表Addrllisk所在的数据段(BXS)代表Addrllisk的数据段内的偏移,%表示取模操作,(S+l) XB代表数据段的大小4代表每一个数据段中的数据块数量,B代表每一个数据块的字节数目。所述步骤11)中在磁盘中具体是指根据式(2)选择与磁盘的磁头当前位置最近的空闲块;Bf = (HDisk/((S+l) XB)) X (S+1) ⑵式⑵中,Bf为与磁盘的磁头当前位置最近的空闲块地址,Hllisk/((S+l) XB)表示磁盘的磁头当前位置所在的数据段,(s+l) XB代表数据段的大小;S代表每一个数据段中的数据块数量,B代表每一个数据块的字节数目。本专利技术具有下述优点:1.本专利技术设计的混合存储系统是异构的,不容易发生关联故障。现有技术基于SSD的RAID阵列很容易发本文档来自技高网...
【技术保护点】
一种基于SSD和磁盘的可靠混合存储系统实现方法,其特征在于实施步骤如下:1)将SSD和磁盘准备就绪,其中磁盘的存储空间大于SSD的存储空间,跳转执行下一步;2)格式化SSD以及磁盘地址空间,将磁盘的线性地址空间以块为单位划分为数据块和空闲块,所述磁盘上的所有数据块组成一个线性地址空间,与SSD的线性地址空间一一对应;跳转执行下一步;3)初始化磁盘的磁头位置,跳转执行下一步;4)接收操作系统发送对SSD的读写请求,跳转执行下一步;5)判定所述读写请求的请求类型,若请求类型为读请求,则跳转执行步骤6);若请求类型为写请求,则跳转执行步骤7);6)根据读请求的SSD地址从SSD读取数据,返回数据给操作系统,等待在下一个读写请求来到时跳转执行步骤4);7)根据写请求的SSD地址将写请求的数据写入SSD,跳转执行下一步;8)将所述写请求的SSD地址转换成磁盘地址,跳转执行下一步;9)比较所述磁盘地址与磁盘的磁头当前位置之间的距离,如果所述磁盘地址与磁盘的磁头当前位置之间的距离小于指定阈值,则判定所述磁盘地址与磁盘的磁头当前位置临近,跳转执行步骤10);否则跳转执行步骤11);10)根据写请求的磁盘地址将写请求的数据顺序地写入磁盘,等待在下一个读写请求来到时跳转执行步骤4);11)在磁盘中选择与磁盘的磁头当前位置最近的空闲块,跳转执行下一步;12)向所述空闲块写入写请求的数据作为临时数据,记录临时数据对应的磁盘地址,跳转执行下一步;13)等待指定时间,跳转执行下一步;14)判断在所述指定时间内是否有写请求到达,如果有则跳转执行步骤4);否则,跳转执行下一步;15)选择磁头当前位置最近且包含临时数据的空闲块,跳转执行下一步;16)读取所述空闲块中存储的临时数据,跳转执行下一步;17)等待指定时间,跳转执行下一步;18)判断在所述指定时间内是否有写请求到达,如果有则跳转执行步骤4);否则,跳转下一步;19)将所述空闲块中存储的临时数据写入对应的磁盘地址,跳转执行下一步;20)判断磁盘的空闲块中是否仍有包含临时数据的空闲块,如果所有临时数据都已经转移到数据块,则等待在下一个读写请求来到时跳转执行步骤4);否则跳转执行步骤13)继续将临时数据转移到数据块。...
【技术特征摘要】
1.一种基于SSD和磁盘的可靠混合存储系统实现方法,其特征在于实施步骤如下: 1)将SSD和磁盘准备就绪,其中磁盘的存储空间大于SSD的存储空间,跳转执行下一 2)格式化SSD以及磁盘地址空间,将磁盘的线性地址空间以块为单位划分为数据块和空闲块,所述磁盘上的所有数据块组成一个线性地址空间,与SSD的线性地址空间一一对应;跳转执行下一步; 3)初始化磁盘的磁头位置,跳转执行下一步; 4)接收操作系统发送对SSD的读写请求,跳转执行下一步; 5)判定所述读写请求的请求类型,若请求类型为读请求,则跳转执行步骤6);若请求类型为写请求,则跳转执行步骤7); 6)根据读请求的SSD地址从SSD读取数据,返回数据给操作系统,等待在下一个读写请求来到时跳转执行步骤4); 7)根据写请求的SSD地址将写请求的数据写入SSD,跳转执行下一步; 8)将所述写请求的SSD地址转换成磁盘地址,跳转执行下一步; 9)比较所述磁盘地址与磁盘的磁头当前位置之间的距离,如果所述磁盘地址与磁盘的磁头当前位置之间的距离小于指定阈值,则判定所述磁盘地址与磁盘的磁头当前位置临近,跳转执行步骤10);否则跳转执行步骤11); 10)根据写请求的磁盘地址将写请求的数据顺序地写入磁盘,等待在下一个读写请求来到时跳转执行步骤4); 11)在磁盘中选择与磁盘的磁头当前位置最近的空闲块,跳转执行下一步; 12)向所述空闲块写入写请求的数据作为临时数据,记录临时数据对应的磁盘地址,跳转执行下一步; 13)等待指定时间,跳转执行下一步; 14)判断在所述指定时间内是否有写请求到达,如果有则跳转执行步骤4);否则,跳转执行下一步; 15)选择磁头当前位置最近且包含临时数据的空闲块,跳转执行下一步; 16)读取所述空闲块中存储的临时数据,跳转执行下一步; 17)等待指定时间,跳转执行下一步; 18)判断在所述指定时间内是否有写请求到达,如果有则跳转执行步骤4);否则,跳转下一步; 19)将所述空闲块中存储的临时数据写入对应的磁盘地址,跳转执行下一步; 20)判断磁盘的空闲块中是否仍有包含临时数据的空闲块,如果所有临时数据...
【专利技术属性】
技术研发人员:卢宇彤,所光,肖立权,周恩强,谢旻,陈志广,曹宏嘉,陈海涛,
申请(专利权)人:中国人民解放军国防科学技术大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。