7.2. 베어 메탈 오버클라우드 노드 프로비저닝


RHOSP(Red Hat OpenStack Platform) 환경을 구성하려면 다음 작업을 수행해야 합니다.

  1. 오버클라우드의 베어 메탈 노드를 등록합니다.
  2. director에 베어 메탈 노드의 하드웨어 인벤토리를 제공합니다.

    참고

    RHOSP는 네트워크 부트 로더 제약 조건으로 인해 Secure Boot의 인트로스펙션을 지원하지 않습니다. 오버클라우드 노드가 director, overcloud-hardened-uefi-full.qcow2 에 제공된 오버클라우드 이미지로 배포된 경우 오버클라우드를 배포한 후 Secure Boot를 활성화할 수 있습니다.

  3. 노드 정의 파일에서 베어 메탈 노드의 수량, 속성 및 네트워크 레이아웃을 구성합니다.
  4. 각 베어 메탈 노드에 노드와 일치하는 리소스 클래스를 지정된 역할에 할당합니다.

오버클라우드 노드를 지정하는 일치 프로필과 같은 추가 선택적 작업을 수행할 수도 있습니다.

7.2.1. 오버클라우드에 노드 등록

director에는 노드의 하드웨어 및 전원 관리 세부 정보를 지정하는 노드 정의 템플릿이 필요합니다. JSON 형식, nodes.json 또는 YAML 형식인 nodes.yaml 로 이 템플릿을 생성할 수 있습니다.

절차

  1. 노드를 나열하는 nodes.json 또는 nodes.yaml 이라는 템플릿을 생성합니다. 다음 JSON 및 YAML 템플릿 예제를 사용하여 노드 정의 템플릿을 구성하는 방법을 파악합니다.

    JSON 템플릿 예

    {
      "nodes": [{
        "name": "node01",
        "ports": [{
          "address": "aa:aa:aa:aa:aa:aa",
          "physical_network": "ctlplane",
          "local_link_connection": {
            "switch_id": "52:54:00:00:00:00",
            "port_id": "p0"
          }
        }],
        "cpu": "4",
        "memory": "6144",
        "disk": "40",
        "arch": "x86_64",
        "pm_type": "ipmi",
        "pm_user": "admin",
        "pm_password": "p@55w0rd!",
        "pm_addr": "192.168.24.205"
      },
      {
        "name": "node02",
        "ports": [{
          "address": "bb:bb:bb:bb:bb:bb",
          "physical_network": "ctlplane",
          "local_link_connection": {
            "switch_id": "52:54:00:00:00:00",
            "port_id": "p0"
          }
        }],
        "cpu": "4",
        "memory": "6144",
        "disk": "40",
        "arch": "x86_64",
        "pm_type": "ipmi",
        "pm_user": "admin",
        "pm_password": "p@55w0rd!",
        "pm_addr": "192.168.24.206"
      }]
    }
    Copy to Clipboard Toggle word wrap

    YAML 템플릿 예

    nodes:
      - name: "node01"
        ports:
          - address: "aa:aa:aa:aa:aa:aa"
            physical_network: ctlplane
            local_link_connection:
              switch_id: "52:54:00:00:00:00"
              port_id: p0
        cpu: 4
        memory: 6144
        disk: 40
        arch: "x86_64"
        pm_type: "ipmi"
        pm_user: "admin"
        pm_password: "p@55w0rd!"
        pm_addr: "192.168.24.205"
      - name: "node02"
        ports:
          - address: "bb:bb:bb:bb:bb:bb"
            physical_network: ctlplane
            local_link_connection:
              switch_id: "52:54:00:00:00:00"
              port_id: p0
        cpu: 4
        memory: 6144
        disk: 40
        arch: "x86_64"
        pm_type: "ipmi"
        pm_user: "admin"
        pm_password: "p@55w0rd!"
        pm_addr: "192.168.24.206"
    Copy to Clipboard Toggle word wrap

    이 템플릿에는 다음 속성이 포함되어 있습니다.

    name
    노드의 논리 이름입니다.
    포트

    특정 IPMI 장치에 액세스할 수 있는 포트입니다. 다음과 같은 선택적 포트 속성을 정의할 수 있습니다.

    • address: 노드에서 네트워크 인터페이스의 MAC 주소입니다. 각 시스템의 프로비저닝 NIC에는 MAC 주소만 사용합니다.
    • physical_network: 프로비저닝 NIC에 연결된 물리적 네트워크입니다.
    • local_link_connection: IPv6 프로비저닝을 사용하고 LLDP가 인트로스펙션 중에 로컬 링크 연결을 올바르게 채우지 않는 경우 local_link_connection 매개변수의 switch_idport_id 필드에 페이크 데이터를 포함해야 합니다. 페이크 데이터를 포함하는 방법에 대한 자세한 내용은 director 인트로스펙션을 사용하여 베어 메탈 노드 하드웨어 정보를 수집합니다.
    cpu
    (선택 사항) 노드에 있는 CPU 수입니다.
    memory
    (선택 사항) 메모리 크기(MB)입니다.
    disk
    (선택 사항) 하드 디스크의 크기(GB)입니다.
    arch
    (선택 사항) 시스템 아키텍처입니다.
    pm_type

    사용하려는 전원 관리 드라이버. 이 예에서는 IPMI 드라이버(ipmi)를 사용합니다.

    참고

    IPMI는 지원되는 기본 전원 관리 드라이버입니다. 지원되는 전원 관리 유형 및 옵션에 대한 자세한 내용은 전원 관리 드라이버를 참조하십시오. 이러한 전원 관리 드라이버가 예상대로 작동하지 않는 경우 IPMI를 전원 관리에 사용합니다.

    pm_user; pm_password
    IPMI 사용자 이름 및 암호입니다.
    pm_addr
    IPMI 장치의 IP 주소입니다.
  2. 템플릿 형식 및 구문을 확인합니다.

    $ source ~/stackrc
    (undercloud)$ openstack overcloud node import --validate-only ~/nodes.json
    Copy to Clipboard Toggle word wrap
  3. 템플릿 파일을 stack 사용자의 홈 디렉터리(/home/stack/nodes.json)에 저장합니다.
  4. 템플릿을 director로 가져와 템플릿의 각 노드를 director에 등록합니다.

    (undercloud)$ openstack overcloud node import ~/nodes.json
    Copy to Clipboard Toggle word wrap
  5. 노드 등록 및 구성이 완료될 때까지 기다립니다. 완료되면 노드가 director에 성공적으로 등록되어 있는지 확인합니다.

    (undercloud)$ openstack baremetal node list
    Copy to Clipboard Toggle word wrap

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

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

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

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

    참고

    RHOSP는 네트워크 부트 로더 제약 조건으로 인해 Secure Boot의 인트로스펙션을 지원하지 않습니다. 오버클라우드 노드가 director, overcloud-hardened-uefi-full.qcow2 에 제공된 오버클라우드 이미지로 배포된 경우 오버클라우드를 배포한 후 Secure Boot를 활성화할 수 있습니다.

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

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

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

