衝突と衝突: OpenStack の仮想マシンとベアメタル

衝突と衝突: OpenStack の仮想マシンとベアメタル

[[319074]]

仮想化か非仮想化か?

パフォーマンスを追求する場合、議論の余地はありません。ベアメタルは依然として VM よりも優れています。特に I/O 集約型アプリケーションに適しています。ただし、それを十分に活用できることが保証されない限り、代償が伴います。この記事では、Nova を使用してハイパーバイザーとベアメタル コンピューティング ノードへのアクセスを統一的に提供する方法について説明しました。

スケジュール

Nova が Ironic を通じてベアメタル コンピューティングをサポートするために初めて導入されたとき、従来のハイパーバイザー ベースのワークロードと簡単に共存することはできませんでした。当時の解決策では、通常、ホスト集約とフレーバー機能の使用が必要でした。

ベアメタルのスケジューリングについては、特注のベアメタル ブログ投稿で詳しく説明しています (「概要: Nova でのスケジューリング」を参照)。

配置サービスの導入以来、ベアメタルのスケジュールは大幅に変更されました。各 Ironic ノードについて、標準の vCPU、メモリ、およびディスク リソースを、カスタム リソース クラスの個別のユニットに置き換えます。これには 2 つの重要な副作用があります。

  • ベアメタルノードは完全に割り当てられるか、まったく割り当てられないかのいずれかです。
  • 仮想マシンとベアメタルで使用されるリソースクラスは分離されているため、最終的にはベアメタルノードにVMフレーバーをスケジュールすることはできません。

「小さな」VM フレーバーは次のようになります。

  1. openstack フレーバー show vm-tiny -f json -c名前-c vcpus -c ram -c ディスク -c プロパティ
  2. {
  3. 「名前」 : 「vm-tiny」
  4. "vcpus" : 1,
  5. 「ラム」 : 1024,
  6. 「ディスク」 : 1,
  7. 「プロパティ」 : 「」  
  8. }

「ゴールド」ノードのベアメタル フレーバーは次のようになります。

  1. openstack フレーバー show bare-metal-gold -f json -c name -c vcpus -c ram -c disk -c properties
  2. {
  3. 「名前」 : 「ベアメタルゴールド」
  4. "vcpus" : 64,
  5. 「ラム」 : 131072,
  6. 「ディスク」 : 371,
  7. "プロパティ" : "リソース:CUSTOM_GOLD= '1'
  8. リソース:DISK_GB= '0'
  9. リソース:MEMORY_MB= '0'
  10. リソース:VCPU= '0' "
  11. }

vCPU/RAM/ディスク リソースは参照専用であり、スケジュール設定の目的でプロパティによってゼロに設定されることに注意してください。これについては後ほどさらに詳しく説明します。

インターネットはどうですか?

ハイブリッド環境では、VM とベアメタル インスタンスが相互に通信できるようにしたり、相互に分離したりする必要がある場合があります。どちらのモデルも可能であり、典型的な Neutron ネットワークと同じように機能します。Neutron ネットワークは、Neutron ルーターを介して接続されるまで互いに分離されています。

ベアメタル コンピューティング ノードは通常、VLAN またはフラット ネットワークを使用します。もちろん、ネットワーク ハードウェアと Neutron プラグインを適切に組み合わせれば、他のモデルも可能です。 VLAN ネットワークの場合、ハイパーバイザーがベアメタル コンピューティング ノードと同じ物理ネットワークに接続されていると仮定すると、VM をベアメタル コンピューティング インスタンスと同じ VLAN に接続すると、それらの間の L2 接続が提供されます。あるいは、Neutron ルーターを使用して、VLAN 上のベアメタル インスタンスを別のネットワーク (VXLAN など) 上の VM に接続し、それらの間で L3 接続を提供することも可能になります。

