Bare Metal Provisioning


Red Hat OpenStack Platform 17.0

Bare Metal Provisioning 서비스(ironic) 설치 및 구성

OpenStack Documentation Team

초록

Red Hat OpenStack Platform 환경의 오버클라우드에 Bare Metal Provisioning 서비스를 설치 및 구성하여 클라우드 사용자의 물리적 시스템을 프로비저닝하고 관리합니다.

1장. Bare Metal Provisioning 서비스(ironic) 기능

Bare Metal Provisioning 서비스(ironic) 구성 요소를 사용하여 클라우드 사용자의 베어 메탈 인스턴스로 물리적 머신을 프로비저닝하고 관리합니다. 베어 메탈 인스턴스를 프로비저닝하고 관리하기 위해 베어 메탈 프로비저닝 서비스는 오버클라우드의 다음 RHOSP(Red Hat OpenStack Platform) 서비스와 상호 작용합니다.

  • Compute 서비스(nova)는 가상 머신 인스턴스 관리를 위한 스케줄링, 테넌트 할당량 및 사용자용 API를 제공합니다. 베어 메탈 프로비저닝 서비스는 하드웨어 관리를 위한 관리 API를 제공합니다.
  • ID 서비스(keystone)는 요청 인증을 제공하고 Bare Metal Provisioning 서비스를 지원하여 다른 RHOSP 서비스를 찾습니다.
  • Image 서비스(glance)는 디스크 및 인스턴스 이미지 및 이미지 메타데이터를 관리합니다.
  • Networking 서비스(neutron)는 DHCP 및 네트워크 구성을 제공하고 부팅 시 인스턴스가 연결된 가상 또는 물리적 네트워크를 프로비저닝합니다.
  • Object Storage 서비스(swift)는 일부 드라이버의 임시 이미지 URL을 표시합니다.

Bare Metal 프로비저닝 서비스 구성 요소

베어 메탈 프로비저닝 서비스는 ironic-* 이라는 서비스로 구성됩니다. 다음 서비스는 베어 메탈 프로비저닝의 핵심 서비스입니다.

Bare Metal Provisioning API (ironic-api)
이 서비스는 사용자에게 외부 REST API를 제공합니다. API는 원격 프로시저 호출(RPC)을 통해 애플리케이션 요청을 Bare Metal Provisioning conductor로 보냅니다.
Bare Metal Provisioning conductor (ironic-conductor)

이 서비스는 드라이버를 사용하여 다음 베어 메탈 노드 관리 작업을 수행합니다.

  • 베어 메탈 노드를 추가, 편집 및 삭제합니다.
  • IPMI, Redfish 또는 기타 벤더별 프로토콜을 사용하여 베어 메탈 노드의 전원을 켜거나 끕니다.
  • 베어 메탈 노드를 프로비저닝, 배포 및 정리합니다.
Bare Metal Provisioning inspector (ironic-inspector)
이 서비스는 베어 메탈 인스턴스를 예약하는 데 필요한 베어 메탈 노드의 하드웨어 속성을 검색하고 검색된 이더넷 MAC에 대해 베어 메탈 프로비저닝 서비스 포트를 생성합니다.
Bare Metal 프로비저닝 데이터베이스
이 데이터베이스는 하드웨어 정보 및 상태를 추적합니다.
메시지 큐
모든 서비스는 ironic-apiironic-conductor 간의 RPC 구현을 포함하여 이 메시징 서비스를 사용하여 서로 통신합니다.
Bare Metal Provisioning 에이전트 (ironic-python-agent)
이 서비스는 임시 램디스크에서 실행되어 ironic-conductorironic-inspector 서비스에 원격 액세스, 대역 내 하드웨어 제어 및 하드웨어 인트로스펙션을 제공합니다.

베어 메탈 인스턴스 프로비저닝

베어 메탈 프로비저닝 서비스는 iPXE를 사용하여 물리적 머신을 베어 메탈 인스턴스로 프로비저닝합니다. 다음 다이어그램에서는 클라우드 사용자가 기본 드라이버를 사용하여 새 베어 메탈 인스턴스를 시작할 때 프로비저닝 프로세스 중에 RHOSP 서비스가 상호 작용하는 방법을 간략하게 설명합니다.

The PXE Provisioning Process

2장. 베어 메탈 프로비저닝 요구사항

클라우드 사용자가 베어 메탈 인스턴스를 시작할 수 있는 오버클라우드를 제공하려면 RHOSP(Red Hat OpenStack Platform) 환경에 필요한 하드웨어 및 네트워크 구성이 있어야 합니다.

2.1. 하드웨어 요구 사항

프로비저닝을 위해 클라우드 사용자가 사용할 베어 메탈 머신의 하드웨어 요구 사항은 운영 체제에 따라 다릅니다. Red Hat Enterprise Linux 설치의 하드웨어 요구 사항에 대한 자세한 내용은 Red Hat Enterprise Linux 제품 문서를 참조하십시오.

프로비저닝을 위해 클라우드 사용자가 사용할 수 있도록 하려는 모든 베어 메탈 머신에는 다음과 같은 기능이 있어야 합니다.

  • 베어 메탈 네트워크에 연결하는 NIC입니다.
  • ironic-conductor 서비스에서 연결할 수 있는 네트워크에 연결된 Redfish 또는 IPMI와 같은 전원 관리 인터페이스입니다. 기본적으로 ironic-conductor 는 구성 가능 역할을 사용하고 ironic-conductor 를 다른 위치에서 실행하지 않는 한 모든 컨트롤러 노드에서 실행됩니다.
  • 베어 메탈 네트워크에서 PXE 부팅. 배포의 다른 모든 NIC에서 PXE 부팅을 비활성화합니다.

2.2. 네트워킹 요구사항

베어 메탈 네트워크는 다음 작업에 사용할 베어 메탈 프로비저닝 서비스의 사설 네트워크여야 합니다.

  • 오버클라우드의 베어 메탈 머신 프로비저닝 및 관리.
  • 노드가 프로비저닝되지 않은 경우 베어 메탈 노드 정리
  • 베어 메탈 머신에 대한 테넌트 액세스.

베어 메탈 네트워크는 베어 메탈 시스템을 검색하는 DHCP 및 PXE 부팅 기능을 제공합니다. 베어 메탈 프로비저닝 서비스에서 PXE 부팅 및 DHCP 요청을 제공할 수 있도록 이 네트워크는 트렁크된 인터페이스에서 기본 VLAN을 사용해야 합니다.

베어 메탈 머신은 RHOSP(Red Hat OpenStack Platform) 환경의 컨트롤 플레인 네트워크에 직접 액세스할 수 있으므로 오버클라우드의 베어 메탈 프로비저닝 서비스는 신뢰할 수 있는 테넌트 환경을 위해 설계되었습니다. 따라서 기본 베어 메탈 네트워크는 ironic-conductor 서비스에 플랫 네트워크를 사용합니다.

테넌트가 컨트롤 플레인 네트워크를 방해할 수 있으므로 기본 플랫 프로비저닝 네트워크는 고객 환경에 보안 문제가 발생할 수 있습니다. 이 위험을 방지하려면 컨트롤 플레인에 액세스할 수 없는 베어 메탈 프로비저닝 서비스에 대해 사용자 정의 구성 가능 베어 메탈 프로비저닝 네트워크를 구성할 수 있습니다.

베어 메탈 네트워크는 프로비저닝에 대해 태그를 지정하지 않아야 하며 베어 메탈 프로비저닝 API에도 액세스할 수 있어야 합니다. director 프로비저닝 네트워크라고도 하는 컨트롤 플레인 네트워크는 항상 태그되지 않습니다. 다른 네트워크에 태그를 지정할 수 있습니다.

베어 메탈 프로비저닝 서비스를 호스팅하는 컨트롤러 노드는 베어 메탈 네트워크에 액세스할 수 있어야 합니다.

베어 메탈 머신이 PXE 부팅으로 구성된 NIC는 베어 메탈 네트워크에 액세스할 수 있어야 합니다.

베어 메탈 네트워크는 OpenStack 운영자가 생성합니다. 클라우드 사용자는 공용 OpenStack API 및 베어 메탈 네트워크에 직접 액세스할 수 있습니다. 기본 플랫 베어 메탈 네트워크를 사용하면 클라우드 사용자가 컨트롤 플레인에 대한 간접 액세스 권한도 있습니다.

베어 메탈 프로비저닝 서비스는 노드 정리에 베어 메탈 네트워크를 사용합니다.

2.2.1. 기본 베어 메탈 네트워크

기본 Bare Metal Provisioning 서비스 배포 아키텍처에서 베어 메탈 네트워크는 컨트롤 플레인 네트워크와 다릅니다. 베어 메탈 네트워크는 테넌트 네트워크 역할을 하는 플랫 네트워크입니다. 이 네트워크는 director 프로비저닝 네트워크라는 컨트롤 플레인의 베어 메탈 프로비저닝 서비스로 라우팅해야 합니다. 분리된 베어 메탈 네트워크를 정의하는 경우 베어 메탈 노드는 PXE 부팅을 수행할 수 없습니다.

기본 베어 메탈 네트워크 아키텍처 다이어그램

Default bare metal network architecture diagram

2.2.2. 사용자 정의 구성 가능 베어 메탈 네트워크

베어 메탈 프로비저닝 서비스 배포 아키텍처에서 사용자 지정 구성 가능 베어 메탈 네트워크를 사용하는 경우 베어 메탈 네트워크는 컨트롤 플레인에 액세스할 수 없는 사용자 지정 구성 가능 네트워크입니다. 컨트롤 플레인에 대한 액세스를 제한하려면 사용자 정의 구성 가능 베어 메탈 네트워크를 사용합니다.

3장. 베어 메탈 프로비저닝 서비스를 사용하여 오버클라우드 배포

Bare Metal Provisioning 서비스(ironic)를 사용하여 오버클라우드를 배포하려면 베어 메탈 네트워크를 생성 및 구성하고 베어 메탈 프로비저닝을 활성화하도록 오버클라우드를 구성해야 합니다.

  1. 베어 메탈 네트워크를 생성합니다. 컨트롤러 노드에서 provisioning 네트워크 인터페이스를 재사용하여 플랫 네트워크를 생성하거나 사용자 정의 네트워크를 생성할 수 있습니다.

  2. 베어 메탈 프로비저닝을 활성화하도록 오버클라우드를 구성합니다.

참고

OVN(Open Virtual Network)을 사용하는 경우 Bare Metal Provisioning 서비스는 ironic-overcloud.yaml 파일 neutron-dhcp-agent 에 정의된 DHCP 에이전트에서만 지원됩니다. OVN의 기본 제공 DHCP 서버는 프로비저닝 네트워크에 베어 메탈 노드를 프로비저닝하거나 DHCP를 제공할 수 없습니다. iPXE 체인 로드를 활성화하려면 OVN DHCP 서버에서 지원하지 않는 dnsmasq에서 --dhcp-match 태그를 설정해야 합니다.

사전 요구 사항

3.1. 기본 플랫 네트워크 구성

기본 플랫 베어 메탈 네트워크를 사용하려면 컨트롤러 노드에서 provisioning 네트워크 인터페이스를 재사용하여 Bare Metal Provisioning 서비스(ironic) 브리지를 생성합니다.

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. stackrc 파일을 소싱합니다.

    [stack@director ~]$ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. /home/stack/templates/nic-configs/controller.yaml 파일을 수정하여 컨트롤러 노드 eth1 에서 provisioning 네트워크 인터페이스를 재사용하여 베어 메탈 네트워크의 브릿지를 생성합니다.

    network_config:
    - type: ovs_bridge
      name: br-baremetal
      use_dhcp: false
      members:
        - type: interface
          name: eth1
      addresses:
        - ip_netmask: {{ ctlplane_ip }}/{{ ctlplane_subnet_cidr }}
    Copy to Clipboard Toggle word wrap
    참고

    provisioning 네트워크를 재사용하여 VLAN을 생성할 때 베어 메탈 네트워크에 태그를 지정할 수 없습니다.

  4. network-environment.yaml 파일의 NeutronBridgeMappings 매개변수에 br-baremetal 을 추가합니다.

    parameter_defaults:
      NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
    Copy to Clipboard Toggle word wrap
  5. network-environment.yaml 파일의 NeutronFlatNetworks 매개변수로 지정된 네트워크 목록에 baremetal 을 추가합니다.

    parameter_defaults:
      NeutronBridgeMappings: datacentre:br-ex,baremetal:br-baremetal
      NeutronFlatNetworks: datacentre,baremetal
    Copy to Clipboard Toggle word wrap

3.2. 사용자 지정 IPv4 프로비저닝 네트워크 구성

IPv4를 통해 오버클라우드를 프로비저닝하고 배포할 사용자 지정 IPv4 프로비저닝 네트워크를 만듭니다.

