《數(shù)據(jù)庫原理與應(yīng)用》課件第10章_第1頁
《數(shù)據(jù)庫原理與應(yīng)用》課件第10章_第2頁
《數(shù)據(jù)庫原理與應(yīng)用》課件第10章_第3頁
《數(shù)據(jù)庫原理與應(yīng)用》課件第10章_第4頁
《數(shù)據(jù)庫原理與應(yīng)用》課件第10章_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第10章機(jī)群數(shù)據(jù)庫10.1計(jì)算機(jī)機(jī)群概述10.2機(jī)群數(shù)據(jù)庫10.3Oracle機(jī)群數(shù)據(jù)庫簡介10.4應(yīng)用實(shí)例習(xí)題隨著信息技術(shù)的迅速發(fā)展和Internet技術(shù)應(yīng)用的日益普及,信息爆炸帶來了海量數(shù)據(jù),數(shù)據(jù)庫系統(tǒng)所要處理的數(shù)據(jù)也從MB級達(dá)到TB級甚至PB級。另一方面,實(shí)時(shí)在線應(yīng)用已經(jīng)深入到社會(huì)工作和人們生活的各個(gè)角落,這些應(yīng)用如電子商務(wù)、門戶網(wǎng)站、搜索引擎、網(wǎng)絡(luò)游戲、網(wǎng)絡(luò)視頻服務(wù)等,不僅需要海量的存儲(chǔ)裝置,更需要大規(guī)模并發(fā)響應(yīng)能力,即支持和處理來自Internet的成千上萬用戶瞬間、突發(fā)、峰值訪問的能力。傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)中進(jìn)行某種查詢有的時(shí)候要運(yùn)行很長的時(shí)間,這不能滿足瞬息萬變的網(wǎng)絡(luò)應(yīng)用的需求。這些新的要求對傳統(tǒng)的數(shù)據(jù)庫技術(shù)提出了挑戰(zhàn)。數(shù)據(jù)量呈爆炸增長,而單個(gè)計(jì)算機(jī)的處理速度是有極限的,即使是超級計(jì)算機(jī)的計(jì)算資源也會(huì)顯得力不從心。并行處理成為數(shù)據(jù)庫繼續(xù)發(fā)展的必然趨勢。并行數(shù)據(jù)庫系統(tǒng)以高性能、高可用性和高擴(kuò)充性為目標(biāo),充分利用多處理器平臺(tái)的工作能力,多個(gè)處理機(jī)協(xié)同處理,以達(dá)到更快的數(shù)據(jù)庫響應(yīng)速度和分析能力。在很多情況下,并行數(shù)據(jù)庫的數(shù)據(jù)分布在多個(gè)處理機(jī)中并共同組成一個(gè)完整的數(shù)據(jù)庫系統(tǒng)。并行數(shù)據(jù)庫需要有效的硬件支持平臺(tái)才能發(fā)揮其性能,這些硬件平臺(tái)可以是昂貴的MPP并行計(jì)算機(jī),也可以是支持多處理器的小型計(jì)算機(jī),更可以是由多個(gè)微型計(jì)算機(jī)(或PC服務(wù)器)構(gòu)建的計(jì)算機(jī)機(jī)群。所謂計(jì)算機(jī)機(jī)群就是利用高速計(jì)算機(jī)網(wǎng)絡(luò)把若干個(gè)同構(gòu)或異構(gòu)的計(jì)算機(jī)連接起來,通過配置在機(jī)群上的中間件系統(tǒng)、通信系統(tǒng)、管理系統(tǒng)以及其上的應(yīng)用系統(tǒng)來支持大規(guī)模的數(shù)據(jù)計(jì)算和處理能力的計(jì)算裝置。同樣,可以把并行數(shù)據(jù)庫系統(tǒng)配置到計(jì)算機(jī)機(jī)群上構(gòu)建機(jī)群數(shù)據(jù)庫系統(tǒng),以便支持大規(guī)模數(shù)據(jù)并發(fā)處理能力。10.1計(jì)算機(jī)機(jī)群概述10.1.1可擴(kuò)展的并行計(jì)算體系結(jié)構(gòu)計(jì)算機(jī)業(yè)是發(fā)展最快的行業(yè)之一,這歸功于計(jì)算機(jī)硬件和軟件技術(shù)的快速發(fā)展。硬件技術(shù)的發(fā)展體現(xiàn)在芯片設(shè)計(jì)和制作工藝的快速發(fā)展。當(dāng)今,芯片制作工藝已經(jīng)達(dá)到45納米或更精細(xì),多核心技術(shù)的引進(jìn)使微處理器性能的發(fā)展令人驚嘆不已。各種高帶寬低延遲的互聯(lián)網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用,為基于網(wǎng)絡(luò)的計(jì)算結(jié)構(gòu)奠定了基礎(chǔ)。軟件技術(shù)也有很大的發(fā)展,成熟的軟件,如操作系統(tǒng)、編程語言、算法和開發(fā)工具等都可得到,新型的軟件開發(fā)技術(shù),如網(wǎng)絡(luò)計(jì)算技術(shù)、中間件技術(shù)、網(wǎng)格技術(shù)在科學(xué)、工程和商業(yè)領(lǐng)域得到了長足的發(fā)展。根據(jù)人們對計(jì)算能力需求的不同,可以將計(jì)算分為兩個(gè)發(fā)展時(shí)代:串行計(jì)算時(shí)代和并行計(jì)算時(shí)代。隨著人們對高性能計(jì)算和處理資源的需求,并行應(yīng)用時(shí)代的到來已經(jīng)勢不可擋。在20世紀(jì)80年代,人們認(rèn)為計(jì)算機(jī)性能的提高主要是由于生產(chǎn)出了更快更有效的處理器。隨著時(shí)間的推移這種觀點(diǎn)受到了并行處理概念的挑戰(zhàn):并行計(jì)算就是將兩臺(tái)或多臺(tái)計(jì)算機(jī)連接起來,協(xié)同地解決計(jì)算問題。從20世紀(jì)90年代以來,昂貴而特制的并行超級計(jì)算機(jī)向高性能微型計(jì)算機(jī)網(wǎng)絡(luò)轉(zhuǎn)換的趨勢越來越強(qiáng)。商品化的高性能微型計(jì)算機(jī)和網(wǎng)絡(luò)部件為這種轉(zhuǎn)換的提供了廉價(jià)的硬件基礎(chǔ)。新技術(shù)的發(fā)展使計(jì)算機(jī)(PC機(jī)或高性能微型計(jì)算機(jī))網(wǎng)絡(luò)環(huán)境成為并行處理的理想工具,從而導(dǎo)致了低價(jià)商品化超級計(jì)算機(jī)的出現(xiàn)。如今,基于計(jì)算機(jī)機(jī)群的并行計(jì)算裝置已經(jīng)成為當(dāng)今高性能計(jì)算設(shè)備的主流,世界排名前500的超級計(jì)算機(jī)中大多基于計(jì)算機(jī)機(jī)群技術(shù)。機(jī)群是一群以計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)互連起來的高性能計(jì)算機(jī)或PC機(jī)的集合。機(jī)群工作時(shí)像一個(gè)統(tǒng)一的整合資源,所有節(jié)點(diǎn)(連接在機(jī)群上的單個(gè)計(jì)算機(jī))使用單一界面。在支持并行計(jì)算方面,計(jì)算機(jī)機(jī)群和MPP機(jī)相比具備如下特點(diǎn):

(1)單個(gè)計(jì)算機(jī)越來越強(qiáng)大。按照摩爾定律,微型處理器的性能每隔18個(gè)月就會(huì)提高1倍,這是已經(jīng)持續(xù)多年的處理器的發(fā)展規(guī)律,這一直帶動(dòng)微型計(jì)算機(jī)快速發(fā)展。最近,多核技術(shù)的產(chǎn)生和普及應(yīng)用,使得微處理器的發(fā)展越來越快,業(yè)界已經(jīng)推出具有80核心的微處理器。具有數(shù)百核心的流處理器的浮點(diǎn)計(jì)算性能已經(jīng)達(dá)到1TFloaps,而它們的成本卻非常低廉。

(2)隨著新的網(wǎng)絡(luò)技術(shù)和通信協(xié)議在LAN上的廣泛使用,連接機(jī)群的高性能計(jì)算機(jī)間的網(wǎng)絡(luò)帶寬正在增加,延遲正在減小。因而通信瓶頸問題逐步得到改善。

(3)高性能微型計(jì)算機(jī)機(jī)群比專用的并行計(jì)算機(jī)更容易地與現(xiàn)有的網(wǎng)絡(luò)整合起來。

(4)一般說來,用戶對個(gè)人微型計(jì)算機(jī)的使用率是較低的,因此可以挖掘節(jié)點(diǎn)的空閑資源進(jìn)行并行計(jì)算。這是一種獲取高性能計(jì)算資源的可行手段。

(5)微型計(jì)算機(jī)的開發(fā)工具比并行計(jì)算機(jī)的專用解決方面要成熟得多,可以得到廣泛的開發(fā)環(huán)境和技術(shù)的支持,更便于構(gòu)建并行計(jì)算環(huán)境。

(6)微型計(jì)算機(jī)機(jī)群比高性能專用計(jì)算機(jī)平臺(tái)更便宜而且更易于獲得。

(7)通過增加內(nèi)存和處理器,增加節(jié)點(diǎn)的性能,很容易擴(kuò)展計(jì)算機(jī)機(jī)群的性能。10.1.2計(jì)算機(jī)機(jī)群及其體系結(jié)構(gòu)機(jī)群是一種并行或分布式處理系統(tǒng),由很多連接在一起的獨(dú)立計(jì)算機(jī)組成,像一個(gè)單獨(dú)集成的計(jì)算資源一樣協(xié)同工作。計(jì)算機(jī)節(jié)點(diǎn)可以是一個(gè)單處理器或多處理器的系統(tǒng)(PC機(jī)、高性能計(jì)算機(jī)或PC服務(wù)器),其擁有獨(dú)立的CPU、內(nèi)存、I/O設(shè)備和操作系統(tǒng)。節(jié)點(diǎn)可以是在一起的,也可以是物理上分散而通過LAN連接在一起的。這樣的系統(tǒng)可以提供一種合理的性能價(jià)格比,并可根據(jù)需求來構(gòu)建合適的計(jì)算裝置。典型的機(jī)群系統(tǒng)的體系結(jié)構(gòu)如圖10.1所示。圖10.1展示了具有4個(gè)計(jì)算節(jié)點(diǎn)的計(jì)算機(jī)機(jī)群,每個(gè)計(jì)算機(jī)節(jié)點(diǎn)包括本機(jī)通信系統(tǒng)(通信設(shè)備、協(xié)議及通信軟件)、本機(jī)系統(tǒng)軟件(操作系統(tǒng))、本機(jī)應(yīng)用系統(tǒng)(數(shù)據(jù)庫支持、ODBC);每個(gè)計(jì)算機(jī)節(jié)點(diǎn)可以獨(dú)立支持傳統(tǒng)的串行計(jì)算。所有計(jì)算節(jié)點(diǎn)通過高速網(wǎng)絡(luò)通信系統(tǒng)連接在一起,高速網(wǎng)絡(luò)通信系統(tǒng)由通信介質(zhì)、網(wǎng)絡(luò)交換設(shè)備、路由設(shè)備、終端通信設(shè)備、通信協(xié)議以及通信軟件構(gòu)成。構(gòu)成計(jì)算機(jī)機(jī)群的一些重要部件如下所列。

1.計(jì)算節(jié)點(diǎn)部件

(1)多個(gè)高性能計(jì)算機(jī)(PC、工作站或SMP)。

(2)網(wǎng)絡(luò)接口卡(NIC)。

(3)支持機(jī)群計(jì)算的操作系統(tǒng)(分層或基于微內(nèi)核)。目前常用的操作系統(tǒng)包括Unix、Linux、WindowsNT、WindowsServer系列等。圖10.1計(jì)算機(jī)機(jī)群體系結(jié)構(gòu)

2.網(wǎng)絡(luò)部件

(1)高性能網(wǎng)絡(luò)/開關(guān)(如千兆位以太網(wǎng)或ATM)。

(2)快速通信協(xié)議和服務(wù)(如活動(dòng)消息和快速消息)。

3.機(jī)群中間件

(1)操作系統(tǒng)內(nèi)核或粘合層(如SolarisMC和GLUnix):

(2)應(yīng)用程序和子系統(tǒng),包括應(yīng)用程序(如系統(tǒng)管理工具和電子表格)、實(shí)時(shí)系統(tǒng)(如軟件DSM和并行文件系統(tǒng))、資源管理和調(diào)度軟件,如LSF(負(fù)載分配器)和CODINE(分布網(wǎng)絡(luò)環(huán)境中的計(jì)算)。

4.開發(fā)環(huán)境

(1)并行編程環(huán)境和工具,如編譯器、PVM(并行虛擬機(jī))和MPI(消息傳遞接口)。

