2.2. NFS를 통해 CephFS 및 사용자 지정 network_data 파일을 사용하여 RHOSP(Red Hat OpenStack Platform) 설치
NFS를 통해 CephFS를 설치하려면 다음 절차를 완료합니다.
- ceph-ansible 패키지를 설치합니다. 보기 2.2.1절. “ceph-ansible 패키지 설치”
-
사용자 지정 역할 파일,
roles_data.yaml및network_data.yaml파일을 생성합니다. 보기 2.2.1.1절. “사용자 지정 역할 파일 생성” -
사용자 지정 역할 및 환경과 함께
openstack overcloud deploy명령을 사용하여 Ceph, 공유 파일 시스템 서비스(manila) 및 CephFS를 배포합니다. 보기 2.2.2절. “업데이트된 환경 배포” - 격리된 StorageNFS 네트워크를 구성하고 기본 공유 유형을 생성합니다. 보기 2.2.3절. “배포 후 구성 완료”
RHOSP(Red Hat Platform) 환경에서는 표준 stack 사용자를 사용합니다.
RHOSP 설치 또는 환경 업데이트의 일부로 작업을 수행합니다.
2.2.1. ceph-ansible 패키지 설치 링크 복사링크가 클립보드에 복사되었습니다!
언더클라우드 노드에 설치할 ceph-ansible 패키지를 설치하여 컨테이너화된 Ceph를 배포합니다.
절차
-
stack사용자로 언더클라우드 노드에 로그인합니다. ceph-ansible 패키지를 설치합니다.
[stack@undercloud-0 ~]$ sudo dnf install -y ceph-ansible [stack@undercloud-0 ~]$ sudo dnf list ceph-ansible ... Installed Packages ceph-ansible.noarch 4.0.23-1.el8cp @rhelosp-ceph-4-tools
2.2.1.1. 사용자 지정 역할 파일 생성 링크 복사링크가 클립보드에 복사되었습니다!
ControllerStorageNFS 사용자 지정 역할은 격리된 StorageNFS 네트워크를 구성합니다. 이 역할은 OS::TripleO::Services:CephNfs 명령으로 표시된 StorageNFS 네트워크 및 CephNfs 서비스를 추가하는 기본 Controller.yaml 역할 파일과 유사합니다.
[stack@undercloud ~]$ cd /usr/share/openstack-tripleo-heat-templates/roles
[stack@undercloud roles]$ diff Controller.yaml ControllerStorageNfs.yaml
16a17
> - StorageNFS
50a45
> - OS::TripleO::Services::CephNfs
openstack overcloud roles generate 명령에 대한 자세한 내용은 Advanced Overcloud Customization 가이드의 Roles 를 참조하십시오.
openstack overcloud roles generate 명령은 -o 다음에 지정된 서비스를 포함하여 사용자 지정 roles_data.yaml 파일을 생성합니다. 다음 예제에서 생성된 roles_data.yaml 파일에는 ControllerStorageNfs, 에 대한 서비스가 있습니다.
Compute 및 CephStorage
기존 roles_data.yaml 파일이 있는 경우 이를 수정하여 ControllerStorageNfs,Compute 및 CephStorage 서비스를 구성 파일에 추가합니다. 자세한 내용은 Advanced Overcloud Customization 가이드의 Roles 를 참조하십시오.
절차
-
stack사용자로 언더클라우드 노드에 로그인합니다. openstack overcloud roles generate명령을 사용하여roles_data.yaml파일을 생성합니다.[stack@undercloud ~]$ openstack overcloud roles generate --roles-path /usr/share/openstack-tripleo-heat-templates/roles -o /home/stack/roles_data.yaml ControllerStorageNfs Compute CephStorage
2.2.2. 업데이트된 환경 배포 링크 복사링크가 클립보드에 복사되었습니다!
환경을 배포할 준비가 되면 NFS-Ganesha를 사용하여 CephFS를 실행하는 데 필요한 사용자 지정 환경 및 역할과 함께 openstack overcloud deploy 명령을 사용합니다.
Overcloud deploy 명령에는 기타 필수 옵션 외에 다음 옵션이 있습니다.
| 동작 | 옵션 | 추가 정보 |
|---|---|---|
|
network |
| |
|
이전 섹션의 |
| |
|
|
| Deploying an Overcloud with Containerized Red Hat Ceph 가이드에서 Overcloud 배포 시작 가이드. |
|
|
| Deploying an Overcloud with Containerized Red Hat Ceph 가이드에서 오버클라우드 배포 시작 가이드 |
| NFS 백엔드를 통해 CephFS를 사용하여 공유 파일 시스템(manila) 서비스를 배포합니다. director를 사용하여 NFS-Ganesha를 구성합니다. |
|
다음 예제에서는 NFS-Ganesha, Ceph 클러스터, Ceph MDS 및 격리된 StorageNFS 네트워크를 통해 CephFS를 배포하는 옵션이 포함된 openstack overcloud deploy 명령을 보여줍니다.
[stack@undercloud ~]$ openstack overcloud deploy \
--templates /usr/share/openstack-tripleo-heat-templates \
-n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml \
-r /home/stack/roles_data.yaml \
-e /home/stack/containers-default-parameters.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml \
-e /home/stack/network-environment.yaml \
-e/usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml \
-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
openstack overcloud deploy 명령에 대한 자세한 내용은 Director 설치 및 사용 가이드의 Deployment 명령을 참조하십시오.
2.2.2.1. StorageNFS 및 network_data_ganesha.yaml 파일 링크 복사링크가 클립보드에 복사되었습니다!
구성 가능 네트워크를 사용하여 사용자 지정 네트워크를 정의하고 역할에 할당합니다. 표준 network_data.yaml 파일을 사용하는 대신 network_ data_ganesha.yaml 파일을 사용하여 StorageNFS 구성 가능 네트워크를 구성할 수 있습니다. 이 두 역할은 /usr/share/openstack-tripleo-heat-templates 디렉터리에서 사용할 수 있습니다.
network_data_ganesha.yaml 파일에는 격리된 StorageNFS 네트워크를 정의하는 추가 섹션이 포함되어 있습니다. 기본 설정은 대부분의 설치에서 작동하지만, VLAN ID, 서브넷 및 기타 설정을 포함한 네트워크 설정을 추가하도록 YAML 파일을 편집해야 합니다.
name: StorageNFS
enabled: true
vip: true
name_lower: storage_nfs
vlan: 70
ip_subnet: '172.17.0.0/20'
allocation_pools: [{'start': '172.17.0.4', 'end': '172.17.0.250'}]
ipv6_subnet: 'fd00:fd00:fd00:7000::/64'
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:7000::4', 'end': 'fd00:fd00:fd00:7000::fffe'}]
구성 가능한 네트워크에 대한 자세한 내용은 Advanced Overcloud Customization 가이드에서 Composable Networks 사용을 참조하십시오.
2.2.2.2. CephFS 백엔드 환경 파일 링크 복사링크가 클립보드에 복사되었습니다!
CephFS 백엔드인 manila-cephfsganesha-config.yaml 을 정의하는 통합 환경 파일은 /usr/share/openstack-tripleo-heat-templates/environments/ 에 있습니다.
manila-cephfsganesha-config.yaml 환경 파일에는 Shared File Systems 서비스(manila)의 배포와 관련된 설정이 포함되어 있습니다. 백엔드 기본 설정은 대부분의 환경에서 작동합니다. 다음 예에서는 director에서 공유 파일 시스템 서비스를 배포하는 동안 사용하는 기본값을 보여줍니다.
[stack@undercloud ~]$ cat /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
# A Heat environment file which can be used to enable a
# a Manila CephFS-NFS driver backend.
resource_registry:
OS::TripleO::Services::ManilaApi: ../deployment/manila/manila-api-container-puppet.yaml
OS::TripleO::Services::ManilaScheduler: ../deployment/manila/manila-scheduler-container-puppet.yaml
# Only manila-share is pacemaker managed:
OS::TripleO::Services::ManilaShare: ../deployment/manila/manila-share-pacemaker-puppet.yaml
OS::TripleO::Services::ManilaBackendCephFs: ../deployment/manila/manila-backend-cephfs.yaml
# ceph-nfs (ganesha) service is installed and configured by ceph-ansible
# but it's still managed by pacemaker
OS::TripleO::Services::CephNfs: ../deployment/ceph-ansible/ceph-nfs.yaml
parameter_defaults:
ManilaCephFSBackendName: cephfs
ManilaCephFSDriverHandlesShareServers: false
ManilaCephFSCephFSAuthId: 'manila'
ManilaCephFSCephFSEnableSnapshots: false
# manila cephfs driver supports either native cephfs backend - 'CEPHFS'
# (users mount shares directly from ceph cluster), or nfs-ganesha backend -
# 'NFS' (users mount shares through nfs-ganesha server)
ManilaCephFSCephFSProtocolHelperType: 'NFS'
parameter_defaults 헤더는 구성을 시작하는 것을 나타냅니다. 이 섹션에서는 설정을 편집하여 resource_registry 에 설정된 기본값을 재정의할 수 있습니다. 여기에는 CephFS 백엔드의 기본값을 설정하는 OS::Tripleo::Services::ManilaBackendCephFs 로 설정된 값이 포함됩니다.
- 1
ManilaCephFSBackendName은 CephFS 백엔드의 manila 구성 이름을 설정합니다. 이 경우 기본 백엔드 이름은cephfs입니다.- 2
ManilaCephFSDriverHandlesShareServers는 공유 서버의 라이프사이클을 제어합니다.false로 설정하면드라이버에서 라이프사이클을 처리하지 않습니다. 지원되는 유일한 옵션입니다.- 3
ManilaCephFSAuthId는 director에서 Ceph 클러스터에 액세스하기 위해 생성한Ceph인증 ID를 정의합니다.- 4
ManilaCephFSCephFSEnableSnapshots는스냅샷 활성화를 제어합니다.false값은 스냅샷이 활성화되지 않았음을 나타냅니다. 이 기능은 현재 지원되지 않습니다.
환경 파일에 대한 자세한 내용은 Director 설치 및 사용 가이드 의 환경 파일을 참조하십시오.
2.2.3. 배포 후 구성 완료 링크 복사링크가 클립보드에 복사되었습니다!
NFS 공유를 만들고 사용자 액세스 권한을 부여하며 NFS 공유를 마운트하기 전에 배포 후 구성 작업을 완료해야 합니다.
- 네트워킹 서비스(neutron) StorageNFS 네트워크를 격리된 데이터 센터 Storage NFS 네트워크에 매핑합니다.
- 기본 공유 유형을 생성합니다.
이러한 단계를 완료하고 나면 테넌트 compute 인스턴스가 NFS 공유를 생성, 허용 및 마운트할 수 있습니다.
2.2.3.1. 스토리지 공급자 네트워크 생성 링크 복사링크가 클립보드에 복사되었습니다!
격리된 새로운 StorageNFS 네트워크를 네트워킹(neutron) 프로바이더 네트워크에 매핑해야 합니다. 계산 VM은 네트워크에 연결하여 NFS-Ganesha 게이트웨이에서 제공하는 공유 내보내기 위치에 액세스합니다.
공유 파일 시스템 서비스를 사용한 네트워크 보안에 대한 자세한 내용은 보안 및 강화 가이드에서 공유 파일 시스템 서비스 강화를 참조하십시오.
절차
openstack network create 명령은 StorageNFS neutron 네트워크의 구성을 정의합니다.
언더클라우드 노드에서 다음 명령을 입력합니다.
[stack@undercloud ~]$ source ~/overcloudrc언더클라우드 노드에서 StorageNFS 네트워크를 생성합니다.
(overcloud) [stack@undercloud-0 ~]$ openstack network create StorageNFS --share --provider-network-type vlan --provider-physical-network datacentre --provider-segment 70다음 옵션을 사용하여 이 명령을 입력할 수 있습니다.
-
tripleo-heat
-templates에서 NeutronBridgeMappings를 통해 br-isolated 브리지에 대한 다른 태그를 설정하지 않는 한 --provider-physical-network옵션의 경우 기본값datacentre를 사용합니다. -
provider
-segment옵션의 경우 heat 템플릿에서 StorageNFS 격리 네트워크에 설정된 VLAN 값/usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml을 사용합니다. 배포자가 격리된 네트워크 정의를 수정하지 않는 한 이 값은 70입니다. -
provider
-network-type옵션의 경우vlan값을 사용합니다.
-
tripleo-heat
2.2.3.2. 공유 공급자 StorageNFS 네트워크 구성 링크 복사링크가 클립보드에 복사되었습니다!
neutron-shared 프로바이더 네트워크에서 해당 StorageNFSSubnet 을 생성합니다. 서브넷이 network_ data.yml 파일의 정의와 같은지 확인하고 storage_nfs 네트워크StorageNFS 서브넷의 할당 범위와 해당 언더클라우드 서브넷이 겹치지 않는지 확인합니다. StorageNFS 서브넷은 NFS 공유를 제공하는 전용이므로 게이트웨이가 필요하지 않습니다.
사전 요구 사항
- 할당 풀의 시작 및 끝 IP 범위.
- 서브넷 IP 범위.