ESX 2.5 ネットワーク設定

普段ははてなグループの方で書いている仮想化関連の話題ですが、別に今回は仮想化というよりもサーバ設定の内容なのでこちらで。

通常、VM用のNICとService Console用のNICは分離する。
ただし、ブレードサーバの場合など、NICの数や構成が限定されている環境ではNICVM用とService
Console用で共有する構成としなければならない場合もある。
共有構成とする場合は"vmxnet_console"ドライバを使用して行う。
設定手順は以下の通り。

1."vmkpcidivy -i"でPCIバイスの割り当て設定を対話モードで設定する(Broadcom NICを共有[s]に設定する)
2."/etc/vmware/hwconfig"ファイルを編集する

nicteam.vmnic0.team = "bond0"
nicteam.vmnic1.team = "bond0"

※優先パスを定義する場合は"nicteam.bond0.home_link = "vmnic0""も
3."/etc/rc.local"にvmxnet_consoleモジュールをロードする設定を追記する

/etc/rc.d/init.d/network stop
rmmod vmxnet_console
insmod vmxnet_console devName=bond0
/etc/rc.d/init.d/network start
mount -a

※VLANを定義する場合は多少異なる。VMware ESX Serverインストールガイド及び運用ガイド参照のこと
4."/etc/modules.conf"を編集する(NICモジュールをコメントアウトする)

# alias eth0 bcm5700
# alias eth1 bcm5700

サーバに搭載されているNICなどのPCIバスデバイスは"/sbin/lspci"で確認することができる。

[root@ESXtest01 root]# /sbin/lspci
(省略)
01:01.0 Ethernet controller: BROADCOM Corporation NetXtreme BCM5703 Gigabit Ethernet (rev 02)
02:01.0 Ethernet controller: BROADCOM Corporation NetXtreme BCM5703 Gigabit Ethernet (rev 02)
02:02.0 Fiber Channel: QLogic Corp QLA231x/2340 (rev 02)
02:02.1 Fiber Channel: QLogic Corp QLA231x/2340 (rev 02)
[root@ESXtest01 root]#

上記から、PCI1:1:0とPCI2:1:0がBroadcom製のGigabit NIC、PCI2:2:0とPCI2:2:1がQLogicのHBAであることがわかる。
バイスの内、どれがService Console用でどれがVM用に割り当てられているのかは"/usr/sbin/vmkchdev -L"で確認することができる。

[root@ESXtest01 root]# vmkchdev -L
000:00.0 1166:0012 0000:0000 console
PCI device 1166:0012 (ServerWorks)

(省略)
001:01.0 14e4:16a7 1014:0281 vmkernel vmnic0
PCI device 14e4:16a7 (BROADCOM Corporation)

002:01.0 14e4:16a7 1014:0281 vmkernel vmnic1
PCI device 14e4:16a7 (BROADCOM Corporation)

002:02.0 1077:2312 1014:027d vmkernel vmhba0
PCI device 1077:2312 (Q Logic)

002:02.1 1077:2312 1014:027d vmkernel vmhba1
PCI device 1077:2312 (Q Logic)

[root@ESXtest01 root]#

上記から、"vmkernel"と記載されているBroadcom NIC x2個とQLogic HBA x2個はvmkernelに割り当てられていることがわかる。ただし、共有に設定されているものはvmkernelが所有していると表示されるので注意が必要。
ちなみにService Consoleが所有しているデバイスは"console"と表記される。
vmkernelが読み込んでいるデバイスモジュールは"/usr/sbin/vmkload_mod -l"で確認することができる。

[root@ESXtest01 root]# /usr/sbin/vmkload_mod -l
Name        R/O Addr    Length      R/W Addr    Length      ID Loaded
vmklinux    0x4ea000    0x10000     0x125b090   0x54000     1  Yes
nfshaper    0x4fa000    0x1000      0x12b2e20   0x1000      2  Yes
qla2300_7xx 0x4fb000    0x28000     0x12b3e28   0x68000     3  Yes
bcm5700     0x523000    0x11000     0x15a11a8   0xa000      4  Yes
bond        0x534000    0x2000      0x15bbfd8   0x2000      5  Yes
[root@ESXtest01 root]#