(2)并行程序設(shè)計(jì)技術(shù),包括并行程序設(shè)計(jì)理論和并行程序設(shè)計(jì)、開發(fā)、調(diào)試技術(shù)。10.1.3計(jì)算機(jī)機(jī)群中間件

1.中間件功能機(jī)群中間件是整個(gè)機(jī)群的核心,其主要功能如下:

(1)用來動(dòng)態(tài)收集機(jī)群內(nèi)計(jì)算節(jié)點(diǎn)的資源信息,包括計(jì)算資源、內(nèi)存資源、磁盤資源、網(wǎng)絡(luò)通信單元、數(shù)據(jù)分布資源以及節(jié)點(diǎn)所具備的服務(wù)資源信息。

(2)構(gòu)建全局資源目錄,根據(jù)其收集的各個(gè)計(jì)算節(jié)點(diǎn)的各類資源信息,進(jìn)行分類、整理、構(gòu)建資源目錄,并負(fù)責(zé)動(dòng)態(tài)更新。

(3)合理地進(jìn)行資源調(diào)度,按照系統(tǒng)策略和應(yīng)用策略,負(fù)責(zé)整個(gè)機(jī)群資源在計(jì)算任務(wù)間的分配,以便整個(gè)機(jī)群系統(tǒng)資源的應(yīng)用率最大化。

(4)機(jī)群運(yùn)行狀態(tài)的監(jiān)控,監(jiān)測機(jī)群每個(gè)計(jì)算節(jié)點(diǎn)的運(yùn)行狀態(tài),包括硬件狀態(tài)、軟件狀態(tài)、數(shù)據(jù)狀態(tài)、應(yīng)用服務(wù)狀態(tài),并根據(jù)機(jī)群的策略來動(dòng)態(tài)調(diào)整系統(tǒng)運(yùn)行。

(5)機(jī)群中間件最主要的功能是提供單一系統(tǒng)映像。

2.單一系統(tǒng)映像單一系統(tǒng)映像(SSI)是通過分布在機(jī)群內(nèi)的所有硬件和軟件資源的協(xié)同工作,把機(jī)群上分散的硬件和軟件資源邏輯地整合起來,形成一個(gè)統(tǒng)一、虛擬、功能更強(qiáng)大的資源來使用。SSI可以支持機(jī)群組件(如用MPI開發(fā)的并行應(yīng)用程序),也可以支持非機(jī)群應(yīng)用程序(如串行程序)。要求機(jī)群應(yīng)用程序操作透明和性能可擴(kuò)展(所謂可擴(kuò)展就是當(dāng)增加機(jī)群的計(jì)算節(jié)點(diǎn)數(shù)目或增加機(jī)群的能力時(shí),應(yīng)用程序運(yùn)行速度按線性比例加快)。機(jī)群一方面就像具有高度SSI的SMP系統(tǒng)那樣,另一方面在功能上就像一個(gè)具有多個(gè)系統(tǒng)映像的分布式系統(tǒng)。

1)單一映像系統(tǒng)的優(yōu)點(diǎn)單一映像系統(tǒng)在在機(jī)群運(yùn)行中具有重要作用,并帶來許多優(yōu)點(diǎn):

(1)它為整個(gè)系統(tǒng)資源和運(yùn)行情況提供一個(gè)統(tǒng)一、簡單、直觀的視圖,根據(jù)這個(gè)視圖可以獲得所有計(jì)算節(jié)點(diǎn)資源和網(wǎng)絡(luò)資源的狀態(tài),便于整體調(diào)度。

(2)提供透明性支持,使最終用戶無需知道應(yīng)用程序在什么物理位置上運(yùn)行。屏蔽了物理位置細(xì)節(jié),操作者不必再了解資源的物理位置。

(3)用戶可以使用過去熟悉的接口和命令(如Windows命令),管理員可以在一點(diǎn)上管理整個(gè)機(jī)群。

(4)提供完整性保護(hù)進(jìn)而減少了操作者失誤的機(jī)會(huì),使最終用戶享受到系統(tǒng)的高可靠性和高可用性。

(5)靈活的管理機(jī)制使系統(tǒng)可以集中或分散管理和控制。簡化了系統(tǒng)管理,用統(tǒng)一的命令就可以操作在不同機(jī)器上的系統(tǒng)資源。

(6)屏蔽程序的運(yùn)行細(xì)節(jié),使一個(gè)應(yīng)用程序的多個(gè)工作部分看來好像是一個(gè)應(yīng)用程序。

(7)?SSI對實(shí)際發(fā)生的消息路由的動(dòng)態(tài)映射和使用邏輯通信地址,為用戶提供了不依賴位置的消息通信,提高了程序的可移植性。

2)單一映像系統(tǒng)支持的服務(wù)由SSI的功能和優(yōu)點(diǎn)來看,SSI必須支持如下服務(wù):

(1)單入口點(diǎn):一個(gè)用戶可以像連接到單一計(jì)算機(jī)系統(tǒng)一樣連接到機(jī)群,而不必考慮機(jī)群的特殊結(jié)構(gòu)。

(2)單一文件層次:在進(jìn)入系統(tǒng)時(shí),用戶看見的文件系統(tǒng)是文件的單一層次,目錄是在同一根目錄下的,而不必考慮文件分布在哪個(gè)計(jì)算節(jié)點(diǎn)的文件系統(tǒng)上。

(3)單點(diǎn)管理和控制:整個(gè)機(jī)群可以從用單一的GUI工具創(chuàng)建的單一窗口進(jìn)行管理和控制,就像用任務(wù)管理器管理WindowsNT服務(wù)器一樣來管理機(jī)群資源。

(4)單一虛擬網(wǎng)絡(luò):任何節(jié)點(diǎn)可以通過機(jī)群互聯(lián)網(wǎng)絡(luò)相互訪問,即使這些節(jié)點(diǎn)在物理上并不在一個(gè)網(wǎng)段上。

(5)單一內(nèi)存空間:將屬于機(jī)群的各節(jié)點(diǎn)的內(nèi)存作為共享內(nèi)存。

(6)單一作業(yè)管理系統(tǒng):用戶可以用透明的作業(yè)提交機(jī)制在任一個(gè)節(jié)點(diǎn)提交作業(yè)。作業(yè)可以以批處理、交互或者并行模式被調(diào)度執(zhí)行。

(7)單一用戶接口:用戶可以通過統(tǒng)一GUI使用機(jī)群。這個(gè)接口必須與個(gè)人計(jì)算機(jī)的接口在外觀和感覺上一樣。10.1.4計(jì)算機(jī)機(jī)群的種類及用途計(jì)算機(jī)機(jī)群技術(shù)已經(jīng)廣泛地應(yīng)用到當(dāng)今社會(huì)的各個(gè)領(lǐng)域,并且已經(jīng)成為人們?nèi)粘I钪胁豢扇鄙俚姆?wù)設(shè)備之一,只是這些服務(wù)機(jī)群隱含在應(yīng)用的后臺(tái),對使用者來說是透明的。計(jì)算機(jī)機(jī)群的劃分方法很多,這里我們根據(jù)其用途來劃分。

1.支持科學(xué)計(jì)算的高性能計(jì)算在科學(xué)活動(dòng)的各個(gè)領(lǐng)域,存在許多復(fù)雜計(jì)算任務(wù),由于這些任務(wù)的計(jì)算量巨大,需要較長的計(jì)算時(shí)間和較多的計(jì)算資源。往往由于計(jì)算方法的收斂性的不同,耗時(shí)多達(dá)幾個(gè)月或幾十年,因而計(jì)算裝置性能的高低直接影響了科學(xué)研究工作。所以,業(yè)界一直追求更快的高性能計(jì)算裝置。利用機(jī)群技術(shù)構(gòu)建超級計(jì)算機(jī),如IBMBLUE/GENE和我國百億次計(jì)算機(jī)曙光5000系列等。曙光5000A高性能計(jì)算機(jī)采用最新的四核AMDBarcelona(主頻1.9GHz)處理器,采用基于刀片架構(gòu)的HPP體系架構(gòu),共有30?720顆計(jì)算核心,122.88?TB內(nèi)存,700TB數(shù)據(jù)存儲(chǔ)能力,采用低延遲的20Gb帶寬的InfiniBand網(wǎng)絡(luò)互聯(lián)。曙光5000A的浮點(diǎn)運(yùn)算速度的峰值為230萬億次每秒,Linpack測試速度預(yù)測將達(dá)到160T,效率大于70%,是目前國內(nèi)運(yùn)算速度最快的高性能計(jì)算機(jī)。曙光5000A一天完成的工作量,相當(dāng)于全中國所有人每天24小時(shí)、每年365天利用手持計(jì)算機(jī)不停地進(jìn)行計(jì)算,46年完成的工作量。曙光5000A體系結(jié)構(gòu)如圖10.2所示。圖10.2曙光5000A機(jī)群系統(tǒng)體系結(jié)構(gòu)

2.支持海量信息存儲(chǔ)和管理的廣義機(jī)群技術(shù)機(jī)群技術(shù)在這方面應(yīng)用的主要代表是歐洲數(shù)據(jù)網(wǎng)格(DataGrid)。歐洲原子能研究機(jī)構(gòu)CERN成立于1954年,是世界最大的粒子物理研究中心。CERN建有世界上最大的正負(fù)電子對撞機(jī)(LEP,LargeElectron-Positroncollider)和超級質(zhì)子同步加速器(SPS,SuperProtonSynchrotron)。大圓是LEP,周長達(dá)到27km,能把粒子加速到每秒運(yùn)動(dòng)11000周,接近光速;小圓是SPS。與加速器配套的是四層樓高的粒子檢測器,用于對粒子性質(zhì)進(jìn)行分析。粒子檢測器產(chǎn)生的原始數(shù)據(jù)量具有PB/s量級,經(jīng)過在線系統(tǒng)過濾后,并經(jīng)具有20萬億次處理能力的離線處理場的處理,最終以大約100MB/s的速率永久寫入磁帶,這個(gè)100MB/s就是DataGrid需要處理的數(shù)據(jù)速率。CERN計(jì)算機(jī)中心負(fù)責(zé)將這些數(shù)據(jù)通過高速網(wǎng)絡(luò)分配給歐洲、北美、日本等國的區(qū)域中心,后者再將任務(wù)做進(jìn)一步分解。DataGrid需要管理成千上萬個(gè)處理器和磁盤、千萬億字節(jié)(PB)的數(shù)據(jù)和每秒萬億比特(Tb/s)的網(wǎng)絡(luò)帶寬。DataGrid主要針對CERN的高能物理應(yīng)用,解決海量數(shù)據(jù)的分解存儲(chǔ)和處理問題,同時(shí)將之?dāng)U展到其他應(yīng)用,如地球觀察應(yīng)用和生物應(yīng)用,并尋找將其推廣的可能。

3.支持Internet服務(wù)的大規(guī)模機(jī)群系統(tǒng)面對快速膨脹的信息海洋,面對數(shù)以億計(jì)的Internet用戶的需求,為提供有效的Internet服務(wù)而產(chǎn)生了互聯(lián)網(wǎng)行業(yè),這個(gè)行業(yè)不僅帶動(dòng)了社會(huì)經(jīng)濟(jì)的轉(zhuǎn)型和發(fā)展,也帶來了對信息技術(shù)的挑戰(zhàn)。所以,以網(wǎng)絡(luò)為互連機(jī)制、以分布在各地的計(jì)算機(jī)系統(tǒng)為基礎(chǔ)的新型計(jì)算模式——網(wǎng)絡(luò)計(jì)算技術(shù)產(chǎn)生了。圍繞這一技術(shù),產(chǎn)生了許多互聯(lián)網(wǎng)業(yè)務(wù),如WWW業(yè)務(wù)、網(wǎng)絡(luò)游戲、電子郵件系統(tǒng)、搜索引擎、門戶網(wǎng)站、電子商務(wù)、在線交易、網(wǎng)絡(luò)視頻服務(wù)以及3G服務(wù)等等。網(wǎng)絡(luò)搜索引擎為人們?nèi)粘I顜砹藰O大的方便,著名的有搜索引擎Google、Baidu等。

GoogleInc.?創(chuàng)建于1998年9月。Google搜索引擎是一個(gè)用來在互聯(lián)網(wǎng)上搜索信息的簡單快捷的工具,使用戶能夠訪問一個(gè)包含超過80億個(gè)網(wǎng)址的索引。Google堅(jiān)持不懈地對其搜索功能進(jìn)行革新,始終保持著自己在搜索領(lǐng)域的領(lǐng)先地位。截止到2006年,Google大約有45萬臺(tái)服務(wù)器,有超過200個(gè)計(jì)算機(jī)機(jī)群,處理不同地域的不同任務(wù)。這45萬臺(tái)服務(wù)器都不是昂貴的服務(wù)器,而是非常普通的PC級別服務(wù)器。Google運(yùn)用的核心技術(shù)是網(wǎng)絡(luò)存儲(chǔ)技術(shù)。它利用最常見的硬件設(shè)備,普通的服務(wù)器、普通的內(nèi)存,通過Google的軟件,把Google打造成世界上最廉價(jià)的存儲(chǔ)基地。Google、Gmail搜索等服務(wù)都是基于這種強(qiáng)大的分布式存儲(chǔ)而成功的。

