商用資料庫上雲的方式與存在的問題(上)

qing_yun發表於2023-01-30

熙熙攘攘的春節假期完完全全的結束了,因為兒子今年高考,所以春節只是窩在深圳。春節期間應兒子的要求去看了一場電影-《流浪地球2》,電視也沒啥可看的,只有一個更新速度像便秘的《三體》還值得一看。兩部片子看著看著就看岔了情節了,地球人駕駛著地球,跨越2500年時空去三體人的老家蹭太陽,而宇宙的那一端,三體人跨過茫茫宇宙要來搶劫地球,不知道那撥人出現了技術誤判。

我每天寫點東西,都是最近在思考的東西,春節假期放空自己,思考的問題不多,可寫的題材也不多。正好春節假期的最後幾天在編寫一篇調研報告的提綱,還算思考了一些技術問題,實際上在春節前我也寫過這方面的題材,那就是國產商用資料庫上雲的問題,今天就從另外一個角度聊聊這個話題吧。

資料庫上雲的方式一般資料庫伺服器雲納管、雲主機部署、RDS服務、容器雲這四種方式。雲納管僅僅是一種最低程度的雲管,實際上資料庫和雲還是完全分離的。今天我們先來看看其他三種方式。

雲主機部署資料庫是最早出現的資料庫上雲的方式,利用雲平臺的ECS與雲主機模板,以及雲平臺的資源編排能力,可以實現資料庫在雲上的快速部署與快速變更。資料庫的部署可以做成雲主機模板,以小時級的速度交付使用。這對於以往以周為單位的交付效率來說,已經是革命性提高了。不過這種部署模式存在很多問題,首先是交付與運維還是脫離的,資料庫運維的模式還是傳統的模式,自動化程度不高;其次是部署在雲主機上的資料庫效能還是有些問題的,大型資料庫往往還需要外接集中式儲存來解決IO效能的問題;第三是稍微關鍵一些的資料庫往往會受到雲資源超配的干擾,需要透過獨立的安置組來做資源隔離,避免其他雲元件對資料庫的效能影響;最後一點是交付效率還存在提升的需求。

RDS是資料庫上雲目前最主要的方式之一,也是針對雲主機部署的一種改良。RDS一般以裸金屬的方式部署,在一臺伺服器上部署多個資料庫例項,透過資源管理的模式來限制其資源使用。RDS部署的資料庫以伺服器的本地盤為儲存介質,可以使用SATA HDD、SAS HDD、SATA SSD、NVME SSD等多種形式的儲存介質,有些雲廠商還提供高效能雲端儲存作為儲存介質。這種採用裸金屬部署的模式,資料庫在效能方面損耗較少,因此在同樣的資料庫上,RDS的效能往往優於雲主機部署的資料庫。不過受限於單機容量,RDS的規模是受到PC伺服器的物理限制的,CPU,記憶體,儲存容量的擴充套件都存在一定的限制,CPU、記憶體的限制在其他模式的部署中也是如此,不過資料庫的容量受限是個比較麻煩的事情。不過裸金屬雲也有一些突破容量限制的解決方案,比如透過INTEL的RSD可以動態分配磁碟等資源給某臺伺服器,實現分鐘級的資源排程,阿里的神龍就是一個類似的裸金屬雲解決方案。RDS除了儲存容量的限制外,資源隔離方面也不是完美的,多個資料庫服務使用同一個OS,相互之間還是會有一定的干擾,因此有時候會出現一些莫名其妙的效能問題。

RDS資料庫的高可用、備份等可以使用資料庫原生的模式,比如透過MHA、MGR等構建主從環境,或者利用雲平臺的底層儲存快照、副本複製等技術來實現資料庫複製,也可以透過雲平臺底層的CDP/CDM技術實現可持續的資料保護,不過這些方式的實現成本都比較高,大多數使用者還是透過傳統的資料庫主從複製來獲得高可用能力。

第四種上雲模式是近些年比較流行的容器雲,在容器中跑資料庫目前已經挺普遍了,一些企業已經構建起了DEVOPS的工具鏈,不僅僅可以快速交付資料庫,還可以快速交付整個應用。資料庫的容器雲一般來說部署的資料庫規模都較小,支撐一個不太複雜的業務。如果一個企業有數百個規模類似,業務負載也差不多的資料庫,或者一些大型業務可以拆分為數十個這樣類似的資料庫,那麼容器雲可以節約大量的部署、運維的成本。

大家要注意的是,裡面我提到了一個“規模類似”,為什麼要提這個詞呢,因為如果多個資料庫可以使用相同的容器映象來部署,那麼容器雲的成本是最低的,如果庫都要構建數十個獨立的映象,那麼其成本就不低了。另外一個要注意的問題是要有高水平的operator來支撐容器雲,如果一個應用拆分為數十個資料庫,每個資料庫都還需要DBA來做精細的運維,那麼還不如把這幾十個資料庫合併為一個大型資料庫,每個小庫作為這個資料庫的一個庫或者一個SCHEMA。容器雲的大量小型資料庫應該是90%以上甚至99%以上的運維是透過過operator自動化運維的,這樣才能真正的節約運維成本。我以前幫助使用者最佳化過容器中的資料庫,因為他們的映象是從網上下載的,根本沒有根據他們的應用的要求重新構建,因此當資料庫出問題的時候,很多指標都採集不到,分析問題十分不便,這樣的容器中執行的大型資料庫,一旦出現一些問題,那麼定位起來就好似大海撈針一樣。

今天時間關係,就先寫了這個問題的上半部分吧,今天實際上只是討論了資料庫上雲的幾種方式。關於商用資料庫上雲的方式以及存在的問題的討論本來是本文要討論的重點,我們放在明天的下集裡在討論吧。最後給廣大讀者拜個晚年。

來自 “ 白鱔的洞穴 ”, 原文作者:白鱔;原文連結:https://mp.weixin.qq.com/s/oFnRwvrnu8dJ5LuFHzf05A,如有侵權,請聯絡管理員刪除。

相關文章