《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于X86平臺(tái)的高性能數(shù)據(jù)庫集群技術(shù)的研究
基于X86平臺(tái)的高性能數(shù)據(jù)庫集群技術(shù)的研究
2015年微型機(jī)與應(yīng)用第1期
夏文忠,,鄒雯奇
(江蘇電信 企業(yè)信息化運(yùn)營中心,,江蘇 南京 210037)
摘要: 分析了信息系統(tǒng)中普遍采用的小型機(jī)搭配磁盤陣列的部署架構(gòu)所帶來的成本高,、擴(kuò)展性差的現(xiàn)狀。針對這種現(xiàn)狀提出了一種基于X86平臺(tái)的高性能數(shù)據(jù)庫集群技術(shù),,通過測試論證了這種技術(shù)的高性能與高可靠,最后通過該項(xiàng)技術(shù)在電信信息系統(tǒng)中的實(shí)際應(yīng)用說明了該方案的可行性,。
Abstract:
Key words :

  摘  要: 分析了信息系統(tǒng)中普遍采用的小型機(jī)搭配磁盤陣列的部署架構(gòu)所帶來的成本高,、擴(kuò)展性差的現(xiàn)狀。針對這種現(xiàn)狀提出了一種基于X86平臺(tái)的高性能數(shù)據(jù)庫集群技術(shù),,通過測試論證了這種技術(shù)的高性能與高可靠,,最后通過該項(xiàng)技術(shù)在電信信息系統(tǒng)中的實(shí)際應(yīng)用說明了該方案的可行性。

  關(guān)鍵詞PCIE-Flash卡,;RDMA,;存儲(chǔ)虛擬化

0 引言

  隨著互聯(lián)網(wǎng)時(shí)代的不斷發(fā)展,搭建廉價(jià),、開放,、共享、可擴(kuò)展的信息系統(tǒng)平臺(tái)已成為信息系統(tǒng)的轉(zhuǎn)型方向,,這不僅需要去除電信在傳統(tǒng)運(yùn)營思維下形成的對高性能高成本的設(shè)備和軟件的依賴,,也需要對信息系統(tǒng)進(jìn)行改造,,從高質(zhì)量,、高復(fù)雜度向可擴(kuò)展、低成本轉(zhuǎn)變,,做到資源效益的最大化,。隨著硬件技術(shù)的發(fā)展,一方面X86平臺(tái)架構(gòu)的PC服務(wù)器與傳統(tǒng)小型機(jī)在性能方面的差距不斷縮小,,另一方面以SSD(固態(tài)硬盤Solid State Drive)為代表的高性能存儲(chǔ)介質(zhì)的出現(xiàn),,使得配備了這種存儲(chǔ)介質(zhì)的X86服務(wù)器不需要外接磁盤陣列就能具有極高的I/O吞吐能力。通過以上兩種平臺(tái)技術(shù),,結(jié)合遠(yuǎn)程數(shù)據(jù)直接存取RDMA(Remote Direct Memory Access)及存儲(chǔ)虛擬化技術(shù),,本文提出了一種基于X86平臺(tái)的高性能數(shù)據(jù)庫集群技術(shù)在信息系統(tǒng)中的應(yīng)用方案。

1 傳統(tǒng)小型機(jī)與磁盤陣列部署架構(gòu)的分析

  傳統(tǒng)小型機(jī)與磁盤陣列的部署架構(gòu)以高可靠性,、高可用性,、可服務(wù)性(Reliability、Availability,、Serviceability簡稱RAS)[1]有效地支撐了信息系統(tǒng)的高效運(yùn)行,,但傳統(tǒng)架構(gòu)在當(dāng)前互聯(lián)網(wǎng)高速發(fā)展的環(huán)境下也面臨以下問題:(1)在非結(jié)構(gòu)化數(shù)據(jù)處理方面能力不足;(2)系統(tǒng)成本高昂,,同等處理能力的小型機(jī)價(jià)格大約是PC服務(wù)器的10倍,;(3)硬件平臺(tái)的兼容性差,各廠家的小型機(jī)平臺(tái)都存在技術(shù)壁壘,,操作系統(tǒng)無法兼容,;(4)擴(kuò)展性有限,,傳統(tǒng)小型機(jī)和磁盤陣列的處理能力屬于TB級,而在面對PB級數(shù)據(jù)時(shí),,無法高性能地進(jìn)行處理,。隨著信息系統(tǒng)向著開源、開放,、廉價(jià)的方向演進(jìn),,以及業(yè)內(nèi)“去IOE”進(jìn)程的深化,將會(huì)有越來越多的信息系統(tǒng)不再使用傳統(tǒng)架構(gòu)進(jìn)行部署,。

