创建与远程计算机一起使用的虚拟盘映像的系统和方法
相关申请的交叉引用
本申请是于2015年4月3日提交且目前被允许的美国序列号14/433,525的部分继续申请,该美国序列号14/433,525又要求于2012年10月4日提交的美国临时申请第61/709,468号的优先权。上述申请的全部公开内容通过引用并入本文。
技术领域
本公开内容涉及用于创建虚拟盘映像的系统和方法,并且更特别地涉及以下一种系统和方法,其用于在KVM会话期间使用用户计算机的网络浏览器创建所选择的数据的虚拟盘映像,该虚拟盘影像可以由位于远程的主机服务器使用,就好像具有所选择的数据的物理设备已经直接连接至主机服务器一样,并且不具有在使用网络浏览器的临时沙箱区域的情况下施加的对存储大小的限制。
背景技术
本部分中的陈述仅提供与本公开内容有关的背景信息,并且可以不构成现有技术。
当今的键盘、视频和鼠标(KVM)装置以及基板管理控制器(BMC)使得用户能够通过在用户的设备(通常是膝上型计算机、PC、平板计算机、智能电话等)与KVM装置或BMC之间传递键盘、视频和鼠标信号来访问远程服务器和其他设备。出于讨论的目的,以下示例仅参考KVM装置,但是应当理解,它们同样适用于与BMC的通信。通过KVM装置接收的键盘和鼠标信号通常以某种网络协议例如以太网协议分组被接收,并且然后被转换成远程设备可以接受的格式(例如,USB)。
随着HTML5技术的最新发展,在由用户建立了KVM会话时,HTML5 KVM/虚拟介质客户端现在能够在用户的设备的网络浏览器中运行。目前,HTML5得到若干个网络浏览器的支持,包括苹果公司(Apple Corporation)的IOS网络浏览器、Mozilla的网络浏览器、谷歌网络浏览器、微软公司(Microsoft Corp.)的INTERNET(版本10和11)网络浏览器以及微软的由Opera软件(OperaSoftware)开发的和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中运行的HTML5KVM/虚拟介质客户端20呈现的画面提示来选择特定文件和/或文件夹。在操作208a处,HTML5 KVM/虚拟介质客户端20计算预期虚拟盘大小,其包括所选择的内容的总大小(以字节为单位)以及用于要创建的虚拟盘映像的内容表的额外空间。在这方面,重要的是要认识到,需要在进行将文件写入到永久存储中的任何尝试之前完成确定要被写入到永久存储中的文件的大小以及从CHROMETM网络浏览器50获取将所确定的文件大小的文件写入到永久存储中的许可。
在操作208b处,HTML5 KVM/虚拟介质客户端20获取用户的永久存储请求的配额大小和针对当前源的已用永久存储大小。如果用户事先从未要求设置配额大小和用户大小的许可,则可以将这两个项的大小设置成零。因此,操作208b可以被视为包含初始指定要被写入到永久存储中的文件的大小以及获取将该大小的文件写入到永久存储中的许可。对于该操作,需要计算预期的虚拟盘映像大小。
在操作208c处,HTML5 KVM/虚拟介质客户端20然后可以计算虚拟盘映像的预期总大小(以字节为单位)(VdiskTotal)。VdiskTotal将等于所选择的内容的大小加上内容表的大小。请求的永久存储大小将等于预期的虚拟盘映像大小。在操作210处,在确定了所计算的总大小的情况下,HTML5KVM/虚拟介质客户端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使HTML5 KVM/虚拟介质客户端20能够创建虚拟盘映像,该虚拟盘映像仅在大小(即,以字节为单位)上受到用户永久沙箱的存储容量的限制。该特征在单个虚拟盘映像中将多个视频文件从用户设备呈现至其他设备时可能特别有用,否则由于使用用户的网络浏览器中的临时沙箱而造成的存储限制,需要创建多个单独的虚拟盘映像。
虽然已经描述了各种实施方式,但是本领域技术人员将认识到可以在不脱离本公开内容的情况下进行的修改或变化。这些实施方式说明了各种实施方式,并非意在限制本公开内容。因此,应该仅通过相关现有技术的必要限制来自由地解释说明书和权利要求书。