返回部落格

搭配自動定期快照的儲存管理

搭配自動定期快照的儲存管理

不久前,我們推出了擷取快照的功能。這是一個非常實用的功能,讓您即使在運行中的系統上,也能快速且高效地儲存磁碟狀態。

得益於 ZFS,自動快照將只會消耗目前狀態與建立快照時之間的差異。這意味著,如果您的原始磁碟為 15GB,且在快照與目前狀態之間僅變更了 1MB 的資料,則快照的大小將為 1MB。如果您再向磁碟寫入 1MB,快照將再增加 1MB。

此系統的另一個優點是,任何快照都可以升級(複製)為完整的磁碟機。這意味著您可以建立一個獨立的複本,並將其掛載到伺服器上,甚至可以完全掛載在不同的儲存系統上。因此,這構成了儲存管理策略的基礎(取決於您的工作負載)。

注意事項

雖然使用定期快照可以作為您備份策略的一部分,但將快照作為您唯一的策略是不明智的。

在許多情況下,使用這些快照也無法發揮作用,例如對正在運行的資料庫伺服器進行快照。快照功能在已停止的資料庫伺服器上可能仍然有用(用於建立特定時間點的還原),但同樣地,它不應該是您唯一的備份策略。

建立自動快照

使用我們的 Python library,自動化快照非常簡單。然而,考慮到我們需要將 CloudSigma 憑證儲存在觸發快照的系統上,我們強烈建議您不要以不安全的方式公開生產服務憑證。例如,如果您想在雲端伺服器上運行此程式,請確保它與基礎設施的其餘部分隔離(例如使用我們的網路策略功能),並且已完全鎖定。

安裝 Python 函式庫之後,您可以按照以下步驟下載並執行該指令碼:

[bash light=”true”] $ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot.py
$ python snapshot.py drive-uuid my-snapshot
[/bash]

snapshot.py 需要兩個參數:

  • 您想要建立快照的磁碟 UUID
  • 快照的易記名稱

在您手動建立快照並確認其正常運作後(您可以在磁碟的 ‘snapshot’ 區段下看到此內容),我們現在可以將其自動化。

執行此類任務最適合且最標準化的方式是使用 crontab (假設您使用的是 Linux 或 Mac OS X)。

使用與您在上方建立快照時相同的使用者執行:
[bash light=”true”] $ crontab -e
[/bash]

如果您想在每天凌晨 1 點建立快照,請新增以下行:

您還會注意到,該指令碼將記錄到執行該指令碼之使用者的家目錄中名為 snapshot.log 的檔案中。

自動清除快照

由於快照會隨著時間而增加,您可能希望在一段時間後刪除這些快照。為了解決這個問題,我們建立了另一個可以為您執行此操作的指令碼。該指令碼名為 snapshot_purge.py 並且需要兩個參數:

  • 磁碟的 UUID
  • 您想要保留的快照天數

例如,如果您想保留 30 天的快照,只需執行:
[bash light=”true”] $ wget https://raw.githubusercontent.com/cloudsigma/pycloudsigma/master/samples/snapshot_purge.py
$ python snapshot_purge.py drive-uuid 30
[/bash]

您當然也可以將此操作自動化。例如,如果我們想清除超過 30 天的快照,可以將以下內容新增到我們的 crontab 中(將於凌晨 1:30 執行):

總結

以上就是全部內容。使用這兩個腳本,您將能夠自動化您的磁碟快照。如果您需要對多個磁碟進行快照,只需將更多含有不同 UUID 的 snapshot.py 行新增到您的 crontab 中即可。

當然,我們目前只是觸及了快照功能的皮毛,但我希望這能作為在您的儲存管理流程中使用快照的快速入門課程。

如果您有更複雜的資料保留需求,希望您可以重複使用上述腳本中的部分程式碼。

author

Viktor Petersson

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的創意設計師,專注於透過傳統與創新行銷渠道建立一致的企業形象。他擅長將藝術願景與策略行銷相融合,創造具有影響力的品牌敘事。

留言

目前尚無留言。成為第一個留言的人吧。