ㅍㅍㅋㄷ

Openstack flavor를 이용한 VM network QoS 설정 본문

IT/Openstack

Openstack flavor를 이용한 VM network QoS 설정

클쏭 2016. 5. 4. 11:52




Openstack 과 같은 cloud 환경을 운영할때 VM의 QoS 설정은 중요한 운영 포인트이다. 

특히 네트워크의 경우, 한개의 VM이 cloud 환경의 모든 트래픽을 점유하게 되면 동일 환경 내 다른 VM 들에게 영향을 미칠수 있으며, 이는 불특정 다수의 VM이 공용되는 환경에서 필수적으로 고려되야 하는 부분이다. 


 Openstack의 경우 다양한 network QoS 적용 방법이 있는데, 이번 포스트에는 flavor를 통해 network quota를 지정하는 방법을 소개한다.

  




1. Nova flavor 설정


   CLI를 통해 flavor의 extra spec 으로 QoS 설정 항목을 넣어 주면 된다. 명령은 아래와 같은 형태이다.

   

  nova flavor-key  <flavor_name> set quota:vif_<direction>_<param_name> = value


  qouta로 설정할 수 있는 옵션은 아래와 같다.

    • vif_inbound_average : inbound 트래픽의 평균 전송량 제한값 ( kilobytes/sec )
    • vif_inbound_peak : bridge 에서 전송 가능한 최대 inbound 트래픽 speed. outbound 에 대한 설정은 무시됨. ( kilobytes/sec )
    • vif_inbound_burst : peak speed 로 하나의 burst로 전송 가능한 kilobytes 양
    • vif_outbound_average : outbound 트래픽의 평균 전송량 제한값 ( kilobytes/sec )
    • vif_outbound_peak :무시됨
    • vif_outbound_burst : peak speed 로 하나의 burst로 전송 가능한 kilobytes 양
 flavor 중 'm1.small' 에 QoS 를 걸어보자. 
 m1.small flavor로 배포되는 VM의 경우 QoS가 설정되어 배포되게 된다.  

root@~~# nova flavor-key m1.small set quota:vif_inbound_average = 800
root@~~# nova flavor-key m1.small set quota:vif_inbound_peak = 1000
root@~~# nova flavor-key m1.small set quota:vif_inbound_burst = 30
root@~~# 
root@~~# nova flavor-key m1.small set quota:vif_outbound_average = 800
root@~~# nova flavor-key m1.small set quota:vif_outbound_peak = 1000
root@~~# nova flavor-key m1.small set quota:vif_outbound_burst = 30


2. 확인


flavor를 확인해 보면 아래와 같이 extra spec에 해당 파라미터들이 설정된 것을 볼 수 있다.


root@~~# nova flavor-list

+--------------------------------------+-----------+-----------+------+-----------+------+-------+-------------+-----------+

| ID                                   | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public |

+--------------------------------------+-----------+-----------+------+-----------+------+-------+-------------+-----------+

| 8a35a45e-30ac-4209-b7d8-4fd82c749347 | m1.small  | 4096      | 40   | 0         |      | 2     | 1.0         | True      |

+--------------------------------------+-----------+-----------+------+-----------+------+-------+-------------+-----------+


root@~~# nova flavor-show 8a35a45e-30ac-4209-b7d8-4fd82c749347 

+----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| Property                   | Value                                                                                                                                                                                                                                                |

+----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

| OS-FLV-DISABLED:disabled   | False                                                                                                                                                                                                                                                |

| OS-FLV-EXT-DATA:ephemeral  | 0                                                                                                                                                                                                                                                    |

| disk                       | 40                                                                                                                                                                                                                                                   |

| extra_specs                | {"quota:vif_outbound_average": "800", "quota:vif_outbound_burst": "1000", "quota:vif_inbound_peak": "30", "quota:vif_inbound_average": "800", "quota:vif_inbound_burst": "1000", "quota:vif_outbound_peak": "30"} |

| id                         | ac132a96-e748-4599-bf82-dad73ab445ef                                                                                                                                                                                                                 |

| name                       | m1.small                                                                                                                                                                                                                                            |

| os-flavor-access:is_public | True                                                                                                                                                                                                                                                 |

| ram                        | 4096                                                                                                                                                                                                                                                 |

| rxtx_factor                | 1.0                                                                                                                                                                                                                                                  |

| swap                       |                                                                                                                                                                                                                                                      |

| vcpus                      | 2                                                                                                                                                                                                                                                    |

+----------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+



 3. VM 배포 및 적용 확인


  해당 flavor로 VM을 배포하면 QoS 설정이 적용된 상태로 배포되게 된다. 

  만약 QoS를 설정하기 전에 해당 flavor로 배포된 VM의 경우, VM을 shutdown 후 start 시키면 QoS가 적용된 상태로 올라오게 된다. 

  (reboot 말고 shutdown / start를 수행한다 )


  실제 적용은 libvirt 의 element 와 attribute에 설정된다. 

  virsh 명령어로 VM에 적용된 속성들을 확인해 보자.


root@~~# virsh xmldump <INSTANCE_ID>


..... (중략)

<interface type='bridge'>

      <mac address='XXXXXX'/>

      <source bridge='qbr5d47a3ee-ae'/>

      <bandwidth>

         <inbound average='800' peak='1000' burst='30'/>

         <outbound average='800' peak='1000' burst='30'/>

      </bandwidth>

      <target dev='tap5d47a3ee-ae'/>

      <model type='virtio'/>

      <alias name='net0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

</interface>



'IT > Openstack' 카테고리의 다른 글

Paypal과 eBay의 Openstack 적용 사례  (0) 2015.07.15
Comments