죄송합니다. 더 이상 지원되지 않는 웹 브라우저입니다.

반도체네트워크의 다양한 최신 기능을 사용하려면 이를 완전히 지원하는 최신 브라우저로 업그레이드 하셔야 합니다.
아래의 링크에서 브라우저를 업그레이드 하시기 바랍니다.

Internet Explorer 다운로드 | Chrome 다운로드

SmartNIC이 일반 NIC보다 뛰어난 이유는?


PDF 다운로드



글/스캇 슈바이처(Scott Schweitzer)


"SmartNIC은 조만간 가속기 시장의 주류로 부상할 것이다. 그렇다면 SmartNIC이 기존 NIC보다 뛰어난 점은 무엇일까? 프로그래밍 가능성, 컴퓨팅 성능, 호스트 CPU 오프로드, 사용편의성, 아니면 이 모든 것들이 해당될 수 있을까?"


모든 서버는 NIC(Network Interface Card)을 이용해 네트워크와 연결된다. 때로는 카메라와 온도 조절기와 같은 IoT(Internet of Things) 기기를 지원하기 위해 임베디드 무선 연결 기능이 사용되기도 하지만, 대부분의 서버는 유선으로 네트워크와 연결된다. 유선을 사용하는 이유는 많지만, 가장 중요한 두 가지는 성능과 가용성 때문이다. 가용성의 경우, 유선 네트워크는 케이블이 손상되거나 제거될 때만 오류가 발생한다. 반면 무선 네트워크는 정체나 외부 간섭으로부터 영향을 받을 수 있다. 네트워크 성능의 경우, 네트워크를 통해 이동할 수 있는 데이터의 양, 즉 대역폭과 한 조각의 데이터가 이동하기 위해 대기하는 시간 즉, 지연시간 등 두 가지 지표가 자주 언급된다. 유선 네트워크의 대역폭과 지연시간은 무선 네트워크에 비해 한자리 수 이상 높다.
예를 들어, 최신 데이터센터의 네트워크 속도는 일반적으로 25Gbps에 이르지만, 무선 네트워크의 속도는 1.3 Gbps(5GHz 표준 사용)로 20분의 1에 불과하다. 또한 동일한 유선 데이터센터 네트워크의 지연시간은 2~5마이크로초에 불과하지만, 무선 네트워크는 1~2밀리초 속도로 1000분의 1에 이른다. 이러한 데이터센터에 서버 전용 유선 NIC을 구축하는 것은 서버의 전반적인 성능 향상에 상당히 중요하다. 그렇다면 이를 더욱 향상시킬 수는 없을까? 서버에 들어오고 나가는 네트워크 트래픽을 처리하거나 또는 애플리케이션 레벨에서 호스트 CPU를 오프로드할 수 있는 컴퓨팅 리소스를 추가함으로써 NIC을 보다 스마트하게 만들 수 있다.
SmartNIC은 동일한 카드에 유선 네트워킹의 성능과 컴퓨팅 리소스를 융합한 것이다. 이러한 컴퓨팅 리소스는 ARM 코어와 같은 전통적인 x86 CPU와 DSP(Digital Signal Processing)를 위한 특수용도의 코어, AI(Artificial Intelligence) 및 NPU(Networking Processing Unit) 또는 FPGA(Field Programmable Gate Array)와 같은 요소들 중 하나 이상을 사용하여 구성할 수 있다. SmartNIC을 구현하는데 사용되는 이러한 컴퓨팅 모델은 SmartNIC의 타깃 시장에 따라 결정된다.
즉, SmartNIC을 네트워크 또는 스토리지 트래픽의 영향을 줄이는데 중점을 둘 것인지, 아니면 호스트 CPU를 오프로드하도록 설계할 것인지에 따라 다르다. 위에서 언급한 컴퓨팅 요소들은 종종 SmartNIC에 하나 이상 포함되기도 한다. 예를 들어, 하나의 듀얼 코어 또는 쿼드 코어 형태의 복합 ARM 코어가 다른 컴퓨팅 장치에 소프트웨어를 로딩 및 로깅하는 컨트롤 플레인 관리 작업에 종종 사용된다. 그렇다면, SmartNIC은 네트워킹 및 스토리지는 물론, 애플리케이션별 컴퓨팅 작업으로부터 호스트 CPU를 어떻게 오프로드할 수 있을까?
먼저 DDoS(Distributed Denial of Service) 완화, 방화벽 및 패킷 래핑(Packet Wrapping)과 같은 주요 네트워크 작업을 살펴보자. DDoS와 방화벽은 비슷한 것처럼 보이지만, 매우 다른 두 가지 작업이 있다. 설계 상, DDoS 공격은 주로 용량측정과 관련되며, 수백만 개의 패킷을 전송하는 것이 핵심이다. 심지어 초당 수억 개의 패킷을 네트워크로 전송하기도 한다. 따라서 네트워크는 정체나 구성요소의 장애, 또는 지연되거나 저하되는 실제 고객 트래픽을 해결해야 한다. 기존의 방화벽은 이러한 패킷 속도를 처리할 수 있도록 설계되지 않았지만, SmartNIC에서 제공하는 몇 가지 기본적인 트릭을 사용하여 DDoS 공격 패킷을 동적으로 계산하고, 차단할 수 있다.
2015년에 리오레이(RioRey)는 25가지 유형의 공격 벡터를 호출하는 DDoS 공격에 대한 분류체계를 만들었다. 이중 가장 일반적인 것은 SmartNIC에 로드하여 회사의 엣지 인터넷 서버에 대한 DDoS 방어를 생성하는 것이다. 또한 SmartNIC은 모든 인바운드 및 아웃바운드 패킷 필터링에 대한 호스트 CPU를 오프로드하는 기본 넷필터(Netfilter) 방화벽을 포함할 수 있다. 넷필터는 iptable의 새로운 버전으로, 네트워크 트래픽 필터링을 위한 매우 강력한 아키텍처를 제공한다. 네트워크 DMZ의 서버들을 포함하여, 네트워크에 연결된 상주하는 모든 엣지 서버들은 방화벽을 실행해야 한다.
이 방화벽을 SmartNIC으로 오프로드하면, 호스트 CPU는 초당 수백만 개의 명령을 줄일 수 있으며, 이를 서버 상에서 실행되는 애플리케이션에 적용할 수 있다. 캡슐화라고도 알려진 패킷 래핑도 살펴보자. 가상화 또는 컨테이너 시스템을 위한 오버레이 네트워크를 활용하는 경우에는 네트워크 패킷을 래핑하여 오버레이 네트워크 간에 라우팅될 수 있도록 해야 한다. 오버레이 네트워크 프로세싱의 예로는 상당히 CPU 집약적인 OvS(Open vSwitch)가 있는데, 이 작업을 SmartNIC으로 오프로딩함으로써 호스트 CPU 사이클을 크게 줄일 수 있다.
마지막으로 DNS나 인메모리(In-Memory) 데이터베이스와 같은 일반적으로 서버에서 실행되는 주요 네트워크 애플리케이션 또한 오프로드할 수 있다. SmartNIC 내에서 DNS 쿼리를 완전히 프로세싱하는 것은 트랜잭션을 줄이고, 테이블 조회를 빠르게 처리하기 위한 일반적인 SmartNIC 애플리케이션 중 하나다. SmartNIC 애플리케이션 중 또 다른 탁월한 사례는 인메모리 데이터베이스이다. 오늘날 많은 고객 애플리케이션은 인메모리 데이터베이스 애플리케이션을 사용하여 저장된 비정형 데이터에 의존하고 있다.
이러한 데이터 요소들은 종종 작은 키를 활용하는데, 이 키들의 값 또한 작은 경우가 많다. 예를 들어, 특정 호스트의 네트워크 주소 이름이 X라고 하자. 이 네트워크 주소는 IPv6 주소라 하더라도 16byte에 불과하며, 리눅스에서도 호스트 이름이 63byte로 제한되기 때문에 단일 소형 네트워크 패킷에 쉽게 부합한다.
또한 SmartNIC을 스토리지 컨트롤러로 사용할 수도 있다. 자일링스의 알베오(Alveo) U25와 같은 일부 SmartNIC은 자체 기가바이트급(U25의 경우 6GB) 로컬 스토리지에 온칩 및 온보드 메모리를 모두 가지고 있다. 이 스토리지는 서버 자체의 NVMe 디스크에 대한 캐시로도 쉽게 사용할 수 있다. 이는 CXL(Compute Express Link)과 같은 프로토콜을 통해 미래의 SmartNIC NVMe 드라이브와의 마스터-슬레이브 관계를 직접 관리할 수 있도록 해주기 때문에 특히 중요한 요소가 될 수 있다.
또한 SmartNIC은 스토리지 암호화뿐만 아니라 하드웨어에서도 이레이저 코딩(Erasure Coding)을 수행할 수 있다. 드라이브 암호화의 경우 SmartNIC은 한층 강화된 보안을 제공할 수 있다. 보안 측면에서 암호화된 아이템에 암호화 키를 가까이 두는 것은 좋은 방식이 아니며, 더 나쁜 상황이 될 수도 있다. SmartNIC이 NVMe 스토리지로 들어가는 데이터를 암호화하거나 해독하게 되면, 암호를 해제하기 위해 두 요소가 모두 필요하게 된다. 관리자가 드라이브를 제거하여 다른 곳에서 암호를 해독한다 하더라도, SmartNIC에 남아 있는 누락된 암호화 키를 추측하기 위한 무차별 대입이 필요하게 된다.
또한 SmartNIC은 전원을 껐다 켜는 동안 키를 보호할 수 있도록 쉽게 암호화가 가능하기 때문에 시스템을 보다 안전하고, 견고하게 만들 수 있다. 예를 들어, 솔라플레어(Solarflare)는 지난 몇 년 동안 자사의 X2 실리콘 내에 NIC 키를 저장하기 위해 NIC에 대한 하드웨어 보안 영역(Security Enclave)을 유지해 왔다. 미래의 SmartNIC 보안 영역은 SSL/TLS 엔드 포인트 암호화를 위해 수십만 개의 보안 키를 저장하고, 보호할 수 있게 될 것이다.
CPU를 오프로드하는 것은 SmartNIC이 제시할 수 있는 중요한 가치이다. 현재 가용 코드를 사용하여 SmartNIC으로 컴퓨팅 집약적 작업을 오프로드할 수 있다. 이는 블록체인 해싱(Hashing)이나 비디오 트랜스코딩 같은 작업이 될 수 있다. 블록체인은 작업증명(PoW: Proof of Work)이나 이와 유사한 유형의 문제를 해결해야 한다. 해쉬값을 찾아낸 네트워크의 첫 번째 노드는 보상(Reward)을 받게 되고, 이후 체인 상의 다음 블록을 묶어서 게시할 수 있도록 허용된다. SmartNIC은 다음 해쉬값을 계산하는 동시에, 블록체인과 보류 중인 트랜잭션을 메모리에 홀딩시킬 수 있다. 승자가 나오면, SmartNIC은 이 블록을 게시하고, 다음 블록으로 넘어간다.
우리는 SmartNIC이 인터넷 상에서 채굴장비가 되는 것을 지지하는 것이 아니라 오히려 그 반대이다. 능숙한 설계자는 인프라에 SmartNIC 모음을 이용해 로컬에서 호스팅되는 블록체인을 사용하여 회사의 자체적인 트랜잭션 장부를 관리할 수 있다. 이러한 모든 것은 호스트 CPU 성능에 영향을 주지 않으면서 SmartNIC의 컴퓨팅 성능만을 활용하여 달성할 수 있다. 사일렉스 인사이트(Silex Insight)와 같은 회사는 이를 실행하는데 필요한 블록체인 구성요소들을 개발했다.
또한 비디오 트랜스코딩은 SmartNIC으로 호스트 CPU를 오프로드하는 널리 사용되는 방식 중 하나이다. 모바일 기기를 지원하기 위해 ABR(Adaptive bitrate) 압축을 사용하여 비디오, 특히 실시간 비디오를 트랜스코딩하는 것은 또 다른 CPU 집약적인 작업이다. 이러한 압축 작업은 매우 선형적이며, 범용 CPU 보다 10~20배 더 효율적인 것으로 입증된 FPGA 기반 가속기로 포팅된다.
SmartNIC이 빛을 발하는 마지막 특별 사례는 지연시간이 매우 짧은 전자거래이다. 이는 네트워크 패킷을 수백억 분의 1초 안에 전달한다. 오늘날 고성능 25GbE NIC의 지연시간은 1,000나노초이다. 적절하게 설계된 시스템과 올바른 소프트웨어 및 조정된 SmartNIC을 이용하면, 네트워크 패킷을 한 번에 4byte씩 수신하고, 이를 분석할 수 있다. 그런 다음, 응답 패킷을 매우 빠른 22나노초로 네트워크에 주입할 수 있다. 이는 기존의 고성능 NIC 보다 40배 이상 빠르다. 이를 전자거래에 구축하면, 이러한 SmartNIC의 RoI(Return on Investment)를 초 단위로 측정할 수 있다.
오늘날의 서버는 네트워킹을 관리하는데 CPU 사이클의 30% 정도를 소비한다. 이를 농담으로 데이터센터 세금이라고도 한다. 데이터센터 내의 모든 서버에서 이러한 사이클을 회수할 수 있다고 상상해 보자. 이는 프로덕션 레벨에서 거의 3대 당 하나의 새로운 서버를 갖는 것과 같은 수치일 것이다. 시스템 설계자는 SmartNIC을 사용하여 네트워크 서버의 엣지 단에 고성능 컴퓨팅 리소스를 배치할 수 있다.
이를 통해 SmartNIC을 서버와 기업의 이윤을 보호하는데 활용할 수 있으며, 또한 상당히 고가인 서버 CPU를 획기적으로 오프로드할 수 있다. 따라서 차기 데이터센터를 구축할 때에는 서버와 함께 제공되는 표준 NIC을 기본으로 사용하는 대신, SmartNIC이 어떻게 설계 계획에 적합한지 고려하는 것이 좋다.

leekh@seminet.co.kr
(끝)
<저작권자(c) 반도체네트워크, 무단 전재-재배포 금지>


PDF 다운로드

개인정보보호법 제15조에 의한 수집/이용 동의 규정과 관련하여 아래와 같이 PDF 다운로드를 위한 개인정보 수집 및 이용에 동의하십니까? 동의를 거부할 수 있으며, 동의 거부 시 다운로드 하실 수 없습니다.

이메일을 입력하면,
(1) 신규참여자 : 성명/전화번호/회사명/분야를 입력할 수 있는 입력란이 나타납니다.
(2) 기참여자 : 이메일 입력만으로 다운로드가 가능합니다.

×

회원 정보 수정