Skip to main content
QUICK REVIEW

[논문 리뷰] Safe and Efficient Remote Application Code Execution on Disaggregated NVM Storage with eBPF

Kornilios Kourtis, Animesh Trivedi|arXiv (Cornell University)|2020. 02. 25.
Security and Verification in Computing참고 문헌 30인용 수 6
한 줄 요약

이 논문은 eBPF를 사용하여 분리된 NVM 스토리지에서 안전하고 효율적이며 일반적인 목적의 원격 코드 실행을 가능하게 하며, eBPF의 검증된 샌드박스 실행 및 높은 성능을 활용해 네트워크 데이터 이동을 줄인다. 프로토타입은 증분 및 이진 탐색과 같은 연산을 오프로딩하여 스토리지 장치에서 직접 논리적 처리를 수행함으로써 I/O 오버헤드를 크게 감소시키는 것이 가능함을 입증한다.

ABSTRACT

With rapid improvements in NVM storage devices, the performance bottleneck is gradually shifting to the network, thus giving rise to the notion of "data movement wall". To reduce the amount of data movement over the network, researchers have proposed near-data computing by shipping operations and compute-extensions closer to storage devices. However, running arbitrary, user-provided extensions in a shared, disaggregated storage environment presents multiple challenges regarding safety, isolation, and performance. Instead of approaching this problem from scratch, in this work we make a case for leveraging the Linux kernel eBPF framework to program disaggregated NVM storage devices. eBPF offers a safe, verifiable, and high-performance way of executing untrusted, user-defined code in a shared runtime. In this paper, we describe our experiences building a first prototype that supports remote operations on storage using eBPF, discuss the limitations of our approach, and directions for addressing them.

연구 동기 및 목표

  • 고속 NVM 스토리지와 느린 네트워크 링크 간의 성능 격차로 인해 발생하는 점점 악화되는 '데이터 이동 벽'을 해결하기 위해.
  • 공유된 원격 NVM 스토리지 장치에서 사용자 정의 코드를 안전하고 효율적이며 일반적인 목적으로 실행할 수 있도록 하기 위해.
  • 안정적이고 검증되며 성능이 우수한 eBPF 프레임워크를 원격 계산 오프로딩의 기초로 활용하기 위해.
  • 증분 및 이진 탐색과 같은 연산을 스토리지에서 직접 실행함으로써 데이터 이동을 최소화하는 방식으로 원격 실행의 실현 가능성을 프로토타입화하고 평가하기 위해.
  • 이 용도에서 eBPF의 한계를 탐색하고 표현력 및 성능 향상을 위한 향후 방향을 규명하기 위해.

제안 방법

  • 사용자 코드를 신뢰할 수 없을 수 있으므로, 원격 NVM 스토리지 장치에서 실행 가능한 안전하고 검증 가능하며 JIT 컴파일되는 런타임 환경으로서 eBPF를 사용한다.
  • 원격 코드 업로드 및 실행을 가능하게 하기 위해, 개념적 증명을 위한 전송 계층으로 NBD(Network Block Device) 프로토콜을 확장한다.
  • 응용 프로그램이 스토리지에 eBPF 프로그램을 업로드하여 데이터를 네트워크를 통해 대량으로 전송할 필요를 줄일 수 있는 시스템을 설계한다.
  • eBPF의 검증기(Verifier)를 활용해 실행 시간이 제한되고 안전한 메모리 접근이 보장되며 악성 또는 오류가 발생한 동작을 방지한다.
  • eBPF의 기존 생태계 및 도구를 활용해 개발 오버헤드를 최소화하고 이식성과 유지보수성을 확보한다.
  • 수치 증분 및 대규모 데이터셋에서의 이진 탐색과 같은 원격 연산의 마이크로 벤치마크를 통해 성능을 평가한다.

실험 결과

연구 질문

  • RQ1eBPF는 분리된 NVM 스토리지에서 사용자 정의 코드를 안전하고 효율적으로 원격으로 실행하는 데 효과적으로 활용될 수 있는가?
  • RQ2스토리지에 증분 및 이진 탐색과 같은 연산을 오프로딩할 경우, 전통적인 데이터 전송 패턴과 비교해 네트워크 I/O를 얼마나 줄이고 성능을 향상시킬 수 있는가?
  • RQ3이 용도에서 eBPF를 사용할 때의 주요 한계, 특히 표현력과 실행 시간 보장 측면에서의 한계는 무엇인가?
  • RQ4eBPF는 원격 스토리지에서 맵 및 리듀스 작업과 같은 더 복잡한 선언적 워크로드를 지원하기 위해 어떻게 확장될 수 있는가?
  • RQ5공유된 스토리지 장치에서 임의의 코드 실행을 허용할 경우의 보안 및 격리의 상충 관계는 어떠한가?

주요 결과

  • 프로토타입은 NBD 프로토콜을 사용해 NVM 스토리지에서 eBPF 프로그램의 원격 실행을 성공적으로 구현하여 이 접근 방식의 핵심 실현 가능성을 검증했다.
  • 증분 및 이진 탐색과 같은 연산을 스토리지로 오프로딩함으로써 데이터 전송을 최소화해 I/O 오버헤드를 감소시키며, 마이크로 벤치마크에서 성능 향상을 관찰했다.
  • eBPF의 내장된 검증기 덕분에 안전한 실행이 보장되어, 안전하지 않은 메모리 접근이나 무한 루프를 방지할 수 있으며, 이는 다중 테넌트 환경에서 매우 중요하다.
  • eBPF의 JIT 컴파일을 통해 높은 성능을 달성해 스토리지 장치에서 거의 네이티브 수준의 실행 속도를 구현했다.
  • 현재 eBPF 모델은 복잡한 데이터 처리 워크로드에 대해 표현력 측면에서 제한되어 있어, 고계수 함수나 더 풍부한 시스템 콜을 포함한 향상이 필요하다는 점을 시사한다.
  • 이 작업은 NVMoF와 같은 생산용 스토리지 프로토콜 및 블록 디바이스와 파일 시스템과 같은 고수준 스토리지 스택과의 원격 eBPF 실행 통합에서 여전히 열려 있는 과제를 규명했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.