仮想化について語る - カーネルとIO

仮想化について語る - カーネルとIO

[[211645]]

序文

時間は流れる水のように、あっという間に過ぎていきます。自分が仮想環境にいるのか、現実環境にいるのかわからないことがあります。すべてはカーネルの認識にすぎません。 。 。

異なる経験、それを実現するいくつかの異なる方法があります。 。 。またナリに来ましたね。 。 。

仮想化の分類

仮想シーンは実際には現実と同じです。 。 。 。

仮想化シナリオでは、仮想マシンは仮想化環境で実行されていることを認識する場合があります。この場合、タイプ 1 仮想化であるカーネルを変更する必要があります。たとえば、VMware ESX および ESXI は、上位レベルの仮想マシンに提供されるハイパーバイザーを通じてハードウェアを直接管理します。このとき、仮想マシンが使用するカーネル呼び出し方式は、従来のシステムコールではなくハイパーコールとなります。これは、他の仮想化テクノロジよりもはるかに効率的です (仮想マシンは、ハイパーバイザー呼び出しを開始するためにカーネルを変更する必要があります)。

タイプ 2 仮想化では、ホスト マシンがハードウェア上で実行され、その中でユーザー空間プログラムが実行されて上位レベルの仮想マシンの管理が提供されます。これは VMM (仮想マシン モニター) またはハイパーバイザーと呼ばれることもあります。仮想マシンが関連する命令を呼び出すと、ホスト マシンに要求が送信され、その要求は VMM によってキャプチャされ、外部ハードウェア命令が実行される、または呼び出されます。これにより、すべての命令を少なくとも 1 回は変換する必要があるため、効率が大幅に低下します (仮想マシンはさまざまなオペレーティング システムを実行できます)。

実際のところ、企業に入るときに、アウトソーシングを選択するのか、しないのか。アウトソーシングを使用する場合、それは実際には仮想化の一種です。誰もがアウトソーシングしていることを明確に認識しているため、アウトソーシング会社のインターフェイスに直接電話をかけてサービスを提供します。これは非常に効率的かもしれませんが、ハードウェア環境は明らかに劣悪です。 。 。 。それが良いことかどうかは分かりませんが(笑)。 。 。 。

アウトソーシングする前は、誰もが仮想空間に住み、すべての CPU リソース、すべての物理メモリを使用し、すべてのハードウェアを操作できると考えていました。実際には。 。 。 。どれだけのリソースが使用できるかは不明です。おそらく私たちは仮想化されたシナリオの中で生きているだけなのでしょう。 。 。夢の中の夢。 。 。

メモリ仮想化

仮想化シナリオでは、CPU とメモリは実際には切り離せません。基本的に、どの物理マシンの CPU が使用されても、そのメモリは必然的に使用されます。なぜ?

CPU ハードウェアには、2 つのメイン チップが実装されています。 1 つは MMU (メモリ管理ユニット) で、主にメモリの管理に使用され、実際には線形アドレスから物理アドレスへの変換を行います。プロセスでは、使用されるリニア アドレス、つまり各プロセスが参照できるメモリ アドレスは、実際には物理アドレス全体であり、その一部はカーネルの使用のために分割され、残りはプロセスによって使用されるメモリ空間です。プロセスが変数を使用するたびに、これらの変数の値がメモリに保存されるため、CPU でアドレスを見つけて、MMU を介して物理アドレスを見つける必要があります。 CPU の速度はメモリの速度よりもはるかに速いため、この速度に合わせるために別のチップ、つまり TLB があります。これは主に、線形アドレスから物理アドレスへの変換の物理的な結果をキャッシュするために使用されます。そのため、アドレスが見つかるたびに、最初に TLB が見つかります。そうでない場合は、MMU を介して変換され、物理メモリが検出されます。

CPUの物理構造には、第1レベルキャッシュ、第2レベルキャッシュ、第3レベルキャッシュがあります。通常、第 3 レベル キャッシュは各 CPU で共有されるため、リソースの占有が発生する可能性があり、SMP アーキテクチャから NUMA アーキテクチャに変換され、非均一なメモリ アクセスが発生します。主な目的はパフォーマンスを向上させることです。 CPU を使用する場合、別の物理マシン上のメモリ アドレスを見つけてデータを読み取ることは不可能です。速度とパフォーマンスを向上させるために、CPU と MEM は基本的に同じ物理マシン上でバインドされて使用されます。

オーバーセリングの概念は、CPU が仮想であり、メモリも仮想であるということです。実際、VCPU は仮想 CPU であり、実際には物理マシン上のプロセスです。実際、仮想 CPU の数は物理コアの数を超えることがありますが、パフォーマンスとサーバーへの負荷、つまり CPU の平均負荷に応じて、一般的な過剰比率は 1.5 です。メモリも仮想的で、一部のクラスライブラリはプロセスごと、あるいは仮想マシンごとに使用されるため、物理メモリを超えることもありますが。 。 。比率はないようです。

シミュレーション シナリオでは、一般的な手順は、仮想マシンの仮想メモリを仮想マシンの物理メモリに変換し、それをホスト マシンの仮想メモリに変換してから、実際の物理メモリを見つけることです。 2 回の変換が必要となり、仮想マシンが複数ある場合、基本的に各仮想マシンの TLB を接続できないため、パフォーマンスが大幅に低下します。

