Menu Close
Settings Close

Language and Page Formatting Options

9.3.2. 최소 대역폭 QoS 정책을 사용하여 인스턴스 예약

최소 대역폭 QoS 정책을 포트에 적용하여 RHOSP(Red Hat OpenStack Platform) VM 인스턴스가 생성되는 호스트에 최소 네트워크 대역폭이 있는지 확인할 수 있습니다.

사전 요구 사항

  • RHOSP Networking 서비스(neutron)에는 qos배치 서비스 플러그인이 로드되어야 합니다. qos 서비스 플러그인은 기본적으로 로드됩니다.
  • 네트워킹 서비스에서 다음 API 확장을 지원해야 합니다.

    • agent-resources-synced
    • port-resource-request
    • qos-bw-minimum-ingress
  • ML2/OVS 또는 ML2/SR-IOV 메커니즘 드라이버를 사용해야 합니다.
  • 정책이 할당된 포트를 사용하는 인스턴스가 없는 경우에만 최소 대역폭 QoS 정책을 수정할 수 있습니다. 포트가 바인딩된 경우 네트워킹 서비스는 배치 API 사용 정보를 업데이트할 수 없습니다.
  • 배치 서비스는 마이크로버전 1.29를 지원해야 합니다.
  • Compute 서비스(nova)는 마이크로 버전 2.72를 지원해야 합니다.

절차

  1. 자격 증명 파일을 가져옵니다.

    예제

    $ source ~/overcloudrc

  2. qos 서비스 플러그인이 Networking 서비스에 로드되었는지 확인합니다.

    $ openstack network qos policy list

    qos 서비스 플러그인이 로드되지 않은 경우 ResourceNotFound 오류가 발생하고 qos 서비스 플러그인을 로드해야 합니다. 자세한 내용은 9.2절. “QoS 정책을 위한 네트워킹 서비스 구성”의 내용을 참조하십시오.

  3. QoS 정책을 생성할 프로젝트의 ID를 확인합니다.

    $ openstack project list

    샘플 출력

    +----------------------------------+----------+
    | ID                               | Name     |
    +----------------------------------+----------+
    | 4b0b98f8c6c040f38ba4f7146e8680f5 | auditors |
    | 519e6344f82e4c079c8e2eabb690023b | services |
    | 80bf5732752a41128e612fe615c886c6 | demo     |
    | 98a2f53c20ce4d50a40dac4a38016c69 | admin    |
    +----------------------------------+----------+

  4. 이전 단계의 프로젝트 ID를 사용하여 프로젝트에 대한 QoS 정책을 생성합니다.

    예제

    이 예제에서는 admin 프로젝트에 대해 guaranteed_min_bw 라는 QoS 정책이 생성됩니다.

    $ openstack network qos policy create --share \
     --project 98a2f53c20ce4d50a40dac4a38016c69 guaranteed_min_bw
  5. 정책에 대한 규칙을 구성합니다.

    예제

    이 예에서는 guaranteed_min_bw 라는 정책에 대해 최소 대역폭 40000000 kbps를 사용하여 수신 및 송신에 대한 QoS 규칙이 생성됩니다.

    $ openstack network qos rule create \
     --type minimum-bandwidth --min-kbps 40000000 \
     --ingress guaranteed_min_bw
    $ openstack network qos rule create \
     --type minimum-bandwidth --min-kbps 40000000 \
     --egress guaranteed_min_bw
  6. 정책을 적용할 포트를 구성합니다.

    예제

    이 예에서 guaranteed_min_bw 정책은 포트 ID인 kubevirt x9aiw1-2v74-144x-c2q8-ed8w423a6s12 에 적용됩니다.

    $ openstack port set --qos-policy guaranteed_min_bw \
     56x9aiw1-2v74-144x-c2q8-ed8w423a6s12

