[go: up one dir, main page]

CN113821286A - 云桌面环境中虚拟机文件分发方法、装置及存储介质 - Google Patents

云桌面环境中虚拟机文件分发方法、装置及存储介质 Download PDF

Info

Publication number
CN113821286A
CN113821286A CN202111016020.4A CN202111016020A CN113821286A CN 113821286 A CN113821286 A CN 113821286A CN 202111016020 A CN202111016020 A CN 202111016020A CN 113821286 A CN113821286 A CN 113821286A
Authority
CN
China
Prior art keywords
task
file distribution
tokens
concurrent
totaltoken
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
CN202111016020.4A
Other languages
English (en)
Other versions
CN113821286B (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.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data Technologies 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN202111016020.4A priority Critical patent/CN113821286B/zh
Publication of CN113821286A publication Critical patent/CN113821286A/zh
Application granted granted Critical
Publication of CN113821286B publication Critical patent/CN113821286B/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems

Landscapes

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

Abstract

本发明提供一种云桌面环境中虚拟机文件分发方法、装置及存储介质,用于解决虚拟桌面基础架构中批量文件分发的并发数不能自适应动态调整的技术问题。本发明中,云桌面环境中的控制服务组件通过令牌阻塞队列、已使用的令牌数和可用令牌总数三个变量参数来实现文件分发任务的并发执行的控制,并能够实时接收并发数修改任务,按照预设的规则算法,通过动态修改上述三个变量参数实现虚拟桌面基础架构中文件分发并发数的动态修改。

Description

云桌面环境中虚拟机文件分发方法、装置及存储介质
技术领域
本发明涉及云计算技术领域,尤其涉及一种云桌面环境中虚拟机文件分发方法、装置及存储介质。
背景技术
虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI,亦称为云桌面基础架构),能够将用户的桌面环境以虚拟机的形式托管至高性能服务器上,给用户提供与物理PC几乎相同的用户体验。普通用户可以通过PC、瘦客户机等多种终端设备使用自己的云桌面,完成日常办公等任务,管理员可以实现对所有云桌面资源进行可视化的管理和批量部署云桌面满足大量用户的需求。虚拟桌面基础架构主要包括终端设备客户端、桌面连接协议、云桌面管理平台、虚拟化管理平台、基础架构组件和桌面资源池等,桌面资源池是由多个能够提供虚拟桌面的虚拟机(Virtual Machine,VM)构成。
随着信息技术及计算机的发展,大力推动了云计算技术的迭代更新,云计算的使用场景也变得越来越多元化,不同应用场景下的需求也不断地丰富。
基于当前远程教育和远程办公的需求,融合远程办公和远程教育的解决方案能够实现统一分配计算机资源,可视化计算机管理,丰富办公、教学场景的目的。
在办公和教育融合解决方案中,通过云桌面管理平台向虚拟机进行批量文件分发的操作是一项基本需求场景,即在云桌面管理平台上传文件后,选择需要下发的虚拟机执行分发操作,将文件分发到各个客户端的虚拟机中。
由于文件分发涉及到网络带宽的占用,当目标文件比较小,且分发的虚拟机较少时,对网络中其他任务影响不大。但是当文件比较大,且分发的虚拟机较多时,便会对网络中其他任务造成较大影响,特别是对如客户端操作虚拟机这类实时操作影响较大。所以在文件分发中一般会对分发任务并发数量进行控制,以减少对现网中其他任务造成较大的影响。
目前云桌面系统中,对文件分发并发限制常用的方案有两种,一种是固定并发访问数量,文件分发并发按照固定数量执行;第二种是在每次进行文件分发业务前,设置并发访问数量限制。
第一种方案,由于固定了文件分发的并发访问数量,所以无论当前网络带宽占用是高还是低,其总以一定并发数量执行任务,不能根据当前的网络带宽情况对并发数量进行调整。
第二种方案,尽管在执行分发任务时,设定了并发访问数,一定程度上解决了方案一中固定并发数量的问题,但是在任务执行中,无法修改已在任务中的并发访问数,只能根据任务执行前的网络占用情况进行参考。而云计算的使用场景对网络情况的使用可能随时存在变化,比如当前网络中业务量偏大,网络带宽一段时间内占用较大,所以在设置进行分发任务前设置的并发量较小。但是当该峰值时间过后,后续一段时间网络可能会空闲下来,此时在执行中的任务便无法进行并发数量的调整以充分利用空闲的网络带宽。
发明内容
有鉴于此,本发明提供一种云桌面环境中虚拟机文件分发方法、装置及存储介质,用于解决虚拟桌面基础架构中批量文件分发的并发数不能自适应动态调整的技术问题。
基于本发明实施例的一方面,本发明提供了一种云桌面环境中虚拟机文件分发方法,包括:
在执行针对单个虚拟机的文件分发任务时,向令牌阻塞队列tokenQueue申请令牌;所述tokenQueue的初始化令牌数量等于可用令牌总数totalToken;
当向tokenQueue申请令牌成功时,将已使用的令牌数consumeToken加1并执行所述文件分发任务;当向tokenQueue申请令牌失败时,阻塞所述文件分发任务的执行;
当所述文件分发任务完成时,将该任务申请的令牌归还给tokenQueue并将consumeToken减1;
当接收到并发数修改任务时,执行并发数修改任务,所述并发数修改任务通过动态修改所述totalToken、tokenQueue和consumeToken实现文件分发并发数的动态修改。
进一步地,当所述并发数修改任务为增加文件分发并发数时,所述执行并发数修改任务的方法为:
从并发数修改任务属性中获取增加的文件分发并发数增量n,向tokenQueue队列增加n个令牌;
修改可用令牌总数totalToken为totalToken+n。
进一步地,当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken小于要减少的文件分发并发数量n时,所述执行并发数修改任务的方法为:
修改可用令牌总数totalToken为totalToken–n;
将当前已使用的令牌数consumeToken置为0,以阻止当前正在执行的文件分发任务向tokenQueue队列归还令牌;
从令牌阻塞队列tokenQueue消减掉n与当前正在执行的文件分发任务数的差值个令牌即消减掉n减去重置前的consumeToken个令牌。
进一步地,当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken大于等于要减少的文件分发并发数量n时,所述执行并发数修改任务的方法为:
修改可用令牌总数totalToken为totalToken–n;
判断当前已使用的令牌数consumeToken+n是否大于等于修改后的可用令牌总数totalToken;
当consumeToken+n大于等于totalToken时,将当前已使用的令牌数consumeToken置为totalToken–n,并清空tokenQueue中剩余令牌;
当consumeToken+n小于totalToken时,从tokenQueue消减掉n个令牌。
进一步地,所述文件分发任务和并发数修改任务由云桌面管理平台服务组件Workspace Service发送给云桌面环境中的控制服务组件Controller Service,由Controller Service执行。
基于本发明实施例的另一方面,本发明还提供一种云桌面环境中虚拟机文件分发装置,该装置包括:
云桌面管理平台服务组件Workspace Service,用于向云桌面管理平台控制服务组件Controller Service下发一个或多个针对单个虚拟机的文件分发任务以及下发并发数修改任务;
云桌面管理平台控制服务组件Controller Service,用于执行所述文件分发任务和并发数修改任务,该组件包括:
令牌队列处理模块,用于在执行针对单个虚拟机的文件分发任务时,向令牌阻塞队列tokenQueue申请令牌;当所述文件分发任务完成时,将该任务申请的令牌归还给tokenQueue并将consumeToken减1;所述tokenQueue的初始化令牌数量等于可用令牌总数totalToken;
文件分发任务执行模块,用于当向tokenQueue申请令牌成功时,将已使用的令牌数consumeToken加1并执行所述文件分发任务;当向tokenQueue申请令牌失败时,阻塞所述文件分发任务的执行;
并发数修改修改模块,用于当接收到并发数修改任务时,执行并发数修改任务,所述并发数修改任务通过动态修改所述totalToken、tokenQueue和consumeToken实现文件分发并发数的动态修改。
进一步地,所述并发数修改修改模块包括:
并发数增加子模块,用于当所述并发数修改任务为增加文件分发并发数时,从并发数修改任务属性中获取增加的文件分发并发数增量n,向tokenQueue队列增加n个令牌;以及修改可用令牌总数totalToken为totalToken+n。
进一步地,所述并发数修改修改模块还包括:
并发数第一消减子模块,用于当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken小于要减少的文件分发并发数量n时,修改可用令牌总数totalToken为totalToken–n;将当前已使用的令牌数consumeToken置为0,以阻止当前正在执行的文件分发任务向tokenQueue队列归还令牌;以及从令牌阻塞队列tokenQueue消减掉n与当前正在执行的文件分发任务数的差值个令牌。
进一步地,所述并发数修改修改模块还包括:
并发数第二消减子模块,用于当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken大于等于要减少的文件分发并发数量n时,修改可用令牌总数totalToken为totalToken–n;判断当前已使用的令牌数consumeToken+n是否大于等于修改后的可用令牌总数totalToken;
当consumeToken+n大于等于totalToken时,将当前已使用的令牌数consumeToken置为totalToken–n,并清空tokenQueue中剩余令牌;
当consumeToken+n小于totalToken时,从tokenQueue消减掉n个令牌。
本发明中,云桌面环境中的控制服务组件通过令牌阻塞队列、已使用的令牌数和可用令牌总数三个变量参数来实现文件分发任务的并发执行的控制,并能够实时接收并发数修改任务,按照预设的规则算法,通过动态修改上述三个变量参数实现虚拟桌面基础架构中文件分发并发数的动态修改。
附图说明
为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。
图1为本发明一实施例提供的云桌面环境虚拟机文件分发方法的实现过程及组件结构示意图;
图2为本发明一实施例提供的虚拟机文件分发方法中动态增加文件分发任务并发数量的步骤流程示意图;
图3为本发明一实施例提供的虚拟机文件分发方法中动态减少文件分发任务并发数量(场景一)的步骤流程示意图;
图4为本发明一实施例提供的虚拟机文件分发方法中动态减少文件分发任务并发数量(场景二)的步骤流程示意图;
图5为本发明一实施例提供的一种云桌面环境中虚拟机文件分发装置结构示意图;
图6为本发明一实施例提供的一种电子设备结构示意图。
具体实施方式
在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本发明中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本发明的发明目的是提供一种虚拟机文件分发方法,用于针对不同的网络占用情况实时动态的对文件分发业务并发量进行调整。
为清楚完整描述本发明的技术方案,以下以云桌面管理平台WorkSpace架构为例结合附图详细描述。
在云桌面基础架构中,客户端为连接Workspace云桌面虚拟机的客户端软件。安全网关为客户端接入Workspace云桌面虚拟机提供网络安全保护。用户可通过WEB登录管理平台进行管理和配置。
控制服务组件Controller Service用于为客户端提供服务,例如用户登录、虚拟机申请等;与虚拟机内进行业务交互,比如命令下发、文件下发、虚拟机开关机等;与Workspace Server之间进行业务交互,例如返回给Worksapce Server客户端登录信息等;与底层虚拟机通过接口进行交互,例如查询虚拟机状态等。
云桌面管理平台服务组件Workspace Service用于为Web端提供服务,例如Web端登录和界面数据的展示功能控制等;与Controller Server之间进行业务交互,例如向Controller Service查询客户端登录信息等;与底层虚拟机通过接口进行交互,例如执行创建虚拟机、删除虚拟机等。
图1为本发明一实施例提供的云桌面环境虚拟机文件分发方法的实现过程及组件结构示意图。该实施例基于云桌面基础架构实现,云桌面管理平台服务组件WorkspaceService和控制服务组件Conroller Service之间可采用的远程过程调用(RemoteProcedure Call,RPC)协议为GRPC协议,数据传输可使用结构数据序列化方法(例如protobuf)进行传输。
在该实施例中,在文件分发任务的执行基于令牌来实现,涉及到以下几个与令牌相关的变量:
可用令牌总数totalToken:该变量用于保存用户设置的文件分发任务的总并发数;
已使用的令牌数consumeToken:该变量用于保存当前正在并发执行的文件分发任务所消耗的令牌数,即当前正在执行的文件分发任务所使用的令牌数量;
令牌阻塞队列tokenQueue:用于维护还未使用的令牌。在该令牌阻塞队列初始化时拥有totalToken个令牌,每当开始执行一个文件分发任务时,为该文件分发任务从tokenQueue队列中取出一个令牌分配给该文件分发任务,当该文件分发任务结束时,将分配给该文件分发任务的令牌归还给totalToken队列。如果tokenQueue队列中的令牌已经分配完,文件分发任务取用不到令牌时,则将该文件分发任务置为等待状态,直到在tokenQueue队列中有可用令牌为止。
以下结合图1描述文件分发任务的分发及执行过程:
步骤101.在云桌面管理平台管理界面选择待下发文件的虚拟机,定制文件分发任务,将文件分发任务下发给云桌面管理平台服务组件Workspace Service;
云桌面管理平台可通过WEB服务提供基于浏览器的管理页面(相当于管理终端),管理员通过管理页面进行文件分发任务的定制,可在管理界面选择待下发文件的虚拟机,定制针对所选虚拟机的文件分发任务。
步骤102.Workspace Service收到文件分发任务下发请求后,通过GRPC消息将任务下发给Controller Service。文件分发任务下发请求携带文件分发任务信息,包括任务标识、待下发文件标识、目标虚拟机地址等。
步骤103.Controller Service收到文件分发任务下发请求后,开始执行文件分发任务,同时通过GRPC消息回复Workspace Service任务分发成功。
步骤104.Workspace Service收到任务分发成功消息后,应答给云桌面管理平台管理界面,在管理界面显示已开始执行分发任务。
该实施例中,Controller Service执行文件分发任务的方法为:
步骤1031.在Controller Service执行某个虚拟机的文件分发任务时,先从tokenQueue队列中尝试获取一个令牌,如果获取不到,则阻塞该文件分发任务的执行,将该文件分发任务置为阻塞等待状态,直到获取到令牌后,在获取到令牌后,开始执行该文件分发任务,同时将consumeToken数量加1。
步骤1032.在某个虚拟机的文件分发任务执行结束后,判断consumeToken是否大于0,当大于0时,将令牌归还给tokenQueue队列,同时consumeToken数量减1。
例如,假设totalToken设置为1,则tokenQueue在初始化时只包含1个令牌。若Workspace Service下发了2个虚拟机的文件分发任务给Controller Service,ControllerService依次执行2个文件分发任务,第一个文件分发任务启动后,首先从tokenQueue中获取1个令牌,获取到令牌后第一文件分发任务开始执行。在第一文件分发任务执行后,第二文件分发任务启动起来,第二文件分发任务从tokenQueue获取令牌时,发现tokenQueue中已经无令牌可用,则第二文件分发任务被Controller Service置为阻塞等待状态。当第一个文件分发任务执行完毕,将令牌归还给tokenQueue后,第二个文件分发任务才能够获取到令牌,并开始执行。
图2为本发明一实施例提供的虚拟机文件分发方法中动态增加文件分发任务并发数量的步骤流程示意图,包括:
步骤201.云桌面管理平台修改并发访问数,修改数量增加n,云管理平台通过管理界面下发修改并发访问数的并发数修改请求给Workspace Service。
步骤202.Workspace Service收到并发数修改请求后,通过GRPC消息将并发数修改任务下发给Controller Service。
步骤203.Controller Service收到并发数修改任务后,开始执行并发数修改任务,在任务执行成功后通过GRPC消息回复Workspace Service并发数修改任务执行成功的消息。
由Controller Service执行并发数修改任务的步骤过程为:
步骤2031.从并发数修改任务属性中获取到修改指令为文件分发并发数增加n个(文件分发并发数增量为n)时,向tokenQueue队列增加n个令牌。其中n为大于0的整数。
步骤2032.修改总令牌数totalToken为totalToken+n。
步骤2033.如果当前下发的正在执行的文件分发任务中存在因为tokenQueue中无可用令牌正在等待(阻塞)的任务,则因为增加了n个令牌后,等待中的文件分发任务即可从tokenQueue中获取令牌,启动n个虚拟机的文件分发任务,达到动态增加并发数为totalToken+n的目的。
步骤204.Workspace Service收到并发数修改任务执行成功的反馈消息后,通知云桌面管理平台的管理界面,已成功执行并发数修改任务。
图3为本发明一实施例提供的虚拟机文件分发方法中动态减少文件分发任务并发数量(场景一)的步骤流程示意图。在场景一中,已使用的令牌数consumeToken小于要减少的文件分发并发数量n,即修改后totalToken-(修改前totalToken–修改前consumeToken)<0,说明修改后的当前未消耗的令牌比修改后的totalToken还多,在此场景下修改流程为:
步骤301.通过云桌面管理平台的管理界面修改文件分发并发数,将可用令牌总数totalToken减少n,下发修改并发访问数的并发数修改请求给Workspace Service。
步骤302.Workspace Service收到并发数修改请求后,通过GRPC消息将并发数修改任务下发给Controller Service。
步骤303.Controller Service收到任务后,开始执行并发数修改任务,任务执行成功后通过GRPC消息回复Workspace Service修改任务执行成功的消息。
由Controller Service执行并发数修改任务的步骤过程为:
步骤3031.从并发数修改任务属性中获取到修改指令为文件分发并发数减少n个时,修改当前可用令牌总数totalToken为totalToken-n。
步骤3032.在符合前述场景一的条件即consumeToken<n的条件下,重置consumeToken=0,目的是阻止当前正在执行的文件分发任务向tokenQueue队列归还令牌。
步骤3033.从tokenQueue队列消减掉n与当前正在执行的文件分发任务数的差值(即n–充值前的consumeToken值)个令牌。
经过上述操作后,令牌阻塞队列tokenQueue中就只剩余totalToken–n个令牌。同时由于将consumeToken被置为0,已经被文件分发任务使用的令牌在任务完成后也不会归还令牌到tokenQueue,后续文件分发任务的并发数量便修改为了totalToken–n,达到的动态缩减并发量为totalToken-n的目的。
步骤304.Workspace Service收到修改任务执行成功的消息后,应答给云桌面管理平台,已成功执行修改任务。
图4为本发明一实施例提供的虚拟机文件分发方法中动态减少文件分发任务并发数量(场景二)的步骤流程示意图。在该场景中,当前已使用的令牌数consumeToken数大于等于要减少的文件分发并发数量n,即修改后totalToken-(修改前totalToken–修改前consumeToken)>=0,说明修改后的当前未消耗的令牌比修改后的totalToken少,在此场景下修改流程为:
步骤401.通过云桌面管理平台的管理界面修改文件分发并发数,将可用令牌总数totalToken减少n,下发修改并发访问数的并发数修改请求给Workspace Service。
步骤402.Workspace Service收到并发数修改请求后,通过GRPC消息将任务下发给Controller Service。
步骤403.Controller Service收到任务后,执行并发数修改任务,任务执行成功后通过GRPC消息回复Workspace Service修改任务执行成功的消息。
由Controller Service执行并发数修改任务的步骤过程为:
步骤4031.从并发数修改任务属性中获取到修改指令为文件分发并发数减少n个时,修改当前可用令牌总数totalToken为totalToken-n。
步骤4031.在符合前述场景二的条件即consumeToken大于等于n的条件下,判断consumeToken+n>=totalToken是否成立?若成立则重置consumeToken=totalToken–n(即图中的步骤b)。然后,清空tokenQueue中剩余令牌(即图中的步骤c)。经过该操作,当前正在执行的文件分发任务可归还到tokenQueue中的令牌数为totalToken–n,后续能继续并发执行的文件分发任务数量便修改为了totalToken–n,达到的动态缩减并发量为totalToken-n的目的。
步骤4032.如果consumeToken+n<totalToken,即consumeToken小于修改后的totalToken。则从tokenQueue消减掉n个令牌,即将从还未使用的令牌中删除掉n个令牌。经过该操作,当前已经执行的文件分发任务可归还到tokenQueue中的令牌数为consumeToken,tokenQueue中还剩余的令牌数为totalToken–consumeToken–n,那么后续能继续并发执行的文件分发任务数量便修改为了consumeToken+(totalToken–consumeToken–n)=totalToken-n,达到的动态缩减并发量为totalToken-n的目的
步骤404.Workspace Service收到修改任务执行成功的消息后,应答给云桌面管理平台,已成功执行修改任务。
通过上述文件分发并发数修改过程,本发明能够实现根据网络占用情况,动态地修改文件分发并发数,使得云桌面产品虚拟机文件分发并发数的控制更加智能化提供了一种新的实现方式。
图5为本发明一实施例提供的一种云桌面环境中虚拟机文件分发装置结构示意图,该装置500中的各功能模块可以采用软件、硬件或软硬件相结合的方式实现。该装置500包括:
云桌面管理平台服务组件Workspace Service 510,用于向云桌面管理平台控制服务组件Controller Service 520下发一个或多个针对单个虚拟机的文件分发任务以及下发并发数修改任务;
云桌面管理平台控制服务组件Controller Service 520,用于执行所述文件分发任务和并发数修改任务,该组件520进一步包括:
令牌队列处理模块521,用于在执行针对单个虚拟机的文件分发任务时,向令牌阻塞队列tokenQueue申请令牌;当所述文件分发任务完成时,将该任务申请的令牌归还给tokenQueue并将consumeToken减1;所述tokenQueue的初始化令牌数量等于可用令牌总数totalToken;
文件分发任务执行模块522,用于当向tokenQueue申请令牌成功时,将已使用的令牌数consumeToken加1并执行所述文件分发任务;当向tokenQueue申请令牌失败时,阻塞所述文件分发任务的执行;
并发数修改修改模块523,用于当接收到并发数修改任务时,执行并发数修改任务,所述并发数修改任务通过动态修改所述totalToken、tokenQueue和consumeToken实现文件分发并发数的动态修改。
进一步地,并发数修改修改模块523包括:
并发数增加子模块,用于当所述并发数修改任务为增加文件分发并发数时,从并发数修改任务属性中获取增加的文件分发并发数增量n,向tokenQueue队列增加n个令牌;以及修改可用令牌总数totalToken为totalToken+n。
进一步地,并发数修改修改模块523还包括:
并发数第一消减子模块,用于当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken小于要减少的文件分发并发数量n时,修改可用令牌总数totalToken为totalToken–n;将当前已使用的令牌数consumeToken置为0,以阻止当前正在执行的文件分发任务向tokenQueue队列归还令牌;以及从令牌阻塞队列tokenQueue消减掉n与当前正在执行的文件分发任务数的差值个令牌。
进一步地,并发数修改修改模块还包括:
并发数第二消减子模块,用于当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken大于等于要减少的文件分发并发数量n时,修改可用令牌总数totalToken为totalToken–n;判断当前已使用的令牌数consumeToken+n是否大于等于修改后的可用令牌总数totalToken;
当consumeToken+n大于等于totalToken时,将当前已使用的令牌数consumeToken置为totalToken–n,并清空tokenQueue中剩余令牌;
当consumeToken+n小于totalToken时,从tokenQueue消减掉n个令牌。
图6为本发明一实施例提供的一种电子设备结构示意图,该设备600包括:诸如中央处理单元(CPU)的处理器610、通信总线620、通信接口640以及存储介质630。其中,处理器610与存储介质630可以通过通信总线620相互通信。存储介质630内存储有计算机程序,例如前述Workspace Service组件和/或Controller Service组件的计算机程序实例存储于存储介质630中,当该计算机程序被处理器610执行时即可实现本发明提供的方法的各步骤的功能。
其中,存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。另外,存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本发明描述的过程的操作,除非本发明另外指示或以其他方式明显地与上下文矛盾。本发明描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种云桌面环境中虚拟机文件分发方法,其特征在于,所述方法包括:
在执行针对单个虚拟机的文件分发任务时,向令牌阻塞队列tokenQueue申请令牌;所述tokenQueue的初始化令牌数量等于可用令牌总数totalToken;
当向tokenQueue申请令牌成功时,将已使用的令牌数consumeToken加1并执行所述文件分发任务;当向tokenQueue申请令牌失败时,阻塞所述文件分发任务的执行;
当所述文件分发任务完成时,将该任务申请的令牌归还给tokenQueue并将consumeToken减1;
当接收到并发数修改任务时,执行并发数修改任务,所述并发数修改任务通过动态修改所述totalToken、tokenQueue和consumeToken实现文件分发并发数的动态修改。
2.根据权利要求1所述的方法,其特征在于,当所述并发数修改任务为增加文件分发并发数时,所述执行并发数修改任务的方法为:
从并发数修改任务属性中获取增加的文件分发并发数增量n,向tokenQueue队列增加n个令牌;
修改可用令牌总数totalToken为totalToken+n。
3.根据权利要求2所述的方法,其特征在于,当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken小于要减少的文件分发并发数量n时,所述执行并发数修改任务的方法为:
修改可用令牌总数totalToken为totalToken–n;
将当前已使用的令牌数consumeToken置为0,以阻止当前正在执行的文件分发任务向tokenQueue队列归还令牌;
从令牌阻塞队列tokenQueue消减掉n与当前正在执行的文件分发任务数的差值个令牌即消减掉n减去重置前的consumeToken个令牌。
4.根据权利要求3所述的方法,其特征在于,当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken大于等于要减少的文件分发并发数量n时,所述执行并发数修改任务的方法为:
修改可用令牌总数totalToken为totalToken–n;
判断当前已使用的令牌数consumeToken+n是否大于等于修改后的可用令牌总数totalToken;
当consumeToken+n大于等于totalToken时,将当前已使用的令牌数consumeToken置为totalToken–n,并清空tokenQueue中剩余令牌;
当consumeToken+n小于totalToken时,从tokenQueue消减掉n个令牌。
5.根据权利要求1所述的方法,其特征在于,
所述文件分发任务和并发数修改任务由云桌面管理平台服务组件Workspace Service发送给云桌面环境中的控制服务组件Controller Service,由Controller Service执行。
6.一种云桌面环境中虚拟机文件分发装置,其特征在于,该装置包括:
云桌面管理平台服务组件Workspace Service,用于向云桌面管理平台控制服务组件Controller Service下发一个或多个针对单个虚拟机的文件分发任务以及下发并发数修改任务;
云桌面管理平台控制服务组件Controller Service,用于执行所述文件分发任务和并发数修改任务,该组件包括:
令牌队列处理模块,用于在执行针对单个虚拟机的文件分发任务时,向令牌阻塞队列tokenQueue申请令牌;当所述文件分发任务完成时,将该任务申请的令牌归还给tokenQueue并将consumeToken减1;所述tokenQueue的初始化令牌数量等于可用令牌总数totalToken;
文件分发任务执行模块,用于当向tokenQueue申请令牌成功时,将已使用的令牌数consumeToken加1并执行所述文件分发任务;当向tokenQueue申请令牌失败时,阻塞所述文件分发任务的执行;
并发数修改修改模块,用于当接收到并发数修改任务时,执行并发数修改任务,所述并发数修改任务通过动态修改所述totalToken、tokenQueue和consumeToken实现文件分发并发数的动态修改。
7.根据权利要求6所述的装置,其特征在于,所述并发数修改修改模块包括:
并发数增加子模块,用于当所述并发数修改任务为增加文件分发并发数时,从并发数修改任务属性中获取增加的文件分发并发数增量n,向tokenQueue队列增加n个令牌;以及修改可用令牌总数totalToken为totalToken+n。
8.根据权利要求7所述的装置,其特征在于,所述并发数修改修改模块还包括:
并发数第一消减子模块,用于当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken小于要减少的文件分发并发数量n时,修改可用令牌总数totalToken为totalToken–n;将当前已使用的令牌数consumeToken置为0,以阻止当前正在执行的文件分发任务向tokenQueue队列归还令牌;以及从令牌阻塞队列tokenQueue消减掉n与当前正在执行的文件分发任务数的差值个令牌。
9.根据权利要求8所述的装置,其特征在于,所述并发数修改修改模块还包括:
并发数第二消减子模块,用于当所述并发数修改任务为减少文件分发并发数且当前已使用的令牌数consumeToken大于等于要减少的文件分发并发数量n时,修改可用令牌总数totalToken为totalToken–n;判断当前已使用的令牌数consumeToken+n是否大于等于修改后的可用令牌总数totalToken;
当consumeToken+n大于等于totalToken时,将当前已使用的令牌数consumeToken置为totalToken–n,并清空tokenQueue中剩余令牌;
当consumeToken+n小于totalToken时,从tokenQueue消减掉n个令牌。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序当被处理器执行时实施如权利要求1至5中任一项所述的方法步骤。
CN202111016020.4A 2021-08-31 2021-08-31 云桌面环境中虚拟机文件分发方法、装置及存储介质 Active CN113821286B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111016020.4A CN113821286B (zh) 2021-08-31 2021-08-31 云桌面环境中虚拟机文件分发方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111016020.4A CN113821286B (zh) 2021-08-31 2021-08-31 云桌面环境中虚拟机文件分发方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN113821286A true CN113821286A (zh) 2021-12-21
CN113821286B CN113821286B (zh) 2025-02-11

