정거장 강제이전 절차와 방법론
목적: 05_정거장모니터링법.law.md 제1조(3단계 임계치)·①-3~①-5(경보·강제이전
권한·이중화 등급)의 실행 매뉴얼. 신임 이사·실장이 사전 지식 없이 이
문서만 보고 강제이전을 처음부터 끝까지 수행할 수 있도록 작성한다.
언제 이 문서를 쓰는가: 그룹웨어 메인(_gw/index.html)에 정거장 경보창이
떴거나, 담당 라인으로 강제이전 통지를 받았을 때.
---
0단계 — 상황 파악(5분 이내)
1. 경보에 명시된 정거장 라벨(예: vps-in, l1s2)과 현재 사용률을
확인한다.
2. 해당 정거장에 SSH 접속해 실제 수치를 재확인한다:
``bash
ssh <정거장호스트> "cat ~/station_sensor/*.status; df -h"
`
3. 사용률이 90% 이상이면 **이미 신규 데이터 생성 프로세스가 자동 종료된
상태**여야 한다(제1조 3단계). 종료 안 됐으면 먼저 수동으로 멈춘다:
`bash
ssh <정거장호스트> "pkill -9 -f raker_"
`
1단계 — 이전 대상 데이터 식별
1. 정거장 내 폴더별 용량을 확인해 뭐가 공간을 차지하는지 파악한다:
`bash
ssh <정거장호스트> "du -sh ~/station/* 2>/dev/null | sort -rh"
`
2. 가장 큰 것부터 이전 우선순위를 정한다 — 임계치를 빠르게 낮추는 게
목표이므로 덩치 큰 것부터 뺀다.
2단계 — 이중화 등급 판정(제1조①-5)
이전할 데이터마다 원본 소스가 재수집하기 쉬운지를 판단한다:
| 판정 기준 | 등급 | 예시 | 처리 방식 |
|---|---|---|---|
| 공개 API·공식 미러가 있어 언제든 다시 받을 수 있음 | 1중화 | Wikipedia, 공공 오픈데이터 | 목적지에 1개 사본만 만들면 됨 |
| API 제한·rate limit·차단 이력 있어 재수집이 오래 걸리거나 불확실 | 2중화 | Europeana, 차단 이력 있는 기관 | 목적지에 사본을 만들고, 원본도 검증 전까지 보존(즉 일시적으로 총 2벌 존재하는 상태를 거침) |
판단이 애매하면 2중화 쪽으로 기운다 — 데이터 유실 리스크가 재수집
번거로움보다 항상 더 크다.
3단계 — 목적지 정거장 선정
1. 그룹웨어 메인의 raker 분포표(raker_capacity.md)에서 **여유(적정
기준)가 가장 큰 기기**를 목적지로 고른다 — 임의로 정하지 않는다.
2. 목적지의 여유 용량이 이전할 데이터보다 충분히 큰지(최소 2배 여유
권장) 확인한다:
`bash
ssh <목적지호스트> "df -h"
`
4단계 — 실제 전송 실행
표준 도구는 rclone 또는 rsync(08_기술운용법.law.md 대량이동 표준).
`bash
예시: rsync로 정거장 간 전송(둘 다 SSH 접속 가능한 경우)
rsync -avz --progress -e ssh \
<정거장호스트>:~/station/<대상폴더>/ \
<목적지호스트>:~/station/<대상폴더>/
`
- 전송 중간에 끊길 걸 대비해 --partial 옵션을 추가해두면 재개가 쉽다.
- 대용량(수백GB 이상)이면 rclone의 체크포인트 기능을 우선 검토한다.
5단계 — 100% 완결 검증(제1조①-5, 필수 — 생략 불가)
원본 삭제 전에 반드시 아래 세 가지를 확인한다:
1. 파일 개수 일치:
`bash
ssh <정거장호스트> "find ~/station/<대상폴더> -type f | wc -l"
ssh <목적지호스트> "find ~/station/<대상폴더> -type f | wc -l"
`
2. 총 용량 일치(du -sh 결과 비교, 오차 허용범위 1% 이내)
3. 체크섬 샘플 대조(전수 검사가 부담되면 최소 10개 파일 무작위 샘플):
`bash
ssh <정거장호스트> "sha256sum ~/station/<대상폴더>/<샘플파일>"
ssh <목적지호스트> "sha256sum ~/station/<대상폴더>/<샘플파일>"
`
셋 다 일치해야만 다음 단계로 진행한다. 하나라도 불일치하면 4단계로
돌아가 재전송한다.
6단계 — 원본 삭제
검증 통과 후에만 실행:
`bash
ssh <정거장호스트> "rm -rf ~/station/<대상폴더>"
`
삭제 후 정거장 사용률이 안전 구간(50% 미만)으로 돌아왔는지 재확인한다.
7단계 — 경보 해제 및 기록
1. 그룹웨어 메인(_gw/index.html)의 경보창을 제거한다(제1조①-3 — 해소된
경보를 방치하지 않는다).
2. 이 문서 하단 "실행 이력"에 처리 결과를 한 줄로 남긴다.
3. 위반이 아니라 정상 운영 이력이므로 01_위반처리시행령.dec.md가
아니라 05_정거장모니터링법.law.md`의 실행 사례 자료 표에 추가한다.
---
체크리스트 요약(인쇄해서 옆에 두고 볼 것)
- [ ] 0단계: 사용률 재확인, 90%면 raker 강제종료 확인
- [ ] 1단계: 큰 것부터 이전 대상 리스트업
- [ ] 2단계: 1중화/2중화 판정
- [ ] 3단계: raker_capacity.md에서 여유 큰 목적지 선정
- [ ] 4단계: rsync/rclone 전송
- [ ] 5단계: 파일수·용량·체크섬 3종 검증 (생략 금지)
- [ ] 6단계: 검증 통과 후에만 원본 삭제
- [ ] 7단계: 경보 해제 + 이력 기록
---
실행 이력
| 날짜 | 정거장 | 대상 데이터 | 등급 | 목적지 | 결과 |
|---|---|---|---|---|---|
| (아직 실행 사례 없음) |