3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

VMware ESXiのネットワークアダプタを変えてみた(Solaris10 5/08)

VMware ESXi5.0 を使っていますが、今までネットワークアダプタは何気なく E1000 を使っていました。

テスト的に作った Solaris10 のゲスト環境でもE1000でした。

あまりアダプタで違いはないと思っていたんですが、どうやら結構違いあるようです。

詳しくは、VMware KB: 仮想マシンに使用するネットワーク アダプタの選択で解説されています。

簡単に言うと E1000 は Intel 82545EM ギガビット イーサネット NIC をエミュレーションしているようです。ほとんどのゲストOSでこのNICは利用できるようです。

VMXNET3 はパフォーマンス向上のために設計された準仮想化NICのようです。

Solarisは 10 U4 以降なら使えるようです。

今回のSolarisは以下の様なバージョンでした。

# cat /etc/release

Solaris 10 5/08 s10x_u5wos_10 X86

Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.

Use is subject to license terms.

Assembled 24 March 2008

Solaris10はアップデートが 5/08 とか 8/07 とかの名称になっていますが、VMwareのサイトには Update4 以降の対応と有ります。

Solaris 10 オペレーティングシステム アップデートリリース情報でどれが何番目のアップデートかわかります。

今回は 5/08 で5番目のアップデートなんで、VMXNET3は対応できるということになります。

VMwareの設定画面でE1000のアダプタを削除し、新たにVMXNET3のアダプタを作成します。

その後起動して ifconfig を叩いてみます。

bash-3.00# ifconfig -a

lo0: flags=2001000849 mtu 8232 index 1

inet 127.0.0.1 netmask ff000000

まだ設定していないので、自身のアダプタしか出てきてませんね。

dladmで一応アダプタを確認してみます。

bash-3.00# dladm show-dev

vmxnet3s0 リンク: unknown 速度: 0 Mbps デュプレックス: unknown

ちゃんと認識はしているようですが、無効なので unknown になっています。

NICを有効にしてやります。

bash-3.00# ifconfig vmxnet3s0 plumb

bash-3.00# dladm show-dev

vmxnet3s0 リンク: down 速度: 0 Mbps デュプレックス: full

unknownではなくなりました。VMwareの設定で非接続にしているのでdownになっています。

この状態でifconfigを叩いてみました。

bash-3.00# ifconfig -a

lo0: flags=2001000849 mtu 8232 index 1

inet 127.0.0.1 netmask ff000000

vmxnet3s0: flags=1000802 mtu 1500 index 2

inet 0.0.0.0 netmask 0

ether 0:50:56:xx:xx:xx

IPが設定されていないようです。

(Solaris)NICが2つある場合のIP設定で書いたようにインターフェイスとホスト名を、設定ファイル名で結びつける必要があります。IPは今までE1000で使っていたのを使うので、以下のようにファイルをリネームしました。

bash-3.00# mv /etc/hostname.e1000g0 hostname.vmxnet3s0

これでリブートします。

shutdwon -y -g0 -y6

再起動後ちゃんとネットワークが接続できるようになりました。

ベンチマークはとってないですが、どれくらいパフォーマンスがあがるもんなんでしょうね。