系统集成OpenStackSDNsriov

openstack如何迁移使用sriov的虚拟机?

1、如何迁移使用sriov的虚拟机?
2、如何给已创建的虚机添加sriov网卡?
感谢各位专家回答。

参与4

1同行回答

顾黄亮顾黄亮课题专家组技术总监畅销书作者
有幸看过一篇文章,中兴通讯的 《 实现SR-IOV网卡的方法和装置、实现动态迁移的方法和装置 》,其中讲到,openstack对sriov的使用有两种方式,分别是Indirect mode(间接模式):通过 macvtap 层来进行转接,支持 Hypervisor 层面的热迁移,但性能会损失(20%-30%)。Direct mode(直接模式):即 Pa...显示全部

有幸看过一篇文章,中兴通讯的 《 实现SR-IOV网卡的方法和装置、实现动态迁移的方法和装置 》,其中讲到,openstack对sriov的使用有两种方式,分别是Indirect mode(间接模式):通过 macvtap 层来进行转接,支持 Hypervisor 层面的热迁移,但性能会损失(20%-30%)。Direct mode(直接模式):即 Pass-through,不支持 Hypervisor 层面的热迁移,好处是性能几乎没有损失。
回过头来讲一下sriov是什么,官方解释其实很复杂, SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。大白话解释一下,其实这是一种标准,用了这个标准技术的虚拟机所创建的新设备可允许将虚拟机直接连接到 I/O 设备,这样可以给虚拟化平台带来可观的性能提升。
下面回到题主所说的迁移问题,我们说说一下行业内比较通用的一种方式, 通过加一层macvtap来解决,比如说A到C从技术上不可行,但是A到B可行,B到C可行,那A到C可以通过A到B到C的方式,那B就是macvtap。具体思路如下,SR-IOV Pass-through 到 Guest 会产生 “状态” ,那么将 “状态” 转移到别的地方就可以了,macvtap 层(Virt NIC-FE、Virt NIC-BE、macvtap)就是这般的存在。VF 的 Detached 再 Reattach 的过程在 macvtap 层完成,并且由 Hypervisor 来完成 Detached 再 Reattach 管理。对于虚拟机而言,依旧是 “无状态” 的,可以任意迁移。这就是基于 macvtap 层的 SR-IOV 虚拟机可以进行热迁移原因。这种方式比较损耗性能, 引入 macvtap 层的缺点就是 20%-30% 的性能损失,因为 macvtap 是一个内核态设备,需要进行内核协议栈的处理,这就意味着内存拷贝、上下文切换以及 Cache Miss 等等数据面转发的性能问题。
按照中兴的文章,SR-IOV 热迁移实现思路和加入 macvtap 层的实现方式类似,本质上是对后者的优化,具体说来主要有以下两点:把 macvtap 去掉, 直接对接 VF Driver,将 Virt NIC-BE 和 VF Driver 移到了用户态。这两点优化,实现了在支持热迁移的同时进一步压缩的性能的损耗。从架构图上看,应该需要对 VirtIO 进行定制开发,还需要实现一个用户态的 vNIC 进程来管理 Virt NIC-BE 和 VF Driver 的 Detached 再 Reattach 流程。

收起
银行 · 2020-06-13
浏览2217

提问者

张张
系统架构师指趣网络科技
擅长领域: 云计算容器一体化运维

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-06-12
  • 关注会员:3 人
  • 问题浏览:2999
  • 最近回答:2020-06-13
  • X社区推广