ウェブサイト検索

仮想マシンとは何ですか、そしてどのように機能しますか?


要約

  • 仮想マシンは物理コンピュータをエミュレートします。作成と構成が簡単で、ホストコンピュータに損害を与えることなく実験できます。
  • ホストコンピュータには、VMをサービスするために十分なRAM、CPUパワー、およびハードドライブの空き容量が必要です。
  • VMはオペレーティングシステムをテストドライブしたり、物理コンピュータに展開する前に安全な場所で構成変更を試したりするのに最適です。

おそらく「バーチャルマシンを立ち上げる」や「バーチャルマシンで試してみてください」というフレーズを耳にしたことがあるでしょう。しかし、バーチャルマシンとは何でしょうか、そしてどのように活用できるのでしょうか?

仮想マシンとは何ですか?

仮想マシン (VM) は、コンピュータのソフトウェアベースのエミュレーションです。ハイパーバイザーと呼ばれるプログラムがあなたのコンピュータ上で実行されます。これにより、仮想マシン—仮想コンピュータを作成し、通常はハードウェアで配置されるRAM、ハードドライブの容量、CPUコア、その他の詳細を設定することができます。VMの設定が完了したら、それを起動し、オペレーティングシステムをインストールできます。

ハイパーバイザーは物理コンピュータのハードウェアをエミュレートする必要があります。そうすることで、オペレーティングシステムは通常の物理コンピュータ上で動作していると信じることができます。また、実際のコンピュータ(ホストコンピュータと呼ばれる)のハードウェアでサービスを必要とするリクエストをホストに渡す必要があります。たとえば、VM内のアプリケーションがウェブサイトにアクセスしようとすると、VM内の仮想ネットワークカードと相互作用しますが、実際のネットワークリクエストはホストのネットワークカードによって処理されます。

VMは作成が簡単で、使い捨てでき、実際のコンピュータのように使用できるため、テスト、開発、トレーニングによく使われます。VMは非常に迅速にシャットダウンして再起動でき、現在の状態のスナップショットを保存することもできます。

さらに、VMはホストコンピュータに害を及ぼさないため、安全に実験することができます。興味のあるLinuxディストリビューションを調査するための素晴らしい方法としてしばしば推奨されており、これはVMの素晴らしい使用例です。

macOS、Windows、およびLinux、BSD、OpenIndianaなどのUnix系オペレーティングシステム上でVMを使用できます。すべてのプラットフォームで、かつて商業用であったVMware Workstationのような無料のハイパーバイザーや、Oracle VirtualBoxのようなオープンソースの提供が見つかります。

私はWindowsとLinuxの両方で仮想マシン(VM)を使用してきましたが、そのほとんどはLinux上です。しかし、実際には、どのプラットフォームでもVMを使用することは同じです。ハイパーバイザーをインストールし、仮想マシンを設定し、その中にオペレーティングシステムをインストールします。いくつかのLinux特有の観察を除けば、ここでのすべてはすべてのプラットフォームに当てはまります。

あなたのコンピュータはその作業に耐えられる必要があります

VM は仮想のものであるかもしれませんが、動作させるためには実際のハードウェアが必要です。残念ながら、空気からハードウェアを生み出すことはできません。したがって、コンピュータに 16GB の RAM がある場合、VM に 32GB の RAM を割り当てることはできません。また、すべての RAM を VM に割り当てて、ホストが動作するためのものを何も残さないこともできません。

あなたはまた、VMのハードドライブを保存するために十分な空きハードドライブスペースが必要です。現代のハイパーバイザーでは、VMのハードドライブの最大サイズを指定することができます。これにより、VMはハードドライブの使用された部分のみを保存します。

VMのスナップショットを保存したい場合、これにもハードドライブのスペースが必要です。スナップショットは、仮想マシンの全状態をキャプチャし、アプリケーションが開いて実行されている状態でシャットダウンすることを可能にし、再起動した際に全く同じ状態に戻すことができます。

