사용자 정의 블록 스토리지 백엔드 배포 가이드
Red Hat OpenStack Platform 오버클라우드에서 사용자 정의 블록 스토리지 백엔드 배포 가이드
OpenStack Documentation Team
rhos-docs@redhat.com초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. 블록 스토리지 서비스 사용자 지정 백엔드 배포 소개
Red Hat OpenStack Platform director는 최소한의 수동 구성으로 완전한 엔터프라이즈급 OpenStack 배포를 설치하고 관리합니다. director에 대한 자세한 내용은 Director 설치 및 사용 가이드를 참조하십시오.
director가 생성하는 Openstack 환경을 Overcloud라고 합니다. 오버클라우드에는 블록 스토리지를 포함하여 최종 사용자에게 서비스를 제공하는 모든 구성 요소가 포함되어 있습니다. 이 문서에서는 오버클라우드에서 블록 스토리지 서비스(cinder)에 사용자 지정 백엔드를 배포하는 방법에 대한 지침을 제공합니다. 기본적으로 블록 스토리지 서비스는 컨트롤러 노드에 설치됩니다.
사전 요구 사항
- director와 함께 이미 오버클라우드를 배포했습니다.
- Overcloud에는 블록 스토리지 서비스가 작동합니다.
- 블록 스토리지 개념과 구성을 잘 알고 있습니다. 블록 스토리지에 대한 자세한 내용은 스토리지 가이드의 Block Storage and Volumes 를 참조하십시오.
이 절차는 제한된 사용 사례에서 성공적으로 테스트되었습니다. 먼저 비생산 환경에서 계획된 배포를 테스트해야 합니다. 질문이 있는 경우 Red Hat 지원팀에 문의하십시오.
1.1. 사용자 정의 백엔드 이해
사용자 지정 백엔드는 아직 Red Hat OpenStack Platform director에 완전히 통합되지 않은 스토리지 서버, 어플라이언스 또는 구성입니다. 지원되는 블록 스토리지 백엔드는 이미 통합되었으며 기본 제공 director 파일로 사전 구성되어 있습니다. 예를 들어, Red Hat Ceph와 Dell EMC PS 시리즈, Dell Storage Center, NetApp 어플라이언스의 단일 백엔드 구성 등이 있습니다.
일부 통합 스토리지 어플라이언스는 단일 인스턴스 백엔드만 지원합니다. 예를 들어, Dell 스토리지 센터에 대해 미리 구성된 director 파일을 사용하면 단일 백엔드만 배포할 수 있습니다. 이 어플라이언스의 백엔드 인스턴스를 여러 개 배포하려면 사용자 지정 구성이 필요합니다.
블록 스토리지 서비스가 있는 노드에서 /etc/cinder/cinder.conf 파일을 직접 편집하여 블록 스토리지 서비스를 수동으로 구성할 수 있지만 openstack overcloud deploy 명령을 실행할 때 director가 구성을 덮어씁니다. 자세한 내용은 3장. 구성된 백엔드 배포의 내용을 참조하십시오. director와 함께 블록 스토리지 백엔드를 배포하여 오버클라우드 배포 및 업데이트를 통해 설정이 지속되는지 확인합니다.
백엔드 구성이 완전히 통합되면 패키지된 환경 파일을 편집하고 호출할 수 있습니다. 그러나 사용자 지정 백엔드의 경우 고유한 환경 파일을 작성해야 합니다. 이 문서에는 배포에 대해 편집할 수 있는 주석이 있는 /home/stack/templates/custom-env.yaml 파일이 포함되어 있습니다. 이 샘플 파일은 두 개의 NetApp 백엔드를 사용하도록 블록 스토리지 서비스를 구성하는 데 적합합니다. 환경 파일에 대한 자세한 내용은 Director 설치 및 사용 가이드 의 Overcloud 배포에 환경 파일 포함 을 참조하십시오.
1.2. 요구 사항
다음 추가 사전 요구 사항 조건을 사용자 지정 블록 스토리지 백엔드를 구성하려면 환경에 적용해야 합니다.
- 타사 백엔드 어플라이언스를 사용하는 경우 스토리지 리포지토리로 구성했습니다.
- Director 설치 및 사용 지침과 함께 director와 함께 Overcloud를 배포했습니다.
-
높은 권한이 있는 계정의 사용자 이름과 암호가 있습니다. 오버클라우드를 배포하기 위해 생성한 것과 동일한
stack사용자 계정을 사용할 수 있습니다. -
/etc/cinder/cinder.conf에서 블록 스토리지 백엔드에 사용할 결과 구성을 이미 계획했습니다.
1.3. 설정 프로세스 이해
사용자 지정 백엔드를 사용하도록 블록 스토리지 서비스를 구성하는 데 다음 단계가 포함됩니다.
- 환경 파일 만들기. 자세한 내용은 2장. 환경 파일 생성의 내용을 참조하십시오.
- 구성된 백엔드 배포. 자세한 내용은 3장. 구성된 백엔드 배포의 내용을 참조하십시오.
- 구성된 백엔드 테스트. 자세한 내용은 를 참조하십시오. 4장. 구성된 백엔드 테스트
2장. 환경 파일 생성
사용자 지정 백엔드를 구성하기 위해 생성하는 환경 파일에는 정의하려는 각 백엔드의 설정이 포함되어 있습니다. 또한 사용자 지정 백엔드 배포와 관련된 다른 설정이 포함되어 있습니다. 환경 파일에 대한 자세한 내용은 Advanced Overcloud Customization 가이드의 Environment Files 를 참조하십시오.
다음 샘플 환경 파일은 두 개의 NetApp 백엔드인 netapp1 및 netapp2 를 정의합니다.
/home/stack/templates/custom-env.yaml
parameter_defaults: # 1 CinderEnableIscsiBackend: false CinderEnableRbdBackend: false CinderEnableNfsBackend: false NovaEnableRbdBackend: false GlanceBackend: file # 2 ControllerExtraConfig: # 3 cinder::config::cinder_config: netapp1/volume_driver: # 4 value: cinder.volume.drivers.netapp.common.NetAppDriver netapp1/netapp_storage_family: value: ontap_7mode netapp1/netapp_storage_protocol: value: iscsi netapp1/netapp_server_hostname: value: 10.35.64.11 netapp1/netapp_server_port: value: 80 netapp1/netapp_login: value: root netapp1/netapp_password: value: p@$$w0rd netapp1/volume_backend_name: value: netapp1 netapp2/volume_driver: # 5 value: cinder.volume.drivers.netapp.common.NetAppDriver # 6 netapp2/netapp_storage_family: value: ontap_7mode netapp2/netapp_storage_protocol: value: iscsi netapp2/netapp_server_hostname: value: 10.35.64.11 netapp2/netapp_server_port: value: 80 netapp2/netapp_login: value: root netapp2/netapp_password: value: p@$$w0rd netapp2/volume_backend_name: value: netapp2 cinder_user_enabled_backends: ['netapp1','netapp2'] # 7
- 1
- 다른 백엔드 유형을 비활성화하는
false매개 변수가 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) 서비스에 설정을 적용해야 함을 의미합니다.- 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 백엔드를 활성화하는 경우cinder_user_enabled_backends에 나열하지 말고CinderEnableRbdBackend를true로 설정하여 활성화합니다.
OpenStack 블록 스토리지의 Red Hat Ceph 백엔드 정의에 대한 자세한 내용은 Deploying an Overcloud with Containerized Red Hat Ceph 가이드를 참조하십시오.
/ 부록 A. 부록
home/stack/templates/custom-env.yaml에서 생성된 /etc/cinder/cinder.conf 설정을 보려면 를 참조하십시오.
3장. 구성된 백엔드 배포
구성된 백엔드를 배포하려면 다음 단계를 완료합니다.
-
stack사용자로 로그인합니다. 다음 명령을 실행하여 사용자 지정 백엔드 구성을 배포합니다.
$ openstack overcloud deploy --templates -e /home/stack/templates/custom-env.yaml
중요오버클라우드를 생성할 때 추가 환경 파일을 전달한 경우
-e옵션을 사용하여 오버클라우드를 원치 않게 변경하지 않도록 다시 여기에 전달합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 Overcloud 환경 수정을 참조하십시오.
4장. 구성된 백엔드 테스트
백엔드를 오버클라우드에 배포한 후 볼륨을 성공적으로 생성할 수 있는지 테스트합니다.
절차
stack사용자로 다음 명령을 실행하여home/stack/overcloudrec에 정의된 환경 변수를 로드합니다.$ source /home/stack/overcloudrc
자세한 내용은 Director 설치 및 사용 가이드 의 오버클라우드 액세스 를 참조하십시오.
각 백엔드의 볼륨 유형을 만듭니다. 오버클라우드의 컨트롤러 노드에
stack사용자로 로그인하고 다음 명령을 실행합니다.$ cinder type-create backend1 $ cinder type-create backend2
이러한 명령은 생성한 환경 파일의
cinder::config::cinder_config클래스로 정의된 각 백엔드에 대해 볼륨 유형를 생성합니다.backend1및 backend2생성한 환경 파일의
cinder_user에 각 볼륨 유형을 매핑합니다. 다음 명령은 볼륨 유형_enabled_backends 클래스를 사용하여 활성화되는 백엔드의 volume_backend_namebackend1을 netapp1에 매핑에 매핑합니다.하고 backend2를 netapp2$ cinder type-key backend1 set volume_backend_name=netapp1 $ cinder type-key backend2 set volume_backend_name=netapp2
다음 명령을 실행하여
backend1 볼륨유형을 호출하여netapp1에 백엔드를 만들 수 있는지 테스트합니다.$ cinder create --volume-type backend1 --display_name netappvolume_1 1
backend2 볼륨 유형을 호출하여생성합니다.netapp2백엔드에 유사한 볼륨을$ cinder create --volume-type backend2 --display_name netappvolume_2 1
부록 A. 부록
샘플 환경 파일의 구성
2장. 환경 파일 생성 에서 생성한 환경 파일은 두 개의 NetApp 백엔드를 사용하도록 블록 스토리지 서비스를 구성합니다. 다음 스니펫에는 관련 설정이 표시됩니다.
enabled_backends = netapp1,netapp2 [netapp1] volume_backend_name=netapp_1 volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver netapp_login=root netapp_storage_protocol=iscsi netapp_password=p@$$w0rd netapp_storage_family=ontap_7mode netapp_server_port=80 netapp_server_hostname=10.35.64.11 [netapp2] volume_backend_name=netapp_2 volume_driver=cinder.volume.drivers.netapp.common.NetAppDriver netapp_login=root netapp_storage_protocol=iscsi netapp_password=p@$$w0rd netapp_storage_family=ontap_7mode netapp_server_port=80 netapp_server_hostname=10.35.64.11