[DR 통합] 체크포인트·워커 복원·VMware 역복제 정합성 개선 - #56
Merged
dhslove merged 43 commits intoSep 12, 2026
Merged
Conversation
…ng control intent
This was referenced Sep 10, 2026
This was referenced Sep 12, 2026
Closed
Closed
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
최종 병합·이슈 관리 상태
병합 완료: Cloud #1022 → ablestack-europa (
4c42a079caf8), qemu #56 → main (9184ecd8ef16). 기존 오류 수정과 강제 삭제/수동 정리 핵심 구현을 포함한다.사용자 요청에 따라 연결 개별 완료 이슈는 종료하고, 아래 잔여 범위는 별도 열린 이슈로 관리한다. 본문 아래의 과거 ‘Draft/충돌/병합 대기/이슈 OPEN 유지’ 설명은 당시 작업 이력이며 현재 상태가 아니다.
검증은 각 문서에 명시된 모듈/UI/실환경 범위로 한정한다. 이슈 종료가 미실행 전체 릴리즈 시험의 PASS를 의미하지 않는다.
구현·검증 및 병합 과정의 상세 이력
#1020 핵심 구현·배포·UI 검증 완료 — 2026-09-11
기존 #1021/#1018까지 보존한 양쪽
codex/fix-1020-reverse-progress에서 구현하고 통합 브랜치codex/fix-1012-1013-dr-recovery에 fast-forward 반영했습니다. Cloudf492aa3317e27f331190f217b34721bdf1337030(구현377c17835e3), qemufe490da675e5a0d128eb0dda49e96799a5ae84b9(구현687cff4). 강제 푸시·upstream 병합은 하지 않았습니다.21878e31-6fc0-4e7c-9012-5a21527b589a, Failback945af7c9-cb5c-4a95-b79d-6b94ffb4676e. 19:42:52 KST UI/DB 모두 SUCCEEDED/completed/100%, 오류 없음. 수동 Resume/DB 수리 없이 후속 durable checkpoint315(요구186)를 확인했고 READY/ENABLED/RUNNING/HEALTHY로 복귀했습니다.코드 수준 설계 · 실행·검증 범위와 배포 근거
실제 qcow2 전체 UI failback 및 모든 물리 장애·migration·OS 조합을 이번에 새로 검증한 것으로 계산하지 않습니다. Cloud PR #1022의 기존 충돌은 별도 병합 작업으로 남깁니다. 이슈는 upstream 병합 완료와 구분하여 열어 둡니다.
Nutanix 제외 잔여 개발/보완 18건(Cloud17+qemu1), 핵심 구현·명시 범위 시험 완료/병합·잔여 검증 37건입니다. 다음 DR P2 #962 확장 + #1006(기존 최소 강제 삭제 재개발 없이 수동·잔여 자원 정리/보존 정책). 이후 #951→#952→#953, #1001→#986, #973→#966→#1019, #1028→#1027, #1033+#978+#1010+qemu#55, P3#955. Diplo #1029는 별도 P1입니다.
#1021 + #1018 핵심 구현·배포·UI 검증 완료 — 2026-09-11
기존 #954까지 보존한 양쪽
codex/fix-1021-1018-recovery-evidence에서 구현하고 통합 브랜치codex/fix-1012-1013-dr-recovery로 fast-forward 반영했습니다. Cloudb822ca532da(구현5cf94b79cd1), qemuf379fe2(구현e5c6a0a).2fd79125-1598-4498-86d7-7811fecaf701, Failback Run93a89a1c-5be7-411a-a80a-d8fd6b39b49e모두 UI/DB SUCCEEDED. 18:31:26 KST 최종 완료.상세 설계 · 검증 범위와 결과
qcow2 전체 UI failback 체인 및 모든 물리 장애/배치/OS 조합을 이번에 새로 완료했다고 주장하지 않습니다. 시험 중 오래된 역복제 진행률/조기 완료 안내를 재현하여 기존 #1020에 증거를 추가했습니다. 해당 UI 오류는 별도 후속이며 이번 기능 PASS와 구분합니다. upstream 병합은 아직 하지 않았고 Cloud PR #1022의 기존 충돌은 별도 통합 검증 대상으로 남깁니다.
Nutanix 제외 잔여 개발/보완 19건(Cloud18+qemu1), 핵심 구현·시험 완료/병합·잔여 검증 36건. 다음 DR P2 #1020 → #962 확장 + #1006, Diplo #1029 별도 P1입니다.
이번 qemu 변경은 설계·검증 문서만 해당합니다
실행 코드 변경은 paired Cloud PR ablecloud-team/ablestack-cloud#1022에 있습니다.
최신 반영: ablecloud-team/ablestack-cloud#1034 + ablecloud-team/ablestack-cloud#962 최소 잔여 (2026-09-11)
손상된 과거 completed evidence가 새 체크포인트 승인까지 막던 경로를 보완했다. Agent의 제한된 후보 보존, broker의 실패 전달/오래된 호스트 fallback 방지, Cloud CONFLICT boundary 및 target COMMITTED/동일 identity/digest 확인 후 ACK를 포함한다. 레거시 소스의 빈 active_side를 호환하며 Cloud SOURCE 권한과 TARGET/lifecycle 경계는 유지한다.
16b3e03b34, qemufb6df9b. 안전 브랜치codex/fix-1034-962-ui-recovery; 기존 PR HEAD에서 fast-forward만 수행했다.10d7d270-0c5b-4be1-8b2a-36cc7340eb23SUCCEEDED, 새 FULL_SEED checkpoint 1924(디스크 2개 COMMITTED proof 검증), 후속 증분 1925 자동 완료. 최종 요청 뒤 서비스 재시작/상태 보정/DB repair/수동 ACK 없음.상세: 설계, 검증 기록.
남은 우선순위: P1 ablecloud-team/ablestack-cloud#967 → ablecloud-team/ablestack-cloud#980 → ablecloud-team/ablestack-cloud#954, 별도 Diplo ablecloud-team/ablestack-cloud#1029. ablecloud-team/ablestack-cloud#962 확장 및 증거/보존/자원 경계/운영 지원은 P2, ablecloud-team/ablestack-cloud#955 P3. Nutanix 제외 관리 대기열은 잔여 24건 / 구현·핵심 시험 완료 및 병합·잔여 검증 31건. 기존 PR 충돌 해소와 최종 병합 검증은 별도이며 이번에 병합하지 않았다.
연동 PR: ablecloud-team/ablestack-cloud#1022
저장소별 변경
qemu 변경: 43파일, 28개 미병합 커밋. 비교 시 upstream main 전용 커밋은 0개입니다. checkpoint publication, scheduler, export ownership, 실패 테스트 정리, VMware full/CBT 읽기 및 역복제 쓰기를 포함합니다. 로컬 build/ 및 pycache/는 PR에 포함하지 않았습니다.
목적과 관리 범위
DR 계획의 설정·복제·테스트·재해 전환·페일백에서 발견한 오류 수정과 검증 기록을 누적 관리합니다. 원본 단절 중에도 대상의 유효 체크포인트로 복구할 수 있고, 실패 후 사용자가 정리·강제 등록 삭제를 수행할 수 있도록 개선합니다.
에픽: ablecloud-team/ablestack-cloud#950. 현재 검증 브랜치
codex/fix-1012-1013-dr-recovery를 그대로 PR head로 사용하며 이후 관련 후속 변경과 검증 결과를 이 PR에서 추적합니다. 이 PR은 초안이며 이슈를 자동 종료하지 않습니다.진행 상황
위 체크는 구현 및 각 문서에 명시된 시험 범위의 완료이며 모든 경로 또는 이슈 전체 수용 조건 완료를 뜻하지 않습니다. 특히 #962의 원격 orphan 추적·정리 전체는 미완료입니다.
검증 근거
상세:
docs/ftctl/issue-1012-1013-validation.md및 각 이슈별 설계·검증 문서. 과거 배포 중 보정/재시작이 필요했던 시도와 최종 무보정 성공을 문서에서 구분했습니다. 현재 PR 생성은 최신 upstream 통합 후 재검증이나 새 CI 성공을 의미하지 않습니다.후속 작업 대기열 — 2026-09-11 갱신
최신 전체 상태/우선순위는 Cloud 에픽 #950 본문을 따른다. 다음은 #1034 + #962 최소 복구 출구 → #967 → #980(P1 상향) → #954(P1 상향). 이미 구현된 #1023/#1030~#1032는 재개발하지 않는다. Diplo #1029와 PR 충돌 해소·최종 병합 검증은 별도 트랙이다. Nutanix #956~#959는 이번 대기열에서 제외한다.
#1007 / #972 통합 반영 (2026-09-11)
codex/fix-1007-972-scheduler-resume브랜치 생성, force 없이 기존 PR 브랜치에 fast-forward 반영Cloud commit
1269c4066b, qemu commit091a8da. 상세 설계·검증:docs/ftctl/issue-1007-972-design.md,docs/ftctl/issue-1007-972-validation.md.원본 13 관리 서버 DB pool 고갈로 첫 qcow2 Pause가 실패한 별도 문제는 P1 #1023으로 등록했습니다. 관리 서비스 임시 복구 후 본 변경을 시험했으며, 그 수동 복구를 무개입 장애 복원 PASS로 계산하지 않습니다. 기존 상태 표시 #973도 후속 관리합니다.
이번 PASS는 프로세스 재시작/소실과 UI 제어·체크포인트 증분에 대한 결과입니다. 장시간 물리 host reboot, management/Agent 각각의 장애 주입, 새 게스트 변경 데이터 해시 비교 및 전체 재해 전환 UI 체인은 이번에 추가 실행하지 않았습니다. 기존 lifecycle 계약 회귀를 통과했으며 VMware 양단 QGA 제외를 유지합니다. 잔여 수용 조건과 최신 upstream 통합 검증 때문에 이슈 자동 종료 및 PR 병합은 수행하지 않습니다.
2026-09-11: #1030/#1031/#1032 메뉴 및 호스트 이동 복구 보완
Pause/Resume의 제어 Run이 실제 체크포인트 producer를 덮어쓰거나, 정상 단일 LIVE scheduler를 미정리 작업으로 판정해 메뉴를 차단하는 문제를 수정했습니다. 원본 VM 이동 후에는 현재 배치를 다시 확인하며, 이전 호스트의 원본 부재 상태보다 정상 작업자를 선택합니다. VM migration 제한은 추가하지 않았습니다.
기존 손상된 completed snapshot은 시험 중 수동으로 실제 증거를 복원해야 했습니다. 이를 UI-only 성공으로 계산하지 않으며 #1034(P1)에서 처리합니다. 기존 관리 패키지의 누락 의존성과 배포 사전 점검은 #1033(P2)입니다. 상세 설계와 실패/성공 기록:
docs/ftctl/issue-1030-design.md,docs/ftctl/issue-1030-validation.md.#962 확장 + #1006 수동 정리 핵심 구현 완료 (2026-09-11)
과거 불변 체크포인트를 사용자가 선택해 정리하고, 최신·참조·clone 사용 세트를 보존한다. 정책 저장은 자동 삭제를 시작하지 않는다. 강제 등록 해제 후에는 별도 독립 자원 기록을 UI에서 확인할 수 있다.
codex/fix-962-1006-checkpoint-cleanup; 기존 통합 head가 조상임을 확인하고 fast-forward 반영. 이전 개선 누락/강제 push 없음.bd5eba6905f, qemu headc9997b2; Cloud DR 모듈 477 tests, UI 5 tests/production build, qemu 정리 14 tests/DR lifecycle 71 cases/release tombstone/기존 checkpoint 13 tests PASS.Cloud 검증 기록 · qemu 검증 기록