작은 정보

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

참고

director 인트로스펙션은 Secure Boot를 지원하지 않습니다.

사전 요구 사항

  • 오버클라우드의 베어 메탈 노드가 등록되었습니다.

절차

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

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

    (undercloud)$ validation run --group pre-introspection \
     --inventory <inventory_file>
    Copy to Clipboard Toggle word wrap
    • < inventory_file >을 Ansible 인벤토리 파일의 이름 및 위치로 바꿉니다(예: ~/tripleo-deploy/undercloud/tripleo-ansible-inventory.yaml ).

      참고

      검증을 실행하면 출력의 Reasons 열이 79자로 제한됩니다. 검증 결과를 전체로 보려면 검증 로그 파일을 확인합니다.

  4. 검증 보고서 결과를 확인하십시오.
  5. 선택 사항: 특정 검증의 자세한 출력을 확인합니다.

    (undercloud)$ validation history get --full <UUID>
    Copy to Clipboard Toggle word wrap
    • & lt;UUID >를 검토할 보고서의 특정 검증 UUID로 바꿉니다.

      중요

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

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

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

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

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

    (undercloud)$ sudo tail -f /var/log/containers/ironic-inspector/ironic-inspector.log
    Copy to Clipboard Toggle word wrap
    중요

    인트로스펙션 프로세스가 완료되었는지 확인합니다. 베어 메탈 노드에는 일반적으로 인트로스펙션이 15분 정도 걸립니다. 그러나 인트로스펙션 네트워크의 크기를 잘못 조정하면 시간이 오래되어 인트로스펙션이 실패할 수 있습니다.

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

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

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

      $ openstack baremetal port list --long -c UUID -c "Node UUID" -c "Local Link Connection"
      Copy to Clipboard Toggle word wrap

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

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

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

작은 정보

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

사전 요구 사항

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

절차

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

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. 배포 커널을 지정하고 노드 드라이버의 램디스크를 배포합니다.

    (undercloud)$ 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 ).
  4. 노드의 하드웨어 사양과 일치하도록 노드 속성을 업데이트합니다.

    (undercloud)$ 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;를 아키텍처 유형으로 바꿉니다.
  5. 선택 사항: 각 노드의 IPMI 암호화 제품군을 지정합니다.

    (undercloud)$ 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. 선택 사항: 여러 디스크가 있는 경우 루트 장치 힌트를 설정하여 배포 램디스크에 사용할 디스크를 알립니다.

    (undercloud)$ 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)은 영구 이름이 있는 장치에만 이 속성을 사용합니다.

        참고

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

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

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

    (undercloud)$ openstack baremetal node validate <node>
    -----------------------------------------------------------------
    | Interface  | Result | Reason                                    |
    -----------------------------------------------------------------
    | bios       | True   |                                           |
    | boot       | True   |                                           |
    | console    | True   |                                           |
    | deploy     | False  | Node 229f0c3d-354a-4dab-9a88-ebd318249ad6 |
    |            |        | failed to validate deploy image info.     |
    |            |        | Some parameters were missing. Missing are:|
    |            |        | [instance_info.image_source]              |
    | inspect    | True   |                                           |
    | management | True   |                                           |
    | network    | True   |                                           |
    | power      | True   |                                           |
    | raid       | True   |                                           |
    | rescue     | True   |                                           |
    | storage    | True   |                                           |
    -----------------------------------------------------------------
    Copy to Clipboard Toggle word wrap

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

    • False: 인터페이스에 검증에 실패했습니다. 제공된 이유에서 instance_info.image_source 매개변수가 누락된 경우 프로비저닝 중에 채워지기 때문에 이 매개변수가 설정되지 않았기 때문일 수 있습니다. 전체 디스크 이미지를 사용하는 경우 검증을 통과하도록 image_source 만 설정해야 할 수 있습니다.
    • True: 인터페이스가 유효성 검사를 통과했습니다.
    • none: 드라이버에서 인터페이스가 지원되지 않습니다.

7.2.3. 오버클라우드의 베어 메탈 노드 프로비저닝

베어 메탈 노드를 프로비저닝하려면 노드 정의 파일에 배포하려는 베어 메탈 노드의 수량 및 속성을 YAML 형식으로 정의하고 오버클라우드 역할을 이러한 노드에 할당합니다. 노드의 네트워크 레이아웃도 정의합니다.

프로비저닝 프로세스에서 노드 정의 파일에서 heat 환경 파일을 생성합니다. 이 heat 환경 파일에는 노드 수, 예측 노드 배치, 사용자 정의 이미지, 사용자 정의 NIC를 포함하여 노드 정의 파일에 구성한 노드 사양이 포함되어 있습니다. 오버클라우드를 배포할 때 배포 명령에 이 파일을 추가하십시오. 프로비저닝 프로세스는 노드 정의 파일에서 각 노드 또는 역할에 대해 정의된 모든 네트워크의 포트 리소스도 프로비저닝합니다.

사전 요구 사항

