Facebook의 차세대 시간관리, NVIDIA 솔루션에 달렸다

NVIDIA ConnectX NIC를 통해 소셜 네트워크의 미션 크리티컬 분산 애플리케이션의 정밀 타임 키핑을 구현합니다
by NVIDIA Korea

페이스북(Facebook)은 데이터센터 전반에서 비용 효율적인 방식으로 매우 정밀한 타임 키핑(time keeping: 시간 기록)과 시간 동기화를 제공하는 Open Compute Project Time Appliance Project(OCP TAP)를 오픈 소싱하고 있습니다. 이 솔루션은 NVIDIA ConnectX-6 Dx 네트워크 카드(NIC)와 프리시전 타이밍 프로토콜을 통해 대부분의 상용 제품(COTS)서버를 정확한 시간 어플라이언스로 바꿀 수 있는 타임 카드(Time card)가 포함돼 있습니다. 데이터센터의 다른 서버와 정밀 타임 키핑을 공유할 수도 있죠.

페이스북 타임 카드와 NVIDIA NIC의 조합은 데이터센터 운영자에게 안전성, 신뢰성, 확장성, 경제성을 갖춘 현대적인 오픈소스 시간 동기화 솔루션을 제공합니다.

데이터센터에서 정확한 시간이 중요한 이유

애플리케이션의 규모가 확장되고 IT 운영 범위가 전 세계로 확대되면서, 데이터센터 내의 서로 다른 서버 또는 다양한 대륙에 위치한 데이터센터 간에 데이터를 동기화하는 일이 더 중요하고 어려워지고 있는데요. 데이터베이스가 분산된 경우, 일관성을 유지하고 인과관계를 표시하려면 정확한 이벤트 순서를 추적해야 합니다. 예를 들어, 두 사람이 동일한 주식을 매수하려고 어떤 주문이 먼저 도착했는지 확실히 알아야만 공정성과 규정 준수를 할 수 있죠. 마찬가지로 페이스북에서는 수많은 이용자가 매시간 콘텐츠를 게시하고, 게시물에 ‘좋아요’, ‘웃겨요’, ‘최고에요’를 누르므로, 각 게시물마다 ‘좋아요’가 달리고, 답글과 이모티콘이 게재되는 순서를 알아야 합니다.

데이터를 동기화 상태로 유지하는 한 가지 방법은 각 데이터센터가 각 트랜잭션 후 다른 데이터센터에 업데이트를 전송하도록 하는 것입니다. 하지만 이 방법은 데이터센터 간의 지연 시간으로 인해 시간당 발생하는 수백만 개의 이벤트를 지원할 수 없습니다.

더 좋은 방법은 각 서버와 데이터센터를 1마이크로초 이내의 정확한 시간으로 동기화하는 것입니다. 이를 통해 각 사이트가 시간을 추적할 수 있고, 다른 데이터센터와 이벤트를 공유할 때 각 이벤트의 순서가 별다른 조치 없이도 정확하게 유지됩니다.

시간 동기화가 정확할수록 애플리케이션의 성능, 즉 실행 속도는 더 빨라집니다. 최근 테스트 결과에 따르면, 타임 키핑 정밀도를 80배 높이면(시간 불일치를 80배 낮추면) 분산 데이터베이스의 실행 속도가 3배 증가합니다. 동일한 서버 하드웨어에서 시간을 더 정확하고 안정적으로 유지하는 것만으로도 놀라운 성능 향상 효과를 얻을 수 있는 것이죠.

시간 동기화에서 NIC와 네트워크의 역할

OCP TAP 프로젝트(및 시간 어플라이언스 오픈 소싱에 대한 페이스북의 블로그 게시물)에는 타임 카드가 GPS 위성 네트워크에서 시간 신호를 수신하여 처리합니다. 또한 위성 신호를 일시적으로 사용할 수 없는 경우에도 정확한 시간을 유지하며, 시간 서버와 정확한 시간을 공유하는 정확한 방법을 정의하고 있습니다. 그러나 네트워킹과 사용하는 네트워크 카드도 매우 중요합니다.

그림 1. OCP 타임 카드는 정확한 시간을 유지하고, NVIDIA ConnectX-6 Dx와 같이 PPS 입/출력을 지원하는 NIC와 이를 공유합니다(출처: 페이스북 엔지니어링 블로그).

시간 어플라이언스의 NIC는 타임 카드에 연결할 PPS(초당 시간 펄스) 포트가 필요합니다. 이를 통해 각 시간 서버의 NIC와 타임 카드 간에 몇 나노초 이내로 정확한 시간 동기화가 보장됩니다. ConnectX-6 Dx는 이를 지원하는 최초의 현대적 25/50/100/200Gb/s NIC 중 하나입니다. 이는 들어오는 PPS 신호를 필터링하고 확인하며, ASIC의 하드웨어를 통해 내부적으로 시간을 유지하여 정확도와 일관성을 보장합니다.

