CN110837405A - 基于容器技术的多实例图形桌面运行和切换方法 - Google Patents

基于容器技术的多实例图形桌面运行和切换方法 Download PDF

Info

Publication number
CN110837405A
CN110837405A CN201911066670.2A CN201911066670A CN110837405A CN 110837405 A CN110837405 A CN 110837405A CN 201911066670 A CN201911066670 A CN 201911066670A CN 110837405 A CN110837405 A CN 110837405A
Authority
CN
China
Prior art keywords
container
instance
desktop
switching
file
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.)
Granted
Application number
CN201911066670.2A
Other languages
English (en)
Other versions
CN110837405B (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.)
Xi'an Lei Feng Electronic Technology Co Ltd
Original Assignee
Xi'an Lei Feng Electronic Technology Co Ltd
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 Xi'an Lei Feng Electronic Technology Co Ltd filed Critical Xi'an Lei Feng Electronic Technology Co Ltd
Priority to CN201911066670.2A priority Critical patent/CN110837405B/zh
Publication of CN110837405A publication Critical patent/CN110837405A/zh
Application granted granted Critical
Publication of CN110837405B publication Critical patent/CN110837405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于容器技术的多实例图形桌面运行和切换方法,包括:制作基于容器的桌面,启动多个容器实现多实例桌面;将多个桌面的图形界面配置在宿主机不同vt上,实现多实例图形桌面,通过切换vt实现多实例图形桌面的相互切换和同时运行。本发明使用容器技术实现的桌面虚拟化能最大程度的节省宿主机性能,客户机的可配置性强,多实例图形桌面的切换也能等同传统IDV虚拟化的多实例切换。

Description

