Compute Engine 仮想ネットワーク インターフェース(gVNIC とも呼ばれます)は、Compute Engine 上での使用に特化して設計されたものです。Compute Engine 仮想ネットワーク インターフェースは、VM インスタンス間でのトラフィック送信のためのより効率的な配信ネットワークを提供します。これまで、Compute Engine で実行される仮想マシン(VM)インスタンスは、virtIO の仕様に基づく仮想ネットワーク インターフェースを使用していました。
Compute Engine の仮想ネットワーク インターフェースは、GPU が接続されたインスタンスの分散ワークロードに使用できる 50~100 Gbps の速度などのより高いネットワーク帯域幅をサポートする必要があります。
Compute Engine 仮想ネットワーク インターフェースを使用する VM インスタンスを作成するには、次のいずれかの手順に従います。
gvnic-vm-image-prod
イメージ ファミリーのイメージを使用した VM インスタンスを作成する。- 任意の Linux イメージに手動で Compute Engine 仮想ネットワーク ドライバをインストールし、そのイメージを使用して VM インスタンスを作成する。
始める前に
- このガイドのコマンドラインのサンプルを使用する場合は、以下を行ってください。
- gcloud コマンドライン ツールの最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合、API アクセスを設定します。
制限事項
Compute Engine 仮想ネットワーク インターフェースは、メモリ最適化マシンタイプを使用する VM インスタンスではサポートされません。
オペレーティング システムのサポート
gvnic-vm-image-prod
イメージ プロジェクトに属し、Compute Engine 仮想ネットワーク インターフェースを使用するように構成されるイメージについては、オペレーティング システムの詳細をご覧ください。
これらいずれかのイメージを使用して、デフォルトで Compute Engine 仮想ネットワーク インターフェースを使用する VM インスタンスを作成できます。
事前に構成されたイメージを使用して VM インスタンスを作成する
gvnic-vm-image-prod
イメージ プロジェクトのイメージを使用して VM インスタンスを作成するには、VM インスタンスを作成するの手順に従い、イメージ プロジェクトとイメージ ファミリーを指定してください。
Debian
Debian インスタンスを作成するには、次のコマンドを実行します。
gcloud beta compute instances create instance-name \ --image-project=gvnic-vm-image-prod \ --image-family=debian-9-gvnic
instance-name
は、実際のインスタンスの名前に置き換えます。
Windows
Windows 2019 インスタンスを作成するには、次のコマンドを実行します。
gcloud beta compute instances create instance-name \ --image-project=gvnic-vm-image-prod \ --image-family=windows-2019-gvnic
Windows 2016 インスタンスを作成するには、次のコマンドを実行します。
gcloud beta compute instances create instance-name \ --image-project=gvnic-vm-image-prod \ --image-family=windows-2016-gvnic
Windows 2012-r2 インスタンスを作成するには、次のコマンドを実行します。
gcloud beta compute instances create instance-name \ --image-project=gvnic-vm-image-prod \ --image-family=windows-2012-r2-gvnic
instance-name
は、実際のインスタンスの名前に置き換えます。
Compute Engine 仮想ネットワーク ドライバを手動でインストールする
Compute Engine 仮想ネットワーク ドライバがインストールされていないイメージから VM インスタンスを作成するには、次の手順に従います。
- イメージに Compute Engine 仮想ネットワーク ドライバをインストールします。
- Compute Engine 仮想ネットワーク ドライバがインストールされたイメージを使用して、VM インスタンスを作成します。
Linux
Compute Engine 仮想ネットワーク ドライバをインストールする前に、オペレーティング システムに最新バージョンのカーネル ドライバとヘッダーをインストールする必要があります。カーネル ドライバのない Compute Engine 仮想ネットワーク インターフェースを使用するインスタンスでは、内部ネットワークや外部ネットワーク(SSH や RDP など)に接続できません。
ソースからカーネル ドライバをビルドしてインストールするには、ヘッダーがインストールされたサポート対象のカーネルが必要です。Compute Engine 仮想ネットワーク ドライバでは、バージョン 3.10 以降のメインラインおよびメジャー ディストリビューション カーネルに対するビルドがサポートされます。
バージョン 3.10 以降のカーネルとヘッダーをインストールまたは更新します。この手順を完了するには、お使いのオペレーティング システムのドキュメントをご覧ください。ソースコードとドライバ パッケージは、GitHub から入手できます。GoogleCloudPlatform/compute-virtual-ethernet-linux をご覧ください。
イメージを使用して VM インスタンスを作成および起動します。
この VM インスタンスで、カーネル ドライバを読み込みます。ドライバを読み込むには、次のコマンドを実行します。
modprobe gve
このコマンドは、システムを再起動するか、
rmmod
コマンドでドライバを削除するまで、ドライバを読み込みます。(省略可)システム起動時にドライバが自動的に読み込まれるようにするには、次のいずれかのコマンドを実行します。
systemd を使用するオペレーティング システムの場合、次のコマンドを実行します。
echo gve > /etc/modules-load.d/gve.conf
Debian システムの場合、次のコマンドを実行します。
echo gve >> /etc/modules
VM インスタンスを停止します。
停止した VM インスタンスに接続されたディスクからイメージを作成します。
gcloud beta compute images create image-name\ --source-disk disk-name \ --guest-os-features=GVNIC
以下を置き換えます。
image-name
: 作成するイメージの名前。このイメージには、Compute Engine 仮想ネットワーク ドライバがインストールされています。disk-name
: 停止した VM インスタンスにあるブートディスクの名前。
Compute Engine 仮想ネットワーク ドライバがインストールされたイメージを使用して、VM インスタンスを作成および起動します。
Windows
イメージを使用して VM インスタンスを作成および起動します。
この VM インスタンスで、GooGet をインストールします。GooGet をインストールするには、GooGet のダウンロードとインストールをご覧ください。
gVNIC ドライバをインストールします。ドライバをインストールするには、昇格した PowerShell プロンプトで次のコマンドを実行します。
googet install google-compute-engine-driver-gvnic
VM インスタンスを停止します。
停止した VM インスタンスに接続されたディスクからイメージを作成します。
gcloud beta compute images create image-name\ --source-disk disk-name \ --guest-os-features=GVNIC
以下を置き換えます。
image-name
: 作成するイメージの名前。このイメージには、Compute Engine 仮想ネットワーク ドライバがインストールされています。disk-name
: 停止した VM インスタンスにあるブートディスクの名前。
Compute Engine 仮想ネットワーク ドライバがインストールされたイメージを使用して、VM インスタンスを作成および起動します。
Compute Engine 仮想ネットワーク インターフェースが有効であることを確認する
Linux
方法 1
Linux VM インスタンスで、次のコマンドを実行します。
sudo apt install pciutils lspci
出力は次のようになります。
00:04.0 Ethernet controller: Google, XXX. Device 0042
方法 2
オペレーティング システムの手順に沿って、
ethtool
ネットワーク ユーティリティ ツールをダウンロードします。次のコマンドを実行します。
sudo ethtool -i network-interface
network-interface
は、ネットワーク インターフェースの名前に置き換えます。例:eth0
出力は次のようになります。
driver: gve version: 1.0.0 firmware-version: expansion-rom-version: bus-info: 0000:00:04.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no
Windows
- Windows VM インスタンスで、デバイス マネージャーを開きます。
- [ネットワーク アダプター] に、
"Google Ethernet Adapter"
と表示されます。
次のステップ
- インスタンスに接続する。
- 新しいインスタンスに永続ディスクを追加する。
- gVNIC のトラブルシューティングを行う。