메타의 eBPF·QLC 사례, 엔터프라이즈 IT에 던진 메시지

2025-03-24

메타는 올해초 오픈소스 eBPF(확장 버클리 패킷 필터) 기술을 활용해 주요 서비스의 CPU 사용량을 최적화한다고 발표했다. 이달초엔 데이터센터 스토리지 환경을 QLC SSD 기반으로 업그레이드했다고 밝혔다.

eBPF와 QLC SSD는 모두 엔터프라이즈 IT 시스템 영역에서 주목받는 기술이다. eBPF는 시스템의 성능을 최적화하거나 모니터링하는 기술로, 복잡한 쿠버네티스 환경을 운영하는 시나리오에서 각광받고 있다. QLC 는 하드디스크(HDD)와 비슷한 비용으로 낸드 플래시 메모리를 데이터 저장매체로 활용할 수 있어 데이터 증가와 성능 문제를 함께 해결할 방안으로 주목받는다.

eBPF 기술을 사용하는 다양한 시스템 모니터링 및 관리 운영 도구가 출시되고 있고, 여러 기업용 스토리지 회사가 QLC 기반 스토리지 제품을 공급하고 있다. 기업 IT 시장은 명확한 효과와 사례를 원한다. 세계에서 손에 꼽히는 규모의 인프라와 AI 모델을 운영하고 개발하는 메타의 활용 사례는 현재 기업 IT에서 마주하는 여러 도전 과제를 해결할 방안을 시사한다.

eBPF로 시스템 프로파일링, 코드 한글자 추가로 CPU 사용량 20% 절약

메타는 작년말 eBPF 기술을 활용한 인프라 프로파일링 오케스트레이터 ‘스트로브라이트(Strobelight)’를 공개했다.

메타는 시스템 성능을 저하시키지 않고 백엔드 서비스에 대한 포괄적인 프로파일링 데이터를 제공해야 했다. 스트로브라이트는 eBPF를 활용해 관찰 데이터를 효과적으로 수집한다.

스트로브라이트는 메타의 모든 현업 호스트에서 실행되는 여러 프로파일러를 조율한다. 실행중인 프로세스에서 CPU 사용, 메모리 할당, 기타 성능 메트릭 등에 대한 정보를 자세히 수집한다. 엔지니어와 개발자는 이 정보를 활용해 성능과 리소스 병목 현상을 식별하고, 코드를 최적화하며, 활용도를 개선할 수 있다.

eBPF는 운영체제 커널 내부에서 사용자 정의 코드를 안전하고 효율적으로 실행하게 해주는 기술이다. 네트워크 패킷 필터링을 위해 개발된 BPF를 더 다양한 용도로 활용하기 위해 확장한 게 eBPF다. eBPF는 현재 네트워크, 보안, 추적, 성능 모니터링 등에서 활용된다.

eBPF를 사용하면 작동 중인 시스템의 커널을 다시 컴파일 하지 않고 커널 수준의 코드 변경이나 추가를 안전하게 수행할 수 있다. eBPF 프로그램은 샌드박스 환경에서 코드를 검증하는 프로세스를 거치고, 안정성 확인된 코드만 실행한다. 커널을 직접 건드리지 않고도 시스템의 텔레메트리를 수집할 수 있고, 적절한 조치를 취할 수 있다. 성능 모니터링이나 최적화를 할 때 유용하다.

스트로브라이트는 여러 오픈소스 기술을 결합한 것이지만, 핵심은 eBPF다.

일반적인 시스템 프로파일링 도구는 바이너리 내부에 추가적인 계측을 해야 하고, 런타임 성능에 영향을 미칠 수 있다. 메타는 성능 데이터를 수집하는 동안 서비스 중단을 최소화해야 했고, 프로파일링 데이터를 균일하고 쉽게 해석할 수 있게 만들어야 했다. 과도한 데이터 저장 요구로 인한 시스템 과부하를 방지하고, 메타 인프라 전반에 여러 커널 버전을 모두 지원해야 했다.

스트로브라이트는 적절한 대체 방안을 통해 다양한 커널 버전 간의 기능 호환성을 제공한다. 데이터 수집 속도와 저장 효율성을 균형있게 유지하기 위한 동적 샘플링을 구현하고, 성능 저하를 방지하기 위한 동시성 및 대기열 보호 장치를 구축했다.

메타의 조던 롬은 “eBPF를 사용하면 사용자 정의 코드를 커널에 안전하게 주입할 수 있어 다양한 유형의 데이터를 매우 낮은 오버헤드로 수집할 수 있으며, 옵저버빌리티 공간에서 많은 가능성을 열어준다”고 설명했다.

