사용자 정의 블록 스토리지 백엔드 배포 가이드
Red Hat OpenStack Platform Overcloud에서 사용자 지정 블록 스토리지 백엔드 배포 가이드
초록
1장. 소개 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform Director는 완전한 OpenStack 환경을 설치하고 관리하기 위한 툴셋입니다. 주로 OpenStack 프로젝트 TripleO(OpenStack )를기반으로 합니다. Director의 주요 목표는 최소한의 수동 구성으로 기능적인 엔터프라이즈급 OpenStack 배포를 완전히 오케스트레이션하는 것입니다. 개별 OpenStack 구성 요소를 수동으로 구성하는 데 고유한 여러 문제를 해결하는 데 도움이 됩니다.
Director에서 제공하는 최종 결과 OpenStack 배포를 Overcloud 라고 합니다. Overcloud에는 블록 스토리지를 포함하여 최종 사용자에게 서비스를 제공하는 모든 구성 요소가 포함되어 있습니다. 이 문서에서는 사용자 정의 백엔드를 Overcloud의 블록 스토리지 서비스에 배포하는 방법에 대한 지침을 제공합니다.
이 문서에서는 블록 스토리지 서비스를 수동으로 구성하는 관리자의 지식을 활용하는 것을 목표로 합니다. OpenStack 테스트 배포(예: Cryostat를 통해)에서 이 서비스를 구성하려면 호스트 노드의 /etc/cinder/cinder.conf를 편집해야 합니다. 해당 파일의 블록 스토리지 설정의 대부분은 다른 위치에 자세히 설명되어 있습니다. 이 문서에서는 사용자 지정 백엔드 를 연결하기 위해 동일한 설정을 Overcloud에 적용하는 방법에 대해 설명합니다.
이 절차는 제한된 사용 사례에서 성공적으로 테스트되었습니다. 먼저 비프로덕션 환경에서 계획된 배포를 테스트해야 합니다. 질문이 있는 경우 Red Hat 지원팀에 문의하십시오.
1.1. 사용자 정의 백엔드 링크 복사링크가 클립보드에 복사되었습니다!
이 문서의 목적을 위해 사용자 지정 백엔드는 Red Hat OpenStack Platform Director에 완전히 통합되지 않은 스토리지 서버/적용 또는 구성으로 정의됩니다. 지원되는 일부 블록 스토리지 백엔드는 이미 Director에 통합되어 있습니다. 즉, 사전 구성된 Director 파일이 이미 즉시 제공됩니다. 통합 백엔드를 구성하고 이러한 파일을 통해 Overcloud에 배포할 수 있습니다. 통합된 백엔드의 예로는 Dell EqualLogic, Dell Storage Center 및 NetApp 어플라이언스의 Red Hat Ceph 및 단일 백 엔드 구성이 있습니다.
또한 이미 Director에 통합된 일부 스토리지 장치는 단일 인스턴스 백엔드만 지원합니다. 예를 들어 Dell EqualLogic용 사전 구성된 Director 파일은 단일 백엔드만 배포할 수 있습니다. 이 어플라이언스의 여러 백엔드 인스턴스를 배포하려면 이 문서에 설명된 대로 사용자 지정 구성이 필요합니다.
노드의 /etc/cinder/cinder.conf를 직접 편집하여 Block Storage 서비스를 수동으로 구성할 수 있지만 향후 Director에서 모든 설정을 덮어씁니다. 따라서 블록 스토리지 백엔드를 배포하는 데 권장되는 방법은 Director를 사용하는 것입니다. 백엔드 구성이 이미 완전히 통합된 경우 패키지된 환경 파일을 간단히 편집하고 호출할 수 있습니다.
그러나 사용자 지정 백엔드를 사용하면 고유한 환경 파일을 작성해야 합니다. 이 문서에는 자체 배포에 대해 편집할 수 있는 주석이 있는 샘플, 즉 /home/stack/templates/custom-env.yaml. 이 샘플 파일은 두 개의 NetApp 백엔드를 사용하도록 Block Storage 서비스를 구성하는 데 적합합니다.
1.2. 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
블록 스토리지 및 배포하려는 백엔드를 수동으로 구성하는 방법에 대한 사전 지식이 아닌 이 문서에서는 다음 내용도 가정합니다.
- 타사 백엔드 어플라이언스를 사용하는 경우 이미 스토리지 리포지토리로 올바르게 구성해야 합니다.
- Overcloud는 Director 설치 및 사용의 지침에 따라 Director를 통해 이미 배포되었습니다.
- 승격된 권한이 있는 계정의 사용자 이름과 암호가 있습니다. 오버클라우드를 배포하기 위해 생성된 것과 동일한 계정을 사용할 수 있습니다. Director 설치 사용자 생성 에서 이 목적을 위해 stack 사용자를 생성하고 사용합니다.
- /etc/cinder/cinder.conf의 Block Storage 백엔드에 필요한 결과 구성을 이미 매핑했습니다. 이를 통해 director를 통해 계획된 구성을 오케스트레이션하는 것은 모두 남아 있습니다.
2장. 프로세스 설명 링크 복사링크가 클립보드에 복사되었습니다!
블록 스토리지 서비스의 설정은 /etc/cinder/cinder.conf에 저장됩니다. 이러한 설정에는 백엔드 정의가 포함됩니다. 블록 스토리지 서비스에서 사용할 수 있는 대부분의 타사 백엔드는 /etc/cinder/cinder.conf 설정 편집과 관련된 설정 지침을 제공합니다. 1장. 소개 에서 언급했듯이 이렇게 하면 블록 스토리지 서비스가 구성되지만 향후 Overcloud 업데이트에서 해당 설정을 덮어씁니다.
관계없이 /etc/cinder/cinder.conf를 통한 수동 구성과 관련된 문서는 여전히 Overcloud 배포에 유용합니다. Director는 결국 heat 를 통해 /etc/cinder/cinder.conf에 동일한 구성을 적용합니다. 따라서 백엔드 구성을 계획하려면 다음을 수행해야 합니다.
- 원하는 블록 스토리지 백엔드 구성을 철저히 계획하고,
- 이 구성을 위해 결과 /etc/cinder/cinder.conf 파일을 매핑합니다.
결과 /etc/cinder/cinder.conf 파일을 매핑한 후 백엔드 설정을 오케스트레이션하는 환경 파일을 생성합니다. 환경 파일은 샘플 파일 /home/stack/templates/custom-env.yaml을 사용하여 이 단계를 자세히 설명합니다. 환경 파일을 편리하게 사용하면 향후 Overcloud 업데이트를 통해 백엔드 설정이 유지되도록 합니다.
3장. 환경 파일 생성 링크 복사링크가 클립보드에 복사되었습니다!
환경 파일에는 정의할 각 백엔드의 설정이 포함되어 있습니다. 사용자 지정 백엔드 배포와 관련된 기타 설정도 포함되어 있습니다. 환경 파일에 대한 자세한 내용은 환경 파일 ( Director 설치 및 사용 가이드)을 참조하십시오.
다음 환경 파일은 두 개의 NetApp 백엔드, 즉 netapp1 및 netapp2 를 정의합니다.
/home/stack/templates/custom-env.yaml
- 1
- 다음 매개변수는 false로 설정되어 있으므로 필요하지 않은 다른 백엔드 유형을 비활성화합니다.
- CinderEnableIscsiBackend: 기타 iSCSI 백엔드.
- CinderEnableRbdBackend: Red Hat Ceph.
- CinderEnableNfsBackend: NFS.
- NovaEnableRbdBackend: 임시 Red Hat Ceph 스토리지.
- 2
- GlanceBackend 매개 변수는 이미지를 저장하는 데 이미지 서비스에서 사용해야 하는 항목을 설정합니다. 지원되는 값은 다음과 같습니다.
- file: 각 컨트롤러 노드의 /var/lib/glance/images에 이미지를 저장합니다.
- Swift: 이미지 스토리지에 오브젝트 스토리지 서비스를 사용합니다.
- Cinder: 이미지 스토리지에 블록 스토리지 서비스를 사용합니다.
- 3
- controllerExtraConfig 는 모든 컨트롤러 노드에 적용할 사용자 지정 설정을 정의합니다. cinder::config::cinder_config 클래스는 설정을 블록 스토리지(cinder) 서비스에 적용해야 함을 의미합니다. 그러면 백엔드 설정이 궁극적으로 각 컨트롤러 노드의 /etc/cinder/cinder.conf 파일로 끝납니다.
- 4
- netapp1/volume_driver 및 netapp2/volume_driver 설정은 섹션/설정 구문을 따릅니다. 블록 스토리지 서비스를 사용하면 각 백엔드가 /etc/cinder/cinder.conf의 자체 섹션에 정의됩니다. netapp1 접두사를 사용하는 각 설정은 새 [netapp1] 백엔드 섹션에 정의됩니다.
- 5
- 마찬가지로 netapp2 설정은 별도의 [netapp2] 섹션에 정의됩니다.
- 6
- 값 접두사는 이전 설정의 값을 정의합니다.
- 7
- cinder_user_enabled_backends 클래스는 사용자 지정 백엔드를 설정하고 활성화합니다. 이름에서 알 수 있듯이 이 클래스는 사용자 사용 백엔드에만 사용해야 합니다. 특히 cinder::config::cinder_config 클래스에 정의된 항목은 다음과 같습니다.
Director를 통해 기본적으로 활성화할 수 있는 백엔드를 나열하는 cinder_user_enabled_backends 를 사용하지 마십시오. 여기에는 지원되는 NetApp 또는 Dell 어플라이언스에 대한 Red Hat Ceph, NFS 및 단일 백엔드가 포함됩니다. 예를 들어 Red Hat Ceph 백엔드를 활성화하는 경우 CinderEnableRbdBackend: true 를 사용하여 cinder_user_enabled_backends 에 나열하지 마십시오.
OpenStack Block Storage용 Red Hat Ceph 백엔드를 정의하는 방법에 대한 자세한 내용은 Red Hat Ceph Storage for the Overcloud 를 참조하십시오.
] 환경 파일 xref:envfile[/home/stack/templates/custom-env.yaml을 사용하여 사용자 지정 백엔드의 배포를 오케스트레이션하는 방법을 설명합니다. /home/stack/templates/custom-env.yaml의 결과 /etc/cinder/cinder.conf 설정을 보려면 A.2절. “샘플 환경 파일에서 구성 생성” 을 참조하십시오.
4장. 구성된 백엔드 배포 링크 복사링크가 클립보드에 복사되었습니다!
/home/stack/templates/에 custom-env.yaml 파일을 생성한 후에는 stack 사용자로 로그인합니다. 그런 다음 다음을 실행하여 사용자 정의 백엔드 구성을 배포합니다.
openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
$ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
Overcloud를 생성할 때 추가 환경 파일을 전달한 경우 Overcloud를 원하지 않는 변경을 방지하기 위해 -e 옵션을 사용하여 여기에서 다시 전달합니다.
자세한 내용은 Overcloud 확장 및 오버클라우드 업데이트를 참조하십시오.
Director가 오케스트레이션을 완료하면 백엔드를 테스트합니다. 자세한 내용은 5장. 구성된 백엔드 테스트 을 참조하십시오.
5장. 구성된 백엔드 테스트 링크 복사링크가 클립보드에 복사되었습니다!
Overcloud에 백엔드를 배포한 후 볼륨을 생성할 수 있는지 테스트합니다. 이렇게 하려면 먼저 필요한 환경 변수를 로드해야 합니다. 이러한 변수는 기본적으로 /home/stack/overcloudrc에 정의됩니다.
이러한 변수를 로드하려면 stack 사용자로 다음 명령을 실행합니다.
source /home/stack/overcloudrc
$ source /home/stack/overcloudrc
자세한 내용은 기본 오버클라우드 액세스를 참조하십시오.
다음으로 각 백엔드에 대한 볼륨 유형을 생성합니다. stack 사용자로 Overcloud의 컨트롤러 노드에 로그인하고 다음을 실행합니다.
cinder type-create backend1 cinder type-create backend2
$ cinder type-create backend1
$ cinder type-create backend2
이러한 명령은 xref:envfile의 cinder::config::cinder_config 클래스를 통해 정의된 각 백엔드에 대해 볼륨 유형 backend1 및 backend2를 생성합니다.
마지막으로 각 볼륨 유형을 xref:envfile의 cinder_user_enabled_backends 클래스를 통해 활성화된 백엔드의 volume_backend_name에 매핑합니다. 다음 명령은 볼륨 유형 backend1을 netapp1에 매핑하고 backend2를 netapp2에 매핑합니다.
cinder type-key backend1 set volume_backend_name=netapp1 cinder type-key backend2 set volume_backend_name=netapp2
$ cinder type-key backend1 set volume_backend_name=netapp1
$ cinder type-key backend2 set volume_backend_name=netapp2
이제 각 백엔드를 테스트할 준비가 되었습니다. 시작하려면 backend1 볼륨 유형을 호출하여 netapp1 백엔드에 netapp_volume_1이라는 1GB 볼륨을 생성합니다.
cinder create --volume-type backend1 --display_name netappvolume_1 1
$ cinder create --volume-type backend1 --display_name netappvolume_1 1
마찬가지로 backend2 볼륨 유형을 호출하여 netapp2 백엔드에 유사한 볼륨을 생성합니다.
cinder create --volume-type backend2 --display_name netappvolume_2 1
$ cinder create --volume-type backend2 --display_name netappvolume_2 1
부록 A. 부록 링크 복사링크가 클립보드에 복사되었습니다!
A.1. stack 사용자 링크 복사링크가 클립보드에 복사되었습니다!
Director 설치 사용자 생성 섹션은 독자에게 stack이라는 사용자를 생성하도록 지시합니다. 이 사용자는 Overcloud를 배포하는 데 사용됩니다. stack 계정을 사용하여 백엔드(]) 배포와 같이 승격된 권한이 필요한 명령을 실행하거나 Overcloud 액세스에 필요한 환경 변수 로드(xref:test[ ))를 사용할 수 있습니다.
예를 들어 Director 설치 및 사용의 지침을 팔로우하면 stack 사용자가 이미 존재합니다. 따라서 필요에 따라 사용하는 것이 편리합니다.
A.2. 샘플 환경 파일에서 구성 생성 링크 복사링크가 클립보드에 복사되었습니다!
xref:envfile의 환경 파일은 두 개의 NetApp 백엔드를 사용하도록 Block Storage 서비스를 구성합니다. 다음 스니펫에는 관련 설정이 표시됩니다.