절차

  1. stackrc 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  2. overcloud-baremetal-deploy.yaml 노드 정의 파일을 생성하고 프로비저닝할 각 역할에 대한 노드 수를 정의합니다. 예를 들어 세 개의 컨트롤러 노드와 컴퓨팅 노드를 프로비저닝하려면 overcloud-baremetal-deploy.yaml 파일에 다음 구성을 추가합니다.

    - name: Controller
      count: 3
    - name: Compute
      count: 3
    Copy to Clipboard Toggle word wrap
  3. 선택 사항: 예측 가능한 노드 배치를 구성합니다. 예를 들어 다음 구성을 사용하여 node00,node01node02 노드에 세 개의 컨트롤러 노드를 프로비저닝하고 node04,node05, node06 에 세 개의 컴퓨팅 노드를 프로비저닝하십시오.

    - name: Controller
      count: 3
      instances:
      - hostname: overcloud-controller-0
        name: node00
      - hostname: overcloud-controller-1
        name: node01
      - hostname: overcloud-controller-2
        name: node02
    - name: Compute
      count: 3
      instances:
      - hostname: overcloud-novacompute-0
        name: node04
      - hostname: overcloud-novacompute-1
        name: node05
      - hostname: overcloud-novacompute-2
        name: node06
    Copy to Clipboard Toggle word wrap
  4. 선택 사항: 기본적으로 프로비저닝 프로세스에서 overcloud-hardened-uefi-full.qcow2 이미지를 사용합니다. 이미지의 로컬 또는 원격 URL을 지정하여 특정 노드에서 사용되는 이미지 또는 역할의 모든 노드에 사용되는 이미지를 변경할 수 있습니다. 다음 예제에서는 이미지를 로컬 QCOW2 이미지로 변경합니다.

    특정 노드

    - name: Controller
      count: 3
      instances:
      - hostname: overcloud-controller-0
        name: node00
        image:
          href: file:///var/lib/ironic/images/overcloud-custom.qcow2
      - hostname: overcloud-controller-1
        name: node01
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
      - hostname: overcloud-controller-2
        name: node02
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
    Copy to Clipboard Toggle word wrap

    역할의 모든 노드

    - name: Controller
      count: 3
      defaults:
        image:
          href: file:///var/lib/ironic/images/overcloud-custom.qcow2
      instances:
      - hostname: overcloud-controller-0
        name: node00
      - hostname: overcloud-controller-1
        name: node01
      - hostname: overcloud-controller-2
        name: node02
    Copy to Clipboard Toggle word wrap

  5. 역할의 모든 노드의 네트워크 레이아웃 또는 특정 노드의 네트워크 레이아웃을 정의합니다.

    특정 노드

    다음 예제에서는 특정 컨트롤러 노드의 네트워크를 프로비저닝하고 내부 API 네트워크의 노드에 예측 가능한 IP를 할당합니다.

    - name: Controller
      count: 3
      defaults:
        network_config:
          template: /home/stack/templates/nic-config/myController.j2
          default_route_network:
          - external
      instances:
      - hostname: overcloud-controller-0
        name: node00
        networks:
        - network: ctlplane
          vif: true
        - network: external
          subnet: external_subnet
        - network: internal_api
          subnet: internal_api_subnet01
          fixed_ip: 172.21.11.100
        - network: storage
          subnet: storage_subnet01
        - network: storage_mgmt
          subnet: storage_mgmt_subnet01
        - network: tenant
          subnet: tenant_subnet01
    Copy to Clipboard Toggle word wrap

    역할의 모든 노드

    다음 예제에서는 Controller 및 Compute 역할의 네트워크를 프로비저닝합니다.

    - name: Controller
      count: 3
      defaults:
        networks:
        - network: ctlplane
          vif: true
        - network: external
          subnet: external_subnet
        - network: internal_api
          subnet: internal_api_subnet01
        - network: storage
          subnet: storage_subnet01
        - network: storage_mgmt
          subnet: storage_mgmt_subnet01
        - network: tenant
          subnet: tenant_subnet01
        network_config:
          template: /home/stack/templates/nic-config/myController.j2 
    1
    
          default_route_network:
          - external
    - name: Compute
      count: 3
      defaults:
        networks:
        - network: ctlplane
          vif: true
        - network: internal_api
          subnet: internal_api_subnet02
        - network: tenant
          subnet: tenant_subnet02
        - network: storage
          subnet: storage_subnet02
        network_config:
          template: /home/stack/templates/nic-config/myCompute.j2
    Copy to Clipboard Toggle word wrap
    1
    /usr/share/ansible/roles/tripleo_network_config/templates 에 있는 예제 NIC 템플릿을 사용하여 로컬 환경 파일 디렉터리에 고유한 NIC 템플릿을 생성할 수 있습니다.
  6. 선택 사항: 기본 디스크 파티션 크기가 요구 사항을 충족하지 않는 경우 디스크 파티션 크기 할당을 구성합니다. 예를 들어 /var/log 파티션의 기본 파티션 크기는 10GB입니다. 로그 스토리지 및 보존 요구 사항을 고려하여 10GB가 요구 사항을 충족하는지 확인합니다. 로그 스토리지에 할당된 디스크 크기를 늘려야 하는 경우 노드 정의 파일에 다음 구성을 추가하여 기본값을 재정의합니다.

    - name: Compute
      count: 3
      defaults:
        ...
      ansible_playbooks:
        - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
          extra_vars:
            role_growvols_args:
              default:
                /=8GB
                /tmp=1GB
                /var/log=<log_size>GB
                /var/log/audit=2GB
                /home=1GB
                /var=100%
    Copy to Clipboard Toggle word wrap
    • & lt;log_size >를 로그 파일에 할당할 디스크 크기로 바꿉니다.
  7. Object Storage 서비스(swift)와 전체 디스크 오버클라우드 이미지 overcloud-hardened-uefi-full 을 사용하는 경우 디스크 크기 및 /var/srv 에 대한 스토리지 요구 사항에 따라 /srv 파티션의 크기를 구성해야 합니다. 자세한 내용은 Object Storage 서비스의 전체 디스크 파티션 구성을 참조하십시오.
  8. 선택 사항: 사용자 지정 리소스 클래스 또는 프로필 기능을 사용하여 특정 역할에 맞게 오버클라우드 노드를 설계합니다. 자세한 내용은 리소스 클래스를 일치시키프로필과 일치하여 역할에 대한 오버클라우드 노드 설계를 참조하십시오.
  9. 노드에 할당할 다른 속성을 정의합니다. 노드 정의 파일에서 노드 속성을 구성하는 데 사용할 수 있는 속성에 대한 자세한 내용은 베어 메탈 노드 프로비저닝 속성을 참조하십시오. 노드 정의 파일의 예는 노드 정의 파일 예제 를 참조하십시오.
  10. 오버클라우드 노드를 프로비저닝합니다.

    (undercloud)$ openstack overcloud node provision \
     [--templates <templates_directory> \]
     --stack <stack> \
     --network-config \
     --output <deployment_file> \
     /home/stack/templates/<node_definition_file>
    Copy to Clipboard Toggle word wrap
    • 선택 사항: /usr/share/openstack-tripleo-heat-templates 에 있는 기본 템플릿 대신 자체 템플릿을 사용하도록 --templates 옵션을 추가합니다. & lt;templates_directory >를 템플릿이 포함된 디렉터리의 경로로 바꿉니다.
    • & lt;stack >을 베어 메탈 노드가 프로비저닝되는 스택 이름으로 바꿉니다. 지정하지 않으면 기본값은 overcloud 입니다.
    • cli-overcloud-node-network-config.yaml Ansible 플레이북에 네트워크 정의를 제공하는 --network-config 선택적 인수를 포함합니다. cli-overcloud-node-network-config.yaml 플레이북은 os-net-config 도구를 사용하여 배포된 노드에 네트워크 구성을 적용합니다. 네트워크 정의를 제공하는 데 --network-config 를 사용하지 않는 경우 network-environment.yaml 파일에서 {{role.name}}NetworkConfigTemplate 매개변수를 구성해야 합니다. 그렇지 않으면 기본 네트워크 정의가 사용됩니다.
    • < deployment_file >을 배포 명령에 포함할 heat 환경 파일의 이름으로 교체합니다(예: /home/stack/templates/overcloud-baremetal-deployed.yaml ).
    • & lt;node_definition_file >을 노드 정의 파일의 이름으로 바꿉니다(예: overcloud-baremetal-deploy.yaml ).
  11. 별도의 터미널에서 프로비저닝 진행 상황을 모니터링합니다.

    (undercloud)$ watch openstack baremetal node list
    Copy to Clipboard Toggle word wrap
    • 프로비저닝이 성공하면 노드 상태가 available 에서 active 로 변경됩니다.
    • 노드 하드웨어 또는 네트워크 구성 오류로 인해 노드 프로비저닝이 실패하면 프로비저닝 단계를 다시 실행하기 전에 실패한 노드를 제거할 수 있습니다. 자세한 내용은 노드 정의 파일에서 실패한 베어 메탈 노드 제거를 참조하십시오.
  12. metalsmith 툴을 사용하여 할당 및 포트를 포함하여 노드의 통합 보기를 가져옵니다.

    (undercloud)$ metalsmith list
    Copy to Clipboard Toggle word wrap
  13. 노드의 호스트 이름을 확인합니다.

    (undercloud)$ openstack baremetal allocation list
    Copy to Clipboard Toggle word wrap

