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,800 Gbps の帯域幅
Confidential VM インスタンス、第 3 世代以降のマシンシリーズの VM、Arm CPU プラットフォームで実行される VM のネットワーク インターフェースとして gVNIC を使用する必要があります。
始める前に
- Windows Server 2022 または Windows 11 VM で 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- OS イメージに gVNIC ドライバが含まれていない
- OS イメージに最新の gVNIC ドライバ バージョンがない
- Linux VM の場合は、Compute Engine 仮想イーサネット用の Linux カーネル ドライバをご覧ください。
- FreeBSD で実行されている VM の場合は、Compute Engine 仮想イーサネット用の FreeBSD ドライバをご覧ください。
- Windows VM の場合は、Compute Engine 仮想イーサネット用の Windows ドライバをご覧ください。
- 最大 200 Gbps のネットワーク帯域幅(Tier_1 ネットワーキングと gVNIC を使用するように構成された Windows インスタンスにインストールされる場合)。
- ジャンボ フレームのサポート。
- まだリクエストしていない場合は、ドライバのプレビュー版へのアクセスをリクエストします。
PowerShell を使用して次の操作を行います。
次のコマンドを実行して、gvnic リポジトリを
googet
に追加します。googet addrepo gvnic-preview https://packages.cloud.google.com/yuck/repos/google-compute-engine-driver-gvnic-preview
googet
を使用して gVNIC ドライバを更新します。次のコマンドを実行すると、利用可能なすべてのアップデートが一覧表示されます。gVNIC ドライバの入力を求めるメッセージが表示されたら、y
と入力します。googet update
大規模な送信オフロード(LSO)を有効にします。
Set-NetAdapterAdvancedProperty -InterfaceDescription 'Google Ethernet Adapter' -RegistryKeyword '*LSOV2Ipv4' -RegistryValue 1 Set-NetAdapterAdvancedProperty -InterfaceDescription 'Google Ethernet Adapter' -RegistryKeyword '*LSOV2Ipv6' -RegistryValue 1
現在の状態を出力して、LSO が有効になっていることを確認します。
Get-NetAdapterAdvancedProperty -InterfaceDescription 'Google Ethernet Adapter'
- Windows Server を実行しているコンピューティング インスタンスで、次のコマンドを実行します。
- Windows クライアントを実行しているコンピューティング インスタンスで、次のコマンドを実行します。
- 大規模な受信オフロード(LRO)はサポートされていません。gVNIC を使用する VM では、汎用受信オフロード(GRO)がデフォルトで有効になっています。最新の gVNIC ドライバ(プレビュー)を使用する場合は、LRO がサポートされます。
大規模な送信オフロード バージョン 2(LSOV2)は、Windows 11 または Windows Server 2022 VM ではサポートされていません。gVNIC ドライバのバージョン
1.0.0@45
以降では LSOV2 は無効になります。Microsoft Windows で VM の gVNIC ドライバを確認して更新する方法については、既知の問題をご覧ください。最新の gVNIC ドライバ(プレビュー)を使用する場合は、LSOV2 がサポートされます。
- gVNIC をサポートする公開 OS イメージを選択するか、gVNIC を使用するようにタグ付けされたカスタム OS イメージを作成します。
- 公開 OS イメージまたはカスタム OS イメージを使用して VM を作成します。VM の作成中に、gVNIC を使用するようにネットワーク インターフェースを構成します。
- gVNIC が有効であることを確認します。
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
イメージ ファミリーを使用するタイミングについて詳しくは、イメージ ファミリーのベスト プラクティスをご覧ください。
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 イメージ:
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
VM インスタンスの [名前] を入力します。
VM を作成する [ゾーン] を選択します。
[ブートディスク] セクションで、[変更] をクリックします。
[ブートディスク] パネルの [カスタム イメージ] タブで、次の操作を行います。
- 以前に作成した OS イメージを含む [ソース プロジェクト] を選択します。
- [イメージ] プルダウンからイメージを選択します。
- [選択] をクリックします。
gVNIC をネットワーク インターフェースとして設定するには、[詳細オプション] セクションを開いて次の操作を行います。
- [ネットワーキング] セクションを開きます。
- [ネットワーク インターフェース カード] で
gVNIC
を選択します。
必要に応じて、VM をさらにカスタマイズします。
[作成] をクリックして VM インスタンスを作成します。
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
のフラグをご覧ください。- ブートディスクには、先ほど作成したカスタム OS イメージを指定します。
- ネットワーク インターフェースについては、
nicType
フィールドの値をGVNIC
に設定します。 PROJECT_ID
: VM を作成するプロジェクトの ID。ZONE
: VM を作成するゾーン。VM_NAME
: 新しい VM の名前。NETWORK
: この VM のネットワーク リソースの URL。ネットワークもサブネットワークも指定しない場合、デフォルトのネットワークglobal/networks/default
が使用されます。SUBNET_NAME
: サブネットの名前。ネットワークは指定したサブネットから推測されます。このフィールドは省略できます。YOUR_IMAGE_PROJECT
: OS イメージを含むプロジェクトの名前。IMAGE_NAME
: 前の手順で作成した OS イメージ。- Windows VM インスタンスで、デバイス マネージャーを開きます。
- [ネットワーク アダプター] に、
"Google Ethernet Adapter"
と表示されます。 - インスタンスに接続する。
- 新しいインスタンスに永続ディスクを追加する。
- VM ごとの Tier_1 ネットワーキング パフォーマンスを構成する。
- VPC ネットワークの MTU 設定を変更する。
- ジャンボ フレームについて確認する。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
料金
Tier_1 ネットワーキングの最新料金については、VM インスタンスの料金ページをご覧ください。
料金情報の確認に使用できるその他の方法の一覧については、Compute Engine の料金をご覧ください。
オペレーティング システムのサポート
Compute Engine では、サポートされている公開オペレーティング システム(OS)イメージで gVNIC を使用できます。次の場合、gVNIC ドライバを手動でインストールできます。
サポートされているオペレーティング システムについては、オペレーティング システムの [インターフェース] タブをご覧ください。ネットワーク機能のサポートについては、[ネットワーキング機能] タブもご確認ください。
サポートされていないオペレーティング システムでの使用
gVNIC をサポートしているが、最新バージョンの gVNIC ドライバが含まれていない OS イメージの場合は、GitHub から最新のドライバ バージョンをダウンロードできます。
Linux または Windows VM で最新バージョンの gVNIC ドライバを手動で構成してインストールできます。
gVNIC を使用するように VM でオペレーティング システムを更新したら、その OS イメージに基づいてカスタム OS イメージを作成します。その後、カスタム OS イメージを使用して、そのオペレーティング システムで gVNIC を使用する追加の VM を作成できます。カスタム OS イメージを使用した VM の作成の詳細については、このページの gVNIC をサポートするカスタム OS イメージを作成するをご覧ください。
最新バージョンの gVNIC ドライバを手動で構成してインストールするには、次の操作を行います。
Windows 用の最新の gVNIC ドライバに更新する
Windows 用の最新バージョンの gVNIC ドライバを使用すると、ネットワーク パフォーマンスが向上します。第 3 世代以降のマシンシリーズ(N4 を除く)を使用するコンピューティング インスタンスにこのドライバをインストールすると、次のメリットがあります。
最新バージョンの gVNIC ドライバを使用する手順は次のとおりです。
最新バージョンの gVNIC ドライバをインストールして、このドライバを使用するように Windows を構成したら、ジャンボ フレームを構成して最適なスループットを実現できます。詳細については、最大伝送単位をご覧ください。
最新の gVNIC ドライバのパフォーマンスをテストする
最新の gVNIC ドライバによって実現するネットワーク帯域幅をテストするには、iPerf2 または Windows NT Test TCP(
ntttcp
)ユーティリティを使用します。次のオプションのいずれかを選択します。iPerf2
次のいずれかを行います。
iperf-2.1.1-Feb_27_2021-win.exe -s -w 131072 -l 128K -t 70
iperf-2.1.1-Feb_27_2021-win.exe -c 192.168.100.2 -P 64 -y C -w 131072 -l 128K -N -t 60
NTTTCP
受信側で次のコマンドを実行します。
ntttcp.exe -m 200,*,192.168.100.2 -r -t 60
送信側で次のコマンドを実行します。
ntttcp.exe -m 200,*,192.168.100.2 -s -l 4M -a 2 -t 60
制限事項
Compute Engine VM での gVNIC の使用の概要
gVNIC を使用する VM を作成するには、次の操作を行います。
問題が発生した場合は、Google Virtual NIC のトラブルシューティングをご覧ください。
gVNIC をサポートするカスタム OS イメージを作成する
Google Cloud CLI または REST を使用して、OS イメージを作成できます。カスタム OS イメージの作成の詳細とベスト プラクティスについては、カスタム OS イメージを作成するをご覧ください。
gcloud
REST
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 イメージを作成する必要があります。次に、そのカスタム OS イメージを使用して、Google Cloud コンソール、Google Cloud CLI、または REST を使用して VM を作成します。
コンソール
gcloud
REST
instances.insert
メソッドを使用して VM を作成します。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 } ] }
次のように置き換えます。
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
トラブルシューティング
gVNIC のトラブルシューティングについては、Google Virtual NIC のトラブルシューティングをご覧ください。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-12-23 UTC。
-