CN100377065C - 一种超大容量的虚拟磁盘存储*** - Google Patents

一种超大容量的虚拟磁盘存储*** Download PDF

Info

Publication number
CN100377065C
CN100377065C CNB2006100188317A CN200610018831A CN100377065C CN 100377065 C CN100377065 C CN 100377065C CN B2006100188317 A CNB2006100188317 A CN B2006100188317A CN 200610018831 A CN200610018831 A CN 200610018831A CN 100377065 C CN100377065 C CN 100377065C
Authority
CN
China
Prior art keywords
module
tape
logical block
virtual
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2006100188317A
Other languages
English (en)
Other versions
CN1862476A (zh
Inventor
冯丹
王芳
曾令仿
施展
田磊
刘景宁
童薇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CNB2006100188317A priority Critical patent/CN100377065C/zh
Publication of CN1862476A publication Critical patent/CN1862476A/zh
Application granted granted Critical
Publication of CN100377065C publication Critical patent/CN100377065C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种超大容量的虚拟磁盘存储***,属于计算机存储技术领域,本发明通过SCSI总线或网络通信链路与开放***主机通信,包括虚拟磁盘服务器和磁带库,所述虚拟磁盘服务器包括小型计算机***接口适配器、处理器、磁盘阵列和存储器;存储器包括地址映射模块、命令转换模块、写回模块、缓存管理模块、读预取模块、虚拟存储模块和缓存模块;磁带库包括介质交换单元、磁带驱动器单元和存储单元;虚拟磁盘服务器和磁带库之间通过SCSI总线连接;本发明将传统顺序访问的磁带介质虚拟为可随机访问的磁盘驱动器,存储容量由磁带库存储容量决定、读写性能接近物理磁盘、虚拟了真实磁盘的物理特性、呈现给用户的是一块大硬盘。

Description

一种超大容量的虚拟磁盘存储***
技术领域
本发明属于计算机存储技术领域,尤其涉及计算机***访问的具有磁带库、磁盘阵列和虚拟磁盘存储器的存储***。
背景技术
随着计算机技术和网络通信技术的飞速发展,信息化程度越来越高,人们对数据的需求量越来越大。这一需求不仅需要大量数据的联机存储,还需要数据的备份和归档。数据的备份和归档主要采用磁盘、磁带和光盘,即采用Disk-to-Tape(Disk-to-Disc)或者Disk-to-Disk-to-Tape(Disk-to-Disk-to-Disc)模式。
用磁带作存储介质的优点是它可保存近30年,且方便运输;而磁盘的寿命是10年左右,不适宜移动存放。当然,磁带(库)也存在缺点,诸如磁带在机械读写的过程中易磨损,导致数据不可读。其中,以分钟为单位的耗时机械操作(磁带库机械手装载/卸载磁带、磁带驱动器对磁带的mount和unmount时间、以及磁带的定位和回卷时间等)相比磁盘驱动器毫秒级的机械动作而言,这一缺点成为磁带(库)的最大劣势。
从磁带上直接读取数据的时间与从磁盘读取数据的时间相差两到三个数量级,因此采用磁盘作读写缓存以提高磁带库***的随机I/O性能就成为必然的选择。以往基于磁盘缓存的调度策略有一个共同点,它们考虑的都是如何结合磁带库的结构特点对I/O操作进行优化,其读写操作的优化对象都是磁带本身,用户和应用程序仍然面对磁带(库),已有缺点仍然存在。
将大容量的磁带库虚拟为一个磁盘使用,用户看到的是一个可进行随机读写操作的超大容量的硬盘,即存储容量是磁带库的容量而存储性能又接近物理磁盘,综合了磁盘和磁带的优点。
发明内容
本发明提出一种超大容量的虚拟磁盘存储***,采用虚拟存储技术,结合磁盘和磁带的优点,在成本、性能上实现最佳平衡。
本发明一种超大容量的虚拟磁盘存储***,通过SCSI总线或网络通信链路与开放***主机通信,包括虚拟磁盘服务器和磁带库,所述磁带库包括介质交换单元、磁带驱动器单元和存储单元;其特征在于所述虚拟磁盘服务器包括小型计算机***接口适配器、网络适配器、处理器、磁盘阵列和存储器;存储器包括地址映射模块、命令转换模块、写回模块、缓存管理模块、读预取模块,虚拟存储模块、缓存模块和iSCSI协议处理模块;虚拟磁盘服务器和磁带库之间通过SCSI总线连接;
(1)所述虚拟磁盘服务器中:
(1.1)所述小型计算机***接口适配器通过SCSI总线接收开放***主机的SCSI块命令,通过SCSI总线进行虚拟磁盘服务器与磁带库之间的通信;(1.2)所述网络适配器通过通信链路接收开放***主机封装有SCSI块命令的数据包;(1.3)所述处理器为虚拟磁盘服务器的计算单元;(1.4)所述磁盘阵列为磁带库的高速磁盘缓存;
(2)所述虚拟磁盘服务器的存储器中:
(2.1)所述地址映射模块生成磁带缓存链,将磁盘逻辑地址空间映射到磁盘阵列形成的缓存模块上和磁带库中所有磁带形成的虚拟存储模块上,所述磁带缓存链是针对虚拟存储模块与缓存模块之间的映射关系所定义的磁带缓存平衡二叉树节点所形成的平衡二叉树链;(2.2)所述命令转换模块实现SCSI块命令与SCSI流命令之间的相互转换,访问磁带库时,依照地址映射模块提供的地址信息将开放***主机的SCSI块命令转换为访问磁带库的SCSI流命令,访问磁盘阵列时,将虚拟存储模块的SCSI流命令转换为访问磁盘阵列的SCSI块命令,构造SCSI介质交换命令;(2.3)所述写回模块调用地址映射模块和命令转换模块,将磁盘阵列中存储的数据迁移到磁带库中相应磁带上;(2.4)所述缓存管理模块管理缓存模块和虚拟存储模块存储空间的分配和回收、以及对数据的写回和预取,缓存管理模块根据地址映射模块的地址映射信息确定访问磁盘阵列或访问磁带库;(2.5)所述读预取模块调用地址映射模块和命令转换模块,根据缓存管理模块的需要从磁带上预取一部分数据到缓存模块,以提高数据在缓存模块中的命中率;(2.6)所述虚拟存储模块是由地址映射模块根据磁带库中的所有磁带形成的存储空间,它由逻辑块构成,虚拟存储模块即是虚拟磁盘存储***的磁盘逻辑地址空间;(2.7)所述缓存模块是由地址映射模块根据磁盘阵列形成的磁带缓存空间,它由逻辑块构成,缓存模块所包含的逻辑块是虚拟存储模块所包含逻辑块的一个子集;(2.8)所述iSCSI协议处理模块处理开放***主机通过计算机网络传送的用iSCSI协议封装的数据包,解析出SCSI块命令;
(3)磁带库接收从虚拟磁盘服务器发来的SCSI介质转换命令和SCSI流命令,分别进行磁带换带操作或读写磁带操作。
所述的超大容量的虚拟磁盘存储***,其进一步特征在于:(1)所述地址映射模块通过向磁带驱动器单元发送SCSI的INQUIRY命令得到磁带驱动器的型号,生产厂商信息;地址映射模块向磁带驱动器单元发送SCSI的MODE_SENSE命令获取磁带驱动器单元中的磁带的存储属性信息,包括类型、写密度、读写延迟、磁带速度、活动分区、分块大小,由此获取每条磁带存储容量;(2)所述写回模块的写操作遵循次优先级加主动的策略,即优先执行来自上层驱动的用户I/O请求命令,一旦虚拟磁盘服务器空闲,虚拟磁盘服务器立刻调用写回模块。
所述的超大容量的虚拟磁盘存储***,其更进一步特征在于:(1)所述缓存模块由逻辑块组成,逻辑块用缓存模块平衡二叉树节点数据结构组织,将含有新更改磁带数据的逻辑块称为写回逻辑块,将含有未更改磁带数据的逻辑块称为只读逻辑块,写回逻辑块构成写回逻辑块链,只读逻辑块构成只读逻辑块链,未挂入写回逻辑块链和只读逻辑块链的逻辑块为空闲逻辑块;(2)所述缓存管理模块,在缓存模块未填满时,直接给新的I/O请求分配空闲逻辑块;当缓存模块填满无空闲逻辑块时,从缓存模块的只读逻辑块链中剔除选定的只读逻辑块,并从该只读逻辑块所属的磁带缓存链中将代表该只读逻辑块的节点取出,将该节点***到要写入的磁带缓存链,对该节点代表的逻辑块写入数据,并更新写回逻辑块链;每当逻辑块写入磁带,相应磁带缓存链的节点写标志置为完成,从写回逻辑链中剔除该节点,将该节点***到只读逻辑块链中;若新的I/O写请求命中写回逻辑块,则直接将新数据写入写回逻辑块;命中只读逻辑块,则将代表该只读逻辑块的节点从只读逻辑块链中剔除,并将数据写入到该剔除的逻辑块中,更改代表该逻辑块节点的写标志为完成,并将该节点***到写回逻辑块链。
本发明用磁盘阵列和磁带库虚拟超大容量磁盘存储***,将磁带库中所有物理磁带存储空间映射成一个大的磁盘逻辑地址空间,对虚拟磁盘的容量设置,是当收到读磁盘容量命令时,地址映射模块根据已获取的磁带库的存储空间大小配置一个虚拟的磁盘结构,该结构中的柱、面、扇数据项最终折算出的字节容量与磁带库中所有磁带的存储容量之和相同;本发明将传统顺序访问的磁带介质虚拟为可随机访问的磁盘驱动器,改变了传统的数据管理方式和数据处理方式,存储容量由磁带库存储容量决定,读写性能接近物理磁盘,虚拟了真实磁盘的物理特性,呈现给用户的是一块大硬盘。
附图说明
图1为本发明一种实施方案的典型结构示意图;
图2为本发明在网络中应用的***结构示意图;
图3是本发明的运行流程图;
图4为本发明的存储***逻辑地址空间到物理磁带空间的地址映射关系示意图,其中(a)为磁带库中磁带的位置;(b)为每个磁带被分为N块后逻辑地址分布;(c)为磁带库与虚拟存储空间的映射关系;
图5是针对磁带库中的磁带与缓存模块之间的映射关系所定义的磁带缓存平衡二叉树节点的数据结构示意图;
图6是针对磁盘阵列所定义的缓存模块平衡二叉树节点的数据结构示意图;
图7是缓存模块的数据组织示意图。
具体实施方式
下面结合附图和实施例对本发明进一步详细说明。
图1为本发明一种实施方案的结构示意图,其中开放***主机2为任何适当类型的工作站或个人计算机,通过SCSI总线4将小型计算机***接口(SCSI)磁盘命令发送到本发明的虚拟磁盘存储***6,虚拟磁盘存储***6包括虚拟磁盘服务器22和磁带库25,两者通过小型计算机***接口(SCSI)总线连接。
本实施例的虚拟磁盘服务器22由一台普通PC机连接普通的SCSI接口的磁盘阵列31组成,PC机包括LSI公司的LSI22320小型计算机***接口适配器29、Intel Pentium42.4GHz的处理器30、网络适配器32、512M字节的存储器27,网络适配器是普通PC机的网卡。其中处理器30是虚拟磁盘服务器22的计算单元;小型计算机***接口适配器29通过小型计算机***接口(SCSI)总线4接收开放***主机2发来的SCSI命令;网络适配器32用于通过通信链路14连接到计算机网络12,处理开放***主机2与虚拟磁盘服务器22之间传送的数据包;磁盘阵列31,典型地配置成独立磁盘冗余阵列(RAID),充当磁带库***的数据磁盘高速缓存(cache)。本发明***的软件功能模块存在于存储器27,包括地址映射模块33、iSCSI协议处理模块34、命令转换模块35、写回模块36、缓存管理模块37、读预取模块38,以及上述模块操作磁带库25形成的虚拟存储模块39、操作磁盘阵列31形成的缓存模块40。
磁带库25,不限于特定的磁带库厂商,本例中为HP MSL5030磁带库,具有30个存储单元、1个磁带驱动器单元和1个介质交换单元,被虚拟化为磁盘块设备使用。磁带库25包括介质交换单元41,若干个磁带驱动器单元43及若干个存储单元45。介质交换单元41用于在磁带驱动器单元43和存储单元45之间移动磁带;磁带驱动器单元43对磁带进行访问;存储单元45用于放置磁带。
如图2所示,本发明也适用于网络环境。开放***主机2通过通信链路14连接到计算机网络12,通信链路14可以是光纤链路或百(千)兆以太网双绞线。计算机网络12又通过通信链路14连接多个本发明的虚拟磁盘存储***6。
图3的***运行流程图说明了本发明的运行步骤和主要功能模块之间的调用关系。
步骤102,收集存储资源,虚拟磁盘存储***6查明磁带库25中所有磁带所形成的虚拟存储空间;查明磁盘阵列31的容量,以构建缓存模块40;
步骤104,虚拟存储空间的数据组织,地址映射模块33将磁带库25中的所有磁带组织成一个大的虚拟存储空间,每个磁带被分成存储块,磁带的每个存储块对应于虚拟存储模块39的一个逻辑块,当一个磁带上的存储块上的数据被缓存时,相应存储块所对应的逻辑块由地址映射模块33以磁带缓存二叉树链组织;
步骤106,创建虚拟磁盘,当收到读磁盘容量(例如READ_CAPACITY)命令时,地址映射模块33根据已获取的磁带库25的存储空间大小配置一个虚拟的磁盘类型(例如hd_geometry)的结构,该结构中的柱、面、扇数据项最终折算出的字节容量应该与磁带库25存储容量相同;
步骤108,对虚拟磁盘I/O请求的处理,处理来自开放***主机的I/O读写请求;
步骤110,缓存空间管理,管理磁盘阵列31形成的缓存模块40;
步骤112,读预取数据,通过预取数据来提高读请求的命中率;
步骤114,写回数据,将缓存模块中的写回逻辑块上的数据写到磁带中。
在步骤102中,收集存储资源,具体为:
磁带库25的SCSI介质交换单元41将多个介质在磁带驱动器单元43和存储单元45之间装载和卸载,每个存储单元45可以是空的或者包含一盒磁带47。虚拟磁盘服务器22通过向磁带库25发送小型计算机***接口命令来探查存储单元的状态或者指示介质转换设备执行磁带交换,涉及到的两个主要命令为SCSI的READ_ELEMENT_STATUS(B8h)和SCSI的MOVE_MEDIUM(A5h)命令。前者可获取磁带驱动器单元43及存储单元45的细节化的配置信息,提供了所有需要的存储单元数据,包括设备类型,设备编址,许可的I/O操作空间等;后者将实现磁带库中磁带的自动装载和卸载。由此虚拟磁盘服务器22查明磁带库中磁带的状况,为地址映射模块34提供依据。
地址映射模块34通过向磁带驱动器单元43发送SCSI的INQUIRY(12h)命令可以得到磁带驱动器的型号,生产厂商等信息;地址映射模块34向磁带驱动器单元43发送小型计算机***接口(SCSI)的MODE_SENSE(1Ah)命令可以获取磁带47的存储属性信息,包括类型、写密度、读写延迟、磁带速度、活动分区、分块大小等信息,由此可获取每条磁带47的存储容量,并构造虚拟存储模块39;与此类似,地址映射模块34通过向磁盘阵列31发送查询命令,也可以获取磁盘阵列31的存储属性信息,它的存储容量即是本***的缓存模块40。
在步骤104中,虚拟存储空间的数据组织,具体为:磁带库25中含有多盒磁带47,它们的存储空间构成了磁带库的总容量,也构成了虚拟磁盘存储***的总容量。磁带47上记录的数据以连续顺序且块大小可变的形式进行组织,块大小一般固定,如果将每条磁带47看作一个存储区间,则每个区间包含的就是连续顺序的块。磁带库中包含多条磁带47,因此它的存储空间由多个存储区间构成。磁带库中所有磁带的存储块一一对应到虚拟存储模块的逻辑块。
磁带记录由线性连续的逻辑块组成,一个逻辑块必须作为一个整体进行读写。这些块的大小可以是固定的也可以是可变的,最大长度是16M字节。图4所示的磁带被划分为固定大小的逻辑块使用。
由于不同的磁带存储单元45与磁带驱动器单元43的距离不同,因此,磁带47换取时间会有差别。距离磁带磁带驱动器单元43越近,机械手移动消耗时间越少。另外,由于用户对虚拟存储空间中不同区段的访问量不一样,如果将访问量较大的区段编址到距离磁带驱动器较近的磁带上将能减少磁带调度的总的时间消耗。本实施例中,图4采用了顺序编址的方式。
图4为以多个磁带存储空间为基础的虚拟磁盘存储空间编址示意图。假定磁带库中一共有K个磁带槽,每个槽可容纳一盒磁带并且有一盒磁带47存在。按照磁带介质交换单元41默认的存储单元框架的编号顺序对它们进行编号,第一个存储单元框架中的磁带47编为1号,然后依次编为2号至K号。每盒磁带可划分为N个64KB大小的块,按照磁带头开始顺序向后编址,依次为1到N。虚拟磁盘的容量为所有的磁带介质容量之和,按照磁带顺序依次进行编址,其中首盒磁带的第1到第N个块分别对应虚拟磁盘的第1到第N个逻辑块,以后第i盒磁带的第1块到第N块分别对应虚拟磁盘的第(i-1)*N+1块和第i*N块。按照这种映射方式,所有磁带上的存储块被逐一映射到虚拟存储模块39中,需要指明的是,本发明中,单个磁带所对应的虚拟存储子模块连接在一起形成了整个磁带库的所对应的虚拟存储模块。
在步骤108中,对虚拟磁盘I/O请求的处理,具体处理过程如下:
1)开放***主机2的应用层提出I/O请求,操作***将它定位到相应的文件***驱动程序;
2)文件***驱动程序将I/O请求转化为相对虚拟磁盘设备的字节偏移和字节计数,并将它们通过SCSI总线4发送到本发明的虚拟磁盘存储***6去执行(若是通过通信链路14,则iSCSI协议处理模块34会解析相应的数据包);
3)虚拟磁盘存储***6的地址映射模块33将相对的字节偏移量和字节长度转化为逻辑扇区偏移地址和扇区计数;
4)I/O请求读写由缓存空间管理步骤110完成,具体执行如下操作:
A.在缓存模块没有填满的时候,直接给新的I/O请求分配空闲逻辑块;
B.当缓存模块填满,没有空闲逻辑块时,从缓存模块的只读逻辑块链中剔除选定的只读逻辑块,并从该只读逻辑块所属的磁带缓存链中将代表该只读逻辑块的节点取出,将该节点***到要写入的磁带缓存链中,对该节点代表的逻辑块写入数据,并更新含有新数据的写回逻辑块链;
C.每当逻辑块写入到磁带上之后,要将代表该磁带的磁带缓存链的相应节点的写标志置为FALSE,且从写回逻辑链中剔除该节点,并将节点***到只读逻辑块链中;
D.若新的I/O写请求命中,命中写回逻辑块,则直接将新数据写入写回逻辑块;命中只读逻辑块,则将代表该只读逻辑块的节点从只读逻辑块链中剔除,并将数据写入到该剔除的逻辑块中,写入完成后,更改该逻辑块节点的写标志为TRUE,并将该节点***到写回逻辑块链;
5)然后根据步骤104提供的虚拟存储模块39信息,将虚拟的逻辑扇区地址和扇区计数转化为针对具体磁带的逻辑块偏移地址和块计数,并调用缓存管理模块37判断该数据是否已经被缓存。若已经被缓存则由缓存模块中直接读写,完成I/O操作;
6)若缓存溢出则执行步骤114,写回数据。调用写回模块36将相应缓存的数据迁移至相关磁带,并读出相应磁带上的数据,写或读都会调用命令转换模块35,如果是读磁带上的数据,应同时将读出的数据写入缓存,如果是写磁带,应同时写缓存;
7)在本发明的虚拟磁盘存储***空闲时,***执行步骤112,读预取数据。缓存管理模块调用读预取模块38,从磁带上预取一部分数据到缓存模块,以提高数据在缓存模块中的命中率;
8)在本发明的虚拟磁盘存储***空闲时,***执行步骤114,写回数据。缓存管理模块调用写回模块36将缓存模块中的数据写回到磁带中,腾空缓存区。写回操作遵循次优先级加主动的策略,次优先级是针对用户I/O请求而言的,***总是优先执行来自上层驱动的I/O请求,主动是指本***一旦空闲,***立刻执行步骤114,写回数据。
上述读写操作在需要将SCSI块命令与SCSI流命令相互转换时,用到命令转换模块35,若是访问磁带库,则是将SCSI块命令转换为SCSI流命令,若是访问磁盘阵列,则是将SCSI流命令转换为SCSI块命令。
应当理解,根据本发明,使用小型计算机***接口(SCSI)协议来连接***设备(硬盘、磁带库等)的这种***在本发明内容中称作“开放***主机”。在本发明的上下文中,SCSI也应当理解为指的是在不同的硬件连接协议上使用相同的SCSI命令的新的“互联网小型计算机***接口(iSCSI)”协议或“光纤(Fiber)”协议。当SCSI块命令通过SCSI总线4在虚拟磁盘服务器22中接收到时,它直接在磁盘阵列上执行或被转换成送到磁带库25执行介质交换命令和流命令。如此,虚拟磁盘存储***6好像是SCSI附属的小型计算机***接口磁盘,通过SCSI总线4接收SCSI磁盘访问命令。
图5是针对磁带库中的磁带与缓存模块之间的映射关系所定义的磁带缓存平衡二叉树节点的数据结构,各数据项的含义如下:Left和Right分别为指向节点左子树和右子树的指针,左子树的起始块地址比节点的起始块地址小,右子树的起始块地址比节点的起始块地址大。从平衡二叉树的顶点进行一次中序遍历就能得到顺序的单盘磁带的缓存模块对应的逻辑块链。StartLbaOfTape记录了节点的逻辑块在所属磁带上的块偏移地址,写回时可根据它在磁带上定位。NodeOfRaid指向缓存模块的逻辑块链中的节点,由它可获取该逻辑块在磁盘阵列上的位置。TapeNumber记录了节点的逻辑块所属磁带的编号,写回时可根据它来选择磁带。Writed是一个布尔值,当它为TRUE时表示节点的逻辑块中有新数据还没有写到磁带上,当它为FALSE时表示节点的逻辑块中的数据已经全部写到磁带上。Skew是平衡二叉树的平衡标志,当它为TRUE时表示当前的二叉树已经是平衡二叉树,当它为FALSE时表示当前的树结构不平衡,需要平衡操作。下面的指针数组BiTreeOfTape是全局变量,它描述了磁带库中的TotalTapeNumber条磁带缓存链。每个数组成员分别指向磁带缓存链平衡二叉树的树顶,在写回和预取过程中,二叉树的平衡会被打破,它所指向的逻辑块会发生变化。
图6是针对磁盘阵列所定义的缓存模块平衡二叉树节点的数据结构,各数据项的含义如下:在AVLNODEOFRAID结构中,Left和Right分别指向节点的左子树和右子树,左子树的起始扇区号比节点的起始扇区号小,右子树的起始扇区号比节点的起始扇区号大,程序可以利用它们构建逻辑块链。NodeOfTape指向磁带缓存链中的节点,由它可获取该节点所属逻辑块的磁带号,以及在磁带上的映射位置。根据映射位置,可以将该块从磁带缓存链中查找或删除,或更改相关信息,比如写状态。StartLbaOfRaid描述了当前逻辑块在磁盘阵列上的位置,当执行写回操作时,程序将从它所指示的位置读出数据然后写入到由NodeOfIape中的StartLbaOfTape所指定的位置。Skew是平衡二叉树的平衡标志,当它为FALSE时,表示此时需要进行平衡处理,直到二叉树中所有节点的Skew为真值TRUE为止。BiTreeOfReadOnlyBlocks指向缓存模块的只读逻辑块链,程序将从这里选择逻辑块进行回收和重新分配。BiTreeOfWriteBackBlocks为指针数组,每个成员分别指向缓存模块的写回逻辑块链,当新的写数据到来时,若缓存命中则直接写入,若缓存不命中则重新分配新的逻辑块,并将新的逻辑块加入到写回逻辑块链中。
图7是缓存模块的数据组织,图7中磁带缓存链描述了单条磁带中被缓存的所有数据,反映为缓存模块的写回逻辑块链的全部和缓存模块的只读逻辑块链的一部分;写回逻辑块链针对的是单条磁带,代表磁带上将要写回的逻辑块,只读逻辑块链代表整个磁盘阵列缓存空间中所有可以被回收的逻辑块资源,在图7中,磁带缓存链的节点1指该磁带缓存链的平衡二叉树的树顶,写回逻辑块链和只读逻辑块链分别给出了三个节点示意图;所有带箭头的线表示节点的指针。

