CPU GPU는 들어봤어도 DPU는 처음인 당신을 위해 (feat. SmartNIC(DPU)가 Hypervisor에서 작동하는 방식)

Jiyoon·2023년 3월 19일
3

VMware

목록 보기
3/4

Overview

이번에 World Wide Kick Off라는 VMware 내부 컨퍼런스에서 DPU에 관련된 세션을 듣게 됐다. 지난 VM Explore에서 vSphere8과 함께 발표된 DPU with ESXi (a.k.a Project Montery)에서 발표는 되었으나 DPU라는게 아직은 나부터도 생소하며.. 그래서 이번 기회에 DPU가 하이퍼바이저와 만났을 때 어떻게 작동하는지에 대한 posting을 작성해보면서 이해해보려고 한다.

What is DPU(Data Process Unit)?

DPU는 CPU도 GPU도 아닌 새로운 종류의 기능 프로세서로, 쉽게 말하면 초고성능 NIC 라고 생각하면 되는데 Data를 parsing 및 처리하는데 특화되어 있는 프로세서라고 생각하면 되겠다. CPU가 딱 워크로드 범용 처리만 알잘딱깔센 할 수 있도록 다른 function들을 내려주는 데이터 고속처리장치 정도로 이해하면 될 듯.

GPU와 CPU로 Data를 효율적으로 전송하며, 간단히는

  • CPU는 범용 컴퓨팅 담당
  • GPU는 가속 컴퓨팅 담당
  • DPU는 Data 처리 담당

CPU에서 처리하던 packet routing이라던가, 암호화, 실시간 데이터 분석 같은 특정 업무를 처리해주는데, 그만큼 CPU의 데이터 처리 부담이 줄어든다. 차세대 클라우드 컴퓨팅 환경에서 큰 축을 담당하게 될 것 같은 유닛이다. NVIDIA, Intel, AMD, Marvell 등에서 개발하고 있고 특히 요즘 AI/머신러닝 애플리케이션 등의 workload 트래픽을 제외한 데이터처리 자체를 하드웨어 단으로 오프로드시키면서 성능도 챙기고 Data 처리 통로가 격리됨으로써 성능이나 보안적인 측면에서도 이점이 있을 수 있을 듯.

VMware의 DPU(Distributed Service Engine)가 ESXi Hypervisor에 작용하는 방식

VMware에서는 전략적으로 DPU를 가상화 환경에서 활용하고자 하는 고객 타겟으로 DPU 연구를 오래전부터 진행해온 것으로 보인다. NVIDIA와 VMware / Ericson에서 함께 진행한 DPU 연구에서는 DPU를 사용한 서버가 비슷한 워크로드를 실행할 때 전력소비도 적게 한다는 연구도 있다. DPU 자체가 물론 전력을 추가로 소비하지만, 서버가 전체적으로 소모하는 전력 사용량이 줄기 때문에.

ESXi SmartNICs Architecture

그래서 VMware에서는 vSphere8부터 DPU offloading이 가능하도록 하는 기능을 지난 VM Explore에서 공개했고, NSX4(Network 가상화)에 DPU를 적용하는 프로세서 형태로 현재 ARM 구조의 프로세서를 이용한다.
DPU Architecture

여러가지 구성 요소가 있는데,

  • Local 플래시 메모리 :
    ESXi software를 boot image로 말아주는 플래시메모리이며, ESXi가 DPU에 설치될 수 있도록 함. ESXi는 DPU에 설치되어서 I/O 요청사항 예를 들자면 packet offloading 등 에 optimizing되도록 한다.

  • Network 연결을 위한 2개의 Ethernet port with SFP (small form-factor plugable) 모듈

  • Management 연결을 위한 RJ-45 port 1개

    RJ45 port
    네트워크 인터페이스 카드의 RJ45 connector를 허브나 스위치, 네트워크 콘센트에 연결하는데 사용하는 이더넷 케이블을 위한 포트

  • Programmable Accelerator
    하드웨어의 패킷 프로세싱 function을 mapping 해주며 데이터 트래픽이 DPU에 offloaded되고 가속화되도록 한다.

  • 고속 Interconnect
    Hardware programmable accelerator와 CPU 사이의 링크로 high bandwidth를 서포트하도록 디자인되었다.

  • VDF (Virtualized Device Functions, 가상화 디바이스 function)
    Network와 storage 장치들이 가상 디바이스로 적용될 수 있도록 SR-IOV 기술을 이용해 VM과 Physical device를 연결. latency와 throughput이 향상되며, hardware 가속화 이점과 함께 가상화의 장점도 가질 수 있게 해주는 모듈이다. VM이 생성되면, VM 하나에 VDF하나가 연결된다.

DPU 장점 (feat. 네트워크 가상화)

Network 가상화 와의 통합환경

DPU는 CPU가 딱 워크로드 범용 처리만 알잘딱깔센 할 수 있도록 다른 function들을 내려주는 데이터 고속처리장치이기 때문에, DPU와 함께라면 NSX service(네트워크 가상화 서비스, routing/ switching / firewalling 등) 을 hypervisor로부터 아웃소싱 할 수 있게 되는데, 이게 경로도 격리하면서 ESXi host한테 워크로드를 위한 컴퓨팅 리소스를 최적화하는게 가장 큰 장점이겠다.

