> 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/storage/block.md).

# 블록

`블록`은 인스턴스에 연결해 사용하는 블록 스토리지를 생성하고 관리하는 화면입니다. 사용자는 블록을 생성한 뒤 인스턴스에 연결하거나, 필요 시 크기를 늘리거나 삭제할 수 있습니다.

## 화면 개요

* `목록 화면`: 블록 현황을 조회하고 생성, 편집, 삭제 작업을 시작합니다.
* `상세 화면`: 블록의 기본 정보와 연결된 인스턴스 상태를 확인하고, `스냅샷` 섹션에서 블록 스냅샷을 관리합니다.
* `생성/편집 화면`: 이름, 스토리지 도메인, 크기, 설명을 입력하거나 수정합니다.
* `스토리지 마이그레이션`: 블록을 다른 스토리지 도메인으로 이동합니다.

## 블록 목록

### 주요 작업

* `생성`: 새 블록을 추가합니다.
* `편집`: 선택한 블록의 이름, 크기, 설명을 수정합니다. 연결된 인스턴스가 실행 중인 경우에는 편집할 수 없습니다.
* `삭제`: 선택한 블록을 삭제합니다. 연결된 인스턴스가 없는 경우에만 삭제할 수 있습니다.

### 테이블 컬럼

블록 목록 화면에서는 다음 정보를 칼럼으로 표시합니다.

| 컬럼           | 설명                                                                               |
| ------------ | -------------------------------------------------------------------------------- |
| **이름**       | 블록의 이름을 나타냅니다.                                                                   |
| **ID**       | 블록의 ID를 나타냅니다.                                                                   |
| **크기**       | 블록의 디스크 크기를 나타냅니다.                                                               |
| **연결된 인스턴스** | <p>블록을 사용 중인 인스턴스의 상태를 나타냅니다.<br>(인스턴스에 관한 상세 정보는 인스턴스 사용자 가이드 > 인스턴스 상세 참고)</p> |
| **스토리지 도메인** | 블록이 사용중인 스토리지 도메인을 나타냅니다.                                                        |
| **설명**       | 블록에 대한 설명을 나타냅니다.                                                                |
| **생성 일시**    | 블록이 생성된 일시를 나타냅니다.                                                               |

***

## 블록 상세

블록 상세 화면에서는 선택한 블록의 상세 정보를 확인할 수 있습니다.

### 상단 요약

* **이름**: 블록의 이름을 나타냅니다.
* **ID**: 블록의 ID를 나타냅니다.
* **타입**: 블록의 실제 타입을 나타냅니다. (`QCOW` / `RBD` )
* **크기**: 블록의 디스크 크기를 나타냅니다.
* **스토리지 도메인**: 블록이 사용중인 스토리지 도메인을 나타냅니다.
* **연결된 인스턴스**: 블록을 사용 중인 인스턴스의 이름, ID, 상태를 나타냅니다.
* **설명**: 블록에 대한 설명을 나타냅니다.
* **생성 일시**: 블록이 생성된 일시를 나타냅니다.
* **수정 일시**: 블록의 정보가 수정된 일시를 나타냅니다.

***

## 블록 생성 및 편집

블록 생성 화면에서는 새로운 블록을 생성할 수 있으며, 편집 화면에서는 기존 블록의 일부 정보를 수정할 수 있습니다.\
블록 생성 시 선택 가능한 `스토리지 도메인`이 사전에 준비되어야 합니다.

### 기본 정보

* **이름**: 블록의 이름을 입력합니다.
* **스토리지 도메인**: 블록이 사용할 스토리지 도메인을 선택합니다.
* **크기**: 블록의 디스크 크기를 입력합니다. 크기 단위는 GB, MB입니다.
* **설명**: 블록에 대한 설명을 입력합니다.

### 입력 필드 유효성

| 필드           | 허용 값                      | 검증 규칙                       | 비고                  |
| ------------ | ------------------------- | --------------------------- | ------------------- |
| **이름**       | 영문, 숫자, `-`, `_` 조합의 문자열  | 필수입니다. 80자 이내로 입력합니다.       | 블록 식별용 이름입니다.       |
| **스토리지 도메인** | 현재 프로젝트에서 선택 가능한 스토리지 도메인 | 필수입니다. 생성 시 1개를 선택합니다.      | 편집 시 변경할 수 없습니다.    |
| **크기**       | 0 이상의 숫자 + 단위             | 필수입니다. 단위와 함께 입력합니다.        | 편집 시 축소는 지원하지 않습니다. |
| **설명**       | 최대 200자 문자열               | 선택 입력입니다. 200자를 초과할 수 없습니다. | 운영 메모용입니다.          |

### 편집 시 주의사항

