web-dev-qa-db-ja.com

システムがBIOS設定でデフォルトで仮想化を無効にするのはなぜですか?

デフォルトの構成でMMUおよび有効なI/O仮想化が有効になっているシステムはまだ見ていません。64ビットのサポートなど、必要に応じて再起動してBIOSを有効にする必要があります。 VM上で。

これがオンになっていて、仮想化を使用していない場合に発生する、ある種の実質的なプロセッサオーバーヘッドはありますか?そうでない場合、デフォルトでオフになっている理由は何ですか?

83
John Feminella

Blue Pill のような概念実証のルートキットがしばらくありましたが、VTがオンのシステムを所有できました。この発見後、ほとんどのベンダーは、一般的なセキュリティ対策として、VTを無効にした状態でユニットの出荷を開始しました。

53
MDMarra

購入するすべてのサーバーブレードでは、仮想化がデフォルトで有効になっています。それは、ベンダが多くのサポートコールを節約するためにそうすることを商業的に決定したためかもしれません。

プロセッサがヒットしたために無効になるのではなく、何に使用されているかによって異なります。これらの機能を有効にすると、周辺機器のアクセスに影響する可能性があるため、デフォルトではオフになっている可能性があります。

5
Sirch

この他のスレッドによると、パフォーマンスにも影響があるようです https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization -off

命令の数を減らした方が効率的であるため、これは私には関係があるようです。 BIOSオプションの変更がこれに直接影響する可能性があるとは思いもしませんでした。

影響が大きいかどうかはわかりませんが、これとセキュリティの潜在的な欠陥を考慮すると、このようなめったに使用されない機能をデフォルトで無効にすることは、私にとっては良い選択のように思えます。

2
Balmipour

もう1つの理由は、ほとんどのユーザーカーネル関数(gettimeofdayなど)がVDSOで移動されていることです。

仮想化では、この高速パスを有効にできない場合があります。

したがって、システムは次のことができません。

これらの関数を高速に実行する

ユーザーランドからカーネルへの高価な切り替えを避けて戻る

1
Massimo

@MDMarraの回答で提起されたセキュリティの懸念に加えて、次の2つの点を考慮する必要があります。

  1. 有効になっているオプション機能には、他の機能との厄介で予期しない相互作用が発生する可能性が低いため、追加の検証が必要です。 PCベンダーhateほとんど使用されない機能にリソースを費やすため、クライアント側の仮想化もその1つです。

  2. #1が原因で、Intelの基本的なクライアントファームウェア/ BIOSブロブではVTが無効になっていると強く思います。したがって、VT対応クライアントを出荷するベンダーは、ファームウェアを準備するときにそのオプションをカスタマイズする必要があります。

そうは言っても、私たちは現在2019年にいます。デフォルトでVTが有効になっているクライアントが他にもあります。サーバーはまったく別の問題です。私は常にVTが有効になっているだけでなく、VT-dも頻繁にアクティブであることに気付きました。

0
shodanshok