볼륨 (Volumes) API

태그: volumes, volume-backups, volume-snapshots
기본 경로: /api/volumes, /api/volumes/backups, /api/volume-snapshots

Cinder 블록 스토리지 볼륨, 백업, 스냅샷을 관리합니다.


인증 헤더

헤더 설명
X-Auth-Token Keystone 인증 토큰
X-Project-Id OpenStack 프로젝트 UUID

목차

  1. 볼륨
  2. 볼륨 백업
  3. 볼륨 스냅샷
  4. 볼륨 강제 삭제
  5. 볼륨 이전 (Transfer)
  6. 자동 백업

1. 볼륨

태그: volumes
기본 경로: /api/volumes

엔드포인트 목록

메서드 경로 설명
GET /api/volumes 볼륨 목록 (15초 캐시)
GET /api/volumes/{volume_id} 볼륨 상세 정보
POST /api/volumes 볼륨 생성
DELETE /api/volumes/{volume_id} 볼륨 삭제
POST /api/volumes/{volume_id}/force-delete error/error_deleting 상태 볼륨 강제 삭제

GET /api/volumes

프로젝트의 Cinder 볼륨 목록을 반환합니다. 응답은 15초간 캐시됩니다.

응답 (200 OK)VolumeInfo[] 배열

[
  {
    "id": "uuid-string",
    "name": "volume-name",
    "status": "in-use",
    "size": 50,
    "volume_type": "ceph",
    "attachments": [
      {
        "server_id": "uuid-string",
        "device": "/dev/vdb"
      }
    ],
    "created_at": "2024-01-01T00:00:00Z"
  }
]
필드 타입 설명
id string 볼륨 UUID
name string 볼륨 이름
status string 상태 (available, in-use, error 등)
size integer 크기 (GB)
volume_type string 볼륨 타입
attachments array 연결 정보
created_at string 생성 일시 (ISO 8601)

GET /api/volumes/{volume_id}

특정 볼륨의 상세 정보를 반환합니다.

파라미터 위치 타입 필수 설명
volume_id path string 볼륨 UUID

POST /api/volumes

새 Cinder 볼륨을 생성합니다.

요청 본문

{
  "name": "string (필수)",
  "size_gb": 50,
  "availability_zone": "string (선택)"
}
필드 타입 필수 설명
name string 볼륨 이름
size_gb integer 크기 (GB)
availability_zone string 아니오 가용 영역

응답 (201 Created)VolumeInfo 객체

DELETE /api/volumes/{volume_id}

볼륨을 삭제합니다. in-use 상태의 볼륨은 삭제할 수 없습니다.

파라미터 위치 타입 필수 설명
volume_id path string 볼륨 UUID

응답: 204 No Content


2. 볼륨 백업

태그: volume-backups
기본 경로: /api/volumes/backups

엔드포인트 목록

메서드 경로 설명
GET /api/volumes/backups 볼륨 백업 목록
GET /api/volumes/backups/{backup_id} 백업 상세 정보
POST /api/volumes/backups 백업 생성
DELETE /api/volumes/backups/{backup_id} 백업 삭제
POST /api/volumes/backups/{backup_id}/restore 백업 복원

GET /api/volumes/backups

프로젝트의 Cinder 볼륨 백업 목록을 반환합니다.

응답 (200 OK) — 배열

[
  {
    "id": "uuid-string",
    "name": "backup-name",
    "status": "available",
    "size": 50,
    "volume_id": "uuid-string",
    "created_at": "2024-01-01T00:00:00Z"
  }
]
필드 타입 설명
id string 백업 UUID
name string 백업 이름
status string 상태 (available, creating, restoring, error 등)
size integer 크기 (GB)
volume_id string 원본 볼륨 UUID
created_at string 생성 일시 (ISO 8601)

GET /api/volumes/backups/{backup_id}

특정 백업의 상세 정보를 반환합니다.

POST /api/volumes/backups

새 볼륨 백업을 생성합니다.

요청 본문

{
  "name": "string (필수)",
  "volume_id": "uuid-string (필수)",
  "description": "string (선택)",
  "force": false
}
필드 타입 필수 설명
name string 백업 이름
volume_id string 백업할 볼륨 UUID
description string 아니오 설명
force boolean 아니오 in-use 상태의 볼륨도 강제 백업 (기본값: false)

응답 (201 Created)

{
  "id": "uuid-string",
  "name": "backup-name",
  "status": "creating",
  "volume_id": "uuid-string"
}

POST /api/volumes/backups/{backup_id}/restore

백업을 새 볼륨으로 복원합니다.

요청 본문

{
  "name": "string (선택)",
  "volume_id": "uuid-string (선택, 기존 볼륨에 덮어쓸 경우)"
}
필드 타입 필수 설명
name string 아니오 복원될 새 볼륨 이름
volume_id string 아니오 기존 볼륨에 덮어쓸 경우 해당 볼륨 UUID

응답 (200 OK)

{
  "restore": {
    "backup_id": "uuid-string",
    "volume_id": "uuid-string",
    "volume_name": "restored-volume"
  }
}

DELETE /api/volumes/backups/{backup_id}

백업을 삭제합니다.

파라미터 위치 타입 필수 설명
backup_id path string 백업 UUID

응답: 204 No Content


3. 볼륨 스냅샷

태그: volume-snapshots
기본 경로: /api/volume-snapshots

엔드포인트 목록

메서드 경로 설명
GET /api/volume-snapshots 스냅샷 목록
GET /api/volume-snapshots/{snapshot_id} 스냅샷 상세 정보
POST /api/volume-snapshots 스냅샷 생성
DELETE /api/volume-snapshots/{snapshot_id} 스냅샷 삭제

GET /api/volume-snapshots

