6.11. 공유 파일 시스템 서비스 채택


OpenShift(RHOSO)의 Red Hat OpenStack Services의 Shared File Systems 서비스(manila)는 파일 공유를 생성하고 관리하는 셀프 서비스 API를 제공합니다. 파일 공유(또는 "공유")는 여러 클라이언트에서 동시 읽기/쓰기 액세스를 위해 빌드됩니다. 이렇게 하면 ReadWriteMany 영구 스토리지가 필요한 클라우드 환경에서 공유 파일 시스템 서비스가 필수적입니다.

RHOSO의 파일 공유에는 네트워크 액세스가 필요합니다. RHOSP(Red Hat OpenStack Platform) 17.1 환경의 네트워킹이 채택 후 새 클라우드의 네트워크 계획과 일치하는지 확인합니다. 이렇게 하면 채택 프로세스 중에 테넌트 워크로드가 스토리지에 계속 연결됩니다. 공유 파일 시스템 서비스 컨트롤 플레인 서비스는 데이터 경로에 없습니다. API, 스케줄러 및 공유 관리자 서비스를 종료해도 기존 공유 파일 시스템에 대한 액세스에는 영향을 미치지 않습니다.

일반적으로 스토리지 및 스토리지 장치 관리는 별도의 네트워크입니다. 공유 파일 시스템 서비스는 스토리지 장치 관리 네트워크에 대한 액세스 권한만 있으면 됩니다. 예를 들어 배포에서 Red Hat Ceph Storage 클러스터를 사용한 경우 "스토리지" 네트워크는 Red Hat Ceph Storage 클러스터의 공용 네트워크를 참조하고 공유 파일 시스템 서비스의 공유 관리자 서비스에 연결할 수 있어야 합니다.

공유 파일 시스템 서비스는 다음 스토리지 네트워킹 시나리오를 지원합니다.

  • 해당 파일 공유의 네트워킹을 직접 제어할 수 있습니다.
  • RHOSO 관리자는 스토리지 네트워킹을 구성합니다.

6.11.1. 공유 파일 시스템 서비스 구성을 준비하기 위한 지침

컨트롤 플레인에 Shared File Systems 서비스(manila)를 배포하려면 Red Hat OpenStack Platform 17.1 배포에서 원래 구성 파일을 복사해야 합니다. RHOSO(OpenShift) 18.0에서 Red Hat OpenStack Services에 대해 올바른 구성을 채택하려면 파일의 내용을 검토해야 합니다. 일부 콘텐츠를 새 클라우드 환경으로 가져올 필요는 없습니다.

