本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
計算巢備份的使用場景,實現方式,費用與使用方法。
背景介紹
在實際使用中,用戶經常遇到需要對數據做備份的場景,例如:
幻獸帕魯游戲的私服,因游戲本身原因經常會出現掉檔情況,為解決這個問題,需要按時備份。
某數據庫服務,為保證數據安全,需要進行備份,降低可能發生的故障損失。
某服務,需要做升級,但是升級過程中可能導致數據丟失。因此在升級前需要做數據備份。
在過去,計算巢用戶遇到需要備份服務實例數據的場景,需要自行在各云產品的控制臺做備份。例如,如果服務實例部署于ecs,則用戶需要登錄ecs控制臺,篩選找到服務實例部署的ECS,手動給該ECS的云盤打快照;而恢復則需要用戶自行查找自己做備份用的云盤快照,并在ECS控制臺做數據回滾。很顯然,當需要備份的云盤或RDS實例較多時,會因操作非常繁瑣而不便于用戶使用。而且,恢復時,用戶需要自行記錄哪個名稱的云盤快照或RDS實例的備份是自己需要的,比較容易出現錯誤。為解決這個問題,計算巢上線了備份管理功能,以實現在計算巢控制臺,一鍵為服務實例的云資源數據做備份或恢復。
實現原理
計算巢的備份與恢復功能,主要依賴底層云資源的備份與恢復能力。因此,計算巢是否支持某個云產品的備份與恢復,一方面取決于計算巢是否針對該云產品開發了相關功能,另一方面也取決于該云產品是否支持對自己的數據最備份與恢復。當前計算巢支持備份和恢復的云產品有:
阿里云塊存儲(云盤)。
引擎為MySQL、SQL Server、PostgreSQL的阿里云RDS實例。
備份
在數據備份前,計算巢會生成一個空的備份記錄。該記錄會存儲備份開始時間、備份結束時間、備份狀態以及本次備份涉及到的各云產品的實例ID及其備份狀態。
在做數據備份時,計算巢會根據服務實例ID,利用云資源上的tag標簽篩選出隸屬于該服務實例的所有云資源,并篩選出其中的塊存儲(云盤)與前文所述類型引擎的RDS實例。而后會逐個調用各云產品的api以實現數據的備份。調用api成功后,計算巢會循環掃描各云產品的備份結果。當備份狀態為終態時(成功or失敗)會記錄下結果并展示給用戶。一般情況下,一次計算巢的備份會涉及到多個云產品的多個實例。只要還有一個實例處于“備份中”,計算巢的備份記錄就會處于“備份中”。當所有云產品的所有實例都完成備份后,只要有任意云產品的任意實例備份失敗,計算巢的備份記錄會被標記為“備份失敗”;只有所有云產品的所有實例都備份成功,計算巢的備份記錄才會被標記為“備份成功”。
恢復
與備份類似,在恢復前,計算巢會生成一個空的恢復記錄。該記錄會存儲恢復開始時間、恢復結束時間、恢復基于的備份的ID、整體恢復狀態以及本次恢復涉及到的各云產品資源id及其恢復狀態。
由于云盤在做數據恢復時,必須保證其掛載的ECS實例是停機狀態。因此,在恢復前,計算巢會將服務實例整體關機。關機完成后,會查詢恢復基于的備份數據ID,逐個調用各云產品的api做數據恢復。api調用成功后,計算巢會循環掃描各云產品的恢復結果。當恢復狀態為終態時(成功or失敗)會在恢復記錄中記錄下結果并展示給用戶。一般情況下,一次計算巢的恢復會涉及到多個云產品的多個實例。只要還有一個實例處于“恢復中”,計算巢的恢復記錄就會處于“恢復中”。當所有云產品的所有實例都完成恢復后,只要有任意云產品的任意實例恢復失敗,計算巢的恢復記錄會被標記為“恢復失敗”;只有所有云產品的所有實例都恢復成功,計算巢的恢復記錄才會被標記為“恢復成功”。當恢復完成后,計算巢會再次將服務實例開機。需要特別指出的是,由于恢復機制原因,MySQL引擎或PostgreSQL引擎的RDS實例在恢復過程中庫表會被重命名,進而引起原庫或原表找不到。為了解決這個問題,在遇到上述兩個引擎的RDS實例恢復時,計算巢會利用FC函數向RDS實例執行庫表重命名的SQL,將庫名或表名重新命名為原值。因此,如果您的服務實例中包含MySQL引擎或PostgreSQL引擎的RDS實例,在恢復過程中可能產生FC的費用。
如果您服務實例中包含MySQL引擎或PostgreSQL引擎的RDS實例,那么在恢復過程中可能會產生FC的費用。
費用
計算巢備份功能本身不會產生費用。由于計算巢備份功能是依賴各云產品的備份能力,因此費用的產生主要是各云產品備份所產生的。主要有以下三部分:
使用方式
如果您部署的服務已經開啟了備份與恢復功能,您可以在服務實例詳情頁對實例進行備份與恢復操作。
備份
進入服務實例列表頁,點擊服務實例id進入服務實例詳情頁
進入備份與恢復TAB頁,即可點擊“創建備份”。
警告創建備份過程中,請不要對服務實例做任何操作或數據變更。
等待備份完成,如果備份失敗,您可在失敗的備份記錄的氣泡窗內查看失敗原因
恢復
您可單擊備份操作列的恢復按鈕。
單擊確定后,會開始恢復。您可在恢復任務TAB頁,查看恢復任務列表。
警告恢復操作將會引起服務實例的關機,建議您在恢復前進行一次備份操作。
在恢復期間,請不要對服務實例做任何操作或數據變更。
等待恢復結束。如果失敗,您可以在恢復失敗任務上查看失敗原因。