Family

ID=78923599

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111016020.4A Active CN113821286B (zh) 2021-08-31 2021-08-31 云桌面环境中虚拟机文件分发方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN113821286B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741603A (zh) * 2008-11-11 2010-06-16 中兴通讯股份有限公司 一种基于令牌桶的流量监管方法及设备
CN108011840A (zh) * 2017-12-07 2018-05-08 中国银行股份有限公司 交易请求的控制方法、服务器和系统
US20180191706A1 (en) * 2016-12-29 2018-07-05 Yahoo Holdings, Inc. Controlling access to a shared resource
WO2020015356A1 (en) * 2018-07-18 2020-01-23 Huawei Technologies Co., Ltd. Method and system for cluster rate limiting in a cloud computing system
CN110730136A (zh) * 2019-10-10 2020-01-24 腾讯科技(深圳)有限公司 一种实现流量控制的方法、装置、服务器及存储介质
CN111314238A (zh) * 2020-02-03 2020-06-19 网银在线(北京)科技有限公司 令牌的管理方法和装置、存储介质、电子装置
CN111694669A (zh) * 2020-06-12 2020-09-22 深圳前海微众银行股份有限公司 一种任务处理方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741603A (zh) * 2008-11-11 2010-06-16 中兴通讯股份有限公司 一种基于令牌桶的流量监管方法及设备
US20180191706A1 (en) * 2016-12-29 2018-07-05 Yahoo Holdings, Inc. Controlling access to a shared resource
CN108011840A (zh) * 2017-12-07 2018-05-08 中国银行股份有限公司 交易请求的控制方法、服务器和系统
WO2020015356A1 (en) * 2018-07-18 2020-01-23 Huawei Technologies Co., Ltd. Method and system for cluster rate limiting in a cloud computing system
CN110730136A (zh) * 2019-10-10 2020-01-24 腾讯科技(深圳)有限公司 一种实现流量控制的方法、装置、服务器及存储介质
CN111314238A (zh) * 2020-02-03 2020-06-19 网银在线(北京)科技有限公司 令牌的管理方法和装置、存储介质、电子装置
CN111694669A (zh) * 2020-06-12 2020-09-22 深圳前海微众银行股份有限公司 一种任务处理方法及装置