* 연결된 인스턴스가 없거나 `종료됨` 상태인 경우에만 편집할 수 있습니다.
* 편집 화면에서는 이름, 크기, 설명만 수정할 수 있습니다.
* 블록 크기는 기존 값 이상으로만 수정할 수 있습니다.

***

## 블록 삭제

* 삭제는 한 번에 1개만 수행합니다.
* 연결된 인스턴스가 없는 블록만 삭제할 수 있습니다.
* 삭제 전에 인스턴스와의 연결 상태를 먼저 확인해야 합니다.

***

## 블록 스냅샷

블록 상세 화면 하단의 `스냅샷` 섹션에서 해당 블록의 스냅샷을 생성·롤백·삭제할 수 있습니다.

> 스냅샷 조회 권한이 없는 역할에서는 이 섹션이 표시되지 않습니다. 생성·롤백에는 스냅샷 편집 권한, 삭제에는 스냅샷 삭제 권한이 필요합니다.

### 주요 작업

* `생성`: 현재 블록의 스냅샷을 1개 생성합니다.
* `롤백`: 선택한 스냅샷 시점으로 블록을 되돌립니다.
* `삭제`: 선택한 스냅샷을 삭제합니다.

### 테이블 컬럼

| 컬럼          | 설명                                                      |
| ----------- | ------------------------------------------------------- |
| **이름**      | 스냅샷 이름입니다.                                              |
| **ID**      | 스냅샷 고유 ID입니다.                                           |
| **생성 유형**   | 스냅샷을 만든 주체입니다. `인스턴스`(VM 스냅샷에서 파생) 또는 `블록`(블록에서 직접 생성). |
| **연결된 리소스** | 스냅샷과 연결된 원본 리소스(인스턴스/블록)입니다.                            |
| **크기**      | 스냅샷 크기입니다.                                              |
| **타입**      | 원본 디스크 포맷 형식입니다. (`QCOW` / `RBD`)                       |
| **생성 일시**   | 스냅샷 생성 시각입니다.                                           |

### 생성·롤백 가능 조건 (중요)

* 블록이 인스턴스에 **연결되어 있으면**, 그 인스턴스가 **`종료됨` 상태일 때만** 스냅샷 생성·롤백이 가능합니다(정합성 보장을 위해 정지 상태에서 수행). 실행 중인 인스턴스에 연결된 블록은 인스턴스를 먼저 종료해야 합니다.
* 인스턴스에 **연결되지 않은 독립 블록**은 상태와 무관하게 생성·롤백할 수 있습니다.
* 스냅샷 생성·롤백 요청 후 처리가 진행되는 동안에는 관련 버튼이 일시적으로 비활성화됩니다.

### VM 파생 스냅샷 제약

* **인스턴스(VM) 스냅샷에서 파생된** 블록 스냅샷은 이 화면에서 **삭제·롤백이 비활성**됩니다. 해당 스냅샷은 소유 인스턴스의 스냅샷 화면(`인스턴스 구성 요소 > 스냅샷`)에서 관리합니다. `생성 유형` 컬럼으로 구분할 수 있습니다.

***

## 블록 스토리지 마이그레이션

블록을 **다른 스토리지 도메인**으로 이동합니다. 스토리지 도메인 정리·재배치나 유형 전환(예: 파일 → Ceph) 시 사용합니다.

연결된 인스턴스 상태에 따라 두 가지 방식으로 수행됩니다.

| 인스턴스 상태          | 방식         | 설명                                |
| ---------------- | ---------- | --------------------------------- |
| 미연결 / `종료됨`      | 콜드 마이그레이션  | 인스턴스를 정지한(또는 미연결) 상태에서 블록을 이동합니다. |
| `실행 중` / `일시 중지` | 라이브 마이그레이션 | 인스턴스 중단을 최소화(무중단)하며 블록을 이동합니다.    |

### 수행 절차

1. 블록 목록 또는 상세 화면에서 블록을 선택합니다.
2. `스토리지 마이그레이션`을 클릭합니다.
3. 대상 `스토리지 도메인`을 선택합니다. (현재 사용 중인 도메인, 사용 불가(비UP) 도메인은 선택할 수 없습니다.)
4. `실행`을 클릭해 마이그레이션을 시작합니다. 요청은 비동기로 처리됩니다.

> 중요
>
> 스냅샷이 있는 블록은 **라이브 스토리지 마이그레이션을 수행할 수 없습니다.** 스냅샷을 삭제하거나 연결 인스턴스를 종료한 뒤 콜드 마이그레이션으로 수행합니다. 콜드 마이그레이션에서도 스냅샷이 있는 블록은 **유형이 다른 스토리지 도메인으로는 이동할 수 없습니다.**
