Red Hat Training

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

Dell EMC PS Series 백엔드 가이드

Red Hat OpenStack Platform 13

Red Hat OpenStack Platform Overcloud에서 Dell EMC PS 시리즈 Storage 사용 가이드

OpenStack Documentation Team

초록

이 문서에서는 단일 Dell EMC PS 시리즈 장치를 Red Hat OpenStack Platform 13 Overcloud에 백엔드로 배포하는 방법을 설명합니다.

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

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

1장. 소개

이 문서에서는 하나 이상의 Dell EMC PS 시리즈 백엔드를 사용하도록 OpenStack을 구성하는 방법에 대해 설명합니다. 또한 Dell EMC PS Series 장치와 OpenStack 블록 스토리지 서비스 간의 볼륨 크기 불일치를 해결하는 방법에 대한 지침도 포함되어 있습니다.

다음 섹션에서는 다음을 수행합니다.

  • 블록 스토리지 백엔드에 Dell EMC PS 시리즈 장치 및 드라이버만 사용할 수 있습니다.
  • OpenStack Overcloud가 제대로 작동하는 블록 스토리지 서비스와 함께 Director를 통해 이미 배포되어 있습니다.
  • Dell 스토리지 장치가 이미 배포되어 스토리지 리포지토리로 구성되어 있습니다.
  • Dell EMC PS 시리즈 그룹이 이미 배포되어 SSH를 통해 액세스할 수 있습니다.
  • 사용 가능한 Dell EMC PS Series Group(예: CHAP 및 그룹 관리자 자격 증명)의 그룹 관리자에 연결하는 데 필요한 인증 정보가 있습니다.
  • 승격된 권한이 있는 계정의 사용자 이름과 암호가 있습니다. Overcloud를 배포하기 위해 생성된 것과 동일한 계정을 사용할 수 있습니다. stack 사용자 생성 에서 이 목적을 위해 stack 사용자를 생성하고 사용합니다.

director를 통해 RHOSP(Red Hat OpenStack Platform)를 배포할 때 특히 Block Storage 서비스 백엔드에서 director를 통해 모든 주요 오버클라우드 설정을 정의하고 오케스트레이션해야 합니다. 이렇게 하면 추가 오버클라우드 업데이트를 통해 설정이 유지됩니다. Director를 통해 OpenStack을 배포하는 방법에 대한 자세한 내용은 Director Installation and Usage 를 참조하십시오.

이 문서의 목적은 오버클라우드 블록 스토리지 서비스에 Dell EqualLogic 백엔드 구성을 오케스트레이션하는 방법을 설명하는 것입니다. 이 문서에서는 백엔드에서 사용할 수 있는 다양한 배포 구성에 대해 설명하지 않습니다. 사용 가능한 다양한 배포 구성에 대한 자세한 내용은 장치의 제품 설명서를 참조하십시오.

배포하려는 결과 백엔드 구성과 해당 설정을 잘 알고 있는 경우 이 문서를 참조하여 director를 통해 오케스트레이션하는 방법에 대한 지침을 참조하십시오.

참고

현재 Director에는 Dell EqualLogic 백엔드의 단일 인스턴스를 배포하는 통합 구성 요소만 있습니다. 따라서 이 문서는 단일 백엔드의 배포에만 대해 설명합니다.

Dell EqualLogic 백엔드 인스턴스를 여러 개 배포하려면 사용자 지정 백엔드 구성이 필요합니다. 자세한 내용은 사용자 지정 블록 스토리지 백엔드 배포 가이드 를 참조하십시오.

Dell Storage Center 백엔드를 사용하여 RHOSP(Red Hat OpenStack Platform)를 배포하기 전에 다음 제한 사항을 검토하십시오.

  • Dell EMC SC Series의 경우 연결되지 않은 빈 볼륨의 스냅샷은 지원되지 않습니다. 스냅샷을 진행하기 전에 볼륨을 채우거나 볼륨을 연결해야 합니다. 자세한 내용은 https://bugs.launchpad.net/cinder/+bug/1616630 에서 참조하십시오.
  • Dell EMC SC Series의 경우 cinder 백업이 지원되지 않습니다.

2장. 프로세스 설명

RHOSP(Red Hat OpenStack Platform)에는 블록 스토리지 서비스에서 지원하는 모든 Dell 장치에 필요한 드라이버가 포함되어 있습니다. 또한 director에는 장치를 오버클라우드에 백엔드로 통합하는 데 필요한 Puppet 매니페스트, 환경 파일 및 오케스트레이션 템플릿도 있습니다.

