版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 基于軟件架構(gòu)的雙活數(shù)據(jù)中心建設(shè)方案分析 目 錄 TOC o 1-3 h z u HYPERLINK l _Toc66547651 基于軟件架構(gòu)的雙活數(shù)據(jù)中心建設(shè)方案分析 PAGEREF _Toc66547651 h 1 HYPERLINK l _Toc66547652 第一部分:GPFS PAGEREF _Toc66547652 h 3 HYPERLINK l _Toc66547653 一、GPFS并行文件系統(tǒng) PAGEREF _Toc66547653 h 3 HYPERLINK l _Toc66547654 二、基于GPFS技術(shù)的應(yīng)用跨中心雙活架構(gòu)與容災(zāi) PAGEREF _Toc66547
2、654 h 5 HYPERLINK l _Toc66547655 第二部分:并行Oracle、并行DB2 PAGEREF _Toc66547655 h 10 HYPERLINK l _Toc66547656 一、并行DB PAGEREF _Toc66547656 h 10 HYPERLINK l _Toc66547657 二、Oracle RAC PAGEREF _Toc66547657 h 11 HYPERLINK l _Toc66547658 三、DB2 PureScale PAGEREF _Toc66547658 h 16 HYPERLINK l _Toc66547659 第三部分:整體
3、架構(gòu) PAGEREF _Toc66547659 h 23 HYPERLINK l _Toc66547660 第四部分:技術(shù)難點解決、實施建議 PAGEREF _Toc66547660 h 28本文來自社區(qū)專家分享文章及交流整理,是目前相對全面的基于軟件架構(gòu)的雙活數(shù)據(jù)中心建設(shè)方案的比較及分析。內(nèi)容包括:GPFS并行文件系統(tǒng)、GPFS的跨中心容災(zāi)與雙活架構(gòu)、并行Oracle架構(gòu)、跨中心并行Oracle架構(gòu)、并行DB2 PureScale架構(gòu)和GDPC等,以及常見的軟件架構(gòu)的雙活數(shù)據(jù)中心建設(shè)架構(gòu)之比較分析。并附針對相關(guān)內(nèi)容的具體難點問題解答及實施建議。第一部分:GPFS一、GPFS并行文件系統(tǒng)說起G
4、PFS,大家已經(jīng)比較了解了,這里再次不厭其煩地再介紹一遍GPFS (General Parallel File System)是 IBM 公司第一個共享文件系統(tǒng),它是一個并行的磁盤文件系統(tǒng),它保證在資源組內(nèi)的所有節(jié)點可以并行訪問整個文件系統(tǒng)。 GPFS 提供的文件系統(tǒng)操作服務(wù)可以支持并行應(yīng)用和串行應(yīng)用,它允許任何節(jié)點上的并行應(yīng)用同時訪問同一個文件或者不同的文件,提供統(tǒng)一命名接口。既然是并行文件系統(tǒng),GPFS相對于單一節(jié)點和單一文件系統(tǒng)它有以下幾個特點:1.文件系統(tǒng)的并發(fā)讀寫:多個節(jié)點的同一文件系統(tǒng),同時受理I/O讀寫請求,提升文件系統(tǒng)讀寫的并發(fā)性,多個節(jié)點均為ACTIVE。2.文件系統(tǒng)的高可靠
5、性:文件系統(tǒng)的數(shù)據(jù)可通過日志或復(fù)制的方式存在多個副本,并且由于多個節(jié)點和多個磁盤的多活特性,可容忍故障節(jié)點數(shù)或磁盤數(shù)提升。3.文件系統(tǒng)的高性能:通過將文件分布在多個節(jié)點和磁盤上,使得文件系統(tǒng)的讀寫操作分布到多個磁盤上和多個節(jié)點上,GPFS可以超越單一節(jié)點和單一文件系統(tǒng)的性能極限。4.文件系統(tǒng)的可擴展性:文件系統(tǒng)可隨節(jié)點數(shù)的增加和存儲磁盤個數(shù)的增加,進(jìn)行在線擴展和文件系統(tǒng)數(shù)據(jù)塊均衡或調(diào)整。進(jìn)一步提升性能、容量和可靠性。在GPFS并行文件系統(tǒng)的應(yīng)用中,通常有以下三種主要的應(yīng)用架構(gòu)模型:1.SAN網(wǎng)絡(luò)模式這種架構(gòu)也叫Direct Attached Storage架構(gòu),在該架構(gòu)模式下,所有節(jié)點通過SA
6、N網(wǎng)絡(luò)共享同一存儲,這些節(jié)點既是GPFS SERVER節(jié)點又是GPFS CLIENT節(jié)點,整個架構(gòu)趨于扁平化,I/O深度淺,又由于節(jié)點與存儲采用了Direct Attached的方式連接,所以這種架構(gòu)模式下的節(jié)點I/O性能較好,GPFS的I/O性能主要取決于存儲I/O性能。值得注意的是,這種模式下,為了保證仲裁2N+1的數(shù)量,通常選用存儲盤作為TiebreakerDisk。2.NSD服務(wù)模式這種架構(gòu)也叫Mixed NSD access架構(gòu),該架構(gòu)模式下,兩組NSD SERVER分別掛載兩組不同的存儲,這兩組存儲通過TCP/IP或者INFINIBAND網(wǎng)絡(luò)傳輸數(shù)據(jù),通常,兩組存儲的數(shù)據(jù)都保持一致
7、,這種模式需要一個專門的仲裁節(jié)點來保證2N+1的仲裁數(shù)量,其中NSD SERVER既可作為GPFS服務(wù)端,又可作為GPFS客戶端,應(yīng)用節(jié)點跑在NSD SERVER上時,I/O深度也只有兩層,但由于兩組NSD盤間數(shù)據(jù)的實時同步會損耗一定的時間,所以NSD SERVER的I/O讀寫性能會稍稍降低。如果NSD SERVER上不跑應(yīng)用,應(yīng)用節(jié)點通過網(wǎng)絡(luò)共享的方式對GPFS文件系統(tǒng)進(jìn)行讀寫,那么整個應(yīng)用讀寫I/O深度達(dá)到了三層,性能損耗又會提升。另外,為了實現(xiàn)多塊NSD均衡由不同的NSD SERVER負(fù)載,可以在配置GPFS NSD時,區(qū)分不同NSD的NSD SERVER服務(wù)順序。3.無共享模式這種架構(gòu)
8、也叫File Placement Optimizer (FPO)架構(gòu),這種架構(gòu)模式下,每一個節(jié)點均掛載不同的存儲,所有節(jié)點既作為GPFS服務(wù)端又作為GPFS客戶端,GPFS文件系統(tǒng)橫跨所有節(jié)點和所有存儲,這就是所謂的分布式文件系統(tǒng),通常利用節(jié)點的內(nèi)置盤作為節(jié)點的存儲,整個I/O深度也只有2層,這種架構(gòu)的I/O讀寫性能最佳,GPFS并發(fā)讀寫最好,擴展性最佳。以上可見GPFS作為并行文件系統(tǒng),無論是性能、可靠性,還是可擴展性和靈活性上都有著自身卓越的屬性。二、基于GPFS技術(shù)的應(yīng)用跨中心雙活架構(gòu)與容災(zāi)在上一節(jié)中我們簡要介紹了GPFS的三種架構(gòu)模型,那么基于這三種架構(gòu)模型,GPFS的跨中心容災(zāi)和雙活
9、架構(gòu),又該如何設(shè)計和考慮呢?1.GPFS SAN網(wǎng)絡(luò)模式架構(gòu)下的容災(zāi)和雙活如下圖所示,我們將GPFS SAN網(wǎng)絡(luò)模式架構(gòu)在SiteB一模一樣的搭建,SAN網(wǎng)絡(luò)交換機和TCP/IP網(wǎng)絡(luò)交換機通過SiteA和SiteB間的裸光纖級聯(lián),兩個站點的節(jié)點既可能是GPFS服務(wù)端,也可能是GPFS客戶端。于是乎我們可以得出兩種設(shè)計方案:a.容災(zāi)方案:兩個站點的所有節(jié)點搭建一個GPFS集群,所有節(jié)點均作為Quarum Node,SiteA的存儲數(shù)據(jù)盤作為業(yè)務(wù)數(shù)據(jù)盤和TiebreakerDisk,SiteA和SiteB的兩個存儲通過存儲自身的實時同步復(fù)制功能,保持?jǐn)?shù)據(jù)一致性,這樣一來,有兩種容災(zāi)的方式,一種是S
10、iteB的所有節(jié)點作為GPFS客戶端,通過跨站點的TCP/IP網(wǎng)絡(luò),訪問SiteA的GPFS服務(wù)端;另一種是SiteB的所有節(jié)點作為GPFS服務(wù)端,通過跨站點的SAN網(wǎng)絡(luò),訪問SiteA的存儲。這兩種方式的差別在于第一種方式為:SiteB節(jié)點的GPFS文件系統(tǒng)讀寫I/O路徑為跨站點的TCP/IP網(wǎng)絡(luò)+SiteA的SAN網(wǎng)絡(luò);第二種方式為:SiteB節(jié)點的GPFS文件系統(tǒng)讀寫I/O路徑為跨站點的SAN網(wǎng)絡(luò)。所以在SiteB端,第一種方式的I/O路徑略長于第二種方式。這兩種方式的相同點在于存儲的業(yè)務(wù)數(shù)據(jù)和TiebreakerDisk信息均通過存儲的同步復(fù)制技術(shù)保持實時同步,為了實現(xiàn)站點級容災(zāi),兩種
11、方式均需要編寫腳本,判斷 SiteA節(jié)點是否都活動,否則將自動將切換存儲卷至SiteB,SiteB節(jié)點自動將GPFS服務(wù)拉起,繼續(xù)對外提供服務(wù)。所以總結(jié)GPFS SAN網(wǎng)絡(luò)模式架構(gòu)的容災(zāi),可以得出,以上兩種方式下的SiteB站點節(jié)點讀寫性能和穩(wěn)定性需要重點關(guān)注;SiteB節(jié)點和存儲全部故障不會對SiteA的GPFS訪問造成影響;SiteA一半節(jié)點故障不會影像GPFS訪問;SiteA兩個節(jié)點或者TiebreakerDisk均故障需要觸發(fā)腳本,使得存儲盤切換至災(zāi)備端,SiteB全部節(jié)點啟動GPFS服務(wù),繼續(xù)提供GPFS訪問。b.雙活方案:GPFS SAN網(wǎng)絡(luò)模式架構(gòu)的跨站點雙活方案,可以考慮兩種方
12、式,見下圖一和圖二。圖一:圖二:圖一為SAN網(wǎng)絡(luò)模式架構(gòu)模式容災(zāi)方案的延伸版,通過應(yīng)用負(fù)載均衡地把服務(wù)請求分發(fā)至SiteA和SiteB兩個站點,兩個站點的所有節(jié)點均提供應(yīng)用服務(wù),SiteA節(jié)點的應(yīng)用在本地對GPFS文件系統(tǒng)讀寫,SiteB節(jié)點的應(yīng)用跨站點對GPFS文件系統(tǒng)讀寫。另外,SiteA節(jié)點既作為GPFS Servers,同時又擔(dān)任Application Node,而SiteB節(jié)點既可按照容災(zāi)方案的第一種方式作為GPFS客戶端,又可按照容災(zāi)方案的第二種方式作為GPFS的服務(wù)端。簡單總結(jié)這種方式來說,兩個站點的節(jié)點GPFS I/O讀寫路徑和性能存在些許差異;而圖二將SiteA的NSD Se
13、rver與Application Node分置于不同節(jié)點,SiteA和SiteB節(jié)點全部作為GPFS客戶端,兩個站點的節(jié)點GPFS I/O讀寫路徑和性能一致。當(dāng)然,上述兩種雙活方案均是建立在容災(zāi)方案的基礎(chǔ)之上,SiteA和SiteB的所有節(jié)點均加入一個GPFS集群中,利用存儲到存儲的同步復(fù)制功能,SiteA的TiebreakerDisk仲裁,自動探測與自動切換腳本也是必須的。2.GPFS NSD服務(wù)模式架構(gòu)下的容災(zāi)和雙活GPFS NSD服務(wù)模式下的容災(zāi)、雙活和SAN網(wǎng)絡(luò)模式架構(gòu)容災(zāi)、雙活有很大的不同,見下圖所示。a.SAN網(wǎng)絡(luò)模式的容災(zāi)架構(gòu)是需要存儲的跨站點同步復(fù)制的,數(shù)據(jù)同步網(wǎng)絡(luò)為SAN光纖
14、網(wǎng)絡(luò);而NSD服務(wù)模式的容災(zāi)架構(gòu)是通過兩個站點的GPFS Server間進(jìn)行數(shù)據(jù)復(fù)制和同步的,是跨站點NSD DISK與NSD DISK間的同步,數(shù)據(jù)同步網(wǎng)絡(luò)為TCP/IP網(wǎng)絡(luò)?;赟AN光纖網(wǎng)絡(luò)的同步帶寬、速率和TCP/IP網(wǎng)絡(luò)會有差異,所以NSD服務(wù)模式的容災(zāi)架構(gòu)的數(shù)據(jù)同步網(wǎng)絡(luò)最好是Infiniband或者萬兆TCP/IP網(wǎng)絡(luò),來提升整個數(shù)據(jù)同步的速率,避免同步帶來的I/O性能損耗。b.SAN網(wǎng)絡(luò)模式的容災(zāi)架構(gòu)下,兩個站點GPFS讀寫I/O路徑和性能不對稱;而NSD服務(wù)模式的容災(zāi)架構(gòu)下,兩個站點GPFS讀寫I/O路徑和性能非常對稱,每個節(jié)點均讀寫各自站點的NSD數(shù)據(jù)盤。c.SAN網(wǎng)絡(luò)模式的
15、容災(zāi)架構(gòu)設(shè)立了TiebreakerDisk,來保證2N+1的仲裁數(shù)量;而NSD服務(wù)模式的容災(zāi)架構(gòu)不需要設(shè)立TiebreakerDisk,取而代之的是第三站點仲裁節(jié)點。d.SAN網(wǎng)絡(luò)模式的容災(zāi)架構(gòu)為了實現(xiàn)站點故障時,GPFS服務(wù)的自動切換功能,需要加入自動化監(jiān)控和切換腳本(可考慮TSA軟件);而NSD服務(wù)模式的容災(zāi)架構(gòu)無需考慮這點,因為兩個站點的所有節(jié)點均為Quarum Node,組成一個集群,兩個站點節(jié)點數(shù)量對等,總共2N+1的仲裁數(shù)量,SiteA的N個節(jié)點故障,不會影響整個集群故障,SiteB仍然可以對外提供GPFS文件系統(tǒng)讀寫。3.GPFS無共享模式下的容災(zāi)和雙活GPFS無共享模式作為分布
16、式GPFS文件系統(tǒng)模式,在大數(shù)據(jù)方面,應(yīng)用越來越廣泛。另外它對GPFS性能的提升和擴展能力的提升,起著非常重要的作用。那么這種模式架構(gòu)下的容災(zāi)和雙活又是如何的呢?如下圖所示:我們將同一個GPFS集群中所有的GPFS-FPO節(jié)點拉開,均勻分布于不同的兩個站點,所有節(jié)點既是GPFS服務(wù)端,又是GPFS客戶端,同時還是應(yīng)用軟件的服務(wù)節(jié)點,兩個站點的TCP/IP網(wǎng)絡(luò)或者Infiniband網(wǎng)絡(luò)通過裸光纖級聯(lián),并通過應(yīng)用負(fù)載來接入服務(wù)請求和均衡分發(fā)服務(wù)請求,最終實現(xiàn)跨中心的雙活應(yīng)用服務(wù)。這里主要利用了GPFS-FPO的四大特性:a.位置感知特性:由于GPFS文件系統(tǒng)的數(shù)據(jù)是打散在不同節(jié)點的不同存儲當(dāng)中,
17、所以每個GPFS節(jié)點的讀寫操作都需要知道究竟文件都在哪個節(jié)點存放著,所以GPFS-FPP在緩存中專門劃了一片區(qū)域,來存儲存儲塊數(shù)據(jù)的位置信息和副本信息,也叫GPFS-MAP,無論哪個節(jié)點想要讀取GPFS的哪個存儲塊,均會通過GPFS-MAP找到所在的節(jié)點和具體位置。b.可配置的寫親和性:GPFS-FPO的寫親和性是指某節(jié)點的應(yīng)用程序需要進(jìn)行GPFS讀操作時,在本節(jié)點的本地存儲就能讀取到的能力。對于這種能力,GPFS-FPO是可以進(jìn)行設(shè)置的,當(dāng)設(shè)置為write striping(寫條帶化)時,所有GPFS節(jié)點均衡分布著數(shù)據(jù),某一節(jié)點的讀操作可能從本地?zé)o法獲取,需要通過網(wǎng)絡(luò)(GPFS客戶端)的方式
18、從其他節(jié)點讀取;當(dāng)設(shè)置為write affinity時,可以設(shè)置某部分文件集屬于某節(jié)點專屬,或者所有節(jié)點均包含相同的存儲數(shù)據(jù),這樣所有節(jié)點的讀操作均能在本地獲得。c.管道復(fù)制:所有GPFS節(jié)點通過專屬的網(wǎng)絡(luò)連通,當(dāng)某一節(jié)點應(yīng)用對GPFS寫數(shù)據(jù)時,寫入該節(jié)點的存儲數(shù)據(jù),同時也會通過管道復(fù)制至其他多個節(jié)點的存儲。d.快速恢復(fù):當(dāng)某一GPFS節(jié)點故障時,該節(jié)點的存儲也離線,但整個GPFS并不會丟失該存儲數(shù)據(jù),其他節(jié)點的存儲依舊有相同的數(shù)據(jù)副本,繼續(xù)提供讀寫訪問。當(dāng)故障節(jié)點恢復(fù)后,也能通過其他節(jié)點的副本數(shù)據(jù),快速恢復(fù)新增變化數(shù)據(jù)。基于以上四點,我們可以看出,GPFS無共享模式架構(gòu)對某些應(yīng)用場合來說,也
19、是非常適合搭建跨中心的應(yīng)用雙活架構(gòu)。第二部分:并行Oracle、并行DB2一、并行DB在前面的章節(jié)中,我們詳細(xì)介紹了GPFS的三種模式架構(gòu)以及其容災(zāi)和雙活方式,這是對需要共享存儲的應(yīng)用系統(tǒng),利用軟件架構(gòu)的方式,去實現(xiàn)跨中心的應(yīng)用雙活,那么又該如何基于軟件架構(gòu),去實現(xiàn)OLTP數(shù)據(jù)庫的跨中心雙活呢?這里我們需要提到并行DB的概念:并行數(shù)據(jù)庫系統(tǒng)的目標(biāo)是高性能和高可用性,通過多個處理節(jié)點并行執(zhí)行數(shù)據(jù)庫任務(wù),提高整個數(shù)據(jù)庫系統(tǒng)的性能和可用性。性能指標(biāo)關(guān)注的是并行數(shù)據(jù)庫系統(tǒng)的處理能力,具體的表現(xiàn)可以統(tǒng)一總結(jié)為數(shù)據(jù)庫系統(tǒng)處理事務(wù)的響應(yīng)時間。并行數(shù)據(jù)庫系統(tǒng)的高性能可以從兩個方面理解,一個是速度提升,一個是范
20、圍提升。速度提升是指,通過并行處理,可以使用更少的時間完成數(shù)據(jù)庫事務(wù)。范圍提升是指,通過并行處理,在相同的處理時間內(nèi),可以完成更多的數(shù)據(jù)庫事務(wù)。并行數(shù)據(jù)庫系統(tǒng)基于多處理節(jié)點的物理結(jié)構(gòu),將數(shù)據(jù)庫管理技術(shù)與并行處理技術(shù)有機結(jié)合,來實現(xiàn)系統(tǒng)的高性能??捎眯灾笜?biāo)關(guān)注的是并行數(shù)據(jù)庫系統(tǒng)的健壯性也就是當(dāng)并行處理節(jié)點中的一個節(jié)點或多個節(jié)點部分失效或完全失效時,整個系統(tǒng)對外持續(xù)響應(yīng)的能力。高可用性可以同時在硬件和軟件兩個方面提供保障。在硬件方面,通過冗余的處理節(jié)點、存儲設(shè)備、網(wǎng)絡(luò)鏈路等硬件措施,可以保證當(dāng)系統(tǒng)中某節(jié)點部分或完全失效時,其它的硬件設(shè)備可以接手其處理,對外提供持續(xù)服務(wù)。在軟件方面,通過狀態(tài)監(jiān)控與跟
21、蹤、互相備份、日志等技術(shù)手段,可以保證當(dāng)前系統(tǒng)中某節(jié)點部分或完全失效時,由它所進(jìn)行的處理或由它所掌控的資源可以無損失或基本無損失地轉(zhuǎn)移到其它節(jié)點,并由其它節(jié)點繼續(xù)對外提供服務(wù)。為了實現(xiàn)和保證高性能和高可用性,可擴充性也成為并行數(shù)據(jù)庫系統(tǒng)的一個重要指標(biāo)??蓴U充性是指,并行數(shù)據(jù)庫系統(tǒng)通過增加處理節(jié)點或者硬件資源(處理器、內(nèi)存等),使其可以平滑地或線性地擴展其整體處理能力的特性。那么基于以上的并行DB的高性能和高可用性概念,如何去理解并行DB的架構(gòu)呢?又該如何去設(shè)計并行DB的跨中心雙活架構(gòu)呢?由于數(shù)據(jù)庫產(chǎn)品眾多,這里只挑選兩款企業(yè)OLTP數(shù)據(jù)庫系統(tǒng)用得非常多、認(rèn)可度高的產(chǎn)品:ORACLE和DB2,進(jìn)
22、行深入的探討。二、Oracle RAC對于Oracle RAC,想必大家已經(jīng)非常了解了,那么下面開始一步步引導(dǎo)大家逐步過渡至跨中心雙活的并行Oracle架構(gòu)。1.存儲架構(gòu)層文件系統(tǒng)的選擇是并行Oracle的關(guān)鍵。傳統(tǒng)的文件系統(tǒng)不支持多系統(tǒng)的并行掛載。因此,必須將Oracle數(shù)據(jù)文件存儲在支持多系統(tǒng)并發(fā)訪問的文件系統(tǒng)中。這樣并行Oracle節(jié)點才能同時對共享的文件系統(tǒng)進(jìn)行讀寫操作。這里主要有三種方式來實現(xiàn):(1)自動存儲管理(ASM)ASM提供了一個縱向的統(tǒng)一管理的文件系統(tǒng)和卷標(biāo)管理器,專門用于建立Oracle數(shù)據(jù)庫文件。ASM可以提供文件系統(tǒng)給多個Oracle RAC的集群節(jié)點。ASM無需再手
23、動調(diào)節(jié)I/O,它會自動的分配 I/O 負(fù)載到所有的可用資源中,從而優(yōu)化性能。ASM可以維護(hù)數(shù)據(jù)的冗余備份,從而提高故障的容錯。它也可以被安裝到可靠的存儲機制中。(2)通用并行文件系統(tǒng)(GPFS)前面已經(jīng)詳細(xì)介紹了,用在并行Oracle架構(gòu)的話,GPFS的SAN模式架構(gòu)和NSD服務(wù)模式均可。它相對于ASM這樣一個黑盒子來說,優(yōu)勢主要體現(xiàn)在可視化、管理能力和靈活性上,但ASM是專用于的Oracle RAC產(chǎn)品,對非條帶化的磁盤數(shù)據(jù)也能分布均勻,I/O均勻。(3)存儲雙活這里說的存儲雙活并不是單一存儲中的控制器雙活,而是兩臺存儲的A-A模式,如在“基于SVC的三種主流雙活數(shù)據(jù)中心架構(gòu)深入探討”活動中
24、探討的SVC Enhanced Stretched Cluster和SVC HyperSwap,通過這種存儲雙活的架構(gòu)結(jié)合并行Oracle,也是一種非常好的想法,Oracle RAC節(jié)點可以分別掛載不同的A-A存儲,而無需考慮底層存儲間的同步和雙活過程,相當(dāng)于把并行文件系統(tǒng)的功能交由底層存儲硬件去實現(xiàn),Oracle RAC節(jié)點純粹做好并行Oracle的工作即可,并且這種架構(gòu)少了一層(ASM/GPFS)文件系統(tǒng)層,I/O深度更淺。2.并行Oracle軟件架構(gòu)層Oracle RAC的軟件層是在多個節(jié)點上運行多個數(shù)據(jù)庫實例,利用多個節(jié)點組成一個數(shù)據(jù)庫,這樣在保證了數(shù)據(jù)庫高可用性的情況下更充分的利用了
25、多個主機的性能,而且可以通過增加節(jié)點進(jìn)行性能的擴展。實現(xiàn)Oracle RAC需要解決的關(guān)鍵問題就是多節(jié)點進(jìn)行數(shù)據(jù)訪問時如何保證數(shù)據(jù)的一致性,Oracle是通過各節(jié)點間的私有連接進(jìn)行內(nèi)存融合(cache fusion)來保證各節(jié)點數(shù)據(jù)訪問的一致性。什么是cache fusion?這是Oracle RAC的重要概念,它是通過Oracle RAC節(jié)點間的互連網(wǎng)絡(luò),在各節(jié)點的 SGA 之間進(jìn)行塊數(shù)據(jù)傳遞,以實現(xiàn)SGA數(shù)據(jù)塊共享和一致性。它相當(dāng)于把所有節(jié)點實例的SGA虛擬成一個大的SGA區(qū),每當(dāng)不同的實例請求相同的數(shù)據(jù)塊時,這個數(shù)據(jù)塊就通過互連網(wǎng)絡(luò)在實例間進(jìn)行傳遞。這樣一種方式可以避免不同實例需要相同數(shù)
26、據(jù)塊時,首先將塊推送到磁盤,然后再重新讀入其他實例的緩存中這樣一種低效的實現(xiàn)方式。當(dāng)一個數(shù)據(jù)塊被讀入 RAC 環(huán)境中某個實例的緩存時,該塊會被賦予一個鎖資源,以確保其他實例知道該塊正在被使用。之后,如果另一個實例請求該塊的一個副本,而該塊已經(jīng)處于前一個實例的緩存內(nèi),那么該塊會通過互連網(wǎng)絡(luò)直接被傳遞到另一個實例的 SGA。如果內(nèi)存中的塊已經(jīng)被改變,但改變尚未提交,那么將會傳遞一個修改塊副本。這就意味著只要可能,數(shù)據(jù)塊無需寫回磁盤即可在各實例的緩存之間移動,從而避免了同步多實例的緩存所花費的額外 I/O。很明顯,不同的實例緩存的數(shù)據(jù)可以是不同的。所以,一個實例要訪問特定數(shù)據(jù)塊,并且之前該實例從未訪
27、問過該數(shù)據(jù)塊,那么它要么從其他實例 cache fusion 過來,要么從磁盤中讀入。既然cache fusion如此重要,要發(fā)揮cache fusion的作用,要有一個前提條件,那就是互連網(wǎng)絡(luò)的速度要比訪問磁盤的速度要快。否則,就根本沒有引入cache fusion的意義。但是這樣又帶來了另外一個問題,隨著Oracle RAC節(jié)點數(shù)的不斷增加,節(jié)點間通信的成本也會隨之增加,當(dāng)?shù)侥硞€限度時,增加節(jié)點可能不會再帶來性能上的提高,甚至可能造成性能下降。這個問題的主要原因是 Oracle RAC對應(yīng)用透明,應(yīng)用可以連接至集群中的任意節(jié)點進(jìn)行處理,當(dāng)不同節(jié)點上的應(yīng)用爭用資源時,RAC 節(jié)點間的通信開銷
28、會嚴(yán)重影響集群的處理能力。所以通常而言,Oracle RAC 更多情況下用來提高可用性,而不是為了提高擴展性和性能。但是對于使用 ORACLE RAC 有以下三個建議:(1)節(jié)點間通信盡量使用高速互連網(wǎng)絡(luò)。(2)每個ORACLE數(shù)據(jù)頁面使用較少的行,通過數(shù)據(jù)庫分區(qū)來避免熱頁面。(3)盡可能將不同的應(yīng)用分布在不同的節(jié)點上,利用業(yè)務(wù)分割的方式,來保證整體Oracle RAC的系統(tǒng)性能。業(yè)務(wù)分割的根本在于盡量使不同的實例不能訪問相同的數(shù)據(jù)塊,這樣業(yè)務(wù)分割規(guī)則可以小到表的級別,大到表空間、Schema的級別。可以看到,建議(2)和建議(3)實際上又削減了Oracle RAC的應(yīng)用透明度,可見并行DB要
29、同時提高高可用性、擴展能力、性能和應(yīng)用透明度是十分艱難的。3.跨中心的存儲架構(gòu)和并行Oracle擴展前面談到了并行Oracle存儲架構(gòu)的三種方式,那么這三種方式被拉伸至兩個數(shù)據(jù)中心后,存儲架構(gòu)和并行Oracle又該如何擴展呢?(1)自動存儲管理(ASM)Oracle RAC節(jié)點被拉開至兩個站點后(Oralce Extend RAC),為了保證兩個站點的存儲數(shù)據(jù)一致,需要在所有節(jié)點操作系統(tǒng)層識別兩個存儲,并做LVM鏡像。所有節(jié)點通過ASM對LV裸設(shè)備或者文件系統(tǒng)進(jìn)行讀寫操作。如果SiteA的存儲作為主存儲,那么SiteA的某一節(jié)點的寫入操作需要如下過程:SiteA節(jié)點寫SiteA存儲,同時跨站點
30、寫SiteB存儲,所有存儲均寫返回后,代表一次寫入操作完成。SiteB的某一節(jié)點的寫入操作需要如下過程:SiteB節(jié)點寫SiteB存儲,同時跨站點寫SiteA存儲,所有存儲均寫返回后,代表一次寫入操作完成。所以這種方式下,一次寫操作的速度取決于最慢的存儲。另外cache fusion是基于TCP/IP或者Infiniband的跨站點融合,對兩個站點間的帶寬、衰減和穩(wěn)定性有很高的要求。(2)通用并行文件系統(tǒng)(GPFS)在單一站點的話,GPFS的三種模式中的SAN模式架構(gòu)和NSD服務(wù)模式架構(gòu)都是可以勝任并行Oracle的存儲架構(gòu)的。SAN模式架構(gòu)是Oracle RAC節(jié)點通過SAN網(wǎng)絡(luò)共享存儲,再
31、在共享存儲之上建立GPFS文件系統(tǒng),Oracle的數(shù)據(jù)庫文件存儲在GPFS文件系統(tǒng)中,最終實現(xiàn)兩個Oracle RAC節(jié)點并行對GPFS文件系統(tǒng)讀寫的功能。當(dāng)SAN模式架構(gòu)擴展至兩個站點的話,兩個站點的存儲需要保持實時同步,但是SiteB的Oracle RAC節(jié)點只能通過SAN網(wǎng)絡(luò)或者TCP/IP網(wǎng)絡(luò)訪問SiteA的共享存儲,對于OLTP數(shù)據(jù)庫來說,站點B的RAC節(jié)點I/O訪問路徑過長,性能不夠穩(wěn)定,而且前面提及的cache fusion需要跨站點通訊,兩個數(shù)據(jù)中心的距離不宜太遠(yuǎn)。所以這種模式并不理想。NSD服務(wù)模式架構(gòu)是Oracle RAC節(jié)點通過SAN網(wǎng)絡(luò)分別掛載不同的存儲盤,Oracle
32、 RAC節(jié)點均作為NSD SERVER,數(shù)據(jù)一致性是通過NSD盤間的實時復(fù)制保持的,通訊網(wǎng)絡(luò)為TCP/IP網(wǎng)絡(luò)或者INFINIBAND網(wǎng)絡(luò)。當(dāng)NSD服務(wù)模式架構(gòu)擴展至兩個站點,每個站點均包含一個Oracle RAC節(jié)點和一套存儲,這種模式下,每個站點的RAC節(jié)點訪問各自站點的存儲,存儲數(shù)據(jù)塊的同步為跨站點的NSD間的同步,通過跨站點的網(wǎng)絡(luò)實現(xiàn),每個站點的RAC節(jié)點I/O深度淺,路徑短,但考驗的是數(shù)據(jù)一致性、跨站點NSD實時同步和cache fusion的效率,最起碼需要萬兆或者INFINIBAND網(wǎng)絡(luò)級聯(lián)。(3)存儲雙活前面也講了,當(dāng)Oracle RAC的存儲拉開至兩個站點后,從底層存儲的角度
33、來看,這種方式較為理想,兩個站點的RAC節(jié)點無需關(guān)心存儲是否共享,底層存儲會做好數(shù)據(jù)層所有數(shù)據(jù)同步的工作,RAC節(jié)點I/O深度淺,路徑短,帶寬高相比前面兩種方式,在跨中心并行Oracle的存儲架構(gòu)來說,最為合適,當(dāng)然這里也需要考慮Oracle RAC節(jié)點間的cache fusion的效率,不建議過高并發(fā)的數(shù)據(jù)庫系統(tǒng)需求,跨中心Oracle RAC節(jié)點的數(shù)量也需要控制。上面三種方式,對于跨中心的Oracle RAC來講,也是建議將業(yè)務(wù)盡量分割,對不同的表或者表空間操作的事物放在不同的Oracle RAC節(jié)點跑,盡量減少跨中心的I/O流量和網(wǎng)絡(luò)流量,不至于為了雙活而雙活,反而導(dǎo)致可靠性和性能降低。
34、三、DB2 PureScaleDB2 PureScale是以IBM DB2 for z/OS技術(shù)(集中鎖定和集中緩沖池技術(shù))為基本原則,主要針對分布式系統(tǒng)的在線事務(wù)處理(OLTP)提供集群技術(shù)。DB2 PureScale并不是一個硬件解決方案,它是一個應(yīng)用在AIX系統(tǒng)(現(xiàn)在也可運行在Linux系統(tǒng))上的數(shù)據(jù)庫集群軟件。如果該軟件在IBM Power Systems上運行,在降低擴展IT系統(tǒng)的風(fēng)險和成本的同時,可以幫助客戶提高數(shù)據(jù)庫交易能力。其目的是讓企業(yè)在不犧牲性能的前提下擴展DB2集群,DB2 PureScale具有無限擴展、應(yīng)用透明性、持續(xù)可用性等特點:(1)無限擴展DB2 PureSca
35、le為各種事務(wù)處理工作負(fù)載提供了幾乎無限的產(chǎn)能。系統(tǒng)擴展非常簡單,只需要與一個新節(jié)點連接,并發(fā)出兩個簡單的命令即可。DB2 PureScale基于集群、磁盤共享的架構(gòu)通過有效利用系統(tǒng)資源,降低了成本。(2)應(yīng)用透明性使用DB2 PureScale,無需改變企業(yè)的應(yīng)用程序代碼,就可以有效地運行在多個節(jié)點上。久經(jīng)驗證的、可擴展的架構(gòu)能夠隨需擴展應(yīng)用程序,以滿足變化的業(yè)務(wù)需求。企業(yè)只需做少量改變或無需做任何改變,就能夠運行為其他數(shù)據(jù)庫軟件編寫的應(yīng)用程序;DB2 為常用的語法規(guī)則和PL/SQL語言提供了全面的支持,使從Oracle數(shù)據(jù)庫遷移到 DB2 變得比以往更輕松了。(3)持續(xù)可用性DB2 Pur
36、eScale通過在IBM Power Systems上和冗余架構(gòu)中使用高可靠的IBM PowerHA PureScale技術(shù),提供了持續(xù)的可用性。此系統(tǒng)能夠瞬間從節(jié)點故障中恢復(fù),立即將工作負(fù)載重新分配給其他可用的節(jié)點。如何理解以上的三個特點呢,我們先來看下DB2 PureScale的整體系統(tǒng)架構(gòu)圖:從圖中可以看出,一套DB2 PureScale架構(gòu)上包含以下幾個部分:(1)數(shù)據(jù)庫集群DB2 PureScale數(shù)據(jù)庫集群由成員和CF節(jié)點組成。a.成員member代表一個DB2處理引擎(一個DB2實例),一個成員擁有自己的內(nèi)存、緩沖池、交易日志和鎖機制,能自行編譯和執(zhí)行DB2事務(wù)。b.耦合設(shè)施co
37、upling facility(CF)CF節(jié)點管理著DB2數(shù)據(jù)頁的全局緩存和全局鎖,以此為所有成員提供服務(wù),CF節(jié)點采用集中式鎖機制和集中式緩存機制來保證所有成員事務(wù)層數(shù)據(jù)的一致性。在實際應(yīng)用中,通常配置兩個CF節(jié)點,一主一從,這樣可用避免CF節(jié)點單點故障。另外,主從CF間的全局緩存和全局鎖也是實時復(fù)制的,來保證CF節(jié)點故障后,備CF節(jié)點能夠快速無縫接管?;谝陨系臋C制,成員對數(shù)據(jù)頁的訪問,在成員本地緩沖池沒有命中或者需要修改數(shù)據(jù)頁時,需要成員和向主CF節(jié)點發(fā)起通信請求,來獲得數(shù)據(jù)頁和鎖信息,在數(shù)據(jù)庫并發(fā)較大、事務(wù)更新多的情況下,通信頻繁度非常高,為了盡可能地提高通信效率,DB2 PureSc
38、ale使用了RDMA(Remote Direct Memory Access)技術(shù)。RDMA支持直接讀寫另一臺計算機的內(nèi)存,并且不需要占用目標(biāo)計算機的CPU資源。RDMA技術(shù)結(jié)合超高速網(wǎng)絡(luò),如InfiniBand、萬兆或聚合以太網(wǎng)(RoCE),大幅縮短成員與CF間的通信時間。(2)數(shù)據(jù)庫集群服務(wù)DB2 PureScale中整合了DB2 Cluster Services,來支持錯誤檢測和自動恢復(fù)的任務(wù),這些技術(shù)服務(wù)包含了TSA(Tivoli System Automation)和RSCT。其中TSA用來實現(xiàn)監(jiān)控、失敗檢測、成員的重啟和恢復(fù)、CF節(jié)點切換的任務(wù)。(3)GPFS文件系統(tǒng)DB2 pur
39、eScale各個節(jié)點通過GPFS文件系統(tǒng)訪問共享存儲。從圖中也可以看出,采用了GPFS SAN網(wǎng)絡(luò)模式架構(gòu),所有節(jié)點均直接通過SAN網(wǎng)絡(luò)連接存儲,GPFS高可用上采用了2N節(jié)點+1TiebreakerDisk的方式。通過以上的介紹,大家也可以看出DB2 PureScale的CF節(jié)點是重中之中和核心關(guān)鍵點,在集群數(shù)據(jù)庫運行時,雖然成員多個并行運行,但CF節(jié)點工作時只是單節(jié)點運行,雖然CF節(jié)點的主備節(jié)點可以實現(xiàn)故障切換和內(nèi)存的無縫銜接,但是是否可以判斷說CF節(jié)點可能會存在性能的瓶頸呢?我們都知道一個系統(tǒng)的瓶頸無非是CPU,內(nèi)存,磁盤I/O和網(wǎng)絡(luò)I/O這四大方面。那我們就一一來分析CF可能會存在瓶頸
40、的點:(1)CPUCF的用途僅僅是作為全局鎖管理(GLM)和全局緩沖池管理(GPM),為成員提供服務(wù),服務(wù)是通過RDMA技術(shù)實現(xiàn)的,RDMA是內(nèi)存與內(nèi)存的直接交互,所以CF的CPU幾乎不可能成為瓶頸。(2)內(nèi)存因為只有節(jié)點更改過的數(shù)據(jù)才會被寫入到CF中的全局緩沖池當(dāng)中,而大部分節(jié)點還是在自己的緩沖池中緩存自己的數(shù)據(jù),因此CF的全局緩沖池中只會保存一部分?jǐn)?shù)據(jù)。 另外,通常而言一個典型的OLTP應(yīng)用,全庫的數(shù)據(jù)一般也就在幾百G左右,經(jīng)常要改動的數(shù)據(jù)量可能更小,而當(dāng)前單臺服務(wù)器的總內(nèi)存越來越大,上百G甚至上T,內(nèi)存價格也越來越便宜,所以對于OLTP數(shù)據(jù)庫來說,只要初期規(guī)劃合理,CF的緩沖池不大可能不
41、夠,因此CF的內(nèi)存成為瓶頸可能性也是非常小的。(3)磁盤I/O對于CF來說就更不會成為瓶頸了。因為CF僅僅用于GLM和GPM,都存放在內(nèi)存當(dāng)中,CF根本就不會從磁盤中讀寫數(shù)據(jù),磁盤I/O瓶頸也就無從談起。另外,因為DB2 PureScale是基于Share Disk架構(gòu)的,所有的member和CF都是共享存儲(CF也可不共享GPFS),如果磁盤I/O成為瓶頸,那肯定是整個集群的GPFS I/O都是瓶頸,這時需考慮的只是成員的磁盤訪問性能。(4)網(wǎng)絡(luò)I/O先說TCP/IP網(wǎng)絡(luò),CF的TCP/IP網(wǎng)絡(luò)只負(fù)責(zé)和集群中的其他節(jié)點做管理通信以滿足集群軟件管理上的需求,根本就不會處理來自成員和數(shù)據(jù)庫客戶端
42、的TCP/IP請求,因此CF的TCP/IP網(wǎng)絡(luò)永遠(yuǎn)不可能成為瓶頸;再說InfiniBand網(wǎng)絡(luò), CF和Member之間的數(shù)據(jù)通信主要通過InfiniBand網(wǎng)絡(luò)。當(dāng)成員數(shù)量增加,并發(fā)交易量增加的時候,CF和成員之間的InfiniBand網(wǎng)絡(luò)帶寬是關(guān)鍵點。首先現(xiàn)在InfiniBand網(wǎng)卡的傳輸速度是40Gb/s, 是萬兆網(wǎng)的4倍。其次,CF節(jié)點支持多塊InfiniBand卡,即使真的出現(xiàn)了InfiniBand網(wǎng)絡(luò)帶寬不足的問題,也可以通過給CF增加InfiniBand卡的辦法來解決。所以InfiniBand網(wǎng)絡(luò)成為瓶頸的可能性也不大。綜合以上的分析,DB2 PureScale是一款非常優(yōu)秀的并
43、行數(shù)據(jù)庫產(chǎn)品,相較于OracleRAC,在以下幾個方面,存在一定的優(yōu)勢:(1)更好的性能伸縮與Oracle RAC所不同的是,DB2 Purescale采用了CF來提供集中化的鎖管理和全局緩存,而Oracle RAC采用的分布式鎖管理和分布式緩存。由于分布式管理,RAC隨著集群節(jié)點的增多,在極端情況下(如多個節(jié)點同時修改在另外一個節(jié)點管理的緩存中的數(shù)據(jù)時),多節(jié)點間的的通訊協(xié)調(diào)復(fù)雜性將指數(shù)型增長,雖然Oracle也可以將InfiniBand應(yīng)用于Oracle RAC集群的多節(jié)點通信,但是 Oracle RAC沒有利用 RDMA技術(shù),那么意味著 Oracle RAC節(jié)點通信將使用速度較慢的套接字
44、協(xié)議,并且需要一些開銷較大的 CPU 中斷,這樣會大大降低通信處理效率。而DB2 Purescale,基于全局鎖管理和全局緩存,所有成員節(jié)點都和CF單一通訊,為了獲取CF中全局緩存數(shù)據(jù),直接采用了RDMA內(nèi)存復(fù)制技術(shù),從而避免了高成本的進(jìn)程間通訊。另外采用CF來管理全局鎖和緩存,相對來說,簡化了管理,因此DB2 Purescale能擴展到128節(jié)點,還保持著比較好的性能線性。(2)更高的應(yīng)用透明性前面也說了,為了保持Oracle RAC的性能,通常是通過數(shù)據(jù)庫分區(qū)的方式來避免熱頁面,通過業(yè)務(wù)分割的方式將不同的應(yīng)用分布在不同的節(jié)點上的方式來減少緩存融合的頻度。這樣對應(yīng)用來說,應(yīng)用跑的Oracle
45、節(jié)點固定化了,Oracle節(jié)點的伸縮,應(yīng)用的配置也需要相應(yīng)變更,所有這些都會造成管理和開發(fā)成本增加;而DB2 Purescale不需要通過應(yīng)用或數(shù)據(jù)分區(qū)來實現(xiàn)可伸縮性,增加或減少成員節(jié)點時,不會讓應(yīng)用集群感知到,也無需對應(yīng)用進(jìn)行修改,同時這也極大地降低了管理和應(yīng)用開發(fā)成本。(3)更高的持續(xù)可用性O(shè)racle RAC的節(jié)點故障需要涉及四個步驟:故障檢測、Remaster數(shù)據(jù)塊、鎖定需要恢復(fù)的頁面和重做和撤銷恢復(fù)。具體來說,在Oracle RAC中,每個數(shù)據(jù)頁都由集群中的一個實例來管控。Oracle采用分布式的鎖機制,因此集群中的每個實例都需要負(fù)責(zé)管理和批準(zhǔn)對它所管理頁的鎖請求。當(dāng)某個節(jié)點出現(xiàn)故障
46、時,首先,故障節(jié)點所管理的數(shù)據(jù)頁將立即變?yōu)楣铝⒌模钡絉AC會通過重新分配流程將這些孤立頁面的管控權(quán)分配給集群中健康的節(jié)點。在GRD(全局內(nèi)存資源目錄)重新配置的過程中,對頁面的所有讀取和鎖請求都會被凍結(jié)。此時,它們不能執(zhí)行任何I/O操作或請求任何新鎖。其次,鎖定所有需要恢復(fù)的數(shù)據(jù)頁面。這項任務(wù)必須在GRD凍結(jié)被釋放之前完成。如果某個實例在獲得適當(dāng)?shù)捻摻怄i之前被允許讀取磁盤中的頁面,則故障實例的更新操作可能會丟失?;謴?fù)實例將讀取故障實例的重做日志文件,并鎖定任何需要恢復(fù)的頁面。這可能需要大量隨機的I/O操作,因為日志文件和需要恢復(fù)的頁都可能不在任何健康節(jié)點的內(nèi)存中。僅當(dāng)恢復(fù)實例執(zhí)行了所有這些I
47、/O操作并鎖定適當(dāng)?shù)捻撝?,GRD凍結(jié)才會被釋放,停滯的應(yīng)用才能繼續(xù)運行。相比之下,DB2 PureScale的設(shè)計初衷是最大限度地提高在故障恢復(fù)處理中的可用性,當(dāng)數(shù)據(jù)庫成員出現(xiàn)故障時,DB2 PureScale不需要在集群中進(jìn)行全局凍結(jié),只有動態(tài)數(shù)據(jù)仍然保持為鎖定,直到成員恢復(fù)完成。因為CF在任何成員出現(xiàn)故障時始終知道哪些頁面需要恢復(fù)。如果某個成員出現(xiàn)故障,集群中的所有其他成員可以繼續(xù)處理事務(wù)和執(zhí)行I/O操作。只有對需要恢復(fù)的頁面的訪問請求會在故障成員的恢復(fù)流程完成之前被阻塞。另外故障恢復(fù)時,由于Oracle RAC是日志恢復(fù),根據(jù)故障節(jié)點在出現(xiàn)故障時正在進(jìn)行的工作量,整個恢復(fù)過程可能會花費
48、幾十秒到幾分鐘不等的時間;而DB2 pureScale是內(nèi)存恢復(fù),所以DB2 PureScale恢復(fù)時間比RAC短很多,動態(tài)數(shù)據(jù)在線恢復(fù)的目標(biāo)時間小于20秒。當(dāng)然Oracle RAC也有自身強大之處,自從發(fā)布之后,Oracle RAC同時解決了客戶對于性能擴展和高可靠性的要求,多年來沒有匹配的對手,成熟度和穩(wěn)定性高,功能強大,可運行的環(huán)境多樣,兼容性強,架構(gòu)相對簡單等。而DB2 PureScale也存在一定的不足和缺陷,如DB2 Purescale需要獨立的兩個CF節(jié)點資源;為了保證足夠的性能,需要獨立的InfiniBand卡和相應(yīng)的交換機,并且目前只能通過GPFS才能實現(xiàn)磁盤共享,整體軟硬件
49、要求較高;整體架構(gòu)的復(fù)雜度也較高;雖然說現(xiàn)在也可以運行在X86的Linux平臺上,但對Linux平臺操作系統(tǒng)版本的兼容性不夠,更多的是定位于高端數(shù)據(jù)庫,采用UNIX平臺居多,而IBM的Power平臺是Unix中的第一選擇,存在一定的局限性;DB2 PureScale的CF重要性太高,即使DB2成員節(jié)點的數(shù)量很多,但CF故障一個就會造成一小段時間的中斷,故障兩個就會造成數(shù)據(jù)庫集群全部中斷。好了,前面談了很多,今天的話題是雙活數(shù)據(jù)中心,那么DB2 PureScale的跨中心雙活又是如何的呢?這里我們要談到IBM GDPC(Geographically Dispersed DB2 PureScale
50、 Clusters)同城異地雙活災(zāi)備解決方案基于IBM DB2 PureScale技術(shù)實現(xiàn)地理跨越同城雙活。IBM GDPC是一種配置,允許分布式 DB2 pureScale 集群,從而可以使集群的成員位于不同站點。因此,我們將DB2 PureScale的成員和CF節(jié)點均分至兩個站點SiteA和SiteB,并在站點SiteC也搭建一個仲裁節(jié)點,這樣對于4節(jié)點成員和2節(jié)點CF的數(shù)據(jù)庫集群來說,SiteA包含成員1和3,CF主,SiteB包含成員2和4,CF備,SiteC包含GPFS仲裁節(jié)點,所有成員節(jié)點和CF節(jié)點通過跨站點級聯(lián)的SAN網(wǎng)絡(luò)共享存儲,并在存儲之上建立GPFS,架構(gòu)模式為NSD服務(wù)模
51、式,SiteA存儲與SiteB存儲的數(shù)據(jù)通過網(wǎng)絡(luò)實時同步。所有數(shù)據(jù)庫日志文件和數(shù)據(jù)庫文件均存放在GPFS上,實際上對于存儲來說,兩個站點各存放了一份數(shù)據(jù)。所有成員均通過Infiniband網(wǎng)絡(luò),利用RDMA技術(shù)訪問SiteA的CF 主,最后兩個站點的TCP/IP網(wǎng)絡(luò),Infiniband網(wǎng)絡(luò)和SAN網(wǎng)絡(luò)統(tǒng)一通過裸光纖級聯(lián)。GDPC整體架構(gòu)圖如圖所示:另外提一點,由于DB2 PureScale應(yīng)用透明度高,所以DB2 PureScale拉伸至GDPC架構(gòu)后,跨中心的集群應(yīng)用可以不需要做任何修改,只需要保持現(xiàn)狀,由DB2客戶端自動路由分發(fā)請求至兩個站點的成員節(jié)點即可。然而我們可能還會有這樣一種需求
52、,正常情況下,兩個站點的應(yīng)用節(jié)點只訪問本站點的數(shù)據(jù)庫成員節(jié)點,并且數(shù)據(jù)庫成員節(jié)點只訪問本站點的GPFS NSD存儲,那么我們不但需要在DB2客戶端(應(yīng)用端)配置跨站點的冗余性,提供容錯功能,還需要配置客戶端親緣關(guān)系與GDPC配合使用,并且兩個站點的GPFS NSD盤的屬性需要優(yōu)先本地站點的成員節(jié)點。第三部分:整體架構(gòu)前面的章節(jié),我們循序漸進(jìn)、逐步過渡的探討了GPFS并行文件系統(tǒng)、GPFS的跨中心容災(zāi)與雙活架構(gòu)、并行Oracle架構(gòu)、跨中心并行Oracle架構(gòu)、并行DB2 PureScale架構(gòu)和GDPC等。通過對這些架構(gòu)的說明、演進(jìn)和探討,說明要實現(xiàn)雙活數(shù)據(jù)中心的落地,需要從基礎(chǔ)架構(gòu)開始到最頂
53、層應(yīng)用,逐層設(shè)計,通盤考慮,既要考慮高可用需求,又要考慮性能拓展,還需結(jié)合現(xiàn)有架構(gòu),當(dāng)然還有成本、管理、開發(fā)、監(jiān)控等方面的考慮;說明了基于軟件架構(gòu)的雙活數(shù)據(jù)中心建設(shè)方案多、規(guī)模大、技術(shù)難度大和復(fù)雜度高。下面我簡要總結(jié)一下常見的軟件架構(gòu)的雙活數(shù)據(jù)中心建設(shè)架構(gòu)。(1)在線聯(lián)機型應(yīng)用(無共享數(shù)據(jù))(2)在線聯(lián)機型應(yīng)用(有共享數(shù)據(jù))(3)在線聯(lián)機型消息隊列+應(yīng)用(4)在線分析型應(yīng)用簡要說明:(1)以上四種架構(gòu),均包含了域名服務(wù)器,它的作用是負(fù)責(zé)域名解析服務(wù),當(dāng)訪問某個站點時,實際上首先需要通過該站點域名的DNS服務(wù)器來獲取域名指向的IP地址,在這一過程中,DNS服務(wù)器完成了域名到IP地址的映射,同樣,
54、這樣映射也可以是一對多的,這時候,DNS服務(wù)器便充當(dāng)了負(fù)載均衡調(diào)度器,它將用戶的請求分散到兩個站點的多臺服務(wù)器上。另外我們在設(shè)計的時候,有兩個需要注意的點:一是需要增加DNS高可用,因為所有的請求都是由DNS進(jìn)行域名解析和映射的,所以重要性不言而喻,必須要增加一臺備機,在主DNS故障時,可以立即接管;二是需要考慮DNS共用的問題,可以搭建兩套DNS,一套用來解析站點外部的訪問請求,另一套用來解析站點內(nèi)部的訪問請求。外部請求用域名方式,當(dāng)發(fā)起外部請求時,DNS解析之后可將請求均衡分發(fā)至站點A和站點B的應(yīng)用節(jié)點;內(nèi)部應(yīng)用與應(yīng)用之間的請求也統(tǒng)一用域名的方式,當(dāng)發(fā)起內(nèi)部請求時,DNS解析之后也可將請求
55、均衡分發(fā)至站點A和站點B的應(yīng)用節(jié)點。這樣就實現(xiàn)了兩個站點所有應(yīng)用節(jié)點負(fù)載均衡的目的,然而為了更高效、豐富的均衡功能,需要專用的DNS服務(wù)器,來實現(xiàn)站點均衡的可靠性,比如說負(fù)載的權(quán)重,監(jiān)控負(fù)載的狀態(tài),會話的保持等等。(2)我們可以看到,架構(gòu)1和架構(gòu)2包含了應(yīng)用負(fù)載服務(wù)器,這里有三個方面需要說明。架構(gòu)方面:站點A為主備兩臺應(yīng)用負(fù)載,站點B為主應(yīng)用負(fù)載,三臺應(yīng)用負(fù)載搭建主主備的集群模式,實現(xiàn)流量組1在站點A運行,流量組2在站點B運行,DNS將請求均衡分散至流量組1和流量組2,最終實現(xiàn)雙數(shù)據(jù)中心應(yīng)用負(fù)載均衡的目的;高可用方面:三臺應(yīng)用負(fù)載組成的主主備集群,可實現(xiàn)故障自動切換和流量資源轉(zhuǎn)移,加強了整體負(fù)
56、載均衡的可靠性;應(yīng)用形式方面:通常采用的是反向代理的負(fù)載均衡,因為其調(diào)度策略比較豐富,例如可以為不同的實際服務(wù)器設(shè)置不同的權(quán)重,以達(dá)到能者多勞的效果。并發(fā)處理能力要求高,反向代理服務(wù)器可以監(jiān)控后端服務(wù)器,比如系統(tǒng)負(fù)載,響應(yīng)時間,是否可用,TCP連接數(shù),流量等。從而根據(jù)這些數(shù)據(jù)調(diào)整負(fù)載均衡的策略。反向代理服務(wù)器可以讓用戶在一次會話周期內(nèi)的所有請求轉(zhuǎn)發(fā)到一臺特定的后端服務(wù)器上(會話保持),這樣的好處一是保持會話的本地訪問,二是防止后端服務(wù)器的動態(tài)內(nèi)存、緩存的資源浪費。(3)對于有共享數(shù)據(jù)的在線聯(lián)機型應(yīng)用,如同前面介紹的,可采用GPFS SAN網(wǎng)絡(luò)模式作,也可采用GPFS NSD服務(wù)模式。如果對共享
57、數(shù)據(jù)有I/O性能要求,可以用跨站點的存儲雙活或者存儲虛擬化網(wǎng)關(guān)的跨站點雙活方案;如果對I/O性能無要求,可采用HACMP+NFS Server+NFS Client的模式。(4)架構(gòu)1、2、3中的OLTP數(shù)據(jù)庫為跨站點的并行數(shù)據(jù)庫,為了實現(xiàn)所有節(jié)點事務(wù)層數(shù)據(jù)的一致性,減少緩存、鎖一致性帶來的網(wǎng)絡(luò)通信開銷,盡量讀寫緩沖池,減少磁盤I/O直接讀寫,提高整體I/O效率,所有節(jié)點間的互連網(wǎng)絡(luò)采用高速網(wǎng)絡(luò),通常需要萬兆、Infiniband或者聚合以太網(wǎng)(RoCE)。(5)架構(gòu)1、2、3中跨站點的并行數(shù)據(jù)庫的數(shù)據(jù)存儲方面有三個選擇,在前文中也有所介紹。一是專用的自動存儲管理(如ASM)+LVM方式,AS
58、M對本站點的多個LV均衡讀寫,再通過操作系統(tǒng)LVM實時復(fù)制一份寫數(shù)據(jù)至另一站點的存儲中,LVM缺少緩存機制,再加上兩份存儲需同時寫完成才算是真正的寫完成,寫性能取決于寫響應(yīng)最慢的存儲,所以這種方式下,并行數(shù)據(jù)庫存儲性能相對較差。二是并行文件系統(tǒng)(如GPFS)方式,通常采用GPFS NSD服務(wù)模式,兩個站點的磁盤均作為NSD DISK,通過跨中心的TCP/IP或者Infiniband網(wǎng)絡(luò)實時復(fù)制,保持同步,主機操作系統(tǒng)需要安裝GPFS軟件,并且GPFS需要占用一定的主機系統(tǒng)內(nèi)存作為GPFS緩存,這種方式下,并行數(shù)據(jù)庫存儲性能一般;三是存儲雙活方式(如DS8000+HyperSwap,存儲網(wǎng)關(guān)SV
59、C ESC和Hyperswap等),這種方式是通過底層存儲實現(xiàn)雙站點的并行數(shù)據(jù)讀寫,主機端的開銷最小,無需安裝任何軟件,也無需在系統(tǒng)內(nèi)存上劃分專門的并行文件系統(tǒng)緩存,兩個站點間存儲數(shù)據(jù)同步,是通過跨站點的SAN網(wǎng)絡(luò)實現(xiàn),所以這種方式下的并行數(shù)據(jù)庫整體性能最優(yōu)。(6)通常而言,在線聯(lián)機型消息隊列+應(yīng)用架構(gòu)主要是采用MQ與MQ的通訊方式實現(xiàn),MQ負(fù)責(zé)在兩個系統(tǒng)之間傳遞消息,這兩個系統(tǒng)可以是異構(gòu)的,處于不同硬件、不同操作系統(tǒng)、不同程序語言,但只需要簡單的調(diào)用MQ API,即可實現(xiàn)相互的通訊,然而MQ的功能僅限于消息隊列,至于兩個應(yīng)用互相發(fā)送的消息格式是怎么樣的,能不能被解析,MQ是管控不到的,MQ只
60、是盡力將消息發(fā)送到對端就完成了任務(wù),而且如果多個應(yīng)用需要與多個應(yīng)用通過MQ通訊,那就比較麻煩了,它們間需要建立蜘蛛網(wǎng)狀的MQ連接拓?fù)?。所以我們采用ESB(企業(yè)系統(tǒng)總線)的MQ+MB的方式簡化應(yīng)用間的消息傳輸,ESB處于所有應(yīng)用的最中央,MQ依舊負(fù)責(zé)收發(fā)通訊消息,MB負(fù)責(zé)消息路由和消息轉(zhuǎn)換,MB會根據(jù)消息字段和設(shè)定的業(yè)務(wù)邏輯自動地將消息發(fā)送給匹配的應(yīng)用。對于跨站點的ESB來說,也可以通過域名服務(wù)器+站點A的ESB+站點B的ESB架構(gòu)來實現(xiàn),站點A的ESB將消息路由至站點A匹配的應(yīng)用,站點B的ESB將消息匹配至站點B匹配的應(yīng)用。如果應(yīng)用有多個節(jié)點,前端也需要接應(yīng)用負(fù)載實現(xiàn)多應(yīng)用節(jié)點的負(fù)載均衡。(7
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年汽車租賃公司兼職司機合同3篇
- 二零二五版家居用品寄售代理合同范本3篇
- 二零二五版草原生態(tài)補償機制承包合同3篇
- 二零二五版插畫師合作合同范本-漫畫創(chuàng)作合作與版權(quán)歸屬協(xié)議3篇
- 二零二五版建筑工程施工企業(yè)施工許可證注銷合同3篇
- 二零二五版安徽農(nóng)民工就業(yè)跟蹤服務(wù)合同范本3篇
- 2025版塊石石材礦山投資合作合同3篇
- 基于2025年度行業(yè)標(biāo)準(zhǔn)的招投標(biāo)實習(xí)合同3篇
- 二零二五年金融創(chuàng)新抵押借款合同范本分享3篇
- 二零二五年度貨車司機雇傭合同及車輛油耗管理約定3篇
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- TB 10010-2008 鐵路給水排水設(shè)計規(guī)范
- 黑色素的合成與美白產(chǎn)品的研究進(jìn)展
- 建筑史智慧樹知到期末考試答案2024年
- 金蓉顆粒-臨床用藥解讀
- 社區(qū)健康服務(wù)與管理教案
- 2023-2024年家政服務(wù)員職業(yè)技能培訓(xùn)考試題庫(含答案)
- 2023年(中級)電工職業(yè)技能鑒定考試題庫(必刷500題)
- 藏歷新年文化活動的工作方案
- 果酒釀造完整
- 第4章-理想氣體的熱力過程
評論
0/150
提交評論