4장. 공유 파일 시스템 서비스

Shared File Systems 서비스(manila)를 사용하면 여러 계산 인스턴스, 베어 메탈 노드 또는 컨테이너가 사용할 수 있는 공유 파일 시스템을 프로비저닝할 수 있습니다. 클라우드 관리자는 공유 서비스를 준비하고 최종 사용자가 공유를 만들고 관리할 수 있도록 하려면 공유 유형을 생성합니다.

사전 요구 사항

  • 최종 사용자는 공유 파일 시스템 서비스를 사용하려면 하나 이상의 공유 유형이 필요합니다.
  • driver_handles_share_servers=False 인 백엔드의 경우 클라우드 관리자는 공유 파일 시스템 백엔드에서 동적으로 아닌 사전 요구 사항 네트워킹을 구성합니다.
  • NFS 백엔드를 통한 CephFS의 경우 클라우드 관리자는 분리된 네트워크 및 환경 인수와 사용자 지정 network_data 파일이 있는 RHOSP(Red Hat OpenStack Platform) director를 배포하여 NFS 내보내기를 위한 격리된 StorageNFS 네트워크를 생성합니다. 배포 후 Overcloud를 사용하기 전에 관리자는 데이터 센터의 격리된 StorageNFS 네트워크에 매핑되는 해당 네트워킹 서비스(neutron) StorageNFS 공유 프로바이더 네트워크를 생성합니다.
  • 계산 인스턴스가 이 공유 프로바이더 네트워크에 연결하려면 사용자가 추가 neutron 포트를 추가해야 합니다.

공유 파일 시스템 서비스를 이해하고 사용하려면 다음 개념과 절차를 사용하십시오.

4.1. 공유 파일 시스템 서비스(manila) 백엔드

클라우드 관리자가 RHOSP(Red Hat OpenStack Platform) director를 사용하여 Shared File Systems 서비스를 배포하는 경우 지원되는 다음 백엔드 중 하나를 선택할 수 있습니다.

지원되는 백엔드 제품 및 드라이버의 전체 목록은 RHEL OpenStack Platform의 Component, Plug-In 및 Driver Support에서 참조하십시오.

4.1.1. 공유 파일 시스템 네트워킹

공유 파일 시스템은 네트워크를 통해 액세스합니다. 최종 사용자 클라이언트가 RHOSP(Red Hat OpenStack Platform) 가상 시스템, 베어 메탈 서버 및 컨테이너에서 실행되는 워크로드에 공유를 연결할 수 있도록 클라우드에서 네트워킹을 계획하는 것이 중요합니다.

최종 사용자에게 필요한 보안 및 격리 수준에 따라 관리자가 driver_handles_share_servers 매개 변수를 true 또는 false로 설정할 수 있습니다.

driver_handles_share_servers 매개 변수를 true로 설정하면 서비스에서 분리된 공유 서버를 통해 공유를 최종 사용자 정의 공유 네트워크로 내보낼 수 있습니다.

driver_handles_share_servers 매개변수가 true인 경우 사용자는 셀프 서비스 공유 네트워크에서 워크로드를 프로비저닝할 수 있습니다. 이렇게 하면 전용 네트워크 세그먼트에서 완전히 격리된 NAS 파일 서버에서 공유를 내보낼 수 있습니다.

최종 사용자가 사용하는 공유 네트워크는 생성할 수 있는 사설 프로젝트 네트워크와 같을 수 있습니다. 관리자는 이러한 격리된 네트워크를 스토리지 인프라에 매핑하는 물리적 네트워크를 확인해야 합니다.

또한 사용되는 스토리지 시스템에서 프로젝트 네트워크의 네트워크 분할 스타일을 지원하는지 확인해야 합니다. NetApp ONTAP, Dell EMC PowerMax 및 VNX와 같은 스토리지 시스템은 GENEVE 또는 VXLAN과 같은 가상 오버레이 분할 스타일을 지원하지 않습니다.

또는 top-of-rack 스위치에서 오버레이 네트워킹을 종료하고 VLAN과 같은 프로젝트 네트워크에 좀 더 원시적인 네트워킹을 사용할 수 있습니다. 또 다른 대안은 공유 프로바이더 네트워크에서 VLAN 세그먼트를 허용하거나 이미 스토리지 시스템에 연결된 기존 세그먼트 네트워크에 대한 액세스를 제공하는 것입니다.