スナップショットは、実験の安全ネットを提供します。もしも、あなたの仮想マシンに悪影響を及ぼす可能性があることを行おうとしているなら、まずスナップショットを作成してください。実験が思わしくない結果になってしまった場合は、保存したスナップショットを復元すれば、仮想マシンは不運な変更を行う前の状態に戻ります。

あなたのCPUは仮想化をサポートしている必要があり、場合によってはBIOSで仮想化を有効にする必要があります。ほとんどの現代のCPUは仮想化をサポートしており、Intel VT-xおよびAMD AMD-VファミリーのCPUが含まれます。

VMとホストが十分な速度で動作するように、十分なCPUパワーも必要です。もし小さなVMネットワークを設定し、同時に同じホストで実行する必要がある場合は、速いCPUと大量のRAMが必要になります。

Linux上の仮想マシン

2007年以降、Linuxカーネルはカーネルベースの仮想マシン(KVM)をサポートしています。これは、カーネルがハイパーバイザーとして機能できることを意味します。KVM仮想マシンの作成と制御は、QEMUのような仮想マシンモニターを使用して行われます。

QEMUは、ホストコンピュータの物理的なアーキテクチャとは異なるCPUを含む特定のハードウェアをエミュレートすることを可能にします。QEMUはコマンドラインプログラムです。初心者は、GNOME Boxesのようなグラフィカルフロントエンドの方が扱いやすいと感じるかもしれません。GNOME Boxesは、QEMUの複雑さをアクセスしやすく直感的なグラフィック表示で包みます。

私にとって、VirtualBoxは十分な機能性と設定の柔軟性を持ちながら、面倒で長ったらしいセットアップを必要としない絶妙なバランスを持っています。

ネットワーキングとデバイスへのアクセス

時には、VMにネットワーク上の他のデバイス、たとえばプリンターと対話させたい場合があります。これをネットワーキングで実現する方法はいくつかあり、ハイパーバイザーにはおそらくVMのネットワーキングパラダイムを選択するためのオプションメニューがあります。

デフォルトは通常、ネットワークアドレス変換(NAT)であり、これによりあなたのVMはインターネットにアクセスし、ファイルをダウンロードすることができます。しかし、それはホストコンピュータが接続されているネットワークを見ることができません。あなたにとってVMの隔離が最も重要であれば、このモードを使用してください。

ホストコンピュータが接続されているネットワークの1つにアクセスする最も簡単な方法は、ブリッジ接続ネットワーキングを使用することです。物理ネットワーク上の他のネットワークデバイスへのアクセスが重要な場合は、VMをブリッジ接続ネットワーキングで構成してください。これにより、VMはホストと同じネットワーク上に配置されます。

ホストに接続されているUSBデバイスにVMがアクセスできるようにすることは有用です。通常、これにはVMでUSB機能をオンにする必要があります。USB 1.0、2.0、または3.0のいずれかを使用する選択肢があるかもしれません。

ホストにUSBデバイスを接続すると、VMがそれを取得する機会があります。その際、ホストコンピュータはデバイスが抜かれたと認識します。VMにとっては、物理的なUSBデバイスがその仮想USBポートの1つに接続されたように見えます。

バーチャルの美徳

仮想マシンは、いくつかのポイントを理解していれば、他のオペレーティングシステムを評価するための素晴らしい方法です。

VM上のオペレーティングシステムは、ベアメタル上で動作するよりも常にわずかに遅れます。パフォーマンスの速度については良い感覚を得ることができますが、正確な測定値にはなりません。また、あなたのVMはホストにあるものと同じグラフィックカードで装備されていないため、そのオペレーティングシステムがゲーム用グラフィックカードを搭載した物理コンピュータでどのように動作するかをテストすることはできません。

しかし、Linuxディストリビューションのインストールの容易さを調査し、特定のデスクトップ環境やタイルウィンドウマネージャが自分の好みやワークフローに合うかどうかを確認する方法として、VMは完璧です。Linuxを実行していますが、時々Windowsにアクセスする必要がありますか?それなら、VMで立ち上げてください。

そして、何よりも、新しいオペレーティングシステムを徹底的に試すことができ、ホストコンピュータに触れることなく使用することができます。

関連記事: