亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多處理器存儲區(qū)域網(wǎng)絡(luò)中的虛擬化支持的制作方法

文檔序號:6456548閱讀:147來源:國知局
專利名稱:多處理器存儲區(qū)域網(wǎng)絡(luò)中的虛擬化支持的制作方法
多處理器存儲區(qū)域網(wǎng)絡(luò)中的虛擬化支持 相交申請的交叉引用本申請是2007年11月27日提交的Maurilio Cometto、 Jeevan Kamisetty、 Arindam Paul、 Varagur V. Chandrasekaran等人的題為"LOCK MANAGER ROTATION IN A MULTIPROCESSOR STORAGE AREA NETWORK"的美國專利申請No. XX/XXX, XXX (代理人案巻號No. CISC-P493)的部分繼續(xù)案,此處通過引用將該申請完全并入。技術(shù)領(lǐng)域本公開涉及存儲區(qū)域網(wǎng)絡(luò)。
背景技術(shù)
存儲區(qū)域網(wǎng)絡(luò)(SAN)是這樣的計(jì)算機(jī)系統(tǒng)其中,諸如獨(dú)立盤冗余 陣列(Redundant Array of Independent Disks, RAID)設(shè)備之類的大容量存 儲設(shè)備經(jīng)由高速網(wǎng)絡(luò)技術(shù)(而不是例如經(jīng)由系統(tǒng)總線)連接到一個(gè)或多個(gè) 中央處理器。隨著因特網(wǎng)的出現(xiàn),SAN越來越多地被用于存儲大量信息并 且對其的使用己經(jīng)有了指數(shù)的增長。存在兩種一般方式來實(shí)現(xiàn)SAN:集中式的和分散式的。集中式SAN 將多個(gè)主機(jī)捆綁到具有大量緩存和冗余電源的單個(gè)存儲系統(tǒng)中。圖1示出 了典型的集中式SAN。發(fā)起者(也稱為主機(jī))100、 102、 104與大容量存 儲設(shè)備106通信。另一方面,分散式SAN將多個(gè)大容量存儲設(shè)備與諸如交換機(jī)之類的 協(xié)調(diào)主機(jī)和這多個(gè)大容量存儲設(shè)備之間的存儲的集中式控制器相連接。圖 2示出了典型分布式SAN。這里,發(fā)起者200、 202、 204經(jīng)由交換機(jī)212 與包括若干個(gè)大容量存儲設(shè)備206、 208、 210的虛擬SAN通信。存在若干個(gè)可用于SAN內(nèi)的各種應(yīng)用,例如,巻管理(volumemanagement)應(yīng)用、數(shù)據(jù)復(fù)制應(yīng)用、數(shù)據(jù)遷移應(yīng)用、以及數(shù)據(jù)保護(hù)應(yīng)用, 等等。這些應(yīng)用或者是在主機(jī)方操作的,或者是在存儲裝置方操作的。圖3示出了典型SAN中的10命令的操作。命令300被從發(fā)起者302 發(fā)送到存儲裝置304。在此示例中,該命令可以是讀取請求。這樣,存儲 裝置304隨后向發(fā)起者302發(fā)回?cái)?shù)據(jù)項(xiàng)306、 308、 310。 一旦所有數(shù)據(jù)已 被發(fā)送,存儲裝置304就發(fā)回響應(yīng)消息312。在主機(jī)方操作的應(yīng)用能夠?qū)Υ鎯ρb置方隱藏操作的物理細(xì)節(jié)。類似 地,在存儲裝置方操作的應(yīng)用能夠?qū)χ鳈C(jī)方隱藏操作的物理細(xì)節(jié)。但是, 在任一種實(shí)現(xiàn)方式中,用戶經(jīng)常受惠于單個(gè)廠商。例如,如果用戶希望實(shí) 現(xiàn)主機(jī)方應(yīng)用,則任何利用該應(yīng)用的主機(jī)都必須來自分發(fā)了該主機(jī)方應(yīng)用 的廠商。同樣,如果用戶希望實(shí)現(xiàn)存儲裝置方應(yīng)用,則任何利用該應(yīng)用的 存儲裝置都必須來自分發(fā)了該存儲裝置方應(yīng)用的廠商。


