Google Virtual NIC (gVNIC) 是專為 Compute Engine 設計的虛擬網路介面,可做為以 virtIO 為基礎的乙太網路驅動程式替代方案。
gVNIC 是新一代的網路介面,取代了 VirtIO,成為 Compute Engine 中唯一支援的網路介面,適用於所有新的機器類型 (第 3 代以上)。較新的機器系列和網路功能需要 gVNIC,而非 VirtIO。將 gVNIC 做為新式 I/O 介面與 Compute Engine VM 搭配使用,可帶來下列優勢:
- 提供更優異的效能。
- 減少其他客戶爭搶資源的問題,進而提高一致性。
- 導入 VirtIO 無法提供的新網路功能。
所有機器系列、機器類型和世代都支援 gVNIC,建議使用這項功能。
如要達到下列頻寬上限,必須使用 gVNIC:
- 頻寬為 50 到 200 Gbps,且 VM 支援各 VM 的 Tier_1 網路效能
- 頻寬為 50 到 1800 Gbps,適用於已連結 GPU 的 VM
您必須使用 gVNIC 做為機密 VM 執行個體、第三代或後續機器系列 VM,以及在 Arm CPU 平台上執行的 VM 的網路介面。
事前準備
- 如果您在 Windows Server 2022 或 Windows 11 VM 中使用 gVNIC,請將 gVNIC 驅動程式更新至 GooGet 套件版本
1.0.0@45
以上,以提升網路輸送量。詳情請參閱已知問題。 -
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- OS 映像檔未包含 gVNIC 驅動程式
- OS 映像檔未採用最新版 gVNIC 驅動程式
- 如為 Linux VM,請參閱「Linux 核心驅動程式 Compute Engine 虛擬乙太網路」。
- 如要瞭解在 FreeBSD 上執行的 VM,請參閱「Compute Engine 虛擬乙太網路 FreeBSD 驅動程式」。
- 如果是 Windows VM,請參閱「Compute Engine 虛擬乙太網路的 Windows 驅動程式」。
- 安裝在 Windows 執行個體上時,網路頻寬最高可達 200 Gbps,但該執行個體必須設定為使用 Tier_1 網路和 gVNIC。
- 支援巨型封包,但 N4 除外。
- 選擇支援 gVNIC 的公開 OS 映像檔,或建立已標記為使用 gVNIC 的自訂 OS 映像檔。
- 使用公開或自訂 OS 映像檔建立 VM。建立 VM 時,請將網路介面設定為使用 gVNIC。
- 確認 gVNIC 已啟用。
選取支援 gVNIC 的 OS 映像檔或映像檔系列。 詳情請參閱「作業系統詳細資料」。
使用上一步選取的 OS 映像檔或映像檔系列,建立自訂 OS 映像檔,並以
GVNIC
標記這個 OS 映像檔。如要建立自訂 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 映像檔,建立 Rocky Linux 8 Optimized for Google Cloud OS 映像檔,請執行下列指令: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 映像檔,並以
GVNIC
標記這個 OS 映像檔。如要建立 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 控制台的「Create an instance」(建立執行個體) 頁面。
輸入 VM 執行個體的「名稱」。
選取要建立 VM 的「Zone」(可用區)。
在「Boot disk」(開機磁碟) 區段,按一下 [Change] (變更)。
在「開機磁碟」面板的「自訂映像檔」分頁中,完成下列步驟:
- 選擇含有您先前建立 OS 映像檔的來源專案。
- 從「圖片」下拉式選單中選取圖片。
- 按一下 [選取]。
如要將 gVNIC 設為網路介面,請展開「Advanced options」(進階選項) 專區,然後執行下列操作:
- 展開「Networking」(網路) 區段。
- 在「網路介面卡」中選取
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 的網路資源網址。如果未指定網路和子網路,系統會使用預設網路global/networks/default
。SUBNET_NAME
:子網路名稱。系統會根據指定的子網路推斷網路。此為選填欄位。YOUR_IMAGE_PROJECT
:含有 OS 映像檔的專案名稱。IMAGE_NAME
:在上一步中建立的 OS 映像檔。- 在 Windows VM 執行個體上開啟「Device Manager」(裝置管理員)。
- 在「Network Adapters」(網路介面卡) 底下,會看到:
"Google Ethernet Adapter"
- 連線至執行個體。
- 在新的執行個體中新增永久磁碟。
- 設定各個 VM 的 Tier_1 網路效能。
- 變更 VPC 網路的 MTU 設定。
- 瞭解巨型封包。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
定價
如要查看 Tier_1 網路的最新價格,請參閱 VM 執行個體定價頁面。
如需其他查詢定價資訊的方法,請參閱 Compute Engine 定價。
作業系統支援
在 Compute Engine 上,您可以選擇在任何支援的公開作業系統 (OS) 映像檔上使用 gVNIC。在下列情況下,您可以手動安裝 gVNIC 驅動程式:
如要瞭解支援的作業系統,請參閱介面分頁中的作業系統。此外,請查看「網路功能」分頁,確認是否支援網路功能。
在不支援的作業系統上使用
如果作業系統映像檔支援 gVNIC,但未包含最新版本的 gVNIC 驅動程式,您可以從 GitHub 下載最新版本的驅動程式。
您可以在 Linux 或 Windows VM 上手動設定及安裝最新版 gVNIC 驅動程式。
將 VM 中的作業系統更新為使用 gVNIC 後,請根據該作業系統映像檔建立自訂作業系統映像檔。然後,您可以使用自訂 OS 映像檔,在該作業系統上建立使用 gVNIC 的其他 VM。如要進一步瞭解如何使用自訂 OS 映像檔建立 VM,請參閱本頁的「建立支援 gVNIC 的自訂 OS 映像檔」一節。
請按照下列程序手動設定及安裝最新版 gVNIC 驅動程式。
將 Windows 的 gVNIC 驅動程式更新至最新版本
Windows 專用的 gVNIC 驅動程式更新版本可提升網路效能。如果安裝在採用第三代或更新版本支援機器系列的運算執行個體上,驅動程式可提供下列改善項目:
如要使用更新版 gVNIC 驅動程式,請在 Powershell 視窗中執行
googet
指令,更新 gVNIC 驅動程式。這個指令會列出所有可用的更新。系統提示您輸入 gVNIC 驅動程式時,請輸入y
。googet update
安裝並設定 Windows 使用更新版 gVNIC 驅動程式後,即可設定巨型封包,達到最佳輸送量。詳情請參閱「傳輸單位上限」。
搭配 Compute Engine VM 使用 gVNIC 的總覽
如要建立使用 gVNIC 的 VM,請完成下列步驟:
如有任何問題,請參閱「排解 Google 虛擬 NIC 問題」。
建立支援 gVNIC 的自訂 OS 映像檔
您可以使用 Google Cloud CLI 或 REST 建立 OS 映像檔。如需建立自訂 OS 映像檔的詳細資訊和最佳做法,請參閱「建立自訂 OS 映像檔」。
gcloud
REST
建立支援 gVNIC 的 VM
您可以透過支援的公開 OS 映像檔建立 VM,也可以使用按照「建立支援 gVNIC 的自訂 OS 映像檔」一文步驟建立的自訂 OS 映像檔。
您也可以選擇在 VM 上啟用 DPDK,加快網路封包處理速度、降低延遲,並提升效能穩定性。
對於支援多個網路介面 (NIC) 的 VM,您可以將不同類型的 NIC 連接至 VM,因為介面支援是依據每個 NIC 設定。雖然系統支援這種做法,但我們不建議您這麼設定。對於支援多個 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。
主控台
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 問題」。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-11 (世界標準時間)。
-