免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4207 | 回复: 0
打印 上一主题 下一主题

[Xen] xen中如何利用PCI Passthrough 将NIC直接分配给DomU? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-28 17:06 |只看该作者 |正序浏览
最近在研究xen虚拟机的问题,了解到PCI Passthrough的特征,可以直接将设备分配给VM。这里主要讨论的是HVM。主要的问题是给DomU分配好NIC之后,利用virt-manager无法正常启动DomU。
相关的一些配置:
xen的版本:xen-4.1.2
Dom0中的系统:Ubuntu-12.04(Linux-3.5.0-23)
DomU中的系统:Ubuntu-12.04(Linux-3.5.0-23)
DomU的安装是由virt-manager实现。
硬件支持IOMMU,BIOS中已设置I/O虚拟化。

直接分配的步骤(主要是参考xen的官方文档:http://wiki.xen.org/wiki/XenPCIpassthrough#Guest_configuration
通过lspci指令可以知道本机NIC对应的是0000:00:19.0
1.利用文件系统进行动态分配
# modprobe xen-pciback
2.通常的步骤:
 Unbind from the old driver.
 Create a new slot in pciback for the device
Bind to pciback
可以使用一个脚本文件完成上述操作:(pciback.sh)
                  #! /bin/bash
                     if [ $# -eq 0 ]; then
                     echo "Require PCI devices in format:  <domain>:<bus>:<slot>.<function>"
                     echo "Eg: $(basename $0) 0000:00:1b.0"
                     exit 1
                    fi
                    modprobe xen-pciback
                   for pcidev in $@; do
                  if [ -h /sys/bus/pci/devices/"$pcidev"/driver ]; then
                  echo "Unbinding $pcidev from" $(basename $(readlink /sys/bus/pci/devices/"$pcidev"/driver))                    
                  echo -n "$pcidev" > /sys/bus/pci/devices/"$pcidev"/driver/unbind
                  fi
                  echo "Binding $pcidev to pciback"
                  echo -n "$pcidev" > /sys/bus/pci/drivers/pciback/new_slot
                 echo -n "$pcidev" > /sys/bus/pci/drivers/pciback/bind
                done

脚本文件的执行:
sudo bash -x pciback.sh  0000:00:19.0
0000:00:19.0对应<domain>:<bus>:<slot>.<function>


3.验证分配是否成功:
# xm pci-list-assignable-devices
0000:99:19.0

4. virtual PCI slots (6~7) are reserved in HVM guest to support VTd hotplug.
Detach the device from the guest by the physical BDF. Then HVM guest will receive a virtual PCI hot removal event to detach the physical device
# xm pci-detach zbn01   0000:00:19.0
Attach a PCI device to the guest by the physical BDF and desired virtual slot(optional). Following command would insert the physical device into guest's virtual slot 7
# xm pci-attach zbn01   0000:00:19.0   7

基本按照上面的操作执行之后,利用virt-manager启动zbn01虚拟机,可是无法正常启动。突然界面自己就关掉了。
希望各位能指出在下的问题所在,同时也能提供一些建议和意见。大谢!!!!!!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP