填補國內資料共享叢集領域的空白有多難?達夢DSC做到了!

danny_2018發表於2021-10-08

在談什麼是“資料共享叢集”、資料共享叢集對高階資料庫領域有多重要之前,我們先理清一個事實!

這兩年,國際形勢複雜多變,我國雖然是智力資源大國,在很多高科技領域已經走在創新前沿,但底層核心技術受制於人。尤其是承載關鍵業務的資料庫市場,太需要手拿把攥的“硬”技術,去打一場“翻身仗”。

但是,就在我們對國產資料庫信心滿滿的時候,有人卻在潑冷水,認為國產化替代只是“表面熱鬧”,因為很多金融機構依然在採購Oracle。事實是這樣嗎?“去IOE”只是去了個寂寞?

老生常談的“去IOE”問題

其實,去IOE並不是一個新話題,但似乎每次提起,都會五味雜陳,說不出來是什麼滋味。一方面,對比IOE這種成熟的架構,我們確實技不如人,存在差距;另一方面,在新時期的國際貿易環境影響下,我們不得不做出新的選擇,把核心技術掌控在自己的手中。

好在,國產化技術雖然起步晚,但已經取得了突破性進展。至於,為什麼現在還沒有完全實現國產化替代?以達夢為首的企業,在國產資料庫技術方面的突破和創新,讓我們有理由堅信:國產化替代只是時間問題!

“去IOE不是簡單的開和關,國產化替代是一個過程!” 武漢達夢資料庫股份有限公司 副總經理 徐鋼認為,國產化替代不是簡單的民族情節,而是要尊重客觀事實。

首先,從時間維度來看,還不到100%替代的時候。按照達夢以往經驗,進入一個行業過去需要3-5年,在國產化浪潮推動下,週期會縮短,但仍需要至少一年時間。

其次,技術迭代是一個相互認可的過程。從IT應用整合角度看,中國技術世界領先。IT整合商會以最高標準來衡量國產資料庫品牌和技術能力。說白了,國產資料庫廠商不會得到優厚的“國民化待遇”保護,在實際應用場景中,所有資料庫產品的地位均是平等的,不會因為你是“國產品牌”,就會在硬性指標上降低維度。

其三,使用者生態的認可,需要積累。使用者觀念的轉變,非一朝一夕。過去,如果使用者選擇Oracle,選型不需要承擔任何責任,一旦出了問題,我們都會尋找自身原因,要麼是服務沒用好,要麼是不可抗拒因素。但如果選擇了國產資料庫品牌,選型本身就是一件比較有壓力的事情,需要承擔巨大責任,哪怕是最底層的技術人員,只說了一句“對選型沒信心”,最高領導絕對不敢簽字。

其四,客戶自身的應用模式,從客觀上增加了國產資料庫品牌的認知週期。對於中國DBA、資料及應用架構師來說,他們只相信“眼見為實”,只有親身經歷過這個工程專案,經過實際技術驗證,才會得出結論,認為哪些能用,在什麼地方能用,到底能力如何。所以, 資料庫應用實踐本身決定,國產化替代不能一蹴而就。

而資料庫技術研發和應用之間,則是一個相互促進的關係。Oracle之所以越做越強大,是因為有足夠的使用者群去支撐,應用場景可以覆蓋到各個行業,各個角落。而對於一家沒有接觸過具體業務場景的國產軟體來說,根本不可能研發出貼合場景的應用。

綜上所述,國產資料庫還沒有實現100%的替代,這符合客觀規律,從時間線和客戶成熟度角度來說,我們還沒到完全替代的程度。但從市場和客戶的接受程度來說,我們也看到積極樂觀的一面,那就是我們的國產資料庫已經有很多成功案例在落地,國產化風潮已經起來了,這一歷史趨勢不可逆轉。我們在高階資料庫技術領域,已經與世界最頂尖級資料庫比肩齊驅!

DMDSC填補了國內高階資料庫技術的空白

過去,我們無法實現去IOE目標,最關鍵的因素是“技不如人”。尤其在關鍵業務場景,和Oracle還有差距。現在,我們正在縮小這個差距,達夢資料共享叢集的成功推出,標誌著我國高階資料庫技術,已經達到了行業領先水平。

▲DMDSC架構圖

達夢資料共享叢集,英文全稱DM Data Shared Cluster,簡稱 DMDSC。主要功能和特點是,允許多個計算節點共享同一個儲存資料,並支援故障自動切換,即使某一個資料庫例項出現故障,也不會導致資料庫服務中斷。

“從資料庫技術實現來看,DMDSC解決的是多個計算叢集問題,使用者不用關心是單口,還是一個叢集,每個庫都遵循一個邏輯。” 徐鋼進一步解釋道,這種叢集技術很難透過中介軟體的方式,或者其他聚合的技術手段,以及把成熟的資料庫產品簡單虛擬化,就能完成。它解決的是“庫管”問題,即資訊如何進入系統,如何取出去。而這個“庫”,相當於是一個儲存的概念。

