Google Virtual NIC (gVNIC) 是專為 Compute Engine 設計的虛擬網路介面。gVNIC 是以 virtIO 為基礎的乙太網路驅動程式的替代方案。
gVNIC 是 VirtIO 的後繼產品,也是新一代網路介面,取代 VirtIO-Net,成為 Compute Engine 支援的唯一網路介面,適用於所有新的機器類型 (第 3 代及後續版本)。較新的機器系列和網路功能需要使用 gVNIC,而非 VirtIO。使用 gVNIC 做為 Compute Engine VM 的新型 I/O 介面,可享有下列優勢:
- 提供更優異的效能。
- 減少鄰居問題,提升一致性。
- 提供 VirtIO 以外的新網路功能。
所有機器系列、機器類型和世代都支援 gVNIC,且建議使用。
必須使用 gVNIC 才能達到下列頻寬速率上限:
- 50 到 200 Gbps 的頻寬,適用於支援各 VM Tier_1 網路效能的 VM
- 50 到 1800 Gbps 的頻寬,適用於已連結 GPU 的 VM
您必須使用 gVNIC 做為機密 VM 執行個體、第三代或後續機器系列 VM 和在 Arm CPU 平台上執行的 VM 的網路介面。
事前準備
- 如果您使用 gVNIC 搭配 Windows Server 2022 或 Windows 11 VM,請將 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.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the 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.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
定價
如要查看 Tier_1 網路的最新價格,請參閱 VM 執行個體定價頁面。
如要瞭解其他可用來查看定價資訊的方法,請參閱「Compute Engine 定價」。
作業系統支援
在 Compute Engine 中,您可以選擇在任何支援的公開作業系統 (OS) 映像檔上使用 gVNIC。在下列情況下,您可以手動安裝 gVNIC 驅動程式:
- OS 映像檔不含 gVNIC 驅動程式
- OS 映像檔未安裝最新版 gVNIC 驅動程式
如要瞭解支援的作業系統,請參閱作業系統的「介面」分頁標籤。另外,請查看「網路功能」分頁標籤,瞭解網路功能支援情形。
在未支援的作業系統上使用
如果作業系統映像檔支援 gVNIC,但不包含最新版的 gVNIC 驅動程式,您可以從 GitHub 下載最新版的驅動程式。
您可以在 Linux 或 Windows VM 上手動設定及安裝最新版本的 gVNIC 驅動程式。
更新 VM 中的作業系統以使用 gVNIC 後,請根據該 OS 映像檔建立自訂 OS 映像檔。接著,您可以使用自訂 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 驅動程式可提供更佳的網路效能。在使用第三代或後續支援機器系列的運算執行個體上安裝時,驅動程式可提供下列改善功能:
- 在已設定為使用 Tier_1 網路和 gVNIC 的 Windows 執行個體上安裝時,網路頻寬最高可達 200 Gbps。
- 支援 Jumbo 框架 (N4 除外)。
如要使用更新版的 gVNIC 驅動程式,請在 Powershell 視窗中執行 googet
指令來更新 gVNIC 驅動程式。這個指令會列出所有可用的更新項目。系統提示時,請輸入 y
以安裝 gVNIC 驅動程式。
googet update
安裝及設定 Windows 以使用更新版 gVNIC 驅動程式後,您可以設定 Jumbo 框架,以便達到最佳傳輸量。詳情請參閱「傳輸單位上限」。
使用 gVNIC 搭配 Compute Engine VM 的總覽
如要建立使用 gVNIC 的 VM,請完成下列步驟:
- 選擇支援 gVNIC 的公開 OS 映像檔,或建立標示為使用 gVNIC 的自訂 OS 映像檔。
- 使用公開或自訂的 OS 映像檔建立 VM。在建立 VM 的過程中,請將網路介面設為使用 gVNIC。
- 確認是否已啟用 gVNIC。
如果遇到任何問題,請參閱「排解 Google 虛擬網路介面卡問題」。
建立支援 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
:包含來源作業系統映像檔或映像檔系列的專案名稱
示例
如要使用 Compute Engine
rocky-linux-8-optimized-gcp
映像檔系列中的最新 OS 映像檔,建立 Rocky Linux 8 Optimized for Google Cloud 映像檔,請執行下列指令: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 映像檔,請使用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
:您要使用的特定作業系統映像檔或映像檔系列的 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,以便加快網路封包處理速度、降低延遲並維持穩定的效能。
如果 VM 支援多個網路介面 (NIC),您可以將不同類型的 NIC 連結至 VM,因為每個 NIC 都會設定介面支援功能。雖然系統支援這種做法,但我們不建議採用這種設定。如果 VM 支援多個 NIC,請務必在建立 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] (變更)。
在「Boot disk」面板的「Custom images」分頁中,完成下列操作:
- 選擇含有先前建立的 OS 映像檔的來源專案。
- 從「圖片」下拉式選單中選取圖片。
- 按一下 [選取]。
如要將 gVNIC 設為網路介面,請展開「Advanced options」專區,然後執行下列操作:
- 展開「Networking」(網路) 區段。
- 在「Network interface card」(網路介面卡) 中選取
gVNIC
。
視需要調整其他虛擬機器設定。
按一下「建立」,建立 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
中的 OS 映像檔my-gvnic-rocky8
,在區域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
:將 IP 位址指派給 VM--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 設定。
- 瞭解巨型封包。