2.2. NFS를 통해 CephFS를 사용하여 OpenStack 설치 및 사용자 지정 network_data 파일


NFS를 통해 CephFS를 설치하려면 다음이 포함됩니다.

  1. ceph-ansible 패키지 설치.
  2. openstack overcloud image prepare 명령을 사용하여 오버클라우드 컨테이너 이미지 준비
  3. 사용자 지정 역할 파일(roles_data.yaml) 및 network_data.yaml 파일을 생성합니다.
  4. 사용자 지정 역할 및 환경과 함께 openstack overcloud deploy 명령을 사용하여 Ceph, Shared File System 서비스(manila) 및 CephFS 배포.
  5. 격리된 스토리지 NFS 네트워크 구성 및 기본 공유 유형 생성.

예를 들어 OpenStack 환경에서 표준 stack 사용자를 사용합니다.

작업은 OpenStack 설치 또는 환경 업데이트와 함께 수행해야 합니다.

2.2.1. ceph-ansible 패키지 설치

OpenStack director를 사용하려면 컨테이너화된 Ceph를 배포하기 위해 ceph-ansible 패키지를 언더클라우드 노드에 설치해야 합니다.

절차

  1. 언더클라우드 노드에 로그인합니다.
  2. 상승된 권한으로 yum install 을 사용하여 ceph-ansible 패키지를 설치합니다.

    [stack@undercloud-0 ~]$ sudo yum install -y ceph-ansible
    [stack@undercloud-0 ~]$ sudo yum list ceph-ansible
    ...
    Installed Packages
    ceph-ansible.noarch 3.1.0-0.1.el7 rhelosp-13.
    Copy to Clipboard Toggle word wrap

2.2.2. 오버클라우드 컨테이너 이미지 준비

OpenStack에서 모든 서비스가 컨테이너화되므로 openstack overcloud image prepare 명령을 사용하여 Docker 이미지를 오버클라우드에 대비해야 합니다. 추가 옵션으로 이 명령을 실행하면 cephmanila 서비스의 기본 이미지가 Docker 레지스트리에 추가됩니다. Ceph MDS 및 NFS-Ganesha 서비스는 동일한 Ceph 기본 컨테이너 이미지를 사용합니다.

컨테이너 이미지에 대한 자세한 내용은 Director Installation and Usage Guide 의 추가 서비스용 컨테이너 이미지 를 참조하십시오.

절차

  1. 언더클라우드에서 -e 를 사용하여 openstack overcloud image prepare 명령을 실행하여 환경 파일을 포함합니다.

    $ openstack overcloud container image prepare \
      ...
      -e  /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml \
      -e  /usr/share/openstack-tripleo-heat-templates/environments/services-docker/manila.yaml \
      ...
    Copy to Clipboard Toggle word wrap
  2. grep을 사용하여 containers-default-parameters.yaml 파일에서 cephmanila 서비스의 기본 이미지를 사용할 수 있는지 확인합니다.

    [stack@undercloud-0 ~]$ grep -E 'ceph|manila' composable_roles/docker-images.yaml
    DockerCephDaemonImage: 192.168.24.1:8787/rhceph:3-12
    DockerManilaApiImage: 192.168.24.1:8787/rhosp13/openstack-manila-api:2018-08-22.2
    DockerManilaConfigImage: 192.168.24.1:8787/rhosp13/openstack-manila-api:2018-08-22.2
    DockerManilaSchedulerImage: 192.168.24.1:8787/rhosp13/openstack-manila-scheduler:2018-08-22.2
    DockerManilaShareImage: 192.168.24.1:8787/rhosp13/openstack-manila-share:2018-08-22.2
    Copy to Clipboard Toggle word wrap

2.2.2.1. 사용자 정의 역할 파일 생성