基于容器技术的多实例图形桌面运行和切换方法
技术领域
本发明涉及容器技术及虚拟化桌面技术领域,尤其是涉及一种基于容器技术的多实例图形桌面运行和切换方法。
背景技术
在虚拟化领域,容器技术通常用于在服务器上集中部署应用,在IDV(IntelligentDesktop Virtualization)领域,使用容器技术实现桌面虚拟化,势必涉及到图形界面和多实例。
linux***上,可以启动多个虚拟终端(vt),常见的就是tty1~6的控制台终端和tty7的图形终端。实际上linux***可以运行更多的虚拟终端,也可在不同的虚拟终端上启动多个X11(X Window视窗***)图形界面。
在IDV领域,通常使用虚拟机技术来实现桌面虚拟化。即,每当新增一个虚拟桌面时,由虚拟化管理程序生成一个新的虚拟机,并为其创建一个或多个虚拟磁盘文件,这些虚拟机由特定的虚拟化程序运行起来(例如qemu,vmware等)。在这些虚拟桌面内,通常需要安装一个客户机代理程序,用于执行虚拟化管理程序对其进行的具体管理动作。多实例桌面的相互切换,就是由客户机代理程序和虚拟化管理程序进行通讯,由虚拟化管理程序执行的界面(或窗口)切换动作。
传统的IDV桌面由于使用了虚拟磁盘文件,则虚拟桌面的磁盘空间势必事先确定,即使可以进行磁盘扩容,也需要多个步骤,在虚拟机内外分别操作;数据的安全依赖虚拟磁盘文件的管理,一旦虚拟磁盘文件损坏,数据很有可能无法找回;虚拟磁盘文件通常会随着虚拟机的使用而逐渐增大,虚拟机的迁移会导致大量数据传输,很考验网络等传输媒介。另外,传统的IDV桌面需要宿主机支持CPU虚拟化,对于设备有着硬性的要求,低端配置的主机不可以作为IDV终端使用。同时,传统的IDV桌面在启动时,即会申请预定义的内存,即使桌面运行并不需要多少内存,造成了内存资源的浪费,一个IDV终端只能运行1-2个桌面,还很容易和宿主机争夺内存。
发明内容
本发明的目的是提供一种基于容器技术的多实例图形桌面运行和切换方法,解决现有技术中,使用低配置的主机作为IDV终端时终端性能不足以支撑多实例桌面的技术问题。
为了达到上述目的,本发明提供如下技术方案:
基于容器技术的多实例图形桌面运行和切换方法,包括以下步骤:
S1、制作基于容器的桌面,启动多个容器实现多实例桌面;
S2、将多个桌面的图形界面配置在宿主机不同vt上,实现多实例图形桌面,通过切换vt实现多实例图形桌面的相互切换和同时运行。
进一步地,S1中,制作基于容器的桌面具体包括,首先打包一个文件***,作为镜像文件,再使用容器引擎,导入该镜像文件作为一个容器镜像,最后使用容器引擎,基于该容器镜像创建一个桌面。
进一步地,S1中,启动多个容器实现多实例桌面具体包括:
S101、虚拟化管理程序对于每个容器,配置特定的选项或参数,将图形界面配置到宿主机不同的vt上;
S102、使用容器引擎,运行多个容器实例,并将vt切换到任意一个容器实例所指定的vt上;
S103、每个桌面实例均使用各自的vt单独显示,多个实例同时运行。
进一步地,S2中,多实例图形桌面的相互切换具体包括:
S201、每个桌面实例中均运行一个客户机代理程序,该程序以一个本地套接字文件为通讯接口;
S202、虚拟化管理程序在调用容器引擎运行桌面实例前,创建一个本地套接字文件,并监听该文件,以向客户机提供服务;并且,将该套接字文件所在目录作为配置项配置在容器选项中,以使容器实例可以读写该文件;
S203、容器实例中,客户机代理程序界面在收到用户点击切换的命令后,通过预定义的通讯协议,向该本地套接字文件写入切换命令;
S204、虚拟化管理程序收到切换命令时,使用***命令切换当前vt到指定桌面实例所在的vt上。
上述虚拟化管理程序(桌面管理程序)需要具备以下功能:调用容器引擎工具进行启动容器实例;调用容器引擎对容器进行其他操作;管理宿主机的虚拟终端(VT)并配置每个实例应该使用哪个VT;管理与客户机代理程序通讯的本地套接字,创建监听;处理客户机代理程序发来的命令和请求;向客户机代理程序发送服务器管理命令;等等。
上述客户机代理程序需要具备以下功能:主动连接用于和虚拟化管理程序通讯的本地套接字;提供用户界面用于指示用户可切换的桌面实例;处理虚拟化管理程序发送的管理命令;等等。
本发明的基于容器技术的多实例图形桌面运行和切换方法,其有益效果在于:使用容器技术使桌面仅占用所需的内存,按需申请,节约了内存资源,实现的桌面虚拟化能最大程度的节省宿主机性能,客户机的可配置性强,多实例图形桌面的切换也能等同传统IDV虚拟化的多实例切换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明中的虚拟桌面和vt示意图。
具体实施方式
下面将结合本发明的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据图1所示,在一种优选的实施方式中,本发明的基于容器技术的多实例图形桌面运行和切换方法,包括以下步骤:
S1、制作基于容器的桌面,启动多个容器实现多实例桌面;
具体地,S1中,制作基于容器的桌面包括:
a、首先打包一个文件***,作为镜像文件。例如,可以使用***命令将当前操作***的文件***打包为一个后缀为.tar的文件包,以此作为镜像文件。
最基础的打包文件***的方法是,运行一个linux***,在***下执行以下命令进行文件打包:tar-cvpf/tmp/system.tar--directory=/--exclude=proc--exclude=sys--exclude=dev--exclude=run--exclude=boot.
此时打出的system.tar文件即为镜像文件,可用于导入为容器镜像。其他的打包方式还可以为:将操作***光盘中的live***文件(system.squashfs)解压后,经过修改和适配,在用***命令打成为tar文件包;用buildroot工具制作基本文件***,手动增加需要的相关文件后,使用***命令打成tar的文件包;手动创建文件***目录和相关文件,使用***命令打成tar的文件包等等。
b、再使用容器引擎,导入该镜像文件为一个容器镜像。
如以docker引擎为例,使用如下命令将镜像文件导入为docker容器镜像:
docker import/path/to/exampleimage.tar
c、最后使用容器引擎,基于该容器镜像创建一个容器,也即桌面。
如以docker引擎为例,使用如下命令创建一个桌面:
docker create image-name-name desktop-name
S1中,启动多个容器实现多实例桌面具体包括:
S101、虚拟化管理程序对于每个容器,配置特定的选项或参数,将图形界面配置到宿主机不同的vt上;
具体地,包括以上的步骤,和以下的各步骤,都应该由虚拟化管理程序封装起来。在创建桌面成功后,需要配置桌面的选项参数,令其将图形界面显示在宿主机指定vt上。
以docker引擎为例,应该为每个桌面创建docker-init目录,创建vt信息配置文件,文件名通常为60_xvt4docker.conf,文件中使用如下方法指定其使用的vt:
[LightDM]
minimum-vt=19
其本意是写入了一个lightdm(Light Display Manager,一种桌面显示管理器软件)的配置文件,为其指定了第一个vt所在的vt号。
S102、使用容器引擎,运行多个容器实例,并将vt切换到任意一个容器实例所指定的vt上;
虚拟化管理程序使用容器运行命令运行已配置的容器,如以docker为例,运行一个linux客户机,使用如下命令启动桌面:
docker run desktop-id/sbin/init-v/path/to/docker-init:/usr/lib/docker-init
/sbin/init即是通常linux***的启动进程,容器实例运行这个进程即在容器中运行了一个linux***,并将配置目录挂载进了容器实例内。容器实例内部lightdm启动时通过配置文件描述将自身的图形界面显示在指定的vt上。其他参数此处省略。这些都是封装在虚拟化管理程序内部的,包括上述创建容器,导入镜像等,并非一定是命令行形式,也可以是相应容器引擎的编程接口。
启动桌面后,虚拟化管理程序使用***命令如chvt 19切换显示到相应桌面的vt上。根据普通使用逻辑,用户会首先进入一个桌面,然后在这个桌面上工作,而后退回管理界面,进入另一个桌面。在这个过程中,退回管理界面和下述的多实例切换均使用的是多实例切换部分描述的能力。
S103、每个桌面实例均使用各自的vt单独显示,多个实例同时运行。
用户可多次退回管理界面,再启动新的桌面,直至***资源不允许再启动新的桌面,则此时,多实例桌面运行成功。
由于为每个桌面实例配置的vt各不相同,每个桌面的图形界面显示互不影响,与宿主机的管理界面同样互补干扰。
S2、将多个桌面的图形界面配置在宿主机不同vt上,实现多实例图形桌面,通过切换vt实现多实例图形桌面的相互切换和同时运行。
进一步地,S2中,多实例图形桌面的相互切换具体包括:
S201、每个桌面实例中均运行一个客户机代理程序,该程序以一个本地套接字文件为通讯接口;
每个桌面中均运行一个客户机代理程序,去连接固定目录下的本地套接字文件,这个套接字文件也是通过挂载方式挂载到客户机中。客户机代理程序通常可作为一个后台程序,仅留一个图标在客户机操作***界面通知区域,通过呼出的菜单和用户交互以提供服务。客户机代理程序至少需要由两个功能项,即退回管理界面和切换桌面,而切换桌面则需要可以列出当前可切换的桌面,这个信息当由宿主机的虚拟化管理程序在每有新的桌面实例启动时通知客户机代理程序。
S202、虚拟化管理程序在调用容器引擎运行桌面实例前,创建一个本地套接字文件,并监听该文件,以向客户机提供服务;并且,将该套接字文件所在目录作为配置项配置在容器选项中,以使容器实例可以读写该文件;
同vt信息的配置文件一样,虚拟化管理程序应为每一个桌面实例创建一个本地套接字文件,并分别监听。
S203、容器实例中,客户机代理程序界面在收到用户点击切换的命令后,通过预定义的通讯协议,向该本地套接字文件写入切换命令;
S204、虚拟化管理程序收到切换命令时,使用***命令切换当前vt到指定桌面实例所在的vt上。
上述本地套接字:即UNIX域套接字,通过套接字文件作为而进行进程间通讯的一种手段。
本发明中,宿主机cpu和内存资源足够时,可以运行多个容器。每个容器各自运行/sbin/init进程,将图形界面配置到宿主机不同的VT上,即可实现多实例图形桌面。
在linux上,使用chvt命令可以切换到各个VT上,通过客户机配套软件向宿主机发送chvt命令,即可实现多实例图形桌面的互相切换以及切换到宿主机管理界面的能里力。
本发明中,上述镜像:是指用于运行操作***的文件***。镜像文件是指将该文件***以文件方式保存;容器镜像是指将该文件***以容器引擎所定义的方式保存,通常为一个容器image。
容器引擎是指,制作,运行容器的软件工具。
容器是指:以镜像(或快照)为基础文件***运行的操作***,运行期间对文件***的更改保存在特定位置。容器可在非运行期提交为容器镜像或保存为容器快照,在将容器提交或保存为快照时将用户数据保存为一个容器image或容器tag。
容器实例是指:通过容器引擎启动的进程实例,也即桌面实例。
快照是指:将容器当前的状态固化保存为一个容器tag。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (4)

