當前位置:
首頁 > 科技 > 解讀華為企業雲RDS技術:如何有效減少運維工作量

解讀華為企業雲RDS技術:如何有效減少運維工作量

互聯網技術的迅猛發展,手機、平板、智能電視等各種輸入終端的普及,讓互聯網數據呈現出爆炸性的增長。面對海量的數據,如何能以更加穩定、快速的方式存儲海量數據,以及從中挖掘出有價值的信息,成為很多企業面臨的新課堂。雲存儲的出現為數據挖掘快速的發展帶來了新的機遇。


亞馬遜、微軟、谷歌、IBM 等巨頭紛紛推出了自己的雲存儲平台,國內華為、騰訊、百度、360 等公司也加緊了在雲存儲領域的布局。雲服務已經被企業列入常規 IT 投資,雲資料庫服務是非常重要的一部分。


本文將從一個用戶的角度曆數市場上現有關係型資料庫服務的主要功能,探索是否有一些改進的空間以及華為企業雲在 RDS(Relational Database Service) 技術上所做的一些選擇。


資料庫備份


資料庫備份指將資料庫系統中的數據加以複製,一旦發生災難或錯誤操作時,得以方便而及時地恢復系統的有效數據和正常運作。

資料庫備份是用戶常用的功能之一,mysqldump/xtrabackup 是最常見的備份方案,同時也是大多數廠商的選擇。


Mysqldump 有比較明顯的缺陷,無法做增量備份,對於經常需要做備份的用戶來說,是無法接受的。Xtrabackup 是 Percona 推出的商業解決方案,同時提供免費版本,基本機制是通過比較 LSN 來做增量拷貝,從機制來看,需要 innodb 事務的支持,對於非 innodb 比如 myisam,則通過 FLUSH TBALES WITH READ LOCAK 來保證數據的一致性,顯然,block write 的時間取決於 myisam 表拷貝時間。但是我們可以禁用 myisam 表,這個問題可以跳過。另一方面,xtrabackup 需要運行在 GuestOS 中,讀取拷貝生產環境數據目錄同時會影響到線上的 IO 的表現。


最後,如果用戶想要刪除其中一個增量備份,該如何做增量的合并和刪除?還是將依賴的增量一併刪除?


恐怕對用戶來說,這都不是理想的。


有沒有既不影響生產環境 IO,又能做增量並且還能獨立刪除的辦法呢?快照或許是一個比較好的選擇。


資料庫快照


資料庫快照是由客戶啟動的資料庫實例的快照,不僅可以備份單個資料庫,還可以備份整個資料庫實例。資料庫快照可讓客戶按所需的任意頻率在已知狀態備份資料庫實例,然後隨時還原到該特定的狀態。資料庫快照可以使用 RDS 控制台或 RDS API 創建。資料庫快照會一直保存,直到客戶使用 RDS 控制台或 RDS API 將其或其所在的實例刪除。


急速增量備份 – 快速完成數據備份,避免大數據量備份時間過長。


線上業務輕干擾 – 基於快照的備份過程效率較傳統資料庫備份方式要高,合理的備份策略,對實例 IO 資源和業務有著非常有限的影響。


資料庫實例規格如圖 1 所示。

解讀華為企業雲RDS技術:如何有效減少運維工作量



圖 1 :實例規格


資料庫引擎


Innodb、myisam 是最常用的 MySQL 資料庫引擎,前者是事務安全的,後者則擁有更高的性能。前文描述到,myisam 無法保證備份點數據的一致性,FLUSH TBALES WITH READ LOCAK 又需要 block write,得不償失。


MySQL replication 是做讀寫分離的基礎,分為非同步和半同步的方式,前者有對主機性能影響小,但數據有一定延時,後者則相反。兩種技術可以滿足用戶不同場景的需求。關於 Crash safe 的問題,分為 master crash safe 和 slave crash safe。


MySQL 5.6 版本之前存在一個 bug,即當 sync_binlog=1/innodb-flush-log-at-trx-commit=1 時,會使得 InnoDB 存儲引擎的 group commit 失效, 導致性能急劇下降,crash-safe slave 的問題更複雜些,主要 replication 中的 SQL thread 和 IO thread 原子性問題,這裡不再累述,MySQL 5.6 版本通過將 relay-info.log 的信息保存在 InnoDB 的事務表中解決了這個問題。


