38 KVM管理设备-管理虚拟机USB

news2024/11/17 5:59:59

文章目录

    • 38 KVM管理设备-管理虚拟机USB
      • 38.1 配置USB控制器
        • 38.1.1 概述
        • 38.1.2 注意事项
        • 38.1.3 配置方法
      • 38.2 配置USB直通设备
        • 38.2.1 概述
        • 38.2.2 注意事项
        • 38.2.3 配置说明
        • 38.2.4 配置方法

38 KVM管理设备-管理虚拟机USB

为了方便在虚拟机内部使用USBkey设备、USB海量存储设备等USB设备,openEuler提供了USB设备直通的功能。用户可以通过USB直通和热插拔相关接口给虚拟机配置直通USB设备、或者在虚拟机处于运行的状态下热插/热拔USB设备。

38.1 配置USB控制器

38.1.1 概述

USB控制器是为虚拟机上的USB设备提供具体USB功能的虚拟控制器设备,在虚拟机内部使用USB设备必须给虚拟机配置USB控制器。当前openEuler支持如下三种USB控制器:

  • UHCI(Universal Host Controller Interface):通用主机控制器接口,也称为USB 1.1主机控制器规范。
  • EHCI(Enhanced Host Controller Interface):增强主机控制器接口,也称为USB 2.0主机控制器规范。
  • xHCI(eXtensible Host Controller Interface):可扩展主机控制器接口,也称为USB 3.0主机控制器规范。

38.1.2 注意事项

  • 主机服务器上需存在支持USB 1.1、USB 2.0和USB 3.0标准的USB控制器硬件和模块。
  • 为虚拟机配置USB控制器时,请按照USB 1.1、USB 2.0到USB 3.0的顺序来配置。
  • 一个xHCI控制器有8个端口,最多可以挂载4个USB 3.0设备和4个USB 2.0设备。一个EHCI控制器有6个端口,最多可以挂载6个USB2.0设备。一个UHCI控制器有2个端口,最多可以挂载2个USB 1.1设备。
  • 每台虚拟机最多支持配置一个相同类型的USB控制器。
  • 不支持热插拔USB控制器。
  • 若虚拟机没有安装USB 3.0的驱动,可能无法识别xHCI控制器,USB 3.0驱动下载和安装方法请参见对应OS发行商官方说明。
  • 为了不影响操作系统的兼容性,为虚拟机配置USB接口的tablet设备时,请指定USB控制器bus号为0(默认挂载到USB 1.1控制器上)。

38.1.3 配置方法

这里介绍为虚拟机配置USB控制器的配置内容说明。建议同时配置USB 1.1、USB 2.0和USB 3.0,做到同时兼容三种设备。

USB 1.1控制器(UHCI)的XML配置项为:

<controller type='usb' index='0' model='piix3-uhci'>
</controller>

USB 2.0控制器(EHCI)的XML配置为:

<controller type='usb' index='1' model='ehci'>
</controller>

USB 3.0控制器(xHCI)的XML配置为:

<controller type='usb' index='2' model='nec-xhci'>
</controller>

38.2 配置USB直通设备

38.2.1 概述

当虚拟机配置好USB控制器后,就可以通过设备直通的方式将主机上的物理USB设备挂载到虚拟机内部供虚拟机使用。在虚拟化场景下,除了支持静态配置以外还同时支持USB设备的热插/拔操作,即在虚拟机处于运行状态的时候挂载/卸载USB设备。

38.2.2 注意事项

  • 一个USB设备只能直通给一台虚拟机使用
  • 配置了直通USB设备的虚拟机不支持热迁移
  • 虚拟机配置文件中直通的USB设备不存在时,虚拟机会创建失败
  • 对一个正在读写的USB存储设备进行强制热拔操作有可能会损坏USB设备内的文件

38.2.3 配置说明

这里介绍为虚拟机配置USB设备的配置内容说明。

USB设备的XML描述:

<hostdev mode='subsystem' type='usb' managed='yes'>
    <source>        
        <address bus='m' device='n'/>
    </source>
    <address type='usb' bus='x' port='y'/>
</hostdev>
  • ,其中,m表示该USB设备在主机上的bus地址,n表示device ID编号。
  • 表示该USB设备要挂载到虚拟机指定的USB控制器。其中x表示控制器ID,与虚拟机所配置的USB控制器index编号相对应,y表示port地址。用户配置直通USB设备的时候需要配置这个字段,确保设备挂载的控制器与预期相符。

38.2.4 配置方法

