본문으로 건너뛰기

스토리지 관리

gShare 플랫폼의 스토리지는 사용자 데이터가 저장되는 **볼륨(Volume)**과, 해당 볼륨들을 백엔드에서 프로비저닝하고 지지하는 스토리지 풀(Storage Pool) 두 가지 요소로 관리됩니다.

스토리지 풀 관리 화면


스토리지 풀 (Storage Pools)​

스토리지 풀은 단순 하드웨어 노드 역할을 넘어, 데이터 플레인 클러스터와 연동되어 PVC/PV 볼륨을 프로비저닝하는 실제 스토리지 인프라 객체입니다.

  • 구성 요소: 스토리지가 위치한 클러스터, 프로비저닝을 담당하는 StorageClass, 공유 범주(전체 클러스터 또는 지정된 클러스터)
  • 용량 통제: 대시보드의 스토리지 현황 타일 및 신규 볼륨 생성 시의 용량 게이트 검증은 스토리지 풀 목록 데이터를 기반으로 동작합니다. 명시적으로 등록되지 않은 스토리지 서버는 전체 용량 산정 및 스케줄링 계산에서 제외됩니다.

스토리지 서버 등록 절차​

스토리지 서버 등록은 노드 라벨링 → CSI 드라이버 설치 → 스토리지 풀 등록의 순서로 진행됩니다.

  1. 노드 라벨링: 대상 스토리지 노드에 gshare.io/role=storage 라벨을 부여합니다. (부트스트랩 스크립트에 STORAGE_NODE 설정 시 자동 적용되며, **노드 관리**에 Storage 역할로 노출됩니다.)
  2. 드라이버 설정: 스토리지 CSI 드라이버를 설치하고, 오퍼레이터 구성 항목(operator.volumeStorageClass)에 해당 StorageClass 이름을 지정합니다. (세부 연동 방법은 운영 가이드 → 스토리지 문서 참조)
  3. 스토리지 풀 등록: 콘솔에서 풀 정보를 입력하고 등록을 완료합니다.

신규 스토리지 풀 등록

설정 항목설명 및 입력 기준
풀 이름연결된 스토리지 노드의 호스트명(Hostname) 지정 (클러스터 노드로 등록되지 않은 독립 서버인 경우 직접 명칭 입력)
클러스터스토리지 서버가 속한 데이터 플레인 클러스터 (등록 완료 후 변경 불가)
StorageClass해당 서버에서 볼륨을 프로비저닝하는 StorageClass 명칭 (오퍼레이터에 설정한 명칭과 동일해야 함)
스토리지 노드(선택) 라벨이 부여된 물리 노드 선택. 해당 노드의 디스크 용량이 대체 메트릭으로 활용됨
수동 용량 (GB)CSI 드라이버가 용량 메트릭을 동적 발행하기 전까지 활용할 실제 물리 풀 용량 입력
공유 범위전체 클러스터: 모든 클러스터에서 해당 풀에 볼륨 생성 가능
선택: 지정한 특정 클러스터에 한해 볼륨 생성 허용

편집 및 삭제: 스토리지 풀 등록 후 클러스터 항목을 제외한 옵션은 언제든지 편집할 수 있습니다. 삭제 처리 시 시스템 용량 계산에서만 제외되며, 이미 프로비저닝되어 존재하는 기존 볼륨 및 물리 스토리지 데이터는 영향을 받지 않고 정상 동작합니다.

스토리지 풀 삭제 대화 상자


용량 메트릭 소스 및 우선순위​

스토리지 풀 목록의 각 행에 표시되는 용량 수치는 아래 우선순위 소스에 의거하여 자동으로 반영됩니다.

  1. csi: CSI 드라이버의 GetCapacity API 호출을 통해 CSIStorageCapacity로 동적 발행되고 오퍼레이터가 수집하는 유일한 자동 실시간 소스
  2. manual: CSI 드라이버가 용량 메트릭을 동적으로 발행하지 않을 때 관리자가 풀 설정에 수동으로 입력한 값
  3. node disk: 연결된 스토리지 노드의 시스템 루트 드라이브 용량 (대체 메트릭 표시)

단일 볼륨 최대 크기 한도: 여러 대의 스토리지 서버가 존재할 때 전체 볼륨 가용 상한선은 서버 전체 용량의 합계가 아닌, 사용 가능한 가장 용량이 큰 단일 스토리지 풀의 가용 크기에 의해 제한됩니다.


볼륨 관리 (Volumes)​

플릿 내 생성된 모든 볼륨의 소유자, 할당 범위, 접근 모드(RWO/RWX/ROX), 쿼터 대비 사용량, 및 **데이터 물리 위치(스토리지 풀 및 클러스터)**를 통합 관리합니다.

전체 볼륨 관리 목록

  • 미생성(Pending) 볼륨: 생성 후 어떠한 세션에도 마운트되지 않은 볼륨은 PV/PVC 클레임이 바인딩되지 않아 물리적 위치가 확정되지 않으며, 표 상에 아직 미생성으로 표시됩니다. 세션에 최초 마운트되는 시점에 스토리지 풀이 결정되고 프로비저닝됩니다.
제어 항목동작 및 영향 범위
쿼터 변경해당 볼륨의 최대 용량 쿼터를 증액합니다. (단, 볼륨 소유자의 자원 정책 스토리지 한도 범주 내에서만 가능)
잠금 (Lock)기존 실행 중인 세션은 유지하되, 신규 세션에서의 볼륨 마운트를 차단합니다.
삭제 (Delete)볼륨을 삭제합니다. 해당 볼륨을 마운트 중인 세션이 존재하면 삭제가 거부됩니다.
강제 삭제 (Force Delete)해당 볼륨을 마운트하고 있는 세션을 강제 종료한 후 볼륨을 즉시 삭제합니다.

볼륨 강제 삭제 대화 상자

강제 삭제 주의사항

강제 삭제는 실행 중인 세션을 강제로 종료시키고 볼륨을 제거하는 파괴적인 조치입니다. 삭제 대화 상자에 영향을 받는 세션 소유자가 명시되며, 해당 종료 이력은 감사 로그에 남습니다. 스토리지 용량이 완전히 고갈되었고 사용자에게 연락이 닿지 않는 긴급 상황에서만 제한적으로 활용하세요.


스토리지 용량 고갈 시 대응 절차​

스토리지 풀 용량이 부족할 경우 다음 순서로 조치하는 것을 권장합니다.

  1. 대용량 볼륨 식별: 볼륨 목록을 사용량 순으로 정렬하여 방치된 임시 볼륨이나 불필요하게 크게 잡힌 볼륨을 검색합니다.
  2. 소유자 확인 및 삭제 요청: 관리자 강제 삭제보다는 볼륨 소유자에게 직접 연락하여 불필요한 데이터를 정제하도록 안내합니다.
  3. 볼륨 잠금(Lock) 활용: 데이터 정리 진행 동안 대상 볼륨을 잠금 처리하여 데이터가 추가로 증가하는 것을 차단합니다.
  4. 자원 정책 수정한도 재설정: 용량 고갈 재발을 방지하기 위해 **자원 정책**에서 사용자 및 부서별 최대 스토리지 쿼터 한도를 하향 조정합니다.

볼륨 데이터 회수 유예 기간: 삭제 처리된 볼륨은 설정된 유예 기간(api.volumeReclaimGraceHours, 기본값 24시간) 동안 회수 보관 대기 상태로 유지되며, 해당 기간 내에는 운영자에 의해 데이터 복구가 가능합니다.