1.2. 데이터 플레인 노드 네트워크 구성


Red Hat Ceph Storage 네트워킹 요구 사항을 수용하도록 데이터 플레인 노드 네트워크를 구성해야 합니다.

사전 요구 사항

  • 컨트롤 플레인 배포가 완료되었지만 Ceph Storage를 사용하도록 수정되지 않았습니다.
  • 데이터 플레인 노드는 운영 체제를 사용하여 프로비저닝되었습니다.
  • 데이터 플레인 노드는 Ansible에서 사용할 수 있는 SSH 키를 통해 액세스할 수 있습니다.
  • 데이터 플레인 노드에는 Ceph OSD로 사용할 수 있는 디스크가 있습니다.
  • 사용 가능한 데이터 플레인 노드가 3개 이상 있어야 합니다. 중복을 위해서는 Ceph Storage 클러스터에 최소 3개의 노드가 있어야 합니다.

프로세스

  1. OpenStackDataPlaneNodeSet CRD 파일을 생성하여 데이터 플레인 노드를 나타냅니다.

    참고

    Red Hat OpenShift에서 CR을 생성하지 마십시오.

  2. configure-os 서비스 전에 ceph-hci-pre 서비스를 목록에 추가하고 run-os 후 다른 모든 서비스 목록을 제거합니다.

    다음은 편집된 목록의 예입니다.

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    spec:
      ...
      services:
        - download-cache
        - bootstrap
        - configure-network
        - validate-network
        - install-os
        - ceph-hci-pre
        - configure-os
        - ssh-known-hosts
        - run-os
        - reboot-os
    참고

    목록에서 제거한 서비스를 확인합니다. 나중에 목록에 다시 추가합니다.

  3. (선택 사항) ceph-hci-pre 서비스는 edpm_ceph_hci_pre edpm-ansible 역할을 사용하여 네트워크 구성 후 Red Hat Ceph Storage 서비스를 호스팅할 EDPM 노드를 준비합니다. 기본적으로 이 역할의 edpm_ceph_hci_pre_enabled_services 매개변수에는 RBD, RGW 및 NFS 서비스만 포함됩니다. 대시보드와 같은 기타 서비스가 HCI 노드와 함께 배포되는 경우 edpm_ceph_hci_pre_enabled_services 매개 변수 목록에 추가해야 합니다. 이 역할에 대한 자세한 내용은 edpm_ceph_hci_pre 역할을 참조하십시오.
  4. OSD 간 스토리지 관리 트래픽에 대해 Red Hat Ceph Storage cluster_network 를 구성합니다. edpm_network_config 역할이 cluster_network 로 사용하는 스토리지 관리 네트워크를 구성하도록 CR을 수정하여 edpm-ansible 변수를 설정합니다.

    다음 예제에는 3개의 노드가 있습니다. 스토리지 관리 네트워크 범위가 172.20.0.0/24 이고 VLAN23 에 있다고 가정합니다. 굵은 글꼴 줄은 cluster_network 에 추가되었습니다.

    apiVersion: dataplane.openstack.org/v1beta1
    kind: OpenStackDataPlaneNodeSet
    metadata:
      name: openstack-edpm
      namespace: openstack
    spec:
      env:
      - name: ANSIBLE_FORCE_COLOR
        value: "True"
      networkAttachments:
      - ctlplane
      nodeTemplate:
        ansible:
          ansiblePort: 22
          ansibleUser: cloud-admin
          ansibleVars:
            edpm_ceph_hci_pre_enabled_services:
            - ceph_mon
            - ceph_mgr
            - ceph_osd
            - ceph_rgw
            - ceph_nfs
            - ceph_rgw_frontend
            - ceph_nfs_frontend
            edpm_fips_mode: check
            edpm_iscsid_image: {{ registry_url }}/openstack-iscsid:{{ image_tag }}
            edpm_logrotate_crond_image: {{ registry_url }}/openstack-cron:{{ image_tag }}
            edpm_network_config_hide_sensitive_logs: false
            edpm_network_config_os_net_config_mappings:
              edpm-compute-0:
                nic1: 52:54:00:1e:af:6b
                nic2: 52:54:00:d9:cb:f4
              edpm-compute-1:
                nic1: 52:54:00:f2:bc:af
                nic2: 52:54:00:f1:c7:dd
              edpm-compute-2:
                nic1: 52:54:00:dd:33:14
                nic2: 52:54:00:50:fb:c3
            edpm_network_config_template: |
              ---
              {% set mtu_list = [ctlplane_mtu] %}
              {% for network in nodeset_networks %}
              {{ mtu_list.append(lookup(vars, networks_lower[network] ~ _mtu)) }}
              {%- endfor %}
              {% set min_viable_mtu = mtu_list | max %}
              network_config:
              - type: ovs_bridge
                name: {{ neutron_physical_bridge_name }}
                mtu: {{ min_viable_mtu }}
                use_dhcp: false
                dns_servers: {{ ctlplane_dns_nameservers }}
                domain: {{ dns_search_domains }}
                addresses:
                - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_cidr }}
                routes: {{ ctlplane_host_routes }}
                members:
                - type: interface
                  name: nic2
                  mtu: {{ min_viable_mtu }}
                  # force the MAC address of the bridge to this interface
                  primary: true
              {% for network in nodeset_networks %}
                - type: vlan
                  mtu: {{ lookup(vars, networks_lower[network] ~ _mtu) }}
                  vlan_id: {{ lookup(vars, networks_lower[network] ~ _vlan_id) }}
                  addresses:
                  - ip_netmask:
                      {{ lookup(vars, networks_lower[network] ~ _ip) }}/{{ lookup(vars, networks_lower[network] ~ _cidr) }}
                  routes: {{ lookup(vars, networks_lower[network] ~ _host_routes) }}
              {% endfor %}
            edpm_neutron_metadata_agent_image: {{ registry_url }}/openstack-neutron-metadata-agent-ovn:{{ image_tag }}
            edpm_nodes_validation_validate_controllers_icmp: false
            edpm_nodes_validation_validate_gateway_icmp: false
            edpm_selinux_mode: enforcing
            edpm_sshd_allowed_ranges:
            - 192.168.122.0/24
            - 192.168.111.0/24
            edpm_sshd_configure_firewall: true
            enable_debug: false
            gather_facts: false
            image_tag: current-podified
            neutron_physical_bridge_name: br-ex
            neutron_public_interface_name: eth0
            service_net_map:
              nova_api_network: internalapi
              nova_libvirt_network: internalapi
            storage_mgmt_cidr: "24"
            storage_mgmt_host_routes: []
            storage_mgmt_mtu: 9000
            storage_mgmt_vlan_id: 23
            storage_mtu: 9000
            timesync_ntp_servers:
            - hostname: pool.ntp.org
        ansibleSSHPrivateKeySecret: dataplane-ansible-ssh-private-key-secret
        managementNetwork: ctlplane
        networks:
        - defaultRoute: true
          name: ctlplane
          subnetName: subnet1
        - name: internalapi
          subnetName: subnet1
        - name: storage
          subnetName: subnet1
        - name: tenant
          subnetName: subnet1
      nodes:
        edpm-compute-0:
          ansible:
            host: 192.168.122.100
          hostName: compute-0
          networks:
          - defaultRoute: true
            fixedIP: 192.168.122.100
            name: ctlplane
            subnetName: subnet1
          - name: internalapi
            subnetName: subnet1
          - name: storage
            subnetName: subnet1
          - name: storagemgmt
            subnetName: subnet1
          - name: tenant
            subnetName: subnet1
        edpm-compute-1:
          ansible:
            host: 192.168.122.101
          hostName: compute-1
          networks:
          - defaultRoute: true
            fixedIP: 192.168.122.101
            name: ctlplane
            subnetName: subnet1
          - name: internalapi
            subnetName: subnet1
          - name: storage
            subnetName: subnet1
          - name: storagemgmt
            subnetName: subnet1
          - name: tenant
            subnetName: subnet1
        edpm-compute-2:
          ansible:
            host: 192.168.122.102
          hostName: compute-2
          networks:
          - defaultRoute: true
            fixedIP: 192.168.122.102
            name: ctlplane
            subnetName: subnet1
          - name: internalapi
            subnetName: subnet1
          - name: storage
            subnetName: subnet1
          - name: storagemgmt
            subnetName: subnet1
          - name: tenant
            subnetName: subnet1
      preProvisioned: true
      services:
      - bootstrap
      - configure-network
      - validate-network
      - install-os
      - ceph-hci-pre
      - configure-os
      - ssh-known-hosts
      - run-os
      - reboot-os
    참고

    네트워크 연결 키에 스토리지 관리 네트워크를 추가할 필요가 없습니다.

  5. CR을 적용합니다.

    $ oc apply -f <dataplane_cr_file>
    • & lt;dataplane_cr_file& gt;을 파일 이름으로 바꿉니다.

      참고

      Ansible은 OpenStackDataPlaneDeployment CRD가 생성될 때까지 네트워크를 구성하거나 검증하지 않습니다.

  6. OpenShift에 Red Hat OpenStack Services 배포 가이드에 설명된 대로 OpenStack DataPlaneDeployment CRD를 생성합니다. 이 가이드에는 OpenStackDataPlaneNodeSet CRD 파일이 정의되어 데이터 플레인 노드에서 서비스를 구성할 수 있습니다. https://docs.redhat.com/en/documentation/red_hat_openstack_services_on_openshift/18.0/html/deploying_red_hat_openstack_services_on_openshift/assembly_creating-the-data-plane
  7. 네트워크가 구성되었는지 확인하려면 다음 단계를 완료합니다.

    1. 데이터 플레인 노드에 SSH를 수행합니다.
    2. ip a 명령을 사용하여 구성된 네트워크를 표시합니다.
    3. 스토리지 네트워크가 구성된 네트워크 목록에 있는지 확인합니다.

