存储设备容量的扩展方法及系统的制作方法

文档序号:6586602阅读:630来源:国知局
专利名称:存储设备容量的扩展方法及系统的制作方法
技术领域
本发明属于数据存储技术领域,涉及一种对存储设备的存储控制方法及系统,尤
其涉及一种对存储设备存储容量进行扩展的方法及系统。
背景技术
数据的存储往往采用磁盘(尤其是硬盘)等存储设备来实现,当然存储设备并不 局限于磁盘,还包括电子硬盘、Flash闪存盘、光存储设备、带有软盘的软盘驱动器以及其他
具备数据存储功能的设备等,以及连接有存储设备的计算机、存储服务器等。
正如大家所公知的,普通硬盘的数据是存储在硬盘的存储介质——磁片上的,其 基本存储单元是扇区(Sector),数据存储到每个扇区中,为了实现对硬盘上任意扇区进行 数据的读写(I/O)访问,对每个扇区进行编号,即扇区号,每一个扇区号(无论是物理扇区 号还是逻辑扇区号)即表征了对应扇区在硬盘上的具体物理位置(物理地址),从而根据扇 区号实现对任意扇区的访问。在执行VO访问时,通过硬盘上的磁盘控制器根据某一扇区 的扇区号来实现对该扇区的访问。为便于对硬盘进行读写访问,计算机系统往往还在硬盘 上建立相应的文件系统,实现对硬盘的有效管理,当然文件系统的建立也是以扇区为基础。 普通软盘也采用同样的方法来实现数据存储。 而对于以Flash芯片为存储介质的电子硬盘、闪存盘等,为了实现存储控制,也 采用类似的方法来实现,同样也是在存储介质上由一系列基本存储单元——页(page, 有的文献把其称为块——block,申请人认为采用页的描述应该更准确,但是无论采用 何种称谓,其都是Flash芯片上的最小存储单元。中国专利申请CN200910015022.4、 CN200710069256. 8、CN200810015972. 2等都分别提出了在Flash存储器上建立类似于磁盘 扇区的虚拟扇区做为基本存储单元,并进行有效存储管理的方法)构成数据存储空间,对 每一个基本存储单元一页,也都定义一个对应的编号——页号——对应于其具体物理地 址,根据该编号,通过Flash存储控制器能对每一个基本存储单元进行I/O访问。
为了便于统一描述,在本申请文件中,将磁盘的扇区号、Flash芯片上的页号统称 为基本存储单元ID号。 当然对于其他不同存储介质的存储设备也都采用类似的机制来实现对其任意存 储区域的1/0访问。 为了便于描述,在本申请文件的后续描述中,把硬盘、电子硬盘、Flash闪存盘、光 存储设备、带有软盘的软盘驱动器以及其他具备数据存储功能的设备称之为存储器,所述 的存储器均包括有存储介质(例如前述的磁片、Flash芯片)及对应的存储控制器(例如 前述的磁盘控制器、Flash存储控制器);把连接有存储器的计算机、存储服务器以及存储 器统称为存储设备。 同时,为了实现大容量数据的存储,人们进行不断开发,并实现了硬盘存储容量的 不断突破,但采用存储容量巨大的硬盘无论从购置成本,使用和维护成本都变得高昂。并且 无论如何扩大单一硬盘存储容量,单个硬盘的存储容量都难以满足人们日益增长的存储需求,因此采用多个硬盘来存储数据。尤其是对于诸如广播电视领域,由于存储的节目数据都
很大,对存储容量要求高,以至于在对多个硬盘进行存储管理时带来了麻烦。 与此同时,虽然采用大容量的硬盘可以部分解决存储容量的问题,但是,在现有技
术中,由于每个硬盘的容量是有限的,而存储的数据,其大小并不是不是为硬盘容量"量身
定做",某一文件的数据在存储时,可能会由于硬盘剩余空间不足而无法存储,或存储完该
数据后剩下的空间又不足存储其他数据,导致存储空间得不到有效利用。 对于其他存储器上述问题也同样存在。 为了更好的扩大存储容量和便于应用,可以采用基于网络的数据存储,例如,可以 采用基于操作系统的存储空间或存储器共享模式实现,以及采用存储区域网络技术(SAN, storage area network),网络附力口存储技术(NAS,network attached storage)等来实现。 这些网络存储方式一方面都存在上述存储缺陷,同时存在网络带宽利用不充分,运行效率 不高,而且往往不能进行对网络存储设备的"二次共享"等缺陷。