4.支持高可靠性服務(wù)的冗余機(jī)群系統(tǒng)從事關(guān)鍵性任務(wù)的機(jī)群最初往往僅用兩臺(tái)機(jī)器建立(所謂主節(jié)點(diǎn)和后備節(jié)點(diǎn)),以支持容錯(cuò)機(jī)制。其典型應(yīng)用是為銀行業(yè)、保險(xiǎn)業(yè)的OLAP(在線交易處理)應(yīng)用提供可靠的服務(wù)支持。這種方法在原理上是很簡單的:在主系統(tǒng)中組件(硬件或軟件)失效時(shí),重要的應(yīng)用程序可以被轉(zhuǎn)移到后備節(jié)點(diǎn)上,這樣在故障發(fā)生時(shí)可保證應(yīng)用程序的可用性。運(yùn)用機(jī)群冗余機(jī)制,可以提高系統(tǒng)運(yùn)行的可靠性,保證24X7系統(tǒng)的穩(wěn)定運(yùn)行。

5.面向數(shù)據(jù)庫應(yīng)用的計(jì)算機(jī)機(jī)群數(shù)據(jù)庫系統(tǒng)在信息時(shí)代的作用已經(jīng)是無可替代,數(shù)據(jù)庫系統(tǒng)面臨大規(guī)模并發(fā)訪問、海量信息存儲(chǔ)管理、實(shí)時(shí)事務(wù)處理等應(yīng)用需求的挑戰(zhàn)。人們?yōu)榱颂岣邤?shù)據(jù)庫系統(tǒng)的大規(guī)模實(shí)時(shí)處理能力,結(jié)合計(jì)算機(jī)機(jī)群的并發(fā)處理的優(yōu)勢構(gòu)建了計(jì)算機(jī)機(jī)群數(shù)據(jù)庫系統(tǒng)。這些系統(tǒng)已經(jīng)成功地應(yīng)用于各行各業(yè),OracleRAC為典型的計(jì)算機(jī)機(jī)群數(shù)據(jù)庫系統(tǒng)之一。有關(guān)OracleRAC的介紹參照本章后續(xù)內(nèi)容。支持機(jī)群數(shù)據(jù)庫的典型機(jī)群有Linux機(jī)群和微軟的WindowsComputeClusterServer(WCCS)。計(jì)算機(jī)機(jī)群技術(shù)的應(yīng)用還有很多方面,由于超出本書范圍,不再贅述。10.1.5計(jì)算機(jī)機(jī)群構(gòu)建與管理本節(jié)介紹計(jì)算機(jī)機(jī)群的簡單構(gòu)建方法和相關(guān)的配置管理技術(shù)信息,主要介紹互聯(lián)網(wǎng)絡(luò)、前端機(jī)、計(jì)算節(jié)點(diǎn)(服務(wù)器)、操作系統(tǒng)、機(jī)群中間件等。簡單的機(jī)群結(jié)構(gòu)如圖10.3所示。下面分別介紹各個(gè)部件。

1.互聯(lián)網(wǎng)絡(luò)計(jì)算機(jī)機(jī)群網(wǎng)絡(luò)是構(gòu)建機(jī)群的關(guān)鍵。目前高速網(wǎng)絡(luò)應(yīng)用已經(jīng)得到普及,已有的高速網(wǎng)絡(luò)有千兆以太網(wǎng)絡(luò)、FDDI和ATM交換網(wǎng)絡(luò)等,機(jī)群專用的網(wǎng)絡(luò)有Myrinet、SCI、InfiniBand等。可以根據(jù)整個(gè)機(jī)群的成本要求來配置網(wǎng)絡(luò)硬件。一般來說,通用網(wǎng)絡(luò)具有較低廉的價(jià)格,如快速以太網(wǎng)、FDDI等,但其通信性能往往很低。Myribet、InfiniBand等機(jī)群專用網(wǎng)絡(luò)具有很高的帶寬,但其價(jià)格也高的驚人。InfiniBand架構(gòu)是一種支持多并發(fā)鏈接的“轉(zhuǎn)換線纜”技術(shù)。在這種技術(shù)中,每種鏈接都可以達(dá)到2.5Gb/s的運(yùn)行速度。這種架構(gòu)在一個(gè)鏈接的時(shí)候速度為500MB/s,4個(gè)鏈接的時(shí)候速度為2GB/s,12個(gè)鏈接的時(shí)候速度可以達(dá)到6GB/s。InfiniBand技術(shù)不是面向一般網(wǎng)絡(luò)連接的,而針對的是服務(wù)器端的連接。因此,InfiniBand技術(shù)被應(yīng)用于服務(wù)器與服務(wù)器(如復(fù)制,分布式工作等)、服務(wù)器和存儲(chǔ)設(shè)備(如SAN和直接存儲(chǔ)附件)以及服務(wù)器和網(wǎng)絡(luò)之間(如LAN、WANs和Internet)的通信。Myrinet是一項(xiàng)經(jīng)濟(jì)高效、高性能的分包通信和交換技術(shù),被廣泛應(yīng)用于工作站、PC、服務(wù)器、刀片服務(wù)器或單板計(jì)算機(jī)的互聯(lián)機(jī)群。它以一種經(jīng)濟(jì)的方式實(shí)現(xiàn)高性能以及高可用性。Myrinet10G是10千兆位以太網(wǎng)與HPC技術(shù)的集成體。將NIC端口連接至10千兆位以太網(wǎng)交換機(jī),即可實(shí)現(xiàn)高達(dá)9.8千兆位每秒的數(shù)據(jù)傳輸速度。Myrinet2000網(wǎng)絡(luò)接口卡(NIC)可以使固件從運(yùn)行中的主機(jī)上卸載協(xié)議。固件直接與主機(jī)進(jìn)程作用(OS旁路),實(shí)現(xiàn)低時(shí)延通信功能,直接與網(wǎng)絡(luò)作用,可發(fā)送、接收并緩沖數(shù)據(jù)包。選用構(gòu)建機(jī)群的網(wǎng)絡(luò)時(shí)還要考慮機(jī)群互聯(lián)的規(guī)模。如果一個(gè)互聯(lián)機(jī)群所連接的計(jì)算機(jī)節(jié)點(diǎn)(或服務(wù)器)的數(shù)目很多,那么需要高性能的環(huán)鏈網(wǎng)絡(luò);理想的要求是各個(gè)計(jì)算節(jié)點(diǎn)的通信能力之和應(yīng)該和網(wǎng)絡(luò)的帶寬滿足一定的比例關(guān)系。機(jī)群應(yīng)用的特性對互聯(lián)網(wǎng)絡(luò)的選用也有很大影響,如果應(yīng)用經(jīng)常涉及大數(shù)據(jù)量的傳輸,那么這種應(yīng)用將對機(jī)群互聯(lián)網(wǎng)絡(luò)要求很高。有效的通信技術(shù)也是緩解網(wǎng)絡(luò)擁擠的方法,如機(jī)群節(jié)點(diǎn)采用分時(shí)、分組通信優(yōu)化機(jī)制等。圖10.3一個(gè)簡單的機(jī)群示意圖

2.前端機(jī)在構(gòu)成計(jì)算機(jī)機(jī)群的計(jì)算節(jié)點(diǎn)中,有一個(gè)特殊的計(jì)算機(jī)作為整個(gè)機(jī)群的入口和出口,其上配置了機(jī)群管理的終端軟件、可視化檢測軟件等等,這樣的計(jì)算機(jī)稱作前端機(jī)。大多數(shù)機(jī)群都配置了一個(gè)某種類型的前端機(jī),其主要功能如下:

(1)區(qū)分用戶是從網(wǎng)絡(luò)的哪個(gè)節(jié)點(diǎn)登錄的。

(2)從該節(jié)點(diǎn)提交任務(wù)到機(jī)群其他部分的節(jié)點(diǎn)上。

(3)提供簡單單一的視圖,使用戶將機(jī)群看成一個(gè)單一系統(tǒng)。

(4)在分布式的NFS服務(wù)中,前端機(jī)為其他節(jié)點(diǎn)提供NFS服務(wù),同時(shí)連接內(nèi)部和外部網(wǎng)絡(luò),還可能安裝外部的NFS卷。

(5)用戶可以在與計(jì)算節(jié)點(diǎn)完全一樣的環(huán)境下編譯調(diào)試他們的應(yīng)用。一種特殊的機(jī)群監(jiān)控工具是基于IP的KVM(KVMoverIP)?;贗P的KVM系統(tǒng)朝著標(biāo)準(zhǔn)化、集中化方向邁進(jìn),為管理不同種類的分布式網(wǎng)絡(luò)資源提供了可能。KVMoverIP系統(tǒng)充分利用了現(xiàn)有的以太網(wǎng)和其他IP網(wǎng)絡(luò)。這種基于IP的連接有4大優(yōu)點(diǎn):

(1)它充分利用了現(xiàn)有的基礎(chǔ)設(shè)施,不再需要覆蓋專用連接以確保本地和遠(yuǎn)程管理的控制和通信。

(2)基于IP的連接消除了模擬KVM系統(tǒng)的距離和其他限制,并因此實(shí)現(xiàn)了靈活的集中化管理。

(3)由于數(shù)字KVM信令是基于IP協(xié)議的,網(wǎng)絡(luò)管理員能夠通過網(wǎng)頁瀏覽器,在數(shù)據(jù)中心或全球的任何地方用任何一臺(tái)電腦來控制服務(wù)器和其他設(shè)備。這也意味著無需進(jìn)行復(fù)雜的重新配置即可添加或改變?nèi)魏螖?shù)量的用戶和設(shè)備。

(4)客戶端軟件可以充分利用IP技術(shù)以提供豐富的管理控制,包括進(jìn)程共享、服務(wù)器狀態(tài)監(jiān)控、模擬多平臺(tái)鍵盤以及集中式日志記錄等。

3.計(jì)算節(jié)點(diǎn)(服務(wù)器)計(jì)算節(jié)點(diǎn)是構(gòu)建機(jī)群的核心部件。它用以完成機(jī)群的計(jì)算、服務(wù)功能,如數(shù)據(jù)庫服務(wù)器、視頻服務(wù)器、游戲支持服務(wù)器、DNS服務(wù)器等。計(jì)算節(jié)點(diǎn)的構(gòu)建不需要昂貴的計(jì)算裝置,通常采用商品化的高性能計(jì)算機(jī)、PC服務(wù)器,甚至可以是普通的PC計(jì)算機(jī)。計(jì)算節(jié)點(diǎn)由CPU、內(nèi)存、磁盤和網(wǎng)絡(luò)適配器(網(wǎng)卡)構(gòu)成。下面介紹影響計(jì)算節(jié)點(diǎn)性能的主要因素。

1)?CPU結(jié)構(gòu)和頻率市場上常見的CPU主要由Intel、AMD和IBM3家生產(chǎn)。其核心結(jié)構(gòu)各不相同,但其性能可以由CPU基準(zhǔn)測試軟件來確定。不同結(jié)構(gòu)的處理器在不同的應(yīng)用中表現(xiàn)出不同的處理性能,如有的浮點(diǎn)處理能力較強(qiáng),有的多媒體處理能力較強(qiáng)。要根據(jù)機(jī)群工作的需要來選定CPU。如果機(jī)群用于科學(xué)計(jì)算,那么可以選用浮點(diǎn)計(jì)算能力較強(qiáng)的多核心的CPU;如果用于數(shù)據(jù)處理,可以選用Cache較大的CPU;如果用于高清視頻信息編解碼,那么應(yīng)該選用支持這些編碼機(jī)制的CPU。當(dāng)然,處理器的成本也是遴選的關(guān)鍵。通常同結(jié)構(gòu)情況下,較高頻率的CPU具有較高的性能。

2)內(nèi)存類型和總線帶寬內(nèi)存的類型、容量和內(nèi)部總線帶寬是衡量計(jì)算節(jié)點(diǎn)性能的另一個(gè)指標(biāo)。目前,常見的內(nèi)存類型有SDRAM、DDRSDRAM、DDR2SDRAM和DDR3SDRAM等;內(nèi)存的帶寬與處理器密切相關(guān),例如,P4A的外頻為100MHz,其FSB為400MHz,數(shù)據(jù)帶寬為3.2GB/s;P4B和C4D的外頻為133MHz,其FSB為533MHz,數(shù)據(jù)帶寬為4.2GB/s;P4C、P4E的外頻為200MHz,其FSB為800MHz,數(shù)據(jù)帶寬為6.4GB/s。內(nèi)存還分為單通道和雙通道,雙通道結(jié)構(gòu)的內(nèi)存是計(jì)算節(jié)點(diǎn)的首選。另外,內(nèi)存性能與主板的芯片組有關(guān),選用高性能的芯片組是必需的。通常大容量的內(nèi)存對提高計(jì)算節(jié)點(diǎn)的性能是有益的,特別是對數(shù)據(jù)庫服務(wù)器而言,可以選用8GB、12GB或32GB內(nèi)存。

