首页 > 其他分享 >49 最佳实践-性能最佳实践-Nvme磁盘直通

49 最佳实践-性能最佳实践-Nvme磁盘直通

时间:2023-06-16 19:01:10浏览次数:51  
标签:直通 49 Nvme 实践 最佳 Host PCI 磁盘 OS

49 最佳实践-性能最佳实践-Nvme磁盘直通

49.1 概述

设备直通技术是一种基于硬件的虚拟化解决方案,通过该技术,虚拟机可以直接连接到指定的物理直通设备上。对于用户来说,如果需要提升虚拟机存储性能,可以采用将 Nvme 磁盘通过 PCI 直通技术直通给虚拟机的办法,从而获得更高的性能表现。

49.2 操作指导

  1. 使用前准备

    • 确认 Guest OS 内安装 Nvme 磁盘供应商所提供的驱动程序,否则 Nvme 磁盘无法正常工作。
    • 确认 Host OS 开启CPU的 VT-d 和 VT-x 支持。
    • 确认 Host OS 开启内核的 IOMMU 功能。
    • 确认 Host OS 开启内核的中断重映射功能。
  2. 获取 Nvme 磁盘的 PCI BDF 信息

    在Host上通过 lspci 命令获取主机上pci设备的资源列表,具体命令如下所示。

    # lspci -vmm
    Slot:	81:00.1
    Class:	Non-Volatile memory controller
    ...
    

    命令回显其中的 Slot 选项及对应了 Nvme 磁盘的 PCI BDF 号,以上方命令为例,每个值的对应关系即81-bus号,00-slot号,1-function号。

  3. 挂载 PCI 直通 Nvme 磁盘至虚拟机中

    创建虚拟机时,在其对应的 xml 配置文件中加入 PCI Nvme 磁盘直通的配置选项。具体配置文件如下所示

    <hostdev mode='subsystem' type='pci' managed='yes'>
        <source>
            <address domain='0x0000' bus='0x81' slot='0x00' function='0x1' />
        </source>
    </hostdev>
    
    • hostdev.source.address.domain: Host OS 上 PCI 设备的 domain 号。
    • hostdev.source.address.bus: Host OS 上 PCI 设备的 bus 号。
    • hostdev.source.address.slot: Host OS 上 PCI 设备的 slot 号。
    • hostdev.source.address.function: Host OS 上 PCI 设备的 function 号。
  4. 指定 Nvme 磁盘的 PCI bar 空间

    为了进一步将 Nvme 磁盘的性能发挥到极致,需要指定直通 Nvme 磁盘在 Guest OS 内 PCI MSI-X 中断的 Bar 空间。具体配置如下。

    <hostdev mode='subsystem' type='pci' managed='yes'>
        <source>
            <address domain='0x0000' bus='0x01' slot='0x00' function='0x0' />
        </source>
        <alias name='ua-sm2262'/>
            <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </hostdev>
    <qemu:commandline>
        <qemu:arg value='-set'/>
        <qemu:arg value='device.ua-sm2262.x-msix-relocation=bar2'/>
    </qemu:commandline>
    

    以上xml配置将直通的 Nvme 磁盘的中断信息处理指定在第2号 Bar 上,增加该项配置可以使 Guest OS 内的 Nvme 磁盘性能达到与 Host OS 上的 Nvme 磁盘性能几乎一致。

标签:直通,49,Nvme,实践,最佳,Host,PCI,磁盘,OS
From: https://blog.51cto.com/u_237826/6501693

相关文章

  • 理论+实践:从原型链到继承模式,掌握 Object 的精髓(一)
    前言系列首发于公众号『前端进阶圈』,若不想错过更多精彩内容,请“星标”一下,敬请关注公众号最新消息。理论+实践:从原型链到继承模式,掌握Object的精髓(一)在之前的文章中,我们介绍了函数调用位置的不同造成了this绑定对象的不同,但对象到底是什么?为什么我们需要绑定他们呢?语法对象......
  • 1494. 并行课程 II
    给你一个整数 n 表示某所大学里课程的数目,编号为 1 到 n ,数组 relations 中, relations[i]=[xi,yi] 表示一个先修课的关系,也就是课程 xi 必须在课程 yi 之前上。同时你还有一个整数 k 。在一个学期中,你最多 可以同时上k 门课,前提是这些课的先修课在之前的......
  • 深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、Ti
    深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、TinyBERT1.模型压缩概述1.2模型压缩原有理论上来说,深度神经网络模型越深,非线性程度也就越大,相应的对现实问题的表达能力越强,但相应的代价是,训练成本和模型大小的增加。同时,在部署时,大模型预测......
  • linux自动登录|debian12实践|字符终端|自动登录|systemd|getty
    此方法适用于使用systemd启动的文件系统,debian12实践1.编辑此文件/etc/systemd/system/getty.target.wants/getty@tty1.service或者是/etc/systemd/system/getty@tty1.service.d/autologin.conf(我的Debian12中没有找到这个目录,不知道和版本有关还是和发行版有关)。2.......
  • 48 最佳实践-性能最佳实践-Guest-Idle-Haltpoll
    48最佳实践-性能最佳实践-Guest-Idle-Haltpoll48.1概述为了保证公平性及降低功耗,当虚拟机vCPU空闲时,虚拟机将执行WFx/HLT指令退出到宿主机中,并触发上下文切换。宿主机将决定在物理CPU上调度其他进程或vCPU,或进入节能模式。但是,虚拟机和宿主机之间的切换、额外的上下文切换以及......
  • Kong入门学习实践(4)负载均衡与正则路由
    最近在学习Kong网关,因此根据老习惯,我会将我的学习过程记录下来,一来体系化整理,二来作为笔记供将来翻看。由于我司会直接使用Kong企业版,学习过程中我会使用Kong开源版。本篇,我们学习快速配置一个最常见的基本功能:负载均衡与正则路由。关于负载均衡所谓负载均衡,就是通过负载均衡算......
  • 12篇CVPR 2023 最佳论文候选
    前言 CVPR2023开幕在即,官方公布了12篇最佳论文候选,快来看看都是什么内容吧!本文转载自我爱计算机视觉仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全教程......
  • 异步编程 asynico、async、await最佳实践
    使用异步函数:Asynico是为了处理异步操作而设计的,因此使用异步函数而不是同步函数是最佳实践之一。使用async关键字将函数定义为异步函数,并使用await关键字来等待异步操作的结果。示例:importasyncioasyncdefmy_async_function():#异步操作awaitasyncio.sleep(1)......
  • AtCoder Beginner Contest 249 G Xor Cards
    洛谷传送门AtCoder传送门好题。套路地,考虑枚举最优解的\(a\)异或和二进制下与\(k\)的\(\text{LCP}\),设在第\(i\)位不同。这样的好处是\(i\)之后的位可以随便选。之后按位贪心确定最优解\(b\)的异或和。考虑之前的答案是\(res\),当前在确定第\(j\)位,如何判断\(r......
  • 批量生成,本地推理,人工智能声音克隆框架PaddleSpeech本地批量克隆实践(Python3.10)
    云端炼丹固然是极好的,但不能否认的是,成本要比本地高得多,同时考虑到深度学习的训练相对于推理来说成本也更高,这主要是因为它需要大量的数据、计算资源和时间等资源,并且对超参数的调整也要求较高,更适合在云端进行。在推理阶段,模型的权重和参数不再调整。相反,模型根据输入数据的特征......