Google Virtual NIC(gVNIC)は、Compute Engine 専用の仮想ネットワーク インターフェースです。gVNIC は、virtIO ベースのイーサネット ドライバに代わるものです。
VirtIO に続く次世代のネットワーク インターフェースとして、gVNIC は、すべての新しいマシンタイプ(第 3 世代以降)の Compute Engine でサポートされている唯一のネットワーク インターフェースとして VirtIO-Net に代わるものです。新しいマシンシリーズとネットワーク機能には、VirtIO ではなく gVNIC が必要です。Compute Engine VM の最新の I/O インターフェースとして gVNIC を使用すると、次のメリットがあります。
- パフォーマンスが向上します。
- ノイジー ネイバーの問題が軽減することで整合性が向上します。
- VirtIO の能力を超える新しいネットワーク機能が導入されます。
始める前に
- Windows Server または Windows クライアント イメージで gVNIC を使用する場合は、gVNIC ドライバが GooGet パッケージ バージョン
1.0.0@45
以降を使用していることを確認してください。 -
まだ設定していない場合は、認証を設定します。認証では、 Google Cloud サービスと API にアクセスするための ID が確認されます。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
- Set a default region and zone.
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
gVNIC の使用が適している場合
gVNIC は、すべてのマシン ファミリーと世代でサポートおよび推奨されています。一部の世代では gVNIC のみがサポートされています。特別な条件で gVNIC の使用が必要になる場合もあります。マシンシリーズの世代を確認するには、Compute Engine の用語をご覧ください。
マシンシリーズの世代別の gVNIC の使用状況は次のとおりです。
- 第 3 世代以降のマシンシリーズ(ベアメタル インスタンスを除く)は、仮想ネットワーク インターフェースの gVNIC のみをサポートします。
第 1 世代または第 2 世代のマシンシリーズは、次のいずれかの条件を満たす場合、インスタンスの仮想ネットワーク インターフェースに gVNIC を使用する必要があります。
- インスタンスは Arm CPU プラットフォームで実行されます。
- インスタンスが Confidential VM インスタンスである。
インスタンスは 50 ~ 100 Gbps のネットワーク速度を実現する必要があります。これは、次の条件を満たすインスタンスに適用されます。
- VM ごとの Tier_1 ネットワーキング パフォーマンスをサポートするインスタンス
- これらの高いネットワーク帯域幅をサポートする A2、G2、N1 インスタンス
料金
Tier_1 ネットワーキングの最新料金については、VM インスタンスの料金ページをご覧ください。
料金情報の確認に使用できるその他の方法の一覧については、Compute Engine の料金をご覧ください。
オペレーティング システムのサポート
Compute Engine では、サポートされている公開オペレーティング システム(OS)イメージで gVNIC を使用できます。次の場合、gVNIC ドライバを手動でインストールできます。
- OS イメージに gVNIC ドライバが含まれていない
- OS イメージに最新の 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 ドライバをご覧ください。
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" } ] }
次のように置き換えます。
PROJECT_ID
: 新しいイメージを作成するプロジェクトの IDIMAGE_NAME
: カスタム イメージの名前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 を有効にして、ネットワーク パケット処理の高速化、低レイテンシ、一貫したパフォーマンスを実現できます。
複数のネットワーク インターフェース(NIC)をサポートする VM の場合、インターフェースのサポートは NIC ごとに構成されるため、異なるタイプの NIC を VM にアタッチできます。この設定はサポートされていますが、おすすめしません。複数の NIC をサポートする VM の場合、VM の作成時にネットワーク インターフェースごとに
nic-type=GVNIC
を指定してください。公開 OS イメージを使用して VM を作成する
gVNIC をサポートする公開 OS イメージを使用して VM を作成するには、高帯域幅構成で VM とコンテナを作成するの手順に沿って操作します。
カスタム OS イメージを使用して VM を作成する
gVNIC をサポートする公開 OS イメージを使用しない場合は、まず gVNIC をサポートするカスタム OS イメージを作成する必要があります。次に、Google Cloud コンソール、Google Cloud CLI、または REST でそのカスタム OS イメージを使用して、VM を作成します。
コンソール
Google Cloud コンソールで [インスタンスの作成] ページに移動します。
VM インスタンスの [名前] を入力します。
VM を作成する [ゾーン] を選択します。
[ブートディスク] セクションで、[変更] をクリックします。
[ブートディスク] パネルの [カスタム イメージ] タブで、次の操作を行います。
- 以前に作成した OS イメージを含む [ソース プロジェクト] を選択します。
- [イメージ] プルダウンからイメージを選択します。
- [選択] をクリックします。
gVNIC をネットワーク インターフェースとして設定するには、[詳細オプション] セクションを開いて次の操作を行います。
- [ネットワーキング] セクションを開きます。
- [ネットワーク インターフェース カード] で
gVNIC
を選択します。
必要に応じて、VM をさらにカスタマイズします。
[作成] をクリックして VM インスタンスを作成します。
gcloud
gcloud compute instances create
コマンドを使用して VM を作成します。ブートディスクには、先ほど作成したカスタム OS イメージを指定します。ネットワーク インターフェースについては、nic-type
フラグの値をGVNIC
に設定します。gcloud compute instances create VM_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --image=IMAGE_NAME \ --image-project=YOUR_IMAGE_PROJECT \ --network-interface=nic-type=GVNIC
次のように置き換えます。
VM_NAME
: 新しい VM の名前。ZONE
: VM を作成するゾーン。MACHINE_TYPE
: VM インスタンスを作成するときに使用するマシンタイプ。マシンタイプを指定しない場合、デフォルトはn1-standard-1
です。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
にn1-standard-1
マシンタイプの 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 設定を変更する。
- ジャンボ フレームについて確認する。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-10-19 UTC。
-