3)磁盤的選用磁盤是計(jì)算節(jié)點(diǎn)存儲(chǔ)、緩沖數(shù)據(jù)的必備手段,衡量磁盤的性能指標(biāo)有磁盤接口類型、磁盤旋轉(zhuǎn)速度和磁盤容量。磁盤接口類型有IDE、SATA、SAS和光纖通道。IDE是英文IntegratedDriveElectronics的縮寫,翻譯成中文叫做“集成驅(qū)動(dòng)器電子”,它的本意是指把控制器與盤體集成在一起的硬盤驅(qū)動(dòng)器。在低檔的入門級服務(wù)器上有很大一部分采用IDE接口,這樣做的好處是價(jià)格低廉,但采用IDE接口的服務(wù)器也有著嚴(yán)重的缺陷,那就是速度瓶頸,不能實(shí)現(xiàn)熱插拔,很難實(shí)現(xiàn)數(shù)據(jù)的可靠性保護(hù)。SATA(SerialATA)接口的硬盤又叫串口硬盤。SerialATA采用串行連接方式,SerialATA總線使用嵌入式時(shí)鐘信號,具備了更強(qiáng)的糾錯(cuò)能力,提高了數(shù)據(jù)傳輸?shù)目煽啃?。串行接口還具有結(jié)構(gòu)簡單、支持熱插拔的優(yōu)點(diǎn)。SerialATA2.0的數(shù)據(jù)傳輸率達(dá)到300MB/s,最終SATA將實(shí)現(xiàn)600MB/s的最高數(shù)據(jù)傳輸率。SAS(SerialAttachedSCSI)即串行連接SCSI,是新一代的SCSI技術(shù)。和現(xiàn)在流行的SerialATA(SATA)硬盤相同,都采用串行技術(shù)以獲得更高的傳輸速度,并通過縮短連接線改善內(nèi)部空間等。SAS是并行SCSI接口之后開發(fā)出的全新接口。此接口的設(shè)計(jì)是為了改善存儲(chǔ)系統(tǒng)的效能、可用性和擴(kuò)充性,并且與SATA硬盤兼容。光纖通道(FC)的英文拼寫是FiberChannel,最初是專門為網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)的,但隨著存儲(chǔ)系統(tǒng)對速度的需求,才逐漸應(yīng)用到硬盤系統(tǒng)中。光纖通道硬盤是為提高多硬盤存儲(chǔ)系統(tǒng)的速度和靈活性而開發(fā)的,它的出現(xiàn)大大提高了多硬盤系統(tǒng)的通信速度。光纖通道的主要特性有:熱插拔性、高速帶寬、遠(yuǎn)程連接、連接設(shè)備數(shù)量大等。一般而言,IDE性能最差,SATA具備良好的性價(jià)比,SAS和FC往往用于高端應(yīng)用。但是,有研究表明,在有些應(yīng)用中,采用低端的IDE和SATA技術(shù)的機(jī)群系統(tǒng)其性能并不輸于SAS系統(tǒng)。磁盤的轉(zhuǎn)速往往分為5400r/s、7200r/s、10000r/s和15000r/s,SAS接口類型往往采用高轉(zhuǎn)速磁盤。為了突破硬盤轉(zhuǎn)速的限制,SSD(SolidStateDisk)硬盤大顯身手。SSD泛指使用Flash組成的固態(tài)硬盤,其特別之處在于沒有機(jī)械結(jié)構(gòu),利用傳統(tǒng)的Flash特性,以區(qū)塊寫入和抹除的方式進(jìn)行讀/寫,因此在讀/寫的效率上,非常依賴讀/寫技術(shù)上的設(shè)計(jì),與目前的傳統(tǒng)硬盤相比,具有低耗電、耐震、穩(wěn)定性高、耐低溫等優(yōu)點(diǎn)。隨著制作技術(shù)的提高,SSD硬盤將會(huì)成為主流,并且其存取性能將大大提高。磁盤的容量越大越好,大容量磁盤具有較大的緩存、較好的訪問性能,建議選用1?GB容量的硬盤,因?yàn)樗鼈兙邆漭^好的性價(jià)比。采用RAID方案可以獲取較好的性能和容錯(cuò),SATA和IDE接口的磁盤都可支持RAID方案。

4)網(wǎng)絡(luò)適配器(網(wǎng)卡)目前可用于機(jī)群構(gòu)建的商業(yè)網(wǎng)卡接口有:RJ-45接口、千兆光纖收發(fā)器和ATM接口。RJ-45接口是常見的一種網(wǎng)卡,也是應(yīng)用最廣的一種接口類型的網(wǎng)卡,這主要得益于RJ-45雙絞線以太網(wǎng)應(yīng)用的普及。千兆光纖收發(fā)器(又名光電轉(zhuǎn)換器)是一種快速以太網(wǎng),其數(shù)據(jù)傳輸速率達(dá)1Gb/s,仍采用CSMA/CD的訪問控制機(jī)制并與現(xiàn)有的以太網(wǎng)兼容,這樣,原來的快速以太網(wǎng)可以平滑地升級從而保護(hù)用戶原來的投資。目前,千兆以太網(wǎng)技術(shù)已成為新建網(wǎng)絡(luò)和改造的首選技術(shù),但其對綜合布線系統(tǒng)的性能要求也有所提高。ATM接口類型的網(wǎng)卡應(yīng)用于ATM(異步傳輸模式)光纖(或雙絞線)網(wǎng)絡(luò)中,它的傳輸速度達(dá)155Mb/s。不同接口的網(wǎng)絡(luò)適配器需要不同的網(wǎng)絡(luò)接入設(shè)備、通信設(shè)備和網(wǎng)絡(luò)交換機(jī)的支持,因而成本也不盡相同。可以利用多個(gè)網(wǎng)絡(luò)適配器安裝在一個(gè)計(jì)算節(jié)點(diǎn)上,構(gòu)建多通路通信,提高通信性能,也可以購買昂貴的機(jī)群專用網(wǎng)絡(luò),如InfiniBand和Myrinet等。

4.機(jī)群操作系統(tǒng)現(xiàn)代操作系統(tǒng)為用戶提供兩個(gè)基本功能。第一,使計(jì)算機(jī)硬件更容易使用。操作系統(tǒng)創(chuàng)造了與實(shí)際機(jī)器顯著不同的虛擬機(jī)。操作系統(tǒng)將計(jì)算機(jī)硬件的細(xì)節(jié)隱藏起來。第二,操作系統(tǒng)可讓用戶共享硬件資源。一個(gè)最重要的資源是處理器。多任務(wù)操作系統(tǒng)如Unix或WindowsNT為每個(gè)進(jìn)程分配要執(zhí)行的工作,為每個(gè)進(jìn)程分配內(nèi)存和系統(tǒng)資源。在一個(gè)進(jìn)程中,至少要分配一個(gè)執(zhí)行的線程或一個(gè)可執(zhí)行單元。操作系統(tǒng)用很短的時(shí)間運(yùn)行一個(gè)線程,然后轉(zhuǎn)向另一個(gè)線程,依次執(zhí)行各個(gè)線程。即使是單用戶系統(tǒng),多任務(wù)也非常有用,因?yàn)樗苁褂?jì)算機(jī)同時(shí)執(zhí)行多個(gè)任務(wù)。例如,一個(gè)用戶可以在編輯一個(gè)文件的同時(shí)讓另一個(gè)文件在后臺(tái)打印或讓一個(gè)編譯器編譯一個(gè)大的程序。每個(gè)程序都能執(zhí)行完,而對于用戶來說,所有的程序看起來好像是同時(shí)運(yùn)行的。除了以上提到的優(yōu)點(diǎn)之外,新概念的操作系統(tǒng)應(yīng)該支持在一個(gè)程序內(nèi)部對多線程進(jìn)行控制,這個(gè)概念給并行處理提供了進(jìn)程內(nèi)部的并行化機(jī)制。在下一代的操作系統(tǒng)內(nèi)核中,地址空間和線程的聯(lián)系被打破了,因此一個(gè)地址空間可以有多個(gè)正在執(zhí)行的線程。編寫一個(gè)控制多個(gè)線程的進(jìn)程叫做多線程編程。模塊化的概念是操作系統(tǒng)應(yīng)該具備的一個(gè)重要的技術(shù)。微軟的Windows、IBM公司的OS/2等操作系統(tǒng)都分成了一個(gè)個(gè)具體的部件,每一個(gè)部件都有一個(gè)定制的接口,每一個(gè)部件都通過任務(wù)間消息接口互相通信。最低的一層叫做微內(nèi)核層,它只提供最基本的OS服務(wù),如設(shè)備描述表轉(zhuǎn)換。例如,WindowsNT的微內(nèi)核下有一個(gè)硬件抽象層(HAL),可以使OS的其他部分與下層的硬件脫開關(guān)系。這種分層的OS提高了可移植的能力和基于微內(nèi)核的驅(qū)動(dòng)力。例如,文件服務(wù)可以由文件服務(wù)器提供,文件服務(wù)器就是建立在微內(nèi)核上的子系統(tǒng)。Unix有多個(gè)變體,如Sun公司的Solaris和IBM公司的AIX、惠普公司的UX,以及Linux等,它們常用于高性能微型計(jì)算機(jī)上。

Linux是一個(gè)類似于Unix的免費(fèi)的專業(yè)級操作系統(tǒng),Linux遵守公共許可協(xié)議GPL,可以共享其代碼。Linux的典型功能有:搶占式多任務(wù)、請求頁面虛擬內(nèi)存、多用戶和多處理器支持。Linux具有良好的可移植性,它幾乎可以運(yùn)行在所有的計(jì)算機(jī)平臺(tái)上,包括筆記本電腦、PC機(jī)、工作站甚至大型機(jī),它支持X86、MIPS、PowerPC、SPARC等主流系統(tǒng)架構(gòu),同時(shí)支持32位和64位操作系統(tǒng)。Linux的內(nèi)核可以被定制和裁剪,因而更適合構(gòu)建機(jī)群。Linux支持廣泛的通信協(xié)議,包括TCP/IP協(xié)議、IPX/SPX協(xié)議、AppleTalk協(xié)議、ISDN通信協(xié)議、PPP協(xié)議、SLIP協(xié)議,以及ATM通信協(xié)議。同時(shí),Linux還提供了良好的安全性、穩(wěn)定性,并且有豐富的應(yīng)用程序和開發(fā)工具支持,為構(gòu)建機(jī)群提供了必要的基礎(chǔ)條件。微軟的WindowsServer操作系統(tǒng)是搶占式、多任務(wù)、多用戶的操作系統(tǒng),支持多線程機(jī)制,最多支持8路處理器、32GB內(nèi)存、28個(gè)節(jié)點(diǎn)的機(jī)群。它具備元目錄服務(wù)支持、終端服務(wù)會(huì)話目錄、機(jī)群、熱添加(Hot-Add)內(nèi)存和NUMA非統(tǒng)一內(nèi)存訪問存取技術(shù),支持64位計(jì)算,提供企業(yè)級的功能,支持英特爾安騰Itanium處理器。WindowsComputeClusterServer2003集商用64位計(jì)算機(jī)的巨大威力、ActiveDirectory的易用性與安全性以及Windows操作系統(tǒng)于一身,提供了一個(gè)安全劃算的HPC解決方案。使用標(biāo)準(zhǔn)的Windows部署技術(shù),可輕松快捷地部署WindowsComputeClusterServer2003,而通過插入和連接節(jié)點(diǎn),在計(jì)算群集中可添加附加的計(jì)算節(jié)點(diǎn)。微軟消息傳遞接口完全兼容MPICH2。10.2機(jī)?群?數(shù)?據(jù)?庫數(shù)據(jù)庫系統(tǒng)的運(yùn)行需要計(jì)算機(jī)系統(tǒng)的支持,數(shù)據(jù)庫系統(tǒng)運(yùn)行的環(huán)境也隨著需要而逐漸改變,其經(jīng)歷了單機(jī)系統(tǒng)、分布式環(huán)境系統(tǒng)、并行系統(tǒng)支撐環(huán)境等階段。隨著計(jì)算機(jī)機(jī)群技術(shù)研究的深入和應(yīng)用的展開,由并行數(shù)據(jù)庫演變而來的計(jì)算機(jī)機(jī)群數(shù)據(jù)庫系統(tǒng)應(yīng)運(yùn)而生。工業(yè)界紛紛推出自己的機(jī)群數(shù)據(jù)庫系統(tǒng),如Oracle的并行數(shù)據(jù)庫模塊RAC、IBM的數(shù)據(jù)庫DB2的并行數(shù)據(jù)庫模塊PE。本節(jié)將介紹機(jī)群數(shù)據(jù)庫所涉及的關(guān)鍵技術(shù)。10.2.1機(jī)群數(shù)據(jù)庫的應(yīng)用背景隨著信息技術(shù)的飛速發(fā)展、互聯(lián)網(wǎng)業(yè)務(wù)的應(yīng)用和Internet應(yīng)用的迅速普及,人們從網(wǎng)絡(luò)獲取信息并且以Internet為工作環(huán)境成為日常生活不可缺少的一部分。電子商務(wù)、電子政務(wù)、網(wǎng)絡(luò)搜索、網(wǎng)絡(luò)在線交易和網(wǎng)絡(luò)游戲等業(yè)務(wù)方興未艾,進(jìn)而導(dǎo)致了互聯(lián)網(wǎng)上的信息呈爆炸式增長。存儲(chǔ)、管理和訪問這些信息變得越來越重要。一方面,信息資源的使用者希望快速、實(shí)時(shí)地獲取信息資源,并且對信息服務(wù)的質(zhì)量期望越來越高;另一方面,信息資源的提供者需要有效的技術(shù)來存儲(chǔ)、管理,并支持大規(guī)模突發(fā)性的峰值訪問,提高信息服務(wù)質(zhì)量,進(jìn)而抓住動(dòng)態(tài)變化的客戶群。所謂大規(guī)模突發(fā)性訪問,就是在基于Internet環(huán)境的信息訪問中,呈現(xiàn)對資源的大規(guī)模集中訪問時(shí)間段,以致被訪問的系統(tǒng)無法滿足用戶的要求;而系統(tǒng)在另一些時(shí)段卻趨于平靜,訪問量較小。例如門戶網(wǎng)站提供的免費(fèi)E-mail系統(tǒng)就是這樣一個(gè)應(yīng)用。一些門戶網(wǎng)站的E-mail系統(tǒng)注冊用戶有幾千萬甚至更多,在每天某幾個(gè)時(shí)間段內(nèi)會(huì)處于大規(guī)模峰值訪問狀態(tài),而其他時(shí)間段又比較空閑。突發(fā)性的峰值訪問使被訪問的系統(tǒng)的服務(wù)能力受到了挑戰(zhàn)。除了滿足峰值突發(fā)訪問外,基于網(wǎng)絡(luò)的信息服務(wù)系統(tǒng)還應(yīng)滿足如下需求。

