一种传输本地文件数据到虚拟机块设备的方法与系统与流程
未命名
08-02
阅读:168
评论:0

1.本发明属于计算机虚拟设备技术领域,具体涉及一种传输本地文件数据到虚拟机块设备的方法与系统。
背景技术:
2.虚拟机,是在虚拟化平台上创建的,能够作为一台独立计算设备的虚拟计算机。其中包含各种虚拟硬件,包括cpu、内存、磁盘、以及其它设备。在虚拟机的使用过程中,可能包含需要向虚拟机中挂载只读块设备的需求。比如虚拟机需要安装操作系统、或运行某些软件时,可能需要挂载一个光驱。
3.对于上述需求,常规的解决方案主要有以下两种:
4.第一种是用户上传需要挂载的块设备文件到虚拟化层,由虚拟化系统负责将文件直接挂载到虚拟机上。这种方法的特点是挂载比较稳定,有利于管理,缺点也非常明显:需要事先将块设备文件传输到虚拟化系统中,占用的空间还需要手动清理。
5.第二种是用户需要下载客户端软件,利用客户端软件开启nbd服务,由虚拟化系统远程连接后进行挂载。这种方法的特点是不需要将块设备文件上传到服务器,而是在客户端开启连接,缺点在于:需要提前下载客户端,客户端还要能够适配客户的操作系统,并且需要在客户端开启一个固定端口用于被服务端访问。
6.本文提出的方法和系统,旨在解决上述方法的缺点,使用户在既不需要提前上传文件、也不需要提前下载客户端软件的情况下,能够通过web浏览器直接将本地的块设备文件远程挂载到虚拟化层,通过虚拟化技术挂载到虚拟机中。
技术实现要素:
7.本发明的目的是提出一种传输本地文件数据到虚拟机块设备的方法与系统,本发明能够通过web浏览器直接挂载只读块设备文件(如光驱文件、块磁盘文件等)到虚拟机上,并实现相应的系统。从而达到既不需要上传块设备文件,也不需要额外下载客户端辅助,就能够方便的直接远程挂载和卸载,按需传输数据的目的。
8.为达到上述目的解决现有技术中的技术问题,提供技术方案如下:
9.一种传输本地文件数据到虚拟机块设备的系统,包括用户端、块设备挂载管理装置、虚拟化层;
10.所述所述块设备挂载管理装置包括设备挂载管理前端、websocket服务端和nbd服务端;位于用户端和虚拟化层之间,将用户端的挂载请求进行统一管理,块管理挂载管理装置作为中间媒介,建立用户端和虚拟化层之间连接,实现用户端和虚拟化层之间的通信;
11.所述用户终端由若干用户浏览器构成,每个用户浏览器具有块设备文件和块设备挂载管理前端;用户能够通过web浏览器选择块设备文件并请求挂载;请求挂载的为只读块设备文件;
12.所述块设备挂载管理前端为浏览器加载的websocket客户端,websocket客户端用
于和块设备挂载管理装置中的websocket服务端建立连通通道,并通过websocket协议构建块设备挂载管理装置与用户端的双向连接;
13.设备挂载管理装置用于通知hypervisor层,有块设备文件需要挂载到虚拟机上;同时,虚拟化层的虚拟化管理系统通过nbd协议建立块设备挂载管理装置与虚拟化层之间的连接,实现nbd服务端和nbd客户端的双向连接;
14.所述虚拟化层包括若干台虚拟设备和虚拟化管理系统,虚拟化层块设备可以直接挂载到虚拟机上;
15.当某台虚拟机需要读取块设备文件时,首先通过nbd协议发送读取请求到nbd服务端,再通过块设备挂载管理装置将读取请求通过websocket协议发送到websocket客户端,由浏览器对块设备文件进行按需读取,通过双向连接将块设备文件内容原路返回给虚拟机,实现远程挂载并读取数据。
16.进一步的,挂载块设备文件为光驱文件或磁盘文件的只读块设备文件。
17.进一步的,虚拟化层实际上若为集群设置时,所述块设备挂载管理装置使用网络挂载方式,支持同时管理集群中的全部虚拟机的挂载,无论在哪台物理机上。
18.本发明提供一种传输本地文件数据到虚拟机块设备的方法,采用传输本地文件数据到虚拟机块设备的系统来实现,包括如下步骤:
19.步骤1、握手阶段
20.用户选择需要挂载的块设备文件和需要挂载的虚拟机,请求发送至块设备挂载管理装置,由块设备挂载管理装置主导各种连接的建立与握手;
21.步骤2、传输阶段
22.此阶段下,各种连接均已建立,当用户端实际挂载块设备文件到虚拟机中并进行使用时,将产生读取块设备文件内容的请求,该请求将通过两个双向连接传导至websocket客户端,并由浏览器进行块设备文件的读取操作,传输阶段的请求会根据用户的使用情况重复若干次;
23.步骤3、结束阶段
24.此阶段下,用户端请求断开连接,此时由块设备挂载管理装置主导,断开websocket、nbd连接,并将虚拟化层块设备从对应的虚拟机中卸载。
25.本发明的有效收益如下:
26.本发明实现了直接通过web浏览器将块设备文件挂载到虚拟机中,用户使用本发明所述系统进行虚拟机管理时,直接在浏览器中选择本地文件,即可直接在虚拟机中利用虚拟光驱等设备挂载该文件并使用,大幅简化了用户操作。
附图说明
27.图1本发明传输本地文件数据到虚拟机块设备的系统架构示意图;
28.图2本发明方法握手阶段时序示意图;
29.图3本发明方法传输阶段时序示意图;
30.图4本发明方法结束阶段时序示意图;
具体实施方式
31.下面结合附图,对本发明进行详细的解释和说明。
32.本发明一种传输本地文件数据到虚拟机块设备的系统设计思路简述如下:本发明使用了websocket传输技术和nbd(network block device)技术,通过设计一个管理与转发装置即块设备挂载管理装置,将客户端的挂载请求统一管理起来,并能够作为中介,将客户端与虚拟化hypervisor层建立连接,从而做到相互通信。再利用nbd协议,将块设备作为网络设备进行挂载。
33.本发明的系统架构如图1所示:
34.本发明一种传输本地文件数据到虚拟机块设备的系统包括用户端、块设备挂载管理装置、虚拟化层,块管理挂载管理装置位于用户端和虚拟化层之间,将用户端的挂载请求进行统一管理,块管理挂载管理装置作为中间媒介,建立用户端和虚拟化层之间连接,实现用户端和虚拟化层之间的通信;
35.所述用户终端由若干用户浏览器构成,每个用户浏览器具有块设备文件和块设备挂载管理前端;用户能够通过web浏览器选择块设备文件,请求挂载;
36.所述块设备挂载管理前端为websocket客户端,websocket客户端用于和块设备挂载管理装置中的websocket服务端建立连通通道,将块设备挂载管理装置与用户端建立起双向连接;
37.所述块设备挂载管理装置包括websocket服务端和nbd服务端;设备挂载管理装置用于通知hypervisor层,有块设备文件需要挂载到虚拟机上;同时,虚拟化层的虚拟化管理系统通过nbd协议建立块设备挂载管理装置与虚拟化层之间的连接,实现nbd服务端和nbd客户端的双向连接;
38.虚拟化层包括若干台虚拟设备和虚拟化管理系统,虚拟化层块设备可以直接挂载到虚拟机上;
39.如图1所示,在挂载块设备文件(如光驱文件、磁盘文件)时,用户只需要通过浏览器选择块设备文件,请求挂载,系统首先建立websocket连接通道,将块设备挂载管理装置与浏览器端(用户端)建立起双向连接,再通知hypervisor,通过nbd协议,建立虚拟化层块设备与块设备挂载管理装置的双向连接。并且虚拟化层块设备,是可以直接挂载到虚拟机1上的。
40.两处的双向连接都建立起来以后,当某台虚拟机需要读取块设备文件时,首先通过nbd协议发送读取请求到nbd服务端,再通过块设备挂载管理装置将读取请求通过websocket协议发送到websocket客户端,由浏览器对块设备文件进行按需读取,因为连接是双向的,所以可以将文件内容原路返回给虚拟机1,从而达到远程挂载并读取数据的目的。
41.本发明的块设备挂载管理装置可以和虚拟化管理系统合并为一个系统,但实际使用中建议分开,因为远程挂载文件涉及到大量的文件传输,分开部署既能减少服务对hypervisor的性能压力,又有利于后续服务压力较大时横向扩展。
42.本发明支持同时在多个用户终端远程挂载多个文件到多个虚拟机上,图1作为示例,仅展示了一个。
43.本发明的虚拟化层实际上可能是一个集群,块设备挂载管理装置由于使用网络挂
载方式,所以支持同时管理集群中的全部虚拟机的挂载,无论在哪台物理机上。
44.同时,本发明提供一种传输本地文件数据到虚拟机块设备的方法,采用上面所述的传输本地文件数据到虚拟机块设备的来实现,整个实现过程从连接的建立到断开连接,包括如下步骤:
45.步骤1、握手阶段
46.本阶段的主要动作为:用户选择需要挂载的块设备文件和需要挂载的虚拟机,请求发送至块设备挂载管理装置,由块设备挂载管理装置主导各种连接的建立与握手。其时序图如图2所示。
47.步骤2、传输阶段
48.此阶段下,各种连接均已建立,当用户端实际挂载块设备文件到虚拟机中并进行使用时,将产生读取块设备文件内容的请求,该请求将通过两个双向连接传导至websocket客户端,并由浏览器进行文件的读取操作,传输阶段的请求会根据用户的使用情况重复若干次。其时序图如图3所示。
49.步骤3、结束阶段
50.此阶段下,用户端请求断开连接,此时由块设备挂载管理装置主导,断开websocket、nbd连接,并将虚拟化层块设备从对应的虚拟机中卸载。其时序图如图4所示。
51.本发明的关键点陈述如下:
52.关键点1:本发明所述方案可以挂载只读的块设备文件,对于写操作暂时不能支持,因为web浏览器一般不会有直接写入文件的权限。
53.关键点2:只要是只读的块设备文件挂载,均属于本发明的适用范围,包括但不限于光驱文件,块磁盘文件等。
54.关键点3:本发明与传统方案的不同之处在于,本发明直接使用web浏览器进行文件的读取和挂载,不需要用户下载客户端、或上传需要挂载的文件。为了达到这种效果,选用了利用websocket和nbd协议的实现方式。
55.关键点4:本发明利用了websocket实现浏览器与块设备挂载管理装置的通信,利用开源的nbd协议实现了块设备的网络映射,这两部分都是公众所知的技术。
56.关键点5:本发明所述系统可以做到任何一个连接在意外断开后进行重连,从而保证系统服务的可用性。并且也支持横向扩展(部署多实例用于负载均衡)。
57.以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
技术特征:
1.一种传输本地文件数据到虚拟机块设备的系统,其特征在于,包括用户端、块设备挂载管理装置、虚拟化层;所述块设备挂载管理装置包括设备挂载管理前端、websocket服务端和nbd服务端;位于用户端和虚拟化层之间,将用户端的挂载请求进行统一管理,块管理挂载管理装置作为中间媒介,建立用户端和虚拟化层之间连接,实现用户端和虚拟化层之间的通信;所述用户终端由若干用户浏览器构成,每个用户浏览器具有块设备文件和块设备挂载管理前端;用户能够通过web浏览器选择块设备文件并请求挂载;请求挂载的为只读块设备文件;所述块设备挂载管理前端为浏览器加载的websocket客户端,websocket客户端用于和块设备挂载管理装置中的websocket服务端建立连通通道,并通过websocket协议构建块设备挂载管理装置与用户端的双向连接;设备挂载管理装置用于通知hypervisor层,有块设备文件需要挂载到虚拟机上;同时,虚拟化层的虚拟化管理系统通过nbd协议建立块设备挂载管理装置与虚拟化层之间的连接,实现nbd服务端和nbd客户端的双向连接;所述虚拟化层包括若干台虚拟设备和虚拟化管理系统,虚拟化层块设备可以直接挂载到虚拟机上;当某台虚拟机需要读取块设备文件时,首先通过nbd协议发送读取请求到nbd服务端,再通过块设备挂载管理装置将读取请求通过websocket协议发送到websocket客户端,由浏览器对块设备文件进行按需读取,通过双向连接将块设备文件内容原路返回给虚拟机,实现远程挂载并读取数据。2.根据权利要求1所述的一种传输本地文件数据到虚拟机块设备的系统,其特征在于,所述挂载块设备文件为光驱文件或磁盘文件的只读块设备文件。3.根据权利要求1所述的一种传输本地文件数据到虚拟机块设备的系统,其特征在于,所述虚拟化层实际上若为集群设置时,所述块设备挂载管理装置使用网络挂载方式,支持同时管理集群中的全部虚拟机的挂载,无论在哪台物理机上。4.一种传输本地文件数据到虚拟机块设备的方法,其特征在于,采用权利要求1-3任一所述的传输本地文件数据到虚拟机块设备的系统来实现,包括如下步骤:步骤1、握手阶段用户选择需要挂载的块设备文件和需要挂载的虚拟机,请求发送至块设备挂载管理装置,由块设备挂载管理装置主导各种连接的建立与握手;步骤2、传输阶段此阶段下,各种连接均已建立,当用户端实际挂载块设备文件到虚拟机中并进行使用时,将产生读取块设备文件内容的请求,该请求将通过两个双向连接传导至websocket客户端,并由浏览器进行块设备文件的读取操作,传输阶段的请求会根据用户的使用情况重复若干次;步骤3、结束阶段此阶段下,用户端请求断开连接,此时由块设备挂载管理装置主导,断开websocket、nbd连接,并将虚拟化层块设备从对应的虚拟机中卸载。
技术总结
本发明公开一种传输本地文件数据到虚拟机块设备的方法与系统。属于计算机虚拟设备技术领域。本发明使用了websocket传输技术和NBD(Network Block Device)技术,通过设计一个管理与转发装置即块设备挂载管理装置,将客户端的挂载请求统一管理起来,并能够作为中介,将客户端与虚拟化hypervisor层建立连接,从而做到相互通信。再利用NBD协议,将块设备作为网络设备进行挂载。本发明能够通过web浏览器直接挂载只读块设备文件(如光驱文件、块磁盘文件等)到虚拟机上,并实现相应的系统。从而达到既不需要上传块设备文件,也不需要额外下载客户端辅助,就能够方便的直接远程挂载和卸载,按需传输数据的目的。需传输数据的目的。需传输数据的目的。
技术研发人员:金博玉 何继文 黄学军 刘蜀东 朱玥 刘辉军
受保护的技术使用者:航天云网科技发展有限责任公司
技术研发日:2023.03.03
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:红外弱小目标实时检测方法及装置 下一篇:一种城镇综合能源系统综合需求响应方法与流程