1.基于容器技术的多实例图形桌面运行和切换方法,其特征在于,包括以下步骤:
S1、制作基于容器的桌面,启动多个容器实现多实例桌面;
S2、将多个桌面的图形界面配置在宿主机不同vt上,实现多实例图形桌面,通过切换vt实现多实例图形桌面的相互切换和同时运行。
2.根据权利要求1所述的基于容器技术的多实例图形桌面运行和切换方法,其特征在于:S1中,制作基于容器的桌面具体包括,首先打包一个文件***,作为镜像文件,再使用容器引擎,导入该镜像文件作为一个容器镜像,最后使用容器引擎,基于该容器镜像创建一个桌面。
3.根据权利要求1所述的基于容器技术的多实例图形桌面运行和切换方法,其特征在于:S1中,启动多个容器实现多实例桌面具体包括:
S101、虚拟化管理程序对于每个容器,配置特定的选项或参数,将图形界面配置到宿主机不同的vt上;
S102、使用容器引擎,运行多个容器实例,并将vt切换到任意一个容器实例所指定的vt上;
S103、每个桌面实例均使用各自的vt单独显示,多个实例同时运行。
4.根据权利要求1所述的基于容器技术的多实例图形桌面运行和切换方法,其特征在于:S2中,多实例图形桌面的相互切换具体包括:
S201、每个桌面实例中均运行一个客户机代理程序,该程序以一个本地套接字文件为通讯接口;
S202、虚拟化管理程序在调用容器引擎运行桌面实例前,创建一个本地套接字文件,并监听该文件,以向客户机提供服务;并且,将该套接字文件所在目录作为配置项配置在容器选项中,以使容器实例可以读写该文件;
S203、容器实例中,客户机代理程序界面在收到用户点击切换的命令后,通过预定义的通讯协议,向该本地套接字文件写入切换命令;
S204、虚拟化管理程序收到切换命令时,使用***命令切换当前vt到指定桌面实例所在的vt上。
CN201911066670.2A 2019-11-04 2019-11-04 基于容器技术的多实例图形桌面运行和切换方法 Active CN110837405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911066670.2A CN110837405B (zh) 2019-11-04 2019-11-04 基于容器技术的多实例图形桌面运行和切换方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911066670.2A CN110837405B (zh) 2019-11-04 2019-11-04 基于容器技术的多实例图形桌面运行和切换方法