1.海量數(shù)據(jù)存儲(chǔ)系統(tǒng)和數(shù)據(jù)挖掘面對著飛速發(fā)展的互聯(lián)網(wǎng)業(yè)務(wù),計(jì)算機(jī)系統(tǒng)的計(jì)算和應(yīng)用能力正在接受著無比巨大的考驗(yàn),在短短的幾年當(dāng)中,一些主流業(yè)務(wù)數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)量已經(jīng)從過去的幾GB擴(kuò)展到了目前的幾十TB甚至PB,而且這樣的業(yè)務(wù)數(shù)據(jù)還正在快速增長著。例如,搜索引擎公司每天都要從Internet上抓取海量信息,并且把這些信息分類、整理和存儲(chǔ),供互聯(lián)網(wǎng)用戶每天24h的訪問,這需要海量數(shù)據(jù)存儲(chǔ)系統(tǒng)。再如,一個(gè)集團(tuán)企業(yè)信息系統(tǒng)中的財(cái)務(wù)數(shù)據(jù)、客戶數(shù)據(jù)、物資數(shù)據(jù)、銷售數(shù)據(jù)、在線訂貨數(shù)據(jù)和生產(chǎn)數(shù)據(jù)等信息每天都在迅速增長,并且隨著企業(yè)集團(tuán)的兼并擴(kuò)張,分布在不同地區(qū)的下屬公司的個(gè)數(shù)越來越多、規(guī)模越來越大。累積多年的歷史信息已經(jīng)成為公司的寶貴資源,合理地挖掘這些信息以獲取有價(jià)值的知識,對集團(tuán)的決策和企業(yè)的業(yè)務(wù)將有很大的好處。

2.高可靠性電子商務(wù)、電子政務(wù)的數(shù)據(jù)中心作為一個(gè)在線的支撐核心部分,在關(guān)鍵業(yè)務(wù)上對系統(tǒng)的可靠性要求是非常高的。通常一個(gè)數(shù)據(jù)中心需要對其自己系統(tǒng)機(jī)房的可靠性進(jìn)行詳細(xì)的評估并針對這樣的評估制定相應(yīng)的可靠性策略。采用了傳統(tǒng)的單機(jī)方式或雙機(jī)熱備份的方式,不能在可靠性上提供完全的保證,并且如果采用傳統(tǒng)的雙機(jī)熱備份的方式,將會(huì)有大量的針對關(guān)鍵業(yè)務(wù)的主機(jī)服務(wù)器系統(tǒng)處于閑置狀態(tài),這顯然是對資源的極大浪費(fèi)。

3.高可擴(kuò)展性互聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)中心的建設(shè)是一個(gè)長期持續(xù)的過程,數(shù)據(jù)中心的工作方向也會(huì)隨著各種不同業(yè)務(wù)系統(tǒng)的相繼出臺(tái)而有所變動(dòng),必須根據(jù)業(yè)務(wù)情況分批次逐步構(gòu)建硬件環(huán)境。因?yàn)橛?jì)算機(jī)硬件發(fā)展的速度過快、更新?lián)Q代頻繁,一次投入的資金建設(shè),會(huì)有資金不足問題,也會(huì)因系統(tǒng)初期的過多投入而造成空閑資源的浪費(fèi)。因此,系統(tǒng)架構(gòu)的可擴(kuò)展性將成為數(shù)據(jù)中心系統(tǒng)建設(shè)的一個(gè)至關(guān)重要的問題,系統(tǒng)必須能夠在升級的過程中既不淘汰原有的硬件軟件系統(tǒng),又能良好地接入新的系統(tǒng)設(shè)備。

4.高性能價(jià)格比數(shù)據(jù)量的增長是無止境的,很難說哪一個(gè)巨型存儲(chǔ)設(shè)備可以容納全部信息。數(shù)據(jù)中心的建設(shè)在追求高性能和可擴(kuò)展性的同時(shí),還要考慮價(jià)格的因素,用低廉的設(shè)備構(gòu)建海量信息中心是一個(gè)實(shí)際問題。這方面已經(jīng)有成功的經(jīng)驗(yàn)可借鑒,大名鼎鼎的Google公司就是運(yùn)用幾十萬臺(tái)廉價(jià)的PC服務(wù)器、IDE硬盤構(gòu)建了世界上最優(yōu)秀的海量信息存儲(chǔ)系統(tǒng)。

5.高可管理性數(shù)據(jù)中心是一個(gè)提供信息服務(wù)的部門,而信息的管理是十分復(fù)雜的,因此一個(gè)具有強(qiáng)大的自我管理能力和自我協(xié)調(diào)能力的系統(tǒng)通常是數(shù)據(jù)中心的必要條件。目前大多數(shù)的數(shù)據(jù)中心的網(wǎng)絡(luò)布線和電源布線的整理往往需要整個(gè)信息中心所有員工花兩天以上的時(shí)間,這是對高可管理性強(qiáng)烈需求的一個(gè)重要原因。

6.低管理成本在數(shù)據(jù)中心的建設(shè)中,不僅要考慮到購進(jìn)系統(tǒng)設(shè)備的投資,還要考慮到管理這些購進(jìn)設(shè)備需要增加的投資。管理成本通常包括管理人員的工資和培訓(xùn)費(fèi)用以及管理制度的費(fèi)用等。目前很多數(shù)據(jù)中心中的服務(wù)器系統(tǒng)都零散地?cái)[放,因而難于管理,這就無形中提高了管理的成本。一些信息中心采用Unix小型機(jī)做服務(wù)器,而Unix小型機(jī)的管理成本是十分昂貴的,這就意味著需要增加大量的額外投資。針對基于Internet環(huán)境的信息系統(tǒng)的上述特性要求,人們在尋求有效的解決技術(shù)。機(jī)群技術(shù)以其高并發(fā)能力、高可擴(kuò)展性、高性價(jià)比、高可靠性、高可管理性等因素受到業(yè)界的青睞,機(jī)群數(shù)據(jù)庫系統(tǒng)也應(yīng)需而生。10.2.2網(wǎng)絡(luò)數(shù)據(jù)庫工作模式數(shù)據(jù)庫系統(tǒng)作為信息系統(tǒng)的海量數(shù)據(jù)管理者,必須配合其他應(yīng)用系統(tǒng)才能完成確定的應(yīng)用服務(wù)。傳統(tǒng)的小型應(yīng)用系統(tǒng)往往是數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和應(yīng)用邏輯系統(tǒng)三者集成到一臺(tái)服務(wù)器上,其性能比較低下因而不能滿足現(xiàn)實(shí)的需要。面向Internet的應(yīng)用系統(tǒng)把數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和應(yīng)用邏輯系統(tǒng)分別安放至不同的硬件設(shè)備上,增加了系統(tǒng)的并發(fā)性和靈活性。這種模型已經(jīng)成為當(dāng)今網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用的基本模式。網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用模式如圖10.4所示。外部世界由用戶和網(wǎng)絡(luò)構(gòu)成,應(yīng)用系統(tǒng)由交換機(jī)、應(yīng)用邏輯服務(wù)器、數(shù)據(jù)庫服務(wù)器以及數(shù)據(jù)庫構(gòu)成。所謂應(yīng)用邏輯服務(wù)器就是運(yùn)行各種應(yīng)用軟件系統(tǒng)的計(jì)算機(jī)。這些應(yīng)用可以是E-mail、域名服務(wù)、WWW服務(wù)和在線交易服務(wù)等,目前已經(jīng)采用機(jī)群架構(gòu)和負(fù)載均衡機(jī)制。數(shù)據(jù)庫服務(wù)器是運(yùn)行DBMS的計(jì)算機(jī),負(fù)責(zé)數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)管理、事務(wù)處理、數(shù)據(jù)庫備份、數(shù)據(jù)庫恢復(fù)等工作。數(shù)據(jù)庫是存儲(chǔ)在獨(dú)立介質(zhì)上的數(shù)據(jù)系統(tǒng),存儲(chǔ)數(shù)據(jù)庫的設(shè)備可以是單個(gè)磁盤、磁盤陣列和存儲(chǔ)區(qū)域網(wǎng)絡(luò)等等。網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用過程如下:外部世界的用戶通過Inertnet或Intranet訪問應(yīng)用系統(tǒng)的應(yīng)用邏輯服務(wù)器;應(yīng)用邏輯服務(wù)器識別用戶的應(yīng)用請求,把與數(shù)據(jù)請求相關(guān)的事務(wù)傳給數(shù)據(jù)庫服務(wù)器;數(shù)據(jù)庫服務(wù)器運(yùn)行事務(wù),被運(yùn)行的事務(wù)實(shí)現(xiàn)對數(shù)據(jù)庫的訪問,并把訪問的結(jié)果返回給應(yīng)用邏輯服務(wù)器;應(yīng)用邏輯服務(wù)器根據(jù)返回結(jié)果處理用戶請求,最后把請求結(jié)果返回給用戶。圖10.4網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用模式在這種模式下,數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)和應(yīng)用系統(tǒng)三者的硬件可以根據(jù)需求來動(dòng)態(tài)配置。當(dāng)網(wǎng)絡(luò)用戶數(shù)目過大時(shí),數(shù)據(jù)庫服務(wù)器將會(huì)變成系統(tǒng)的瓶頸,因?yàn)閿?shù)據(jù)庫服務(wù)器要運(yùn)行更多的并發(fā)事務(wù),可以通過增加應(yīng)用邏輯服務(wù)器的數(shù)目來增強(qiáng)大規(guī)模響應(yīng)的能力。要想增加數(shù)據(jù)庫系統(tǒng)的大規(guī)模處理能力,就需要改善數(shù)據(jù)庫服務(wù)器和數(shù)據(jù)庫存儲(chǔ)裝置的性能。下面介紹改善數(shù)據(jù)庫系統(tǒng)性能的方法。

1.提高單機(jī)處理性能隨著技術(shù)的發(fā)展,計(jì)算機(jī)解決問題的能力越來越強(qiáng),人們對計(jì)算機(jī)的依賴不斷增強(qiáng),對數(shù)據(jù)庫服務(wù)器的性能有了更高的要求。數(shù)據(jù)庫的性能分析表明,無論是對密集查詢還是大數(shù)據(jù)塊的查詢需求,內(nèi)存是系統(tǒng)的一大瓶頸。當(dāng)有數(shù)據(jù)庫查詢請求時(shí),處理器首先搜索處理器內(nèi)部的一級、二級Cache,如果其中沒有所需內(nèi)容時(shí)處理器則搜索內(nèi)存空間;如果內(nèi)存空間還沒有所需數(shù)據(jù),就開始在硬盤內(nèi)進(jìn)行搜索。如果內(nèi)存足夠大,可以較多地保存近期讀取的數(shù)據(jù),處理器就沒有必要到慢速的硬盤內(nèi)搜索了。通過對內(nèi)存進(jìn)行優(yōu)化可以提升數(shù)據(jù)庫處理速度。改進(jìn)的內(nèi)存方法有兩種,首先是提升內(nèi)存容量,盡可能多地保存“近期讀取數(shù)據(jù)”,提升處理器的命中率;其次是提升處理器訪問內(nèi)存的速度。

