摘 要: 分析了信息系統(tǒng)中普遍采用的小型機搭配磁盤陣列的部署架構所帶來的成本高、擴展性差的現(xiàn)狀。針對這種現(xiàn)狀提出了一種基于X86平臺的高性能數(shù)據(jù)庫集群技術,通過測試論證了這種技術的高性能與高可靠,最后通過該項技術在電信信息系統(tǒng)中的實際應用說明了該方案的可行性。
關鍵詞: PCIE-Flash卡;RDMA;存儲虛擬化
0 引言
隨著互聯(lián)網(wǎng)時代的不斷發(fā)展,搭建廉價、開放、共享、可擴展的信息系統(tǒng)平臺已成為信息系統(tǒng)的轉型方向,這不僅需要去除電信在傳統(tǒng)運營思維下形成的對高性能高成本的設備和軟件的依賴,也需要對信息系統(tǒng)進行改造,從高質量、高復雜度向可擴展、低成本轉變,做到資源效益的最大化。隨著硬件技術的發(fā)展,一方面X86平臺架構的PC服務器與傳統(tǒng)小型機在性能方面的差距不斷縮小,另一方面以SSD(固態(tài)硬盤Solid State Drive)為代表的高性能存儲介質的出現(xiàn),使得配備了這種存儲介質的X86服務器不需要外接磁盤陣列就能具有極高的I/O吞吐能力。通過以上兩種平臺技術,結合遠程數(shù)據(jù)直接存取RDMA(Remote Direct Memory Access)及存儲虛擬化技術,本文提出了一種基于X86平臺的高性能數(shù)據(jù)庫集群技術在信息系統(tǒng)中的應用方案。
1 傳統(tǒng)小型機與磁盤陣列部署架構的分析
傳統(tǒng)小型機與磁盤陣列的部署架構以高可靠性、高可用性、可服務性(Reliability、Availability、Serviceability簡稱RAS)[1]有效地支撐了信息系統(tǒng)的高效運行,但傳統(tǒng)架構在當前互聯(lián)網(wǎng)高速發(fā)展的環(huán)境下也面臨以下問題:(1)在非結構化數(shù)據(jù)處理方面能力不足;(2)系統(tǒng)成本高昂,同等處理能力的小型機價格大約是PC服務器的10倍;(3)硬件平臺的兼容性差,各廠家的小型機平臺都存在技術壁壘,操作系統(tǒng)無法兼容;(4)擴展性有限,傳統(tǒng)小型機和磁盤陣列的處理能力屬于TB級,而在面對PB級數(shù)據(jù)時,無法高性能地進行處理。隨著信息系統(tǒng)向著開源、開放、廉價的方向演進,以及業(yè)內“去IOE”進程的深化,將會有越來越多的信息系統(tǒng)不再使用傳統(tǒng)架構進行部署。
2 X86平臺與SSD等技術的現(xiàn)狀分析
2.1 X86平臺現(xiàn)狀
全球最新的服務器X86處理器將進入14 nm工藝時代,這意味著X86架構的服務器將會具備更高的處理性能、更長的穩(wěn)定運行時間以及更低的能耗。下一代20 nm工藝的DDR4(第四代雙倍速率同步動態(tài)隨機存儲器Dual Data Rate Synchronous Dynamic Random Access Memory)內存芯片將開始應用于數(shù)據(jù)中心高端服務器,基于差分信號技術的DDR4內存,其傳輸速率將會達到6.4 Gb/s。
2.2 SSD技術現(xiàn)狀分析
固態(tài)硬盤SSD(Solid State Drives)是用固態(tài)電子存儲芯片陣列而制成的硬盤[2]。與傳統(tǒng)HDD(Hard Disk Drive)硬盤相比具有讀寫速度快的優(yōu)勢,目前基于PCIE總線技術的固態(tài)硬盤的讀寫速度甚至超過了500 MB/s,但SSD也存在著容量較低、使用壽命受限、價格較高等缺點。在本方案中,采用了SSD盤用于提升數(shù)據(jù)庫集群的整體I/O吞吐能力。
2.3 RDMA技術分析
遠程直接數(shù)據(jù)存取RDMA(Remote Direct Memory Access)技術是為了解決網(wǎng)絡傳輸中服務器端數(shù)據(jù)處理的延遲而產生的[3]。RDMA通過網(wǎng)絡把資料直接傳入計算機的存儲區(qū),將數(shù)據(jù)從一個系統(tǒng)快速移動到遠程系統(tǒng)存儲器中,而不對操作系統(tǒng)造成任何影響,這樣就不需要占用服務器的處理功能。它消除了外部存儲器復制和文本交換操作,因而能釋放內存帶寬和CPU的使用,能有效提升應用系統(tǒng)性能。在本文提出的方案中,RDMA技術的引入可以有效提升不同數(shù)據(jù)節(jié)點間的數(shù)據(jù)交互速度,降低數(shù)據(jù)處理延時。
2.4 存儲虛擬化技術分析
存儲虛擬化(Storage Virtualization)技術是一種屏蔽存儲異構環(huán)境,整合存儲資源,統(tǒng)一提供有用的全面功能服務的一種虛擬化技術[4]。通過這種技術可以將存儲資源虛擬成一個“存儲池”,從而提高整體利用率并降低管理成本,同時也可以實現(xiàn)在復雜環(huán)境下的數(shù)據(jù)遷移與數(shù)據(jù)同步,提升存儲環(huán)境的整體性能和可用性水平。在本方案中,通過存儲虛擬化技術將所有服務器節(jié)點的磁盤虛擬成一個“存儲池”,統(tǒng)一進行數(shù)據(jù)的分配與備份,以此提升數(shù)據(jù)的安全性。
3 基于X86平臺的高性能數(shù)據(jù)庫集群技術方案
通過以上技術手段,本文提出了一種基于X86服務器平臺,采用高性能SSD盤搭配SAS機內盤的混合存儲模式,并通過存儲虛擬化整合多節(jié)點存儲,網(wǎng)絡采用支持RDMA功能的萬兆網(wǎng)絡,部署的數(shù)據(jù)庫集群架構,在成本大幅降低的基礎上達到與傳統(tǒng)架構近似的性能。
3.1 實施目標
本文以X86架構PC服務器集群為核心,以新型高性能網(wǎng)絡為通道,以存儲虛擬化軟件為紐帶,構建多節(jié)點、高性能、高可用、高吞吐量、可靈活橫向擴展的全新數(shù)據(jù)庫集群[5]解決方案。本方案通過某電信綜合網(wǎng)元激活系統(tǒng)的應用進行測試,以驗證方案可行性與先進性。
3.2 驗證方案
以四臺X86機架式服務器為平臺,在Linux操作系統(tǒng)之上,構建多節(jié)點數(shù)據(jù)庫集群。每臺服務器內置1塊SSD硬盤,作為一級存儲,實現(xiàn)數(shù)據(jù)庫高速讀緩存;服務器內置SAS盤,作為二級存儲,用于數(shù)據(jù)庫大數(shù)據(jù)容量存儲;外置NAS磁盤陣列,以ISCSI方式連接,作為三級低速存儲,用以定時快照數(shù)據(jù)庫數(shù)據(jù),實現(xiàn)數(shù)據(jù)容災。
集群內部通過支持RDMA協(xié)議的萬兆交換機構建高速網(wǎng)絡,服務器之間通過直接訪問對方的內存來存取數(shù)據(jù),不經過傳統(tǒng)網(wǎng)絡層的額外數(shù)據(jù)緩沖,也不需要進行SCSI協(xié)議轉換與CPU的處理,從而達到更高的性能和更低的時延。
通過存儲虛擬化軟件,將各節(jié)點中本地硬盤作為共享存儲使用;通過兩兩服務器間的數(shù)據(jù)鏡像,確保數(shù)據(jù)跨設備冗余;最終構建4節(jié)點數(shù)據(jù)庫集群。集群中任一節(jié)點故障都不會造成數(shù)據(jù)庫集群的數(shù)據(jù)和應用中斷。
當數(shù)據(jù)庫計算能力或存儲容量不足時,可以通過在線增加集群的單元節(jié)點的方式來進行橫向擴展。部署架構圖如圖1所示。
3.3 配置方案
?。?)通過存儲虛擬化軟件將不同服務器上的SSD硬盤及SAS盤配置成共享存儲,并設置跨主機的數(shù)據(jù)鏡像。如圖2所示。
(2)為保證數(shù)據(jù)庫的讀寫性能,需要將SSD硬盤設置為數(shù)據(jù)庫的讀緩存,將數(shù)據(jù)庫中讀寫頻繁、對I/O性能要求最高的數(shù)據(jù)文件,全部配置在SSD硬盤所提供的文件系統(tǒng)或硬盤邏輯卷組上。
(3)對于配置定時進行數(shù)據(jù)快照保存至NAS設備,根據(jù)應用特點,確定快照間隔時間。并區(qū)分數(shù)據(jù)庫與日志的快照時間,盡可能使日志快照緊隨其產生之后。
?。?)對于數(shù)據(jù)庫備份的配置,增加一臺備份介質服務器,與主服務器相似配置(可做生產服務器的備機),數(shù)據(jù)備份至備份服務器內置的串行連接SCSI(Serial Attached SCSI)盤以及磁帶庫。備份可以通過與生產數(shù)據(jù)共享網(wǎng)絡完成,也可通過單獨的備份萬兆網(wǎng)絡完成。備份數(shù)據(jù)將通過數(shù)據(jù)庫集群中的每一個節(jié)點。首先在各自節(jié)點完成重復數(shù)據(jù)刪除,再通過萬兆網(wǎng)絡傳輸?shù)絺浞萁橘|服務器,從而完成首次磁盤備份。然后根據(jù)備份策略由備份介質服器自動將數(shù)據(jù)從磁盤介質復制到磁帶庫中,整個復制過程與被保護的數(shù)據(jù)庫集群無關。
4 測試結果及分析
4.1 測試平臺參數(shù)
在實驗室搭建了如下的實驗平臺,具體參數(shù)見表1。
4.2 測試過程及結果分析
本次測試使用到的測試工具為:VXBench及SwingBench。
VXBench是磁盤I/O測試的工具,可以測試基于磁盤虛擬化并共享的場景下的磁盤I/O吞吐量、IOPS和延時。
SwingBench工具可以模擬Oracle數(shù)據(jù)庫insert/update/select等應用場景,測試上述不同場景下的事務處理能力,包括每分鐘處理事務數(shù)據(jù)TPM、每秒處理事務數(shù)TPS、事務處理響應時間Response Time等指標。
本次測試,導入測試數(shù)據(jù)庫數(shù)據(jù),數(shù)據(jù)量約2T,通過應用服務器模擬數(shù)據(jù)庫的增、刪、改、查操作,對數(shù)據(jù)庫集群進行長時間、高并發(fā)的壓測,以驗證本方案是否有效。
4.2.1 高可用測試
?。?)基于集群節(jié)點重啟測試,主要驗證主機異常重啟對系統(tǒng)的影響,結果如表2。
測試結論:基于四節(jié)點RAC,采用兩節(jié)點盤鏡像后再條帶化的方式,其結果如下:
?、僦貑喂?jié)點,系統(tǒng)正常;
②重啟兩節(jié)點,如果重啟的節(jié)點正好是同一份鏡像的兩節(jié)點,系統(tǒng)異常;
③其他三類方式重啟兩節(jié)點,系統(tǒng)正常;
④重啟三節(jié)點,系統(tǒng)異常。
?。?)基于四節(jié)點RAC、Oracle心跳異常測試,主要驗證主機心跳網(wǎng)卡中斷對系統(tǒng)的影響,如表3所示。
測試結論:Oracle心跳網(wǎng)卡采用系統(tǒng)bonding綁定方式,拔其中任意一根網(wǎng)卡對生產不造成影響。當拔兩根網(wǎng)卡后,該系統(tǒng)業(yè)務切換至正常生產的系統(tǒng)上。整個RAC正常。
?。?)基于四節(jié)點RAC、模擬磁盤故障測試,主要驗證磁盤損壞對系統(tǒng)的影響,如表4所示。
?。?)集群擴展性測試
測試場景:將集群中四個節(jié)點去掉一個,然后重新加入集群,觀測系統(tǒng)運行狀況。測試情況如表5。
4.2.2 集群性能測試
?。?)基于SSD盤的跨節(jié)點數(shù)據(jù)鏡像測試
測試過程:將節(jié)點1和節(jié)點2主機上的SSD盤做成一個卷組,在這個卷組上,使用節(jié)點1的SSD盤建立一個邏輯卷lv01,大小為600 GB,使用節(jié)點2的SSD盤建立一個邏輯卷lv02,大小也為600 GB,執(zhí)行鏡像腳本,將節(jié)點1上的lv01中的數(shù)據(jù)同步到節(jié)點2上的lv02。
測試結果如下:
節(jié)點2的SSD寫盤速率在606 MB/s左右,節(jié)點1的SSD讀盤速率約在597 MB/s左右,服務器的CPU使用率約在15%,內存使用率約在45%。
測試結論:卷組能夠充分利用萬兆網(wǎng)卡的RDMA功能進行數(shù)據(jù)復制,基本不消耗CPU的能力。
(2)基于SSD盤的邏輯卷I/O壓力測試
測試場景:本地或遠程讀寫SSD盤性能數(shù)據(jù),使用VXBench工具進行測試。
性能測試數(shù)據(jù)如圖3~5所示。
測試結論:本地讀寫與遠端讀寫IOPS和吞吐能力、時延等性能相近;SSD盤的本地與遠程讀寫的峰值在750 MB/s左右,基本達到中高端存儲的讀寫能力。
?。?)基于SSD磁盤和SAS磁盤的性能及差別
測試場景:服務器直接寫本地SSD和SAS盤,在塊大小為4 KB、8 KB、64 KB三種情況下分別進行測試,測試工具為VXBench。
性能測試數(shù)據(jù)如圖6、圖7所示。
測試結論:單個SSD盤的寫IOPS超過10萬,比SAS盤快100倍;單個SSD盤的寫讀寫速度達到500M/s,比SAS盤快10倍。
?。?)基于RDMA技術進行跨節(jié)點讀寫與不使用RDMA技術進行跨節(jié)點讀寫的比較
測試場景:服務器通過萬兆網(wǎng)絡跨節(jié)點讀寫SSD磁盤,分別啟用和不啟用RDMA,比較兩者的差異,測試工具為VXBench。
性能測試數(shù)據(jù)如圖8、圖9所示。
測試數(shù)據(jù)分析:在數(shù)據(jù)塊較小的場景下,啟用RDMA和不啟用RDMA,讀寫速率沒有明顯差別;在數(shù)據(jù)庫較大的場景下,啟用了RDMA比不啟用RDMA,讀寫速率增加了一倍。
性能測試效果如表6所示。
5 結束語
本文提出了一種基于X86平臺的高性能數(shù)據(jù)庫集群技術,通過RDMA、存儲虛擬化、數(shù)據(jù)庫集群等技術提供了一種有效的數(shù)據(jù)庫應用方案,基本達到了傳統(tǒng)架構下的處理能力,并提升了平臺的穩(wěn)定性。這種方案通過廉價的硬件成本實現(xiàn)了X86平臺的高性能響應,存儲虛擬化及鏡像技術的應用,確保了在高讀寫并發(fā)情況下數(shù)據(jù)的安全,相比于傳統(tǒng)的小型機與磁盤陣列架構具有較高的性價比與應用推廣價值。
參考文獻
[1] SCHMIDT D J. Holistic handset power management: transisitor to platform[R]. IWPC, 2010.4.
[2] 袁飛.固態(tài)硬盤的研究與應用[D].成都:電子科技大學,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].計算機應用與軟件,2012(4):180-182.
[5] 梁勇.數(shù)據(jù)庫集群故障切換技術的研究與實現(xiàn)[D].長沙:國防科技大學,2010.