쿼터 모니터링 (Quota)
NFS 익스포트 경로(--nfs-base-path) 하위에 쿼터가 적용된 모든 디렉토리의 현재 사용량과 용량 제한 상태를 실시간으로 모니터링합니다.
- 사용량 평가 (상태 뱃지): 디렉토리의 현재 용량 사용률에 따라 세 가지 상태를 보여줍니다.
- OK (녹색): 설정 쿼터의 90% 미만 사용
- Warning (노란색): 쿼터의 90% 이상 100% 미만 사용
- Exceeded (빨간색): 쿼터 용량 100% 초과
- 메트릭 모니터링: Prometheus에 호환되는 상태 메트릭(
nfs_disk_used_bytes,nfs_quota_used_percent등)을 내보냅니다.
고아 디렉토리 정리 (Orphans)
Kubernetes 클러스터에서 PersistentVolume은 삭제되었으나, 실제 파일시스템에는 삭제되지 않고 남아 있는 '고아(Orphaned)' 디렉토리를 식별하고 관리합니다. (이 기능은 --enable-auto-cleanup 플래그로 활성화됩니다.)
- 유예 기간 (Grace Period): 고아 디렉토리를 발견한 즉시 삭제하지 않고 기본 24시간 동안 유지하여 데이터 유실을 방지합니다.
- Dry-Run 및 Live 모드:
--cleanup-dry-run=true인 경우 감지만 수행하며, Live 모드(false)일 때 실제 삭제를 진행합니다. CLI의cleanup서브커맨드나 UI에서 직접 실행할 수 있습니다.
사용량 추이 (Trends)
주기적으로 쿼터 사용 내역을 스냅샷으로 저장해, 스토리지 사용 패턴 및 증감 추이를 기록합니다. (--enable-history 필요)
- 최근 24시간(24H), 7일(7D), 30일(30D) 기간의 사용량 증감을 추적합니다.
- 데이터는 화살표(↑, →, ↓)와 함께 추세로 시각화되어 용량 고갈 시점을 예상하고 스토리지 확장을 계획하는 데 도움을 줍니다.
네임스페이스 정책 (Policies)
클러스터 상의 네임스페이스 및 PVC 설정에 따라 우선순위에 맞춰 쿼터 한도를 제한합니다. (--enable-policy 필요) 다음은 쿼터 정책이 어떠한 우선순위로 평가되고 결정되는지를 보여주는 흐름도입니다.
- 우선순위 결정 원칙:
LimitRange > Namespace Annotation > Global Default- 가장 먼저 Kubernetes의
LimitRange객체(type: PersistentVolumeClaim)를 스캔하여 최대(max), 최소(min), 기본(default) 용량을 확인합니다. - 다음으로 네임스페이스의 어노테이션(
nfs.io/default-quota,nfs.io/max-quota)을 확인합니다. - 명시된 제한이 없을 경우 에이전트의
--default-quota전역 플래그를 적용합니다.
- 가장 먼저 Kubernetes의
- 이 규칙을 벗어나는 PVC(예:
max초과)를 감지하면 정책 위반(Violation)으로 리포트합니다.
감사 로깅 (Audit Logs)
시스템에서 이루어진 모든 쿼터 변경 액션 이력을 보존합니다. (--enable-audit 필요)
- 에이전트가 실행하는
CREATE,UPDATE,DELETE,CLEANUP작업들이 기록됩니다. - 실패 및 성공 내역을 모두 로깅하여 추후 장애 분석과 컴플라이언스 문서화에 활용됩니다. 로그는 기본적으로
/var/log/nfs-quota-agent/audit.log파일로 출력됩니다.