웹사이트 검색

DAXFS: 리눅스를 위한 제로 카피 공유 메모리 파일 시스템으로 제안됨


새로운 리눅스 제안이 DAXFS를 소개합니다. DAXFS는 페이지 캐시를 우회하여 공유 메모리에 직접 접근할 수 있는 읽기 전용 파일 시스템입니다.

멀티커널의 커널 개발자인 Cong Wang은 리눅스 커널 메일링 리스트에서 DAXFS라는 새로운 리눅스 파일시스템을 소개했습니다. 이름에서 알 수 있듯이, DAXFS는 리눅스 커널의 직접 접근(Direct Access, DAX) 인프라를 기반으로 구축되어, 파일시스템이 기존의 블록 I/O 스택을 거치지 않고 공유 물리 메모리에 직접 접근할 수 있도록 합니다.

발표에 따르면, 잘 알려진 RAMFS나 TMPFS와 달리, 이들 파일 시스템은 페이지 캐시에 의존하고 인스턴스별로 메모리를 할당하는 반면, DAXFS는 연속된 물리적 메모리 영역을 파일 시스템에 직접 매핑합니다. 파일 읽기는 직접 메모리 로드로 해결되어, 동일한 읽기 전용 데이터가 RAM에 복제될 수밖에 없는 환경에서도 메모리 오버헤드를 줄입니다.

새 파일 시스템은 GPU, FPGA 또는 CXL 연결 장치에서 dma-buf API를 통해 내보낸 메모리를 지원하도록 설계되어, 장치 기반 메모리에 직접 저장된 데이터에 대한 읽기 전용 접근을 가능하게 합니다.

의도적으로 범위를 최소화한 DAXFS는 자체 포함된 읽기 전용 이미지 형식을 사용하며, 런타임 할당, 복잡한 메타데이터 관리 및 장치 처리 로직을 피하여 특정 용도에 적합합니다.

여기에는 독립적인 커널 인스턴스 간에 공통 컨테이너나 Docker 기반 이미지를 공유하는 것, CXL 메모리 풀링 시나리오에서 네트워크 전송 대신 공유 메모리를 사용하는 것, 컨테이너를 위해 공유 DAXFS 기반 이미지를 OverlayFS와 결합하여 RAM 사용량을 줄이는 것, 그리고 가속기 메모리에 저장된 정적 데이터에 대한 제로 카피 접근을 제공하는 것이 포함됩니다.

이 코드는 저자가 DAXFS가 실험적인 제안임을 강조했기 때문에 GitHub에서 공개되어 있습니다. 상위(b수준) 포함에 대한 어떤 경로도 Linux 커널 개발 커뮤니티 내에서의 추가 논의와 검토에 달려 있습니다.

자세한 정보는 커널 메일링 리스트의 메시지를 참조하세요.