13.2. 실시간 컴퓨팅 역할 배포
RHOSP(Red Hat OpenStack Platform) director는 실시간 컴퓨팅 노드를 배포하는 데 사용할 수 있는 ComputeRealTime
역할에 대한 템플릿을 제공합니다. 실시간 컴퓨팅 노드를 지정하려면 추가 단계를 수행해야 합니다.
절차
/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 고정 목록입니다. 이 값은 실시간 컴퓨팅 노드의 CPU 하드웨어에 따라 다릅니다. -
NovaComputeCpuSharedSet
: 에뮬레이터 스레드를 예약할 호스트 CPU 목록입니다. -
KernelArgs
: 실시간 컴퓨팅 노드의 커널에 전달할 인수입니다. 예를 들어default_hugepagesz=1G hugepagesz=1G hugepages=<number_of_1G_pages_to_reserve> hugepagesz=2M hugepages=<number_of_2M_pages>
를 사용하여 여러 크기의 대규모 페이지가 있는 게스트의 메모리 요구 사항을 정의할 수 있습니다. 이 예에서 기본 크기는 1GB이지만 2M 대규모 페이지를 예약할 수도 있습니다. -
NovaComputeDisableIrqBalance
:tuned
서비스가irqbalance
서비스가 아닌 실시간 배포에 대한 IRQ 분산을 관리하므로 이 매개변수가 Real-time Compute 노드에 대해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
에 대한 일반 정보는 역할을 참조하십시오.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