これは実際にはどのように見えるのでしょうか? VM とベアメタル ネットワークの両方をサポートする Neutron プラグイン/ドライバーの組み合わせが必要です。ベアメタル サーバーをテナント ネットワークに接続するには、Neutron で物理ネットワーク デバイスを構成する必要があります。通常は networking-generic-switch ML2 メカニズム ドライバーを使用しますが、networking-ansible ドライバーがベンダー中立の代替として登場しています。これらのドライバーは、ベアメタル ポート、つまり、VNIC_TYPE が baremetal の Neutron ポートをサポートします。ベンダー固有のドライバーも利用可能であり、VM とベアメタルの両方をサポートする場合があります。

何か質問はありますか?

より成熟したクラウドが遭遇する可能性がある問題の 1 つは、標準リソース クラス (vCPU、RAM、ディスク) に基づくスケジュール設定からカスタム リソース クラスに基づくスケジュール設定への移行です。 Rocky リリース以前で作成された古いベアメタル インスタンスがある場合、カスタム リソース クラスに加えて、Placement に標準のリソース クラス マニフェストが存在する可能性があります。たとえば、Placement に報告されるノードのリストは次のとおりです。

  1. $ openstack リソースプロバイダーインベントリリスト <ノード UUID>
  2. + ---------------+---------------------+----------+----------+-----------+----------+--------+  
  3. |リソースクラス |割り当て比率 |最大単位 |予約済み |ステップサイズ |最小単位 |合計 |
  4. + ---------------+---------------------+----------+----------+-----------+----------+--------+  
  5. |仮想CPU 1.0 | 64 | 0 | 1 | 1 | 64 |
  6. |メモリ1.0 | 131072 | 0 | 1 | 1 | 131072 |
  7. |ディスク容量1.0 | 371 | 0 | 1 | 1 | 371 |
  8. |カスタムゴールド | 1.0 | 1 | 0 | 1 | 1 | 1 |
  9. + ---------------+---------------------+----------+----------+-----------+----------+--------+  

このノードが標準リソース クラスのインスタンスを要求する (または明示的にクリアされない) フレーバーに割り当てられている場合、使用法は次のようになります。

  1. $ openstack リソースプロバイダー使用状況表示 <ノード UUID>
  2. + ----------------+--------+  
  3. |リソースクラス |使用法 |
  4. + ----------------+--------+  
  5. |仮想CPU 64 |
  6. |メモリ131072 |
  7. |ディスク容量371 |
  8. |カスタムゴールド | 1 |
  9. + ----------------+--------+  

このインスタンスを削除すると、標準のリソース クラス インベントリが使用可能になり、VM のスケジューラによって選択できるようになります。これは決して良い結果にはならないだろう。私たちがしなければならないのは、これらのリソースが Placement に報告されないようにすることです。これは、Nova の Stein バージョンではデフォルトで実行され、Rocky でも nova.conf で次のように設定することで同じことを実行するように構成できます。

  1. [回避策]
  2. report_ironic_standard_resource_class_inventory = False  

ただし、これを行うと、Nova はインスタンスがすでに消費している在庫を Placement リソース プロバイダーから削除しようとし、HTTP 409 競合が発生します。これにより、すぐにログが役に立たない警告でいっぱいになります。

フレーバー移行

ありがたいことに、解決策はあります。既存のインスタンスで使用されているフレーバーを変更して、標準のリソース クラス マニフェストを削除することができます。これにより、それらのリソースの割り当てが Placement から削除されます。これにより、Nova はリソース プロバイダーからインベントリを削除できるようになります。 Matt Riedemann は、標準のリソース クラス マニフェストを削除する Nova Patch を開始しました。このパッチは生産ラインにプッシュする必要がありますが、生産 Rocky ビルドで使用するには十分に機能します。

移行はオフラインでもオンラインでも実行できます。このパッチの展開を避けるために、オフラインで実行することを選択しました。移行するノードごとに:

  1. nova-manage db ironic_flavor_migration --resource_class <ノード リソース クラス> --host <ホスト> --node <ノード UUID>  

または、すべてのノードが同じリソース クラスを持つ場合:

  1. nova-manage db ironic_flavor_migration --resource_class <ノードリソースクラス> --all  

データベースをチェックすることで、インスタンスに含まれるフレーバーが正しく更新されたかどうかを確認できます。

  1. sql> novaを使用する
  2. sql> instance_extraからフレーバーを選択します

