網(wǎng)絡(luò)存儲(chǔ)區(qū)域SAN管理論文
時(shí)間:2022-03-12 10:29:00
導(dǎo)語(yǔ):網(wǎng)絡(luò)存儲(chǔ)區(qū)域SAN管理論文一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
摘要針對(duì)目前企業(yè)對(duì)于不同廠家的存儲(chǔ)設(shè)備無(wú)法有效的進(jìn)行統(tǒng)一管理的現(xiàn)狀,本論文在設(shè)計(jì)方法上通過(guò)對(duì)不同廠家存儲(chǔ)設(shè)備的API接口進(jìn)行分析和抽象,采用客戶端/服務(wù)器結(jié)構(gòu),利用JAVA語(yǔ)言在san架構(gòu)下編制可視化存儲(chǔ)管理軟件,從而生成一個(gè)新的通用型的存儲(chǔ)設(shè)備接口來(lái)定義存儲(chǔ)設(shè)備的種種操作,進(jìn)而實(shí)現(xiàn)在單一控制平臺(tái)上對(duì)不同廠家的存儲(chǔ)設(shè)備進(jìn)行統(tǒng)一管理的目標(biāo)。
關(guān)鍵詞存儲(chǔ);軟件;異構(gòu)
20世紀(jì)90年代以來(lái),隨著信息量的急劇增加以及多媒體在各個(gè)領(lǐng)域的廣泛應(yīng)用,企業(yè)不斷購(gòu)買存儲(chǔ)設(shè)備以滿足日益增長(zhǎng)的數(shù)據(jù)儲(chǔ)存和管理的需要。數(shù)據(jù)以及信息的存儲(chǔ)日益成為決定企業(yè)命運(yùn)的最主要因素之一。然而在企業(yè)花費(fèi)巨資購(gòu)買各個(gè)廠家存儲(chǔ)設(shè)備的時(shí)候,卻不得不面臨一個(gè)緊要的問(wèn)題:來(lái)自各個(gè)廠家的信息存儲(chǔ)技術(shù)和設(shè)備共存,甚至是在同一企業(yè)的不同部門都存在著不同的信息存儲(chǔ)方案或是平臺(tái),如此復(fù)雜的環(huán)境使得高效能、低成本經(jīng)濟(jì)的信息數(shù)據(jù)存儲(chǔ)管理變得很難順利的實(shí)現(xiàn)。該項(xiàng)目的目的就是為了創(chuàng)建一個(gè)集中、簡(jiǎn)單、統(tǒng)一的管理軟件,方便的管理來(lái)自不同供應(yīng)商的存儲(chǔ)設(shè)備。通過(guò)它,系統(tǒng)管理員將能夠統(tǒng)一規(guī)劃、分配SAN環(huán)境中的存儲(chǔ)空間,從而實(shí)現(xiàn)優(yōu)化資源利用,提高信息管理的效率。
研究的內(nèi)容主要包括兩大部分:客戶端軟件和服務(wù)器端軟件??蛻舳塑浖饕瓿梢粋€(gè)圖形化的操作界面,將采用Windows的界面風(fēng)格,能夠支持菜單、工具條、狀態(tài)欄和詳細(xì)瀏覽區(qū)等界面元素。服務(wù)器端軟件主要完成對(duì)RAID(磁盤陣列)控制器的各種操作處理和監(jiān)控。
在此項(xiàng)研究中要解決的關(guān)鍵問(wèn)題就是如何實(shí)現(xiàn)對(duì)SAN架構(gòu)下不同廠商的存儲(chǔ)設(shè)備的統(tǒng)一管理。采用的方法是,通過(guò)對(duì)各個(gè)廠家存儲(chǔ)設(shè)備的API接口進(jìn)行分析和抽象,從而生成一個(gè)新的通用型的存儲(chǔ)設(shè)備接口來(lái)定義存儲(chǔ)設(shè)備的種種操作,新設(shè)備只要實(shí)現(xiàn)這個(gè)接口便能夠被支持和使用。
1應(yīng)用該軟件的系統(tǒng)結(jié)構(gòu)
軟件采用客戶/服務(wù)器模式,系統(tǒng)結(jié)構(gòu)圖如圖1所示。
管理服務(wù)器通過(guò)Fibrechannel交換機(jī)和服務(wù)器、存儲(chǔ)系統(tǒng)連接。通過(guò)fabrechannel,管理服務(wù)器可以管理所有的存儲(chǔ)設(shè)備。系統(tǒng)采用請(qǐng)求/應(yīng)答方式工作??蛻舳素?fù)責(zé)圖形界面顯示和處理用戶輸入,然后將用戶戶命令轉(zhuǎn)化成請(qǐng)求發(fā)送給服務(wù)器,服務(wù)器接受/處理請(qǐng)求,最后返回結(jié)果??蛻舳嗽趫D形界面上顯示服務(wù)器處理結(jié)果。
2客戶端軟件的研制
客戶端軟件采用JAVA語(yǔ)言編寫,可以運(yùn)行在任何支持JAVA2的平臺(tái)上。軟件的界面由菜單條、工具條、對(duì)象樹(shù)、對(duì)象列表和右鍵彈出菜單等組成。用戶可以在對(duì)象樹(shù)或?qū)ο罅斜碇羞x中某個(gè)具體對(duì)象(比如Raid控制器、通道、硬盤、邏輯盤、邏輯卷等),然后在菜單條、工具條或右鍵菜單中選取某個(gè)操作項(xiàng),進(jìn)行操作。
鑒于客戶端的設(shè)計(jì)采用的是常規(guī)界面的設(shè)計(jì)方法,以及本項(xiàng)目的創(chuàng)新集中在服務(wù)器端軟件,客戶端軟件的設(shè)計(jì)將不再更詳細(xì)說(shuō)明??蛻舳塑浖缑嫒鐖D2。
3服務(wù)器端軟件的研制
管理服務(wù)器端采用Java編制,它主要負(fù)責(zé)對(duì)存儲(chǔ)設(shè)備的數(shù)據(jù)采集及控制,通過(guò)Java接口與客戶端通信。對(duì)于如何實(shí)現(xiàn)對(duì)不同廠商的存儲(chǔ)設(shè)備的管理,在軟件編制上我們通過(guò)對(duì)各廠家API接口的分析,在管理服務(wù)器端實(shí)現(xiàn)一個(gè)抽象的存儲(chǔ)設(shè)備管理接口,這個(gè)接口和設(shè)備無(wú)關(guān)。這個(gè)接口定義存儲(chǔ)設(shè)備的多種操作,新設(shè)備只要實(shí)現(xiàn)這個(gè)接口,管理服務(wù)器就能夠支持這種新設(shè)備。設(shè)計(jì)時(shí)采用面向?qū)ο蟮乃枷耄橄蟪鲆恍?shù)據(jù)結(jié)構(gòu)和方法的集合,從而構(gòu)成一個(gè)可以描述RAID控制器的類。對(duì)于不同類型的存儲(chǔ)設(shè)備,我們構(gòu)造出它的實(shí)
例,通過(guò)這個(gè)實(shí)例對(duì)存儲(chǔ)設(shè)備進(jìn)行控制管理。設(shè)計(jì)時(shí),我們?yōu)槊糠NRAID控制器定義一個(gè)名稱,并以該名稱為唯一關(guān)鍵字,該鏈表中保存著該軟件所支持的各類RAID控制器,該鏈表在服務(wù)器啟動(dòng)時(shí)初始化。出于跨平臺(tái)的考慮,軟件開(kāi)發(fā)中要嚴(yán)格符合POSIX標(biāo)準(zhǔn),使之能夠運(yùn)行于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;
當(dāng)收到客戶端發(fā)出搜索當(dāng)前在線的RAID控制器的指令后,程序會(huì)循環(huán)調(diào)用raid_list中每種RAID控制器,然后將得到的對(duì)應(yīng)的操作函數(shù)執(zhí)行指令返回給客戶端。這樣客戶端就可以對(duì)特定的RAID控制器做特定的操作。
當(dāng)服務(wù)器端程序啟動(dòng)后,首先要初始化raid_list鏈表,將支持的RAID控制器的raidtable_t結(jié)構(gòu)插入這個(gè)鏈表。然后等待客戶端的指令。當(dāng)軟件收到客戶端的搜索所有RAID控制器的指令后,它會(huì)循環(huán)調(diào)用raid_list中每種RAID控制器的搜索方法,然后將得到的結(jié)果返回給客戶端。當(dāng)服務(wù)器收到其它針對(duì)某個(gè)RAID的指令的時(shí)候,它會(huì)根據(jù)參數(shù)中的RAID名稱等標(biāo)示和操作類型在raid_list鏈表中搜索對(duì)應(yīng)的操作函數(shù)執(zhí)行,將結(jié)果返回給客戶端。其運(yùn)行過(guò)程如圖3。
對(duì)于來(lái)自客戶端的對(duì)于各種RAID命令的處理,由于Raid命令非常的多,而且不同Raid控制器對(duì)于同一命令的處理不盡相同,為了使得系統(tǒng)結(jié)構(gòu)清晰,并且能靈活地裁剪Raid命令,特設(shè)計(jì)了一系列的命令類,每一個(gè)命令類代表一種Raid操作,并且它們都繼承了同一個(gè)超類,這樣設(shè)計(jì)使得命令處理流程的高層都是一樣的,只是具體的操作由它們各自的方法來(lái)完成,這樣既提高了代碼的重用性,又把修改某個(gè)具體命令對(duì)系統(tǒng)的影響降到了最低。
如圖4所示,AbstractService類是服務(wù)器提供的服務(wù)的抽象,它里面最重要的方法就是exec,每一種具體的服務(wù)類必須實(shí)現(xiàn)該方法,以便完成該服務(wù)。出于擴(kuò)展服務(wù)器端功能的考慮,比如服務(wù)器可能還要完成其他的服務(wù)(包括列節(jié)點(diǎn)的目錄、共享節(jié)點(diǎn)的目錄等在內(nèi)的節(jié)點(diǎn)服務(wù)),所以所有的Raid命令都繼承的是AbstractRaidService,該類進(jìn)一步為所有Raid命令提供基本支持,比如每種命令產(chǎn)生的結(jié)果就在這個(gè)類中進(jìn)行組裝。
4客戶端與服務(wù)器端通信協(xié)議
通過(guò)客戶端軟件,對(duì)于某個(gè)Raid控制器功能的所有數(shù)據(jù)就被準(zhǔn)備好了,通過(guò)通信子系統(tǒng)與服務(wù)器端進(jìn)行通信,服務(wù)器再與底層硬件層通信,最終可完成某個(gè)Raid控制器的功能。服務(wù)器和客戶端通信使用Java的java.io.InputObjectStream和java.io.OutputObjectStream類,直接在網(wǎng)絡(luò)上傳送java的Object對(duì)象。客戶端上傳的是Request類,服務(wù)器返回的是Response類。
5結(jié)論
存儲(chǔ)技術(shù)已經(jīng)成為提升企業(yè)競(jìng)爭(zhēng)力的重要力量,存儲(chǔ)被譽(yù)為“信息時(shí)代的第二次革命”,存儲(chǔ)領(lǐng)域的各項(xiàng)研究已經(jīng)成為信息技術(shù)的前沿亮點(diǎn)。本項(xiàng)目的創(chuàng)新點(diǎn)在于邏輯上將不同供應(yīng)商的存儲(chǔ)設(shè)備納入到統(tǒng)一的一個(gè)存儲(chǔ)虛擬池里,系統(tǒng)管理員實(shí)現(xiàn)對(duì)存儲(chǔ)空間的自由分配和應(yīng)用。在研究方法上,創(chuàng)造性地把不同廠家的存儲(chǔ)應(yīng)用接口進(jìn)行抽象,形成一個(gè)“萬(wàn)能”的接口(抽象出一個(gè)虛擬的Raid控制器類),以便完成對(duì)各種不同類型存儲(chǔ)設(shè)備的支持,也便于擴(kuò)展。
參考文獻(xiàn)
[1]RobertSpalding(美).Storagenetworks:TheCompleteReference.電子工業(yè)出版社.05,2004.
[2]文武.存儲(chǔ)基礎(chǔ)網(wǎng)絡(luò)的發(fā)展趨勢(shì)、思考及建議:存儲(chǔ)在線07,2005.
[3]李莉,童小林.網(wǎng)絡(luò)互聯(lián)技術(shù)手冊(cè)(第四版).人民郵電出版社.10,2004.
[4]Tomclark(美)王東等.IPSAN權(quán)威指南:實(shí)現(xiàn)光纖通道和IPSAN的實(shí)用指南(第二版).中國(guó)電力出版社.08,2003
- 上一篇:教育振興計(jì)劃
- 下一篇:商用寬帶技術(shù)研究論文