엔지니어는 스트로브라이트의 커맨드라인 도구나 웹 UI를 통해 필요에 따라 42개 프로파일러 중 하나를 사용해 서버에서 데이터를 수집할 수 있다. 메모리 프로파일러, 함수 호출 횟수 프로파일럿, 네이티브 및 비네이티브 언어의 이벤트 기반 프로파일러, AI 및 GPU 프로파일러, CPU 외부 시간을 추적하는 프로파일러, 서비스 요청 지연 시간을 추적하는 프로파일러 등이 있다.

엔지니어는 메타의 컨피거레이터(Configerator)에서 구성 파일을 업데이트해 프로파일러에 대한 연속적 혹은 트리거된 프로파일링을 설정할 수 있다. 전체 서비스를 대상으로 하거나 특정지역에서 실행되는 호스트만 대상으로 할 수도 있다. 사용자는 프로파일러 실행 빈도, 실행 시간, 심볼화 전략, 대상 프로세스 등을 지정할 수 있다. 스트로브라이트는 여러 프로파일러가 서로 충돌하지 않도록 하고, 동시성 규칙과 대기열 시스템을 운영한다.

메타는 스트로브라이트내에서 eBPF를 배치함으로써 상당한 효율성 향상을 이뤘다고 했다. 특히 한 글자의 코드 변경으로 연간 1만5000대의 서버 용량을 절약할 수 있었다고 밝혔다.

메타에 따르면, 숙련된 성능 엔지니어가 스트로브라이트 데이터를 살펴보던 중 특정 std::vector 함수 호출을 필터링하면 C++의 ‘auto’ 키워드로 의도치 않게 발생하는 고비용 계산 배열 복사를 식별할 수 있다는 걸 발견했다. 이 엔지니어는 auto 키워드 뒤에 ‘&’을 추가해 복사본을 참조로 바꿨고, 데이터를 재생성하는 대신 데이터를 가리킴으로써 불필요한 데이터 중복을 방지하게 됐다.

CPU 주기가 20% 감소하면 메타의 주요 서비스에 필요한 서버수가 10~20% 감소하는 효과를 거둘 수 있다. 디버깅과 성능 분석을 더 빠르게 해 엔지니어가 프로덕션 진입 전 회귀를 방지할 수 있게 됐다. 동적 샘플링 매커니즘으로 저장 시스템에 과부하를 주지 않고 프로파일링 속도를 최적화하게 됐다.

메타는 옵저비빌리티를 더 향상시키기 위해 eBPF 사용을 확대하고 있다. AI 및 머신러닝 워크로드, 고급 메모리 추적, 자원 활용도 개선 등에서 eBPF 사용이 시도되고 있다. 메타는 스트로브라이트의 일부를 아파치v2 라이선스 기반 오픈소스로 공개했다. 향후 더 많은 요소를 오픈소스화하겠다고 약속했다.

QLC 플래시로 HDD와 TLC 대체해 성능과 용량 업그레이드

메타는 HDD 위주의 스토리지 환경을 운영하다 I/O 성능의 한계로 대안을 찾았다. 플래시 스토리지가 10년 넘게 데이터센터에서 보급됐지만, HDD는 여전히 저렴하고 전력을 더 적게 소비하기 때문에 대규모 데이터를 저장하는 데 많이 쓰이고 있다.

HDD도 계속 단위 면적당 저장 용량을 키우고 있지만, 입출력(I/O) 성능은 과거와 비슷하다. 용량이 커지는데 성능이 그대로니 TB당 스루풋이 떨어지게 된다. 반면, 플래시 메모리는 용량과 I/O 성능이 같이 증가하고 있다. 단, TLC 플래시까지는 성능에서 사용자의 요구조건을 충족하지만 HDD보다 비싸기에 대규모로 쓰기 비효율적이다.

쿼드레벨셀(QLC)은 솔리드스테이트드라이브(SSD)의 플래시 저장매체 기술이다. SSD는 탄생 후 싱글레벨셀(SLC), 더블레벨셀(DLC), 트리플레벨셀(TLC) 등으로 분화됐는데, 플래시메모리의 최소 저장 단위인 ‘셀’ 하나에 몇 비트를 저장하느냐를 뜻한다. QLC는 셀 하나에 4비트를 저장한다는 뜻이다. 한 셀에 많은 비트를 저장한다는 건 동일 면적에 더 많은 데이터를 쓸 수 있다는 것이다. 이는 같은 양을 더 적은 비용을 저장한다는 얘기기도 하다.

플래시 메모리의 데이터 집적도를 높인다고 무조건 좋은 건 아니다. 데이터 집적도가 높아지면 성능과 안정성이 저하된다. 쓰기 내구성도 줄어든다. 데이터를 빠르게 쓰고, 빠르게 조회해야 하며, 자주 변경하는 시스템이라면 QLC는 적절하지 않다.

