본문 바로가기
  • AI (Artificial Intelligence)
Legacy Skills/VM

SR-IOV 를 통한 IO 가상화와 VM-FEX

by 로샤스 2014. 3. 25.

MS Hyper-V 2012 가 나오면서 vSphere 와 두드리전 차이점으로 주목을 받았던 점이 하나 있었습니다.  바로 이

SR-IOV 기술과 관련이 있죠.  물로 vSphere 도 5.1 버전부터 SR-IOV 를 지원합니다만 가장 큰 차이점은 바로

가상머신의 "Mobility" 기능을 그대로 쓸수 있느냐 입니다. MS 는 SR-IOV 기능을 사용하면서도 VM 의 Live

Migration 이 가능하다는 장점이 있죠.  이번 포스팅은 그차이점을 설명하려는건 아니고, SR-IOV 가 뭔지..를 한번

정리해 보고 이룰 물리적인 네트워크 인프라 까지 확장하는 기술에대해서 이야기해 보고자 합니다. 

 

SR-IOV 는 PCI-SIG(Special Interest Group) 표준기반의 PIC 카드를 가상화 시키는 기술입니다. 그리고 그 이름이 

의미하듯 한 뿌리(Physical)를 가지지만 줄기는 가상화를 통해 논리적으로 여러개의 NIC 또는 HBA 로 만들어 쓰겠다

는 겁니다.  이 SR-IOV 지원 카드는 하나의 Physical Function (PF) 을 가지고  있는데 이는 물리적인 PCI 카드를   

타내고, 이것이 가진 특별한 기능중 하나는 , 바로, Virtual Function(VF) 이라고 하는 가상 PCI 카드를 생성해 줄수 

있다는 것입니다.이 Virtual Function 이라는 놈도 일반적인 PCI 카드와 동일한 기능을 하고, 실제로 그렇게 OS 상에

서 보이기도 하지만, 자체의 속성값을 변경하지는 못한다는 제한이 있습니다. 다시말해, VF 는 PF 에 설정된 그대로의 

기능 및 특정만을 사용가능하다는 뜻입니다. 이렇게 설정된 가상 페이스는 VM 에 직접 연계될수도(보일수도) 있고, 

Hypervisor에 설정될 수도 있습니다. 그러니까 SR-IOV = Hypervisor Bypass(Pass through) 는 아니라는 야기를 

먼저 말드립니다.  SR-IOV 를 통해 VM 을 VF 에 직접 붙임으로서 Hypervisor Bypass 를 할수 있는 발판을  제공 

긴 하지만, SR-IOV 가 모두 Hypervisor Bypass 를 의미하지는 않습니다. (이런 오해들이 좀 많이 있습니다.) 

  

뭔소리야..하시는 분들을 위해 아래 좀 직관적으로 보이는 그림을 올려봅니다. 


쨔쟈쟌~!  역시 그림이 있으니 먼가 눈에 보이는듯 합니다. 그림에 보시면 Physical Function 은 하이퍼바이저로 연결

되어 NIC 으로 쓰이고 있습니다. 그리고, Virtual Function(VF) 은 VM은 하이퍼바이저를 거치지 않고 VM 으로 직접

연결이 되어 있는것을 보실수 있습니다 . 물론, 위에서 언급한대로, Hypervisor 에 VF 가 할당될수도 있습니다. 

 

SR-IOV 의 핵심은 하나의 단일 디바이스를  마치 여러장 있는것 처럼 가상의 디바이스들로 구현을 해 준다는 것입니

다. 그리고 이렇게 구현된 디바이스가 Hypervisor 를 거치지 않고 바로  VM 에 매핑 될수도 있으며, 이렇게 사용될때

의 Hypervisor 의 vSwitch를 거치지 않기 때문에, Host 의 CPU 오버헤드가 줄어들수 있는 장점이 있습니다.

 

쉽게 소고기의 비유를 들어보자면, 유통 마진을 줄여 준다는 것입니다. 소기기가 비싼이유가 바로이 여러단계의 유통 

단계를 거치기때문에 각 단계별로 마진이 붙어서 최종 소비자에게는 비싼 댓가를 지불해야 하는게 아니겠습니까?    

