Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

사용자 정의 블록 스토리지 백엔드 배포 가이드

Red Hat OpenStack Platform 13

Red Hat OpenStack Platform Overcloud에서 사용자 정의 블록 스토리지 백엔드 배포 가이드

OpenStack Documentation Team

초록

이 문서에서는 Red Hat OpenStack Platform 13 Overcloud에서 블록 스토리지 서비스의 통합되지 않은 사용자 지정 백엔드를 배포하는 방법을 설명합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.

1장. 소개

RHOSP(Red Hat OpenStack Platform) director는 완전한 RHOSP 환경을 설치하고 관리하기 위한 툴셋입니다. 주로 업스트림 TripleO(OpenStack-on-OpenStack) 프로젝트를 기반으로 합니다. director의 주요 목적은 최소한의 수동 구성으로 작동하는 엔터프라이즈급 RHOSP 배포를 완전히 오케스트레이션하는 것입니다. 개별 OpenStack 구성 요소를 수동으로 구성하는 데 내재된 많은 문제를 해결하는 데 도움이 됩니다.

director에서 제공하는 end-result RHOSP 배포를 오버클라우드 라고 합니다. 오버클라우드에는 블록 스토리지를 포함하여 최종 사용자에게 서비스를 제공하는 모든 구성 요소가 포함되어 있습니다. 이 문서에서는 오버클라우드의 블록 스토리지 서비스에 사용자 지정 백엔드를 배포하는 방법에 대한 지침을 제공합니다.

이 문서에서는 수동 블록 스토리지 구성과 관련된 기존 개념에 대한 사전 지식을 사용합니다. OpenStack 테스트 배포(예: Packstack을 통해)에서 이 서비스를 구성하려면 호스트 노드의 /etc/cinder/cinder.conf 를 편집해야 합니다. 해당 파일의 대부분의 블록 스토리지 설정은 다른 위치에서 더 자세히 설명합니다. 이 문서에서는 동일한 설정을 오버클라우드에 적용하여 사용자 지정 백엔드를 연결하는 방법을 설명합니다.

주의

이 절차는 제한된 사용 사례에서 성공적으로 테스트되었습니다. 먼저 프로덕션 환경 이외의 환경에서 계획된 배포를 테스트해야 합니다. 질문이 있는 경우 Red Hat 지원에 문의하십시오.

1.1. 사용자 정의 백엔드

이 문서를 위해 사용자 지정 백엔드는 Red Hat OpenStack Platform director에 완전히 통합되지 않은 스토리지 서버, 어플라이언스 또는 구성으로 정의됩니다. 지원되는 일부 블록 스토리지 백엔드는 이미 director에 통합되었습니다. 즉 사전 구성된 director 파일이 이미 제공되어 있습니다. 통합 백엔드를 구성하고 이러한 파일을 통해 Overcloud에 배포할 수 있습니다. 통합 백엔드의 예로는 Red Hat Ceph 및 Dell EMC PS 시리즈, Dell Storage Center 및 NetApp 어플라이언스의 단일 백엔드 구성이 있습니다.

또한 일부 스토리지 어플라이언스는 이미 director에 통합되어 있는 단일 인스턴스 백엔드만 지원합니다. 예를 들어 Dell Storage Center의 사전 구성된 director 파일은 단일 백엔드 배포만 지원합니다. 이 어플라이언스의 여러 백엔드 인스턴스를 배포하려면 이 문서에 설명된 대로 사용자 지정 구성이 필요합니다.

노드의 /etc/cinder/cinder.conf 파일을 직접 편집하여 Block Storage 서비스를 수동으로 구성할 수 있지만, openstack overcloud deploy 명령을 실행할 때 director는 설정을 덮어씁니다. 따라서 블록 스토리지 백엔드를 배포하는 데 권장되는 방법은 director를 통해 확인하는 것입니다. 이렇게 하면 오버클라우드 배포 및 업데이트를 통해 설정이 유지됩니다.

백엔드 구성이 이미 완전히 통합되면 패키지 환경 파일을 편집하고 호출할 수 있습니다. 그러나 사용자 지정 백엔드를 사용하여 고유한 환경 파일을 작성해야 합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 Overcloud Creation에서 환경 파일 포함을 참조하십시오. 이 문서에는 자체 배포에 대해 편집할 수 있는 주석이 추가된 샘플인 /home/stack/templates/custom-env.yaml 이 포함되어 있습니다. 이 샘플 파일은 두 개의 NetApp 백엔드를 사용하도록 블록 스토리지 서비스를 구성하는 데 적합합니다.

1.2. 요구 사항

사전 요구 사항

  • 블록 스토리지 구성 및 배포하려는 백엔드에 대한 사전 지식 외에.
  • 타사 백엔드 어플라이언스를 사용하는 경우 이미 스토리지 리포지토리로 올바르게 구성되어 있어야 합니다.
  • Overcloud는 director를 통해 이미 배포되어 있습니다. Director 설치 및 사용 가이드를 참조하십시오.
  • 승격된 권한이 있는 계정의 사용자 이름과 암호가 있습니다. 생성한 것과 동일한 계정을 사용하여 오버클라우드를 배포할 수 있습니다. Director 설치 및 사용 가이드에서 스택 사용자 생성 을 참조하십시오. stack 사용자는 이러한 목적으로 생성됩니다.
  • /etc/cinder/cinder.conf 에서 Block Storage 백엔드에 필요한 결과 구성을 이미 매핑했습니다.

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장. 환경 파일 생성

