8.2. 베어 메탈 노드 하드웨어의 인벤토리 생성

director에는 프로필 태그, 벤치마킹 및 수동 루트 디스크 할당을 위해 RHOSP(Red Hat OpenStack Platform) 배포에 있는 노드의 하드웨어 인벤토리가 필요합니다.

다음 방법 중 하나를 사용하여 하드웨어 인벤토리를 director에 제공할 수 있습니다.

  • 자동: 각 노드에서 하드웨어 정보를 수집하는 director의 인트로스펙션 프로세스를 사용할 수 있습니다. 이 프로세스는 각 노드에서 인트로스펙션 에이전트를 시작합니다. 인트로스펙션 에이전트는 노드에서 하드웨어 데이터를 수집하고 그 데이터를 다시 director로 보냅니다. director는 하드웨어 데이터를 언더클라우드 노드의 실행 중인 Object Storage 서비스(swift)에 저장합니다.
  • Manual: 각 베어 메탈 머신의 기본 하드웨어 인벤토리를 수동으로 구성할 수 있습니다. 이 인벤토리는 Bare Metal Provisioning 서비스(ironic)에 저장되며 베어 메탈 머신을 관리하고 배포하는 데 사용됩니다.
참고

오버클라우드에 derive_params.yaml 을 사용하는 경우 director의 자동 인트로스펙션 프로세스를 사용해야 합니다. 이 경우 인트로스펙션 데이터가 있어야 합니다. derive_params.yaml 에 대한 자세한 내용은 워크플로우 및 파생 매개변수를 참조하십시오.

director 자동 인트로스펙션 프로세스는 베어 메탈 프로비저닝 서비스 포트를 설정하는 수동 방법에 비해 다음과 같은 이점을 제공합니다.

  • 인트로스펙션은 PXE 부팅에 사용할 포트를 포함하여 하드웨어 정보에 연결된 모든 포트를 기록합니다. ( node.yaml 에 아직 구성되지 않은 경우).
  • 인트로스펙션은 LLDP를 사용하여 속성을 검색할 수 있는 경우 각 포트의 local_link_connection 속성을 설정합니다. 수동 방법을 사용하는 경우 노드를 등록할 때 각 포트에 대해 local_link_connection 을 구성해야 합니다.
  • 인트로스펙션은 스파인-리프형 또는 DCN 아키텍처를 배포할 때 베어 메탈 프로비저닝 서비스 포트에 대한 physical_network 속성을 설정합니다.

8.2.1. director 인트로스펙션을 사용하여 베어 메탈 노드 하드웨어 정보 수집

물리적 머신을 베어 메탈 노드로 등록한 후 director 인트로스펙션을 사용하여 하드웨어 세부 정보를 자동으로 추가하고 각 이더넷 MAC 주소에 대한 포트를 생성할 수 있습니다.

작은 정보

자동 인트로스펙션 대신 director에 베어 메탈 노드의 하드웨어 정보를 수동으로 제공할 수 있습니다. 자세한 내용은 베어 메탈 노드 하드웨어 정보 수동 구성을 참조하십시오.

사전 요구 사항

  • 오버클라우드에 대한 베어 메탈 노드를 등록합니다.

절차

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

    $ source ~/stackrc
  3. pre-introspection 검증 그룹을 실행하여 인트로스펙션 요구 사항을 확인합니다.

    (undercloud)$ openstack tripleo validator run --group pre-introspection
  4. 검증 보고서 결과를 확인하십시오.
  5. 선택 사항: 특정 검증의 자세한 출력을 확인합니다.

    (undercloud)$ openstack tripleo validator show run --full <validation>
    • & lt;validation >를 검토하려는 보고서의 특정 검증 UUID로 바꿉니다.

      중요

      검증 결과가 FAILED이더라도 Red Hat OpenStack Platform 배포나 실행을 방해할 수 없습니다. 그러나 FAILED 검증 결과는 프로덕션 환경에서 잠재적으로 문제가 발행할 수 있다는 것을 의미합니다.

  6. 각 노드의 하드웨어 속성을 검사합니다. 모든 노드 또는 특정 노드의 하드웨어 속성을 검사할 수 있습니다.

    • 모든 노드의 하드웨어 속성을 검사합니다.

      (undercloud)$ openstack overcloud node introspect --all-manageable --provide
      • --all-manageable 옵션을 사용하여 관리 상태에 있는 노드만 인트로스펙션합니다. 이 예에서는 모든 노드가 관리 상태에 있습니다.
      • --provide 옵션은 인트로스펙션 이후 모든 노드를 available 상태로 리셋합니다.
    • 특정 노드의 하드웨어 속성을 검사합니다.

      (undercloud)$ openstack overcloud node introspect --provide <node1> [node2] [noden]
      • --provide 옵션을 사용하여 인트로스펙션 이후 지정된 모든 노드를 available 상태로 재설정합니다.
      • & lt;node1 > , [node 2] 및 모든 노드를 인트로스펙션하려는 각 노드의 UUID로 바꿉니다.
  7. 별도의 터미널 창에서 인트로스펙션 진행 상태 로그를 모니터링합니다.

    (undercloud)$ sudo tail -f /var/log/containers/ironic-inspector/ironic-inspector.log
    중요

    인트로스펙션 프로세스가 완료되었는지 확인합니다. 베어 메탈 노드의 경우 인트로스펙션은 일반적으로 15분 정도 걸립니다. 그러나 세부 검사 네트워크의 크기가 잘못 조정되면 훨씬 더 오래 걸릴 수 있으므로 인트로스펙션이 실패할 수 있습니다.

  8. 선택 사항: IPv6를 통해 베어 메탈 프로비저닝에 언더클라우드를 구성한 경우 LLDP가 Bare Metal Provisioning 서비스(ironic) 포트에 대해 local_link_connection 을 설정했는지 확인해야 합니다.

    (undercloud)$ openstack baremetal port list --long -c UUID -c "Node UUID" -c "Local Link Connection"
    • 베어 메탈 노드의 포트에 대해 로컬 링크 연결 필드가 비어 있는 경우 페이크 데이터를 수동으로 사용하여 local_link_connection 값을 채워야 합니다. 다음 예제에서는 페이크 스위치 ID를 52:54:00:00:00:00 으로 설정하고 페이크 포트 ID를 p0 으로 설정합니다.

      (undercloud)$ openstack baremetal port set <port_uuid> \
      --local-link-connection switch_id=52:54:00:00:00:00 \
      --local-link-connection port_id=p0
    • 로컬 링크 연결 필드에 페이크 데이터가 포함되어 있는지 확인합니다.

      (undercloud)$ openstack baremetal port list --long -c UUID -c "Node UUID" -c "Local Link Connection"

