とあるプログラマの日常

技術ネタから音楽ネタ、お絵描きなどなど、趣味丸出しのブログです。

ぼっちハッカソンの準備(VMwareとCentOS7との相性悪いぞw)

ここ2年ぐらい、OpenStackとかOpenDaylightがらみの仕事が増えてきたのもあって、家で色々調べることも増えてきたりしていますw
で、その調査環境をVMwareを使って構築中だったりします...

ちなみに、以前はVirtualBoxを使っていたけど、ゲストOS上にKVM動作させることができないので、2年ぐらい前にVMwareに切り替えました...orz

今日、VMware上にCentOS7.1使ってOpenStackとOpenDaylightの検証環境を作っていたら、複数NICを認識しないトラブルが....orz
FedoraやCent6.5では起きなかったので、多分VMwareとCentOS7との相性らしい...

色々調べてみて、何とか回避策を見つけたです...
う~ん、かなり時間を無駄にした...

結論から言うと、VMwareの構成定義ファイル(vmx)のNICドライバ設定が、1つ目しか定義されていないことが原因のようでした。

例えはこんな感じ...

ethernet0.present = "TRUE"
ethernet0.vnet = "VMnet0"
ethernet0.connectionType = "custom"
ethernet0.virtualDev = "e1000"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
ethernet1.present = "TRUE"
ethernet1.vnet = "VMnet1"
ethernet1.connectionType = "custom"
ethernet1.wakeOnPcktRcv = "FALSE"
ethernet1.addressType = "generated"
ethernet2.present = "TRUE"
ethernet2.vnet = "VMnet2"
ethernet2.connectionType = "custom"
ethernet2.wakeOnPcktRcv = "FALSE"
ethernet2.addressType = "generated"

ethernet1とethernet2のvirtualDev指定が抜けています。
この定義はゲストOSで変わるものではないので、一つ目の定義だけでも動作するようだけど、CentOS7ではダメっぽいようです...

なんでだ??

なので、CentOS7をゲストOSとして環境を構築するのであれば、CentOS7をインストールする前に、ethernet1とethernet2のvirtualDev指定を追加する必要があります....

今回、イメージファイルを作成している環境にあるKilo-Comp.vmxファイルに、ethernet1とethernet2のvirtualDev指定を追加しました。

...
ethernet0.present = "TRUE"
ethernet0.vnet = "VMnet0"
ethernet0.connectionType = "custom"
ethernet0.virtualDev = "e1000"
ethernet0.wakeOnPcktRcv = "FALSE"
ethernet0.addressType = "generated"
ethernet1.present = "TRUE"
ethernet1.vnet = "VMnet1"
ethernet1.connectionType = "custom"
ethernet1.virtualDev = "e1000"
ethernet1.wakeOnPcktRcv = "FALSE"
ethernet1.addressType = "generated"
ethernet2.present = "TRUE"
ethernet2.vnet = "VMnet2"
ethernet2.connectionType = "custom"
ethernet2.virtualDev = "e1000"
ethernet2.wakeOnPcktRcv = "FALSE"
ethernet2.addressType = "generated"
...

これでインストール時にNICが正しく認識されるようになりました...

さて、これで準備ができたので、これから環境構築を始めますか....