GNU/Linux >> Linux の 問題 >  >> Linux

仮想マシンとは何ですか、なぜそれを使用するのですか?

将来的には、このような完璧に作成されたバーチャルリアリティシステムを使用して、現実とほとんど区別がつかなくなるようにすることができます。そこにはない環境ですが、あなたはそれらを見て、感じることができます。私たちはまだそこにいるわけではありませんが、コンピューターの場合はそこにいます。仮想化テクノロジーは、私たちのコンピューターにこの可能性をもたらします。これにはさまざまなアプリケーションと動作原理があり、それらについてもう少し詳しく説明します。

仮想マシンとその必要性

はじめに

従来、オペレーティングシステム全体を実行するには、オペレーティングシステムを自由に使用できる一連の必須ハードウェアが必要です。複数のOSを実行するには、複数の起動も可能ですが、その場合、2つのオペレーティングシステムを同時に実行することはできません。 仮想マシンにより、同じハードウェアセットで複数のオペレーティングシステムを同時に使用できるようになりました。

仮想マシンの場合、いくつかの明らかなポイントがあります。この記事を始めたように、これはオペレーティングシステム用の一種のVRです。私たちが作成するVMは、「仮想」ハードウェアを利用します。ホストされたOSが使用するハードウェアは、そのOS自体の理解に関しては他のハードウェアと同じように現実的ですが、OSはそれをそのように見るように作られています。 OSが使用するRAM、ストレージ、およびプロセッサの能力は、実際のハードウェアのごく一部しか使用していません。この仮想化と管理はすべて、ハイパーバイザーと呼ばれるものによって行われます。

ハイパーバイザー

ハイパーバイザーは、VMの中心的なコンポーネントであるファームウェア、ソフトウェア、またはハードウェアです。ここで少し用語を明確にしましょう。VMがインストールされているシステムはホストシステムと呼ばれます。 VMにインストールされているマシンはゲストシステムと呼ばれます 。ハイパーバイザーは、VMとシステムの実際のハードウェア(またはハイパーバイザーをホストするOS)の間のすべてのリソースを管理するレイヤーです。 OSは仮想ハードウェアで実行されていますが、OSが実際のハードウェアにアクセスできるように見せかけるのはハイパーバイザーの仕事です。

ハイパーバイザーは、VMとして実行されているさまざまなOS間に安定した難攻不落の境界を提供します。ハイパーバイザーは、ユーザーが構成するVMのハードウェアコンポーネントをシミュレートします。 VMが(ハイパーバイザーを介して)利用するハードウェアは、システムの実際のハードウェアの一部です。したがって、実際のハードウェア制限を超えることはできません。たとえば、16 GBのRAMがある場合、2つのVM間で8GBとして分割できます。

重要な点は、VMを可能にするテクノロジーであるハイパーバイザーです。特別なハードウェアは必要ありません。これは、不可欠なソフトウェアコンポーネントにすぎません。ハイパーバイザーには2つの重要な種類があります。

タイプ2:ホスト型ハイパーバイザー

1の前にタイプ2を示していることは承知していますが、シーケンスがあります。ホストされているハイパーバイザーは、アプリケーションレベルにとどまります。これは、Oracle VM VirtualBox、VMWare、またはGNOMEBoxを使用したことがある場合はおなじみかもしれません。

これは、OS(アプリケーション自体がインストールされているOS)内に仮想マシンとしてOSをインストールできるようにするアプリケーションです。これは、セットアップと使用が非常に簡単です。 VMを作成し、必要なOSのイメージを取得できるアプリケーションをインストールするだけです。 VMが使用できるようにするRAMやハードドライブの容量などを直接指定できます。

特に私たちのような通常のユーザーにとって、ホスト型ハイパーバイザーを使用することには大きなメリットがあります。ただし、問題があります。コンピュータシステムの通常の構造は、次の順序に従います。

  • 物理ハードウェア
  • ファームウェア
  • ドライバー
  • オペレーティングシステム
  • アプリケーション

技術的に少し入ると、コンピュータシステムで使用するソフトウェアにはさまざまな「特権」があります。たとえば、プロセッサのパフォーマンスを構成するためのソフトウェアアクセスのみを許可すると、先に進んでシステム全体を簡単に台無しにする可能性があります。これは悪いセキュリティ慣行です。実際には、OSのカーネルがハードウェアと相互作用するようになります。アプリがハードウェアコンポーネントへのアクセスを必要とする場合、アプリはカーネルにリクエストを送信でき、カーネルは適切な応答を提供します。これらのリクエストはシステムコールと呼ばれます またはシステムコール

ここで、ホストされたハイパーバイザー上のVMの場合を取り上げます。たとえば、ゲストOSでアプリケーションを実行します。これにより、ゲストOSのカーネルにシステムコールが送信されます。これは、ハイパーバイザーによって解釈され、別のシステムコールに変換されます。ハイパーバイザーは、そのシステムコールをホストOSのカーネルに送信します(ホストされたハイパーバイザーは、ホストOSの単なる別のアプリケーションであるため)。ホストOSのカーネルは、応答をハイパーバイザーに送信します。ハイパーバイザーは、ゲストOSのアプリケーションに適した応答に変換する必要があります。ふぅ。

これはすべて、ホストされたハイパーバイザーが非常に長いプロセスを経なければならないことを意味します。最新のハードウェアのほとんどでは、見た目ほど長くはかかりませんが、ネイティブの速度やパフォーマンスとは異なります。これに対する解決策は、タイプ1ハイパーバイザーです。

タイプ1:ベアメタルハイパーバイザー

