一种基于异构混合存储设备的数据写入及读取方法

文档序号:8512409阅读:532来源:国知局
一种基于异构混合存储设备的数据写入及读取方法
【技术领域】
[0001]本发明涉及信息存储技术领域,具体地说,本发明涉及一种基于异构混合存储设备的数据读取及写入方法。
【背景技术】
[0002]学术研宄中的原型系统和市场上的工业存储产品中,存在许多异构混合存储设备,例如Flash Cache和Hystor设备,它们都是SSD(Solid State Drive,固态硬盘驱动器)和HDD (Hard Disk Drive,硬盘驱动器)的异构混合存储设备。现有技术的SSD和HDD的异构混合存储设备中,通常将SSD作为HDD的读缓存或读写缓存,理论上说,这种读缓存或读写缓存机制能够显著提升异构混合存储设备的读性能或读写性能,然而,在实际使用时发现,上述缓存机制对读性能或读写性能的提升十分有限,因此有必要对基于异构混合存储设备的数据读取及写入方法进行优化,以进一步提高异构混合存储设备的读写性能。

【发明内容】

[0003]本发明的任务是提供一种能够提高数据读写性能的基于异构混合存储设备的数据写入及读取方法。
[0004]本发明提供了一种基于异构混合存储设备的数据写入方法,所述异构混合存储设备包括SSD磁盘阵列和HDD磁盘阵列,所述数据写入方法包括下列步骤:
[0005]I)按照当前的拆分比例将要写入的对象拆分为A和B两部分;
[0006]2)将A部分写入SSD磁盘阵列,将A部分和B部分写入HDD磁盘阵列;
[0007]3)根据SSD磁盘阵列和HDD磁盘阵列的满带宽比,以及SSD磁盘阵列当前的剩余容量,动态调整所述拆分比例,然后返回步骤I)等待下一个要写入的对象。
[0008]其中,所述步骤I)中,所述拆分比例的初始默认值为SSD磁盘阵列和HDD磁盘阵列的满带宽比。
[0009]其中,所述步骤I)之前,根据要写入对象的数据尺寸识别其是否为大对象,仅对所述大对象执行所述步骤I)、2)、3)。
[0010]其中,所述步骤2)还包括:用多线程并发地向SSD磁盘阵列和HDD磁盘阵列写入相应的数据。
[0011]其中,所述步骤3)包括下列子步骤:
[0012]31)如果当前拆分比例为所述SSD磁盘阵列和HDD磁盘阵列的满带宽比,则判别SSD磁盘阵列当前的剩余容量是否小于预先设定的最小阈值,如果判断为是,则将拆分比例设置为小于所述SSD磁盘阵列和HDD磁盘阵列的满带宽比的第二比例,否则,拆分比例维持不变。
[0013]32)如果当前拆分比例为所述第二比例,则判别SSD磁盘阵列当前的剩余容量是否大于预先设定的最大阈值,如果判断为是,则将拆分比例恢复为所述SSD磁盘阵列和HDD磁盘阵列的满带宽比,否则,拆分比例维持不变。
[0014]其中,所述拆分比例具有N个级别,对于每个级别,设置一个该级别的最大阈值和一个该级别的最小阈值;
[0015]所述步骤3)包括下列子步骤:
[0016]3a)确定当前拆分比例所在的级别,找到该级别的最大阈值和最小阈值;
[0017]3b)判别SSD磁盘阵列当前的剩余容量是否大于当前级别的最大阈值,如果判断为是,则将拆分比例提升一个级别,即将拆分比例提高,否则,进入步骤3c);
[0018]3c)判别SSD磁盘阵列当前的剩余容量是否小于当前级别的最小阈值,如果判断为是,则将拆分比例降低一个级别,即将拆分比例降低,否则,拆分比例维持不变;步骤3c)结束后,返回步骤I)等待下一个要写入的大对象。
[0019]其中,所述的基于异构混合存储设备的数据写入方法还包括:当SSD磁盘阵列磁盘容量不足时触发数据淘汰操作,通过直接删除SSD磁盘阵列中各对象的A部分来完成所述数据淘汰操作。
[0020]其中,所述步骤I)中,对大对象的key的头部加read_once标识,对于具有read-once表示标识的对象,在该对象的A部分从SSD磁盘阵列读取一次后,直接触发所述数据淘汰操作。
[0021]本发明还提供了基于上述数据写入方法的数据读取方法,包括下列步骤:
[0022]41)对于当前所要读取的大对象,并发地从SSD磁盘阵列读取该大对象的A部分,从HDD磁盘阵列读取该大对象的B部分;
[0023]42)将A部分和B部分拼接成完整的所要读取的对象。
[0024]与现有技术相比,本发明具有下列技术效果:
[0025]1、本发明能够进一步提升异构混合存储设备中读取大对象的速度。
[0026]2、本发明能够避免SSD中数据淘汰过程所造成的阻塞,显著提升数据读写的用户体验。
[0027]3、本发明能够避免SSD频繁出现容量不足的现象,从而提升用户体验。
【附图说明】
[0028]以下,结合附图来详细说明本发明的实施例,其中:
[0029]图1示出了本发明一个实施例实现数据读写的原理示意图;
[0030]图2示出了本发明一个实施例的异构混合存储设备的数据写入流程图;
[0031]图3示出了本发明一个实施例的异构混合存储设备的数据读取流程图。
【具体实施方式】
[0032]如前文所述,现有的将SSD作为HDD缓存的机制在实际使用时对读性能或读写性能的提升十分有限,远远达不到理论水平。本案发明人对此进行了深入研宄,发现在实际的SSD和HDD的异构混合存储设备中,如果将SSD作为读缓存,SSD因容量较小经常需要进行缓存淘汰,而缓存淘汰时需要从SSD中读出数据再将这些数据刷至HDD中,在向HDD中flush的过程会和用户的读操作争用读带宽,从而影响读性能。如果异构混合存储设备将SSD同时作为读写缓存时,则当SSD空间接近满的时候,前端需要等待SSD将某些数据淘汰至HDD腾出空间后再写入,由于成功写入HDD才算做淘汰成功并释放SSD空间,而写入HDD的操作比较耗时,因此影响前端读写性能。而在异构混合存储设备的实际使用过程中,外部数据写入的速度时常会大于SSD缓存中的数据淘汰速度,导致阻塞,严重影响用户体验。
[0033]另一方面,SSD的读写性能虽然优于HDD,但二者仍在一个数量级上,现有的异构混合存储设备读写机制中,读操作在SSD命中则从SSD中读,未命中则从HDD读。假设能够并发地利用SSD和HDD的带宽,同时读取同一对象,则能够进一步提高异构混合存储设备读取速度。
[0034]基于上述分析,根据本发明的一个实施例,提出了一种基于异构混合存储设备的数据写入及相应的数据读取方法。首先,本实施例中的异构混合存储设备包括SSD raid(即SSD磁盘阵列)和HDD raid (HDD磁盘阵列),为便于描述,本文中将SSD raid简称为SSD,将HDD raid简称为HDD。其次,大对象的读写是造成读写性能瓶颈的主要原因,因此,本实施例专门针对大对象进行读写机制的优化。大对象根据对象的尺寸划分,例如可将MB级别以上的对象作为大对象。划分大对象的标准并不是唯一的,这是本领域技术人员易于理解的。
[0035]图1示出了本实施例实现数据读写的原理示意图。参考图1,在需要写入一个大对象时,按照一定的拆分比例将该大对象拆成两部分,这两部分以下称之为A和B。写入时,并发地将A写入SSD,将AB (即全部信息)写入HDD。读数据时,并发地从SSD读A,从HDD读B,由于增加了数据读取的并行性,因此进一步提高读性能。而在淘汰数据时,由于全部信息均已写入HDD,所以SSD中可以直接删除要淘汰的数据,从而避免了外部数据写入的速度大于SSD缓存中的数据淘汰速度而造成的阻塞,改善了用户体验。本实施例中,拆分比例根据SSD raid和HDD raid的满带宽比,以及SSD的剩余容量动态调整,例如初始时,SSD的剩余容量充足,采用SSD raid和HDD raid的满带宽比作为拆分比例,这样可以最大程度地提升大对象的读取速度。而当SSD的剩余容量较小时,可以将拆分比例降低,以减少因SSD容量不足造成的数据淘汰。
[0036]进一步地,图2示出了本发明一个实施例的异构混合存储设备的数据写入流程图,包括下列步骤:
[0037]步骤21:对于要写入的大对象,按照当前拆分比例将该大对象拆分为A和B两部分。初始时,默认的拆分比例为SSD raid和HDD raid的满带宽比。
[0038]步骤22:将A部分写入SSD,将A部分和B部分写入HDD。根据本发明的一个实施例,本步骤中可以启
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1