そのため、ハードウェア レベルでは、どの仮想マシンの線形アドレスから物理アドレスへの変換を示すフィールドを TLB に追加するタグ付き TLB などのハードウェア支援仮想化テクノロジが提供されます。例えば、MMU メモリユニット管理機能が提供され、仮想アドレスが物理マシンの仮想アドレスに直接変換されるため、仮想マシンの物理アドレスに変換するステップが省略され、パフォーマンスが大幅に向上します。

ハードウェアでサポートされるメモリ仮想化 (AMD ネスト ページ テーブル [NPT] および Intel 拡張ページ テーブル [EPT])

I/O仮想化

I/O デバイスは一般にドライバーとデバイス自体に分かれており、ドライバーはカーネル内で実行されます。仮想マシンのシナリオでは、プロセスが外部 IO デバイスをスケジュールする必要がある場合、プロセスは最初に仮想マシンのドライバーを呼び出して仮想マシンのハードウェアを駆動し、次に物理マシンの vmm によってキャプチャされ、次に物理マシンのドライバーを呼び出し、最後に実際に物理デバイスを呼び出します。つまり、2つのステップに分かれています。

IO デバイスの仮想化シナリオでは、シミュレーション、つまりソフトウェア シミュレーションを使用する方法があります。 Linux ではすべてがファイルであるため、呼び出し用に多数のファイルが提供されます。

1 つは準仮想化を使用することですが、これにもハードウェア サポートが必要です。つまり、仮想マシン ドライバーは物理マシン ドライバーを直接呼び出してハードウェアを駆動するため、仮想マシン ドライバーが仮想マシンのデバイスを呼び出す手順が省略されます。

1 つ目は IO 透過伝送技術です。これは主に、一部のネットワーク カード デバイスまたはハード ディスク デバイスを仮想マシンに直接バインドして使用し、基本的に物理ハードウェアのパフォーマンスを実現するために使用されます。ただし、これらのハードウェアの管理は、依然としてハイパーバイザーによって管理される必要があります。

ハードウェアサポートデバイスおよび I/O 仮想化 (Intel VT-d、AMD IOMMU)

要約する

仮想化の登場は、CPU、メモリ、I/O などの物理ホストのリソースをより有効に活用するためです。

<<:  仮想化技術の徹底解読について語る(第1部)

>>:  CAの幹部:アジャイルコンセプトは市場で広く受け入れられており、スケールアジリティが話題となっている

推薦する

namecheap $6.99 転送クーポンコード

Namecheap では 9 月に大幅な割引を実施しており、前回の割引からかなり時間が経っています。...

エッジコンピューティングの3つのモード: MEC、マイクロクラウド、フォグコンピューティング

Internet of Everything の普及により、エッジ コンピューティングの人気は近年高...

highspeedweb - 年間 10 ドル / メモリ 128 MB / ハードディスク 10 GB / トラフィック 250 GB

Highspeedweb の新年プロモーションは、オリジナル製品と比べてかなり良いです。Highsp...

グループ購入ウェブサイトの究極の解決策とは: 垂直性と集中

広く流布している話ですが、ホッキョクレミングはノルウェー北部とユーラシア大陸の高緯度針葉樹林に一年中...

ウェブサイト分析: システムメールエクスペリエンスデザイン

毎日、メールボックスにたくさんのシステムメールが届きます。オンラインショッピングの注文のステータス通...

オリンピック中に登場したマーケティング手法を共有する

いつの間にか、オリンピックの16日間の開催が始まりました。今回のオリンピックでは、オリンピックイベン...

スタートアップブランドはどのようにマーケティングプロモーションを実施できるのでしょうか?

この記事は、マーケティングプロモーション理論と実際の市場経験を組み合わせ、全文は8,000語を超えて...

ウェブサイトのユーザーエクスペリエンスを向上させ、ユーザー心理を把握することが最も重要です

今日、タオバオで残念なことに遭遇しました。友達が服を気に入って、私に買ってほしいと頼んできたのです。...

サーバーレスコンピューティングはクラウドネイティブの次の進化となるかもしれない

新しいテクノロジーが登場すると、人々がまずそれを採用するのは、それがもたらす価値のためです。その価値...

hostsolutions: 年間 28 ドル、苦情に強い VPS、1T ハード ドライブ、ストレージ、BT などに適しています。

hostsolutions、夏のストレージVPS(大容量ハードディスクVPS)プロモーションが始まり...

prometeus: 安価なイタリアの VPS、年間 36 ユーロ、4G RAM/2 コア/200g ハード ドライブ/10T トラフィック

1997年に設立されたPrometeus(iperweb)は、2000年に設立されたイタリアの有名な...

#特別価格サーバー: E3-1270V3/32Gメモリ/2T/または240Gssd/253IP/1000Mポート/ロサンゼルス

ビジネスの発展により、またおそらく多くの人が裕福になったため、多くの人々はもはや仮想ホストや VPS...

テンセントクラウドの胡立明氏:テクノロジー、アジリティ、エコロジーを統合し、デジタルファイナンスを全面的にサポート

5月22日、テンセント・ファイナンシャル・クラウドのゼネラルマネージャー胡立明氏が、2019年テンセ...

血みどろの教訓だ! SEO 初心者はなぜ失敗するのでしょうか?

SEO に情熱を傾ける初心者の方は、この記事を必ずお読みください。この記事は、SEO Qibing ...

FinOps: クラウドコスト最適化のベストプラクティス

クラウド コンピューティングの消費は急速に増加していますが、支出を追跡するのは難しい場合があります。...