Google Virtual NIC(gVNIC)は、Compute Engine 専用の仮想ネットワーク インターフェースです。gVNIC は、virtIO ベースのイーサネット ドライバに代わるものです。
VirtIO に続く次世代のネットワーク インターフェースとして、gVNIC は、すべての新しいマシンタイプ(第 3 世代以降)に対して、Compute Engine でサポートされている唯一のネットワーク インターフェースとして VirtIO-Net に代わるものです。新しいマシンシリーズとネットワーク機能には、VirtIO ではなく gVNIC が必要です。Compute Engine VM の最新の I/O インターフェースとして gVNIC を使用すると、次のことが可能になります。
- パフォーマンスが向上します。
- ノイジー ネイバーの問題を軽減して一貫性を向上させます。
- VirtIO の能力を超える新しいネットワーク機能を導入します。
gVNIC は、すべてのマシン ファミリー、マシンタイプ、世代でサポートおよび推奨されています。
gVNIC は以下をサポートする必要があります。
- VM ごとの Tier_1 ネットワーキング パフォーマンスをサポートする VM で、50~200 Gbps の帯域幅。
- GPU がアタッチされている VM で、50~1,000 Gbps の帯域幅。
- Confidential VMs、第 3 世代のマシンシリーズの VM、Arm CPU プラットフォームで実行される VM。
始める前に
- Windows Server 2022 または Windows 11 VM で gVNIC を使用する場合は、ネットワーキング スループットを向上させるために、gVNIC ドライバを GooGet パッケージ バージョン
1.0.0@45
以降に更新してください。詳細については、既知の問題をご覧ください。 -
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
gcloud
-
Google Cloud CLI をインストールし、次のコマンドを実行して初期化します。
gcloud init
- デフォルトのリージョンとゾーンを設定します。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
-
料金
Tier_1 ネットワーキングの最新料金については、VM インスタンスの料金ページをご覧ください。
料金情報の確認に使用できるその他の方法の一覧については、Compute Engine の料金をご覧ください。
オペレーティング システムのサポート
Compute Engine では、サポートされている公開オペレーティング システム(OS)イメージで gVNIC を使用できます。次のシステムに gVNIC ドライバを手動でインストールできます。
- サポートされていないオペレーティング システム
- 最新バージョンの gVNIC ドライバがないオペレーティング システム
サポートされているオペレーティング システムについては、オペレーティング システムのサポートされているインターフェースタブをご覧ください。ネットワーク機能のサポートについては、[ネットワーキング機能] タブもご確認ください。
サポートされていないオペレーティング システムでの使用
gVNIC をサポートしているが、最新バージョンの gVNIC ドライバが含まれていない OS イメージの場合は、GitHub から最新のドライバ バージョンをダウンロードできます。
Linux または Windows VM で最新バージョンの gVNIC ドライバを手動で構成してインストールできます。
gVNIC を使用するように VM でオペレーティング システムを更新したら、その OS イメージに基づいてカスタム OS イメージを作成します。その後、カスタム OS イメージを使用して、そのオペレーティング システムで gVNIC を使用する追加の VM を作成できます。カスタム OS イメージを使用した VM の作成の詳細については、このページの gVNIC をサポートするカスタム OS イメージを作成するをご覧ください。
最新バージョンの gVNIC ドライバを手動で構成してインストールするには、次の操作を行います。
- Linux VM の場合は、Compute Engine 仮想イーサネット用の Linux カーネル ドライバをご覧ください。
- FreeBSD で実行されている VM の場合は、Compute Engine 仮想イーサネット用の FreeBSD ドライバをご覧ください。
- Windows VM の場合は、Compute Engine 仮想イーサネット用の Windows ドライバをご覧ください。
制限事項
- 大規模な受信オフロード(LRO)はサポートされていません。gVNIC を使用する VM では、汎用受信オフロード(GRO)がデフォルトで有効になっています。
- 大規模な送信オフロード バージョン 2(LSOV2)は、Windows 11 または Windows Server 2022 VM ではサポートされていません。gVNIC ドライバのバージョン
1.0.0@45
以降では LSOV2 は無効になります。Microsoft Windows で VM の gVNIC ドライバを確認して更新する方法については、既知の問題をご覧ください。
Compute Engine VM での gVNIC の使用の概要
gVNIC を使用する VM を作成するには、次の操作を行います。
- gVNIC をサポートする公開 OS イメージを選択するか、gVNIC を使用するようにタグ付けされたカスタム OS イメージを作成します。
- 公開 OS イメージまたはカスタム OS イメージを使用して VM を作成します。VM の作成中に、gVNIC を使用するようにネットワーク インターフェースを構成します。
- gVNIC が有効であることを確認します。
問題が発生した場合は、Google Virtual NIC のトラブルシューティングをご覧ください。
gVNIC をサポートするカスタム OS イメージを作成する
Google Cloud CLI または REST を使用して、OS イメージを作成できます。カスタム OS イメージの作成の詳細とベスト プラクティスについては、カスタム OS イメージを作成するをご覧ください。
gcloud
gVNIC をサポートする OS イメージまたはイメージ ファミリーを選択します。詳しくは、オペレーティング システムの詳細をご覧ください。
前の手順で選択した OS イメージまたはイメージ ファミリーを使用して、カスタム OS イメージを作成し、この OS イメージに
GVNIC
をタグ付けします。カスタム OS イメージを作成するには、gcloud compute images create
コマンドを使用します。たとえば、次のコマンドは、gVNIC をサポートし、特定の OS イメージに基づいたカスタム 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 をサポートする特定の OS イメージ。例:rocky-linux-8-optimized-gcp-v20220719
。イメージ ファミリーの最新の OS イメージを使用する場合は、
--source-image
フラグを--source-image-family
フラグに置き換え、その値を gVNIC をサポートするイメージ ファミリーに設定します。例:--source-image-family=rocky-linux-8-optimized-gcp
。SOURCE_IMAGE_PROJECT
: ソース OS イメージまたはイメージ ファミリーを含むプロジェクトの名前。
例
Compute Engine
rocky-linux-8-optimized-gcp
イメージ ファミリーの最新の OS イメージを使用して、Google Cloud OS イメージに最適化された 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
イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
REST
gVNIC をサポートする OS イメージまたはイメージ ファミリーを選択します。詳細については、オペレーティング システムの詳細をご覧ください。
前の手順で選択した OS イメージまたはイメージ ファミリーを使用して、OS イメージを作成し、この OS イメージに
GVNIC
をタグ付けします。OS イメージを作成するには、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
: 作成する OS イメージの名前。SOURCE_IMAGE_URI
: 使用する特定の OS イメージまたはイメージ ファミリーの URI。例:
- 特定の OS イメージ:
"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 を作成します。イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
- 特定の OS イメージ:
gVNIC をサポートする VM を作成する
VM は、サポートされている公開 OS イメージのいずれかを使用して、または、gVNIC をサポートするカスタム OS イメージを作成するの手順で作成したカスタム OS イメージを使用して作成できます。
必要に応じて、VM で DPDK を有効にして、ネットワーク パケット処理の高速化、低レイテンシ、一貫したパフォーマンスを実現できます。
公開 OS イメージを使用して VM を作成する
gVNIC をサポートする公開 OS イメージを使用して VM を作成するには、高帯域幅構成で VM とコンテナを作成するの手順に沿って操作します。
カスタム OS イメージを使用して VM を作成する
gVNIC をサポートする公開 OS イメージを使用していない場合は、まず gVNIC をサポートするカスタム OS イメージを作成する必要があります。次に、そのカスタム OS イメージを使用して、Google Cloud CLI または REST を使用して VM を作成します。
gcloud
gcloud compute instances create
コマンドを使用して VM を作成します。ブートディスクには、先ほど作成したカスタム OS イメージを指定します。ネットワーク インターフェースについては、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
: 前の手順で作成した OS イメージ。YOUR_IMAGE_PROJECT
: OS イメージを含むプロジェクトの名前。
省略可: Compute Engine によって VM が作成され、
nicType
がGVNIC
に設定されていることを確認します。gcloud compute instances describe VM_NAME \ --zone=ZONE
次のように置き換えます。
VM_NAME
: VM の名前。ZONE
: VM を作成したゾーン。
例
プロジェクト
my-project-12345
にあるmy-gvnic-rocky8
という名前の OS イメージを使用して、ゾーン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
のフラグをご覧ください。
REST
instances.insert
メソッドを使用して VM を作成します。
- ブートディスクには、先ほど作成したカスタム OS イメージを指定します。
- ネットワーク インターフェースについては、
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
: OS イメージを含むプロジェクトの名前。IMAGE_NAME
: 前の手順で作成した OS イメージ。
gVNIC が有効であることを確認する
Linux
lshw
ツールを使用すると、仮想マシンのハードウェア構成に関する詳細情報を抽出できます。
Linux VM インスタンスに lshw
ツールをインストールするには、VM に SSH 経由で接続し、次のコマンドを実行します。
sudo apt-get install lshw -y
VM が gVNIC ネットワーク インターフェースを使用しているかどうかを確認するには、次のコマンドを実行します。
sudo lshw -class network
出力は次のようになります。
*-network description: Ethernet interface product: Compute Engine Virtual Ethernet [gVNIC] vendor: Google, Inc. physical id: 3 bus info: pci@0000:00:03.0 logical name: ens3 version: 00 serial: 42:01:0a:80:00:6f width: 32 bits clock: 33MHz capabilities: msix bus_master cap_list ethernet physical configuration: autonegotiation=off broadcast=yes driver=gve driverversion=1.0.0 duplex=full ip=10.128.0.111 latency=0 link=yes multicast=yes port=twisted pair resources: irq:11 memory:c0203000-c0203fff memory:c0200000-c02000ff memory:c0100000-c01fffff
Windows
- Windows VM インスタンスで、デバイス マネージャーを開きます。
- [ネットワーク アダプター] に、
"Google Ethernet Adapter"
と表示されます。
トラブルシューティング
gVNIC のトラブルシューティングについては、Google Virtual NIC のトラブルシューティングをご覧ください。
次のステップ
- インスタンスに接続する。
- 新しいインスタンスに永続ディスクを追加する。
- VM ごとの Tier_1 ネットワーキング パフォーマンスを構成する。
- VPC ネットワークの MTU 設定を変更する。
- ジャンボ フレームについて確認する。