LabHub
배우기 러닝패스 코스

バックアップとリストア

復旧リハーサル

LabHub 에서 이어서 보기

한국어 원문으로 표시합니다.

목표

앞에서 만든 백업 세트로 복구 리허설을 수행하고, 시간을 재서 RTO 충족 여부를 판정합니다.

왜 중요한가

복구는 순서와 검증이 전부입니다. 임시 경로를 거치지 않고 -C / 로 바로 푸는 것은 되돌릴 수 없는 작업이고, 증분 복원 순서를 어기면 있어야 할 파일이 사라집니다. 그리고 RTO 는 실제로 재기 전까지 희망사항입니다 — 실무에서 RTO 를 못 지키는 원인 1위는 추출이 느려서가 아니라 백업을 가져오는 시간을 계산에 넣지 않았기 때문입니다.

이 실습의 복구 목표는 RPO 24시간, RTO 300초 입니다.

단계

  1. /root/rest 디렉터리를 만들고, /root/rest/objective.txt 에 다음 두 줄을 적으세요. RPO=24h / RTO=300s
  2. /root/bk/full.tar.gz/root/rest/check/ 에 복원하세요. 현재 /root/bk/src 는 건드리면 안 됩니다.
  3. 복원본과 원본을 재귀 비교해 결과를 /root/rest/diff.txt 로 저장하세요. (4번에서 추가한 파일 때문에 차이가 있을 수 있으니, 비교 대상은 confdata 디렉터리로 한정해도 좋습니다.)
  4. 아카이브에서 src/app/conf.yaml 하나만 /root/rest/one/ 으로 복원하세요. 그 디렉터리에 다른 파일이 있으면 안 됩니다.
  5. --strip-components 를 써서 아카이브의 src/ 를 떼고 /root/rest/stripped/ 에 복원하세요. 결과적으로 /root/rest/stripped/app/main.py 가 존재해야 합니다.
  6. 증분 세트를 순서대로 복원하세요. /root/rest/inc/ 에 전체 → inc0 → inc1 순으로 풀어, /root/rest/inc/src/app/new.py 가 존재해야 합니다.
  7. 2번부터 6번까지의 전체 복구를 다시 한 번 수행하며 시간을 재고, /root/rest/timing.txt 에 다음 두 줄을 적으세요. ELAPSED=<초> / MEETS_RTO=<yes|no> (300초 이내면 yes)
  8. /root/rest/report.txt 를 다음 5줄로 만드세요. RESTORED_FILES=<2번 복원본의 파일 수> / SELECTIVE=1 / STRIPPED_OK=yes / INCREMENTAL_OK=yes / RTO_MET=<7번의 판정>

참고

복구 목표 기록

/root/rest 디렉터리를 만들고, /root/rest/objective.txt 에 다음 두 줄을 적으세요. RPO=24h / RTO=300s

RPO 와 RTO 는 이 실습에서 주어집니다. 값을 정확히 적으세요.

임시 경로로 복원

/root/bk/full.tar.gz/root/rest/check/ 에 복원하세요. 현재 /root/bk/src 는 건드리면 안 됩니다.

절대 현재 위치에 바로 풀지 마세요. 복원 위치를 지정하는 옵션을 씁니다.

원본과 비교

복원본과 원본을 재귀 비교해 결과를 /root/rest/diff.txt 로 저장하세요. (4번에서 추가한 파일 때문에 차이가 있을 수 있으니, 비교 대상은 confdata 디렉터리로 한정해도 좋습니다.)

디렉터리 전체를 재귀적으로 비교하는 명령이 있습니다. 차이가 없으면 조용합니다.

선택 복원

아카이브에서 src/app/conf.yaml 하나만 /root/rest/one/ 으로 복원하세요. 그 디렉터리에 다른 파일이 있으면 안 됩니다.

아카이브 안 경로를 인자로 주면 그것만 풀립니다. 먼저 목록에서 정확한 경로를 확인하세요.

경로 조정 복원

--strip-components 를 써서 아카이브의 src/ 를 떼고 /root/rest/stripped/ 에 복원하세요. 결과적으로 /root/rest/stripped/app/main.py 가 존재해야 합니다.

앞쪽 경로 요소를 몇 개 떼어낼지 지정하는 옵션이 있습니다.

증분 순서대로 복원

증분 세트를 순서대로 복원하세요. /root/rest/inc/ 에 전체 → inc0 → inc1 순으로 풀어, /root/rest/inc/src/app/new.py 가 존재해야 합니다.

전체를 먼저, 증분을 순서대로 풀어야 합니다. 복원 시 스냅샷 파일은 갱신하지 않습니다.

복구 시간 측정

2번부터 6번까지의 전체 복구를 다시 한 번 수행하며 시간을 재고, /root/rest/timing.txt 에 다음 두 줄을 적으세요. ELAPSED=<초> / MEETS_RTO=<yes|no> (300초 이내면 yes)

시작과 끝 시각의 차이를 초로 계산합니다. 목표와 비교해 판정하세요.

리허설 보고서

/root/rest/report.txt 를 다음 5줄로 만드세요. RESTORED_FILES=<2번 복원본의 파일 수> / SELECTIVE=1 / STRIPPED_OK=yes / INCREMENTAL_OK=yes / RTO_MET=<7번의 판정>

앞 단계의 실제 결과를 모으세요. 불일치 수는 비교 결과에서 나옵니다.