채택을 위해 공유 파일 시스템 서비스 구성 파일을 준비하기 위한 다음 지침을 검토하십시오.

  • 공유 파일 시스템 서비스 Operator는 다음 구성을 설정하고 무시할 수 있습니다.

    • 데이터베이스 관련 구성([database])
    • 서비스 인증(auth_strategy,[keystone_authtoken])
    • 메시지 버스 구성(transport_url,control_exchange)
    • 기본 붙여넣기 구성(api_paste_config)
    • 서비스 간 통신 구성([neutron], [nova], [cinder], [glance] [oslo_messaging_*])
  • osapi_share_listen 구성을 무시합니다. Red Hat OpenStack Services on OpenShift (RHOSO) 18.0에서는 Red Hat OpenShift Container Platform (RHOCP) 경로 및 수신을 사용합니다.
  • 정책 덮어쓰기를 확인합니다. RHOSO 18.0에서 공유 파일 시스템 서비스는 보안 기본 역할 기반 액세스 제어(RBAC)와 함께 제공되며 덮어쓰기가 필요하지 않을 수 있습니다.
  • 사용자 정의 정책이 필요한 경우 ConfigMap 으로 제공해야 합니다. 다음 예제 사양은 policy.yaml 이라는 파일의 콘텐츠를 사용하여 manila-policy 라는 ConfigMap 을 설정하는 방법을 보여줍니다.

      spec:
        manila:
          enabled: true
          template:
            manilaAPI:
              customServiceConfig: |
                 [oslo_policy]
                 policy_file=/etc/manila/policy.yaml
            extraMounts:
            - extraVol:
              - extraVolType: Undefined
                mounts:
                - mountPath: /etc/manila/
                  name: policy
                  readOnly: true
                propagation:
                - ManilaAPI
                volumes:
                - name: policy
                  projected:
                    sources:
                    - configMap:
                        name: manila-policy
                        items:
                          - key: policy
                            path: policy.yaml
  • [DEFAULT] 섹션 아래의 host 옵션 값은 hostgroup 이어야 합니다.
  • Shared File Systems 서비스 API 서비스를 실행하려면 manila: template: manilaAPIcustomServiceConfig 섹션에 enabled_share_protocols 옵션을 추가해야 합니다.
  • 스케줄러 덮어쓰기가 있는 경우 manila: template: manilaSchedulercustomServiceConfig 섹션에 추가합니다.
  • RHOSP 17.1로 여러 스토리지 백엔드 드라이버가 구성된 경우 RHOSO 18.0을 배포할 때 해당 드라이버를 분할해야 합니다. 각 스토리지 백엔드 드라이버는 manila-share 서비스의 자체 인스턴스를 사용해야 합니다.
  • 스토리지 백엔드 드라이버에 사용자 지정 컨테이너 이미지가 필요한 경우 Red Hat Ecosystem Catalog 에서 해당 이미지를 찾고, OpenStackVersion 사용자 정의 리소스(CR)를 생성하거나 수정하여 동일한 사용자 지정 이름을 사용하여 사용자 정의 이미지를 지정합니다.

    다음 예제에서는 여러 스토리지 백엔드 드라이버를 포함하는 OpenStackControlPlane CR의 manila 사양을 보여줍니다. 여기서 하나만 사용자 지정 컨테이너 이미지를 사용하고 있습니다.

      spec:
        manila:
          enabled: true
          template:
            manilaAPI:
              customServiceConfig: |
                [DEFAULT]
                enabled_share_protocols = nfs
              replicas: 3
            manilaScheduler:
              replicas: 3
            manilaShares:
             netapp:
               customServiceConfig: |
                 [DEFAULT]
                 debug = true
                 enabled_share_backends = netapp
                 host = hostgroup
                 [netapp]
                 driver_handles_share_servers = False
                 share_backend_name = netapp
                 share_driver = manila.share.drivers.netapp.common.NetAppDriver
                 netapp_storage_family = ontap_cluster
                 netapp_transport_type = http
               replicas: 1
             pure:
                customServiceConfig: |
                 [DEFAULT]
                 debug = true
                 enabled_share_backends=pure-1
                 host = hostgroup
                 [pure-1]
                 driver_handles_share_servers = False
                 share_backend_name = pure-1
                 share_driver = manila.share.drivers.purestorage.flashblade.FlashBladeShareDriver
                 flashblade_mgmt_vip = 203.0.113.15
                 flashblade_data_vip = 203.0.10.14
                replicas: 1

    다음 예제에서는 사용자 정의 컨테이너 이미지를 정의하는 OpenStackVersion CR을 보여줍니다.

    apiVersion: core.openstack.org/v1beta1
    kind: OpenStackVersion
    metadata:
      name: openstack
    spec:
      customContainerImages:
        cinderVolumeImages:
          pure: registry.connect.redhat.com/purestorage/openstack-manila-share-pure-rhosp-18-0

    OpenStackVersion CR의 이름은 OpenStackControlPlane CR 이름과 일치해야 합니다.

  • 암호, 호스트 이름 및 사용자 이름과 같은 중요한 정보를 제공하는 경우 Cryostat 시크릿 및 customServiceConfigSecrets 키를 사용합니다. 모든 서비스에서 customConfigSecrets 를 사용할 수 있습니다. 인증 정보가 필요한 타사 스토리지를 사용하는 경우 customServiceConfigSecrets 키를 사용하여 manila CR/patch 파일에서 참조하는 보안을 생성합니다. 예를 들면 다음과 같습니다.

    1. 시크릿을 포함하는 파일을 생성합니다(예: netapp_secrets.conf ):

      $ cat << __EOF__ > ~/netapp_secrets.conf
      
      [netapp]
      netapp_server_hostname = 203.0.113.10
      netapp_login = fancy_netapp_user
      netapp_password = secret_netapp_password
      netapp_vserver = mydatavserver
      __EOF__
      $ oc create secret generic osp-secret-manila-netapp --from-file=~/<secret>
      • & lt;secret >을 시크릿을 포함하는 파일 이름(예: netapp_secrets.conf )으로 바꿉니다.
    2. customServiceConfigSecrets 섹션의 공유 파일 시스템 서비스 파일에 보안을 추가합니다. 다음 예제에서는 manilaShares 서비스에 osp-secret-manila-netapp 시크릿을 추가합니다.

        spec:
          manila:
            enabled: true
            template:
              < . . . >
              manilaShares:
               netapp:
                 customServiceConfig: |
                   [DEFAULT]
                   debug = true
                   enabled_share_backends = netapp
                   host = hostgroup
                   [netapp]
                   driver_handles_share_servers = False
                   share_backend_name = netapp
                   share_driver = manila.share.drivers.netapp.common.NetAppDriver
                   netapp_storage_family = ontap_cluster
                   netapp_transport_type = http
                 customServiceConfigSecrets:
                   - osp-secret-manila-netapp
                 replicas: 1
          < . . . >

