13.2. リアルタイム Compute ロールのデプロイメント
Red Hat OpenStack Platform (RHOSP) director では、ComputeRealTime
ロールのテンプレートが利用可能です。これを使用して、real-time コンピュートノードをデプロイすることができます。コンピュートノードをリアルタイム用に指定するためには、追加のステップを実施する必要があります。
手順
/usr/share/openstack-tripleo-heat-templates/environments/compute-real-time-example.yaml
ファイルをベースに、ComputeRealTime
ロールのパラメーターを設定するcompute-real-time.yaml
環境ファイルを作成します。cp /usr/share/openstack-tripleo-heat-templates/environments/compute-real-time-example.yaml /home/stack/templates/compute-real-time.yaml
ファイルには、以下のパラメーター値を含める必要があります。
-
IsolCpusList
およびNovaComputeCpuDedicatedSet
: リアルタイム負荷のために確保する分離 CPU コアおよび仮想 CPU のピニングのリスト。この値は、real-time コンピュートノードの CPU ハードウェアにより異なります。 -
NovaComputeCpuSharedSet
: エミュレータースレッド用に確保するホスト CPU のリスト -
KernelArgs
: Real-time コンピュートノードのカーネルに渡す引数。たとえば、default_hugepagesz=1G hugepagesz=1G hugepages=<number_of_1G_pages_to_reserve> hugepagesz=2M hugepages=<number_of_2M_pages>
を使用して、複数のサイズのヒュージページを持つゲストのメモリー要求を定義することができます。この例では、デフォルトのサイズは 1 GB ですが、2 MB のヒュージページを確保することもできます。 -
NovaComputeDisableIrqBalance
: リアルタイムデプロイメントではirqbalance
サービスではなくtuned
サービスが IRQ 分散を管理するので、リアルタイムコンピュートノードではこのパラメーターをtrue
に設定するようにしてください。
-
ComputeRealTime
ロールをロールデータのファイルに追加し、ファイルを再生成します。以下に例を示します。$ openstack overcloud roles generate -o /home/stack/templates/rt_roles_data.yaml Controller Compute ComputeRealTime
このコマンドにより、以下の例のような内容で
ComputeRealTime
ロールが生成され、ImageDefault
オプションにovercloud-realtime-compute
が設定されます。- name: ComputeRealTime description: | Compute role that is optimized for real-time behaviour. When using this role it is mandatory that an overcloud-realtime-compute image is available and the role specific parameters IsolCpusList, NovaComputeCpuDedicatedSet and NovaComputeCpuSharedSet are set accordingly to the hardware of the real-time compute nodes. CountDefault: 1 networks: InternalApi: subnet: internal_api_subnet Tenant: subnet: tenant_subnet Storage: subnet: storage_subnet HostnameFormatDefault: '%stackname%-computerealtime-%index%' ImageDefault: overcloud-realtime-compute RoleParametersDefault: TunedProfileName: "realtime-virtual-host" KernelArgs: "" # these must be set in an environment file IsolCpusList: "" # or similar according to the hardware NovaComputeCpuDedicatedSet: "" # of real-time nodes NovaComputeCpuSharedSet: "" # NovaLibvirtMemStatsPeriodSeconds: 0 ServicesDefault: - OS::TripleO::Services::Aide - OS::TripleO::Services::AuditD - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient - OS::TripleO::Services::CephExternal - OS::TripleO::Services::CertmongerUser - OS::TripleO::Services::Collectd - OS::TripleO::Services::ComputeCeilometerAgent - OS::TripleO::Services::ComputeNeutronCorePlugin - OS::TripleO::Services::ComputeNeutronL3Agent - OS::TripleO::Services::ComputeNeutronMetadataAgent - OS::TripleO::Services::ComputeNeutronOvsAgent - OS::TripleO::Services::Docker - OS::TripleO::Services::Fluentd - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec - OS::TripleO::Services::Iscsid - OS::TripleO::Services::Kernel - OS::TripleO::Services::LoginDefs - OS::TripleO::Services::MetricsQdr - OS::TripleO::Services::MySQLClient - OS::TripleO::Services::NeutronBgpVpnBagpipe - OS::TripleO::Services::NeutronLinuxbridgeAgent - OS::TripleO::Services::NeutronVppAgent - OS::TripleO::Services::NovaCompute - OS::TripleO::Services::NovaLibvirt - OS::TripleO::Services::NovaLibvirtGuests - OS::TripleO::Services::NovaMigrationTarget - OS::TripleO::Services::ContainersLogrotateCrond - OS::TripleO::Services::OpenDaylightOvs - OS::TripleO::Services::Podman - 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::Timesync - OS::TripleO::Services::Timezone - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::Vpp - OS::TripleO::Services::OVNController - OS::TripleO::Services::OVNMetadataAgent
カスタムロールおよび
roles-data.yaml
に関する一般的な情報は、Roles セクションを参照してください。リアルタイム負荷用に指定するノードをタグ付けするために、
compute-realtime
フレーバーを作成します。以下に例を示します。$ source ~/stackrc $ openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 compute-realtime $ openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="compute-realtime" compute-realtime
リアルタイム負荷用に指定するそれぞれのノードを、
compute-realtime
プロファイルでタグ付けします。$ openstack baremetal node set --property capabilities='profile:compute-realtime,boot_option:local' <node_uuid>
以下の内容の環境ファイルを作成して、
ComputeRealTime
ロールをcompute-realtime
フレーバーにマッピングします。parameter_defaults: OvercloudComputeRealTimeFlavor: compute-realtime
その他の環境ファイルと共に、これらの環境ファイルおよび新しいロールファイルをスタックに追加して、オーバークラウドをデプロイします。
(undercloud)$ openstack overcloud deploy --templates \ -e [your environment files] \ -r /home/stack/templates/rt~/my_roles_data.yaml \ -e home/stack/templates/compute-real-time.yaml