ControllerStorageNFS 사용자 지정 역할은 격리된 StorageNFS 네트워크를 설정하는 데 사용됩니다. 이 역할은 StorageNFS 네트워크 및 CephNfs 서비스( OS::TripleO::Services: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
Copy to Clipboard Toggle word wrap

openstack overcloud roles generate 명령에 대한 자세한 내용은 Advanced Overcloud Customization GuideRoles 섹션 을 참조하십시오.

절차

openstack overcloud roles generate 명령은 -o 뒤에 지정된 서비스를 포함하여 사용자 지정 roles_data.yaml 파일을 생성합니다. 아래 예제에서 생성된 roles_data.yaml 파일에는 ControllerStorageNfs,Compute, CephStorage의 서비스가 있습니다.

참고

기존 roles_data.yaml 파일이 있는 경우 이를 수정하여 ControllerStorageNfs,Compute, CephStorage 서비스를 구성 파일에 추가합니다. Advanced Overcloud Customization 가이드의 Roles 섹션 을 참조하십시오.

  1. 언더클라우드 노드에 로그인합니다.
  2. 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
    Copy to Clipboard Toggle word wrap

2.2.3. 업데이트된 환경 배포

환경을 배포할 준비가 되면 NFS-Ganesha를 사용하여 CephFS를 실행하는 데 필요한 사용자 지정 환경 및 역할과 함께 openstack overcloud deploy 명령을 사용합니다. 이러한 환경 및 역할은 아래에 설명되어 있습니다.

오버클라우드 배포 명령에는 다른 필수 옵션 외에 아래 옵션이 있습니다.

Expand
동작옵션추가 정보

오버클라우드 컨테이너 이미지 prepare 명령에서 업데이트된 기본 컨테이너를 추가합니다.

-e /home/stack/containers-default-parameters.yaml

2.2.2절. “오버클라우드 컨테이너 이미지 준비”

network_data_ganesha.yaml을 사용하여 추가 스토리지 NFS 네트워크를 추가합니다.

-n /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml

2.2.3.1절. “StorageNFS 및 network_data_ganesha.yaml 파일”

이전 섹션의 roles_data.yaml 파일에 정의된 사용자 지정 역할을 추가합니다.

-r /home/stack/roles_data.yaml

2.2.2.1절. “사용자 정의 역할 파일 생성”

ceph-ansible.yaml을 사용하여 Ceph 데몬 배포

-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-ansible.yaml

Containzerized Red Hat Ceph로 Overcloud 배포 시작 https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html-single/deploying_an_overcloud_with_containerized_red_hat_ceph/#Creating_the_Overcloud

ceph-mds.yaml을 사용하여 Ceph 메타데이터 서버 배포

-e /usr/share/openstack-tripleo-heat-templates/environments/ceph-ansible/ceph-mds.yaml

Containzerized Red Hat Ceph로 Overcloud 배포 시작 https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/13/html-single/deploying_an_overcloud_with_containerized_red_hat_ceph/#Creating_the_Overcloud

NFS 백엔드를 통해 CephFS를 사용하여 manila 서비스를 배포합니다. director를 통해 NFS-Ganesha를 구성합니다.

-e /usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml

2.2.3.2절. “manila-cephfsganesha-config.yaml

아래 예는 NFS-Ganesha, Ceph 클러스터, Ceph MDS 및 isolated 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  /usr/share/openstack-tripleo-heat-templates/environments/net-single-nic-with-vlans.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
Copy to Clipboard Toggle word wrap

openstack overcloud deploy 명령에 대한 자세한 내용은 Director 설치 및 사용 가이드 의 CLI 툴을 사용하여 Overcloud 생성 섹션을 참조하십시오.

2.2.3.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
ame_lower: storage_nfs
vlan: 70
ip_subnet: '172.16.4.0/24'
allocation_pools: [{'start': '172.16.4.4', 'end': '172.16.4.250'}]
ipv6_subnet: 'fd00:fd00:fd00:7000::/64'
ipv6_allocation_pools: [{'start': 'fd00:fd00:fd00:7000::10', 'end': 'fd00:fd00:fd00:7000:ffff:ffff:ffff:fffe'}]
Copy to Clipboard Toggle word wrap

구성 가능 네트워크에 대한 자세한 내용은 Advanced Overcloud Customization Guide 의 Composable Networks 사용 섹션을 참조하십시오.

2.2.3.2. manila-cephfsganesha-config.yaml

CephFS 백엔드를 정의하는 통합 환경 파일은 언더클라우드 노드의 다음 경로에 있습니다.

/usr/share/openstack-tripleo-heat-templates/environments/manila-cephfsganesha-config.yaml
Copy to Clipboard Toggle word wrap

manila-cephfsganesha-config.yaml 환경 파일에는 공유 파일 시스템 서비스와 관련된 설정이 포함되어 있습니다. 백엔드 기본 설정은 대부분의 환경에서 작동해야 합니다. 이 예에서는 공유 파일 시스템 서비스를 배포할 때 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: ../docker/services/manila-api.yaml
  OS::TripleO::Services::ManilaScheduler: ../docker/services/manila-scheduler.yaml
  # Only manila-share is pacemaker managed:
  OS::TripleO::Services::ManilaShare: ../docker/services/pacemaker/manila-share.yaml
  OS::TripleO::Services::ManilaBackendCephFs: ../puppet/services/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: ../docker/services/ceph-ansible/ceph-nfs.yaml

parameter_defaults:
  ManilaCephFSBackendName: cephfs 
1

  ManilaCephFSDriverHandlesShareServers: false 
2

  ManilaCephFSCephFSAuthId: 'manila' 
3

  ManilaCephFSCephFSEnableSnapshots: false 
4

  # 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'
Copy to Clipboard Toggle word wrap

parameter_defaults 헤더는 구성의 시작을 나타냅니다. 특히 이 헤더 아래의 설정을 사용하면 resource_registry 에 설정된 기본값을 재정의할 수 있습니다. 여기에는 CephFS 백엔드의 기본값을 설정하는 OS::Tripleo::Services::ManilaBackendCephFs 에서 설정한 값이 포함됩니다.

1
ManilaCephFSBackendName 은 CephFS 백엔드의 manila 구성 이름을 설정합니다. 이 경우 기본 백엔드 이름은 cephfs 입니다.
2
ManilaCephFSDriverHandlesShareServers 는 공유 서버의 라이프사이클을 제어합니다. false 로 설정하면 드라이버가 라이프사이클을 처리하지 않습니다. 이 옵션이 지원되는 유일한 옵션입니다.
3
ManilaCephFSAuthId 는 director에서 manila 서비스에서 Ceph 클러스터에 액세스할 수 있도록 생성한 Ceph 인증 ID를 정의합니다.
4
ManilaCephFSEnableSnapshots는 스냅샷 활성화를 제어합니다. false 값은 스냅샷이 활성화되지 않음을 나타냅니다. 이 기능은 현재 지원되지 않습니다.

환경 파일에 대한 자세한 내용은 Advanced Overcloud Customization 가이드의 환경 파일 을 참조하십시오.

2.2.4. 배포 후 구성 완료

사용자가 액세스할 수 있도록 하려면 두 개의 배포 후 구성 항목을 완료해야 합니다.

  • neutron StorageNFS 네트워크는 격리된 데이터 센터 스토리지 NFS 네트워크에 매핑되어야 하며,
  • 기본 공유 유형을 생성해야 합니다.

이러한 단계가 완료되면 테넌트 컴퓨팅 인스턴스에서 NFS 공유를 생성하고, 액세스할 수 있으며 마운트할 수 있습니다.

2.2.4.1. 격리된 네트워크 구성

새 isolated StorageNFS 네트워크를 neutron-shared 공급자 네트워크에 매핑해야 합니다. Compute VM은 이 neutron 네트워크에 연결하여 NFS-Ganesha 게이트웨이에서 제공하는 공유 내보내기 위치에 액세스합니다.

공유 파일 시스템 서비스를 통한 네트워크 보안에 대한 자세한 내용은 보안 및 Hardening 가이드의 공유 파일 시스템 서비스 섹션을 참조하십시오.

절차

openstack network create 명령은 StorageNFS neutron 네트워크의 구성을 정의합니다. 다음 옵션을 사용하여 이 명령을 실행합니다.

  • --provider-physical-network 의 경우 tripleo-heat-templates의 NeutronBridgeMappings를 통해 br-isolated 브릿지에 대해 다른 태그를 설정하지 않은 경우 기본값 datacentre 를 사용합니다.
  • --provider-segment 값의 경우 Heat 템플릿에서 StorageNFS isolated 네트워크에 설정된 vlan 값을 사용합니다. /usr/share/openstack-tripleo-heat-templates/network_data_ganesha.yaml 이 값은 배포자가 격리된 네트워크 정의를 수정하지 않은 한 70입니다.
  • --provider-network-type 의 경우 vlan 값을 사용합니다.

이 명령을 사용하려면 다음을 수행합니다.

  1. 언더클라우드 노드에서 다음을 수행합니다.

    [stack@undercloud ~]$ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  2. 언더클라우드 노드에서 openstack network create 명령을 실행하여 StorageNFS 네트워크를 생성합니다.

    [stack@undercloud-0 ~]$ openstack network create StorageNFS --share --provider-network-type vlan --provider-physical-network datacentre  --provider-segment 70
    +---------------------------+--------------------------------------+
    | Field                   	| Value
    +---------------------------+--------------------------------------+
    | admin_state_up          	| UP
    | availability_zone_hints   |
    | availability_zones      	|
    | created_at              	| 2018-09-17T21:12:49Z
    | description             	|
    | dns_domain              	| None
    | id                      	| cd272981-0a5e-4f3d-83eb-d25473f5176e
    | ipv4_address_scope       	| None
    | ipv6_address_scope      	| None
    | is_default              	| False
    | is_vlan_transparent   	  | None
    | mtu                   	  | 1500
    | name                    	| StorageNFS
    | port_security_enabled   	| True
    | project_id            	  | 3ca3408d545143629cd0ec35d34aea9c
    | provider-network-type 	  | vlan
    | provider-physical-network | datacentre
    | provider-segment          | 70
    | qos_policy_id         	  | None
    | revision_number       	  | 3
    | router:external       	  | Internal
    | segments                	| None
    | shared                  	| True
    | status                  	| ACTIVE
    | subnets                 	|
    | tags                    	|
    | updated_at              	| 2018-09-17T21:12:49Z
    +---------------------------+--------------------------------------+
    Copy to Clipboard Toggle word wrap

2.2.4.2. 공유 공급자 스토리지 NFS 네트워크 설정

neutron 공유 공급자 네트워크에 해당 StorageNFSSubnet을 생성합니다. 서브넷이 언더클라우드의 storage_nfs_subnet과 동일하지만 이 서브넷의 할당 범위와 해당 언더클라우드 서브넷의 할당 범위가 겹치지 않는지 확인합니다. 이 서브넷은 NFS 공유를 제공하기 위해 전용되므로 게이트웨이가 필요하지 않습니다.

요구 사항

  • 할당 풀의 시작 및 종료 IP 범위
  • 서브넷 IP 범위

절차

  1. 오버클라우드 노드에 로그인합니다.
  2. 샘플 명령을 사용하여 네트워크를 프로비저닝하고 필요한 경우 값을 업데이트합니다.

    1. start=172.16.4.150,end=172.16.4.250 IP 값을 네트워크용 IP 값으로 바꿉니다.
    2. 172.16.4.0/24 서브넷 범위를 네트워크에 대한 올바른 서브넷 범위로 바꿉니다.
[stack@undercloud-0 ~]$ openstack subnet create --allocation-pool start=172.16.4.150,end=172.16.4.250 --dhcp --network StorageNFS --subnet-range 172.16.4.0/24 --gateway none StorageNFSSubnet
+-------------------+--------------------------------------+
| Field         	  | Value
+-------------------+--------------------------------------+
| allocation_pools  | 172.16.4.150-172.16.4.250
| cidr            	| 172.16.4.0/24
| created_at    	  | 2018-09-17T21:22:14Z
| description   	  |
| dns_nameservers   |
| enable_dhcp   	  | True
| gateway_ip    	  | None
| host_routes   	  |
| id            	  | 8c696d06-76b7-4d77-a375-fd2e71e3e480
| ip_version    	  | 4
| ipv6_address_mode | None
| ipv6_ra_mode  	  | None
| name          	  | StorageNFSSubnet
| network_id      	| cd272981-0a5e-4f3d-83eb-d25473f5176e
| project_id      	| 3ca3408d545143629cd0ec35d34aea9c
| revision_number   | 0
| segment_id    	  | None
| service_types 	  |
| subnetpool_id 	  | None
| tags          	  |
| updated_at    	  | 2018-09-17T21:22:14Z
+-------------------+--------------------------------------+
Copy to Clipboard Toggle word wrap

2.2.4.3. 기본 공유 유형 설정

공유 파일 시스템 서비스를 사용하면 특정 설정으로 공유를 생성하는 데 사용할 수 있는 공유 유형을 정의할 수 있습니다. Block Storage 볼륨 유형과 같은 공유 유형이 작동합니다. 각 유형에는 연결된 설정(예: 추가 사양)이 있으며 공유 생성 중에 유형을 호출하는 경우 해당 설정이 적용됩니다.

OpenStack director에는 기본 공유 유형이 필요합니다. 사용자가 액세스할 수 있도록 클라우드를 열기 전에 이 기본 공유 유형을 만들어야 합니다. NFS가 있는 CephFS의 경우 manila type-create 명령을 사용합니다.

manila type-create default false
Copy to Clipboard Toggle word wrap

공유 유형에 대한 자세한 내용은 스토리지 가이드의 공유 유형 만들기 및 관리 섹션을 참조하십시오.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동