玩转ECS第7讲 | ECS数据保护-数据备份新特性与最佳实践
關鍵詞:極速備份、崩潰一致性、異地備份
演講嘉賓簡介:余初武(悟元),阿里云技術專家,2011年加入阿里巴巴,一直從事服務端研發工作;2015年加入阿里云ECS團隊,在ECS管控、云盤、快照等多個管控領域有豐富的研發經驗。
以下內容根據演講視頻以及PPT整理而成。觀看回放
更多課程請進入“玩轉ECS詳情頁”了解
本次分享主要圍繞以下三個方面:
一、快照極速可用特性
二、一致性快照組
三、總結與思考
數據是企業重要資產,作為存儲數據的介質,IT設施發生問題是不可避免的,人為誤操作或者程序bug導致數據丟失的情況也偶有發生。因此,每一個企業都應該做好數據備份,保證數據的安全與業務的可用。
為了提升備份與同步的性能,阿里云推出了快照極速可用特性和一致性快照組,為了客戶提供更高性能的數據備份功能。
本文將重點介紹如何利用這兩個新特性,以及阿里云提供的各種運維部署工具,便捷地完成云上自建數據庫的數據備份的兩個最佳實踐。
第一個是自建數據庫的磁盤擴容場景,適用于大多數的企業;第二個則是使用了多磁盤自建數據庫的場景,則更多見于大型復雜的業務。
一、極速可用特性——秒級,非一致性數據備份
阿里云ECS的極速可用特性主要包括四個方面,分別是快照秒級可用、云盤回滾性能0損失、ESSD增值特性以及全地域支持等。阿里云ECS極速可用特性的典型使用場景包括快速搭建研發測試環境;業務關鍵配置的變更保護,實現秒級備份相關磁盤數據;云盤極速回滾,并實現回滾的磁盤性能無損耗。
基于極速可用的特性,用戶僅需要幾秒鐘的時間就可以復制出一個新磁盤。
這一過程也非常簡單,首先創建一個帶極速可用特性的快照,關鍵參數的設置如下圖所示,主要包括InstantAccess和InstantAccessRetentionDays,前者設置為True就可以設置成為極速可用的快照,后者則是極速可用特性的保留天數,可以讓這特性到期之后就會自動被關閉。當快照創建完成(極速可用特性開啟的情況下,不需要等快照進度完成)之后,就能夠快速創建磁盤并立即掛載使用。
案例:自建數據庫,磁盤空間不夠,怎么辦?
在這樣的情況下,最直接能想到的解決方案是純人工方式。
首先,對于需要擴容的磁盤打好一個普通快照,這個過程一般都比較慢,往往需要幾分鐘、幾小時以及幾天不等的時間。
其次,需要人工登錄到控制臺對磁盤進行在線擴容。
再次,要登錄到實例內部找到相應的磁盤進行擴展分區以及文件系統等各種命令的操作,而這些命令往往是非常復雜的,也是非常容易出錯的。
這一方案的缺點十分明顯,那就是耗時很久,平均需要1到2小時,而且很容易出錯。
而目前阿里云推薦的最佳解決方案是將上述過程全部通過編碼實現自動化,做成OOS(運維編排,Operation Orchestration Service)的模板,通過OOS模塊實現一鍵擴容,完成上述方案的全部過程。
這種方案的使用方式就非常簡單了,用戶可以直接進入到OOS控制臺,找到相應的模板并創建一個相應的執行即可,整個過程只需要幾十秒就可以完成,而且可以進一步優化至十幾秒。
接下來對于剛才提到的OOS一鍵擴容的關鍵技術內幕進行講解。
其實在該方案背后主要包括三個關鍵技術:分別是快照的極速可用特性、通過云助手執行擴展分區的命令以及磁盤的序列號。
這里值得注意的是通過云助手執行擴展分區命令時,我們無法知道具體擴展的是哪一塊磁盤,因此才需要磁盤的序列號。
磁盤序列號這一特性目前在公有云ECS上也已經上線了,用戶通過DescribeDisks就可以返回磁盤序列號SerialNumber,之后通過云助手將磁盤序列號傳遞給GuestOS內部的腳本,而GuestOS內部的腳本則可以通過udevadm info這串命令獲取任意一塊磁盤已掛載設備的序列號,這個序列號與DescribeDisks返回的序列號是完全一致的,而且從磁盤誕生之后,序列號就不會再發生任何改變,因此可以作為磁盤在GuestOS內部的唯一標識,并且與OpenABI的接口實現唯一關聯。
這樣才能幫助我們準確無誤地找到需要擴展的磁盤去執行相應的命令。同時,因為ECS具有快照極速可用特性,秒級地打出了一個數據備份,一旦發生任何意外,還可以通過快照實現秒級回滾,基本可以做到萬無一失地實現自動擴容過程。
二、一致性快照組——崩潰一致性數據備份
介紹完快照極速可用特性,我們繼續跟大家分享下一致性快照組。
一致性快照組的主要特點主要包括四點:即多云盤IO寫入一致性、ESSD云盤增值特性、實例級別保護以及功能免費。
適用的場景主要有三種:
第一種場景,企業上云的時候可以實現實例級別整機的保護和備份;
第二種場景,自建數據庫特別是跨多云盤自建數據的模式下,一定要使用一致性快照來備份;
第三種場景是SAP HANA的整機一致性保護,也需要用到一致性快照。
案例:使用多數據盤自建數據庫
這里要介紹的案例是自建數據庫時使用了多數據盤,這樣的做法主要是為了將數據庫常見的日志和數據拆分到獨立的云盤上去,使得整個數據庫的性能和穩定性都能夠得到較大的提升,同時實現日志和數據的讀寫隔離。
在這種情況下,一旦需要拆分就會遇到兩塊磁盤上數據存在強關聯關系的問題。熟悉數據庫的同學都知道,任何一次寫操作都會先進行日志操作,日志寫完之后再去修改真正的數據,當數據寫入完成之后再回來修改日志,比如像MySQL的Redo日志等。
可見,日志和數據存在強依賴邏輯關系,此時如果打普通快照,那么存在任何一點點時差都會導致寫入數據在兩塊磁盤上存在不一致的問題,此時就必須要用到一致性快照,實現崩潰一致性的數據備份。
對于這樣的案例場景,阿里云也提供了最佳實踐,也就是使用ROS(資源編排,Resource Orchestration Service)。
該方案的基本過程就是將上述理念通過ROS實現模板化,通過ROS創建完全一樣的數據庫系統。方案關鍵點在于創建兩塊獨立的數據盤,一塊放數據,另外一塊放日志,同時對于兩塊數據盤賦予系統的數據庫快照策略Auto Snapshot Policy,并定期地對于兩塊盤進行數據備份,并且使用一致性快照進行備份,避免出現廢棄數據的問題。
三、總結與思考
以上的案例都是基于自建數據庫的,這兩個案例的關鍵點在于多數據盤和自動擴容磁盤。
將上述兩個案例進行串聯才能夠看到真實的使用場景,也就是先用ROS固化上述提到的最佳實踐過程,也就是實現多數據盤,即日志盤和數據盤的隔離,并且使用自動快照的策略定期地打一致性快照。
與此同時,配上云監控就能夠在磁盤空間不足的時候,及時報警,此時在通過OOS一鍵擴容實現磁盤的自動擴容。
當然,這個過程還可以更進一步優化,在OOS控制臺配置相應的云監控項目,當收到監控項報警之后自動觸發OOS運行和擴容的模板進行一鍵擴容,真正地實現自動擴容,也就是所謂“無人值守”。
對于本次介紹的新特性進行總結,本次主要介紹了極速可用和一致性快照兩個新特性,這兩個新特性很快就會上線供大家使用。
對于極速可用特性而言,建議結合OOS、云助手來磁盤或者其他場景的自動運維實踐。如果要對云盤進行操作或者自動化運維則需要使用磁盤序列號在GuestOS內部唯一地標識一塊磁盤,這樣才能做到準確無誤。一致性快照則是在MySQL這種多盤場景下才會使用,主要用來實現奔潰一致性備份。
本次分享到此結束,感興趣的同學可持續關注和學習云上環境數據保護最佳實踐。
關注百曉生,笑談云計算
原文鏈接:https://developer.aliyun.com/article/778193?
版權聲明:本文內容由阿里云實名注冊用戶自發貢獻,版權歸原作者所有,阿里云開發者社區不擁有其著作權,亦不承擔相應法律責任。具體規則請查看《阿里云開發者社區用戶服務協議》和《阿里云開發者社區知識產權保護指引》。如果您發現本社區中有涉嫌抄襲的內容,填寫侵權投訴表單進行舉報,一經查實,本社區將立刻刪除涉嫌侵權內容。總結
以上是生活随笔為你收集整理的玩转ECS第7讲 | ECS数据保护-数据备份新特性与最佳实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前沿实践:垃圾回收器是如何演进的?
- 下一篇: 微服务最佳实践:MSE 微服务引擎