上記からQlogicのHBA、BroadcomNIC、およびbondドライバをvmkernelがロードしていることがわかる。
NICおよびBONDのステータスは"/proc/vmware/net"以下で確認することができる。

[root@ESXtest01 vmnic0]# cat /proc/vmware/net/vmnic0/config
VLanHwTxAccel             Yes
VLanHwRxAccel             Yes
VLanSwTagging             Yes
PromiscuousAllowed        No
InterruptClustering       No
Link state:               Up
Speed:                    1000 Mbps, full duplex
Queue:                    Running
PCI (bus:slot.func):      1:1.0
Minimum Capabilities      0x0
Device Capabilities       0x76b
Maximum Capabilities      0x76b
NICTeamingMaster:         bond0
TeamFailoverBeacon:       Off

Interrupt vector          0x69
DebugSocket               Closed
[root@ESXtest01 vmnic0]# cat /proc/vmware/net/vmnic1/config
VLanHwTxAccel             Yes
VLanHwRxAccel             Yes
VLanSwTagging             Yes
PromiscuousAllowed        No
InterruptClustering       No
Link state:               Up
Speed:                    1000 Mbps, full duplex
Queue:                    Running
PCI (bus:slot.func):      2:1.0
Minimum Capabilities      0x0
Device Capabilities       0x76b
Maximum Capabilities      0x76b
NICTeamingMaster:         bond0
TeamFailoverBeacon:       Off

Interrupt vector          0x71
DebugSocket               Closed
[root@ESXtest01 vmnic0]#
[root@ESXtest01 bond0]# cat /proc/vmware/net/bond0/config
VLanHwTxAccel             Yes
VLanHwRxAccel             Yes
VLanSwTagging             Yes
PromiscuousAllowed        No
InterruptClustering       No
Link state:               Up
Speed:                    1000 Mbps, full duplex
Queue:                    Running
PCI (bus:slot.func):      -1:-1.-1
Minimum Capabilities      0x0
Device Capabilities       0x76b
Maximum Capabilities      0x76b
NICTeamingSlaves:         Name     LinkUp   BeaconState
                         vmnic0   Yes      Off
                         vmnic1   Yes      Off
NICTeamingLoadBalance:    Off (HomeLink: vmnic0)
NICTeamingSwitchFailover: Off

Interrupt vector          0xfffffffe
DebugSocket               Closed
[root@ESXtest01 bond0]#

"vmxnet_console"モジュールが読み込まれていることは"/sbin/lsmod"で確認することができる。

[root@ESXtest01 root]# /sbin/lsmod
Module                  Size  Used by    Tainted: PF
vmxnet_console         18832   1
sg                     33540   0  (autoclean)
vmnixmod              231264   3  [vmxnet_console]
bcm5700                88740   0
mousedev                5088   1
keybdev                 2464   0  (unused)
hid                    20736   0  (unused)
input                   5952   0  [mousedev keybdev hid]
usb-ohci               20000   0  (unused)
usbcore                64992   1  [hid usb-ohci]
[root@ESXtest01 root]#

vmxnet_consoleモジュールを読み込むと、vmnixmodに対してのService Consoleからの窓口として動作する。
ちなみにNICとは関係ないが、HBAのマルチパスは"vmkmultipath -q"で確認することができる。

[root@ESXtest01 root]# vmkmultipath -q
Disk and multipath information follows:

Disk vmhba0:0:1 (40,960 MB) has 2 paths.  Policy is mru.
     vmhba0:0:1       on  (active, preferred)
     vmhba1:0:1       on

Disk vmhba0:0:2 (40,960 MB) has 2 paths.  Policy is mru.
     vmhba0:0:2       on  (active, preferred)
     vmhba1:0:2       on

Disk vmhba0:0:31 (20 MB) has only 1 path.

Disk vmhba1:0:31 (20 MB) has only 1 path.
[root@ESXtest01 root]#

上記の場合、2つのLUNがSANストレージ上に認識されており、いずれも0番側のAdapter経由がactiveになっている。