6.11.2. 컨트롤 플레인에 공유 파일 시스템 서비스 배포

RHOSP(Red Hat OpenStack Platform) 17.1 배포에서 Shared File Systems 서비스(manila) 구성을 복사한 다음 컨트롤 플레인에 공유 파일 시스템 서비스를 배포합니다.

사전 요구 사항

  • api,cron, scheduler 와 같은 공유 파일 시스템 서비스 systemd 서비스가 중지됩니다. 자세한 내용은 Red Hat OpenStack Platform 서비스 중지 를 참조하십시오.
  • 배포에서 NFS를 통해 CephFS를 스토리지 백엔드로 사용하는 경우 Pacemaker 순서 지정 및 배치 제약 조건이 조정됩니다. 자세한 내용은 Red Hat OpenStack Platform 서비스 중지 를 참조하십시오.
  • 공유 파일 시스템 서비스 Pacemaker 서비스(openstack-manila-share)가 중지되었습니다. 자세한 내용은 Red Hat OpenStack Platform 서비스 중지 를 참조하십시오.
  • 데이터베이스 마이그레이션이 완료되었습니다. 자세한 내용은 MariaDB 인스턴스로 데이터베이스 마이그레이션을 참조하십시오.
  • manila-share 서비스를 배포할 RHOCP(Red Hat OpenShift Container Platform) 노드는 스토리지 시스템이 있는 관리 네트워크에 연결할 수 있습니다.
  • 배포에서 NFS를 스토리지 백엔드로 사용하는 경우 Ceph 오케스트레이터를 사용하여 Red Hat Ceph Storage 클러스터에 새 클러스터형 Ceph NFS 서비스가 배포됩니다. 자세한 내용은 Ceph NFS 클러스터 생성을 참조하십시오.
  • 공유 파일 시스템 서비스를 채택하기 전에 Identity 서비스(keystone) 및 memcached와 같은 서비스를 사용할 수 있습니다.
  • driver_handles_share_servers=True 를 설정하여 테넌트 기반 네트워킹을 활성화한 경우 Networking 서비스(neutron)가 배포됩니다.
  • CONTROLLER1_SSH 환경 변수가 정의되어 RHOSP 컨트롤러 노드를 가리킵니다. 다음 예제 값을 환경에 적합한 값으로 바꿉니다.

    $ CONTROLLER1_SSH="ssh -i <path to SSH key> root@<node IP>"

    프로세스

    1. 참조하려면 RHOSP 17.1에서 구성 파일을 복사합니다.

      $ CONTROLLER1_SSH cat /var/lib/config-data/puppet-generated/manila/etc/manila/manila.conf | awk '!/^ *#/ && NF' > ~/manila.conf
    2. RHOSP 17.1 이후의 구성 변경 사항에 대해 구성 파일을 검토합니다. OpenShift의 Red Hat OpenStack Services on OpenShift(RHOSO)용 이 파일을 준비하는 방법에 대한 자세한 내용은 공유 파일 시스템 서비스 구성 준비를 위한 지침 을 참조하십시오.
    3. OpenStackControlPlane CR의 패치 파일을 생성하여 공유 파일 시스템 서비스를 배포합니다. 다음 예제 manila.patch 파일은 기본 CephFS를 사용합니다.

      $ cat << __EOF__ > ~/manila.patch
      spec:
        manila:
          enabled: true
          apiOverride:
            route: {}
          template:
            databaseInstance: openstack
            databaseAccount: manila
            secret: osp-secret
            manilaAPI:
              replicas: 3
              customServiceConfig: |
                [DEFAULT]
                enabled_share_protocols = cephfs
              override:
                service:
                  internal:
                    metadata:
                      annotations:
                        metallb.universe.tf/address-pool: internalapi
                        metallb.universe.tf/allow-shared-ip: internalapi
                        metallb.universe.tf/loadBalancerIPs: 172.17.0.80 
      1
      
                    spec:
                      type: LoadBalancer
            manilaScheduler:
              replicas: 3
            manilaShares:
              cephfs:
                replicas: 1
                customServiceConfig: |
                  [DEFAULT]
                  enabled_share_backends = tripleo_ceph
                  host = hostgroup
                  [cephfs]
                  driver_handles_share_servers=False
                  share_backend_name=cephfs 
      2
      
                  share_driver=manila.share.drivers.cephfs.driver.CephFSDriver
                  cephfs_conf_path=/etc/ceph/ceph.conf
                  cephfs_auth_id=openstack
                  cephfs_cluster_name=ceph
                  cephfs_volume_mode=0755
                  cephfs_protocol_helper_type=CEPHFS
                networkAttachments: 
      3
      
                    - storage
            extraMounts: 
      4
      
            - name: v1
              region: r1
              extraVol:
                - propagation:
                  - ManilaShare
                extraVolType: Ceph
                volumes:
                - name: ceph
                  secret:
                    secretName: ceph-conf-files
                mounts:
                - name: ceph
                  mountPath: "/etc/ceph"
                  readOnly: true
      __EOF__
      1
      IPv6를 사용하는 경우 로드 밸런서 IP를 환경의 로드 밸런서 IP(예: metallb.universe.tf/loadBalancerIPs: fd00:bbbb::80 )로 변경합니다.
      2
      백엔드 이름(share_backend_name)이 RHOSP 17.1의 이름과 동일한지 확인합니다.
      3
      networkAttachments 섹션에서 적절한 스토리지 관리 네트워크를 지정해야 합니다. 예를 들어 CephFS 백엔드 드라이버가 있는 manilaShares 인스턴스가 스토리지 네트워크에 연결되어 있습니다.
      4
      서비스에 추가 파일을 추가해야 하는 경우 extraMounts 를 사용할 수 있습니다. 예를 들어 Red Hat Ceph Storage를 사용하는 경우 공유 파일 시스템 서비스 Ceph 사용자의 인증 키와 ceph.conf 구성 파일을 추가할 수 있습니다.

      다음 예제 패치 파일은 NFS를 통해 CephFS를 사용합니다.

      $ cat << __EOF__ > ~/manila.patch
      spec:
        manila:
          enabled: true
          apiOverride:
            route: {}
          template:
            databaseInstance: openstack
            secret: osp-secret
            manilaAPI:
              replicas: 3
              customServiceConfig: |
                [DEFAULT]
                enabled_share_protocols = cephfs
              override:
                service:
                  internal:
                    metadata:
                      annotations:
                        metallb.universe.tf/address-pool: internalapi
                        metallb.universe.tf/allow-shared-ip: internalapi
                        metallb.universe.tf/loadBalancerIPs: 172.17.0.80
                    spec:
                      type: LoadBalancer
            manilaScheduler:
              replicas: 3
            manilaShares:
              cephfs:
                replicas: 1
                customServiceConfig: |
                  [DEFAULT]
                  enabled_share_backends = cephfs
                  host = hostgroup
                  [cephfs]
                  driver_handles_share_servers=False
                  share_backend_name=tripleo_ceph
                  share_driver=manila.share.drivers.cephfs.driver.CephFSDriver
                  cephfs_conf_path=/etc/ceph/ceph.conf
                  cephfs_auth_id=openstack
                  cephfs_cluster_name=ceph
                  cephfs_protocol_helper_type=NFS
                  cephfs_nfs_cluster_id=cephfs
                  cephfs_ganesha_server_ip=172.17.5.47
                networkAttachments:
                    - storage
      __EOF__
  • NFS를 통해 CephFS에 대한 manilaShares 서비스를 채택하기 전에 클러스터형 Ceph NFS 서비스를 생성해야 합니다. 서비스 이름은 cephfs_nfs_cluster_id 여야 합니다. cephfs_nfs_cluster_id 옵션은 Red Hat Ceph Storage에 생성된 NFS 클러스터의 이름으로 설정됩니다.
  • cephfs_ganesha_server_ip 옵션은 RHOSP 17.1 환경의 구성에서 유지됩니다.

    1. OpenStackControlPlane CR을 패치합니다.

      $ oc patch openstackcontrolplane openstack --type=merge --patch-file=~/<manila.patch>
  • & lt;manila.patch& gt;를 패치 파일의 이름으로 바꿉니다.