프로젝트의 Cinder 볼륨 스냅샷 목록을 반환합니다.

응답 (200 OK) — 배열

[
  {
    "id": "uuid-string",
    "name": "snapshot-name",
    "status": "available",
    "size": 50,
    "volume_id": "uuid-string",
    "created_at": "2024-01-01T00:00:00Z"
  }
]
필드 타입 설명
id string 스냅샷 UUID
name string 스냅샷 이름
status string 상태 (available, creating, error 등)
size integer 크기 (GB)
volume_id string 원본 볼륨 UUID
created_at string 생성 일시 (ISO 8601)

GET /api/volume-snapshots/{snapshot_id}

특정 스냅샷의 상세 정보를 반환합니다.

POST /api/volume-snapshots

새 볼륨 스냅샷을 생성합니다.

요청 본문

{
  "name": "string (필수)",
  "volume_id": "uuid-string (필수)",
  "description": "string (선택)",
  "force": false
}
필드 타입 필수 설명
name string 스냅샷 이름
volume_id string 스냅샷을 생성할 볼륨 UUID
description string 아니오 설명
force boolean 아니오 in-use 상태의 볼륨도 강제 스냅샷 (기본값: false)

응답 (201 Created)

DELETE /api/volume-snapshots/{snapshot_id}

스냅샷을 삭제합니다.

파라미터 위치 타입 필수 설명
snapshot_id path string 스냅샷 UUID

응답: 204 No Content


4. 볼륨 강제 삭제

메서드 경로 설명
POST /api/volumes/{volume_id}/force-delete error/error_deleting 상태 볼륨 강제 삭제

POST /api/volumes/{volume_id}/force-delete

error 또는 error_deleting 상태의 볼륨을 강제 삭제합니다. Cinder의 os-reset-status로 상태를 available로 변경한 후 삭제합니다.

파라미터 위치 타입 필수 설명
volume_id path string 볼륨 UUID

응답: 204 No Content


5. 볼륨 이전 (Transfer)

볼륨의 소유권을 다른 프로젝트로 이전할 수 있습니다.

엔드포인트 목록

메서드 경로 설명
GET /api/volumes/transfers 이전 목록
POST /api/volumes/{volume_id}/transfer 이전 생성
POST /api/volumes/transfer/{transfer_id}/accept 이전 수락
DELETE /api/volumes/transfer/{transfer_id} 이전 취소

GET /api/volumes/transfers

현재 프로젝트의 볼륨 이전 목록을 반환합니다.

응답 (200 OK) — 배열

POST /api/volumes/{volume_id}/transfer

볼륨의 소유권을 다른 프로젝트로 이전하기 위한 이전 요청을 생성합니다. 생성 시 auth_key가 반환되며, 수락 측에서 이 키가 필요합니다.

파라미터 위치 타입 필수 설명
volume_id path string 이전할 볼륨 UUID

요청 본문

{
  "name": "string (선택) — 이전 이름"
}

응답 (201 Created)

{
  "id": "transfer-uuid",
  "name": "transfer-name",
  "volume_id": "volume-uuid",
  "auth_key": "auth-key-string"
}

⚠️ auth_key는 생성 시에만 반환됩니다. 안전하게 보관하세요.

POST /api/volumes/transfer/{transfer_id}/accept

이전 요청을 수락하여 볼륨 소유권을 현재 프로젝트로 이전합니다.

파라미터 위치 타입 필수 설명
transfer_id path string 이전 UUID

요청 본문

{
  "auth_key": "string (필수) — 이전 생성 시 발급된 인증 키"
}

응답 (200 OK)

{
  "id": "transfer-uuid",
  "volume_id": "volume-uuid"
}

DELETE /api/volumes/transfer/{transfer_id}

이전 요청을 취소합니다. 이미 수락된 이전은 취소할 수 없습니다.

파라미터 위치 타입 필수 설명
transfer_id path string 이전 UUID

응답: 204 No Content


6. 자동 백업

볼륨의 정기 자동 백업을 설정하고 관리합니다.

엔드포인트 목록

메서드 경로 설명
POST /api/volumes/backups/auto-backup/configs 자동 백업 설정 목록
GET /api/volumes/backups/auto-backup/{volume_id} 볼륨 자동 백업 설정 조회
POST /api/volumes/backups/auto-backup/{volume_id} 자동 백업 활성화
DELETE /api/volumes/backups/auto-backup/{volume_id} 자동 백업 비활성화

POST /api/volumes/backups/auto-backup/configs

모든 자동 백업 설정 목록을 반환합니다.

응답 (200 OK) — 배열

GET /api/volumes/backups/auto-backup/{volume_id}

지정된 볼륨의 자동 백업 설정을 조회합니다.

파라미터 위치 타입 필수 설명
volume_id path string 볼륨 UUID

응답 (200 OK) — 자동 백업 설정 객체 (없으면 404)

POST /api/volumes/backups/auto-backup/{volume_id}

지정된 볼륨에 자동 백업을 활성화합니다.

파라미터 위치 타입 필수 설명
volume_id path string 볼륨 UUID

요청 본문

{
  "schedule": "0 2 * * *",
  "retention": 5,
  "prefix": "string (선택) — 백업 이름 접두어"
}
필드 타입 필수 설명
schedule string 백업 스케줄 (cron 표현식)
retention integer 아니오 보관할 백업 수 (기본값: 5)
prefix string 아니오 백업 이름 접두어

응답: 201 Created

DELETE /api/volumes/backups/auto-backup/{volume_id}

지정된 볼륨의 자동 백업을 비활성화합니다.

파라미터 위치 타입 필수 설명
volume_id path string 볼륨 UUID

응답: 204 No Content


Afterglow — OpenStack Dashboard. MIT License.

This site uses Just the Docs, a documentation theme for Jekyll.