專利名稱::用于適配器端口配置的裝置、系統和方法
技術領域:
:本發明涉及通信適配器,具體來說涉及更新在多端口通信適配器的端口配置。
背景技術:
:用戶不斷地要求計算機系統和計算機子系統具有更高的高效率可用性(highavailability)。并且希望網絡服務器、數據庫服務器、應用程序服務器等隨時可用。如果確實需要離線的話(ifatall),對這些系統的維護和更新應當使系統的離線時間最小化。此外,還希望這些系統中的部件(component)可以被配置到各種操作環境。例如,幫助在通信系統中的兩個系統部件之間進行通信的通信適配器,被期望可以配置到各種拓撲結構(topology)和協議。如這里所使用的,拓撲結構指的是在通信系統中的物理連接。一般的拓撲結構包括點到點、交換結構(fabricswitched)、光纖通道仲裁回路(FibreChannelArbitratedLoop,FC-AL)等。這里所使用的協議是指用來在系統部件之間傳送數據的通信方案。一般的上層協議(ULP),包括光纖通道協議(FCP)和FICON(FC-SB-2)。取決于通信系統的操作,也可以采用其它拓撲結構和協議。通信適配器通常包括多個端口(port)。每個端口可以被用于物理連接到另一個系統部件。例如,主機可以經由通信電纜、以點到點的拓撲結構直接連接到端口。在另一個例子中,端口可以被便利地物理連接到集線器(hub)或交換機(switch),而集線器或交換機再連接到主機。通信適配器可以被周期性地重新配置來提供改進的通信或支持不同的通信拓撲結構或協議。圖1描述了傳統的適配器配置方法。這種用于重新配置適配器端口的標準技術包括在適配器接收配置請求以及終止適配器的所有端口的操作。例如,典型的適配器可以具有4個端口。然后適配器被使用新的拓撲結構和/或協議配置來進行復位、重新配置和重新初始化。隨后,在適配器的全部端口都可以恢復操作。不幸的是,哪怕是為了重新配置單一的一個端口,傳統的適配器配置方法也需要在適配器上的全部端口都脫離通信。這樣,對一個端口的重新配置會妨礙到適配器中的其它端口的并行通信(concurrentcommunication)。換句話說,對一個端口的重新配置會要求終止在沒有涉及該重新配置的端口上的操作。而且,傳統的適配器配置方法要求所有的端口被同時配置。如前所述,顯而易見,存在對在通信適配器上更新端口配置而不妨礙在同一通信適配器中的其它端口的并行通信的裝置、系統和方法的需求。有益的是,這樣的裝置、系統和方法能夠克服與傳統的端口配置技術相關的當前挑戰。
發明內容響應于現有技術的狀況,并且具體來說,響應于還沒有被當前可用的適配器配置技術完全解決的現有技術中的問題和需求做出了本發明的幾個實施例。因此,做出本發明以提供用于在多端口(multi-port)適配器上配置端口的裝置、系統和方法以克服現有技術中上面討論的很多或全部缺點。配置端口的裝置配備有包含多個配置來有效執行用于選擇性地端口配置所需操作的多個模塊的邏輯單元。在所說明的實施例中的這些模塊包括離線模塊、更新模塊、在線模塊、靜默模塊(quiescemodule)、光模塊、以及路徑模塊。在一個實施例中,離線模塊在預期到I/O端口的重新配置時使得I/O端口離線。離線模塊能夠順序地或同時使單個端口、全部端口或所選端口離線。在一個實施例中,更新模塊更新對應于被離線模塊離線的I/O端口的端口資源。所述端口資源可以包括一個或多個端口拓撲屬性(topologyattribute)和/或一個或多個端口協議屬性。所述更新模塊可以操作而不引起對在其它I/O端口的每一個上的并行通信的干擾。在一個實施例中,端口拓撲屬性對應于光纖通道仲裁回路(FC-AL)拓撲結構。或者,端口拓撲屬性對應于結構(fabric)點到點(P-P)拓撲結構。或者,端口拓撲屬性對應于另一種拓撲結構。在進一步的實施例中,端口拓撲屬性可能對應于未配置的拓撲結構,其指示I/O端口未被配置為任何特定的拓撲結構。在一個實施例中,端口拓撲屬性對應于光纖通道協議(FCP)。或者,端口拓撲屬性對應于光纖連接(FiberConnection,FICON)協議。或者,端口拓撲屬性對應于另一個協議。在再一個實施例中,端口拓撲屬性可能對應于未配置的協議,其指示I/O端口未被配置為任何特定的協議。在另一個實施例中,更新模塊還通過管理用于端口資源更新的處理器控制線程分配(threadallocation)來最小化更新操作可能對于并行通信產生的影響。例如,更新模塊可能限制在給定時間發送到處理器的線程數,從而限制端口資源更新可能對在其它I/O端口的并行通信產生的影響。在一個實施例中,更新模塊可以實施一個隊列(queue)來限制發送到處理器的線程數。在一個實施例中,響應于端口資源更新,在線模塊使更新后的I/O端口重新在線(backonline)。在I/O端口重新在線后,I/O端口使用包括任何更新的端口拓撲屬性和/或端口協議屬性的更新端口資源來便利(facilitate)數據通信。在一個實施例中,靜默模塊使得在要被配置的I/O端口的通信靜默。在另一個實施例中,當第一端口被靜默時,靜默模塊允許在其它端口上的并行通信。這樣,靜默模塊不阻礙(prevent)在其它I/O端口的并行通信。在一個實施例中,光模塊關閉要被配置的I/O端口的光。在另一個實施例中,當第一端口離線時,光模塊不關閉其它端口的光。這樣,光模塊不妨礙在其它I/O端口的并行通信。在一個實施例中,路徑模塊管理在多端口通信適配器和諸如主機的遠程設備之間的邏輯路徑。更具體地講,路徑模塊可以管理在要被配置的I/O端口和諸如在遠程主機上的主機總線適配器(HBA)的遠程通信適配器之間的邏輯路徑。在另一個實施例中,路徑模塊在預期到I/O端口被離線模塊離線時去除該邏輯路徑。本發明的系統還用來配置端口。在一個實施例中,系統可以具體表現為包括多個端口的多端口適配器,其包括第一端口和第二端口,以及連接到該多端口適配器的更新模塊。在一個實施例中,更新模塊更新第一端口的端口資源,而同時允許在第二端口的并行通信。本系統的另一個實施例可以具體表現為一個通信系統,所述通信系統包括存儲系統、主機和配置裝置。在一個實施例中,所述存儲系統包括具有多個端口的通信適配器,其包含第一端口和第二端口。所述主機可以經由第二端口連接到存儲系統。所述配置裝置被配置來更新第一端口的端口配置和維護第二端口的現存端口配置。在再一個實施例中,該系統還可以包括在存儲系統中的處理器。所述處理器可以被配置來處理在第一端口的端口配置更新期間在主機和第二端口之間的數據通信。換句話說,端口配置操作不中斷在適配器其它端口上的并行通信。還提出一種信號承載介質來存儲程序,當該程序被執行時,該程序執行一個或更多操作來配置端口。在一個實施例中,該操作包括使得多端口通信適配器的第一端口離線以及更新第一端口的端口資源,同時允許在多端口通信適配器的第二端口上的并行通信。在另一個實施例中,該操作還可以包括響應于端口資源更新使第一端口重新在線(putonline)和/或管理用于端口資源更新的處理器控制線程分配。在另一個實施例中,該操作還可以包括使第一端口的通信靜默,而同時允許在第二端口的通信,關閉第一端口的光,而維持第二端口的光,和/或管理在第一端口和遠程適配器之間的邏輯路徑。還提出了一種用于配置(deploy)計算體系結構(infrastructure)的方法。該計算體系結構包括集成在計算系統中的計算機可讀代碼。在一個實施例中,與計算系統相組合,該計算機可讀代碼能夠配置端口。具體來說,在所公開的實施例中的方法主要包括配置能夠使能相對于所描述的裝置和系統的操作的執行上述功能的操作所需要的代碼。而且,所述代碼的操作的一些或全部基本上和當在信號承載介質上的程序被執行時執行的操作類似。貫穿本說明書的對于特征、優點的參考或類似的語言并不表示本發明可以實現的全部特征和優點都應當在本發明的單一實施例中。相反,參照所述特征和優點的語言應當被理解為連同實施例描述的特定的特征、優點或特性被包括在本發明的至少一個實施例中。于是,貫穿本說明書的對于特征和優點的討論以及類似的語言可以,而并非必須指的是同一個實施例。而且,所說明的本發明的特征、優點和特性可以以任何適當的形式組合在一個或多個實施例中。相關
技術領域:
的技術人員應當理解本發明可以以特定實施例中的一個或多個特定特征或優點沒有被實施的形式來實現。在其它例子中,可以從特定的實施例中認識到附加的特征和優點,而這些特定實施例可以并沒有出現在本發明的全部實施例中。通過下面的說明和所附權利要求,本發明的特征和優點將變得更加明顯,或者可以通過實施此后描述的本發明來學習到。為了容易地理解本發明的優點,將參照在所附附圖中說明的特定實施例來給出對上面簡單說明的本發明的更具體的說明。應當理解這些附圖僅僅描繪了本發明的實施例,并且因此不是為了限制部分發明的范圍的。將使用所述附圖對本發明進行額外的具體的細節的說明,其中圖1是說明傳統的適配器配置方法的示意性流程圖;圖2是說明通信系統的一個實施例的示意性方框圖;圖3是說明多端口通信適配器的一個實施例的示意性方框圖;圖4是說明配置裝置的一個實施例的示意性方框圖;圖5是說明端口配置方法的一個實施例的示意性流程圖;圖6是說明端口離線方法的一個實施例的示意性流程圖;圖7是說明端口更新方法的一個實施例的示意性流程圖;圖8是說明端口在線方法的一個實施例的示意性流程圖。具體實施例方式在本說明書中描述的許多功能單元被標為模塊,以便更具體地強調它們的實施獨立性。例如,模塊可以被實施為包括定制(custom)的VLSI電路或門陣列、諸如邏輯芯片的現貨供應(off-the-shelf)的半導體、晶體管、或是其它的分立組件的硬件電路。模塊還可以以諸如場可編程門陣列(fieldprogrammablegatearray)、可編程陣列邏輯(logic)、可編程邏輯設備等的可編程硬件設備來實施。模塊也可以以用于由各種類型的處理器執行的軟件來實施。例如,識別的可執行代碼的模塊可以包括一個或更多的計算機指令的物理塊或邏輯塊,這些計算機指令物理塊或邏輯塊例如可以被組織為對象、進程或函數。然而,被識別的模塊的可執行部分(executable)不需要在物理上處于一處,而是可以包括存儲在不同位置的全異(disparate)的指令,而當這些指令邏輯上結合在一起時,將構成該模塊并實現該模塊所聲明的目的。實際上,可執行代碼模塊可以是單個指令,或很多指令,并且甚至可以是分布在幾個不同的代碼段中、在不同的程序中,以及在幾個存儲器設備中。類似地,可操作數據可以在模塊中被識別和說明,并且可以以任何適當的形式來具體表現,以及組織為任何適當類型的數據結構。這些可操作數據可以集中為單一數據集,或分布在不同的位置,包括分布在不同的存儲設備中,而且可以至少部分地僅僅作為系統或網絡上的電子信號而存在。圖2說明了通信系統200的一個實施例。所說明的通信系統200包括三個連接到存儲系統208的主機202、204和206。存儲系統208在一個實施例中是配置來存儲數據的存儲服務器。在一個替代實施例中,通信系統200可以包括多個存儲系統208。第一和第二主機202和204經由交換機210冗余地(redundantly)連接到存儲系統208。第三主機206直接連接到存儲系統208。為了清楚的目的省略其它可能的(potential)連接設備(equipment)。雖然在所描述的實施例中示出了三個主機202、204和206,通信系統200可以用比主機202、204和206更少或更多的主機以及存儲系統208來操作。此外,主機202、204和206可以以變動冗余(varyingredundancy)和直接性的替換配置連接到存儲系統208。而且,所示的電纜連接可以包括光纖通道(FibreChannel)、企業系統連接(ESCON)、光纖連接(FICON)通道、小型計算機系統接口(SCSI)等。此外,通信系統200可以被配置來支持各種拓撲結構,包括點到點、交換結構、光纖通道仲裁回路(FC-AL)等。而且,通信系統200可以支持各種上層協議(ULP),包括光纖通道協議(FCP)和FICON(FC-SB-2)。所描述的主機202、204和206的每個包括一個或更多的主機總線適配器(hostbusadapter,HBA)212、214、216。每個HBA212、214和216被配置來管理在相應的主機202、204和206和存儲系統208之間傳送數據所需的大多數I/O操作。具體來講,每個主機總線適配器212、214和216被優化來快速地執行很多I/O操作,并且很少需要或不需要主機202、204和206的參與(involvement),最小化主機202、204和206的工作量。主機總線適配器212、214和216還可以被稱為通信適配器。所描述的存儲系統208包括多個冗余的主機適配器218、220和簇(cluster)222、224。主機適配器218、220基本上和上述的主機總線適配器212、214和216類似,并且也可以被稱為通信適配器。每個簇222、224可以包括一個或更多的多處理器226、228,以及到幾個邏輯單元號(logicalunitnumber,LUN)230、232、234、236的連接。在一個特定的實施例中,一個簇222可以主要訪問(primarilyaccess)偶數LUN230、234,而另一個簇224可以主要訪問奇數LUN232、236。在主機適配器218、220和簇222、224之間的冗余路徑,以及在多處理器226、228和LUN230、232、234、236之間的冗余路徑允許當發生諸如硬件故障等故障時進行數據存儲和訪問。此外,存儲系統208可以采用冗余獨立磁盤陣列(redundantarrayofindependentdisk,RAID),并且可能地鏡像(mirror)和分區(strip)所存儲的數據,以及計算和存儲校驗數據。對于所說明的主機202、204和206之一的任何參照被理解為是指主機202、204和206中的任何一個或全部,除非另有說明。同樣,對于所述主機總線適配器212、214和216之一的任何參照被理解為是指通信適配器的任何一個或全部,包括主機總線適配器212、214和216和/或主機適配器218、220,除非另有說明。類似地,對于冗余的所說明的簇222、224、多處理器226、228或者LUN230、232、234、236之一的參照被理解為分別是指任何對應的設備,除非另有說明。貫穿本說明書,為了描述本發明簡短和清楚的目的,將結合在主機總線適配器212、214、216和主機適配器218、220中具體使用的處理器和存儲器來描述各種實施例。在此說明的實施例僅是代表性的范例,而不是為了限制由權利要求書所定義的本發明的范圍。本領域的技術人員應當理解特定的實施例可以在包括諸如微處理器的處理器、專用集成電路(ApplicationSpecificIntegratedCircuit,ASIC)等、執行代碼映像(codeimage)并允許使用代碼覆蓋(codeoverlay)來更新該代碼映像的任何計算機或電氣系統中實施。圖3描述了基本上和圖2的主機適配器218、220類似的多端口通信適配器300的一個實施例。所示的通信適配器300包括處理器(CPU)302、一個或多個閃存存儲器設備304、一個或多個可編程邏輯陣列(PLA)306,多個I/O端口308a-d、本地存儲器設備310以及配置裝置312。雖然在圖3中示出了4個I/O端口308a-d,多端口通信適配器300的替代實施例可以具有更少或更多的I/O端口308。任何對于所示的I/O端口308a-d之一的參照應當理解為是指I/O端口308a-d的任何一個或全部,除非另有說明。配置裝置312的一個例子被參照圖4來更詳細說明。在一個實施例中,電子存儲器設備310可以存儲一個或多個端口資源314。例如,電子存儲器設備310可以為每個I/O端口308存儲一個端口資源314。端口資源314包括對應的I/O端口308的屬性。在一個實施例中,端口資源314可以包括端口拓撲屬性316和端口協議屬性318。端口拓撲屬性316與對應的I/O端口308所采用的拓撲結構相關。類似地,端口協議屬性318與對應的I/O端口308所采用的協議相關的。在一個實施例中,多端口通信適配器300執行高速I/O操作,諸如在主機202和存儲系統208之間。CPU202被配置來在多端口通信適配器300上執行操作指令。閃存存儲器設備304和可編程邏輯陣列(PLA)306與CPU302交互(interact)以適當地執行I/O操作。此外,I/O端口308a-d允許多端口通信適配器300和諸如主機202的其它設備傳遞(communicate)數據和控制信息。這種連接可以是直接連接或經由集線器、交換機210和/或其它連接設備。在一個實施例中,本地存儲器設備310可以是諸如隨機存取存儲器(RAM)、非易失性隨機存取存儲器(NVRAM)等的高速主存儲器。圖4描述了基本上和圖3的配置裝置312類似的配置裝置400的一個實施例。所說明的配置裝置400包括離線模塊402、更新模塊404、在線模塊406、靜默模塊408、光模塊410和路徑模塊412。雖然配置裝置312的一個實施例被描述為在通信適配器300中,配置裝置400或者配置裝置400的一個或更多的模塊可以連接到通信裝置300,以及存儲在處理器226上或者是存儲在存儲系統208中或連接到存儲系統208的另一個設備上。在一個實施例中,離線模塊402預期到I/O端口308a的重新配置而將I/O端口308a離線。離線模塊402能夠使得單一I/O端口308a、全部I/O端口308a-d、或所選擇的端口308順序地或同時離線。在另一個實施例中,離線模塊402可以被配置為由于另一個原因而使得I/O端口308a離線,包括響應于一個配置請求。在一個實施例中,更新模塊404更新對應于由離線模塊402離線的I/O端口308a的端口資源314。更新模塊404可以在不引起,如果存在,每個其它I/O端口308b-d的并行通信的干擾的情況下進行操作。如上所示,端口資源314可以包括一個或多個端口拓撲屬性316或者一個或多個端口協議屬性318。在一個實施例中,端口拓撲屬性316對應于光纖通道仲裁回路(FC-AL)拓撲結構。或者,端口拓撲屬性316對應于結構點對點(P-P)拓撲結構。或者,端口拓撲屬性316對應于另一個拓撲結構。在再一個實施例中,端口拓撲屬性316可以對應于未配置的拓撲結構,其指示I/O端口308a未被配置為任何特定的拓撲結構。在一個實施例中,端口協議屬性318對應于光纖通道協議(FCP)。或者,端口協議屬性318對應于光纖連接(FICON)協議。或者,端口協議屬性318對應于另一個協議。在再一個實施例中,端口協議屬性318可以對應于未配置協議,其指示I/O端口308a未被配置為任何特定的協議。在另一個實施例中,更新模塊404還通過管理用于端口資源314更新的處理器控制線程分配來最小化更新操作可能對并行通信產生的影響。例如,更新模塊404可以限制在一個給定時間內發送到處理器302的線程數,從而限制端口資源314更新對于其它I/O端口308b-d的并行通信可能產生的影響。在一個實施例中,更新模塊404可以實施一個隊列來限制發送到處理器302的線程數。在一個實施例中,在線模塊406響應于端口資源314更新使更新的I/O端口308a重新在線。在I/O端口308a重新在線后,該I/O端口可以使用包括更新的端口拓撲屬性316和更新的端口協議屬性318的更新端口資源314來便利數據通信。在一個實施例中,靜默模塊408靜默在要被配置的I/O端口308a的通信。在另一個實施例中,當第一端口308a被靜默時,靜默模塊408允許在其它I/O端口308b-d上的并行通信。這樣,靜默模塊408不會妨礙在其它端口308b-d上的并行通信。在一個實施例中,光模塊410關閉在要被配置的I/O端口308a的光。在另一個實施例中,當第一端口308a離線時,光模塊410不關閉在其它端口308b-d的光。這樣,光模塊410不會妨礙在其它端口308b-d上的并行通信。在一個實施例中,路徑模塊412管理在多端口通信適配器300和諸如主機202的遠程設備之間的邏輯路徑。而且,具體來說,路徑模塊412可以管理在要被配置的I/O端口308a和諸如在遠程主機202上的主機總線適配器(HBA)212的遠程通信適配器之間的邏輯路徑。在另一個實施例中,路徑模塊412預期到I/O端口308a被離線模塊402離線,而去除該邏輯路徑。圖5描述了結合圖4的配置裝置400來實施的端口配置方法500的一個實施例。在一個實施例中,所說明的端口配置方法500可以響應于端口配置請求而開始。這種端口配置請求可以從連接到存儲系統208的網絡服務器或管理控制臺(console)(未示出)接收。離線模塊402使得所選擇的端口308a離線(步驟502)。如上所述,在多端口通信適配器300上的其它端口308b-d保持在線的同時,只將單個I/O端口308a設置為離線(步驟502)。參照圖6說明離線操作502的一個更詳細的例子。更新模塊404隨后根據所述配置請求或者從網絡服務器或管理控制臺接收的其它命令來配置所選的I/O端口308a(步驟504)。如上所述,當剩余的I/O端口308b-d未被重新配置的同時,單個I/O端口308a可以被重新配置(步驟504)。此外,當剩余的I/O端口308b-d處理并行數據通信時,單個I/O端口308a可以被重新配置。將參照圖7說明配置操作的更詳細的例子(步驟504)。在一個實施例中,在線模塊406隨后使所選的端口308a重新在線(步驟506)。如上所述,當剩余的I/O端口308b-d保持在線并且被允許處理并行通信的同時,單個I/O端口308a可以被重新在線(步驟506)。參照圖8說明在線操作506的一個更詳細的例子。圖6描述了由圖5的端口配置方法500的離線操作502的例子給出的端口離線方法600的一個實施例。通常,端口離線方法600可以便利于靜默在所選擇的端口308a上的活動,并設置端口308a物理離線(physicallyoffline),包括例如停止(drop)在光纖通道接口上的光。在一個更具體的實施例中,所說明的端口離線方法600開始,并且諸如存儲系統208的存儲服務器發送端口離線命令到多端口通信適配器300,以將指定的端口308a離線(步驟602)。該適配器300隨后從存儲服務器208接收端口離線命令(步驟604)。在一個實施例中,該適配器300隨后可以通知FICONULP部件指定的端口正在離線。然后,該適配器300靜默在所選端口308a上的I/O活動(步驟606)。在一個實施例中,FICONULP執行靜默操作606。在另一個實施例中,靜默模塊408可以執行靜默操作606。在該靜默周期結束后,任何對于所選的端口308a的剩余(leftover)活動任務都被終止。在一個實施例中,路徑模塊412隨后通知所有邏輯路徑發起者預期的路徑的消除和所述路徑正在離線(步驟608)。路徑模塊412隨后取消所選端口308a的邏輯路徑,并且執行對于這些邏輯路徑的系統重置(步驟610)。在離線之前,配置裝置400可以執行其它管理(administrative)操作,包括通知FCPULP部件所選擇的端口308a被離線,終止發起者活動(initiatoractivity),設置要注銷(unregistered)的遠程端口資源,去除和所選端口308a相關的物理邏輯路徑配置信息,和/或靜默FCPI/O活動。離線模塊402隨后使得所選端口308a離線(步驟612),這可以包括發布命令到所選端口308a使其離線。此外,光模塊410關閉到所選端口308a的光(步驟614)。如上所述,然而,使得端口308a離線(步驟612)和停止到端口308a的光(步驟614)并不一定會影響在多端口通信適配器300上的其它端口308b-d的并行通信,如果存在這種并行通信的話。在一個實施例中,所選的端口308a被置于一種狀態,以至于端口308a保留關鍵配置信息,允許該端口308a隨后被快速地重新在線,而不需要對適配器300進行全面配置或重置。多端口通信適配器300然后發送端口離線通知到存儲服務器208,指示所選端口308a離線(步驟616)。存儲服務器208然后從適配器300接收端口離線通知(步驟618),并完成端口離線請求。所描述的端口離線方法600隨后結束。圖7描述了由圖5的端口配置方法500的配置操作504的例子給出的端口更新方法700的一個實施例。通常,端口更新方法700可以便利于設置對應于所選端口308a的端口資源314的期望的端口拓撲結構和協議屬性316、318。在一個實施例中,端口更新方法700響應于在存儲服務器208接收的端口離線通知而開始(步驟618)。在一個更具體的實施例中,所說明的端口更新方法700開始,并且存儲服務器208從用戶接收端口配置請求(步驟702)。在一個實施例中,端口配置請求包括端口拓撲屬性316和/或端口協議屬性318。如上所述,可以從網絡服務器、管理控制臺或其它圖形用戶界面(GUI)應用接收端口配置請求(步驟702)。響應于端口配置請求,存儲服務器208可以更新在存儲服務器208上或連接到存儲服務器208的持續存儲器(persistentmemory)中的端口資源屬性316、318(步驟704)。存儲服務器208隨后向多端口通信適配器300發送端口配置命令(步驟706),所述多端口通信適配器300接收到該命令(步驟708),并且根據該端口配置請求更新本地端口資源屬性316、318(步驟710)。在一個實施例中,更新模塊404更新本地端口資源314,包括端口拓撲屬性316和/或端口協議屬性318。多端口通信適配器300隨后向存儲服務器208發送配置完成通知(步驟712),指示更新了所選端口308a的端口資源屬性316、318。存儲服務器208隨后從適配器300接收配置完成通知(步驟714),并且完成端口配置請求。隨后所描述的端口更新方法700結束。圖8描述了由圖5的端口配置方法500的在線操作506的例子給出的端口在線方法800的一個實施例。通常,端口在線方法800可以便利在端口配置后,以更新的端口資源屬性316、318使所選端口308a重新在線。在一個實施例中,端口在線方法800響應于在存儲服務器208接收的配置完成通知而開始(步驟714)。在一個更具體的實施例中,所說明的端口在線方法800開始,并且存儲服務器208發送端口在線命令到多端口通信適配器300(步驟802)。適配器300隨后從存儲服務器208接收端口在線命令(步驟804),并且根據更新的端口資源屬性316、318配置端口308a(步驟806)。在一個實施例中,更新模塊404配置端口308a(步驟806)。在另一個實施例中,適配器300可以發布一個命令來異步地配置端口308a而使其在線(步驟806)。在這個適配器300上的其它端口308b-d可以被允許繼續不中斷地、并行通信活動。在端口配置操作806完成后,光模塊410開啟在所選端口308a的光(步驟808),并且在線模塊406使所選的端口308a重新在線。多端口通信適配器300隨后向存儲服務器208發送端口在線通知(步驟812),其指示所選端口308a重新在線。存儲服務器208隨后從適配器300接收端口在線通知,并且完成端口在線請求(步驟814)。所描述的端口在線方法800隨即結束。因此,提供具有配置裝置400的通信適配器300是有益的,該配置裝置400選擇性地配置I/O端口308a,而不中斷在同一適配器300上的其它I/O端口308b-d的并行通信。如上所述,這種配置裝置400便利于使所選端口308a離線,更新所選端口308a的端口資源314、根據更新資源屬性316、318配置所選的端口308a,并使所選端口308a重新在線。存在各種理由來更新和多端口通信適配器300上的特定I/O端口308a相關的端口資源屬性316、318。例如,可以在通信系統200中選擇性地實施新技術,其只影響存儲服務器208和主機202之間的物理和/或邏輯路徑的一個子集。端口資源屬性316、318可以僅僅為適應這些新的路徑而被更新,同時為未改變的路徑保持現存的端口資源屬性316、318。在共享硬件資源的情況下出現了另一個原因。例如,單個存儲服務器208可以在多個客戶之間共享。對應的通信系統200的硬件能夠維持到這些多個客戶的連接,并且在客戶之間切換以允許不同的客戶在不同的時間對存儲服務器208進行訪問。例如,一個客戶可能期望在白天進行訪問,而另一個客戶可能期望在對應第一個客戶的空閑時間(offhour)進行訪問。對多端口通信適配器300中的單個端口308a進行配置,以便在為訪問第一端口308a的客戶重新配置第一端口308a的同時,允許連接到同一適配器300上的其它端口308b-d的其他客戶能夠繼續并行通信。當通信系統200包括諸如雙(dual)存儲服務器208的多個存儲服務器208的情況下,可以在這種通信系統200中實現前述的裝置、系統和方法。例如,可以對多個存儲服務器208實施端口更新方法700,以更新在連接到多個存儲服務器208中的每一個的持續存儲器中的端口資源314。特定實施例的其它方面可以在多個存儲服務器208上實施,以利用具有多個存儲服務器208的通信系統200的冗余和性能優勢。包括在此的示意性流程圖被一般地描述為邏輯流程圖。同樣地,所描述的次序和有標記的操作指示本方法的一個實施例。其它的操作和方法可以被視為與所說明的方法的一個或多個操作或部分操作在功能、邏輯或效果上等同。此外,采用的格式和符號被提供用來解釋該方法的邏輯操作,并且被理解為不限制該方法的范圍。雖然在流程圖中可以采用各種箭頭類型和線的類型,它們被理解為不是用來限制相應方法的范圍的。實際上,某些箭頭或其它連接符僅僅用于指示該方法的邏輯流。例如,一個箭頭可以指示在所說明方法的列舉的操作之間未指定持續時間的等待或監視期間。此外,在特定方法中發生的次序可以嚴格或者可以不嚴格地遵循所示的對應操作的次序。貫穿本說明書的“一個實施例”、“實施例”等類似語言意味著和該實施例相關的特定特征、結構或特性被包括在本發明的至少一個實施例中。于是,“在一個實施例中”、“在實施例中”的短語以及貫穿本說明書的類似語言可能但并不必須全部指的是同一個實施例。對于信號承載介質的參照可以采用任何能在數字處理裝置上產生信號、導致信號產生、或導致執行機器可讀(machine-readable)指令的程序的形式。信號承載介質可以具體表現為傳輸線、光盤、數字化視頻盤、磁帶、Bernoulli驅動器、磁盤、打孔卡、快閃存儲器、集成電路,或其它數字處理裝置存儲器設備。而且,所描述的本發明的特征、結構或特性可以在一個或多個實施例中以任何合適的方式組合。在下面的描述中,提供了多種特定的細節,例如編程、軟件模塊、用戶選擇、網絡交易、數據庫查詢、數據庫結構、硬件模塊、硬件電路、硬件芯片等,以提供對于本發明的實施例的全面理解。然而,相關領域的技術人員應當理解,本發明可以在不使用一個或多個特定細節,或者使用其它方法、組件、材料等的情況下實施。在其它的例子中,對于公知的結構、材料或操作未示出或未進行詳述以避免混淆本發明的各個方面。本發明在不脫離其精神或主要特性的情況下可以以其它的特定形式實施。所描述的實施例被認為是在各方面都僅僅作為說明的目的而并非限制的目的。因此,本發明的范圍是由所附權利要求而不是前述說明限定的。在權利要求等同物的意思和范圍內的所有改變都由此范圍所保護。權利要求1.一種用于配置端口的裝置,所述裝置包括離線模塊,其被配置來使多端口通信適配器的第一端口離線;和更新模塊,其被連接到所述離線模塊,所述更新模塊被配置來更新所述第一端口的端口資源,同時允許在多端口通信適配器的第二端口上的并行通信。2.如權利要求1所述的裝置,還包括連接到所述更新模塊的在線模塊,所述在線模塊被配置來響應于端口資源更新而使所述第一端口在線。3.如權利要求1所述的裝置,其中,所述端口資源包括端口拓撲結構。4.如權利要求3所述的裝置,其中,所述端口拓撲結構包括光纖通道仲裁回路(FC-AL)拓撲結構、結構點到點(P-P)拓撲結構、以及未配置的拓撲結構中的一個。5.如權利要求1所述的裝置,其中,所述端口資源包括端口協議。6.如權利要求5所述的裝置,其中,所述端口協議包括光纖通道協議(FCP)、光纖連接(FICON)協議、以及未配置的協議中的一個。7.如權利要求1所述的裝置,還包括連接到所述離線模塊的靜默模塊,所述靜默模塊被配置來靜默在所述第一端口的通信,同時允許在所述第二端口的通信。8.如權利要求1所述的裝置,還包括連接到所述離線模塊的光模塊,所述光模塊被配置來關閉在所述第一端口的光,同時維持在所述第二端口的光。9.如權利要求1所述的裝置,還包括連接到所述離線模塊的路徑模塊,所述路徑模塊被配置來管理在所述第一端口和遠程適配器之間的邏輯路徑。10.如權利要求9所述的裝置,其中,所述路徑模塊還被配置來在預期到使所述第一端口離線時去除所述邏輯路徑。11.如權利要求1所述的裝置,其中,所述更新模塊還被配置來通過管理用于端口資源更新的處理器控制線程分配來最小化由于所述端口資源更新導致的在所述第二端口的通信處理性能的降低。12.一種用于配置端口的系統,所述系統包括具有多個端口的多端口適配器,包括第一端口和第二端口;和連接到所述多端口適配器的更新模塊,所述更新模塊被配置來更新所述第一端口的端口資源,同時允許在所述第二端口上的并行通信。13.如權利要求12所述的系統,其中,所述端口資源包括端口拓撲結構和端口協議。14.如權利要求12所述的系統,還包括用于存儲所述端口資源的電子存儲器設備。15.一種用于配置端口的系統,所述系統包括具有通信適配器的存儲系統,所述通信適配器具有多個端口,包括第一端口和第二端口;經由所述第二端口連接到所述存儲系統的主機;和連接到所述通信適配器的配置裝置,所述配置裝置被配置來更新所述第一端口的端口配置,并維持所述第二端口的現存端口配置。16.如權利要求15所述的系統,還包括在所述存儲系統中的處理器,所述處理器被配置來在所述第一端口的端口配置更新期間,處理在所述主機和所述第二端口之間的數據通信。17.一種確實地具體化可由數字處理裝置執行的機器可讀指令的程序、以執行用于配置端口的操作的信號承載介質,所述操作包括使多端口通信適配器的第一端口離線;和更新所述第一端口的端口資源,同時允許在所述多端口通信適配器的第二端口上的并行通信。18.如權利要求17所述的信號承載介質,其中,所述端口資源包括端口拓撲結構和端口協議中的至少一個。19.如權利要求17所述的信號承載介質,其中,所述指令還包括響應于端口資源更新而使所述第一端口在線的操作。20.如權利要求17所述的信號承載介質,其中,所述指令還包括管理用于端口資源更新的處理器控制線程分配的操作。21.如權利要求17所述的信號承載介質,其中,所述指令還包括用于靜默在所述第一端口的通信,同時允許在所述第二端口的通信的操作。22.如權利要求17所述的信號承載介質,其中,所述指令還包括關閉在所述第一端口的光,而維持在所述第二端口的光的操作。23.如權利要求17所述的信號承載介質,其中,所述指令還包括管理在所述第一端口和所述遠程適配器之間的邏輯路徑的操作。24.一種用于配置計算機體系結構的方法,包括把計算機可讀代碼集成到計算機系統中,其中所述代碼和計算機系統的相結合能夠通過執行以下步驟來配置端口使多端口通信適配器的第一端口離線;和更新所述第一端口的端口資源,同時允許在多端口通信適配器的第二端口上的并行通信。25.如權利要求24所述的方法,其中,所述端口資源包括端口拓撲結構和端口協議中的至少一個。26.如權利要求24所述的方法,其中,所述和計算機系統結合的代碼還能夠響應于端口資源更新而使所述第一端口在線。27.如權利要求24所述的方法,其中,所述和計算機系統結合的代碼還能夠管理用于端口資源更新的處理器控制線程分配。28.一種用于端口配置的裝置,所述裝置包括使多端口通信適配器的第一端口離線的裝置;和更新所述第一端口的端口資源,同時允許在多端口通信適配器的第二端口上的并行通信的裝置。29.如權利要求28所述的裝置,還包括用于最小化由于所述第一端口的端口資源更新導致的在所述第二端口的通信處理性能的降低的裝置。30.如權利要求28所述的裝置,還包括用于管理用于端口資源更新的處理器控制線程分配的裝置。全文摘要本發明公開了一種用于在多端口通信適配器中配置端口的裝置、系統和方法。所述裝置包括離線模塊和更新模塊。所述離線模塊使所述多端口通信適配器的第一端口離線。所述更新模塊更新所述第一端口的端口資源,同時允許在所述多端口通信適配器的第二端口上的并行通信。所述端口資源可以包括端口拓撲結構和/或端口協議。而且,所述裝置可以包括在線模塊,其響應于端口資源更新而使所述第一端口重新在線。其優點在于,該裝置更新端口資源,并且根據端口資源屬性配置所選擇的端口,而不中斷在該適配器的其它端口上的并行通信,如果存在這種并行通信的話。文檔編號H04L29/06GK1777177SQ20051009922公開日2006年5月24日申請日期2005年9月7日優先權日2004年11月18日發明者馬克·S·貝尤斯,羅杰·G·哈索恩,伯恩哈德·勞布利申請人:國際商業機器公司