CN1297918C - 虚拟光盘库系统及虚拟光盘数据流网络传输方法 - Google Patents
虚拟光盘库系统及虚拟光盘数据流网络传输方法 Download PDFInfo
- Publication number
- CN1297918C CN1297918C CNB2003101109450A CN200310110945A CN1297918C CN 1297918 C CN1297918 C CN 1297918C CN B2003101109450 A CNB2003101109450 A CN B2003101109450A CN 200310110945 A CN200310110945 A CN 200310110945A CN 1297918 C CN1297918 C CN 1297918C
- Authority
- CN
- China
- Prior art keywords
- virtual
- client
- server
- request
- module
- 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
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种虚拟光盘库系统及虚拟光盘数据流的网络传输方法,系统由客户端和服务器组成,客户端包括光盘流客户端模块,用于在客户端虚拟一个或多个光盘驱动器,直接处理客户端的大部分光驱执行命令,对不能执行的命令则传输到光盘流服务器模块,在客户端计算机上的虚拟一系列光驱可以完全等同物理光驱,且能够实时地将远程虚拟光盘库上的光盘镜像文件映射到虚拟光驱上;这样,用户使用光盘流服务器虚拟光盘库上的光盘就如同使用本地光盘一样方便、快捷;网络传输协议是基于TCP/IP网络协议,任何Internet上的计算机都能够访问服务器,完全没有地域限制,实现真正的光盘资源共享。
Description
技术领域
本发明涉及一种虚拟光盘库系统,以及实现虚拟光盘库光盘数据流网络传输的传输方法。
背景技术
光盘作为一种存储介质,具有存储量大,携带方便,交换性强,成本低等诸多优点,因此成为一种深受用户欢迎且广泛使用的存储体。为了提高光盘的使用效率并解决光盘信息的共享问题,产生了光盘镜像服务器技术且与推出了相关的产品。如在申请号为02117665.5的中国专利申请中,披露了一种直接联网虚拟镜像服务器的实现方法,光盘镜像服务器通过光盘镜像的方式把光盘的数据保存到硬盘上,使用户能够以访问硬盘的速度访问光盘,但是,由于光盘镜像服务器只注重服务器端的技术和性能,较少考虑网络和客户端的技术,因此,在使用的过程中有许多不便,具体体现在以下几个方面:
1、该实现方法是给每一张存储在光盘镜像服务器内的虚拟镜像光盘加载虚拟设备驱动程序,这种方式占用了服务器的大量存储空间,而且直接在服务器上虚拟驱动光盘,也大量占用了CPU的资源,加重CPU的运行负担,导致系统运行速度下降,用户响应时间长,访问速度慢。
2、由于网络传输是建立在通用的网络传输协议CIFS/SMB上,CIF/SMB网络协议虽然功能强大,.但其复杂的功能会导致效率的降低,用户响应时间长,另外对光盘共享而言,绝大多数功能没有必要;该协议的防病毒采用网上邻居方式,容易受到病毒攻击;该协议只能在局域网内实现光盘数据的共享,无法实现基于TCP/IP的互联网上共享,限制了光盘资源的使用。
3、在镜像光盘的使用过程中,由于是通过映射网络驱动器,采用文件级的共享使用方式,同样导致数据传输效率低,同时光盘的一些物理特性丢失,导致使用上很不方便,而且一些单机版的光盘不能使用。
发明内容
为克服现有技术的不足,提供一种既可以在互联网上共享光盘资源、对客户端而言又完全等同于物理光驱的虚拟光盘数据流的网络传输方法;
为此本发明提出了以下技术方案:
一种虚拟光盘库系统,由客户端和服务器组成,服务器包括光盘流服务器模块,用于对客户端的光盘数据支持,客户端包括光盘流客户端模块、管理客户端模块,光盘流客户端模块用于在客户端虚拟一个或多个光盘驱动器,直接处理客户端的大部分光驱执行命令,对不能执行的命令则传输到所述虚拟光盘库服务器模块进行处理;服务器还包括管理服务器模块;所述管理客户端模块用于提供客户端的管理界面,接收管理命令和数据,并将命令和数据通过TCP/IP协议发送给所述管理服务器模块,管理服务器根据接收到的不同命令执行不同的处理程序,并将结果返回管理客户端模块显示。
上述服务器还包括光盘镜像模块和磁盘管理模块;光盘镜像模块用于监测服务器的光盘驱动器,对新光盘按照不同的光盘类型和配置策略,进行不同的镜像处理;磁盘管理模块用于在服务器启动时自动检测物理磁盘的信息,对新的物理磁盘进行分区和格式化操作,并加载检测到的已经分区和格式化的物理磁盘。
本发明同时提出了一种虚拟光盘数据流的网络传输方法:直接在客户端虚拟光盘驱动器,由虚拟光驱直接处理接收到的大部分SCSI命令,对虚拟光驱不能处理的SCSI命令才传输到服务器端进行处理;
其数据传输过程包括以下步骤:(1)用户程序通过Windows API接口向操作系统发送请求;(2)操作系统将接收到的命令转换为SCSI命令发给虚拟光盘驱动;(3)虚拟光盘驱动器对收到的命令进行判断,能够处理的直接虚拟一个结果,然后将其返回操作系统;不能够虚拟处理的命令转发给网络TCP层;(4)网络TCP层再将客户端虚拟光驱不能处理的SCSI命令发给光盘流服务器;(5)光盘流服务器处理前述SCSI命令,并将结果返回给客户端的网络TCP层;(6)网络TCP层再将结果返回虚拟光盘驱动;(7)虚拟光盘驱动再将结果返回操作系统;(8)操作系统再将结果返回给用户程序。
上述光盘流服务器还建立有Cache及Cache管理模块、访问控制模块;当客户端需要请求服务器上的光盘数据时,它通过网络向服务器发送请求;服务器上的网络TCP层接收到客户端的请求后,将请求转发给访问控制模块;访问控制模块接收到客户端的请求后,进行合法性验证,如果通过就将请求发给Cache管理模块;Cache管理模块接收到请求后,首先查询Cache,如果Cache不命中,就从磁盘将光盘文件数据读入Cache中,将请求的数据发给网络TCP层;如果Cache命中,将请求的数据发给网络TCP层;网络TCP层再将请求的数据发送给客户端。
由于本发明的虚拟光盘数据流的网络传输方法,在客户端虚拟光盘驱动器,能够在客户端计算机上虚拟一系列光驱,这些光驱可以完全等同物理光驱,且能够实时地将远程虚拟光盘库上的光盘镜像文件映射到虚拟光驱上;这样,用户使用虚拟光盘库上的光盘就如同使用本地光盘一样,有一些特殊的光盘,它们只能够在本地物理光盘驱动器上使用,导致在以前的光盘镜像服务器不能够使用,通过采用虚拟化技术,能够完全支持这些光盘。
其网络传输协议是基于TCP/IP网络协议,能够有效地阻止病毒的攻击;避免了以前使用SMB协议访问服务器响应时间长的问题;只要光盘流服务器上的虚拟光盘库连接到Internet上,任何Internet上的计算机都能够访问服务器,完全没有地域限制,实现真正的光盘资源共享。
由于本发明提供了管理客户端模块和管理服务器模块,可以方便地实现系统的各项管理功能,如用户管理、计费服务等;采用光盘镜像模块实现了完全自动镜像功能,而磁盘管理模块允许自动监测存储空间的扩展,大大减少了人为干预,提高效率。
附图说明
图1虚拟光盘库系统模块划分图;
图2IoMeter测试小于128字节的包百分比柱形图;
图3光盘流协议小于128字节的包百分比柱形图;
图4客户端同服务器连接建立与断开过程图;
图5光盘流协议用户请求处理过程图;
图6客户端请求在服务器上的处理过程流程图;
具体实施方式
为进一步说明本发明的传输方法,以下结合附图进行详细描述。
如图1所示的虚拟光盘库系统,按照功能可以划分为六个模块:光盘流客户端模块,光盘流服务器模块,管理客户端模块,管理服务器模块,光盘镜像模块,磁盘管理模块。
光盘流客户端模块主要功能是在用户的客户端计算机上虚拟一个或多个光盘驱动器,用户访问此光盘驱动器上的光盘时,操作系统就光盘流客户端提供的服务接口,此接口接收到操作系统的请求后,就将此请求转发给光盘流服务器程序,并将光盘流服务器程序返回的光盘数据返回给操作系统,操作系统就将此光盘数据返回给用户程序,从而完成虚拟光盘驱动的工作。
光盘流服务器模块负责对光盘流客户端的光盘数据支持,它采用多线程的方式支持多用户同时访问,对每一个用户连接,都创建一个对应的处理线程,来处理此用户的请求,同时它还提供对用户的按照访问时间计费,而且支持对用户进行流量限制,同时支持对用户IP的限制。并采用Cache技术来提高整体性能。
管理客户端模块负责给管理员提供一个客户端的管理界面,它接收管理员的命令和数据,并将命令和数据通过TCP协议发送给管理服务器,并负责显示管理服务器返回的结果。
管理服务器模块负责接收管理客户端的命令和数据,根据不同命令执行不同的处理程序,并将执行的结果返回管理客户端。
光盘镜像模块负责监测服务器的光盘驱动器,如果发现一张新光盘,就按照不同的光盘类型和管理员不同的配置策略,进行不同的镜像处理。
磁盘管理模块在服务器启动时自动执行,检测物理磁盘的信息,如果发现新的磁盘,或者根据管理员的设置能够对物理磁盘进行自动分区和格式化操作,此功能方便管理员在服务器上添加新的磁盘。
原来的SMB用户响应时间长,我们针对自己的特点自定义一种网络传输协议,用来实现客户端虚拟光盘启动程序到光盘服务器之间的数据通信。同时自己开发的数据流服务器程序能够实现更加灵活的管理,实现用户的灵活权限共享,能够实现用户流量限制和用户访问计费等功能。
目前用于IP存储的协议主要有iSCSI、SEP(SCSI封装协议)、FCIP。iSCSI可以看作是SCSI协议的扩展,它的出现大大拓宽了SCSI协议的应用范围。SCSI协议是一种的广泛应用的工业标准,但是传统的SCSI协议有以下缺点使之不适合构建存储网络:
1、SCSI是点对点的、直接相连的计算机到存储器的设备接口,不适用于主机到存储器的存储网络通讯;
2、SCSI总线的长度被限制在25米以内,对于Ultra SCSI长度限制为12米,不适于构造各种网络拓扑结构;
3、SCSI总线上设备数限制为15,不适用于多服务器对多存储设备的网络结构。
iSCSI协议的出现很好的解决了上述问题。iSCSI协议定义的是SCSI到TCP/IP的映射,即将主机的SCSI命令封装成IP数据包,在IP网络上传输,到达目的节点后,再恢复成封装前的SCSI命令,从而实现SCSI命令在IP网络上的直接、透明传输。由于TCP/IP协议的飞速发展,iSCSI协议已经成为构建IP-SAN的重要协议。
iSCSI协议实质是在一个IP隧道上跑SCSI命令,它要求Target端是一个SCSI设备,是一种SCSI远程过程调用模型,对所有的Initiator端的SCSI命令不进行任何处理。这样,因为SCSI命令中有很多控制命令,这些命令的包都很小,另一方面,在网络上传输小包比较浪费网络物理带宽,图2是采用IoMeter测试工具对iSCSI协议测试得到的IP包长度分布的情况,每种长度的测试时间为10分钟,读70%写30%。通过图2可以看出将近一半的网络包小于127字节,而以太网数据包最大长度为1518字节,在这个范围内,大包同小包的传输时间基本上没有很大差别。
针对光盘流服务器的特定应用,为了提高网络传输的性能,采用简化iSCSI协议的方法,设计了一个高性能的光盘流协议,主要方法是通过采用虚拟技术,在客户端虚拟SCSI光盘驱动器,并将接收到的大部分能够处理的SCSI命令在客户端直接处理,只有读光盘数据等少数几个客户端不能够处理的命令才传输到服务器端。这样,能够大大减少网络传输过程中的小的数据包,从而减少传输时间。图3是对光盘流协议测试得到的IP包长度分布的情况。
客户端同服务器连接建立与断开过程如图4。首先,在客户端虚拟光驱程序启动时创建一个工作线程,同样,服务器程序启动时创建一个网络监听主线程。当虚拟光驱工作线程启动后,它主动连接服务器指定的端口,服务器主线程同时在此端口接收客户端的连接,并为此连接创建一个对应的处理线程,下面的对应此连接的处理工作就由此处理线程完成,这样双方就能够创建一个连接,如步骤(1);当连接成功后,客户端就向服务器发送登录命令,如步骤(2);服务器端接收到登录命令后,进行用户验证,验证通过就向客户端发登录的确认信息,如步骤(3);到此,客户端同服务器连接建立过程就完成。然后,客户端就可以循环向服务器发送命令,并得到服务器的返回结果,如步骤(4);当客户端需要断开连接时,它首先向服务器发送退出命令,如步骤(5);服务器接收到退出命令后,释放此连接所占用的资源,并向客户端发送确认信息,如步骤(6),服务器此连接的处理线程就主动退出,同时,客户端接收到退出的确认信息后,虚拟光驱工作线程也主动退出,到此,整个连接的断开过程就完成。
请求数据流传输的处理过程如图5,用户程序通过Windows API接口向操作系统发送请求,如步骤(1);操作系统将接收到的命令转换为SCSI命令发给虚拟光盘驱动,如步骤(2);虚拟光盘驱动采用虚拟技术将收到的命令能够处理的直接虚拟一个结果,然后将其返回操作系统,如步骤(7);只有READ_CD、READ_TOC、READ_CAPACITY等少数几个不能够虚拟处理的命令转发给网络TCP层,如步骤(3);网络TCP层再将READ_CD等SCSI命令发给光盘流服务器,如步骤(4);光盘流服务器处理READ_CD等SCSI命令,并将结果返回给客户端的网络TCP层,如步骤(5);网络TCP层再将结果返回虚拟光盘驱动,如步骤(6);虚拟光盘驱动再将将结果返回操作系统,如步骤(7);最后,操作系统再将结果返回给用户程序,如步骤(8),至此,用户的一个请求过程完成。
服务器处理客户端请求的过程如图6,当客户端需要请求服务器上的光盘数据时,它通过网络向服务器发送请求,如步骤(1);服务器上的网络TCP层接收到客户端的请求后,将请求转发给访问控制模块,如步骤(2);访问控制模块接收到客户端的请求后,进行合法性验证,如果通过就将请求发给Cache管理模块,如步骤(3);Cache管理模块接收到请求后,首先查询Cache,如果Cache不命中,就从磁盘将光盘文件数据读入Cache中,如步骤(4);然后,将请求的数据发给网络TCP层,如步骤(5),如果Cache命中,就直接执行步骤(5);网络TCP层再将请求的数据发送给客户端,如步骤(6),客户端收到请求的数据,完成一次请求过程。
Claims (6)
1、一种虚拟光盘库系统,由客户端和服务器组成,所述服务器包括光盘流服务器模块,用于对客户端的光盘数据支持,其特征在于:所述客户端包括光盘流客户端模块、管理客户端模块,所述光盘流客户端模块用于在客户端虚拟一个或多个光盘驱动器,直接处理客户端的大部分光驱执行命令,对不能执行的命令则传输到所述光盘流服务器模块进行处理;所述服务器还包括管理服务器模块;所述管理客户端模块用于提供客户端的管理介面,接收管理命令和数据,并将命令和数据通过TCP/IP协议发送给所述管理服务器模块,所述管理服务器根据接收到的不同命令执行不同的处理程序,并将结果返回所述管理客户端模块显示。
2、根据权利要求1所述的虚拟光盘库系统,其特征在于:所述服务器端还包括光盘镜像模块,所述光盘镜像模块用于监测服务器的光盘驱动器,对新光盘按照不同的光盘类型和配置策略,进行不同的镜像处理。
3、根据权利要求1或2所述的虚拟光盘库系统,其特征在于:所述服务器端还包括磁盘管理模块,所述磁盘管理模块用于在服务器启动时自动检测物理磁盘的信息,对新的物理磁盘进行分区和格式化操作,并加载检测到的已经分区和格式化的物理磁盘。
4、根据权利要求1或2所述的虚拟光盘库系统,其特征在于:所述光盘流服务器包括Cache、Cache管理模块、访问控制模块;服务器上的网络TCP层接收到客户端的请求后,将请求转发给访问控制模块;访问控制模块接收到客户端的请求后,进行合法性验证,如果通过就将请求发给Cache管理模块;Cache管理模块接收到请求后,首先查询Cache,如果Cache不命中,就从磁盘将光盘文件数据读入Cache中,将请求的数据发给网络TCP层;如果Cache命中,将请求的数据发给网络TCP层;网络TCP层再将请求的数据发送给客户端。
5、一种虚拟光盘数据流的网络传输方法,直接在客户端虚拟光盘驱动器,直接处理接收到的大部分SCSI命令,对虚拟光驱不能处理的SCSI命令才传输到服务器端进行处理;其特征在于,传输过程包括以下步骤:(1)用户程序通过Windows API接口向操作系统发送请求;(2)操作系统将接收到的命令转换为SCSI命令发给虚拟光盘驱动;(3)虚拟光盘驱动对收到的命令进行判断,能够处理的直接虚拟一个结果,然后将其返回操作系统;不能够虚拟处理的命令转发给网络TCP层;(4)网络TCP层再将客户端虚拟光盘驱动不能处理的SCSI命令发给光盘流服务器;(5)光盘流服务器处理前述SCSI命令,并将结果返回给客户端的网络TCP层;(6)网络TCP层再将结果返回虚拟光盘驱动;(7)虚拟光盘驱动再将结果返回操作系统;(8)操作系统再将结果返回给用户程序。
6、根据权利要求5所述的一种虚拟光盘数据流的网络传输方法,其特征在于:所述光盘服务器还建立有Cache及Cache管理模块、访问控制模块;当客户端需要请求服务器上的光盘数据时,它通过网络向服务器发送请求;服务器上的网络TCP层接收到客户端的请求后,将请求转发给访问控制模块;访问控制模块接收到客户端的请求后,进行合法性验证,如果通过就将请求发给Cache管理模块;Cache管理模块接收到请求后,首先查询Cache,如果Cache不命中,就从磁盘将光盘文件数据读入Cache中,将请求的数据发给网络TCP层;如果Cache命中,将请求的数据发给网络TCP层;网络TCP层再将请求的数据发送给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101109450A CN1297918C (zh) | 2003-11-10 | 2003-11-10 | 虚拟光盘库系统及虚拟光盘数据流网络传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2003101109450A CN1297918C (zh) | 2003-11-10 | 2003-11-10 | 虚拟光盘库系统及虚拟光盘数据流网络传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1545037A CN1545037A (zh) | 2004-11-10 |
CN1297918C true CN1297918C (zh) | 2007-01-31 |
Family
ID=34335836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2003101109450A Expired - Fee Related CN1297918C (zh) | 2003-11-10 | 2003-11-10 | 虚拟光盘库系统及虚拟光盘数据流网络传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1297918C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101714113B (zh) * | 2008-10-07 | 2011-08-24 | 英业达集团(天津)电子技术有限公司 | 一种虚拟磁盘设备的测试方法 |
CN102255902A (zh) * | 2011-07-06 | 2011-11-23 | 中兴通讯股份有限公司 | 一种网络设备功能共享的方法及装置 |
CN105022697A (zh) * | 2015-05-19 | 2015-11-04 | 江苏蓝深远望系统集成有限公司 | 基于磁盘缓存的虚拟光盘库存储系统替换算法 |
CN108536515B (zh) * | 2018-03-02 | 2021-10-01 | 武汉噢易云计算股份有限公司 | Vdi的虚拟机播放客户机的音乐cd的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1387124A (zh) * | 2002-05-14 | 2002-12-25 | 清华同方光盘股份有限公司 | 直接联网超大容量虚拟镜像光盘服务器的实现方法 |
CN1453710A (zh) * | 2003-05-23 | 2003-11-05 | 华中科技大学 | 光盘镜像服务器/客户机的两级Cache系统 |
-
2003
- 2003-11-10 CN CNB2003101109450A patent/CN1297918C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1387124A (zh) * | 2002-05-14 | 2002-12-25 | 清华同方光盘股份有限公司 | 直接联网超大容量虚拟镜像光盘服务器的实现方法 |
CN1453710A (zh) * | 2003-05-23 | 2003-11-05 | 华中科技大学 | 光盘镜像服务器/客户机的两级Cache系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1545037A (zh) | 2004-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lu et al. | Performance study of iSCSI-based storage subsystems | |
JP5026283B2 (ja) | 協調的共用ストレージアーキテクチャ | |
CN103748545B (zh) | 数据存储系统和数据存储控制方法 | |
US9251082B2 (en) | Sending data of read requests to a client in a networked client-server architecture | |
CN105144105B (zh) | 用于可扩展的崩溃一致的快照操作的系统和方法 | |
US9274954B1 (en) | Caching data using multiple cache devices | |
US10795577B2 (en) | De-duplication of client-side data cache for virtual disks | |
JP2008542887A5 (zh) | ||
US20030182389A1 (en) | System and method for performing an on-line check of a file system | |
US20080126578A1 (en) | Method, system, and program for managing data read operations | |
US8793432B2 (en) | Consistent distributed storage communication protocol semantics in a clustered storage system | |
US20080155051A1 (en) | Direct file transfer system and method for a computer network | |
CN1906573A (zh) | 支持多个用户的系统和方法 | |
JP2008059567A (ja) | Iscsiターゲット名をストレージリソースにイニシエータハードウェアクラス識別子に基づいてマップするための方法 | |
US20030050996A1 (en) | Appartus and method for increased data access in a network file object oriented system | |
CN107408029B (zh) | 用于存储环境中的实时活动跟踪的方法和系统 | |
Cui et al. | Optimizing overlay-based virtual networking through optimistic interrupts and cut-through forwarding | |
US20100191946A1 (en) | Apparatus, system, and method for improving user boot via a storage area network | |
WO2002046866A2 (en) | Switching system | |
CN1297918C (zh) | 虚拟光盘库系统及虚拟光盘数据流网络传输方法 | |
US7526558B1 (en) | System and method for supporting a plurality of levels of acceleration in a single protocol session | |
CN1543135A (zh) | San系统中基于负载自适应的异步远程镜像方法 | |
KR100723879B1 (ko) | TOE를 이용한 iSCSI 타겟 시스템 상의 하드웨어가속 장치 및 그 장치를 이용한 읽기/쓰기 명령 수행방법 | |
US20050091406A1 (en) | Method, apparatus, system, and article of manufacture for processing control data by an offload adapter | |
Shimano et al. | An information propagation scheme for an autonomous distributed storage system in iSCSI environment |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070131 Termination date: 20091210 |