用于光存储阵列网络的数据读写方法及控制装置制造方法

文档序号:6516248阅读:328来源:国知局
用于光存储阵列网络的数据读写方法及控制装置制造方法
【专利摘要】本发明提供了一种用于光存储阵列网络的数据读写方法,该方法包括:选择位于存储网络中的光存储阵列,其中,该光存储阵列包括至少两个光盘库,该至少两个光盘库分布在所述存储网络的不同节点上;将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。相应地,本发明还提供了一种用于光存储阵列网络的数据读写的控制装置以及具有该控制装置的光存储阵列网络。实施本发明可以极大地提高光存储阵列网络整体的读写速度,适用于共有云、私有云数据中心的云归档应用。
【专利说明】用于光存储阵列网络的数据读写方法及控制装置
【技术领域】
[0001]本发明涉及光盘存储【技术领域】,尤其涉及一种用于光存储阵列网络的数据读写方法及控制装置。
【背景技术】
[0002]据互联网数据中心(IDC, Internet Data Center)统计,2010年全球数据量不到1ZB,到2020年将达到35ZB以上。其中不经常使用的归档性数据占到总数据量的80%左右,即28ZB左右。如何对这些数据进行低成本、安全以及绿色地长期保存成为了数据存储业界的难题之一。在众多数据存储介质中,光盘介质由于是通过物理方法实现数据的存储,具有不会受到电磁辐射的干扰以及对温度和湿度不敏感的优势,因此被公认是归档数据保存的最终介质形式。
[0003]近年来,随着单张光盘存储容量的大大增加,相较于例如硬盘等其他存储设备,光盘库的价格性能等优势也越发明显,越来越多的利用光盘作为存储介质的数据存储设备问世,其中,多个光盘库使用网络连接起来形成光存储阵列是在大规模归档领域逐渐得到应用的一种常见数据存储设备。但是,光存储阵列也具有一定的不足之处,现有的光存储阵列在对数据文件进行读写的时候,采用如下方法:将完整的所述数据文件保存到其包含的一个光盘库的一张光盘中,或者从其包含的一个光盘库的一张光盘中读取出完整的所述数据文件,而单个光盘的读写速度即所述光存储阵列的读写速度,该读写速度较慢(4.5MB/s?54MB/S),仅为普通硬盘读写速度的十分之一,因此,现有的光存储阵列无法高效地实现数据文件的高速读写。特别是在目前趋于主流趋势的基于网络的云归档领域内,当光存储阵列对较大的数据文件进行读写时,读写等待时间较长。上述缺陷阻碍了光存储阵列在大规模归档领域内的应用。

【发明内容】

