`

VMWare不支持eth-tool,mii-tool等工具及使用E1000网卡

阅读更多

    在VMWare中安装Linux时发现无法使用eth-tool,mii-tool等工具查询网卡的信息,导致一些程序都不能工作,其实是虚拟网卡的问题。

    一直以来,VMware都在虚拟客户机中提供的是古老的AMD PCNet10/100Mbps虚拟网卡,后来,VMware通过一种类似部分虚拟化的vmxnet优化虚拟网卡的方式提供了10/100 /1000Mbps性能,无疑性能更好。现在,VMware ESX Server已经可以提供基于Intel E1000的千兆虚拟网卡,从兼容性和性能的角度来看,E1000都是更好的选择。但似乎,在ESX/ESXi 3.5的图形界面中,都无法直接选择该网卡类型,需要手动配置。

一、为什么要用E1000
原有很很 多,其中最主要的有两个:
1、PCNet32 网卡太古老
这个古老的意思是,该网卡已经不适应新操作 系统的要求了。而且也不支持mii-tool等检测工具,过去用虚拟客户机测试HA集群时,就无法监控虚拟的PCNet32 网卡。
甚至在 Linux kernel的默认配置中,都需要费一番功夫才能找到该网卡的编译模块选项。
2、性能
现 在的服务器基本都提供千兆的网卡,若虚拟客户机中仍只提供100Mbps虚拟网卡,性能肯定会降低的。
另一方面,vmxnet与E1000的对比 中,也会发现E1000的效率更高,见 这里
因此,建议把虚拟客户机中的网卡设置为Intel E1000类型。

 

二、指定网卡类型

2、默认配置
在Linux中,为PCNet32 网卡:

引用
# lspci -v
00:11.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 10)
        Subsystem: Advanced Micro Devices [AMD] PCnet - Fast 79C971
        Flags: bus master, medium devsel, latency 64, IRQ 177
        I/O ports at 1400 [size=128]
        [virtual] Expansion ROM at 50000000 [disabled] [size=64K]
# cat /etc/modprobe.conf|grep eth
alias eth0 pcnet32
# ethtool eth0
Settings for eth0:
        Current message level: 0x00000007 (7)
        Link detected: yes
# mii-tool eth0
SIOCGMIIPHY on 'eth0' failed: Operation not supported


3、修改配置
若希望把虚拟网卡类 型改为Intel E1000,直接修改对应虚拟客户机的.vmx文件:

先关闭VMWare WorkStation,不然修改会被覆盖


加入或修改:

ethernet0.virtualDev = "e1000"


保存即 可。若有多个网卡,采取同样的操作。

值为"e1000"指定网卡类型为Intel(R) PRO/1000
值为"vlance"指定网卡类型为AMD PCNet AM79C970A(默认为此项)

值为"vmxnet"指定网卡类型为VMware PCI Ethernet Adapter


重启虚拟客户机后,可看到结果:

引用
# lspci -v
00:13.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)
        Subsystem: VMware Inc Abstract PRO/1000 MT Single Port Adapter
        Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 193
        Memory at f4840000 (64-bit, non-prefetchable) [size=128K]
        Memory at f4810000 (64-bit, non-prefetchable) [size=64K]
        I/O ports at 14c0 [size=64]
        [virtual] Expansion ROM at 50010000 [disabled] [size=64K]
        Capabilities: [dc] Power Management version 2
        Capabilities: [e4] PCI-X non-bridge device
# cat /etc/modprobe.conf|grep eth
alias eth0 e1000
# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
        Link detected: yes
# mii-tool eth0
eth0: negotiated 100baseTx-FD, link ok


下面是VMware Guest Operating System Installation Guide中的一段内容:
The AMD Ethernet card driver included with certain Windows Vista builds—including 4074 and possibly others—does not work correctly or is not included with Windows. To use networking in these Windows Vista guest operating systems, you must change the network adapter. A driver for the vmxnet adapter is included in VMware Tools.
VMware GSX Server: Choose VM > Settings > Network Adapter (Windows) or VM > Settings > NIC (Linux), and select vmxnet as the virtual device to use. Then install VMware Tools. A driver for the vmxnet adapter is included in VMware Tools.
VMware Workstation 4.x or lower, or VMware ACE, on a Windows host: Use a text editor such as Notepad to edit the configuration (.vmx) file for your Windows Vista virtual machine. Add the following line:
Ethernet[n].virtualDev = "vmxnet"
Replace [n] with the number of the Ethernet adapter. The first Ethernet adapter is number 0, so the line for that adapter is
Ethernet0.virtualDev = "vmxnet"
Include a line for each Ethernet adapter configured for the virtual machine. Then install VMware Tools. A driver for the vmxnet adapter is included in VMware Tools.
VMware Workstation 4.x or lower on a Linux host: Choose VM > Settings, select Network Adapter, and then select vmxnet as the virtual device to use. Then install VMware Tools. A driver for the vmxnet adapter is included in VMware Tools.
VMware Workstation 5.0.x: Install VMware Tools. A driver for the network adapter is included in VMware Tools.
VMware Workstation 5.5.x and VMware Server 1.x: Install VMware Tools. A vmxnet driver for the network adapter is included in VMware Tools. Installing VMware Tools automatically switches the network adapter to vmxnet, and installs the vmxnet driver.
Alternatively, you can change the network adapter to e1000 (the Intel® PRO/1000 MT Adapter) before installing Windows Vista. Use a text editor such as Notepad to edit the configuration (.vmx) file for your Windows Vista virtual machine. Add the following line:
Ethernet[n].virtualDev = "e1000"
Replace [n] with the number of the Ethernet adapter. The first Ethernet adapter is number 0, so the line for that adapter is
Ethernet0.virtualDev = "e1000"
Include a line for each Ethernet adapter configured for the virtual machine.
ESX Server 2.x: In the Hardware page, under Network Adapter, click Edit. In the Network Adapter page, in the Device Binding list, select the virtual network device that you want the virtual machine to use. In the Virtual Device list, choose vmxnet. Then install VMware Tools. A driver for the vmxnet adapter is included in VMware Tools.
ESX Server 3.x: Install VMware Tools. A vmxnet driver for the network adapter is included in VMware Tools. Installing VMware Tools automatically switches the network adapter to vmxnet, and installs the vmxnet driver.
Alternatively, you can change the network adapter to e1000 (the Intel® PRO/1000 MT Adapter) before installing Windows Vista. Use a text editor such as Notepad to edit the configuration (.vmx) file for your Windows Vista virtual machine. Add the following line:
Ethernet[n].virtualDev = "e1000"
Replace [n] with the number of the Ethernet adapter. The first Ethernet adapter is number 0, so the line for that adapter is
Ethernet0.virtualDev = "e1000"
Include a line for each Ethernet adapter configured for the virtual machine.
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics