지난 시간(제목: Cisco UCS 솔루션 소개)에 이어 오늘은 VM(Virtual Machine)간에 통신을 위해 Cisco UCS(Unified Computing System)에서 지원하는 네트워킹 가상화 기능에 대해서 알아 보도록 하겠습니다.
일단 "가상화"가 뭘까요? 이게 서버쪽에서는 참 이해하기기 쉬운데 네트워크쪽에서는 쉽지 않습니다.
서버쪽은 여러분들도 다들 아시겠지만 VMware와 같은 솔루션을 통해 서버의 CPU, Memory, Disk, NIC(Network Interface Card)와 같은 하드웨어 리소스를 가상화 하여, 여러개의 VM(각 VM에는 서로 독립적인 OS와 응용프로그램이 실행)이 하나의 서버에서 상호 간섭 없이 동시에 실행될 수 있는 환경을 제공합니다.
이와 같은 개념을 네트워크쪽 가상화에 적용한다면, 데이터 패킷을 처리(L2 switching/MPLS switching, IP forwarding)하는 Data Plane의 가상화(Packet Forwarding Engine/Switch Fabric/Memory의 가상화)와 라우팅 프로토콜이 올라가는 Control Plane의 가상화가 필요합니다. 이와 같은 네트워크 가상화는 미래인터넷이란 이름으로 연구중에 있으나 아직 상용 제품으로 시장에 나와 있는 장비는 없습니다. (Cisco Nexus 7000 시리즈가 VDC(Virtual Device Context)라는 개념을 제공하고 있기는 하지만 Data Plane의 가상화가 지원되지 않고, Control Plane의 경우도 CPU, Memory, Kernel(OS)을 각 VDC가 공유하는 구조이기 때문에 진정한 가상화라고 볼 수는 없습니다.)
그래서 제목과 같이 Cisco UCS도 "Virtualization Networking(네트워크를 가상화)"이 아닌 "Virtualization-Aware Networking (가상화된 서버 환경에 적합한 네트워크)" 기능을 제공하는 솔루션입니다.
자 이제 본론으로 들어가 보도록 하겠습니다.
Problem Description
아래 좌측 그림은 서버 가상화가 없는 데이터 센터 네트워크 구조입니다. (간단하죠 ^^) 각 서버에는 하나의 OS가 올라가고 그 위에 Application(들)이 동작하는 구조입니다. 이 경우 서버에 장착된 NIC(Ethernet 포트가 나오는 Card)에서 나오는 포트는 Ethernet Switch와 연결이 되고, 이 Ethernet Switch에는 각 포트별로 서버의 특성(Application 특성)에 따라 Network Policy를 configuration하게 됩니다. 가장 대표적인 Network Policy가 서로 통신(L2 switching)이 가능해야 하는 서버들이 연결된 포트들에는 동일 VLAN ID를 할당하는것이 되겠죠.
우측 그림은 서버 가상화가 된 데이터 센터입니다. 이 경우, 하나의 서버에는 다수개의 VM이 존재하게 되고, 각 VM마다 독립적인 OS와 Application이 돕니다. 또한 NIC을 가상화하여 각 VM 마다 가상화된 Network Interface 즉, Virtual NIC(vNIC)이 할당되어 집니다.
이제 Cisco UCS는 위와 같은 문제를 어떻게 풀었는지 설명 드리겠습니다. 2가지 솔루션을 제공합니다. 하나는 소프트웨어 기반이고 또 하나는 하드웨어 기반입니다.
Nexus 1000V (Software) based VM-aware Networking
Nexus 1000V는 Hypervisior안에 embedded되는 소프트웨어로서 데이터 통신을 담당하는 Virtual Ethernet Module(VEM)과 이를 제어하는 Virtual Supervisor Module(VSM)으로 구성이 됩니다.
VEM은 VM마다 할당된 vNIC와 1:1로 연결되는 Virtual Ethernet(vEth) 인터페이스를 제공하고 동일 서버(그림에서 UCS B200 Blade Server)내의 VM간에 통신(L2 switching)을 담당하게 됩니다. 그리고 물리적으로 다른 서버 간의 VM 통신은 기존 Native Ethernet Switching 방식으로 즉, UCS 6100 Fabric Interconnect를 통해 이루어 집니다.
본 솔루션의 장점은 다음과 같습니다.
VN-Link (Hardware) based VM-aware Networking
각 Blade Server에 장착되는 Network Adapter Card 중에 Nexus 1000V의 Virtual Ethernet(vEth) 인터페이스 기능을 하드웨어화한 UCS M81KR Virtual Interface Card(VIC)을 사용하는 솔루션입니다. 이 경우 Nexus 1000V는 필요 없게 됩니다.
VIC는 최대 128개의 vEth 인터페이스를 제공하여 vNIC과 1:1로 연결이 되고, 다시 vEth는 UCS 6100 Fabric Interconnect의 Virtual Interface(VIF)와 1:1 연결이 가능한 구조를 가지게 됩니다. 이 경우 UCS 6100 Fabric Interconnect는 일반 Physical Port/VLAN 기반의 L2 switching 뿐만 아니라 VIF 기반의 L2 switching 기능도 수행하게 되며, VIF에 각 VM을 위한 Network Policy를 정의할 수 있습니다. (Nexus 1000V와 동일하게, vMotion과 연동하여 VM이 이동하면, 자동으로 Network Policy가 옮겨짐)
결국 본 솔루션은 각 VM에 할당된 vNIC별로 가상의 포트(VIC in UCS 6100 Fabric Interconnect)를 생성하고, 가상의 포트 기반으로 L2 switching을 수행하게 되는 솔루션입니다.
이 경우 UCS 5100 Blade Chassis와 UCS 6100 Fabric Interconnect 사이에 Physical Port를 통해 여러개의 VM 패킷들이 지나다니게 되므로, vNIC/vEth가 VIC로 1:1 매핑이 될 수 있도록 VNTagged Packet(VN; Virtual Network)이라는 것을 정의하여 VNTag에 있는 VIF_ID를 통해 VM 및 VM에 속한 vNIC를 UCS 6100 Fabric Interconnect가 구별 할 수 있게 됩니다. 그리고 VNTagged Packet이 지나다니는 링크를 VN-Link라고 부릅니다.
하드웨어 기반의 VIC를 사용하게 되면 Cisco Nexus 1000V와는 달리 동일 서버내에서의 VM간 통신도 항상 UCS 6100 Fabric Interconnect를 통하게 되며, 이를 통해
잘 보고 갑니다.
http://www.cisco.com/en/US/solutions/collateral/ns340/ns517/ns224/ns892/ns894/white_paper_c11-525307.html