[0004]为了克服现有技术中的上述缺陷,本发明提供了一种用于光存储阵列网络的数据读写方法,该方法包括:
[0005]选择位于存储网络中的光存储阵列,其中,该光存储阵列包括至少两个光盘库,该至少两个光盘库分布在所述存储网络的不同节点上;
[0006]将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
[0007]根据本发明的一个方面,该方法中选择位于存储网络中的光存储阵列包括:选择所述存储网络中处于空闲状态的光存储阵列。
[0008]根据本发明的另一个方面,该方法中将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块包括:识别出所述光存储阵列准备就绪;所述光存储阵列包括的所有的光盘库并行运行,根据预定的分配规则向该所有的光盘库中每一所述光盘库发送所述待存储数据块进行写入操作、或从该所有的光盘库中每一所述光盘库读取待组装数据块。
[0009]根据本发明的又一个方面,该方法中识别出所述光存储阵列准备就绪包括:接收所述光存储阵列包括的所有的光盘库发送的准备就绪信号并根据所述准备就绪信号识别所述光存储阵列准备就绪,其中,该所有的光盘库中每一所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。
[0010]根据本发明的又一个方面,该方法中将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块包括:a)识别出所述光存储阵列中准备就绪的可用光盘库,根据预定的分配规则向该可用光盘库发送相应的所述待存储数据块进行写入操作、或从所述可用光盘库中读取所述待组装数据块山)重复步骤a直至所述光存储阵列包括的所有光盘库都识别为所述可用光盘库。
[0011]根据本发明的又一个方面,该方法中识别出所述光存储阵列中准备就绪的可用光盘库包括:接收所述光存储阵列包括的所有的光盘库中一个光盘库发送的准备就绪信号并根据所述准备就绪信号将所述光盘库识别为所述可用光盘库,其中,所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。
[0012]根据本发明的又一个方面,该方法中从所述光存储阵列包括的光盘库中读取待组装数据块之后,该方法还包括:对所述待组装数据块进行编号;根据所述编号对所述待组装数据块进行组合以形成所述目标数据文件。
[0013]根据本发明的又一个方面,该方法中所述待存储数据块的大小等于预设值。
[0014]本发明还提供了一种用于光存储阵列网络的数据读写的控制装置,该控制装置包括:
[0015]选择模块,用于选择位于存储网络中的光存储阵列,其中,该光存储阵列包括至少两个光盘库,该至少两个光盘库分布在所述存储网络的不同节点上;
[0016]读写模块,用于将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
[0017]根据本发明的一个方面,该控制装置中所述选择模块选择所述存储网络中处于空闲状态的光存储阵列。
[0018]根据本发明的另一个方面,该控制装置中所述读写模块包括:第一识别单元,用于识别出所述光存储阵列准备就绪;第一读写单元,用于根据预定的分配规则向该所有的光盘库中每一所述光盘库发送所述待存储数据块进行写入操作、或从该所有的光盘库中每一所述光盘库读取待组装数据块,其中,所述光存储阵列包括的所有的光盘库并行运行。
[0019]根据本发明的又一个方面,该控制装置中所述第一识别单元接收所述光存储阵列包括的所有的光盘库发送的准备就绪信号并根据所述准备就绪信号识别所述光存储阵列准备就绪,其中,该所有的光盘库中每一所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。
[0020]根据本发明的又一个方面,该控制装置中所述读写模块包括:第二识别单元,用于识别出所述光存储阵列中准备就绪的可用光盘库;第二读写单元,用于根据预定的分配规则向该可用光盘库发送相应的所述待存储数据块进行写入操作、或从所述可用光盘库中读取所述待组装数据块;所述识别单元持续工作直至所述光存储阵列中包括的所有光盘库都识别为所述可用光盘库。
[0021]根据本发明的又一个方面,该控制装置中所述第二识别单元接收所述光存储阵列包括的所有的光盘库中一个光盘库发送的准备就绪信号并根据所述准备就绪信号将所述光盘库识别为所述可用光盘库,其中,所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。
[0022]根据本发明的又一个方面,该控制装置还包括组合模块,其中,该组合模块包括:编号单元,用于对所述待组装数据块进行编号;组合单元,用于根据所述编号对所述待组装数据块进行组合以形成所述目标数据文件。
[0023]根据本发明的又一个方面,该控制装置还包括分割模块,用于对所述待存储数据文件进行分割以形成所述待存储数据块,其中,所述待存储数据块的大小等于预设值。
[0024]本发明还提供了一种光存储阵列网络,包括至少一个光存储阵列,每一所述光存储阵列包括至少两个光盘库,该至少两个光盘库分布在存储网络的不同节点上,所述光存储阵列网络还包括上述控制装置,其中:所述控制装置向所述光存储阵列包括的光盘库发送数据文件进行写入操作或从所述光存储阵列包括的光盘库中读取数据文件。
[0025]本发明所提供的光存储阵列网络、用于该光存储阵列网络的数据读写方法及控制装置通过整合存储网络中光盘库资源以形成光存储阵列,并将待存储数据块并行地发送至光存储阵列包括的光盘库进行写入操作或从光存储阵列包括的光盘库中并行地读取待组装数据块,极大地提高了数据文件的整体读写速度,适用于共有云、私有云数据中心的云归档应用。
【专利附图】

