rust-vmm で未来の仮想化アーキテクチャを構築する

rust-vmm で未来の仮想化アーキテクチャを構築する

[51CTO.com クイック翻訳] rust-vmm は、Rust 仮想マシン モニター間でコア仮想化コンポーネントを共有するのに役立ちます。

1年ちょっと前、私たちはKVM(カーネルベースの仮想マシン)上で動作する仮想マシンモニター(VMM)であるFirecrackerの開発を開始しました。仮想マシンを素早く起動でき、メモリフットプリントが小さい軽量の VMM を作成し、高密度のクラウド環境を構築したいと考えています。

私たちは Chrome OS VMM (CrosVM) をフォークして Firecracker の開発を開始しましたが、異なる顧客ユースケースをターゲットにしていたため、2 つが分岐するのにそれほど時間はかかりませんでした。 CrosVM は ChromeOS で Linux アプリケーションの分離を提供し、Firecracker は大規模なマルチテナント ワークロードを実行するために使用されます。私たちは現在、異なる道を歩んでいますが、KVM 入出力制御 (ioctl) のラッパー、最小限のカーネル ローダー、Virtio デバイス モデルの使用など、共通の仮想化コンポーネントはまだあります。

これを念頭に置いて、共通コードを共有するための最善の方法について考え始めました。コードベースを共有することで、両方のプロジェクトのセキュリティと品質基準が向上します。現在、セキュリティの脆弱性を修正するには、あるプロジェクトから別のプロジェクトに変更を移植し、さまざまなレビュー プロセスを経て変更をマージするなど、作業の重複が必要です。 Firecracker をオープンソース化した後、GPU サポートや bzImage ファイルの起動などの機能追加のリクエストを受け取りました。一部のリクエストは Firecracker の目標と一致していませんが、実装する適切な場所が見つかっていないだけで、合理的なユースケースです。

rust-vmm プロジェクト

rust-vmm プロジェクトは、Amazon、Google、Intel、Red Hat の従業員が仮想化パッケージを共有する方法について話し合い始めた 2018 年 12 月に誕生しました。このプロセスの間に、より多くの貢献者がこの取り組みに参加しました。このプロセスはまだ始まったばかりで、Crates.io (Rust のパッケージ レジストリ) に公開されているコンポーネントは 1 つだけで、他のいくつかのコンポーネント (Virtio デバイス、Linux カーネル ローダー、KVM ioctls ラッパーなど) は開発中です。 Rust で書かれた 2 つの VMM が現在活発に開発されており、他の特殊な VMM の構築に対する関心が高まっています。 rust-vmm は、コア仮想化コンポーネントを共有するためのホストとして誕生しました。

rust-vmm の目標は、コミュニティがユースケースに必要なビルディング ブロックのみをインポートするカスタム VMM を作成できるようにすることです。私たちは、rust-vmm をマルチリポジトリ プロジェクトに編成し、各リポジトリを個別の仮想化コンポーネントに対応させることにしました。それぞれの個別のビルディング ブロックは Crates.io で公開されます。

rust-vmm を使用してカスタム VMM を作成する

以下で説明するコンポーネントは現在開発中です。

図 1. カスタム rust-vmm コンポーネント

図の右側にある各ボックスは、ソフトウェア パッケージ (Rust ではクレートと呼ばれます) に対応する GitHub リポジトリです。クレート機能は、virtio-devices などの複数のモジュールにさらに分割できます。これらのコンポーネントといくつかの潜在的な使用例を見てみましょう。

  • KVM インターフェース: KVM 上に VMM を作成するには、Rust から KVM 関数を呼び出すことができるインターフェースが必要です。 kvm-bindings クレートは、KVM カーネル ヘッダーの Rust Foreign Function Interface (FFI) を表します。ヘッダーには構造と定義のみが含まれているため、dev/kvm を開いたり、VM を作成したり、vCPU を作成したりするために使用する KVM ioctl (kvm-ioctl) に基づくラッパーもあります。
  • Virtio デバイスとレート制限: Virtio にはフロントエンドとバックエンドのアーキテクチャがあります。現在、rust-vmm では、フロントエンドは virtio-devices クレート内に実装されており、バックエンドは vhost パッケージ内にあります。 Vhost はユーザー空間ドライバーとカーネル空間ドライバーの両方をサポートしていますが、ユーザーは virtio-devices をカスタム バックエンドにプラグインすることもできます。 virtio-bindings は、Virtio Linux ヘッダーを使用して生成された Virtio デバイスのバインディングです。 virtio-devices クレート内のすべてのデバイスは、条件付きコンパイルを使用して個別のモジュールとしてエクスポートされます。一部のデバイス (block、net、vsock など) は、1 秒あたりの I/O と帯域幅に関するレート制限をサポートしています。これは、rate-limiter クレートで提供される機能を使用することで実現できます。
  • カーネルローダーは、ELF カーネルイメージの内容をゲストメモリにロードする役割を担います。

