網(wǎng)絡存儲區(qū)域SAN管理論文

時間:2022-03-12 10:29:00

導語:網(wǎng)絡存儲區(qū)域SAN管理論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

網(wǎng)絡存儲區(qū)域SAN管理論文

摘要針對目前企業(yè)對于不同廠家的存儲設備無法有效的進行統(tǒng)一管理的現(xiàn)狀,本論文在設計方法上通過對不同廠家存儲設備的API接口進行分析和抽象,采用客戶端/服務器結(jié)構(gòu),利用JAVA語言在san架構(gòu)下編制可視化存儲管理軟件,從而生成一個新的通用型的存儲設備接口來定義存儲設備的種種操作,進而實現(xiàn)在單一控制平臺上對不同廠家的存儲設備進行統(tǒng)一管理的目標。

關(guān)鍵詞存儲;軟件;異構(gòu)

20世紀90年代以來,隨著信息量的急劇增加以及多媒體在各個領(lǐng)域的廣泛應用,企業(yè)不斷購買存儲設備以滿足日益增長的數(shù)據(jù)儲存和管理的需要。數(shù)據(jù)以及信息的存儲日益成為決定企業(yè)命運的最主要因素之一。然而在企業(yè)花費巨資購買各個廠家存儲設備的時候,卻不得不面臨一個緊要的問題:來自各個廠家的信息存儲技術(shù)和設備共存,甚至是在同一企業(yè)的不同部門都存在著不同的信息存儲方案或是平臺,如此復雜的環(huán)境使得高效能、低成本經(jīng)濟的信息數(shù)據(jù)存儲管理變得很難順利的實現(xiàn)。該項目的目的就是為了創(chuàng)建一個集中、簡單、統(tǒng)一的管理軟件,方便的管理來自不同供應商的存儲設備。通過它,系統(tǒng)管理員將能夠統(tǒng)一規(guī)劃、分配SAN環(huán)境中的存儲空間,從而實現(xiàn)優(yōu)化資源利用,提高信息管理的效率。

研究的內(nèi)容主要包括兩大部分:客戶端軟件和服務器端軟件。客戶端軟件主要完成一個圖形化的操作界面,將采用Windows的界面風格,能夠支持菜單、工具條、狀態(tài)欄和詳細瀏覽區(qū)等界面元素。服務器端軟件主要完成對RAID(磁盤陣列)控制器的各種操作處理和監(jiān)控。

在此項研究中要解決的關(guān)鍵問題就是如何實現(xiàn)對SAN架構(gòu)下不同廠商的存儲設備的統(tǒng)一管理。采用的方法是,通過對各個廠家存儲設備的API接口進行分析和抽象,從而生成一個新的通用型的存儲設備接口來定義存儲設備的種種操作,新設備只要實現(xiàn)這個接口便能夠被支持和使用。

1應用該軟件的系統(tǒng)結(jié)構(gòu)

軟件采用客戶/服務器模式,系統(tǒng)結(jié)構(gòu)圖如圖1所示。

管理服務器通過Fibrechannel交換機和服務器、存儲系統(tǒng)連接。通過fabrechannel,管理服務器可以管理所有的存儲設備。系統(tǒng)采用請求/應答方式工作。客戶端負責圖形界面顯示和處理用戶輸入,然后將用戶戶命令轉(zhuǎn)化成請求發(fā)送給服務器,服務器接受/處理請求,最后返回結(jié)果。客戶端在圖形界面上顯示服務器處理結(jié)果。

2客戶端軟件的研制

客戶端軟件采用JAVA語言編寫,可以運行在任何支持JAVA2的平臺上。軟件的界面由菜單條、工具條、對象樹、對象列表和右鍵彈出菜單等組成。用戶可以在對象樹或?qū)ο罅斜碇羞x中某個具體對象(比如Raid控制器、通道、硬盤、邏輯盤、邏輯卷等),然后在菜單條、工具條或右鍵菜單中選取某個操作項,進行操作。

鑒于客戶端的設計采用的是常規(guī)界面的設計方法,以及本項目的創(chuàng)新集中在服務器端軟件,客戶端軟件的設計將不再更詳細說明。客戶端軟件界面如圖2。

3服務器端軟件的研制

管理服務器端采用Java編制,它主要負責對存儲設備的數(shù)據(jù)采集及控制,通過Java接口與客戶端通信。對于如何實現(xiàn)對不同廠商的存儲設備的管理,在軟件編制上我們通過對各廠家API接口的分析,在管理服務器端實現(xiàn)一個抽象的存儲設備管理接口,這個接口和設備無關(guān)。這個接口定義存儲設備的多種操作,新設備只要實現(xiàn)這個接口,管理服務器就能夠支持這種新設備。設計時采用面向?qū)ο蟮乃枷耄橄蟪鲆恍?shù)據(jù)結(jié)構(gòu)和方法的集合,從而構(gòu)成一個可以描述RAID控制器的類。對于不同類型的存儲設備,我們構(gòu)造出它的實