7.2.4. 베어 메탈 노드 프로비저닝 속성

다음 표를 사용하여 노드 특성 구성에 사용할 수 있는 속성과 openstack baremetal node provision 명령을 사용하여 베어 메탈 노드를 프로비저닝할 때 사용할 수 있는 값을 파악합니다.

  • 역할 속성: 역할 속성을 사용하여 각 역할을 정의합니다.
  • 각 역할의 기본 및 인스턴스 속성: default 또는 인스턴스 속성을 사용하여 사용 가능한 노드 풀에서 노드를 할당하는 선택 기준을 지정하고 베어 메탈 노드에서 속성 및 네트워크 구성 속성을 설정합니다.

베어 메탈 정의 파일 생성에 대한 자세한 내용은 오버클라우드의 베어 메탈 노드 프로비저닝을 참조하십시오.

Expand
표 7.1. 역할 속성
속성현재의

name

(필수) 역할 이름입니다.

count

이 역할에 사용하도록 프로비저닝할 노드 수입니다. 기본값은 1 입니다.

defaults

instances 항목 속성의 기본값 사전. instances 항목 속성을 통해 defaults 매개변수에서 지정하는 기본값을 덮어씁니다.

instances

특정 노드의 속성을 지정하는 데 사용할 수 있는 값의 사전입니다. instances 매개변수에서 지원되는 속성에 대한 자세한 내용은 기본값인스턴스 속성을 참조하십시오. 정의된 노드 수는 count 매개변수 값보다 크지 않아야 합니다.

hostname_format

이 역할의 기본 호스트 이름 형식을 덮어씁니다. 기본 생성된 호스트 이름은 오버클라우드 스택 이름, 역할 및 증분 인덱스에서 파생되며 모두 소문자입니다. 예를 들어 제어기 역할의 기본 형식은 %stackname%-controller-%index%입니다. 컴퓨팅 노드만 역할 이름 규칙을 따르지 않습니다. 컴퓨팅 기본 형식은 %stackname%-novacompute-%index% 입니다.

ansible_playbooks

Ansible 플레이북 및 Ansible 변수의 값 사전입니다. 플레이북은 노드 네트워크 구성 전에 노드 프로비저닝 후 역할 인스턴스에 대해 실행됩니다. Ansible 플레이북 지정에 대한 자세한 내용은 ansible_playbooks 속성을 참조하십시오.

Expand
표 7.2. 기본값 및 인스턴스 속성
속성현재의

hostname

(인스턴스만 해당 ) 인스턴스 속성이 적용되는 노드의 호스트 이름을 지정합니다. 호스트 이름은 hostname_format 속성에서 파생됩니다. 사용자 지정 호스트 이름을 사용할 수 있습니다.

name

(인스턴스만 해당 ) 프로비저닝할 노드의 이름입니다.

image

노드에 프로비저닝할 이미지의 세부 정보입니다. 지원되는 이미지 속성에 대한 자세한 내용은 이미지 속성을 참조하십시오.

capabilities

노드 기능과 일치시킬 선택 기준입니다.

config_drive

노드에 전달된 config-drive에 data 및 first-boot 명령을 추가합니다. 자세한 내용은 config_drive 속성을 참조하십시오.

참고

처음 부팅 시 수행해야 하는 구성에만 config_drive 를 사용하십시오. 기타 모든 사용자 지정 구성에 대해 Ansible 플레이북을 생성하고 ansible_playbooks 속성을 사용하여 노드 프로비저닝 후 역할 인스턴스에 대해 플레이북을 실행합니다.

관리됨

metalsmith로 인스턴스를 프로비저닝하려면 true (기본값)로 설정합니다. 인스턴스를 사전 프로비저닝된 것으로 처리하려면 false 로 설정합니다.

네트워크

인스턴스 네트워크를 나타내는 사전 목록입니다. 네트워크 특성 구성에 대한 자세한 내용은 네트워크 속성을 참조하십시오.

network_config

역할 또는 인스턴스의 네트워크 구성 파일에 연결합니다. 네트워크 구성 파일에 대한 링크를 구성하는 방법에 대한 자세한 내용은 network_config 속성을 참조하십시오.

profile

일치하는 프로필을 위한 선택 기준입니다. 자세한 내용은 프로필과 일치하여 역할에 대한 오버클라우드 노드 지정을 참조하십시오.

provisioned

노드를 프로비저닝하려면 true (기본값)로 설정합니다. 노드를 프로비저닝 해제하려면 false 로 설정합니다. 자세한 내용은 베어 메탈 노드 축소 를 참조하십시오.

resource_class

노드의 리소스 클래스를 조합할 때의 선택 기준입니다. 기본값은 baremetal입니다. 자세한 내용은 리소스 클래스를 일치시켜 역할에 대한 오버클라우드 노드 지정을 참조하십시오.

root_size_gb

루트 파티션의 크기(GiB)입니다. 기본값은 49 입니다.

swap_size_mb

스왑 파티션의 크기(MiB)입니다.

traits

노드 특성을 조합할 때 선택 기준인 특성 목록입니다.

Expand
표 7.3. 이미지 속성
속성현재의

href

노드에 프로비저닝할 루트 파티션 또는 전체 디스크 이미지의 URL을 지정합니다. 지원되는 URL 스키마: file://, http://, https://.

참고

file:// URL 스키마를 사용하여 이미지의 로컬 URL을 지정하는 경우 /var/lib/ironic/images/ 디렉터리를 가리켜야 합니다. /var/lib/ironic/images 는 언더클라우드에서 이미지 제공을 위해 명시적으로 ironic-conductor 컨테이너로 바인딩 마운트되므로 이미지 경로가 /var/lib/ironic/images를 가리켜야 합니다.

checksum

루트 파티션 또는 전체 디스크 이미지의 MD5 체크섬을 지정합니다. href 가 URL인 경우 필요합니다.

kernel