2 X86平臺(tái)與SSD等技術(shù)的現(xiàn)狀分析

  2.1 X86平臺(tái)現(xiàn)狀

  全球最新的服務(wù)器X86處理器將進(jìn)入14 nm工藝時(shí)代,,這意味著X86架構(gòu)的服務(wù)器將會(huì)具備更高的處理性能、更長的穩(wěn)定運(yùn)行時(shí)間以及更低的能耗,。下一代20 nm工藝的DDR4(第四代雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器Dual Data Rate Synchronous Dynamic Random Access Memory)內(nèi)存芯片將開始應(yīng)用于數(shù)據(jù)中心高端服務(wù)器,,基于差分信號技術(shù)的DDR4內(nèi)存,其傳輸速率將會(huì)達(dá)到6.4 Gb/s,。

  2.2 SSD技術(shù)現(xiàn)狀分析

  固態(tài)硬盤SSD(Solid State Drives)是用固態(tài)電子存儲(chǔ)芯片陣列而制成的硬盤[2],。與傳統(tǒng)HDD(Hard Disk Drive)硬盤相比具有讀寫速度快的優(yōu)勢,目前基于PCIE總線技術(shù)的固態(tài)硬盤的讀寫速度甚至超過了500 MB/s,,但SSD也存在著容量較低,、使用壽命受限、價(jià)格較高等缺點(diǎn),。在本方案中,,采用了SSD盤用于提升數(shù)據(jù)庫集群的整體I/O吞吐能力。

  2.3 RDMA技術(shù)分析

  遠(yuǎn)程直接數(shù)據(jù)存取RDMA(Remote Direct Memory Access)技術(shù)是為了解決網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲而產(chǎn)生的[3],。RDMA通過網(wǎng)絡(luò)把資料直接傳入計(jì)算機(jī)的存儲(chǔ)區(qū),,將數(shù)據(jù)從一個(gè)系統(tǒng)快速移動(dòng)到遠(yuǎn)程系統(tǒng)存儲(chǔ)器中,而不對操作系統(tǒng)造成任何影響,,這樣就不需要占用服務(wù)器的處理功能,。它消除了外部存儲(chǔ)器復(fù)制和文本交換操作,因而能釋放內(nèi)存帶寬和CPU的使用,,能有效提升應(yīng)用系統(tǒng)性能,。在本文提出的方案中,RDMA技術(shù)的引入可以有效提升不同數(shù)據(jù)節(jié)點(diǎn)間的數(shù)據(jù)交互速度,,降低數(shù)據(jù)處理延時(shí),。

  2.4 存儲(chǔ)虛擬化技術(shù)分析

  存儲(chǔ)虛擬化(Storage Virtualization)技術(shù)是一種屏蔽存儲(chǔ)異構(gòu)環(huán)境,整合存儲(chǔ)資源,,統(tǒng)一提供有用的全面功能服務(wù)的一種虛擬化技術(shù)[4],。通過這種技術(shù)可以將存儲(chǔ)資源虛擬成一個(gè)“存儲(chǔ)池”,從而提高整體利用率并降低管理成本,,同時(shí)也可以實(shí)現(xiàn)在復(fù)雜環(huán)境下的數(shù)據(jù)遷移與數(shù)據(jù)同步,,提升存儲(chǔ)環(huán)境的整體性能和可用性水平,。在本方案中,通過存儲(chǔ)虛擬化技術(shù)將所有服務(wù)器節(jié)點(diǎn)的磁盤虛擬成一個(gè)“存儲(chǔ)池”,,統(tǒng)一進(jìn)行數(shù)據(jù)的分配與備份,,以此提升數(shù)據(jù)的安全性。

