CN111164570B - 用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 - Google Patents
用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 Download PDFInfo
- Publication number
- CN111164570B CN111164570B CN201880062844.5A CN201880062844A CN111164570B CN 111164570 B CN111164570 B CN 111164570B CN 201880062844 A CN201880062844 A CN 201880062844A CN 111164570 B CN111164570 B CN 111164570B
- Authority
- CN
- China
- Prior art keywords
- virtual
- disk image
- host server
- virtual disk
- web browser
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 244000035744 Hura crepitans Species 0.000 claims abstract description 54
- 230000002085 persistent effect Effects 0.000 claims abstract description 33
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 claims abstract description 29
- 238000013500 data storage Methods 0.000 claims description 2
- 230000004044 response Effects 0.000 claims description 2
- 230000000007 visual effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/08—Protocols specially adapted for terminal emulation, e.g. Telnet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/131—Protocols for games, networked simulations or virtual reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
公开了一种用于在KVM会话期间使用在用户的设备(例如,PC工作站)的CHROMETM网络浏览器中运行的HTML5 KVM/虚拟介质客户端来创建虚拟盘映像并且向主机服务器暴露虚拟盘映像的系统和方法。主机服务器能够选择虚拟盘映像的全部或特定部分以使用,因此表示所选择的数据内容的字节通过HTML5 KVM/虚拟介质客户端使用永久沙箱进行封装并且被传输至主机服务器。使用HTML5 KVM/虚拟介质客户端从CHROMETM网络浏览器的永久沙箱创建虚拟盘映像并暴露该虚拟盘映像消除了网络浏览器不能直接访问用户的设备上的物理介质(例如盘)的问题,并且进一步显著降低了对可以被创建的虚拟盘映像的大小的数据大小限制。
Description
相关申请的交叉引用
本申请请求作为于2015年4月3日提交的美国序列号14/433,525(现在是美国专利序列号9,841,984)的部分继续申请的提交于2017年10月11日的每个专利申请序列号15/730,198的优先权,该美国序列号14/433,525又请求了于2012年10月4日提交的美国临时申请第61/709,468号的优先权。上述申请的全部公开内容通过引用并入本文。
技术领域
本公开内容涉及用于创建虚拟盘映像的系统和方法,并且更特别地涉及以下一种系统和方法,其用于在KVM会话期间使用用户计算机的网络浏览器创建所选择的数据的虚拟盘映像,该虚拟盘影像可以由位于远程的主机服务器使用,就好像具有所选择的数据的物理设备已经直接连接至主机服务器一样,并且不具有在使用网络浏览器的临时沙箱区域的情况下施加的对存储大小的限制。
背景技术
本部分中的陈述仅提供与本公开内容有关的背景信息,并且可以不构成现有技术。
当今的键盘、视频和鼠标(KVM)装置以及基板管理控制器(BMC)使得用户能够通过在用户的设备(通常是膝上型计算机、PC、平板计算机、智能电话等)与KVM装置或BMC之间传递键盘、视频和鼠标信号来访问远程服务器和其他设备。出于讨论的目的,以下示例仅参考KVM装置,但是应当理解,它们同样适用于与BMC的通信。通过KVM装置接收的键盘和鼠标信号通常以某种网络协议例如以太网协议分组被接收,并且然后被转换成远程设备可以接受的格式(例如,USB)。
随着HTML5技术的最新发展,在由用户建立了KVM会话时,HTML5KVM/虚拟介质客户端现在能够在用户的设备的网络浏览器中运行。目前,HTML5得到若干个网络浏览器的支持,包括苹果公司(Apple Corporation)的IOS网络浏览器、Mozilla的网络浏览器、谷歌/>网络浏览器、微软公司(Microsoft Corp.)的INTERNET/>(版本10和11)网络浏览器以及微软的/>由Opera软件(Opera Software)开发的/>和OPERA/>网络浏览器。由于用户通常非常熟悉使用网络浏览器,因此在用户的网络浏览器中运行HTML5 KVM/虚拟介质客户端的能力是一个显著的优势。如此,该实现方式为用户提供用于与远程KVM设备(例如,KVM装置或BMC)进行KVM会话的舒适、易于使用的手段。
然而,在用户的网络浏览器中运行HTML5 KVM/虚拟介质客户端确实存在一些显著的限制。其中一个,网络浏览器不允许KVM/虚拟介质客户端访问其上运行网络浏览器的客户端设备的物理盘(例如,PC工作站、膝上型计算机、计算平板、智能电话等)。在用户的网络浏览器中不运行KVM/虚拟介质客户端的情况下不存在该限制。先前使用的被允许访问物理介质设备例如盘驱动器并且因此访问盘映像的技术例如Java或ActiveX不要求访问用户设备上的数据文件。然而,在使用网络浏览器时,网络浏览器提供了被称为“沙箱”的相对较小的临时存储区域。在网络浏览器中运行的JavaScript引擎可以将文件带入到沙箱中。但是仍然不允许JavaScript引擎写出文件,也不允许其直接访问用户的设备上的通常用在虚拟介质实现中的物理介质设备例如盘驱动器。此外,临时沙箱的大小非常小,并且通常被限于约5MB的临时存储。这呈现了对创建盘映像的显著限制,盘映像通常超出沙箱的容量很大量。如此,只有在创建小型盘映像文件时才能使用典型网络浏览器的临时沙箱。
目前许多人使用的一种网络浏览器是能够从加利福尼亚州山景城的谷歌公司获取的免费软件“CHROMETM”网络浏览器。与其他浏览器一样,CHROMETM网络浏览器提供临时沙箱和永久沙箱二者。与大多数其他网络浏览器的临时沙箱相比,永久沙箱提供显著更多的存储区域(使用本地系统的硬盘驱动器盘可用空间)。此外,利用CHROMETM网络浏览器,可以将文件直接写入到CHROMETM网络浏览器的永久沙箱中。
因此,需要一种新的系统和方法,其用于在使用在用户的设备的网络浏览器中运行的HTML5 KVM/虚拟介质设备客户端的情况下访问存储在用户的设备上或物理连接至用户的设备的数据文件,并且对大多数网络浏览器固有的存储容量没有限制。
发明内容
在一个方面,本公开内容涉及一种用于在KVM会话期间使用在用户的设备的网络浏览器中运行的HTML5 KVM/虚拟介质客户端来创建虚拟盘映像并且向主机服务器暴露虚拟盘映像的方法,其中网络浏览器包括用于数据存储的临时沙箱和永久沙箱。该方法可以包括向主机服务器发送要被映射在主机服务器上的特定虚拟介质设备的选择。HTML5 KVM/虚拟介质客户端可以用于使用所选择的格式封装所选择的内容以在网络浏览器的永久沙箱中创建所选择的内容的盘映像。可以向主机服务器通知可用虚拟盘映像并且暴露永久沙箱中的虚拟盘映像以由主机服务器使用。可以使用主机服务器从永久沙箱中获取虚拟盘映像,并且然后向HTML5 KVM/虚拟介质客户端发送对检索虚拟盘映像的数据的一部分的请求。HTML5 KVM/虚拟介质客户端可以用于将请求转换成构成虚拟盘映像的至少一个特定文件,以及向主机服务器发送与所述至少一个特定文件对应的数据字节。主机服务器可以接收与所述至少一个特定文件对应的数据字节。
在又一方面,本公开内容涉及一种用于在使用在用户的设备的网络浏览器中运行的HTML5 KVM/虚拟介质客户端时在KVM会话期间创建虚拟盘映像并且向主机服务器暴露虚拟盘映像的系统,其中网路浏览器包括临时沙箱和永久沙箱。该系统可以包括在其上运行有网络浏览器的用户设备。可以包括在网络浏览器中运行的HTML5 KVM/虚拟介质客户端。HTML5 KVM/虚拟客户端可以被配置成执行多个操作,所述多个操作包括:使用所选择的格式封装所选择的内容以在网络浏览器的永久沙箱中创建所选择的内容的盘映像;向主机服务器通知可用虚拟盘映像并且暴露永久沙箱内的虚拟盘映像以由主机服务器使用;对来自主机服务器的对与虚拟盘映像的一部分对应的数据的请求进行响应;以及使用HTML5 KVM/虚拟介质客户端实现反向查找操作以将对数据的请求转换成构成虚拟盘映像的至少一个特定文件的至少一部分。然后,HTML5 KVM/虚拟介质客户端可以将与该一个特定文件对应的数据字节发送至主机服务器以供使用。
附图说明
本文描述的附图仅用于说明目的,并非意在以任何方式限制本公开内容的范围。
图1是根据本公开内容的示例的用于在HTML5 KVM/虚拟介质客户端在用户设备的网络浏览器中运行的情况下在KVM会话期间创建用户的设备上的内容的可以由远程主机服务器使用的虚拟盘映像的系统的高级框图;
图2A和2B表示示出HTML5 KVM/虚拟介质客户端与远程主机服务器之间的通信序列的一个示例的流程图,通过该通信序列创建虚拟盘映像以由主机服务器使用并且虚拟盘映像的内容被提供给主机服务器;
图3A示出了通过本公开内容的另一实施方式执行的多个操作,该另一实施方式在创建虚拟盘映像时使用CHROMETM网络浏览器和CHROMETM网络浏览器的永久沙箱;以及
图3B更详细地示出了图3A中所示的操作中的与在创建虚拟盘映像时永久沙箱的使用有关的某些操作。
具体实施方式
以下描述本质上仅是示例性的,并非意在限制本公开内容、应用或用途。应该理解的是,贯穿附图,相应的附图标记表示相似或相应的部件和特征。
参照图1,示出了其中使用用户设备来与数据中心17处的位于远程的主机服务器16进行KVM会话的系统10,在该示例中用户设备是在其上运行的网络浏览器14的工作站计算机12。KVM设备将用户工作站12与主机服务器16连接,在该示例中KVM设备是KVM装置18。然而,将理解的是,可以容易地实现BMC来代替KVM装置。然而,出于讨论的目的,将参考作为KVM装置的KVM设备。
网络浏览器14中可以运行有HTML5 KVM/虚拟介质客户端20。网络浏览器14还提供作为专用存储器空间的“沙箱”22,在网络浏览器14中运行的JavaScript引擎可以将文件或文件的一部分带入到该“沙箱”22中。然而,如上所述,JavaScript引擎不能写出文件,也不被允许直接访问工作站12内包含的或物理连接至工作站的任何物理设备(盘驱动器、闪存驱动器)。
HTML5 KVM/虚拟介质客户端20经由KVM装置18、KVM装置18内的虚拟介质连接设备24、主机服务器16的USB端口26和广域网连接(例如,因特网)与主机服务器16通信。当在工作站12上创建了虚拟盘映像并且向主机服务器16暴露虚拟盘映像的情况下以及在从HTML5KVM/虚拟介质客户端向主机服务器16发送状态更新(例如,传输的字节数)的情况下,在HTML5 KVM/虚拟介质客户端20与主机服务器16之间传送消息,例如但不限于AVMP(Avocent虚拟消息传递协议)消息。创建工作站12的盘驱动器上的文件和/或目录的虚拟盘映像并且向主机服务器16暴露虚拟盘映像提供了用于使得主机服务器16能够访问工作站12的任何盘以及可以物理连接至工作站12的任何虚拟介质设备(例如,闪存驱动器、便携式存储器设备等)上的内容的手段。
现在参照图2A和图2B,将呈现示出HTML5 KVM/虚拟介质客户端20与主机服务器16之间的操作序列的示例的流程图100。首先,在操作102(图2A)处,用户经由在用户的网络浏览器14中运行的HTML5 KVM/虚拟介质客户端20建立与主机服务器16的KVM会话。在操作104处,KVM装置18向HTML5 KVM/虚拟介质客户端20发送可用于映射在主机服务器16上的虚拟介质设备的列表。在操作106处,用户选择要被映射的主机服务器设备,并且然后选择要经由虚拟盘映像被映射的特定内容。要被映射的内容可以是特定文件或者可以是目录或子目录。
在操作108处,HTML5 KVM/虚拟介质客户端20使用所选择的格式(例如,FAT32或ISO9660)封装所选择的内容以在浏览器的沙箱22中创建所选择的内容的虚拟盘映像。在操作110处,HTML5 KVM/虚拟介质客户端20向主机服务器16发送消息以向主机服务器通知可用虚拟盘映像,并且向主机服务器16暴露虚拟盘映像以供使用。关于可以被发送的消息,将理解的是,可以采用任何消息传递协议,但是在一种优选形式中,可以使用AVMP(Avocent虚拟消息协议)消息。Avocent虚拟消息传递协议是Avocent股份有限公司、Vertiv公司的专有协议。
在操作112处,主机服务器16获取虚拟盘映像,并且然后向HTML5 KVM/虚拟介质客户端20发送回具有要检索的起始块号和数据块的数量的消息(例如,AVMP消息)。在操作114处,HTML5 KVM/虚拟介质客户端20将请求转换成构成虚拟盘映像的特定文件和来自那些文件的特定内容(即,文件偏移量以及要从文件读取的字节数)。还将理解的是,创建虚拟盘映像涉及创建盘映像的结构元素例如引导扇区和FAT表。通常以文件存储在盘映像内的盘映像的数据不是虚拟盘映像的一部分。相反,本系统和方法保持对文件的引用使得在接收到对特定数据块(或块组)的请求时,可以执行反向查找。反向查找确定哪些文件包含所请求的数据,并且然后可以执行操作以去往客户端工作站并从客户端工作站检索该数据。通过将所需要的文件的那些部分复制到沙箱22中并且然后将数据传输至主机服务器16来检索数据。构成盘映像的文件不会被带入到沙箱22中直到需要其数据,并且然后仅需要的文件的那些部分被带入到沙箱中。因此,该方法形成“按需”型系统。
在操作116处,HTML5 KVM/虚拟介质客户端20将由所选择的字节表示的数据发送至主机服务器16。在操作118处,主机服务器16接收传输的字节。将理解的是,由主机服务器16接收的字节来自虚拟盘映像上的特定块。然而,主机服务器16不知道字节来自盘映像。对于主机服务器16,似乎它从连接至其USB端口26的物理设备获取数据的字节。
参照图2B,在操作120处,主机服务器16确定是否需要额外的字节。如果是,则如在操作122处所示,主机服务器16请求额外的字节。然后如在操作124处所示,检查是否能够通过USB设备将额外的字节发送至HTML5 KVM/虚拟介质客户端20,如果是,则如在操作126处所示,将所请求的额外的字节发送至主机服务器16。如果在操作124处的检查指示USB设备不能发送任何额外的字节,则如在操作128处所示,USB设备以不能读取额外的字节的消息对主机服务器16进行响应。如在操作130处所示,主机服务器16将该状况视为错误。
如果在操作120处的检查指示不需要额外的字节,则如在操作132处所示,用户可以通过从HTML5 KVM/虚拟介质客户端20取消映射虚拟盘或者可替选地通过从主机服务器16“弹出”虚拟盘来结束KVM会话。通过“弹出”,将理解的是,主机服务器16将虚拟盘映像“看”作与物理设备例如工作站12上的盘驱动器的物理连接。如此,主机服务器16可以例如通过选择“弹出”命令与虚拟盘映像断开连接,就好像它与耦接至其USB端口26的物理虚拟介质设备断开连接。在操作134处,KVM装置18固件接收弹出通知以及向HTML5 KVM/虚拟介质客户端20发送消息(例如,AVMP消息),然后HTML5 KVM/虚拟介质客户端20取消映射虚拟盘映像。
通过使用HTML5 KVM/虚拟介质客户端20来创建虚拟盘映像并且向主机服务器16暴露虚拟盘映像,至少部分地克服了网络浏览器不能直接访问工作站12上的物理盘。然而,由于沙箱22将不允许HTML5 KVM/虚拟介质客户端20读取物理设备的引导扇区,所以主机服务器16启动客户端工作站上的物理盘的能力丢失。基本上作为文件存储在工作站12的盘以及能够由工作站12通过与工作站的物理连接访问的任何虚拟介质设备上的任何数据内容均能够由主机服务器16访问。由于用户熟悉使用网络浏览器,因此能够在网络浏览器14中运行HTML5 KVM/虚拟介质客户端20也显著增加了用户使用的容易性。
进一步参照图1,在另一实施方式中,使用CHROMETM网络浏览器50代替网络浏览器14。与所有浏览器一样,CHROMETM网络浏览器50具有临时沙箱52和永久沙箱54二者。然而,CHROMETM网络浏览器50提供了使得能够将文件直接从存储器写入到永久沙箱54中的优点,这在其他网络浏览器的情况下是不可能的。永久沙箱将使用来自用户硬盘驱动器的可用空间。
参照图3A,示出了流程图200,流程图200示出了可以通过使用CHROMETM网络浏览器50的系统10执行的各种操作。操作202至206与结合图2A描述的操作102至106完全对应,并且因此将不会重复。在操作208处,在CHROMETM网络浏览器50中运行的HTML5 KVM/虚拟介质客户端计算预期的虚拟盘映像大小。在操作210处,系统10请求在CHROMETM网络浏览器的永久沙箱54中写入虚拟盘映像的许可。可以经由在用户的计算机显示器或显示终端的显示上的画面提示呈现该请求。在操作212处,系统10检查是否已经从用户接收到许可。如果用户拒绝了许可,则如在操作214处所示,可以在用户的计算机显示器或显示终端上呈现消息“传输失败”。可替选地,可以在不向用户生成任何消息的情况下简单地中止虚拟盘创建过程。
如果在操作212处的检查指示已经向用户授予将虚拟盘映像写入在永久沙箱54中的许可,则在操作216处,在用户的设备的CHROMETM网络浏览器50中运行的HTML5 KVM/虚拟介质客户端20使用所选择的文件格式(例如,FAT32或ISO9660)封装所选择的内容以在CHROMETM网络浏览器的永久沙箱54中创建虚拟盘映像。由于永久沙箱54具有比临时沙箱52大得多的存储容量,并且由于CHROMETM网络浏览器50可以直接将文件写出到永久沙箱54,因此这允许在永久沙箱中创建极大的虚拟盘映像。因此,可以通过使用KVM/虚拟介质客户端20和CHROMETM网络浏览器50的系统10创建可以包括用户的存储设备(例如,硬盘驱动器)上的大多数文件或者可能全部文件的盘映像。
简要参照图3B,呈现关于操作206至214的额外的细节。操作206涉及用户响应于通过在CHROMETM网络浏览器50中运行的HTML5 KVM/虚拟介质客户端20呈现的画面提示来选择特定文件和/或文件夹。在操作208a处,HTML5 KVM/虚拟介质客户端20计算预期虚拟盘大小,其包括所选择的内容的总大小(以字节为单位)以及用于要创建的虚拟盘映像的内容表的额外空间。在这方面,重要的是要认识到,需要在进行将文件写入到永久存储中的任何尝试之前完成确定要被写入到永久存储中的文件的大小以及从CHROMETM网络浏览器50获取将所确定的文件大小的文件写入到永久存储中的许可。
在操作208b处,HTML5 KVM/虚拟介质客户端20获取用户的永久存储请求的配额大小和针对当前源的已用永久存储大小。如果用户事先从未要求设置配额大小和用户大小的许可,则可以将这两个项的大小设置成零。因此,操作208b可以被视为包含初始指定要被写入到永久存储中的文件的大小以及获取将该大小的文件写入到永久存储中的许可。对于该操作,需要计算预期的虚拟盘映像大小。
在操作208c处,HTML5 KVM/虚拟介质客户端20然后可以计算虚拟盘映像的预期总大小(以字节为单位)(VdiskTotal)。VdiskTotal将等于所选择的内容的大小加上内容表的大小。请求的永久存储大小将等于预期的虚拟盘映像大小。在操作210处,在确定了所计算的总大小的情况下,HTML5 KVM/虚拟介质客户端20调用在CHROMETM网络浏览器50中运行的处理CHROMETM网络浏览器与远程设备之间的通信的API(应用编程接口)以获取创建虚拟盘映像的用户许可。如果CHROMETM网络浏览器50已经对预期文件大小授予许可并且如果永久存储的一部分已经被使用,则将永久存储的已经被使用的该部分与VdiskTotal相加并且总和变成所请求的永久存储的量。因此,然后所请求的永久存储大小变成VdiskTotal+已经被使用的永久存储。因此,如果在操作212处CHROMETM网络浏览器50已经被授予了写入文件的许可,则执行图3A的操作216和图2B的操作120至134。
作为确定VdiskTotal的另一示例,例如,假设计算的虚拟盘大小是1GB并且永久存储尚未被使用。然后,如果足够的永久存储空间可用,则CHROMETM网络浏览器API将向用户请求将虚拟盘映像写入到永久存储的许可。一旦用户确认该请求,CHROMETM网络浏览器继续进行将虚拟盘映像(在该示例中为1GB)写入到永久存储区域中。
如果例如在计算的虚拟盘映像大小被计算为1GB的情况下200MB的永久存储已经被使用,则CHROMETM网络浏览器API将200MB与所计算的文件大小VdiskTotal相加以形成表示所需要的总永久存储空间的新的总和。因此,在该示例中,CHROMETM网络浏览器API将确定其需要1.2GB的永久文件存储空间,并且然后将向用户请求创建虚拟盘映像文件的确认。例如,如果总共仅有1GB可用于永久存储,则因为已经使用了200MB,所以CHROMETM网络浏览器API将确定其仅有800MB的永久存储空间可用。在这种情况下,CHROMETM网络浏览器API然后可以向用户提供不存在可用于创建所请求的虚拟盘映像文件的足够永久存储空间的画面通知。
因此,在使用CHROMETM网络浏览器50的情况下,系统10使HTML5KVM/虚拟介质客户端20能够创建虚拟盘映像,该虚拟盘映像仅在大小(即,以字节为单位)上受到用户永久沙箱的存储容量的限制。该特征在单个虚拟盘映像中将多个视频文件从用户设备呈现至其他设备时可能特别有用,否则由于使用用户的网络浏览器中的临时沙箱而造成的存储限制,需要创建多个单独的虚拟盘映像。
虽然已经描述了各种实施方式,但是本领域技术人员将认识到可以在不脱离本公开内容的情况下进行的修改或变化。这些实施方式说明了各种实施方式,并非意在限制本公开内容。因此,应该仅通过相关现有技术的必要限制来自由地解释说明书和权利要求书。
Claims (18)
1.一种用于在KVM会话期间使用在用户的设备的网络浏览器中运行的HTML5 KVM/虚拟介质客户端来创建虚拟盘映像并且向主机服务器暴露所述虚拟盘映像的方法,所述网络浏览器具有临时沙箱和永久沙箱二者,所述方法包括:
向所述主机服务器发送对要被映射在所述主机服务器上的特定虚拟介质设备的选择;
通过所述HTML5 KVM/虚拟介质客户端来获取用户的永久存储请求的配额大小和针对当前源的已用永久存储大小;
使用所述HTML5 KVM/虚拟介质客户端来使用所选择的格式封装所选择的内容,并且使用所述网络浏览器的写入有所选择的内容的所述永久沙箱,连同所述用户的永久存储请求的配额大小和针对当前源的已用永久存储大小,来在所述网络浏览器的所述永久沙箱中创建所选择的内容的盘映像;
向所述主机服务器通知可用虚拟盘映像并且暴露存在于所述永久沙箱中的所述虚拟盘映像以供所述主机服务器使用;
使用所述主机服务器从所述永久沙箱中获取所述虚拟盘映像;
使用所述主机服务器向所述HTML5 KVM/虚拟介质客户端发送对检索所述虚拟盘映像的数据的一部分的请求;
使用所述HTML5 KVM/虚拟介质客户端将所述请求转换成构成所述虚拟盘映像的至少一个特定文件,并且向所述主机服务器发送与所述至少一个特定文件对应的数据字节;以及
使用所述主机服务器接收与所述至少一个特定文件对应的所述数据字节,
其中,使用所述HTML5 KVM/虚拟介质客户端来使用所选择的格式封装所选择的内容包括计算预期总虚拟盘大小VdiskTotal,所述VdiskTotal包括所选择的内容的总大小和用于所述虚拟盘映像的内容表的额外空间。
2.根据权利要求1所述的方法,还包括:
使用所述主机服务器请求额外的数据字节;
确定所述额外的数据字节是否能够被呈现给与所述主机服务器相关联的USB设备;以及
使用所述HTML5 KVM/虚拟介质客户端将所述额外的数据字节发送至所述主机服务器。
3.根据权利要求1所述的方法,还包括:响应来自所述用户设备的命令以从所述HTML5KVM/虚拟介质客户端取消映射所述虚拟盘映像。
4.根据权利要求1所述的方法,还包括:响应来自所述用户设备的命令以从所述主机服务器弹出所述虚拟盘映像。
5.根据权利要求1所述的方法,还包括:从所述HTML5 KVM/虚拟介质客户端向所述主机服务器发送关于被传输至所述主机服务器的字节数的状态更新消息。
6.根据权利要求1所述的方法,还包括使用所述HTML5 KVM/虚拟介质客户端来使用以下中的至少之一封装所选择的内容:
FAT32格式;和
ISO9660格式。
7.根据权利要求1所述的方法,其中,创建所述虚拟盘映像还包括创建虚拟盘映像的结构元素,所述结构元素包括引导扇区和FAT表。
8.根据权利要求1所述的方法,还包括使用所述HTML5 KVM/虚拟介质客户端来保持对与特定数据块或数据块组中的至少之一对应的特定文件的引用,并且使用反向查找操作来确定所述盘映像的文件中的哪些特定文件对应于所请求的数据块。
9.根据权利要求8所述的方法,还包括仅将存储在所述用户设备上与所请求的数据块对应的那些文件部分传输至所述用户设备的所述网络浏览器的沙箱中。
10.根据权利要求1所述的方法,还包括将所述VdiskTotal大小与已用永久文件存储大小相加。
11.根据权利要求10所述的方法,还包括使用所述HTML KVM/虚拟介质客户端来调用所述用户的网络浏览器的应用编程接口API并且请求用以创建所述虚拟盘映像的许可,以及在从所述用户接收到许可的情况下,然后创建所述虚拟盘映像。
12.根据权利要求1所述的方法,其中,所述网络浏览器包括CHROMETM网络浏览器。
13.一种用于在KVM会话期间使用在用户的设备的网络浏览器中运行的HTML5 KVM/虚拟介质客户端创建虚拟盘映像并且向主机服务器暴露所述虚拟盘映像的系统,其中,所述网络浏览器具有临时沙箱和永久沙箱,所述临时沙箱和所述永久沙箱均被配置成用于数据存储,所述系统包括:
在其上运行有所述网络浏览器的用户设备;
在所述网络浏览器中运行的HTML5 KVM/虚拟介质客户端,所述HTML5 KVM/虚拟介质客户端配被置成:
获取用户的永久存储请求的配额大小和针对当前域的已用永久存储大小;
使用所选择的格式封装所选择的内容,并且使用所述网络浏览器的写入有所选择的内容的所述永久沙箱,连同所述用户的永久存储请求的配额大小和针对当前域的已用永久存储大小,以在所述网络浏览器的所述永久沙箱中创建所选择的内容的盘映像;
向所述主机服务器通知可用虚拟盘映像并且暴露所述永久沙箱中的所述虚拟盘映像以供所述主机服务器使用;
对来自所述主机服务器的对与所述虚拟盘映像的一部分对应的数据的请求进行响应;以及
使用所述HTML5 KVM/虚拟介质客户端实现反向查找操作以将对数据的所述请求转换成构成所述虚拟盘映像的至少一个特定文件的至少一部分,以及将与一个特定文件的所述至少一部分对应的数据字节发送至所述主机服务器以供使用,
其中,所述HTML5 KVM/虚拟介质客户端使用所选择的格式封装所选择的内容包括计算预期总虚拟盘大小VdiskTotal,所述VdiskTotal包括所选择的内容的总大小和用于所述虚拟盘映像的内容表的额外空间。
14.根据权利要求13所述的系统,其中,通过所述HTML5 KVM/虚拟介质客户端实现的所述反向查找操作包括使用所述HTML5 KVM/虚拟介质客户端来保持对与由所述主机服务器请求的特定数据块或数据块组中的至少之一对应的特定文件的引用,以及使用所述反向查找操作确定所述盘映像的文件中的哪些特定文件对应于所请求的数据。
15.根据权利要求13所述的系统,其中,所述HTML5 KVM/虚拟介质客户端还被配置成进行以下中的至少之一:
从所述HTML5 KVM/虚拟介质客户端取消映射所述虚拟盘映像;以及
从所述主机服务器弹出所述虚拟盘映像。
16.根据权利要求13所述的系统,还包括将所述VdiskTotal大小与已用永久文件存储大小相加。
17.根据权利要求16所述的系统,还包括将所述HTML5 KVM/虚拟介质客户端配置成调用所述用户的网络浏览器的应用编程接口API并且请求用以创建所述虚拟盘映像的许可,以及在从所述用户接收到许可的情况下,然后创建所述虚拟盘映像。
18.根据权利要求13所述的系统,其中,所述网络浏览器包括CHROMETM网络浏览器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/730,198 US10198285B2 (en) | 2012-10-04 | 2017-10-11 | System and method for creating virtual disk images for use with remote computer |
US15/730,198 | 2017-10-11 | ||
PCT/US2018/039262 WO2019074556A1 (en) | 2017-10-11 | 2018-06-25 | SYSTEM AND METHOD FOR CREATING VIRTUAL DISK IMAGES FOR USE WITH A REMOTE COMPUTER |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111164570A CN111164570A (zh) | 2020-05-15 |
CN111164570B true CN111164570B (zh) | 2024-05-21 |
Family
ID=66101643
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880062844.5A Active CN111164570B (zh) | 2017-10-11 | 2018-06-25 | 用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 |
CN201811172414.7A Pending CN109656677A (zh) | 2017-10-11 | 2018-10-09 | 创建与远程计算机一起使用的虚拟盘映像的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811172414.7A Pending CN109656677A (zh) | 2017-10-11 | 2018-10-09 | 创建与远程计算机一起使用的虚拟盘映像的系统和方法 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3695312B1 (zh) |
CN (2) | CN111164570B (zh) |
WO (1) | WO2019074556A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11243781B2 (en) * | 2020-03-04 | 2022-02-08 | Citrix Systems, Inc. | Provisioning services (PVS) cloud streaming with read cache file storing preboot data including a network driver |
CN112379965B (zh) * | 2020-10-15 | 2023-07-21 | 北京奇艺世纪科技有限公司 | 沙盒文件映射系统、客户端装置、映射端装置、沙盒文件映射方法以及电子设备 |
US20220398290A1 (en) * | 2021-06-10 | 2022-12-15 | Dell Products L.P. | System and method for image file generation using a web browser |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104685488A (zh) * | 2012-10-04 | 2015-06-03 | 阿沃森特亨茨维尔公司 | 用于创建供远程计算机使用的虚拟磁盘镜像的系统和方法 |
US20150295994A1 (en) * | 2012-10-23 | 2015-10-15 | Avocent Huntsville Corp. | System and method for accessing disk image files using html5 kvm/vmedia client running in a web browser |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971162B (zh) * | 2008-02-26 | 2012-11-21 | 威睿公司 | 将基于服务器的桌面虚拟机架构扩展到客户机上 |
US8615594B2 (en) * | 2009-07-15 | 2013-12-24 | Aten International Co., Ltd. | Virtual media with folder-mount function |
US8904550B2 (en) * | 2012-06-27 | 2014-12-02 | Blackberry Limited | Selection of sandbox for initiating application |
-
2018
- 2018-06-25 EP EP18866618.4A patent/EP3695312B1/en active Active
- 2018-06-25 CN CN201880062844.5A patent/CN111164570B/zh active Active
- 2018-06-25 WO PCT/US2018/039262 patent/WO2019074556A1/en unknown
- 2018-10-09 CN CN201811172414.7A patent/CN109656677A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104685488A (zh) * | 2012-10-04 | 2015-06-03 | 阿沃森特亨茨维尔公司 | 用于创建供远程计算机使用的虚拟磁盘镜像的系统和方法 |
US20150295994A1 (en) * | 2012-10-23 | 2015-10-15 | Avocent Huntsville Corp. | System and method for accessing disk image files using html5 kvm/vmedia client running in a web browser |
Also Published As
Publication number | Publication date |
---|---|
EP3695312B1 (en) | 2024-03-20 |
EP3695312A1 (en) | 2020-08-19 |
EP3695312A4 (en) | 2021-04-21 |
CN109656677A (zh) | 2019-04-19 |
WO2019074556A1 (en) | 2019-04-18 |
CN111164570A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6826661B2 (en) | Methods and systems for storage architectures | |
US9843619B2 (en) | System and method for accessing disk image files using HTML5 KVM/vmedia client running in a web browser | |
US8762480B2 (en) | Client, brokerage server and method for providing cloud storage | |
CN111164570B (zh) | 用于创建用于与远程计算机一起使用的虚拟盘映像的系统和方法 | |
US20020174206A1 (en) | Web-based file manipulating system | |
US20160210173A1 (en) | Methods and systems for providing software applications | |
US20150163282A1 (en) | System and method for accessing remote disk images using a vmedia client and through a remote access appliance | |
US20120296871A1 (en) | File managing apparatus for processing an online storage service | |
US9841984B2 (en) | System and method for creating virtual disk images for use with remote computer | |
EP3042500B1 (en) | Metadata-based file-identification systems and methods | |
US9158729B1 (en) | Client request processing using protocol abstraction | |
US10198285B2 (en) | System and method for creating virtual disk images for use with remote computer | |
US9742874B2 (en) | Control device, and method for transfer control | |
US20070058643A1 (en) | Dual purpose video adapter port | |
US20080109685A1 (en) | Apparatus and method for providing error notification in a wireless virtual file system | |
US11979454B2 (en) | Writeback to a virtual media mapped image in HTML5 | |
US20080140669A1 (en) | Dedicated storage and background backup of stored contents | |
CN117640657A (zh) | 以html5对虚拟媒体映射镜像的写回 | |
JP7417044B2 (ja) | 情報処理装置、情報処理システム、情報処理方法およびプログラム | |
EP1866905B1 (en) | Dual purpose video adapter port | |
JP2022112380A (ja) | 映像データ送信装置、映像データ送信プログラムおよび映像データ送信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |