Skip to content

14.4. 공유 스토리지 활용

공유 스토리지는 이 환경의 핵심입니다. 세 시스템(Pod(Jupyterhub)·Slurm·Spark)에 동일한 경로로 마운트되어 있어, 데이터를 옮기지 않고 어디서든 같은 파일을 사용합니다.

14.4.1 동일 마운트 경로 확인

각 시스템에서 같은 경로가 보이는지 확인합니다.

bash
# Pod(JupyterHub) / Slurm 로그인 노드 / (가능하면) Spark 측에서 각각 실행
ls -ld ${SHARED_ROOT}
ls -ld ${WORK_DIR}

세 시스템에서 동일한 디렉토리·파일이 보이면 정상입니다.

복사하지 마세요

같은 스토리지를 공유하므로 시스템 간 파일 복사는 불필요할 뿐 아니라, 중복본이 생겨 용량 낭비와 버전 혼선을 유발합니다. Pod에서 만든 스크립트를 Slurm/Spark에서 쓸 때는 같은 경로를 그대로 지정하면 됩니다.

14.4.2 디렉토리 구조 및 용도

권장 영역 구분(실제 경로는 14.1 환경 변수 정보 참조):

영역변수용도특징
개인 작업${WORK_DIR}개인 스크립트, 소규모 결과, conda 환경본인 소유
과제 공용${PROJECT_DIR}팀 공유 데이터·결과그룹 공유
임시/스크래치${SCRATCH_DIR}대용량 중간 산출물주기적 자동 삭제될 수 있음
입력 데이터${DATA_DIR}원본 데이터보통 읽기 전용

권장 하위 구조 예시:

${WORK_DIR}/
├── envs/        # conda 환경
├── scripts/     # 분석 스크립트
├── logs/        # 작업 로그
└── results/     # 결과물

14.4.3 파일 권한·소유권·그룹 공유

여러 사람이 함께 쓰는 영역에서는 그룹 권한을 맞춰야 협업이 됩니다.

bash
# 현재 권한/소유 확인
ls -l ${PROJECT_DIR}

# 그룹 공유가 필요한 결과물에 그룹 읽기/쓰기 부여
chgrp -R ${LDAP_GROUP} ${PROJECT_DIR}/results
chmod -R g+rwX ${PROJECT_DIR}/results

# 새로 만드는 파일이 그룹에 공유되도록 setgid 설정(디렉토리)
chmod g+s ${PROJECT_DIR}/results

umask

협업 디렉토리에서 작업할 때 umask 002로 설정하면 새로 만든 파일에 그룹 쓰기 권한이 자동으로 붙어 편리합니다.

14.4.4 용량(쿼터) 확인과 정리

bash
# 디렉토리 용량 확인
du -sh ${WORK_DIR}
du -sh ${SCRATCH_DIR}

# 쿼터 명령이 제공되는 경우
quota -s 2>/dev/null || echo "쿼터 명령은 환경에 따라 다릅니다(운영팀 확인)."

스크래치 자동 삭제

${SCRATCH_DIR}는 일정 기간 후 자동 삭제될 수 있습니다. 보존이 필요한 결과는 작업이 끝나는 즉시 ${WORK_DIR} 또는 ${PROJECT_DIR}로 옮기세요.

14.4.5 보안 주의사항 (작업 중 상시)

데이터 거버넌스

  • 민감 데이터의 망 외부 반출은 정해진 절차로만 가능합니다(별도 보안 교육 참조).
  • 임시 파일·로그에 식별정보나 민감 데이터가 남지 않도록 주의하고, 분석 종료 후 정리하세요.
  • 개인 영역이라도 공유 스토리지이므로 관리자/감사 대상이 될 수 있습니다. 용도에 맞지 않는 데이터를 두지 마세요.