You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
부모 Epic #987, 최종 검증 S8 #999. Apache 4.23 변경의 모든 코드 통합이 끝난 최종 Europa SHA에서 실물 인프라 테스트를 수행한다.
2026-09-11 사용자 확정: S3~S7 기능 통합의 목표는 CloudStack 변경을 Europa 코드에 안전하게 반영하는 것이다. 해당 PR은 코드 검토·자동 테스트·CI를 통과하면 병합한다. 실물 테스트 미실행을 이유로 Draft 또는 기능 이슈 미완료 상태를 유지하지 않는다. 배치별 실물 시나리오는 이 이슈에 누적하고 모든 코드 병합 후 실행한다. 실물 미실행을 PASS로 기록하지 않는다.
상태: WAITING — 최종 코드 통합 후 실행. 이 이슈는 #993·#994 및 이후 기능 코드 병합의 선행 조건이 아니다.
VMware/VDDK → KVM import: 실행/정지 VM, 고정/dynamic/constrained 자원, NIC 매핑, S3/template 권한, VM import/변환 실패·agent timeout·대상 pool 장애·부분 copy 실패 후 정리와 반복 실행. 변환 UUID 이외 파일/XML 참조 parent 비삭제.
다중 ISO: 최대 연결 수, 동시 attach/detach, 부팅·재시작·migration 후 매핑 유지, 선택한 ISO만 분리, primary ISO 호환, ConfigDrive 슬롯 충돌 방지, VR 및 direct-download 경로.
NIC link/PXE와 Guest OS rule: 기존 link 상태·부팅 순서·migration IP 보존, allow/deny rule, script timeout, UEFI/TPM 필터와 결합.
VMware: root-volume offering 변경의 stopped/running 상태 처리, Windows Server 2025 guest OS 매핑과 VM 시작.
XenServer 지원 범위: full-clone 설정별 복제 결과와 snapshot/원본 관계.
스케줄: 기존 VM schedule의 ID/timezone/cron/job 보존, 실행·일시정지·재시작·중복 job 방지, 신규/기존 API 상호 운용, 역할/API key 거부·다른 계정 자원 접근 차단, AutoScaleVmGroup 실행.
DRS 및 CPVM: persisted skip-DRS·KVDO 예외, zone별 console proxy와 host core 응답, 반복 등록/duplicate IP 거부.
관리 서버/agent 순차 업그레이드: 구/신 버전 조합에서 CheckOnHost wire 이름 호환, requested RAM fallback, 다중 ISO capability/slot 및 미지원 command의 실패 안전성 확인. 새 기능 활성화 시점과 업그레이드 순서를 최종 RC 절차에 기록.
Docker의 합성 DB/API·단위 테스트는 이미 각 배치에서 기록하며 이 실물 시험의 대체 증거가 아니다. 후속 배치는 같은 형식으로 이 이슈에 항목을 추가한다.
S5A 코드 기준 인수
#993은 PR #1024 병합으로 코드 통합을 완료했다. Europa 동기화 SHA는 394157cdf2e3aa501edbcc3dff523f66e472d12e이며 코드·자동 검증 보고를 인수한다. 실제 실물 시험은 남은 배치가 모두 병합된 최종 SHA에서 수행한다. 위 실물 체크박스는 아직 미실행이며 자동 테스트의 PASS로 체크하지 않았다.
코드 PR #1035. 상태는 WAITING이며 아래 항목은 실물 미실행이다. 최종 통합 SHA와 Actions RPM에서 실행하고 결과를 #999에 연결한다. 코드 PR 병합의 선행 조건으로 사용하지 않는다.
NAS 증분: 실행 VM의 root+data 다중 디스크에서 full→incremental→incremental, VM 재시작/이동 후 부모 bitmap 재등록 및 일부 bitmap 유실 시 full 전환. 각 볼륨이 자기 부모 파일을 사용하고 복구 후 실제 파일 checksum이 일치해야 한다.
NAS 실패 복구: backup-begin/rebase/convert 실패, NAS 용량 부족·연결 단절·mount/unmount timeout, fsfreeze/thaw 실패. 실패를 성공으로 보고하지 않고 paused VM 재개·정리 결과를 기록한다. 중간/루트/끝 backup 삭제와 chain retention 이후 살아 있는 복구 지점·사용량 count를 확인한다.
정지 VM: 파일/NFS/SharedMountPoint/RBD/LINSTOR 전체 백업·복구. LINSTOR by-res와 기존 /dev/drbdN 경로 모두 동일 UUID 이름으로 복구되고 raw DRBD에는 qcow bitmap을 생성하지 않아야 한다. 암호화 조합은 S5C 완료 코드와 함께 시험한다.
CLVM Apache CLVM enhancements and fixes apache/cloudstack#12617 및 후속 migration/ISO: CLVM/CLVM_NG 등록, lock acquire/release/transfer, 같은 VG lightweight migration, 실패·동시 요청·agent 재접속. ISO가 올바른 host에 남고 다중 ISO/ConfigDrive slot, S5A HA opt-in과 FTCTL 보호를 보존해야 한다.
KBOSS: KVM의 Filesystem/NFS/SharedMountPoint 지원 조합에서 full/증분, quiesce, 체인 삭제, zstd/zlib 압축, validation boot/screenshot/command, quick restore·전체 restore·개별 볼륨 attach 및 background jobs. 미지원 스토리지 거부, 자원 제한/Usage, validation VM 정리, snapshot revert/detach/migration 전 delta 정리를 확인한다.
Veeam KVM: 관리 서버 control service 인증·허용 CIDR·서비스 계정 역할, 체크포인트 full/incremental, blank VM 복구, EL9/QEMU NBD dirty context, TLS image transfer·재시도·요청 중 unregister·중단 정리. 다른 계정/API 권한 우회 없이 복구 데이터가 일치해야 한다. 실제 Veeam 제품과 버전을 기록한다.
ONTAP: 대상 제품·펌웨어/API 버전, NFS/iSCSI lifecycle·volume/snapshot/clone·VM snapshot·resize·delete·capacity 및 실패 cleanup. 문서 최소 volume 크기와 인증/TLS 설정을 확인한다.
LINSTOR: snapshot→volume, 대상 resource 사전 검증, 리소스 이름 모호성, API token/TLS 검증·명시적 insecure 설정, snapshot backup/restore 암호화 조합 및 호스트 auth.json 경로를 확인한다. token은 로그/보고서에 남기지 않는다.
FlashArray/Adaptive: rename/snapshot identity, 실제 capacity·IOPS, REST2 API-token 인증·API 버전 탐색, 삭제 polling timeout/중단 후 상태와 재시도를 확인한다.
템플릿/ISO/볼륨 업로드: 첫 Zone의 저장소 없음·readonly·용량 부족·SSVM 단절 시 다른 가용 Zone 하나에 업로드. 업로드 후 다른 Zone VM 배포, public/private replica cap·동시 copy 후 수렴·마지막 Ready 사본 보존, heuristic store 지정, 기존 등록 템플릿 호환을 확인한다. SSVM 인증서 신뢰 후 UI retry가 서명/만료/x-host 헤더를 유지해야 한다.
기존 ABLESTACK: NAS/Commvault/NetBackup/BX 스케줄·retention·EXTERNAL 상태, NetBackup restore 상태 재시작 복구, KVDO/Glue/fast-clone 및 RBD parent/thin 보존. #995의 ABLESTACK backup 정책 계약도 함께 확인한다.
DB/순차 업그레이드: 014895d 및 이미 S5A Complete인4.23에서 S5B 신규 단계 실행, 기존 journal/backup/schedule/config 보존, 중간 DDL 후 재시도. 구/신 management·agent 조합의 새 command 지원 범위와 기능 활성화 순서를 기록한다.
S5B 코드 기준 확정
#994 / PR #1035 병합 SHA 27dbd94c2914162862c2b6e61d5e69dd22f5303d. S5B 자동 검증 보고와 DB·API 근거를 인수한다. 위 S5B 실물 checklist는 여전히 미실행이며, 최종 S8의 SHA/Actions RPM checksum으로 시험한다. 지금 코드 병합 또는 자동 시험 결과가 위 실물 항목의 PASS를 의미하지 않는다.
상태: NOT_RUN — 코드 통합 후 S8 #999에서 최종 병합 SHA와 공식 RPM으로 실행. 이 목록은 코드 PR을 Draft로 유지하거나 #996 종료를 보류하는 조건이 아니다.
운영 출발점 014895d8f3의 기존 passphrase 볼륨을 유지한 업그레이드와 KMS 전환: 전후 실제 파일/블록 체크섬, VM 재시작, attach/detach 및 호스트 재연결을 대조한다. 원래 DEK가 바뀌거나 평문 키가 API/로그에 노출되지 않아야 한다.
Database provider 및 지원 PKCS#11 HSM별 신규 키·기존 키·KEK 회전·백그라운드 rewrap·Management/Usage 재시작을 실행한다. 회전 중 I/O와 중단/재시작 후 모든 기존 볼륨이 계속 열려야 한다.
PIN 오류, 비활성 profile/key, HSM 네트워크 단절·지연, KEK 부재, 동시 생성/회전/전환/삭제 및 다중 Management를 검증한다. 실패가 임의 새 DEK 생성·기존 키 참조 삭제로 이어지지 않아야 하며 API 작업 결과가 실패를 표시해야 한다.
SharedMountPoint의 실제 encrypted volume migration 및 LINSTOR encrypted snapshot backup/restore를 테스트한다. S5B token/TLS/auth.json·대상 호스트 전환·QEMU10.1 key-file 정리와 복구 전후 데이터 체크섬을 확인한다.
KMS 키를 공유하는 볼륨의 clone/migration/삭제, 백업·스냅샷 보존 및 복원 시 필요한 키 수명주기를 확인한다. 기존 API가 명시적으로 금지한 encrypted snapshot→새 볼륨 경로는 실패 유지가 기대 결과다.
계정/프로젝트/존별 권한, private/public HSM profile 범위 및 비밀 마스킹을 실제 역할 구성으로 검증한다. 기존 KVDO·KBOSS·FTCTL/DR·Glue·RBD parent/thin·CheckedReservation 회귀도 함께 실행한다.
자동 검증은 별도로 PR #1036 및 s5c-verification.ko.md에 기록한다. 소프트웨어 QCOW2/DB/API fixture의 성공을 실물 HSM·스토리지 성공으로 대체하지 않는다.
S5C 코드 기준 확정
#996 / PR #1036 병합 SHA e4e1abf. 자동 검증 보고와 후속 계약을 인수한다.
S5C 실물 항목은 여전히 NOT_RUN이며 최종 S8의 SHA/Actions RPM 기준으로 실행한다.
자동 DB/API/QEMU fixture의 통과는 실물 HSM·스토리지 테스트 PASS를 뜻하지 않는다.
S6 코드 기준 확정
#997 / PR #1037 병합 SHA f1b520f. 자동 검증 보고 · 후속 계약. S6 실물 시나리오13개는 모두 NOT_RUN이며 최종 S8 SHA/Actions RPM으로 실행한다.
MySQL·관리 API·HTTP 모의 provider·shell fixture 통과를 실물 시험 PASS로 간주하지 않는다.
코드 PR #1039. 각 항목은 NOT_RUN이며 모든 코드 통합 후 S8 #999의 최종 SHA에서 실행한다. Docker의 실제 API/MySQL와 UI 단위/Chromium 검증을 실물 통과로 바꾸지 않는다.
시나리오
기대 결과·확인할 위험
상태
기존 Europa 업그레이드
014895d 운영 규모 데이터와 S6 완료 DB에서 S7 테마 열·view·journal 추가, 기존 테마/이전 완료 시간 보존, 백업 복원 가능
NOT_RUN
호스트별 테마·비밀번호/OAuth/SAML
실제 CN/TLS·테넌트 도메인·IdP로 기본/하위 도메인 로그인, 공급자 조회, 테마 전환, 생략/빈 값·MS cookie 처리 확인
NOT_RUN
역할·한국어·밝은/어두운 화면
관리자/도메인 관리자/일반 사용자/프로젝트별 메뉴 및 API 키·KMS·Quota·DNS 접근, ABLESTACK 로고와 기존 Storage Service/DR/Desktop/Automation 유지
NOT_RUN
개별/일괄 삭제
실제 프로젝트·리소스에서 이름 확인·Enter 제출·취소·이전 선택 행·일괄 흐름, 비동기 실패/권한 거부 시 오삭제 방지
NOT_RUN
이미지·스토리지·네트워크
미준비/준비 완료 template 및 bootable ISO, 업로드 후 상태 전환·zone별 실제 배포, 기존 볼륨/템플릿/네트워크 화면과 계정·프로젝트 링크 확인
NOT_RUN
기능별 연계
API 키 생성/회수, HSM 키 교체/기존 볼륨 전환, Quota 잔액/요금, PowerDNS 영역/레코드·VR 이벤트를 실제 provider와 확인
NOT_RUN
S7에서 realhostip 제거 a7f9756 및 최종 버전463f8d029470을 완료했다고 간주하지 않는다. 두 코드 원본은 S2 #990 / S8 #999 인수 항목이며 최종 실물 실행 전에 통합 범위를 확정한다.
S7 소프트웨어 시험에서 확인한 외부 연동 제약
프로젝트 삭제: 이름 오입력/Enter 차단, 취소 후 입력 초기화와 일치 입력의 활성화를 Chromium에서 확인했다. 올바른 입력의 실제 deleteProject 요청은 1회 접수(HTTP 200)됐으나, async job은 기존 AccountManagerImpl의 Keycloak/Glue/Wall 계정 정리 경로에서 Connection refused로 실패했다. 이를 삭제 성공으로 계산하지 않는다. 최종 코드와 실제 연동 서비스에서 프로젝트/내부 계정/외부 계정 정리 완료 및 실패 후 재시도를 확인할 것. 현재 NOT_RUN.
Wall 알림 목록: 시험 DB에 wall.api.token이 없어 listWallAlertRules가 530을 반환했다. 실제 서비스 계정 토큰과 Wall 환경의 알림 조회/권한 동작은 NOT_RUN. 비밀값은 이슈에 기록하지 않는다.
위 내용은 S7에서 도입한 장애가 아니라, 이번 독립 시험 환경에 기존 외부 서비스가 없는 상태에서 관측한 제약이다. 해당 기존 코드 경로와 오류를 명시하고 UI 계약 검증 결과와 구분한다.
최종 Actions RPM 신규 설치 및 운영 baseline014895d8f3 업그레이드
NOT_RUN
package/digest/최종SHA 고정, 서비스/에이전트 연결 및 데이터 보존
CPVM/SSVM 인증서 경로 전환
NOT_RUN
기존·재생성 SystemVM, systemvm.keystore, CA 신뢰와 사용자 인증서 재전달
폐기 realhostip 기본값 제거
NOT_RUN
사용자 DNS/와일드카드 도메인 유지, HTTPS 콘솔·업로드·다운로드, IP SAN 인증서 신뢰
실제 백업 복원
NOT_RUN
DB·코드·설정·키의 동일시점 복원, journal, FTCTL/DR/SharedFS/KMS 및 외부연동 정합성
S3~S7 누적 시나리오
NOT_RUN
기존 표 유지, 실제TLS/IdP/Wall/Keycloak·Glue·Veeam 환경에서 실행
자동 검증은 전체 schema+합성 데이터의 Docker MySQL이며 운영 dump 또는 실물 회귀가 아니다.
신규/014/S7 모두473 table/view 및 반복snapshot 동일, 도메인18개 기대값 검증과 인증서 파일 byte/패키지 경로 검사까지 수행했다.
일반 사용자 관리자 API 탐색 및 Promise 정리는 코드 후속 #1042로 분리했다.
S8 최종 병합 SHA: 63b410f4c19b7bc748ed8bdcc1d3d4e08495d8a3. Epic #987 / S2 #990 / S8 #999는 코드 통합 완료로 종료했다. 이 실물/릴리즈 검증 이슈는 OPEN / NOT_RUN으로 유지한다.
목적과 실행 시점
부모 Epic #987, 최종 검증 S8 #999. Apache 4.23 변경의 모든 코드 통합이 끝난 최종 Europa SHA에서 실물 인프라 테스트를 수행한다.
2026-09-11 사용자 확정: S3~S7 기능 통합의 목표는 CloudStack 변경을 Europa 코드에 안전하게 반영하는 것이다. 해당 PR은 코드 검토·자동 테스트·CI를 통과하면 병합한다. 실물 테스트 미실행을 이유로 Draft 또는 기능 이슈 미완료 상태를 유지하지 않는다. 배치별 실물 시나리오는 이 이슈에 누적하고 모든 코드 병합 후 실행한다. 실물 미실행을 PASS로 기록하지 않는다.
상태: WAITING — 최종 코드 통합 후 실행. 이 이슈는 #993·#994 및 이후 기능 코드 병합의 선행 조건이 아니다.
S5A #993 인수 시나리오
각 항목은 시험 SHA, Actions RPM checksum, 환경·자원 ID, 절차, 기대/실제 결과, 로그 링크와 정리/복구 결과를 기록한다. 운영 데이터 대신 승인된 시험용 자원을 사용한다.
KVM lifecycle: 시작/정지/재시작, 고정/Dynamic/Constrained offering 복제·배포·복원·live scaling. CPU/RAM 한도와 requested RAM, quota/reservation 해제, GPU/TPM/UEFI/KVDO/fast-clone 유지.
Migration: 동일/다른 cluster·pod, storage motion 유무, user VM zone 범위·system VM pod 범위. 빈 후보·용량 부족·affinity/UEFI/TPM 불충족 시 안전한 거부와 자원 회수.
KVM HA: self/neighbor 응답 성공·실패·timeout·미확정, OOBM Unknown/Off, agent 재접속 중 VM 작업 상태. NFS/SharedMountPoint/RBD/CLVM opt-in 모니터, RBD volume 전달, 기본 host reset/reboot 비활성 유지.
FTCTL/DR: 실행 중 복제·migration·HA 변화, host 소유 progress 유지, VM details telemetry 비추가, hangctl 자원 비파괴, 장애·반복 복구 후 VM/디스크 데이터 보존.
Ceph RBD/SharedMountPoint qcow2: parent/thin/clone 관계, copy/cleanup의 provider 보존, unrelated parent 디스크와 복구 자원 비삭제.
VMware/VDDK → KVM import: 실행/정지 VM, 고정/dynamic/constrained 자원, NIC 매핑, S3/template 권한, VM import/변환 실패·agent timeout·대상 pool 장애·부분 copy 실패 후 정리와 반복 실행. 변환 UUID 이외 파일/XML 참조 parent 비삭제.
다중 ISO: 최대 연결 수, 동시 attach/detach, 부팅·재시작·migration 후 매핑 유지, 선택한 ISO만 분리, primary ISO 호환, ConfigDrive 슬롯 충돌 방지, VR 및 direct-download 경로.
NIC link/PXE와 Guest OS rule: 기존 link 상태·부팅 순서·migration IP 보존, allow/deny rule, script timeout, UEFI/TPM 필터와 결합.
VMware: root-volume offering 변경의 stopped/running 상태 처리, Windows Server 2025 guest OS 매핑과 VM 시작.
XenServer 지원 범위: full-clone 설정별 복제 결과와 snapshot/원본 관계.
스케줄: 기존 VM schedule의 ID/timezone/cron/job 보존, 실행·일시정지·재시작·중복 job 방지, 신규/기존 API 상호 운용, 역할/API key 거부·다른 계정 자원 접근 차단, AutoScaleVmGroup 실행.
DRS 및 CPVM: persisted skip-DRS·KVDO 예외, zone별 console proxy와 host core 응답, 반복 등록/duplicate IP 거부.
관리 서버/agent 순차 업그레이드: 구/신 버전 조합에서 CheckOnHost wire 이름 호환, requested RAM fallback, 다중 ISO capability/slot 및 미지원 command의 실패 안전성 확인. 새 기능 활성화 시점과 업그레이드 순서를 최종 RC 절차에 기록.
전체 통합 후 공통 게이트
014895d8f3출발 업그레이드. 단계별 journal, 데이터, 계정/API/OAuth 권한, 재시작·멱등성 및 업그레이드 시간 확인.Docker의 합성 DB/API·단위 테스트는 이미 각 배치에서 기록하며 이 실물 시험의 대체 증거가 아니다. 후속 배치는 같은 형식으로 이 이슈에 항목을 추가한다.
S5A 코드 기준 인수
#993은 PR #1024 병합으로 코드 통합을 완료했다. Europa 동기화 SHA는
394157cdf2e3aa501edbcc3dff523f66e472d12e이며 코드·자동 검증 보고를 인수한다. 실제 실물 시험은 남은 배치가 모두 병합된 최종 SHA에서 수행한다. 위 실물 체크박스는 아직 미실행이며 자동 테스트의 PASS로 체크하지 않았다.S5B #994 인수 시나리오
코드 PR #1035. 상태는 WAITING이며 아래 항목은 실물 미실행이다. 최종 통합 SHA와 Actions RPM에서 실행하고 결과를 #999에 연결한다. 코드 PR 병합의 선행 조건으로 사용하지 않는다.
S5B 코드 기준 확정
#994 / PR #1035 병합 SHA
27dbd94c2914162862c2b6e61d5e69dd22f5303d. S5B 자동 검증 보고와 DB·API 근거를 인수한다. 위 S5B 실물 checklist는 여전히 미실행이며, 최종 S8의 SHA/Actions RPM checksum으로 시험한다. 지금 코드 병합 또는 자동 시험 결과가 위 실물 항목의 PASS를 의미하지 않는다.S5C KMS·암호화 실물 인수 (#996 / PR #1036)
상태: NOT_RUN — 코드 통합 후 S8 #999에서 최종 병합 SHA와 공식 RPM으로 실행. 이 목록은 코드 PR을 Draft로 유지하거나 #996 종료를 보류하는 조건이 아니다.
자동 검증은 별도로 PR #1036 및 s5c-verification.ko.md에 기록한다. 소프트웨어 QCOW2/DB/API fixture의 성공을 실물 HSM·스토리지 성공으로 대체하지 않는다.
S5C 코드 기준 확정
#996 / PR #1036 병합 SHA e4e1abf. 자동 검증 보고와 후속 계약을 인수한다.
S5C 실물 항목은 여전히 NOT_RUN이며 최종 S8의 SHA/Actions RPM 기준으로 실행한다.
자동 DB/API/QEMU fixture의 통과는 실물 HSM·스토리지 테스트 PASS를 뜻하지 않는다.
S6 코드 기준 확정
#997 / PR #1037 병합 SHA f1b520f. 자동 검증 보고 · 후속 계약.
S6 실물 시나리오13개는 모두 NOT_RUN이며 최종 S8 SHA/Actions RPM으로 실행한다.
MySQL·관리 API·HTTP 모의 provider·shell fixture 통과를 실물 시험 PASS로 간주하지 않는다.
S7 #998 UI·로그인 테마 실물 인수
코드 PR #1039. 각 항목은 NOT_RUN이며 모든 코드 통합 후 S8 #999의 최종 SHA에서 실행한다. Docker의 실제 API/MySQL와 UI 단위/Chromium 검증을 실물 통과로 바꾸지 않는다.
S7에서 realhostip 제거 a7f9756 및 최종 버전463f8d029470을 완료했다고 간주하지 않는다. 두 코드 원본은 S2 #990 / S8 #999 인수 항목이며 최종 실물 실행 전에 통합 범위를 확정한다.
S7 소프트웨어 시험에서 확인한 외부 연동 제약
S7 최종 코드 병합 기준: PR #1039·#1040, SHA ec2a659. 검증 보고 · 원본10행 · DB 결과 · 릴리즈 노트 · 전체299개. 실물 표는 모두 NOT_RUN 유지하며 실제 시험은 S8 최종 코드 통합 후 실행한다.
S8 최종 코드 인계 (#999 / PR #1041)
코드 검증 기준 HEAD
b8efdfc75a6d216eeda150816fbae95ca1903430. 정식 릴리즈/배포와 실물 검증 승인은 별도이며 이 이슈는 OPEN 유지한다.복구·인수 절차 / S8 자동 검증.
자동 검증은 전체 schema+합성 데이터의 Docker MySQL이며 운영 dump 또는 실물 회귀가 아니다.
신규/014/S7 모두473 table/view 및 반복snapshot 동일, 도메인18개 기대값 검증과 인증서 파일 byte/패키지 경로 검사까지 수행했다.
일반 사용자 관리자 API 탐색 및 Promise 정리는 코드 후속 #1042로 분리했다.
S8 최종 병합 SHA:
63b410f4c19b7bc748ed8bdcc1d3d4e08495d8a3. Epic #987 / S2 #990 / S8 #999는 코드 통합 완료로 종료했다. 이 실물/릴리즈 검증 이슈는 OPEN / NOT_RUN으로 유지한다.