发明内容
针对上述不足,本发明所要解决的技术问题在于提供一种可以扩大存储设备存储 容量的控制方法及其系统,能有效利用存储设备存储空间的方法及其系统,并能实现对本 地存储设备和网络存储设备进行存储管理。 以硬盘为例,本发明采用的基本思路是,打破传统以单个硬盘为管理对象的扇区
管理模式,而是将多个硬盘的扇区进行统一管理分配,从而将多个硬盘形成一个虚拟的,容
量为该多个硬盘容量总和的大硬盘,而且可以实现存储容量的无限扩展。当然对于其他类
型的存储设备也同样适用。而且可以同时将多个不同类型的存储设备进行管理。
本发明所述的方法具体包括步骤 (1)连接多个存储设备,构成存储设备组; 进一步包括 (2)采集并记录每个存储设备的连接地址,以及该存储设备的基本存储单元的ID
号;为所述每个基本存储单元分配唯一的虚拟ID号并记录,将所述每个虚拟ID号分别与对
应的存储设备的连接地址、基本存储单元的ID号建立关联; (3)访问时,通过虚拟ID号对对应的基本存储单元进行访问。 所述存储设备,包括本地存储设备、网络存储设备; 所述本地存储设备是通过直接连接的存储器; 所述网络存储设备是通过广域网或局域网连接的存储节点,所述存储节点包括, 直接连接有存储器的计算机、存储服务器;所述直接连接包括包括IDE、 SCSI、 SAS、 FC、 IEEE 1394、 USB连接。
所述步骤(2)具体包括 (21)采集每个存储设备的连接地址,并记录到扩展索引表的地址表中; 所述连接地址包括,作为本地存储设备的存储器之连接端口地址;网络存储设备
的存储节点的网络地址、存储器在存储节点上的连接端口地址; (22)访问所述存储设备,采集其全部可用基本存储单元的ID号记录到扩展索引 表的ID地址表中;连续的虚拟ID号,将所述虚拟ID号分配每个基本存储单元,将虚拟ID 号记录到存储扩展索引表的虚拟ID表中; (24)将每个虚拟ID号与对应的基本存储单元的ID号、基本存储单元所在存储设 备的连接地址建立关联信息,并记录到扩展索引表中。 所述步骤(23)中,每个存储设备的全部基本存储单元的虚拟ID号是连续分配的; 或每个存储设备的全部基本存储单元的虚拟ID号是分段交错分配。
所述步骤(3)具体包括 (31)将虚拟ID表中记录的虚拟ID号提供给上层应用程序或文件系统; (32)根据上层应用程序或文件系统发出的I/0访问请求,从虚拟ID表中计算查找
需要访问的虚拟ID号; (33)根据扩展索引表中记录的关联信息,根据确定的虚拟ID号找到其对应的存 储设备的连接地址和基本存储单元的ID号; (34)根据所述存储设备的连接地址和基本存储单元的ID号访问存储设备上对应
的基本存储单元; (35)返回访问结果。 所述步骤(34)具体包括 (341)根据存储设备的连接地址判断存储设备的类型,如果所述连接地址中包含 网络地址,则所对应的存储设备是网络存储设备,执行步骤(342);反之是本地存储设备, 从I/0访问请求中读取坊问类型、以及对于写访问的待写数据,执行步骤(344);
(342)如果是网络存储设备,确定访问请求之访问结果回传的网络地址,根据I/O 访问请求和确定的需要访问的存储设备的连接地址和基本存储单元的ID号生成网络访问 控制包;所述的网络访问控制包包括,存储器在存储节点上的连接端口地址、访问结果回传 的网络地址、要访问的基本存储单元的ID号、1/0访问请求中的访问类型、以及对于写访问 的待写数据; (343)以存储节点的网络地址为目的地址,将网络访问控制包按照通讯协议发送 到所访问的存储节点,解析出网络访问控制包中的存储器在存储节点上的连接端口地址、 访问类型、以及对于写访问的待写数据; (344)根据确定的连接端口地址,将要访问的基本存储单元的ID号、访问类型、以 及对于读访问的待写数据送到所述连接端口连接的存储器; (355)存储器根据按照访问类型对基本存储单元的ID号对应的基本存储单元执 行访问任务。 所述步骤(35)包括 对于网络存储设备,在存储节点执行, (351)存储器将访问结果返回到存储节点,在存储节点,根据访问结果生成访问结 果数据包;所述访问结果数据包包括,本存储节点的网络地址、存储器在存储节点的连接端 口地址、访问的基本存储单元ID号、以及对于读访问请求读取的数据; (352)将访问结果回传的网络地址作为目的地址,将访问结果数据包按照通讯协 议送到访问结果回传的网络地址上; (353)解析访问结果数据包,将访问结果返回给上层应用程序或文件系统;
7
对于本地存储设备,存储器直接将访问结果返回给上层应用程序或文件系统。
本发明所述系统具体包括。 多个存储设备构成的存储设备组,用于存储数据; 存储扩展管理器,所述存储扩展管理器包括,扩展索引表,用于记录存储设备组中 各个存储设备的连接地址、以及该存储设备的基本存储单元ID号及其对应的虚拟ID号、以 及它们的关联关系;地址采集模块,用于采集存储设备的连接地址及各个基本存储单元ID 号;虚拟ID生成器,用于根据扩展索引表中的基本存储单元ID号,对应生成虚拟ID号;
存储扩展访问控制器,用于实现通过虚拟ID号对对应的基本存储单元进行访问。
所述存储扩展访问控制器包括, 1/0请求控制器,用于将扩展索引表中的虚拟ID号提供给上层应用程序或文件系 统;以及接收上层应用程序或文件系统的1/0访问请求,并转发给扩展索引表控制器和数 据传输控制模块; 扩展索引表控制器,用于将扩展索引表中的虚拟ID号通过1/0请求控制器提供给 上层应用程序或文件系统;根据从I/0请求控制器接收到的I/0坊问请求,从扩展索引表中 定位出所访问的基本存储单元的虚拟ID号; 地址翻译器,用于将从扩展索引表控制器得到的虚拟ID号,根据扩展索引表中记 录的存储设备的连接地址、基本存储单元ID号及其与虚拟ID号的关联关系翻译为存储设 备的连接地址、基本存储单元ID号,并送到数据传输控制模块; 数据传输控制模块,用于根据地址翻译器得到的存储设备的连接地址及所访问的 基本存储单元ID号,以及从I/O请求控制器得到的I/O访问类型、相关数据等信息送到指 定的存储设备,并接收从存储设备返回的1/0访问结果及相关数据。
所述地址采集模块包括,地址接收器和地址发送器; 所述数据传输控制模块包括,数据传输主控单元和数据访问传输控制单元;
进一步包括,2个网络设备,2个网络设备通过网络进行连接,实现彼此间数据的 网络传输; 所述地址接收器、数据传输主控单元与一个网络设备连接;所述地址发送器、数据 访问传输控制单元与另一个网络设备连接。本发明将多个存储设备虚拟形成一个容量为该 多个存储设备容量总和的"大硬盘",可以实现存储容量的无限扩展,大幅度提高存储容量, 采用低成本方式实现了大容量的"硬盘"。以硬盘为例,还可以充分利用硬盘的存储空间,甚 至能全部利用每一扇区,提高了硬盘的利用率;本发明具有成本低廉,使用维护都很方便, 某一块硬盘的损坏不影响其他硬盘的工作,只需更换损坏的硬盘即可;同时可以根据需要 动态添加存储设备;而且可以实现将网络连接的存储设备也虚拟为一个巨大"硬盘"的一部 分进行管理,实现了网络存储。而且采用混合编排各个基本存储单元ID号的方式,可以实 现同一个文件数据的并行读写,提高硬盘的读写带宽。 而且,在文件系统支持的情况下,可以对该虚拟的"大硬盘"再次通过网络进行共 享,以提供给其他计算机访问。 本发明通过直接管理存储设备上的基本存储单元,无论对于本地存储设备还是网 络上的存储设备,都能很好地实现;在基于网络平台上的1/0访问操作及数据传输都基于 网络传输协议实现,只需要传输1/0访问操作的控制信息及访问的数据信息,网络数据交
8换少,对网络带宽的利用率高,实现了高速网络存储,而且可以实现跨平台、跨操作系统的应用。