단일 Dell 장치를 백엔드로 구성하려면 기본 환경 파일을 편집하여 Overcloud 배포에 포함해야 합니다. 이 파일은 언더클라우드에서 로컬로 사용할 수 있으며 환경에 맞게 편집할 수 있습니다.

이 파일을 편집한 후 director를 통해 호출합니다. 이렇게 하면 향후 오버클라우드 업데이트를 통해 유지됩니다. 다음 섹션에서는 이 프로세스에 대해 자세히 설명합니다. 또한 기본 환경 파일에는 필요한 Block Storage 설정의 나머지 부분을 구성하는 필요한 Puppet 매니페스트 및 Orchestration(heat) 템플릿을 호출하는 데 필요한 충분한 정보가 이미 포함되어 있습니다.

3장. 단일 백엔드 정의

중요

이 섹션에서는 단일 백엔드의 배포에 대해 설명합니다. Dell EqualLogic 백엔드 인스턴스를 여러 개 배포하려면 사용자 지정 백엔드 구성이 필요합니다. 자세한 내용은 사용자 지정 블록 스토리지 백엔드 배포 가이드 를 참조하십시오.

Director 배포를 사용하면 단일 Dell EMC PS 시리즈 백엔드를 정의하는 가장 쉬운 방법은 통합 환경 파일을 사용하는 것입니다. 이 파일은 Undercloud 노드의 다음 경로에 있습니다.

/usr/share/openstack-tripleo-heat-templates/environments/cinder-dellps-config.yaml

이 파일을 편집하여 나중에 호출할 수 있는 로컬 경로에 복사합니다. 예를 들어 ~/templates/:에 복사하려면 다음을 수행합니다.

$ cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-dellps-config.yaml ~/templates/

그런 다음 사본 (~/templates/cinder-dellps-config.yaml)을 열고 필요에 따라 편집합니다. 다음 코드 조각은 이 파일의 기본 콘텐츠를 표시합니다.

# A Heat environment file which can be used to enable a
# a Cinder EMC PS Series backend, configured via puppet
resource_registry:
  OS::TripleO::Services::CinderBackendDellPs: ../puppet/services/cinder-backend-dellps.yaml # 1

parameter_defaults: # 2
  CinderEnableDellPsBackend: true # 3
  CinderDellPsBackendName: 'tripleo_dellps'
  CinderDellPsSanIp: ''
  CinderDellPsSanLogin: ''
  CinderDellPsSanPassword: ''
  CinderDellPsSanThinProvision: true
  CinderDellPsGroupname: 'group-0'
  CinderDellPsPool: 'default'
  CinderDellPsChapLogin: ''
  CinderDellPsChapPassword: ''
  CinderDellPsUseChap: false
1
resource_registry 섹션의 OS::TripleO::Services::CinderBackendDellPs 매개변수는 cinder-backend-dellps.yaml 이라는 구성 가능 서비스 템플릿을 나타냅니다. director는 이 템플릿을 사용하여 백엔드를 구성하는 데 필요한 리소스를 로드합니다. 기본적으로 매개변수는 cinder-backend-dellps.yaml 의 경로를 상대적으로 지정합니다. 따라서 파일의 절대 경로를 사용하여 이 매개변수를 업데이트합니다.
resource_registry:
  OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/services/cinder-backend-dellps.yaml
2
parameter_defaults 섹션에는 백엔드 정의가 포함되어 있습니다. 특히 Director가 cinder-backend-dellps.yaml 에 정의된 리소스로 전달해야 하는 매개 변수가 포함되어 있습니다.
3
CinderEnableDellPsBackend: true 행은 Director에 Dell EMC PS Series 백엔드의 기본 설정에 필요한 Puppet 매니페스트를 사용하도록 지시합니다. 여기에는 블록 스토리지 서비스에서 사용해야 하는 볼륨 드라이버 정의(특히 cinder.volume.drivers.dell_emc.ps.PSSeriesISCSIDriver)가 포함됩니다.

Dell EMC PS 시리즈 백엔드를 정의하려면 매개변수_defaults 섹션의 설정을 편집합니다. 다음 표에서는 각 매개변수를 설명하고 해당 /etc/cinder/cinder.conf 설정도 나열합니다.

표 3.1. Dell EMC PS Series 설정

매개변수/etc/cinder/cinder.conf setting설명

CinderDellPsBackendName

volume_backend_name

볼륨 백엔드를 식별하는 임의의 이름입니다.

CinderDellPsSanIp

san_ip