커널 이미지의 이미지 참조 또는 URL을 지정합니다. 파티션 이미지에만 이 속성을 사용합니다.

ramdisk

램디스크 이미지의 이미지 참조 또는 URL을 지정합니다. 파티션 이미지에만 이 속성을 사용합니다.

Expand
표 7.4. 네트워크 속성
속성현재의

fixed_ip

이 네트워크에 사용할 특정 IP 주소입니다.

network

네트워크 포트를 생성할 네트워크입니다.

서브넷

네트워크 포트를 생성할 서브넷입니다.

port

새 포트를 생성하는 대신 사용할 기존 포트입니다.

vif

provisioning 네트워크(ctlplane)에서 true 로 설정하여 네트워크를 가상 인터페이스(VIF)로 연결합니다. VIF 연결 없이 Networking 서비스 API 리소스를 생성하려면 false 로 설정합니다.

Expand
표 7.5. network_config 속성
속성현재의

template

노드 네트워크 구성을 적용할 때 사용할 Ansible J2 NIC 구성 템플릿을 지정합니다. NIC 템플릿 구성에 대한 자세한 내용은 오버클라우드 네트워킹 구성을 참조하십시오.

physical_bridge_name

외부 네트워크에 액세스하기 위해 생성할 OVS 브리지의 이름입니다. 기본 브리지 이름은 br-ex 입니다.

public_interface_name

공용 브리지에 추가할 인터페이스의 이름을 지정합니다. 기본 인터페이스는 nic1 입니다.

network_config_update

업데이트 시 네트워크 구성 변경 사항을 적용하려면 true 로 설정합니다. 기본적으로 비활성되어 있습니다.

net_config_data_lookup

각 노드 또는 노드 그룹에 대해 NIC 매핑 구성 os-net-config 를 지정합니다.

default_route_network

기본 경로에 사용할 네트워크입니다. 기본 경로 네트워크는 ctlplane입니다.

networks_skip_config

노드 네트워킹을 구성할 때 건너뛸 네트워크 목록입니다.

dns_search_domains

우선 순위에 따라 resolv.conf 에 추가할 DNS 검색 도메인 목록입니다.

bond_interface_ovs_options

본딩 인터페이스에 사용할 OVS 옵션 또는 본딩 옵션입니다(예: OVS 본딩의 경우 lacp=activebond_mode=balance-slb, Linux 본딩의 경우 mode=4 ).

num_dpdk_interface_rx_queues

DPDK 본딩 또는 DPDK 포트에 필요한 RX 대기열 수를 지정합니다.

Expand
표 7.6. config_drive 속성
속성현재의

cloud_config

노드 부팅 시 작업이 실행될 수 있는 cloud-init 클라우드 구성 데이터의 사전입니다. 예를 들어 첫 번째 부팅 시 resolve.conf 파일에 사용자 정의 이름 서버를 작성하려면 config_drive 속성에 다음 cloud_config 를 추가합니다.

config_drive:
  cloud_config:
    manage_resolv_conf: true
    resolv_conf:
      nameservers:
        - 8.8.8.8
        - 8.8.4.4
      searchdomains:
        - abc.example.com
        - xyz.example.com
      domain: example.com
      sortlist:
        - 10.0.0.1/255
        - 10.0.0.2
      options:
        rotate: true
        timeout: 1
Copy to Clipboard Toggle word wrap

meta_data

config-drive cloud-init 메타데이터와 함께 포함할 추가 메타데이터입니다. 역할 이름에 생성된 메타데이터 세트( public_keys,uuid,name,hostname, instance-type )에 메타데이터가 추가됩니다. cloud-init 를 사용하면 이 메타데이터를 인스턴스 데이터로 사용할 수 있습니다.

Expand
표 7.7. ansible_playbooks 속성
속성현재의

playbook

역할 정의 YAML 파일을 기준으로 Ansible 플레이북의 경로입니다.

extra_vars

플레이북을 실행할 때 설정할 추가 Ansible 변수입니다. 다음 구문을 사용하여 추가 변수를 지정합니다.

ansible_playbooks:
  - playbook: a_playbook.yaml
    extra_vars:
      param1: value1
      param2: value2
Copy to Clipboard Toggle word wrap

예를 들어 전체 디스크 오버클라우드 이미지로 배포된 노드의 LVM 볼륨을 확장하려면 overcloud-hardened-uefi-full.qcow2.qcow2를 플레이북 속성에 추가합니다.

ansible_playbooks:
  - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
    extra_vars:
      role_growvols_args:
        default:
          /=8GB
          /tmp=1GB
          /var/log=10GB
          /var/log/audit=2GB
          /home=1GB
          /var=100%
        Controller:
          /=8GB
          /tmp=1GB
          /var/log=10GB
          /var/log/audit=2GB
          /home=1GB
          /srv=50GB
          /var=100%
Copy to Clipboard Toggle word wrap

7.2.5. 노드 정의 파일에서 실패한 베어 메탈 노드 제거

노드 하드웨어 또는 네트워크 구성 오류로 인해 노드 프로비저닝이 실패하면 프로비저닝 단계를 다시 실행하기 전에 실패한 노드를 제거할 수 있습니다. 프로비저닝 중에 실패한 베어 메탈 노드를 제거하려면 노드 정의 파일의 스택에서 삭제할 노드를 태그하고 작동 중인 베어 메탈 노드를 프로비저닝하기 전에 노드를 프로비저닝 해제합니다.

사전 요구 사항

  • 언더클라우드가 설치되어 있어야 합니다. 자세한 내용은 director 설치를 참조하십시오.
  • 노드 하드웨어 장애로 인해 베어 메탈 노드 프로비저닝에 실패했습니다.

프로세스

  1. stackrc 언더클라우드 인증 정보 파일을 소싱합니다.

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  2. overcloud-baremetal-deploy.yaml 노드 정의 파일을 엽니다.
  3. 노드가 할당된 역할의 count 매개변수를 줄입니다. 예를 들어 다음 구성에서는 ObjectStorage 전용 노드 수가 3으로 줄임을 반영하도록 ObjectStorage 역할의 count 매개변수를 업데이트합니다.

    - name: ObjectStorage
      count: 3
    Copy to Clipboard Toggle word wrap
  4. 스택에서 삭제할 노드의 호스트 이름과 이름을 정의합니다(역할의 instances 속성에 아직 정의되지 않은 경우).
  5. 삭제하려는 노드에 provisioned: false 속성을 추가합니다. 예를 들어 스택에서 overcloud-objectstorage-1 노드를 삭제하려면 overcloud-baremetal-deploy.yaml 파일에 다음 스니펫을 포함합니다.

    - name: ObjectStorage
      count: 3
      instances:
      - hostname: overcloud-objectstorage-0
        name: node00
      - hostname: overcloud-objectstorage-1
        name: node01
        # Removed from cluster due to disk failure
        provisioned: false
      - hostname: overcloud-objectstorage-2
        name: node02
      - hostname: overcloud-objectstorage-3
        name: node03
    Copy to Clipboard Toggle word wrap
  6. 베어 메탈 노드의 프로비저닝을 해제합니다.

    (undercloud)$ openstack overcloud node unprovision \
     --stack <stack> \
     --network-ports \
     /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
    • & lt;stack >을 베어 메탈 노드가 프로비저닝되는 스택 이름으로 바꿉니다. 지정하지 않으면 기본값은 overcloud 입니다.
  7. 배포 명령에 포함할 업데이트된 heat 환경 파일을 생성하도록 오버클라우드 노드를 프로비저닝합니다.

    (undercloud)$ openstack overcloud node provision \
    --stack <stack> \
    --output <deployment_file> \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
    • < deployment_file >을 배포 명령에 포함할 heat 환경 파일의 이름으로 교체합니다(예: /home/stack/templates/overcloud-baremetal-deployed.yaml ).

