您隨時都可以建立永久磁碟和 Google Cloud Hyperdisk 快照,但採用下列最佳做法能更快更穩妥地建立快照。
安全性考量
為避免權限提升,請務必只將快照相關的 IAM 權限授予您信任的實體,讓對方能讀取及還原快照或即時快照資料。使用者可透過下列權限,讀取快照或即時快照中的資料,並還原資料:
compute.snapshots.useReadOnly
compute.instantSnapshots.useReadOnly
任何擁有上述權限之一的實體,都可以將專案中的快照或即時快照還原至其控制的專案,包括位於其他機構的專案。舉例來說,如果惡意使用者在您的專案中取得快照 IAM 角色,就能在個人專案中還原快照,並存取快照中的資料。
如要瞭解如何檢查主體的權限,請參閱「判斷哪些主體具備特定角色或權限」。
讓快照具有一致性的準備作業
如果您在應用程式執行期間建立永久磁碟或 Hyperdisk 的快照,快照可能不會擷取從記憶體傳輸至磁碟的待處理寫入作業。由於這些不一致性,快照可能無法反映您擷取快照時的確切應用程式狀態。在這種情況下,系統會將快照視為「異常終止一致」,因為快照會擷取應用程式的狀態,就好像機器在擷取快照時發生異常終止一樣。
您可以視需要暫停應用程式,讓所有應用程式交易完成,並在快照擷取前,將所有待處理的寫入作業從記憶體清除到磁碟。在這種情況下,快照會視為「與應用程式一致」。
建立與當機一致的快照
擷取永久磁碟或 Hyperdisk 的快照時,您不需要採取任何額外步驟,即可讓快照發生當機時保持一致。特別是,您不需要暫停工作負載。
如果工作負載無法容許暫停,請考慮採用下列程序建立與當機相符的快照:
- 在應用程式執行期間擷取快照,假設會有某些應用程式資料不一致。
- 確認您可以還原工作負載,讓其恢復至可接受的應用程式狀態。
- 根據上一個步驟,保留或刪除快照。
當您使用與當機相符的快照時,可能需要先重播檔案系統和應用程式層級的記錄。因此,快照的品質取決於應用程式能否從與當機一致的狀態快速復原,並繼續提供服務。
建立與應用程式一致的快照
- Windows Server 使用者:如果磁碟已連結至 Windows Server 執行個體,請使用 VSS 快照。
- Linux 使用者:如要讓已連結至 Linux 執行個體的磁碟快照達到應用程式一致性,請建立快照前置和後置殼層指令碼,為應用程式一致性做好準備。然後建立啟用
guest-flush
選項的影像。這會在擷取快照前後執行前置和後置指令碼。如需操作說明,請參閱「建立與 Linux 應用程式一致的快照」。
手動建立與應用程式一致的快照
在某些情況下,您可能需要手動暫停應用程式,才能取得應用程式一致的快照。
舉例來說,如果您需要在多個 Persistent Disk 或 Hyperdisk 磁碟區之間維持應用程式一致性,請使用這個選項。在這種情況下,您必須先凍結每個磁碟上的所有檔案系統,並完成這些磁碟的所有快照,再重新啟用應用程式。
您不需要停止 VM。應用程式暫停可能涉及凍結及卸載檔案系統等作業。手動暫停應用程式後,請務必等到快照資源達到 UPLOADING
狀態,再繼續執行工作負載。
要求快照時,請呼叫 globalOperations.get
方法,檢查作業狀態。下表顯示快照作業狀態與快照資源狀態之間的關係。
作業狀態 | 快照資源狀態 |
---|---|
PENDING |
目前沒有任何快照資源。 |
RUNNING |
CREATING 或 UPLOADING
CREATING :快照建立作業尚未完成。
UPLOADING :已建立快照,但尚未儲存至 Cloud Storage。 |
DONE |
FAILED 或 READY 。 |
快照頻率限制
您可以拍攝磁碟快照的頻率有限制。
使用永久磁碟或 Hyperdisk 建立快照
每 60 分鐘最多可為個別磁碟建立 6 個快照。
如果超過上限,作業就會失敗並傳回以下錯誤:
"code": "RESOURCE_OPERATION_RATE_EXCEEDED", "message": "Operation rate exceeded for resource 'projects/project-id/zones/zone-id/disks/disk-name'. Too frequent operations from the source resource."
此限制適用於下列作業:
這項限制不適用於下列作業:
- 建立磁碟快照的排程。排定時間的快照有不同的頻率考量,不會計入快照頻率限制。
- 手動匯入開機磁碟映像檔
最佳做法是每小時建立一個磁碟快照。請避免以更頻繁的頻率建立快照。達成上述建議的最簡單方法就是設定快照排程。
使用快照建立新的區域磁碟
您可以針對每個目標可用區,從指定的快照建立新的區域性永久磁碟或 Hyperdisk,每 60 分鐘最多 6 次。目標可用區是指從快照建立的新磁碟的儲存位置。Google Cloud 無法保證您可以以比這更快的速度從快照建立磁碟,但如果您在過去一小時內未從快照建立任何磁碟,則可能可以更頻繁地建立磁碟。
請注意,同一個磁碟的多個快照會視為這項頻率限制的不同快照。
如果超過這個限制,作業就會失敗並傳回以下錯誤:
"code": "RESOURCE_OPERATION_RATE_EXCEEDED", "message": "Operation rate exceeded for resource 'projects/project-id/global/snapshots/snapshot-name'. Too frequent operations from the source resource."
此限制適用於下列作業:
以下作業不適用這項限制:
- 使用快照建立新的地區永久磁碟。
- 使用映像檔做為來源,建立新的區域性或地區性永久磁碟。
如要從快照建立多個磁碟,請使用快照建立映像檔,然後再從映像檔建立磁碟:
如為非開機磁碟,請按照從映像檔建立永久磁碟的操作說明操作,並使用下列步驟:
- 在 Google Cloud 控制台中,將磁碟的「來源類型」設為「圖片」。
- 使用 gcloud CLI 時,請使用
image
旗標。 - 如果使用 REST,請使用
sourceImage
參數。
使用現有快照做為後續快照的基準
如果您已為某個磁碟 (永久磁碟或 Hyperdisk) 建立快照,日後再為同一個磁碟建立快照時,系統會自動使用現有快照做為基準。
- 請先為磁碟建立新的快照,再刪除同一個磁碟先前的快照。系統若能使用先前的快照,並僅讀取磁碟中新增或修改過的資料,就能更迅速地建立新快照。
- 請先等新快照建立完成後,再繼續為同一個磁碟建立快照。如果您在同一個磁碟上同時執行兩個快照,這兩個快照會從相同的基準開始執行,導致重複執行相同作業。如果您等到新快照建立完成後才採取動作,則系統能更快速地建立後續快照,這是因為後續快照只會取得上一個快照建立後才變更的資料。
將快照建立作業安排在離峰時段
如果安排系統定期建立磁碟 (永久磁碟或 Hyperdisk) 快照,建議盡可能將作業時間安排在離峰時段,以縮短製作每個快照所需的時間。
- 請將自動建立快照的作業時間安排在磁碟所在區域的工作天。一般而言,建立快照的高峰時間是在工作天結束時。
- 請於磁碟所在區域的早晨較早安排自動執行快照建立作業,而不是在午夜立即安排該作業。一般而言,建立快照的高峰時間是在午夜。
在不同的磁碟上整理資料
如建立磁碟 (永久磁碟或 Hyperdisk) 快照,任何儲存在磁碟上的資料都會包含在快照中。磁碟中的資料量越龐大,快照檔案也會越大。換句話說,建立快照的成本與時間也會增加。為確保您只為所需的資料建立快照,請使用不同的磁碟來整理資料。
- 將重要資料儲存在次要或資料磁碟中,切勿存放在開機磁碟。這樣一來,就能只在需要時,或是以較低的頻率建立開機磁碟快照。
- 如果您為開機磁碟建立了快照,請將交換分區、分頁檔、快取檔案和一般記錄檔儲存在其他磁碟中。由於這類檔案和分區會經常變更,系統很可能會在建立快照的程序中將其視為變更過的資料,因而加入增量快照中。
- 將類似的資料儲存在同一個磁碟上,以減少需要建立的快照數量。請將作業系統和易變性資料,與要建立快照的資料存放在不同的地方。不過不需要像在實體機器上一樣,將重要資料放在多個磁碟中。一個大型磁碟的效能,與總容量相同的多個小型磁碟的效能,二者並無差異。
在磁碟上啟用 discard
選項或執行 fstrim
在 Linux 執行個體上,如果您沒有使用 discard 選項格式化及掛接磁碟 (永久磁碟或 Hyperdisk),請先在執行個體上執行 fstrim
指令,再建立快照。此指令會移除檔案系統不再需要的區塊,讓系統更快建立大小較小的快照。如要瞭解如何在磁碟上設定 discard 選項,請參閱「在 Linux VM 上格式化及掛接非啟動磁碟」。
建立常用快照的映像檔
如果您反覆使用同一區域中的某個快照來建立磁碟 (永久磁碟或 Hyperdisk),可改成使用快照一次,然後建立該快照的映像檔來節省網路費用。儲存並使用此映像檔來建立磁碟和啟動 VM 執行個體。如需操作說明,請參閱建立自訂的映像檔一節。
最佳做法是每小時建立一個磁碟快照。請避免以更頻繁的頻率建立快照。達成上述建議的最簡單方法就是設定快照排程。
其他最佳做法
- 使用日誌記錄檔案系統 (例如
ext4
),避免資料只經過快取而未實際寫入永久磁碟的情況發生。 - 定期建立資料快照,能將因非預期故障而遺失資料的情形降到最低。
後續步驟
- 瞭解如何建立磁碟快照。
- 瞭解如何查看、列出、分享及刪除快照。
- 瞭解如何建立磁碟快照的排程。