SSH를 통해 Dell EMC PS 시리즈 그룹에 연결하는 데 사용되는 IP 주소입니다.

CinderDellPsSanLogin

san_login

CinderDellPsSanIp 에서 SSH를 통해 그룹 관리자에 로그인할 사용자 이름입니다. 기본 사용자 이름은 grp admin 입니다.

CinderDellPsSanPassword

san_password

CinderDellPsSanLogin 의 해당 암호입니다. 기본 암호는 password 입니다.

CinderDellPsSanThinProvision

san_thin_provision

이 설정에 필요한 대로 SAN 볼륨의 씬 프로비저닝 활성화(true)를 설정합니다.

CinderDellPsGroupname

eqlx_group_name

블록 스토리지 서비스가 볼륨 및 스냅샷을 생성할 풀에 사용할 그룹입니다. 기본 그룹은 group-0 입니다.

CinderDellPsPool

eqlx_pool

블록 스토리지 서비스가 볼륨 및 스냅샷을 생성하는 풀입니다. 이 옵션은 단일 Dell EMC PS 시리즈 그룹에서 블록 스토리지 서비스에서 사용하는 여러 풀에는 사용할 수 없습니다. 기본 풀은 기본 입니다.

CinderDellPsChapLogin

eqlx_chap_login

풀의 각 볼륨에 대한 CHAP 로그인 계정입니다. 기본 계정 이름은 chapadmin 입니다.

CinderDellPsChapPassword

eqlx_chap_password

CinderDellPsChapLogin 의 해당 암호입니다. 기본 암호는 16진수로 임의로 생성되므로 이 암호를 수동으로 설정해야 합니다.

CinderDellPsUseChap

eqlx_use_chap

CHAP 인증이 비활성화(기본적으로false ) 또는 enabled(true)인지 여부를 설정합니다.

4장. 구성된 백엔드 배포

Director 설치에서는 루트가 아닌 사용자를 사용하여 블록 스토리지 백엔드 배포를 오케스트레이션하는 명령을 실행합니다. 이 목적으로 Director 설치 사용자 생성 에서 stack 이라는 사용자가 생성됩니다. 이 사용자는 승격된 권한으로 구성됩니다.

3장. 단일 백엔드 정의 에 구성된 lone 백엔드를 배포하려면 먼저 stack 사용자로 Undercloud에 로그인합니다. 그런 다음 다음을 실행하여 백엔드(Edit ~/templates/cinder-dellps-config.yaml)를 배포합니다.

$ openstack overcloud deploy --templates -e ~/templates/cinder-dellps-config.yaml
중요

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

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

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

백엔드를 배포한 후 해당 백엔드에 볼륨을 만들 수 있는지 여부를 테스트합니다. 이렇게 하려면 필요한 환경 변수를 먼저 로드해야 합니다. 이러한 변수는 기본적으로 /home/stack/overcloudrc 에 정의됩니다.

이러한 변수를 로드하려면 stack 사용자로 다음 명령을 실행합니다.

$ source /home/stack/overcloudrc
참고

자세한 내용은 오버클라우드 액세스를 참조하십시오.

이제 컨트롤러 노드에 로그인해야 합니다. 여기에서 사용할 백엔드를 지정하는 데 사용할 수 있는 볼륨 유형 을 만들 수 있습니다(이 경우 새로 정의된 백엔드 3장. 단일 백엔드 정의). 이는 다른 백엔드를 활성화한 OpenStack 배포에 필요합니다( director를 통해서도).

dellps 라는 볼륨 유형을 생성하려면 다음을 실행합니다.

$ cinder type-create dellps

다음으로 이 볼륨 유형을 에 정의된 백엔드에 매핑합니다. 백엔드 이름 tripleo_dellps ( CinderDellPsBackendName 매개변수를 통해 정의됨)가 xref:edityaml[에서 정의한 대로)을 실행합니다.

$ cinder type-key dellps set volume_backend_name=tripleo_dellps

이제 볼륨 유형을 호출하여 새로 정의된 백엔드에 2GB 볼륨을 만들 수 있습니다. 이를 수행하려면 다음을 실행합니다.

$ cinder create --volume-type dellps 2

6장. Address Volume Size Dell EqualLogic BackEnds와의 불일치

볼륨 크기를 보고할 때 Dell EqualLogic (EQL) 백엔드도 내부 볼륨 메타데이터에 사용할 추가 스토리지를 제공합니다. 이 크기는 블록 스토리지 서비스에서 보고한 볼륨 크기보다 약간 큽니다. 그러나 EQL 백엔드에서 보고한 볼륨 크기는 이미지 서비스에서 사용하는 것과 동일합니다.

