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

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

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

0 引言

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

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

  2.1 X86平臺現(xiàn)狀

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

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

  固態(tài)硬盤SSD(Solid State Drives)是用固態(tài)電子存儲芯片陣列而制成的硬盤[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ī)的存儲區(qū),,將數(shù)據(jù)從一個(gè)系統(tǒng)快速移動到遠(yuǎn)程系統(tǒng)存儲器中,,而不對操作系統(tǒng)造成任何影響,這樣就不需要占用服務(wù)器的處理功能,。它消除了外部存儲器復(fù)制和文本交換操作,,因而能釋放內(nèi)存帶寬和CPU的使用,能有效提升應(yīng)用系統(tǒng)性能,。在本文提出的方案中,,RDMA技術(shù)的引入可以有效提升不同數(shù)據(jù)節(jié)點(diǎn)間的數(shù)據(jù)交互速度,降低數(shù)據(jù)處理延時(shí),。

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

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

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

  通過以上技術(shù)手段,本文提出了一種基于X86服務(wù)器平臺,,采用高性能SSD盤搭配SAS機(jī)內(nèi)盤的混合存儲模式,,并通過存儲虛擬化整合多節(jié)點(diǎn)存儲,網(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ò)為通道,,以存儲虛擬化軟件為紐帶,構(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)證方案

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

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

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

001.jpg

  3.3 配置方案

  (1)通過存儲虛擬化軟件將不同服務(wù)器上的SSD硬盤及SAS盤配置成共享存儲,,并設(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ù)庫備份的配置,,增加一臺備份介質(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ì)服器自動將數(shù)據(jù)從磁盤介質(zhì)復(fù)制到磁帶庫中,,整個(gè)復(fù)制過程與被保護(hù)的數(shù)據(jù)庫集群無關(guān)。

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

  4.1 測試平臺參數(shù)

  在實(shí)驗(yàn)室搭建了如下的實(shí)驗(yàn)平臺,,具體參數(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)異常。

 ?。?)基于四節(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

 ?。?)集群擴(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的能力。

  (2)基于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á)到中高端存儲的讀寫能力,。

 ?。?)基于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倍,。

 ?。?)基于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平臺的高性能數(shù)據(jù)庫集群技術(shù),,通過RDMA,、存儲虛擬化、數(shù)據(jù)庫集群等技術(shù)提供了一種有效的數(shù)據(jù)庫應(yīng)用方案,,基本達(dá)到了傳統(tǒng)架構(gòu)下的處理能力,,并提升了平臺的穩(wěn)定性。這種方案通過廉價(jià)的硬件成本實(shí)現(xiàn)了X86平臺的高性能響應(yīng),存儲虛擬化及鏡像技術(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] 廖瑩寒,朱敏.兩級存儲虛擬化模型[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)載,。