Claims (3)

1.一种超大容量的虚拟磁盘存储***,通过SCSI总线或网络通信链路与开放***主机通信,包括虚拟磁盘服务器和磁带库,所述磁带库包括介质交换单元、磁带驱动器单元和存储单元;所述虚拟磁盘服务器包括小型计算机***接口适配器、网络适配器、处理器、磁盘阵列和存储器;存储器包括地址映射模块、命令转换模块、写回模块、缓存管理模块、读预取模块、虚拟存储模块、缓存模块和iSCSI协议处理模块;虚拟磁盘服务器和磁带库之间通过SCSI总线连接;
(1)所述虚拟磁盘服务器中:
(1.1)所述小型计算机***接口适配器通过SCSI总线接收开放***主机的SCSI块命令,通过SCSI总线进行虚拟磁盘服务器与磁带库之间的通信;(1.2)所述网络适配器通过通信链路接收开放***主机封装有SCSI块命令的数据包;(1.3)所述处理器为虚拟磁盘服务器的计算单元;(1.4)所述磁盘阵列为磁带库的高速磁盘缓存;
(2)所述虚拟磁盘服务器的存储器中:
(2.1)所述地址映射模块生成磁带缓存链,将磁盘逻辑地址空间映射到磁盘阵列形成的缓存模块上和磁带库中所有磁带形成的虚拟存储模块上,所述磁带缓存链是针对虚拟存储模块与缓存模块之间的映射关系所定义的磁带缓存平衡二叉树节点所形成的平衡二叉树链;(2.2)所述命令转换模块实现SCSI块命令与SCSI流命令之间的相互转换,访问磁带库时,依照地址映射模块提供的地址信息将开放***主机的SCSI块命令转换为访问磁带库的SCSI流命令,访问磁盘阵列时,将虚拟存储模块的SCSI流命令转换为访问磁盘阵列的SCSI块命令,构造SCSI介质交换命令;(2.3)所述写回模块调用地址映射模块和命令转换模块,将磁盘阵列中存储的数据迁移到磁带库中相应磁带上;(2.4)所述缓存管理模块管理缓存模块和虚拟存储模块存储空间的分配和回收、以及对数据的写回和预取,缓存管理模块根据地址映射模块的地址映射信息确定访问磁盘阵列或访问磁带库;(2.5)所述读预取模块调用地址映射模块和命令转换模块,根据缓存管理模块的需要从磁带上预取一部分数据到缓存模块,以提高数据在缓存模块中的命中率;(2.6)所述虚拟存储模块是由地址映射模块根据磁带库中的所有磁带形成的存储空间,它由逻辑块构成,虚拟存储模块即是虚拟磁盘存储***的磁盘逻辑地址空间;(2.7)所述缓存模块是由地址映射模块根据磁盘阵列形成的磁带缓存空间,它由逻辑块构成,缓存模块所包含的逻辑块是虚拟存储模块所包含逻辑块的一个子集;(2.8)所述iSCSI协议处理模块处理开放***主机通过计算机网络传送的用iSCSI协议封装的数据包,解析出SCSI块命令;
(3)磁带库接收从虚拟磁盘服务器发来的SCSI介质转换命令利SCSI流命令,分别进行磁带换带操作或读写磁带操作。
2.如权利要求1所述的超大容量的虚拟磁盘存储***,其特征在于:(1)所述地址映射模块通过向磁带驱动器单元发送SCSI的INQUIRY命令得到磁带驱动器的型号,生产厂商信息;地址映射模块向磁带驱动器单元发送SCSI的MODE_SENSE命令获取磁带驱动器单元中的磁带的存储属性信息,包括类型、写密度、读写延迟、磁带速度、活动分区、分块大小,由此获取每条磁带存储容量;(2)所述写回模块的写操作遵循次优先级加主动的策略,即优先执行来自上层驱动的用户I/O请求命令,一旦虚拟磁盘服务器空闲,虚拟磁盘服务器立刻调用写回模块。
3.如权利要求2所述的超大容量的虚拟磁盘存储***,其特征在于:(1)所述缓存模块由逻辑块组成,逻辑块用缓存模块平衡二叉树节点数据结构组织,将含有新更改磁带数据的逻辑块称为写回逻辑块,将含有未更改磁带数据的逻辑块称为只读逻辑块,写回逻辑块构成写回逻辑块链,只读逻辑块构成只读逻辑块链,未挂入写回逻辑块链和只读逻辑块链的逻辑块为空闲逻辑块;(2)所述缓存管理模块,在缓存模块未填满时,直接给新的I/O请求分配空闲逻辑块;当缓存模块填满,无空闲逻辑块时,从缓存模块的只读逻辑块链中剔除选定的只读逻辑块,并从该只读逻辑块所属的磁带缓存链中将代表该只读逻辑块的节点取出,将该节点***到要写入的磁带缓存链,对该节点代表的逻辑块写入数据,并更新写回逻辑块链;每当逻辑块写入磁带,相应磁带缓存链的节点写标志置为完成,从写回逻辑链中剔除该节点,将该节点***到只读逻辑块链中;若新的I/O写请求命中写回逻辑块,则直接将新数据写入写回逻辑块;命中只读逻辑块,则将代表该只读逻辑块的节点从只读逻辑块链中剔除,并将数据写入到该剔除的逻辑块中,更改代表该逻辑块节点的写标志为完成,并将该节点***到写回逻辑块链。
CNB2006100188317A 2006-04-19 2006-04-19 一种超大容量的虚拟磁盘存储*** Expired - Fee Related CN100377065C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100188317A CN100377065C (zh) 2006-04-19 2006-04-19 一种超大容量的虚拟磁盘存储***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100188317A CN100377065C (zh) 2006-04-19 2006-04-19 一种超大容量的虚拟磁盘存储***

