在某些情況下,您可能會想將工作負載從現有的虛擬機器執行個體 (VM) 移至較新的 VM。改用新 VM 的原因包括:
- 運用新機器類型,加快儲存空間或網路速度。例如從 C2 升級至 H3,以提升網路頻寬。
- 相較於來源 VM 執行個體,可享有更高的成本效益。舉例來說,您可以從 N1 升級至 N4,以獲得第 5 代 Intel Xeon 處理器的更高價值。
- 使用新 VM 執行個體專屬的功能。舉例來說,您可以從 N4 升級至 C4,以享有額外的效能和維護選項。
- 將虛擬機器 (VM) 執行個體變更為不含作業系統的執行個體。
- 將本機 SSD 磁碟新增至 C3 或 C3D VM 執行個體。
升級至最新一代的機器系列時,如果目前的 (來源) VM 符合下列條件,您或許可以使用「編輯 Compute 執行個體的機器類型」一文所述的簡化程序:
- 新機型系列支援該作業系統 (OS) 版本。
- 新機器系列支援連結至來源 VM 的開機磁碟類型。
- VM 未使用本機 SSD 儲存空間。
- 已附加 GPU 的 VM 使用 G2 機器類型。詳情請參閱新增或移除 GPU。
- VM 僅使用新機型系列支援的功能。
- VM 不屬於代管執行個體群組 (MIG)。
- VM 使用 gVNIC 網路介面。
事前準備
-
如果尚未設定驗證,請先完成設定。
「驗證」是指驗證身分的程序,確認您有權存取 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.
-
Compute 執行個體管理員 (v1) (
roles/compute.admin.v1
) -
如要變更網路類型:
Compute Engine 網路管理員 (
roles/compute.networkAdmin
) -
如要變更機器類型,請按照下列步驟操作:
-
專案的
compute.instances.stop
-
專案的
compute.instances.create
-
專案的
compute.instances.start
-
compute.instances.setMachineType
執行個體
-
專案的
-
如要建立磁碟快照,請按照下列步驟操作:
-
專案的
compute.snapshots.create
-
compute.disks.createSnapshot
磁碟的權限
-
專案的
-
如要建立新磁碟,請按照下列步驟操作:
-
專案的
compute.disks.list
-
專案的
compute.disks.create
-
專案的
compute.disks.update
-
專案的
-
如要將磁碟附加至 VM,請按照下列步驟操作:
-
compute.instances.attachDisk
執行個體 -
compute.disks.use
磁碟的權限
-
-
如要刪除磁碟:
compute.disks.delete
在專案中 -
如要變更網路類型,請按照下列步驟操作:
-
專案的
compute.networks.list
-
專案的
compute.networks.update
-
專案的
- 請參閱機器家族資源說明文件,找出適合工作負載的機器類型。請考量應用程式是否需要特定硬體 (GPU)、高效能或較低的成本。
- 查看新機器類型支援的磁碟類型功能。Hyperdisk 支援大部分的永續磁碟功能,但並非全部。不過,Hyperdisk 提供 Persistent Disk 沒有的其他功能。
- 查看預期機型系列的特色。新機器系列可能不支援您目前使用的機器系列功能,例如自訂機器類型、本機 SSD 或 Shielded VM。
- 請查看地區和區域,確認新機器系列在目前 VM 所在的所有地區都適用。您可能需要調整部署、高可用性和災害復原計畫。
- 查看 OS 遷移計畫:
- 如果新 VM 需要較新版本的 OS,請確認應用程式與較新版本的 OS 相容。
- 如要改用 Arm,但目前作業系統版本沒有可用的 Arm 映像檔,請選擇新的作業系統或作業系統版本來執行應用程式,並確認應用程式與新作業系統相容。
- 只要來源 C3 VM 執行個體使用支援的作業系統和網路驅動程式,就能從 C3 VM 執行個體遷移至 C3 裸機執行個體。
- 如要從 C3 以外的機器系列遷移至裸機執行個體,請務必建立新的執行個體。您可能必須自行執行管理程序,但只要啟用 IDPF 驅動程式,也可以執行任何 C3 裸機支援的作業系統。裸機執行個體會使用 IDPF 網路介面,但只會顯示為實體功能,而非虛擬功能。
- 查看新機型系列支援的儲存裝置類型和儲存裝置介面。
- 根據預設,第一代和第二代機器系列只會使用永久磁碟儲存空間類型和 VirtIO-SCSI 介面。
- 第 3 代以上的機器系列 (例如 M3、C3 和 N4) 僅支援 NVMe 介面,部分機器僅支援 Hyperdisk 和本機 SSD 儲存空間類型。
- Bare Metal 執行個體僅支援 Hyperdisk。
- 光碟相容性:
- 如果開機磁碟使用的磁碟類型不支援新的機器系列 (例如
pd-standard
),則必須為新的 VM 建立新的開機磁碟。 - 如果將作業系統升級至新版本,且作業系統不支援就地升級,則必須建立新的開機磁碟。除非您將來源開機磁碟上的所有資料複製到臨時非開機磁碟,否則這些資料都會遺失。接著,建立新的開機磁碟,並將儲存在暫時性非開機磁碟上的資料複製到新的開機磁碟。
- 如果沒有升級 OS 版本,可以為目前的開機磁碟建立快照,然後還原至新的支援磁碟類型。建立 VM 時,您就可以使用這個新磁碟做為開機磁碟。
- 如果非開機磁碟使用的磁碟類型不支援新的機型系列,您可以按照「變更磁碟類型」一文所述,使用快照將來源磁碟變更為新的磁碟類型。
- 如果開機磁碟使用的磁碟類型不支援新的機器系列 (例如
- 本機固態硬碟無法移至新的 VM。您可以將足夠大的磁碟連接至目前的 VM,儲存所有本機 SSD 資料,然後使用快照將來源磁碟變更為新的磁碟類型,如「變更磁碟類型」一文所述。建立附加本機 SSD 磁碟的 VM 後,即可將資料複製回本機 SSD 磁碟。
- 如果目前的 VM 執行個體使用儲存集區中的磁碟,但您要將工作負載移至其他地區的 VM,則必須在新地區中重新建立磁碟和儲存集區。
- 如果新機型系列使用不同的磁碟介面 (例如 NVMe 而非 SCSI),客體 OS 中的磁碟裝置名稱就會不同。請確保應用程式和指令碼在參照所連線的磁碟時,使用永久裝置名稱或符號連結。
查看新 VM 支援的網路介面。
- 根據預設,第一代和第二代機器系列只會使用 VirtIO 網路介面。
- 第 3 代和更新的機器系列 (例如 M3、C3 和 N4) 僅支援 gVNIC 網路介面。
- 裸機執行個體僅支援 IDPF 網路介面。
確認應用程式和作業系統支援機器系列適用的介面。
檢查 VM 的網路設定,判斷是否需要保留指派的 IP 位址。如果是,您必須將 IP 位址升級為靜態 IP 位址。
如果您目前使用的 VM 採用每部 VM 的 Tier_1 網路效能,請確認新機型系列是否提供或需要這項功能。舉例來說,您可以在 C2 機器類型中使用 Tier_1 網路,但H3 VM 則不需要。
- 在您打算遷移資源的區域和可用區要求配額。如果您有現有的機器類型配額,可以要求轉移該配額。這項程序需要幾天才能完成。
- 為新的 VM 執行個體預留資源,確保新區域和可用區有可用的機器資源。請務必瞭解預留資源的使用方式,並測試是否能使用預留資源。
- 擴充高可用性和災難復原計畫,將新區域納入其中。
- 視需要升級目前 VM 的 OS。
- 如果作業系統供應商支援,請將作業系統就地升級至新機型系列支援的版本,並確認工作負載在新版作業系統上正常運作。
- 如果系統不支援 OS 升級,您必須在建立新 VM 時建立新的開機磁碟。判斷要從目前的開機磁碟複製哪些資訊,然後將這些資訊複製到非開機磁碟的暫時位置,以便轉移至新的 VM。如果目前 VM 沒有任何非開機磁碟:
- 如要瞭解如何為第一代和第二代機器類型新增永久磁碟儲存空間,請參閱「為 VM 新增 Persistent Disk 儲存空間」。
- 如為第三代以上的機器類型,請參閱「為 VM 新增 Hyperdisk 儲存空間」。
- 如果您的 Linux 發行版適用,請檢查
/etc/udev/rules.d/
下的 udev 規則。這個檔案可能包含與目前執行個體硬體設定相關的項目,但與新執行個體無關。舉例來說,以下項目可確保eth0
由virtio-pci
驅動程式 (VirtIO Net) 提供,防止gve
驅動程式 (gVNIC) 提供這個介面。這可能會導致新執行個體發生網路開機指令碼和連線問題: - 在 Linux 系統上,測試更新後的應用程式和指令碼,確保這些項目能搭配持續性裝置名稱或符號連結運作,而不是搭配磁碟裝置名稱。
- 如果是從執行 Microsoft Windows 的 VM 遷移:
- 您必須更新 2022 年 5 月前建立的 VM 上的 NVMe 驅動程式。這項限制適用於目前 VM 中的開機磁碟,以及先前建立的任何快照或自訂映像檔 (用於建立 VM)。
- 您必須重新設定 Windows,才能開始使用 Microsoft NVMe 驅動程式 (StorNVMe)。按照操作說明更新開機裝置。
- 如果新 VM 不支援與目前 VM 相同的磁碟類型,您可能需要更新部署指令碼或執行個體範本,才能支援新的機器系列。
- 如果目前的 VM 使用的開機磁碟類型不支援新的機器系列,且您要遷移多個設定相同的 VM,請建立自訂映像檔,以便建立新的 VM:
- 如要移動本機 SSD 資訊,請建立足夠大的空白磁碟,以備份本機 SSD 磁碟。
- 盡可能使用新 VM 支援的磁碟類型。
- 如果目前的 VM 和新的 VM 都不支援任何磁碟類型,請使用目前的 VM 支援的磁碟類型建立臨時磁碟。
- 將新磁碟附加至目前的 VM,然後格式化並掛接磁碟。
- 將目前 VM 所連本機 SSD 磁碟中的資料複製到這個暫時磁碟。
變更磁碟類型:如果目前 VM 連結的磁碟使用新 VM 不支援的磁碟類型,請變更這些磁碟的類型。如要將磁碟資料移至新磁碟,請建立磁碟快照。您也可以從一個 VM轉移檔案到另一個 VM。
- 您可以在 VM 執行期間建立快照,但快照建立後寫入磁碟的任何資料都不會擷取。由於快照是增量快照,因此停止 VM 後,您可以擷取第二個快照,以擷取所有最新變更。這個方法應可盡量縮短 VM 無法使用的時間,同時切換至新的 VM。
- 或者,您也可以在停止 VM 後,為所有磁碟建立快照。建議您為 VM 連接的所有磁碟建立快照,即使新機型系列支援磁碟類型也一樣。包括含有複製本機 SSD 資料的任何暫時磁碟。
- 建立磁碟快照所需的時間取決於多項因素,例如磁碟大小和磁碟上的資料量。舉例來說,如果您為 1 TiB 的磁碟建立快照,且該磁碟已使用 85% 的空間,則快照可能需要 5 分鐘才能完成。但如果為 100 TiB 的磁碟建立快照 (已使用 85% 的空間),則可能需要 11 分鐘才能完成。建議您在開始遷移程序前,先對磁碟執行測試快照,瞭解建立快照所需的時間。
如果磁碟可以離線,您可以使用下列方法,在來源 VM 仍可用的情況下,將資料移至新磁碟:
- 如果目前的 VM 未使用 gVNIC,您必須建立使用 gVNIC 的網路介面,請參閱「搭配 Compute Engine VM 使用 gVNIC 總覽」,瞭解建立新執行個體時需要採取的步驟。
- 如果您要在新區域中建立 VM,請在新區域中建立虛擬私有雲網路和子網路。
- 如果您已設定自訂 NIC 佇列計數,請參閱佇列分配和變更機器類型。
- 如要保留來源 VM 使用的 IP 位址,請將 IP 位址升級為靜態 IP 位址。
- 取消指派靜態 IP 位址 ,再停止來源 VM。
- VM 的
compute.instances.setMachineType
權限 - 建立新 VM 時,請為開機磁碟選擇其中一種支援的磁碟類型,例如 Hyperdisk Balanced。
- 如果來源 VM 使用的非開機磁碟類型受到新機器系列支援,請從 VM 卸載磁碟。
- 停止來源 VM。
- 為仍附加至來源 VM 的所有磁碟建立快照。
- 使用公開映像檔或設定為使用 gVNIC 的自訂映像檔,建立新的 Compute VM 執行個體。建立新 VM 時,請選擇下列選項:
- 從所選的機器系列中選取機器類型。
- 選取支援的 OS 映像檔,或使用先前建立的自訂映像檔。
- 為開機磁碟選取支援的磁碟類型。
- 如果您是從原始磁碟的快照建立新磁碟,請一併納入這些新磁碟。
- 如果您要在不同區域建立執行個體,請指定新的虛擬私有雲網路。
- 如果新執行個體同時支援 VirtIO 和 gVNIC,請選取 gVNIC。
- 如果您升級來源 VM 的臨時 IP 位址,請指定靜態 IP 位址。
- 啟動新的 VM。
- 將從來源 VM 卸離的磁碟連接至新的 VM。
- 如果來源 VM 連結的任何磁碟使用新 VM 不支援的磁碟類型,請從快照建立磁碟,並將其連結至新執行個體。建立新磁碟時,請選取新 VM 支援的磁碟類型,並指定至少與原始磁碟一樣大的大小。
- 如果原始 VM 對於為新 VM 重新建立的任何磁碟使用資源政策,您必須將資源政策新增至新磁碟。
- 如果您是使用公開 OS 映像檔 (而非自訂映像檔) 建立新 VM,請按照下列步驟操作:
- 在新執行個體上設定必要的使用者、驅動程式、套件和檔案目錄,以支援工作負載。
- 在新 VM 上安裝修改後的應用程式和程式。 視需要在新 OS 或架構上重新編譯程式。
- 選用:如果您已將本機 SSD 磁碟的內容移至暫時磁碟,且新 VM 已附加本機 SSD 儲存空間,則在格式化並掛接磁碟後,即可將資料從暫時磁碟移至本機 SSD 磁碟。
- 將與來源 VM 相關聯的任何靜態 IP 位址重新指派給新的 VM。
- 完成任何其他必要工作,確保新 VM 具備高可用性,例如設定負載平衡器和更新轉送規則。
- 選用:視需要更新新 VM 的 DNS 項目。
- 建議:為新磁碟排定磁碟備份作業。
- 建議:如果您將作業系統變更為其他版本或架構,請重新編譯應用程式。
使用 gcloud compute instances stop 停止 VM:
gcloud compute instances stop VM_NAME \ --zone=ZONE
更改下列內容:
VM_NAME
:目前的 VM 名稱。n1-standard-8
ZONE
:VM 所在的可用區。
建立磁碟快照。使用 gcloud compute snapshots create,為附加至 VM 的永久磁碟開機磁碟和資料磁碟建立快照。
gcloud compute snapshots create SNAPSHOT_NAME \ --source-disk=SOURCE_DISK_NAME \ --source-disk-zone=SOURCE_DISK_ZONE
更改下列內容:
SNAPSHOT_NAME
:要建立的快照名稱。SOURCE_DISK_NAME
:來源磁碟的名稱。SOURCE_DISK_ZONE
:來源磁碟的可用區。
重複上一個步驟,並指定資料磁碟資訊 (而非開機磁碟),為資料磁碟建立新的 Hyperdisk Balanced 磁碟。gcloud compute disks create:
gcloud compute disks create DISK_NAME \ --project=PROJECT_NAME \ --type=DISK_TYPE \ --size=DISK_SIZE \ --zone=ZONE \ --source-snapshot=SNAPSHOT_NAME \ --provisioned-iops=PROVISIONED_IOPS \ --provisioned-throughput=PROVISIONED_THROUGHPUT
更改下列內容:
DISK_NAME
:您要從快照磁碟建立的新磁碟名稱。PROJECT_NAME
:專案名稱。DISK_TYPE
:新的磁碟類型,在本例中為 Hyperdisk Balanced 磁碟。DISK_SIZE
:磁碟大小 (例如:100GB
)。ZONE
:新磁碟所在的區域。SNAPSHOT_NAME
:快照來源磁碟的名稱。- 選用:
PROVISIONED_IOPS
:磁碟的 IOPS 效能 (例如:3600
)。 - 選用:
PROVISIONED_THROUGHPUT
:佈建磁碟的輸送量效能 (例如:290
)。
針對每個已建立快照的磁碟重複上一個步驟。
使用 gcloud compute instances create 建立
n4-standard-8
VM,並連結 Hyperdisk Balanced 磁碟:gcloud compute instances create VM_NAME \ --project=PROJECT_NAME \ --zone=ZONE \ --machine-type=NEW_MACHINE_TYPE \ --boot-disk-device-name=BOOT_DISK_NAME \ --disk=name=NON_BOOT_DISK_NAME, boot=no \ --network-interface=nic-type=GVNIC
更改下列內容:
VM_NAME
:新 VM 執行個體的名稱。PROJECT_NAME
:專案名稱。ZONE
:新 VM 所在的區域。NEW_MACHINE_TYPE
:機器類型,在本例中為n4-standard-8
。BOOT_DISK_NAME
您從附加至n1-standard-8
VM 的來源磁碟快照建立的平衡超磁碟開機磁碟名稱。NON_BOOT_DISK_NAME
:您從連結至n1-standard-8
VM 的來源快照磁碟建立的 Hyperdisk Balanced 資料磁碟名稱。
使用 gcloud compute instances start 啟動
n4-standard-8
VM:gcloud compute instances start VM_NAME
將
VM_NAME
替換為新 VM 的名稱。- 停止 VM。
- 從 VM 卸離磁碟。
- 建立開機磁碟和資料磁碟的快照。
- 建立平衡超磁碟開機和資料磁碟,並使用磁碟快照做為每個磁碟的來源。
- 將機器類型設為 N4 VM。
- 連結 Hyperdisk Balanced 開機磁碟和 Hyperdisk Balanced 資料磁碟。
- 啟動 N4 VM。
使用 instances.stop 方法停止 VM:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/stop
更改下列內容:
PROJECT_NAME
:專案 ID。ZONE
:包含 VM 的可用區。VM_NAME
:目前n1-standard-8
VM 的名稱。
使用 disks.createSnapshot 方法為磁碟建立快照,以便建立附加至執行個體的永久磁碟開機磁碟和資料磁碟快照。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/disks/DISK_NAME/createSnapshot
在要求主體中,加入新快照永久磁碟的名稱。
例如:
{ "name": "SNAPSHOT_NAME" }
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:磁碟所在的區域。DISK_NAME
:您打算建立快照的磁碟。SNAPSHOT_NAME
:快照的名稱,例如hdb-boot-disk
或hdb-data-disk
。
使用 disks.insert 方法建立 Hyperdisk Balanced 磁碟。 您需要執行這個步驟兩次:一次是加入 Hyperdisk Balanced 開機磁碟的
name
,另一次是加入資料磁碟的name
。在要求主體中,使用新的 Hyperdisk Balanced 開機和資料磁碟的sourceSnapshot
、磁碟的type
、Hyperdisk Balanced,以及磁碟的sizeGB
。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEdisks
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:磁碟所在的區域。
在要求主體中加入下列內容:
例如:
{ "name": "my-hdb-boot-disk" or "my-hdb-data-disk", "sourceSnapshot": "projects/your-project/global/snapshots/SNAPSHOT_NAME", "type": "projects/your-project/zones/us-central1-a/diskTypes/hyperdisk-balanced", "sizeGb": "100" }'
使用 instances.insert 方法建立新的 N4 VM。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:磁碟所在的區域。
在要求主體中加入下列內容:
{ "machineType":"projects/your-project/zones/us-central1-a/machineTypes/n4-standard-8" "name":"VM_NAME", "disks": [ { "boot": true, "deviceName": "my-hdb-boot-disk", "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk", "type": "PERSISTENT" }, { "boot": false, "deviceName": "my-hdb-data-disk", "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk", "type": "PERSISTENT" } ], "networkInterfaces":[ { "network":"global/networks/NETWORK_NAME", "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME", "nicType": "GVNIC" } ] }
更改下列內容:
VM_NAME
:VM 的名稱。NETWORK_NAME
:網路名稱。REGION
:區域名稱。SUBNET_NAME
:子網路的名稱。
使用 instances.start 方法啟動 VM:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/start
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:VM 所在的可用區。VM_NAME
:VM 的名稱。
使用 instances.stop 方法停止 VM。
使用 instances.detachDisk 方法卸載磁碟,從 N1 VM 卸載原始永久磁碟開機磁碟。此外,您也必須從 VM 卸離所有資料磁碟。
https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME/detachDisk?deviceName=DISK_NAME
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:磁碟所在的區域。VM_NAME
:附有pd-ssd
磁碟的來源 VM 名稱。DISK_NAME
:要卸離的磁碟。
建立磁碟快照。使用 disks.createSnapshot 方法,為附加至執行個體的永久磁碟開機磁碟和資料磁碟建立快照。
使用 disks.insert 方法建立 Hyperdisk Balanced 開機和資料磁碟,並在要求主體中加入 Hyperdisk Balanced 磁碟的
name
、新 Hyperdisk Balanced 磁碟的sourceSnapshot
、磁碟的type
、Hyperdisk Balanced,以及磁碟的sizeGB
。使用 instances.setMachineType 方法執行就地機器類型升級,並在要求主體中加入
machineType
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/setMachineTypeMACHINE_TYPE
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:磁碟所在的區域。VM_NAME
:要升級的 VM 名稱。MACHINE_TYPE
:新的機器類型。
在要求主體中加入下列內容:
{ "machineType": "projects/PROJECT_NAME/zones/ZONE/machineTypes/MACHINE_TYPE", }
使用 instances.attachDisk 方法,將新的
Hyperdisk Balanced
開機磁碟和 Hyperdisk Balanced 資料磁碟連結至 N4 VM。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instancesVM_NAMEattachDiskDISK_NAME
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:磁碟所在的區域。VM_NAME
:來源 VM 執行個體的名稱,其中附加了pd-ssd
磁碟。DISK_NAME
要連結的磁碟。
在要求主體中加入下列內容:
{ "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-boot-disk", "deviceName":"my-hdb-boot-disk","boot":true }
{ "source": "projects/your-project/zones/us-central1-a/disks/my-hdb-data-disk", "deviceName":"my-hdb-data-disk","boot":false }
使用 instances.start 方法啟動 N4 VM。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONEinstances/VM_NAME/start
更改下列內容:
PROJECT_NAME
:專案名稱。ZONE
:磁碟所在的區域。VM_NAME
:VM 的名稱。
- 您為附加至來源 VM 的磁碟建立的快照。
- 附加至來源 VM 的磁碟的所有快照排程。
- 為將本機 SSD 資料複製到新 VM 而建立的暫時性磁碟。
- 來源 VM 和所有附加磁碟。
- 請參閱 Linux 和 Windows Server 的已知問題。
- 閱讀疑難排解秘訣。
- 進一步瞭解遷移生命週期。
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」。
必要的角色
如要取得編輯或變更 VM 所需的權限,請要求管理員授予您專案的下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這些預先定義的角色具備編輯或變更 VM 所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要編輯或變更 VM,您必須具備下列權限:
評估 VM 遷移選項
從一個機器類型遷移至另一個類型,取決於多項因素,包括:新機器類型的區域可用性,以及儲存空間選項和網路介面與來源和新機器系列的客體 OS 相容性。
運算需求
請查看目前執行個體和新機器類型的下列需求:
儲存空間需求
請詳閱下列儲存空間需求,瞭解目前執行個體和新執行個體類型:
網路需求
請查看目前執行個體和新執行個體類型的下列網路需求:
如要判斷目前 VM 的網路介面類型,請使用
gcloud compute instances describe
指令查看 VM 的nic-type
:gcloud compute instances describe VM_NAME --zone=ZONE
如果 VM 已將
nic-type
設為VIRTIO
,您就無法變更網路介面類型。您必須建立新的 VM,並將網路介面類型設為 gVNIC。準備遷移現有 VM
完成評估部分後,接下來的步驟是準備遷移 VM 執行個體,方法是為新的 VM 執行個體要求資源,並準備來源 VM 執行個體的備份。
準備運算資源
如要準備將目前的執行個體移至新執行個體,請完成下列步驟:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="virtio-pci", ATTR{dev_id}=="0x0", KERNELS=="0000:00:04.0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
準備儲存空間資源
如要準備將目前執行個體所連磁碟中的資料移至新執行個體,請完成下列步驟:
準備網路資源
如要更新目前執行個體使用的網路設定,以支援新執行個體,請完成下列步驟:
準備 SUSE Enterprise Linux Server 作業系統
為避免硬體專屬依附元件,請重建
initramfs
(初始 RAM 檔案系統)。包括更多驅動程式和模組,讓作業系統與其他執行個體類型相容。否則會遇到已知問題,導致 VM 無法正常啟動。關閉系統前,請以根身分執行下列指令,使用所有驅動程式重建
initramfs
:sudo dracut --force --no-hostonly
將工作負載移至新的 VM
準備好要遷移的 VM 後,下一步就是將工作負載移至新的 VM。
如要將 VM 從第一代遷移至第二代機器系列,請參閱「編輯 VM 的機器類型」頁面的操作說明。如要變更現有 VM 的名稱,請參閱「重新命名 VM」一文。
這項工作需要的權限
如要執行這項工作,您必須具備以下權限:
本節說明如何將工作負載從第一代或第二代 VM 遷移至第三代 (或更新) VM。在這個程序中,您會建立新的 VM 執行個體,然後將工作負載移至新的 VM。
建立新的 VM
將工作負載從第一代或第二代 VM (例如 N1 或 N2) 遷移至第三代或更新版本時,您必須先建立新的 VM,然後再遷移工作負載。
執行個體啟動後
新執行個體建立並啟動後,請完成下列步驟,以完成新執行個體的設定,並從來源執行個體複製所有資料。
如果遷移工作負載時遇到問題,請聯絡技術帳戶管理員 (TAM) 或 Google 專業服務團隊 (PSO) 尋求協助。
從 n1-standard-8 遷移至 n4-standard-8 的範例
以下範例是將
n1-standard-8
VM 遷移至n4-standard-8
VM。n1-standard-8
VM 具有執行Ubuntu1804
映像檔的PD-SSD
開機磁碟,以及PD-SSD
資料磁碟。您必須使用 CLI 或 REST API 執行這項程序。如要將 N1 VM 升級為 N4 VM,有兩種做法:
選項 1:如果 N1 VM 使用
VirtIO
網路介面,則必須建立新的 N4 VM。N4 僅支援gvnic
網路介面和 Hyperdisk Balanced 磁碟。您要建立永久磁碟開機和資料磁碟的快照,然後透過這些快照建立平衡超磁碟,並連結平衡超磁碟,最後使用平衡超磁碟建立新的 N4 VM。您也可以選擇使用較新版本的 Ubuntu OS,建立新的 Hyperdisk Balanced 開機磁碟。在這種情況下,您可以從開機磁碟快照建立新的 Hyperdisk Balanced 磁碟,但請將該磁碟以非開機磁碟的形式連結至 N4 VM。然後將還原的快照中的非系統資料複製到新的開機磁碟。
選項 2:如果 N1 VM 使用
gvnic
網路介面、作業系統具有 NVMe 儲存裝置驅動程式、沒有任何附加的本機 SSD 磁碟或 GPU,且不屬於受管理執行個體群組 (MIG),則可將機器類型從 N1 變更為 N4,但仍須將永久磁碟類型變更為 Hyperdisk Balanced 磁碟。您必須先卸離永久磁碟開機和資料磁碟、建立磁碟快照、使用快照做為來源建立 Hyperdisk Balanced 磁碟,然後在變更機器類型後,將新的 Hyperdisk Balanced 磁碟連結至 N4 VM。如果 VM 已連結 GPU,則必須先解除連結。建立磁碟快照所需的時間取決於多項因素,例如磁碟上的總 TB 數。舉例來說,如果您為 1 TB 的磁碟建立快照,且磁碟已使用 85% 的空間,快照可能需要 5 分鐘才能完成。但如果為 100 TB 的磁碟建立快照,且磁碟已使用 85% 的空間,則可能需要 11 分鐘才能完成。Google 建議您在開始遷移程序前,先執行磁碟的測試快照,瞭解建立快照需要多少時間。
gcloud
方法 1:使用快照磁碟建立新的 N4 VM:
方法 2:執行電腦就地升級:
只有在 N1 VM 使用
gvnic
網路介面、作業系統有 NVMe 儲存裝置驅動程式、未附加任何本機 SSD 磁碟或 GPU,且不屬於代管執行個體群組 (MIG) 時,才能使用這個選項。如果使用具有VirtIO
網路介面的 N1 VM 執行這項程序,會產生 VM 不相容錯誤。REST
方法 1:使用快照磁碟建立新的 N4 VM:
方法 2:執行電腦就地升級:
只有在 N1 VM 使用
gvnic
網路介面、未附加任何本機 SSD 磁碟或 GPU,且不屬於受管理執行個體群組 (MIG) 時,才能使用這個選項。如果使用具有VirtIO
網路介面的 N1 VM 執行這項程序,會產生 VM 不相容錯誤。清除所用資源
確認可以連線至新 VM,且工作負載在新 VM 上正常運作後,即可移除不再需要的資源:
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-09 (世界標準時間)。
-