2.4. 고급 볼륨 구성
다음 절차에서는 고급 볼륨 관리 절차를 수행하는 방법을 설명합니다.
블록 스토리지 서비스(cinder) 및 파이버 채널(FC) 백엔드를 사용하는 배포에 모든 컨트롤러 노드 및 컴퓨팅 노드에 HBA(호스트 버스 어댑터)를 설치해야 합니다.
2.4.1. 볼륨 마이그레이션
블록 스토리지 서비스(cinder)를 사용하면 AZ(가용 영역) 내에서 백엔드 간에 볼륨을 마이그레이션할 수 있습니다. 이는 볼륨을 백엔드에서 다른 백엔드로 이동하는 가장 일반적인 방법입니다. 기본 정책을 사용하면 관리자만 볼륨을 마이그레이션할 수 있습니다. 기본 정책을 변경하지 마십시오.
고도의 사용자 지정 배포 또는 스토리지 시스템을 폐기해야 하는 상황에서 관리자는 볼륨을 마이그레이션할 수 있습니다. 두 사용 사례 모두 여러 스토리지 시스템이 동일한 volume_backend_name
을 공유하거나 정의되지 않은 경우입니다.
제한 사항
- 볼륨은 복제할 수 없습니다.
- 대상 백엔드는 볼륨의 현재 백엔드와 다를 수 있습니다.
기존 볼륨 유형이 새 백엔드에 유효해야 합니다. 즉, 다음 사항이 true여야 합니다.
-
볼륨 유형에는 추가 사양에
backend_volume_name
이 정의되어 있지 않아야 합니다. 그렇지 않으면 동일한backend_volume_name
으로 두 블록 스토리지 백엔드를 구성해야 합니다. - 두 백엔드 모두 씬 프로비저닝 지원, 씩 프로비저닝 지원 또는 기타 기능 구성과 같이 볼륨 유형으로 구성된 동일한 기능을 지원해야 합니다.
-
볼륨 유형에는 추가 사양에
볼륨을 한 백엔드에서 다른 백엔드로 이동하려면 광범위한 시간과 리소스가 필요할 수 있습니다. 자세한 내용은 2.3.13절. “백엔드 간 볼륨 이동”의 내용을 참조하십시오.
2.4.1.1. 백엔드 간 마이그레이션
대시보드 UI를 사용하여 백엔드 간에 볼륨을 마이그레이션합니다.
절차
- 대시보드에서 Admin > Volumes 를 선택합니다.
- 마이그레이션할 볼륨의 Actions(작업) 열에서 Migrate Volume (볼륨 마이그레이션)을 선택합니다.
Migrate Volume(볼륨 마이그레이션 ) 대화 상자의 Destination Host(대상 호스트) 드롭다운 목록에서 대상 호스트를 선택합니다.
참고호스트 마이그레이션에 대한 드라이버 최적화를 바이패스하려면 Force Host Copy (강제 호스트 복사) 확인란을 선택합니다.
- 마이그레이션을 클릭하여 마이그레이션을 시작합니다.
2.4.1.2. 명령줄에서 백엔드 간 마이그레이션
- 성공적인 언더클라우드 설치 자세한 내용은 언더클라우드에 director 설치를 참조하십시오.
절차
다음 명령을 입력하여 대상 백엔드의 이름을 검색합니다.
$ cinder get-pools --detail Property | Value ... | name | localdomain@lvmdriver-1#lvmdriver-1 | pool_name | lvmdriver-1 ... | volume_backend_name | lvmdriver-1 ... Property | Value ... | | name | localdomain@lvmdriver-2#lvmdriver-1 | pool_name | lvmdriver-1 ... | volume_backend_name | lvmdriver-1 ...
백엔드 이름은
host@volume_backend_name#pool
형식을 사용합니다.예제 출력에서는 블록 스토리지 서비스에 표시되는 두 개의 LVM 백엔드, 즉
localdomain@lvmdriver-1#lvmdriver-1
및localdomain@lvmdriver-2#lvmdriver-1
이 있습니다. 두 백엔드 모두 동일한volume_backend_name
,lvmdriver-1
을 공유합니다.참고LVM의 사용은 예를 들면 다음과 같습니다. LVM은 프로덕션 환경에서 지원되지 않습니다.
다음 명령을 입력하여 한 백엔드에서 다른 백엔드로 볼륨을 마이그레이션합니다.
$ cinder migrate <volume id or name> <new host>
2.4.1.3. 볼륨 마이그레이션 확인
볼륨을 생성할 때 migration_status
값은 None
과 동일합니다. 마이그레이션을 시작하면 상태가 마이그레이션
으로 변경됩니다. 마이그레이션이 완료되면 상태가 성공
또는 오류로
변경됩니다.
블록 스토리지 서비스에서 마이그레이션 요청을 수락한 후 cinder 클라이언트는 Request to migrate volume <volume id>와 같은 메시지로 응답합니다.
그러나 마이그레이션을 완료하는 데 시간이 걸립니다. 관리자는 마이그레이션 상태를 확인할 수 있습니다.
절차
다음 명령을 입력하고
migration_status
필드를 검토합니다.$ cinder show <volume id>
참고일반 볼륨 마이그레이션을 시작하면 볼륨 이름이 중복됩니다. 볼륨 이름으로
cinder show
명령을 입력하면 cinder 클라이언트에서오류와 유사한 오류를 반환합니다. '<volume name>'
에 대해 여러 볼륨 일치 항목이 발견되었습니다. 이 오류를 방지하려면 볼륨 ID를 대신 사용합니다.
마이그레이션이 완료되면 호스트
필드가 cinder migrate
명령의 <new host>
값과 일치합니다.
2.4.2. 암호화되지 않은 볼륨 암호화
암호화되지 않은 볼륨을 암호화하려면 암호화되지 않은 볼륨을 백업한 다음 새 암호화된 볼륨으로 복원하거나 암호화되지 않은 볼륨에서 Image 서비스(glance) 이미지를 만든 다음 이미지에서 새 볼륨을 생성해야 합니다.
사전 요구 사항
- 암호화하려는 암호화되지 않은 볼륨입니다.
절차
cinder-backup
서비스를 사용할 수 있는 경우 현재 암호화되지 않은 볼륨을 백업합니다.$ cinder backup-create <unencrypted_volume>
-
<unencrypted_volume>
을 암호화되지 않은 볼륨의 이름 또는 ID로 바꿉니다.
-
새로 암호화된 볼륨을 만듭니다.
$ cinder create <encrypted_volume_size> --volume-type <encrypted_volume_type>
-
<encrypted_volume_size>
를 GB의 새 볼륨 크기로 바꿉니다. 암호화 메타데이터를 수용하려면 암호화되지 않은 볼륨의 크기보다 1GB보다 커야 합니다. -
<encrypted_volume_type>
을 필요한 암호화 유형으로 바꿉니다.
-
암호화되지 않은 볼륨의 백업을 새로 암호화된 볼륨으로 복원합니다.
$ cinder backup-restore <backup> --volume <encrypted_volume>
-
<backup>
을 암호화되지 않은 볼륨 백업의 이름 또는 ID로 바꿉니다. -
<encrypted_volume>
을 새 암호화된 볼륨의 ID로 바꿉니다.
-
cinder-backup
서비스를 사용할 수 없는 경우 upload-to-image
명령을 사용하여 암호화되지 않은 볼륨의 이미지를 생성한 다음 이미지에서 새 암호화된 볼륨을 만듭니다.
암호화되지 않은 볼륨의 이미지 서비스 이미지를 생성합니다.
$ cinder upload-to-image <unencrypted_volume> <new_image>
-
<unencrypted_volume>
을 암호화되지 않은 볼륨의 이름 또는 ID로 바꿉니다. -
<new_image>
를 새 이미지의 이름으로 바꿉니다.
-
이미지에서 1GB 크기의 이미지에서 새 볼륨을 생성합니다.
$ cinder volume create --size <size> --volume-type luks --image <new_image> <encrypted_volume_name>
-
<size>
를 새 볼륨의 크기로 바꿉니다. 이 값은 암호화되지 않은 이전 볼륨 크기보다 1GB 이상이어야 합니다. -
<new_image>
를 암호화되지 않은 볼륨에서 생성한 이미지의 이름으로 바꿉니다. -
<encrypted_volume_name>
을 새 암호화된 볼륨의 이름으로 바꿉니다.
-