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