端的に言えば、ベアメタルハイパーバイザーはファームウェア/ドライバーレイヤーの上にあります。これは、OSと同じように、ハードウェアと直接対話できることを意味します。必要なすべてのOSは、ベアメタルハイパーバイザーの上にインストールされ、その上にアプリケーションがインストールされます。これにより、いくつかの利点が追加されます。ハイパーバイザーにインストールされているすべてのOSは、ほとんどネイティブOSと同じように非常に良好に動作し、ラグやスタッターは最小限に抑えられます。ハイパーバイザーがインストールされているハードウェアが強力な場合(ゲーミングコンピューターやサーバーの場合のように)、複数のOSを非常に簡単に管理できます。

ベアメタルハイパーバイザーの一般的な例には、VMWare ESXi、Microsoft Hyper-V、Citrix XenServer、Xen、LinuxKVMなどがあります。

コンテナ

コンテナはVMにいくぶん似ていますが、かなりの違いがあります。ホスト型ハイパーバイザーの場合に見たように、VMを使用してOS全体をインストールしてから、それらのOSの上にアプリケーションをインストールして使用します。一方、コンテナは、アプリケーションのコード、その依存関係、ツール、ライブラリ、ランタイム、およびその他すべての必要なものをパッケージ化し、仮想環境でそのアプリケーションだけを実行します。

この画像により、階層がより明確になります。コンテナがOSの上にインストールされ、アプリケーションがコンテナ内で直接実行されることに注意してください。 VMの場合のように、コンテナ内にOSはありません。

用途

そのため、VMの動作原理の詳細についてはすでに詳しく説明しました。それが実際のシナリオでどのように役立つかを知る時が来ました。

単一システムからの複数のワークステーション

VMの最初のポイントと主なセールスポイントは、同じマシンから同時に、互いに分離された複数のオペレーティングシステムを使用できるという事実です。これは信じられないほどの可能性を開きます。たとえば、同じ場所に2つのワークステーションが必要な場合は、2つの別々のシステムを同時に実行できる1つの強力なシステムを購入できます。これは確かに非常に効率的であることがわかります。

これも広く使用されています。使用していないOSで実行されるアプリケーションが必要な場合は、コンピューターにオペレーティングシステムをインストールする必要はありません。ホストされているハイパーバイザーソフトウェアをOSにインストールし、サポートされているOSをインストールできます。対処がはるかに簡単で、仕事を成し遂げることができます。

最大使用率

リソースの最大使用率が、仮想化がサーバーで非常に人気がある理由です。サーバーは非常に強力なコンピューターです。単一のOSが実際にハードウェアのリソースを完全に利用することは困難です。解決?ベアメタルハイパーバイザーをインストールし、ハードウェア全体を一緒に使用する複数のオペレーティングシステムを実行します。

したがって、VMはリソースを最大限に活用します。しかし、私たちが話しているのはサーバーだけではありません。たとえば、強力なゲーミングコンピュータを使用している場合は、代わりに、1つのOSをプライマリワークステーションとして使用し、もう1つをNASとして使用することで、ハードウェアを完全に使用できます。または、もっと重要な数のOSとタスクかもしれません。

電力効率

2つの異なるシステム用の2つの別々のマシンではなく、1つのマシンを使用して2つのシステムを実行できるようになったため、電力と電力を大幅に節約できます。それはあなたの電気代に良いです。それは間違いなく環境にも良いです。

物理空間/モビリティ

さまざまなデバイスの代わりに1台のマシンを複数のシステムに使用できるため、自然に多くの物理スペースを節約できます。つまり、1台の非常に強力なマシンを入手すれば、複数のマシンの要件を満たすことができるため、インフラストラクチャをある場所から別の場所に移動する必要がある場合は、従来よりも少ない物理ハードウェアを移動する必要があります。 。

回復

これは便利な機能です。 VMには、「スナップショット」を撮る特性があります。システム全体が仮想であるため、VMは特定の時間間隔でプロパティ、設定、およびデータのコピーを作成します。そのため、ある時点でシステムが混乱したり破損したりした場合でも、安定した状態の1つに戻すことができ、それほど害はありません。

テストエリア

VM(実際にはコンテナーでもあります)は、テストの場としてよく使用されます。仮想セットアップで発生する可能性のある問題は、実際のハードウェアに害を及ぼすことはないため、新しいソフトウェア(特にファームウェア)のテストに理想的な場所になります。開発者はVMを使用して、さまざまなOSとの互換性も確認することがよくあります。

結論

仮想マシンは、以前の方法に比べて多くの改善を提供してくれました。これで、システムをより小さなスペースで、より効率的に、より安全に実行できるようになりました。これらは、OSでネイティブにサポートされていないソフトウェアを使用するための簡単なソリューションになっています。 VMは、テスト目的の天国になりました。全体として、個人的、専門的、および環境的な原因に最適です。

その記事が有益で参考になったと思います。


Linux
  1. Linux –なぜSuだけでなくSuを使用するのですか?

  2. Dockerを使用する時期と理由

  3. なぜデイスとそれは何ですか?

  1. LinuxでのChownコマンドとは何ですか?その使用方法

  2. Bash で eval を避ける必要があるのはなぜですか? 代わりに何を使用する必要がありますか?

  3. su だけでなく su - を使用するのはなぜですか?

  1. cURLコマンドとは何ですか?その使用方法は?

  2. Howto:GitとGithubとは何ですか?どのように使用し、なぜ気にする必要がありますか?

  3. Chrootの「刑務所」–それは何で、どのように使用するのですか?