Google Virtual NIC の使用

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Google Virtual NIC(gVNIC)は、Compute Engine 専用の仮想ネットワーク インターフェースです。gVNIC は、virtIO ベースのイーサネット ドライバに代わるものです。

Compute Engine では、サポートされている公開イメージ上で gVNIC を使用できます。カスタム イメージを使用する場合は、サポートされていないオペレーティング システムで使用するの説明に従って、gVNIC ドライバを手動でインストールできます。

gVNIC は、GPU がアタッチされている VM 上の分散ワークロードに使用できる 50~100 Gbps の速度など、VM ごとの Tier_1 ネットワーキング パフォーマンスをサポートする必要があります。また、VM 使用時のパフォーマンスを最適化するように、いくつかの VM 構成を扱う際にも gVNIC が必要です。

ジャンボ フレームを送受信するには、VM で使用される VPC ネットワークを構成します。最大伝送単位(MTU)を大きい値(最大 8,896)に設定します。より高いネットワーク帯域幅の gVNIC を使用することで、VM を最大 98 Gbps で送信できます。

始める前に

  • このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
    1. Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
    2. デフォルトのリージョンとゾーンを設定します。
  • このガイドの API の例を使用する場合は、API アクセスを設定します。
  • Windows Server 2022 または Windows 11 VM で gVNIC を使用する場合は、gVNIC ドライバを GooGet パッケージ バージョン 1.0.0@45 以降に更新して、ネットワーク スループットを向上させます。詳しくは、既知の問題をご覧ください。

オペレーティング システムのサポート

サポートされているオペレーティング システムについては、オペレーティング システムの詳細をご覧ください。

サポートされていないオペレーティング システムでの使用

現在サポートされていないオペレーティング システムで gVNIC を使用する場合は、次の手順で gVNIC を手動で構成し、インストールできます。

制限事項

概要

gVNIC を使用する VM を作成するには、次の手順を行います。

  1. gVNIC をサポートする公開イメージを選択するか、gVNIC を使用するようにタグ付けされたカスタム イメージを作成します。
  2. 公開イメージまたはカスタム イメージを使用して VM を作成します。VM の作成時に、gVNIC を使用するようにネットワーク インターフェースを構成します。
  3. gVNIC が有効であることを確認します。

問題が発生した場合は、Google Virtual NIC のトラブルシューティングをご覧ください。

gVNIC をサポートするカスタム イメージを作成する

Google Cloud CLI または Compute Engine API を使用して、イメージを作成できます。カスタム イメージの作成の詳細とベスト プラクティスについては、カスタム イメージを作成するをご覧ください。

gcloud

  1. gVNIC をサポートするイメージまたはイメージ ファミリーを選択します。詳しくは、オペレーティング システムの詳細をご覧ください。

  2. 前の手順で選択したイメージまたはイメージ ファミリーを使用して、イメージを作成し、このイメージに GVNIC をタグ付けします。カスタム イメージを作成するには、gcloud compute images create コマンドを使用します。たとえば、次のコマンドは、gVNIC をサポートし、特定の OS イメージに基づいたカスタム イメージを作成します。

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

    以下を置き換えます。

    • IMAGE_NAME: 作成するイメージの名前。
    • SOURCE_IMAGE: gVNIC をサポートする特定のイメージ(rocky-linux-8-optimized-gcp-v20220719 など)。

      イメージ ファミリーの最新イメージを使用する場合は、--source-image フラグを --source-image-family フラグに置き換え、その値を gVNIC をサポートするイメージ ファミリーに設定します。例: --source-image-family=rocky-linux-8-optimized-gcp

    • SOURCE_IMAGE_PROJECT: ソースイメージまたはイメージ ファミリーを含むプロジェクトの名前。

    Compute Engine rocky-linux-8-optimized-gcp イメージ ファミリーの最新のイメージを使用して、Google Cloud イメージに最適化された Rocky Linux 8 を作成するには、次のコマンドを実行します。

    gcloud compute images create IMAGE_NAME \
        --source-image-family=rocky-linux-8-optimized-gcp \
        --source-image-project=rocky-linux-cloud \
        --guest-os-features=GVNIC
    

    イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。

API

  1. gVNIC をサポートするイメージまたはイメージ ファミリーを選択します。詳細については、オペレーティング システムの詳細をご覧ください。

  2. 前の手順で選択したイメージまたはイメージ ファミリーを使用して、イメージを作成し、このイメージに GVNIC をタグ付けします。イメージを作成するには、images.insert メソッドを使用します。

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

    次のように置き換えます。

    • IMAGE_NAME: 作成するイメージの名前。
    • SOURCE_IMAGE_URI: 使用する特定のイメージまたはイメージ ファミリーの URI。

      次に例を示します。

      • 特定のイメージ: "sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
      • イメージ ファミリー: "sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"

      イメージ ファミリーを指定すると、Compute Engine は非推奨でない最新の OS イメージから VM を作成します。イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。