3 基于X86平臺(tái)的高性能數(shù)據(jù)庫集群技術(shù)方案

  通過以上技術(shù)手段,,本文提出了一種基于X86服務(wù)器平臺(tái),,采用高性能SSD盤搭配SAS機(jī)內(nèi)盤的混合存儲(chǔ)模式,并通過存儲(chǔ)虛擬化整合多節(jié)點(diǎn)存儲(chǔ),,網(wǎng)絡(luò)采用支持RDMA功能的萬兆網(wǎng)絡(luò),,部署的數(shù)據(jù)庫集群架構(gòu),在成本大幅降低的基礎(chǔ)上達(dá)到與傳統(tǒng)架構(gòu)近似的性能,。

  3.1 實(shí)施目標(biāo)

  本文以X86架構(gòu)PC服務(wù)器集群為核心,,以新型高性能網(wǎng)絡(luò)為通道,以存儲(chǔ)虛擬化軟件為紐帶,,構(gòu)建多節(jié)點(diǎn),、高性能、高可用,、高吞吐量,、可靈活橫向擴(kuò)展的全新數(shù)據(jù)庫集群[5]解決方案。本方案通過某電信綜合網(wǎng)元激活系統(tǒng)的應(yīng)用進(jìn)行測試,,以驗(yàn)證方案可行性與先進(jìn)性,。

  3.2 驗(yàn)證方案

  以四臺(tái)X86機(jī)架式服務(wù)器為平臺(tái),,在Linux操作系統(tǒng)之上,,構(gòu)建多節(jié)點(diǎn)數(shù)據(jù)庫集群。每臺(tái)服務(wù)器內(nèi)置1塊SSD硬盤,,作為一級存儲(chǔ),,實(shí)現(xiàn)數(shù)據(jù)庫高速讀緩存;服務(wù)器內(nèi)置SAS盤,,作為二級存儲(chǔ),,用于數(shù)據(jù)庫大數(shù)據(jù)容量存儲(chǔ);外置NAS磁盤陣列,,以ISCSI方式連接,,作為三級低速存儲(chǔ),用以定時(shí)快照數(shù)據(jù)庫數(shù)據(jù),,實(shí)現(xiàn)數(shù)據(jù)容災(zāi),。

  集群內(nèi)部通過支持RDMA協(xié)議的萬兆交換機(jī)構(gòu)建高速網(wǎng)絡(luò),服務(wù)器之間通過直接訪問對方的內(nèi)存來存取數(shù)據(jù),,不經(jīng)過傳統(tǒng)網(wǎng)絡(luò)層的額外數(shù)據(jù)緩沖,,也不需要進(jìn)行SCSI協(xié)議轉(zhuǎn)換與CPU的處理,,從而達(dá)到更高的性能和更低的時(shí)延。

  通過存儲(chǔ)虛擬化軟件,,將各節(jié)點(diǎn)中本地硬盤作為共享存儲(chǔ)使用,;通過兩兩服務(wù)器間的數(shù)據(jù)鏡像,確保數(shù)據(jù)跨設(shè)備冗余,;最終構(gòu)建4節(jié)點(diǎn)數(shù)據(jù)庫集群,。集群中任一節(jié)點(diǎn)故障都不會(huì)造成數(shù)據(jù)庫集群的數(shù)據(jù)和應(yīng)用中斷。

  當(dāng)數(shù)據(jù)庫計(jì)算能力或存儲(chǔ)容量不足時(shí),,可以通過在線增加集群的單元節(jié)點(diǎn)的方式來進(jìn)行橫向擴(kuò)展,。部署架構(gòu)圖如圖1所示。

001.jpg

  3.3 配置方案

 ?。?)通過存儲(chǔ)虛擬化軟件將不同服務(wù)器上的SSD硬盤及SAS盤配置成共享存儲(chǔ),,并設(shè)置跨主機(jī)的數(shù)據(jù)鏡像。如圖2所示,。

002.jpg

 ?。?)為保證數(shù)據(jù)庫的讀寫性能,需要將SSD硬盤設(shè)置為數(shù)據(jù)庫的讀緩存,,將數(shù)據(jù)庫中讀寫頻繁,、對I/O性能要求最高的數(shù)據(jù)文件,全部配置在SSD硬盤所提供的文件系統(tǒng)或硬盤邏輯卷組上,。

 ?。?)對于配置定時(shí)進(jìn)行數(shù)據(jù)快照保存至NAS設(shè)備,根據(jù)應(yīng)用特點(diǎn),,確定快照間隔時(shí)間,。并區(qū)分?jǐn)?shù)據(jù)庫與日志的快照時(shí)間,盡可能使日志快照緊隨其產(chǎn)生之后,。

 ?。?)對于數(shù)據(jù)庫備份的配置,增加一臺(tái)備份介質(zhì)服務(wù)器,,與主服務(wù)器相似配置(可做生產(chǎn)服務(wù)器的備機(jī)),,數(shù)據(jù)備份至備份服務(wù)器內(nèi)置的串行連接SCSI(Serial Attached SCSI)盤以及磁帶庫。備份可以通過與生產(chǎn)數(shù)據(jù)共享網(wǎng)絡(luò)完成,,也可通過單獨(dú)的備份萬兆網(wǎng)絡(luò)完成,。備份數(shù)據(jù)將通過數(shù)據(jù)庫集群中的每一個(gè)節(jié)點(diǎn)。首先在各自節(jié)點(diǎn)完成重復(fù)數(shù)據(jù)刪除,,再通過萬兆網(wǎng)絡(luò)傳輸?shù)絺浞萁橘|(zhì)服務(wù)器,,從而完成首次磁盤備份。然后根據(jù)備份策略由備份介質(zhì)服器自動(dòng)將數(shù)據(jù)從磁盤介質(zhì)復(fù)制到磁帶庫中,,整個(gè)復(fù)制過程與被保護(hù)的數(shù)據(jù)庫集群無關(guān),。

