1.2. 데이터 플레인 노드 네트워크 구성
Red Hat Ceph Storage 네트워킹 요구 사항을 수용하도록 데이터 플레인 노드 네트워크를 구성해야 합니다.
사전 요구 사항
- 컨트롤 플레인 배포가 완료되었지만 Ceph Storage를 사용하도록 수정되지 않았습니다.
- 데이터 플레인 노드는 운영 체제를 사용하여 프로비저닝되었습니다.
- 데이터 플레인 노드는 Ansible에서 사용할 수 있는 SSH 키를 통해 액세스할 수 있습니다.
- 데이터 플레인 노드에는 Ceph OSD로 사용할 수 있는 디스크가 있습니다.
- 사용 가능한 데이터 플레인 노드가 3개 이상 있어야 합니다. 중복을 위해서는 Ceph Storage 클러스터에 최소 3개의 노드가 있어야 합니다.
프로세스
OpenStackDataPlaneNodeSetCRD 파일을 생성하여 데이터 플레인 노드를 나타냅니다.참고Red Hat OpenShift에서 CR을 생성하지 마십시오.
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참고목록에서 제거한 서비스를 확인합니다. 나중에 목록에 다시 추가합니다.
-
(선택 사항)
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 역할을 참조하십시오. 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참고네트워크 연결 키에 스토리지 관리 네트워크를 추가할 필요가 없습니다.
CR을 적용합니다.
$ oc apply -f <dataplane_cr_file>&
lt;dataplane_cr_file>을 파일 이름으로 바꿉니다.참고Ansible은
OpenStackDataPlaneDeploymentCRD가 생성될 때까지 네트워크를 구성하거나 검증하지 않습니다.
-
OpenShift에 Red Hat OpenStack Services 배포 가이드에 설명된 대로
OpenStackDataPlaneDeployment CRD를 생성합니다. 이 가이드에는OpenStackDataPlaneNodeSetCRD 파일이 정의되어 데이터 플레인 노드에서 서비스를 구성할 수 있습니다. 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 네트워크가 구성되었는지 확인하려면 다음 단계를 완료합니다.
- 데이터 플레인 노드에 SSH를 수행합니다.
-
ip a명령을 사용하여 구성된 네트워크를 표시합니다. - 스토리지 네트워크가 구성된 네트워크 목록에 있는지 확인합니다.
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