IDPF 네트워크 인터페이스 사용


C3 및 X4와 같은 머신 시리즈에서 사용 가능한 베어메탈 인스턴스는 표준화된 멀티벤더 PCIe 네트워크 데이터 영역 함수 기기인 인프라 데이터 영역 함수(IDPF)를 사용합니다. IDPF는 실제 기기입니다. IDPF 드라이버는 Linux 운영체제(OS) 이미지의 커널에 포함되어 있습니다.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.

IDPF에서 지원되는 기능

gVNIC와 마찬가지로 IDPF에서 다음 기능이 지원됩니다.

IDPF 네트워크 인터페이스의 제한사항

IDPF 네트워크 인터페이스를 사용할 때는 다음 제한사항에 유의하세요.

  • 인스턴스에는 단일 NIC만 지원됩니다. 여러 NIC가 포함된 컴퓨팅 인스턴스를 만들 수 없습니다.
  • IDPF는 NIC당 수신 및 전송 큐(RX/TX) 16개의 기본 큐 할당만 지원합니다.
  • 베어메탈 인스턴스와 함께 DPDK를 사용하는 경우 DPDK는 물리적 NIC의 드라이버로 IDPF를 대체합니다. DPDK 애플리케이션은 TAP 인터페이스 등을 통해 커널에 패킷을 전달해야 합니다.

베어메탈 인스턴스와 함께 IDPF 사용 개요

IDPF를 사용하는 베어메탈 인스턴스를 만들려면 다음 단계를 완료하세요.

  1. IDPF를 지원하는 공개 OS 이미지를 선택하거나 IDPF를 사용하도록 태그 지정된 커스텀 OS 이미지를 만듭니다.
  2. 공개 또는 커스텀 OS 이미지를 사용하여 베어메탈 인스턴스를 만듭니다. 인스턴스를 만드는 동안 IDPF를 사용하도록 네트워크 인터페이스를 구성합니다.
  3. IDPF가 사용 설정되어 있는지 확인합니다.

운영체제 지원

Compute Engine에서는 IDPF를 제한된 수의 지원되는 공개 OS 이미지로 사용할 수 있습니다.

IDPF가 지원되는 운영체제에 대한 자세한 내용은 운영체제인터페이스 탭을 참조하세요.

지원되지 않는 운영체제에서 사용

IDPF를 지원하지 않는 OS 이미지의 경우 운영체제 배포자의 IDPF 드라이버 포함 여부를 확인합니다.

IDPF가 포함된 운영체제 이미지를 가져온 후 맞춤설정된 운영체제가 포함된 부팅 가능한 가상 디스크를 가져옵니다. 그런 후 커스텀 OS 이미지를 사용하여 해당 운영체제에서 IDPF를 사용하는 베어메탈 인스턴스를 만들 수 있습니다. 베어메탈 인스턴스에 사용할 커스텀 OS 이미지를 만드는 방법에 대한 자세한 내용은 이 페이지에서 IDPF를 지원하는 커스텀 OS 이미지 만들기를 참조하세요.

IDPF를 지원하는 커스텀 OS 이미지 만들기

베어메탈 인스턴스에 Google Cloud에서 제공하는 것과 다른 OS 이미지 또는 버전이 필요한 경우 Google Cloud CLI 또는 REST를 사용하여 OS 이미지를 만들 수 있습니다. 커스텀 OS 이미지 만들기에 대한 자세한 내용 및 권장사항은 커스텀 OS 이미지 만들기를 참조하세요.

gcloud

Google Cloud에서 제공한 이미지 또는 가져온 OS 이미지로 커스텀 이미지를 만들 때 OS 이미지에 IDPF 태그를 지정해야 합니다. 다음 예시와 같이 gcloud compute images create 명령어를 사용합니다.

gcloud compute images create IMAGE_NAME \
    --source-image=SOURCE_IMAGE \
    --source-image-project=SOURCE_IMAGE_PROJECT \
    --guest-os-features=IDPF

