-1

私は過去 6 時間、バズワードだらけの高尚な高水準のドキュメント/ブログ/記事/スライドシェアを読み、OpenStack とは何かを正確に理解しようとしました。という事は承知しています:

OpenStack は、無料でオープンソースのクラウド コンピューティング ソフトウェア プラットフォームです。ユーザーは主にサービスとしてのインフラストラクチャ (IaaS) ソリューションとしてデプロイします。

しかし、繰り返しになりますが、これは非常に高尚で、高レベルで、細部にまでこだわった要約であり、エンジニアである私にとっては、実際には意味がありません。

私は基本的な概念を理解していると思いますが、SO から私の理解を跳ね返したいと思っています。また、OpenStack のコンポーネントのテーマについて「木の中の森」を見るのに苦労しています。

私の理解では、OpenStack:

  • 1 台以上の仮想マシン(ゲスト VM)に実行可能アプリケーションとしてインストールします。と
  • どういうわけか、OpenStack クラスターのすべてのインスタンスは互いを認識し (つまり、インストールしたばかりのすべての VM で実行されているすべてのインスタンス)、リソースの集合プールを形成します。と
  • 各 OpenStack インスタンス (ここでも独自の VM 内で実行されます) には、ダッシュボード アプリ (「Horizo​​n」) と 10 ほどの他のコンポーネント/モジュール (Nova、Cinder、Glance など) が含まれています。と
  • Nova は、テナントの VM/ノードを CRUD する OpenStack コンポーネント/モジュールであり、内部で実行されているゲスト VM を独自のハイパーバイザーに変換し、その内部で 1 つ以上の VM をスピンアップすることができます (したがって、特定のテナントの VM 内の VM)

ですから、これまでに OpenStack について述べたことに誤りがある場合は、まず訂正してください。

私が多かれ少なかれ正しいと仮定すると、さまざまな OpenStack コンポーネントに関する私の理解では、それらは実際には単なる API であり、オープン ソース コミュニティが具体的な実装を提供する必要があるということです。

  • Nova (VM マネージャー)
  • Keystone (認証プロバイダー)
  • Neutron (ネットワーキングマネージャー)
  • Cinder (ブロックストレージマネージャー)
  • 等...

上記では、すべてのコンポーネントが APIであると考えています。しかし、これらの API には、OpenStack のデプロイヤー/メンテナーにとって意味のある実装が必要です。したがって、複数の Neutron API プロバイダー、複数の Nova API プロバイダーなどがあると想像できます。しかし、今朝すべての公式ドキュメントを確認したところ、これらの API のそのようなプロバイダーは見つかりませんでした。これは、OpenStack のコンポーネントを根本的に誤解しているように、私の胃に不快感を残します。誰かが私のために点をつなぐのを手伝ってくれますか?

4

1 に答える 1

5

そうではありません。

1 台以上の仮想マシン (ゲスト VM) に実行可能アプリケーションとしてインストールします。と

OpenStack は単一の実行可能ファイルではありません。必要なモジュールとオプションのモジュールがあり、さまざまなモジュールがあります。VM に OpenStack をインストールできますが (VM に適したディストリビューションであるDevStackを参照)、これは本番環境での使用を意図したものではありません。テストまたは評価目的でのみ行うことになります。

実際に行う場合は、物理マシンのクラスターに OpenStack をインストールします。OpenStack インストール ガイドでは、クラウドに次の最小構造を推奨しています。

  • コア サービスを実行するコントローラー ノード
  • ネットワーク サービスを実行するネットワーク ノード
  • インスタンスが作成される 1 つ以上の計算ノード
  • 0 個以上のオブジェクトおよび/またはブロック ストレージ ノード

ただし、これは最小限の構造であることに注意してください。より堅牢なインストールを行うには、複数のコントローラーとネットワーク ノードを使用します。

どういうわけか、OpenStack クラスターのすべてのインスタンスは互いを認識し (つまり、インストールしたばかりのすべての VM で実行されているすべてのインスタンス)、リソースの集合プールを形成します。

OpenStack ノード (VM であろうと物理マシンであろうと、この時点では違いはありません) は相互に通信します。構成を通じて、それらはすべて、他のユーザーに到達する方法を知っています。

各 OpenStack インスタンス (ここでも独自の VM 内で実行されます) には、ダッシュボード アプリ (「Horizo​​n」) と 10 ほどの他のコンポーネント/モジュール (Nova、Cinder、Glance など) が格納されます。と

いいえ。OpenStack の用語では、「インスタンス」という用語は、計算ノードで作成される仮想マシンに関連付けられています。ここでいう「コントローラー ノード」には、コア サービスとダッシュボードが含まれます。繰り返しになりますが、これらは必ずしも VM 上で実行されるわけではありません。

Nova は、テナントの VM/ノードを CRUD する OpenStack コンポーネント/モジュールであり、内部で実行されているゲスト VM を独自のハイパーバイザーに変換し、その内部で 1 つ以上の VM をスピンアップすることができます (したがって、特定のテナントの VM 内の VM)

「ゲスト VM」のことは忘れていただけるとわかりやすいと思います。本番環境では、OpenStack は物理マシンにインストールされます。計算ノードは、多くの VM をホストできる強力なマシンです。このnova-computeサービスはこれらのノードで実行され、KVM などのハイパーバイザーにインターフェースして、OpenStack が「インスタンス」と呼ぶ仮想マシンを割り当てます。

コンピューティング ノードが物理マシンではなく VM でホストされている場合、ほとんど同じように機能します。このセットアップでは通常、ハイパーバイザーは QEMU であり、VM にインストールでき、VM 内に VM を問題なく作成できますが、物理ハードウェアで計算ノードを実行する場合と比較すると、パフォーマンスが大幅に低下します。

私が多かれ少なかれ正しいと仮定すると、さまざまな OpenStack コンポーネントに関する私の理解は、それらが実際には単なる API であるということです。

いいえ。これらのサービスは API として公開されていますが、それだけではありません。APIも実装されています。

オープンソース コミュニティに具体的な実装を提供するよう要求する

ほとんどのサービスは、外部サービスとのインターフェースを必要とします。Nova はハイパーバイザーと通信し、neutron はインターフェイス、ブリッジ、ゲートウェイなどと通信し、cinder と swift はストレージ プロバイダーと通信する必要があります。これは実際には OpenStack サービスが行うことのほんの一部であり、低レベルの外部サービスから独立している上に、さらに多くの機能が構築されています。OpenStack サービスには、最も一般的な外部サービスのサポートが含まれており、もちろん、興味のある人なら誰でもこれらをさらに実装できます。

上記では、すべてのコンポーネントが API であると考えています。しかし、これらの API には、OpenStack のデプロイヤー/メンテナーにとって意味のある実装が必要です。したがって、複数の Neutron API プロバイダー、複数の Nova API プロバイダーなどがあると想像できます。

いいえ。1 つの Nova API 実装と 1 つの Neutron API 実装があります。構成に基づいて、これらの各サービスに、ハイパーバイザーやネットワーク スタックなどの下位レベルのサービスとのインターフェイス方法を指示します。上で述べたように、これらの範囲のサポートは既に実装されているため、通常の x86 で使用している場合は、ノードのハードウェアがあれば、問題ないはずです。

于 2015-01-20T17:48:39.443 に答える