例,通過這個實例對存儲設備進行控制管理。設計時,我們?yōu)槊糠NRAID控制器定義一個名稱,并以該名稱為唯一關(guān)鍵字,該鏈表中保存著該軟件所支持的各類RAID控制器,該鏈表在服務器啟動時初始化。出于跨平臺的考慮,軟件開發(fā)中要嚴格符合POSIX標準,使之能夠運行于Linux、AIX、Solaris等主流操作系統(tǒng)上。

RAID類型鏈表結(jié)構(gòu):

typedefstruct{

head_thead;

charname[16];

longip;

intport;

charpassword[32];

pthread_mutex_tlock;

raidop_t*raidop;

receiver_t*receiver;

}raidtable_t;

當收到客戶端發(fā)出搜索當前在線的RAID控制器的指令后,程序會循環(huán)調(diào)用raid_list中每種RAID控制器,然后將得到的對應的操作函數(shù)執(zhí)行指令返回給客戶端。這樣客戶端就可以對特定的RAID控制器做特定的操作。

當服務器端程序啟動后,首先要初始化raid_list鏈表,將支持的RAID控制器的raidtable_t結(jié)構(gòu)插入這個鏈表。然后等待客戶端的指令。當軟件收到客戶端的搜索所有RAID控制器的指令后,它會循環(huán)調(diào)用raid_list中每種RAID控制器的搜索方法,然后將得到的結(jié)果返回給客戶端。當服務器收到其它針對某個RAID的指令的時候,它會根據(jù)參數(shù)中的RAID名稱等標示和操作類型在raid_list鏈表中搜索對應的操作函數(shù)執(zhí)行,將結(jié)果返回給客戶端。其運行過程如圖3。

對于來自客戶端的對于各種RAID命令的處理,由于Raid命令非常的多,而且不同Raid控制器對于同一命令的處理不盡相同,為了使得系統(tǒng)結(jié)構(gòu)清晰,并且能靈活地裁剪Raid命令,特設計了一系列的命令類,每一個命令類代表一種Raid操作,并且它們都繼承了同一個超類,這樣設計使得命令處理流程的高層都是一樣的,只是具體的操作由它們各自的方法來完成,這樣既提高了代碼的重用性,又把修改某個具體命令對系統(tǒng)的影響降到了最低。

如圖4所示,AbstractService類是服務器提供的服務的抽象,它里面最重要的方法就是exec,每一種具體的服務類必須實現(xiàn)該方法,以便完成該服務。出于擴展服務器端功能的考慮,比如服務器可能還要完成其他的服務(包括列節(jié)點的目錄、共享節(jié)點的目錄等在內(nèi)的節(jié)點服務),所以所有的Raid命令都繼承的是AbstractRaidService,該類進一步為所有Raid命令提供基本支持,比如每種命令產(chǎn)生的結(jié)果就在這個類中進行組裝。

4客戶端與服務器端通信協(xié)議

通過客戶端軟件,對于某個Raid控制器功能的所有數(shù)據(jù)就被準備好了,通過通信子系統(tǒng)與服務器端進行通信,服務器再與底層硬件層通信,最終可完成某個Raid控制器的功能。服務器和客戶端通信使用Java的java.io.InputObjectStream和java.io.OutputObjectStream類,直接在網(wǎng)絡上傳送java的Object對象。客戶端上傳的是Request類,服務器返回的是Response類。

5結(jié)論

存儲技術(shù)已經(jīng)成為提升企業(yè)競爭力的重要力量,存儲被譽為“信息時代的第二次革命”,存儲領(lǐng)域的各項研究已經(jīng)成為信息技術(shù)的前沿亮點。本項目的創(chuàng)新點在于邏輯上將不同供應商的存儲設備納入到統(tǒng)一的一個存儲虛擬池里,系統(tǒng)管理員實現(xiàn)對存儲空間的自由分配和應用。在研究方法上,創(chuàng)造性地把不同廠家的存儲應用接口進行抽象,形成一個“萬能”的接口(抽象出一個虛擬的Raid控制器類),以便完成對各種不同類型存儲設備的支持,也便于擴展。

參考文獻

[1]RobertSpalding(美).Storagenetworks:TheCompleteReference.電子工業(yè)出版社.05,2004.

[2]文武.存儲基礎網(wǎng)絡的發(fā)展趨勢、思考及建議:存儲在線07,2005.

[3]李莉,童小林.網(wǎng)絡互聯(lián)技術(shù)手冊(第四版).人民郵電出版社.10,2004.

[4]Tomclark(美)王東等.IPSAN權(quán)威指南:實現(xiàn)光纖通道和IPSAN的實用指南(第二版).中國電力出版社.08,2003