【附图说明】
[0026]通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0027]图1是根据本发明的用于光存储阵列网络的数据读写的方法流程图;
[0028]图2(a)是根据本发明的用于光存储阵列网络的数据读写的控制装置的一个具体实施结构示意图;
[0029]图2(b)是根据本发明的用于光存储阵列网络的数据读写的控制装置的另一个具体实施结构示意图;
[0030]图3是根据本发明的可实现数据读写的光存储阵列网络的一个具体实施例结构示意图。
[0031 ] 附图中相同或相似的附图标记代表相同或相似的部件。
【具体实施方式】
[0032]为了更好地理解和阐释本发明,下面将结合附图对本发明作进一步的详细描述。
[0033]根据本发明的一个方面,提供了一种用于光存储阵列网络的数据读写方法。请参考图1,图1是根据本发明的用于光存储阵列网络的数据读写的方法流程图。如图所示,该方法包括以下步骤:[0034]在步骤SlOl中,选择位于存储网络中的光存储阵列,其中,该光存储阵列包括至少两个光盘库,该至少两个光盘库分布在所述存储网络的不同节点上;
[0035]在步骤S102中,将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
[0036]具体地,在步骤SlOl中,存储网络中包括众多光盘库,该众多光盘库分布在存储网络的不同节点上。预先通过对该众多光盘库进行逻辑分组设置可以形成至少一个光存储阵列。在本实施例中,每一光存储阵列包括至少两个光盘库。为了使存储网络中的各光存储阵列可以同时工作,优选地,存储网络中任一光存储阵列包括的光盘库集合与该存储网络中任一其他光存储阵列所包括的光盘库集合交集为空。以存储网络中包括1024个光盘库(该1024个光盘库分别以光盘库i表示,其中i = 1,2,...1024)且该1024个光盘库均用于形成光存储阵列为例进行说明,若光存储阵列的数目等于1,则该光存储阵列包括的光盘库数目等于1024 (即包括光盘库I至光盘库1024);若光存储阵列的数目等于3,则该3个光存储阵列包括的光盘库数目可以分别等于256个(光盘库I至光盘库256)、256个(光盘库257至光盘库512)以及512个(光盘库513至光盘库1024)。上述仅为举例,在实际应用中,存储网络中光盘库的数目由数据的存储需求决定,因此存储网络中包括的光盘库的数目不限于1024个,可以少于1024个也可以多于1024个,而光存储阵列的数目也不仅仅限于举例中的I个或3个,根据实际需求可以是2个也可以是3个以上,在此不作任何限定。
[0037]当进行数据文件的写入操作时,需要从存储网络包括的所有光存储阵列中选择一个光存储阵列来执行该写入操作。下文中,将待写入光存储阵列的数据文件称为待存储数据文件。从存储网络包括的所有光存储阵列中选择一个光存储阵列的步骤包括:首先,对存储网络包括的所有光存储阵列的状态进行检测,若检测到光存储阵列处于工作状态(即该光存储阵列包括的光盘库当前正在进行其他数据文件的读写操作),则表明该光存储阵列被占用,若检测到光存储阵列处于空闲状态(即该光存储阵列包括的所有光盘库当前均没有执行任何数据文件的读写操作),则表明该光存储阵列可以使用;接着,选择任一处于空闲状态的光存储阵列即可。在存在多个处于空闲状态的光存储阵列的情况下,为了使待存储数据文件的整体写入速度达到最优,优选地,从处于空闲状态的多个光存储阵列中选择包括光盘库数目最多的光存储阵列来执行待存储数据文件的写入操作(由于在对待存储数据文件进行写入操作时,是将该待存储数据文件以待存储数据块的形式并行写入光存储阵列包括的光盘库内,因此,光存储阵列包括的光盘库的数目越多整体写入速度越快,至于如何将该待存储数据文件以待存储数据块的形式并行写入光存储阵列包括的光盘库内将在本文后续内容中进行说明)。举例说明,存储网络中包括3个光存储阵列(分别以光存储阵列1、光存储阵列2以及光存储阵列3表示),该3个光存储阵列所包括的光盘库的数目依次是256个、256个以及512个,其中,光存储阵列I处于工作状态,而光存储阵列2和光存储阵列3均处于空闲状态,基于光存储阵列的状态可以选择光存储阵列2或光存储阵列3对待存储数据文件进行写入操作,其中,优选为光存储阵列3。
[0038]当进行数据文件的读取操作时,同样需要从存储网络包括的所有光存储阵列中选择一个光存储阵列来执行该读取操作。下文中,将从光存储阵列中待读取的数据文件称为目标数据文件。由于目标数据文件(以待组装数据块的形式)已经存储在光存储阵列包括的光盘库内,因此只需要选择存储该目标数据文件的光盘库所对应的光存储阵列即可。
[0039]在步骤S102中,从存储网络中选择好光存储阵列后,开始执行待存储数据文件的写入操作或目标数据文件的读取操作,即,将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
[0040]下面以两个优选实施例对步骤S102进行详细说明。
[0041]实施例一:
[0042]对于写入待存储数据文件的情况,当从存储网络中选择好光存储阵列后,首先向该光存储阵列发送写入命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。该所有的光盘库中每一所述光盘库在接收到写入命令后驱动机械臂向其内置光驱中插入光盘,等待所有光盘进入写入准备状态后产生并反馈准备就绪信号。当接收到该光存储阵列包括的所有的光盘库发送的准备就绪信号后,则可以识别出该光存储阵列准备就绪,此时,该光存储阵列包括的所有光盘库并行运行。在所有光盘库并行运行的状态下,根据预定的分配规则向该所有的光盘库中每一所述光盘库发送待存储数据块。
[0043]在本实施例中,所述待存储数据块通过分割待存储数据文件而形成。其中,所述待存储数据块的大小等于预设值,例如4K、512K或IM等。所述预设值可以预先通过手动进行设置或者根据实际情况(例如光盘库内光盘的存储格式等)进行自适应调整。在根据预设值对待存储数据文件进行分割时,如果存在小于预设值的待存储数据块,则通过向该待存储数据块写入补充数据使其大小达到预设值。
[0044]下面,对本实施例所采用的预定的分配规则进行说明。在本实施例中,假设光存储阵列包括N个光盘库(以光盘库i表示,其中i = 1,2,...N),待存储数据块的数目等于M(以待存储数据块j表示,其中j = 1,2,...M),则写入光盘库i的数据块为待存储数据块(i+NXk),其中k = 0,l,...(M/N-1)。以一个具体实施例说明,一个待存储数据文件的大小等于1024M,根据预设值将其分割成为1024个待存储数据块,即每个待存储数据块的大小等于1M,用于写入该待存储数据文件的光存储阵列包括512个光盘库,也就是说,N等于512,M等于1024,k的取值为O和I,那么发送至光盘库i的数据块为待存储数据块i和待存储数据块(i+512),即,将待存储数据块I和待存储数据块513发送至光盘库I,将待存储数据块2和待存储数据块514发送至光盘库2,将待存储数据块3和待存储数据块515发送至光盘库3,以此类推。光盘库接收到待存储数据块后,驱动该光盘库内的光驱向其内置光盘写入该待存储数据块。
[0045]需要说明的是,本发明所述预定的分配规则不仅仅限于上述举例。仍以光存储阵列包括512个光盘库、待存储数据块的数目为1024为例,还可以将待存储数据块I和待存储数据块2发送至光盘库1,将待存储数据块3和待存储数据块4发送至光盘库2,将待存储数据块5和待存储数据块6发送至光盘库3,以此类推。优选地,在对不同待存储数据文件进行写入操作时,可以选择不同的分配规则。如此一来,如若存有待存储数据文件的光盘发生遗失等情况,由于分配规则存在多样化,因此该光盘的获得者无法轻易获知光盘内待存储数据块的具体存储顺序,从而无法轻易地对待存储数据块进行组合以获取正确的数据文件,进而可以有效地防止由于分配规则单一所导致的数据文件易于泄露的可能性。
[0046]对于读取目标数据文件的情况,当从存储网络中选择好光存储阵列后,首先向该光存储阵列发送读取命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。该所有的光盘库中每一所述光盘库在接收到读取命令后驱动机械臂向其内置光驱中插入存储有待组装数据块的光盘,等待所有光盘进入读取准备状态后产生并反馈准备就绪信号。当接收到该光存储阵列包括的所有的光盘库发送的准备就绪信号后,则可以识别出该光存储阵列准备就绪,此时,该光存储阵列包括的所有光盘库并行运行。在所有光盘库并行运行的状态下从该所有的光盘库中每一所述光盘库读取待组装数据块。
[0047]实施例二:
[0048]对于写入待存储数据文件的情况,当从存储网络中选择好光存储阵列后,首先向该光存储阵列发送写入命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。发送写入命令后,开始对光存储阵列中的可用光盘库进行识别。具体地,该所有的光盘库中每一所述光盘库在接收到写入命令后驱动机械臂向其内置光驱中插入光盘,等待所有光盘进入写入准备状态后产生并反馈准备就绪信号。当接收到该所有的光盘库中的任一个光盘库发送的准备就绪信号后,则可以根据该准备就绪信号将所述光盘库识别为所述可用光盘库,此时,无需等待其他光盘库准备就绪,即可根据预定的分配规则向该可用光盘库发送相应的待存储数据块。重复上述可用光盘库的识别步骤,直至所述光存储阵列包括的所有光盘库都识别为可用光盘库。当所有光盘库均被识别为可用光盘库时,所有光盘库处于并行运行的状态。
[0049]本实施例与实施例一的区别主要在于,实施例一是在所有光盘库均准备就绪后同时向该所有光盘库发送待存储数据块(即同步并行方式),而本实施例无需等待所有光盘库均准备就绪,一旦任何一个光盘库准备就绪即可向其发送待存储数据块(即异步并行方式)。相较于实施例一中的同步并行方式,本实施例可以有效地缩短光盘库的响应时间,进而提高数据文件的写入效率。除了上述区别之外,本实施例的其他方面,例如待存储数据块预设值的规定以及预定的分配规则都与实施例一相同,为了简明起见,在此不再赘述。
[0050]以一个具体实施例说明,一个待存储数据文件的大小等于1024M,根据预设值将其分割成为1024个待存储数据块,用于写入该待存储数据文件的光存储阵列包括512个光盘库,根据预定的分配规则,待存储数据块I和待存储数据块513将发送至光盘库I,待存储数据块2和待存储数据块514将发送至光盘库2,待存储数据块3和待存储数据块515将发送至光盘库3,以此类推。该512个光盘库接收到写入命令后开始进行写入准备。对该512个光盘库的准备情况进行识别,若接收到光盘库I发送的准备就绪信号,则立即向该光盘库I发送待存储数据块I和待存储数据块513,与此同时继续对其他光盘库的准备情况进行识另O,若接着接收到光盘库512发送的准备就绪信号,则立即向该光盘库512发送待存储数据块512和待存储数据块1024。准备就绪的光盘库接收到相应的待存储数据块后,驱动该光盘库内的光驱向其内置光盘写入该待存储数据块。
[0051]对于读取目标数据文件的情况,当从存储网络中选择好光存储阵列后,首先向该光存储阵列发送读取命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。发送读取命令后,开始对光存储阵列中的可用光盘库进行识别。具体地,该所有的光盘库中每一所述光盘库在接收到读取命令后驱动机械臂向其内置光驱中插入存储有待组装数据块的光盘,等待所有光盘进入读取准备状态后产生并反馈准备就绪信号。当接收到该所有的光盘库中的任一个光盘库发送的准备就绪信号后,则可以根据该准备就绪信号将所述光盘库识别为所述可用光盘库,此时,无需等待其他光盘库准备就绪,即可从该可用光盘库中读取待组装数据块。重复上述可用光盘库的识别步骤,直至所述光存储阵列包括的所有光盘库都识别为可用光盘库。
[0052]当将所有待存储数据块写入光存储阵列包括的光盘库中、或是从光存储阵列包括的光盘库中读取出待组装数据块出之后,数据文件的并行(同步并行或异步并行)写入或读取完成。明显地,采用上述并行读写的方式可以达到较高的数据文件整体读写速度。以单张光盘的写入速度等于4.5MB/s为例说明,如果光存储阵列中并行工作的光盘库的数目等于512、待存储数据块(或待组装数据块)的数目等于512,该光存储阵列的整体读写速度将高达2GB/s ;如果光存储阵列中并行工作的光盘库的数目等于512、待存储数据块(或待组装数据块)的数目等于1024,该光存储阵列的整体读写速度将高达4GB/s。
[0053]从光盘库中读取待组装数据块后,需要对该待组装数据块进行组合以形成目标数据文件。对待组装数据块进行组合的步骤如下:首先,基于将待组装数据块写入光盘库时候的分配规则对所述待组装数据块进行编号,该编号用于标识出待组装数据块相对于目标数据文件的位置;接着,根据所述编号对所述待组装数据块进行组合以形成所述目标数据文件。举例说明,光存储阵列包括512个光盘库(以光盘库i表示,i = 1,2,...512),待组装数据块的数目等于1024 (以待组装数据块j表示,j = 1,2,...1024),在将该1024个待组装数据块写入该512个光盘库的时候采用的是上述分配规则,即待组装数据块I和待组装数据块513写入光盘库1,待组装数据块2和待组装数据块514写入光盘库2,待组装数据块3和待组装数据块515写入光盘库3,以此类推。那么在将该1024个待组装数据块从该512个光盘库中读取出来之后,对该1024个待组装数据块分别编号,即,光盘库I中的待组装数据块分别编号为I和513,光盘库2中的待组装数据块分别编号为2和514,光盘库3中的待组装数据块分别编号为3和515,以此类推。根据该编号即可将该1024个待组装数据块进行正确地组合形成目标数据文件。
[0054]需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0055]根据本发明的另一个方面,还提供了一种用于光存储阵列网络的数据读写的控制装置。请参考图2(a)和图2(b),图2(a)和图2(b)是根据本发明的用于光盘库的数据并行读写的控制装置的两个具体实施结构示意图。如图所示,该控制装置20包括:
[0056]选择模块201,用于选择位于存储网络中的光存储阵列,其中,该光存储阵列包括至少两个光盘库,该至少两个光盘库分布在所述存储网络的不同节点上;
[0057]读写模块202,用于将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
[0058]下面,将对上模块的具体工作过程进行详细说明。
[0059]具体地,存储网络中包括众多光盘库,该众多光盘库分布在存储网络的不同节点上。预先通过对该众多光盘库进行逻辑分组设置可以形成至少一个光存储阵列。在本实施例中,每一光存储阵列包括至少两个光盘库。为了使存储网络中的各光存储阵列可以同时工作,优选地,存储网络中任一光存储阵列包括的光盘库集合与该存储网络中任一其他光存储阵列所包括的光盘库集合交集为空。
[0060]当进行数据文件的写入操作时,选择模块201需要从存储网络包括的所有光存储阵列中选择一个光存储阵列来执行该写入操作。下文中,将待写入光存储阵列的数据文件称为待存储数据文件。选择模块201从存储网络包括的所有光存储阵列中选择一个光存储阵列的步骤包括:首先,选择模块201对存储网络包括的所有光存储阵列的状态进行检测,若检测到光存储阵列处于工作状态(即该光存储阵列包括的光盘库当前正在进行其他数据文件的读写操作),则表明该光存储阵列被占用,若检测到光存储阵列处于空闲状态(即该光存储阵列包括的所有光盘库当前均没有执行任何数据文件的读写操作),则表明该光存储阵列可以使用;接着,选择模块201选择任一处于空闲状态的光存储阵列即可。在存在多个处于空闲状态的光存储阵列的情况下,为了使待存储数据文件的整体写入速度达到最优,优选地,选择模块201从处于空闲状态的多个光存储阵列中选择包括光盘库数目最多的光存储阵列来执行待存储数据文件的写入操作。
[0061]当进行数据文件的读取操作时,选择模块201同样需要从存储网络包括的所有光存储阵列中选择一个光存储阵列来执行该读取操作。下文中,将从光存储阵列中待读取的数据文件称为目标数据文件。由于目标数据文件(以待组装数据块的形式)已经存储在光存储阵列包括的光盘库内,因此选择模块201只需要选择存储该目标数据文件的光盘库所对应的光存储阵列即可。
[0062]选择模块201从存储网络中选择好光存储阵列后,读写模块202开始执行待存储数据文件的写入操作或目标数据文件的读取操作,即,将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
[0063]下面以两个优选实施例对读写模块202的具体工作过程进行说明。
[0064]实施例三:
[0065]如图2 (a)所示,在本实施例中,读写模块202进一步包括第一识别单元2021和第一读写单元2022。
[0066]对于写入待存储数据文件的情况,当选择模块201从存储网络中选择好光存储阵列后,向该光存储阵列发送写入命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。该所有的光盘库中每一所述光盘库在接收到写入命令后驱动机械臂向其内置光驱中插入光盘,等待所有光盘进入写入准备状态后产生并反馈准备就绪信号。当第一识别单元2021接收到该光存储阵列包括的所有的光盘库发送的准备就绪信号后,则可以识别出该光存储阵列准备就绪,此时,该光存储阵列包括的所有光盘库并行运行。在所有光盘库并行运行的状态下,第一读写单元2022根据预定的分配规则向该所有的光盘库中每一所述光盘库发送待存储数据块。需要说明的是,本实施例中待存储数据块预设值的规定以及预定的分配规则请参考实施例一中相关部分的内容,为了简明起见,在此不再赘述。
[0067]优选地,控制装置20还包括分割模块204,用于对所述待存储数据文件进行分割以形成所述待存储数据块,其中,所述待存储数据块的大小等于预设值。
[0068]对于读取目标数据文件的情况,当选择模块201从存储网络中选择好光存储阵列后,向该光存储阵列发送读取命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。该所有的光盘库中每一所述光盘库在接收到读取命令后驱动机械臂向其内置光驱中插入存储有待组装数据块的光盘,等待所有光盘进入读取准备状态后产生并反馈准备就绪信号。当第一识别单元2021接收到该光存储阵列包括的所有的光盘库发送的准备就绪信号后,则可以识别出该光存储阵列准备就绪,此时,该光存储阵列包括的所有光盘库并行运行。在所有光盘库并行运行的状态下第一读写单元2022从该所有的光盘库中每一所述光盘库读取待组装数据块。
[0069]实施例四:
[0070]如图2(b)所示,在本实施例中,读写模块202进一步包括第二识别单元2023和第二读写单元2024。
[0071]对于写入待存储数据文件的情况,当选择模块201从存储网络中选择好光存储阵列后,向该光存储阵列发送写入命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。选择模块201发送写入命令后,第二识别单元2023开始对光存储阵列中的可用光盘库进行识别。具体地,该所有的光盘库中每一所述光盘库在接收到写入命令后驱动机械臂向其内置光驱中插入光盘,等待所有光盘进入写入准备状态后产生并反馈准备就绪信号。当第二识别单元2023接收到该所有的光盘库中的任一个光盘库发送的准备就绪信号后,则可以根据该准备就绪信号将所述光盘库识别为所述可用光盘库,此时,无需等待其他光盘库准备就绪,第二读写单元2024即可根据预定的分配规则向该可用光盘库发送相应的待存储数据块。第二识别单元2023重复上述可用光盘库的识别步骤,直至所述光存储阵列包括的所有光盘库都识别为可用光盘库。当所有光盘库均被识别为可用光盘库时,所有光盘库处于并行运行的状态。需要说明的是,本实施例中待存储数据块预设值的规定以及预定的分配规则请参考实施例一中相关部分的内容,为了简明起见,在此不再赘述。
[0072]对于读取目标数据文件的情况,当选择模块201从存储网络中选择好光存储阵列后,向该光存储阵列发送读取命令,即通知该光存储阵列包括的所有的光盘库开始进行准备。选择模块201发送读取命令后,开始对光存储阵列中的可用光盘库进行识别。具体地,该所有的光盘库中每一所述光盘库在接收到读取命令后驱动机械臂向其内置光驱中插入存储有待组装数据块的光盘,等待所有光盘进入读取准备状态后产生并反馈准备就绪信号。当第二识别单元2023接收到该所有的光盘库中的任一个光盘库发送的准备就绪信号后,则可以根据该准备就绪信号将所述光盘库识别为所述可用光盘库,此时,无需等待其他光盘库准备就绪,第二读写单元2024即可从该可用光盘库中读取待组装数据块。第二识别单元2023重复上述可用光盘库的识别步骤,直至所述光存储阵列包括的所有光盘库都识别为可用光盘库。
[0073]本领域技术人员可以理解的是,读写模块202可以同时包括第一识别单元2021和第一读写单元2022、以及第二识别单元2023和第二读写单元2024,在实际应用中,根据具体需求选择使用第一识别单元2021和第一读写单元2022进行同步并行读写操作、或选择第二识别单元2023和第二读写单元2024进行异步并行读写操作。
[0074]进一步地,控制装置20还包括组合模块203,用于在读写模块202从光盘库中读取待组装数据块后对该待组装数据块进行组合以形成目标数据文件。具体地,组合模块203进一步包括编号单元2031和组合单元2032,其中,编号单元2031用于对所述待组装数据块进行编号,组合单元2032用于根据所述编号对所述待组装数据块进行组合以形成所述目标数据文件。
[0075]本部分出现的术语和名词与前文中相同的术语或名词具有一致的含义,例如所述“待存储数据文件”、“目标数据文件”、“待存储数据块”、“待组装数据块”等,上述术语或名词及其涉及的工作原理均可参考前文中相关部分的描述和解释,为了简便起见在此不再赘述。
[0076]控制装置20及其包括的各部分优选地实施为一种计算机程序产品,上述计算机程序产品的实施例可以通过使用用于计算机可读信息的任何记录介质来实现,所述记录介质包括磁介质、光介质或其他适合的介质。控制装置20可以实施为单机结构,控制装置20及其包括的各部分运行在一台计算机设备中。
[0077]根据本发明的又一个方面,还提供了一种光存储阵列网络。请参考图3,图3是根据本发明的可实现数据读写的光存储阵列网络的一个具体实施例结构示意图。如图所示,所述光存储阵列网络包括至少一个光盘库阵列30,每一光盘库阵列30包括至少两个光盘库301,该至少两个光盘库301分布在存储网络的不同节点上,进一步地,所述光存储阵列网络还包括控制装置20,其中,所述控制装置20向所述光存储阵列30包括的光盘库301发送数据文件(即待存储数据文件)进行写入操作或从所述光存储阵列30包括的光盘库301中读取数据文件(即目标数据文件)。由于前文中对控制装置20的具体工作过程进行了详细地描述,因此为了简明起见,在此不再进行重复描述。
[0078]在一个具体实施例中,控制装置20实施为一种计算机程序产品,该计算机程序产品运行在一台计算机设备中,该计算机设备基于例如TCP/IP等传输标准与光存储阵列30中的光盘库301进行数据传输。
[0079]在另一个具体实施例中,所述控制装置20进一步还包括收发客户端(未示出),该收发客户端优选地实施为一种计算机程序产品,上述计算机程序产品的实施例可以通过使用用于计算机可读信息的任何记录介质来实现,所述记录介质包括磁介质、光介质或其他适合的介质。收发客户端可以实施为单机结构,收发客户端运行在一台计算机设备中,该计算机设备与运行控制装置20的计算机设备通过网络连接。收发客户端用于将待存储数据文件发送至控制装置20或接收控制装置20发送的目标数据文件。其中,控制装置20可以同时与多个收发客户端进行数据传输,有利于提高数据文件的读写效率。优选地,所述收发客户端还可以具备将待存储数据文件分割形成待存储数据块的功能、或对待组装数据块进行组合形成目标数据文件的功能,如此一来,无需控制装置20实施分割或组合操作,从而有效地减轻了控制装置20的工作负担。
[0080]本部分出现的术语和名词与前文中相同的术语或名词具有一致的含义,例如所述“待存储数据文件”、“目标数据文件”、“待存储数据块”、“待组装数据块”等,上述术语或名词及其涉及的工作原理均可参考前文中相关部分的描述和解释,为了简便起见在此不再赘述。
[0081]本发明提供的用于光存储阵列网络的数据读写方法可以使用可编程逻辑器件来实现,也可以实施为计算机程序软件,例如根据本发明的实施例可以是一种计算机程序产品,运行该程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现上述方法的各个步骤。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可从计算机主体拆卸的可移动介质(例如热拔插技术存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如RAM、ROM、快闪存储器和硬盘。所述可移动介质包括但不限于:光存储媒体(例如CD-ROM和DVD)、磁光存储媒体(例如MO)、磁存储媒体(例如盒带或移动硬盘)、具有内置的可重写的非易失性存储器的媒体(例如存储卡)和具有内置ROM的媒体(例如ROM盒)。
[0082]本领域技术人员应当理解,任何具有适当编程装置的计算机系统都将能够执行包含在程序产品中的本发明的方法的诸步骤。尽管本说明书中描述的多数【具体实施方式】都侧重于软件程序,但是作为固件和硬件实现本发明提供的方法的替代实施例同样在本发明要求保护的范围之内。
[0083]对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此夕卜,显然“包括”一词不排除其他部件、单元或步骤,单数不排除复数。装置权利要求中陈述的多个部件、单元或装置也可以由一个部件、单元或装置通过软件或者硬件来实现。
[0084]本发明所提供的光存储阵列网络、用于该光存储阵列网络的数据读写方法及控制装置通过整合存储网络中光盘库资源以形成光存储阵列,并将待存储数据块并行地发送至光存储阵列包括的光盘库进行写入操作或从光存储阵列包括的光盘库中并行地读取待组装数据块,极大地提高了数据文件的整体读写速度,适用于共有云、私有云数据中心的云归档应用。
[0085]以上所揭露的仅为本发明的一些较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种用于光存储阵列网络的数据读写方法,该方法包括: 选择位于存储网络中的光存储阵列,其中,该光存储阵列包括至少两个光盘库,该至少两个光盘库分布在所述存储网络的不同节点上; 将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
2.根据权利要求1所述的方法,其中,选择位于存储网络中的光存储阵列包括: 选择所述存储网络中处于空闲状态的光存储阵列。
3.根据权利要求1所述的方法,其中,将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块包括: 识别出所述光存储阵列准备就绪; 所述光存储阵列包括的所有的光盘库并行运行,根据预定的分配规则向该所有的光盘库中每一所述光盘库发送所述待存储数据块进行写入操作、或从该所有的光盘库中每一所述光盘库读取待组装数据块。
4.根据权利要求3所述的方法,其中,识别出所述光存储阵列准备就绪包括: 接收所述光存储阵列包括的所有的光盘库发送的准备就绪信号,并根据所述准备就绪信号识别所述光存储阵列准备就绪,其中,该所有的光盘库中每一所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。·
5.根据权利要求1所述的方法,其中,将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块包括: a)识别出所述光存储阵列中准备就绪的可用光盘库,根据预定的分配规则向该可用光盘库发送相应的所述待存储数据块进行写入操作、或从所述可用光盘库中读取所述待组装数据块; b)重复步骤a直至所述光存储阵列包括的所有光盘库都识别为所述可用光盘库。
6.根据权利要求5所述的方法,其中,识别出所述光存储阵列中准备就绪的可用光盘库包括: 接收所述光存储阵列包括的所有的光盘库中一个光盘库发送的准备就绪信号并根据所述准备就绪信号将所述光盘库识别为所述可用光盘库,其中,所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。
7.根据权利要求1所述的方法,其中,从所述光存储阵列包括的光盘库中读取待组装数据块之后,该方法还包括: 对所述待组装数据块进行编号; 根据所述编号对所述待组装数据块进行组合以形成所述目标数据文件。
8.根据权利要求1至7中任一项所述的方法,其中,所述待存储数据块的大小等于预设值。
9.一种用于光存储阵列网络的数据读写的控制装置,该控制装置包括: 选择模块,用于选择位于存储网络中的光存储阵列,其中,该光存储阵列包括至少两个光盘库,该至少两个光盘库分布在所述存储网络的不同节点上;读写模块,用于将待存储数据块发送至所述光存储阵列包括的光盘库进行写入操作或从所述光存储阵列包括的光盘库中读取待组装数据块,其中,所述待存储数据块通过分割待存储数据文件而形成,所述待组装数据块用于组合成目标数据文件。
10.根据权利要求9所述的控制装置,其中: 所述选择模块选择所述存储网络中处于空闲状态的光存储阵列。
11.根据权利要求9所述的控制装置,其中,所述读写模块包括: 第一识别单元,用于识别出所述光存储阵列准备就绪; 第一读写单元,用于根据预定的分配规则向该所有的光盘库中每一所述光盘库发送所述待存储数据块进行写入操作、或从该所有的光盘库中每一所述光盘库读取待组装数据块,其中,所述光存储阵列包括的所有的光盘库并行运行。
12.根据权利要求11所述的控制装置,其中: 所述第一识别单元接收所述光存储阵列包括的所有的光盘库发送的准备就绪信号并根据所述准备就绪信号识别所述光存储阵列准备就绪,其中,该所有的光盘库中每一所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。
13.根据权利要求9所述的控制装置,其中,所述读写模块包括: 第二识别单元,用于识别出所述光存储阵列中准备就绪的可用光盘库; 第二读写单元,用于根据预定的分配规则向该可用光盘库发送相应的所述待存储数据块进行写入操作、或从所述可用光盘库中读取所述待组装数据块;· 所述识别单元持续工作直至所述光存储阵列中包括的所有光盘库都识别为所述可用光盘库。
14.根据权利要求13所述的控制装置,其中: 所述第二识别单元接收所述光存储阵列包括的所有的光盘库中一个光盘库发送的准备就绪信号并根据所述准备就绪信号将所述光盘库识别为所述可用光盘库,其中,所述光盘库驱动机械臂向其内置光驱中插入光盘并等待所有所述光盘进入读写准备状态后产生所述准备就绪信号。
15.根据权利要求9所述的控制装置,该控制装置还包括组合模块,其中,该组合模块包括: 编号单元,用于对所述待组装数据块进行编号; 组合单元,用于根据所述编号对所述待组装数据块进行组合以形成所述目标数据文件。
16.根据权利要求9所述的控制装置,该控制装置还包括; 分割模块,用于对所述待存储数据文件进行分割以形成所述待存储数据块,其中,所述待存储数据块的大小等于预设值。
17.一种光存储阵列网络,包括至少一个光存储阵列,每一所述光存储阵列包括至少两个光盘库,该至少两个光盘库分布在存储网络的不同节点上,其特征在于,所述光存储阵列网络还包括如权利要求9至16所述的控制装置,其中: 所述控制装置向所述光存储阵列包括的光盘库发送数据文件进行写入操作或从所述光存储阵列包括的光盘库中读取数据文件。
【文档编号】G06F3/06GK103530068SQ201310499864
【公开日】2014年1月22日 申请日期:2013年10月22日 优先权日:2013年10月22日
【发明者】邓吉, 刘恒昌, 李珅, 郑维, 谢之恒 申请人:中经云数据存储科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1