사용자 정의 리소스 클래스를 사용하여 특정 역할에 대해 오버클라우드 노드를 지정할 수 있습니다. 리소스 클래스는 노드와 배포 역할과 일치합니다. 기본적으로 모든 노드에 baremetal 의 리소스 클래스가 할당됩니다.

참고

노드가 프로비저닝된 후 노드에 할당된 리소스 클래스를 변경하려면 축소 절차를 사용하여 노드를 프로비저닝 해제한 다음 확장 절차를 사용하여 새 리소스 클래스 할당으로 노드를 다시 프로비저닝해야 합니다. 자세한 내용은 오버클라우드 노드 스케일링을 참조하십시오.

사전 요구 사항

  • 오버클라우드에 대한 베어 메탈 노드의 초기 프로비저닝을 수행하고 있습니다.

프로세스

  1. 사용자 정의 리소스 클래스를 사용하여 역할에 지정할 각 베어 메탈 노드를 할당합니다.

    (undercloud)$ openstack baremetal node set \
     --resource-class <resource_class> <node>
    Copy to Clipboard Toggle word wrap
    • & lt;resource_class >를 리소스 클래스의 이름으로 바꿉니다(예: baremetal.CPU-PINNING ).
    • & lt;node& gt;를 베어 메탈 노드의 ID로 바꿉니다.
  2. 아직 정의되지 않은 경우 overcloud-baremetal-deploy.yaml 파일에 역할을 추가합니다.
  3. 역할의 노드에 할당할 리소스 클래스를 지정합니다.

    - name: <role>
      count: 1
      defaults:
        resource_class: <resource_class>
    Copy to Clipboard Toggle word wrap
    • & lt;role >을 역할 이름으로 바꿉니다.
    • & lt;resource_class >를 1단계에서 리소스 클래스에 지정한 이름으로 바꿉니다.
  4. 프로비저닝 프로세스를 완료하기 위해 오버클라우드의 프로비저닝 베어 메탈 노드로 돌아갑니다.

7.2.7. 프로필과 일치하여 역할에 대해 오버클라우드 노드 지정

프로필 기능을 사용하여 특정 역할에 대해 오버클라우드 노드를 지정할 수 있습니다. 프로필은 노드 기능과 배포 역할과 일치합니다.

작은 정보

인트로스펙션 규칙을 사용하여 자동 프로필 할당을 수행할 수도 있습니다. 자세한 내용은 자동 프로필 태그 구성 을 참조하십시오.

참고

노드가 프로비저닝된 후 노드에 할당된 프로필을 변경하려면 축소 절차를 사용하여 노드를 프로비저닝 해제한 다음 확장 절차를 사용하여 새 프로필 할당으로 노드를 다시 프로비저닝해야 합니다. 자세한 내용은 오버클라우드 노드 스케일링을 참조하십시오.

사전 요구 사항

  • 오버클라우드에 대한 베어 메탈 노드의 초기 프로비저닝을 수행하고 있습니다.

프로세스

  1. 새 노드 기능을 추가할 때마다 기존 노드 기능을 덮어씁니다. 따라서 다시 설정하려면 등록된 각 노드의 기존 기능을 검색해야 합니다.

    $ openstack baremetal node show <node> \
     -f json -c properties | jq -r .properties.capabilities
    Copy to Clipboard Toggle word wrap
  2. 노드의 기존 기능에 profile :<profile>을 추가하여 역할 프로필에 일치시킬 각 베어 메탈 노드에 프로필 기능을 할당합니다.

    (undercloud)$ openstack baremetal node set  <node> \
     --property capabilities="profile:<profile>,<capability_1>,...,<capability_n>"
    Copy to Clipboard Toggle word wrap
    • & lt;node& gt;를 베어 메탈 노드의 이름 또는 ID로 바꿉니다.
    • & lt;profile >을 역할 프로필과 일치하는 프로필 이름으로 바꿉니다.
    • & lt;capability_1 > 및 < capability_n >까지 모든 기능을 1단계에서 검색한 각 기능으로 바꿉니다.
  3. 아직 정의되지 않은 경우 overcloud-baremetal-deploy.yaml 파일에 역할을 추가합니다.
  4. 역할의 노드에 할당할 프로필을 정의합니다.

    - name: <role>
      count: 1
      defaults:
        profile: <profile>
    Copy to Clipboard Toggle word wrap
    • & lt;role >을 역할 이름으로 바꿉니다.
    • & lt;profile >을 노드 기능과 일치하는 프로필 이름으로 바꿉니다.
  5. 프로비저닝 프로세스를 완료하기 위해 오버클라우드의 프로비저닝 베어 메탈 노드로 돌아갑니다.

7.2.8. Object Storage 서비스에 대한 전체 디스크 파티션 구성

전체 디스크 이미지 overcloud-hardened-uefi-full 은 별도의 볼륨으로 분할됩니다. 기본적으로 전체 디스크 오버클라우드 이미지로 배포된 노드의 /var 파티션은 디스크가 완전히 할당될 때까지 자동으로 증가합니다. Object Storage 서비스(swift)를 사용하는 경우 디스크 크기 및 /var/srv 에 대한 스토리지 요구 사항에 따라 /srv 파티션의 크기를 구성합니다.

사전 요구 사항

  • 오버클라우드에 대한 베어 메탈 노드의 초기 프로비저닝을 수행하고 있습니다.