配置USB直通的步骤如下:

  1. 为虚拟机配置USB控制器,配置方法请参见“虚拟机配置 - 配置USB控制器”。

  2. 查询主机上的USB设备信息。

    通过lsusb命令(需要安装usbutils软件包)查询主机上的USB设备信息,包含bus地址、device地址、设备厂商ID、设备ID和产品描述信息等。例如:

    # lsusb
    
    Bus 008 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 006 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 
    Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 005 Device 003: ID 136b:0003 STEC 
    Bus 005 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 
    Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 003: ID 12d1:0003 Huawei Technologies Co., Ltd. 
    Bus 001 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    
  3. 准备USB设备的XML描述文件,注意在设备热拔之前,请确保USB设备当前不在使用当中,否则可能造成数据丢失。

  4. 执行热插、热拔命令。

    假设虚拟机名称为openEulerVM,对应的配置文件为usb.xml。

    • 热插USB设备,只对当前运行的虚拟机有效,虚拟机冷重启后需要重新配置。

      # virsh attach-device openEulerVM usb.xml --live
      
    • 热插USB设备,持久化该配置,即该虚拟机重启后该设备会自动直通给该虚拟机使用。

      # virsh attach-device openEulerVM usb.xml --config
      
    • 热拔USB设备,只对当前运行的虚拟机有效,持久化配置的USB设备在虚拟机重启后USB设备会自动直通给该虚拟机。

      # virsh detach-device openEulerVM usb.xml --live
      
    • 热拔USB设备,持久化该配置。

      # virsh detach-device openEulerVM usb.xml --config
      

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230322193933715

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/604975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝桥杯单片机基础模板一:动态数码管显示

蓝桥杯单片机有一些基础模块的写法&#xff0c;他是没有一定的公式模板的。 好比动态数码管扫描显示&#xff0c;原理就是快速地 传输段选和位选。 但因为电路上添加了74HC573芯片&#xff0c;导致了我们移植别处 51单片机的动态扫描代码 会出现诸多问题&#xff0c;比如闪烁…

期末学习总结模板

期末学习总结精选篇1 转眼间研究生的生活已经有一学期了&#xff0c;感觉才参加复试没多久&#xff0c;回头想想&#xff0c;这一年过的真快&#xff0c;因为生病&#xff0c;耽误了很多时间&#xff0c;收获太少&#xff0c;遗憾太多。 本学期的收获&#xff1a; 1、暑假里看了…

Elasticsearch文件存储

分析Elasticsearch Index文件是如何存储的&#xff1f; 主要是想看一下FST文件是以什么粒度创建的&#xff1f; 首先通过kibana找一个索引的shard&#xff0c;此处咱们就以logstash-2023.05.30索引为例 查看下shard分布情况 GET /_cat/shards/logstash-2023.05.30?vindex …

AtCoder Beginner Contest 303——A-E题讲解

蒟蒻来讲题&#xff0c;还望大家喜。若哪有问题&#xff0c;大家尽可提&#xff01; Hello, 大家好哇&#xff01;本初中生蒟蒻讲解一下AtCoder Beginner Contest 303这场比赛的A-E题&#xff01; A - Similar String 原题 Problem Statement Two characters x x x and y…

Python IDLE介绍

目录 IDE&#xff08;集成开发环境&#xff09;是什么 Python IDLE使用方法详解 Python IDLE常用快捷键 IDE&#xff08;集成开发环境&#xff09;是什么 IDE 是 Integrated Development Environment 的缩写&#xff0c;中文称为集成开发环境&#xff0c;用来表示辅助程序员…

一、Fuzzing速成之AFL实战

文章目录 一、Fuzzing基本知识1、什么是Fuzzing?2、Fuzzing运行流程 二、Fuzzing实战1、下载AFL压缩包2、安装AFL3、Fuzzing 一、Fuzzing基本知识 1、什么是Fuzzing? 维基百科将模糊测试定义为&#xff1a;     模糊测试 &#xff08;fuzz testing, fuzzing&#xff09;…

【Python 文本挖掘】零基础也能轻松掌握的学习路线与参考资料

Python文本挖掘是利用Python语言和相关文本挖掘工具对大量文本数据进行分析和挖掘的过程。Python在文本挖掘方面广泛应用于自然语言处理、情感分析、主题建模、关键词提取等领域。 学习Python文本挖掘需要掌握Python编程基础、数据分析和可视化、自然语言处理、机器学习等知识…

Flutter:功能型组件(3)- 拖拽组件、缩放平移组件