Publications (2)

Publication Number Publication Date
CN110837405A true CN110837405A (zh) 2020-02-25
CN110837405B CN110837405B (zh) 2024-05-24

Family

ID=69576063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911066670.2A Active CN110837405B (zh) 2019-11-04 2019-11-04 基于容器技术的多实例图形桌面运行和切换方法

Country Status (1)

Country Link
CN (1) CN110837405B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367609A (zh) * 2020-03-06 2020-07-03 北京云创世联科技股份有限公司 一种基于智能桌面虚拟化idv架构的桌面切换方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290858A1 (en) * 2012-04-25 2013-10-31 Vmware, Inc. User Interface Virtualization Profiles for Accessing Applications on Remote Devices
CN103677962A (zh) * 2013-12-20 2014-03-26 上海电机学院 基于虚拟化技术的桌面交付设备的实现***及方法
CN104331319A (zh) * 2014-11-14 2015-02-04 华为技术有限公司 虚拟桌面实例的管理方法及装置
CN104536802A (zh) * 2014-12-19 2015-04-22 中兴通讯股份有限公司 一种实现应用调用的方法及虚拟机
CN109388454A (zh) * 2018-09-14 2019-02-26 珠海国芯云科技有限公司 基于容器的虚拟桌面方法及***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290858A1 (en) * 2012-04-25 2013-10-31 Vmware, Inc. User Interface Virtualization Profiles for Accessing Applications on Remote Devices
CN103677962A (zh) * 2013-12-20 2014-03-26 上海电机学院 基于虚拟化技术的桌面交付设备的实现***及方法
CN104331319A (zh) * 2014-11-14 2015-02-04 华为技术有限公司 虚拟桌面实例的管理方法及装置
CN104536802A (zh) * 2014-12-19 2015-04-22 中兴通讯股份有限公司 一种实现应用调用的方法及虚拟机
CN109388454A (zh) * 2018-09-14 2019-02-26 珠海国芯云科技有限公司 基于容器的虚拟桌面方法及***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BAEK, HJ: "A Data-driven Resource Allocation Method for Personalized Container based Desktop as a Service", 2017 IEEE 15TH INTL CONF ON DEPENDABLE, AUTONOMIC AND SECURE COMPUTING, 1 January 2017 (2017-01-01) *
彭琦伟;杨楚华;: "桌面虚拟化***架构研究", 电脑编程技巧与维护, no. 03, 3 February 2015 (2015-02-03) *
沈意吉;解秀明;罗旻泓;: "虚拟桌面***应用与设计", 电子世界, no. 22, 23 November 2016 (2016-11-23) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367609A (zh) * 2020-03-06 2020-07-03 北京云创世联科技股份有限公司 一种基于智能桌面虚拟化idv架构的桌面切换方法

