一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种USB设备管理方法及装置与流程

2022-03-08 22:26:54 来源:中国专利 TAG:

daemon的方式运行在各主机上;基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务的步骤包括:
11.基于本地运行的守护进程usb-daemon创建一个与所述目标usb设备一一对应的usb-agent子进程;
12.通过所述usb-agent子进程将所述目标usb设备的bus、dev、path发送给usbredirserver,以使得usbredirserver启动一个与所述目标usb设备一一对应的usbredirserver子进程,从而开启所述目标usb设备的重定向服务。
13.可选地,所述方法还包括:
14.所述守护进程usb-daemon和所述usb-agent子进程基于预设规则进行心跳检测,且所述守护进程usb-daemon定时获取所述usb-agent子进程pid、所述usbredirserver子进程pid,当检测到usb-agent子进程或usbredirserver子进程停止运行时,所述守护进程usb-daemon重新创建一个与所述目标usb设备一一对应的usb-agent子进程和usbredirserver子进程。
15.可选地,所述目标usb设备和所述目标虚拟机之间以tcp/ip网络方式连接;所述方法还包括:
16.若所述目标虚拟机迁移至远端主机,所述目标usb设备与所述目标虚拟机之间连接断开,则所述目标usb设备在预设时长内向所述目标虚拟机发起重连,其中,所述预设时长大于所述目标虚拟机迁移所需时长。
17.第二方面,本技术提供了一种usb设备管理方法,应用于云管理平台,所述云管理平台与各主机通信链接,所述方法包括:
18.分别向所述各主机发送usb设备信息获取请求;
19.接收所述各主机返回的接入本地的usb设备信息,并基于web界面展示各usb设备信息;
20.基于用户触发的将目标usb设备分配给目标虚拟机的指令,向目标主机发送目标usb设备重定向指令,以使得所述目标主机基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机,其中,所述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息。
21.第三方面,本技术提供了一种usb设备管理装置,应用于主机,各主机与云管理平台通信连接,所述装置包括:
22.获取单元,若监听到有usb设备接入本地,则所述获取单元用于获取该usb设备的设备信息,并将该usb设备的设备信息更新至本地维护的usb设备信息列表中;
23.接收单元,用于接收所述云管理平台下发的目标usb设备重定向指令,其中,所述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息;
24.开启单元,用于基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机。
25.可选地,各主机包括usb设备管理模块,所述usb设备管理模块以守护进程usb-daemon的方式运行在各主机上;基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务时,所述开启单元具体用于:
26.基于本地运行的守护进程usb-daemon创建一个与所述目标usb设备一一对应的
usb-agent子进程;
27.通过所述usb-agent子进程将所述目标usb设备的bus、dev、path发送给usbredirserver,以使得usbredirserver启动一个与所述目标usb设备一一对应的usbredirserver子进程,从而开启所述目标usb设备的重定向服务。
28.可选地,所述装置还包括:
29.所述守护进程usb-daemon和所述usb-agent子进程基于预设规则进行心跳检测,且所述守护进程usb-daemon定时获取所述usb-agent子进程pid、所述usbredirserver子进程pid,当检测到usb-agent子进程或usbredirserver子进程停止运行时,所述守护进程usb-daemon重新创建一个与所述目标usb设备一一对应的usb-agent子进程和usbredirserver子进程。
30.可选地,所述目标usb设备和所述目标虚拟机之间以tcp/ip网络方式连接;所述装置还包括重连单元:
31.若所述目标虚拟机迁移至远端主机,所述目标usb设备与所述目标虚拟机之间连接断开,则所述重连单元,用于指示所述目标usb设备在预设时长内向所述目标虚拟机发起重连,其中,所述预设时长大于所述目标虚拟机迁移所需时长。
32.第四方面,本技术提供了一种usb设备管理装置,应用于云管理平台,所述云管理平台与各主机通信链接,所述装置包括:
33.第一发送单元,用于分别向所述各主机发送usb设备信息获取请求;
34.接收单元,用于接收所述各主机返回的接入本地的usb设备信息,并基于web界面展示各usb设备信息;
35.第二发送单元,用于基于用户触发的将目标usb设备分配给目标虚拟机的指令,向目标主机发送目标usb设备重定向指令,以使得所述目标主机基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机,其中,所述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息。
36.第五方面,本技术实施例提供一种usb设备管理装置,该usb设备管理装置包括:
37.存储器,用于存储程序指令;
38.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
39.第六方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
40.第七方面,本技术实施例提供一种usb设备管理装置,该usb设备管理装置包括:
41.存储器,用于存储程序指令;
42.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第二方面中任一项所述的方法的步骤。
43.第八方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第二方面中任一项所述方法的步骤。
44.综上可知,本技术实施例提供的usb设备管理方法,应用于主机,各主机与云管理
平台通信连接,所述方法包括:若监听到有usb设备接入本地,则获取该usb设备的设备信息,并将该usb设备的设备信息更新至本地维护的usb设备信息列表中;接收所述云管理平台下发的目标usb设备重定向指令,其中,所述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息;基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机。
45.采用本技术实施例提供的usb设备管理方法,各主机维护有接入本地的usb设备的设备信息,云管理平台统一管理各usb设备的分配,采用重定向的方式将usb设备配置给虚拟机使用,简化了usb设备的配置过程,进一步的,采用重定向的方式,当虚拟机从一个主机迁移至远端主机后,为该虚拟机分配的usb设备仍可以采用重连的方式与迁移后的虚拟机建立连接。
附图说明
46.为了更加清楚地说明本技术实施例或者现有技术中的技术方案,下面将对本技术实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本技术实施例的这些附图获得其他的附图。
47.图1为本技术实施例提供的一种usb设备管理方法的详细流程图;
48.图2为本技术实施例提供的一种云管理平台usb设备展示示意图;
49.图3为本技术实施例提供的另一种usb设备管理方法的详细流程图;
50.图4为本技术实施例提供的第一种usb设备管理装置的结构示意图;
51.图5为本技术实施例提供的第二种usb设备管理装置的结构示意图;
52.图6为本技术实施例提供的第三种usb设备管理装置的结构示意图;
53.图7为本技术实施例提供的第四种usb设备管理装置的结构示意图。
具体实施方式
54.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
55.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
56.示例性的,参阅图1所示,为本技术实施例提供的一种usb设备管理方法的详细流程图,该方法应用于主机,各主机与云管理平台通信连接,该方法包括以下步骤:
57.步骤100:若监听到有usb设备接入本地,则获取该usb设备的设备信息,并将该usb设备的设备信息更新至本地维护的usb设备信息列表中。
58.本技术实施例中,各主机上部署有usb设备管理模块,该usb设备管理模块以守护
进程usb-daemon的方式运行在各主机上,管理单台主机上所有usb设备。
59.例如,主机通过libudev(一种开源的监控设备插拔的接口)监听主机上usb设备的活动,当主机有usb设备插上,或拔除动作时,usb-daemon会捕获到,再通过libusb(一种开源的usb设备访问接口库)获取该usb设备的信息,并且更新其维护的usb设备信息列表。
60.步骤110:接收所述云管理平台下发的目标usb设备重定向指令,其中,所述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息。
61.本技术实施例中,云管理平台是一种提供云服务的平台,以web形式展现人机交互接口,云管理平台上部署有网络usb组件,当云服务运维人员需要给虚拟机配置usb设备时,可以通过网络usb组件来实现。
62.例如,云管理平台的网络usb组件获取所有主机上usb设备的信息,具体的,可以通过向usb-daemon发送请求获取usb设备信息,包括:usb type、usb bus、usb dev、usb port、usb vendor、usb product、usb manufacturer、usb driver,然后在web界面上展示,在界面上可以查看所有主机上usb设备的重定向状态、被哪个虚拟机使用,同时还可以开启/关闭usb设备的重定向服务,示例性的,参阅图2所示,为本技术实施例提供的一种云管理平台usb设备展示示意图。
63.即usb-daemon作为服务器端,提供查询主机usb设备信息和配置usb设备的服务。云管理平台作为客户端,当云管理平台网络usb组件需要获取主机上的usb设备信息时,通过http协议发送请求给usb-daemon,然后从维护的usb设备列表中获取信息,并且按照xml格式组装usb设备信息返回给云管理平台网络usb组件。
64.本技术实施例中,当给虚拟机配置usb设备时,网络usb组件会给虚拟机添加usb重定向设备(虚拟机usb重定向设备xml格式),并且向usb-daemon发送命令,开启usb设备的重定向服务。
65.步骤120:基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机。
66.当云平台管理网络usb组件需要将usb设备重定向给虚拟机,也是通过http协议向usb-daemon服务器端发送命令,命令也是使用xml组装的,usb-daemon收到命令请求后解析xml确定需要开启重定向的usb设备,然后调用子模块usb-agent真正给usb设备开启重定向服务。
67.具体的,在基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务的时,一种较佳地时间方式为:
68.基于本地运行的守护进程usb-daemon创建一个与所述目标usb设备一一对应的usb-agent子进程;通过所述usb-agent子进程将所述目标usb设备的bus、dev、path发送给usbredirserver,以使得usbredirserver启动一个与所述目标usb设备一一对应的usbredirserver子进程,从而开启所述目标usb设备的重定向服务。
69.本技术实施例中,usb-agent是usb-daemon中一个重要的子模块,用于管理usb设备重定向服务。usb-agent是由usb-daemon进程创建的一个子进程,如果有一个usb设备想要开启重定向服务,就会创建一个usb-agent子进程,其与usb设备是一对一的关系。usb-agent是通过将usb设备的bus、dev、path传给usbredirserver(一种开源的提供usb重定向服务的软件),并且启动一个usbredirserver子进程,从而实现usb重定向服务的开启。
70.进一步的,所述守护进程usb-daemon和所述usb-agent子进程基于预设规则进行心跳检测,且所述守护进程usb-daemon定时获取所述usb-agent子进程pid、所述usbredirserver子进程pid,当检测到usb-agent子进程或usbredirserver子进程停止运行时,所述守护进程usb-daemon重新创建一个与所述目标usb设备一一对应的usb-agent子进程和usbredirserver子进程。
71.例如,为了保证usb设备重定向服务的稳定,usb-agent与usb-daemon之间需要发送心跳包(心跳包xml格式),以确保两者间连接的可靠;另外,usb-daemon会定时获取usb-agent子进程pid、usbredirserver子进程pid,当usb-agent或usbredirserver因异常停止运行,usb-daemon会重新创建,保证了usb设备重定向服务的连续,进一步也保证虚拟机内部使用usb设备的业务不中断。
72.本技术实施例中,所述目标usb设备和所述目标虚拟机之间以tcp/ip网络方式连接;所述方法还包括以下步骤:
73.若所述目标虚拟机迁移至远端主机,所述目标usb设备与所述目标虚拟机之间连接断开,则所述目标usb设备在预设时长内向所述目标虚拟机发起重连,其中,所述预设时长大于所述目标虚拟机迁移所需时长。
74.实际应用中,usb重定向服务是使用开源的usbredirserver软件,该软件的原理是通过指定的usb设备信息(bus、dev、path)和ip端口,先调用libusb接口查询usb设备的有效性,再打开usb设备,然后创建tcp/ip socket连接等待虚拟机usb-redir设备的连接,最后通过标准的c语言接口read()、write()读写usb设备。
75.本技术实施例中,开源的usbredirserver作为服务端,虚拟机usb-redir设备作为客户端,虚拟机迁移到远端主机后,服务端与客户端的连接断开了,当连接断开后服务端会尝试重连,超时后才会断开连接,这里的超时时间是大于虚拟机迁移的时间,即在虚拟完成迁移之后,会受到usb设备的重连请求,进行重新建立链接,因此能够保证重连一定会成功。
76.示例性的,参阅图3所示,为本技术实施例提供的一种usb设备管理方法的详细流程图,该方法应用于云管理平台,所述云管理平台与各主机通信链接,该方法包括以下步骤:
77.步骤300:分别向所述各主机发送usb设备信息获取请求;
78.步骤310:接收所述各主机返回的接入本地的usb设备信息,并基于web界面展示各usb设备信息;
79.步骤320:基于用户触发的将目标usb设备分配给目标虚拟机的指令,向目标主机发送目标usb设备重定向指令,以使得所述目标主机基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机,其中,所述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息。
80.基于与上述应用于主机的方法实施例同样的发明构思,示例性的,参阅图4所示,为本技术实施例提供的一种usb设备管理装置的结构示意图,该装置应用于主机,各主机与云管理平台通信连接,该装置包括:
81.获取单元40,若监听到有usb设备接入本地,则所述获取单元用于获取该usb设备的设备信息,并将该usb设备的设备信息更新至本地维护的usb设备信息列表中;
82.接收单元41,用于接收所述云管理平台下发的目标usb设备重定向指令,其中,所
述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息;
83.开启单元42,用于基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机。
84.可选地,各主机包括usb设备管理模块,所述usb设备管理模块以守护进程usb-daemon的方式运行在各主机上;基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务时,所述开启单元42具体用于:
85.基于本地运行的守护进程usb-daemon创建一个与所述目标usb设备一一对应的usb-agent子进程;
86.通过所述usb-agent子进程将所述目标usb设备的bus、dev、path发送给usbredirserver,以使得usbredirserver启动一个与所述目标usb设备一一对应的usbredirserver子进程,从而开启所述目标usb设备的重定向服务。
87.可选地,所述装置还包括:
88.所述守护进程usb-daemon和所述usb-agent子进程基于预设规则进行心跳检测,且所述守护进程usb-daemon定时获取所述usb-agent子进程pid、所述usbredirserver子进程pid,当检测到usb-agent子进程或usbredirserver子进程停止运行时,所述守护进程usb-daemon重新创建一个与所述目标usb设备一一对应的usb-agent子进程和usbredirserver子进程。
89.可选地,所述目标usb设备和所述目标虚拟机之间以tcp/ip网络方式连接;所述装置还包括重连单元:
90.若所述目标虚拟机迁移至远端主机,所述目标usb设备与所述目标虚拟机之间连接断开,则所述重连单元,用于指示所述目标usb设备在预设时长内向所述目标虚拟机发起重连,其中,所述预设时长大于所述目标虚拟机迁移所需时长。
91.基于与上述应用于云管理平台的方法实施例同样的发明构思,示例性的,参阅图5所示,为本技术实施例提供的一种usb设备管理装置的结构示意图,该装置应用于云管理平台,所述云管理平台与各主机通信链接,该装置包括:
92.第一发送单元50,用于分别向所述各主机发送usb设备信息获取请求;
93.接收单元51,用于接收所述各主机返回的接入本地的usb设备信息,并基于web界面展示各usb设备信息;
94.第二发送单元52,用于基于用户触发的将目标usb设备分配给目标虚拟机的指令,向目标主机发送目标usb设备重定向指令,以使得所述目标主机基于所述目标usb设备重定向指令,开启所述目标usb设备的重定向服务,并将所述目标usb设备重定向给所述目标虚拟机,其中,所述目标usb设备重定向指令包括目标usb的设备信息和目标虚拟机信息。
95.以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
96.进一步地,本技术实施例提供的usb设备管理装置,从硬件层面而言,所述usb设备管理装置的硬件架构示意图可以参见图6所示,所述usb设备管理装置可以包括:存储器60和处理器61,
97.存储器60用于存储程序指令;处理器61调用存储器60中存储的程序指令,按照获得的程序指令执行上述应用于主机的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
98.可选地,本技术还提供一种主机,包括用于执行上述应用于主机的方法实施例的至少一个处理元件(或芯片)。
99.可选地,本技术还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述应用于主机的方法实施例。
100.进一步地,本技术实施例提供的usb设备管理装置,从硬件层面而言,所述usb设备管理装置的硬件架构示意图可以参见图7所示,所述usb设备管理装置可以包括:存储器70和处理器71,
101.存储器70用于存储程序指令;处理器71调用存储器70中存储的程序指令,按照获得的程序指令执行上述应用于云管理平台的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
102.可选地,本技术还提供一种云管理平台,包括用于执行上述应用于云管理平台的方法实施例的至少一个处理元件(或芯片)。
103.可选地,本技术还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述应用于云管理平台的方法实施例。
104.这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
105.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
106.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
107.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
108.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
109.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
110.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
111.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献