프로세스

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. stackrc 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. network_data.yaml 파일을 환경 파일 디렉터리에 복사합니다.

    (undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yaml
    Copy to Clipboard Toggle word wrap
  4. 오버클라우드 프로비저닝을 위한 새 네트워크를 network_data.yaml 파일에 추가합니다.

    # custom network for overcloud provisioning
    - name: OcProvisioning
      name_lower: oc_provisioning
      vip: true
      vlan: 205
      ip_subnet: '<ipv4_subnet_address>/<ipv4_mask>'
      allocation_pools: [{'start': '<ipv4_start_address>', 'end': '<ipv4_end_address>'}]
    Copy to Clipboard Toggle word wrap
    • & lt;ipv4_subnet_address& gt;를 IPv4 서브넷의 IPv4 주소로 바꿉니다.
    • & lt;ipv4_mask& gt;를 IPv4 서브넷의 IPv4 네트워크 마스크로 바꿉니다.
    • < ipv4_start_address > 및 < ipv4_end_address >를 주소 할당에 사용할 IPv4 범위로 바꿉니다.
  5. 새 IPv4 프로비저닝 네트워크를 사용하도록 ServiceNetMap 구성에서 IronicApiNetworkIronicNetwork 를 구성합니다.

    ServiceNetMap:
      IronicApiNetwork: oc_provisioning
      IronicNetwork: oc_provisioning
    Copy to Clipboard Toggle word wrap
  6. 새 네트워크를 로컬 컨트롤러 NIC 구성 파일에 인터페이스로 추가합니다.

    network_config:
    - type: vlan
      vlan_id:
        get_param: OcProvisioningNetworkVlanID
      addresses:
      - ip_netmask:
          get_param: OcProvisioningIpSubnet
    Copy to Clipboard Toggle word wrap
  7. roles_data.yaml 파일을 환경 파일 디렉터리에 복사합니다.

    (undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yaml
    Copy to Clipboard Toggle word wrap
  8. 컨트롤러의 새 네트워크를 roles_data.yaml 파일에 추가합니다.

    networks:
      ...
      OcProvisioning:
        subnet: oc_provisioning_subnet
    Copy to Clipboard Toggle word wrap
  9. 아직 없는 경우 roles_data.yaml 파일의 Ironic 역할에 IronicInspector 서비스를 포함합니다.

    ServicesDefault:
      OS::TripleO::Services::IronicInspector
    Copy to Clipboard Toggle word wrap

3.3. 사용자 지정 IPv6 프로비저닝 네트워크 구성

IPv6를 통해 오버클라우드를 프로비저닝하고 배포할 사용자 지정 IPv6 프로비저닝 네트워크를 만듭니다.

절차

  1. stack 사용자로 언더클라우드에 로그인합니다.
  2. stackrc 파일을 소싱합니다.

    [stack@director ~]$ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. network_data.yaml 파일을 환경 파일 디렉터리에 복사합니다.

    (undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/network_data.yaml /home/stack/templates/network_data.yaml
    Copy to Clipboard Toggle word wrap
  4. 오버클라우드 프로비저닝을 위한 새 IPv6 네트워크를 network_data.yaml 파일에 추가합니다.

    # custom network for IPv6 overcloud provisioning
    - name: OcProvisioningIPv6
      vip: true
      name_lower: oc_provisioning_ipv6
      vlan: 10
      ipv6: true
      ipv6_subnet: '<ipv6_subnet_address>/<ipv6_prefix>'
      ipv6_allocation_pools: [{'start': '<ipv6_start_address>', 'end': '<ipv6_end_address>'}]
      gateway_ipv6: '<ipv6_gw_address>'
    Copy to Clipboard Toggle word wrap
    • & lt;ipv6_subnet_address& gt;를 IPv6 서브넷의 IPv6 주소로 바꿉니다.
    • & lt;ipv6_prefix& gt;를 IPv6 서브넷의 IPv6 네트워크 접두사로 바꿉니다.
    • < ipv6_start_address > 및 < ipv6_end_address >를 주소 할당에 사용할 IPv6 범위로 바꿉니다.
    • & lt;ipv6_gw_address& gt;를 게이트웨이의 IPv6 주소로 바꿉니다.
  5. 환경 파일 디렉터리에 새 파일 network_environment_overrides.yaml 을 생성합니다.

    $ touch /home/stack/templates/network_environment_overrides.yaml
    Copy to Clipboard Toggle word wrap
  6. 새 IPv6 프로비저닝 네트워크를 사용하도록 network_environment_overrides.yaml 파일에서 IronicApiNetworkIronicNetwork 를 구성합니다.

    ServiceNetMap:
      IronicApiNetwork: oc_provisioning_ipv6
      IronicNetwork: oc_provisioning_ipv6
    Copy to Clipboard Toggle word wrap
  7. IronicIpVersion 매개변수를 6 으로 설정합니다.

    parameter_defaults:
      IronicIpVersion: 6
    Copy to Clipboard Toggle word wrap
  8. RabbitIPv6,MysqlIPv6RedisIPv6 매개변수를 활성화합니다.

    parameter_defaults:
      RabbitIPv6: True
      MysqlIPv6: True
      RedisIPv6: True
    Copy to Clipboard Toggle word wrap
  9. 새 네트워크를 로컬 컨트롤러 NIC 구성 파일에 인터페이스로 추가합니다.

    network_config:
    - type: vlan
      vlan_id:
        get_param: OcProvisioningIPv6NetworkVlanID
      addresses:
      - ip_netmask:
          get_param: OcProvisioningIPv6IpSubnet
    Copy to Clipboard Toggle word wrap
  10. roles_data.yaml 파일을 환경 파일 디렉터리에 복사합니다.

    (undercloud) [stack@host01 ~]$ cp /usr/share/openstack-tripleo-heat-templates/roles_data.yaml /home/stack/templates/roles_data.yaml
    Copy to Clipboard Toggle word wrap
  11. Controller 역할의 새 네트워크를 roles_data.yaml 파일에 추가합니다.

    networks:
      ...
      - OcProvisioningIPv6
    Copy to Clipboard Toggle word wrap
  12. 아직 없는 경우 roles_data.yaml 파일의 Ironic 역할에 IronicInspector 서비스를 포함합니다.

    ServicesDefault:
      OS::TripleO::Services::IronicInspector
    Copy to Clipboard Toggle word wrap

3.4. 베어 메탈 프로비저닝을 활성화하도록 오버클라우드 설정

/usr/share/openstack-tripleo-heat-templates/environments/services 디렉터리에 있는 기본 템플릿 중 하나를 사용하여 Bare Metal Provisioning 서비스(ironic)가 활성화된 오버클라우드를 배포합니다.

  • OVS를 사용하는 배포의 경우: ironic.yaml
  • OVN: ironic-overcloud.yaml을 사용하는 배포의 경우

배포에 필요한 대로 로컬 환경 파일을 생성하여 기본 구성을 재정의할 수 있습니다.

프로세스

  1. 로컬 디렉터리에 환경 파일을 생성하여 배포에 대한 Bare Metal Provisioning 서비스(예: ironic-overrides.yaml )를 구성합니다.
  2. 선택 사항: 프로비저닝 전과 프로비저닝 사이에 베어 메탈 머신에서 수행되는 정리 유형을 구성합니다.

    parameter_defaults:
      IronicCleaningDiskErase: <cleaning_type>
    Copy to Clipboard Toggle word wrap

    & lt;cleaning_type& gt;을 다음 값 중 하나로 바꿉니다.

    • Full: (기본값) 전체 정리를 수행합니다.
    • metadata: 파티션 테이블만 정리합니다. 이러한 유형의 정리는 정리 과정의 속도를 크게 높입니다. 그러나 다중 테넌트 환경에서 배포가 덜 안전하므로 신뢰할 수 있는 테넌트 환경에서만 이 옵션을 사용합니다.
  3. 선택 사항: 기본 드라이버에 드라이버를 추가합니다.

    parameter_defaults:
      IronicEnabledHardwareTypes: ipmi,idrac,ilo,[additional_driver_1],...,[additional_driver_n]
    Copy to Clipboard Toggle word wrap

    [additional_driver_1], 선택적으로 [additional_driver_n] 까지 모든 드라이버를 활성화하려는 추가 드라이버로 교체합니다.

  4. 베어 메탈 인트로스펙션을 활성화하려면 로컬 베어 메탈 프로비저닝 서비스 환경 파일 ironic-overrides.yaml 에 다음 구성을 추가합니다.

    parameter_defaults:
      IronicInspectorSubnets:
        - ip_range: <ip_range>
      IPAImageURLs: '["http://<ip_address>:<port>/agent.kernel", "http://<ip_address>:<port>/agent.ramdisk"]'
      IronicInspectorInterface: '<baremetal_interface>'
    Copy to Clipboard Toggle word wrap
    • & lt;ip_range >를 환경의 IP 범위(예: 192.168.0.100,192.168.0.120 )로 바꿉니다.
    • < ip_address>:<port >를 IPA 커널 및 램디스크를 호스팅하는 웹 서버의 IP 주소 및 포트로 바꿉니다. 언더클라우드에서 사용하는 것과 동일한 이미지를 사용하려면 IP 주소를 언더클라우드 IP 주소로 설정하고 포트를 8088 으로 설정합니다. 이 매개변수를 생략하는 경우 각 컨트롤러 노드에 대안을 포함해야 합니다.
    • & lt;baremetal_interface >를 베어 메탈 네트워크 인터페이스(예: br-baremetal )로 바꿉니다.
  5. 새 역할 및 사용자 지정 환경 파일을 다른 환경 파일과 함께 스택에 추가하고 오버클라우드를 배포합니다.

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/node-info.yaml \
      -r /home/stack/templates/roles_data.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/network-environment.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/services/<default_ironic_template> \
      -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-inspector.yaml \
      -e /home/stack/templates/network_environment_overrides.yaml \
      -n /home/stack/templates/network_data.yaml \
      -e /home/stack/templates/ironic-overrides.yaml
    Copy to Clipboard Toggle word wrap
    • 배포를 위한 네트워킹 서비스 메커니즘 드라이버에 따라 < default_ironic_template >을 ironic.yaml 또는 ironic-overcloud.yaml 로 바꿉니다.
    참고

    이후 파일의 구성이 우선하므로 환경 파일을 openstack overcloud deploy 명령에 전달하는 순서가 중요합니다. 따라서 오버클라우드에서 베어 메탈 프로비저닝을 활성화하고 구성하는 환경 파일은 네트워크 구성 파일 뒤에 명령으로 전달되어야 합니다.

3.5. Bare Metal 프로비저닝 서비스 테스트

OpenStack Integration Test Suite를 사용하여 Red Hat OpenStack 배포를 검증할 수 있습니다. 자세한 내용은 OpenStack Integration Test Suite Guide 를 참조하십시오.

Bare Metal Provisioning 서비스에 대한 추가 확인 방법:

  1. 관리자로 ID에 액세스하도록 쉘을 구성합니다.

    $ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  2. nova-compute 서비스가 컨트롤러 노드에서 실행 중인지 확인합니다.

    $ openstack compute service list -c Binary -c Host -c Status
    Copy to Clipboard Toggle word wrap
  3. 기본 ironic 드라이버를 변경한 경우 필요한 드라이버가 활성화되어 있는지 확인합니다.

    $ openstack baremetal driver list
    Copy to Clipboard Toggle word wrap
  4. ironic 끝점이 나열되어 있는지 확인합니다.

    $ openstack catalog list
    Copy to Clipboard Toggle word wrap

3.6. 추가 리소스

4장. 배포 후 Bare Metal 프로비저닝 서비스 구성

Bare Metal Provisioning 서비스(ironic)를 사용하여 오버클라우드를 배포한 경우 베어 메탈 워크로드를 위해 오버클라우드를 준비해야 합니다. 베어 메탈 워크로드를 위해 오버클라우드를 준비하고 클라우드 사용자가 베어 메탈 인스턴스를 생성할 수 있도록 하려면 다음 작업을 완료합니다.

  • 베어 메탈 프로비저닝 서비스와 통합되도록 네트워킹 서비스(neutron)를 구성합니다.
  • 노드 정리를 구성합니다.
  • 베어 메탈 플레이버 및 리소스 클래스를 생성합니다.
  • 선택 사항: 베어 메탈 이미지를 생성합니다.
  • 물리적 머신을 베어 메탈 노드로 추가합니다.
  • 선택 사항: Redfish 가상 미디어 부팅을 구성합니다.
  • 선택 사항: 호스트 집계를 생성하여 물리적 및 가상 머신 프로비저닝을 분리합니다.

4.1. 베어 메탈 프로비저닝을 위한 네트워킹 서비스 구성

Bare Metal Provisioning 서비스(ironic)와 통합하도록 Networking 서비스(neutron)를 구성할 수 있습니다. 다음 방법 중 하나를 사용하여 베어 메탈 네트워크를 구성할 수 있습니다.

  • Bare Metal Provisioning conductor 서비스 ironic-conductor 용으로 단일 플랫 베어 메탈 네트워크를 생성합니다. 이 네트워크는 컨트롤 플레인 네트워크의 베어 메탈 프로비저닝 서비스로 라우팅해야 합니다.
  • 오버클라우드에서 베어 메탈 프로비저닝 서비스를 구현할 사용자 지정 구성 가능 네트워크를 생성합니다.

Bare Metal Provisioning conductor 서비스에 대한 단일 플랫 베어 메탈 네트워크 ironic-conductor 를 생성하여 Bare Metal Provisioning 서비스(ironic)와 통합하도록 Networking 서비스(neutron)를 구성할 수 있습니다. 이 네트워크는 컨트롤 플레인 네트워크의 베어 메탈 프로비저닝 서비스로 라우팅해야 합니다.

프로세스

  1. Networking 서비스(neutron)를 root 사용자로 호스팅하는 노드에 로그인합니다.
  2. 오버클라우드 인증 정보 파일을 소싱합니다.

    # source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • & lt;credentials_file& gt;을 인증 정보 파일의 이름으로 바꿉니다(예: overcloudrc ).
  3. 베어 메탈 인스턴스를 프로비저닝할 flat 네트워크를 생성합니다.

    # openstack network create \
      --provider-network-type flat \
      --provider-physical-network <provider_physical_network> \
      --share <network_name>
    Copy to Clipboard Toggle word wrap
    • & lt;provider_physical_network >를 network-environment.yaml 파일에서 NeutronBridgeMappings 매개변수로 구성된 가상 네트워크를 구현하는 물리적 네트워크의 이름으로 바꿉니다.
    • & lt;network_name& gt;을 이 네트워크의 이름으로 바꿉니다.
  4. flat 네트워크에 서브넷을 생성합니다.

    # openstack subnet create \
      --network <network_name> \
      --subnet-range <network_cidr> \
      --ip-version 4 \
      --gateway <gateway_ip> \
      --allocation-pool start=<start_ip>,end=<end_ip> \
      --dhcp <subnet_name>
    Copy to Clipboard Toggle word wrap
    • & lt;network_name >을 이전 단계에서 생성한 프로비저닝 네트워크의 이름으로 바꿉니다.
    • & lt;network_cidr >을 서브넷이 나타내는 IP 주소 블록의 CIDR(Classless Inter-Domain Routing) 표현으로 바꿉니다. < start_ip>로 시작하고 < end_ip >로 끝나는 IP 주소 블록은 < network_ cidr >에서 지정한 IP 주소 블록 내에 있어야 합니다.
    • 새 서브넷의 게이트웨이 역할을 하는 라우터 인터페이스의 IP 주소 또는 호스트 이름으로 바꿉니다 . 이 주소는 < network_cidr>에서 지정하는 IP 주소 블록 내에 있어야 하지만 < start_ ip>로 시작하고 < end_ip >로 끝나는 범위로 지정된 IP 주소 블록 외부에 있어야 합니다.
    • & lt;start_ip >를 유동 IP 주소가 할당되는 새 서브넷 내의 IP 주소 범위를 시작하는 IP 주소로 바꿉니다.
    • & lt;end_ip >를 유동 IP 주소가 할당되는 새 서브넷 내의 IP 주소 범위 끝을 나타내는 IP 주소로 바꿉니다.
    • & lt;subnet_name& gt;을 서브넷의 이름으로 바꿉니다.
  5. 네트워크 및 서브넷의 라우터를 생성하여 Networking 서비스가 메타데이터 요청을 제공하는지 확인합니다.

    # openstack router create <router_name>
    Copy to Clipboard Toggle word wrap
    • & lt;router_name& gt;을 라우터의 이름으로 바꿉니다.
  6. 서브넷을 새 라우터에 연결하여 cloud-init 의 메타데이터 요청을 제공하고 구성할 노드를 활성화합니다.

    # openstack router add subnet <router_name> <subnet>
    Copy to Clipboard Toggle word wrap
    • & lt;router_name >을 라우터 이름으로 바꿉니다.
    • & lt;subnet >을 4단계에서 생성한 베어 메탈 서브넷의 ID 또는 이름으로 바꿉니다.

오버클라우드에서 Bare Metal Provisioning 서비스를 구현하는 사용자 지정 구성 가능 네트워크를 생성하여 Bare Metal Provisioning 서비스(ironic)와 통합하도록 네트워킹 서비스(neutron)를 구성할 수 있습니다.

프로세스

  1. 언더클라우드 호스트에 로그인합니다.
  2. 오버클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • & lt;credentials_file& gt;을 인증 정보 파일의 이름으로 바꿉니다(예: overcloudrc ).
  3. Bare Metal Provisioning 서비스를 호스팅하는 공급자 네트워크의 UUID를 검색합니다.

    (overcloud)$ openstack network show <network_name> -f value -c id
    Copy to Clipboard Toggle word wrap
    • & lt;network_name >을 베어 메탈 인스턴스 프로비저닝 네트워크에 사용하려는 공급자 네트워크의 이름으로 바꿉니다.
  4. 배포에 대해 Bare Metal Provisioning 서비스를 구성하는 로컬 환경 파일을 엽니다(예: ironic-overrides.yaml ).
  5. 베어 메탈 인스턴스 프로비저닝 네트워크로 사용할 네트워크를 구성합니다.

    parameter_defaults:
      IronicProvisioningNetwork: <network_uuid>
    Copy to Clipboard Toggle word wrap
    • & lt;network_uuid& gt;를 3단계에서 검색된 공급자 네트워크의 UUID로 바꿉니다.
  6. stackrc 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  7. 베어 메탈 인스턴스 프로비저닝 네트워크 구성을 적용하려면 베어 메탈 프로비저닝 환경 파일을 다른 환경 파일과 함께 스택에 추가하고 오버클라우드를 배포합니다.

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/node-info.yaml \
      -r /home/stack/templates/roles_data.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/network-environment.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/services/<default_ironic_template> \
      -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-inspector.yaml \
      -e /home/stack/templates/network_environment_overrides.yaml \
      -n /home/stack/templates/network_data.yaml \
      -e /home/stack/templates/ironic-overrides.yaml
    Copy to Clipboard Toggle word wrap
    • 배포를 위한 네트워킹 서비스 메커니즘 드라이버에 따라 < default_ironic_template >을 ironic.yaml 또는 ironic-overcloud.yaml 로 바꿉니다.

4.2. 베어 메탈 노드 정리

베어 메탈 프로비저닝 서비스는 노드를 정리하여 프로비저닝을 위해 준비합니다. 다음 방법 중 하나를 사용하여 베어 메탈 노드를 정리할 수 있습니다.

  • 자동: 노드를 프로비저닝 해제하면 노드 정리를 자동으로 수행하도록 오버클라우드를 구성할 수 있습니다.
  • 수동: 필요한 경우 개별 노드를 수동으로 정리할 수 있습니다.

4.2.1. 자동 노드 정리 구성

노드를 등록한 후 노드가 사용 가능한 프로비저닝 상태에 도달하기 전에 자동 베어 메탈 노드 정리가 실행됩니다. 노드가 프로비저닝되지 않을 때마다 자동 정리가 실행됩니다.

기본적으로 베어 메탈 프로비저닝 서비스는 노드 정리를 위해 provisioning 이라는 네트워크를 사용합니다. 그러나 네트워크 이름은 Networking 서비스(neutron)에서 고유하지 않으므로 프로젝트가 동일한 이름으로 네트워크를 생성하여 베어 메탈 프로비저닝 서비스와 충돌할 수 있습니다. 충돌을 방지하려면 네트워크 UUID를 사용하여 노드 정리 네트워크를 구성합니다.

프로세스

  1. 언더클라우드 호스트에 로그인합니다.
  2. 오버클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • & lt;credentials_file& gt;을 인증 정보 파일의 이름으로 바꿉니다(예: overcloudrc ).
  3. Bare Metal Provisioning 서비스를 호스팅하는 공급자 네트워크의 UUID를 검색합니다.

    (overcloud)$ openstack network show <network_name> -f value -c id
    Copy to Clipboard Toggle word wrap
    • & lt;network_name >을 베어 메탈 노드 정리 네트워크에 사용할 네트워크의 이름으로 바꿉니다.
  4. 배포에 대해 Bare Metal Provisioning 서비스를 구성하는 로컬 환경 파일을 엽니다(예: ironic-overrides.yaml ).
  5. 노드 정리 네트워크로 사용할 네트워크를 구성합니다.

    parameter_defaults:
      IronicCleaningNetwork: <network_uuid>
    Copy to Clipboard Toggle word wrap
    • & lt;network_uuid >를 3단계에서 검색한 공급자 네트워크의 UUID로 바꿉니다.
  6. stackrc 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  7. 노드 정리 네트워크 구성을 적용하려면 베어 메탈 프로비저닝 환경 파일을 다른 환경 파일과 함께 스택에 추가하고 오버클라우드를 배포합니다.

    (undercloud)$ openstack overcloud deploy --templates \
      -e [your environment files] \
      -e /home/stack/templates/node-info.yaml \
      -r /home/stack/templates/roles_data.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/network-environment.yaml \
      -e /usr/share/openstack-tripleo-heat-templates/environments/services/<default_ironic_template> \
      -e /usr/share/openstack-tripleo-heat-templates/environments/services/ironic-inspector.yaml \
      -e /home/stack/templates/network_environment_overrides.yaml \
      -n /home/stack/templates/network_data.yaml \
      -e /home/stack/templates/ironic-overrides.yaml
    Copy to Clipboard Toggle word wrap
    • 배포를 위한 네트워킹 서비스 메커니즘 드라이버에 따라 < default_ironic_template >을 ironic.yaml 또는 ironic-overcloud.yaml 로 바꿉니다.

4.2.2. 수동으로 노드 정리

필요에 따라 특정 노드를 수동으로 정리할 수 있습니다. 노드 정리에는 두 가지 모드가 있습니다.

  • metadata only clean: 노드의 모든 디스크에서 파티션을 제거합니다. 메타데이터는 전체 정리 모드보다 빠르지만 파티션 테이블만 지우기 때문에 보안이 떨어집니다. 신뢰할 수 있는 테넌트 환경에서만 이 모드를 사용합니다.
  • 전체 정리: ATA 보안 삭제 또는 축소를 사용하여 모든 디스크에서 모든 데이터를 제거합니다. 전체 정리를 완료하는 데 몇 시간이 걸릴 수 있습니다.

프로세스

  1. 오버클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • & lt;credentials_file& gt;을 인증 정보 파일의 이름으로 바꿉니다(예: overcloudrc ).
  2. 노드의 현재 상태를 확인합니다.

    $ openstack baremetal node show \
     -f value -c provision_state <node>
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 정리할 노드의 이름 또는 UUID로 바꿉니다.
  3. 노드가 manageable 상태가 아닌 경우 manageable 로 설정합니다.

    $ openstack baremetal node manage <node>
    Copy to Clipboard Toggle word wrap
  4. 노드를 정리합니다.

    $ openstack baremetal node clean <node> \
      --clean-steps '[{"interface": "deploy", "step": "<clean_mode>"}]'
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 정리할 노드의 이름 또는 UUID로 바꿉니다.
    • & lt;clean_mode >를 노드에서 수행할 정리 유형으로 바꿉니다.

      • Clear_devices: 전체 정리를 수행합니다.
      • Clear_devices_metadata: 메타데이터를 정리만 수행합니다.
  5. 정리가 완료될 때까지 기다린 다음 노드의 상태를 확인합니다.

    • manageable: 정리에 성공했으며 노드를 프로비저닝할 준비가 되었습니다.
    • clean failed: 정리에 실패했습니다. last_error 필드를 검사하여 실패 원인을 검사합니다.

4.3. 베어 메탈 인스턴스를 시작하기 위한 플레이버 생성

클라우드 사용자가 베어 메탈 인스턴스를 요청하는 데 사용할 수 있는 플레이버를 생성해야 합니다. 리소스 클래스를 사용하여 특정 플레이버와 함께 시작된 베어 메탈 인스턴스에 사용해야 하는 베어 메탈 노드를 지정할 수 있습니다. 노드에서 하드웨어 리소스를 식별하는 리소스 클래스를 사용하여 베어 메탈 노드에 태그를 지정할 수 있습니다(예: GPU). 클라우드 사용자는 GPU 리소스 클래스가 있는 플레이버를 선택하여 vGPU 워크로드에 대한 인스턴스를 생성할 수 있습니다. Compute 스케줄러는 리소스 클래스를 사용하여 인스턴스에 적합한 호스트 베어 메탈 노드를 식별합니다.

프로세스

  1. 오버클라우드 인증 정보 파일을 가져옵니다.

    $ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  2. 베어 메탈 인스턴스의 플레이버를 생성합니다.

    (overcloud)$ openstack flavor create --id auto \
     --ram <ram_size_mb> --disk <disk_size_gb> \
     --vcpus <no_vcpus> baremetal
    Copy to Clipboard Toggle word wrap
    • & lt;ram_size_mb >를 베어 메탈 노드의 RAM(MB)으로 바꿉니다.
    • & lt;disk_size_gb >를 베어 메탈 노드의 디스크 크기(GB)로 바꿉니다.
    • & lt;no_vcpus& gt;를 베어 메탈 노드의 CPU 수로 바꿉니다.

      참고

      이러한 속성은 인스턴스 예약에 사용되지 않습니다. 그러나 Compute 스케줄러는 디스크 크기를 사용하여 루트 파티션 크기를 결정합니다.

  3. 노드 목록을 검색하여 UUID를 확인합니다.

    (overcloud)$ openstack baremetal node list
    Copy to Clipboard Toggle word wrap
  4. 각 베어 메탈 노드에 사용자 지정 베어 메탈 리소스 클래스를 태그합니다.

    (overcloud)$ openstack baremetal node set \
     --resource-class baremetal.<CUSTOM> <node>
    Copy to Clipboard Toggle word wrap
    • & lt;CUSTOM >을 리소스 클래스의 용도를 식별하는 문자열로 바꿉니다. 예를 들어 GPU 워크로드에 대해 지정할 베어 메탈 노드를 태그하는 데 사용할 사용자 지정 GPU 리소스 클래스를 생성하려면 GPU로 설정합니다.
    • & lt;node& gt;를 베어 메탈 노드의 ID로 바꿉니다.
  5. 베어 메탈 인스턴스의 플레이버를 사용자 지정 리소스 클래스와 연결합니다.

    (overcloud)$ openstack flavor set \
     --property resources:CUSTOM_BAREMETAL_<CUSTOM>=1 \
     baremetal
    Copy to Clipboard Toggle word wrap

    베어 메탈 노드의 리소스 클래스에 해당하는 사용자 정의 리소스 클래스의 이름을 확인하려면 리소스 클래스를 대문자로 변환하고 각 문장 부호를 밑줄로 교체하고 CUSTOM_ 접두사를 사용합니다.

    참고

    플레이버는 베어 메탈 리소스 클래스의 인스턴스 하나만 요청할 수 있습니다.

  6. Compute 스케줄러가 베어 메탈 플레이버 속성을 사용하여 인스턴스를 예약하지 못하도록 다음 플레이버 속성을 설정합니다.

    (overcloud)$ openstack flavor set \
     --property resources:VCPU=0 \
     --property resources:MEMORY_MB=0 \
     --property resources:DISK_GB=0 baremetal
    Copy to Clipboard Toggle word wrap
  7. 새 플레이버에 올바른 값이 있는지 확인합니다.

    (overcloud)$ openstack flavor list
    Copy to Clipboard Toggle word wrap

4.4. 베어 메탈 인스턴스를 시작하기 위한 이미지 생성

Bare Metal Provisioning 서비스(ironic)를 포함하는 오버클라우드에는 두 가지 이미지 세트가 필요합니다.

  • 이미지 배포: 배포 이미지는 Bare Metal Provisioning 에이전트(ironic-python-agent)가 네트워크를 통해 RAM 디스크를 부팅하고 오버클라우드 노드의 사용자 이미지를 디스크에 복사하는 데 필요한 agent.ramdiskagent.kernel 이미지입니다. 배포 이미지를 언더클라우드 설치의 일부로 설치합니다. 자세한 내용은 Obtaining images for overcloud nodes 에서 참조하십시오.
  • 사용자 이미지: 클라우드 사용자가 베어 메탈 인스턴스를 프로비저닝하는 데 사용하는 이미지입니다. 사용자 이미지는 커널 이미지, 램디스크 이미지 및 기본 이미지로 구성됩니다. 기본 이미지는 루트 파티션 또는 전체 디스크 이미지입니다.

    • 전체 디스크 이미지: 파티션 테이블 및 부트 로더가 포함된 이미지입니다.
    • 루트 파티션 이미지: 운영 체제의 루트 파티션만 포함합니다.

호환되는 전체 디스크 RHEL 게스트 이미지는 수정 없이 작동해야 합니다. 자체 사용자 지정 디스크 이미지를 생성하려면 이미지 생성 및 관리 가이드에서 이미지 생성 을 참조하십시오.

4.4.1. 이미지 서비스에 배포 이미지 업로드

director가 설치한 배포 이미지를 이미지 서비스에 업로드해야 합니다. 배포 이미지는 다음 두 이미지로 구성됩니다.

  • 커널 이미지: /tftpboot/agent.kernel
  • 램디스크 이미지: /tftpboot/agent.ramdisk

이러한 이미지는 홈 디렉터리에 설치됩니다. 배포 이미지 설치 방법에 대한 자세한 내용은 오버클라우드 노드의 이미지 가져오기를 참조하십시오.

프로세스

  • 이미지를 추출하여 이미지 서비스에 업로드합니다.
$ openstack image create \
  --container-format aki \
  --disk-format aki \
  --public \
  --file ./tftpboot/agent.kernel bm-deploy-kernel
$ openstack image create \
  --container-format ari \
  --disk-format ari \
  --public \
  --file ./tftpboot/agent.ramdisk bm-deploy-ramdisk
Copy to Clipboard Toggle word wrap

4.5. 물리적 머신을 베어 메탈 노드로 추가

다음 방법 중 하나를 사용하여 베어 메탈 노드를 등록합니다.

  • 노드 세부 정보를 사용하여 인벤토리 파일을 준비하고 파일을 베어 메탈 프로비저닝 서비스로 가져오고 노드를 사용할 수 있도록 합니다.
  • 물리적 머신을 베어 메탈 노드로 등록한 다음 수동으로 하드웨어 세부 정보를 추가하고 각 이더넷 MAC 주소에 대한 포트를 생성합니다. overcloudrc 파일이 있는 모든 노드에서 다음 단계를 수행할 수 있습니다.

4.5.1. 인벤토리 파일을 사용하여 베어 메탈 노드 등록

노드 세부 정보를 사용하여 인벤토리 파일을 준비하고 파일을 베어 메탈 프로비저닝 서비스(ironic)로 가져오고 노드를 사용할 수 있도록 합니다.

사전 요구 사항

절차

  1. 노드 세부 정보를 포함하는 인벤토리 파일 overcloud-nodes.yaml 을 생성합니다. 하나의 파일로 여러 노드를 등록할 수 있습니다.

    nodes:
        - name: node0
          driver: ipmi
          driver_info:
            ipmi_address: <ipmi_ip>
            ipmi_username: <user>
            ipmi_password: <password>
            [<property>: <value>]
          properties:
            cpus: <cpu_count>
            cpu_arch: <cpu_arch>
            memory_mb: <memory>
            local_gb: <root_disk>
            root_device:
                serial: <serial>
          ports:
            - address: <mac_address>
    Copy to Clipboard Toggle word wrap
    • & lt;ipmi_ip& gt;를 베어 메탈 컨트롤러의 주소로 바꿉니다.
    • &lt ;user&gt;를 사용자 이름으로 바꿉니다.
    • &lt ;password&gt;를 암호로 바꿉니다.
    • 선택 사항: <property>: <value >를 구성할 IPMI 속성 및 속성 값으로 바꿉니다. 사용 가능한 속성에 대한 자세한 내용은 IPMI(Intelligent Platform Management Interface) 전원 관리 드라이버를 참조하십시오.
    • & lt;cpu_count& gt;를 CPU 수로 바꿉니다.
    • & lt;cpu_arch >를 CPU의 아키텍처 유형으로 바꿉니다.
    • & lt;memory& gt;를 MiB의 메모리 양으로 바꿉니다.
    • & lt;root_disk >를 GiB의 루트 디스크 크기로 바꿉니다. 시스템에 여러 개의 디스크가 있는 경우에만 필요합니다.
    • & lt;serial >을 배포에 사용할 디스크의 일련 번호로 바꿉니다.
    • & lt;mac_address& gt;를 PXE 부팅에 사용되는 NIC의 MAC 주소로 바꿉니다.
    • --driver-info <property>=<value>
  2. overcloudrc 파일을 소싱합니다.

    $ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  3. 인벤토리 파일을 베어 메탈 프로비저닝 서비스로 가져옵니다.

    $ openstack baremetal create overcloud-nodes.yaml
    Copy to Clipboard Toggle word wrap

    이제 노드가 등록 상태입니다.

  4. 배포 커널을 지정하고 각 노드에 램디스크를 배포합니다.

    $ openstack baremetal node set <node> \
      --driver-info deploy_kernel=<kernel_file> \
      --driver-info deploy_ramdisk=<initramfs_file>
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 노드의 이름 또는 ID로 바꿉니다.
    • < kernel_file >을 .kernel 이미지의 경로로 바꿉니다(예: file:///var/lib/ironic/httpboot/agent.kernel ).
    • < initramfs_file >을 .initramfs 이미지 경로로 바꿉니다(예: file:///var/lib/ironic/httpboot/agent.ramdisk ).
  5. 선택 사항: 각 노드의 IPMI 암호화 제품군을 지정합니다.

    $ openstack baremetal node set <node> \
     --driver-info ipmi_cipher_suite=<version>
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 노드의 이름 또는 ID로 바꿉니다.
    • & lt;version >을 노드에서 사용할 암호화 제품군 버전으로 바꿉니다. 다음 유효한 값 중 하나로 설정합니다.

      • 3 - 노드는 SHA1 암호화 제품군과 함께 AES-128을 사용합니다.
      • 17 - 노드는 SHA256 암호화 제품군과 함께 AES-128을 사용합니다.
  6. 노드의 프로비저닝 상태를 available 로 설정합니다.

    $ openstack baremetal node manage <node>
    $ openstack baremetal node provide <node>
    Copy to Clipboard Toggle word wrap

    노드 정리를 활성화한 경우 베어 메탈 프로비저닝 서비스가 노드를 정리합니다.

  7. 노드에 로컬 부팅 옵션을 설정합니다.

    $ openstack baremetal node set <node> --property capabilities="boot_option:local"
    Copy to Clipboard Toggle word wrap
  8. 노드가 등록되어 있는지 확인합니다.

    $ openstack baremetal node list
    Copy to Clipboard Toggle word wrap

    노드 등록과 해당 상태 사이에 지연이 발생할 수 있습니다.

4.5.2. 베어 메탈 노드를 수동으로 등록

물리적 머신을 베어 메탈 노드로 등록한 다음 수동으로 하드웨어 세부 정보를 추가하고 각 이더넷 MAC 주소에 대한 포트를 생성합니다. overcloudrc 파일이 있는 모든 노드에서 다음 단계를 수행할 수 있습니다.

사전 요구 사항

절차

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. 오버클라우드 인증 정보 파일을 가져옵니다.

    (undercloud)$ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  3. 새 노드를 추가합니다.

    $ openstack baremetal node create --driver <driver_name> --name <node_name>
    Copy to Clipboard Toggle word wrap
    • & lt;driver_name >을 드라이버 이름으로 바꿉니다(예: ipmi ).
    • & lt;node_name >을 새 베어 메탈 노드의 이름으로 바꿉니다.
  4. 생성될 때 노드에 할당된 UUID를 기록해 둡니다.
  5. 등록된 각 노드의 부팅 옵션을 local 로 설정합니다.

    $ openstack baremetal node set \
      --property capabilities="boot_option:local" <node>
    Copy to Clipboard Toggle word wrap

    & lt;node& gt;를 베어 메탈 노드의 UUID로 바꿉니다.

  6. 배포 커널을 지정하고 노드 드라이버의 램디스크를 배포합니다.

    $ openstack baremetal node set <node> \
      --driver-info deploy_kernel=<kernel_file> \
      --driver-info deploy_ramdisk=<initramfs_file>
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 베어 메탈 노드의 ID로 바꿉니다.
    • < kernel_file >을 .kernel 이미지의 경로로 바꿉니다(예: file:///var/lib/ironic/httpboot/agent.kernel ).
    • < initramfs_file >을 .initramfs 이미지 경로로 바꿉니다(예: file:///var/lib/ironic/httpboot/agent.ramdisk ).
  7. 노드의 하드웨어 사양과 일치하도록 노드 속성을 업데이트합니다.

    $ openstack baremetal node set <node> \
      --property cpus=<cpu> \
      --property memory_mb=<ram> \
      --property local_gb=<disk> \
      --property cpu_arch=<arch>
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 베어 메탈 노드의 ID로 바꿉니다.
    • &lt ;cpu& gt;를 CPU 수로 바꿉니다.
    • &lt ;ram&gt;을 RAM(MB)으로 바꿉니다.
    • &lt ;disk&gt;를 디스크 크기(GB)로 바꿉니다.
    • &lt ;arch& gt;를 아키텍처 유형으로 바꿉니다.
  8. 선택 사항: 각 노드의 IPMI 암호화 제품군을 지정합니다.

    $ openstack baremetal node set <node> \
     --driver-info ipmi_cipher_suite=<version>
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 베어 메탈 노드의 ID로 바꿉니다.
    • & lt;version >을 노드에서 사용할 암호화 제품군 버전으로 바꿉니다. 다음 유효한 값 중 하나로 설정합니다.

      • 3 - 노드는 SHA1 암호화 제품군과 함께 AES-128을 사용합니다.
      • 17 - 노드는 SHA256 암호화 제품군과 함께 AES-128을 사용합니다.
  9. 선택 사항: 각 노드의 IPMI 세부 정보를 지정합니다.

    $ openstack baremetal node set <node> \
     --driver-info <property>=<value>
    Copy to Clipboard Toggle word wrap
  10. 선택 사항: 여러 디스크가 있는 경우 루트 장치 힌트를 설정하여 배포 램디스크에 사용할 디스크를 알립니다.

    $ openstack baremetal node set <node> \
      --property root_device='{"<property>": "<value>"}'
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 베어 메탈 노드의 ID로 바꿉니다.
    • < property > 및 < value >를 배포에 사용할 디스크에 대한 세부 정보(예: root_device='{"size": "128"})로 바꿉니다.

      RHOSP는 다음 속성을 지원합니다.

      • model(문자열): 장치 식별자
      • vendor(문자열): 장치 벤더
      • serial(문자열): 디스크 일련번호
      • hctl(문자열): Host:Channel:Target:Lun (SCSI 용)
      • size(정수): 장치의 크기(GB 단위)
      • wwn(문자열): 고유한 스토리지 식별자
      • wwn_with_extension(문자열): 벤더 확장이 첨부된 고유한 스토리지 식별자
      • wwn_vendor_extension(문자열): 고유한 벤더 스토리지 식별자
      • rotational(부울): 회전 장치인 경우(HDD) True, 그렇지 않은 경우 false(SSD)
      • name (문자열): 장치의 이름(예: /dev/sdb1)은 영구 이름이 있는 장치에만 이 속성을 사용합니다.

        참고

        둘 이상의 속성을 지정하는 경우 장치는 이러한 모든 속성과 일치해야 합니다.

  11. provisioning 네트워크에서 NIC의 MAC 주소로 포트를 생성하여 베어 메탈 프로비저닝 서비스에 노드 네트워크 카드에 알립니다.

    $ openstack baremetal port create --node <node_uuid> <mac_address>
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 베어 메탈 노드의 고유 ID로 바꿉니다.
    • & lt;mac_address& gt;를 PXE 부팅에 사용되는 NIC의 MAC 주소로 바꿉니다.
  12. 노드 구성을 확인합니다.

    $ openstack baremetal node validate <node>
    +------------+--------+---------------------------------------------+
    | Interface  | Result | Reason                                      |
    +------------+--------+---------------------------------------------+
    | boot       | False  | Cannot validate image information for node  |
    |            |        | a02178db-1550-4244-a2b7-d7035c743a9b        |
    |            |        | because one or more parameters are missing  |
    |            |        | from its instance_info. Missing are:        |
    |            |        | ['ramdisk', 'kernel', 'image_source']       |
    | console    | None   | not supported                               |
    | deploy     | False  | Cannot validate image information for node  |
    |            |        | a02178db-1550-4244-a2b7-d7035c743a9b        |
    |            |        | because one or more parameters are missing  |
    |            |        | from its instance_info. Missing are:        |
    |            |        | ['ramdisk', 'kernel', 'image_source']       |
    | inspect    | None   | not supported                               |
    | management | True   |                                             |
    | network    | True   |                                             |
    | power      | True   |                                             |
    | raid       | True   |                                             |
    | storage    | True   |                                             |
    +------------+--------+---------------------------------------------+
    Copy to Clipboard Toggle word wrap

    검증 출력 Result 는 다음을 나타냅니다.

    • False: 인터페이스에 검증에 실패했습니다. 제공된 이유에 instance_info 매개변수 [\'ramdisk', \'kernel' 및 \'image_source'] 가 누락된 이유가 있는 경우 Compute 서비스가 배포 프로세스 시작 시 누락된 매개 변수를 채우므로 이 시점에 설정되지 않은 매개변수가 입력될 수 있습니다. 전체 디스크 이미지를 사용하는 경우 검증을 통과하도록 image_source 만 설정해야 할 수 있습니다.
    • True: 인터페이스가 유효성 검사를 통과했습니다.
    • none: 드라이버에서 인터페이스가 지원되지 않습니다.

4.5.3. 베어 메탈 노드 프로비저닝 상태

베어 메탈 노드는 수명 동안 여러 프로비저닝 상태를 통해 전환됩니다. 노드에서 수행되는 API 요청 및 컨덕터 이벤트가 전환을 시작합니다. 프로비저닝 상태에는 "stable"과 "전환 중"의 두 가지 범주가 있습니다.

다음 표를 사용하여 노드가 있을 수 있는 프로비저닝 상태와 노드를 하나의 프로비저닝 상태에서 다른 프로비저닝 상태로 전환하는 데 사용할 수 있는 작업을 파악합니다.

Expand
표 4.1. 프로비저닝 상태
상태카테고리설명

등록

안정적

각 노드의 초기 상태입니다. 노드 등록에 대한 자세한 내용은 베어 메탈 노드로 물리적 머신 추가 를 참조하십시오.

verifying

전환 중

베어 메탈 프로비저닝 서비스는 노드 등록 중에 제공된 driver_info 구성을 사용하여 노드를 관리할 수 있는지 확인합니다.

관리 가능

안정적

베어 메탈 프로비저닝 서비스에서 노드를 관리할 수 있는지 확인할 때 노드가 manageable 상태로 전환됩니다. 다음 명령을 사용하여 노드를 manageable 상태에서 다음 상태 중 하나로 전환할 수 있습니다.

  • OpenStack baremetal 노드 채택채택활성
  • OpenStack baremetal 노드는정리사용 가능
  • OpenStack baremetal 노드 정리정리사용 가능
  • OpenStack baremetal 노드 검사검사관리 가능

다음 실패한 상태 중 하나로 전환된 후 노드를 manageable 상태로 이동해야 합니다.

  • 채택 실패
  • 정리 실패
  • 검사 실패

노드를 업데이트해야 하는 경우 노드를 manageable 상태로 이동합니다.

검사

전환 중

베어 메탈 프로비저닝 서비스는 노드 인트로스펙션을 사용하여 하드웨어 파생 노드 속성을 업데이트하여 하드웨어의 현재 상태를 반영합니다. 노드는 동기 검사를 위해 manageable 로 전환되고 비동기 검사를 위해 대기 합니다. 오류가 발생하면 노드가 검사 실패로 전환됩니다.

검사 대기

전환 중

비동기 검사가 진행 중임을 나타내는 프로비저닝 상태입니다. 노드 검사가 성공하면 노드가 manageable 상태로 전환됩니다.

검사 실패

안정적

노드 검사에 실패했음을 나타내는 프로비저닝 상태입니다. 다음 명령을 사용하여 inspect failed 상태에서 다음 상태 중 하나로 노드를 전환할 수 있습니다.

  • OpenStack baremetal 노드 검사검사관리 가능
  • OpenStack baremetal 노드 관리관리 가능

정리

전환 중

정리 상태의 노드는 스크럽되고 있으며 알려진 구성으로 다시 프로그래밍됩니다. 노드가 정리 상태에 있는 경우 네트워크 관리에 따라 conductor는 다음 작업을 수행합니다.

  • 대역 외: 컨덕터가 깔끔 한 단계를 수행합니다.
  • in-band: 컨덕터(conductor)는 대역 내 클린 단계를 실행하기 위해 램디스크를 부팅하도록 환경을 준비합니다. 준비 작업에는 PXE 구성 파일 빌드 및 DHCP 구성이 포함됩니다.

깔끔한 대기

전환 중

clean wait 상태의 노드는 스크럽되고 있으며 알려진 구성으로 다시 프로그래밍됩니다. 이 상태는 클린 대기 상태에서 램디스크가 부팅되거나 정리 단계가 완료될 때까지 대기 중임을 제외하고 정리 상태와 유사합니다.

openstack baremetal node abort 를 실행하여 정리된 대기 상태에서 노드의 정리 프로세스를 중단할 수 있습니다.

사용 가능

안정적

노드가 성공적으로 사전 구성 및 정리되면 해당 노드가 available 상태로 이동되고 프로비저닝할 준비가 됩니다. 다음 명령을 사용하여 노드를 available 상태에서 다음 상태 중 하나로 전환할 수 있습니다.

  • OpenStack baremetal 노드 배포배포활성
  • OpenStack baremetal 노드 관리관리 가능

배포

전환 중

배포 상태의 노드는 다음 작업을 수행해야 하는 워크로드에 대해 준비 중입니다.

  • 노드 배포에 적절한 BIOS 옵션 설정
  • 드라이브 파티셔닝 및 파일 시스템 생성.
  • 노드별 네트워크 구성 및 configuratin 드라이브 파티션과 같은 추가 하위 시스템에 필요할 수 있는 추가 리소스를 생성합니다.

콜백 대기

전환 중

대기 호출 상태의 노드는 워크로드에 대해 준비 중입니다. 이 상태는 wait call-back 상태에서 conductor가 노드를 준비하기 전에 작업이 완료될 때까지 대기 중이라는 점을 제외하고 배포 상태와 유사합니다. 예를 들어, 컨덕터가 노드를 준비하기 전에 다음 작업을 완료해야 합니다.

  • 램디스크가 부팅되었습니다.
  • 부트로더가 설치되어 있어야 합니다.
  • 이미지가 디스크에 기록됩니다.

openstack baremetal node delete 또는 openstack baremetal node undeploy 를 실행하여 wait 호출에서 노드 배포를 중단할 수 있습니다.

배포 실패

안정적

노드 배포가 실패했음을 나타내는 프로비저닝 상태입니다. 다음 명령을 사용하여 배포 실패 상태에서 다음 상태 중 하나로 노드를 전환할 수 있습니다.

  • OpenStack baremetal 노드 배포배포활성
  • OpenStack baremetal 노드 다시 빌드배포활성
  • OpenStack baremetal 노드 삭제삭제 정리정리 사용 가능
  • OpenStack baremetal 노드는 배포 취소삭제 정리 정리사용 가능

활성 상태

안정적

활성 상태의 노드에는 워크로드가 실행되고 있습니다. 베어 메탈 프로비저닝 서비스는 전원 상태를 포함하여 대역 외 센서 정보를 정기적으로 수집할 수 있습니다. 다음 명령을 사용하여 활성 상태에서 다음 상태 중 하나로 노드를 전환할 수 있습니다.

  • OpenStack baremetal 노드 삭제삭제사용 가능
  • OpenStack baremetal 노드 배포 취소정리사용 가능
  • OpenStack baremetal 노드 다시 빌드배포활성
  • OpenStack baremetal 노드 구조 → 복구복구 → 복구

삭제 중

전환 중

노드가 deleting 상태인 경우 Bare Metal Provisioning 서비스는 활성 워크로드를 분리하고 노드 배포 또는 복구 중에 노드에 추가된 구성과 리소스를 제거합니다. 노드는 삭제 상태에서 정리 상태로 빠르게 전환된 다음, 정리 상태로 전환됩니다.

error

안정적

노드 삭제에 실패하면 노드가 오류 상태로 이동합니다. 다음 명령을 사용하여 노드를 오류 상태에서 다음 상태 중 하나로 전환할 수 있습니다.

  • OpenStack baremetal 노드 삭제삭제사용 가능
  • OpenStack baremetal 노드 배포 취소정리사용 가능

adopting

전환 중

openstack baremetal node adopt 명령을 사용하여 노드를 먼저 정리 및 배포하지 않고도 기존 워크로드에서 manageable 상태에서 활성 상태로 직접 노드를 전환할 수 있습니다. 노드가 채택 중이면 Bare Metal Provisioning 서비스가 기존 워크로드로 노드 관리를 대신했습니다.

복구

전환 중

복구 상태의 노드는 다음 복구 작업을 수행할 준비가 되어 있습니다.

  • 노드 배포에 적절한 BIOS 옵션 설정
  • 노드별 네트워크 구성과 같이 추가 하위 시스템에 필요할 수 있는 추가 리소스를 생성합니다.

복구 대기

전환 중

복구 대기 상태의 노드가 복구됩니다. 이 상태는 rescue wait 상태에서 conductor가 램디스크가 부팅되기를 기다리거나 rescue라는 사용자의 암호를 설정하는 등 노드에서 대역을 실행해야 하는 구조 의 일부를 실행하는 것을 제외하고 복구 상태와 유사합니다.

openstack baremetal node abort 를 실행하여 rescue wait 상태에서 노드의 복구 작업을 중단할 수 있습니다.

복구 실패

안정적

노드 복구에 실패했음을 나타내는 프로비저닝 상태입니다. 다음 명령을 사용하여 rescue 실패 상태에서 다음 상태 중 하나로 노드를 전환할 수 있습니다.

  • OpenStack baremetal 노드 구조 → 복구복구 → 복구
  • OpenStack baremetal 노드 unrescueunrescuingactive
  • OpenStack baremetal 노드 삭제삭제사용 가능

rescue

안정적

복구 상태의 노드 는 복구 램디스크를 실행하고 있습니다. 베어 메탈 프로비저닝 서비스는 전원 상태를 포함하여 대역 외 센서 정보를 정기적으로 수집할 수 있습니다. 다음 명령을 사용하여 rescue 상태에서 다음 상태 중 하나로 노드를 전환할 수 있습니다.

  • OpenStack baremetal 노드 unrescueunrescuingactive
  • OpenStack baremetal 노드 삭제삭제사용 가능

복구되지 않음

전환 중

unrescuing 상태의 노드는 rescue 상태에서 활성 상태로 전환할 준비가 되어 있습니다.

Unrescue 실패

안정적

노드가 Unrescue 작업이 실패했음을 나타내는 프로비저닝 상태입니다. 다음 명령을 사용하여 unrescue failed 상태에서 다음 상태 중 하나로 노드를 전환할 수 있습니다.

  • OpenStack baremetal 노드 구조 → 복구복구 → 복구
  • OpenStack baremetal 노드 unrescueunrescuingactive
  • OpenStack baremetal 노드 삭제삭제사용 가능

4.6. Redfish 가상 미디어 부팅 구성

중요

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

BMC(Baseboard Management Controller)에서 가상 드라이브 중 하나에 부팅 이미지를 삽입할 수 있도록 Redfish 가상 미디어 부팅을 사용하여 노드의 BMC에 부팅 이미지를 공급할 수 있습니다. 그 후 노드는 가상 드라이브에서 해당 이미지에 있는 운영 체제로 부팅할 수 있습니다.

Redfish 하드웨어 유형은 가상 미디어를 통한 배포, 복구 및 사용자 이미지 부팅을 지원합니다. Bare Metal Provisioning 서비스(ironic)는 노드와 연결된 커널 및 램디스크 이미지를 사용하여 노드 배포 시 UEFI 또는 BIOS 부팅 모드에 대한 부팅 가능한 ISO 이미지를 빌드합니다. 가상 미디어 부팅의 주요 장점은 PXE의 TFTP 이미지 전송 단계를 제거하고 대신 HTTP GET 또는 기타 방법을 사용할 수 있다는 것입니다.

4.6.1. Redfish 가상 미디어 부팅을 사용하여 베어 메탈 서버 배포

중요

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

가상 미디어를 통해 redfish 하드웨어 유형으로 노드를 부팅하려면 부팅 인터페이스를 redfish-virtual-media로 설정하고 UEFI 노드의 경우 ESP(EFI 시스템 파티션) 이미지를 정의합니다. 다음으로 등록된 노드가 Redfish 가상 미디어 부팅을 사용하도록 설정합니다.

사전 요구 사항

  • undercloud.conf 파일의 enabled_hardware_types 매개변수로 활성화된 Redfish 드라이버
  • 등록된 베어 메탈 노드
  • Image 서비스(glance)의 IPA 및 인스턴스 이미지
  • UEFI 노드의 경우 Image 서비스(glance)에서 ESP(EFI 시스템 파티션) 이미지 사용 가능
  • 베어 메탈 플레이버
  • 정리 및 프로비저닝을 위한 네트워크
  • Sushy 라이브러리 설치

    $ sudo yum install sushy
    Copy to Clipboard Toggle word wrap

절차

  1. Bare Metal 서비스(ironic) 부팅 인터페이스를 redfish-virtual-media로 설정합니다.

    $ openstack baremetal node set --boot-interface redfish-virtual-media $NODE_NAME
    Copy to Clipboard Toggle word wrap

    $ NODE_NAME을 노드 이름으로 바꿉니다.

  2. UEFI 노드의 경우 부팅 모드를 uefi로 설정합니다.

    $ openstack baremetal node set --property capabilities="boot_mode:uefi" $NODE_NAME
    Copy to Clipboard Toggle word wrap

    $ NODE_NAME을 노드 이름으로 바꿉니다.

    참고

    BIOS 노드의 경우 이 단계를 완료하지 마십시오.

  3. UEFI 노드의 경우 ESP(EFI 시스템 파티션) 이미지를 정의합니다.

    $ openstack baremetal node set --driver-info bootloader=$ESP $NODE_NAME
    Copy to Clipboard Toggle word wrap

    $ESP를 glance 이미지 UUID 또는 ESP 이미지 URL로 바꾸고 $NODE_NAME을 노드 이름으로 바꿉니다.

    참고

    BIOS 노드의 경우 이 단계를 완료하지 마십시오.

  4. 베어 메탈 노드에서 포트를 생성하고 베어 메탈 노드에서 NIC의 MAC 주소와 포트를 연결합니다.

    $ openstack baremetal port create --pxe-enabled True --node $UUID $MAC_ADDRESS
    Copy to Clipboard Toggle word wrap

    $UUID를 베어 메탈 노드의 UUID로 바꾸고 $MAC_ADDRESS를 베어 메탈 노드에 있는 NIC의 MAC 주소로 바꿉니다.

  5. 새 베어 메탈 서버를 생성합니다.

    $ openstack server create \
        --flavor baremetal \
        --image $IMAGE \
        --network $NETWORK \
        test_instance
    Copy to Clipboard Toggle word wrap

    $IMAGE$NETWORK 를 사용하려는 이미지 및 네트워크의 이름으로 바꿉니다.

4.7. 호스트 집계를 사용하여 물리적 및 가상 머신 프로비저닝 분리

OpenStack Compute에서는 호스트 집계를 사용하여 가용 영역을 분할하고 특정 공유 속성이 있는 노드를 그룹화합니다. 인스턴스가 프로비저닝되면 Compute 스케줄러는 플레이버의 속성을 호스트 집계에 할당된 속성과 비교하고, 인스턴스가 실제 시스템 또는 가상 머신 모두에서 올바른 집계 및 올바른 호스트에 프로비저닝되도록 합니다.

다음 작업을 수행하려면 이 섹션의 단계를 완료합니다.

  • 플레이버에 baremetal 을 추가하고 true 또는 false 로 설정합니다.
  • 일치하는 baremetal 속성을 사용하여 베어 메탈 호스트 및 컴퓨팅 노드에 대해 별도의 호스트 집계를 생성합니다. 집계로 그룹화된 노드는 이 속성을 상속합니다.

사전 요구 사항

절차

  1. baremetal 플레이버에서 baremetal 속성을 true 로 설정합니다.

    $ openstack flavor set baremetal --property baremetal=true
    Copy to Clipboard Toggle word wrap
  2. 가상 인스턴스에서 사용하는 플레이버에서 baremetal 속성을 false 로 설정합니다.

    $ openstack flavor set FLAVOR_NAME --property baremetal=false
    Copy to Clipboard Toggle word wrap
  3. baremetal-hosts 라는 호스트 집계를 생성합니다.

    $ openstack aggregate create --property baremetal=true baremetal-hosts
    Copy to Clipboard Toggle word wrap
  4. baremetal-hosts 집계에 각 컨트롤러 노드를 추가합니다.

    $ openstack aggregate add host baremetal-hosts HOSTNAME
    Copy to Clipboard Toggle word wrap
    참고

    NovaIronic 서비스를 사용하여 구성 가능 역할을 생성한 경우 이 서비스가 있는 모든 노드를 baremetal-hosts 집계에 추가합니다. 기본적으로 컨트롤러 노드에만 NovaIronic 서비스가 있습니다.

  5. virtual-hosts 라는 호스트 집계를 생성합니다.

    $ openstack aggregate create --property baremetal=false virtual-hosts
    Copy to Clipboard Toggle word wrap
  6. 가상 호스트 집계에 각 컴퓨팅 노드를 추가합니다.

    $ openstack aggregate add host virtual-hosts HOSTNAME
    Copy to Clipboard Toggle word wrap
  7. 오버클라우드를 배포할 때 다음 Compute 필터 스케줄러를 추가하지 않은 경우 _/etc/nova/nova.conf_ 파일의 scheduler_default_filters 아래의 기존 목록에 추가합니다.

    AggregateInstanceExtraSpecsFilter
    Copy to Clipboard Toggle word wrap

5장. 베어 메탈 노드 관리

Bare Metal Provisioning 서비스(ironic)가 포함된 오버클라우드를 배포한 후 등록된 베어 메탈 노드에 물리적 머신을 프로비저닝하고 오버클라우드에서 베어 메탈 인스턴스를 시작할 수 있습니다.

사전 요구 사항

5.1. 베어 메탈 인스턴스 시작

명령줄 또는 OpenStack 대시보드에서 인스턴스를 시작할 수 있습니다.

사전 요구 사항

5.1.1. 명령줄 인터페이스를 사용하여 인스턴스 시작

OpenStack Client CLI를 사용하여 베어 메탈 인스턴스를 생성할 수 있습니다.

사전 요구 사항

절차

  1. 관리 사용자로 Identity 서비스(keystone)에 액세스하도록 쉘을 구성합니다.

    $ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  2. 베어 메탈 인스턴스를 생성합니다.

    $ openstack server create \
     --nic net-id=<network_uuid> \
     --flavor baremetal \
     --image <image_uuid> \
     myBareMetalInstance
    Copy to Clipboard Toggle word wrap
    • & lt;network_uuid >를 베어 메탈 프로비저닝 서비스와 함께 사용하도록 만든 네트워크의 고유 식별자로 바꿉니다.
    • & lt;image_uuid >를 인스턴스에 필요한 소프트웨어 프로필이 있는 이미지의 고유 식별자로 바꿉니다.
  3. 인스턴스 상태를 확인합니다.

    $ openstack server list --name myBareMetalInstance
    Copy to Clipboard Toggle word wrap

5.1.2. 대시보드를 사용하여 인스턴스 시작

대시보드 그래픽 사용자 인터페이스를 사용하여 베어 메탈 인스턴스를 배포합니다.

사전 요구 사항

절차

  1. http[s]://DASHBOARD_IP/dashboard 의 대시보드에 로그인합니다.
  2. 프로젝트 > Compute > Instances를클릭합니다.
  3. Launch Instance 를 클릭합니다.

    • 세부 정보 탭에서 인스턴스 이름을 지정하고 Count.에 대해 1 을 선택합니다.
    • 소스 탭에서 Select Boot Source 에서 Image 를 선택한 다음 + (plus) 기호를 클릭하여 운영 체제 디스크 이미지를 선택합니다. 선택한 이미지는 Allocated 로 이동합니다.
    • Flavor 탭에서 baremetal 을 선택합니다.
    • Networks 탭에서 + (plus) 및 - (minus) 버튼을 사용하여 필요한 네트워크를 Available 에서 Allocated 로 이동합니다. Bare Metal Provisioning 서비스에 대해 생성한 공유 네트워크가 여기에서 선택되어 있는지 확인합니다.
    • 보안 그룹에 인스턴스를 할당하려면 보안 그룹 탭에서 화살표를 사용하여 그룹을 Allocated 로 이동합니다.
  4. Launch Instance 를 클릭합니다.

5.2. 베어 메탈 프로비저닝 서비스에서 포트 그룹 구성

참고

베어 메탈 노드의 포트 그룹 기능은 이 릴리스에서 기술 프리뷰로 사용할 수 있으므로 Red Hat에서 완전히 지원하지 않습니다. 테스트 용도로만 사용해야 하며 프로덕션 환경에 배포해서는 안 됩니다. 기술 프리뷰 기능에 대한 자세한 내용은 적용 범위 상세 정보를 참조하십시오.

포트 그룹(bonds)은 여러 네트워크 인터페이스를 하나의 'bonded' 인터페이스로 집계하는 방법을 제공합니다. 포트 그룹 구성이 항상 개별 포트 구성보다 우선합니다.

포트 그룹에 물리적 네트워크가 있는 경우 해당 포트 그룹의 모든 포트에 동일한 물리적 네트워크가 있어야 합니다. 베어 메탈 프로비저닝 서비스는 configdrive 를 사용하여 인스턴스의 포트 그룹 구성을 지원합니다.

참고

Bare Metal Provisioning 서비스 API 버전 1.26에서는 포트 그룹 구성을 지원합니다. . 전제 조건

5.2.1. 스위치에서 수동으로 포트 그룹 구성

베어 메탈 배포에서 포트 그룹을 구성하려면 스위치에서 포트 그룹을 수동으로 구성해야 합니다. 스위치에 따라 이름이 다를 수 있으므로 스위치의 모드 및 속성이 베어 메탈 측의 모드 및 속성에 해당하는지 확인해야 합니다.

참고

iPXE를 사용하여 배포를 부팅해야 하는 경우 포트 그룹을 프로비저닝 및 정리할 수 없습니다.

포트 그룹 폴백을 사용하면 연결에 실패할 때 포트 그룹의 모든 포트가 개별 스위치 포트로 대체될 수 있습니다. 스위치가 포트 그룹 폴백을 지원하는지 여부에 따라 --support-standalone-ports--unsupport-standalone-ports 옵션을 사용할 수 있습니다.

사전 요구 사항

5.2.2. 베어 메탈 프로비저닝 서비스에서 포트 그룹 구성

여러 네트워크 인터페이스를 하나의 결합된 인터페이스로 집계하는 포트 그룹을 생성합니다.

사전 요구 사항

절차

  1. 해당 노드, 이름, 주소, 모드, 속성 및 독립 실행형 포트 대체를 지원하는지 여부에 따라 포트 그룹을 생성합니다.

    # openstack baremetal port group create --node NODE_UUID --name NAME --address MAC_ADDRESS --mode MODE  --property miimon=100 --property xmit_hash_policy="layer2+3" --support-standalone-ports
    Copy to Clipboard Toggle word wrap

    openstack baremetal port group set 명령을 사용하여 포트 그룹을 업데이트할 수도 있습니다.

    주소를 지정하지 않으면 배포된 인스턴스 포트 그룹 주소가 OpenStack Networking 포트와 동일합니다. neutron 포트를 연결하지 않으면 포트 그룹 구성이 실패합니다.

    인터페이스를 연결하는 동안 포트 그룹은 포트보다 우선 순위가 높으므로 먼저 사용됩니다. 현재 인터페이스 연결 요청에 포트 그룹 또는 포트가 필요한지 여부를 지정할 수 없습니다. 포트가 없는 포트 그룹은 무시됩니다.

    참고

    독립 실행형 모드에서 또는 configdrive 를 생성하고 노드의 instance_info 에 추가하여 포트 그룹을 수동으로 구성해야 합니다. 포트 그룹 구성이 작동하려면 cloud-init 버전 Cryostat.7 이상이 있는지 확인합니다.

  2. 포트를 포트 그룹과 연결합니다.

    • 포트 생성 중:

      # openstack baremetal port create --node NODE_UUID --address MAC_ADDRESS --port-group test
      Copy to Clipboard Toggle word wrap
    • 포트 업데이트 중:

      # openstack baremetal port set PORT_UUID --port-group PORT_GROUP_UUID
      Copy to Clipboard Toggle word wrap
  3. cloud-init 가 있거나 본딩을 지원하는 이미지를 제공하여 인스턴스를 부팅합니다.

    포트 그룹이 올바르게 구성되었는지 확인하려면 다음 명령을 실행합니다.

    # cat /proc/net/bonding/bondX
    Copy to Clipboard Toggle word wrap

    여기에서 X 는 구성된 각 포트 그룹에 대해 자동으로 생성되는 숫자이며, 구성된 각 포트 그룹에서 0 부터 시작하여 각 포트 그룹에 대해 1씩 증가합니다.

5.3. 호스트를 IP 주소 매핑으로 확인

다음 명령을 사용하여 어떤 호스트 및 베어 메탈 노드에 할당되는 IP 주소를 확인합니다. 이러한 명령을 사용하면 호스트에 직접 액세스하지 않고도 언더클라우드의 IP 매핑으로 호스트를 볼 수 있습니다.

사전 요구 사항

절차

  1. 다음 명령을 실행하여 각 호스트의 IP 주소를 표시합니다.

    (undercloud) [stack@host01 ~]$ openstack stack output show overcloud HostsEntry --max-width 80
    
    +--------------+---------------------------------------------------------------+
    | Field        | Value                                                         |
    +--------------+---------------------------------------------------------------+
    | description  | The content that should be appended to your /etc/hosts if you |
    |              | want to get                                                   |
    |              | hostname-based access to the deployed nodes (useful for       |
    |              | testing without                                               |
    |              | setting up a DNS).                                            |
    |              |                                                               |
    | output_key   | HostsEntry                                                    |
    | output_value | 172.17.0.10 overcloud-controller-0.localdomain overcloud-     |
    |              | controller-0                                                  |
    |              | 10.8.145.18 overcloud-controller-0.external.localdomain       |
    |              | overcloud-controller-0.external                               |
    |              | 172.17.0.10 overcloud-controller-0.internalapi.localdomain    |
    |              | overcloud-controller-0.internalapi                            |
    |              | 172.18.0.15 overcloud-controller-0.storage.localdomain        |
    |              | overcloud-controller-0.storage                                |
    |              | 172.21.2.12 overcloud-controller-0.storagemgmt.localdomain    |
    |              | overcloud-controller-0.storagemgmt                            |
    |              | 172.16.0.15 overcloud-controller-0.tenant.localdomain         |
    |              | overcloud-controller-0.tenant                                 |
    |              | 10.8.146.13 overcloud-controller-0.management.localdomain     |
    |              | overcloud-controller-0.management                             |
    |              | 10.8.146.13 overcloud-controller-0.ctlplane.localdomain       |
    |              | overcloud-controller-0.ctlplane                               |
    |              |                                                               |
    |              | 172.17.0.21 overcloud-compute-0.localdomain overcloud-        |
    |              | compute-0                                                     |
    |              | 10.8.146.12 overcloud-compute-0.external.localdomain          |
    |              | overcloud-compute-0.external                                  |
    |              | 172.17.0.21 overcloud-compute-0.internalapi.localdomain       |
    |              | overcloud-compute-0.internalapi                               |
    |              | 172.18.0.20 overcloud-compute-0.storage.localdomain           |
    |              | overcloud-compute-0.storage                                   |
    |              | 10.8.146.12 overcloud-compute-0.storagemgmt.localdomain       |
    |              | overcloud-compute-0.storagemgmt                               |
    |              | 172.16.0.16 overcloud-compute-0.tenant.localdomain overcloud- |
    |              | compute-0.tenant                                              |
    |              | 10.8.146.12 overcloud-compute-0.management.localdomain        |
    |              | overcloud-compute-0.management                                |
    |              | 10.8.146.12 overcloud-compute-0.ctlplane.localdomain          |
    |              | overcloud-compute-0.ctlplane                                  |
    |              |                                                               |
    |              |                                                               |
    |              |                                                               |
    |              |                                                               |
    |              | 10.8.145.16  overcloud.localdomain                            |
    |              | 10.8.146.7  overcloud.ctlplane.localdomain                    |
    |              | 172.17.0.19  overcloud.internalapi.localdomain                |
    |              | 172.18.0.19  overcloud.storage.localdomain                    |
    |              | 172.21.2.16  overcloud.storagemgmt.localdomain                |
    +--------------+---------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
  2. 특정 호스트를 필터링하려면 다음 명령을 실행합니다.

    (undercloud) [stack@host01 ~]$ openstack stack output show overcloud HostsEntry -c output_value -f value | grep overcloud-controller-0
    
    172.17.0.12 overcloud-controller-0.localdomain overcloud-controller-0
    10.8.145.18 overcloud-controller-0.external.localdomain overcloud-controller-0.external
    172.17.0.12 overcloud-controller-0.internalapi.localdomain overcloud-controller-0.internalapi
    172.18.0.12 overcloud-controller-0.storage.localdomain overcloud-controller-0.storage
    172.21.2.13 overcloud-controller-0.storagemgmt.localdomain overcloud-controller-0.storagemgmt
    172.16.0.19 overcloud-controller-0.tenant.localdomain overcloud-controller-0.tenant
    10.8.146.13 overcloud-controller-0.management.localdomain overcloud-controller-0.management
    10.8.146.13 overcloud-controller-0.ctlplane.localdomain overcloud-controller-0.ctlplane
    Copy to Clipboard Toggle word wrap
  3. 호스트를 베어 메탈 노드에 매핑하려면 다음 명령을 실행합니다.

    (undercloud) [stack@host01 ~]$ openstack baremetal node list --fields uuid name instance_info -f json
    [
      {
        "UUID": "c0d2568e-1825-4d34-96ec-f08bbf0ba7ae",
        "Instance Info": {
          "root_gb": "40",
          "display_name": "overcloud-compute-0",
          "image_source": "24a33990-e65a-4235-9620-9243bcff67a2",
          "capabilities": "{\"boot_option\": \"local\"}",
          "memory_mb": "4096",
          "vcpus": "1",
          "local_gb": "557",
          "configdrive": "******",
          "swap_mb": "0",
          "nova_host_id": "host01.lab.local"
        },
        "Name": "host2"
      },
      {
        "UUID": "8c3faec8-bc05-401c-8956-99c40cdea97d",
        "Instance Info": {
          "root_gb": "40",
          "display_name": "overcloud-controller-0",
          "image_source": "24a33990-e65a-4235-9620-9243bcff67a2",
          "capabilities": "{\"boot_option\": \"local\"}",
          "memory_mb": "4096",
          "vcpus": "1",
          "local_gb": "557",
          "configdrive": "******",
          "swap_mb": "0",
          "nova_host_id": "host01.lab.local"
        },
        "Name": "host3"
      }
    ]
    Copy to Clipboard Toggle word wrap

5.4. 가상 네트워크 인터페이스 연결 및 분리

베어 메탈 프로비저닝 서비스에는 가상 네트워크 인터페이스 간의 매핑을 관리하는 데 사용할 수 있는 API가 있습니다. 예를 들어 OpenStack Networking 서비스 및 물리적 인터페이스(NIC)의 인터페이스가 있습니다. 각 Bare Metal Provisioning 노드에 대해 이러한 인터페이스를 구성하여 VIF(가상 네트워크 인터페이스)를 물리적 네트워크 인터페이스(PIF) 매핑 논리로 설정할 수 있습니다. 인터페이스를 구성하려면 openstack baremetal node vif* 명령을 사용합니다.

사전 요구 사항

절차

  1. 현재 베어 메탈 노드에 연결된 VIF ID를 나열합니다.

    $ openstack baremetal node vif list baremetal-0
    +--------------------------------------+
    | ID                                   |
    +--------------------------------------+
    | 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 |
    +--------------------------------------+
    Copy to Clipboard Toggle word wrap
  2. VIF를 연결한 후 베어 메탈 프로비저닝 서비스는 OpenStack Networking 서비스의 가상 포트를 실제 포트의 실제 MAC 주소로 업데이트합니다. 이 포트 주소를 확인합니다.

    $ openstack port show 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16 -c mac_address -c fixed_ips
    +-------------+-----------------------------------------------------------------------------+
    | Field       | Value                                                                       |
    +-------------+-----------------------------------------------------------------------------+
    | fixed_ips   | ip_address='192.168.24.9', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' |
    | mac_address | 00:2d:28:2f:8d:95                                                           |
    +-------------+-----------------------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
  3. baremetal-0 노드를 생성한 네트워크에 새 포트를 생성합니다.

    $ openstack port create --network baremetal --fixed-ip ip-address=192.168.24.24 baremetal-0-extra
    Copy to Clipboard Toggle word wrap
  4. 인스턴스에서 포트를 제거합니다.

    $ openstack server remove port overcloud-baremetal-0 4475bc5a-6f6e-466d-bcb6-6c2dce0fba16
    Copy to Clipboard Toggle word wrap
  5. 목록에 IP 주소가 더 이상 존재하지 않는지 확인합니다.

    $ openstack server list
    Copy to Clipboard Toggle word wrap
  6. 노드에 VIF가 연결되어 있는지 확인합니다.

    $ openstack baremetal node vif list baremetal-0
    $ openstack port list
    Copy to Clipboard Toggle word wrap
  7. 새로 생성된 포트를 추가합니다.

    $ openstack server add port overcloud-baremetal-0 baremetal-0-extra
    Copy to Clipboard Toggle word wrap
  8. 새 IP 주소에 새 포트가 표시되는지 확인합니다.

    $ openstack server list
    +--------------------------------------+-------------------------+--------+------------------------+------------------------------+---------+
    | ID                                   | Name                    | Status | Networks               | Image                        | Flavor  |
    +--------------------------------------+-------------------------+--------+------------------------+------------------------------+---------+
    | 53095a64-1646-4dd1-bbf3-b51cbcc38789 | overcloud-controller-2  | ACTIVE | ctlplane=192.168.24.7  | overcloud-hardened-uefi-full | control |
    | 3a1bc89c-5d0d-44c7-a569-f2a3b4c73d65 | overcloud-controller-0  | ACTIVE | ctlplane=192.168.24.8  | overcloud-hardened-uefi-full | control |
    | 6b01531a-f55d-40e9-b3a2-6d02be0b915b | overcloud-controller-1  | ACTIVE | ctlplane=192.168.24.16 | overcloud-hardened-uefi-full | control |
    | c61cc52b-cc48-4903-a971-073c60f53091 | overcloud-novacompute-0overcloud-baremetal-0 | ACTIVE | ctlplane=192.168.24.24 | overcloud-hardened-uefi-full | compute |
    +--------------------------------------+-------------------------+--------+------------------------+------------------------------+---------+
    Copy to Clipboard Toggle word wrap
  9. VIF ID가 새 포트의 UUID인지 확인합니다.

    $ openstack baremetal node vif list baremetal-0
    +--------------------------------------+
    | ID                                   |
    +--------------------------------------+
    | 6181c089-7e33-4f1c-b8fe-2523ff431ffc |
    +--------------------------------------+
    Copy to Clipboard Toggle word wrap
  10. OpenStack Networking 포트 MAC 주소가 업데이트되었으며 베어 메탈 프로비저닝 서비스 포트 중 하나와 일치하는지 확인합니다.

    $ openstack port show 6181c089-7e33-4f1c-b8fe-2523ff431ffc -c mac_address -c fixed_ips
    +-------------+------------------------------------------------------------------------------+
    | Field       | Value                                                                        |
    +-------------+------------------------------------------------------------------------------+
    | fixed_ips   | ip_address='192.168.24.24', subnet_id='1d11c677-5946-4733-87c3-23a9e06077aa' |
    | mac_address | 00:2d:28:2f:8d:95                                                            |
    +-------------+------------------------------------------------------------------------------+
    Copy to Clipboard Toggle word wrap
  11. 새 IP 주소를 인식할 수 있도록 베어 메탈 노드를 재부팅합니다.

    $ openstack server reboot overcloud-baremetal-0
    Copy to Clipboard Toggle word wrap

    인터페이스를 분리하거나 연결한 후 베어 메탈 OS는 변경된 네트워크 인터페이스를 제거, 추가 또는 수정합니다. 포트를 교체할 때 DHCP 요청은 새 IP 주소를 얻지만 이전 DHCP 리스가 여전히 유효하기 때문에 다소 시간이 걸릴 수 있습니다. 이러한 변경 사항을 즉시 시작하려면 베어 메탈 호스트를 재부팅합니다.

5.5. 베어 메탈 프로비저닝 서비스에 대한 알림 구성

서비스 내에서 발생하는 다양한 이벤트에 대한 알림을 표시하도록 Bare Metal Provisioning 서비스(ironic)를 구성할 수 있습니다. 외부 서비스는 이러한 알림을 청구 목적, 데이터 저장소 모니터링 및 기타 용도로 사용할 수 있습니다. Bare Metal Provisioning 서비스에 대한 알림을 활성화하려면 ironic.conf 구성 파일에서 다음 옵션을 설정해야 합니다.

사전 요구 사항

절차

  • [DEFAULT] 섹션의 notification_level 옵션에 따라 알림이 전송되는 최소 우선 순위 수준이 결정됩니다. 이 옵션의 값을 설정하여 ,info,warning,error 또는 critical디버깅 할 수 있습니다. 옵션이 warning 으로 설정된 경우 우선 순위 수준 경고,오류 또는 중요 가 있는 모든 알림이 전송되지만 우선 순위 수준 debug 또는 info 가 있는 알림은 전송되지 않습니다. 이 옵션을 설정하지 않으면 알림이 전송되지 않습니다. 사용 가능한 각 알림의 우선 순위 수준은 아래에 설명되어 있습니다.
  • [oslo_messaging_notifications] 섹션의 transport_url 옵션은 알림을 보낼 때 사용되는 메시지 버스를 결정합니다. 이 값을 설정하지 않으면 RPC에 사용되는 기본 전송이 사용됩니다.

모든 알림은 메시지 버스의 ironic_versioned_notifications 주제에서 발송됩니다. 일반적으로 메시지 버스를 통과하는 각 유형의 메시지는 메시지의 내용을 설명하는 주제와 연관됩니다.

5.6. 자동 전원 오류 복구 구성

Bare Metal Provisioning 서비스(ironic)에는 노드의 전원, 정리 및 복구 중단 오류를 기록하는 문자열 필드 결함이 있습니다.

Expand
표 5.1. Ironic 노드 오류
fault설명

전원 실패

전원 동기화 실패로 인해 노드가 유지보수 모드에 있으며 최대 재시도 횟수가 초과됩니다.

깔끔한 실패

정리 작업이 실패하여 노드가 유지보수 모드에 있습니다.

복구 중단 실패

복구 중단 중 정리 작업이 실패하여 노드가 유지보수 모드에 있습니다.

none

여기에는 오류가 없습니다.

컨덕터는 이 필드의 값을 주기적으로 확인합니다. 컨덕터가 전원 실패 상태를 감지하고 노드에 전원을 성공적으로 복원할 수 있는 경우 노드가 유지보수 모드에서 제거되고 작업으로 복원됩니다.

참고

Operator가 노드를 유지보수 모드에 수동으로 배치하면 컨덕터가 노드를 유지보수 모드에서 자동으로 제거하지 않습니다.

기본 간격은 300초이지만 hieradata를 사용하여 director에서 이 간격을 설정할 수 있습니다.

사전 요구 사항

절차

  • 다음 hieradata를 포함하여 사용자 지정 복구 간격을 구성합니다.

    ironic::conductor::power_failure_recovery_interval
    Copy to Clipboard Toggle word wrap

    자동 전원 오류 복구를 비활성화하려면 값을 0 으로 설정합니다.

5.7. 오버클라우드 노드 인트로스펙션

오버클라우드 노드의 인트로스펙션을 수행하여 director에 노드 사양을 식별하고 저장합니다.

절차

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. overcloudrc 인증 정보 파일을 소싱합니다.

    $ source ~/overcloudrc
    Copy to Clipboard Toggle word wrap
  3. introspection 명령을 실행합니다.

    $ openstack baremetal introspection start [--wait] <NODENAME>
    Copy to Clipboard Toggle word wrap

    <NODENAME>을 검사하려는 노드의 이름 또는 UUID로 바꿉니다.

  4. 인트로스펙션 상태를 확인합니다.

    $ openstack baremetal introspection status <NODENAME>
    Copy to Clipboard Toggle word wrap

    <NODENAME>을 노드의 이름 또는 UUID로 바꿉니다.

다음 단계

  • 인트로스펙션 데이터를 추출합니다.

    $ openstack baremetal introspection data save <NODE-UUID>
    Copy to Clipboard Toggle word wrap

    <NODENAME>을 노드의 이름 또는 UUID로 바꿉니다.

중요

이 기능은 Red Hat OpenStack Platform 17.0에서 더 이상 사용되지 않습니다. 버그 수정 및 지원은 RHOSP 17.0에서 제공되지만 새로운 기능 개선 사항은 없습니다.

Block Storage 서비스(cinder)에서 볼륨을 생성하고 이러한 볼륨을 Bare Metal Provisioning 서비스(ironic)로 생성한 베어 메탈 인스턴스에 연결할 수 있습니다.

클라우드 사용자가 부팅 가능한 볼륨에서 베어 메탈 인스턴스를 생성할 수 있도록 하려면 다음 작업을 완료합니다.

  1. 부팅 가능한 볼륨에서 베어 메탈 인스턴스를 시작할 수 있도록 각 베어 메탈 노드를 구성합니다.
  2. 부팅 디스크에서 iSCSI 커널 매개 변수를 구성합니다.

6.1. 사전 요구 사항

  • Bare Metal Provisioning 서비스(ironic)는 iSCSI 인터페이스를 통해 베어 메탈 노드를 블록 스토리지 볼륨에 연결합니다. 따라서 블록 스토리지 서비스(cinder)의 iSCSI 백엔드와 함께 오버클라우드를 배포해야 합니다. 블록 스토리지 서비스에 iSCSI 백엔드를 활성화하려면 CinderEnableIscsiBackend 매개변수를 true 로 설정하고 오버클라우드를 배포합니다.

    참고

    Red Hat Ceph Storage 백엔드에서는 Block Storage 볼륨 부팅 기능을 사용할 수 없습니다.

부팅 가능한 볼륨에서 베어 메탈 인스턴스를 시작하는 기능을 제공하도록 각 베어 메탈 노드를 구성해야 합니다.

프로세스

  1. 오버클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • & lt;credentials_file& gt;을 인증 정보 파일의 이름으로 바꿉니다(예: overcloudrc ).
  2. 각 베어 메탈 노드에 대해 iscsi_boot 기능을 true 로 설정합니다.

    $ openstack baremetal node set --property capabilities=iscsi_boot:true <node_uuid>
    Copy to Clipboard Toggle word wrap
    • & lt;node_uuid& gt;를 베어 메탈 노드의 ID로 바꿉니다.
  3. 각 베어 메탈 노드에 대해 storage-interfacecinder 로 설정합니다.

    $ openstack baremetal node set --storage-interface cinder <node_uuid>
    Copy to Clipboard Toggle word wrap
  4. 노드의 iSCSI 커넥터를 생성합니다.

    $ openstack baremetal volume connector create --node <node_uuid> \
     --type iqn --connector-id <connector_id>
    Copy to Clipboard Toggle word wrap
    • < connector_id >를 각 노드의 고유 ID(예: iqn.2010-10.org.openstack.node<NUM >)로 바꿉니다. 여기서 < NUM >은 각 노드의 증가된 번호입니다.

6.3. 부팅 디스크에서 iSCSI 커널 매개변수 구성

커널에서 iSCSI 부팅을 활성화하도록 인스턴스 이미지를 구성해야 합니다.

프로세스

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. stackrc 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. Red Hat Enterprise Linux 제품 소프트웨어 다운로드 페이지에서 QCOW2 형식의 Red Hat Enterprise Linux KVM 이미지를 다운로드합니다.
  4. 이미지를 언더클라우드의 /home/stack/ 디렉터리에 복사합니다.
  5. QCOW2 이미지를 마운트하고 root 사용자로 액세스합니다.

    1. nbd 커널 모듈을 로드합니다.

      $ sudo modprobe nbd
      Copy to Clipboard Toggle word wrap
    2. QCOW 이미지를 /dev/nbd0 으로 연결합니다.

      $ sudo qemu-nbd --connect=/dev/nbd0 <image>
      Copy to Clipboard Toggle word wrap
    3. NBD의 파티션을 확인합니다.

      $ sudo fdisk /dev/nbd0 -l
      Copy to Clipboard Toggle word wrap

      새로운 Red Hat Enterprise Linux QCOW2 이미지에는 일반적으로 NBD에서 이름이 /dev/nbd0p1 인 파티션이 하나뿐입니다.

    4. 이미지의 마운트 지점을 생성합니다.

      $ mkdir /tmp/mountpoint
      Copy to Clipboard Toggle word wrap
    5. 이미지를 마운트합니다.

      $ sudo mount /dev/nbd0p1 /tmp/mountpoint/
      Copy to Clipboard Toggle word wrap
    6. 이미지가 호스트의 장치 정보에 액세스할 수 있도록 dev 디렉토리를 마운트합니다.

      $ sudo mount -o bind /dev /tmp/mountpoint/dev
      Copy to Clipboard Toggle word wrap
    7. root 디렉토리를 마운트 지점으로 변경합니다.

      $ sudo chroot /tmp/mountpoint /bin/bash
      Copy to Clipboard Toggle word wrap
  6. 이미지에 iSCSI를 구성합니다.

    참고

    이 단계의 일부 명령은 다음 오류를 보고할 수 있습니다.

    lscpu: cannot open /proc/cpuinfo: No such file or directory
    Copy to Clipboard Toggle word wrap

    이 오류는 중요하지 않으며 오류를 무시할 수 있습니다.

    1. resolv.conf 파일을 임시 위치로 이동합니다.

      # mv /etc/resolv.conf /etc/resolv.conf.bak
      Copy to Clipboard Toggle word wrap
    2. 임시 resolv.conf 파일을 생성하여 Red Hat Content Delivery Network에 대한 DNS 요청을 확인합니다. 이 예에서는 이름 서버에 8.8.8.8 을 사용합니다.

      # echo "nameserver 8.8.8.8" > /etc/resolv.conf
      Copy to Clipboard Toggle word wrap
    3. Red Hat Content Delivery Network에 마운트된 이미지를 등록합니다.

      # subscription-manager register
      Copy to Clipboard Toggle word wrap

      명령에서 메시지를 표시할 때 사용자 이름과 암호를 입력합니다.

    4. Red Hat Enterprise Linux가 포함된 서브스크립션을 연결합니다.

      # subscription-manager list --all --available
      # subscription-manager attach --pool <POOLID>
      Copy to Clipboard Toggle word wrap

      & lt;POOLID& gt;를 서브스크립션의 풀 ID로 바꿉니다.

    5. 기본 리포지토리를 비활성화합니다.

      # subscription-manager repos --disable "*"
      Copy to Clipboard Toggle word wrap
    6. Red Hat Enterprise Linux 리포지토리를 활성화합니다.

      • Red Hat Enterprise Linux 7:

        # subscription-manager repos --enable "rhel-7-server-rpms"
        Copy to Clipboard Toggle word wrap
      • Red Hat Enterprise Linux 8:

        # subscription-manager repos --enable "rhel-8-for-x86_64-baseos-eus-rpms"
        Copy to Clipboard Toggle word wrap
    7. iscsi-initiator-utils 패키지를 설치합니다.

      # yum install -y iscsi-initiator-utils
      Copy to Clipboard Toggle word wrap
    8. 마운트된 이미지를 등록 해제합니다.

      # subscription-manager unregister
      Copy to Clipboard Toggle word wrap
    9. 원래 resolv.conf 파일을 복원합니다.

      # mv /etc/resolv.conf.bak /etc/resolv.conf
      Copy to Clipboard Toggle word wrap
    10. 마운트된 이미지에서 커널 버전을 확인합니다.

      # rpm -qa kernel
      Copy to Clipboard Toggle word wrap

      예를 들어 출력이 kernel-3.10.0-1062.el7.x86_64 인 경우 커널 버전은 3.10.0-1062.el7.x86_64 입니다. 다음 단계는 이 커널 버전을 참조하십시오.

      참고

      새로운 Red Hat Enterprise Linux QCOW2 이미지에는 하나의 커널 버전만 설치됩니다. 두 개 이상의 커널 버전이 설치된 경우 최신 버전을 사용합니다.

    11. initramfs 이미지에 networkiscsi dracut 모듈을 추가합니다.

      # dracut --force --add "network iscsi" /boot/initramfs-<KERNELVERSION>.img <KERNELVERSION>
      Copy to Clipboard Toggle word wrap

      & lt;KERNELVERSION >을 rpm -qa 커널에서 가져온 버전 번호로 바꿉니다. 다음 예제에서는 커널 버전으로 3.10.0-1062.el7.x86_64 를 사용합니다.

      # dracut --force --add "network iscsi" /boot/initramfs-3.10.0-1062.el7.x86_64.img 3.10.0-1062.el7.x86_64
      Copy to Clipboard Toggle word wrap
    12. 마운트된 이미지를 호스트 운영 체제로 다시 종료합니다.

      # exit
      Copy to Clipboard Toggle word wrap
  7. 이미지를 마운트 해제합니다.

    1. 임시 마운트 지점에서 dev 디렉토리를 마운트 해제합니다.

      $ sudo umount /tmp/mountpoint/dev
      Copy to Clipboard Toggle word wrap
    2. 마운트 시점에서 이미지를 마운트 해제합니다.

      $ sudo umount /tmp/mountpoint
      Copy to Clipboard Toggle word wrap
    3. QCOW2 이미지의 연결을 /dev/nbd0/:에서 연결 해제합니다.

      $ sudo qemu-nbd --disconnect /dev/nbd0
      Copy to Clipboard Toggle word wrap
  8. 이미지에서 grub 메뉴 구성을 다시 빌드합니다.

    1. libguestfs-tools 패키지를 설치합니다.

      $ sudo yum -y install libguestfs-tools
      Copy to Clipboard Toggle word wrap
      중요

      언더클라우드에 libguestfs-tools 패키지를 설치하는 경우 언더클라우드에서 tripleo_iscsid 서비스와 포트 충돌을 방지하기 위해 iscsid.socket 을 비활성화합니다.

      $ sudo systemctl disable --now iscsid.socket
      Copy to Clipboard Toggle word wrap
    2. QEMU를 직접 사용하도록 libguestfs 백엔드를 설정합니다.

      $ export LIBGUESTFS_BACKEND=direct
      Copy to Clipboard Toggle word wrap
    3. 이미지에서 grub 구성을 업데이트하고 부팅 디스크에서 rd.iscsi.firmware=1 커널 매개변수를 설정합니다.

      $ guestfish -a /tmp/images/{{ dib_image }} -m /dev/sda3 sh "mount /dev/sda2 /boot/efi && rm /boot/grub2/grubenv && /sbin/grub2-mkconfig -o /boot/grub2/grub.cfg && cp /boot/grub2/grub.cfg /boot/efi/EFI/redhat/grub.cfg && grubby --update-kernel=ALL --args=\"rd.iscsi.firmware=1\" && cp /boot/grub2/grubenv /boot/efi/EFI/redhat/grubenv && echo Success"
      Copy to Clipboard Toggle word wrap
  9. iSCSI 사용 이미지를 Image 서비스(glance)에 업로드합니다.

    $ openstack image create --disk-format qcow2 --container-format bare \
     --file <image> <image_name>
    Copy to Clipboard Toggle word wrap
    • & lt;image >를 iSCSI 사용 이미지의 이름으로 바꿉니다(예: rhel-server-7.7-x86_64-kvm.qcow2 ).
    • & lt;image_ref >를 이미지를 참조하는 데 사용할 이름으로 바꿉니다(예: rhel-server-7.7-iscsi ).

6.4. 부팅 가능한 볼륨에서 베어 메탈 인스턴스 생성

베어 메탈 노드에서 부팅 가능한 볼륨에서 생성된 베어 메탈 인스턴스를 호스팅할 수 있는지 확인하려면 부팅 가능한 볼륨을 생성하고 인스턴스를 시작합니다.

프로세스

  1. 오버클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/<credentials_file>
    Copy to Clipboard Toggle word wrap
    • & lt;credentials_file& gt;을 인증 정보 파일의 이름으로 바꿉니다(예: overcloudrc ).
  2. iSCSI 사용 인스턴스 이미지에서 볼륨을 생성합니다.

    $ openstack volume create --size 10 --image <image_ref> --bootable myBootableVolume
    Copy to Clipboard Toggle word wrap
    • & lt;image_ref >를 볼륨에 쓸 이미지 이름 또는 ID로 바꿉니다(예: rhel-server-7.7-iscsi ).
  3. 부팅 볼륨을 사용하는 베어 메탈 인스턴스를 생성합니다.

    $ openstack server create --flavor baremetal --volume myBootableVolume --key default myBareMetalInstance
    Copy to Clipboard Toggle word wrap

7장. Bare Metal Provisioning 서비스 문제 해결

Bare Metal Provisioning 서비스(ironic)가 포함된 환경의 문제를 진단합니다.

7.1. PXE 부팅 오류

다음 문제 해결 절차를 사용하여 PXE 부팅에 발생할 수 있는 문제를 평가하고 해결합니다.

권한 거부 오류

베어 메탈 노드의 콘솔에서 Permission Denied 오류를 반환하는 경우 적절한 SELinux 컨텍스트를 /httpboot/tftpboot 디렉터리에 적용했는지 확인합니다.

# semanage fcontext -a -t httpd_sys_content_t "/httpboot(/.*)?"
# restorecon -r -v /httpboot
# semanage fcontext -a -t tftpdir_t "/tftpboot(/.*)?"
# restorecon -r -v /tftpboot
Copy to Clipboard Toggle word wrap

부팅 프로세스가 /pxelinux.cfg/XX-XX-XX-XX-XX-XX에서 중지됩니다.

노드의 콘솔에서 IP 주소가 수신되는 것처럼 보이지만 프로세스가 중지되면 ironic.conf 파일에서 잘못된 PXE 부팅 템플릿을 사용할 수 있습니다.

PXE Process Freezes During Boot

$ grep ^pxe_config_template ironic.conf
pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
Copy to Clipboard Toggle word wrap

기본 템플릿은 pxe_config.template 이므로 i 및 실수로 ipxe_config.template 을 쉽게 입력할 수 있습니다.

7.2. 베어 메탈 노드가 부팅된 후 로그인 오류

구성 중에 설정한 루트 암호를 사용할 때 노드에 로그인하지 못하면 배포된 이미지로 부팅되지 않음을 나타냅니다. deploy-kernel/deploy-ramdisk 이미지에 로그인할 수 있으며 시스템이 아직 올바른 이미지를 로드하지 않았습니다.

이 문제를 해결하려면 Compute 또는 Bare Metal Provisioning 서비스 노드의 /httpboot/pxelinux.cfg/MAC_ADDRESS 의 PXE 부팅 구성 파일이 베어 메탈 네트워크의 IP 주소에 해당하는지 확인합니다.

참고

베어 메탈 프로비저닝 서비스 노드에서 사용하는 유일한 네트워크는 베어 메탈 네트워크입니다. 엔드포인트 중 하나가 네트워크에 없는 경우 엔드포인트는 부팅 프로세스의 일부로 베어 메탈 프로비저닝 서비스 노드에 연결할 수 없습니다.

예를 들어 파일의 커널 행은 다음과 같습니다.

kernel http://192.168.200.2:8088/5a6cdbe3-2c90-4a90-b3c6-85b449b30512/deploy_kernel selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn.2008-10.org.openstack:5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_id=5a6cdbe3-2c90-4a90-b3c6-85b449b30512 deployment_key=VWDYDVVEFCQJNOSTO9R67HKUXUGP77CK ironic_api_url=http://192.168.200.2:6385 troubleshoot=0 text nofb nomodeset vga=normal boot_option=netboot ip=${ip}:${next-server}:${gateway}:${netmask} BOOTIF=${mac}  ipa-api-url=http://192.168.200.2:6385 ipa-driver-name=ipmi boot_mode=bios initrd=deploy_ramdisk coreos.configdrive=0 || goto deploy
Copy to Clipboard Toggle word wrap
Expand
위의 예제 커널 줄의 값해당 정보

http://192.168.200.2:8088

/etc/ironic/ironic.conf 파일의 매개변수 http_url. 이 IP 주소는 베어 메탈 네트워크에 있어야 합니다.

5a6cdbe3-2c90-4a90-b3c6-85b449b30512

ironic node-list 의 baremetal 노드의 UUID입니다.

deploy_kernel

이미지 서비스에서 /httpboot/<NODE_UUID>/deploy_kernel 으로 복사되는 배포 커널 이미지입니다.

http://192.168.200.2:6385

/etc/ironic/ironic.conf 파일의 매개변수 api_url. 이 IP 주소는 베어 메탈 네트워크에 있어야 합니다.

ipmi

이 노드의 베어 메탈 프로비저닝 서비스에서 사용 중인 IPMI 드라이버입니다.

deploy_ramdisk

이는 이미지 서비스에 /httpboot/<NODE_UUID>/deploy_ramdisk로 복사되는 배포 램디스크 이미지입니다.

/httpboot/pxelinux.cfg/MAC_ADDRESSironic.conf 파일 사이에 값이 일치하지 않는 경우:

  1. ironic.conf 파일에서 값을 업데이트
  2. 베어 메탈 프로비저닝 서비스 다시 시작
  3. 베어 메탈 인스턴스 재배포

7.3. 배포된 노드의 Boot-to-disk 오류

특정 하드웨어를 사용하면 배포의 일부로 연속 부팅 작업 중에 노드가 디스크에서 부팅할 수 없는 배포된 노드에 문제가 발생할 수 있습니다. 이는 일반적으로 BMC가 director가 노드에서 요청하는 영구 부팅 설정을 준수하지 않기 때문에 발생합니다. 대신 노드는 PXE 대상에서 부팅됩니다.

이 경우 노드의 BIOS에서 부팅 순서를 업데이트해야 합니다. HDD를 첫 번째 부팅 장치로 설정한 다음 이후 옵션으로 PXE를 설정하여 노드가 기본적으로 디스크에서 부팅되지만 필요에 따라 인트로스펙션 또는 배포 중에 네트워크에서 부팅할 수 있습니다.

참고

이 오류는 대부분 LegacyBIOS 펌웨어를 사용하는 노드에 적용됩니다.

베어 메탈 프로비저닝 서비스에 올바른 호스트 이름이 제공되지 않으면 cloud-init 가 실패합니다. 이 문제를 해결하려면 OpenStack Networking 서비스의 라우터에 Bare Metal 서브넷을 연결합니다. 이 구성에서는 요청을 메타 데이터 에이전트로 올바르게 라우팅합니다.

Identity 서비스를 인증할 수 없는 경우 ironic.conf 파일에서 identity_uri 매개변수를 확인하고 keystone AdminURL에서 /v2.0 을 제거해야 합니다. 예를 들어 identity_urihttp://IP:PORT 로 설정합니다.

7.6. 하드웨어 등록

잘못된 노드 등록 세부 정보로 인해 등록된 하드웨어에 문제가 발생할 수 있습니다. 속성 이름과 값을 올바르게 입력했는지 확인합니다. 속성 이름을 잘못 입력하면 시스템은 노드 세부 정보에 속성을 추가하지만 무시합니다.

openstack baremetal node set 명령을 사용하여 노드 세부 정보를 업데이트합니다. 예를 들어 노드가 2GB에 사용하도록 등록된 메모리 양을 업데이트합니다.

$ openstack baremetal node set --property memory_mb=2048 NODE_UUID
Copy to Clipboard Toggle word wrap

7.7. iDRAC 문제 해결

Redfish 관리 인터페이스가 부팅 장치를 설정하지 못했습니다

특정 iDRAC 펌웨어 버전과 함께 idrac-redfish 관리 인터페이스를 사용하고 UEFI 부팅을 사용하여 베어 메탈 서버에서 부팅 장치를 설정하려고 하면 iDRAC에서 다음 오류를 반환합니다.

Unable to Process the request because the value entered for the
parameter Continuous is not supported by the implementation.
Copy to Clipboard Toggle word wrap

이 문제가 발생하면 노드의 driver-info 에서 force_persistent_boot_device 매개변수를 Never 로 설정합니다.

openstack baremetal node set --driver-info force_persistent_boot_device=Never ${node_uuid}
Copy to Clipboard Toggle word wrap
전원을 끄는 시간 초과

일부 서버는 전원을 끄거나 시간 초과할 때 너무 느려질 수 있습니다. 기본 재시도 수는 6 이므로 30초의 시간 초과가 발생합니다. 시간 초과 기간을 90초로 늘리려면 언더클라우드 hieradata 덮어쓰기 파일에서 ironic::agent::rpc_response_timeout 값을 18 로 설정하고 openstack undercloud install 명령을 다시 실행합니다.

ironic::agent::rpc_response_timeout: 18
Copy to Clipboard Toggle word wrap
벤더 패스스루 시간 초과

iDRAC를 벤더 패스스루 명령을 실행할 수 없는 경우 이러한 명령이 시간이 너무 오래 걸립니다.

openstack baremetal node passthru call --http-method GET \
aed58dca-1b25-409a-a32f-3a817d59e1e0 list_unfinished_jobs
Timed out waiting for a reply to message ID 547ce7995342418c99ef1ea4a0054572 (HTTP 500)
Copy to Clipboard Toggle word wrap

메시징의 시간 초과 기간을 늘리려면 언더클라우드 hieradata 덮어쓰기 파일에서 ironic::default::rpc_response_timeout 매개변수 값을 늘리고 openstack undercloud install 명령을 다시 실행합니다.

ironic::default::rpc_response_timeout: 600
Copy to Clipboard Toggle word wrap

7.8. 서버 콘솔 구성

오버클라우드 노드의 콘솔 출력이 항상 서버 콘솔로 전송되지는 않습니다. 서버 콘솔에서 이 출력을 보려면 하드웨어에 올바른 콘솔을 사용하도록 오버클라우드를 구성해야 합니다. 이 구성을 수행하려면 다음 방법 중 하나를 사용합니다.

  • 각 오버클라우드 역할에 대해 KernelArgs heat 매개변수를 수정합니다.
  • director에서 오버클라우드 노드를 프로비저닝하는 데 사용하는 overcloud-hardened-uefi-full.qcow2 이미지를 사용자 지정합니다.

사전 요구 사항

  • 성공적인 언더클라우드 설치 자세한 내용은 Director 설치 및 사용 가이드를 참조하십시오.
  • 배포할 준비가 된 오버클라우드 노드

배포 중 heat로 KernelArgs 수정

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. stackrc 인증 정보 파일을 소싱합니다.

    $ source stackrc
    Copy to Clipboard Toggle word wrap
  3. 다음 콘텐츠를 사용하여 환경 파일 overcloud-console.yaml 을 생성합니다.

    parameter_defaults:
      <role>Parameters:
        KernelArgs: "console=<console-name>"
    Copy to Clipboard Toggle word wrap

    & lt;role >을 구성할 오버클라우드 역할의 이름으로 바꾸고 < console-name >을 사용하려는 콘솔 ID로 바꿉니다. 예를 들어 다음 스니펫을 사용하여 tty0 을 사용하도록 기본 역할의 모든 오버클라우드 노드를 구성합니다.

    parameter_defaults:
      ControllerParameters:
        KernelArgs: "console=tty0"
      ComputeParameters:
        KernelArgs: "console=tty0"
      BlockStorageParameters:
        KernelArgs: "console=tty0"
      ObjectStorageParameters:
        KernelArgs: "console=tty0"
      CephStorageParameters:
        KernelArgs: "console=tty0"
    Copy to Clipboard Toggle word wrap
  4. -e 옵션을 사용하여 배포 명령에 overcloud-console-tty0.yaml 파일을 포함합니다.

overcloud-hardened-uefi-full.qcow2 이미지 수정

  1. 언더클라우드 호스트에 stack 사용자로 로그인합니다.
  2. stackrc 인증 정보 파일을 소싱합니다.

    $ source stackrc
    Copy to Clipboard Toggle word wrap
  3. overcloud-hardened-uefi-full.qcow2 이미지에서 커널 인수를 수정하여 하드웨어에 올바른 콘솔을 설정합니다. 예를 들어 콘솔을 tty1 로 설정합니다.

    $ virt-customize --selinux-relabel -a overcloud-hardened-uefi-full.qcow2 --run-command 'grubby --update-kernel=ALL --args="console=tty1"'
    Copy to Clipboard Toggle word wrap
  4. 이미지를 director로 가져옵니다.

    $ openstack overcloud image upload --image-path overcloud-hardened-uefi-full.qcow2
    Copy to Clipboard Toggle word wrap
  5. 오버클라우드를 배포합니다.

검증

  1. 언더클라우드에서 오버클라우드 노드에 로그인합니다.

    $ ssh tripleo-admin@<IP-address>
    Copy to Clipboard Toggle word wrap

    & lt;IP-address& gt;를 오버클라우드 노드의 IP 주소로 바꿉니다.

  2. /proc/cmdline 파일의 내용을 검사하고 console= 매개변수가 사용하려는 콘솔 값으로 설정되어 있는지 확인합니다.

    [tripleo-admin@controller-0 ~]$ cat /proc/cmdline
    BOOT_IMAGE=(hd0,msdos2)/boot/vmlinuz-4.18.0-193.29.1.el8_2.x86_64 root=UUID=0ec3dea5-f293-4729-b676-5d38a611ce81 ro console=tty0 console=ttyS0,115200n81 no_timer_check crashkernel=auto rhgb quiet
    Copy to Clipboard Toggle word wrap

8장. 베어 메탈 드라이버

베어 메탈 프로비저닝 서비스에서 활성화된 드라이버 중 하나를 사용하도록 베어 메탈 노드를 구성할 수 있습니다. 각 드라이버에는 프로비저닝 방법과 전원 관리 유형이 포함됩니다. 일부 드라이버에는 추가 구성이 필요합니다. 이 섹션에 설명된 각 드라이버는 프로비저닝에 PXE를 사용합니다. 드라이버는 전원 관리 유형으로 나열됩니다.

ironic.yaml 파일에서 IronicEnabledHardwareTypes 매개변수를 구성하여 드라이버를 추가할 수 있습니다. 기본적으로 ipmiredfish 는 활성화되어 있습니다.

지원되는 플러그인 및 드라이버의 전체 목록은 Component, Plug-In 및 Driver Support in Red Hat OpenStack Platform 을 참조하십시오.

8.1. IPMI(Intelligent Platform Management Interface) 전원 관리 드라이버

IPMI는 전원 관리 및 서버 모니터링을 포함하여 대역 외 원격 관리 기능을 제공하는 인터페이스입니다. 이 전원 관리 유형을 사용하려면 모든 베어 메탈 프로비저닝 서비스 노드에 공유 베어 메탈 네트워크에 연결된 IPMI가 필요합니다. IPMI 전원 관리자 드라이버는 ipmitool 유틸리티를 사용하여 하드웨어를 원격으로 관리합니다. 다음 driver_info 속성을 사용하여 노드에 대한 IPMI 전원 관리자 드라이버를 구성할 수 있습니다.

Expand
표 8.1. IPMI driver_info 속성
속성설명동등한 ipmitool 옵션

ipmi_address

(필수) 노드의 IP 주소 또는 호스트 이름입니다.

-H

ipmi_username

IPMI 사용자 이름입니다.

-U

ipmi_password

IPMI 암호입니다. 암호는 임시 파일에 작성됩니다. -f 옵션을 사용하여 파일 이름을 ipmitool 에 전달합니다.

-f

ipmi_hex_kg_key

IPMIv2 인증을 위한 16진수 Kg 키입니다.

-y

ipmi_port

원격 IPMI RMCP 포트입니다.

-p

ipmi_priv_level

IPMI 권한 수준. 다음 유효한 값 중 하나로 설정합니다.

  • ADMINISTRATOR (기본값)
  • CALLBACK
  • OPERATOR
  • USER

-L

ipmi_protocol_version

IPMI 프로토콜의 버전입니다. 다음 유효한 값 중 하나로 설정합니다.

  • 1.5 for lan
  • 2.0 for lanplus (기본값)

-I

ipmi_bridging

브리징 유형입니다. CCMC( nested 섀시 관리 컨트롤러)와 함께 사용합니다. 다음 유효한 값 중 하나로 설정합니다.

  • 단일
  • 듀얼
  • 제공되지 않음 (기본값)

해당 없음

ipmi_target_channel

브리지된 요청에 대한 대상 채널입니다. ipmi_bridging단일 또는 이중 으로 설정된 경우에만 필요합니다.

-b

ipmi_target_address

브리지된 요청의 대상 주소입니다. ipmi_bridging단일 또는 이중 으로 설정된 경우에만 필요합니다.

-t

ipmi_transit_channel

브리지된 요청에 대한 전송 채널입니다. ipmi_bridging듀얼 으로 설정된 경우에만 필요합니다.

-B

ipmi_transit_address

bridged 요청의 전송 주소입니다. ipmi_bridging듀얼 으로 설정된 경우에만 필요합니다.

-T

ipmi_local_address

브리지된 요청의 로컬 IPMB 주소입니다. ipmi_bridging단일 또는 이중 으로 설정된 경우에만 사용합니다.

-m

ipmi_force_boot_device

Bare Metal Provisioning 서비스에서 서버가 켜질 때마다 BMC에 부팅 장치를 지정해야 하는지 지정하려면 true 로 설정합니다. BMC는 전원 사이클 간에 선택한 부팅 장치를 기억할 수 없습니다. 기본적으로 비활성되어 있습니다.

해당 없음

ipmi_disable_boot_timeout

노드에서 부팅하기 위해 60초 제한 시간을 비활성화하려면 원시 IPMI 명령을 보내지 않도록 false 로 설정합니다.

해당 없음

ipmi_cipher_suite

노드에서 사용할 IPMI 암호화 제품군 버전입니다. 다음 유효한 값 중 하나로 설정합니다.

  • 3 SHA1이 있는 AES-128의 경우
  • 17 SHA256이 있는 AES-128의 경우

해당 없음

8.2. Redfish

DCTF(Distributed Management Task Force)에서 개발한 IT 인프라를 위한 표준 RESTful API입니다. 다음 driver_info 속성을 사용하여 Redfish에 Bare Metal Provisioning serive(ironic) 연결을 구성할 수 있습니다.

Expand
표 8.2. Redfish driver_info 속성
속성설명

redfish_address

(필수) Redfish 컨트롤러의 IP 주소입니다. 주소에는 URL의 권한 부분이 포함되어야 합니다. 스키마를 포함하지 않으면 기본값은 https 입니다.

redfish_system_id

Redfish 드라이버가 상호 작용하는 시스템 리소스의 표준 경로입니다. 경로에는 루트 서비스, 버전, 시스템의 고유 경로가 redfish_address 속성과 동일한 기관 내에 포함되어야 합니다. 예: /redfish/v1/Systems/CX34R87 이 속성은 대상 BMC에서 두 개 이상의 리소스를 관리하는 경우에만 필요합니다.

redfish_username

Redfish 사용자 이름입니다.

redfish_password

Redfish 암호입니다.

redfish_verify_ca

부울 값, CA_BUNDLE 파일의 경로 또는 신뢰할 수 있는 CA의 인증서가 있는 디렉터리입니다. 이 값을 True 로 설정하면 드라이버는 호스트 인증서를 확인합니다. 이 값을 False 로 설정하면 드라이버는 SSL 인증서 확인을 무시합니다. 이 값을 경로로 설정하면 드라이버는 디렉터리에 지정된 인증서 또는 인증서 중 하나를 사용합니다. 기본값은 True 입니다.

redfish_auth_type

Redfish HTTP 클라이언트 인증 방법입니다. 다음 유효한 값 중 하나로 설정합니다.

  • Basic
  • 세션 (권장)
  • Auto (기본값) - 사용 가능한 경우 세션 인증 방법과 세션 방법을 사용할 수 없는 경우 기본 인증 방법을 사용합니다.

8.3. DRAC(Dell Remote Access Controller)

DRAC는 전원 관리 및 서버 모니터링을 포함하여 대역 외 원격 관리 기능을 제공하는 인터페이스입니다. 이 전원 관리 유형을 사용하려면 모든 Bare Metal Provisioning 서비스 노드에 공유 베어 메탈 프로비저닝 네트워크에 연결된 DRAC가 필요합니다. idrac 드라이버를 활성화하고 노드의 driver_info 에 다음 정보를 설정합니다.

  • drac_address - DRAC NIC의 IP 주소입니다.
  • drac_username - DRAC 사용자 이름입니다.
  • drac_password - DRAC 암호입니다.
  • 선택 사항: drac_port - WS-Management 엔드포인트에 사용할 포트입니다. 기본값은 443 입니다.
  • 선택 사항: drac_path - WS-Management 엔드포인트에 사용할 경로입니다. 기본 경로는 /wsman 입니다.
  • 선택사항: drac_protocol - WS-Management 엔드포인트에 사용할 프로토콜입니다. 유효한 값: http,https. 기본 프로토콜은 https 입니다.

8.4. iRMC(Integrated Remote Management Controller)

Fujitsu의 iRMC는 전원 관리 및 서버 모니터링을 포함하여 대역 외 원격 관리 기능을 제공하는 인터페이스입니다. 베어 메탈 프로비저닝 서비스 노드에서 이 전원 관리 유형을 사용하려면 노드에 공유 Bare Metal 네트워크에 연결된 iRMC 인터페이스가 필요합니다. irmc 드라이버를 활성화하고 노드의 driver_info 에 다음 정보를 설정합니다.

  • irmc_address - iRMC 인터페이스 NIC의 IP 주소입니다.
  • irmc_username - iRMC 사용자 이름입니다.
  • irmc_password - iRMC 암호입니다.

IPMI를 사용하여 센서 데이터를 가져오기 위해 부팅 모드 또는 SCCI를 설정하려면 다음 추가 단계를 완료해야 합니다.

  1. ironic.conf 파일에서 센서 방법을 활성화합니다.

    $ openstack-config --set /etc/ironic/ironic.conf \
       irmc sensor_method METHOD
    Copy to Clipboard Toggle word wrap

    METHODscci 또는 ipmitool 으로 바꿉니다.

  2. SCCI를 활성화한 경우 python-scciclient 패키지를 설치합니다.

    # dnf install python-scciclient
    Copy to Clipboard Toggle word wrap
  3. Bare Metal conductor 서비스를 다시 시작합니다.

    # systemctl restart openstack-ironic-conductor.service
    Copy to Clipboard Toggle word wrap
참고

iRMC 드라이버를 사용하려면 iRMC S4 이상이 필요합니다.

8.5. iLO(Integrated Lights-Out)

Hewlett-Packard의 iLO는 전원 관리 및 서버 모니터링을 포함하여 대역 외 원격 관리 기능을 제공하는 인터페이스입니다. 이 전원 관리 유형을 사용하려면 모든 베어 메탈 노드에 공유 베어 메탈 네트워크에 연결된 iLO 인터페이스가 필요합니다. ilo 드라이버를 활성화하고 노드의 driver_info 에 다음 정보를 설정합니다.

  • ilo_address - iLO 인터페이스 NIC의 IP 주소입니다.
  • ilo_username - iLO 사용자 이름입니다.
  • ilo_password - iLO 암호입니다.

python-proliantutils 패키지를 설치하고 Bare Metal conductor 서비스를 다시 시작해야 합니다.

# dnf install python-proliantutils
# systemctl restart openstack-ironic-conductor.service
Copy to Clipboard Toggle word wrap

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동