張守中 王 曉
(1、山東龍口91604 部隊(duì),山東 龍口 265700;2、遼寧大連91550 部隊(duì),遼寧 大連 116023)
隨著計(jì)算機(jī)互聯(lián)技術(shù)發(fā)展的日新月異,集群技術(shù)的應(yīng)用也越來(lái)越深入和廣泛,通過(guò)集群系統(tǒng)可以將多臺(tái)同構(gòu)或異構(gòu)的計(jì)算機(jī)連接起來(lái)協(xié)同完成特定的任務(wù),因此我們考慮利用基于集群技術(shù)的存儲(chǔ)通道MC 系統(tǒng)來(lái)實(shí)現(xiàn)數(shù)據(jù)的傳輸。
●技術(shù)性能定位在SMP 和標(biāo)準(zhǔn)網(wǎng)絡(luò)之間,帶寬100MB/s、延遲5s、開(kāi)銷(xiāo)0.5s;●高可靠性,提供自動(dòng)切換、錯(cuò)誤修復(fù)等支持。
●32位數(shù)據(jù)通道;●由硬件自動(dòng)實(shí)現(xiàn)對(duì)MC通道檢/糾錯(cuò)功能,提供消息無(wú)錯(cuò)到達(dá)檢測(cè)原語(yǔ),可以保證MC 系統(tǒng)信道具有10-16的傳輸出錯(cuò)率;●全部有硬件實(shí)現(xiàn)流控制,嚴(yán)格的消息順序控制,保證消息A 的傳輸錯(cuò)誤對(duì)正在傳輸?shù)南沒(méi)有任何影響;●MC上的節(jié)點(diǎn)互聯(lián),采用32位16入口單級(jí)交叉開(kāi)關(guān)結(jié)構(gòu),支持MC節(jié)點(diǎn)之間點(diǎn)到點(diǎn)、選播和廣播通信方式。
MC為一個(gè)基于標(biāo)準(zhǔn)PCI總線的分布共享存儲(chǔ)器方案。MC通過(guò)提供一個(gè)存儲(chǔ)器映射電路,實(shí)現(xiàn)源節(jié)點(diǎn)的一個(gè)虛擬存儲(chǔ)器(VM)頁(yè)面到目標(biāo)節(jié)點(diǎn)的一個(gè)物理存儲(chǔ)器(PM)頁(yè)面的寫(xiě)連接,而目標(biāo)節(jié)點(diǎn)通過(guò)本節(jié)點(diǎn)VM到PM的存儲(chǔ)器讀映射,完成數(shù)據(jù)的讀取,從而實(shí)現(xiàn)源節(jié)點(diǎn)一個(gè)只寫(xiě)VM頁(yè)面到目標(biāo)節(jié)點(diǎn)的一個(gè)只讀VM的連接。在MC上連接的所有計(jì)算機(jī)節(jié)點(diǎn)稱(chēng)之為簇節(jié)點(diǎn)。
圖1說(shuō)明MC簇中兩個(gè)簇節(jié)點(diǎn)之間虛擬存儲(chǔ)器空間的連接。在圖1中節(jié)點(diǎn)1虛頁(yè)A(只寫(xiě))與節(jié)點(diǎn)2的虛頁(yè)E連接(只讀);節(jié)點(diǎn)2的虛頁(yè)F(只寫(xiě))與節(jié)點(diǎn)1 的虛頁(yè)J 連接(只讀)。
2.2.1 節(jié)點(diǎn)1的虛頁(yè)A(只寫(xiě))與節(jié)點(diǎn)2的虛頁(yè)E連接(只讀)的情形
應(yīng)用程序通過(guò)系統(tǒng)調(diào)用,申請(qǐng)獲得MC頁(yè)C。
節(jié)點(diǎn)1 定義頁(yè)面C為只寫(xiě),它在節(jié)點(diǎn)1虛存空間中為A。節(jié)點(diǎn)1的存儲(chǔ)器虛實(shí)轉(zhuǎn)換將頁(yè)A對(duì)應(yīng)到節(jié)點(diǎn)1的發(fā)送窗,即頁(yè)B,這是一個(gè)I/O空間;頁(yè)B通過(guò)MC接口板上的PCT完成到MC頁(yè)面C的映射。
節(jié)點(diǎn)2 定義MC頁(yè)C為只讀,它在節(jié)點(diǎn)2虛存空間中為E。節(jié)點(diǎn)2的存儲(chǔ)器虛實(shí)轉(zhuǎn)換將頁(yè)E對(duì)應(yīng)到節(jié)點(diǎn)2的物理存儲(chǔ)器頁(yè)D,這是一個(gè)只讀頁(yè);頁(yè)C通過(guò)節(jié)點(diǎn)2的MC接口板上的PCT完成到MC頁(yè)面C 到節(jié)點(diǎn)2物理存儲(chǔ)器頁(yè)面D的映射,這個(gè)映射由節(jié)點(diǎn)2的PCT控制,由DMA通道完成映射。
節(jié)點(diǎn)1 對(duì)頁(yè)面A的寫(xiě)操作,經(jīng)過(guò)一段時(shí)間(約5 s),就可以出現(xiàn)在節(jié)點(diǎn)2的物理存儲(chǔ)器頁(yè)面D中。節(jié)點(diǎn)2 的應(yīng)用程序可以通過(guò)讀頁(yè)面E而取得節(jié)點(diǎn)1的數(shù)據(jù)。
節(jié)點(diǎn)2 的虛頁(yè)F(只寫(xiě))與節(jié)點(diǎn)1的虛頁(yè)J連接(只讀)的連接過(guò)程與此相似。
從程序使用MC連接的過(guò)程中可以看出,程序只能通過(guò)虛實(shí)地址轉(zhuǎn)換來(lái)訪問(wèn)MC空間,因此,程序的可靠性和安全性是有充分保證的。這種使用MC的可靠性和安全性是由系統(tǒng)的虛擬存儲(chǔ)器管理系統(tǒng)的保護(hù)機(jī)制和安全機(jī)制提供的。MC空間的使用與程序存儲(chǔ)器空間的使用具有類(lèi)似的步驟和相同的可靠性。
2.2.2 MC映射的一些可控制特性
為了便于程序設(shè)計(jì)控制,MC在定義存儲(chǔ)器映射時(shí)允許定義MC的以下一些控制位:
●發(fā)送位(只寫(xiě));●接收位(只讀);●廣播、選播或點(diǎn)到點(diǎn)方式定義;●本節(jié)點(diǎn)復(fù)制特性;●所有節(jié)點(diǎn)完成接收標(biāo)志;●寫(xiě)中斷
這些控制位在節(jié)點(diǎn)連接MC頁(yè)面時(shí)給予定義。
2.2.3 連接示例
圖2表示使用MC進(jìn)行廣播、選播或點(diǎn)到點(diǎn)通信方式的連接示例。數(shù)字1、2和3分別代表三個(gè)連接,即“連接1”、“連接2”和“連接3”。
圖2中的連接分別表示了下面連接示例:
連接1:具有寫(xiě)時(shí)中斷的單向點(diǎn)到點(diǎn)連接。由節(jié)點(diǎn)1 寫(xiě),節(jié)點(diǎn)3接收。
連接2:?jiǎn)蜗驈V播。由節(jié)點(diǎn)3寫(xiě),所有節(jié)點(diǎn)接收。
連接3:雙向選播。節(jié)點(diǎn)2和4寫(xiě),節(jié)點(diǎn)2和4接收。
從圖2中可以看出,連接是以MC空間為標(biāo)準(zhǔn)的,即使用同一塊MC空間的為同一個(gè)連接。
2.2.4 MC連接特性參數(shù)
MC是基于存儲(chǔ)器頁(yè)面的連接,因此它的連接以頁(yè)面為粒度。在Alpha系統(tǒng)中,頁(yè)面大小為8KB。
目前的每個(gè)MC簇通過(guò)MC可以建立64K個(gè)連接,由于每個(gè)連接的粒度為一個(gè)頁(yè)面(8KB),所以在一個(gè)MC簇中,可以使用的MC總空間最大為
64K×8KB=512MB
這也就是MC 目前能夠提供的最大簇通信空間。
圖3說(shuō)明MC連接中CPU、存儲(chǔ)器、I/O接口和MC通道之間的連接關(guān)系。其中MC卡是一塊占用一個(gè)PCI插槽的PCI卡,其輸出通道占用512MB只寫(xiě)PCI存儲(chǔ)器空間,輸入通道占用另外一個(gè)512MB的PCI存儲(chǔ)器空間。這兩個(gè)512MB可以在4GB的PCI存儲(chǔ)器空間中的任意位置。
2.3.1 節(jié)點(diǎn)1的CPU訪問(wèn)節(jié)點(diǎn)2的存儲(chǔ)器
節(jié)點(diǎn)1:
執(zhí)行一條存指令,指令地址在MC空間,被映射到MC發(fā)窗,MC的發(fā)窗為I/O空間,因此指令操作通過(guò)CPU的cache、Buffers和系統(tǒng)總線,進(jìn)入PCI總線。
PCI總線對(duì)寫(xiě)進(jìn)行譯碼,選中MC卡發(fā)送通道。
利用MC卡上的PCT信息對(duì)數(shù)據(jù)打包,形成MC 包。MC包由報(bào)頭、數(shù)據(jù)和包尾組成。報(bào)頭為目標(biāo)節(jié)點(diǎn)標(biāo)識(shí),包尾為32位的CRC校驗(yàn)數(shù)據(jù)。
送入MC網(wǎng)絡(luò)。
節(jié)點(diǎn)2:
MC卡接收MC網(wǎng)絡(luò)上來(lái)的數(shù)據(jù),對(duì)其進(jìn)行解包,去掉頭尾,得到數(shù)據(jù);
使用MC卡上的PCT信息,根據(jù)數(shù)據(jù)包地
與一般的I/O設(shè)備一樣,MC卡通過(guò)總線橋,將數(shù)據(jù)送入物理存儲(chǔ)器中。
2.3.2 節(jié)點(diǎn)2的I/O設(shè)備訪問(wèn)節(jié)點(diǎn)1的存儲(chǔ)器
PCI上的I/O設(shè)備可以象CPU一樣直接訪問(wèn)MC卡,稱(chēng)為I/O到MC直達(dá)。使用I/O到MC直達(dá),節(jié)點(diǎn)無(wú)須通過(guò)其它節(jié)點(diǎn)訪問(wèn)盤(pán),盤(pán)會(huì)主動(dòng)將數(shù)據(jù)送到最終需要的節(jié)點(diǎn)。
2.3.3 MC通信與cache數(shù)據(jù)的問(wèn)題
由節(jié)點(diǎn)1送到節(jié)點(diǎn)2存儲(chǔ)器單元中的數(shù)據(jù),允許節(jié)點(diǎn)2進(jìn)入cache。因?yàn)镈EC和Intel的CPU都支持這種外部數(shù)據(jù)到存儲(chǔ)器時(shí)的cache數(shù)據(jù)一致性校驗(yàn)。當(dāng)MC的接收通道通過(guò)總線橋?qū)?shù)據(jù)送入目標(biāo)節(jié)點(diǎn)存儲(chǔ)器時(shí),同時(shí)引起CPU中cache數(shù)據(jù)的一致性校驗(yàn)。
MC系統(tǒng)下軟件的結(jié)構(gòu)如圖4所示。
[1] 魯士文.計(jì)算機(jī)網(wǎng)絡(luò)原理與網(wǎng)絡(luò)技術(shù)[M].北京:機(jī)械工業(yè)出版社,1996.
[2] Andrew S.Tanenbaum.計(jì)算機(jī)網(wǎng)絡(luò)[M].清華大學(xué)出版社,1998.
[3] 許廣斌.基于linux的集群系統(tǒng)[J].2001.