本頁說明如何將 VM 執行個體從一個網路遷移至另一個網路。如果 VM 使用多個網路介面連線至多個網路,這個程序會更新其中一個介面,並保留其餘介面。
系統支援下列遷移作業:
- 從舊版網路遷移至同一專案中的虛擬私有雲網路
- 從一個虛擬私有雲網路連線至同一專案中的另一個虛擬私有雲網路
- 從虛擬私有雲網路的一個子網路連線至同一網路的另一個子網路
- 從服務專案網路到共用虛擬私有雲主專案的共用網路
無論如何,VM 都會留在原本的區域和可用區。只有附加的網路會變更。
事前準備
- 參閱虛擬私有雲說明文件。
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 Trusted Cloud by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:
gcloud init
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:
gcloud init
詳情請參閱 Trusted Cloud 驗證說明文件中的「Authenticate for using REST」。
需求條件
遷移 VM 前,請確認 VM 符合下列條件:
- VM 必須停止運作。為確保 VM 中的客體 OS 能在停止作業完成前正常關機,您可以選擇在 VM 中啟用正常關機。
- VM 不得屬於執行個體群組或網路端點群組 (NEG)。申請條件如下:
- 如果 VM 屬於非代管執行個體群組或 NEG,您必須先從群組中移除 VM,才能遷移 VM。
- 如果 VM 屬於代管執行個體群組 (MIG),則無法遷移。請改為使用具有不同 VM 屬性的執行個體範本,建立新的 MIG。
- 您可以移動目標集區中的執行個體,不必先移除。目標集區會擴大,涵蓋這兩個聯播網。
限制
- 您無法將 VM 介面遷移至舊版網路。
- 遷移期間,系統會變更分配給網路介面的 MAC 位址。這可能會影響與 MAC 位址緊密相關的服務,例如第三方授權協議。
- 如果將 VM 遷移至 IP 範圍不同的網路或子網路,執行個體的內部 IP 位址就必須變更。如果遷移至 IP 範圍相同的子網路,只要舊 IP 位址未在目的地使用,您就可以在遷移期間指定該位址,藉此保留舊 IP 位址。
- 如果目標子網路的 IP 範圍與來源不同,介面的 IP 位址會變更,以符合新的子網路範圍。
- 您可以在新位置保留 VM 現有的外部 IP 位址。如要這麼做,您必須具備目標網路的
compute.subnetworks.useExternalIp
權限,且目標網路不得透過 constraints/compute.vmExternalIpAccess 限制停用外部 IP 位址。
遷移 VM
Google 建議您先在新網路中建立必要的防火牆規則、路徑、負載平衡器和其他網路基礎架構資源,再遷移 VM。這麼做可以縮短 VM 離線時間。
如要遷移 VM,請選取下列任一選項:
主控台
前往 Trusted Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
按一下 VM 執行個體名稱,開啟詳細資料頁面。
如果 VM 正在執行,請按一下「停止」
停止 VM。如果沒有「停止」選項,請依序點選 「更多動作」> 「停止」。VM 停止後,請按一下「編輯」
。在「Network interfaces」(網路介面) 下方,按一下要移動的介面。
在介面的「Network」(網路) 欄位中,選取介面的新網路。
在介面的「Subnetwork」(子網路) 欄位中,選取介面的新子網路。
在「內部 IP 位址」欄位中,如要讓系統從子網路範圍分配 IP 位址,請指定「自動」;如要自行指定未使用的 IP 位址,請指定「自訂」。
按一下「Done」(完成),關閉網路介面編輯面板。
按一下 [儲存]。
VM 儲存完畢後,按一下「Start」(啟動)
。如果出現確認對話方塊,請按一下「開始」。
gcloud
停止 VM
gcloud compute instances stop INSTANCE_NAME \ --zone=ZONE_NAME
其中
- INSTANCE_NAME 是 VM 執行個體名稱。
- ZONE_NAME 是包含執行個體的區域名稱。
遷移 VM
gcloud compute instances network-interfaces update INSTANCE_NAME \ --zone=ZONE_NAME \ --network-interface=NIC \ --network=NETWORK_NAME \ --subnetwork=SUBNET_NAME
其中
- INSTANCE_NAME 是 VM 執行個體名稱。
- ZONE_NAME 是包含執行個體的區域名稱。
- NIC 是您要更新的介面名稱。在單一介面 VM 中,NIC 為
nic0
。 - NETWORK_NAME 是目標網路名稱。如果您要將 VM 從服務專案網路遷移至主專案網路,必須使用目標網路的完整名稱:
projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
- SUBNET_NAME 是目標子網路名稱。這個子網路必須與 VM 位於同一區域。如果您要將 VM 從服務專案網路遷移至主專案網路,必須使用子網路的完整名稱:
projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
啟動 VM
遷移作業可能需要幾分鐘,請稍候再嘗試在新位置啟動 VM。
gcloud compute instances start INSTANCE_NAME \ --zone=ZONE_NAME
其中
- INSTANCE_NAME 是 VM 執行個體名稱。
- ZONE_NAME 是包含執行個體的區域名稱。
REST
停止 VM
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/stop
其中
- PROJECT_ID 是您的專案 ID。
- INSTANCE_NAME 是 VM 執行個體名稱。
- ZONE_NAME 是包含執行個體的區域名稱。
查看執行個體的詳細資料。
GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME
其中
- PROJECT_ID 是您的專案 ID。
- ZONE_NAME 是包含執行個體的區域名稱。
- INSTANCE_NAME 是 VM 執行個體名稱。
找出介面的指紋。
您需要指紋才能更新網路介面。
檢查指令輸出內容,找出
networkInterfaces
欄位內容。找到要更新的介面名稱項目 (在單一介面 VM 中,名稱為nic0
)。複製這個項目中fingerprint
欄位的字串,以供下一個步驟使用。遷移 VM
PATCH https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/updateNetworkInterface?networkInterface=NIC { "network": NETWORK_NAME, "subnetwork": SUBNET_NAME, "networkIP": IP_ADDRESS, "name": NIC, "fingerprint": FINGERPRINT }
- PROJECT_ID 是您的專案 ID。
- ZONE_NAME 是包含執行個體的區域名稱。
- INSTANCE_NAME 是 VM 執行個體名稱。
- NIC 是您要更新的介面名稱。在單一介面 VM 中,NIC 為
nic0
。 - NETWORK_NAME 是目標網路名稱。如果您要將 VM 從服務專案網路遷移至主專案網路,必須使用目標網路的完整名稱:
projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
- SUBNET_NAME 是目標子網路名稱。這個子網路必須與 VM 位於同一區域。如果您要將 VM 從服務專案網路遷移至主專案網路,必須使用子網路的完整名稱:
projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
- IP_ADDRESS 是您希望執行個體在新位置擁有的內部 IP 位址。如果省略這個欄位,系統會自動指派介面。
- FINGERPRINT 是您在上一個步驟中取得的指紋。
啟動 VM
POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE_NAME/instances/INSTANCE_NAME/start
其中
- PROJECT_ID 是您的專案 ID。
- INSTANCE_NAME 是 VM 執行個體名稱。
- ZONE_NAME 是包含執行個體的區域名稱。
後續步驟
- 瞭解如何將執行個體移至另一個區域。
- 瞭解即時遷移。
- 查看 VM 的狀態。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-08 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-08-08 (世界標準時間)。"],[[["This document explains how to migrate a Virtual Machine (VM) instance's network interface from one network to another, including legacy to VPC, VPC to VPC, subnet to subnet, and service project to shared network migrations, all while keeping the VM in its original region and zone."],["VM migration requires the VM to be stopped, and it cannot be part of a managed instance group (MIG), although VMs in unmanaged instance groups or Network Endpoint Groups (NEGs) can be migrated after being removed from the group, and VMs in target pools can be moved directly."],["During migration, the VM's MAC address will change, and the internal IP address might change if the target subnet has a different IP range, although you can choose to keep the old IP address if it is available in the new location or specify a new one."],["You can migrate a VM's network interface using the Google Cloud console, `gcloud` command-line tool, or the REST API, with each method requiring the VM to be stopped before starting the migration process."],["While migrating a VM interface, it is mandatory to not have the target network be a legacy network and for the user to create necessary firewall rules, routes, load balancers and other network infrastructure in the new network before migrating the VM."]]],[]] -