ESXi

ESXi7.0の仮想マシンで10GbEを使う方法(NICの変更)

0
(0)

ESXi上で複数の仮想マシンを運用している場合には仮想スイッチ(vSwitch)を介してネットワーク通信を行います。Hyper-Vの場合VM-vSwitch間でリンクスピードの設定項目はなかった認識なんですが(私の知識不足かもしれません)vSphereの場合は設定できそうですので今回は仮想マシンのNICを変更することにより10GbE通信を実現します。

下記ドキュメントに仮想NICについての解説がされていますが、ESXiでは何も設定をしないとE1000eという1ギガビットNICが選択されてしまいます。ここをVMXNET3に変更することで10GbE通信を実現することができます。

仮想NICの変更方法

管理画面からは変更できそうもない雰囲気でしたのでESXiサーバに直接SSHしてログインして、vmxファイルを変更してうことにします。編集前に仮想マシンはシャットダウンしておきます。

toolScripts.beforeSuspend = "TRUE"                               
toolScripts.beforePowerOff = "TRUE"                              
tools.syncTime = "FALSE"                                         
sched.cpu.min = "0"                                              
sched.cpu.shares = "normal"                                      
sched.mem.min = "16384"                                          
sched.mem.minSize = "16384"                                      
sched.mem.shares = "normal"                                      
vmci0.id = "-949463040"                                          
cleanShutdown = "TRUE"                                           
firmware = "efi"                                                 
sched.mem.pin = "TRUE"                                           
numvcpus = "8"                                                   
ethernet0.virtualDev = "e1000e"                                  
ethernet0.networkName = "Home Network"                           
ethernet0.addressType = "generated"                              
ethernet0.wakeOnPcktRcv = "FALSE"                                
ethernet0.present = "TRUE"                                 
ethernet0.generatedAddress = "00:0c:29:68:58:00"
extendedConfigFile = "atsushi.vmxf"             
pciPassthru3.id = "00000:001:00.3"              
pciPassthru3.deviceId = "0x1ad9"                
pciPassthru3.vendorId = "0x10de"                
pciPassthru3.systemId = "5f445e80-ba56-9874-50f7-58278cbf4213"
pciPassthru3.present = "FALSE"                                
pciPassthru3.pciSlotNumber = "-1"     

上記の仮想デバイス指定部分をE1000eからVMXNET3に変更するだけです。具体的には以下のように「vmxnet3」に変更します。

ethernet0.virtualDev = "vmxnet3"

NICの変更方法についてはWindows仮想マシンでもLinux仮想マシンでも上記変更で完了できます。

Windows仮想マシンの場合

具体的にWindows仮想マシンの場合の動きについて見ていきます。

変更前

コントロールパネルから「ネットワークと共有センター」を開いて情報を見てみると、インタフェース名は「Ethernet0」、速度(リンクスピード)は1.0Gbpsであることがわかります。

インタフェース名は「Ethernet0」

 

リンクスピードは1.0 Gbps

デバイスマネージャからはNICがIntel(R) 92574L Gigabit Network Connectionとなっています。

ネットワークアダプター名は「Intel 92574L Gigabit Network Connection」

変更後

次にvmxファイルを書き換えて仮想NICアダプターをVMXNET3に変更します。そして同じくコントロールパネルから「ネットワークと共有センター」を開いて情報を見てみると、インタフェース名は「Ethernet0 2」、速度(リンクスピード)は10.0Gbpsであることがわかります。

インタフェース名は「Ethernet0 2」

リンクスピードは10.0 Gbps

デバイスマネージャからはNICがvmxnet3 Ethernet Adapterと変更されました。

ネットワークアダプター名は「vmxnet3 Ethernet Adapter」

注意点としてはNICが変更になるので、静的に指定していたIPアドレス等の設定は消えることに注意してください。再設定が必要となります。

Linux仮想マシンの場合

次に仮想マシンの場合の動きについて見ていきます。

私の場合、Linux仮想サーバのvmxファイルにethernet0.virtualDevというエントリーがそもそもなかったので、追加しています。

ethernet0.virtualDev = "vmxnet3"

このエントリーがなかったせいかもしれませんが、ethtool コマンドでリンクスピードが表示されない、という事象が発生していました。

[root@linux ~]# ethtool eth0
Settings for eth0:
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes
[root@linux ~]#

エントリーを指定したところ以下のように10Gでリンクアップしていることが確認できています。

[root@linux ~]# ethtool eth0
Settings for eth0:
	Supported ports: [ TP ]
	Supported link modes:   1000baseT/Full 
	                        10000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: No
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: 10000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: off
	MDI-X: Unknown
	Supports Wake-on: uag
	Wake-on: d
	Link detected: yes
[root@linux ~]# 

効果測定(Linux仮想マシンの場合)

せっかくなので仮想マシン間のネットワーク速度についてiperfを使ってパフォーマンス測定してみました。

変更前

[root@server ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.30.101 port 5001 connected with 192.168.30.102 port 55630
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.2 sec   700 MBytes   573 Mbits/sec
^C[root@server ~]# 
[root@client ~]# iperf -c server -l 100M
------------------------------------------------------------
Client connecting to server, TCP port 5001
TCP window size:  178 KByte (default)
------------------------------------------------------------
[  3] local 192.168.30.102 port 55630 connected with 192.168.30.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.2 sec   700 MBytes   574 Mbits/sec
[root@client ~]# 

変更後

約30倍の速度向上を確認することができました。

[root@server ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.30.101 port 5001 connected with 192.168.30.102 port 54288
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.1 sec  18.7 GBytes  15.9 Gbits/sec
^C[root@server ~]# 
[root@client ~]# iperf -c server -l 100M
------------------------------------------------------------
Client connecting to kamatawww, TCP port 5001
TCP window size: 2.54 MByte (default)
------------------------------------------------------------
[  3] local 192.168.30.102 port 54288 connected with 192.168.30.101 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  18.7 GBytes  15.9 Gbits/sec
[root@client ~]# 

記事は以上!

この記事は役に立ちましたか? | Is this article useful for you?

評価をお願いします | Please leave your rating.

平均 | Av.: 0 / 5. 投票数 | Votes: 0

最初の評価を下さい | Please vote for the first rating.

-ESXi
-, , , , , , ,

© 1999 - 2020 蒲田ネット