ESXi and DPU

위 그림을 보게 되면, DPU에 additional ESXi가 설치된다.
인프라 서비스(네트워크 서비스 등)는 이 SmartNIC에서 구동하며, application workload와 격리한다.
아직 공개되진 않았지만, vSAN(HCI) 또한 offloading 기능의 roadmap에 포함되어 있다.

네트워크 성능 최적화

DPU 자체가 네트워크 서비스를 위해 특별히 디자인 되었기 때문에 traditional CPU보다는 나은 네트워크 성능을 제공한다. VMDirectPath 기능을 통해 VM으로부터 나간 트래픽이 virtual switch를 거치치 않고 바로 DPU로 가는 advantage는 덤.

Visibility

DPU 기반의 NSX 네트워크 가상화는 network card 단에서 트래픽을 모니터링 할 수 있게 된다. 가시성이 높아지고, packet level capture 및 분석이 용이해진다.
IPFIX도 지원하기 때문에 DPU내에서 이뤄지는 스위칭 라우팅 트래픽 플로우를 모니터링하는게 쉬워질 수 있다.

이건 그냥 의견이지만 현실적인 관점에서 좋아보이는 점은..
1년밖에 안되긴 하지만 어쨌든 여러 고객케이스를 봤을 때, 가상화 환경에서는 서버운영자와 네트워크 관리자의 업무 이해관계가 얽혀있는 경우가 참 많아보인다. 한국의 IT환경은 '책임소재' 및 '관리소재' 라는게 참 중요한 환경이고.. responsibility나 운영 모니터링 관점에서 아예 DPU로 네트워크가 오프로딩 되어버리면 workload에 대한 관리 / 네트워크에 대한 관리를 focus and manage 할 수 있지 않을까? 라는 생각을 해본다.

물리적인 레벨(Physical isolation)로 격리하는게 뭐가 좋죠? 그럼 누가 쓰죠?

Security 관련 소비자

High security나 특정 compliance 요구사항을 지켜야하는 소비자들에겐 좋은 옵션.
이번에 알았는데, BSI (독일 연방 information security 기관) 에서는 management traffic과 워크로드 traffic을 분리해야하는 요구조건 등을 요구한다고 한다.

현 시점 기준 VMware ESXi에서 사용 가능한 DPU offloading option

  • Networking : Overlay / VLAN 기반의 세그먼트, 분산 IPv4/IPv6 라우팅 / NIC teaming 기능
  • Security : 분산 방화벽 / 분산 IDS, IPS
  • Visibility : Traceflow / IPFIX / 패킷캡쳐, Port mirroring / 통계 기능
  • VMDIrectPath : DPU 기반의 NSX 가속화를 위해서 vSphere나 NSX로 인한 오버헤드조차 감당하고 싶지 않은 customer들을 위해 DPU에 다이렉트하게 액세스하는 VMDirectPath기능을 제공.
  • Edge VM 을 위한 DPU지원

(현재까지는 DPU Mirroring은 안되고, 1 DPU per host만 지원한다.)

가능한 DPU model

  • NVIDIA Bluefield-2 (25Gb NIC 모델)
  • AMD / Pensando 의 25Gb && 100Gb NIC 모델

DPU에 관련한 시장동향

  • Marvell에서 개발한 ARM 기반 OCTEON 10 DPU 제품군
  • Intel에서는 Google과 함께 Mount evans를 발표했는데, ARM 16개와 다른 accelerator를 단일 칩으로 합친 성능이라고 한다. 띠용
  • VMware에서 DPU 활용 제품 발표 (vSphere 8)
  • Palo Alto network에서의 NVIDIA 활용 방화벽 offloading 제품 등

맺으며

아직 DPU를 적용해 offloading 시키는 사례나 use case는 구경도 못해봤지만, 앞으로 보안 관련 특수 요구사항이라던가 성능 가속화를 원하는 케이스의 PoC 등에 참여해서 이것저것 현실적인 테스트를 해보는 기회가 언젠가는 있지 않을까 싶다.

아무래도 현실적으로, 내가 만약 어떤 IT회사의 주인이고 DPU를 지금 당장 내 데이터센터에 들인다면 readynode에 맞는 새 서버도 있어야 하고, DPU도 사야하고.. 새로 사야할 것들이 매우 많고 "아니 가성비 이게 맞아? 배보다 배꼽이 더 큼" 라는 질문이 나올 것은 틀림없다.
그래도 DPU는 cloud computing과 Data center의 미래인건 맞는것 같고 future architecture planning에 고려되어야하는건 틀림없기 때문에 solution engineer로서 장기적인 관점의 플래닝을 제공하려면 잘 알고 있어야 하긴 하는듯.

End of Docs

profile
Jiyoon in cloud valley, Change the world Why Not? / 오픈소스 생태계를 잘 이해하는 Cloud engineer가 되고 싶은 지윤

0개의 댓글