4 測試結(jié)果及分析

  4.1 測試平臺(tái)參數(shù)

  在實(shí)驗(yàn)室搭建了如下的實(shí)驗(yàn)平臺(tái),,具體參數(shù)見表1。

007.jpg

  4.2 測試過程及結(jié)果分析

  本次測試使用到的測試工具為:VXBench及SwingBench,。

  VXBench是磁盤I/O測試的工具,,可以測試基于磁盤虛擬化并共享的場景下的磁盤I/O吞吐量、IOPS和延時(shí),。

  SwingBench工具可以模擬Oracle數(shù)據(jù)庫insert/update/select等應(yīng)用場景,,測試上述不同場景下的事務(wù)處理能力,包括每分鐘處理事務(wù)數(shù)據(jù)TPM,、每秒處理事務(wù)數(shù)TPS,、事務(wù)處理響應(yīng)時(shí)間Response Time等指標(biāo)。

  本次測試,,導(dǎo)入測試數(shù)據(jù)庫數(shù)據(jù),,數(shù)據(jù)量約2T,通過應(yīng)用服務(wù)器模擬數(shù)據(jù)庫的增,、刪,、改、查操作,,對數(shù)據(jù)庫集群進(jìn)行長時(shí)間,、高并發(fā)的壓測,以驗(yàn)證本方案是否有效,。

  4.2.1 高可用測試

 ?。?)基于集群節(jié)點(diǎn)重啟測試,主要驗(yàn)證主機(jī)異常重啟對系統(tǒng)的影響,,結(jié)果如表2,。

008.jpg

  測試結(jié)論:基于四節(jié)點(diǎn)RAC,采用兩節(jié)點(diǎn)盤鏡像后再條帶化的方式,,其結(jié)果如下:

 ?、僦貑喂?jié)點(diǎn),,系統(tǒng)正常,;

  ②重啟兩節(jié)點(diǎn),,如果重啟的節(jié)點(diǎn)正好是同一份鏡像的兩節(jié)點(diǎn),,系統(tǒng)異常;

 ?、燮渌惙绞街貑晒?jié)點(diǎn),,系統(tǒng)正常;

 ?、苤貑⑷?jié)點(diǎn),,系統(tǒng)異常,。

  (2)基于四節(jié)點(diǎn)RAC,、Oracle心跳異常測試,,主要驗(yàn)證主機(jī)心跳網(wǎng)卡中斷對系統(tǒng)的影響,如表3所示,。

009.jpg

  測試結(jié)論:Oracle心跳網(wǎng)卡采用系統(tǒng)bonding綁定方式,,拔其中任意一根網(wǎng)卡對生產(chǎn)不造成影響。當(dāng)拔兩根網(wǎng)卡后,,該系統(tǒng)業(yè)務(wù)切換至正常生產(chǎn)的系統(tǒng)上,。整個(gè)RAC正常。

 ?。?)基于四節(jié)點(diǎn)RAC,、模擬磁盤故障測試,主要驗(yàn)證磁盤損壞對系統(tǒng)的影響,,如表4所示,。

010.jpg

  (4)集群擴(kuò)展性測試

  測試場景:將集群中四個(gè)節(jié)點(diǎn)去掉一個(gè),,然后重新加入集群,,觀測系統(tǒng)運(yùn)行狀況。測試情況如表5,。