Also Published As

Publication number Publication date
CN113821286B (zh) 2025-02-11

Similar Documents

Publication Publication Date Title
EP3073374B1 (en) Thread creation method, service request processing method and related device
US20160335352A1 (en) Query dispatch and execution architecture
US20070255798A1 (en) Brokered virtualized application execution
CN102402462A (zh) 用于对启用gpu的虚拟机进行负载平衡的技术
CN102946409A (zh) 从多个服务器向客户机递送单个终端用户体验
US20110173319A1 (en) Apparatus and method for operating server using virtualization technique
CN113946614B (zh) 一种iOS基于静态库的网络数据传输方法、装置及系统
CN112596757A (zh) 一种云桌面虚拟机代理组件升级方法、装置及存储介质
CN114281444B (zh) 一种实施云桌面客户端的布置方法
CN106886455A (zh) 一种实现用户隔离的方法及系统
CN111083166A (zh) 云数据库设置白名单的方法、装置及计算机存储介质
CN112274916B (zh) 一种键鼠输入方法、装置、设备及介质
CN119047584B (zh) 推理板卡、基于推理板卡的推理方法、设备、介质和产品
CN111699473B (zh) 用于暂停和恢复虚拟助理的系统、方法以及装置
CN113821286B (zh) 云桌面环境中虚拟机文件分发方法、装置及存储介质
CA2802396A1 (en) Systems and methods for managing emulation sessions
CN111258715B (zh) 多操作系统渲染处理方法及装置
CN109634721B (zh) 一种虚拟机与主机的启动通信方法及相关装置
CN115797527A (zh) 一种场景渲染方法、装置、设备及系统
CN116431357B (zh) 内核分配方法、分配组件、工作节点和存储介质
JP2001195270A (ja) 仮想サーバエミュレータ
CN114281443B (zh) 一种云桌面系统及方法
US20250208916A1 (en) Efficiency daemon
CN116089020B (zh) 虚拟机运行方法、扩容方法、扩容系统
CN114500564B (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