拖拽组件 拖拽组件包含 Draggable、LongPressDraggable 和 DragTarget。 Draggable、LongPressDraggable 为可拖拽的组件&#xff0c;LongPressDraggable 继承自Draggable&#xff0c;因此用法和 Draggable 完全一样&#xff0c;唯一的区别就是 LongPressDraggable 触发拖动的…

nginx添加nginx-sticky-module模块步骤

nginx-sticky-module模块是nginx实现负载均衡的一种方案,和ip_hash负载均衡算法会有区别的 ip_hash 根据客户端ip将请求分配到不同的服务器上.sticky 根据服务器个客户端的cookie,客户端再次请求是会带上此cookie,nginx会把有次cookie的请求转发到颁发cookie的服务器上. 安装…

AI工具合集!一共600+覆盖全行业,除了ChatGPT,那你也会喜欢这些其他的AI工具

如果你喜欢ChatGPT&#xff0c;那你也会喜欢这些其他的AI工具。 AI正在改变我们的工作方式&#xff0c;我不想错过充分利用它的机会&#xff0c;所以我尝试了一系列AI工具来节省时间&#xff0c;提高我的工作效率。 这里有个集合了600ai工具的合集包。 序号AI工具名称AI分类A…

I.MX RT1170加密启动详解(4):OTFAD XIP加密运行代码

本节将介绍基于AES加密的OTFAD引擎&#xff0c;它可以在不影响AES-128-CTR性能的情况下实时解密数据。OTFAD包括对AES密钥展开机制的完整硬件支持&#xff0c;它可以解密最多4个唯一的AES上下文。每个上下文都有一个用户定义的128位的Image Encryption Key(IEK)、一个64位的计数…

uniapp的movable-view、movable-area

uniapp的movable-view、movable-area movable-view&#xff1a; 可以在页面中拖拽滑动必须在movable-area组件中&#xff0c;并且必须是直接子节点必须设置width和height属性&#xff0c;不设置默认为10px提供特殊事件&#xff1a;htouchmove和vtouchmove movable-area&#xf…

用于ECharts的全国省市区县乡镇街道级的行政区划边界数据(GeoJSON格式)

https://map.vanbyte.com 提供了免费的省市县3级行政边界数据(GeoJSON格式)、省市县乡4级联动数据。 至于行政区划边界数据的来源&#xff0c;网络上有各种教程。授人以鱼不如授人以渔&#xff0c;下面记录一下各类方法的具体步骤。 来源1&#xff1a;阿里云的数据可视化平台…

听劝 不要盲目的学网络安全。

听劝 不要盲目的学网络安全。 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可…

webpack-dev-server 不是内部或外部命令,也不是可运行的程序 或批处理文件

一、问题描述 webpack-dev-server 不是内部或外部命令,也不是可运行的程序 或批处理文件 出现上述问题 一般是node.js的版本不一致造成。 二、解决方法&#xff1a;换成低版本的node.js node.js换成12或11版本即可 2.1.先卸载高版本node.js 在控制面板中卸载node.js,并删除安…

【算法】常见的加密算法及实现

文章目录 前言1. 数字签名2. 加密和解密2.1. 加密2.2. 解密 3. 对称加密和非对称加密3.1. 对称加密3.2. 非对称加密 4. 常见的签名加密算法4.1. MD5算法4.2. SHA1算法4.3. HMAC算法4.4. AES/DES/3DES算法4.4.1. DES算法4.4.2. 3DES算法4.4.3. AES算法 4.5. RSA算法4.6. ECC算法…

hbase简介与安装

Hbase简介 HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统&#xff0c;利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase是Google Bigtable的开源实现&#xff0c;类似Google Bigtable利用GFS作为其文件存储系统&#xff0c;HBase利用Had…

安装Linux-SUSE操作系统

文章目录 一、安装Linux-SUSE系统1、环境准备2、SUSE 镜像的下载2.1、下载企业服务器2.2、ARM和桌面的ISO 3、安装SUSE4、配置本地 yum 源5、SUSE常用安装命令6、在 SUSE系统上安装mysql数据库步骤&#xff1a;7、破解SUSE系统root密码 一、安装Linux-SUSE系统 1、环境准备 操…

7月蓄势待发,2023上海内部物流展,预登记全面启动!

观众预登记通道现已全面开放 展会时间 2023年7月5日 9:00-17:00 2023年7月6日 9:00-17:00 2023年7月7日 9:00-15:00 展会地点 上海新国际博览中心&#xff08;浦东新区龙阳路2345号&#xff09; 同期展会 2023上海国际AGV机器人产业展 2023上海国际电商物流包装产业展 2…

外包干了4年,今天分手了...

先说一下自己的情况&#xff0c;大专生&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…