Red Hat Training
A Red Hat training course is available for Red Hat OpenStack Platform
第7章 統合ポイント
本章では、director の統合における具体的な統合ポイントを考察し、固有の OpenStack コンポーネントと director またはオーバークラウドの統合とそのコンポーネントの関係について記載します。このセクションに記載する内容は、OpenStack のすべての統合についての包括的な説明ではありませんが、ハードウェアおよびソフトウェアを Red Hat OpenStack Platform に統合する作業を開始するには十分な情報となるはずです。
7.1. Bare Metal Provisioning (Ironic)
OpenStack Bare Metal Provisioning (Ironic) のコンポーネントは、director 内で使用され、ノードの電源状態を制御します。director はバックエンドドライバーのセットを使用して、固有のベアメタルの電源コントローラーとやりとりをします。これらのドライバーは、ハードウェアやベンダー固有の拡張や機能を有効化する際に重要です。最も一般的なドライバーは IPMI ドライバー (pxe_ipmitool
) で、Intelligent Platform Management Interface (IPMI) をサポートするサーバーの電源状態を制御します。
Ironic との統合は、アップストリームの OpenStack コミュニティーから始まります。アップストリームで受け入れられた Ironic ドライバーは、コアの Red Hat OpenStack Platform 製品と director にデフォルトで自動的に含まれますが、認定要件によりサポートされない可能性があります。
機能が継続して確保されるように、ハードウェアドライバーは、常に統合テストを受ける必要があります。サードパーティー製のドライバーのテストおよび持続性に関する情報は、OpenStack コミュニティーページの Ironic Testing を参照してください。
アップストリームのリポジトリー:
アップストリームのブループリント:
- Launchpad: http://launchpad.net/ironic
Puppet モジュール:
Bugzilla コンポーネント:
- openstack-ironic
- python-ironicclient
- python-ironic-oscplugin
- openstack-ironic-discoverd
- openstack-puppet-modules
- openstack-tripleo-heat-templates
統合メモ:
-
アップストリームプロジェクトでは、
ironic/drivers
ディレクトリーにドライバーが含まれます。 -
director は、JSON ファイルで定義されたノードをまとめて登録します。
os-cloud-config
ツール (https://github.com/openstack/os-cloud-config/) は、このファイルを解析して、ノード登録の詳細を判断して登録を実行します。これは、os-cloud-config
ツール、具体的にはnodes.py
ファイルにはドライバーのサポートが必要です。 director は、Ironic を使用するように自動的に設定されます。つまり、Puppet 設定では、変更をほぼ加える必要はないということです。ただし、ドライバーに Ironic が含まれる場合には、お使いのドライバーを
/etc/ironic/ironic.conf
ファイルに追加する必要があります。このファイルを編集してenabled_drivers
パラメーターを検索してください。以下に例を示します。enabled_drivers=pxe_ipmitool,pxe_ssh,pxe_drac
これにより、
drivers
ディレクトリーからの指定のドライバーを Ironic が使用できるようになります。
7.2. Networking (Neutron)
OpenStack Networking (Neutron) は、クラウド環境でネットワークアーキテクチャーを作成する機能を提供します。このプロジェクトは、Software Defined Networking (SDN) ベンダーの統合ポイントを複数提供します。この統合ポイントは通常 プラグイン または エージェント のカテゴリーに分類されます。
プラグイン では、既存の Neutron の機能を拡張およびカスタマイズすることができます。ベンダーは、プラグインを記述して、Neutron と認定済みのソフトウェアやハードウェアの間で相互運用性を確保することができます。多くのベンダーは、独自のドライバーを統合するためのモジュラーバックエンドを提供する、Neutron の Modular Layer 2 (ml2) プラグインのドライバーを開発することを目的にする必要があります。
エージェント では、固有のネットワーク機能が提供されます。主な Neutron サーバー (およびプラグイン) は、Neutron エージェントと通信します。既存の例には、DHCP、Layer 3 のサポート、ブリッジサポートが含まれます。
プラグインおよびエージェントは、以下のいずれかが可能です。
- OpenStack Platform ソリューションの一部としてディストリビューションに含める。
- OpenStack Platform のディストリビューションの後にオーバークラウドのイメージに追加する。
認定済みのハードウェアおよびソフトウェアを統合する方法を判断できるように、既存のプラグインおよびエージェントの機能を分析することを推奨します。特に、ml2 プラグインの一部としてドライバーをまず開発することを推奨します。
アップストリームのリポジトリー:
アップストリームのブループリント:
- Launchpad: http://launchpad.net/neutron
Puppet モジュール:
Bugzilla コンポーネント:
- openstack-neutron
- python-neutronclient
- openstack-puppet-modules
- openstack-tripleo-heat-templates
統合メモ:
アップストリームの
neutron
プロジェクトには、複数の統合ポイントが含まれます。-
プラグインは
neutron/plugins/
にあります。 -
ml2 プラグインドライバーは
neutron/plugins/ml2/drivers/
にあります。 -
エージェントは
neutron/agents/
にあります。
-
プラグインは
-
OpenStack Liberty リリース以降、ベンダー固有の ml2 プラグインの多くが
networking-
で始まる独自のリポジトリーに移動されました。たとえば、Cisco 固有のプラグインは https://github.com/openstack/networking-cisco にあります。 puppet-neutron
リポジトリーには、これらの統合の設定用に別のディレクトリーも含まれます。-
プラグイン設定は
manifests/plugins/
にあります。 -
ml2 プラグインのドライバー設定は
manifests/plugins/ml2/
にあります。 -
エージェントの設定は
manifests/agents/
にあります。
-
プラグイン設定は
-
puppet-neutron
リポジトリーには、設定関数のライブラリーが別途多数含まれています。たとえば、neutron_plugin_ml2
ライブラリーは、ml2 プラグインの設定ファイルに属性を追加する関数を追加します。
7.3. Block Storage (Cinder)
OpenStack Block Storage (Cinder) は、OpenStack がボリュームの作成に使用するブロックストレージデバイスと対話するための API を提供します。たとえば、Cinder はインスタンスの仮想ストレージデバイスや、異なるストレージハードウェアやプロトコルをサポートするドライバーのコアセットを提供します。コアのドライバーには、NFS、iSCSI、Red Hat Ceph Storage へのサポートを含むものもあります。ベンダーは、認定済みのハードウェアのサポートを追加するためにドライバーを含めることができます。
ベンダーの開発するドライバーおよび設定には、主に 2 つのオプションがあります。
- OpenStack Platform ソリューションの一部としてディストリビューションに含める。
- OpenStack Platform のディストリビューションの後にオーバークラウドのイメージに追加する。
認定済みのハードウェアおよびソフトウェアを統合する方法を判断できるように、既存のドライバーの機能を分析することを推奨します。
アップストリームのリポジトリー:
アップストリームのブループリント:
- Launchpad: http://launchpad.net/cinder
Puppet モジュール:
Bugzilla コンポーネント:
- openstack-cinder
- python-cinderclient
- openstack-puppet-modules
- openstack-tripleo-heat-templates
統合メモ:
-
アップストリームの
cinder
リポジトリーではcinder/volume/drivers/
にドライバーが含まれます。 puppet-cinder
リポジトリーには、ドライバー設定の主要なディレクトリーが 2 つ含まれます。-
manifests/backend
ディレクトリーには、ドライバーの設定を行う定義型のセットが含まれます。 -
manifests/volume
ディレクトリーには、デフォルトのブロックストレージデバイスを設定するクラスセットが含まれます。
-
-
puppet-cinder
リポジトリーには、Cinder 設定ファイルに属性を追加するためのcinder_config
と呼ばれるライブラリーが含まれます。
7.4. Image Storage (Glance)
OpenStack Image Storage (Cinder) は、イメージのストレージを提供するストレージ種別と対話するための API を提供します。Glance は、ファイルのサポート、OpenStack Object Storage (Swift)、OpenStack Block Storage (Cinder)、Red Hat Ceph Storage など、異なるハードウェアおよびプロトコルをサポートするドライバーのコアセットを提供します。ベンダーは、認定済みのハードウェアのサポートを追加するためにドライバーを含めることができます。
アップストリームのリポジトリー:
OpenStack:
GitHub:
アップストリームのブループリント:
- Launchpad: http://launchpad.net/glance
Puppet モジュール:
Bugzilla コンポーネント:
- openstack-glance
- python-glanceclient
- openstack-puppet-modules
- openstack-tripleo-heat-templates
統合メモ:
- Glance は、イメージストレージを管理する統合ポイントを含む Cinder を使用できるため、ベンダー固有のドライバーを追加する必要はありません。
-
アップストリームの
glance_store
リポジトリーではglance_store/_drivers
にドライバーが含まれます。 -
puppet-glance
リポジトリーではmanifests/backend
ディレクトリーにドライバー設定が含まれます。 -
puppet-glance
リポジトリーには、Cinder 設定ファイルに属性を追加するためのglance_api_config
と呼ばれるライブラリーが含まれます。
7.5. Shared File Systems (Manila)
OpenStack Shared File System Service (Manila) は、共有および分散型のファイルシステムサービス向けの API を提供します。ベンダーは、認定済みのハードウェアのサポートを追加するためにドライバーを含めることができます。
アップストリームのリポジトリー:
アップストリームのブループリント:
- Launchpad: http://launchpad.net/manila
Puppet モジュール:
Bugzilla コンポーネント:
- openstack-manila
- python-manilaclient
- openstack-puppet-modules
- openstack-tripleo-heat-templates
統合メモ:
-
アップストリームの
manila
リポジトリーではmanila/share/drivers/
にドライバーが含まれます。 -
puppet-manila
リポジトリーではmanifests/backend
ディレクトリーにドライバー設定が含まれます。 -
puppet-manila
リポジトリーには、Cinder 設定ファイルに属性を追加するためのmanila_config
と呼ばれるライブラリーが含まれます。