4.9. オーバークラウド用の CPU アーキテクチャーの設定

Red Hat OpenStack Platform (RHOSP) は、オーバークラウドの CPU アーキテクチャーをデフォルトで x86_64 として設定します。POWER (ppc64le) ハードウェアにオーバークラウド Compute ノードをデプロイすることもできます。Compute ノードのクラスターには、同じアーキテクチャーのシステム、または x86_64 と ppc64le が混在するシステムを使用することができます。

注記

アンダークラウド、Controller ノード、Ceph Storage ノード、およびその他のシステムは、すべて x86_64 ハードウェアでのみサポートされています。

4.9.1. オーバークラウドの単一 CPU アーキテクチャーとしての POWER (ppc64le) の設定

オーバークラウド上の Compute ノードのデフォルトの CPU アーキテクチャーは x86_64 です。オーバークラウド Compute ノードを POWER (ppc64le) ハードウェアにデプロイするには、アーキテクチャーを ppc64le に変更できます。

手順

  1. undercloud.conf ファイルで iPXE を無効にします。

    [DEFAULT]
    ipxe_enabled = False
    注記

    RHOSP 16.2.1 以前の場合、この設定により、デプロイメント内のすべての x86_64 ノードも PXE/ レガシーモードで起動します。オーバークラウド用にマルチ CPU アーキテクチャーを設定するには、Configuring a multiple CPU architecture overcloud を参照してください。

  2. アンダークラウドをインストールします。

    [stack@director ~]$ openstack undercloud install

    詳細は、Installing director on the undercloud を参照してください。

  3. インストールスクリプトが完了するまで待ちます。
  4. オーバークラウドノードのイメージを取得してアップロードします。詳細は、Obtaining images for overcloud nodes を参照してください。

4.9.2. マルチ CPU アーキテクチャーオーバークラウドの設定

RHOSP 16.2.2 以降では、アーキテクチャーに POWER (ppc64le) と x86_64 UEFI ノードの両方が含まれている場合、PXE と iPXE の両方のブートモードをサポートするようにアンダークラウドを設定することができます。

注記

アーキテクチャーに POWER (ppc64le) ノードが含まれている場合、RHOSP 16.2.1 以前は PXE ブートのみをサポートします。

手順

  1. undercloud.conf ファイルで iPXE を有効にします。

    [DEFAULT]
    ipxe_enabled = True
  2. アンダークラウド用のカスタム環境ファイル undercloud_noIronicIPXEEnabled.yaml を作成します。
  3. デフォルトのベアメタルプロビジョニングサービス (ironic) iPXE 設定を PXE に変更するには、以下の設定を undercloud_noIronicIPXEEnabled.yaml に追加します。

    parameter_defaults:
      IronicIPXEEnabled: false
      IronicInspectorIPXEEnabled: true
  4. アーキテクチャーに ppc64le ノードが含まれている場合は、以下の設定を undercloud_noIronicIPXEEnabled.yaml に追加して、ブートタイムアウトを無効にします。

    parameter_defaults:
      ExtraConfig:
        ironic::config::ironic_config:
          ipmi/disable_boot_timeout:
            value: 'false'
  5. undercloud.conf ファイルにカスタム環境ファイルを含めます。

    [DEFAULT]
    ...
    custom_env_files = undercloud_noIronicIPXEEnabled.yaml
  6. アンダークラウドをインストールします。

    [stack@director ~]$ openstack undercloud install

    詳細は、Installing director on the undercloud を参照してください。

  7. インストールスクリプトが完了するまで待ちます。
  8. オーバークラウドノードを登録します。

    (undercloud)$ openstack overcloud node import ~/nodes.json

    オーバークラウドノードの登録の詳細については、Registering nodes for the overcloud を参照してください。

  9. ノードの登録および設定が完了するまで待ちます。
  10. director がノードを正常に登録したことを確認します。

    (undercloud)$ openstack baremetal node list
  11. 登録された各ノードの既存の機能を確認します。

    $ openstack baremetal node show <node> -f json -c properties | jq -r .properties.capabilities
  12. ノードの既存の機能に boot_mode:uefi を追加して、登録されている各ノードのブートモードを uefi に設定します。

    $ openstack baremetal node set --property capabilities="boot_mode:uefi,<capability_1>,...,<capability_n>" <node>
    • <node> をベアメタルノードの ID に置き換えてください。
    • <capability_1>、および <capability_n> までのすべての機能を、手順 6 で取得した各機能に置き換えます。
  13. オーバークラウドノードのイメージを取得してアップロードします。詳細は、Multiple CPU architecture overcloud images を参照してください。
  14. 各ノードのブートモードを設定します。

    • レガシー/PXE の場合。

      $ openstack baremetal node set --boot-interface pxe <node_name>
    • iPXE の場合:

      $ openstack baremetal node set --boot-interface ipxe <node_name>