Publications (2)

Publication Number Publication Date
CN1862476A CN1862476A (zh) 2006-11-15
CN100377065C true CN100377065C (zh) 2008-03-26

Family

ID=37389920

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100188317A Expired - Fee Related CN100377065C (zh) 2006-04-19 2006-04-19 一种超大容量的虚拟磁盘存储***

Country Status (1)

Country Link
CN (1) CN100377065C (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202758B (zh) * 2006-12-14 2010-08-25 英业达股份有限公司 多客户端的网络虚拟存储方法
US7962717B2 (en) * 2007-03-14 2011-06-14 Xmos Limited Message routing scheme
CN101727291B (zh) * 2008-10-14 2012-10-31 无锡众志和达存储技术有限公司 嵌入式一体化虚拟磁带库***和方法
CN101840310B (zh) * 2009-12-25 2012-01-11 创新科存储技术有限公司 数据读写方法及应用该方法的磁盘阵列***
CN102306128B (zh) * 2011-09-16 2013-11-20 北京星网锐捷网络技术有限公司 磁盘管理方法、装置及网络设备
CN103780634B (zh) * 2012-10-17 2017-02-22 华为技术有限公司 数据交互方法及装置
CN104903871B (zh) * 2012-12-20 2018-04-03 亚马逊技术股份有限公司 虚拟磁带库***
US10013166B2 (en) 2012-12-20 2018-07-03 Amazon Technologies, Inc. Virtual tape library system
CN103309820A (zh) * 2013-06-28 2013-09-18 曙光信息产业(北京)有限公司 磁盘阵列缓存的实现方法
CN103605587A (zh) * 2013-11-20 2014-02-26 上海爱数软件有限公司 一种磁带库数据备份归档方法
CN105260139B (zh) * 2015-10-19 2018-09-28 福州瑞芯微电子股份有限公司 一种磁盘管理方法以及***
US10437483B2 (en) * 2015-12-17 2019-10-08 Samsung Electronics Co., Ltd. Computing system with communication mechanism and method of operation thereof
CN105786405B (zh) 2016-02-25 2018-11-13 华为技术有限公司 一种在线升级方法、装置及***
CN110321076B (zh) * 2019-06-14 2022-12-27 武汉光忆科技有限公司 基于光盘库的虚拟磁带库***及其管理方法
CN111857598A (zh) * 2020-07-28 2020-10-30 山东超越数控电子股份有限公司 一种远程磁盘本地化的映射方法、装置、设备及可读介质
CN113805816B (zh) * 2021-09-27 2024-02-23 济南浪潮数据技术有限公司 一种磁盘空间管理方法、装置、设备及存储介质
CN114579055B (zh) * 2022-03-07 2023-01-31 重庆紫光华山智安科技有限公司 磁盘存储方法、装置、设备及介质
CN115686363B (zh) * 2022-10-19 2023-09-26 百硕同兴科技(北京)有限公司 一种基于Ceph分布式存储的IBM大型机的磁带模拟网关***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438674A (en) * 1988-04-05 1995-08-01 Data/Ware Development, Inc. Optical disk system emulating magnetic tape units
US20040153614A1 (en) * 2003-02-05 2004-08-05 Haim Bitner Tape storage emulation for open systems environments
JP2005038290A (ja) * 2003-07-17 2005-02-10 Hitachi Ltd ディスク制御装置及びディスク制御装置の制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438674A (en) * 1988-04-05 1995-08-01 Data/Ware Development, Inc. Optical disk system emulating magnetic tape units
US20040153614A1 (en) * 2003-02-05 2004-08-05 Haim Bitner Tape storage emulation for open systems environments
JP2005038290A (ja) * 2003-07-17 2005-02-10 Hitachi Ltd ディスク制御装置及びディスク制御装置の制御方法

Also Published As

Publication number Publication date
CN1862476A (zh) 2006-11-15

Similar Documents

Publication Publication Date Title
CN100377065C (zh) 一种超大容量的虚拟磁盘存储***
CN104850358B (zh) 一种磁光电混合存储***及其数据获取和存储方法
CN101946246B (zh) 促进主计算机***处的i/o操作的i/o处理的方法和***
CN102467408B (zh) 一种虚拟机数据的访问方法和设备
CN107704211B (zh) 一种磁光电混合光盘库及其管理方法和管理***
CN101673188B (zh) 一种固态硬盘的数据存取方法
CN100456264C (zh) 一种磁盘空间管理方法及***
CN100416508C (zh) 一种存储网络中的数据备份方法
CN100426259C (zh) 一种存储器文件数据虚拟存取方法
CN102043593B (zh) 一种基于Region的磁盘外置cache管理方法
CN107967124A (zh) 一种分布式持久性内存存储***及方法
US8677048B2 (en) Communication with two or more storage devices via one SAS communication port
CN102255962A (zh) 一种分布式存储方法、装置和***
CN101840308A (zh) 一种分级存储***及其逻辑卷管理方法
CN103250143A (zh) 数据存储方法和存储设备
CN106354431A (zh) 一种数据存储方法及装置
CN103514249A (zh) 一种数据自精简方法和***及存储装置
CN103080896A (zh) 对访问重新排序以减少对磁带介质的总查找时间
CN102833237B (zh) 一种基于桥接的无限带宽协议转换方法及***
CN109344090A (zh) 数据中心中kvm虚拟机的虚拟硬盘***及数据中心
CN102521330A (zh) 一种桌面虚拟化环境下的镜像分布式存储方法
CN103037004A (zh) 云存储***操作的实现方法和装置
CN102063386B (zh) 一种单载体多目标的缓存***的缓存管理方法
CN102915340A (zh) 一种扩展的基于b+树对象文件***
CN109739843A (zh) 区块链数据读写方法、***、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080326

Termination date: 20200419