driver_handles_share_servers 매개변수를 false로 설정하면 사용자가 자신의 공유 네트워크에 공유를 생성할 수 없습니다. 대신 클라우드 관리자가 구성한 네트워크에 클라이언트를 연결해야 합니다.

driver_handles_share_servers 매개변수가 false인 경우 director는 전용 공유 스토리지 네트워크를 생성할 수 있습니다. 예를 들어 표준 director 템플릿을 사용하여 기본 CephFS 백엔드를 배포할 때 director는 Storage 라는 공유 프로바이더 네트워크를 생성합니다. NFS 백엔드를 통해 CephFS를 배포할 때 공유 프로바이더 네트워크를 StorageNFS 라고 합니다. 최종 사용자가 공유 스토리지 네트워크에 클라이언트를 연결하여 공유 스토리지 네트워크에 액세스해야 합니다.

모든 공유 파일 시스템 스토리지 드라이버가 두 작업 모드를 모두 지원하는 것은 아닙니다. 선택한 모드에 관계없이 서비스를 통해 하드 데이터 경로 다중 테넌트 격리가 보장됩니다.

셀프 서비스 모델의 일부로 테넌트 워크로드를 보장하기 위해 하드 네트워크 경로 멀티 테넌시 격리를 제공하려면 driver_handles_share_servers 드라이버 모드를 지원하는 백엔드를 사용하여 배포해야 합니다.

공유에 대한 네트워크 연결에 대한 자세한 내용은 를 참조하십시오. 4.2절. “공유에 대한 네트워크 연결 확인”

4.1.2. 공유 유형 생성

공유 유형은 배치 결정을 수행하기 위해 공유 파일 시스템 서비스 스케줄러에 대한 힌트 역할을 합니다. RHOSP(Red Hat OpenStack Platform) director는 이름이 default인 기본 공유 유형으로 공유 파일 시스템 서비스를 설정하지만 공유 유형은 생성하지 않습니다.

중요
최종 사용자는 공유 파일 시스템 서비스를 사용하려면 하나 이상의 공유 유형이 필요합니다.

절차

  1. 오버클라우드를 배포한 후 다음 명령을 클라우드 관리자로 실행하여 공유 유형을 생성합니다.

    # manila type-create default <spec_driver_handles_share_servers>

    <spec_driver_handles_share_servers> 매개변수는 부울 값입니다.

    • NFS 또는 기본 CephFS를 통한 CephFS의 경우 값은 false입니다.
    • 다른 백엔드의 경우 값은 true 또는 false일 수 있습니다. Manila& lt;backend>DriverHandlesShareServers 매개변수 값과 일치하도록 <spec_driver_handles_share_servers > 를 설정합니다. 예를 들어 NetApp 백엔드를 사용하는 경우 매개 변수를 ManilaNetappDriverHandlesShareServers 라고 합니다.
  2. 기본 공유 유형에 사양을 추가하거나 여러 구성된 백엔드에 사용할 추가 공유 유형을 생성합니다. 예를 들어 CephFS 백엔드와 NetApp driver_handles_share_servers=True 백엔드를 사용하는 추가 공유 유형을 선택하도록 기본 공유 유형을 구성합니다.

    (overcloud) [stack@undercloud-0 ~]$ manila type-create default false --extra-specs share_backend_name='cephfs'
    (overcloud) [stack@undercloud-0 ~]$ manila type-create netapp true --extra-specs share_backend_name='tripleo_netapp'
참고

기본적으로 공유 유형은 public입니다. 즉, 모든 Cloud 프로젝트에서 볼 수 있고 사용할 수 있지만 특정 프로젝트 내에서 사용할 개인 공유 유형을 만들 수 있습니다. 개인 공유 유형을 만드는 방법 또는 추가 공유 유형 옵션을 설정하는 방법에 대한 자세한 내용은 보안 및 강화 가이드를 참조하십시오.

4.1.3. 공유 유형의 공통 기능

공유 유형은 공유의 공통 기능을 정의합니다. 공유 유형의 공통 기능을 검토하여 공유와 함께 수행할 수 있는 작업을 파악합니다.

표 4.1. 공유 유형의 기능

기능설명

driver_handles_share_servers

true 또는 false

공유 네트워크를 사용하여 공유를 생성할 수 있는 권한을 부여합니다.

snapshot_support

true 또는 false

공유 스냅숏을 생성할 수 있는 권한을 부여합니다.