프로세스

  1. overcloud-baremetal-deploy.yaml 노드 정의 파일의 Ansible 플레이북 정의에 role_growvols_args 를 추가 Ansible 변수로 사용하여 /srv/var 파티션을 구성합니다. /srv 또는 /var 을 절대 크기(GB)로 설정하고 나머지 디스크 공간을 사용하도록 나머지 디스크 공간을 100%로 설정합니다.

    • 다음 예제 구성은 /srv 를 컨트롤러 노드에 배포된 Object Storage 서비스의 절대 크기로 설정하고 나머지 디스크 공간을 사용하기 위해 /var 를 100%로 설정합니다.

      ansible_playbooks:
        - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
          extra_vars:
            role_growvols_args:
              default:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /var=100%
              Controller:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /srv=50GB
                /var=100%
      Copy to Clipboard Toggle word wrap
    • 다음 예제 구성은 /var 를 절대 크기로 설정하고 /srv 를 100%로 설정하여 Object Storage 서비스에 대한 Object Storage 노드의 나머지 디스크 공간을 사용합니다.

      ansible_playbooks:
        - playbook: /usr/share/ansible/tripleo-playbooks/cli-overcloud-node-growvols.yaml
          extra_vars:
            role_growvols_args:
              default:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /var=100%
             ObjectStorage:
                /=8GB
                /tmp=1GB
                /var/log=10GB
                /var/log/audit=2GB
                /home=1GB
                /var=10GB
                /srv=100%
      Copy to Clipboard Toggle word wrap
  2. 프로비저닝 프로세스를 완료하기 위해 오버클라우드의 프로비저닝 베어 메탈 노드로 돌아갑니다.

7.2.9. 노드 정의 파일의 예

다음 예제 노드 정의 파일은 컨트롤러 노드 3개와 컴퓨팅 노드 3개, 사용하는 기본 네트워크에 대한 예측 노드 배치를 정의합니다. 이 예제에서는 리소스 클래스 또는 노드 기능 프로파일에 따라 지정된 노드가 있는 사용자 지정 역할을 정의하는 방법도 보여줍니다.

- name: Controller
  count: 3
  defaults:
    image:
      href: file:///var/lib/ironic/images/overcloud-custom.qcow2
    networks:
    - network: ctlplane
      vif: true
    - network: external
      subnet: external_subnet
    - network: internal_api
      subnet: internal_api_subnet01
    - network: storage
      subnet: storage_subnet01
    - network: storagemgmt
      subnet: storage_mgmt_subnet01
    - network: tenant
      subnet: tenant_subnet01
    network_config:
        template: /home/stack/templates/nic-config/myController.j2
        default_route_network:
        - external
    profile: nodeCapability
  instances:
  - hostname: overcloud-controller-0
    name: node00
  - hostname: overcloud-controller-1
    name: node01
  - hostname: overcloud-controller-2
    name: node02
- name: Compute
  count: 3
  defaults:
    networks:
    - network: ctlplane
      vif: true
    - network: internal_api
      subnet: internal_api_subnet02
    - network: tenant
      subnet: tenant_subnet02
    - network: storage
      subnet: storage_subnet02
    network_config:
      template: /home/stack/templates/nic-config/myCompute.j2
    resource_class: baremetal.COMPUTE
  instances:
  - hostname: overcloud-novacompute-0
    name: node04
  - hostname: overcloud-novacompute-1
    name: node05
  - hostname: overcloud-novacompute-2
    name: node06
Copy to Clipboard Toggle word wrap

7.2.10. 가상 미디어 부팅 활성화

중요

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

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

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

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

사전 요구 사항

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

프로세스

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

    $ source ~/stackrc
    Copy to Clipboard Toggle word wrap
  3. Bare Metal Provisioning 서비스 부팅 인터페이스를 redfish-virtual-media 로 설정합니다.

    (undercloud)$ openstack baremetal node set --boot-interface redfish-virtual-media <node>
    Copy to Clipboard Toggle word wrap
    • & lt;node >를 노드 이름으로 바꿉니다.
  4. ESP 이미지를 정의합니다.

    (undercloud)$ openstack baremetal node set --driver-info bootloader=<esp> <node>
    Copy to Clipboard Toggle word wrap
    • & lt;esp >를 Image 서비스(glance) 이미지 UUID 또는 ESP 이미지의 URL로 바꿉니다.
    • & lt;node >를 노드 이름으로 바꿉니다.
  5. 베어 메탈 노드에 포트를 생성하고 베어 메탈 노드에 있는 NIC의 MAC 주소와 포트를 연결합니다.

    (undercloud)$ openstack baremetal port create --pxe-enabled True \
     --node <node_uuid> <mac_address>
    Copy to Clipboard Toggle word wrap
    • & lt;node_uuid& gt;를 베어 메탈 노드의 UUID로 바꿉니다.
    • & lt;mac_address >를 베어 메탈 노드에 있는 NIC의 MAC 주소로 바꿉니다.

7.2.11. 다중 디스크 Ceph 클러스터의 루트 디스크 정의

Ceph Storage 노드는 일반적으로 여러 디스크를 사용합니다. director는 여러 디스크 구성에서 root 디스크를 식별해야 합니다. 오버클라우드 이미지는 프로비저닝 프로세스 중에 root 디스크에 작성됩니다.

하드웨어 속성은 루트 디스크를 식별하는 데 사용됩니다. 루트 디스크를 식별하는 데 사용할 수 있는 속성에 대한 자세한 내용은 루트 디스크 를 식별하는 속성을 참조하십시오.

프로세스

  1. 각 노드의 하드웨어 인트로스펙션에서 디스크 정보를 확인합니다.

    (undercloud)$ openstack baremetal introspection data save <node_uuid> --file <output_file_name>
    Copy to Clipboard Toggle word wrap
    • & lt;node_uuid& gt;를 노드의 UUID로 바꿉니다.
    • & lt;output_file_name >을 노드 인트로스펙션 출력이 포함된 파일 이름으로 바꿉니다.

      예를 들어 노드 1개의 데이터에서 디스크 3개가 표시될 수 있습니다.

      [
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sda",
          "wwn_vendor_extension": "0x1ea4dcc412a9632b",
          "wwn_with_extension": "0x61866da04f3807001ea4dcc412a9632b",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f380700",
          "serial": "61866da04f3807001ea4dcc412a9632b"
        }
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sdb",
          "wwn_vendor_extension": "0x1ea4e13c12e36ad6",
          "wwn_with_extension": "0x61866da04f380d001ea4e13c12e36ad6",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f380d00",
          "serial": "61866da04f380d001ea4e13c12e36ad6"
        }
        {
          "size": 299439751168,
          "rotational": true,
          "vendor": "DELL",
          "name": "/dev/sdc",
          "wwn_vendor_extension": "0x1ea4e31e121cfb45",
          "wwn_with_extension": "0x61866da04f37fc001ea4e31e121cfb45",
          "model": "PERC H330 Mini",
          "wwn": "0x61866da04f37fc00",
          "serial": "61866da04f37fc001ea4e31e121cfb45"
        }
      ]
      Copy to Clipboard Toggle word wrap
  2. 고유한 하드웨어 속성을 사용하여 노드의 root 디스크를 설정합니다.

    (undercloud)$ openstack baremetal node set --property root_device='{<property_value>}' <node-uuid>

    • & lt;property_value >를 루트 디스크를 설정하는 데 사용할 인트로스펙션 데이터의 고유한 하드웨어 속성 값으로 바꿉니다.
    • & lt;node_uuid& gt;를 노드의 UUID로 바꿉니다.

      참고

      고유한 하드웨어 속성은 디스크를 고유하게 식별하는 하드웨어 인트로스펙션 단계의 모든 속성입니다. 예를 들어 다음 명령은 디스크 일련 번호를 사용하여 root 디스크를 설정합니다.

      (undercloud)$ openstack baremetal node set --property root_device='{"serial": "61866da04f380d001ea4e13c12e36ad6"}' 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0

  3. 각 노드의 BIOS를 먼저 네트워크에서 부팅한 다음 root 디스크로 구성하십시오.