인트로스펙션이 완료되면 모든 노드가 available 상태로 변경됩니다.

8.2.2. 베어 메탈 노드 하드웨어 정보 수동 구성

물리적 머신을 베어 메탈 노드로 등록한 후 하드웨어 세부 정보를 수동으로 추가하고 각 이더넷 MAC 주소에 대해 베어 메탈 포트를 생성할 수 있습니다. 오버클라우드를 배포하기 전에 하나 이상의 베어 메탈 포트를 생성해야 합니다.

작은 정보

수동 인트로스펙션 대신 자동 director 인트로스펙션 프로세스를 사용하여 베어 메탈 노드의 하드웨어 정보를 수집할 수 있습니다. 자세한 내용은 director 인트로스펙션을 사용하여 베어 메탈 노드 하드웨어 정보를 수집합니다.

사전 요구 사항

  • 오버클라우드에 대한 베어 메탈 노드를 등록합니다.
  • node .json 에 등록된 노드의 각 포트에 대해 local_link_connection 을 구성했습니다. 자세한 내용은 오버클라우드 노드 등록을 참조하십시오.

절차

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

    $ source ~/stackrc
  3. 노드의 기능에 boot_option':' local 을 추가하여 등록된 각 노드의 로컬로 부팅 옵션을 설정합니다.

    (undercloud)$ openstack baremetal node set \
     --property capabilities="boot_option:local" <node>
    • & lt;node& gt;를 베어 메탈 노드의 ID로 바꿉니다.
  4. 배포 커널을 지정하고 노드 드라이버의 램디스크를 배포합니다.

    (undercloud)$ openstack baremetal node set <node> \
      --driver-info deploy_kernel=<kernel_file> \
      --driver-info deploy_ramdisk=<initramfs_file>
    • & 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. 노드의 하드웨어 사양과 일치하도록 노드 속성을 업데이트합니다.

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

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

      • 3 - 노드는 SHA1 암호화 제품군과 AES-128을 사용합니다.
      • 17 - 노드는 SHA256 암호화 제품군과 함께 AES-128을 사용합니다.
  7. 선택 사항: 여러 디스크가 있는 경우 루트 장치 힌트를 설정하여 배포에 사용할 디스크의 배포 램디스크를 알립니다.

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

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

      • 모델 (문자열): 장치 식별자.
      • 벤더 (문자열): 장치 벤더.
      • serial (문자열): 디스크 일련 번호.
      • hctl (문자열): host:Channel:Target: SCSI의 Lun.
      • 크기 (정수): 장치 크기(GB)입니다.
      • WWN ( 문자열): 고유한 스토리지 식별자.
      • wwn_with_extension (문자열): 공급업체 확장이 추가된 고유한 스토리지 식별자입니다.
      • wwn_vendor_extension (문자열): 고유한 벤더 스토리지 식별자.
      • rotational (부울): 회전 장치(HDD)의 경우 true이며 그렇지 않으면 false(SSD)입니다.
      • 이름 (문자열): 장치 이름(예: /dev/sdb1)은 영구 이름이 있는 장치에만 이 속성을 사용합니다.

        참고

        둘 이상의 속성을 지정하는 경우 장치가 해당 속성과 일치해야 합니다.If you specify more than one property, the device must match all of those properties.

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

    (undercloud)$ openstack baremetal port create --node <node_uuid> <mac_address>
    • & lt;node_uuid& gt;를 베어 메탈 노드의 고유 ID로 바꿉니다.
    • & lt;mac_address& gt;를 PXE 부팅에 사용되는 NIC의 MAC 주소로 바꿉니다.
  9. 노드의 구성을 검증합니다.

    (undercloud)$ 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   |                                             |
    +------------+--------+---------------------------------------------+

    검증 출력 결과는 다음과 같습니다.

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