中科曙光Sugon

        首頁 >解決方案>解決方案概覽>安全和流計算解決方案

        海量數據分析解決方案

        導言

        與一般的信息服務行業中的數據庫系統不同,可擴展性是設計網監系統數據庫的最重要的指標,這是因為普通數據中心數據增長規模可能很快,但互聯網數據的增長是爆炸式的。雖然很多當前的網監系統以精簡數據的方式來適應存儲系統的規模,但這并不是解決問題的方法。在互聯網行業有一種說法“能通過花錢(買設備)解決的問題都不是問題,問題在于那些連花錢都解決不了的問題”,海量數據的數據庫存儲就是這樣一個問題。

        現在國內網監行業主流采用的數據基本都是Oracle,當單機Oracle性能到達瓶頸后開始流行Oracle RAC,但是可以看到,目前實際使用的Oracle RAC的成功案例一般只有4個節點,再往上擴展規模就非常不安全了,這是因為RAC一般用于OLTP聯機事物處理的應用,其應用特征是并發用戶多,但單個查詢的數據量小,時間短。而網絡監控系統面臨的應用場景則是高并發加載數據,海量存儲,低并發查詢,但每次查詢的規模都非常高。因此,傳統的數據庫系統難以支持大型網監系統的數據庫存儲服務。而曙光在長期的網監行業服務過程中,總結出網監行業數據庫存儲的特點,和計算所智能中心合作研發出專門針對網監行業數據庫應用特點的數據庫系統DRAC,已成功部署在多個國家大型項目中。其底層采用無共享(shared-nothing)的oracle數據庫節點作為數據節點,具有較好的擴展性和系統可靠性。DRAC軟件將用戶的操作透明地轉化成對底層數據庫的操作,而對用戶呈現為單一的數據庫系統。DRAC系統可根據數據的訪問頻度和重要性實施多級存儲的方案,以降低整個系統的成本,提高系統的性價比。

        技術特點

        曙光集群并行數據庫DRAC(Dawning’s Real Application Cluster)是一種無共享(shared- nothing)結構的并行數據庫管理系統。DRAC原是專為分析網絡監控數據設計的并行數據庫系統,現已部署在國家某大型項目、某市大型項目等多個系統中。它具有如下技術特點:

        ? DRAC采取目前主流的集群設計方法,具有性價比高、擴展性好等諸多優點。

        ? 它直接將任意查詢分解成操作于分區數據的子查詢和匯總中間結果的后處理查詢,用成熟的DBMS來實現兩種查詢的執行,從而避免了一般的分布式查詢處理器為了通用而引入的復雜性。配合針對特定應用的分區策略,DRAC的方法能保證查詢執行的效率。

        ? 大任務全并行處理。DRAC采用單機數據庫作為基本數據處理單元,將數據并行地寫入這些單元數據庫,查詢時并行地從各個數據庫中讀取和處理這些數據。這種完全并行的處理極大地提高了系統存儲數據的能力并縮短單個查詢的完成時間。DDL操作也在各數據庫節點上并行地執行。

        ? DRAC對外提供單一系統映像,用戶使用類似ODBC或JDBC的接口提交SQL語句。這些操作被服務節點自動地并行執行。

        ? DRAC采取了功能分離的設計思路,像加載、查詢等功能均可按需要配置,滿足在線擴展的高可用要求。

        ? 和Oracle RAC等并行數據庫不同,DRAC不需要光纖交換機和較高端的盤陣,硬件成本低。配合靈活部署和簡易管理的工具,DRAC在大規模部署時有較高的性能價格比。

        系統架構

        下圖給出了一種典型的DRAC配置。系統中的節點分為兩大類:存儲數據的數據庫節點和提供并行數據管理功能的服務節點。后者包括:加載服務、查詢服務、數據復制和數據定義服務。所有類型的節點個數均可根據容量和性能的需要而靈活配置。

        數據庫節點是帶獨立存儲系統(本地硬盤或磁盤陣列)的商品化服務器。節點上安裝單機版的Oracle數據庫管理系統。按照數據劃分策略,每個數據庫節點保存全部的復制數據和分片數據表的一部分。每個數據庫節點上數據均可使用Oracle的索引、分區等特性。

        數據庫的功能被分成加載、查詢、數據復制、數據定義等服務,每種服務部署在單獨的物理節點上。任一服務節點均建立到所有的數據庫連接。加載節點啟動若干個加載線程,線程將一批數據寫入某一數據庫節點。由于海量數據分布存儲在各數據庫節點上,查詢服務首先并行地在處理各數據庫節點上的局部數據得到中間結果,然后將中間結果匯總成最終結果。復制數據是指將一個表的數據同時存儲一組數據庫節點上,以此避免兩個表的連接操作。數據復制服務專用于處理這部分數據的操作。它通過分布式事務在有關節點上同時執行事務操作,保證復制前后數據都是一致的。 數據定義服務用于維護系統的元數據,它并行地執行表結構、表空間和其它數據庫模式改變等元數據操作。

        采用這種服務分離的設計,用戶可以靈活地配置各種服務的個數,以達到整個體統資源的最佳利用。

         

        DRAC集群數據庫系統結構

        無共享架構

        DRAC采取Shared-Nothing的架構,即所有存儲數據的數據庫節點除互聯網絡外,不共享任何資源。除此之外,并行數據庫還有Shared-Memory和Shared-Disk兩種架構。學術界普遍認為,Shared-Nothing架構有很強的擴展性。另外,DRAC不需要存儲網絡設施,也不依賴于昂貴的高端盤陣。這樣可以很好降低用戶的硬件成本,在大規模部署時有很高的性價比。

        Shared-Memory結構是多個處理器通過內存總線與多個共享內存相連接,再通過I/O總線共享多個存儲設備。Shared-Memory 結構是典型的向上擴展類型,即在單節點上加入更多的處理器、內存、磁盤和網卡。多家廠商的產品已經證明,在常規商務負載環境下,SMP 服務器能夠提供 10 倍于單處理器系統的向上擴展能力。然而,隨著 CPU 個數增多,共享的內存帶寬成為瓶頸,同時多處理器競爭降低了系統總線的利用率,因此難以擴展到大規模。

        Shared-Disk結構中每個節點有自己的內存,共享磁盤。每個節點都可以讀取和修改所有數據。通過分布式的并發控制機制來保證數據一致性。隨著節點數增多,并發開銷增大,因此商用 Shared-Disk構建的實用數據庫系統一般只有 6-8個節點。

        Shared-Nothing 結構屬于多處理單元多數據單元結構。Shared-Nothing 環境下,每個處理器有自己的內存和磁盤存儲設備,所有處理器通過節點間互連網絡進行連接,對于節點間通信少、返回結果集少的應用(如 數據倉庫或DSS),具有良好的擴展性。可達數千個節點。

        在DRAC中,單元數據庫除了采用單機Oracle之外,還可以采用Shared-Disk的并行數據庫,如Oracle RAC。這是一種融合了Shared-Disk和Shared-Nothing結構的系統,可以擴展到更大的規模。

        Shared-Nothing架構下,數據庫節點如果失效將導致數據不可訪問。DRAC提供了雙寫的策略,對于要求高的數據存儲在兩個節點上。只要有一個節點存在,數據仍然及時可用。


        關鍵技術

        DRAC是一套完整的并行數據庫系統,除上述特征外,下面再給出并行加載、并行查詢和數據雙寫等關鍵技術。

        ? 并行加載

        提高系統加載能力的關鍵是提高單機加載能力和充分利用系統資源。DRAC的并行加載技術包括如下層面上的設計。

        1)單線程直接路徑加載。加載線程使用預處理過程將被寫數據的格式告知數據庫,然后接受客戶端的一大批記錄,以直接路徑加載的方式一次性將數據寫入數據庫。這是Oracle提供的最快的在線數據加載方法。

        2)單機多線程同時加載。每個加載節點都維護一個線程,當有請求到達時,即分配一個線程向某一個數據庫節點加載。這樣能充分利用加載節點的帶寬和計算資源,提高其利用率。

        3)多數據庫并行加載。每個加載節點的多個線程可以同時向多個數據庫并行加載。當加載節點較多的時候,可以充分利用數據庫的加載能力,使系統的加載性能達到最大。

        上述三種設計的考慮使DRAC能提供很高的加載速度和近似線性的加載擴展比。

        數據均衡是Shared-Nothing架構的并行數據庫要解決的一個重要問題。解決數據均衡的關鍵是避免某個節點上的數據過多。出現這種情況,將導致該節點上的查詢任務完成地最晚,因為并行任務的完成時間取決于最慢的操作,所以會導致查詢擴展性嚴重下降。DRAC每次都選擇當前加載量最小的節點進行加載,保持當前的數據均衡。如果某個數據庫節點失效后重新啟動,導致一段時間內加載量過小,后續就會出現短期內加載過多的情況。針對面向流數據應用,DRAC采取周期性計數的方法。當超出一個周期后,計數歸零。在上述情況發生時,上個周期數據量少不會影響到一個周期的數據平衡。

        ? 并行查詢

        流數據管理中,具有流特征的數據表因為隨時間而增長,往往變得很大。海量的數據表分布存儲在不同的數據節點上,這是DRAC的并行查詢的基礎。如圖所示,查詢服務器上也部署一個數據庫,用于保存中間結果。查詢服務將來自客戶端的SQL分解成數據庫節點上本地數據子查詢和綜合子查詢的后處理查詢。子查詢在各個數據庫節點處理原始數據,各節點的中間結果匯總到查詢節點后執行后處理查詢,即可得到用戶最終的結果。

        基于分布表和復制表的并行查詢處理

        當中間結果集較小時,該方法有很好的擴展性。兩個分布表之間的關聯操作采用節點間數據重分布來實現。

        為了實現查詢的魯棒性,查詢服務實現了客戶端超時和服務器資源回收機制。確保在客戶端異常后,不對系統產生影響。另外客戶端可以主動取消查詢。

        ? 數據雙寫

        對于要求數據可靠性和可用性要求很高的用戶,DRAC提供數據雙寫功能。如圖所示,每個數據庫節點上創建兩個數據庫,如d1和d2是同一物理機上的兩個數據庫。節點之間的數據庫做完全鏡象,數據在寫入的時間同時保存在鏡象的兩個數據庫中。圖中給出了交錯的鏡象關系,除任一數據庫節點失效后數據仍可用外,上面或下面所有數據庫節點損壞,系統中的數據仍然可用。

                                                                         DRAC的數據雙寫

        高可用

        DRAC采用多種方式提高系統的可用性,完全可以提供7*24小時無間斷運行。按離用戶的遠近,DRAC的高可用性包括如下層面。

        高可用的負載均衡機制。DRAC標準情況下配置兩個負載均衡器,當其中一個不可用時,客戶端接口庫自動使用另一個,因此負載均衡器是高可用的。

        高可用的服務。DRAC每種服務(加載、查詢、復制引擎)都可以配置在多個物理服務器上,只要還有一個可用,這種服務就是可用的。

        高可用數據庫。DRAC系統配置多個互相獨立的數據庫節點。當某個數據庫出現故障時,這種故障分臨時性故障、節點宕機和數據損壞三種情況。如果是臨時性的故障或節點宕機,正在進行的查詢不能獲得這部分數據的結果,但其余節點上的計算結果會返回給用戶并提示“結果集不完整”。當節點宕機時,這種狀態要持續到機器重新啟動為止。啟動雙寫機制后,即使數據庫失效,數據也不會丟失,并且隨時可用。

        擴展性

        DRAC管理的系統中,只要增加數據庫節點,系統的容量可隨即增加。與此同時,所有數據庫的處理能力近似為整個系統的處理能力,也隨之擴展。當系統規模擴大時,系統的性能表現,即擴展性是并行系統的重要特征。達到所有數據庫的寫速度之前,DRAC數據加載的性能和加載節點的個數呈近線懷的增長。大部分的查詢則隨數據庫節點個數的增加,也呈近線性的結果。

        根據應用的實際需求,用于加載和查詢等任務的服務器可以方便地增加和刪除,但系統總的處理能力主要受數據庫節點能力的限制。

        所有節點均可在不中斷業務的情況下進行。軟件也可以實現在線升級。

        DRAC在生產系統的部署中超過18個數據庫節點,處理的數據量超過400TB。

        統備份恢復

        DRAC高可用性的介紹中已經從4個層面上介紹了在部分設備出現故障的時候系統如何保證對外服務的連續可用性。在未發生數據丟失的情況下只需替換故障設備,重新加入系統,即可恢復故障。

        為了防范出現數據丟失的嚴重故障,DRAC提供備份工具dmbk,它分別從各數據庫節點導出需要的數據,經過壓縮后存儲在備份介質上。當需要時,它從備份介質上讀出數據,解壓縮后導入原數據庫。

        簡易管理

        DRAC的各種服務及數據庫節點均是“邏輯節點”,它們可以部署在任何的物理節點上,因此針對特定的系統結構,只需指明“邏輯節點”和“物理節點”的映射關系,即可用工具簡易完成包括底層數據庫在內的整個的系統部署。它可以部署在包括單個節點在內的任意數量機器的系統上。

        DiM是基于B/S模式的DRAC部署、監控和管理工具。它通過和用戶的交互確定“邏輯節點”和“物理節點”的映射關系,然后根據該映射關系,生成在不同節點上執行的腳本,再引導用戶一步步完成系統的部署。它同時可以完成系統部署正確性的驗證和各種服務的檢查工作。

        DRAC定期采集系統各組件(如數據庫節點、服務節點)的狀態及平均資源利用率,并寫入管理數據庫的特定表中,用戶可以用瀏覽器直接查看硬件、數據庫和服務等監控信息并獲取各種統計。DiM同時提供對組成系統的各種服務和單元數據進行啟動、停止等管理操作。





        close

        尊敬的客戶您好:
        由于本公司(曙光信息產業股份有限公司)日常研發出來的新產品、新部件數量較多,如果由于未能對官網的產品信息及時更新,而給廣大用戶帶來不便,敬請諒解。如果您有購買需求,請聯系本公司400-810-0466進行電話咨詢或聯系本公司銷售人員進行詢問。

        手机在线看片1024免费