> For the complete documentation index, see [llms.txt](https://ia-cloud.gitbook.io/cloudia-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ia-cloud.gitbook.io/cloudia-manual/user-guide/faq.md).

# FAQ (자주 묻는 질문)

이 문서는 Cloud:iA 사용자 관점에서 자주 발생하는 운영 이슈를 정리한 통합 FAQ입니다.\
각 항목은 `원인`, `점검 포인트`, `조치 가이드`, `재발 방지` 순서로 구성했습니다.

> 참고
>
> 일부 항목은 관리자 권한 화면(컴퓨트 노드, 스토리지 도메인, 프로젝트 관리) 확인이 필요합니다.

## 1. 가상머신 생성·실행·배치

### Q. 가상머신 실행이 실패해요. 노드 리소스 가용량이 부족하다고 나와요

#### 원인 요약

* VM이 요청한 `vCPU/메모리`를 한 노드에서 동시에 수용하지 못하는 경우
* 스토리지/파일 시스템/보안 유형/피닝/선호도 조건으로 후보 노드가 줄어든 경우
* 컴퓨트 노드 상태가 비정상인 경우

#### 점검 포인트

1. `프로젝트 > 가상머신 > 인스턴스`에서 대상 VM 상태가 `SCHEDULE_FAILED`인지 확인합니다.
2. 실패 직후 VM이 `종료됨` 상태로 복구되는지 확인합니다.(`종료됨`이면 재실행 가능한 상태입니다.)
3. `관리자 > 감사로그`에서 실패 사유를 확인합니다.
4. `관리자 > 대시보드 > 컴퓨트 대시보드`에서 비정상 컴퓨트 노드와 에러 상태 인스턴스를 확인합니다.
5. `인스턴스 상세 > 연결된 리소스`에서 파일 시스템/선호도 그룹/AI 가속기 연결 여부를 확인합니다.

#### 조치 가이드

1. VM 스펙(vCPU/메모리)을 일시적으로 낮춰 실행 가능 여부를 확인합니다.
2. 선호도 그룹이 `강제`면 일시적으로 `비강제` 또는 `비활성화`로 전환해 재시도합니다.
3. 스토리지 도메인/파일 시스템 상태를 정상화한 뒤 다시 실행합니다.
4. 비정상 노드 복구 후 재시도합니다.

#### 재발 방지

* 운영 중 자주 쓰는 VM 타입별 최소 가용량을 사전 확보합니다.
* 강제 선호도/피닝은 필요한 워크로드에만 제한적으로 사용합니다.

### Q. 가상머신이 `SCHEDULE_FAILED` 상태가 되는 가장 흔한 이유는 무엇인가요?

#### 원인 요약

* 리소스 수용 불가: 한 노드에서 요청 스펙을 만족하지 못함
* 스토리지 접근 불가: 이미지/디스크/파일 시스템 접근 조건 미충족
* 정책 충돌: 선호도 그룹(강제), CPU 피닝, 보안 유형 제약
* 컴퓨트 노드 상태 문제

#### 점검 포인트

1. VM 실행 조건을 정리합니다: `vCPU`, `메모리`, `보안 유형`, `피닝`, `가속기`, `선호도 그룹`.
2. 후보 노드 목록은 사용자 화면에서 직접 보이지 않을 수 있으므로, 조건을 하나씩 완화하며 후보 부족 여부를 확인합니다.
3. `관리자 > 감사로그`의 실패 사유로 어떤 조건이 배치를 막았는지 확인합니다.

#### 조치 가이드

1. 조건을 하나씩 완화해 어느 조건이 후보를 0대로 만드는지 찾습니다.
2. 원인 조건 확정 후 정책 조정 또는 리소스 확장을 진행합니다.

### Q. 선호도 그룹이나 affinity 설정 때문에 VM이 실행되지 않을 수 있나요?

#### 원인 요약

가능합니다. 특히 `강제` 규칙에서는 조건을 만족하는 노드가 없으면 실행이 실패합니다.

#### 점검 포인트

1. `프로젝트 > 가상머신 > 선호도 그룹`에서 대상 그룹이 `활성`인지 확인합니다.
2. `가상머신 강제성`, `물리 머신 강제성`이 `강제`인지 확인합니다.
3. 대상 VM/대상 물리 머신 구성이 현재 노드 풀과 모순되는지 확인합니다.

#### 조치 가이드

1. 원인 분석 중에는 강제 규칙을 일시 완화합니다.
2. 배치 의도 유지가 필요하면 대상 물리 머신 풀을 확장합니다.
3. 충돌 가능성이 높은 다중 그룹 규칙을 단순화합니다.

### Q. OS 이미지, 파일시스템, 추가 블록이 서로 다른 스토리지 도메인에 있으면 VM 실행에 영향이 있나요?

#### 핵심 답변

영향이 있습니다. VM은 `OS 이미지`, `추가 블록`, `파일시스템`이 속한 스토리지 도메인에 실행 대상 호스트가 모두 동시에 접근할 수 있어야 합니다. 참조 중인 스토리지 도메인 중 하나라도 연결되지 않은 호스트는 실행 후보에서 제외되며, 최종 후보가 없으면 `SCHEDULE_FAILED`가 발생할 수 있습니다.

#### 점검 포인트

1. 대상 VM이 참조하는 `OS 이미지`, `추가 블록 디스크`, `파일시스템`이 각각 어느 스토리지 도메인에 있는지 확인합니다.
2. 서로 다른 스토리지 도메인을 함께 참조하는지 확인합니다.
3. `관리자 > 스토리지 > 스토리지 도메인`에서 각 도메인 상태가 정상인지 확인합니다.
4. `관리자 > 감사로그`에서 스토리지 관련 배치 실패 사유가 있는지 확인합니다.

#### 조치 가이드

1. 사용 중인 스토리지 도메인을 정상 상태로 복구합니다.
2. VM이 참조하는 스토리지 자원을 동일하거나 동일 호스트에서 공통으로 접근 가능한 스토리지 도메인으로 정리합니다.
3. 조치 후 VM이 실행에 성공하는지 확인합니다.

### Q. GPU / SR-IOV / NPU를 사용하는 VM은 왜 특정 호스트에서만 실행되나요?

#### 원인 요약

패스스루 장치는 물리 장치가 있는 노드에서만 할당 가능하므로 후보 호스트가 제한됩니다.

#### 점검 포인트

1. 대상 노드에 필요한 장치 타입/개수가 실제 존재하는지 확인합니다.
2. 이미 다른 VM이 장치를 점유 중인지 확인합니다.
3. 장치 정책과 VM 보안/피닝 정책이 충돌하지 않는지 확인합니다.

#### 조치 가이드

1. 장치 보유 노드 전용 풀로 워크로드를 분리합니다.
2. 장치 점유가 긴 VM은 운영 시간대를 분리해 충돌을 줄입니다.
3. 장애 대비를 위해 동일 장치 노드를 최소 2대 이상 확보합니다.

### Q. 디스크 부팅 순서를 변경했더니 부팅이 안 돼요

#### 원인 요약

OS 미설치 디스크를 1순위로 올렸거나, 부팅 대상 디스크의 부팅 포함 옵션이 빠진 경우가 많습니다.

#### 점검 포인트

1. `인스턴스 상세 > 인스턴스 구성 요소 > 디스크`에서 부팅 순서를 확인합니다.
2. OS 설치 디스크가 `부팅 포함`으로 설정되어 있는지 확인합니다.
3. ISO 설치형이면 콘솔에서 `QEMU DVD-ROM` 선택 상태도 확인합니다.

#### 조치 가이드

1. OS 디스크를 최상위 순서로 복구합니다.
2. 콘솔에서 장치 선택 후 정상 부팅 여부를 확인합니다.
3. 필요 시 마지막 정상 스냅샷으로 롤백합니다(종료 상태에서만).

### Q. 실행 중인 가상머신에 CPU / 메모리 / 디스크 / NIC를 바로 추가할 수 있나요?

#### 가능 범위

| 항목          | 실행 중 변경 | 비고                     |
| ----------- | ------- | ---------------------- |
| `vCPU`      | 가능      | 증가만 가능                 |
| `메모리`       | 가능      | 증가만 가능                 |
| `추가 블록 디스크` | 가능      | 연결/제거 가능               |
| `NIC`       | 가능      | 기본 NIC 제외, 추가/편집/삭제 가능 |

#### 제한 범위

* `ISO 파일` 설치 유형 VM은 실행 중 편집이 제한됩니다.
* `설치 유형`, `OS 이미지`, `부팅 디스크`, `VPC`, `파일 시스템`, `AI 가속기`, `가상 CPU 피닝`은 실행 중 변경 제한입니다.
* `부팅 디스크`는 실행 중에는 변경할 수 없지만, 전원을 끈 상태(`종료됨`/`정지됨`)에서는 현재 크기 이상으로 증설(확대)할 수 있습니다. 크기 축소는 지원하지 않습니다.

#### 점검 포인트

1. VM 상태가 `실행 중`이고 작업 버튼이 활성화되는지 확인합니다.
2. 변경 후 게스트 OS에서 장치 인식 여부를 확인합니다.
3. NIC 추가 시 IP/라우팅/DNS 자동 반영 여부를 확인합니다.

#### 조치 가이드

1. 라이브 변경은 확장(Scale-up) 중심으로 수행합니다.
2. 구조 변경은 종료 후 유지보수 창에 수행합니다.

## 2. 스냅샷·복원

### Q. Ubuntu VM 스냅샷 전에 꼭 확인해야 할 것은 무엇인가요?

#### 핵심 답변

* 반드시 종료가 필요한 것은 아닙니다. `실행 중`에서도 스냅샷 생성은 가능합니다.
* 스냅샷 정합성/성공률을 위해 `QEMU Guest Agent` 설치를 권장합니다.
* 기본 이미지에는 `QEMU Guest Agent`가 포함되지 않을 수 있습니다.
* 다만 데이터 정합성이 중요한 서비스(DB, 트랜잭션 처리)는 종료 후 스냅샷을 권장합니다.

#### 점검 포인트

1. 워크로드가 정합성 민감인지 확인합니다.
2. `QEMU Guest Agent` 설치/동작 여부를 확인합니다.
3. 실행 중 생성 시 애플리케이션 flush 정책 적용 여부를 확인합니다.

#### 조치 가이드

1. 일반 워크로드: 실행 중 스냅샷 사용 가능
2. 정합성 민감 워크로드: 유지보수 창에 종료 후 스냅샷 생성
3. `QEMU Guest Agent`가 없으면 먼저 설치 후 스냅샷 진행
4. 표준 이미지에 게스트 에이전트 설치 기본화

#### 실무 체크 명령(예시)

```bash
sudo apt-get update
sudo apt-get install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
sudo systemctl status qemu-guest-agent
```

### Q. 실행 중인 가상머신은 왜 스냅샷 복원(롤백)을 할 수 없나요?

#### 핵심 답변

롤백은 디스크를 과거 시점으로 되돌리는 작업이라 실행 중에는 일관성 보장이 어렵습니다. 그래서 `종료됨` 상태에서만 허용됩니다.

#### 점검 포인트

1. 롤백 대상 VM 상태가 `종료됨`인지 확인합니다.
2. 롤백 영향 대상(큐/DB/캐시)을 사전에 파악합니다.
3. 롤백 대상 스냅샷 시점의 데이터 상태를 검증합니다.

#### 조치 가이드

1. VM 정상 종료
2. `인스턴스 상세 > 스냅샷`에서 롤백 수행
3. 재기동 후 핵심 파일/서비스 검증

### Q. Windows VM은 왜 디스크 암호화 상태에서 스냅샷이 실패할 수 있나요?

#### 핵심 답변

`BitLocker` 활성 디스크는 암호화 메타데이터와 블록 상태가 계속 변경되어 스냅샷/이미지 캡처가 실패할 수 있습니다.

#### 점검 포인트

1. OS/데이터 디스크 BitLocker 활성 여부를 확인합니다.
2. 복호화 진행률이 완료(`0%`)인지 확인합니다.

#### 조치 가이드

1. 암호화가 켜져 있으면 복호화를 먼저 수행합니다.
2. 복호화 완료 전 스냅샷/이미지 캡처를 진행하지 않습니다.
3. 골든 이미지 전환 시 `Sysprep` 순서를 준수합니다.

## 3. Windows / ISO 설치

### Q. Windows VM은 네트워크 드라이버 없이도 먼저 부팅할 수 있나요?

#### 핵심 답변

가능합니다. Windows 11 설치에서는 네트워크 요구 단계를 우회해 로컬 계정으로 먼저 진입한 뒤 드라이버를 설치할 수 있습니다.

#### 점검 포인트

1. 콘솔에서 설치 화면 진입 여부 확인
2. 네트워크 단계 우회 필요 여부 판단
3. 설치 후 `virtio-win` 드라이버 설치 계획 확인

#### 조치 가이드

1. 설치 화면에서 `Shift + F10`
2. `OOBE\BYPASSNRO` 실행 후 재부팅
3. 로컬 계정 진입 후 드라이버 설치

### Q. Windows ISO VM 생성 시 `virtio-win` 드라이버 ISO가 꼭 필요한가요?

#### 핵심 답변

운영 관점에서는 사실상 필수입니다. 네트워크/스토리지 드라이버와 `QEMU Guest Agent` 안정 설치를 위해 필요합니다.

#### 점검 포인트

1. VM에 `virtio-win.iso` 바인드 여부
2. 장치 관리자 경고 장치 존재 여부
3. 설치 후 네트워크/디스크 인식 정상 여부

#### 조치 가이드

1. `virtio-win-guest-tools` 통합 설치 우선
2. 실패 시 장치 관리자에서 경로 수동 지정
3. 재부팅 후 상태 재확인

## 4. 네트워크·외부 접속

### Q. 플로팅 IP, 포트 포워딩, 로드 밸런서를 설정했는데 외부에서 접속되지 않아요

#### 원인 요약

* 가상머신 상태는 정상이지만 내부 서비스 프로세스가 실행 중이 아니거나 대상 포트를 열지 않은 경우
* 보안그룹 인바운드 규칙에서 `프로토콜`, `포트`, `소스 IP/CIDR`을 허용하지 않은 경우
* 로드 밸런서의 경우 연결된 타겟 그룹에 `HEALTHY` 타겟이 없는 경우

#### 점검 포인트

1. `프로젝트 > 가상머신 > 인스턴스`에서 대상 가상머신이 `실행 중`인지 확인합니다.
2. 게스트 OS에서 서비스 프로세스가 정상 실행 중인지, 실제 서비스 포트가 LISTEN 상태인지 확인합니다.
3. `프로젝트 > 보안 > 보안그룹`에서 해당 가상머신에 연결된 보안그룹 인바운드 규칙을 확인합니다.
4. `프로젝트 > 네트워크 > 포트 포워딩`에서는 외부 포트와 내부 포트 매핑이 맞는지 확인합니다.
5. `프로젝트 > 네트워크 > 로드 밸런서`에서는 리스너, 타겟 그룹 연결, 상태 검사 포트가 서비스 포트와 일치하는지 확인합니다.

#### 조치 가이드

1. 가상머신 내부 서비스와 포트 오픈 상태를 먼저 확인합니다.
2. 보안그룹에서 필요한 `TCP/UDP`, 포트 범위, 접속 대역을 허용합니다.
3. 포트 포워딩은 내부 대상 포트와 실제 서비스 포트가 같은지 다시 확인합니다.
4. 로드 밸런서는 타겟 그룹 상태 검사를 통과하도록 서비스 포트와 상태 검사 설정을 정정합니다.

### Q. 퍼블릭 서브넷을 프라이빗 서브넷으로 변경할 수 없어요

#### 원인 요약

* 해당 서브넷에서 플로팅 IP가 연결된 인터페이스가 사용 중인 경우
* 해당 서브넷 대역의 인터페이스를 대상으로 포트 포워딩 규칙이 존재하는 경우

#### 점검 포인트

1. `프로젝트 > 네트워크 > 서브넷`에서 변경하려는 서브넷이 `퍼블릭` 타입인지 확인합니다.
2. `프로젝트 > 네트워크 > 플로팅 IP`에서 해당 서브넷의 인터페이스에 연결된 항목이 있는지 확인합니다.
3. `프로젝트 > 네트워크 > 포트 포워딩`에서 해당 서브넷의 인터페이스를 대상으로 한 규칙이 있는지 확인합니다.

#### 조치 가이드

1. 서브넷에 연결된 플로팅 IP를 먼저 연결 해제합니다.
2. 해당 서브넷 인터페이스를 대상으로 하는 포트 포워딩 규칙을 삭제합니다.
3. 외부 노출 리소스 정리 후 서브넷 타입을 다시 `프라이빗`으로 변경합니다.

### Q. 보안그룹과 네트워크 ACL은 어떻게 다른가요?

#### 핵심 답변

보안그룹은 인스턴스 단위에 적용하는 상태 저장(Stateful) 보안 정책이고, 네트워크 ACL은 서브넷 단위에 적용하는 상태 비저장(Stateless) 보안 정책입니다.

#### 구분 기준

* **적용 대상**: 보안그룹은 가상머신 인터페이스에 적용하고, 네트워크 ACL은 서브넷에 적용합니다.
* **규칙 평가 순서**: 보안그룹은 허용 규칙 집합으로 동작하므로 규칙 등록 순서가 핵심 판단 기준이 되지 않습니다. 네트워크 ACL은 규칙 번호가 작은 것부터 먼저 평가하며, 먼저 일치한 규칙이 적용됩니다.
* **허용/차단 방식**: 보안그룹은 허용 규칙만 관리하며, 여러 허용 규칙은 `OR` 조건처럼 동작합니다. 즉, 여러 규칙 중 하나라도 일치하면 허용되고, 명시적으로 허용하지 않은 트래픽은 차단됩니다. 네트워크 ACL은 허용과 거부를 모두 명시할 수 있으며, 마지막에는 일치하지 않은 트래픽을 차단하는 기본 규칙이 있습니다.
* **상태 저장 여부**: 보안그룹은 인바운드 허용 시 응답 트래픽을 별도 아웃바운드 규칙 없이 허용합니다. 네트워크 ACL은 인바운드와 아웃바운드를 각각 별도 규칙으로 허용해야 합니다.
* **운영 목적**: 보안그룹은 서비스별, 인스턴스별 세밀한 허용 정책에 적합하고, 네트워크 ACL은 서브넷 단위 공통 차단 또는 허용 정책에 적합합니다.

### Q. 로드 밸런서 리스너 모니터링 정보가 보이지 않아요

#### 원인 요약

* 연결된 타겟 그룹에 `HEALTHY` 상태의 타겟이 없는 경우
* 상태 검사 포트, 프로토콜, 응답 경로가 실제 서비스 상태와 맞지 않는 경우
* 타겟 가상머신 보안그룹에서 상태 검사 트래픽을 허용하지 않은 경우

#### 점검 포인트

1. `프로젝트 > 네트워크 > 로드 밸런서 > 상세`에서 리스너와 연결된 타겟 그룹을 확인합니다.
2. `프로젝트 > 네트워크 > 타겟 그룹 > 상세 > 타겟`에서 타겟 상태가 `HEALTHY`인지 확인합니다.
3. `UNHEALTHY` 상태라면 상태 검사 프로토콜, 포트, 서비스 응답 상태를 확인합니다.
4. 타겟 가상머신 보안그룹에서 서비스 포트와 상태 검사 포트를 허용했는지 확인합니다.

#### 조치 가이드

1. 타겟 그룹 상세에서 어떤 타겟이 `UNHEALTHY`인지 먼저 식별합니다.
2. 서비스 프로세스가 실제로 응답하는 포트와 상태 검사 설정이 일치하도록 수정합니다.
3. 보안그룹에서 로드 밸런서 트래픽과 상태 검사 트래픽을 허용합니다.
4. 타겟이 `HEALTHY`로 전환된 뒤 리스너 모니터링 정보를 다시 확인합니다.

### Q. 내부 DNS가 동작하지 않아요

내부 DNS는 VPC 단위로 동작하며, 각 VPC 대역의 2번쨰 IP를 전용 DNS 서버 주소로 사용합니다.

#### 원인 요약

* 서브넷 설정 누락: 서브넷 생성 시 DNS 서버 주소가 비어 있거나, VPC 전용 IP(2번째 IP)가 아닌 다른 주소로 설정한 경우
* 기본 인터페이스 우선순위: 가상머신에 네트워크 인터페이스가 여러 개일 경우, 기본 인터페이스(첫번째 인터페이스)가 속한 서브넷의 DNS 서버가 가상머신 네임서버로 적용되므로 기대한 DNS 서버와 다를 수 있는 경우
* 내부 DNS 설정에 등록된 도메인명, 레코드 타입, 값이 실제와 다른 경우

#### 점검 포인트

1. 서브넷 설정 확인: `프로젝트 > 네트워크 > 서브넷` 상세 정보에서 DNS 서버가 해당 VPC CIDR의 2번째 IP로 설정되어 있는지 확인합니다.
2. 레코드 등록 상태: `프로젝트 > 네트워크 > 내부 DNS`에서 조회하려는 도메인이 해당 VPC에 정확히 등록되어 있는지 확인합니다.
3. 게스트 OS 네임서버 확인: 실제로 참조 중인 DNS 서버 IP가 서브넷 설정과 일치하는지 확인합니다.
   * 확인 방법(예시):
     * 공통: nslookup 또는 dig 명령어를 실행하여 응답을 주는 서버(Server) IP 확인
     * Rocky: `cat /etc/resolv.conf` 명령어로 네임서버 항목 확인
     * Ubuntu (18.04+): `resolvectl status` 명령어로 설정된 DNS 서버 확인
4. 통신 경로 확인: 조회하려는 가상머신과 대상 리소스가 동일한 VPC 내에 있는지 확인합니다.

#### 조치 가이드

1. 서브넷 재생성(권장): 현재 서브넷의 DNS 서버는 편집이 불가능합니다. 정확한 내부 DNS 작동을 위해서는 새 서브넷을 생성할 때 DNS 서버 항목에 VPC 대역의 2번째 IP를 반드시 입력한 후, 인스턴스를 해당 서브넷으로 이전해야 합니다.
2. 게스트 OS 수동 설정 (임시): 서브넷 재생성이 어려운 경우, 인스턴스 내부의 네트워크 설정 파일에서 네임서버를 직접 지정하여 임시로 조치할 수 있습니다.
3. 레코드 값 재확인: `프로젝트` > `네트워크` > `내부 DNS` 메뉴에서 등록된 레코드명과 레코드 값이 일치하는지 확인하고, 필요 시 실제 정보에 맞게 수정합니다.
4. 질의 결과 검증: 설정 변경 후, 해당 VPC 내의 인스턴스 터미널에서 `dig`, `nslookup`으로 직접 조회해 결과를 검증합니다.

### Q. VPC를 생성했는데 외부 IP가 자동으로 생겼어요

#### 핵심 답변

정상 동작입니다. VPC를 생성하면 기본 네트워크 운영에 필요한 외부 IP가 자동 할당될 수 있으며, 이 주소는 프로젝트 `외부 IP` 목록에서 `사용 현황`이 `VPC`로 표시될 수 있습니다.

#### 점검 포인트

1. `프로젝트 > 네트워크 > 외부 IP`에서 사용 현황이 `VPC`인 외부 IP가 보이는지 확인합니다.
2. VPC 생성 직후 자동 생성된 기본 네트워크 리소스(네트워크 ACL, 보안그룹)와 함께 생성되었는지 확인합니다.
3. 별도 플로팅 IP, 포트 포워딩, 로드 밸런서용 외부 IP와 혼동하지 않았는지 확인합니다.

#### 조치 가이드

1. 자동 할당된 외부 IP는 수동 입력 오류가 아니라 시스템 할당 주소로 이해합니다.
2. 실제 외부 서비스 노출 목적이면 플로팅 IP, 포트 포워딩, 로드 밸런서 메뉴에서 별도 사용 목적을 구분해 검토합니다.

## 5. 스토리지·마운트

### Q. Ubuntu VM에서 NFS 마운트가 실패해요

#### 원인 요약

* NFS 클라이언트 패키지 미설치
* `/etc/fstab` 기록 후 `mount -a` 미적용
* 보안그룹(2049/tcp) 또는 네트워크 경로 문제

#### 상세 점검 포인트

1. `인스턴스 상세 > 연결된 리소스 > 파일 시스템`에서 NFS 연결 여부 확인
2. 게스트 OS `/etc/fstab`에 NFS 엔트리 존재 여부 확인
3. Ubuntu `nfs-common` 설치 여부 확인
4. `mount -a` 후 `findmnt`, `mount`, `df -hT` 확인
5. 파일 시스템 보안그룹 `2049/tcp` 허용 여부 확인
6. 인스턴스/파일 시스템 네트워크 통신 가능 여부 확인

#### 상세 조치 가이드

```bash
sudo apt-get update
sudo apt-get install -y nfs-common
grep nfs /etc/fstab
sudo mount -a
findmnt
mount | grep nfs
df -hT
```

#### 재발 방지

* Ubuntu 기본 이미지 템플릿에 `nfs-common` 포함
* NFS 운영 체크리스트에 패키지/fstab/2049 포트 점검 고정

### Q. 스토리지 도메인이 부적합 상태인데 VM 생성/실행에 어떤 영향이 있나요?

#### 영향 요약

* 이미지 기반 VM 생성 실패
* ISO 기반 설치 실패 또는 부팅 실패
* 기존 VM 실행 실패(`SCHEDULE_FAILED` 포함)
* 이미지 스토리지 도메인과 추가 블록 스토리지 도메인이 다를 때, 실행 대상 컴퓨트 노드가 둘 중 하나라도 접근하지 못하면 배치 실패
* 마이그레이션/장애 복구 시 후보 컴퓨트 노드 급감

#### 상세 점검 포인트

1. `관리자 > 스토리지 > 스토리지 도메인` 상태 확인
2. 대상 VM 참조 리소스(이미지/디스크/ISO/파일 시스템) 저장 도메인 확인
3. 이미지 저장 도메인과 추가 블록 저장 도메인이 서로 다른지 확인
4. 실행 대상 컴퓨트 노드에서 두 도메인 모두 접근 가능한지 확인
5. 도메인 유형별 준비 상태 확인
   * `NFS/GFS2`: 마운트 포인트 정상 여부
   * `CEPH`: pool 접근 권한/읽기·쓰기 가능 여부

#### 상세 조치 가이드

1. 부적합 도메인 먼저 정상화
2. 즉시 복구 어려우면 이미지/ISO를 정상 도메인으로 복제해 우회
3. 복구 후 VM 실행/생성/마이그레이션 순차 검증

### Q. 블록/파일 시스템 선택 목록에서 일부 항목이 비활성화돼 있어요

#### 원인 요약

* 특정 컴퓨트 노드에만 전속된 스토리지 도메인(예: 로컬 디스크 기반 도메인)은 그 노드에서만 접근할 수 있습니다.
* 이미 선택한 부팅 이미지·블록·파일 시스템과 서로 다른 노드에 전속된 도메인을 함께 선택하면, 그 조합을 동시에 처리할 수 있는 컴퓨트 노드가 없어 인스턴스를 실행할 수 없는 상태가 됩니다.
* 이런 조합을 생성 단계에서 미리 걸러내기 위해, 목록에서 함께 선택할 수 없는 항목을 비활성화하고 마우스를 올리면 충돌 사유(어떤 스토리지 도메인·노드와 겹치는지)를 표시합니다.

#### 상세 점검 포인트

1. 이미 선택된 이미지/블록/파일 시스템이 어느 스토리지 도메인에 속하는지 확인
2. 비활성화된 항목에 마우스를 올려 표시되는 충돌 사유 확인
3. 여러 노드에서 공용으로 접근 가능한 스토리지 도메인(예: 네트워크 기반 공유 스토리지)인지, 특정 노드 전속 도메인인지 확인

#### 상세 조치 가이드

1. 함께 사용할 블록/파일 시스템은 이미 선택한 리소스와 같은 노드에 접근 가능한 스토리지 도메인에서 고릅니다.
2. 서로 다른 노드 전속 도메인을 반드시 함께 써야 한다면, 공용으로 접근 가능한 스토리지 도메인으로 옮긴 뒤 다시 시도합니다.
3. 이 제한을 무시하고 생성을 시도하면 요청 자체가 거부됩니다 — 실행 단계까지 갔다가 실패하는 대신 생성 단계에서 바로 원인을 알 수 있습니다.

#### 재발 방지

* 프로젝트에서 여러 스토리지 도메인을 함께 쓸 때는, 인스턴스 하나에 물릴 리소스는 가능한 한 같은(또는 공용 접근 가능한) 스토리지 도메인으로 통일합니다.

## 6. 배치 정책·운영

### Q. 선호도 그룹은 무엇이고, 가상머신 배치에 어떤 영향을 주나요?

#### 핵심 개념

* VM 간 함께 배치(선호) 또는 분산 배치(반선호)
* 특정 물리 머신 선호도 또는 반선호도
* `강제` 설정 시 규칙 미충족 노드에는 배치 불가

#### 상세 점검 포인트

1. 그룹 `활성` 여부 확인
2. `가상머신 강제성`, `물리 머신 강제성` 확인
3. 대상 VM/물리 머신 목록이 실제 노드 풀과 일치하는지 확인
4. 타 선호도 그룹과 강제 규칙 충돌 여부 확인

#### 상세 운영 가이드

1. 초기에는 `비강제`로 시작해 배치 결과 관찰
2. 안정화 후 필요한 그룹만 `강제` 전환
3. 장애 대응성이 중요한 서비스는 과도한 강제 규칙 지양

### Q. 프로젝트 리소스 할당량을 전체 클러스터 리소스보다 크게 할당할 수 있나요?

#### 핵심 답변

할당량은 "사용 상한"이고 실제 배치는 실가용량/정책(오버커밋 포함)에 의해 제한됩니다. 할당량이 커도 실가용량이 부족하면 실패합니다.

#### 상세 점검 포인트

1. `관리자 > 프로젝트 관리`의 `사용량/할당량` 확인
2. `관리자 > 컴퓨트 노드`의 실가용량/오버커밋 확인
3. 실패 VM 요청 스펙이 실가용량 초과인지 확인

### Q. 컴퓨트 노드 운영 중 오버커밋 비율을 변경하면 기존 가상머신에 어떤 영향이 있나요?

#### 핵심 답변

기존 실행 VM이 즉시 강제 종료되지는 않지만, 이후 스케줄/실행/마이그레이션 판단에는 반영됩니다.

#### 영향 정리

* 비율 하향: 신규 실행/생성/마이그레이션 후보 감소 가능
* 비율 상향: 수용량 증가 가능, 과도 시 성능 저하 위험

#### 상세 점검 포인트

1. 변경 전 노드별 할당률 확인
2. 변경 후 실패율(`SCHEDULE_FAILED`, 후보 부족) 변화 관찰
3. 피크 시간대 성능 지표 점검

## 7. 프로젝트·정리

### Q. 프로젝트 삭제가 안 돼요. 무엇을 확인해야 하나요?

#### 핵심 답변

프로젝트 삭제는 **차단 자원 9종**(인스턴스, VPC, 외부 IP, 블록(디스크), 이미지, 파일 시스템, 오브젝트 스토리지, 오토스케일링 그룹, K8s 클러스터)이 프로젝트에 하나도 남아 있지 않을 때만 가능합니다. 하나라도 남아 있으면 삭제가 차단됩니다.

#### 삭제 전 체크리스트

* [ ] `관리자 > 프로젝트 관리 > 삭제 모달`에서 `삭제 불가능한 프로젝트`의 **남은 자원** 요약(예: `인스턴스 1 · 이미지 2`)을 확인했다.
* [ ] `프로젝트 > 가상머신 > 인스턴스` 리소스를 정리했다.
* [ ] `프로젝트 > 네트워크 > VPC/외부 IP` 리소스를 정리했다.
* [ ] `프로젝트 > 스토리지 > 블록/이미지/파일 시스템/오브젝트 스토리지` 리소스를 정리했다.
* [ ] `오토스케일링 그룹`, `K8s 클러스터` 리소스를 정리했다.
* [ ] 위 항목 확인 후 프로젝트 삭제를 다시 시도했다.

> 💡 시작 템플릿, SSH 키 등 위 9종에 속하지 않는 부속 자원은 미리 정리하지 않아도 됩니다. 프로젝트 삭제 시 함께 자동으로 정리됩니다.

자세한 삭제 조건과 절차는 [프로젝트 삭제](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/administrator/project/project-management/project-management.md#프로젝트-삭제)를 참고하세요.

## 8. 마이그레이션

### Q. 마이그레이션 가능한 노드가 없어요

#### 핵심 답변

대상 노드 후보가 0대라는 의미입니다. 리소스, 스토리지 접근, 정책 제약, 마이그레이션 방식(라이브/콜드) 제약을 함께 점검해야 합니다.

#### 주요 원인

* 소스 외 정상 노드 없음
* 대상 노드 `vCPU/메모리` 수용량 부족
* 스토리지/파일 시스템 접근 조건 불일치
* 선호도/보안/피닝/장치 패스스루 제약
* 라이브 마이그레이션 제약(Windows/vTPM/특정 보안·장치·피닝)
* vTPM 인스턴스는 콜드 마이그레이션을 사용

#### 상세 점검 포인트

1. `관리자 > 컴퓨트 노드`에서 소스 외 정상 노드 수 확인
2. 대상 노드 가용 리소스/오버커밋 확인
3. 대상 VM 제약 확인
   * 선호도 그룹(강제 여부)
   * 보안 유형
   * 가상 CPU 피닝
   * NPU/GPU/SR-IOV 패스스루
4. 대상 노드에서 이미지/디스크/파일 시스템 접근 가능 여부 확인
5. 라이브 실패 시 콜드 후보 존재 여부 확인

#### 상세 조치 가이드

1. 라이브 후보 없으면 콜드 가능 여부 우선 확인
2. 강제 선호도/피닝을 일시 완화해 후보 변화 확인
3. 대상 노드 리소스 확보 또는 선행 이동으로 공간 확보
4. 스토리지 접근 문제 복구 후 후보 재조회

#### 재발 방지

* N+1 여유 용량 운영
* 강제 규칙/패스스루 사용 VM 전용 노드 풀 분리
* 정기 마이그레이션 리허설로 후보 부족 구간 사전 식별

## 관련 문서

* [인스턴스](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/vm/instance/instance.md)
* [선호도 그룹](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/vm/affinity-group/affinity-group.md)
* [컴퓨트 노드](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/administrator/host-machine/compute-node/compute-node.md)
* [컴퓨트 대시보드](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/administrator/dashboard/compute-dashboard/compute-dashboard.md)
* [스토리지 도메인](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/administrator/storage/storage-domain/storage-domain.md)
* [프로젝트 관리](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/administrator/project/project-management/project-management.md)
* [VPC](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/vpc/vpc.md)
* [서브넷](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/subnet/subnet.md)
* [외부 IP](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/external-ip/external-ip.md)
* [플로팅 IP](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/floating-ip/floating-ip.md)
* [포트 포워딩](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/port-forwarding/port-forwarding.md)
* [로드 밸런서](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/load-balancer/load-balancer.md)
* [타겟 그룹](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/target-group/target-group.md)
* [Private DNS](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/network/private-dns/private-dns.md)
* [보안그룹](https://github.com/iAcloud-inc/CloudiA-manual/tree/main/docs/project/security/security-group/security-group.md)
* [인스턴스 마이그레이션하기](/cloudia-manual/user-guide/examples-and-labs/03-migrate-instance-cold-and-live.md)
* [인스턴스 스냅샷 롤백하기](/cloudia-manual/user-guide/examples-and-labs/15-rollback-instance-to-snapshot.md)
* [윈도우 가상머신 ISO 생성 및 콘솔 확인](/cloudia-manual/user-guide/examples-and-labs/04-create-windows-instance-from-iso-and-open-console.md)
* [ISO로 설치한 Windows 인스턴스를 골든 이미지로 준비하기](/cloudia-manual/user-guide/examples-and-labs/19-prepare-windows-instance-for-golden-image.md)
* [파일 시스템을 통한 인스턴스 간 공유 볼륨 구성하기](/cloudia-manual/user-guide/examples-and-labs/17-share-volumes-between-instances-with-nfs.md)