다음을 바꿉니다.

  • IMAGE_NAME: 커스텀 이미지의 이름입니다.
  • SOURCE_IMAGE: IDPF를 지원하는 특정 OS 이미지입니다(예: sles-15-sp4-sap-v20240208-x86-64).

    이미지 계열에서 최신 OS 이미지를 사용하려면 --source-image 플래그를 --source-image-family 플래그로 바꾸고 IDPF를 지원하는 이미지 계열(예: --source-image-family=sles-15-sp4-sap)로 값을 설정합니다.

  • SOURCE_IMAGE_PROJECT: 소스 OS 이미지 또는 이미지 계열을 포함하는 프로젝트의 이름입니다.

    예시

    Compute Engine sles-15-sp5-sap 이미지 계열의 최신 OS 이미지를 사용하여 SLES(SUSE Linux Enterprise Server) OS 이미지를 생성하려면 다음 명령어를 실행합니다.

    gcloud compute images create my-sles15sp5-metal-os \
      --source-image-family=sles-15-sp5-sap \
      --source-image-project=suse-sap-cloud \
      --guest-os-features=IDPF
    

    이미지 계열을 사용할 시기에 대한 자세한 내용은 이미지 계열 권장사항을 참조하세요.

REST

  1. IDPF를 지원하는 OS 이미지 또는 이미지 계열을 선택합니다. 자세한 내용은 운영체제 세부정보를 참조하세요.

  2. 이전 단계에서 선택한 OS 이미지나 이미지 계열을 사용하여 OS 이미지를 만들고 이 OS 이미지에 IDPF 태그를 지정합니다. OS 이미지를 만들려면 images.insert 메서드를 사용합니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
    {
     "name":"IMAGE_NAME",
     "sourceImage":"SOURCE_IMAGE_URI",
     "guestOsFeatures":[
      {
         "type":"IDPF"
       }
     ]
    }
    

    다음을 바꿉니다.

    • IMAGE_NAME: 만들려는 커스텀 이미지의 이름입니다.
    • SOURCE_IMAGE_URI: 사용할 특정 OS 이미지나 이미지 계열의 URI입니다.

      예를 들면 다음과 같습니다.

      • 특정 OS 이미지: "sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
      • 이미지 계열: "sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap"

      이미지 계열을 지정하면 Compute Engine이 해당 계열의 지원 중단되지 않은 최신 OS 이미지에서 VM을 만듭니다. 이미지 계열을 사용할 시기에 대한 자세한 내용은 이미지 계열 권장사항을 참조하세요.

IDPF를 지원하는 베어메탈 인스턴스 만들기

IDPF를 지원하는 공개 OS 이미지 중 하나를 사용하거나 IDPF를 지원하는 커스텀 OS 이미지 만들기의 단계를 사용해 만든 커스텀 OS 이미지를 사용하여 베어메탈 인스턴스를 만들 수 있습니다.

공개 OS 이미지를 사용하여 베어메탈 인스턴스 만들기

IDPF를 지원하는 공개 OS 이미지를 사용하여 베어메탈 인스턴스를 만들려면 베어메탈 인스턴스 만들기의 안내를 따르세요.

커스텀 OS 이미지를 사용하여 베어메탈 인스턴스 만들기

IDPF를 지원하는 공개 OS 이미지를 사용하지 않는 경우 먼저 IDPF를 지원하는 커스텀 OS 이미지를 만들어야 합니다. 그런 다음 Google Cloud CLI 또는 REST를 사용하여 해당 커스텀 OS 이미지로 베어메탈 인스턴스를 만듭니다.