검증

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
  3. 사용 가능한 모든 리소스 공급자를 나열합니다.

    $ openstack --os-placement-api-version 1.17 resource provider list

    샘플 출력

    +--------------------------------------+-----------------------------------------------------+------------+--------------------------------------+--------------------------------------+
    | uuid                                 | name                                                | generation | root_provider_uuid                   | parent_provider_uuid                 |
    +--------------------------------------+-----------------------------------------------------+------------+--------------------------------------+--------------------------------------+
    | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | dell-r730-014.localdomain                           |         28 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | None                                 |
    | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | dell-r730-063.localdomain                           |         18 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | None                                 |
    | e2f5082a-c965-55db-acb3-8daf9857c721 | dell-r730-063.localdomain:NIC Switch agent          |          0 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 |
    | d2fb0ef4-2f45-53a8-88be-113b3e64ba1b | dell-r730-014.localdomain:NIC Switch agent          |          0 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 |
    | f1ca35e2-47ad-53a0-9058-390ade93b73e | dell-r730-063.localdomain:NIC Switch agent:enp6s0f1 |         13 | 6b15ddce-13cf-4c85-a58f-baec5b57ab52 | e2f5082a-c965-55db-acb3-8daf9857c721 |
    | e518d381-d590-5767-8f34-c20def34b252 | dell-r730-014.localdomain:NIC Switch agent:enp6s0f1 |         19 | 31d3d88b-bc3a-41cd-9dc0-fda54028a882 | d2fb0ef4-2f45-53a8-88be-113b3e64ba1b |
    +--------------------------------------+-----------------------------------------------------+------------+--------------------------------------+--------------------------------------+

  4. 특정 리소스에서 제공하는 대역폭을 확인합니다.

    (undercloud)$ openstack --os-placement-api-version 1.17 \
     resource provider inventory list <rp_uuid>

    예제

    이 예에서 호스트 dell-r730-014 에서 enp6s0f1 인터페이스에 의해 제공되는 대역폭은 리소스 공급자 UUID, e518d381-d590-5767-8f34-c20def34b252 를 사용하여 확인됩니다.

    [stack@dell-r730-014 nova]$ openstack --os-placement-api-version 1.17 \
     resource provider inventory list e518d381-d590-5767-8f34-c20def34b252

    샘플 출력

    +----------------------------+------------------+----------+------------+----------+-----------+----------+
    | resource_class             | allocation_ratio | min_unit |   max_unit | reserved | step_size |    total |
    +----------------------------+------------------+----------+------------+----------+-----------+----------+
    | NET_BW_EGR_KILOBIT_PER_SEC |              1.0 |        1 | 2147483647 |        0 |         1 | 10000000 |
    | NET_BW_IGR_KILOBIT_PER_SEC |              1.0 |        1 | 2147483647 |        0 |         1 | 10000000 |
    +----------------------------+------------------+----------+------------+----------+-----------+----------+

  5. 인스턴스가 실행 중인 경우 리소스 공급자에 대한 클레임을 확인하려면 다음 명령을 실행합니다.

    (undercloud)$ openstack --os-placement-api-version 1.17 \
     resource provider show --allocations  <rp_uuid>

    예제

    이 예에서 리소스 공급자에 대한 클레임은 리소스 공급자 UUID인 e518d381-d590-5767-8f34-c20defb252를 사용하여 호스트에서 dell- r730-014 에서 확인됩니다.

    [stack@dell-r730-014 nova]$ openstack --os-placement-api-version 1.17 resource provider show --allocations  e518d381-d590-5767-8f34-c20def34b252 -f value -c allocations

    샘플 출력

    {3cbb9e07-90a8-4154-8acd-b6ec2f894a83: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 8848b88b-4464-443f-bf33-5d4e49fd6204: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, 9a29e946-698b-4731-bc28-89368073be1a: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, a6c83b86-9139-4e98-9341-dc76065136cc: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}, da60e33f-156e-47be-a632-870172ec5483: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 1000000, NET_BW_IGR_KILOBIT_PER_SEC: 1000000}}, eb582a0e-8274-4f21-9890-9a0d55114663: {resources: {NET_BW_EGR_KILOBIT_PER_SEC: 3000000, NET_BW_IGR_KILOBIT_PER_SEC: 3000000}}}

추가 리소스