針對多個計算節點,我們如何同時去寫一份資料?如何保證這些資料的一致性?如何去協調各種資料之間可能發生的衝突?從儲存層來說,需要有一個完整的儲存協議。

目前,業界只有Oracle有這種共享叢集的技術能力,Oracle是透過一個輕量級的檔案系統,繞過作業系統直接去管理所有的儲存資訊,叫做Oracle ASM(Automatic Storage Management)。

眾所周知,資料庫軟體的本質是,在作業系統上執行一個程式,所有呼叫都是透過作業系統來管理,作業系統就是硬體和上層應用程式之間的一個封裝層。而Oracle打破了作業系統和應用之間的界限,直接去管理儲存本身。從儲存底層的演算法和協議來看,會更符合資料庫軟體本身的I/O操作特性。也就是說,面對一塊完全沒有經過作業系統和檔案系統管理的儲存盤,資料庫系統能夠直接對它進行訪問和操作,實現了資料庫在儲存方面的改造。

過去,為了確保事務的一致性,理論上的創新是排好隊,一個一個去做,但在實踐中不可能行得通,如果把一切事務變成單節點序列,效能會非常差。所以,資料庫技術的核心,除了事務的一致性考量,還會涉及對併發協議的支援。

資料共享叢集之所以成為技術的制高點,最關鍵的是讀操作不會被阻塞,同時實現了多版本的協議。確保從單機擴充套件到叢集,不會出現節點之間的衝突,包括透過裁決機制實現節點之間的轉換,比如透過快取交換技術實現例項間的資料融合,減少I/O代價,提升整個叢集的吞吐能力。

資料共享叢集的實現原理和雲端計算的主流思想相似,比如:在一個複雜任務中,雲端計算技術架構會把一個任務分解成多個子任務,資料共享叢集也一樣,只不過不是透過物理節點實現,而是透過多執行緒和內部的並行機制實現效能的支撐。

DMDSC與Oracle RAC(real application clusters,譯為“實時應用叢集”)同構,更像是一個輕量級的檔案系統,達夢叫DSC( ASM版)。DMDSC實現了MVCC多版本的協議,同時包括達夢自研的一些私有協議,可以被廣泛應用於高併發場景。

國產資料共享叢集技術的前世今生

DMDSC雖然是達夢現在重點推廣的產品之一,但並不是一個從零開始的新品,而是經歷了“十年磨一劍”的研發歷程。

2008年,我國舉辦了奧運會,外部環境是極力擁抱世界,國外廠商的先進技術成為國內市場的主流選擇。另一方面,由於國產資料庫產品缺乏行業核心業務的成功案例。國產資料庫行業的發展落入“不成熟沒人用,沒人用不成熟”的迴圈悖論中。如何爭取行業客戶的信任,透過應用迭代來促進自身演進發展,成為國產資料庫的發展瓶頸。那個時候的達夢,苦於生存和應用場景落地問題。

之後,汶川512地震,達夢遇到了一個歷史性機遇。國家電網啟動了一個計劃,涉及到智慧電網排程技術支援D5000系統的建設方案,國家電網的資訊管理部門決定做一個嘗試,對國產資料庫廠商進行能力評估,尋找能夠滿足符合電網生產業務需求的產品。這是一個標誌性事件,使得達夢第一次進入我國重大行業的核心生產場景。在初期技術評估的基礎上,國家電網啟動了應用適配工作,以Oracle作為技術參照標準,以生產需求進行模擬,驗證國產資料庫的產品能力。在十幾年前,這絕對是一個充滿遠見和勇氣的決策。

國家電網當時表示,使用國產資料庫,他們早有心理準備,只要達到業務生產的最低需求就能接受,包括即使軟體本身效能不行,他們可以投入更多人力去開發,透過硬體資源的購買補足軟體的欠缺。但有一條不能接受,就是整個資料庫叢集的可用性和可靠性問題。

實際上,可用性和可靠性是兩個不同概念。可用性,是指任何時候資料服務不能中斷;可靠性,是資料不能丟。為了解決實際業務問題,達夢提供了第一個叢集解決方案,資料守護技術基本解決了資料可靠性和服務連續性的問題。但是,這個叢集策略有自身的限制,就是在高併發寫入場景下存在效能瓶頸,並且在故障場景下切換代價較大。

客觀地說,達夢提供給客戶的資料庫叢集方案距離Oracle RAC還存在差距。然而,“需求驅動研發”是達夢團隊的工作準則,必須下決心克服這個技術堡壘,不能讓選擇國產資料庫的使用者在應用需求上“降維”。從技術路徑的選擇來說,實現共享儲存叢集無法從外圍框架入手,必須對資料庫核心進行迭代。

2009年初,達夢開始進行DM7的大版本迭代計劃。整個程式碼的重構率超過85~90%,把整個基層的基礎架構按照共享儲存叢集做了適應性的調整和搭配之後,再去搭建共享儲存叢集。

經過近二十幾個月的研發,徹底完成迭代,但依然沒有正式釋出共享儲存叢集。直到2012,經過4年的繼續深耕,達夢才真正跨越了各種技術障礙,完成了共享儲存叢集。雖然,達夢的技術架構和Oracle相同,但Oracle只是一個參照性目標,具體實現路徑全部要靠達夢自己去探索。