2.構(gòu)建機(jī)群系統(tǒng)根據(jù)上述分析,小型計(jì)算機(jī)似乎成為數(shù)據(jù)庫服務(wù)器的首選。那么,小型機(jī)是否是最佳解決方案呢?對小型機(jī)而言,大部分為64位架構(gòu),內(nèi)存尋址空間早已經(jīng)突破了4GB的限制,但是小型機(jī)通常采用共享內(nèi)存的方式,因此在擴(kuò)展性上遇到了極大的技術(shù)難題,或者說小型機(jī)當(dāng)CPU數(shù)較多,內(nèi)存較大的情況下,內(nèi)存訪問的性能會(huì)有所下降。對機(jī)群系統(tǒng)而言,以前的服務(wù)器都是32位架構(gòu),最大只有4GB的內(nèi)存尋址空間。但是隨著技術(shù)的發(fā)展,64位CPU架構(gòu)在2004年已經(jīng)成為主流技術(shù),所以現(xiàn)在的64位機(jī)群系統(tǒng)很適合數(shù)據(jù)庫的應(yīng)用。因而,小型機(jī)在早期數(shù)據(jù)庫系統(tǒng)應(yīng)用中具有很強(qiáng)的能力,但是隨著系統(tǒng)規(guī)模的擴(kuò)大,機(jī)群系統(tǒng)將呈現(xiàn)不可替代的趨勢,并且伴隨著機(jī)群系統(tǒng)節(jié)點(diǎn)機(jī)的64位尋址能力的成熟,機(jī)群系統(tǒng)已經(jīng)具備了一切承載數(shù)據(jù)庫系統(tǒng)的能力。由此可見,改善數(shù)據(jù)庫系統(tǒng)性能的最佳途徑就是構(gòu)建基于機(jī)群機(jī)制的數(shù)據(jù)庫服務(wù)器系統(tǒng)和構(gòu)建大容量、高速度的海量數(shù)據(jù)存儲(chǔ)裝置。10.2.3機(jī)群數(shù)據(jù)庫架構(gòu)目前,根據(jù)存儲(chǔ)設(shè)備配置的不同,機(jī)群數(shù)據(jù)庫架構(gòu)有兩種:一種是共享磁盤結(jié)構(gòu)(Shared-Disk),如圖10.5所示;另一種是無共享結(jié)構(gòu)(Shared-Nothing),如圖10.6所示。共享磁盤結(jié)構(gòu)是所有機(jī)群節(jié)點(diǎn)共享一個(gè)存儲(chǔ)裝置的結(jié)構(gòu),無共享磁盤結(jié)構(gòu)是每個(gè)機(jī)群節(jié)點(diǎn)有自己獨(dú)立的存儲(chǔ)裝置。OraccleRAC采用的是共享磁盤結(jié)構(gòu),而IBMDB2、MicrosoftSQLServer、NCRTeradata采用無共享結(jié)構(gòu)。兩種結(jié)構(gòu)各有特點(diǎn)。圖10.5共享磁盤結(jié)構(gòu)(Shared-Disk)圖10.6無共享結(jié)構(gòu)(Shared-Nothing)共享磁盤結(jié)構(gòu)的特點(diǎn)是:

(1)所有機(jī)群節(jié)點(diǎn)共享保存在共享存儲(chǔ)設(shè)備上的同一份數(shù)據(jù),每個(gè)數(shù)據(jù)可以被機(jī)群上任意節(jié)點(diǎn)獲?。?/p>

(2)數(shù)據(jù)庫運(yùn)行時(shí),同一數(shù)據(jù)可能在多個(gè)機(jī)群節(jié)點(diǎn)上存在多個(gè)副本,需要一致性維護(hù);

(3)只要一個(gè)機(jī)群節(jié)點(diǎn)在線,就可以訪問所有數(shù)據(jù);

(4)由于共享存儲(chǔ)裝置和網(wǎng)絡(luò)帶寬的限制,服務(wù)器機(jī)群的擴(kuò)展能力較弱;

(5)這種結(jié)構(gòu)具備良好的高可用性,常用于24X7的核心業(yè)務(wù)系統(tǒng)。無共享結(jié)構(gòu)的特點(diǎn)是:

(1)數(shù)據(jù)按照某種方法分割,每個(gè)機(jī)群節(jié)點(diǎn)保存一部分,通過分散數(shù)據(jù)的方法達(dá)到分散負(fù)載;

(2)數(shù)據(jù)分布在所有節(jié)點(diǎn)上,數(shù)據(jù)和機(jī)群節(jié)點(diǎn)密切相關(guān),被訪問的數(shù)據(jù)所對應(yīng)的節(jié)點(diǎn)必須正常運(yùn)行;

(3)每個(gè)機(jī)群節(jié)點(diǎn)都有獨(dú)立的存儲(chǔ)通道,數(shù)據(jù)相對獨(dú)立,具有較好的擴(kuò)展性;

(4)分散負(fù)載明確,更適用于大規(guī)模數(shù)據(jù)存儲(chǔ),如VLDB。10.2.4機(jī)群數(shù)據(jù)庫節(jié)點(diǎn)在機(jī)群環(huán)境下,需要根據(jù)實(shí)際應(yīng)用的規(guī)模來選擇機(jī)型及機(jī)群規(guī)模。機(jī)群節(jié)點(diǎn)選型的重要依據(jù)是國際上標(biāo)準(zhǔn)的評測數(shù)據(jù)。系統(tǒng)評測包括“評估”與“測試”兩種方法。評估是基于一些原始數(shù)據(jù)進(jìn)行邏輯推算,典型的有百萬指令每秒(MIPS)、理論峰值(TPC,TheoreticalPeek)和數(shù)據(jù)處理速度(PDR,ProcessingDataRate)。根據(jù)不同標(biāo)準(zhǔn)測試的不同應(yīng)用領(lǐng)域,結(jié)合數(shù)據(jù)庫系統(tǒng)的特點(diǎn),TPC比較適用于數(shù)據(jù)庫服務(wù)器性能測算。具體算法是:其中各參數(shù)的含義如下:

M:高峰時(shí)期每秒鐘的查詢訪問量,通常由Web服務(wù)器的計(jì)算來確定。???:一個(gè)查詢帶動(dòng)的SQL量,其經(jīng)驗(yàn)值一般為4~8。

M0:一個(gè)SQL相對于TPC事務(wù)的標(biāo)準(zhǔn)比。這個(gè)比值是一個(gè)綜合要素,根據(jù)應(yīng)用程序的優(yōu)化效果,具體業(yè)務(wù)查詢的難,易程度,通常由用戶方提供具體的數(shù)值。

M1:CPU占用率的建議值,一般狀況下為70%例如,假設(shè)高峰時(shí)期每秒鐘通過Web的訪問量為300次;一個(gè)查詢帶動(dòng)的SQL量為4;一個(gè)SQL相對于TPC事務(wù)的標(biāo)準(zhǔn)比為8;CPU占用率為70%,則TPC?=?300?×?60?×?4?×?8/0.7=822857通過分析數(shù)據(jù)庫的工作方式可以知道,數(shù)據(jù)庫系統(tǒng)中最耗費(fèi)資源的就是數(shù)據(jù)的檢索。當(dāng)前64位處理器芯片已經(jīng)進(jìn)入市場,實(shí)際應(yīng)用表明64位處理器的性能遠(yuǎn)遠(yuǎn)優(yōu)于32位處理器。在資金允許的情況下內(nèi)存配置越大越好。內(nèi)存與處理器的有效分配比例為:1顆CPU配備2GB內(nèi)存。10.2.5機(jī)群數(shù)據(jù)庫中間件技術(shù)開發(fā)機(jī)群中間件的關(guān)鍵技術(shù)在10.1節(jié)已經(jīng)介紹了,本節(jié)重點(diǎn)探討機(jī)群數(shù)據(jù)庫中間件所涉及的幾項(xiàng)關(guān)鍵技術(shù)。

1.機(jī)群全局信息目錄管理機(jī)群由多個(gè)數(shù)據(jù)庫服務(wù)器、網(wǎng)絡(luò)資源和存儲(chǔ)資源構(gòu)成,這些資源的描述信息必須被所有節(jié)點(diǎn)所應(yīng)用,所有節(jié)點(diǎn)上的資源信息之和構(gòu)成全局信息目錄。全局信息目錄存放的位置十分重要,一般會(huì)有如下幾種存儲(chǔ)方法。

1)集中存儲(chǔ)方法這種方法就是把全局信息目錄存放在一個(gè)公共存儲(chǔ)介質(zhì)上,整個(gè)機(jī)群只有一份全局信息目錄。每個(gè)節(jié)點(diǎn)把本地信息發(fā)往全局信息目錄,各節(jié)點(diǎn)僅負(fù)責(zé)更新全局信息目錄中屬于它自己的部分。當(dāng)節(jié)點(diǎn)需要獲得節(jié)點(diǎn)外部信息時(shí),就要通過網(wǎng)絡(luò)訪問公共存儲(chǔ)介質(zhì)。這種方法的優(yōu)點(diǎn)是只有一個(gè)副本,沒有多副本一致性的問題。缺點(diǎn)是獲取遠(yuǎn)程信息時(shí)延遲較大,從而會(huì)影響機(jī)群的運(yùn)行效率。

2)多副本存儲(chǔ)法這種方法是在共享介質(zhì)上存放一個(gè)全局信息目錄正本,每個(gè)節(jié)點(diǎn)上存放全局信息目錄的一個(gè)副本。如果機(jī)群節(jié)點(diǎn)的數(shù)目為P,那么機(jī)群中將存放1個(gè)正本和P-1個(gè)副本。更新全局信息目錄的方法有兩種:第一種方法是只能在正本上更新,行使更新任務(wù)的節(jié)點(diǎn)首先向其他節(jié)點(diǎn)發(fā)送“全局信息目錄”失效信息,然后更新全局信息目錄正本,最后把更新后的正本發(fā)往所有其他節(jié)點(diǎn)覆蓋所有全局信息目錄的副本;第二種方法是可以在副本上更新,但這時(shí)正本也會(huì)處于短暫的失效,這種手段實(shí)現(xiàn)復(fù)雜。Oracle機(jī)群采用改進(jìn)的第一種更新方法。

2.機(jī)群監(jiān)視機(jī)群數(shù)據(jù)庫節(jié)點(diǎn)的運(yùn)行狀態(tài)、健康狀況對機(jī)群的穩(wěn)定運(yùn)行十分重要。通過監(jiān)視技術(shù)可以及時(shí)發(fā)現(xiàn)節(jié)點(diǎn)的問題,并做出相應(yīng)處理。監(jiān)視技術(shù)分為硬件監(jiān)視器和軟件監(jiān)視器兩種,下面介紹軟件監(jiān)視器技術(shù)。軟件監(jiān)視器是一種簡單的進(jìn)程,負(fù)責(zé)監(jiān)視其他進(jìn)程的錯(cuò)誤。監(jiān)視的精度取決于被監(jiān)視的進(jìn)程是否察覺監(jiān)視器并按其任務(wù)進(jìn)行操作。最簡單的監(jiān)視器只查看應(yīng)用程序直到它最終崩潰為止,采取的行動(dòng)僅僅是再啟動(dòng)應(yīng)用程序而已。如果被監(jiān)視的進(jìn)程與監(jiān)視器進(jìn)程一同工作,效率會(huì)更高。軟件監(jiān)視器的工作機(jī)制有如下3種:

(1)心跳機(jī)制(heartbeat):由應(yīng)用程序定期性地向監(jiān)視器發(fā)送通知以表示它在工作,通知由“我在工作”構(gòu)成;在“請求—響應(yīng)”系統(tǒng)中,監(jiān)視器通過“你在工作嗎?”的消息,詢問應(yīng)用程序是否處于活動(dòng)狀態(tài)并等待其確認(rèn)。當(dāng)監(jiān)視器端等待時(shí)間超過某一特定時(shí)間,就假設(shè)應(yīng)用程序掛起或崩潰,然后殺掉并重新啟動(dòng)它。監(jiān)視器可以與被監(jiān)視的應(yīng)用程序運(yùn)行在同一個(gè)系統(tǒng)上也可以不在一個(gè)系統(tǒng)上運(yùn)行。

(2)空閑通知:由應(yīng)用程序發(fā)起的監(jiān)控機(jī)制。當(dāng)應(yīng)用程序空閑或不做有用的工作(服務(wù)器無客戶機(jī)請求)時(shí),則通知監(jiān)視器“我在空閑”。隨后監(jiān)視器采取預(yù)防行動(dòng),如簡單地重新啟動(dòng)應(yīng)用程序。

