Dell EqualLogic 백엔드 가이드
Red Hat OpenStack Platform Overcloud에서 Dell EqualLogic Storage 사용 가이드
초록
1장. 소개 링크 복사링크가 클립보드에 복사되었습니다!
이 문서에서는 하나 이상의 Dell EqualLogic 백엔드를 사용하도록 OpenStack을 구성하는 방법을 설명합니다. 또한 Dell EqualLogic 장치와 OpenStack 블록 스토리지 서비스 간의 볼륨 크기 불일치를 처리하는 방법에 대한 지침이 포함되어 있습니다.
다음 섹션에서는 다음을 가정합니다.
- 블록 스토리지 백엔드에는 Dell EqualLogic 장치 및 드라이버만 사용하려고 합니다.
- OpenStack Overcloud는 Director를 통해 이미 배포되었으며 올바르게 작동하는 블록 스토리지 서비스
- Dell 스토리지 장치는 이미 스토리지 리포지토리로 배포 및 구성되었습니다.
- Dell EqualLogic 그룹은 이미 배포되어 SSH를 통해 액세스할 수 있습니다.
- 사용 가능한 Dell EqualLogic Group의 그룹 관리자(즉, CHAP 및 그룹 관리자 인증 정보)에 연결하는 데 필요한 인증 정보가 있습니다.
-
승격된 권한이 있는 계정의 사용자 이름과 암호가 있습니다. 오버클라우드를 배포하기 위해 생성된 것과 동일한 계정을 사용할 수 있습니다. Director 설치 사용자 생성 에서 이 목적을 위해
stack사용자를 생성하고 사용합니다.
Director를 통해 RHEL OpenStack Platform을 배포할 때 모든 주요 오버클라우드 설정(특히, 블록 스토리지 서비스 백엔드)도 Director를 통해 정의하고 오케스트레이션해야 합니다. 이렇게 하면 추가 Overcloud 업데이트를 통해 설정이 유지됩니다. Director를 통해 OpenStack을 배포하는 방법에 대한 자세한 내용은 Director 설치 및 사용을 참조하십시오.
이 문서의 목적은 Overcloud의 블록 스토리지 서비스에 대해 원하는 Dell EqualLogic 백엔드 구성을 오케스트레이션하는 방법을 설명하는 것입니다. 이 문서에서는 백엔드와 함께 사용 가능한 다양한 배포 구성에 대해 설명하지 않습니다. 대신 사용 가능한 다양한 배포 구성에 대한 자세한 내용은 장치의 제품 설명서를 참조하십시오.
배포하려는 결과 백엔드 구성(및 해당 설정)에 익숙하면 Director를 통해 오케스트레이션하는 방법에 대한 지침은 이 문서를 참조하십시오.
현재 Director에는 Dell EqualLogic 백엔드의 단일 인스턴스를 배포하기 위한 통합 구성 요소만 있습니다. 따라서 이 문서에서는 단일 백엔드의 배포만 설명합니다.
Dell EqualLogic 백엔드의 여러 인스턴스를 배포하려면 사용자 정의 백엔드 구성이 필요합니다. 자세한 내용은 사용자 지정 블록 스토리지 백엔드 배포 가이드를 참조하십시오.
2장. 프로세스 설명 링크 복사링크가 클립보드에 복사되었습니다!
RHEL OpenStack Platform에는 블록 스토리지 서비스에서 지원하는 모든 Dell 장치에 필요한 모든 드라이버가 포함되어 있습니다. 또한 Director에는 장치를 Overcloud의 백엔드로 통합하는 데 필요한 Puppet 매니페스트, 환경 파일 및 오케스트레이션 템플릿도 있습니다.
단일 Dell 장치를 백엔드로 구성하려면 기본 환경 파일을 편집하고 Overcloud 배포에 포함해야 합니다. 이 파일은 Undercloud에서 로컬로 사용할 수 있으며 환경에 맞게 편집할 수 있습니다.
이 파일을 편집한 후 Director를 통해 호출합니다. 이렇게 하면 향후 Overcloud 업데이트를 통해 유지될 수 있습니다. 다음 섹션에서는 이 프로세스에 대해 자세히 설명합니다. 또한 기본 환경 파일에는 필수 블록 스토리지 설정의 나머지 부분을 구성하는 데 필요한 Puppet 매니페스트 및 오케스트레이션(Heat) 템플릿을 호출하는 데 필요한 정보가 이미 포함되어 있습니다.
3장. 단일 백엔드 정의 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 단일 백엔드의 배포에 대해 설명합니다. Dell EqualLogic 백엔드의 여러 인스턴스를 배포하려면 사용자 정의 백엔드 구성이 필요합니다. 자세한 내용은 사용자 지정 블록 스토리지 백엔드 배포 가이드를 참조하십시오.
Director 배포를 통해 단일 Dell EqualLogic 백엔드를 정의하는 가장 쉬운 방법은 통합 환경 파일을 사용하는 것입니다. 이 파일은 Undercloud 노드의 다음 경로에 있습니다.
/usr/share/openstack-tripleo-heat-templates/environments/cinder-eqlx-config.yaml
이 파일을 편집하고 나중에 호출할 수 있는 로컬 경로에 복사합니다. 예를 들어 ~/templates/:에 복사하려면 다음을 수행합니다.
$ cp /usr/share/openstack-tripleo-heat-templates/environments/cinder-eqlx-config.yaml ~/templates/
그런 다음 복사(~/templates/cinder-eqlx-config.yaml)를 열고 적합한 대로 편집합니다. 다음 스니펫에는 이 파일의 기본 콘텐츠가 표시됩니다.
# A Heat environment file which can be used to enable a
# a Cinder eqlx backen, configured via puppet
resource_registry:
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/cinder-eqlx.yaml #
parameter_defaults: #
CinderEnableEqlxBackend: true #
CinderEqlxBackendName: 'tripleo_eqlx'
CinderEqlxSanIp: ''
CinderEqlxSanLogin: ''
CinderEqlxSanPassword: ''
CinderEqlxSanThinProvision: true
CinderEqlxGroupname: 'group-0'
CinderEqlxPool: 'default'
CinderEqlxChapLogin: ''
CinderEqlxChapPassword: ''
CinderEqlxUseChap: false
- 1
resource_registry섹션의 OS::TripleO::ControllerExtraConfigPre: 매개변수는cinder-eqlx.yaml이라는 Heat 템플릿을 나타냅니다. 이 템플릿은 Director에서 백엔드를 구성하는 데 필요한 리소스를 로드하는 데 사용해야 하는 템플릿입니다. 기본적으로 매개 변수는cinder-eqlx.yaml의 경로를 상대적으로 지정합니다. 따라서 이 매개변수를 파일의 절대 경로로 업데이트합니다.resource_registry: OS::TripleO::ControllerExtraConfigPre: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/pre_deploy/controller/cinder-eqlx.yaml- 2
- parameter_defaults 섹션에는 백엔드 정의가 포함되어 있습니다. 특히 director가
cinder-eqlx.yaml에 정의된 리소스에 전달해야 하는 매개변수가 포함되어 있습니다. - 3
- CinderEnableEqlxBackend: true 행은 Dell EqualLogic 백엔드의 기본 구성에 필요한 puppet 매니페스트를 사용하도록 지시합니다. 여기에는 블록 스토리지 서비스에서 사용할 볼륨 드라이버(특히
cinder.volume.drivers.eqlx.DellEQLSanISCSIDriver)를 정의하는 작업이 포함됩니다.
Dell EqualLogic 백엔드를 정의하려면 적합한 대로 parameter_defaults 섹션에서 설정을 편집합니다. 다음 표에서는 각 매개변수를 설명하고 해당 /etc/cinder/cinder.conf 설정도 나열합니다.
| 매개변수 | /etc/cinder/cinder.conf setting | 설명 |
|---|---|---|
| CinderEqlxBackendName | volume_backend_name | 볼륨 백엔드를 식별하는 임의의 이름입니다. |
| CinderEqlxSanIp | san_ip | SSH를 통해 Dell EqualLogic 그룹에 연결하는 데 사용되는 IP 주소입니다. |
| CinderEqlxSanLogin | san_login |
CinderEqlxSanIp 에서 SSH를 통해 그룹 관리자에 로그인할 사용자 이름입니다. 기본 사용자 이름은 |
| CinderEqlxSanPassword | san_password |
CinderEqlxSanLogin 의 해당 암호입니다. 기본 암호는 |
| CinderEqlxSanThinProvision | san_thin_provision |
이 설정에 필요한 대로 SAN 볼륨의 씬 프로비저닝( |
| CinderEqlxGroupname | eqlx_group_name |
블록 스토리지 서비스가 볼륨과 스냅샷을 생성하는 풀에 사용할 그룹입니다. 기본 그룹은 |
| CinderEqlxPool | eqlx_pool |
블록 스토리지 서비스에서 볼륨과 스냅샷을 생성하는 풀입니다. 이 옵션은 단일 Dell EqualLogic 그룹의 Block Storage 서비스에서 사용하는 여러 풀에 사용할 수 없습니다. 기본 풀은 |
| CinderEqlxChapLogin | eqlx_chap_login |
풀의 각 볼륨의 CHAP 로그인 계정입니다. 기본 계정 이름은 |
| CinderEqlxChapPassword | eqlx_chap_password | CinderEqlxChapLogin 의 해당 암호입니다. 기본 암호는 16진수로 임의로 생성되므로 이 암호를 수동으로 설정해야 합니다. |
| CinderEqlxUseChap | eqlx_use_chap |
CHAP 인증이 비활성화되었는지(기본적으로 |
4장. 구성된 백엔드 배포 링크 복사링크가 클립보드에 복사되었습니다!
Director 설치에서는 root가 아닌 사용자를 사용하여 명령을 실행합니다. 여기에는 블록 스토리지 백엔드의 배포 오케스트레이션이 포함됩니다. Director 설치 사용자 생성 에서 이 목적을 위해 stack 이라는 사용자를 생성합니다. 이 사용자는 상승된 권한으로 구성됩니다.
3장. 단일 백엔드 정의 에 구성된 lone 백엔드를 배포하려면 먼저 stack 사용자로 언더클라우드에 로그인합니다. 그런 다음 다음을 실행하여 백엔드(편집된 ~/templates/cinder-eqlx-config.yaml)를 배포합니다.
$ openstack overcloud deploy --templates -e ~/templates/cinder-eqlx-config.yaml
Overcloud를 생성할 때 추가 환경 파일을 전달한 경우 Overcloud를 원하지 않는 변경을 방지하기 위해 -e 옵션을 사용하여 여기에서 다시 전달합니다.
자세한 내용은 Overcloud 확장 및 오버클라우드 업데이트를 참조하십시오.
Director가 오케스트레이션을 완료하면 백엔드를 테스트합니다. 자세한 내용은 5장. 구성된 백엔드 테스트 을 참조하십시오.
5장. 구성된 백엔드 테스트 링크 복사링크가 클립보드에 복사되었습니다!
백엔드를 배포한 후 볼륨을 생성할 수 있는지 테스트합니다. 이렇게 하려면 먼저 필요한 환경 변수를 로드해야 합니다. 이러한 변수는 기본적으로 /home/stack/overcloudrc 에 정의됩니다.
이러한 변수를 로드하려면 stack 사용자로 다음 명령을 실행합니다.
$ source /home/stack/overcloudrc
자세한 내용은 기본 오버클라우드 액세스를 참조하십시오.
이제 컨트롤러 노드에 로그인해야 합니다. 여기에서 사용할 백엔드를 지정하는 데 사용할 볼륨 유형을 생성할 수 있습니다(이 경우 3장. 단일 백엔드 정의에서 새로 정의된 백엔드). 이는 다른 백엔드가 활성화된 OpenStack 배포에서 필요합니다(이전에는 Director를 통해).
delleql 이라는 볼륨 유형을 생성하려면 다음을 실행합니다.
$ cinder type-create delleql
다음으로 이 볼륨 유형을 에 정의된 백엔드에 매핑합니다. 백엔드 이름 tripleo_eqlx ( CinderEqlx를 통해 정의되는 대로 xref:edityaml[에서 CinderEqlxBackendName 매개변수를 통해 정의됨)가 지정된 경우 다음을 실행합니다.
$ cinder type-key delleql set volume_backend_name=tripleo_eqlx
이제 볼륨 유형을 호출하여 새로 정의된 백엔드에 2GB 볼륨을 만들 수 있습니다. 이렇게 하려면 다음을 실행합니다.
$ cinder create --volume-type delleql 2
6장. Address Volume Size Discrepancies with Dell EqualLogic Back Ends 링크 복사링크가 클립보드에 복사되었습니다!
볼륨 크기를 보고할 때 EQL(EqualLogic) 백엔드도 내부 볼륨 메타데이터에 사용할 추가 스토리지를 고려합니다. 이 크기는 블록 스토리지 서비스에서 보고된 볼륨 크기보다 약간 큽니다. 그러나 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)>
_______________________________ 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 및 Block Storage 서비스에서 보고한 볼륨 크기 간의 불일치를 고려해야 합니다. 즉, 이미지 지원 볼륨의 크기를 지정할 때 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 |
+---------------------+--------------------------------------+