결과적으로 EQL 백엔드에 이미지 지원 볼륨을 생성할 때 이미지 크기를 먼저 확인합니다. 이미지가 원래 볼륨 백업된 경우 EQL(및 확장에 따라)은 블록 스토리지 서비스에서 보고하는 볼륨 크기보다 약간 큰 볼륨 크기를 보고합니다.

EQL에서 보고한 이미지 크기가 약간 크면 이 이미지에서 지원하는 볼륨을 생성할 때 크기 불일치를 고려해야 합니다.

6.1. 예제

예를 들어, 1GB 볼륨을 생성하는 경우 다음을 수행하십시오.

# Cinder create --display-name vol1 1

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2014-12-19T03:57:47.730359      |
| display_description |                 None                 |
|     display_name    |                 vol1                 |
|      encrypted      |                False                 |
|          id         | 6bdace69-bd41-42fc-a63a-f834fb65a2e4 |
|       metadata      |                  {}                  |
|         size        |                  1                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

블록 스토리지 서비스는 1GB의 볼륨 크기를 보고하지만 EQL 배열에서는 크기(VolReserve)가 약간 커집니다.

eql> volume select volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4

eql (volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4)> show

_______________________________ Volume Information ______...
Name: volume-6bdace69-bd41-42fc-a63a-f834fb65a2e4
Size: 1GB
VolReserve: 1.01GB
...

이 볼륨에서 새 이미지를 생성하면 cinder 에서 올바른 볼륨 크기 1GB를 보고합니다.

# Cinder upload-to-image --disk-format raw --container-format bare vol1 image_vol1

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|   container_format  |                 bare                 |
|     disk_format     |                 raw                  |
| display_description |                 None                 |
|          id         | 6bdace69-bd41-42fc-a63a-f834fb65a2e4 |
|       image_id      | c65f7eae-e2c1-44ba-8af1-e33695897559 |
|      image_name     |              image_vol1              |
|         size        |                  1                   |
|        status       |              uploading               |
|      updated_at     |      2014-12-19T03:57:48.000000      |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

그러나 이미지 서비스는 약간 더 큰 크기를 보고합니다.

# glance image-list

...+------------+-------------+------------------+------------+--------+
...| Name       | Disk Format | Container Format | Size       | Status |
...+------------+-------------+------------------+------------+--------+
...| image_vol1 | raw         | bare             | 1085276160 | active |
...+------------+-------------+------------------+------------+--------+

Glance 툴은 약 1.01GB의 이미지 크기를 보고합니다. 결과적으로 이 이미지에서 지원하는 새 1GB 볼륨을 생성하는 데 실패합니다.

# cinder create --display-name vol2 --image-id c65f7eae-e2c1-44ba-8af1-e33695897559 1

ERROR: Invalid input received: Size of specified image 2 is larger than volume size 1

6.2. 해결방법

앞에서 언급했듯이 이미지 지원 볼륨의 크기를 지정할 때 Image에서 보고한 볼륨 크기와 블록 스토리지 서비스 간의 불일치를 고려해야 합니다. 즉, 이미지 지원 볼륨의 크기를 지정할 때 Glance에서 보고한 이미지 크기 다음에 다음 정수를 사용합니다.

앞의 예제를 사용하여 Glance 에서 이미지 크기를 1.01GB로 보고했습니다. 즉, 볼륨을 생성할 때 1GB 대신 볼륨 크기를 2GB로 지정해야 합니다.

# cinder create --display-name vol2 --image-id c65f7eae-e2c1-44ba-8af1-e33695897559 2

+---------------------+--------------------------------------+
|       Property      |                Value                 |
+---------------------+--------------------------------------+
|     attachments     |                  []                  |
|  availability_zone  |                 nova                 |
|       bootable      |                false                 |
|      created_at     |      2014-12-19T04:54:07.036260      |
| display_description |                 None                 |
|     display_name    |                 vol2                 |
|      encrypted      |                False                 |
|          id         | fcf49715-094d-4bba-9f05-8b7fa6deffce |
|       image_id      | c65f7eae-e2c1-44ba-8af1-e33695897559 |
|       metadata      |                  {}                  |
|         size        |                  2                   |
|     snapshot_id     |                 None                 |
|     source_volid    |                 None                 |
|        status       |               creating               |
|     volume_type     |                 None                 |
+---------------------+--------------------------------------+

법적 공지

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.