메타는 QLC에 대해 HDD와 TLC SSD 사이 중간 계층에서 데이터 증가와 전력 효율성 향상, 비용 대비 성능에서 장점을 가졌다고 판단했다.

메타에 따르면, QLC 플래시는 10MBps 범위 성능 워크로드에서 유용하다. 이는 16~20TB 용량 HDD를 사용하는 영역이다. 또한 고성능은 필요없지만 15~20MBps 성능을 요구하는 대규모 배치성 워크로드에서 TLC 메모리를 대체할 수 있다.

메타는 읽기 대역폭은 매우 높지만, 쓰기 대역폭은 낮은 워크로드에 QLC 플래시를 도입했다. 플래시 매체의 젼력은 주로 쓰기에서 발생하므로 QLC 플래시의 전력 소비량도 더 낮을 것으로 예측하고 있다.

또한 향후에 플래시 미디어의 용량 증가 추세를 볼 때 TLC보다 QLC가 더 크게 확장할 것으로 예상하고 있다. 이는 QLC를 도입하면 미래에 더 많은 데이터를 싸게 운영하면서 더 적은 전력을 소비하게 될 것이란 기대다.

메타가 QLC 플래시를 도입하기 위해 택한 파트너는 퓨어스토리지다. 퓨어스토리지는 써드파티의 SSD를 사용하지 않고 다이렉트플래시모듈(DFM)이란 자체 개발 플래시 스토리지를 활용한다. 퓨어스토리지의 DFM을 장착한 스토리지 제품은 범용 SSD를 장착하는 타사 제품보다 더 많은 용량을 저장할 수 있고, 다이렉트플래시 소프트웨어를 통해 저장매체 안정성과 성능을 최적화한다.

메타는 “퓨어스토리지 DFM은 동일한 낸드 패키지 기술로 최대 600TB까지 확장할 수 있고, DFM을 지원하는 서버를 설계하면 드라이브 슬롯도 U.2 드라이브를 수용할 수 있다”며 “이 전략을 통해 비용 경쟁, 일정 가속, 전력 효율성, 공급업체 다양성 등에서 가장 많은 이점을 얻을 수 있다”고 평가했다.

메타 내에서 QLC 기반 서버의 바이트 밀도 목표는 현존 TLC 기반 서버 최고 밀도 대비 6배라고 한다. 이같은 밀도는 더 뛰어난 성능의 CPU와 더 빠른 메모리 및 네트워크 하위 시스템을 필요로 한다.

고밀도 QLC 시스템을 도입하는데 메타는 스토리지 소프트웨어 적용에 몇가지 과제를 갖고 있다고 밝혔다.

메타에 따르면, CPU 코어와 소켓에서 높은 I/O 처리량을 확장하려면 해당 I/O 처리를 위해 데이터와 컴퓨팅을 신중하게 배치해야 한다. 데이터 터치포인트를 최소화하고 I/O를 유형별로 분리해야 한다.

메타는 퓨어스토리지의 소프트웨어 스택이 io_uring을 통해 리눅스 공간블록장치드라이버(ublk) 장치를 사용해 스토리지를 일반 블록 장치로 노출하고, 데이터 복사 제거를 위해 제로 복사를 활성화하고 백그라운드에서 사용자 공간 FTL(다이렉트플레시 소프트웨어)와 통신한다고 설명했다. 타 스토리지 솔루션의 경우 io_uring을 사용해 NVMe 블록 장치와 직접 통신한다. 또한 QLC 플래시는 읽기 처리량이 쓰기 처리량보다 최대 4배 이상 높을 수 있다. 읽기와 관련된 일반적 사용 사례는 지연시간에 민감하므로 방대한 읽기 밴드위스를 전달하는 I/O가 쓰기 뒤에 직렬화되지 않아야 한다. 이를 위해 속도 컨트롤러와 I/O 스케줄러를 구축하고 잘 조정해야 한다고 밝혔다.

메타는 “QLC 플래시의 잠재력을 데이터센터 워크로드의 스토리지 비용, 성능, 전력 등에 대한 실행 가능하고 유망한 최적화 기회로 인식한다”며 “플래시 공급업체가 고급 팹 공정과 패키지 설계에 계속 투자하고 QLC 플래시 생산량을 늘리면 상당한 비용 개선을 예상할 수 있고, 더 광범위한 데이터센터 워크로드에 점점 더 매력적이게 될 것”이라고 강조했다.

글. 바이라인네트워크

<김우용 기자>yong2@byline.network

Menu

Kollo 를 통해 내 지역 속보, 범죄 뉴스, 비즈니스 뉴스, 스포츠 업데이트 및 한국 헤드라인을 휴대폰으로 직접 확인할 수 있습니다.