專利名稱:一種在冗余控制器環(huán)境下多路徑管理的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種磁盤陣列技術(shù),尤其涉及的是一種在冗余控制器環(huán)境 下實(shí)現(xiàn)多路徑輸入/輸出的方法,用于支持在冗余控制器環(huán)境下的多條路徑 實(shí)現(xiàn)負(fù)載均衡。
背景技術(shù):
用戶希望磁盤陣列具有高可靠性的同時(shí)也希望磁盤陣列具有更高的性 能。多路徑輸入/輸出管理為磁盤陣列提供了路徑保護(hù),當(dāng)一條路徑失效時(shí) 其它路徑仍然可以正常工作,不影響對^磁盤陣列的訪問。
為了能夠充分利用多條路徑的資源,將對磁盤陣列訪問的負(fù)載分?jǐn)偟?這多條路徑上,實(shí)現(xiàn)負(fù)載均衡的功能。當(dāng)多條路徑傳輸?shù)呢?fù)載都到達(dá)磁盤
陣列后,磁盤陣列端單個(gè)控制器的處理能力限制了對I/O指令的快速響應(yīng)。 因此在冗余控制器環(huán)境下考慮將到達(dá)磁盤陣列端的I/O指令分配到多個(gè)控
制器上處理。
如圖1所示,為現(xiàn)有技術(shù)的磁盤陣列訪問技術(shù),磁盤陣列101通常包 含一堆磁盤102和一個(gè)或者多個(gè)控制器103,每個(gè)控制器控制對每個(gè)磁盤的 訪問。每個(gè)控制器有單獨(dú)的通道104或者多個(gè)控制器共用多個(gè)通道,主機(jī) 105通過HBA ( Host Bus Adapter,主機(jī)總線適配器)卡106連接到這些通 道實(shí)現(xiàn)對》茲盤陣列中》茲盤的訪問。
以下以兩個(gè)控制及每個(gè)控制器使用單獨(dú)的通道且每個(gè)控制器包含兩個(gè) 通道為例進(jìn)4于介紹。
在不茲盤P車列中,RAID (Redundant Array of Independent Drives,獨(dú)立磁 盤冗余陣列)技術(shù)將多個(gè)物理磁盤組合成一個(gè)邏輯盤。主機(jī)通過連接到磁盤陣列的通道,實(shí)現(xiàn)對邏輯盤的訪問。RAID中使用條帶(stripe)為單位 對數(shù)據(jù)進(jìn)行管理,即磁盤上的數(shù)據(jù)被條帶化。在RAID5配置中,每個(gè)條帶 還包含條帶中所有扇區(qū)的校驗(yàn)數(shù)據(jù),如圖2所示。
所謂多路徑輸入/輸出,指從同 一主機(jī)連接多條路徑到磁盤陣列的多個(gè) 通道,.對相同邏輯盤進(jìn)行訪問。多路徑輸入/輸出實(shí)現(xiàn)路徑冗余、路徑恢復(fù) 和負(fù)載均衡三個(gè)功能。路徑冗余是指工作路徑失效后將所有的數(shù)據(jù)切換到 可用的備用路徑;路徑恢復(fù)是指當(dāng)工作路徑恢復(fù)后,它自動(dòng)重新承擔(dān)數(shù)據(jù) 傳輸任務(wù);負(fù)載均^f是指數(shù)據(jù)傳輸自動(dòng)在工作路徑中分擔(dān)。
現(xiàn)有技術(shù)中多路徑的連接方法有兩種,如圖3A和圖3B所示,其中, 一種是多條路徑連接到同一個(gè)控制器的多個(gè)通道,如圖3A所示;另一種是 多條路徑連接到兩個(gè)控制的多個(gè)通道,如圖3B所示。
以兩條路徑為例進(jìn)行說明,在圖3A中所示,多個(gè)磁盤配置為一個(gè)邏輯 盤30.1,主機(jī)105通過兩片HBA卡106連接到控制器A103A的兩個(gè)通道 104A訪問該邏輯盤。圖3B中,多個(gè)磁盤配置為一個(gè)邏輯盤301,主機(jī)通過 兩片HBA卡106連接到控制器A103A的一個(gè)通道104A和控制器B103B 的一個(gè)通道104B訪問該邏輯盤,與圖3A不同的是,控制器連接到主機(jī)的 連線即所采用的控制器和通道不同。
當(dāng)指令從主機(jī)端到達(dá)磁盤陣列端后,磁盤陣列端需要對指令進(jìn)行分解 后發(fā)送到各個(gè)磁盤,然后將指令執(zhí)行返回的結(jié)果合并,再將指令結(jié)果返回 給主機(jī)。針對RAID3 、 RAID5和RAID6等RAID級別時(shí),除了將指令分解 合并外還需要計(jì)算校驗(yàn)數(shù)據(jù),且將校驗(yàn)數(shù)據(jù)寫到磁盤。如果某塊磁盤發(fā)生 故障,導(dǎo)致不能正常讀寫數(shù)據(jù)時(shí),需要根據(jù)數(shù)據(jù)的校驗(yàn)信息計(jì)算完整的數(shù) 據(jù)。
因此指令到達(dá)^f茲盤陣列后控制器需要完成指令分解、合并、計(jì)算校驗(yàn) 等一系列工作后才能返回指令執(zhí)行結(jié)果。當(dāng)多條路徑連接到磁盤陣列時(shí), 在磁盤端能夠提供充分帶寬的情況下,控制器的處理能力就成為瓶頸。如果將多條路徑通過多個(gè)控制器連接,充分使用多個(gè)控制器的處理能力,將 能夠提升磁盤陣列的性能。
圖3B所示的連接方法中,如果使用傳統(tǒng)的方法實(shí)現(xiàn)負(fù)載均衡,將會(huì)引 起數(shù)據(jù)不一致。實(shí)現(xiàn)負(fù)載均衡的傳統(tǒng)方法是主機(jī)端根據(jù)一定的策略將產(chǎn)生
的i/o發(fā)送到兩條路徑,但不考慮磁盤陣列端對邏輯盤的操作情況,如輪循
方法(循環(huán)給兩條路徑發(fā)送1/0)。
當(dāng)在圖3B的連接方法中使用該方法訪問RAID5的邏輯盤時(shí),如果第 一條路徑訪問邏輯盤中條帶O中的前兩個(gè)扇區(qū)(D0和D1),第二條路徑訪 問邏輯盤中條帶0的后兩個(gè)扇區(qū)(D2和D3 ),且兩個(gè)訪問指令都是寫操作。 在當(dāng)前兩個(gè)扇區(qū)的數(shù)據(jù)到達(dá)后,磁盤陣列控制器將讀取后兩個(gè)扇區(qū)的數(shù)據(jù), 計(jì)算校驗(yàn)碼,然后將校驗(yàn)碼寫回硬盤(P0和Pl),當(dāng)后兩個(gè)扇區(qū)的數(shù)據(jù)到 達(dá)后將讀取前兩個(gè)扇區(qū)的數(shù)據(jù)計(jì)算校驗(yàn)碼。
在這種情況下,如果當(dāng)控制器A讀取后兩個(gè)扇區(qū)為前兩個(gè)扇區(qū)的數(shù)據(jù) 計(jì)算校驗(yàn)時(shí),控制器B也正讀取前兩個(gè)扇區(qū)的舊數(shù)據(jù)對后兩個(gè)扇區(qū)計(jì)算校 驗(yàn)碼,.結(jié)果最后導(dǎo)致校-險(xiǎn)碼不正確,該條帶數(shù)據(jù)出現(xiàn)不一致。因?yàn)榭刂破鰽 和控制器B單獨(dú)訪問邏輯盤,不能保證指令的順序執(zhí)行導(dǎo)致數(shù)據(jù)不一致或 者其它問題。
美國專利US6675268的專利文獻(xiàn)中提到了 一種方法解決多個(gè)主機(jī)通過 多個(gè)控制器上的多條路徑訪問相同邏輯盤的問題,該方法是通過變換邏輯 盤所屬的控制器(只有邏輯盤所屬的控制器可訪問該邏輯盤)來維護(hù)多個(gè) 主機(jī)對同 一個(gè)邏輯盤的訪問。將該方法使用到同 一個(gè)主機(jī)通過多個(gè)控制器 上的多條路徑訪問同一個(gè)邏輯盤,也能夠維護(hù)數(shù)據(jù)的一致性。但由于每一 個(gè)時(shí)刻只能有一個(gè)控制器在工作,該種方法并不能充分利用控制器資源, 提高性能。
因此,現(xiàn)有技術(shù)還有待于改進(jìn)和發(fā)展。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種在冗余控制器環(huán)境下多路徑管理的方法, 針對連接到兩個(gè)控制器上的多條路徑存在的問題,在冗余控制器環(huán)境下的
多路徑管理實(shí)現(xiàn)負(fù)載均衡功能,在主機(jī)端將對磁盤陣列訪問的I/O指令進(jìn)行 分配,'使磁盤陣列的兩個(gè)控制器能共同處理來自主機(jī)的1/0指令。 本發(fā)明的技術(shù)方案包括
一種在冗余控制器環(huán)境下多路徑管理的方法,其包括以下步驟
A、 根據(jù)獨(dú)立磁盤冗余陣列配置,以條帶或多個(gè)條帶為單位將邏輯盤分 配給多個(gè)控制器訪問;
B、 在主機(jī)端進(jìn)行訪問的時(shí)候根據(jù)各個(gè)控制器訪問的邏輯盤地址范圍將 訪問的1/0指令進(jìn)行分解,分配給連接到兩個(gè)控制器的路徑。
所述的方法,其中,所述步驟B中還包括磁盤陣列端告訴主機(jī)端如 何分配。
所述的方法,其中,所述步驟B還包括
Bl、所述主機(jī)端根據(jù)地址分配表和路徑對應(yīng)表,將產(chǎn)生的I/O指令根 據(jù)地址分配表,分解為多個(gè)I/0指令;
B2、將多個(gè)I/O指令分配到對應(yīng)的控制器所屬的路徑。
所述的方法,其中,所述主機(jī)端地址分配表用于存放主機(jī)端訪問設(shè)備 時(shí)的地址分配范圍,為一段連續(xù)的地址范圍;其對應(yīng)的控制器表示該地址 范圍所屬的控制器。
所述的方法,其中,所述主機(jī)端路徑分配表用于保存主機(jī)連接到磁盤 陣列的所有路徑分布到各個(gè)控制器的情況,其路徑表示磁盤陣列連接到主 機(jī)的路徑,其對應(yīng)的控制器表示該路徑連接的控制器。
所述的方法,其中,所述磁盤陣列端還設(shè)置有地址分配表用于存放磁 盤陣列訪問邏輯盤時(shí)地址的地址分配范圍,為一段連續(xù)的地址范圍,其對 應(yīng)的控制器表示該地址范圍所屬的控制器。所述的方法,其中,在所述主機(jī)端及所述^茲盤陣列端設(shè)置一多路徑管
理軟件,該多路徑管理軟件包括主機(jī)端管理部分和磁盤陣列端管理部分; 所述主機(jī)端管理部分運(yùn)4亍在主機(jī)端,用于主才幾端多^各徑管理;所述》茲盤陣 列端管理部分運(yùn)行在磁盤陣列端,用于磁盤陣列端多路徑管理。
所述的方法,其中,所述主機(jī)端管理部分還用于在主機(jī)端將主機(jī)識(shí)別 到的多個(gè)相同設(shè)備虛擬為單個(gè)設(shè)備提供給用戶訪問。
所述的方法,其中,所述^f茲盤陣列端管理部分還用于對邏輯盤訪問的 管理,當(dāng)有主機(jī)獨(dú)立連接到某一控制器對該邏輯盤進(jìn)行訪問時(shí),查詢正在 訪問該邏輯盤的主機(jī)是否與待訪問的主機(jī)使用相同的地址分配情況訪問該 邏輯盤,如果不是,則禁止該主機(jī)的訪問,直到正在訪問邏輯盤的主機(jī)訪 問結(jié)束后再允許該主才幾進(jìn)行訪問。
本發(fā)明所提供的 一 種在冗余控制器環(huán)境下多路徑管理的方法,用于實(shí) 現(xiàn)在冗余控制器環(huán)境下多路徑管理實(shí)現(xiàn)負(fù)載均衡的負(fù)載分配策略,該分配 策略可將I/0負(fù)載分配到兩個(gè)控制器上,實(shí)現(xiàn)同時(shí)對一個(gè)邏輯盤訪問,其實(shí) 現(xiàn)簡單,提高了數(shù)據(jù)訪問的性能。
圖l是現(xiàn)有技術(shù)的磁盤陣列與主機(jī)連接示意圖; 圖2是現(xiàn)有技術(shù)的RAID5配置示意圖3A和圖3B為現(xiàn)有技術(shù)的磁盤陣列與主機(jī)使用多條路徑連接圖4是本發(fā)明方法主機(jī)端地址分配表結(jié)構(gòu)圖5是本發(fā)明方法主機(jī)端路徑對應(yīng)表結(jié)構(gòu)圖6是本發(fā)明方法的磁盤陣列端地址分配表結(jié)構(gòu)圖7是本發(fā)明方法的多路徑管理軟件模塊圖。
具體實(shí)施方式
卞面結(jié)合附圖,將對本發(fā)明的在冗余控制器環(huán)境下多路徑管理實(shí)現(xiàn)負(fù) 載均衡的方法進(jìn)行詳細(xì)說明。
本發(fā)明在冗余控制器環(huán)境下多路徑管理的方法,在RAID配置中,數(shù) 據(jù)是以條帶為單位進(jìn)行處理的,而兩個(gè)控制器同時(shí)對同 一個(gè)條帶訪問會(huì)引 起數(shù)據(jù)不一致及其它問題。針對RAID配置的特點(diǎn),本發(fā)明提出以條帶或 者多個(gè)條帶為單位將邏輯盤中的各部分訪問權(quán)限分配到各個(gè)控制器,如現(xiàn) 有技術(shù)的圖2 (RAID5配置)中所示,將條帶0和條帶2分配給控制器A、 條帶1和條帶3分配給控制器B。在主機(jī)端進(jìn)行訪問的時(shí)候根據(jù)各個(gè)控制 器訪問的范圍將訪問的I/O指令進(jìn)行分解,分配給連接到兩個(gè)控制器的路 徑,而磁盤陣列端所做的工作是告訴主機(jī)端該如何分配。
本發(fā)明方法的提供地址分配策略包括,根據(jù)RAID的條帶分配和條帶 或者多個(gè)條帶為單位將邏輯盤分配給兩個(gè)控制器訪問。如圖2中所示三塊 磁盤通過RAID配置形成一個(gè)邏輯盤,作支設(shè)該邏輯盤容量為1GB,按照字 節(jié)進(jìn)行編址,即虛擬地址范圍為0-1023。將條帶0和條帶2分配給控制器 A訪問,條帶1和條帶3分配給控制器B訪問。
磁盤陣列端將邏輯盤的虛擬地址分配為四部分,對應(yīng)的分配結(jié)果為, 地址0-255和512-767屬于控制器A,地址256-511和768-1023屬于控制器 B,并將分配結(jié)果保存到磁盤陣列端地址分配表中。地址范圍分配給各個(gè)控 制器的比例可以參考各個(gè)控制器連接到主機(jī)的路徑數(shù),在這里可進(jìn)行平均 分配。分配工作是由主機(jī)端來完成的,不影響其它想通過單個(gè)控制器訪問 該邏輯盤的主機(jī)的訪問。
主機(jī)端連接到磁盤陣列訪問邏輯盤時(shí),主機(jī)端生成一個(gè)可訪問的設(shè)備。 在這里假設(shè)主機(jī)訪問該設(shè)備的虛擬地址剛好與磁盤陣列訪問邏輯盤的虛擬 地址對應(yīng)即主機(jī)端產(chǎn)生一個(gè)讀指令,起始地址為O,讀取長度為n,傳送到 磁盤陣列后,磁盤陣列形成訪問邏輯盤的讀指令,起始地址也為0,讀取長 度也為n。主機(jī)端根據(jù)磁盤陣列端的地址分配情況,也將訪問的地址范圍分配到 控制器A和控制器B。如果兩個(gè)控制器分別對應(yīng)一條或者多條路徑,則地
址0-255和512-767屬于控制器A;地址256-511和768-1023屬于控制器B。 在主機(jī)只連接到磁盤陣列單個(gè)控制器上路徑的情況下,地址0-1023都將屬 于該控制器。
本發(fā)明還提供I/0指令分解及發(fā)送策略,即主機(jī)端根據(jù)地址分配表和 路徑奸應(yīng)表,將產(chǎn)生的1/0根據(jù)地址分配表,分解為多個(gè)指令,如針對地址 218-649的訪問,將指令分解為三個(gè)指令,指令一為218-255,指令二為 256-511,指令三為512-649。而將指令一和指令三分配到控制器A所屬的 路徑,指令二分配到控制B所屬的路徑。而同一個(gè)控制器上的多條路徑間 的負(fù)栽分配則可以使用多種方式進(jìn)行。
上述的方案中,主才幾端地址分配表400存》文主4幾端訪問設(shè)備時(shí)的地址 分配范圍,如圖4所示,前一項(xiàng)地址范圍401表示一段連續(xù)的地址范圍, 該地址為主機(jī)訪問設(shè)備的地址;后一項(xiàng)控制器402表示該地址范圍所屬的 控制器。路徑分配表500保存主機(jī)連接到^f茲盤陣列的所有路徑分布到各個(gè) 控制器的情況,如圖5所示,前一項(xiàng)路徑501表示磁盤陣列連接到主機(jī)的 路徑,后一項(xiàng)控制器502表示該路徑連接的控制器。磁盤陣列端地址分配 表600存放》茲盤陣列訪問邏輯盤時(shí)地址的地址分配范圍,如圖6所示,前 一項(xiàng)地址范圍601表示一段連續(xù)的地址范圍,該地址為磁盤陣列訪問邏輯 盤的地址;后一項(xiàng)控制器602表示該地址范圍所屬的控制器。
本發(fā)明方法在冗余控制器環(huán)境下實(shí)現(xiàn)了多路徑管理負(fù)載的均衡,根據(jù) RAID配置中以條帶為單位進(jìn)行訪問的基礎(chǔ)上,根據(jù)RAID配置時(shí)的條帶分 配和條帶大小,將^茲盤陣列的邏輯盤分配給兩個(gè)控制器訪問。并將分配情 況提供給主機(jī)端,主機(jī)在向連接到磁盤陣列兩個(gè)控制器的路徑上傳輸指令 時(shí),該指令的訪問范圍就只包括該路徑傳輸它所屬控制器管理的部分。
如圖7所示,本發(fā)明的一種在冗余控制器環(huán)境下多路徑管理軟件700包含主機(jī)端和》茲盤陣列端兩部分,即主才幾端管理部分710和》茲盤陣列端管
理部分720。所述主機(jī)端管理部分710運(yùn)行在主才幾端,主要負(fù)責(zé)主機(jī)端多路 徑管理的工作,包含的表示結(jié)構(gòu)有主機(jī)端地址分配表400、主機(jī)端路徑對應(yīng) 表500。所述磁盤陣列端管理部分720運(yùn)行在磁盤陣列端,主要負(fù)責(zé)磁盤陣 列端多路徑管理的工作,包含的表示結(jié)構(gòu)有磁盤陣列端地址分配表600。
所述主機(jī)端管理部分的表示結(jié)構(gòu)中,主機(jī)端地址分配表400存放主機(jī) 端訪問設(shè)備時(shí)的地址分配范圍,前一項(xiàng)地址范圍401表示一段連續(xù)的地址 范圍,該地址為主機(jī)訪問設(shè)備的地址;后一項(xiàng)控制器402表示該地址范圍 所屬的控制器。路徑分配表500保存主機(jī)連接到^f茲盤陣列的所有路徑分布 到各個(gè)控制器的情況,前一項(xiàng)路徑501表示磁盤陣列連接到主機(jī)的路徑, 后一項(xiàng)控制器502表示該路徑連接的控制器。
所述主機(jī)端管理部分710的工作包括
a) 維護(hù)連接到該邏輯盤的多條路徑正常工作,在主機(jī)端虛擬為單個(gè)設(shè) 備提供給用戶訪問。
b) 向磁盤陣列端詢問該邏輯盤每個(gè)控制器對應(yīng)的地址范圍。并將磁盤 陣列訪問邏輯盤的地址范圍對應(yīng)到為主機(jī)端訪問該設(shè)備時(shí)的地址范圍,將 分配范圍保存到主機(jī)端地址分配表中。
c) 將主機(jī)端的1/0指令根據(jù)地址分配范圍,使用地址分配策略分解為 多個(gè)指令,并根據(jù)I/O發(fā)送策略將各個(gè)指令發(fā)送到對應(yīng)的路徑。
d) 根據(jù)I/O指令的分解情況,將分解的多個(gè)指令的執(zhí)行結(jié)果合并為一 個(gè)結(jié)果,作為1/0指令執(zhí)行的結(jié)果。
所述磁盤陣列端管理部分的表示結(jié)構(gòu)中,磁盤陣列端地址分配表600 存放;茲盤陣列訪問邏輯盤時(shí)地址的地址分配范圍,前一項(xiàng)地址范圍601表 示一段連續(xù)的地址范圍,該地址為磁盤陣列訪問邏輯盤的地址;后一項(xiàng)控 制器602表示該地址范圍所屬的控制器。
所述磁盤陣列端管理部分720的工作包括a) 向主機(jī)端提供各個(gè)邏輯盤的信息,主機(jī)端可以根據(jù)該信息判斷多條
路徑連接的設(shè)備為同一個(gè)邏輯盤。
b) 詢問i茲盤陣列中的邏輯盤管理部分,根據(jù)RAID配置中條帶的分布 和條帶的大小為兩個(gè)控制器分配訪問邏輯盤的地址范圍。
磁盤陣列端管理部分詢問磁盤陣列中的邏輯盤管理部分,根據(jù)RAID 配置中條帶的分布和條帶的大小為兩個(gè)控制器分配訪問邏輯盤的地址范 圍,并將分配結(jié)果反饋給主機(jī)。如果磁盤陣列中該邏輯盤已經(jīng)進(jìn)行了地址 分配,則直接將分配結(jié)果反饋給主機(jī)。
c) 負(fù)責(zé)對邏輯盤訪問的管理,當(dāng)有主機(jī)獨(dú)立連接到控制器A對該邏輯 巻進(jìn)行訪問時(shí),該邏輯盤不能通過多路徑訪問,反之亦然。
當(dāng)有主才幾對該邏輯盤訪問時(shí),查詢正在訪問該邏輯盤的主機(jī)是否與待 訪問的主機(jī)使用相同的地址分配情況訪問該邏輯盤,如果不是,則禁止該 主機(jī)的訪問。直到正在訪問邏輯盤的主機(jī)訪問結(jié)束后才允許該主機(jī)進(jìn)行訪 問。
上述本發(fā)明方法的主機(jī)端和磁盤陣列端地址模塊中使用的地址分配策 略為磁盤陣列端將邏輯盤進(jìn)行RAID配置時(shí)的條帶分布及條帶大小,將 地址分配到兩個(gè)控制器。分配的起始地址為條帶分布的起始地址,分配的 單位為條帶大小的倍數(shù)。主機(jī)端根據(jù)磁盤陣列端對邏輯盤的地址分配,將 訪問對應(yīng)該邏輯盤i殳備的虛擬地址也進(jìn)行對應(yīng)的分配。
例如訪問物理盤上相同的位置時(shí),》茲盤陣列端邏輯盤的虛擬地址為0, 主機(jī)端設(shè)備的虛擬地址也為0。該邏輯盤進(jìn)行RAID配置時(shí)的條帶大小為 256,則在磁盤陣列端將地址范圍0-255分配給控制器A訪問,在主機(jī)端也 將地址范圍0-255分配給控制器A。在磁盤陣列端將地址范圍256-511分配 給控制器B訪問,在主機(jī)端也將地址范圍256-511分配給控制器B。
綜上所述,本發(fā)明根據(jù)RAID配置的基本原理,將邏輯盤根據(jù)RAID 配置的條帶分布和條帶大小分配該兩個(gè)控制器訪問,在主機(jī)端實(shí)現(xiàn)負(fù)載分配工作,不影響其它主機(jī)使用單個(gè)控制器對該邏輯盤的訪問。本發(fā)明方法 實(shí)現(xiàn)的多路徑管理軟件可以在冗余控制器環(huán)境下提供負(fù)載均衡的功能,充 分利用了兩個(gè)控制器的資源,提高了主機(jī)使用多路徑方式訪問磁盤陣列的性能。
應(yīng)當(dāng)理解的是,上述針對本發(fā)明較佳實(shí)施例的描述較為詳細(xì),并不能 因此而認(rèn)為是對本發(fā)明專利保護(hù)范圍的限制,本發(fā)明的專利保護(hù)范圍應(yīng)以 所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1、一種在冗余控制器環(huán)境下多路徑管理的方法,其包括以下步驟
2、 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B中還包括 磁盤陣列端告訴主^幾端如何分配。
3、 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述步驟B還包括 Bl、所述主機(jī)端根據(jù)地址分配表和路徑對應(yīng)表,將產(chǎn)生的I/O指令根據(jù)地址分配表,分解為多個(gè)I/0指令;B2、將多個(gè)I/O指令分配到對應(yīng)的控制器所屬的路徑。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述主機(jī)端地址分配 表用于存放主機(jī)端訪問設(shè)備時(shí)的地址分配范圍,為 一段連續(xù)的地址范圍; 其對應(yīng)的控制器表示該地址范圍所屬的控制器。
5、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述主機(jī)端路徑分配 表用于保存主機(jī)連接到磁盤陣列的所有路徑分布到各個(gè)控制器的情況,其 路徑表示磁盤陣列連接到主機(jī)的路徑,其對應(yīng)的控制器表示該路徑連接的控制器。
6、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述磁盤陣列端還設(shè) 置有地址分配表用于存放磁盤陣列訪問邏輯盤時(shí)地址的地址分配范圍,為 一段連續(xù)的地址范圍,其對應(yīng)的控制器表示該地址范圍所屬的控制器。
7、 根據(jù)權(quán)利要求4、 5或6所述的方法,其特征在于,在所述主機(jī) 端及所述磁盤陣列端設(shè)置一多路徑管理軟件,該多路徑管理軟件包括主 機(jī)端管理部分和磁盤陣列端管理部分;所述主機(jī)端管理部分運(yùn)行在主機(jī)端, 用于主機(jī)端多路徑管理;所述磁盤陣列端管理部分運(yùn)行在磁盤陣列端,用 于磁盤陣列端多路徑管理。
8、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述主機(jī)端管理部分 還用于在主機(jī)端將主機(jī)識(shí)別到的多個(gè)相同設(shè)備虛擬為單個(gè)設(shè)備提供給用戶 訪問。 '
9、 根據(jù)權(quán)利要求7所述的方法,其特征在于,所述磁盤陣列端管理 部分還用于對邏輯盤訪問的管理,當(dāng)有主機(jī)獨(dú)立連接到某一控制器對該邏 輯盤進(jìn)行訪問時(shí),查詢正在訪問該邏輯盤的主機(jī)是否與待訪問的主機(jī)使用 相同的地址分配情況訪問該邏輯盤,如果不是,則禁止該主機(jī)的訪問,直 到正在訪問邏輯盤的主機(jī)訪問結(jié)束后再允許該主機(jī)進(jìn)行訪問。
全文摘要
本發(fā)明公開了一種在冗余控制器環(huán)境下多路徑管理的方法,用于磁盤陣列技術(shù),其包括以下步驟根據(jù)獨(dú)立磁盤冗余陣列配置,以條帶或多個(gè)條帶為單位將邏輯盤分配給多個(gè)控制器訪問;在主機(jī)端進(jìn)行訪問的時(shí)候根據(jù)各個(gè)控制器訪問的邏輯盤地址范圍將訪問的I/O指令進(jìn)行分解,分配給連接到兩個(gè)控制器的路徑。本發(fā)明方法用于實(shí)現(xiàn)在冗余控制器環(huán)境下多路徑管理實(shí)現(xiàn)負(fù)載均衡的負(fù)載分配策略,該分配策略可將I/O負(fù)載分配到兩個(gè)控制器上,實(shí)現(xiàn)同時(shí)對一個(gè)邏輯盤訪問,其實(shí)現(xiàn)簡單,提高了數(shù)據(jù)訪問的性能。
文檔編號(hào)G06F3/06GK101430636SQ20071012444
公開日2009年5月13日 申請日期2007年11月7日 優(yōu)先權(quán)日2007年11月7日
發(fā)明者吉永光, 周欣榮, 王洪斌, 陳韻霞 申請人:中興通訊股份有限公司