たとえば、ユーザーが KVM 上で実行される個別の仮想マシンを作成および構成できるようにするカスタム VMM を構築するとします。構成の一部として、ユーザーはカーネル イメージ ファイル、ルート ファイル システム、vCPU の数、およびメモリ サイズを指定できます。 kvm-ioctls クレートを使用して、仮想マシン リソースの作成と構成を実装できます。カーネル イメージは kernel-loader を使用してゲスト メモリにロードでき、ルート ファイル システムは virtio-devices ブロック モジュールを使用して指定できます。 VMM に必要な最後の作業は、VMM Glue を記述することです。これは、rust-vmm コンポーネントを VMM ユーザー インターフェイスと統合し、ユーザーが仮想マシンを作成および管理できるようにするコードです。

元のタイトル: rust-vmm を使用した将来の仮想化スタックの構築、著者: Andreea Florescu

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください。

<<:  ハイブリッドクラウド戦争が差し迫っています。 IT 大手はどんなカードを握っているのでしょうか?

>>:  分散IM(インスタントメッセージング)システムを自分で構築する

推薦する

ウェブマスターの推奨事項: ロングテールワード拡張ツールは「ウェブサイト」に大いに役立ちます

多くの SEO 担当者がウェブサイトのトラフィックについて心配していると思います。実際、ウェブサイト...

SEO: 統計の誤読と誤解を招く

数日前にも述べたように、SEO は技術ではなく、技術だけではない、という思いが強くなってきています。...

上海医薬ホールディングスのプライベートクラウドプラットフォームが華新研究所から「2019年有効応用プロジェクト」に選出

4月11日、2019年(第5回)中国オープンソースクラウドコンピューティングユーザーカンファレンスが...

医療系ウェブサイトのキーワードの位置づけの把握方法

SEO最適化に関しては、あらゆる人がうまく行うことができますが、運用中に注意する必要があるのは、We...

soladrive: 米国サーバー、180ドル、AMD Ryzen 9 5950X/64gDDR/2*1T NVMe/1Gbps帯域幅

アメリカのサーバーベンダーであるSoladriveは現在、独立型サーバーのプロモーションを行っていま...

​本日、China Electronics Cloud はいくつかの主要なイベントを発表しました。

6月8日、「山と海が抱く、雲と未来」をテーマにした2022年中国電子クラウドイノベーション製品発表会...

美団が実店舗共同購入サイト「Mengmai.com」を買収、商品共同購入に回復のチャンス

原題: Meituan が実店舗グループ購入サイト Mengmai.com を買収北京ビジネスデイリ...

簡単な説明:新しいウェブサイト運営のいくつかの運用方法

新規ウェブサイトの運営方法は多種多様で、運営方法やプロモーション方法も人それぞれですが、著者はそれら...

個人のウェブマスターが持つべき知識と能力について簡単に説明します。

個人ウェブマスターが持つべき知識は、完全な知識フレームワークであると言えます。さらに、ウェブマスター...

中国のトップ 10 検索エンジンについての簡単な説明 (パート 1)

現在、中国の検索エンジンは混乱状態にあります。百度、捜索、捜狗、有道、ヤフー、ビング、グーグル、そし...

インターネット マーケティング: 積極的なマーケティング思考があなたの運命を決める

初心者はテクニックを使って遊びます。達人は道で遊びます。道とは何でしょうか? 道は口で言うことはでき...

周宏義:360 Searchの適正シェアは15%

周紅一(写真提供:Sina Technology)著者は、XueqiuのiUS株式アナリストであるT...

ウェブサイトの重量とトラフィックが停滞する原因は何でしょうか?

トラフィックはウェブサイトの血液であり、重みはウェブサイトの血液が補充されることを保証する基礎である...

王大智佳は30GのDDoS攻撃を受け、ハッカーは数百万ドルの報酬で雇われたと主張した

3月20日、中国最大かつ最も影響力のあるP2Pオンライン融資業界ポータルである王大智佳は、ウェブサイ...