gVNIC をサポートする VM を作成する

VM は、サポートされている公開イメージのいずれかを使用して、または、gVNIC をサポートするカスタム イメージを作成するの手順で作成したカスタム イメージを使用して作成できます。

公開イメージを使用して VM を作成する

gVNIC をサポートする公開イメージを使用して VM を作成するには、高帯域幅構成で VM とコンテナを作成するの手順に沿って操作します。

カスタム イメージを使用して VM を作成する

gVNIC をサポートする公開イメージを使用していない場合は、最初に gVNIC をサポートするカスタム イメージを作成する必要があります。次にこのカスタム イメージを使用して、Google Cloud CLI または Compute Engine API を使用して VM を作成します。

gcloud

  1. gcloud compute instances create コマンドを使用して VM を作成します。ブートディスクには、先ほど作成したカスタム イメージを指定します。ネットワーク インターフェースについては、nic-type フラグの値を GVNIC に設定します。

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

    以下を置き換えます。

    • VM_NAME: 新しい VM の名前。
    • ZONE: VM を作成するゾーン。
    • IMAGE_NAME: 前のステップで作成したイメージ。
    • YOUR_IMAGE_PROJECT: イメージを含むプロジェクトの名前。

    プロジェクト my-project-12345 にある my-gvnic-rocky8 という名前のイメージを使用して、ゾーン us-west1-b に Rocky Linux 8 VM を作成するには、次のコマンドを実行します。

    gcloud compute instances create my-rocky-linux-vm \
        --zone=us-west1-b \
        --image=my-gvnic-rocky8 \
        --image-project=my-project-12345 \
        --network-interface=nic-type=GVNIC
    

    注意点

    --network-interface フラグには、次のようなサブレベルのフラグがあります。

    • --address: VM に IP アドレスを割り当てます。
    • --network: インターフェースが属するネットワーク
    • --network-tier: インターフェースのネットワーク階層
    • --subnet: インターフェースが属するサブネット。--network も指定する場合、サブネットは指定したネットワークの一部であることが必要です。
    • --private-network-ip: VM に割り当てる RFC 1918 IP を指定します。

    全一覧については、--network-interface のフラグをご覧ください。

  2. Compute Engine によって VM が作成され、nicTypeGVNIC に設定されていることを確認します。

    gcloud compute instances describe VM_NAME \
       --zone=ZONE
    

    以下を置き換えます。

    • VM_NAME: VM の名前。
    • ZONE: VM を作成したゾーン。

API

  1. instances.insert メソッドを使用して VM を作成します。ブートディスクには、先ほど作成したカスタム イメージを指定します。ネットワーク インターフェースについては、nicType フィールドの値を GVNIC に設定します。

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    {
      "name":"VM_NAME",
      "networkInterfaces":[
        {
          "network":"NETWORK",
          "nicType":"GVNIC",
          "subnet":"SUBNET_NAME"
        }
      ],
      "disks":[
        {
          "initializeParams":{
            "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME"
          },
          "boot":true
        }
      ]
    }
    

    以下を置き換えます。

    • PROJECT_ID: VM を作成するプロジェクトの ID。
    • ZONE: VM を作成するゾーン。
    • VM_NAME: 新しい VM の名前。
    • NETWORK: この VM のネットワーク リソースの URL。ネットワークもサブネットワークも指定しない場合は、デフォルトのネットワーク global/networks/default が使用されます。
    • SUBNET_NAME: サブネットの名前。ネットワークは指定したサブネットから推測されます。このフィールドは省略できます。
    • YOUR_IMAGE_PROJECT: イメージを含むプロジェクトの名前。
    • IMAGE_NAME: 前のステップで作成したイメージ。

gVNIC が有効であることを確認する

Linux

Linux VM インスタンスで、次のコマンドを実行します。

sudo lshw -class network

出力は次のようになります。

*-network
   description: Ethernet interface
   product: Compute Engine Virtual Ethernet [gVNIC]
   vendor: Google, Inc.
   physical id: 4
   bus info: pci@0000:00:04.0
   logical name: eth0
   version: 00
   serial: 42:01:0a:8a:00:04
   width: 32 bits
   clock: 33MHz
   capabilities: msix bus_master cap_list ethernet physical
   configuration: broadcast=yes driver=gve driverversion=1.0.0 ip=10.138.0.4 latency=0 link=yes multicast=yes
   resources: irq:11 memory:c0102000-c0102fff memory:c0101000-c010103f memory:c0000000-c00fffff

Windows

  1. Windows VM インスタンスで、デバイス マネージャーを開きます。
  2. [ネットワーク アダプター] に、"Google Ethernet Adapter" と表示されます。

トラブルシューティング

gVNIC のトラブルシューティングについては、Google Virtual NIC のトラブルシューティングをご覧ください。

次のステップ