9.2. QoS 정책을 위한 네트워킹 서비스 구성
RHOSP(Red Hat OpenStack Platform) 네트워킹 서비스(neutron)의 서비스 품질은 qos
서비스 플러그인을 통해 제공됩니다. ML2/OVS 및 ML2/OVN 메커니즘 드라이버를 사용하면 기본적으로 qos
가 로드됩니다. 그러나 ML2/SR-IOV에는 적용되지 않습니다.
ML2/OVS 및 ML2/SR-IOV 메커니즘 드라이버와 함께 qos
서비스 플러그인을 사용하는 경우 해당 에이전트에 qos
확장 프로그램을 로드해야 합니다.
다음 목록에는 QoS용 네트워킹 서비스를 구성하기 위해 수행해야 하는 작업이 요약되어 있습니다. 작업 세부 정보는 이 목록에 따릅니다.
모든 유형의 QoS 정책에 대해:
-
qos
서비스 플러그인을 추가합니다. -
에이전트(OVS 및 SR-IOV만 해당)의
qos
확장을 추가합니다.
-
최소 대역폭 정책을 사용하여 VM 인스턴스를 예약하기 위한 추가 작업만 수행합니다.
- Compute 서비스(nova)에서 사용하는 이름과 다른 하이퍼바이저 이름을 지정합니다.
- 각 컴퓨팅 노드에서 관련 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성합니다.
-
(선택 사항)
vnic_types
를 지원하지 않는 것으로 표시합니다.
터널링에서만 ML/OVS를 사용하는 시스템에서 DSCP 마킹 정책에 대한 추가 작업:
-
dscp_inherit
을true
로 설정합니다.
-
사전 요구 사항
-
RHOSP 언더클라우드에 액세스할 수 있는
stack
사용자여야 합니다.
절차
-
언더클라우드 호스트에
stack
사용자로 로그인합니다. 언더클라우드 인증 정보 파일을 소싱합니다.
$ source ~/stackrc
qos
서비스 플러그인이 아직 로드되지 않았는지 확인합니다.$ openstack network qos policy list
qos
서비스 플러그인이 로드되지 않은 경우ResourceNotFound
오류가 발생합니다. 오류가 표시되지 않으면 플러그인이 로드되고 이 항목의 단계를 수행할 필요가 없습니다.YAML 사용자 지정 환경 파일을 생성합니다.
예제
$ vi /home/stack/templates/my-neutron-environment.yaml
환경 파일에는
parameter_defaults
키워드가 포함되어야 합니다. 아래 새 행에서parameter_defaults
는NeutronServicePlugins
매개변수에qos
를 추가합니다.parameter_defaults: NeutronServicePlugins: "qos"
ML2/OVS 및 ML2/SR-IOV 메커니즘 드라이버를 사용하는 경우
NeutronAgentExtensions
또는NeutronSriovAgentExtensions
변수를 각각 사용하여 에이전트에qos
확장을 로드해야 합니다.ML2/OVS
parameter_defaults: NeutronServicePlugins: "qos" NeutronAgentExtensions: "qos"
ML2/SR-IOV
parameter_defaults: NeutronServicePlugins: "qos" NeutronSriovAgentExtensions: "qos"
최소 대역폭 QoS 정책을 사용하여 VM 인스턴스를 예약하려면 다음을 수행해야 합니다.
플러그인 목록에
배치를
추가하고 목록에qos
:도 포함되어 있는지 확인하십시오.parameter_defaults: NeutronServicePlugins: "qos,placement"
하이퍼바이저 이름이 Compute 서비스(nova)에서 사용하는 표준 하이퍼바이저 이름과 일치하는 경우 7.iii 단계로 건너뜁니다.
하이퍼바이저 이름이 Compute 서비스에서 사용하는 표준 하이퍼바이저 이름과 일치하지 않는 경우
resource_provider_default_hypervisor
를 사용하여 대체 하이퍼바이저 이름을 지정합니다.ML2/OVS
parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}
ML2/SR-IOV
parameter_defaults: NeutronServicePlugins: "qos,placement" ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_default_hypervisor: %{hiera('fqdn_canonical')}
중요대체 하이퍼바이저 이름을 설정하는 또 다른 방법은
resource_provider_hypervisor
를 사용하는 것입니다.ML2/OVS
parameter_defaults: ExtraConfig: Neutron::agents::ml2::ovs::resource_provider_hypervisors:"ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"
ML2/SR-IOV
parameter_defaults: ExtraConfig: Neutron::agents::ml2::sriov::resource_provider_hypervisors: "ens5:%{hiera('fqdn_canonical')},ens6:%{hiera('fqdn_canonical')}"
최소 대역폭을 제공해야 하는 각 컴퓨팅 노드에서 관련 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성합니다.
다음 형식을 사용하여 송신, 수신 또는 둘 다를 구성할 수 있습니다.
kbps에서 송신 대역폭만 구성합니다.
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:,<bridge1>:<egress_kbps>:,...,<bridgeN>:<egress_kbps>:
kbps에서 수신 대역폭만 구성합니다.
NeutronOvsResourceProviderBandwidths: <bridge0>::<ingress_kbps>,<bridge1>::<ingress_kbps>,...,<bridgeN>::<ingress_kbps>
kbps에서 송신 및 수신 대역폭을 둘 다 구성합니다.
NeutronOvsResourceProviderBandwidths: <bridge0>:<egress_kbps>:<ingress_kbps>,<bridge1>:<egress_kbps>:<ingress_kbps>,...,<bridgeN>:<egress_kbps>:<ingress_kbps>
예 - OVS 에이전트
OVS 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성하려면 네트워크 환경 파일에 다음 구성을 추가합니다.
parameter_defaults: ... NeutronBridgeMappings: physnet0:br-physnet0 NeutronOvsResourceProviderBandwidths: br-physnet0:10000000:10000000
예 - SRIOV 에이전트
SRIOV 에이전트에 대한 리소스 공급자 수신 및 송신 대역폭을 구성하려면 네트워크 환경 파일에 다음 구성을 추가합니다.
parameter_defaults: ... NeutronML2PhysicalNetworkMtus: physnet0:1500,physnet1:1500 NeutronSriovResourceProviderBandwidths: ens5:40000000:40000000,ens6:40000000:40000000
선택 사항: 배치 서비스에서 여러 ML2 메커니즘 드라이버가 이를 지원하고 여러 에이전트가 추적되는 경우
vnic_types
를 지원하지 않는 것으로 표시하려면 다음 설정도 환경 파일에 추가합니다.예 - OVS 에이전트
parameter_defaults: ... NeutronOvsVnicTypeBlacklist: direct
예 - SRIOV 에이전트
parameter_defaults: ... NeutronSriovVnicTypeBlacklist: direct
DSCP 표시 정책을 생성하고 터널링 프로토콜(VXLAN 또는 GRE)을 사용하여 ML2/OVS를 사용하려는 경우
NeutronAgentExtensions
에서 다음 행을 추가합니다.parameter_defaults: ... ControllerExtraConfig: neutron::config::server_config: agent/dscp_inherit: value: true
dscp_inherit
이true
인 경우 Networking 서비스는 내부 헤더의 DSCP 값을 외부 헤더에 복사합니다.배포 명령을 실행하고 코어 heat 템플릿, 기타 환경 파일 및 이 새로운 사용자 지정 환경 파일을 포함합니다.
중요후속 환경 파일에 정의된 매개 변수와 리소스가 우선하기 때문에 환경 파일의 순서가 중요합니다.
예제
$ openstack overcloud deploy --templates \ -e <other_environment_files> \ -e /home/stack/templates/my-neutron-environment.yaml
검증
qos
서비스 플러그인이 로드되었는지 확인합니다.$ openstack network qos policy list
qos
서비스 플러그인이 로드되면ResourceNotFound
오류가 발생하지 않습니다.
추가 리소스