講了這麼多華為企業雲 RDS 技術,下面會從幾個方面詳解 RDS 究竟是什麼。


深入淺出 RDS


RDS(Relational Database Service,關係型資料庫服務)是一種基於雲計算平台的即開即用、穩定可靠、彈性伸縮、便捷管理的在線關係型資料庫服務。

RDS 具有較為完善的性能監控體系和多重安全防護措施,能使企業用戶在雲中輕鬆設置、操作和擴展關係型資料庫。通過 RDS 控制台,可以執行所有必需任務而無需編程,簡化運營流程,減少日常運維工作量,從而能夠專註於應用開發和業務發展。


用戶訪問 RDS 實例時,需要經過 ECS(Elastic Cloud Server,彈性雲伺服器),具體關係如圖 2 所示。

解讀華為企業雲RDS技術:如何有效減少運維工作量



圖 2:訪問 RDS


RDS 是以集群為單位進行組織,一個集群由多個實例構成,集群中包含一個主機,還可能包含一個備機和若干個只讀副本,它們一起為業務提供資料庫服務。


RDS 的最小管理單元是實例,一個實例代表了一個獨立運行的關係型資料庫,實例可進行如下分類:


主實例


備實例


只讀副本

用戶可以在 RDS 系統中自助創建及管理各種資料庫引擎的實例。


RDS API 使用場景


RDS 的 OpenAPI 提供針對用戶資料庫實例的創建、查看、刪除等基本操作,以及查詢系統支持的 API 版本、資料庫引擎及版本、運行環境規格、可用區域等操作。其主要的調用場景如圖 3 和圖 4 所示。

解讀華為企業雲RDS技術:如何有效減少運維工作量



圖 3:使用場景一


在創建實例之前,需要獲取系統支持的資料庫引擎及版本,運行環境規格以及可用區域信息。在獲取到信息之後,可以將返回結果作為調用參數,執行創建實例操作。


在實例創建成功後,用戶可以對自己所屬的實例進行列舉、查詢詳細信息、以及刪除操作。

解讀華為企業雲RDS技術:如何有效減少運維工作量


圖 4:使用場景二


資料庫實例需要先查詢資料庫所有參數和參數信息後才能進行設置參數取值和參數恢復默認值。


資料庫實例可以進行擴容和重啟,可以將返回的任務號作為調用參數查詢非同步任務的進展情況。


RDS API 涉及的數據模型


在 RDS 的 Web 界面中,考慮到面向用戶的易用性,將用戶的資料庫實例組織成集群的形式進行展現,通常一個 MySQL 集群中可以包含一個主實例、一個 HA 備實例以及若干個只讀副本,或者只包含一個主實例和若干個只讀副本,不包含備實例,其中只讀副本不超過 5 個。如圖 5 所示為 API 數據模型。

解讀華為企業雲RDS技術:如何有效減少運維工作量



圖 5:API 數據模型


在 RDS 的 OpenAPI 中,考慮到與 OpenStack Trove 的兼容,對外只以實例級別提供服務,與 Web 界面上的集群組織方式的對應關係為:


在創建實例時會默認創建出一個集群,並將創建出的實例顯示在此集群下。

在列舉實例時會將此用戶所屬的所有實例以列表方式給出,不會體現出集群到實例的層次關係。


刪除只讀副本與界面功能相同,都是指定實例進行刪除;刪除主備實例時會同時將實例所屬的集群一同刪除,但前提條件是必須將集群下屬的只讀副本提前刪除。


資料庫解決方案對比


資料庫的解決一般可通過自建資料庫、資料庫 on 雲伺服器、RDS 等,我們來通過圖 6 所示的詳細對比了解其優劣勢:

解讀華為企業雲RDS技術:如何有效減少運維工作量



圖 6:資料庫解決方案詳細對比


