專利名稱::一種防止無用連接占用系統(tǒng)資源的iSCSI方法及裝置的制作方法
技術領域:
:本發(fā)明涉及通信
技術領域:
,尤其涉及一種防止無用連接占用系統(tǒng)資源的iSCSI方法及裝置。
背景技術:
:iSCSI(internetSmallComputerSystemInterface,基于internet的SCSI傳輸協議)的實現可以在IP(InternetProtocol,國際互耳關網協議)網絡上應用SCSI功能,充分利用了現有IP網絡的成熟性和普及性等優(yōu)勢,允許用戶通過TCP(TransmissionControlProtocol,傳輸控制協議)/IP網絡來構建SAN(StorageAreaNetwork,存儲區(qū)域網絡),為眾多企業(yè)對經濟合理和便于管理的存儲設備提供了直接訪問的能力。iSCSI協議層次模型如圖l所示,自底層向上層劃分包括以太網層、TCP/IP層、iSCSI協議層和SCSI應用層。首先,SCSI應用層構建和接收SCSICDB(CommandDescriptorBlock,命令描述塊);然后,iSCSI協議層構建和接收iSCSIPDU(ProtocolDataUnit,協議數據單元),并通過一個或者多個TCP連接發(fā)送和接收iSCSIPDU,這組TCP連接組成了一個Initiator-Target會話。最后,在Initiator和Target之間的通信由一個或者多個TCP連接完成,TCP連接負責傳送包含控制消息、SCSI命令、參數和數據的iSCSIPDU。iSCSI現在監(jiān)控領域使用較為廣泛,下面就以監(jiān)控的方案做例子來講解。圖2中描述了監(jiān)控行業(yè)中圖像數據采集和存儲架構,左側是4路攝像頭數據采集源,中間經過視頻編碼器中的DSP(DigitalSignalProcessor,數據信號處理器)編碼成固定格式再通過iSCSI連接存儲到IPSAN存儲設備上。其中,每個攝像頭都對應一路數據存儲,也叫一個通道,每個通道都與IPSAN存儲設備建立一個iSCSIinitiator(發(fā)起端)和iSCSItarget(目標端)的TCP連接,所以4路攝像頭就對應有4個iSCSItarget,每個iSCSItarget下面綁定有一個SAN資源來分配給編碼器存儲數據?,F有方案中特別是在監(jiān)控領域,往往存在著很多攝像頭及DSP編碼器,也就意味著有許多iSCSIinitiator需要連接同一臺IPSAN存儲設備,當數十個甚至上百個iSCSIinitiator同時連接到一臺IPSAN存儲設備上時,需要建立相應的上百個TCP連接,維持這些TCP連接需要消耗IPSAN存儲設備大量的CPU(CenterProcessUnit,中央處理單元)和內存資源,因此對IPSAN存儲設備的TCP并發(fā)連接性能有較高要求。如果攝像頭或者視頻編碼器由于自身原因或者網絡原因發(fā)生異常中斷,需要重新建立iSCSI連接,則相應需要重新建立TCP連接,此時IPSAN存儲設備的iSCSItarget還會保留該舊iSCSI連接相當長時間,而此時視頻編碼器或網絡的故障恢復后,initiator會重新發(fā)起iSCSI連接,還需要建立對應的TCP連接。這樣就會造成在IPSAN存儲設備的iSCSItarget形成同一路通道有兩個iSCSI連接,一個是老的iSCSI連接,?;顣r間還未到,所以一直處于time—wait狀態(tài),另外一個是新發(fā)起的iSCSI連接,是正常連接,處于establish狀態(tài)。這樣的現象造成后,當網絡中有多個iSCSI重連請求發(fā)給IPSAN存儲設備后,IPSAN存儲設備會浪費大量的資源消耗在無用的老iSCSI連接上,而且一旦超過其承受的最大連接數上限,IPSAN存儲設備不能再為新的iSCSI連接分配內存和CPU資源,導致視頻編碼器不能進行存儲業(yè)務,更有甚者若存儲系統(tǒng)長時間處于系統(tǒng)資源耗盡的狀態(tài),會造成自身的連接性能下降。
發(fā)明內容本發(fā)明提供了一種防止無用連接占用系統(tǒng)資源的方法及裝置,使得IPSAN存儲設備能夠對新發(fā)起的iSCSI連接進行判斷,從而主動中斷原有iSCSI連接,達到釋放舊iSCSI連接資源的目的。本發(fā)明提供了一種防止無用連接占用系統(tǒng)資源的方法,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,所述方法包括以下步驟所述iSCSI目標端接收所述iSCSI發(fā)起端發(fā)送的請求消息,所述請求消息中攜帶iSCSI連接通道標識;所述iSCSI目標端將所述通道標識與本地表項中的通道標識比較,判斷所述iSCSI連接是否為重復iSCSI連接,如果不是,則將所述iSCSI連接號加入所述本地表項中;如果是,則將原有iSCSI連接刪除,維持新連接。還包括所述iSCSI目標端接收到所述iSCSI發(fā)起端正常發(fā)出logout報文,刪除iSCSI連接,并將相應的表項條目隨著iSCSI連接的刪除而刪除。所述iSCSI發(fā)起端連接多個硬件設備,所述通道標識為硬件標識加通道號。所述硬件標識為々某體接入控制MAC地址。所述請求消息包括發(fā)現會話DiscoverSession或者正常操作會話NormalOperationalSession。本發(fā)明提供了一種iSCSI發(fā)起端,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,包括生成模塊,用于生成請求消息,所述請求消息中攜帶iSCSI連接通道標識;發(fā)送模塊,與所述生成模塊連接,用于向所述iSCSI目標端發(fā)送所述請求消息。所述發(fā)送模塊,還用于向iSCSI目標端正常發(fā)出logout報文,刪除iSCSI連接。所述iSCSI發(fā)起端連接多個硬件設備,所述通道標識為硬件標識加通道本發(fā)明提供了一種iSCSI目標端,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,包括表項維護模塊,用于維護iSCSI發(fā)起端與iSCSI目標端之間通道號與TCP連接號的對應關系;接收模塊,用于接收所述iSCSI發(fā)起端發(fā)送的請求消息,所述請求消息中攜帶iSCSI連接通道標識;比較模塊,與所述接收模塊和所述表項維護模塊連接,用于將所述通道標識與本地表項中的通道標識比較,判斷所述iSCSI連接是否為重復iSCSI連接,處理模塊,與所述比較模塊連接,用于所述iSCSI連接不為重復iSCSI連接,則將所述iSCSI連接號加入所述本地表項中;如果所述iSCSI連接是重復iSCSI連接,則將原有iSCSI連接刪除,維護新連接。所述處理模塊,還用于接收到所述iSCSI發(fā)起端正常發(fā)出logout報文,刪除iSCSI連接,并將相應的表項條目隨著iSCSI連接的刪除而刪除。與現有技術相比,本發(fā)明具有以下優(yōu)點本發(fā)明中,IPSAN存儲設備通過通道唯一標識,對接收的iSCSI連接進行判斷,如果是新發(fā)起的iSCSI連接,則主動中斷原有重復的iSCSI連接,從而防止無用iSCSI連接占用系統(tǒng)資源,防止類似攻擊,增加存儲系統(tǒng)的可靠性。圖1是現有技術中iSCSI協議層次模型示意圖2是現有技術中現有監(jiān)控環(huán)境中的架構示意圖3是本發(fā)明中iSCSI連接建立流程圖4是本發(fā)明中一種防止無用連接占用系統(tǒng)資源的方法圖5是本發(fā)明中登錄請求報文格式示意圖6是本發(fā)明中一種iSCSI發(fā)起端結構圖7是本發(fā)明中一種iSCSI目標端結構圖。具體實施例方式本發(fā)明的核心思想是利用iSCSI發(fā)起端(例如視頻編碼器)發(fā)送的DiscoverSession(發(fā)現會話)或者NormalOperationalSession(正常操作會話)中的Login才艮文中的協議保留字段,加入通道的唯一標識(如通道號),同時在iSCSI目標端(例如IPSAN存儲設備)建立一個表項來存放該通道號;iSCSI發(fā)起端遇到錯誤發(fā)起重連時,iSCSI目標端能根據重連請求中的通道號及本地表項中的通道號來唯一確認該連接是否為原iSCSI發(fā)起端產生的新連接,若是新連接,則中斷iSCSI發(fā)起端與iSCSI目標端之間的原iSCSI連接,維護該新連接,其中,刪除iSCSI連接包括中止iSCSI會話,并關閉相應的TCP連接。iSCSI協議定義了兩種類型的會話DiscoverySession(發(fā)現會話)和NormalOperationalSession(正常4喿4乍會"i舌)。DiscoverySession主要用于iSCSI發(fā)起端通過iSCSItargetportal發(fā)現所有的iSCSI目標端,為接下來iSCSI發(fā)起端與iSCSI目標端連接做準備。NormalOperationalSession用于某個iSCSI發(fā)起端與特定的iSCSI目標端建立連接,協商參數,為雙方進行數據讀寫作準備。DiscoverySession和NormalOperationalSession過程中都包括采用Login請求建立iSCSI連接的過程,因此,本發(fā)明可以使用其中任一種對Login請求進行擴展,實現本發(fā)明目的。下面以DiscoverySession為例對iSCSI連接的建立過程進行說明,如圖3所示,包括以下步驟步驟301,iSCSI發(fā)起端與iSCSI目標端建立TCP連接;步驟302,在TCP建立連接之后,iSCSI發(fā)起端向iSCSI目標端發(fā)起Loginrequest(登錄請求);iSCSI目標端向iSCSI發(fā)起端回應Loginresponse(登錄響應),并通告TPGT(TargetPortalGroupTag,目標入口組標記)。iSCSI目標端與iSCSI發(fā)起端之間的iSCSI連接建立完成;步驟303,iSCSI發(fā)起端與iSCSI目標端進行安全認證;步驟304,iSCSI發(fā)起端與iSCSI目標端進行參數協商;步驟305,iSCSI發(fā)起端獲得可用資源;iSCSI發(fā)起端詢問所有iSCSI目標端名稱,可用iSCSI目標端向iSCSI發(fā)起端應答可用的iSCSI目標端名稱;步驟306,當需要關閉會話時,iSCSI發(fā)起端向iSCSI目標端發(fā)送結束會話請求,iSCSI目標端向iSCSI發(fā)起端發(fā)送結束會話應答;若iSCSIinitiator與iSCSItarget之間沒異常,正常發(fā)出logout報文并中止iSCSI會話,由于該logout報文屬于正常報文,其中不攜帶iSCSI連接通道標識,其作用為通知iSCSItarget會話結束,將對應的iSCSI會話中止。步驟307,由于iSCSI發(fā)起端與iSCSI目標端之間的iSCSI會話終止了,也不需要對應的TCP連接,因此,可以關閉iSCSI發(fā)起端與iSCSI目標端之間的TCP連接,那么相應的表項條目隨著TCP連接的關閉而刪除。以下結合圖3的DiscoverySession過程,對本發(fā)明的一種防止無用連接占用系統(tǒng)資源的方法進行詳細說明,如圖4所示,包括以下步驟步驟401,iSCSI目標端建立Channel-TCP表項;如表1所示,包含兩個元素Channel號(通道號)和TCP連接號,每個通道對應唯一TCP連接號,每個iSCSI連接對應一個TCP連接號。表1:<table>tableseeoriginaldocumentpage9</column></row><table>步驟402,iSCSI目標端收到iSCSI發(fā)起端發(fā)送的Loginrequest;Loginrequest中增加了"通道號"字段,例如在如圖5所示的報文格式中的保留字l殳里增加channel標識,該channel標識必須全局。舉一,如果iSCSI發(fā)起端為視頻編碼器,且其只連接一個攝像頭,則只需要channel號就可以唯一標識一個連接;如果連接多個攝像頭,可以如下設置在iSCSI發(fā)起端使用硬件標識(如MAC地址)+通道號來唯一確定,比如一個編碼器A上連接有四路攝像頭,那么channel號才尤可以分另'J為hardwarecodeA1、hardwarecodeA2、hardwarecodeA3、hardwarecodeA4,如表2所示表2:<table>tableseeoriginaldocumentpage9</column></row><table>步驟403,在iSCSI目標端收到Loginrequest后,讀耳又Loginrequest中channel字段的標識,同時繼續(xù)iSCSI連接的建立流程。當iSCSI連接建立完畢之后,與本地Channel-TCP表項中的條目進行匹配查找,確定是否有重復的條目;如果有,則轉步驟404,如果沒有,則轉步驟405;步驟404,建立新iSCSI連接,并中斷舊iSCSI連接,并刪除舊iSCSI連接的表項;轉步驟406;具體為iSCSI發(fā)起端導致TCP連接沒有正常關閉,而此時又重新發(fā)起iSCSI連接的情況下,iSCSI目標端再為之重新分配新連接請求的同時也會比較新的channel號與本地表項中的通道號有沒有匹配的條目,如果有則刪除舊的iSCSI連接(即根據表中TCP連接號刪除對應的TCP連接),只維護新iSCSI連接。步驟405,建立新iSCSI連接,并建立相應表項,轉步驟506;具體為對于第一次Loginrequest,iSCSI目標端本地表項中沒有相應的報文,iSCSI目標端將channel值與TCP連接號——對應起來作為一個條目存力文在本地表項中。步驟406,iSCSI目標端收到iSCSILogout請求;步驟407,iSCSI目標端關閉連接,并刪除相應表項。本發(fā)明提供了一種iSCSI發(fā)起端,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,如圖6所示,包括生成模塊610,用于生成請求消息,所述請求消息中攜帶iSCSI連接通道標識;例如增加channel標識,該channel標識必須全局^舉一,如果iSCSI發(fā)起端為視頻編碼器,且其只連接一個攝像頭,則只需要channel號就可以唯一標識一個連接;如果連接多個攝像頭,可以如下設置在iSCSI發(fā)起端使用硬件標識(如MAC地址)+通道號來唯一確定。發(fā)送模塊620,與生成模塊610連接,用于向所述iSCSI目標端發(fā)送所述請求消息。發(fā)送模塊620,還用于向iSCSI目標端正常發(fā)出logout報文,刪除iSCSI連接。本發(fā)明提供了一種iSCSI目標端,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,如圖7所示,包括表項維護模塊710,用于維護iSCSI發(fā)起端與iSCSI目標端之間通道號與TCP連接號的對應關系,具體為建立Channel-TCP表項,包含兩個元素Channel號(通道號)和TCP連接號,每個通道對應唯一TCP連接號,每個iSCSI連接對應一個TCP連接號。接收模塊720,用于接收所述iSCSI發(fā)起端發(fā)送的請求消息,所述請求消息中攜帶iSCSI連接通道標識;并讀取請求消息中channel字段的標識,同時繼續(xù)iSCSI連接的建立流程。比較模塊730,與接收模塊720和表項維護模塊710連接,用于將所述通道標識與本地Channel-TCP表項中的通道標識進行比較,判斷所述iSCSI連接是否為重復iSCSI連接,處理模塊740,與比較模塊730連接,用于所述iSCSI連接不為重復iSCSI連接,則建立新iSCSI連接,并建立相應表項,將所述iSCSI連接號加入所述本地表項中,具體為對于第一次Loginrequest,iSCSI目標端本地表項中沒有相應的報文,iSCSI目標端將channel值與TCP連接號——對應起來作為一個條目存放在本地表項中。如果所述iSCSI連接是重復iSCSI連接,則建立新iSCSI連接,并中斷舊iSCSI連接,并刪除舊iSCSI連接的表項,具體為iSCSI發(fā)起端導致TCP連接沒有正常關閉,而此時又重新發(fā)起iSCSI連接的情況下,iSCSI目標端再為之重新分配新連接請求的同時也會比較新的channel號與本地表項中的通道號有沒有匹配的條目,如果有則刪除舊的iSCSI連接,只維護新iSCSI連接。處理模塊740,還用于接收到所述iSCSI發(fā)起端正常發(fā)出logout報文,刪除iSCSI連接,并將相應的表項條目隨著iSCSI連接的刪除而刪除,具體為中止iSCSI會話,并將相應的TCP連接關閉,然后,將相應的表項條目隨著TCP連接的關閉而刪除。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到本發(fā)明可以通過硬件實現,也可以借助軟件加必要的通用硬件平臺的方式來實現?;谶@樣的理解,本發(fā)明的技術方案可以以軟件產品的形式體現出來,該軟件產品可以存儲在一個非易失性存儲介質(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領域技術人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領域技術人員可以理解實施例中的裝置中的才莫塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。上述本發(fā)明序號僅僅為了描述,不代表實施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領域的技術人員能思之的變化都應落入本發(fā)明的保護范圍。權利要求1、一種防止無用連接占用系統(tǒng)資源的方法,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,其特征在于,所述方法包括以下步驟所述iSCSI目標端接收所述iSCSI發(fā)起端發(fā)送的請求消息,所述請求消息中攜帶iSCSI連接通道標識;所述iSCSI目標端將所述通道標識與本地表項中的通道標識比較,判斷所述iSCSI連接是否為重復iSCSI連接,如果不是,則將所述iSCSI連接號加入所述本地表項中;如果是,則將原有iSCSI連接刪除,維持新連接。2、如權利要求l所述的方法,其特征在于,還包括所述iSCSI目標端接收到所述iSCSI發(fā)起端正常發(fā)出logout報文,刪除iSCSI連接,并將相應的表項條目隨著iSCSI連接的刪除而刪除。3、如權利要求l所述的方法,其特征在于,所述iSCSI發(fā)起端連接多個硬件設備,所述通道標識為硬件標識加通道號。4、如權利要求3所述的方法,其特征在于,所述硬件標識為媒體接入控制MAC地址。5、如權利要求1至4中任一項所述的方法,其特征在于,所述請求消息包括發(fā)現會話DiscoverSession或者正常操作會話NormalOperationalSession。6、一種iSCSI發(fā)起端,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,其特征在于,包括生成模塊,用于生成請求消息,所述請求消息中攜帶iSCSI連接通道標識;發(fā)送模塊,與所述生成模塊連接,用于向所述iSCSI目標端發(fā)送所述請求消息。7、如權利要求6所述的iSCSI發(fā)起端,其特征在于,所述發(fā)送模塊,還用于向iSCSI目標端正常發(fā)出logout報文,刪除iSCSI連接。8、如權利要求6所述的iSCSI發(fā)起端,其特征在于,所述iSCSI發(fā)起端連接多個硬件設備,所述通道標識為硬件標識加通道號。9、一種iSCSI目標端,應用于包括iSCSI發(fā)起端和iSCSI目標端的系統(tǒng)中,其特征在于,包括表項維護模塊,用于維護iSCSI發(fā)起端與iSCSI目標端之間通道號與TCP連接號的對應關系;接收模塊,用于接收所述iSCSI發(fā)起端發(fā)送的請求消息,所述請求消息中攜帶iSCSI連接通道標識;比較模塊,與所述接收模塊和所述表項維護模塊連接,用于將所述通道標識與本地表項中的通道標識比較,判斷所述iSCSI連接是否為重復iSCSI連接,處理模塊,與所述比較模塊連接,用于所述iSCSI連接不為重復iSCSI連接,則將所述iSCSI連接號加入所述本地表項中;如果所述iSCSI連接是重復iSCSI連接,則將原有iSCSI連接刪除,維護新連接。10、如權利要求9所述的iSCSI目標端,其特征在于,還包括所述處理模塊,還用于接收到所述iSCSI發(fā)起端正常發(fā)出logout報文,刪除iSCSI連接,并將相應的表項條目隨著iSCSI連接的刪除而刪除。全文摘要本發(fā)明公開了一種防止無用連接占用系統(tǒng)資源的方法所述iSCSI目標端接收所述iSCSI發(fā)起端發(fā)送的請求消息,所述請求消息中攜帶iSCSI連接通道標識;所述iSCSI目標端將所述通道標識與本地表項中的通道標識比較,判斷所述iSCSI連接是否為重復iSCSI連接,如果不是,則將所述iSCSI連接號加入所述本地表項中;如果是,則將原有iSCSI連接刪除,維持新連接。本發(fā)明中,如果是新發(fā)起的iSCSI連接,則主動中斷原有重復的iSCSI連接,從而防止無用iSCSI連接占用系統(tǒng)資源,防止類似攻擊,增加存儲系統(tǒng)的可靠性。文檔編號H04L29/06GK101621526SQ200910162928公開日2010年1月6日申請日期2009年8月20日優(yōu)先權日2009年8月20日發(fā)明者余劍聲,迪周申請人:杭州華三通信技術有限公司