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

推薦する

ローカルデコレーションウェブサイトの運営から得たインスピレーション:ウェブサイトの過剰最適化の罠に陥らないようにする

SEOER を表す言葉を探すとしたら、「重労働の悲劇」としか言いようがありません。彼らは一日中ウェブ...

ハイブリッドマルチクラウドとハイパーコンバージドインフラストラクチャの人気が高まる

ハイパーコンバージド インフラストラクチャ (HCI) が、組織が簡単に拡張してデータをより細かく制...

Baidu の入札最適化戦略: 半分は考え、半分は集中

Baiduで入札すると——入札アカウントが取引量がないにもかかわらず、1日に数千元を不可解に燃やした...

SEO アカデミー: Google 補足資料の新しい検索方法

SEO アカデミーが以前公開していた Google 補足資料が消えてしまったのでしょうか? 記事を読...

ウェブサイトの統計情報を使用して、さまざまな観点からコンバージョン率を調査し、改善します。

ウェブサイトのコンバージョン率は、すべてのウェブマスターが追求しているデータです。ウェブサイトの目標...

シェア: Weibo マーケティングがなぜ人気なのか?

微博マーケティングは現在非常に人気のあるマーケティング手法であると私は信じています。人気があると言う...

ゲーム業界で情報フロー広告を展開するには?使えるクリエイティブな文型38選!

今日は、ゲーム業界向けの広告のアイデアとタイトルをいくつかまとめてみました。これらのクリエイティブな...

Tencent Cloud TStackが情報セキュリティ保護2.0のレベル4資格評価に合格

最近、Tencent Cloud TStackは公安部の「サイバーセキュリティレベル保護」レベル4資...

Sihua Technology がクラウド時代のストレージをどのように定義しているかをご覧ください (ビデオ インタビュー)

[51CTO.com からのオリジナル記事] ビッグデータ時代の到来により、従来のストレージ アーキ...

内部リンクは王様、外部リンクは最も重要

今日は「道元武術」というタイトルで、内部リンク構築の重要性を強調したいと思います。ウェブサイトの構築...

独立したブログはウェブサイトの最適化に大きな可能性を秘めている

Baidu でキーワードを検索すると、多くの結果が表示されますが、そのほとんどは低品質のコンテンツで...

ブランドマーケティング戦略: 芝生を植えることは万能薬ではありません!

一連のデータから状況を垣間見ることができる。メディアの報道によると、バイトダンスの中国市場での年間広...

Kubernetes リソース トポロジを考慮したスケジュール最適化

著者 |テンセントスターコンピューティングチーム1. 背景1.1 問題の起源近年、テンセント社内の自...

ウェブサイトのSEO最適化はウェブサイトの基本的なニーズを満たす必要がある

多くのウェブサイトSEO担当者にとって、私たちが毎日行っているのは、実は基本的な実行作業です。疲れる...

垂直ソーシャルネットワーキング - ペットソーシャルネットワーキングは適切な市場を正確に位置づけ、見つけます

【ポイント】大規模で包括的なSNSはすべての人のニーズを満たすことは決してできないため、SNSの概念...