Also Published As

Publication number Publication date
CN110837405B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
US11687422B2 (en) Server clustering in a computing-on-demand system
US10642638B2 (en) Virtual machine placement with automatic deployment error recovery
CN111338854B (zh) 基于Kubernetes集群快速恢复数据的方法及***
CN108255497B (zh) 一种应用的部署方法及装置
US7992032B2 (en) Cluster system and failover method for cluster system
US11403146B2 (en) Method, apparatus, and server for managing image across cloud servers
US11210132B2 (en) Virtual machine migration in virtualization environment having different virtualization systems
WO2011083673A1 (ja) 構成情報管理システム、構成情報管理方法、及び構成情報管理用プログラム
JP2021524104A (ja) マスター・スタンドバイコンテナシステム切替
CN110489305B (zh) 一种服务器管理方法及装置
JP2007323354A (ja) マシン管理システム
CN110837405A (zh) 基于容器技术的多实例图形桌面运行和切换方法
WO2024103840A1 (zh) 镜像文件制作方法、装置、设备及非易失性可读存储介质
CN111158872B (zh) 一种提交并守护spark任务的方法及装置
JP2001290665A (ja) プロセッサシステム
CN110471744B (zh) 密码修改方法、装置、设备和计算机可读存储介质
US11868769B1 (en) Automatically determining and modifying environments for running microservices in a performant and cost-effective manner
CN105743696A (zh) 一种云计算平台管理方法
CN111767082A (zh) 计算芯片启动方法、装置和计算机***
CN114647488A (zh) 一种任务训练方法、装置、设备及存储介质
CN116339926B (zh) 一种ats软件的容器化部署方法
EP4195021A1 (en) Online migration method and system for bare metal server
US20230325222A1 (en) Lifecycle and recovery for virtualized dpu management operating systems
CN116010017A (zh) 一种交互方法、计算机设备和计算机存储介质
CN117692359A (zh) 一种端口监听方法、装置、设备及介质

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