create_share_from_snapshot_support

true 또는 false

공유 스냅샷의 복제본을 생성할 수 있는 권한을 부여합니다.

revert_to_snapshot_support

true 또는 false

가장 최근 스냅샷으로 공유를 되돌릴 수 있는 권한을 부여합니다.

mount_snapshot_support

true 또는 false

스냅샷을 내보내고 마운트할 수 있는 권한을 부여합니다.

replication_type

dr

재해 복구를 위해 복제본을 생성할 수 있는 권한을 부여합니다. 한 번에 하나의 활성 내보내기만 허용됩니다.

읽기 가능

읽기 전용 복제본을 생성할 수 있는 권한을 부여합니다. 한 번에 쓰기 가능한 활성 내보내기가 한 번에 허용됩니다.

쓰기 가능

읽기/쓰기 복제본을 만들 수 있는 권한을 부여합니다. 공유당 한 번에 원하는 수의 활성 내보내기가 허용됩니다.

availability_zones

하나 이상의 가용성 영역 목록

나열된 가용 영역에서만 공유를 생성할 수 있는 권한을 부여합니다.

4.1.4. 공유 유형 검색

클라우드 사용자는 공유를 생성할 때 공유 유형을 지정해야 합니다.

절차

  1. 사용 가능한 공유 유형을 검색합니다.

    $ manila type-list

    명령 출력에는 공유 유형의 이름과 ID가 나열됩니다.

4.1.5. 공유 생성

데이터를 읽고 쓸 공유를 만듭니다.

공유를 생성하려면 다음과 유사한 명령을 사용합니다.

$ manila create [--share-type <sharetype>] [--name <sharename>] proto GB

다음 값을 바꿉니다.

  • sharetype 은 지정된 공유 유형과 연결된 설정을 적용합니다.

    • 선택 사항: 제공되지 않는 경우 기본 공유 유형이 사용됩니다.
  • sharename 은 공유의 이름입니다.

    • 선택 사항: 공유에는 이름이 필요하지 않으며 고유하도록 보장되는 이름도 없습니다.
  • Proto 는 사용하려는 공유 프로토콜입니다.

    • NFS가 포함된 CephFS의 경우 protonfs 입니다.
    • CephFS 기본의 경우 protocephfs 입니다.
    • NetApp 및 Dell EMC 스토리지 백엔드의 경우 protonfs 또는 cifs 입니다.
  • GB 는 공유 크기(GB)입니다.

예를 들어, 4.1.2절. “공유 유형 생성” 에서 클라우드 관리자는 CephFS 백엔드를 선택하는 기본 공유 유형과 NetApp 백엔드를 선택하는 netapp 이라는 다른 공유 유형을 생성했습니다.

절차

  1. 예제 공유 유형을 사용하여 CephFS NFS 백엔드에 share-01 이라는 10GB NFS 공유를 만듭니다. 이 예에서는 NFS에서 CephFS를 사용합니다.

    (user) [stack@undercloud-0 ~]$ manila create --name share-01 nfs 10
  2. 선택 사항: NetApp 백엔드에 share-02 라는 20GB NFS 공유를 생성합니다.

    (user) [stack@undercloud-0 ~]$ manila create --name share-02 --share-type netapp --share-network mynet nfs 20

4.1.6. 공유 나열 및 내보내기 정보

공유를 성공적으로 생성했는지 확인하려면 다음 단계를 완료합니다.

절차

  1. 공유를 나열합니다.

    (user) [stack@undercloud-0 ~]$ manila list
    
    +--------------------------------------+----------+-----+-----------+           | ID                                   | Name     | ... | Status    ...
    +--------------------------------------+----------+-----+-----------+
    | 8c3bedd8-bc82-4100-a65d-53ec51b5fe81 | share-01 | ... | available ...
    +--------------------------------------+----------+-----+-----------+
  2. 공유의 내보내기 위치를 확인합니다.

    (user) [stack@undercloud-0 ~]$ manila share-export-location-list share-01
    
     +------------------------------------------------------------------
     | Path
     |  172.17.5.13:/volumes/_nogroup/e840b4ae-6a04-49ee-9d6e-67d4999fbc01
     +------------------------------------------------------------------
  3. 공유의 매개변수를 확인합니다.

    manila share-export-location-show <id>
    참고

    이 정보는 4.4.2절. “공유 마운트” 에 공유를 마운트하는 데 사용됩니다.