RDS 背後聚集了華為的 DBA 團隊專門負責運維,資料庫內核開發團隊負責改進資料庫,將很多需要 DBA 日常運維的工作逐漸納入實現產品化。使用的客戶可以從很多底層的任務中解放出來。


RDS 資料庫實例的生命周期包括創建、修改、重啟、備份和還原以及刪除等,具體如圖 7 所示。

解讀華為企業雲RDS技術:如何有效減少運維工作量


圖 7:資料庫實例生命周期管理


完整的 RDS 需要提供哪些服務


接下來將以華為企業雲 RDS 為例,來說明作為一個完整的 RDS 產品,至少需要能夠提供哪些服務。


結合在資料庫技術領域的發展趨勢,完整的 RDS 產品或可從以下幾點特性著手研發:兼容多版本 MySQL、多種實例類型滿足多場景需求、資料庫管理便利靈活、指標監控便於運行狀況了解、性能調優滿足業務需要等。


以華為企業雲 RDS 為研究模板和例子,其服務特性可從以下幾點來看:


一是安全,RDS 包括多種安全策略保護資料庫和用戶隱私,例如:VPC、子網、安全組等。


二是性能監控,RDS 能支撐監控資料庫實例及資料庫引擎的關鍵性能指標,包括計算 / 內存 / 存儲容量使用率、I/O 活動、資料庫連接數、QPS/TPS、緩衝池、讀 / 寫活動等。


三是數據遷移,登錄 RDS 管理控制台,即可在「數據遷移」頁面,提供數據遷移流程。


四是高可用,RDS 會將主資料庫實例數據複製到一個備用資料庫實例中,一旦主資料庫實例發生故障導致不可用,即可在很短時間內切換到備用資料庫實例上。

五是彈性伸縮,包括水平伸縮和垂直伸縮,例如可增刪只讀副本(每個資料庫集群最多有 5 個只讀副本)、資料庫實例存儲空間擴容等。


六是備份與恢復,RDS 既支持自動備份以及創建快照,又能支持恢復到某個備份文件點。


七是日誌管理,可查詢資料庫「錯誤日誌」和「慢查詢日誌」,為資料庫調優提供參考。


八是參數配置,資料庫管理員可以根據監控和日誌等信息,對資料庫引擎參數進行自定義設置,從而優化資料庫。


寫在最後


華為企業雲 RDS 可以解決當前各類電子商務網站、社區網站、移動 APP 以及遊戲類應用資料庫搭建、管理以及維護的高成本及複雜性問題,使用戶可以將更多的精力聚焦到應用和業務等核心層面,節約硬體成本和軟體等成本,實現按需付費。


華為企業雲 RDS 支持主從熱備、讀寫分離,且提供了備份、恢復、監控等方面的全套解決方案,從而解決資料庫運維上的問題。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

TAG:InfoQ |

您可能感興趣

社會工作者利用VR技術體驗虐待 用於減少幫派犯罪
新加坡航空正利用iPad來減少飛行員工作量
LG利用AI技術減少VR畫面延遲問題
Google介紹如何利用機器學習來減少人工作業
麵包商聯手AWS 利用人工智慧平衡生產減少食物浪費
新型CAR-T療法有望減少治療副作用
華人科學家找到新的CRISPR基因組編輯系統,顯著減少脫靶效應
商業團體抨擊減少技術移民
OLED量產技術基本確立,用於iPhone XR的LCD屏「出乎意料地減少」
OPPO改變全球運營策略 或將減少代言明星數量
THERANOS不會減少診斷業務
iQOO Neo將帶來觸控加速技術,減少遊戲誤操作!
蘋果計劃擴大OLED供應商數量 減少對三星依賴
結合主動學習與遷移學習:讓醫學圖像標註工作量減少一半
北大人民醫院ECMO應用經驗:輔助循環「煙囪技術」可減少併發症
剛剛!張鋒團隊CRISPR基因編輯系統可減少脫靶效應
《科學》:AD為何腦血流量減少?
四個原因,為什麼代理機構減少使用DSP平台的數量
減少副作用!Nature醫學:改良版CAR-T更安全有效
Carbon CLIP技術應用案例:大黃蜂賽車隊3D列印重新設計製造進氣歧管重量減少50%