gcloud

  1. gcloud compute instances create 명령어를 사용하여 베어메탈 인스턴스를 만듭니다. 부팅 디스크 이미지의 경우 앞서 만든 커스텀 OS 이미지를 지정합니다. 네트워크 인터페이스의 경우 nic-type 플래그 값을 IDPF로 설정합니다.

    gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --image=IMAGE_NAME \
        --image-project=YOUR_IMAGE_PROJECT \
        --network-interface=nic-type=IDPF
    

    다음을 바꿉니다.

    • INSTANCE_NAME: 새 인스턴스의 이름입니다.
    • ZONE: 인스턴스를 만들 영역입니다.
    • IMAGE_NAME: 이전에 만든 커스텀 OS 이미지입니다.
    • YOUR_IMAGE_PROJECT: 커스텀 OS 이미지를 포함한 프로젝트의 이름입니다.
  2. 선택사항: Compute Engine에서 인스턴스를 만들었는지, nicTypeIDPF로 설정되었는지 확인합니다.

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    다음을 바꿉니다.

    • INSTANCE_NAME: 인스턴스 이름
    • ZONE: 인스턴스를 만든 영역

    예시

    my-project-12345 프로젝트에 있는 my-sles15sp5-metal-os라는 맞춤설정된 SAP용 SLES 15 SP5 OS 이미지를 사용하여 eu-west4-b 영역에서 베어메탈 인스턴스를 생성하려면 다음 명령어를 실행합니다.

    gcloud compute instances create test-x4-metal-custom-os \
        --zone=eu-west4-b \
        --machine-type=x4-megamem-1440-metal \
        --image=my-sles15sp5-metal-os \
        --image-project=my-project-12345 \
        --network-interface=nic-type=IDPF
    

    고려사항

    --network-interface 플래그에는 다음과 같은 하위 수준 플래그가 있습니다.

    • --address: 인스턴스에 IP 주소를 할당합니다.
    • --network: 인터페이스가 포함될 네트워크입니다.
    • --network-tier: 인터페이스의 네트워크 등급입니다.
    • --subnet: 인터페이스가 포함될 서브넷입니다. --network도 지정되었으면 서브넷이 지정된 네트워크의 일부여야 합니다.
    • --private-network-ip: 인스턴스에 할당할 RFC 1918 IP를 지정합니다.

    전체 목록은 --network-interface 플래그를 참조하세요.

REST

instances.insert 메서드를 사용하여 베어메탈 인스턴스를 만듭니다.

  • 부팅 디스크 이미지의 경우 앞서 만든 커스텀 OS 이미지를 지정합니다.
  • 네트워크 인터페이스의 경우 nicType 필드 값을 IDPF로 설정합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name":"INSTANCE_NAME",
  "networkInterfaces":[
    {
      "nicType":"IDPF",
      "network":"NETWORK",
      "subnet":"SUBNET_NAME"
    }
  ],
  "disks":[
    {
      "initializeParams":{
        "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME"
      },
      "boot":true
    }
  ]
}

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스를 만들 프로젝트의 ID입니다.
  • ZONE: 인스턴스를 만들 영역입니다.
  • INSTANCE_NAME: 새 인스턴스의 이름입니다.
  • NETWORK: 이 인스턴스에 대한 네트워크 리소스의 URL입니다. 네트워크 또는 서브네트워크가 모두 지정되지 않은 경우 기본 네트워크 global/networks/default가 사용됩니다.
  • SUBNET_NAME: 서브넷의 이름입니다. 네트워크는 지정된 서브넷에서 추론됩니다. 이 필드는 선택 사항입니다.
  • YOUR_IMAGE_PROJECT: OS 이미지가 포함된 프로젝트의 이름입니다.
  • IMAGE_NAME: 이전 단계에서 만든 커스텀 OS 이미지의 이름입니다.

IDPF가 사용 설정되어 있는지 확인

lshw 도구를 사용하여 베어메탈 인스턴스의 하드웨어 구성에 대한 세부 정보를 추출할 수 있습니다.

Linux 인스턴스에 lshw 도구를 설치하려면 게스트 OS에 SSH로 연결하고 다음 명령어를 실행합니다.

sudo apt-get install lshw -y

인스턴스에서 IDPF 네트워크 인터페이스를 사용하고 있는지 확인하려면 다음 명령어를 실행합니다.

sudo lshw -class network

다음에서는 출력 예시를 보여줍니다.

*-network
       description: Ethernet interface
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: enp5s0f0
       version: 11
       serial: 42:01:0a:96:00:02
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical
       configuration: autonegotiation=off broadcast=yes driver=idpf driverversion=6.5.0-1023-gcp duplex=full ip=10.150.0.2 latency=0 link=yes multicast=yes
       resources: iomemory:21ff0-21fef iomemory:21ff0-21fef irq:16 memory:21ffe0000000-21ffefffffff memory:21fff2000000-21fff203ffff

다음 단계