一种管理USB和自动挂载到虚拟机的方法与流程

文档序号:11807662阅读:975来源:国知局

本发明涉及云计算和虚拟化技术领域,特别是一种管理USB和自动挂载到虚拟机的方法。



背景技术:

随着越来越多应用迁移到云平台上,虚拟机对使用USB设备的需求也越来越多,特别是对于一些安全设备,例如加密狗设备,有很多应用需要配合加密狗设备才能正常运行。对于USB设备的使用一般是通过spice的远程连接重定向、第三方软件进行USB的网络重定向来实现或者普通直连USB设备来实现,但是这些种方法存在一下问题:

一是spice远程桌面USB重定向需要依赖于spice的远程连接才能完成重定向,对于一些依赖USB设备,并且需要在后台运行的应用,这种方式需要一直保持远程连接,这显然不现实;

二是通过第三方软件进行的网络重定向,一旦USB设备信息发生变化,就需要进行重新重定向;

三是网络重定向依赖于网络,如果没有虚拟机没有网络的情况下,将无法使用USB设备;

四是两种重定向方式要经过tcp协议或spcie协议进行重定向,会对USB设备读写性能造成一定的影响;

五是如果通过普通的直连USB设备,一单USB设备信息发生变化,虚拟机则无法识别到USB,并且会残留旧的、错误的USB信息,需要通过人为去进行修正;

六是普通的直连USB设备,当虚拟机状态发生变化时,例如虚拟机重启后,则需要手动去维护USB,对USB进行重新挂载。

为了减低运维的成本,提高USB设备使用的方便性和可用性,保证虚拟机挂载USB设备的准确性、持续性和保证USB设备的读写效率,需要一种能够管理USB和自动挂载USB到虚拟机的方法。



技术实现要素:

本发明解决的技术问题在于提供一种管理USB和自动挂载到虚拟机的方法,解决了虚拟机无法长期稳定地使用USB设备,USB和虚拟机变化后无法使用USB设备,无法自动修正USB信息的问题。

本发明解决上述技术问题的技术方案是:

所述的方法包括如下步骤:

步骤1:使用USB发现脚本,发现物理机中的USB设备,过滤需要的USB设备,获取USB信息;

步骤2:使用定时器定时汇总USB信息,保存在数据库和内存中;

步骤3:把USB通过直连方式挂载到所需要的虚拟机中;

步骤4:使用定时器监控USB以及虚拟机实际状态和信息;如果USB信息发生变化则执行步骤5,如果虚拟机状态发生变化则执行步骤6;

步骤5:获取USB所挂载的虚拟机,把虚拟机上错误的USB卸载,然后获取新的USB信息,挂载新的USB;

步骤6:如果虚拟机关机,则USB已经卸载;如果虚拟机重新开机后,则获取当前USB信息,自动挂载USB。

所述USB信息包括USB的序列号、供应商ID、产品ID、总线地址、设备地址、名称和大小等信息。

所述的USB的序列号、供应商ID和产品ID,此三者可以唯一标识一个USB设备;

所述的总线地址和设备地址变化是发生在USB在物理机上插拔后,总线地址和设备地址将会发生变化。

所述的错误的USB,是指USB的总线地址和设备地址变化后,虚拟机仍然挂载旧的总线地址和设备地址的USB设备。

所述的直连方式,是相对于重定向方式,数据虚拟机直接使用物理机上的设备,而非把USB设备重定向到虚拟机中。

本发明通过对USB发现管理并自动挂载USB到虚拟机,实现了虚拟机使用USB设备是不受网络环境影响,虚拟机可以在后台持续运行需要USB设备的应用,同时保证了USB设备的读写性能,而且能够自动适应USB设备信息变化,适应虚拟机状态信息变化,使虚拟机开机后能够自动挂载所需的USB设备,大大降低运维成本,实现自动化。

附图说明

下面结合附图对本发明进一步说明:

图1为本发明方法流程图。

具体实施方式

如图1所示,本发明首先,基于lsusb工具的python文件/usr/bin/lsusb.py进行修改,使起输出我们所需要的usb信息,和过滤usb设备。

增加方法:

修改原来方法,使其调用我们的自动以方法输出usb信息。

增加usb发现定时器,汇总usb信息:

挂载usb的方法。

使用定时器,定时扫面虚拟机usb设备状态,并进行维护。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1