1.2. 하이퍼컨버지드 노드에 대한 오버클라우드 역할 준비

노드를 하이퍼컨버지드로 지정하려면 하이퍼컨버지드 역할을 정의해야 합니다. RHOSP(Red Hat OpenStack Platform)는 하이퍼컨버지드 노드에 대해 사전 정의된 역할 ComputeHCI 를 제공합니다. 이 역할은 Compute 및 Ceph 개체 스토리지 데몬(OSD) 서비스를 함께 배치하여 동일한 하이퍼컨버지드 노드에 함께 배포할 수 있습니다.

절차

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

    [stack@director ~]$ source ~/stackrc
  3. ComputeHCI 역할이 포함된 새 사용자 지정 역할 데이터 파일을 오버클라우드에 사용할 다른 역할과 함께 생성합니다. 다음 예제에서는 Controller,ComputeHCI,ComputeCephStorage 역할을 포함하는 역할 데이터 파일 roles_data_hci.yaml 을 생성합니다.

    (undercloud)$ openstack overcloud roles \
     generate -o /home/stack/templates/roles_data_hci.yaml \
      Controller ComputeHCI Compute CephStorage
    참고

    생성된 사용자 지정 역할 데이터 파일에 ComputeHCI 역할에 나열된 네트워크에는 계산 및 스토리지 서비스 모두에 필요한 네트워크가 포함됩니다. 예를 들면 다음과 같습니다.

    - name: ComputeHCI
      description: |
        Compute node role hosting Ceph OSD
      tags:
        - compute
      networks:
        InternalApi:
          subnet: internal_api_subnet
        Tenant:
          subnet: tenant_subnet
        Storage:
          subnet: storage_subnet
        StorageMgmt:
          subnet: storage_mgmt_subnet
  4. network_data.yaml 파일의 로컬 사본을 생성하여 구성 가능한 네트워크를 오버클라우드에 추가합니다. network_data.yaml 파일은 기본 네트워크 환경 파일 /usr/share/openstack-tripleo-heat-templates/environments/* 와 상호 작용하여 ComputeHCI 역할에 대해 정의한 네트워크를 하이퍼컨버지드 노드와 연결합니다. 자세한 내용은 Advanced Overcloud Customization 가이드 의 Adding a composable network 를 참조하십시오.
  5. Red Hat Ceph Storage의 성능을 개선하려면 network _data.yaml의 로컬 사본에서 점보 프레임의 스토리지 및 Storage Mgmt 네트워크 모두에 대한 MTU 설정을 9000 으로 업데이트합니다. 자세한 내용은 Director에서 MTU 설정 구성 및 점보 프레임 구성을 참조하십시오.
  6. 하이퍼컨버 지드 노드의 computeHCI 오버클라우드 플레이버를 생성합니다.

    (undercloud)$ openstack flavor create --id auto \
     --ram <ram_size_mb> --disk <disk_size_gb> \
     --vcpus <no_vcpus> computeHCI
    • <ram_size_mb> 를 베어 메탈 노드의 RAM(MB)으로 바꿉니다.
    • <disk_size_gb> 를 베어 메탈 노드의 디스크 크기(GB)로 바꿉니다.
    • <no_vcpus> 를 베어 메탈 노드의 CPU 수로 바꿉니다.
    참고

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

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

    (undercloud)$ openstack baremetal node list
  8. 사용자 정의 HCI 리소스 클래스를 사용하여 하이퍼컨버지드로 지정할 각 베어 메탈 노드에 태그를 지정합니다.

    (undercloud)$ openstack baremetal node set \
     --resource-class baremetal.HCI <node>

    <node> 를 베어 메탈 노드의 ID로 바꿉니다.

  9. computeHCI 플레이버를 사용자 지정 HCI 리소스 클래스와 연결합니다.

    (undercloud)$ openstack flavor set \
    --property resources:CUSTOM_BAREMETAL_HCI=1 \
    computeHCI

    베어 메탈 서비스 노드의 리소스 클래스에 해당하는 사용자 지정 리소스 클래스의 이름을 확인하려면 리소스 클래스를 대문자로 변환하려면 모든 문장 부호를 밑줄로 바꾸고 접두사는 CUSTOM_ 로 바꿉니다.

    참고

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

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

    (undercloud)$ openstack flavor set \
     --property resources:VCPU=0 \
     --property resources:MEMORY_MB=0 \
     --property resources:DISK_GB=0 computeHCI
  11. 다음 매개변수를 node-info.yaml 파일에 추가하여 하이퍼컨버지드 및 컨트롤러 노드 수와 하이퍼컨버지드 및 컨트롤러 지정 노드에 사용할 플레이버를 지정합니다.

    parameter_defaults:
      OvercloudComputeHCIFlavor: computeHCI
      ComputeHCICount: 3
      Controller: control
      ControllerCount: 3

1.2.1. 멀티 디스크 클러스터의 root 디스크 정의

여러 디스크가 있는 노드의 경우 director가 프로비저닝 중에 root 디스크를 식별해야 합니다. 예를 들어 대부분의 Ceph Storage 노드는 여러 디스크를 사용합니다. 기본적으로 director는 프로비저닝 프로세스 중에 오버클라우드 이미지를 root 디스크에 씁니다.

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

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

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

일련 번호를 사용하여 root 장치를 지정할 수 있습니다.

절차

  1. 각 노드의 하드웨어 인트로스펙션에서 디스크 정보를 확인합니다. 다음 명령을 실행하여 노드의 디스크 정보를 표시합니다.

    (undercloud)$ openstack baremetal introspection data save 1a4e30da-b6dc-499d-ba87-0bd8a3819bc0 | jq ".inventory.disks"

    예를 들어 노드 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"
      }
    ]
  2. openstack baremetal node set --property root_device=를 입력하여 노드의 root 디스크를 설정합니다. root 디스크를 정의하는 데 가장 적절한 하드웨어 속성값을 포함시킵니다.

    (undercloud)$ openstack baremetal node set --property root_device='{"serial":"<serial_number>"}' <node-uuid>

    예를 들어, root 장치를 일련 번호가 61866da04f380d001ea4e13c12e36ad6인 disk 2로 설정하려면 다음 명령을 입력합니다.

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

    각 노드의 BIOS를 설정하여 선택한 root 디스크로 부팅이 포함되도록 합니다. 먼저 네트워크에서 부팅한 다음 root 디스크에서 부팅하도록 부팅 순서를 구성합니다.

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