011.jpg

  4.2.2 集群性能測試

 ?。?)基于SSD盤的跨節(jié)點(diǎn)數(shù)據(jù)鏡像測試

  測試過程:將節(jié)點(diǎn)1和節(jié)點(diǎn)2主機(jī)上的SSD盤做成一個(gè)卷組,在這個(gè)卷組上,,使用節(jié)點(diǎn)1的SSD盤建立一個(gè)邏輯卷lv01,,大小為600 GB,使用節(jié)點(diǎn)2的SSD盤建立一個(gè)邏輯卷lv02,,大小也為600 GB,,執(zhí)行鏡像腳本,將節(jié)點(diǎn)1上的lv01中的數(shù)據(jù)同步到節(jié)點(diǎn)2上的lv02,。

  測試結(jié)果如下:

  節(jié)點(diǎn)2的SSD寫盤速率在606 MB/s左右,,節(jié)點(diǎn)1的SSD讀盤速率約在597 MB/s左右,服務(wù)器的CPU使用率約在15%,,內(nèi)存使用率約在45%,。

  測試結(jié)論:卷組能夠充分利用萬兆網(wǎng)卡的RDMA功能進(jìn)行數(shù)據(jù)復(fù)制,基本不消耗CPU的能力,。

 ?。?)基于SSD盤的邏輯卷I/O壓力測試

  測試場景:本地或遠(yuǎn)程讀寫SSD盤性能數(shù)據(jù),使用VXBench工具進(jìn)行測試。

  性能測試數(shù)據(jù)如圖3~5所示,。

003.jpg

  測試結(jié)論:本地讀寫與遠(yuǎn)端讀寫IOPS和吞吐能力,、時(shí)延等性能相近;SSD盤的本地與遠(yuǎn)程讀寫的峰值在750 MB/s左右,,基本達(dá)到中高端存儲(chǔ)的讀寫能力,。

  (3)基于SSD磁盤和SAS磁盤的性能及差別

  測試場景:服務(wù)器直接寫本地SSD和SAS盤,,在塊大小為4 KB,、8 KB、64 KB三種情況下分別進(jìn)行測試,,測試工具為VXBench,。

  性能測試數(shù)據(jù)如圖6、圖7所示,。

004.jpg

005.jpg

  測試結(jié)論:單個(gè)SSD盤的寫IOPS超過10萬,,比SAS盤快100倍;單個(gè)SSD盤的寫讀寫速度達(dá)到500M/s,,比SAS盤快10倍,。

  (4)基于RDMA技術(shù)進(jìn)行跨節(jié)點(diǎn)讀寫與不使用RDMA技術(shù)進(jìn)行跨節(jié)點(diǎn)讀寫的比較

  測試場景:服務(wù)器通過萬兆網(wǎng)絡(luò)跨節(jié)點(diǎn)讀寫SSD磁盤,,分別啟用和不啟用RDMA,,比較兩者的差異,測試工具為VXBench,。

  性能測試數(shù)據(jù)如圖8,、圖9所示。

006.jpg

  測試數(shù)據(jù)分析:在數(shù)據(jù)塊較小的場景下,,啟用RDMA和不啟用RDMA,,讀寫速率沒有明顯差別;在數(shù)據(jù)庫較大的場景下,,啟用了RDMA比不啟用RDMA,,讀寫速率增加了一倍。

  性能測試效果如表6所示,。

012.jpg

5 結(jié)束語

  本文提出了一種基于X86平臺(tái)的高性能數(shù)據(jù)庫集群技術(shù),,通過RDMA、存儲(chǔ)虛擬化,、數(shù)據(jù)庫集群等技術(shù)提供了一種有效的數(shù)據(jù)庫應(yīng)用方案,,基本達(dá)到了傳統(tǒng)架構(gòu)下的處理能力,并提升了平臺(tái)的穩(wěn)定性,。這種方案通過廉價(jià)的硬件成本實(shí)現(xiàn)了X86平臺(tái)的高性能響應(yīng),存儲(chǔ)虛擬化及鏡像技術(shù)的應(yīng)用,確保了在高讀寫并發(fā)情況下數(shù)據(jù)的安全,,相比于傳統(tǒng)的小型機(jī)與磁盤陣列架構(gòu)具有較高的性價(jià)比與應(yīng)用推廣價(jià)值,。

參考文獻(xiàn)

  [1] SCHMIDT D J. Holistic handset power management: transisitor to platform[R]. IWPC, 2010.4.

  [2] 袁飛.固態(tài)硬盤的研究與應(yīng)用[D].成都:電子科技大學(xué),,2010.

  [3] GARCIA D,, HILL J, BARRON D,, et al. An RDMA protocol speci fication(Version 1.0)[EB/OL].(2014-09-29)http://www.rdmaconsortium.org/home.

  [4] 廖瑩寒,,朱敏.兩級存儲(chǔ)虛擬化模型[J].計(jì)算機(jī)應(yīng)用與軟件,2012(4):180-182.

  [5] 梁勇.數(shù)據(jù)庫集群故障切換技術(shù)的研究與實(shí)現(xiàn)[D].長沙:國防科技大學(xué),,2010.


此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。