DM7釋出後,某省公安廳成為第一個客戶,他們沒有想到國內廠商還能做出共享儲存叢集。一直到2016年,第一個共享儲存叢集在公安、包括最高檢察院的檢務組開始上線。

有了實際上線的案例,共享儲存叢集技術還需要高階行業的檢驗。2017年,某國有銀行,把達夢和 Oracle RAC做了正面比較。並提出了更高要求,包括把故障切換能夠做到10秒內的處理能力。然後,在服務可用性、連續性的基礎之上,還要保證資料一定是零丟失。因為,銀行關鍵業務絕對不允許一部分業務資料找不到了的情況發生。達夢按照高階場景生產需求,依次完成了研發迭代。

經歷了各種應用場景的歷練,DMDSC也在不斷進步。達夢在中航信測試的時候,又發現了新的問題,為了滿足客戶需求,達夢進行了更深度的最佳化,改進了叢集的運維特性,對複雜場景的自適應能力以及減少人工干預,不斷提升產品的成熟度。

一路走來,資料共享叢集技術,是一個精益求精、不斷迭代的過程,是在技術研發和市場應用相互作用的過程中誕生的產物。這也是我們很多技術人尊崇的一種理念,資料庫創新永無止境!

集中式與分散式的恩恩怨怨

值得一提的是,DMDSC共享儲存叢集技術之所以成為業界標杆,還有一個重要原因,那就是滿足了很多企事業單位在管理上的需求,同時也迎合了這兩年比較流行的分散式架構思想。

分散式,本質上是一種思想。普遍的做法是透過應用的拆分,實現資料庫的分庫分表。也就是,分散式的核心就是物理上分開。但實際上,很多應用場景有聚合需求。採用什麼樣的架構,取決於各個企業的發展歷程,和管理策略的選擇。

對於有著核心價值的資料來說,或者對於敏感度比較高的資料來說,把核心資產物理上分屬多個機房,不管管理多順暢,從風險管理層面考慮,很難想象。而共享儲存叢集技術雖然是集中式架構,但節點規模相對比分散式會少很多,能更穩定地支撐業務平臺。

從工程學角度分析,節點越多,系統發生的故障機率就越高。而從實際生產經驗來看,集中式架構故障率更低,包括在儲存效能方面的承受力,運維的支撐能力等等,都有更好表現。

另外,集中式看起來和分散式好像是對立的,但其實共享儲存叢集技術可以根據業務邏輯去調整,集中式與分散式的最主要差別是協議的支援。比如:南方電網,在邏輯上,是集中式架構部署,但其實物理上也可以分開,實現兩個計算節點相隔100公里以上。透過共享儲存叢集,也能實現“同城雙活”的效果。

目前,分散式似乎是主流趨勢,但資料庫是一個多元化的市場,不可能是一兩個廠商,或者某一個技術架構獨佔天下。不同的場景,有不同需求。眼下,在資料庫國產化浪潮推動下,快速實現替換,可能是大多數使用者最直接的需求,是市場發展的主流方向。因為分散式架構改造涉及人力、物力、財力,即使是財力充裕的金融機構,全部進行分散式架構改造,依然是一個天文數字,根本不切合實際。

當然,主推共享儲存叢集技術,並不代表達夢就拒絕分散式應用。在達夢的資料庫產品家族中,除了共享儲存叢集技術,還有圖資料庫產品、檔案資料庫、記憶體資料庫等,涉及到各個細分領域,包括支援最新的分散式架構。

▲達夢產品體系

總的來看,在資料庫國產化替代浪潮下,除了少量業務透過分散式架構進行業務創新外,簡單替換將是一個新常態。換言之,在大面積的國產化資料庫替代過程中,考驗的是本土資料庫技術的相容性,以及整體架構對高階業務的支撐能力。而這一切,達夢DSC都做到了!

活動推薦

想了解更多關於資料共享叢集技術在效能以及應用場景落地方面的表現,敬請關注2021年10月18日~20日在北京國際會議中心舉辦的第十二屆中國資料庫技術大會(DTCC2021)。武漢達夢資料庫股份有限公司 副總經理 徐鋼,將以特邀嘉賓的身份出席本次大會,並分享DSC的技術原理和最佳實踐。

歷經十年的積累與沉澱,如今的DTCC已然成為國內資料庫領域的技術風向標,見證了整個行業的發展與演變。作為頂尖級的資料庫技術盛會,DTCC2021將繼續秉承一貫的乾貨分享和實踐指導原則,設定2大主會場,20+技術專場,內容涉及:資料架構、人工智慧與大資料應用、傳統企業資料庫實踐和國產開源資料庫等。

感謝各位技術達人的高度關注,期待您的熱情參與!

大會詳情,請點選 2021第十二屆中國資料庫技術大會 (it168.com) >>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31547898/viewspace-2794990/,如需轉載,請註明出處,否則將追究法律責任。

相關文章