4.9.3. マルチアーキテクチャーオーバークラウドでの Ceph Storage の使用

マルチアーキテクチャークラウドにおいて外部 Ceph へのアクセスを設定する場合には、CephAnsiblePlaybook パラメーターを /usr/share/ceph-ansible/site.yml.sample に設定し、クライアントキーおよびその他の Ceph 固有パラメーターを含めます。

以下に例を示します。

parameter_defaults:
  CephAnsiblePlaybook: /usr/share/ceph-ansible/site.yml.sample
  CephClientKey: AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ==
  CephClusterFSID: 4b5c8c0a-ff60-454b-a1b4-9747aa737d19
  CephExternalMonHost: 172.16.1.7, 172.16.1.8

4.9.4. マルチアーキテクチャーオーバークラウドでのコンポーザブルサービスの使用

一般に Controller ノードの一部となる以下のサービスは、テクノロジープレビューとしてカスタムロールでの使用が可能です。

  • Block Storage サービス (cinder)
  • Image サービス (glance)
  • Identity サービス (keystone)
  • Networking サービス (neutron)
  • Object Storage サービス (swift)
注記

Red Hat は、テクノロジープレビューの機能をサポートしていません。

コンポーザブルサービスについての詳しい情報は、Advanced Overcloud Customizationcomposable services and custom roles を参照してください。以下の例を使用して、上記のサービスを Controller ノードから専用の ppc64le ノードに移動する方法を説明します。

