VMwareな日々

Blog移管しました 新URLはこちら https://lab8010.com/

vmkドライバーとネイティブドライバーの違い

以前にESXiに対しインストール可能なデバイスドライバーには2種類が存在するという記事を寄稿しました。

 

InboxドライバーとAsyncドライバーの2種類で、VMwareご本家の提供かサードパーティベンダー提供かの違いという所で紹介致しました。

 

今回はちょっと違ったカットでの2種類、の紹介です。

”vmkドライバーとネイティブドライバーの違い”についてです。同じドライバーでも、冒頭に"net"と付くものとそうでないものが確認出来ます。これらの違いに迫ります。

f:id:instructor8010:20180903102820p:plain

なお本記事の技術的な話のソースは、次の2つのブログからの引用となります。

www.virtuallyghetto.com

www.virtuallyghetto.com

<vmkドライバーについて>

  • ESXi 5.5以前までは、ドライバーはvmkドライバーというものしか存在していない
  • vmk ドライバー=Linux OS向けに提供されているドライバーである
  • ESXi=Linuxではない、VMware開発のオリジナルOSである
  • vmkernel(ESXi)とLinux用ドライバー(vmkドライバー)との間に、抽象化レイヤーを介在させ、これによりLinux用のドライバーをESXiで利用していた

Linuxと言えば、有名なあのオープンソースOSのことであり、当然ユーザー数や利用実績も多くあるため、ユーザー、コミュニティ、企業などにより多くのフィードバックを受け、日々改良がなされていると言える。一方で、元々Linuxのために作成されたドライバーである点から、パフォーマンス、拡張性、機能面ではESXiに最適化されているとは言いづらい状況です。

 

このため、VMwareではvSphere 5.5から、"ESXiのためのドライバー”を作成し、それを今後”Nativeドライバー”とした

f:id:instructor8010:20180903100353p:plain

William氏の記事から抜粋(新ドライバー開発に至った経緯が記述されている)

これらの点より、次のことが言える。

  • ドライバーの歴史的側面では、vmkドライバーの方が長く、Nativeドライバーは短い
  • 今後VMwareがリリースするであろう新機能などによってはNativeドライバーの利用が促される傾向が予測される

次のKBではNativeドライバーとvmkドライバーとでは、Nativeドライバーの場合では症状に問題ないことが言及されている。

https://kb.vmware.com/s/article/52980

f:id:instructor8010:20180903100957p:plain

直接的な表現こそ無いですが、各種VMware製品がNativeを基準とし製品動作を確認してリリースしているように見えなくもないです(この一文は私個人の見識です)

 

また別角度で言えば、これらのKB内部にも2つのドライバーに対する言及もなされており、基本的に5.5以降ではネイティブ ドライバーがデフォルトでカーネルに対してロードされる形となっています。

 

ESXi 5.5 以降でのネイティブ ドライバのトラブルシューティング

https://kb.vmware.com/s/article/2044993?lang=ja

ESXi 6.5 におけるネイティブ ドライバの有効化と無効化 (2149345)

https://kb.vmware.com/s/article/2149345

 

上記のKBでは、環境や条件によっては、必ずしもネイティブ ドライバーが適さない可能性もあるため、トラブルシュートや問題の恒久対策も見据え、vmkドライバーへの切り替え手法が紹介されています。

 

運用者の立場としては、ドライバーを一本化してくれて問題がない、というのが最も理想だと言えます。最終的にはネイティブ ドライバーのみですべてのことが出来るようになればな、と思います。