검증

  1. 생성된 공유 파일 시스템 서비스 Pod를 검사합니다.

    $ oc get pods -l service=manila
  2. 공유 파일 시스템 API 서비스가 ID 서비스(keystone)에 등록되어 있는지 확인합니다.

    $ openstack service list | grep manila
    $ openstack endpoint list | grep manila
    
    | 1164c70045d34b959e889846f9959c0e | regionOne | manila       | share        | True    | internal  | http://manila-internal.openstack.svc:8786/v1/%(project_id)s        |
    | 63e89296522d4b28a9af56586641590c | regionOne | manilav2     | sharev2      | True    | public    | https://manila-public-openstack.apps-crc.testing/v2                |
    | af36c57adcdf4d50b10f484b616764cc | regionOne | manila       | share        | True    | public    | https://manila-public-openstack.apps-crc.testing/v1/%(project_id)s |
    | d655b4390d7544a29ce4ea356cc2b547 | regionOne | manilav2     | sharev2      | True    | internal  | http://manila-internal.openstack.svc:8786/v2                       |
  3. 서비스 상태를 테스트합니다.

    $ openstack share service list
    $ openstack share pool list --detail
  4. 기존 워크로드를 확인합니다.

    $ openstack share list
    $ openstack share snapshot list

6.11.3. Red Hat OpenStack Platform 독립 실행형 Ceph NFS 서비스 해제

