2.4. 고급 볼륨 구성
다음 절차에서는 고급 볼륨 관리 절차를 수행하는 방법을 설명합니다.
2.4.1. 볼륨 백업 및 복원 링크 복사링크가 클립보드에 복사되었습니다!
볼륨 백업은 볼륨 콘텐츠의 영구 사본입니다. 볼륨 백업은 일반적으로 오브젝트 저장소로 생성되며 기본적으로 Object Storage 서비스를 통해 관리됩니다. 그러나 백업에 대해 다른 리포지토리를 설정할 수 있습니다. OpenStack은 백업의 대체 백엔드로 Red Hat Ceph 및 NFS를 지원합니다.
볼륨 백업을 생성할 때 백업의 모든 메타데이터는 블록 스토리지 서비스의 데이터베이스에 저장됩니다. cinder
유틸리티는 백업에서 볼륨을 복원할 때 이 메타데이터를 사용합니다. 따라서 치명적인 데이터베이스 손실에서 복구할 때 백업에서 볼륨을 복원하기 전에 Block Storage 서비스의 데이터베이스를 먼저 복원해야 합니다. 또한 블록 스토리지 서비스 데이터베이스가 그대로 모든 원본 볼륨 백업 메타데이터로 복원되고 있다고 가정합니다.
치명적인 데이터베이스 손실 후에도 유지되도록 볼륨 백업 서브 세트만 구성하려면 백업의 메타데이터를 내보낼 수도 있습니다. 그런 다음 나중에 블록 스토리지 데이터베이스로 메타데이터를 다시 가져오고 볼륨 백업을 정상적으로 복원할 수 있습니다.
볼륨 백업은 스냅샷과 다릅니다. 백업은 볼륨에 포함된 데이터를 보존하는 반면 스냅샷은 특정 시점에서 볼륨 상태를 유지합니다. 또한 기존 스냅샷이 있는 경우 볼륨을 삭제할 수 없습니다. 볼륨 백업은 데이터 손실을 방지하는 데 사용되지만 스냅샷은 쉽게 복제하는 데 사용됩니다.
이러한 이유로 스냅샷 백엔드는 복제 중 대기 시간을 최소화하기 위해 일반적으로 볼륨 백엔드와 함께 배치됩니다. 반면 백업 리포지토리는 일반적으로 일반적인 엔터프라이즈 배포에서 다른 위치(예: 다른 노드, 물리적 스토리지 또는 지리적 위치)에 있습니다. 이는 볼륨 백엔드에 발생할 수 있는 손상으로부터 백업 리포지토리를 보호하기 위한 것입니다.
볼륨 스냅샷에 대한 자세한 내용은 2.3.8절. “볼륨 스냅샷 생성, 사용 또는 삭제” 을 참조하십시오.
2.4.1.1. 전체 볼륨 백업 생성 링크 복사링크가 클립보드에 복사되었습니다!
볼륨을 백업하려면 cinder backup-create
명령을 사용합니다. 기본적으로 이 명령은 볼륨의 전체 백업을 생성합니다. 볼륨에 기존 백업이 있는 경우 대신 증분 백업을 생성하도록 선택할 수 있습니다(자세한 내용은 2.4.1.2절. “증분 볼륨 백업 생성” 참조).
액세스할 수 있는 볼륨 백업을 생성할 수 있습니다. 즉, 관리자 권한이 있는 사용자는 소유자와 관계없이 모든 볼륨을 백업할 수 있습니다. 자세한 내용은 2.4.1.1.1절. “관리자로 볼륨 백업 생성”의 내용을 참조하십시오.
백업할 볼륨의
ID
또는 표시cinder list
# cinder list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨을 백업합니다.
cinder backup-create VOLUME
# cinder backup-create VOLUME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VOLUME 을 백업하려는 볼륨의
ID
또는Display Name
으로 바꿉니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고결과 백업의
volume_id
는 소스 볼륨의ID
와 동일합니다.볼륨 백업 생성이 완료되었는지 확인합니다.
cinder backup-list
# cinder backup-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 백업 항목의
Status
를사용할 수
있으면 볼륨 백업 생성이 완료됩니다.
이 시점에서 볼륨 백업의 메타데이터를 내보내고 저장할 수도 있습니다. 이를 통해 Block Storage 데이터베이스에 심각한 손실이 발생하더라도 볼륨 백업을 복원할 수 있습니다. 이렇게 하려면 다음을 실행합니다.
cinder --os-volume-api-version 2 backup-export BACKUPID
# cinder --os-volume-api-version 2 backup-export BACKUPID
여기서 CryostatID 는 볼륨 백업의 ID 또는 이름입니다. 예를 들면 다음과 같습니다.
볼륨 백업 메타데이터는 backup_service
및 backup_url
값으로 구성됩니다.
2.4.1.1.1. 관리자로 볼륨 백업 생성 링크 복사링크가 클립보드에 복사되었습니다!
관리 권한(예: 기본 관리자
계정)이 있는 사용자는 OpenStack에서 관리하는 모든 볼륨을 백업할 수 있습니다. 관리자가 관리자가 아닌 사용자가 소유한 볼륨을 백업하면 기본적으로 볼륨 소유자에서 백업이 숨겨집니다.
관리자는 여전히 볼륨을 백업 하고 특정 테넌트에서 백업을 사용할 수 있도록 할 수 있습니다. 이렇게 하려면 다음을 실행합니다.
cinder --os-auth-url KEYSTONEURL --os-tenant-name TENANTNAME --os-username USERNAME --os-password PASSWD backup-create VOLUME
# cinder --os-auth-url KEYSTONEURL --os-tenant-name TENANTNAME --os-username USERNAME --os-password PASSWD backup-create VOLUME
다음과 같습니다.
- TENANTNAME 은 백업을 사용할 수 있도록 테넌트의 이름입니다.
- USERNAME 및 PASSWD 는 TENANTNAME 내에 있는 사용자의 사용자 이름/암호 자격 증명입니다.
- VOLUME 은 백업하려는 볼륨의 이름 또는 ID입니다.
- KEYSTONEURL 은 ID 서비스의 URL 끝점입니다(일반적으로 http://IP:5000/v2, 여기서 IP 는 ID 서비스 호스트의 IP 주소입니다).
이 작업을 수행할 때 결과 백업의 크기는 관리자 테넌트 대신 TENANTNAME 의 할당량에 따라 계산됩니다.
2.4.1.2. 증분 볼륨 백업 생성 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 cinder backup-create
명령은 볼륨의 전체 백업을 만듭니다. 그러나 볼륨에 기존 백업이 있는 경우 증분 백업을 생성하도록 선택할 수 있습니다.
증분 백업은 마지막 백업 이후의 볼륨 변경(전체 또는 증분)을 캡처합니다. 시간이 지남에 따라 볼륨의 크기가 증가함에 따라 볼륨의 크기가 많이 증가함에 따라 볼륨의 전체 백업을 수행해도 리소스가 많이 소요될 수 있습니다. 이와 관련하여 증분 백업을 사용하면 리소스 사용량을 최소화하면서 볼륨에 대한 정기적인 변경 사항을 캡처할 수 있습니다.
증분 볼륨 백업을 만들려면 --incremental
옵션을 사용합니다. 에서와 같이 :
cinder backup-create VOLUME --incremental
# cinder backup-create VOLUME --incremental
VOLUME 을 백업하려는 볼륨의 ID
또는 Display Name
으로 바꿉니다. 증분 백업은 NFS 및 오브젝트 스토리지 백업 리포지토리에서 완전하게 지원됩니다.
이미 증분 백업이 있는 경우 전체 백업을 삭제할 수 없습니다. 또한 전체 백업에 증분 백업이 여러 개 있는 경우 최신 백업만 삭제할 수 있습니다.In addition, if a full backup has multiple incremental backups, you can only delete the latest one.
Red Hat Ceph Storage를 Block Storage(cinder) 볼륨 및 백업 모두에 대한 백엔드로 사용하는 경우 증분 백업을 수행하면 경고 없이 전체 백업이 수행됩니다. 알려진 문제입니다 (BZ#1463061).
2.4.1.3. 블록 스토리지 데이터베이스 손실 후 볼륨 복원 링크 복사링크가 클립보드에 복사되었습니다!
일반적으로 블록 스토리지 데이터베이스를 손실하면 볼륨 백업을 복원할 수 없습니다. 이는 Block Storage 데이터베이스에 볼륨 백업 서비스(openstack-cinder-backup)에 필요한 메타데이터가 포함되어 있기 때문입니다. 이 메타데이터는 볼륨 백업을 생성한 후 내보낼 수 있는 backup_service
및 backup_url
값으로 구성됩니다( 2.4.1.1절. “전체 볼륨 백업 생성”에 표시됨).
이 메타데이터를 내보내고 저장한 경우 새 블록 스토리지 데이터베이스로 가져올 수 있습니다( 볼륨 백업을 복원할 수 있음).
관리 권한이 있는 사용자로 다음을 실행합니다.
cinder --os-volume-api-version 2 backup-import backup_service backup_url
# cinder --os-volume-api-version 2 backup-import backup_service backup_url
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서 backup_service 및 backup_url 은 내보낸 메타데이터에서 가져온 것입니다. 예를 들어 2.4.1.1절. “전체 볼륨 백업 생성” 의 내보낸 메타데이터를 사용합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 메타데이터를 블록 스토리지 서비스 데이터베이스로 가져온 후 볼륨을 정상적으로 복원할 수 있습니다( 2.4.1.4절. “백업에서 볼륨 복원”참조).
2.4.1.4. 백업에서 볼륨 복원 링크 복사링크가 클립보드에 복사되었습니다!
사용하려는 볼륨 백업의
ID
를 찾습니다.cinder backup-list
# cinder backup-list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 볼륨 ID
는 복원하려는 볼륨의 ID와 일치해야 합니다.볼륨 백업을 복원합니다.
cinder backup-restore BACKUP_ID
# cinder backup-restore BACKUP_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 여기서 Cryostat_ ID는 사용하려는 볼륨 백업의 ID입니다.
더 이상 백업이 필요하지 않은 경우 삭제합니다.
cinder backup-delete BACKUP_ID
# cinder backup-delete BACKUP_ID
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.2. 볼륨 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
블록 스토리지 서비스를 사용하면 호스트 또는 백엔드 간에 볼륨을 마이그레이션할 수 있습니다. 현재 사용 중인 볼륨(인스턴스에 연결)을 마이그레이션할 수 있지만 스냅샷이 있는 볼륨은 마이그레이션할 수 없습니다.
호스트 간에 볼륨을 마이그레이션하는 경우 두 호스트 모두 동일한 백엔드에 있어야 합니다. 이렇게 하려면 다음을 수행합니다.
- 대시보드에서 Admin > Volumes 를 선택합니다.
- 마이그레이션할 볼륨의 Actions 열에서 Migrate Volume 을 선택합니다.
볼륨 마이그레이션 대화 상자의 대상 호스트 드롭다운 목록에서 대상 호스트 를 선택합니다.
참고호스트 마이그레이션에 대한 드라이버 최적화를 바이패스하려면 Force Host Copy 확인란을 선택합니다.
- 마이그레이션을 클릭하여 마이그레이션을 시작합니다.
2.4.2.1. 백엔드 간 마이그레이션 링크 복사링크가 클립보드에 복사되었습니다!
반면 백엔드 간에 볼륨을 마이그레이션하는 경우 볼륨 재연결이 필요합니다. 즉, 새 백엔드로 마이그레이션하려면 다음을 수행합니다.
- 새 백엔드를 별도의 대상 볼륨 유형에서 Extra Spec 로 지정해야 합니다.
- 대상 볼륨 유형에 정의된 기타 모든 추가 사양은 볼륨의 원래 볼륨 유형과 호환되어야 합니다.
자세한 내용은 ] 및 xref:section-specify-backend[ 를 참조하십시오.
백엔드를 Extra Spec로 정의할 때 volume_backend_name 을 Key 로 사용합니다. 해당 값은 블록 스토리지 구성 파일(/etc/cinder/cinder.conf)에 정의된 대로 백엔드의 이름이 됩니다. 이 파일에서 각 백엔드는 자체 섹션에 정의되어 있으며 해당 이름은 volume_backend_name 매개 변수에 설정됩니다.
대상 볼륨 유형에 백엔드가 정의되면 다시 타이핑 을 통해 볼륨을 해당 백엔드로 마이그레이션할 수 있습니다. 여기에는 대상 볼륨 유형을 볼륨에 다시 적용하여 새 백엔드 설정을 적용해야 합니다. 자세한 내용은 2.3.10절. “볼륨 유형 변경 (Volume Retyping)” 을 참조하십시오.
이렇게 하려면 다음을 수행합니다.
- 대시보드에서 Project > Compute > Volumes를 선택합니다.
- 마이그레이션할 볼륨의 Actions 열에서 Change Volume Type 을 선택합니다.
- 볼륨 유형 변경 대화 상자에서 유형 드롭다운 목록에서 새 백엔드를 정의하는 대상 볼륨 유형을 선택합니다.
- 마이그레이션 정책 드롭다운 목록에서 온 디맨드 를 선택합니다.
- 볼륨 유형 변경을 클릭하여 마이그레이션을 시작합니다.