만약 이런 단계를 거치지 않고, 생산자와 소비자가 직접 연계 된다면 덜 비싼 가격에 맛 좋은 한우를 맛볼수 있을 것

니다.   


  하지만 일반적인 SR-IOV 는 어디까지나, Host 레벨에서 벌어지는 일들입니다.   다시말해, SR-IOV 를 사용해서 디

바이스를 가상화해서 논리적으로 여러개의 장치처럼 만들어 주고, 개별 VM 에 가상 디바이스를 매핑시켜주는 일    

등은 서버의 구성을 간편화 시켜주고, 빠를 프로비저닝을 가능하게 해 줍니다만  어디까지나 Host 레벨에서 일어나는 

일입니다. 


 그런데 클라우드를 이야기할때는 관점이 호스트가 아닌 전체의 데이터센터가 되며, 이는 네트워킹은 물론 VM 의

관리, 정책적용, 보안 등의 모든 부분에 대한 고려가 있어야 합니다.


그래서 필요한것이, 이러한 SR-IOV 만이 아니라 이것을 확장시켜주는 Tagging 혹은 Passthrough 방식의 기술입니

다. 바로 이러한 Host 내부 트리팩에대한(VM 트래픽) 처리를 네트워크 까지 확장하는 것입니다.  

 

 시스코에서 제공하는 VM-FEX 는 단순히 Host 레벌의 SR-IOV 에서 끝나는 것이 아니라 한발짝 더 나아가 네트워크 

레벨까지 확장시켜 줍니다.  SR-IOV 가 소프트웨어적인 지원을 통해 가상 NIC 의 생성을 가능하게 해 준다면, Cisco 

는 하드웨어 적인 방식으로 이미 NIC Partitioning 을 통해 가상  NIC 을 생성할수 있도록 해주는 VIC 카드들을 가지고 

있습니다.

 

Cisco 의 VM-FEX 는 NIC Partitioning 에 VN-Tagging 기술이  더해진기술로서 Virtual Function 을 생성

할때 상단 스위치에도 virtual Interface (vEth) 가 생성되며, 서로 매핑을 하게 됩니다. 이때, VN-TAGE 라고하는, 고유

의 TAG 을 서로 주고받음으로 해서,  호스트상의 개별 VM 들은 스위치의 가상 이더넷 포트에 매핑되어, VM 은 물리

적스위치의 한 포트에 직접적으로 연결된 형태의 구성을 할수가 있습니다.   이를통해, VM 의 Traffic 은 Host 를 빠져 

갈때  TAG 를 달고나가며, 스위치에서도 자신과 매핑되어 있는  가상의포트 (vEth) 를 통해 스위칭이 이루어 지게 

되는 것입니다. 


 


 

이러한 VM-FEX 의 가장 큰 장점은, 호스트 상의 CPU Cycle 절약 을 논외로 하더라도,  바로 하나의 관리계층이 사라

진다는 점이고 (vSwitch 계층),  기존 물리적인프라와 같은 모든 관리 및 정책 적용이 용이하다는 점입니다.  

간단하고, 이중화가 명확하며, 트래픽의 예측성이 증가하게 되는것입니다. 

 

 현재 이러한 HOST-물리적 스위치 연결 표준으로 Cisco 의  VN-TAG (802.1Qbh) 이 있고  HP 진영에서 주도하는 

 VEPA 즉 802.1Qbg 라고하는 표준(Pre-Standard) 이 있습니다.  


MS 는  Hyper-V 2012 부터 SR-IOV 를 지원하는데 이때 Cisco VM-FEX 의 조합을통해, 개별 VM 들의 통신을       

네트워크 레벨까지 확장할수 있습니다. 


참고로  Cisco 의 NIC 파티셔닝은 자체적으로 개발한 VIC (Palo)카드 부터 지원하는데 최고 128/256 개의 PCIe 디바

이스 를 생성 할수 있는반면, HP나 IBM 은 기존 NIC 벤더의(Broadcom) Chip을 가지고 만들어졌기때문에 똑같이 8개

까지 생성 가능이라는 제약을 가지고 있습니다.

 

그럼 오늘은 이정도만 정리 합니다 ^_^

 

 

 

 

 

 

 

출처 : http://ciscocloud.tistory.com/4

 

 

 

 

 

 

댓글