환경 파일에는 정의하려는 각 백엔드 및 기타 관련 설정에 대한 설정이 포함되어 있습니다. 환경 파일에 대한 자세한 내용은 Advanced Overcloud Customization 가이드의 환경 파일 을 참조하십시오.

다음 샘플 환경 파일은 두 개의 NetApp 백엔드인 netapp1netapp2 를 정의합니다.

/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 로 설정되어 다른 백엔드 유형을 비활성화합니다.
  • cinderEnableIscsiBackend: 기타 iSCSI 백엔드.
  • CinderEnableRbdBackend: Red Hat Ceph.
  • CinderEnableNfsBackend: NFS.
  • NovaEnableRbdBackend: 임시 Red Hat Ceph 스토리지.
2
GlanceBackend 매개 변수는 이미지를 저장하는 데 이미지 서비스에서 사용해야 하는 항목을 설정합니다. 지원되는 값은 다음과 같습니다.
  • File: 각 컨트롤러 노드의 /var/lib/glance/images 에 이미지를 저장합니다.
  • Swift: 이미지 스토리지에 오브젝트 스토리지 서비스를 사용합니다.
  • Cinder: 이미지 스토리지에 Block Storage 서비스를 사용합니다.
3
ControllerExtraConfig 는 모든 컨트롤러 노드에 적용할 사용자 지정 설정을 정의합니다. cinder::config::cinder_config 클래스는 Block Storage(cinder) 서비스에 설정을 적용해야 함을 의미합니다. 이는 결국 백엔드 설정이 각 컨트롤러 노드의 /etc/cinder/cinder.conf 파일에 종료됨을 의미합니다.
4
netapp1/volume_drivernetapp2/volume_driver 설정은 섹션/설정 구문을 따릅니다. Block Storage 서비스를 사용하면 각 백엔드가 /etc/cinder/cinder.conf 의 자체 섹션에 정의됩니다. netapp1 접두사를 사용하는 각 설정은 새 [netapp1] 백엔드 섹션에 정의됩니다.
5
마찬가지로 netapp2 설정은 별도의 [netapp2] 섹션에 정의됩니다.
6
접두사는 이전 설정을 구성합니다.
7
cinder_user_enabled_backends 클래스가 사용자 지정 백엔드를 설정하고 활성화합니다. 이름에서 알 수 있듯이 이 클래스는 사용자 활성화 백엔드에만 사용해야 합니다. 특히 cinder::config::cinder_config 클래스에 정의되어 있습니다.

cinder_user_enabled_backends 를 사용하여 Director를 통해 기본적으로 활성화할 수 있는 백엔드를 나열하지 마십시오. 여기에는 지원되는 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 를 참조하십시오.

구성 된 백엔드 배포 에서는 환경 파일 /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
중요

오버클라우드를 생성할 때 추가 환경 파일을 전달한 경우 -e 옵션을 사용하여 오버클라우드를 원하지 않는 변경을 수행하지 않도록 여기에서 다시 전달합니다. 자세한 내용은 Director 설치 및 사용 가이드 의 Overcloud 환경 수정 참조하십시오.

director 오케스트레이션이 완료된 후 백엔드를 테스트합니다. 5장. 구성된 백엔드 테스트 을 참조하십시오.

5장. 구성된 백엔드 테스트

오버클라우드에 백엔드를 배포한 후 여기에 볼륨을 만들 수 있는지 테스트합니다. 먼저 필요한 환경 변수를 로드해야 합니다. 변수는 기본적으로 /home/stack/overcloudrc 에 정의됩니다.

  1. 변수를 로드하려면 stack 사용자로 다음 명령을 실행합니다.
$ source /home/stack/overcloudrc
참고

자세한 내용은 Director 설치 및 사용 가이드 의 오버클라우드 액세스 참조하십시오.

  1. 각 백엔드에 볼륨 유형 을 만듭니다. stack 사용자로 오버클라우드의 컨트롤러 노드에 로그인하고 다음 명령을 실행합니다.
$ cinder type-create backend1
$ cinder type-create backend2

이러한 명령은 볼륨 유형 backend1backend2 를 생성합니다. 하나는 envfilecinder::config::cinder_config 클래스를 통해 정의된 각 백엔드에 하나씩 생성됩니다.

  1. envfilecinder_user_enabled_backends 클래스를 통해 활성화된 백엔드의 volume_backend_name 에 각 볼륨 유형을 매핑합니다. 다음 명령은 볼륨 유형 backend1netapp1 에 매핑하고 backend2netapp2 에 매핑합니다.
$ cinder type-key backend1 set volume_backend_name=netapp1
$ cinder type-key backend2 set volume_backend_name=netapp2
  1. 이제 각 백엔드를 테스트할 수 있습니다. backend1 볼륨 유형을 호출하여 netapp1 백엔드에 netapp_volume_1 이라는 1GB 볼륨을 만듭니다.
$ cinder create --volume-type backend1 --display_name netappvolume_1 1
  1. backend2 볼륨 유형을 호출하여 netapp2 백엔드에 유사한 볼륨을 만듭니다.
$ cinder create --volume-type backend2 --display_name netappvolume_2 1

부록 A. 부록

A.1. stack 사용자

stack 사용자 계정을 사용하여 백엔드 배포 또는 오버클라우드 액세스에 필요한 환경 변수 로드와 같은 승격된 권한이 필요한 명령을 실행할 수 있습니다. stack 사용자에 대한 자세한 내용은 Director 설치 및 사용 가이드 의 stack 사용자 생성 참조하십시오.

A.2. 샘플 환경 파일의 결과 구성

3장. 환경 파일 생성 의 환경 파일은 두 개의 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

법적 공지

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.