仮想化について語る - カーネルと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の幹部:アジャイルコンセプトは市場で広く受け入れられており、スケールアジリティが話題となっている

推薦する

SEO の世界におけるバランス: コンテンツとユーザー エクスペリエンスのどちらがより重要ですか?

2013年、SEO業界では「ユーザーエクスペリエンスは王様、コンテンツは女王」という格言が流行しまし...

Archhosting ロサンゼルス クアドラネット データセンター 高品質 VPS レビュー、ウェブサイト構築に適しています + x

ここで、Quadranet データセンター VPS を販売している、より良心的な業者、archost...

AWS、上海に人工知能研究所を設立

Amazon.com (NASDAQ: AMZN) の Amazon Web Services (A...

Struts2 の脆弱性分析: ハッカーの攻撃と防御による公式トラブル

著者:顧暁波Appleの開発者向けウェブサイトがダウンしたことで、1週間前から公開されていたApac...

データ共有: arkecxクラウドサーバーのシカゴデータセンターの簡単な評価

arkecxはどうですか? Zenlayer直系のクラウドサーバーブランドとして、期待が高まっている...

Sina Weiboが新しい「マーケティングセンター」を追加

Sina Weibo の収益モデルは常に誰もが関心を持つ話題であり、私たちが構築したのは草の根の W...

vds4you: 月額 13 元、ロシア VPS、無制限トラフィック、KVM 仮想化

vds4you をご紹介します。これはロシアの商人 HAYTEK TECHNOLOGIES が運営す...

効率的なクラウド アーキテクチャを構築するための 7 つのステップ

強力で信頼性の高いクラウド アーキテクチャを構築することは、IT とビジネスの長期的な成功にとって重...

ウェブサイト構築方法とガイドライン

ドメイン名とウェブサイトのスペースが確保できたら、次のステップはウェブサイトの構築方法を検討すること...

Googleはフォームを送信することで新しいページをクロールします

Google はすでに最も多くのページをクロールする検索エンジンですが、発見やクロールが難しい We...

AWS、GCP、Azure との交渉時に避けるべき 6 つのリスク

クラウド コンピューティング プロバイダーの IaaS/PaaS サービスを活用する企業が増えるにつ...

Pacificrack: クラスター VPS、$29.99/年/5 IP/2G メモリ/2 コア/20g SSD/10T トラフィック、最大 61 IP

本日より、Pacifractack は、マルチ IP VPS とクラスター VPS を年間 29.9...

ウェブサイトを過度に最適化すると、ウェブサイトの評価が下がる可能性があります。

ウェブサイトを過度に最適化すると、ウェブサイトのランクが下がる可能性があります。このトピックは、一部...

電子商取引コンテンツマーケティングが新たなトレンドに

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス設立からわずか3年という...

周紅義氏によるユーザーエクスペリエンスの説明を簡単に理解する

かつて、周洪義という偉大な人物が、ユーザー エクスペリエンスに関する独自の見解を次のように表現しまし...