图l,本发明所述系统的总结构简图; 图2,基于图1的一种实施例的结构框图; 图3,一种实施例的扩展索引表及其与存储设备的映射关系示意图; 图4,本发明所述系统的一种实施例的结构框图; 图5,一种基于网络平台的实施例的局部结构框图; 图6,网络访问控制包数据结构示意图; 图7,本发明所述方法的存储扩展管理器初始化工作流程图; 图8,本发明所述方法的访问工作流程图。
具体实施例方式
为了便于对发明的进一步理解,下面结合附图对本发明的具体实施方式
做详细的 说明。 在图1所提供的结构中,构成存储设备组1的多个存储设备11、12、13......1N
分别同时与存储扩展管理器2、存储扩展访问控制器3建立连接,所述的存储设备11、12、
13......1N包括本地存储设备、网络存储设备。构成存储设备组1的各存储设备用于存放
数据,并由存储扩展管理器2进行扩展管理,并在存储扩展访问控制器3的控制下实现对其 的1/0访问。 所述的本地存储设备为本地直接连接的存储器,包括硬盘、电子硬盘、Flash闪存
盘、光存储设备、带有软盘的软盘驱动器以及其他具备数据存储功能的设备,当然优选采用
硬盘、电子硬盘及Flash闪存盘等,所述的各存储器均包括用于存储数据的存储介质(例如
硬盘的磁片、电子硬盘和Flash闪存盘的Flash芯片等),以及对应的用于实现对存储介质
的访问进行控制的存储控制器(例如硬盘的磁盘控制器、Flash存储控制器)。所述的网络
存储设备是通过广域网或局域网连接的存储设备,其包括通过局域网或广域网连接的,直
接连接有存储器的计算机、存储服务器。 结合图2所提供的结构框图,其具体结构是 存储扩展管理器2包括, 扩展索引表21,用于记录存储设备组1中各个存储设备连接地址、其基本存储单 元ID号及其对应的虚拟ID号、以及上述信息的关联关系等(具体对应关系参见图3);
地址采集模块22,用于采集存储设备连接地址及各个基本存储单元ID号;
虚拟ID生成器23,用于根据扩展索引表21中的基本存储单元ID号,对应生成虚 拟ID号。 存储扩展访问控制器3包括, 1/0请求控制器31,用于将扩展索引表21中的虚拟ID号信息提供给上层应用程 序或文件系统;以及接收上层应用程序或文件系统的1/0访问请求,并转发给扩展索引表 控制器32和数据传输控制模块34 ;
扩展索引表控制器32,用于将扩展索引表21中的虚拟ID号按照标准硬盘扇区号 的模式通过1/0请求控制器31提供给上层应用程序或文件系统;并根据从1/0请求控制器 31接收到的1/0访问请求,采用类似于标准硬盘的索引方式对扩展索引表21进行遍历搜 索,从中定位出所访问的基本存储单元的虚拟ID号及其偏移量,并送到地址翻译器33 ;
地址翻译器33,用于将从扩展索引表控制器32得到的虚拟ID号及偏移量,根据扩 展索引表21中记录的存储设备的连接地址、基本存储单元ID号及其与虚拟ID号的关联关 系翻译为存储设备的连接地址、基本存储单元ID号及偏移量并送到数据传输控制模块34 ;
数据传输控制模块34,用于根据地址翻译器33得到的存储设备的连接地址及所 访问的基本存储单元ID号及偏移量,以及从1/0请求控制器31得到的1/0访问类型、相关 数据等信息送到指定的存储设备,并接收从存储设备返回的1/0访问结果及相关数据。当 所访问的是本地存储设备时,通过存储设备的连接端口 ,将上述信息直接送到存储设备的 存储控制器,如硬盘的磁盘控制器;当所访问的是网络存储设备时,将上述信息生成网络访 问控制包,通过网络送到网络存储设备所在的网络地址,并将网络访问控制包解析后通过 存储设备连接端口送到存储设备的存储控制器。 其中,扩展索引表21作为存储扩展管理器2的核心部分,其同时与地址采集模块 22和虚拟ID生成器23连接,并与存储扩展访问控制器3的扩展索引表控制器32、地址翻 译器33连接,地址采集模块22与存储设备组1建立连接。 图3提供了扩展索引表21的结构示意图,以及其与所管理的存储设备组1中相关 存储设备11、12、13中各个基本存储单元的映射关系图。 扩展索引表21包括,用于记录所管理的存储设备连接地址的地址表212,所述连 接地址根据存储设备的连接方式不同而不一样,对于本地存储设备,既是其连接的端口地 址,如果是网络存储设备则是其网络地址(如IP地址)及其连接的端口地址;用于记录所 管理的存储设备之各个基本存储单元ID号的ID地址表213,该表记录了其所对应的各个基 本存储单元的ID号;用于记录所述每个基本存储单元对应的虚拟ID号的虚拟ID表211。
上述虚拟ID表211、地址表212、 ID地址表213,记录的相关信息相互关联,最终将 虚拟ID表211中的每一个虚拟ID号都映射到一个真实的存储设备的基本存储单元。在图 3所提供的结构中仅以示例的方式进行了描述,并不表示局限于所描述的具体内容。
在图3所提供的实施例中,客户端计算机(当然也可以是其他具有信息处理能力 的设备)连接了 3个独立存储设备11、12、13(当然也可以是3个存储数据的巻或硬盘分 区)。与所述3个存储设备的连接方式分别是存储设备11是本地存储设备,其是通过客 户端计算机的数据通道(总线端口 )直接连接的硬盘,该硬盘包括多个可存储数据的扇区, 其扇区号分别从0201 0204,其连接的地址既是其连接的端口地址,将该连接地址记录在 地址表212中,并对应的在ID地址表213中记录各个扇区号。存储设备12是一个网络硬 盘,其直接连接在存储服务器或计算机上,并通过网络与客户端计算机连接,其包括扇区号 为0301 0304的多个扇区,其连接的地址既是其所连接的存储服务器或计算机的网络地 址(如IP地址)以及该硬盘直接连接的端口地址,同样在地址表212和ID地址标213中 记录该硬盘的连接地址和对应的扇区号。存储设备13是采用类似于存储设备12连接的网 络存储设备,但是其是一个电子硬盘,其包括页号为001 003的页,同样在地址表212和 ID地址表213中记录准确的连接地址和页号。所述网络可以是局域网、广域网,包括以太
10网、光纤网络、无线数据传输网以及其他数据通讯网。所述的直接连接包括采用IDE、SCSI、 SAS、FC(Fibre Channel,光纤通道)、IEEE 1394、 USB等方式将存储器与客户端计算机、计 算机或存储服务器进行连接。对应地,在虚拟ID表211中记录了为上述每个基本存储单元 设定的虚拟ID号(简称虚拟ID号),例如,对于存储设备12中的第0303号扇区,其对应的 虚拟ID号为007,根据该扩展索引表21中的信息,即可通过其虚拟ID号——007,找到其 对应的硬盘扇区。从而实现了通过对虚拟ID号的管理和控制来管理和控制真实的存储设 备的基本存储单元。为了便于有效管理和控制,对于不同存储设备的基本存储单元应当采 用统一的大小,例如统一采用512B——事实上采用不同大小的也可以,只是需多增加个对 基本存储单元空间属性的描述信息,在本申请文件的描述中基本存储单元均采用统一的大 小。 通过上述方式,将多个存储设备进行管理,虚拟成一个存储容量为多个存储设备 存储容量总和的"大存储器"。扩展索引表控制器32将虚拟ID号按照标准硬盘扇区号的方 式通过I/O访问控制器提供给上层应用程序和/或文件系统。 由于通过FC(Fibre Channel,光纤通道)与客户端计算机连接的存储器(即光 纤存储器,如光纤硬盘),其对于客户端计算机虽然是一个网络存储设备,但是由于这种连 接对于客户端计算机是把它视作一个本地盘来操作,即客户端计算机直接访问的时光纤接 口。因此,在本申请文件中,将客户端计算机通过FC直接连接的光纤存储器作为本地存储
设备进行描述 。所述的本地存储设备均相对于客户端计算机,存储设备的本地连接指存储 器指通过客户端计算机总线的端口与存储器直接连接。 而对于网络存储设备,也是相对于客户端计算机,指客户端计算机通网络与存储 服务器或计算机连接,存储服务器、计算机再直接连接存储器,这种直接连接有存储器的计 算机、存储服务器称之为存储节点,客户端计算机通过网络与存储节点连接,并能通过存储 节点访问与之直接连接的存储器。 图4提供了一个连接有4个存储设备构成存储设备组1的实施例,通过在客户端 计算机4中植入实现存储扩展管理器2、存储扩展访问控制器3的程序,客户端计算机4直 接连接一个本地硬盘a,通过网络连接一台存储服务器5,一台计算机6,存储服务器5连接 了 2个光纤硬盘即硬盘b、 c,计算机6连接了一个电子硬盘。连接有存储设备的存储服务 器5、计算机6均构成存储节点。 图5提供了一种使用网络存储设备时,相关部分的结构框图。此时,地址采集模块 22由分别设置在客户端计算机4上的地址接收器221和设置在存储服务器5上的地址发送 器222 ;数据传输控制模块34包括设置客户端计算机4上的数据传输主控单元341和设置 在存储节点56上的数据访问传输控制单元342 ;上述各个部分均与相应的网络设备41、42 连接,网络设备41 、42通过网络进行连接,实现彼此间数据的网络传输。存储节点56连接 有硬盘,硬盘包括磁盘控制器la和磁盘lb。上述地址采集模块22和数据传输控制模块34 的各个组成部分可以以计算机程序的方式植入到客户端计算机4和存储服务器5中。上述 存储节点包括56,直接连接有存储设备的存储服务器5、直接连接有存储设备的计算机6, 所述的硬盘也可以是电子硬盘等其他类型的存储设备(均包括存储控制器和存储介质)。
地址发送器222采集存储节点的网络地址(如IP地址),也既是硬盘的IP地址, 硬盘连接端口号,硬盘上的可用扇区号等,按照网络传输协议以网络数据包的形式发送给地址接收器221,地址接收器221把上述信息记录到扩展索引表21中;数据传输主控单元 341将指向网络硬盘的1/0访问请求转换为网络访问控制包,并按照网络传输协议送到数 据访问传输控制单元342,数据访问传输控制单元342解析网络访问控制包,并送给磁盘控 制器la,实现对磁盘的访问,并包访问结果通过网络回传给数据传输主控单元341,数据传 输主控单元341再把访问结果送给I/O请求控制器。 图6提供了网络访问控制包的数据结构示意图,其包括所访问的存储设备所在IP 地址Dl、存储设备连接端口地址D2、访问结果回传地址D3 (对于存储设备所在IP地址Dl、 访问结果回传地址D3并不是必需的,因为根据TCP/IP协议,会在网络数据包中记录目的地 址和发起地址,当然为了更好地提高访问的准确性和数据传输的可靠性,接收端在数据结 算后可以进行核对,以确保数据传输更准确),访问类型D4、访问的基本存储单元起始ID号 及偏移量D5,对于写访问,还包括需要写入所述基本存储单元中的待写数据D6等信息。
从存储服务器回传的访问结果按照类似的结构生成访问结果数据包,其包括被访 问的存储设备所在IP地址、被访问的存储设备连接端口地址、访问结果回传地址(IP地 址),访问类型、被访问的基本存储单元起始ID号及偏移量、访问结果状态,对于读访问,还 包括访问到的数据。 本发明将多个存储设备构成的存储设备组经扩展索引表21的扩展管理,形成一 个虚拟的大存储设备,通过将记录了多个存储设备相关信息的扩展索引表21中的虚拟ID 表211按照标准硬盘的方式提供给文件系统和/或上层应用程序,此时对于文件系统、上层 应用程序,将扩展索引表21中记录的所有存储设备作为一个大的、真实、完整的存储设备 进行使用,并由文件系统对其进行分配、管理或由上层应用程序使用,并以虚拟ID表211中 记录的虚拟ID号建立相关索引信息。 简单地说,以硬盘为例,当访问端(客户端计算机)需要访问某一扇区时,存储扩 展访问控制器首先访问扩展索引表中的虚拟ID号,根据关联信息确定该扇区的对应的硬 盘地址,以及该扇区号,如果为本地存储设备,读取扇区号并送到对应地址的磁盘,磁盘控 制器根据扇区号及访问类型执行访问任务,并把访问结果回传给存储扩展访问控制器;如 果访问的是网络存储设备,则读取扇区号,将访问类型与扇区号等共同打包,按照所访问的 网络存储设备连接的网络地址,通过网络发送到对应地址的存储节点(存储服务器或计算 机),存储节点解析出扇区号、访问类型等信息,送到对应的磁盘控制器进行访问,并把访问 结果通过网络回传到访问端。 对于访问中对索引信息的控制管理等机制与标准硬盘的访问相一致,在此不做冗 述。为便于对本发明更深入的理解,下面对本发明的具体工作步骤予以说明,以下描述主要 说明如何通过扩展索引表来访问真实的存储设备。以下均以图4提供实施例的结构框图进 行描述,以客户端计算机4作为发起访问请求的访问端,在所述客户端计算机4中植入实现 本发明的相关程序,以及在存储服务器5、计算机6中也植入实现本发明相关功能的程序, 为了更好的理解本发明,在具体描述中也将涉及其他附图所记载的内容。
参照以及图7所提供的工作流程图, 步骤S11,客户端计算机4连接多个存储设备构成存储设备组1。所述存储设备包 括本地存储设备以及网络存储设备。本地存储设备是一个硬盘a,所述的硬盘a可以是一个 独立硬盘,也可以是一个硬盘的逻辑分区;网络存储设备是存储服务器5以及其所连接的包括硬盘b、 c光纤硬盘阵列所共同构成的网络存储设备,网络存储设备还包括一台计算机 及其连接的电子硬盘所构成的网络存储设备。 步骤S12,地址采集模块22采集所连接的各个存储设备的连接地址,参照图2、图 4的结构,所述步骤具体包括, 客户端计算机4首先扫描本地连接的存储器,通过扫描找到本地的所有存储器, 根据需要,选择需要的存储器,在图4的结构中,也即本地的硬盘a,当然硬盘a可以只是客 户端计算机4连接的本地存储设备中的一部分,也即其除了连接有硬盘a,还可以包括其他 存储器,但是其他存储器没有作为本发明的存储设备组1的组成部分,而作为其他独立存 储器供客户端计算机4使用,由于其不属于本发明所涉及的内容,因此没有在图中进行记 载。地址采集模块22根据扫描结果及进行的选择,采集所选择的硬盘a在客户端计算机4 上的连接端口地址,并记录到扩展索引表21的地址表212中。 参照图5及图4所示,对于网络存储设备,根据需要,在客户端计算机4中进行逻 辑添加网络存储设备所在的网络地址——存储节点的网络地址——如IP地址,地址接收器 221通过网络设备41访问该网络地址,并向该网络地址发送端口采集控制信息,地址发送 器222通过网络设备42接收端口采集控制信息,并采集本存储节点的全部可用存储器的连 接端口地址,并通过网络设备42送到地址接收器221,客户端计算机4根据需要选择的该网 络地址上的存储器,地址接收器221将所述网络地址、选定的存储器的连接端口地址并记 录在扩展索引表21的地址表212中。在图4的结构中,所述的存储节点56包括存储服务 器5 、计算机6 ,存储服务器5通过FC直接连接了 2块光纤硬盘,即硬盘b 、 c ,计算机6直接 连接的是一块电子硬盘。在本步骤中,设在存储服务器5、计算机6上的地址发送器222,根 据地址接收器221发送的地址采集控制信息,将硬盘b、c在存储服务器5,电子硬盘在计算 机6上的连接端口发送给地址接收器221,并记录到地址表212中。 步骤S13,地址采集模块22采集步骤S12中选定的存储器的基本存储单元的ID 号,并记录到扩展索引表21的ID地址表中,其具体包括 对于硬盘a,由于是本地存储设备,地址采集模块22通过硬盘a的磁盘控制器采集 硬盘a用于存储数据的全部可用扇区号,并记录到扩展索引表21的ID地址表,并且使硬盘 a的连接端口地址与其各个可用扇区号都进行对应。 对于硬盘b、c,由于其属于网络存储设备,地址接收器221通过网络设备41、42向 存储服务器5上的地址发送器222发送地址ID号采集控制信息,地址发送器222通过硬盘 b、 c的磁盘控制器采集其全部可用扇区号,并通过网络设备41、42回传给地址采集器221, 并将硬盘b、c的扇区号分别对应其连接地址记录到扩展索引表21的ID地址表213中。同 样对于电子硬盘,也采用相同的方式采集其全部可用页号,并将页号与电子硬盘的连接地 址对应,把页号记录到ID地址表中。 当然在实际应用中,可以将步骤S12、 S13合并实施,即将存储器的连接端口地址 和扇区号、页号(基本存储单元ID号) 一并采集,并分别记录到扩展索引表21中。
步骤S14,根据所采集到的全部存储设备的基本存储单元的ID号数量,虚拟ID生 成器23为每个基本存储单元生成一个不同的虚拟ID号,虚拟ID号本身一般连续的,这样 便于管理和控制。在生成虚拟ID号时,可以根据各个存储设备的基本存储单元的ID号,顺 序生成虚拟ID号,也可不以其为参照,独立计算生成。尤其可以采用将连续的虚拟ID号分
13段对应不同的存储设备,例如可以将虚拟ID号001-010、030-040是对应硬盘a上的基本存 储单元,而虚拟ID号011-020、050-060是对应硬盘b上的基本存储单元,这样可以在读写 大数据文件时,分别从不同的硬盘读写文件各个部分的数据,以提高读写带宽。将生成的各 个虚拟ID号与对应的存储设备地址、基本存储单元的ID号建立关联,并记录到扩展索引表 21的虚拟ID表中。 步骤S15,扩展索引表控制器32将扩展索引表21中的虚拟ID号整体提供给上层
应用程序或文件系统。扩展索引表控制器32把将扩展索引表21中的所有虚拟ID号作为
一个标准硬盘的扇区号的方式提供给上层应用程序或文件系统。所述过程即相当于将虚拟
ID号作为一个"大硬盘"的扇区号提供给上层文件系统或文件系统使用。 上层应用程序通过虚拟ID号实现对存储设备的访问,文件系统以虚拟ID号为基
础建立文件系统。 完成上述初始化信息后,当有上层应用程序或文件系统发出指向该虚拟"大硬盘" 的1/0访问请求时,其把扩展索引表21中的全部虚拟ID号视作一个"大硬盘"的全部扇区 号来使用,并直接指向的是虚拟ID号,最终通过虚拟ID号,根据关联关系找到并指向真实 的存储器的基本存储单元,其具体包括如下步骤 步骤S20, 1/0请求控制器31接收从上层应用程序或文件系统发出的1/0访问请 求,并将所述I/O访问请求转发给扩展索引表控制器32。 步骤S21,扩展索引表控制器32根据接收到的1/0访问请求,按照现有访问标准 硬盘时,计算查找访问扇区号的方式从扩展索引表21的虚拟ID表211中计算查找要访问 的基本存储单元的虚拟ID号,并采集到扩展索引表控制器32中。对采集到的要访问的基 本存档单元的虚拟ID号的记录方式,可以采用记录基本存储单元的起始虚拟ID号及以及 偏移量,当然也可以是直接计算出需要访问的基本存储单元的虚拟ID号的起止范围。当然 优选才有记录起始虚拟ID号及其偏移量的方式,这种方式可以相关步骤中的工作流程,在 以下描述中均采用这种记录方式为例进行描述。具体地说,以写访问为例,扩展索引表控制 器32根据需要写入的数据大小和基本存储单元的大小计算出需要的基本存储单元的数量 即为虚拟ID号的偏离量,即
偏移量=(拟剤繊力小_+1)取整。 W^ ^ 单个基本存储单元的大小Wl 由于对于一个1/0访问请求所需要访问的基本存储单元的虚拟ID号可能是不连
续的,对于这种情况,需要分别记录每个连续部分的起始虚拟ID号及其偏移量,并记录其
顺序关系,所有各个部分总体构成需要访问的全部虚拟ID号。对应扩展索引表控制器32
将得到的要访问的起始虚拟ID号及偏移量送到地址翻译器33。 步骤S22,地址翻译器33根据得到的起始虚拟ID号及偏移量,按照扩展索引表21 中所记录的关联关系,将所述起始虚拟ID号及偏移量翻译为对应的基本存储单元所在存 储器的连接地址和对应的基本存储单元的起始ID号即偏移量,并送到数据传输控制模块 34。在采用记录起始虚拟ID号和偏移量的方式,在地址翻译时,只需要对起始虚拟ID号进 行地址翻译即可。当然如果所述的虚拟ID号及偏移量不在同一个真实的存储器上时,需要 将上述内容进行分解,例如,参照图3所示,如果一个1/0访问请求需要访问的起始虚拟ID号是003,偏移量是4,此时在地址翻译时,其分别指向的是存储设备11的0203、0204扇区, 以及存储设备12的0301、0302、0303扇区,此时经翻译后变成两个部分,即指向存储设备11 的起始ID号为0203、偏移量为l,指向存储设备12的起始ID号为0301、偏移量为2。
步骤S23,地址翻译器33在将虚拟ID号及偏移量翻译成真实存储器的连接地址和 基本存储单元ID号时,根据存储器的连接地址(是否存在网络地址)判断该存储器是本地 存储设备,还是网络存储设备,并把判断结果以及翻译得到的需要访问的存储器的连接地 址、访问的基本存储单元的起始ID号及偏移量等送到数据传输控制模块34,如果是本地存 储设备,直接执行步骤步骤S27,如果是网络存储设备,执行步骤S24。 步骤S24,数据传输控制模块34的数据传输主控单元341从收到的需要访问的存 储器的连接地址中提取出IP地址,并将所述存储器IP地址、存储器连接端口地址、访问基 本存储单元的起始ID号及偏移量,读取客户端计算机4的IP地址,以及从I/O请求控制器 31中得到的访问类型(对于写访问还包括待写数据)等生成并记录到网络访问控制包中。 具体说,将存储器IP地址、存储器连接端口地址、客户端计算机4的IP地址、访问类型、访 问基本存储单元的起始ID号及偏移量、待写数据分别对应记录到存储设备所在IP地址D1、 存储设备连接端口地址D2、访问结果回传地址D3,访问类型D4、访问的基本存储单元起始 ID号及偏移量D5,待写数据D6。 对于指向不同存储器的访问请求分别生成网络访问控制包,对于指向同 一个存储 器,但是有多组起始ID号及偏移量的,将每组起始ID号及偏移量对应的相关信息按照上述 方式分别生成网络访问控制包。 为了提高网络传输的效率和访问的高效,同时也便于客户端计算机4的应用,可
以根据网络状态、应用环境等对单个网络访问控制包的大小进行设定。 数据传输主控单元341将提取出的IP地址、网络访问控制包一并送到网络设备41。 步骤S25,网络设备41将所述IP地址作为目的地址(即要访问的存储节点56), 读取客户端计算机4的IP地址作为发起地址,将网络访问控制包作为数据按照通讯协议生 成网络数据包(IP包),送到目的地址(即访问的存储节点56)的网络设备42,并解析出其 中的网络访问控制包送到数据访问传输控制单元342 。 步骤S26,数据访问传输控制单元342解析网络访问控制包,将其中的存储设备所 在IP地址与本存储节点IP地址比较,如果不相符,则丢弃该网络访问控制包;如果相符,则 解析出存储器连接端口地址、访问类型、访问的基本存储单元的起始ID号即偏移量以及可 能有的待写数据等。 步骤S27,如果是本地存储设备,数据传输控制模块34从I/O请求控制器31中得 到的访问类型(对于写访问还包括待写数据),将访问类型、基本存储单元的起始ID号及偏 移量,以及可能的待写数据送到存储器的连接端口地址,直接发送到指定存储器的存储控 制器。 如果是网络存储设备,则在存储节点56上执行,存储节点56上的数据访问传输控
制单元342,将访问类型、访问的基本存储单元的起始ID号及偏移量以及可能有的待写数
据等送到所述存储器的连接端口地址,并传给该存储器的存储控制器。 步骤S28,存储控制器根据访问类型,对指定的基本存储单元起始ID号及偏移量对存储介质上的对应基本存储单元进行访问。比如将待写数据写入到指存储介质上指定的 基本存储单元中,或者从指定的基本存储单元中读出数据。 步骤S29,访问结束后,存储控制器将访问结构返回给数据传输控制模块34,并送
到1/0请求控制器31,由1/0请求控制器31返回给上层应用程序或文件系统。整个访问结
果的回传与标准硬盘的访问结果回传方式相似,只是这个过程有本发明中的相关部分来执
行,以及对于网络存储设备需要按照通讯协议将访问结果回传。具体是 对于本地存储设备,存储控制器将访问结果直接返回给数据传输控制模块34,并
送到I/O请求控制器31,由I/O请求控制器31返回给上层应用程序或文件系统。 对于网络存储设备,在存储节点56上,存储控制器将访问结果回传给数据访问传
输控制单元342,访问传输控制单元342将访问结果状态、本存储节点的IP地址(即所访问
的存储设备所在IP地址)、存储设备连接端口地址、访问的基本存储单元起始ID号即偏移
量、访问结果回传地址(IP地址),以及对于读访问读取的数据等生成访问结果数据包,送
到网络设备42,网络设备42以访问结果回传的IP地址作为目的地址,本存储节点的IP地
址作为发起地址,根据通讯协议将访问结果数据包生成网络数据包(IP包)发给客户端计
算机4的网络设备41 ;网络设备41从网络数据包中解析出访问结果数据包送到数据传输
主控单元341 ;数据传输主控单元341从访问结果数据包中,解析出存储设备所在IP地址
与客户端计算机4的IP地址进行比对,如果相符则将访问结果状态、访问的基本存储单元
起始ID号即偏移量、以及对于读访问读取的数据等送到1/0请求控制器31。 当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,即
使对各个步骤的执行顺序进行了改变,都属于本发明的保护范围。熟悉本领域的技术人员
可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附
的权利要求的保护范围。
1权利要求
一种存储设备的扩展方法,包括(1)连接多个存储设备,构成存储设备组;其特征在于,进一步包括(2)采集并记录每个存储设备的连接地址,以及该存储设备的基本存储单元的ID号;为所述每个基本存储单元分配唯一的虚拟ID号并记录,将所述每个虚拟ID号分别与对应的存储设备的连接地址、基本存储单元的ID号建立关联;(3)访问时,通过虚拟ID号对对应的基本存储单元进行访问。
2. 如权利要求1所述的方法,其特征在于,所述存储设备,包括本地存储设备、网络存 储设备;所述本地存储设备是通过直接连接的存储器;所述网络存储设备是通过广域网或局域网连接的存储节点,所述存储节点包括,直接 连接有存储器的计算机、存储服务器;所述直接连接包括包括IDE、 SCSI、 SAS、 FC、 IEEE 1394、 USB连接。
3. 如权利要求2所述的方法,其特征在于,所述步骤(2)具体包括(21) 采集每个存储设备的连接地址,并记录到扩展索引表的地址表中; 所述连接地址包括,作为本地存储设备的存储器之连接端口地址;网络存储设备的存储节点的网络地址、存储器在存储节点上的连接端口地址;(22) 访问所述存储设备,采集其全部可用基本存储单元的ID号记录到扩展索引表的 ID地址表中;(23) 生成连续的虚拟ID号,将所述虚拟ID号分配每个基本存储单元,将虚拟ID号记 录到存储扩展索引表的虚拟ID表中;(24) 将每个虚拟ID号与对应的基本存储单元的ID号、基本存储单元所在存储设备的 连接地址建立关联信息,并记录到扩展索引表中。
4. 如权利要求3所述的方法,其特征在于,所述步骤(23)中,每个存储设备的全部基本 存储单元的虚拟ID号是连续分配的;或每个存储设备的全部基本存储单元的虚拟ID号是 分段交错分配。
5. 如权利要求3所述的方法,其特征在于,所述步骤(3)具体包括(31) 将虚拟ID表中记录的虚拟ID号提供给上层应用程序或文件系统;(32) 根据上层应用程序或文件系统发出的I/0访问请求,从虚拟ID表中计算查找需要 访问的虚拟ID号;(33) 根据扩展索引表中记录的关联信息,根据确定的虚拟ID号找到其对应的存储设 备的连接地址和基本存储单元的ID号;(34) 根据所述存储设备的连接地址和基本存储单元的ID号访问存储设备上对应的基 本存储单元;(35) 返回访问结果。
6. 如权利要求5所述的方法,其特征在于,所述步骤(34)具体包括(341)根据存储设备的连接地址判断存储设备的类型,如果所述连接地址中包含网络 地址,则所对应的存储设备是网络存储设备,执行步骤(342);反之是本地存储设备,从1/0 访问请求中读取访问类型、以及对于写访问的待写数据,执行步骤(344);(342) 如果是网络存储设备,确定访问请求之访问结果回传的网络地址,根据I/O访问 请求和确定的需要访问的存储设备的连接地址和基本存储单元的ID号生成网络访问控制 包;所述的网络访问控制包包括,存储器在存储节点上的连接端口地址、访问结果回传的网 络地址、要访问的基本存储单元的ID号、I/0访问请求中的访问类型、以及对于写访问的待 写数据;(343) 以存储节点的网络地址为目的地址,将网络访问控制包按照通讯协议发送到所 访问的存储节点,解析出网络访问控制包中的存储器在存储节点上的连接端口地址、访问 类型、以及对于写访问的待写数据;(344) 根据确定的连接端口地址,将要访问的基本存储单元的ID号、访问类型、以及对 于读访问的待写数据送到所述连接端口连接的存储器;(355)存储器根据按照访问类型对基本存储单元的ID号对应的基本存储单元执行访 问任务。
7. 如权利要求5所述的方法,其特征在于,所述步骤(35)包括 对于网络存储设备,在存储节点执行,(351) 存储器将访问结果返回到存储节点,在存储节点,根据访问结果生成访问结果数 据包;所述访问结果数据包包括,本存储节点的网络地址、存储器在存储节点的连接端口地 址、访问的基本存储单元ID号、以及对于读访问请求读取的数据;(352) 将访问结果回传的网络地址作为目的地址,将访问结果数据包按照通讯协议送 到访问结果回传的网络地址上;(353) 解析访问结果数据包,将访问结果返回给上层应用程序或文件系统; 对于本地存储设备,存储器直接将访问结果返回给上层应用程序或文件系统。
8. —种存储设备存储容量的扩展系统,包括, 多个存储设备构成的存储设备组,用于存储数据; 其特征在于,进一步包括,存储扩展管理器,所述存储扩展管理器包括,扩展索引表,用于记录存储设备组中各个 存储设备的连接地址、以及该存储设备的基本存储单元ID号及其对应的虚拟ID号、以及它 们的关联关系;地址采集模块,用于采集存储设备的连接地址及各个基本存储单元ID号; 虚拟ID生成器,用于根据扩展索引表中的基本存储单元ID号,对应生成虚拟ID号;存储扩展访问控制器,用于实现通过虚拟ID号对对应的基本存储单元进行访问。
9. 如权利要求8所述的系统,其特征在于,所述存储扩展访问控制器包括, 1/0请求控制器,用于将扩展索引表中的虚拟ID号提供给上层应用程序或文件系统;以及接收上层应用程序或文件系统的1/0访问请求,并转发给扩展索引表控制器和数据传 输控制模块;扩展索引表挖制器,用于将扩展索引表中的虚拟ID号通过I/0请求控制器提供给上层 应用程序或文件系统;根据从I/0请求控制器接收到的I/0坊问请求,从扩展索引表中定位 出所访问的基本存储单元的虚拟ID号;地址翻译器,用于将从扩展索引表控制器得到的虚拟ID号,根据扩展索引表中记录的 存储设备的连接地址、基本存储单元ID号及其与虚拟ID号的关联关系翻译为存储设备的 连接地址、基本存储单元ID号,并送到数据传输控制模块;数据传输控制模块,用于根据地址翻译器得到的存储设备的连接地址及所访问的基本 存储单元ID号,以及从1/0请求控制器得到的1/0访问类型、相关数据等信息送到指定的 存储设备,并接收从存储设备返回的I/O访问结果及相关数据。
10.如权利要求9所述的系统,其特征在于,所述地址采集模块包括,地址接收器和地址发送器;所述数据传输控制模块包括,数据传输主控单元和数据访问传输控制单元; 进一步包括,2个网络设备,2个网络设备通过网络进行连接,实现彼此间数据的网络传输;所述地址接收器、数据传输主控单元与一个网络设备连接;所述地址发送器、数据访问 传输控制单元与另一个网络设备连接。
全文摘要
本发明一种存储设备容量的扩展方法及系统,公开了一种存储设备的扩展方法,包括连接多个存储设备,构成存储设备组;其特征在于,进一步包括记录每个存储设备的连接地址,以及该存储设备的全部可用基本存储单元的ID号;为所述每个基本存储单元分配唯一的虚拟ID号并记录,将所述每个虚拟ID号分别与对应的存储设备的连接地址、基本存储单元的ID号建立关联;访问时,通过虚拟ID号对对应的基本存储单元进行访问。以及公开了实现所述方法的系统。本发明将多个存储设备虚拟形成一个容量为该多个存储设备容量总和的“大硬盘”,可以实现存储容量的无限扩展,大幅度提高存储容量。而且,可以实现网络存储。
文档编号G06F3/06GK101751233SQ20091026279
公开日2010年6月23日 申请日期2009年12月31日 优先权日2009年12月31日
发明者余军, 刘盾, 徐广庆, 李科 申请人:成都索贝数码科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1