圖1示出了典型的集中式SAN。圖2示出了典型的分布式SAN。圖3示出了典型SAN中的IO命令的操作。圖4示出了 SAN中執(zhí)行的命令的示例。圖4A示出了示例性的軟件棧。圖5示出了用于處置互鎖請求的示例性方法。圖6示出了用于處置互鎖請求的示例性裝置。圖7示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備處 處置幀的一種示例性方法。圖8示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備處 處置幀的另一種示例性方法。圖9示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備處 處置幀的另一種示例性方法。圖10示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備 處處置幀的另 一種示例性方法。的具有多個(gè)處理器或核心的設(shè)備 處處置幀的一種示例性裝置。圖12示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備 處處置幀的另一種示例性裝置。圖13示出了用于存儲區(qū)域網(wǎng)絡(luò)中交換級別負(fù)載平衡的示例性方法。圖14示出了用于存儲區(qū)域網(wǎng)絡(luò)中交換追趕的示例性方法。
具體實(shí)施方式
概述存儲區(qū)域網(wǎng)絡(luò)中對虛擬化的支持可利用多種技術(shù)來提供。在本發(fā)明的 一個(gè)實(shí)施例中,可通過判定設(shè)備接收到的輸入/輸出(10)是否為新的來提供交換級別負(fù)載平衡。如果特定的IO是新的,則可將該IO指派給特定的 數(shù)據(jù)路徑處理器并且可創(chuàng)建與該10和與該處理器相對應(yīng)的上下文。然 后,當(dāng)接收到與該10相對應(yīng)的事件時(shí),可將該事件轉(zhuǎn)發(fā)到被指派給該10 的處理器。示例性實(shí)施例在本申請中,闡述了許多具體細(xì)節(jié)以幫助全面理解本發(fā)明。但是,對 于本領(lǐng)域的技術(shù)人員來說顯而易見的是,沒有這些具體細(xì)節(jié)中的一些或全 部也可以實(shí)現(xiàn)本發(fā)明。在其他情況下,沒有詳細(xì)描述公知的過程步驟,以 避免模糊本發(fā)明。提供了一種方案,其中SAN應(yīng)用在分布式SAN環(huán)境中被移動(dòng)到交換 機(jī)。這使得應(yīng)用可以高效且有效地操作,而不考慮主機(jī)和存儲裝置的特定 廠商。它還提供了單個(gè)管理點(diǎn)。來自SAN中的主機(jī)和存儲裝置的輸入或去往這些主機(jī)或存儲裝置的 輸出被稱為SAN的交換,或者說流。交換通常是以輸入/輸出(10)來衡 量的。傳統(tǒng)上,每個(gè)輸入或輸出由主機(jī)發(fā)送并由存儲裝置端接,或者反 之。這是因?yàn)閷?huì)發(fā)送或解釋10的應(yīng)用位于主機(jī)或存儲裝置處。由于本 發(fā)明描述了將應(yīng)用移動(dòng)到交換機(jī),因交換機(jī)(或者位于主機(jī)和存儲裝置之間的某個(gè)其他設(shè)備)處被端接。應(yīng)當(dāng)注意,本文檔中各處使用的術(shù)語"存儲裝置"(storage)應(yīng)當(dāng)指單個(gè)存儲 設(shè)備或一組存儲設(shè)備。圖4示出了 SAN中執(zhí)行的命令的示例。與圖3類似,此圖中的命令是 讀取請求。但是,不是直接發(fā)生于發(fā)起者400和存儲裝置402之間的通 信,命令404必須首先在交換機(jī)406處被端接。交換機(jī)406隨后對命令執(zhí) 行一個(gè)或多個(gè)處理,然后生成由此產(chǎn)生的命令408以便傳輸?shù)酱鎯ρb置 402。對于在交換機(jī)406處端接的數(shù)據(jù)消息410、 412、 414來說也是如 此,其中在將數(shù)據(jù)416、 418、 420重放給發(fā)起者400前可對其執(zhí)行處理。在本發(fā)明的一個(gè)實(shí)施例中,可使用與標(biāo)準(zhǔn)交換機(jī)兼容的定制硬件.。這 種實(shí)施例使得無需修改交換機(jī)本身。該硬件可被稱為存儲服務(wù)模塊 (SSM),其可以是插入到交換機(jī)中的刀片并且包括硬件和軟件。其他實(shí) 施例也是可能的,其中使用了交換機(jī)本身或者使用了其他硬件和/或軟件。在本發(fā)明的一個(gè)實(shí)施例中,所使用的軟件可被分割成三個(gè)單獨(dú)的部 分。圖4A示出了示例性的軟件桟?;锇檐浖?PS)層450可包括要運(yùn)行 的下層應(yīng)用??刂坡窂教幚砥?CPP)層452可控制軟件和硬件。數(shù)據(jù)路 徑處理器(DPP)層454可以是執(zhí)行應(yīng)用進(jìn)程本身之處。每個(gè)DPP實(shí)質(zhì)上 表示多處理器或多核環(huán)境中的單個(gè)處理器或核心。一種用于在SAN內(nèi)通信的常見協(xié)議是小型計(jì)算系統(tǒng)接口 (SCSI)。 主機(jī)可通過使用光纖信道(FC)交換技術(shù)來經(jīng)由SCSI以高速通信。近來 的發(fā)展已經(jīng)使得這種通信可以利用10Gb/s FC或10Gig以太網(wǎng)標(biāo)準(zhǔn)以高達(dá) 10Gb/s的速度發(fā)生。因此,SAN交換機(jī)所執(zhí)行的復(fù)雜虛擬化功能也以 10Gb/s來執(zhí)行,以免產(chǎn)生瓶頸,將會(huì)是有利的。不幸的是,大多數(shù)交換機(jī) 內(nèi)常見的單處理器體系結(jié)構(gòu)對于這些級別的線路速度來說不是可行方案。 任何方案都要求使用多處理器或多核處理器技術(shù)。然而,這種高性能要求復(fù)雜的軟件。當(dāng)嘗試?yán)枚嗪颂幚砥鱽砜刂铺?擬SAN時(shí),會(huì)發(fā)生若干個(gè)各種技術(shù)問題。所有存儲設(shè)備中的一個(gè)常見的問題涉及數(shù)據(jù)完整性。具體而言,當(dāng)多 個(gè)主機(jī)正在訪問同一存儲巻時(shí),經(jīng)常必須鎖定存儲巻的特定部分,以確保每次只有一個(gè)主機(jī)可以修改下層數(shù)據(jù)。如果沒有采取適當(dāng)?shù)逆i定并且兩個(gè) 主機(jī)發(fā)出了矛盾的寫入命令,則可能發(fā)生數(shù)據(jù)損壞并且有可能發(fā)生系統(tǒng)故障。在訪問一個(gè)巻之前,發(fā)起者發(fā)出互鎖(interlock)請求,該請求要求 該巻被鎖定。在典型的單核或單處理器環(huán)境中,每個(gè)存儲巻的集中式鎖定 管理器接收該互鎖請求并且控制相應(yīng)存儲巻的鎖定,以確保數(shù)據(jù)完整性。 但是,如果想要先前論述的高線路速度,則在多核或多處理器環(huán)境中,是 不可能實(shí)現(xiàn)這種集中式鎖定管理器的。這是因?yàn)閱蝹€(gè)鎖定管理器將會(huì)代表 交換機(jī)處的潛在瓶頸點(diǎn)。為了解決該問題,提供了本發(fā)明的一個(gè)實(shí)施例,其中,每個(gè)巻的鎖定 管理器保持在多個(gè)核心或處理器之間移動(dòng)。通過使鎖定管理器從一個(gè)處理 器"跳躍"到另一個(gè)處理器,可以防止任何處理器處的瓶頸。希望經(jīng)常在 處理器間移動(dòng)鎖定管理器以防止這種瓶頸,但不希望太經(jīng)常以至于這變得 低效。在本發(fā)明的一個(gè)實(shí)施例中,在處理器間移動(dòng)的頻率可基于對鎖定管 理器所處置的IO的數(shù)目進(jìn)行計(jì)數(shù)的計(jì)數(shù)器,并且可以一旦達(dá)到預(yù)定的閾 值就將鎖定管理器移動(dòng)到一個(gè)不同的處理器。在本發(fā)明的另一個(gè)實(shí)施例 中,在處理器之間移動(dòng)的頻率可以基于對鎖定管理器在處理器上操作的時(shí) 間量計(jì)數(shù)的時(shí)間,并且一旦達(dá)到預(yù)定的時(shí)間就將鎖定管理器移動(dòng)到一個(gè)不 同的處理器。應(yīng)當(dāng)注意,當(dāng)達(dá)到預(yù)定的閾值或定時(shí)器時(shí),有可能當(dāng)前選擇 的處理器仍是負(fù)載最輕的處理器。在這種情況下,可以實(shí)現(xiàn)這樣的實(shí)施 例,即或者不管怎樣都改變處理器,或者始終選擇負(fù)載最輕的處理器,即 使負(fù)載最輕的處理器就是當(dāng)前選擇的處理器。在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)鎖定管理器被移動(dòng)到一個(gè)不同的處理器 時(shí),所選擇的處理器是負(fù)載最輕的(即,在當(dāng)時(shí)處理的IO的量最少)。 也可以實(shí)現(xiàn)其他實(shí)施例,其中其他標(biāo)準(zhǔn)或者被與處理器的負(fù)載級別結(jié)合使 用或者取代處理器的負(fù)載級別被使用,所述其他標(biāo)準(zhǔn)例如是隨機(jī)選擇例 程、循環(huán)方案、或者用戶選擇。在本發(fā)明的一個(gè)實(shí)施例中,利用上述的鎖定管理器提供了對同一虛擬 邏輯單元號(VLUN)的共同訪問。圖5示出了用于處置互鎖請求的示例 性方法。該過程可以在SAN的主機(jī)與存儲裝置方之間的中介處(例如在交換機(jī)中)執(zhí)行。但是,可以實(shí)現(xiàn)這樣的實(shí)施例,其中,該過程物理上是 在主機(jī)和存儲裝置方執(zhí)行的,但是軟件充當(dāng)中介。在500,接收互鎖請求。在502,判定這是否是第一互鎖請求。如果是,則在504,可選擇負(fù) 載最輕的DPP。如果不是,則先前可能已經(jīng)選擇了 DPP。這樣,在506, 可以判定是否已達(dá)到了針對所選DPP的預(yù)定閾值個(gè)連續(xù)互鎖請求。這可以 通過將互鎖請求的計(jì)數(shù)器與預(yù)定的數(shù)目相比較來實(shí)現(xiàn)。可以使用一定時(shí)器 并且可將該定時(shí)器與預(yù)定的時(shí)間相比較。如果已經(jīng)達(dá)到預(yù)定的閾值,則過 程前進(jìn)到504,其中負(fù)載最輕的DPP被選擇。在508,所選DPP處理互鎖 請求。在510,可以遞增(或者遞減,這是基于所使用的實(shí)施例的)計(jì)數(shù) 器,以表明已經(jīng)處置又一個(gè)互鎖請求。過程隨后對于每個(gè)接收到的互鎖請 求循環(huán)到500。在另一個(gè)實(shí)施例中,可以使用諸如多核Octeon處理器之類的處理器。 在該實(shí)施例中,互鎖請求被實(shí)現(xiàn)在稱為工作隊(duì)列條目(WQE)的數(shù)據(jù)結(jié)構(gòu) 中,其可被標(biāo)記以標(biāo)簽,以表明WQE是互鎖請求。核心拾取WQE并且 對其進(jìn)行處理。在處理一定數(shù)目的WQE之后(或者基于時(shí)間),核心將 核心組改變到核心映射,以便隨后被排隊(duì)的WQE被調(diào)遣到新的(一個(gè)或 多個(gè))核心并且在該處被處理。新的核心可以是核心組中最不繁忙的那 個(gè)。這樣,透明地實(shí)現(xiàn)了負(fù)載平衡。圖6示出了用于處置互鎖請求的示例性裝置。鎖定請求接收器600可 接收互鎖請求。耦合到鎖定請求接收器600的第一互鎖請求判定器602可 判定這是否是第一互鎖請求。如果是,則耦合到鎖定請求接收器600的鎖 定請求處理器重選擇器604可選擇一處理器來處置該鎖定請求。其可包括 最輕負(fù)載處理器選擇器606,該最輕負(fù)載處理器選擇器606可選擇負(fù)載最 輕的處理器。如果這不是第一互鎖請求,則DPP先前可能己經(jīng)被選擇過 了。這樣,耦合到第一互鎖請求判定器602和鎖定請求處理器重選擇器 604的預(yù)定閾值鎖定請求處理器判定器608可判定是否已達(dá)到針對所選 DPP的預(yù)定閾值個(gè)連續(xù)互鎖請求。在另一種實(shí)施例中,該組件可被替換為 預(yù)定時(shí)間處理器判定器,該預(yù)定時(shí)間處理器判定器可判定所選處理器的定 時(shí)器是否已達(dá)到預(yù)定的時(shí)間。如果己達(dá)到預(yù)定的閾值或者時(shí)間,則鎖定請求處理器重選擇器604可選擇一處理器來處置鎖定請求?;ユi請求隨后可 被所選的DPP所處理。如果尚未達(dá)到預(yù)定的閾值或時(shí)間,則這可包括利用耦合到預(yù)定閾值鎖定請求處理器判定器608的先前所選處理器鎖定請求指 派器610來將鎖定請求指派給先前選擇的處理器。如果尚未達(dá)到預(yù)定閾值 或時(shí)間,則這可包括利用耦合到預(yù)定閾值鎖定請求處理器判定器608的重 選擇處理器鎖定請求指派器612來將鎖定請求指派給新選擇的處理器。如 果尚未達(dá)到預(yù)定的閾值或時(shí)間,則耦合到預(yù)定閾值鎖定請求處理器判定器 608的計(jì)數(shù)器遞增器614可遞增計(jì)數(shù)器,而如果已經(jīng)達(dá)到預(yù)定的閾值或時(shí) 間,則耦合到預(yù)定閾值鎖定請求處理器判定器608的計(jì)數(shù)器重置器616可 重置計(jì)數(shù)器。注意,以上描述的各個(gè)元件以及本文檔中各處的其他圖中的 元件,不需要是不同的設(shè)備或組件。本領(lǐng)域的普通技術(shù)人員將會(huì)認(rèn)識到, 這些元件中的任何兩個(gè)或更多個(gè)的操作可被組合到單個(gè)組件中。多核或多處理器SAN環(huán)境中出現(xiàn)的另一個(gè)問題涉及狀態(tài)信息的管 理。主機(jī)和存儲裝置在被稱為上下文的數(shù)據(jù)結(jié)構(gòu)中維護(hù)狀態(tài)信息。這在主 機(jī)方通常被稱為主機(jī)上下文,而在存儲裝置方則被稱為盤上下文。但是, 主機(jī)上下文和盤上下文都要求互斥的訪問,因?yàn)樗鼈儼瑺顟B(tài)變量。在本 發(fā)明的一個(gè)實(shí)施例中,這可經(jīng)由每個(gè)上下文的單獨(dú)條目來實(shí)現(xiàn),所述條目 例如是三元內(nèi)容可尋址存儲器(TCAM)條目。每個(gè)主機(jī)IO可被指派以一 主機(jī)上下文。由虛擬化功能對存儲裝置方執(zhí)行的每個(gè)10可被指派以一盤 上下文。該上下文可用于跟蹤例如在任意給定時(shí)刻已執(zhí)行了多少10處 理。每當(dāng)IS中發(fā)生新的事件(例如響應(yīng)消息)時(shí),該上下文就可被取出。在本發(fā)明的一個(gè)實(shí)施例中,為特定10服務(wù)直到完成所需的處理被盡 可能地保持在單個(gè)DPP內(nèi)。這使得昂貴的査找達(dá)最小化。它還利用了本地 緩存中的熱數(shù)據(jù)。由于只有一個(gè)DPP在處理交換,因此它不需要被沖回存 儲器并被另一 DPP重新讀取。在另一個(gè)實(shí)施例中,新的IO可被重定向到 負(fù)載最輕的DPP,從而改善等待時(shí)間。此外,DPP上的軟件和ASIC硬件 之間的交互可達(dá)到最低限度。在本發(fā)明的這個(gè)實(shí)施例中,標(biāo)簽和軟切換以及顯式的鎖定模型都可用 來執(zhí)行交換級別負(fù)載平衡。這樣允許了完全在一個(gè)核心處處置交換,從而更有效地利用了駐留于核心上的數(shù)據(jù)緩存,而不會(huì)用同樣的數(shù)據(jù)拷貝來污 染其他核心的數(shù)據(jù)緩存。除了硬件提供的隊(duì)列之外(通常每個(gè)核心組一個(gè) 隊(duì)列),每個(gè)核心還可具有軟隊(duì)列,該軟隊(duì)列是由該特定核心上的軟件管 理的。這樣就可以直接訪問該特定核心,這與硬件工作隊(duì)列不同,硬件工 作隊(duì)列覆蓋了多個(gè)核心并且不允許指定向其指派特定幀或事件的特定核 心。這些軟隊(duì)列可駐留在共享存儲器中,從而任何核心在希望將幀/事件調(diào) 遣到特定核心時(shí)就可以將該幀/事件加入隊(duì)列。在本發(fā)明的一個(gè)實(shí)施例中, 只有隊(duì)列的所有者(核心)會(huì)把幀/事件取出隊(duì)列并且進(jìn)行處理。在本實(shí)施 例中,硬件在這些隊(duì)列的管理方面不起作用。調(diào)度器可以從核心所提供的 硬件工作隊(duì)列以及軟件工作隊(duì)列中輪詢事件。該調(diào)度器可以僅在確保了該 核心的軟件工作隊(duì)列為空時(shí)才從硬件工作隊(duì)列中輪詢事件。這確保了核心 之間的適當(dāng)負(fù)載平衡,并且向軟件事件賦予了適當(dāng)?shù)臋?quán)力。顯式鎖定模型 是通過使將在核心之間共享的所有數(shù)據(jù)結(jié)構(gòu)被顯式鎖定來實(shí)現(xiàn)的。幀可在 兩個(gè)階段中被處理。第一階段可以通過執(zhí)行幀級別差錯(cuò)校驗(yàn)來開始。這可包括諸如循環(huán)冗 余校驗(yàn)之類的校驗(yàn)。然后,該階段可進(jìn)行到確定幀的類型。可執(zhí)行查找來 判定幀是例如命令幀、數(shù)據(jù)幀、傳送幀還是響應(yīng)幀。對于命令幀,可利用 隊(duì)列指針(例如發(fā)起者標(biāo)簽LUN),使用硬件工作隊(duì)列來執(zhí)行標(biāo)簽切換。 對于數(shù)據(jù)、傳送或響應(yīng)幀,可對該指針執(zhí)行交換表查找,以獲得正在處理 該交換的核心的核心標(biāo)識。隨后可利用該指針作為幀的新標(biāo)簽來切換標(biāo) 簽。這樣就將幀指派給特定的核心組,而不是特定的核心。隨后可利用相 應(yīng)的軟件工作隊(duì)列來將幀調(diào)遣到特定的核心。主機(jī)/盤交換的交換表?xiàng)l目可 能已在第二階段的先前操作期間、在主機(jī)命令處理期間被編程了。或者, 該表可能已在某個(gè)其他時(shí)間創(chuàng)建。第二階段可涉及整個(gè)幀處理。對于命令幀,可為主機(jī)交換創(chuàng)建交換表 條目,并可將其核心標(biāo)識指派為正在處理該命令的核心。然后,可執(zhí)行諸如范圍表(Extent Map, XMAP)或虛擬到物理(V2P)查找、向目標(biāo)發(fā)送 命令等等之類的命令級處理。對于數(shù)據(jù)、傳送或響應(yīng)幀,上下文最有可能 在數(shù)據(jù)緩存中,從而可以利用熱緩存,而無需頻繁地沖刷或搜索數(shù)據(jù)。負(fù)載最輕的處理器來處理該命 令幀。 一旦硬件將該命令幀調(diào)遣到特定的核心,該命令在交換表中就立即 被指派給該核心。從此刻以后,所有與該命令幀有關(guān)的事件都由該核心處 置。這是通過下述各項(xiàng)的組合而發(fā)生的軟件工作隊(duì)列、通過標(biāo)簽切換根 據(jù)需要串行化數(shù)據(jù)結(jié)構(gòu)訪問,并且將整個(gè)虛擬化任務(wù)在邏輯上劃分成兩個(gè) 階段。這樣,通過將交換限制到特定核心,可以獲得以下益處使昂貴的查找達(dá)到最低限度-由于核心標(biāo)識被存儲在交換本身之中,因此交換的各種事件可被確定地指派給優(yōu)先(in first order time)負(fù)責(zé)該交 換的特定核心??梢岳帽镜鼐彺嬷械臒釘?shù)據(jù)-由于只有一個(gè)核心處置一交換,所以 與該交換有關(guān)的各種對象駐留在特定核心的數(shù)據(jù)緩存中的概率要高得多。通過利用硬件功能,可將新的輸入/輸出重定向到負(fù)載最輕的核心。該 硬件可在每次接收到新的命令幀時(shí)選擇負(fù)載最輕的核心??梢愿咝У毓芾斫粨Q中的資源-由于交換被重定向到一個(gè)特定的核 心,所以完成一個(gè)交換所需的各種對象可以從其池中分配并隨后被釋放到 同一池中。對鎖定的爭用減少了 -由于特定的上下文被單個(gè)核心所"擁有",所 以大大減少了必須鎖定上下文以供獨(dú)家訪問的次數(shù)。在本發(fā)明的另一個(gè)實(shí)施例中,幀類型的粒度可被設(shè)置到極精細(xì)的級 別。這樣例如就使得交換處理的不同階段可由不同核心來處置,每次前往負(fù)載最輕的處理器。這是由于以下事實(shí)存在某些類型的幀,這些幀不是 真正需要與交換中的先前幀共享同一緩存,從而將這些幀實(shí)時(shí)轉(zhuǎn)發(fā)到負(fù)載 最輕的處理器而不是可能不必要地將其發(fā)送到過載的處理器,則會(huì)是更高 效的。實(shí)行這個(gè)策略還消除了對用于獲得對完全處理幀所需的各種上下文 狀態(tài)的獨(dú)家訪問的集中式鎖定措施或其他先占措施的需要。隨著幀類型的粒度被設(shè)置到越來越細(xì)的級別而變得更加普遍的另一個(gè) 問題是需要"追趕"交換。即,有可能特定的幀可被指派到特定核心的軟 件工作隊(duì)列,但到該幀準(zhǔn)備好被處理時(shí)(例如,當(dāng)它在隊(duì)頭時(shí)),擁有該 交換的核心可能已經(jīng)變了。為了處置這種情況,在本發(fā)明的一個(gè)實(shí)施例中,在實(shí)際處理幀之前,處理器將多次檢査以確保它仍是擁有者,如果不 是,則幀將會(huì)被放置在與交換的新?lián)碛姓呦鄬?yīng)的軟件工作隊(duì)列中。圖7示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備處 處置幀的一種示例性方法。該幀可對應(yīng)于特定的交換。這可以由例如幀中 的交換標(biāo)識來指示,但本領(lǐng)域的普通技術(shù)人員將會(huì)認(rèn)識到,可能存在其他 方式來跟蹤哪個(gè)交換對應(yīng)于一個(gè)幀。在700,可對該幀執(zhí)行幀級別差錯(cuò)校驗(yàn)。在702,可以判定該幀是否是命令幀。如果該幀是命令幀,則在 704,可以確定負(fù)載最輕的處理器或核心的核心標(biāo)識。這可通過將該幀放 置在與一核心組相對應(yīng)的硬件工作隊(duì)列中來實(shí)現(xiàn)。硬件工作隊(duì)列可使用發(fā) 起者目標(biāo)邏輯單元號(ITL)指針作為標(biāo)簽來執(zhí)行標(biāo)簽切換。然后在706, 可以在交換查找數(shù)據(jù)結(jié)構(gòu)中創(chuàng)建一條目,將該交換映射到該核心標(biāo)識。如 果該幀不是命令幀,則在708,可以在交換査找數(shù)據(jù)結(jié)構(gòu)中執(zhí)行查找以確 定與該交換相對應(yīng)的核心標(biāo)識。然后,在710,可以將該幀轉(zhuǎn)發(fā)到該核心 標(biāo)識所標(biāo)識的處理器或核心。這可通過將該幀放置在與該核心標(biāo)識所標(biāo)識 的處理器或核心相對應(yīng)的軟件工作隊(duì)列中來實(shí)現(xiàn)。在712,可以運(yùn)行隊(duì)列 調(diào)度器,其中隊(duì)列調(diào)度器從與特定核心組相對應(yīng)的硬件工作隊(duì)列和與該核 心組內(nèi)的每個(gè)核心相對應(yīng)的軟件工作隊(duì)列中輪詢事件,并且所述隊(duì)列調(diào)度 器僅在所述軟件工作隊(duì)列為空之后才從所述硬件工作隊(duì)列中輪詢事件。圖8示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備處 處置幀的另一種示例性方法。與先前實(shí)施例一樣,該幀可對應(yīng)于特定的交 換。在第一階段中,在800,可對該幀執(zhí)行幀級別差錯(cuò)校驗(yàn)。然后在 802,可以判定該幀是否是命令幀。如果該幀是命令幀,則在804,可以將 該命令幀指派給負(fù)載最輕的處理器。這可通過將該幀放置在與一核心組相 對應(yīng)的硬件工作隊(duì)列中來實(shí)現(xiàn)。硬件工作隊(duì)列可使用發(fā)起者目標(biāo)邏輯單元 號(ITL)指針作為標(biāo)簽來執(zhí)行標(biāo)簽切換。如果該幀不是命令幀,則在 806,可以將該幀指派給與該交換相對應(yīng)的交換查找數(shù)據(jù)結(jié)構(gòu)所指示的處 理器。這可通過將該幀放置在與該核心標(biāo)識所標(biāo)識的處理器或核心相對應(yīng) 的軟件工作隊(duì)列中來實(shí)現(xiàn)。在808,可以運(yùn)行隊(duì)列調(diào)度器,其中隊(duì)列調(diào)度 器從與特定核心組相對應(yīng)的硬件工作隊(duì)列和與該核心組內(nèi)的每個(gè)核心相對應(yīng)的軟件工作隊(duì)列中輪詢事件,并且所述隊(duì)列調(diào)度器僅在所述軟件工作隊(duì) 列為空之后才從所述硬件工作隊(duì)列中輪詢事件。圖9示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備處 處置幀的另一種示例性方法。同樣,該幀可對應(yīng)于特定的交換。在900,可對該幀執(zhí)行幀級別差錯(cuò)校驗(yàn)。在902,可以確定該幀的類型。如果該幀 是命令幀,則在904,可以確定負(fù)載最輕的處理器或核心的核心標(biāo)識。這 可通過將該幀放置在與一核心組相對應(yīng)的硬件工作隊(duì)列中來實(shí)現(xiàn)。硬件工 作隊(duì)列可使用發(fā)起者目標(biāo)邏輯單元號(ITL)指針作為標(biāo)簽來執(zhí)行標(biāo)簽切 換。然后在906,可以在交換查找數(shù)據(jù)結(jié)構(gòu)中創(chuàng)建一條目,將該交換映射 到該核心標(biāo)識。然后在908,可在交換査找數(shù)據(jù)結(jié)構(gòu)中的該條目中指示要 指派給處理器的一個(gè)或多個(gè)幀的類型。如果該幀不是命令幀,則在910, 可以在交換查找數(shù)據(jù)結(jié)構(gòu)中執(zhí)行查找以確定與該交換相對應(yīng)并且與該非命 令幀的類型相對應(yīng)的核心標(biāo)識。然后,在912,如果該幀是命令幀或者如 果找到了與該交換相對應(yīng)并且與該非命令幀的類型相對應(yīng)的核心標(biāo)識,則 可以將該幀轉(zhuǎn)發(fā)到該核心標(biāo)識所標(biāo)識的處理器或核心。這可通過將該幀放 置在與該核心標(biāo)識所標(biāo)識的處理器或核心相對應(yīng)的軟件工作隊(duì)列中來實(shí) 現(xiàn)。在914,如果該幀不是命令幀并且沒有找到與該交換相對應(yīng)并且與該 非命令幀的類型相對應(yīng)的核心標(biāo)識,則可將該幀轉(zhuǎn)發(fā)到負(fù)載最輕的處理器 或核心。如上所述,這可通過將該幀放置在與一核心組相對應(yīng)的硬件工作 隊(duì)列中來實(shí)現(xiàn)。在916,可以運(yùn)行隊(duì)列調(diào)度器,其中隊(duì)列調(diào)度器從硬件和 軟件工作隊(duì)列中輪詢事件。在一些實(shí)現(xiàn)方式中,隊(duì)列調(diào)度器可以僅在與特 定核心組內(nèi)的每個(gè)核心相對應(yīng)的軟件工作隊(duì)列為空之后才從與該核心組相 對應(yīng)的硬件工作隊(duì)列中輪詢事件。圖10示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備 處處置幀的另一種示例性方法。與先前實(shí)施例一樣,該幀可對應(yīng)于特定的 交換。在第一階段中,在1000,可對該幀執(zhí)行幀級別差錯(cuò)校驗(yàn)。然后在 1002,可以確定該幀的類型。如果該幀是命令幀,則在1004,可以將該命 令幀指派給負(fù)載最輕的處理器。這可通過將該幀放置在與一核心組相對應(yīng) 的硬件工作隊(duì)列中來實(shí)現(xiàn)。硬件工作隊(duì)列可使用發(fā)起者目標(biāo)邏輯單元號(ITL)指針作為標(biāo)簽來執(zhí)行標(biāo)簽切換。如果該幀不是命令幀,則在 1006,可以將該幀指派給與該交換相對應(yīng)并且與該非命令幀的類型相對應(yīng) 的交換查找數(shù)據(jù)結(jié)構(gòu)所指示的處理器。這可通過將該幀放置在與該核心標(biāo)識所標(biāo)識的處理器或核心相對應(yīng)的軟件工作隊(duì)列中來實(shí)現(xiàn)。在1008,可以運(yùn)行隊(duì)列調(diào)度器,其中隊(duì)列調(diào)度器從硬件和軟件工作隊(duì)列中輪詢事件,并 且僅在與特定核心組內(nèi)的每個(gè)核心相對應(yīng)的軟件工作隊(duì)列為空之后才從與該核心組相對應(yīng)的硬件工作隊(duì)列中輪詢事件。在第二階段中,在1010,可 以確定幀的類型。如果該幀是命令幀,則在1012,可以在與負(fù)載最輕的處 理器相對應(yīng)的交換査找數(shù)據(jù)結(jié)構(gòu)中創(chuàng)建條目。然后在1014,可在交換查找 數(shù)據(jù)結(jié)構(gòu)中的該條目中指示要指派給處理器的一個(gè)或多個(gè)幀類型。如果該 幀不是命令幀,則在1016,可利用與對應(yīng)于該交換并對應(yīng)于該非命令幀的 類型的交換査找數(shù)據(jù)結(jié)構(gòu)所指示的處理器相對應(yīng)的數(shù)據(jù)緩存來處理該幀。圖11示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備 處處置幀的一種示例性裝置。該幀可對應(yīng)于特定的交換。這可以由例如幀 中的交換標(biāo)識來指示,但本領(lǐng)域的普通技術(shù)人員將會(huì)認(rèn)識到,可能存在其 他方式來跟蹤哪個(gè)交換對應(yīng)于一個(gè)幀。幀級別差錯(cuò)校驗(yàn)器1100可對該幀 執(zhí)行幀級別差錯(cuò)校驗(yàn)。耦合到幀級別差錯(cuò)校驗(yàn)器1100的幀類型確定器 1102可判定該幀是否是命令幀。如果該幀是命令幀,則耦合到幀類型確定 器1102的最輕負(fù)載處理器核心標(biāo)識確定器1104可以確定負(fù)載最輕的處理 器或核心的核心標(biāo)識。這可通過將該幀放置在與一核心組相對應(yīng)的硬件工 作隊(duì)列1106中來實(shí)現(xiàn)。硬件工作隊(duì)列1106可使用發(fā)起者目標(biāo)邏輯單元號 (ITL)指針作為標(biāo)簽來執(zhí)行標(biāo)簽切換。耦合到最輕負(fù)載處理器核心標(biāo)識 確定器1104的交換查找數(shù)據(jù)結(jié)構(gòu)條目創(chuàng)建器1108在交換查找數(shù)據(jù)結(jié)構(gòu)中 創(chuàng)建一條目,將該交換映射到該核心標(biāo)識。如果該幀不是命令幀,則耦合 到幀類型確定器1102的交換査找數(shù)據(jù)結(jié)構(gòu)搜索器1112可以在存儲器1110 中的交換査找數(shù)據(jù)結(jié)構(gòu)中執(zhí)行查找以確定與該交換相對應(yīng)的核心標(biāo)識。然 后,耦合到交換查找數(shù)據(jù)結(jié)構(gòu)搜索器1112的幀轉(zhuǎn)發(fā)器1114可以將該幀轉(zhuǎn) 發(fā)到該核心標(biāo)識所標(biāo)識的處理器或核心。這可通過將該幀放置在與該核心 標(biāo)識所標(biāo)識的處理器或核心相對應(yīng)的軟件工作隊(duì)列1116中來實(shí)現(xiàn)。軟件工作隊(duì)列1116可被配置為基于對相應(yīng)處理器是幀所屬的交換的擁有者這 一判定來存儲將被相應(yīng)處理器所執(zhí)行的這些幀。耦合到軟件工作隊(duì)列1116和硬件工作隊(duì)列1106的隊(duì)列調(diào)度器1118可被運(yùn)行,其中隊(duì)列調(diào)度器1118被配置為從硬件和軟件工作隊(duì)列中輪詢事件,并且僅在與特定核心組內(nèi)的 每個(gè)核心相對應(yīng)的軟件工作隊(duì)列為空之后才從與該核心組相對應(yīng)的硬件工 作隊(duì)列中輪詢事件。圖12示出了用于在存儲區(qū)域網(wǎng)絡(luò)中的具有多個(gè)處理器或核心的設(shè)備處處置幀的另一種示例性裝置。同樣,該幀可對應(yīng)于特定的交換。幀級別差錯(cuò)校驗(yàn)器1200可對該幀執(zhí)行幀級別差錯(cuò)校驗(yàn)。耦合到幀級別差錯(cuò)校驗(yàn) 器1200的幀類型確定器1202可以確定該幀的類型。如果該幀是命令幀, 則耦合到幀類型確定器1202的最輕負(fù)載處理器核心標(biāo)識確定器1204可以 確定負(fù)載最輕的處理器或核心的核心標(biāo)識。這可通過將該幀放置在與一核 心組相對應(yīng)的硬件工作隊(duì)列1206中來實(shí)現(xiàn)。硬件工作隊(duì)列1206可使用發(fā) 起者目標(biāo)邏輯單元號(ITL)指針作為標(biāo)簽來執(zhí)行標(biāo)簽切換。耦合到最輕 負(fù)載處理器核心標(biāo)識確定器1204的交換査找數(shù)據(jù)結(jié)構(gòu)條目創(chuàng)建器1208可 以在存儲器1210中的交換查找數(shù)據(jù)結(jié)構(gòu)中創(chuàng)建一條目,將該交換映射到 該核心標(biāo)識。然后,耦合到交換查找數(shù)據(jù)結(jié)構(gòu)條目創(chuàng)建器1208的幀類型 指示器1212可在交換查找數(shù)據(jù)結(jié)構(gòu)中的該條目中指示要指派給處理器的 一個(gè)或多個(gè)幀的類型。如果該幀不是命令幀,則耦合到幀類型確定器1202 和存儲器1210的幀類型交換査找數(shù)據(jù)結(jié)構(gòu)搜索器1214可以在交換查找數(shù) 據(jù)結(jié)構(gòu)中執(zhí)行査找,以確定與該交換相對應(yīng)并且與該非命令幀的類型相對 應(yīng)的核心標(biāo)識。然后,如果該幀是命令幀或者如果找到了與該交換相對應(yīng) 并且與該非命令幀的類型相對應(yīng)的核心標(biāo)識,則耦合到交換查找數(shù)據(jù)結(jié)構(gòu)搜索器1214、幀類型確定器1202和最輕負(fù)載處理器核心標(biāo)識確定器1204 的幀轉(zhuǎn)發(fā)器1216可以將該幀轉(zhuǎn)發(fā)到該核心標(biāo)識所標(biāo)識的處理器或核心。 這可通過將該幀放置在與該核心標(biāo)識所標(biāo)識的處理器或核心相對應(yīng)的軟件 工作隊(duì)列1218中來實(shí)現(xiàn)。如果該幀不是命令幀并且沒有找到與該交換相 對應(yīng)并且與該非命令幀的類型相對應(yīng)的核心標(biāo)識,則幀轉(zhuǎn)發(fā)器1216可將 該幀轉(zhuǎn)發(fā)到負(fù)載最輕的處理器。如上所述,這可通過將該幀放置在與一核心組相對應(yīng)的硬件工作隊(duì)列1206中來實(shí)現(xiàn)。耦合到軟件工作隊(duì)列1218和 硬件工作隊(duì)列1206的隊(duì)列調(diào)度器1220可從硬件和軟件工作隊(duì)列中輪詢事 件,并且僅在與特定核心組內(nèi)的每個(gè)核心相對應(yīng)的軟件工作隊(duì)列為空之后 才從與該核心組相對應(yīng)的硬件工作隊(duì)列中輪詢事件。圖13示出了用于存儲區(qū)域網(wǎng)絡(luò)中交換級別負(fù)載平衡的示例性方法。 該過程可在SAN的主機(jī)與存儲裝置方之間的中介處(例如在交換機(jī)中) 執(zhí)行。但是,可以實(shí)現(xiàn)這樣的實(shí)施例,其中,該過程物理上是在主機(jī)和存 儲裝置方執(zhí)行的,但是軟件充當(dāng)中介。在1300,可接收IO。該IO可包括 多個(gè)不同的處理步驟,這些處理步驟在被執(zhí)行時(shí)生成事件。在1302,可以 判定該10是否是新的10。在這里,"新"指的是對應(yīng)于系統(tǒng)當(dāng)前不知曉 的交換。如果該IO是新的,則在1304, IO被指派到特定的DPP。在一個(gè) 實(shí)施例中,該指派可以是指派給負(fù)載最輕的DPP,但是也可能實(shí)現(xiàn)這樣的 實(shí)施例,其中,取代DPP的負(fù)載狀態(tài)或者與DPP的負(fù)載狀態(tài)相結(jié)合,其 他因素被用于確定向哪個(gè)DPP指派IO。在1306,可以創(chuàng)建與該IO和該處 理器相對應(yīng)的上下文。當(dāng)接收到源自主機(jī)的IO時(shí),則可創(chuàng)建主機(jī)上下 文。當(dāng)交換機(jī)隨后向存儲裝置源發(fā)10時(shí),可以創(chuàng)建盤上下文。在1308, 可以接收與10相對應(yīng)的事件。該事件可以改變該特定10和DPP的上下 文。這樣,它應(yīng)當(dāng)被轉(zhuǎn)發(fā)到處置相應(yīng)IO的特定DPP。應(yīng)當(dāng)注意,只有在 事件潛在地改變10的狀態(tài)(上下文)時(shí)才有必要將事件轉(zhuǎn)發(fā)到特定的 DPP??赡軐?shí)現(xiàn)這樣的實(shí)施例,其中所有事件都被轉(zhuǎn)發(fā)到相應(yīng)的DPP,但 是也可能實(shí)現(xiàn)這樣的實(shí)施例,其中不會(huì)潛在改變狀態(tài)的事件根本不被轉(zhuǎn) 發(fā)。在1310,該事件被轉(zhuǎn)發(fā)到相應(yīng)的DPP。在本發(fā)明的一個(gè)實(shí)施例中,事 件是經(jīng)由標(biāo)簽-長-度值(TLV)幀或光纖信道協(xié)議(FCP)幀來接收的。當(dāng) TCAM條目被創(chuàng)建時(shí),這些條目可被加標(biāo)簽以表明它們是否應(yīng)當(dāng)處置或轉(zhuǎn) 發(fā)特定的事件幀。然后,可通過檢査TCAM條目來判定DPP是否應(yīng)當(dāng)處 置幀或者轉(zhuǎn)發(fā)幀并且如果要轉(zhuǎn)發(fā)那么應(yīng)當(dāng)轉(zhuǎn)發(fā)到哪個(gè)處理器,來處理這些 幀。在本發(fā)明的另一個(gè)實(shí)施例中,可以配置SPI信道,使得針對特定交換 的所有10都到達(dá)特定的核心組。這可通過配置處理器中的適當(dāng)?shù)谋忍匮?碼以利用不同的標(biāo)簽值來標(biāo)記來自不同交換的幀并且指派不同的核心組來實(shí)現(xiàn)。當(dāng)某個(gè)核心組接收到它不應(yīng)當(dāng)處理的幀時(shí),該核心組可通過改變WQE中的核心組id并且通過諸如TAG—DESCHEDULE之類的標(biāo)簽重新調(diào) 度它,來將該分組轉(zhuǎn)發(fā)到正確的核心組。因此,在1312,當(dāng)DPP接收到 事件時(shí),它可判定它是否應(yīng)當(dāng)處理該事件。如果否,則在1314它可將該 事件轉(zhuǎn)發(fā)到正確的DPP。在本發(fā)明的另一個(gè)實(shí)施例中,交換級別負(fù)載平衡可經(jīng)由標(biāo)簽切換來執(zhí) 行。當(dāng)某個(gè)DPP希望與另一 DPP通信時(shí),它能夠?qū)崿F(xiàn)此目的的一種方式 是構(gòu)建WQE并將其推送到DPP隊(duì)列之一中。該WQE可具有帶目標(biāo)核心 組號的字段,并且一處理核心可被從目標(biāo)核心組號中選出并被賦予要被處 理的WQE。如果存在多個(gè)希望對某個(gè)數(shù)據(jù)結(jié)構(gòu)進(jìn)行讀取或?qū)懭氲暮诵模?則這些核心可以顯式地或者通過標(biāo)簽切換來鎖定該數(shù)據(jù)結(jié)構(gòu)。分布式負(fù)載平衡和沒有集中式鎖定管理器的一個(gè)結(jié)果是,可能除了擁 有上下文并在其上工作的那個(gè)DPP夕卜,任何其他DPP都不能改變狀態(tài)。 但是,可能存在必須立即訪問上下文的情況(例如,當(dāng)主機(jī)發(fā)出ABTS 時(shí))。在這種情形下,DPP應(yīng)當(dāng)將事件轉(zhuǎn)發(fā)給處置任務(wù)的DPP。圖14示出了用于存儲區(qū)域網(wǎng)絡(luò)中交換追趕的示例性方法。在1400, 上下文中的字段可包括訪問它的DPP的DPP標(biāo)識。在1402,可接收事 件。在1404,接收事件的DPP可通過考查上下文中的該字段來向處理任 務(wù)(并且負(fù)有改變狀態(tài)的責(zé)任)的DPP發(fā)送消息。在1406,在接收到該 消息后,DPP可驗(yàn)證其內(nèi)容并且或者處理該事件或者將該事件轉(zhuǎn)發(fā)到現(xiàn)在 推測起來應(yīng)當(dāng)在處置該任務(wù)的下一 DPP (通過考查上下文中的該字段)。 接收端的這種檢查確保了在DPP發(fā)送消息和該消息被接收到之間的時(shí)間間 隔中任務(wù)未被重指派。雖然這里示出和描述了本發(fā)明的示例性實(shí)施例和應(yīng)用,但是可以進(jìn)行 許多保持在本發(fā)明的概念、范圍和精神之類的變化和修改,并且本領(lǐng)域的 普通技術(shù)人員在研讀本申請之后將會(huì)清楚這些變化。因此,所描述的實(shí)施 例應(yīng)當(dāng)被認(rèn)為是示例性的而不是限制性的,并且本發(fā)明不應(yīng)當(dāng)限于這里給 出的細(xì)節(jié),而是可在所附權(quán)利要求的范圍及其等同物的范圍內(nèi)被修改。
權(quán)利要求
1.一種用于存儲區(qū)域網(wǎng)絡(luò)中的交換級別負(fù)載平衡的方法,該方法包括接收輸入/輸出(I/O);判定所述IO是否是新的;如果所述IO是新的,則將所述IO指派到特定的數(shù)據(jù)路徑處理器;創(chuàng)建與所述IO和所述處理器相對應(yīng)的上下文;接收與所述IO相對應(yīng)的事件;以及將所述事件轉(zhuǎn)發(fā)到被指派給所述IO的處理器。
2. 如權(quán)利要求1所述的方法,其中,所述特定的數(shù)據(jù)路徑處理器是負(fù) 載最輕的數(shù)據(jù)路徑處理器。
3. 如權(quán)利要求1所述的方法,其中,如果所述10源自所述存儲區(qū)域 網(wǎng)絡(luò)中的主機(jī),則所述上下文是主機(jī)上下文。
4. 如權(quán)利要求1所述的方法,其中,如果所述IO源自交換機(jī)并朝向 所述存儲區(qū)域網(wǎng)絡(luò)中的存儲裝置,則所述上下文是盤上下文。
5. 如權(quán)利要求1所述的方法,其中,所述方法是在所述存儲區(qū)域網(wǎng)絡(luò)中的主機(jī)和盤之間的設(shè)備處執(zhí)行的。
6. 如權(quán)利要求1所述的方法,還包括 在處理器處接收所述事件;判定所述處理器是否仍被指派給所述IO;并且如果所述處理器并非仍被指派給所述10,則將所述事件轉(zhuǎn)發(fā)到被指派 給所述IO的處理器。
7. 如權(quán)利要求1所述的方法,其中,接收事件的步驟包括經(jīng)由標(biāo)簽-長 度-值TLV幀來接收事件。
8. 如權(quán)利要求1所述的方法,其中,接收事件的歩驟包括經(jīng)由光纖信 道協(xié)議(FCP)幀來接收事件。
9. 如權(quán)利要求1所述的方法,其中,所述創(chuàng)建上下文的歩驟包括創(chuàng)建三元內(nèi)容可尋址存儲器(TCAM)條目。
10. —種用于存儲區(qū)域網(wǎng)絡(luò)中的交換級別負(fù)載平衡的設(shè)備,該設(shè)備包括用于接收輸入/輸出(10)的裝置;用于判定所述IO是否是新的的裝置;如果所述IO是新的,貝U:用于將所述10指派到特定的數(shù)據(jù)路徑處理器的裝置; 用于創(chuàng)建與所述IO和所述處理器相對應(yīng)的上下文的裝置;用于接收與所述IO相對應(yīng)的事件的裝置;以及用于將所述事件轉(zhuǎn)發(fā)到被指派給所述10的處理器的裝置。
11. 如權(quán)利要求IO所述的設(shè)備,其中,所述特定的數(shù)據(jù)路徑處理器是 負(fù)載最輕的數(shù)據(jù)路徑處理器。
12. 如權(quán)利要求10所述的設(shè)備,其中,如果所述IO源自所述存儲區(qū) 域網(wǎng)絡(luò)中的主機(jī),則所述上下文是主機(jī)上下文。
13. 如權(quán)利要求10所述的設(shè)備,其中,如果所述10源自交換機(jī)并朝向所述存儲區(qū)域網(wǎng)絡(luò)中的存儲裝置,則所述上下文是盤上下文。
14. 如權(quán)利要求IO所述的設(shè)備,其中,所述設(shè)備處于所述存儲區(qū)域網(wǎng)絡(luò)中的主機(jī)和盤之間。
15. 如權(quán)利要求10所述的設(shè)備,還包括 用于在處理器處接收所述事件的裝置;用于判定所述處理器是否仍被指派給所述IO的裝置;并且 用于如果所述處理器并非仍被指派給所述10則將所述事件轉(zhuǎn)發(fā)到被指派給所述IO的處理器的裝置。
16. 如權(quán)利要求IO所述的設(shè)備,其中,用于接收事件的裝置包括用于 經(jīng)由標(biāo)簽-長度-值(TLV)幀來接收事件的裝置。
17. 如權(quán)利要求IO所述的設(shè)備,其中,用于接收事件的裝置包括用于 經(jīng)由光纖信道協(xié)議(FCP)幀來接收事件的裝置。
18. 如權(quán)利要求IO所述的設(shè)備,其中,用于創(chuàng)建上下文的裝置包括用 于創(chuàng)建三元內(nèi)容可尋址存儲器(TCAM)條目的裝置。
全文摘要
存儲區(qū)域網(wǎng)絡(luò)中對虛擬化的支持可利用多種技術(shù)來提供。在本發(fā)明的一個(gè)實(shí)施例中,可通過判定設(shè)備接收到的輸入/輸出(IO)是否為新的來提供交換級別負(fù)載平衡。如果特定的IO是新的,則可將該IO指派給特定的數(shù)據(jù)路徑處理器并且可創(chuàng)建與該IO和與該處理器相對應(yīng)的上下文。然后,當(dāng)接收到與該IO相對應(yīng)的事件時(shí),可將該事件轉(zhuǎn)發(fā)到被指派給該IO的處理器。
文檔編號G06F12/02GK101617297SQ200780043621
公開日2009年12月30日 申請日期2007年11月28日 優(yōu)先權(quán)日2006年11月28日
發(fā)明者吉萬·卡密賽緹, 毛里利奧·科梅托, 瓦拉古爾·V·查卓瑟卡蘭, 艾瑞丹·保羅, 華 鐘 申請人:思科技術(shù)公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1