(3)誤差通知:當(dāng)應(yīng)用程序遇到一個(gè)不可克服的誤差時(shí),可以把問題通知監(jiān)視器并請求恢復(fù)行動(dòng)。就糾正問題來講,重新啟動(dòng)是足夠的,但監(jiān)視器可采取其他行動(dòng),如清除文件甚至重新引導(dǎo)整個(gè)系統(tǒng)等。機(jī)群的每個(gè)節(jié)點(diǎn)上都配置一些軟件監(jiān)視進(jìn)程,這些進(jìn)程監(jiān)視其他節(jié)點(diǎn)上的進(jìn)程運(yùn)行狀態(tài),它們周期地交換信息,通知各自的存在狀態(tài)。當(dāng)一個(gè)節(jié)點(diǎn)在一定的時(shí)間期限內(nèi),未能向其他節(jié)點(diǎn)傳輸“我在工作”的信息時(shí),其他節(jié)點(diǎn)就認(rèn)為該節(jié)點(diǎn)已經(jīng)出現(xiàn)故障,同時(shí)啟動(dòng)淘汰機(jī)制將它驅(qū)逐出機(jī)群。

3.分裂與重組機(jī)群中各個(gè)節(jié)點(diǎn)需要“心跳”機(jī)制來通報(bào)彼此存在狀態(tài),如果一些節(jié)點(diǎn)的“心跳”出現(xiàn)問題,但節(jié)點(diǎn)還在正常運(yùn)行,這時(shí),每個(gè)節(jié)點(diǎn)都得不到完整機(jī)群的心跳信息,只能獲得一部分節(jié)點(diǎn)的心跳信息,則機(jī)群節(jié)點(diǎn)被出心跳問題的節(jié)點(diǎn)分割為多個(gè)子集合,出現(xiàn)了“分裂”狀態(tài)。分裂后的機(jī)群必須進(jìn)行“重組”,選取一個(gè)子機(jī)群繼續(xù)履行機(jī)群的功能。這個(gè)過程就是分裂重組。分裂重組的方法一般有3種。

1)最大子集方法如果在某一時(shí)刻,機(jī)群分裂成m個(gè)子集合,最大子集合方法是選這m個(gè)子集中節(jié)點(diǎn)數(shù)目最多的子集作為繼續(xù)執(zhí)行機(jī)群服務(wù)的機(jī)群,而其他子集將被停機(jī),并交系統(tǒng)管理員進(jìn)行恢復(fù)處理。最大子集方法適合機(jī)群節(jié)點(diǎn)結(jié)構(gòu)相同、節(jié)點(diǎn)處理能力相同的機(jī)群,可以盡可能保留最大的處理能力。當(dāng)機(jī)群節(jié)點(diǎn)處理能力不均衡時(shí),不能保證所留子集是處理能力的最大者。

2)節(jié)點(diǎn)加權(quán)法這種方法就是對機(jī)群的每個(gè)節(jié)點(diǎn)按照其處理能力的大小分配一個(gè)權(quán)值,處理能力大的節(jié)點(diǎn)獲得較高的權(quán)值。當(dāng)分裂現(xiàn)象發(fā)生時(shí),每個(gè)子集計(jì)算自己所包括的節(jié)點(diǎn)的權(quán)值之和,權(quán)值和最大者繼承原機(jī)群的服務(wù)工作,其他子集將被停機(jī)處理。節(jié)點(diǎn)加權(quán)法適合節(jié)點(diǎn)處理能力不均衡的機(jī)群。

3)協(xié)商法機(jī)群初始時(shí)構(gòu)建知識庫和推理規(guī)則,當(dāng)發(fā)生分裂時(shí),各個(gè)子集運(yùn)用已有的知識規(guī)則,根據(jù)當(dāng)時(shí)的實(shí)際狀況,通過協(xié)商來確定繼承子集。這種方法的優(yōu)點(diǎn)是可以動(dòng)態(tài)地決定,保證所選方案符合應(yīng)用的最大利益。其缺點(diǎn)是知識庫、規(guī)則構(gòu)建復(fù)雜。OracleRAC采用的是投票法,這種方法是最大子集法的一種變形。

4.?dāng)?shù)據(jù)分布方法數(shù)據(jù)分布的目的是把一個(gè)數(shù)據(jù)庫對象均勻地分布到多個(gè)節(jié)點(diǎn)上,使得在查詢處理過程中系統(tǒng)的并行性能夠得到充分的發(fā)揮。數(shù)據(jù)分布有一維數(shù)據(jù)分布、多維數(shù)據(jù)分布和傳統(tǒng)物理存儲(chǔ)結(jié)構(gòu)并行化等并行數(shù)據(jù)庫的物理組織方法。這里僅僅介紹一維數(shù)據(jù)分布方法,用R表示需要分布的關(guān)系,|R|表示R的元組數(shù)。一維數(shù)據(jù)分布方法是最簡單的數(shù)據(jù)分布方法,其特點(diǎn)是:通過劃分關(guān)系的一個(gè)屬性的域值來劃分整個(gè)關(guān)系,得到一組子關(guān)系,然后在多節(jié)點(diǎn)之間分布這些子關(guān)系。目前已經(jīng)出現(xiàn)的一維數(shù)據(jù)分布方法主要包括Round-Robin、Hash、Range-Partition等。在下面的討論中,假定P是機(jī)群節(jié)點(diǎn)的個(gè)數(shù),編號為0,1,…,P?-?1,每個(gè)節(jié)點(diǎn)都有自己獨(dú)立的存儲(chǔ)裝置。

1)?Round-Robin分布方法設(shè)ri是關(guān)系R的第i個(gè)元組,Round-Robin分布方法把ri存儲(chǔ)到第(imodP)個(gè)節(jié)點(diǎn)上。如果關(guān)系R上的操作需要存取R的大量元組,則Round-Robin方法是分布R的最理想方法。但是,Round-Robin方法不能有效地支持具有低選擇性謂詞的查詢。這樣的查詢僅存取很少的元組,而Round-Robin方法卻要求所有的節(jié)點(diǎn)都啟動(dòng)工作,但很多處理機(jī)上并沒有查詢所需要的元組,結(jié)果降低了系統(tǒng)性能。

2)?Hash分布方法

Hash方法首先需要指定關(guān)系的一個(gè)屬性為劃分屬性,如屬性A,然后定義一個(gè)以劃分屬性A的值域V為定義域的函數(shù):H:V→{1,2,…,P},其中P是處理機(jī)的個(gè)數(shù)。這個(gè)函數(shù)稱為Hash函數(shù)。對于關(guān)系R的任意元組r,Hash分布方法把元組r存儲(chǔ)到第H(r[A])個(gè)處理機(jī)上,其中r[A]?表示元組r在屬性A上的值。

Hash方法既能有效地支持大數(shù)據(jù)量的存取操作,也能有效地支持在劃分屬性上具有低選擇性謂詞的數(shù)據(jù)操作。使用Hash方法,當(dāng)執(zhí)行在劃分屬性上具有低選擇性謂詞的數(shù)據(jù)操作時(shí),數(shù)據(jù)存取將被限定在一個(gè)或少數(shù)幾個(gè)節(jié)點(diǎn)上。Hash方法不能保證數(shù)據(jù)均勻地分布在多個(gè)處理機(jī)上。數(shù)據(jù)的聚集存儲(chǔ)是很多應(yīng)用所需要的。然而,Hash方法的目的是使數(shù)據(jù)隨機(jī)地分布在各處理機(jī)上,與聚集存儲(chǔ)恰恰相反。

3)?Range分布方法

Range分布方法首先指定關(guān)系R的一個(gè)屬性A(其值域?yàn)橛行蚣?為劃分屬性。然后,它把A的值域劃分為P個(gè)區(qū)間I0?=?[x0,x1],…,Ip-1?=?[xp,xp]。最后,將R劃分為P個(gè)子集合S1,…,Sp,其中,Si?=?{r?|?r∈R,r[A]∈Ii},Si分布到第i個(gè)節(jié)點(diǎn)上。Range分布方法不但可以有效地支持要求大數(shù)據(jù)量存取的查詢和在分布屬性上具有低選擇性謂詞的數(shù)據(jù)操作,也支持?jǐn)?shù)據(jù)的聚集存儲(chǔ)。Range分布方法可能引起兩個(gè)問題。第一個(gè)問題是數(shù)據(jù)在節(jié)點(diǎn)之間分布不均勻,在最壞情況下,關(guān)系中的所有數(shù)據(jù)可能都分布在同一個(gè)節(jié)點(diǎn)上;另一個(gè)問題是工作負(fù)載的不均勻,在最壞情況下,一個(gè)大數(shù)據(jù)量查詢的執(zhí)行可能集中在一個(gè)節(jié)點(diǎn)上。數(shù)據(jù)庫也可以從應(yīng)用的角度考慮分布,從應(yīng)用角度的分布一般有3種解決方案:垂直劃分、水平劃分和混合劃分技術(shù)。垂直劃分:表示按照應(yīng)用來劃分,如應(yīng)用1與應(yīng)用2是可以獨(dú)立出來完全不同的應(yīng)用,則把它獨(dú)立出來,劃分在兩個(gè)不同的數(shù)據(jù)庫服務(wù)器上,這樣就實(shí)現(xiàn)了垂直劃分。這種情況下,如果一個(gè)應(yīng)用故障,就不會(huì)影響到其他應(yīng)用。水平劃分:一般是數(shù)據(jù)量的劃分,如有一個(gè)關(guān)系,可以按照一定規(guī)則,把關(guān)系劃分成兩個(gè)子表,再分布在兩個(gè)不同的數(shù)據(jù)庫中,當(dāng)特定的用戶訪問數(shù)據(jù)庫的時(shí)候,根據(jù)規(guī)則就可以知道它在哪個(gè)數(shù)據(jù)庫中,然后訪問該數(shù)據(jù)庫即可。這種情況下,如果一個(gè)庫失效,受影響的只是這個(gè)庫存放的特定的用戶?;旌闲蛣澐郑合雀鶕?jù)業(yè)務(wù)來垂直劃分?jǐn)?shù)據(jù)庫,如果單個(gè)業(yè)務(wù)在單個(gè)數(shù)據(jù)庫中都不能承載,則可以考慮對這個(gè)應(yīng)用再水平劃分,把這個(gè)應(yīng)用劃分成多個(gè)數(shù)據(jù)庫。10.3Oracle機(jī)群數(shù)據(jù)庫簡介

Oracle機(jī)群數(shù)據(jù)庫又叫RAC(RealApplicationClusters),它于2001年伴隨著Oracle9.0.1一起發(fā)布,并在9.0.1版本的諸多新特性中最受矚目。RAC最早起源于老版本的OPS(OracleParallelServer),OPS/RAC設(shè)計(jì)初衷就是系統(tǒng)與應(yīng)用的高可用性。隨著OracleCluster技術(shù)的成熟,目前RAC幾乎能支持所有的Cluster機(jī)群系統(tǒng)。RAC可以實(shí)現(xiàn)多節(jié)點(diǎn)共享數(shù)據(jù)庫,并自動(dòng)并行處理及均分負(fù)載。當(dāng)一個(gè)節(jié)點(diǎn)故障時(shí)可以進(jìn)行容錯(cuò)和恢復(fù)處理,實(shí)現(xiàn)了節(jié)點(diǎn)的失敗切換(Failover),保證數(shù)據(jù)庫24X7的高可用性。RAC可以提供大規(guī)模數(shù)據(jù)存儲(chǔ)和并發(fā)訪問能力。因此,OracleRAC為Oracle數(shù)據(jù)庫提供了最高級別的可用性、可伸縮性和低成本計(jì)算能力。10.3.1RAC的應(yīng)用構(gòu)架

OracleRAC的應(yīng)用結(jié)構(gòu)分為5個(gè)層次,其應(yīng)用結(jié)構(gòu)如圖10.7所示。第(1)層是集中控制平臺(tái),該平臺(tái)是通過網(wǎng)絡(luò)和RAC互聯(lián)的前端機(jī),主要實(shí)現(xiàn)對RAC的統(tǒng)一管理和控制,如機(jī)群的配置、優(yōu)化、監(jiān)控系統(tǒng)界面等應(yīng)用功能。另一方面外部用戶通過互聯(lián)網(wǎng)絡(luò)訪問RAC。第(2)層是連接數(shù)據(jù)庫服務(wù)器機(jī)群的低延遲、具備容錯(cuò)機(jī)制的高速交換網(wǎng)絡(luò)。第(3)層是由多個(gè)數(shù)據(jù)庫服務(wù)器構(gòu)成的并發(fā)機(jī)群數(shù)據(jù)庫硬件的核心支撐環(huán)境。RAC通過第(2)和第(3)層構(gòu)建容錯(cuò)服務(wù)機(jī)制,保障系統(tǒng)的可靠運(yùn)行,實(shí)現(xiàn)無單點(diǎn)故障,即機(jī)群內(nèi)的一個(gè)節(jié)點(diǎn)發(fā)生故障,Oracle也可以繼續(xù)在其余的節(jié)點(diǎn)上運(yùn)行。如果需要增加機(jī)群的處理能力,則可通過在機(jī)群中加入新的節(jié)點(diǎn)來獲得。數(shù)據(jù)庫服務(wù)器可以從采用標(biāo)準(zhǔn)化商用組件的小規(guī)模低成本機(jī)群開始構(gòu)建,然后隨著業(yè)務(wù)規(guī)模逐步擴(kuò)大。第(4)、第(5)層構(gòu)建了RAC的共享存儲(chǔ)層,其中第(4)層是存儲(chǔ)區(qū)域網(wǎng)絡(luò)的高速網(wǎng)絡(luò)構(gòu)架,第(5)層是存儲(chǔ)區(qū)域網(wǎng)絡(luò)的可擴(kuò)展的大規(guī)模存儲(chǔ)介質(zhì)。圖10.7OracleRAC應(yīng)用結(jié)構(gòu)10.3.2RAC的軟硬件環(huán)境

