/oss/nfs-quota-agent/overview

스토리지 쿼터 개요

Kubernetes NFS 스토리지의 물리적 용량 제한 강제 메커니즘과 설계 원칙.

스토리지 쿼터 개요

NFS Quota Agent는 Kubernetes 클러스터에서 NFS PersistentVolume(PV)에 대해 파일시스템 수준의 엄격한 용량 쿼터(Quota)를 강제하는 고성능 스토리지 에이전트 데몬입니다.

문제 배경 및 필요성

  • Kubernetes NFS의 한계: 표준 NFS CSI 드라이버는 PVC 요청 용량(spec.resources.requests.storage: 10Gi)을 쿠버네티스 메타데이터로만 인식할 뿐, 실제 NFS 공유 스토리지에 물리적 용량 제한을 강제하지 못합니다.
  • 공유 스토리지 고갈 리스크: 특정 파드가 무한정 데이터를 기록하면 동일한 NFS 서버를 공유하는 모든 서비스가 디스크 용량 고갈로 연쇄 중단됩니다.
  • 해결책: Linux 커널의 XFS Project Quotas (xfs_quota) 기능을 활용하여 서브디렉토리별로 바이트 단위의 정확한 하드 리밋(Hard Limit)을 강제합니다.

핵심 기능

  • XFS Project Quota 엔진: 서브디렉토리별 불변 프로젝트 ID(ProjectID) 할당 및 커널 레벨 용량 강제
  • gRPC & HTTP API: CSI 프로비저너 연동을 위한 초고속 RPC 인터페이스 및 RESTful 관리 엔드포인트
  • QuotaPolicy CRD: 쿠버네티스 네이티브 선언적 매니페스트 지원
  • Prometheus 메트릭: 볼륨별 실시간 용량 사용량, 남은 공간, 쿼터 초과 알림 메트릭 제공
  • 내장 관리 Web UI: 반응형 스토리지 대시보드 및 실시간 경고 시스템