永久磁碟快照的最佳做法

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

事前準備

備妥永久磁碟以便建立一致性極高的快照

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

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

在快照前清除磁碟緩衝區

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

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

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

  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 執行個體,請透過連線至您的執行個體並使用卸載工具的方式,從執行個體卸載磁碟:

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

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

Windows 使用者

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

重新掛接永久磁碟

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

如果您的應用程式對多個永久磁碟之間的一致性有極高的要求,您必須先凍結或卸載每個磁碟上的所有檔案系統,接著為所有磁碟建立快照,然後再繼續執行應用程式。在多個永久磁碟上同時執行快照時,Compute Engine 無法確保這些快照之間的一致性。

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

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

如果永久磁碟連結的是 Windows Server 執行個體,請使用 VSS 快照來維護資料完整性。

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

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

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

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

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

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

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

妥善管理不同永久磁碟上的資料

為某個永久磁碟建立快照後,該磁碟上的所有資料都會包含在快照中。磁碟中的資料量越龐大,快照檔案也會越大。換句話說,建立快照的成本與時間也會增加。為了確保僅為所需資料建立快照,建議您妥善管理不同永久磁碟上的資料。

  • 將重要資料儲存在次要永久磁碟中,切勿存放在開機磁碟。如此一來,您就只需要在必要時為開機磁碟建立快照即可,或是不需要經常建立快照。
  • 您若為開機磁碟建立了快照,請將交換分區、分頁檔、快取檔案和一般記錄檔儲存在其他永久磁碟中。由於這類檔案和分區會經常變更,系統很可能會在建立快照的程序中將其視為修改過的資料,因而加入增量快照中。
  • 將類似的資料儲存在同一個永久磁碟上,以減少需要建立的快照數量。雖然作業系統資料和揮發性資料應該與要建立快照的資料分開儲存,但這不代表您需要比照實體機器的做法,把重要資料分散儲存在多個永久磁碟中。一個大型永久磁碟與總容量相同的多個小型永久磁碟在效能上並無差異。

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

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

後續步驟

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

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

這個網頁
Compute Engine 說明文件