在默认情况下,所有的PCI(外围部件互连)设备能用于所有虚拟机。在某些情况下却不可用。例如,仅仅只能用于一台具体虚拟机的软件狗或网络板(network board),你想要把它们保留以达到更好的性能。在本文中,TechTarget中国的特约虚拟化专家Sander van Vugt将分析与PCI设备相关的选项。
本文使用的是Xen环境。 为一台虚拟机保留PCI设备,你必须确保不是由Dom0操作系统完成的。因此,你需要pciback模块。让这个模块自己工作,你必须确信它在每个启动程序的早期被激活。
一般说来,你必须把它放在服务器的initrd里。如果你正使用SUSE,打开/etc/sysconfi……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
在默认情况下,所有的PCI(外围部件互连)设备能用于所有虚拟机。在某些情况下却不可用。例如,仅仅只能用于一台具体虚拟机的软件狗或网络板(network board),你想要把它们保留以达到更好的性能。在本文中,TechTarget中国的特约虚拟化专家Sander van Vugt将分析与PCI设备相关的选项。本文使用的是Xen环境。
为一台虚拟机保留PCI设备,你必须确保不是由Dom0操作系统完成的。因此,你需要pciback模块。让这个模块自己工作,你必须确信它在每个启动程序的早期被激活。一般说来,你必须把它放在服务器的initrd里。如果你正使用SUSE,打开/etc/sysconfig/内核并添加pciback到initrd模块列表里。接下来,运行mkinitrd命令以产生新initrd。
既然当你服务器启动时,你确定pciback模块首先装入,你能给它分配PCI接口。你需要用到表1所示的lspci命令。
(表1请参见文章末尾部分的“代码”部分)
在lspci命令输出的例子中,你看见一个简短的使用PCI设备ID的记法。在前面输入0000得到完整的设备ID。接下来,使用/etc/modprobe.conf.local配置文件告诉pciback应该排除某一个模块。例如,从上面的模块列表中包含IEEE 1394,在/etc/modprobe.conf里输入下面行:
options pciback hide=(0000:03:01.0)
确保随后编辑加载模块配置文件时,能使用mkinitrd命令重建initrd。同样不要忘记重新启动虚拟机。
用这种方法排除PCI设备后,你需要把它与某个虚拟机捆绑在一起。因此,你必须把它放进它的配置文件中,或当启动虚拟机时指定设备的名字。如果你想把它永久地放进虚拟机的配置文件里,在文件中输入下面行:
pci=[ ’0000:03:01.0’, ]
接下来,开启虚拟机。你现在能看见虚拟机里的PCI设备。这台虚拟机将是唯一能访问这个PCI设备的机器。你也能执行一个手动捆绑。例如,当启动虚拟机时,将下面的命令暂时分配给一个PCI设备:
xm create pci=0000:03:01.0 /etc/xen/vm/virtualserver
当在一个使用Virtual Machine Manager的虚拟化平台上作出这样的设置时,接下来不要忘记使用xm new /etc/xen/vm/virtualserver命令。这也将添加虚拟机到托管的Xen环境。
设备共享的好坏
在虚拟环境工作的主要好处是共享物理设备的能力。然而某些情况下,不要共享设备,而是保留给具体的虚拟机。在下文中,你将学习如何保留PCI设备到虚拟机。
代码
表1:使用lspci命令找到你想要排除的PCI接口的PCI ID
BTN:~ # lspci
00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML
and 945GT Express Memory Controller Hub (rev 03)
00:01.0 PCI bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML
and 945GT Express PCI Express Root Port (rev 03)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family)
High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family)
PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family)
PCI Express Port 2 (rev 01)
00:1c.2 PCI bridge: Intel Corporation 82801G (ICH7 Family)
PCI Express Port 3 (rev 01)
00:1c.3 PCI bridge: Intel Corporation 82801G (ICH7 Family)
PCI Express Port 4 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family)
USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family)
USB UHCI Controller #2 (rev 01)
00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family)
USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family)
USB UHCI Controller #4 (rev 01)
00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family)
USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e1)
00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M)
LPC Interface Bridge (rev 01)
00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family)
SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus
Controller (rev 01)
01:00.0 VGA compatible controller: nVidia Corporation GeForce
Go 7950 GTX (rev a1)
03:01.0 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 IEEE 1394 Controller
03:01.1 Generic system peripheral [Class 0805]: Ricoh Co
Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:01.2 System peripheral: Ricoh Co Ltd R5C843 MMC
Host Controller (rev 01)
03:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory
Stick Bus Host Adapter (rev 0a)
03:01.4 System peripheral: Ricoh Co Ltd xD-Picture
Card Controller (rev 05)
09:00.0 Ethernet controller: Broadcom Corporation NetXtreme
BCM5752 Gigabit Ethernet PCI Express (rev 02)
0c:00.0 Network controller: Broadcom Corporation BCM4328
802.11a/b/g/n (rev 01)
翻译
相关推荐
-
XP安装桌面虚拟化客户端报错
使用恩杰的桌面虚拟化,win7及以上系统无报错,但在XP客户端安装 citrix receiver […]
-
xen上配置npiv问题
请问有人在xenserver上配置成功过npiv吗?虚拟出的vport如何只给某个虚拟机使用?还是只能把存储中 […]
-
虚拟化到底学xen还是kvm?
虚拟化到底学xen还是kvm,网上看了一堆对比,都没说个说法,各大云厂商都是用的xen,但是kvm又是redh […]
-
如何可以用CentOS 6.6 + Xen + Heartbest 3 建立高可用集群系统﹖
因为上司希望在公司内部用三台没有人用的Dell PowerEdge R610服务器上用CentOS 6.6 + […]