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
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
定價
如要查看 Tier_1 網路的最新價格,請參閱 VM 執行個體定價頁面。
如需其他查詢定價資訊的方法,請參閱 Compute Engine 定價。
作業系統支援
在 Compute Engine 上,您可以選擇在任何支援的公開作業系統 (OS) 映像檔上使用 gVNIC。在下列情況下,您可以手動安裝 gVNIC 驅動程式:
- OS 映像檔未包含 gVNIC 驅動程式
- OS 映像檔未採用最新版 gVNIC 驅動程式
如要瞭解支援的作業系統,請參閱介面分頁中的作業系統。此外,請查看「網路功能」分頁,確認是否支援網路功能。
在不支援的作業系統上使用
如果作業系統映像檔支援 gVNIC,但未包含最新版本的 gVNIC 驅動程式,您可以從 GitHub 下載最新版本的驅動程式。
您可以在 Linux 或 Windows VM 上手動設定及安裝最新版 gVNIC 驅動程式。
將 VM 中的作業系統更新為使用 gVNIC 後,請根據該作業系統映像檔建立自訂作業系統映像檔。然後,您可以使用自訂 OS 映像檔,在該作業系統上建立使用 gVNIC 的其他 VM。如要進一步瞭解如何使用自訂 OS 映像檔建立 VM,請參閱本頁的「建立支援 gVNIC 的自訂 OS 映像檔」一節。
請按照下列程序手動設定及安裝最新版 gVNIC 驅動程式。
- 如為 Linux VM,請參閱「Linux 核心驅動程式 Compute Engine 虛擬乙太網路」。
- 如要瞭解在 FreeBSD 上執行的 VM,請參閱「Compute Engine 虛擬乙太網路 FreeBSD 驅動程式」。
- 如果是 Windows VM,請參閱「Compute Engine 虛擬乙太網路的 Windows 驅動程式」。
將 Windows 的 gVNIC 驅動程式更新至最新版本
Windows 專用的 gVNIC 驅動程式更新版本可提升網路效能。如果安裝在採用第三代或更新版本支援機器系列的運算執行個體上,驅動程式可提供下列改善項目:
- 安裝在 Windows 執行個體上時,網路頻寬最高可達 200 Gbps,但該執行個體必須設定為使用 Tier_1 網路和 gVNIC。
- 支援巨型封包,但 N4 除外。
如要使用更新版 gVNIC 驅動程式,請在 Powershell 視窗中執行
googet
指令,更新 gVNIC 驅動程式。這個指令會列出所有可用的更新。系統提示您輸入 gVNIC 驅動程式時,請輸入y
。googet update
安裝並設定 Windows 使用更新版 gVNIC 驅動程式後,即可設定巨型封包,達到最佳輸送量。詳情請參閱「傳輸單位上限」。
搭配 Compute Engine VM 使用 gVNIC 的總覽
如要建立使用 gVNIC 的 VM,請完成下列步驟:
- 選擇支援 gVNIC 的公開 OS 映像檔,或建立已標記為使用 gVNIC 的自訂 OS 映像檔。
- 使用公開或自訂 OS 映像檔建立 VM。建立 VM 時,請將網路介面設定為使用 gVNIC。
- 確認 gVNIC 已啟用。
如有任何問題,請參閱「排解 Google 虛擬 NIC 問題」。
建立支援 gVNIC 的自訂 OS 映像檔
您可以使用 Google Cloud CLI 或 REST 建立 OS 映像檔。如需建立自訂 OS 映像檔的詳細資訊和最佳做法,請參閱「建立自訂 OS 映像檔」。
gcloud
選取支援 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
如要進一步瞭解何時該使用映像檔系列,請參閱映像檔系列最佳做法。
REST
選取支援 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 映像檔:
建立支援 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。
主控台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
輸入 VM 執行個體的「名稱」。
選取要建立 VM 的「Zone」(可用區)。
在「Boot disk」(開機磁碟) 區段,按一下 [Change] (變更)。
在「開機磁碟」面板的「自訂映像檔」分頁中,完成下列步驟:
- 選擇含有您先前建立 OS 映像檔的來源專案。
- 從「圖片」下拉式選單中選取圖片。
- 按一下 [選取]。
如要將 gVNIC 設為網路介面,請展開「Advanced options」(進階選項) 專區,然後執行下列操作:
- 展開「Networking」(網路) 區段。
- 在「網路介面卡」中選取
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 的網路資源網址。如果未指定網路和子網路,系統會使用預設網路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 執行個體上開啟「Device Manager」(裝置管理員)。
- 在「Network Adapters」(網路介面卡) 底下,會看到:
"Google Ethernet Adapter"
疑難排解
如要排解 gVNIC 問題,請參閱「排解 Google Virtual NIC 問題」。
後續步驟
- 連線至執行個體。
- 在新的執行個體中新增永久磁碟。
- 設定各個 VM 的 Tier_1 網路效能。
- 變更 VPC 網路的 MTU 設定。
- 瞭解巨型封包。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-29 (世界標準時間)。
-