1.硬件環(huán)境我們通過搭建一個(gè)高可用的RAC環(huán)境來介紹RAC硬件架構(gòu)。架構(gòu)圖如圖10.8所示。為了提高機(jī)群的可靠性,實(shí)現(xiàn)失敗冗余保護(hù),所用的網(wǎng)絡(luò)連接設(shè)備都是雙份的。環(huán)境由服務(wù)器環(huán)境、內(nèi)部網(wǎng)絡(luò)環(huán)境和存儲(chǔ)環(huán)境構(gòu)成。服務(wù)器環(huán)境:用兩臺(tái)主機(jī)構(gòu)建數(shù)據(jù)庫服務(wù)器機(jī)群。存儲(chǔ)環(huán)境:至少需要一個(gè)共享存儲(chǔ)與一臺(tái)光纖交換機(jī),搭建一個(gè)SAN存儲(chǔ)網(wǎng)絡(luò)。在實(shí)際的生產(chǎn)環(huán)境中,SAN網(wǎng)絡(luò)交換機(jī)最好成對出現(xiàn),以保障SAN環(huán)境的安全可靠性。內(nèi)部網(wǎng)絡(luò)環(huán)境:內(nèi)部網(wǎng)絡(luò)采用兩個(gè)網(wǎng)絡(luò)交換機(jī)把主機(jī)(數(shù)據(jù)庫服務(wù)器)互連,建立冗余容錯(cuò),以保障私有網(wǎng)絡(luò)的可靠性與失敗切換(Failover)。圖10.8ORACLERAC硬件結(jié)構(gòu)公共網(wǎng)絡(luò)環(huán)境:是外界訪問RAC數(shù)據(jù)庫服務(wù)器的通道。通常情況下,數(shù)據(jù)庫服務(wù)器都連接在一個(gè)或者兩個(gè)網(wǎng)絡(luò)交換機(jī)上,負(fù)責(zé)跟外界通信。如果有可能,外部網(wǎng)絡(luò)也可以連接到不同的網(wǎng)絡(luò)交換機(jī),保證外部網(wǎng)絡(luò)的可靠性與失敗切換(Failover)。以上的結(jié)構(gòu)中,每個(gè)數(shù)據(jù)庫服務(wù)器通過6塊網(wǎng)卡(A1~A6,B1~B6)分別連接到3個(gè)網(wǎng)絡(luò):

(1)外部網(wǎng)絡(luò)(PublicNetwork),負(fù)責(zé)承接來自外部世界的數(shù)據(jù)庫訪問請求以及信息互達(dá);

(2)內(nèi)部私有網(wǎng)絡(luò)(PrivateNetwork),用于機(jī)群內(nèi)部信息互聯(lián),實(shí)現(xiàn)機(jī)群控制與管理;

(3)存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN),用來存儲(chǔ)數(shù)據(jù)庫信息。提供冗余的網(wǎng)絡(luò)連接可以保證網(wǎng)絡(luò)的安全冗余以及失敗切換,同時(shí)可以通過負(fù)載均衡機(jī)制,提高機(jī)群的并發(fā)處理能力。網(wǎng)卡的失敗切換(Failover)可以通過HACMP類似的Cluster軟件來完成,也可以通過主機(jī)OS的保護(hù)機(jī)制(網(wǎng)卡綁定機(jī)制)來完成。冗余機(jī)制保障在主網(wǎng)卡或者主網(wǎng)絡(luò)故障的時(shí)候,實(shí)現(xiàn)自動(dòng)接管。

2.軟件環(huán)境

RAC環(huán)境支持需要4個(gè)軟件:操作系統(tǒng)、機(jī)群中間件、機(jī)群文件系統(tǒng)和數(shù)據(jù)庫系統(tǒng)軟件。

1)操作系統(tǒng)每個(gè)數(shù)據(jù)庫服務(wù)器節(jié)點(diǎn)上必須安裝同類型、同版本的操作系統(tǒng),包括擴(kuò)展補(bǔ)丁等。可以選用Linux或Windows機(jī)群系列,如RedhatEnterprise4。

2)機(jī)群中間件機(jī)群中間件是安裝在操作系統(tǒng)之上的一個(gè)軟件,其負(fù)責(zé)管理整個(gè)機(jī)群環(huán)境中的硬件資源,并為上層的RAC機(jī)群提供基礎(chǔ)服務(wù)。機(jī)群中間件把整個(gè)機(jī)群構(gòu)成一臺(tái)虛擬的計(jì)算機(jī),并驅(qū)動(dòng)其上資源。RAC是運(yùn)行機(jī)群中間件上的一個(gè)應(yīng)用。從Oracle10g開始,Oracle提供了一個(gè)完整的機(jī)群中間件產(chǎn)品OracleClusterware。它不僅可以支持OracleRAC,而且還提供API接口,能夠?yàn)槠渌浖峁〩A功能。

3)機(jī)群文件系統(tǒng)

OracleRAC的數(shù)據(jù)文件、聯(lián)機(jī)日志、控制文件、參數(shù)文件都必須放在共享存儲(chǔ)上,以保證所有節(jié)點(diǎn)都能訪問。這就需要對節(jié)點(diǎn)的訪問進(jìn)行并發(fā)控制。傳統(tǒng)的文件系統(tǒng)并不支持機(jī)群的這些功能,因而必須采用特殊的存儲(chǔ)策略,比如采用裸設(shè)備或機(jī)群文件系統(tǒng)。目前,Oracle提供了兩種存儲(chǔ)解決方案:OCFS和ASM。OCFS是Oracle的機(jī)群文件系統(tǒng),并且已經(jīng)開源給Linux社區(qū);而ASM除了具備機(jī)群文件系統(tǒng)功能,還自帶了卷管理器的功能;并且ASM的維護(hù)和數(shù)據(jù)庫維護(hù)非常類似,也是通過SQL語句完成的。

4)數(shù)據(jù)庫軟件

Oracle數(shù)據(jù)庫軟件有許多版本,建議選用Oracle10g以后的版本,如Oracle。10.3.3RAC的邏輯架構(gòu)

Oracle具有跨平臺(tái)特性,是一個(gè)可移植的數(shù)據(jù)庫,它在目前主流的平臺(tái)上都可以使用。從Oracle內(nèi)部的整體構(gòu)架上來看,Oracle在不同的平臺(tái)上是一樣的,其內(nèi)存結(jié)構(gòu)、后臺(tái)進(jìn)程(BackgroundProcess)、物理與邏輯結(jié)構(gòu)等都是統(tǒng)一的模式。Oracle把一系列物理文件,如數(shù)據(jù)文件(DataFile)、控制文件(ControlFile)、聯(lián)機(jī)日志(RedoLogFile)、參數(shù)文件(SpFile,RpFile)等物理結(jié)構(gòu)及與之對應(yīng)的邏輯結(jié)構(gòu)(如表空間、段、塊)等組成的集合,稱為數(shù)據(jù)庫。一個(gè)Oracle內(nèi)存結(jié)構(gòu)和若干后臺(tái)進(jìn)程被稱為一個(gè)數(shù)據(jù)庫實(shí)例(Instance),一個(gè)實(shí)例只能在一個(gè)數(shù)據(jù)庫上安裝或打開,其負(fù)責(zé)數(shù)據(jù)庫操作并與用戶交互。通常情況下,一個(gè)數(shù)據(jù)庫有一個(gè)實(shí)例,但是在機(jī)群數(shù)據(jù)庫RAC的情況下,一個(gè)數(shù)據(jù)庫可以有分布在多個(gè)數(shù)據(jù)庫服務(wù)器上的多個(gè)實(shí)例。

Oracle內(nèi)存結(jié)構(gòu)主要分為共亨內(nèi)存區(qū)和非共亨內(nèi)存區(qū)。共亨內(nèi)存區(qū)主要由SGA(SystemGlobalArea)組成,非共享內(nèi)存區(qū)由PGA(ProgramGlobalArea)構(gòu)成。Oracle共享內(nèi)存區(qū)由數(shù)據(jù)緩沖區(qū)和共享池構(gòu)成。PGA包括會(huì)話的信息以及排序區(qū)、HashJoin區(qū)。系統(tǒng)全局區(qū)SGA是內(nèi)存共享區(qū)域,包含Oracle的數(shù)據(jù)緩沖和控制結(jié)構(gòu)。其中的數(shù)據(jù)可以被Oracle的各個(gè)進(jìn)程公用。每個(gè)Oracle實(shí)例只能啟動(dòng)一個(gè)SGA,實(shí)例只能訪問自己的SGA區(qū)域,多個(gè)實(shí)例只能通過RAC的全局管理方式來訪問其他SGA。DatabasebuffersCache是數(shù)據(jù)庫中數(shù)據(jù)塊緩沖的地方,數(shù)據(jù)塊在內(nèi)存中就緩存在這里。在OLTP環(huán)境中,數(shù)據(jù)緩沖區(qū)是SGA中最大的緩沖區(qū),是數(shù)據(jù)庫性能高低的關(guān)鍵所在。RedoLogbuffer是為了加快日志寫進(jìn)程的速度而設(shè)立的緩沖區(qū),它提交很頻繁,所以一般不會(huì)很大。Sharedpool(共享池)是SGA中非常關(guān)鍵的內(nèi)存片段,Oracle可以自動(dòng)管理其大小。太小的共享池會(huì)降低性能,太大的共享池也將消耗大量CPU時(shí)間來管理。Oracle單實(shí)例結(jié)構(gòu)如圖10.9所示。

RAC有多個(gè)實(shí)例,每個(gè)數(shù)據(jù)塊可以在任何一個(gè)實(shí)例的SGA中都有拷貝,RAC知道這些拷貝的分布、版本、狀態(tài)。全局資源目錄GRD(GlobalResourceDirectory)就是這種信息的內(nèi)存區(qū)。每個(gè)RAC實(shí)例的SGA中增加了一個(gè)GRD部分,用以存放全局信息。GRD雖然位于SGA中,但是不像BufferCache或LogBuffer等SGA組件,有明確的參數(shù)來對應(yīng)。每個(gè)節(jié)點(diǎn)SGA中都只有部分GRD內(nèi)容,所有的節(jié)點(diǎn)合在一起才構(gòu)成完整的GRD。圖10.10是OracleRAC實(shí)例結(jié)構(gòu)。圖10.9Oracle單實(shí)例結(jié)構(gòu)圖10.10OracleRAC實(shí)例結(jié)構(gòu)圖10.10中主要進(jìn)程功能如下:

1.LMSn該進(jìn)程是CacheFusion的主要進(jìn)程,負(fù)責(zé)數(shù)據(jù)塊在實(shí)例間的傳遞,對應(yīng)的服務(wù)叫做GCS(GlobalCacheService),這種進(jìn)程的數(shù)量通過參數(shù)GCS_SERVER_PROCESSES來控制,缺省值是2個(gè),取值范圍為0~9。

2.LMD該進(jìn)程提供的功能是GlobalEnqueueService(GES)。具體來說,它負(fù)責(zé)在多個(gè)實(shí)例之間協(xié)調(diào)對數(shù)據(jù)塊的訪問順序,保證數(shù)據(jù)的一致性訪問。它與前面的LMSn進(jìn)程的GCS服務(wù)及GRD共同構(gòu)成RAC的核心功能CacheFusion。

3.LCK該進(jìn)程負(fù)責(zé)Non-CacheFusion資源的同步訪問,每個(gè)實(shí)例有一個(gè)LCK進(jìn)程。

4.LMON各個(gè)實(shí)例的LMON進(jìn)程定期進(jìn)行通信,以便檢查機(jī)群中各節(jié)點(diǎn)的健康狀態(tài)。當(dāng)某個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),負(fù)責(zé)機(jī)群重構(gòu)、GRD恢復(fù)等操作,它提供的服務(wù)叫做ClusterGroupServices(CGS)。LMON記錄應(yīng)用層各個(gè)節(jié)點(diǎn)的健康狀態(tài),節(jié)點(diǎn)的健康狀態(tài)是通過一個(gè)保存在GRD中的位圖(Bitmap)來記錄的,每個(gè)節(jié)點(diǎn)一位,0代表節(jié)點(diǎn)關(guān)閉,1代表節(jié)點(diǎn)正常運(yùn)行。各個(gè)節(jié)點(diǎn)間的LMON會(huì)相互通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論