專利名稱:存儲系統(tǒng)及多路徑管理方法
技術領域:
本發(fā)明涉及存儲系統(tǒng)及多路徑管理方法,尤其涉及兼容多種由不同廠商制造的存儲設備的存儲系統(tǒng)及多路徑管理方法。
背景技術:
隨著信息化技術的飛速發(fā)展,全球范圍內的數(shù)據量成幾何級的增長,數(shù)據及數(shù)據存儲的重要性不言而喻,對這些數(shù)據的管理也日趨復雜化,對數(shù)據的存儲及保護受到越來越多的重視,對數(shù)據存儲的應用呈現(xiàn)出如下四個新特點:第一,一個可用的數(shù)據存儲系統(tǒng)首先要具有的特點是卓越的可靠性和穩(wěn)定性。第二,技術的I/O體系成為新的性能瓶頸。最早發(fā)明計算機只是為了進行科學計算和分析,當時的計算機CPU的計算處理能力是制約計算機應用和發(fā)展的主要瓶頸;隨著后來計算機網絡化的不斷發(fā)展,計算機網絡之間的通訊開銷(如傳輸延遲、信號沖突檢測等)成為計算機在處理任務時花費時間最長的一個部分,這樣網絡傳輸速率成為新的技術瓶頸;隨著技術不斷的進步和發(fā)展,CPU處理能力和網絡傳輸速率都以得到較好的改善,克服了以上兩個技術瓶頸。但是目前,計算機主要的應用場景已經轉變成對海量數(shù)據的存取。由于受到計算機中的機械部件的限制,磁盤數(shù)據訪問時間平均每年僅僅只能提高6-12%,磁盤數(shù)據傳輸率也只能以每年22%左右的速度增長,而現(xiàn)代微處理器和內存對數(shù)據的處理能力正以平均每年增長45% 120%的速度高速增長,處理器、內存和磁盤之間的性能差距已經越來越大。根據Amdahl (阿姆達爾)定律,計算機系統(tǒng)性能的整體提高僅僅受限于計算機系統(tǒng)中最慢的部件,而與其它的部件無關。因此,數(shù)據存儲系統(tǒng)已經成為影響和決定計算機系統(tǒng)性能高低的新性能瓶頸,即所謂的計算機I/O瓶頸。第三,全天候數(shù)據訪問服務成大勢所趨。21世紀是Internet (英特網)的時代,Internet中存著在大量面向終端用戶的應用服務,例如電子商務、視頻播放和電子郵件等。這些Internet服務要求是24小時X 7天,甚至24小時X 365天的全天候訪問和存儲用戶數(shù)據。如果對這些數(shù)據的訪問在某一時間點出現(xiàn)故障,這會對用戶體驗帶來非常嚴重的影響。對服務提供商來說,這意味著損失大量用戶,對企業(yè)造成非常巨大的經濟損失。因此,這就要求現(xiàn)代網絡存儲系統(tǒng)要具備優(yōu)異的高可用性和極低的故障率。第四,存儲管理和維護要求自動化、智能化。以前大量地存儲管理和存儲設備維護工作基本上都是由人工完成,由于人類在信息活動中持續(xù)地制造出越來越多數(shù)字信息,同時各種新型服務也層出不窮,如流式多媒體、數(shù)字電視、IDCdnternet Data Center,互聯(lián)網數(shù)據中心)、動態(tài)服務器頁面(Active Server Page, ASP)、ERP (Enterprise ResourcePlanning,企業(yè)資源計劃)、數(shù)字影像、數(shù)據倉庫與挖掘和網頁搜索等,造成可用數(shù)據總量呈幾何級數(shù)增長。這些海量數(shù)據的產生使得現(xiàn)代存儲網絡不同于過去存儲網絡那樣易管理和維護,這也對存儲網絡管理維護人員的技術素質提出了更高的要求和目標,因管理不善而造成數(shù)據丟失的可能性大大增加。這就要求現(xiàn)代存儲系統(tǒng)具有易管理性和可維護性,最好是具有智能的自動管理和維護功能,減少人工管理的工作量,避免人為因素造成不必要的損失。可見,無論從事任何行業(yè),不管規(guī)模的大小,在任何地域,他們始終面臨著同樣的數(shù)據丟失風險。一旦存儲網絡在遭受諸如火災、水災、地震、戰(zhàn)爭或人為破壞等災難時,存儲網絡當中的存儲硬件、關鍵數(shù)據、操作系統(tǒng)和終端服務都會受到不同程度、甚至是毀滅性打擊造成存儲網絡全面癱瘓。企業(yè)要想能夠及時恢復正常業(yè)務,就需要在信息化建設中解決好信息容災問題。只有企業(yè)做好了充足的容災準備工作,當災難來臨之際,企業(yè)才能迅速從困境中走出,將自己的損失降到最低。近幾年來,隨著存儲技術的成熟和企業(yè)業(yè)務的不斷擴展,越來越多的企業(yè)認識到存儲網絡對自己的重要性,紛紛開始構建自己的存儲網絡,并購買了大量的存儲管理軟件,還有不少大型企業(yè)準備開始構建更加安全的異地容災和遠程備份存儲網絡。在存儲網絡中,存儲設備一直是整個系統(tǒng)當中最薄弱的環(huán)節(jié)。因此,有大量軟件糾錯技術和控制器硬件來提供各種各樣的保護功能,而且這些技術越來越完美??墒?,在目前的存儲網絡中又面臨一個新的難題。那就是當存儲網絡中連接存儲介質的控制器,甚至是存儲物理路徑(physical path)發(fā)生故障時,對于如何保證存儲網絡的正常運轉,傳統(tǒng)的軟件糾錯和硬件保護已無能為力。而I/O多路徑可以選用備選路徑使應用程序仍然可以訪問網絡存儲設備中的數(shù)據,而且通過一條及以上的物理路徑來訪問網絡存儲設備,可以使用容錯、流量負載平衡等多種I/O調度策略等方式,為網絡存儲應用提供更高的可用性和性能優(yōu)勢。國外已經有相對比較成熟的產品上市,不但價格不菲,而且不一定適合國內企業(yè)的存儲狀況。很多存儲設備廠商也會為某個特定的操作系統(tǒng)提供專用的多路徑管理方案,管理I/O請求,并相應的優(yōu)化存儲系統(tǒng),這些復雜的多路徑方案只是用于特定的存儲設備,而不能適用于其他的存儲系統(tǒng)。MPIO(多路徑輸入輸出)在系統(tǒng)層面對存儲提供支持,從而解決這一問題。但是國內的存儲網絡技術相對薄弱,成熟的產品幾乎沒有,因此自主開發(fā)一個I/O多路徑系統(tǒng)有很多好處。首先,量體定做,可以根據實際需求優(yōu)化系統(tǒng)性能。其次,使用自己開發(fā)的I/O多路徑系統(tǒng),對故障定位比較容易。最后,自主開發(fā)可以降低產品價格,增強產品的市場競爭力。在企業(yè)環(huán)境中,實現(xiàn)高可用性常用的幾種方法包括:第一,服務器集群(cluster)集群是通過多計算機互連和存儲設備的協(xié)同工作實現(xiàn)的,看似從一個單一的系統(tǒng)為用戶提供高可用性的應用程序。如果一個計算機系統(tǒng)停運或暫時不可用,最終用戶仍然可以通過將故障轉移到一個運行著的系統(tǒng)來訪問數(shù)據。集群的解決方案要求軟件允許系統(tǒng)間進行透明的故障轉移。如圖1所示,當服務器I的系統(tǒng)因為故障而不能正常運行時,用戶可以通過服務器2來完成具體的操作,對用戶來說整個系統(tǒng)仍然是正常的,并且可以通過交換機3正常地訪問存儲設備4。第二,RAID (獨立冗余磁盤陣列)實現(xiàn)存儲冗余獨立冗余磁盤陣列技術在1987年由加州大學伯克利分校提出,最初的研制目的是為了組合小的廉價磁盤來代替大的昂貴磁盤,以降低大批量數(shù)據存儲的費用,同時也希望采用冗余信息的方式,使得磁盤失效時不會使數(shù)據受損,從而開發(fā)出一定水平的數(shù)據保護技術。如圖2所示,當RAID組100中的某一磁盤(例如200)損壞時,服務器10可以通過對其它磁盤(例如300)的冗余操作,達到對數(shù)據的冗余保護功能。
第三,通過MPIO實現(xiàn)的存儲可用性多路徑輸入輸出使得一種系統(tǒng)具有使用多個I/O通道連接存儲設備的能力,是提供對硬件組成的單點錯誤進行容錯一種高可用性的解決方案。多路徑也能提供I/o流量的負載均衡,從而提高系統(tǒng)和應用程序的性能。多路徑解決方案,是通過使用物理路徑組件包括網卡,電纜和交換機等服務器和存儲設備之間的設備的冗余來實現(xiàn)故障轉移的。在一個或多個這些部件出現(xiàn)問題的時候應用程序能仍然傳送數(shù)據。容錯不是多路徑帶來的唯一的效果,MPIO軟件還能在服務器和存儲設備的多路徑間重新分配讀寫的負載,從而幫助去掉瓶頸并平衡負載。然而,盡管多路徑和RAID、群集技術都實現(xiàn)了高可用性和性能的改進,但它們不是等同的概念。RAID可以提供非常完美的容錯方案,但此時它僅僅是在保護硬盤,如果服務器和存儲設備之間只有一條鏈路,而此時這其中的一部分發(fā)生了故障,磁盤的冗余就不能保證數(shù)據的可靠性和完整性了。如果發(fā)生圖3所示的情況,那么不管采用何種RAID技術都無法保證數(shù)據的冗余保護。換句話說,當發(fā)生鏈路故障時,服務器10無法通過如圖2所示的對RAID組100中的磁盤(例如200、300)的冗余操作,達到對數(shù)據的冗余保護功能。同樣地,群集提供應用程序的高可用性而且可以通過MPIO的方式實現(xiàn),而MPIO提供存儲的高可用性而且不需要群集的方式。MPIO技術只是存儲網絡組件(例如電纜,適配器和轉換器)的冗余,這些組件在服務器和存儲設備中間的路徑上傳輸數(shù)據。多路徑方案控制這些冗余連接,這樣即使發(fā)生路徑故障也可以迅速以新路徑傳送讀/寫(I/O)請求。由于固定資源本身的高風險,當存儲資源固定在NAS (Network Attached Storage,網絡附屬存儲)和SAN(Storage Area Network,存儲區(qū)域網絡)時,MPIO解決方案的執(zhí)行對存儲管理員來說就尤其重要。傳統(tǒng)的MPIO解決方案如圖4所示。因此,苛待提出一種新穎的MPIO高可靠性技術方案,以便在不同存儲設備廠商生產的存儲設備的兼容性和最優(yōu)路徑選擇策略方面得到進一步的完善。
發(fā)明內容
本發(fā)明的目的在于,提供兼容多種由不同廠商制造的存儲設備的存儲系統(tǒng)及多路
徑管理方法。根據本發(fā)明的一個方面,提供了一種多路徑管理方法,應用于兼容多種存儲設備的存儲系統(tǒng)。該方法包括如下步驟:步驟A.通過多路徑驅動程序包注冊關于第三方驅動程序模塊的信息并建立兩者之間的通信;步驟B.當用戶應用程序執(zhí)行輸入輸出操作時,所述多路徑驅動程序包根據已注冊的第三方驅動程序模塊來判斷是調用第三方驅動程序模塊進行輸入輸出驅動處理,還是調用操作系統(tǒng)的通用輸入輸出驅動處理;以及步驟C.執(zhí)行輸入輸出驅動處理以進行相應的輸入輸出處理。優(yōu)選的,所述方法還包括如下步驟:當發(fā)現(xiàn)新的存儲設備加入所述存儲系統(tǒng)時,在系統(tǒng)注冊表中創(chuàng)建所述新加入的存儲設備,并將所述存儲設備的名稱、型號和制造廠商名稱發(fā)送給第三方驅動程序模塊進行注冊。優(yōu)選的,在所述步驟B中,根據由所述新加入的存儲設備引起的新路徑是否為已知的,來進行所述判斷。優(yōu)選的,當多個第三方驅動程序模塊的輸入輸出路徑驅動程序同時安裝在所述存儲系統(tǒng)中時,操作系統(tǒng)根據第三方驅動程序的上下文環(huán)境來判斷加載哪個第三方驅動程序。優(yōu)選的,根據僅故障轉移策略或輪詢機制策略為新加入的存儲設備選擇最優(yōu)路徑。根據本發(fā)明的另一方面,提供了一種存儲系統(tǒng),所述存儲系統(tǒng)包括至少一臺應用服務器、至少一臺控制服務器、以及多臺由不同廠商提供的性能不同的物理存儲設備,所述應用服務器安裝了用于實現(xiàn)上述多路徑管理方法的多路徑管理軟件,而所述控制服務器安裝了存儲設備管理軟件,所述應用服務器和所述控制服務器通過網際協(xié)議或者光纖信道進行連接及通信。相應地,本發(fā)明所取得的有益效果包括:廣泛的兼容性存儲相對獨立,用戶可自由選擇主機與數(shù)據庫類型。支持Windows、Linux、Unix、Solaris、VMware等主流操作系統(tǒng),支持Oracle、DB2、MS SQL、Sybase等主流數(shù)據庫。利用系統(tǒng)注冊表,可將不同廠商生產的不同品牌的存儲設備的名稱和型號進行注
ΠΠ
/ttr O簡化管理可快速地完成相關配置,提供易用的中文圖形化操作界面和自動化監(jiān)控系統(tǒng)。廣泛的可擴展性可平滑擴展持續(xù)數(shù)據保護與容災功能。路徑選擇策略的多樣化根據需要,提供了多種路徑選擇策略,從而實現(xiàn)了路徑選擇方面的最優(yōu)化實施。
本發(fā)明的特征、實施例和優(yōu)點,將參照附圖在以下詳細描述。圖1是根據現(xiàn)有技術中的服務器集群實現(xiàn)高可用性的示例;圖2是根據現(xiàn)有技術中的RAID實現(xiàn)存儲冗余的示例;圖3是示出了當發(fā)生鏈路故障時,現(xiàn)有技術中的RAID存儲系統(tǒng)無法對RAID組中的磁盤執(zhí)行冗余操作的示例;圖4是關于傳統(tǒng)的MPIO高可靠性解決方案的示例;圖5是關于根據本發(fā)明實施例的采用了兼容多種存儲設備的高性能MPIO解決方案的存儲系統(tǒng)的硬件配置的示意圖;圖6是描繪了根據本發(fā)明實施例的多路徑選擇功能的流程圖;以及圖7是描繪了根據本發(fā)明實施例的設置新路徑及綁定存儲設備和路徑的方法的流程圖。
具體實施例方式接下來,將結合附圖進行詳細描述本發(fā)明的實施例。只要可能,在整個附圖中,相同的附圖標記將指示相同的部件。實施例
硬件配置圖5是關于根據本發(fā)明實施例的采用了兼容多種存儲設備的高性能MPIO解決方案的存儲系統(tǒng)的硬件配置的示意圖。如圖5所示,存儲系統(tǒng)1000包括至少一臺客戶端或應用服務器(即,Iscsi發(fā)起端)2000、兩臺控制服務器3000、以及多臺由不同廠商提供的性能不同的物理存儲設備4000??蛻舳?000安裝根據本發(fā)明實施例的MPIO軟件,而控制服務器3000安裝根據本發(fā)明實施例的存儲設備管理軟件,兩者通過網際協(xié)議(IP)或者光纖信道(Fe)進行連接。如圖5所示,控制服務器3000的數(shù)目是兩臺。然而,本領域技術人員可以理解的是,根據需要,控制服務器3000的數(shù)目還可以是多于兩臺,本發(fā)明并不局限于此。此外,控制服務器3000管理在其后端連接的各個存儲設備4000,并為前端的應用服務器2000提供存儲空間。在根據本發(fā)明的實施例中,兩臺控制服務器3000同時管理相同的存儲設備4000,并同時把存儲設備4000的相同存儲空間提供給前端應用服務器2000,應用服務器2000通過根據本發(fā)明實施例的MPIO軟件把這兩個虛擬的存儲空間看成一個磁盤,這樣就保證了出現(xiàn)單點故障時,業(yè)務的不間斷性。軟件功能配置目前,視窗操作系統(tǒng)(Windows)包含了對多路徑I/O的支持,以便把具有多路徑的存儲設備(例如,物理磁盤)視為單個存儲設備(例如,物理磁盤)來管理,這依賴于被稱作DSM(Device-specific module,與設備相關模塊)的第三方驅動程序對多路徑I/O進行管理的細節(jié)。下面,將會參考圖6來詳細地說明根據本發(fā)明實施例的多路徑選擇功能的流程圖。在根據本發(fā)明第一實施例的MPIO體系結構中,MPIO驅動程序包和DSM模塊兩大部分通過相互通信來共同完成I/o多路徑功能。因此,DSM模塊可通過向MPIO驅動程序包注冊其詳細信息來建立它們之間的通信(步驟S601)。這樣MPIO驅動程序包就可以掌握DSM模塊的詳細信息。當用戶應用程序請求執(zhí)行I/O操作時,MPIO驅動程序包根據已注冊的DSM模塊來決定是應該調用第三方廠商的MPIO驅動進行I/O處理,還是調用操作系統(tǒng)的通用I/O驅動處理(步驟S602)。對于每個Windows內核模式或WDM(Windows Driver Model,視窗驅動程序模塊)驅動程序,不管用途如何,都要對外界顯示一個名字為DriverEntry的例程(步驟S603)。當1/0管理器裝入驅動程序時,它調用DriverEntry例程(步驟S604)。由此1/0管理器能夠定位DriverEntry例程,這是因為連接器用一個命令行開關聲明了DriverEntry地址。該例程為各種驅動程序數(shù)據結構分配內存空間和初始化,并為所有其它驅動程序組件準備好執(zhí)行環(huán)境。因此,DSM模塊的初始化和注冊都由DriverEntry例程來完成。例如,根據本發(fā)明第一實施例的軟件在DSM中注冊為EIM OSNSolution。根據本發(fā)明的第一實施例,當多個第三方廠商的1/0多路徑驅動同時安裝在操作系統(tǒng)中,操作系統(tǒng)的PnP (即插即用)管理器會根據DSM模塊上下文環(huán)境來決定加載某個DSM模塊。下面,參考圖7詳細地描述當發(fā)現(xiàn)新設備時如何設置新路徑及綁定存儲設備和路徑的方法。具體方法如下所示。
當例如適配器/PCI總線發(fā)現(xiàn)有新的存儲設備加入時(步驟S701:是),在系統(tǒng)注冊表中創(chuàng)建新加入的存儲設備,并把該設備發(fā)送給MPIO驅動(步驟S702)。接下來,判斷有無廠商認領該新加入的存儲設備(步驟S703)。當判斷結果為肯定時(步驟S703:是),則輪詢現(xiàn)有的DSM列表(步驟S704)。接下來,判斷由新加入的存儲設備引起的新路徑是否為已知的(步驟S705)。當判斷結果是肯定時(步驟S705:是),則創(chuàng)建虛擬設備(Pseudo device)(步驟S707)。當判斷結果是否定時(步驟S705:否),則將該新路徑分組到相同虛擬節(jié)點/設備下(進行邏輯分組路徑)。接下來,展示由操作系統(tǒng)發(fā)現(xiàn)的真實設備的虛擬設備。另一方面,當步驟S703中的判斷結果是否定時,詢問是否由操作系統(tǒng)認領該新加入的存儲設備(步驟S708)。當判斷結果是肯定時(步驟S708:是),則將默認DSM的ID與該存儲設備相關聯(lián)(步驟S709)并進行步驟S705中的判斷。否則,將該新加入的存儲設備設置成不由MSDSM來管理并不可訪問。另外,根據本發(fā)明的第一實施例,多路徑選擇包括如下兩種策略:策略一,僅故障轉移(FailOver Only)該策略一的優(yōu)點在于,可以對設置其中的任意一條路徑處于最優(yōu)路徑(PreferredPath)。當最優(yōu)路徑正常時,使用最優(yōu)路徑;當最優(yōu)路徑異常時,切換到其他路徑,如果此后最優(yōu)路徑恢復正常,切換回最優(yōu)路徑。此外,用戶還可在用戶界面上自己設定最優(yōu)路徑。例如,有關最優(yōu)路徑的切換會在I秒內完成。當然,這樣的最優(yōu)路徑的切換時間還可由用戶根據需要來相應地設置。策略二,輪詢機制(RoundRobin)該策略二的優(yōu)點在于,提供了兩種模式:每秒切換模式(Every Second)會每隔一秒切換一次當前路徑,實現(xiàn)輪詢;每個1/0切換模式(Every 1/0)會在每個1/0通過時切換當前路徑。用戶可以在界面根據當前的環(huán)境自己選擇適合的模式,使輪詢機制的效率最大化。盡管給出一些實施例,但本發(fā)明并不限于此。本領域技術人員基于本發(fā)明實施例的任何變形、修改,都不會背離本發(fā)明所限定的權利要求的范圍。
權利要求
1.一種多路徑管理方法,應用于兼容多種存儲設備的存儲系統(tǒng),其特征在于,所述方法包括如下步驟: 步驟A.通過多路徑驅動程序包注冊關于第三方驅動程序模塊的信息并建立兩者之間的通信; 步驟B.當用戶應用程序執(zhí)行輸入輸出操作時,所述多路徑驅動程序包根據已注冊的第三方驅動程序模塊來判斷是調用第三方驅動程序模塊進行輸入輸出驅動處理,還是調用操作系統(tǒng)的通用輸入輸出驅動處理;以及 步驟C.執(zhí)行輸入輸出驅動處理以進行相應的輸入輸出處理。
2.根據權利要求1所述的方法,其特征在于,所述方法還包括如下步驟: 當發(fā)現(xiàn)新的存儲設備加入所述存儲系統(tǒng)時,在系統(tǒng)注冊表中創(chuàng)建所述新加入的存儲設備,并將所述存儲設備的名稱、型號和制造廠商名稱發(fā)送給第三方驅動程序模塊進行注冊。
3.根據權利要求2所述的方法,其特征在于,在所述步驟B中,根據由所述新加入的存儲設備引起的新路徑是否為已知的,來進行所述判斷。
4.根據權利要求1-3中任一項所述的方法,其特征在于,當多個第三方驅動程序模塊的輸入輸出路徑驅動程序同時安裝在所述存儲系統(tǒng)中時,操作系統(tǒng)根據第三方驅動程序的上下文環(huán)境來判斷加載哪個第三方驅動程序。
5.根據權利要求4所述的方法,其特征在于,根據僅故障轉移策略或輪詢機制策略為新加入的存儲設備選擇最優(yōu)路徑。
6.一種存儲系統(tǒng),所述存儲系統(tǒng)包括至少一臺應用服務器、至少一臺控制服務器、以及多臺由不同廠商提供的性能不同的物理存儲設備,其特征在于, 所述應用服務器安裝了用于實現(xiàn)根據權利要求1-5中任一項所述的多路徑管理方法的多路徑管理軟件,而所述控制服務器安裝了存儲設備管理軟件,所述應用服務器和所述控制服務器通過網際協(xié)議或者光纖信道進行連接及通信。
全文摘要
公開了一種存儲系統(tǒng)及多路徑管理方法。該多路徑管理方法包括如下步驟步驟A.通過多路徑驅動程序包注冊關于第三方驅動程序模塊的信息并建立兩者之間的通信;步驟B.當用戶應用程序執(zhí)行輸入輸出操作時,所述多路徑驅動程序包根據已注冊的第三方驅動程序模塊來判斷是調用第三方驅動程序模塊進行輸入輸出驅動處理,還是調用操作系統(tǒng)的通用輸入輸出驅動處理;以及步驟C.執(zhí)行輸入輸出驅動處理以進行相應的輸入輸出處理。
文檔編號G06F13/16GK103186489SQ20111044538
公開日2013年7月3日 申請日期2011年12月27日 優(yōu)先權日2011年12月27日
發(fā)明者陳燁, 芮琨, 王田, 吳嗣宇 申請人:杭州信核數(shù)據科技有限公司