現在 (Rocky のみ)、標準のリソース クラスのインベントリ レポートを無効にすることができます。 nova コンピューティング サービスがしばらく実行されると、配置が更新されます。

  1. $ openstack リソースプロバイダーインベントリリスト <ノード UUID>
  2. + ----------+---------------------+----------+----------+-----------+----------+----------+  
  3. |リソースクラス|割り当て比率 |最大単位 |予約済み |ステップサイズ |最小単位 |合計 |
  4. + ----------+---------------------+----------+----------+-----------+----------+----------+  
  5. |カスタムゴールド | 1.0 | 1 | 0 | 1 | 1 | 1 |
  6. + ----------+---------------------+----------+----------+-----------+----------+----------+  
  7.  
  8. $ openstack リソースプロバイダー使用状況表示 <ノード UUID>
  9. + ----------------+--------+  
  10. |リソースクラス |使用法 |
  11. + ----------------+--------+  
  12. |カスタムゴールド | 1 |
  13. + ----------------+--------+  

これは、OpenStack が、このような厄介なシナリオであっても VM とベアメタルが平和的に共存できる段階に到達したことを示すものであると期待しています。 Ironic を一流のプロジェクトにするために一生懸命働いてくれた Nova チームに感謝します。

<<:  エッジコンピューティングがモノのインターネットにとって重要な3つの理由

>>:  エッジコンピューティングはクラウドコンピューティングを飲み込む可能性があります。プレイヤーは誰が勝つかについて独自の考えを持っています。

推薦する

百度スパイダーを人生の観点から分析する

みなさんこんにちは。私は草の根のキャンパスウェブマスターです。SEOについてはあまり詳しくありません...

水戸型枠:高品質な手作り型枠

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますMiTo ...

Kubernetes デプロイメントを管理するための 15 個のツール

[51CTO.com クイック翻訳] Kubernetes は、コンテナ化されたアプリケーションを大...

医療ウェブ編集者がプレスリリースを書くのはなぜですか? プレスリリースの書き方は?

調査によると、医療系ウェブ編集者がネットワーク編集者の大部分を占めていることがわかりました。このこと...

dogyunのクラシッククラウドの簡単なレビュー - US Unicom AS4837シリーズ

ドギュンはどうですか?ドギュンはどうですか? Dogyunは、米国のcn2+cu2シリーズのクラウド...

なぜ中小企業にWeiboマーケティングが推奨されるのでしょうか?その利点は何ですか?

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス新しいメディアマーケティ...

ベライゾンとホンダ、運転の安全性向上のため5Gとエッジコンピューティングで協力

海外メディアの報道によると、ホンダと通信事業者のベライゾンは、5Gとモバイルエッジコンピューティング...

インテルが新しいプロセッサロゴとパフォーマンス評価システムを発表

海外メディアの報道によると、北京時間4月7日正午、インテルはプロセッサの新しいロゴと5つ星の性能評価...

検索結果のランキングに影響を与える要因(2007 年 4 月)

キーワード要因(影響度の高い順から低い順に並べています): * タイトルキーワード* ページコンテン...

#評価sugarhosts-ロサンゼルスデュアル直接接続VPSシンプルテスト

シュガーホストから最新のメールが送られてきました。以前、シュガーホストのロサンゼルスデータセンターが...

検索エンジンアルゴリズムのアップデートに関する敗者ウェブマスターの予測

1. 著作権アルゴリズムの改善。多くの人は、著作権を下部に追加せずに他人の記事を転載しています。この...

ウェブサイトのトラフィックが多ければ多いほど良いです。正確なトラフィックが鍵となります。

ウェブサイトのトラフィックを増やすことは、多くの SEO 最適化担当者にとって常に究極の目標です。ウ...

Baidu の青大根アルゴリズムが中小企業サイトに偏っている理由について議論する

百度の青大根アルゴリズムが発表されてから一週間が経ちました。ここ数日、石頭は青大根アルゴリズムに関す...

Contabo: シンガポールの VPS データセンターの詳細なレビュー、データ比較で Contabo の仕組みがわかる

Contabo はドイツの会社で、ドイツに独自のコンピューター室があることは多くの人が知っています。...