마이크로초 미만의 정확한 타이밍을 지원하는 시간 어플라이언스는 네트워크 시간 프로토콜(NTP)를 사용하는 수백 개의 일반 서버나 PTP(정밀 시간 프로토콜)를 사용하는 수만 개의 서버와 이러한 타이밍을 공유할 수 있습니다. 네트워크가 시간 신호, NTP와 PTP 타임스탬프 패킷에 지연 시간을 추가하므로 양방향 이동 시간을 측정하고, 지터와 지연 시간을 고려하며, 각 서버의 정확한 시간을 계산합니다(PTP가 훨씬 더 정확하므로 NTP를 대체하고 있습니다).

그림 2. NVIDIA ConnectX-6 Dx는 PPS 입/출력 포트를 사용하여 타임 카드와의 직접적인 시간 동기화를 지원합니다. 또한 하드웨어에서 패킷의 정밀 하드웨어 시간 스탬핑을 수행합니다.

대안은 소프트웨어 솔루션으로 타임스탬프를 찍는 것이지만, 현재 속도의 소프트웨어로 타임스탬프를 찍는 것은 매우 예측하기 어렵고 부정확하거나 불가능할 수도 있습니다. 또한 혼잡이나 CPU 방해로 인해 최대 밀리초 단위까지 편차가 생깁니다. 그 대신 ConnectX-6 Dx NIC와 BlueField-2 DPU는 최대 100Gb/s의 속도로 네트워크에 도달하자마자 인바운드 패킷에 하드웨어 타임스탬프를 적용하고, 네트워크에 도달하기 직전에 아웃바운드 패킷에 하드웨어 타임스탬프를 적용합니다. ConnectX-6 Dx는 네트워크 부하가 높은 경우에도 4나노초(4ns) 미만의 타임스탬핑 정밀도 편차로 모든 패킷에 타임스탬프를 찍을 수 있습니다. 다른 시간 지원 대부분의 NIC는 일부 패킷에만 스탬프를 찍고, 네트워크 트래픽이 많을 때 타임스탬프 정밀도가 떨어지면서 훨씬 더 큰 정밀도 편차를 보여줍니다.

NVIDIA 네트워킹은 상용 NIC에서 사용할 수 있는 가장 정밀한 지연 시간 측정을 지원하므로 모든 서버의 시간이 가장 정확하고, 애플리케이션 시간 편차가 일반적으로 1마이크로초 미만(<1us)입니다. 네트워크 타이밍이 더 정밀해지면 각 서버의 시간이 더 정확해짐으로 분산 애플리케이션의 성능, 즉 실행 속도도 더 빨라집니다(그리고 페이스북에서 모든 사용자가 “좋아요”를 더 많이 받을 수 있죠).

그림 3. OCP 시간 서버와 NVIDIA NIC 또는 DPU를 사용하여 NTP 또는 PTP를 배포하면, 데이터센터의 모든 서버에 매우 정확한 시간이 전파됩니다.

모두를 위한 정확한 시간 동기화

OCP TAP는 정밀하고 정확하며 모든 조직이 접근할 수 있는 타임 키핑을 지원합니다. 페이스북, NVIDIA, OCP의 오픈 타임 서버(Open Time Server)와 개방형 관리 도구는 모든 사람이 손쉽게 채택하여 하이퍼스케일러처럼 사용할 수 있는 비법을 제공합니다.

NVIDIA는 정밀 시간 어플라이언스에 필요한 초정밀 타임스탬핑과 네트워크 동기화 기능을 지원하는 정밀 시간 지원 NIC와 DPU(데이터 처리 장치)를 제공합니다. BlueField DPU를 사용하는 경우, Arm 코어에서 PTP 스택을 실행하여 시간 스택을 다른 서버 소프트웨어와 격리합니다. 그리고 해당 서버 내에서 시간의 정확도를 지속적으로 확인하고, 데이터센터 전체에 바인딩된 최대 시간 오류를 지속적으로 계산할 수 있습니다.

클라우드 서비스와 데이터베이스는 이미 더 우수한 시간 서버와 시간 동기화 기술을 활용하기 위해 새로운 시간 기반 명령과 API를 추가하고 있습니다. 이 솔루션은 분산 애플리케이션의 성능을 개선하고 클라우드와 엔터프라이즈 모두에서 새로운 유형의 솔루션을 구현할 수 있는, 보다 정확한 타임 키핑을 가능하게 합니다.

사양, 설계도, 역학, 자재 명세서와 소스 코드를 포함한 OCP TAP에 대한 세부 사항은 www.ocptap.com에서 확인할 수 있습니다.