[英]In Google Cloud does Schedule Snapshots have any impact on (instance disk/snapshot disk) if writes are going on parallely?
我正在嘗試為我的GCP實例安排快照,我只是想知道快照數據或實際磁盤數據是否有可能損壞/或將受到任何影響。 我的意思是假設我正在創建快照,同時正在進行一些寫操作,如何確保這不會在實際磁盤或快照中引起任何錯誤?
答案取決於您的操作系統。
Microsoft Windows Server支持快照。 Windows將停止文件系統活動並准備快照。 在操作系統運行時,這是一種安全的操作。
拍攝快照時,Linux並沒有做任何特別的事情(不添加第三方軟件)。 這意味着在操作系統運行時,Linux上的快照並不安全。 關閉操作系統,然后對磁盤進行快照或映像並重新啟動實例。
除非操作系統對快照進行特殊處理,否則打開的文件,緩存,數據庫句柄等將存儲在內存中。 此數據不是快照的一部分。 因此,在某些情況下,這將導致快照不一致。 這意味着數據損壞。
Google不建議使用實時系統快照。 AWS或Azure都沒有。
由於持久性磁盤的快照不是瞬時的,因此並行寫入可能會破壞操作。
通常,請按照以下步驟進行安全的快照過程:
這些最佳做法由Google Cloud直接推薦,並描述如下: https : //cloud.google.com/compute/docs/disks/snapshot-best-practices
是的,建議您在創建快照之前先停止實例,但是根據我的經驗,如果實例仍在運行; 它的I / O似乎沒有受到影響。 但是快照中的實際信息可能已損壞。
切記要按計划快照查看項目的配額,而成本將與網絡流量有關。
我為您提供了有關時間表快照的更多信息的鏈接: https : //cloud.google.com/compute/docs/disks/scheduled-snapshots
沒有。
拍攝快照時對永久磁盤性能沒有影響。
快照將保留所有已完成的IO操作,直到拍攝快照的時間點為止。 但是,根據您使用的應用程序,它可能處於不一致狀態。 例如,如果您使用innodb_flush_log_at_trx_commit = 2
運行MySQL,則可能會丟失一些數據,因為某些事務在被確認為應用程序之前可能未刷新為PD。
如果使用innodb_flush_log_at_trx_commit = 0
(默認值)運行MySQL,則理論上它應該能夠進行崩潰恢復並還原所有提交的轉換。 實際上,應用程序和文件系統中可能存在錯誤,因此建議您定期測試恢復過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.