director가 root 디스크로 사용할 특정 디스크를 식별합니다. openstack overcloud node provision 명령을 실행하면 director가 오버클라우드 이미지를 프로비저닝하고 root 디스크에 씁니다.

7.2.12. 루트 디스크를 식별하는 속성

director가 root 디스크를 쉽게 식별할 수 있도록 다음과 같은 속성을 정의할 수 있습니다.

  • 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)
중요

영구 이름이 있는 장치에 대해 name 속성을 사용합니다. 노드가 부팅될 때 값이 변경될 수 있으므로 name 속성을 사용하여 영구 이름이 없는 장치에 대해 루트 디스크를 설정하지 마십시오.

RHOSP(Red Hat OpenStack Platform) 배포의 기본 이미지는 overcloud-hardened-uefi-full.qcow2 입니다. overcloud-hardened-uefi-full.qcow2 이미지는 유효한 RHOSP(Red Hat OpenStack Platform) 서브스크립션을 사용합니다. 서브스크립션 인타이틀먼트를 사용하지 않으려면 overcloud-minimal 이미지를 사용하여 Red Hat 서브스크립션의 한도에 도달하지 않도록 할 수 있습니다. 예를 들어 Ceph 데몬으로만 노드를 프로비저닝하거나 다른 OpenStack 서비스를 실행하지 않으려는 베어 운영 체제(OS)를 프로비저닝하려는 경우 유용합니다. overcloud-minimal 이미지를 가져오는 방법에 관한 자세한 내용은 Obtaining images for overcloud nodes를 참조하십시오.

참고

overcloud-minimal 이미지는 표준 Linux 브리지만 지원합니다. overcloud-minimal 이미지는 OVS(Open vSwitch)를 지원하지 않습니다. OVS는 Red Hat OpenStack Platform 서브스크립션 인타이틀먼트가 필요한 OpenStack 서비스이기 때문입니다. Ceph Storage 노드를 배포하는 데는 OVS가 필요하지 않습니다. ovs_bond를 사용하여 본드를 정의하는 대신 linux_bond를 사용하십시오. linux_bond 에 대한 자세한 내용은 Linux 본딩 생성을 참조하십시오.

프로세스

  1. 언더클라우드의 /var/lib/ironic/images/overcloud-minimal 이미지와 관련 커널 및 램디스크를 업로드합니다.

    다음은 파일을 업로드하는 예입니다.

    (undercloud) [stack@undercloud ~]$ openstack overcloud image upload --image-path ./images/ --os-image-name overcloud-minimal.qcow2 --update-existing --image-type os
    Image "file:///var/lib/ironic/images/overcloud-minimal.vmlinuz" was copied.
    +---------------------------------------------------------+-------------------+----------+
    |                           Path                          |        Name       |   Size   |
    +---------------------------------------------------------+-------------------+----------+
    | file:///var/lib/ironic/images/overcloud-minimal.vmlinuz | overcloud-minimal | 12190232 |
    +---------------------------------------------------------+-------------------+----------+
    Image "file:///var/lib/ironic/images/overcloud-minimal.initrd" was copied.
    +--------------------------------------------------------+-------------------+----------+
    |                          Path                          |        Name       |   Size   |
    +--------------------------------------------------------+-------------------+----------+
    | file:///var/lib/ironic/images/overcloud-minimal.initrd | overcloud-minimal | 82284184 |
    +--------------------------------------------------------+-------------------+----------+
    Image "file:///var/lib/ironic/images/overcloud-minimal.raw" was copied.
    +-----------------------------------------------------+-------------------+------------+
    |                         Path                        |        Name       |    Size    |
    +-----------------------------------------------------+-------------------+------------+
    | file:///var/lib/ironic/images/overcloud-minimal.raw | overcloud-minimal | 3242131456 |
    +-----------------------------------------------------+-------------------+------------+
    Copy to Clipboard Toggle word wrap
  2. overcloud-baremetal-deploy.yaml 파일을 엽니다.
  3. overcloud-minimal 이미지를 사용하려는 노드의 이미지 속성을 추가하거나 업데이트합니다. 이미지를 특정 노드에서 또는 역할의 모든 노드에 대해 overcloud-minimal 로 설정할 수 있습니다.

    특정 노드

    - name: CephStorage
      count: 3
      instances:
      - hostname: overcloud-ceph-0
        name: node00
        image:
          href: 'file:///var/lib/ironic/images/overcloud-minimal.raw'
          kernel: 'file:///var/lib/ironic/images/overcloud-minimal.vmlinuz'
          ramdisk: 'file:///var/lib/ironic/images/overcloud-minimal.initrd'
      - hostname: overcloud-ceph-1
        name: node01
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
      - hostname: overcloud-ceph-2
        name: node02
        image:
          href: file:///var/lib/ironic/images/overcloud-full-custom.qcow2
    Copy to Clipboard Toggle word wrap

    역할의 모든 노드

    - name: CephStorage
      count: 3
      defaults:
        image:
          href: 'file:///var/lib/ironic/images/overcloud-minimal.raw'
          kernel: 'file:///var/lib/ironic/images/overcloud-minimal.vmlinuz'
          ramdisk: 'file:///var/lib/ironic/images/overcloud-minimal.initrd'
      instances:
      - hostname: overcloud-ceph-0
        name: node00
      - hostname: overcloud-ceph-1
        name: node01
      - hostname: overcloud-ceph-2
        name: node02
    Copy to Clipboard Toggle word wrap

  4. roles_data.yaml 역할 정의 파일에서 rhsm_enforce 매개변수를 False로 설정합니다.

    rhsm_enforce: False
    Copy to Clipboard Toggle word wrap
  5. 프로비저닝 명령을 실행합니다.

    (undercloud)$ openstack overcloud node provision \
    --stack stack \
    --output /home/stack/templates/overcloud-baremetal-deployed.yaml \
    /home/stack/templates/overcloud-baremetal-deploy.yaml
    Copy to Clipboard Toggle word wrap
  6. overcloud-baremetal-deployed.yaml 환경 파일을 openstack overcloud deploy 명령에 전달합니다.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동