1.2.1. Red Hat Ceph Storage MTU 설정

이 절차의 예제에서는 스토리지 및 storage_mgmt 네트워크의 MTU를 1500에서 9000으로 변경합니다. 9000의 MTU를 점보 프레임이라고 합니다. MTU를 늘릴 필요는 없지만 스토리지 성능 향상을 위해 점보 프레임을 사용합니다. 점보 프레임을 사용하는 경우 데이터 경로의 모든 네트워크 스위치 포트를 모두 점보 프레임을 지원하도록 구성해야 합니다. OpenShift에서 실행되는 스토리지 네트워크를 사용하는 서비스에도 MTU를 변경해야 합니다.

데이터 플레인 노드에 연결하는 OpenShift 서비스의 MTU를 변경하려면 기본 인터페이스 및 VLAN 인터페이스의 Node Network Configuration Policy(NNCP)를 업데이트합니다. 기본 CryostatD 인터페이스에 이미 원하는 MTU가 있는 경우 ND(Network Attachment Definition)를 업데이트할 필요가 없습니다. 기본 인터페이스의 MTU가 9000으로 설정되어 있고 위의 VLAN 인터페이스에 지정되지 않은 경우 기본 인터페이스의 값으로 기본 설정됩니다.

MTU 값이 일관적이지 않은 경우 Red Hat Ceph Storage 클러스터가 쿼럼에 도달하지 않거나 CephX 프로토콜을 사용하여 인증을 지원하지 않을 수 있는 애플리케이션 계층에서 문제가 발생할 수 있습니다. MTU가 변경되어 이러한 유형의 문제를 관찰하는 경우 점보 프레임을 사용하여 네트워크를 사용하는 모든 호스트가 ping 명령과 함께 선택한 MTU 값에 통신할 수 있는지 확인합니다.

$ ping -M do -s 8972 172.20.0.100
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동