永久磁碟快照的最佳做法

您隨時都可以建立永久磁碟快照,但採用下列最佳做法能更快更穩妥地建立快照。

事前準備

讓快照具有一致性的準備作業

多數情況下,即使應用程式正將資料寫入永久磁碟,您也能建立磁碟快照,快照仍會有良好的一致性。快照的品質取決於應用程式能否使用您在系統執行繁重寫入工作負載時所建立的快照進行復原。

如果您的應用程式對一致性有極高的要求,建議您採取下列步驟,以確保快照與所需的永久磁碟狀態吻合。

建立快照前先清除磁碟緩衝區

即使應用程式正將資料寫入永久磁碟,您仍可建立磁碟快照。在建立快照前先清除磁碟緩衝區並同步處理檔案系統,有助於提升快照的一致性。

暫停會將資料寫入該永久磁碟的應用程式或作業系統程序。接著清除磁碟緩衝區,然後再建立快照。

如要在建立快照前先為永久磁碟做好準備,請執行下列步驟:

  1. 使用 SSH 連線至您的執行個體
  2. 執行適當的指令來清除磁碟中的應用程式快取資料。例如,MySQL 擁有 FLUSH 陳述式。請使用任何適用於您應用程式的工具。
  3. 讓應用程式停止將資料寫入永久磁碟。
  4. 執行 sudo sync

如果略過此步驟,快照只會包含應用程式成功推送到磁碟中的資料,而此情形對應用程式而言有如突然停電一般。

凍結並卸載檔案系統

您也可以選擇先凍結或卸載檔案系統再建立快照。如要確實完整清空磁碟緩衝區,這是最可靠的做法,但不如單純清除磁碟緩衝區這種方式省時簡便。

完整卸載永久磁碟,以確保建立快照時沒有任何資料寫入永久磁碟。一般不需要採取這個步驟,不過此做法能提高快照的一致性。

  1. 使用 SSH 連線至您的執行個體
  2. 停止正在讀取永久磁碟資料或將資料寫入永久磁碟的所有應用程式。
  3. 凍結或卸載檔案系統。

    1. 凍結:sudo fsfreeze -f [example-disk_location]
    2. 卸載:sudo umount [example-disk_location]

    快照建立完成後,您可以使用以下指令來取消凍結或掛接檔案系統:

    1. 取消凍結:sudo fsfreeze -u [example-disk_location]
    2. 掛接:sudo mount [example-disk_location mount_location]

Linux 使用者

如果您的磁碟連線至 Linux 執行個體,請透過連線至您的執行個體並使用 umount 的方式,從執行個體卸載磁碟:

sudo umount /dev/disk/by-id/google-[DISK_NAME]

其中 [DISK_NAME] 是永久磁碟的名稱。

Windows 使用者

如果您的磁碟連線至 Windows 執行個體,請透過連線至您的執行個體並使用磁碟管理工具的方式,從執行個體卸載磁碟。

重新掛接永久磁碟

建立快照之後,您必須重新掛接永久磁碟。詳情請參閱格式化及掛接永久磁碟一節。

如果應用程式需要多個永久磁碟之間皆具備一致性,則必須先凍結或卸載每個磁碟上的所有檔案系統,並完成這些磁碟的所有快照,再重新啟用應用程式。Compute Engine 無法保證多個永久磁碟上同時執行的快照會是一致的。

使用日誌記錄檔案系統 (例如 ext4),避免資料只經過快取而未實際寫入永久磁碟的情況發生。

使用 Windows Server 執行個體的永久磁碟

如果永久磁碟是附加到 Windows Server 執行個體,請使用 VSS 快照來協助維護資料完整性。

頻繁、有效率地建立快照

使用快照來有效率地管理資料。

  • 定期建立資料快照,能將因非預期故障而遺失資料的情形降到最低。

  • 減少過多的快照下載,並建立映像檔且重複使用,解此提升效能。

  • 將建立快照的時間安排在非尖峰時段,藉此縮短建立快照所需的時間。

建立常用快照的映像檔

如果您反覆使用同一區域中的某個快照來建立永久磁碟,可改成使用快照一次,然後建立該快照的映像檔來節省網路費用。儲存並使用此映像檔來建立磁碟和啟動 VM 執行個體。如需操作說明,請參閱建立自訂的映像檔一節。

最佳做法是每小時建立一個磁碟快照。請避免以更頻繁的頻率建立快照。達成上述建議的最簡單方法就是設定快照排程

使用現有快照做為後續快照的基準

如果您已為某個永久磁碟建立快照,日後再為同一個磁碟建立快照時,系統會自動使用現有快照做為基準。

  • 請先為永久磁碟建立新的快照,再刪除同一個永久磁碟先前的快照。系統若能使用先前的快照,並僅讀取永久磁碟中新增或修改過的資料,就能更迅速地建立新快照。

  • 請先等新快照建立完成後,再繼續為同一個永久磁碟建立快照。如果您在同一個永久磁碟上同時執行兩個快照,這兩個快照會從相同的基準開始執行,導致重複執行相同作業。如果您等到新快照建立完成後才採取動作,則系統能更快速地建立後續快照,這是因為後續快照只需取得上一個快照建立後才變更的資料。

將快照建立作業安排在離峰時段

如果安排系統定期建立永久磁碟快照,建議盡可能將作業時間安排在離峰時段,以縮短製作每個快照所需的時間。

  • 請將自動建立快照的作業時間安排在永久磁碟所在區域的工作天。一般而言,建立快照的高峰時間是在工作天結束時。
  • 請於永久磁碟所在區域的早晨較早安排自動執行快照建立作業,而不是在午夜立即安排該作業。一般而言,建立快照的高峰時間是在午夜。

在不同的永久磁碟上整理資料

如建立永久磁碟快照,任何您儲存在磁碟上的資料都會包含在快照中。磁碟中的資料量越龐大,快照檔案也會越大。換句話說,建立快照的成本與時間也會增加。為確保您只為所需的資料建立快照,請使用不同的永久磁碟來整理資料。

  • 將重要資料儲存在次要永久磁碟中,切勿存放在開機磁碟。這樣一來,就能只在需要時,或是以較低的頻率建立開機磁碟快照。
  • 如果您為開機磁碟建立了快照,請將交換分區、分頁檔、快取檔案和一般記錄檔儲存在其他永久磁碟中。由於這類檔案和分區會經常變更,系統很可能會在建立快照的程序中將其視為變更過的資料,因而加入增量快照中。
  • 將類似的資料儲存在同一個永久磁碟上,以減少需要建立的快照數量。請將作業系統和易變性資料,與要建立快照的資料存放在不同的地方。不過不需要像在實體機器上一樣,將重要資料放在多個永久磁碟中。一個大型永久磁碟的效能,與總容量相同的多個小型永久磁碟的效能,二者並無差異。

在永久磁碟上啟用 discard 選項或執行 fstrim

在 Linux 執行個體上,如果您沒有使用 discard 選項格式化及掛接永久磁碟,請先在執行個體上執行 fstrim 指令,再建立快照。此指令會移除檔案系統不再需要的區塊,讓系統更快建立大小較小的快照。請參閱格式化及掛接永久磁碟的相關說明,瞭解如何在永久磁碟上設定 discard 選項。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件