(undercloud) [stack@director ~]$ rsync -a /usr/share/openstack-tripleo-heat-templates/. ~/templates
(undercloud) [stack@director ~]$ cd ~/templates/roles
(undercloud) [stack@director roles]$ cat <<EO_TEMPLATE >ControllerPPC64LE.yaml
###############################################################################
# Role: ControllerPPC64LE                                                     #
###############################################################################
- name: ControllerPPC64LE
  description: |
    Controller role that has all the controller services loaded and handles
    Database, Messaging and Network functions.
  CountDefault: 1
  tags:
    - primary
    - controller
  networks:
    - External
    - InternalApi
    - Storage
    - StorageMgmt
    - Tenant
  # For systems with both IPv4 and IPv6, you may specify a gateway network for
  # each, such as ['ControlPlane', 'External']
  default_route_networks: ['External']
  HostnameFormatDefault: '%stackname%-controllerppc64le-%index%'
  ImageDefault: ppc64le-overcloud-full
  ServicesDefault:
    - OS::TripleO::Services::Aide
    - OS::TripleO::Services::AuditD
    - OS::TripleO::Services::CACerts
    - OS::TripleO::Services::CephClient
    - OS::TripleO::Services::CephExternal
    - OS::TripleO::Services::CertmongerUser
    - OS::TripleO::Services::CinderApi
    - OS::TripleO::Services::CinderBackendDellPs
    - OS::TripleO::Services::CinderBackendDellSc
    - OS::TripleO::Services::CinderBackendDellEMCUnity
    - OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
    - OS::TripleO::Services::CinderBackendDellEMCVNX
    - OS::TripleO::Services::CinderBackendDellEMCXTREMIOISCSI
    - OS::TripleO::Services::CinderBackendNetApp
    - OS::TripleO::Services::CinderBackendScaleIO
    - OS::TripleO::Services::CinderBackendVRTSHyperScale
    - OS::TripleO::Services::CinderBackup
    - OS::TripleO::Services::CinderHPELeftHandISCSI
    - OS::TripleO::Services::CinderScheduler
    - OS::TripleO::Services::CinderVolume
    - OS::TripleO::Services::Collectd
    - OS::TripleO::Services::Docker
    - OS::TripleO::Services::Fluentd
    - OS::TripleO::Services::GlanceApi
    - OS::TripleO::Services::GlanceRegistry
    - OS::TripleO::Services::Ipsec
    - OS::TripleO::Services::Iscsid
    - OS::TripleO::Services::Kernel
    - OS::TripleO::Services::Keystone
    - OS::TripleO::Services::LoginDefs
    - OS::TripleO::Services::MySQLClient
    - OS::TripleO::Services::NeutronApi
    - OS::TripleO::Services::NeutronBgpVpnApi
    - OS::TripleO::Services::NeutronSfcApi
    - OS::TripleO::Services::NeutronCorePlugin
    - OS::TripleO::Services::NeutronDhcpAgent
    - OS::TripleO::Services::NeutronL2gwAgent
    - OS::TripleO::Services::NeutronL2gwApi
    - OS::TripleO::Services::NeutronL3Agent
    - OS::TripleO::Services::NeutronLbaasv2Agent
    - OS::TripleO::Services::NeutronLbaasv2Api
    - OS::TripleO::Services::NeutronLinuxbridgeAgent
    - OS::TripleO::Services::NeutronMetadataAgent
    - OS::TripleO::Services::NeutronML2FujitsuCfab
    - OS::TripleO::Services::NeutronML2FujitsuFossw
    - OS::TripleO::Services::NeutronOvsAgent
    - OS::TripleO::Services::NeutronVppAgent
    - OS::TripleO::Services::Ntp
    - OS::TripleO::Services::ContainersLogrotateCrond
    - OS::TripleO::Services::OpenDaylightOvs
    - OS::TripleO::Services::Rhsm
    - OS::TripleO::Services::RsyslogSidecar
    - OS::TripleO::Services::Securetty
    - OS::TripleO::Services::SensuClient
    - OS::TripleO::Services::SkydiveAgent
    - OS::TripleO::Services::Snmp
    - OS::TripleO::Services::Sshd
    - OS::TripleO::Services::SwiftProxy
    - OS::TripleO::Services::SwiftDispersion
    - OS::TripleO::Services::SwiftRingBuilder
    - OS::TripleO::Services::SwiftStorage
    - OS::TripleO::Services::Timezone
    - OS::TripleO::Services::TripleoFirewall
    - OS::TripleO::Services::TripleoPackages
    - OS::TripleO::Services::Tuned
    - OS::TripleO::Services::Vpp
    - OS::TripleO::Services::OVNController
    - OS::TripleO::Services::OVNMetadataAgent
    - OS::TripleO::Services::Ptp
EO_TEMPLATE
(undercloud) [stack@director roles]$ sed -i~ -e '/OS::TripleO::Services::\(Cinder\|Glance\|Swift\|Keystone\|Neutron\)/d' Controller.yaml
(undercloud) [stack@director roles]$ cd ../
(undercloud) [stack@director templates]$ openstack overcloud roles generate \
    --roles-path roles -o roles_data.yaml \
    Controller Compute ComputePPC64LE ControllerPPC64LE BlockStorage ObjectStorage CephStorage