스토리지 아키텍처
NFS Quota Agent는 Go 언어로 작성된 경량 단일 바이너리 데몬으로, NFS 호스트 서버에서 루트 권한으로 실행됩니다.
내부 아키텍처 구성
이 구조는 Kubernetes 요청 → Agent 제어 로직 → Linux/XFS 커널 강제의 세 계층을 분리해서 보여줍니다. 실제 용량 제한은 애플리케이션 레벨이 아니라 XFS Project Quota가 커널에서 강제합니다.
XFS Project Quota 커널 동작 원리
- 마운트 옵션: XFS 파일시스템이
pquota(또는prjquota) 플래그로 마운트되어야 합니다. - 디렉토리 매핑: 새로운 PVC 생성 시 고유한
Project ID를 발급하고 디렉토리에 프로젝트 플래그를 설정합니다:xfs_quota -x -c 'project -s -p /srv/nfs/pvc-12345 101' /srv/nfs - 용량 한도 설정: 하드 리밋(Hard Limit)과 소프트 리밋(Soft Limit)을 설정합니다:
xfs_quota -x -c 'limit -p bhard=10g 101' /srv/nfs - 커널 강제 차단: 워크로드가 10GiB를 초과하여 쓰기를 시도하면 커널이 즉시
EDQUOT (Disk quota exceeded)에러를 반환합니다.