중요

이 섹션의 이 콘텐츠는 이 릴리스에서 기술 프리뷰로 제공되므로 Red Hat에서 완전히 지원되지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 자세한 내용은 기술 프리뷰 를 참조하십시오.

배포에서 NFS를 통해 CephFS를 사용하는 경우 RHOSP(Red Hat OpenStack Platform) 독립 실행형 NFS 서비스를 해제해야 합니다. 향후 소프트웨어 업그레이드는 이전 NFS 서비스를 지원하지 않으므로 해제 기간이 짧은지 확인하십시오.

사전 요구 사항

  • 공유 파일 시스템 API를 쿼리하여 기존 공유의 새 내보내기 위치를 확인했습니다.
  • 이전 NFS 서버 사용을 중지하도록 각 클라이언트에서 공유 파일 시스템을 마운트 해제하고 다시 마운트했습니다.
  • Red Hat OpenShift Container Platform(RHOCP)용 공유 파일 시스템 서비스 CSI 플러그인과 공유 파일 시스템 서비스를 사용하는 경우 애플리케이션 Pod를 축소하고 다시 확장하여 공유를 마이그레이션했습니다.
참고

새 워크로드를 생성하는 클라이언트는 이전 NFS 서비스를 통해 공유 내보내기를 사용할 수 없습니다. 공유 파일 시스템 서비스는 더 이상 이전 NFS 서비스와 통신하지 않으며 이전 NFS 서비스에서 내보내기 규칙을 적용하거나 변경할 수 없습니다.

프로세스

  1. manila-share 서비스 구성에서 cephfs_ganesha_server_ip 옵션을 제거합니다.

    참고

    그러면 manila-share 프로세스가 다시 시작되고 모든 공유에서 이전 NFS 서비스에 적용된 내보내기 위치가 제거됩니다.

    $ cat << __EOF__ > ~/manila.patch
    spec:
      manila:
        enabled: true
        apiOverride:
          route: {}
        template:
          manilaShares:
            cephfs:
              replicas: 1
              customServiceConfig: |
                [DEFAULT]
                enabled_share_backends = cephfs
                host = hostgroup
                [cephfs]
                driver_handles_share_servers=False
                share_backend_name=cephfs
                share_driver=manila.share.drivers.cephfs.driver.CephFSDriver
                cephfs_conf_path=/etc/ceph/ceph.conf
                cephfs_auth_id=openstack
                cephfs_cluster_name=ceph
                cephfs_protocol_helper_type=NFS
                cephfs_nfs_cluster_id=cephfs
              networkAttachments:
                  - storage
    __EOF__
  2. OpenStackControlPlane 사용자 정의 리소스를 패치합니다.

    $ oc patch openstackcontrolplane openstack --type=merge --patch-file=~/<manila.patch>
    • & lt;manila.patch& gt;를 패치 파일의 이름으로 바꿉니다.
  3. 서비스와 연결된 Pacemaker 리소스를 비활성화하고 삭제하여 RHOSP 컨트롤 플레인 노드에서 독립 실행형 ceph-nfs 서비스를 정리합니다.

    중요

    RHOSO 18.0이 작동할 때까지 이 단계를 지연할 수 있습니다. 이 기간 동안 컨트롤러 노드를 해제할 수 없습니다.

    $ sudo pcs resource disable ceph-nfs
    $ sudo pcs resource disable ip-<VIP>
    $ sudo pcs resource unmanage ceph-nfs
    $ sudo pcs resource unmanage ip-<VIP>
    • & lt;VIP >를 해당 환경의 ceph-nfs 서비스에 할당된 IP 주소로 바꿉니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동