存儲子系統的制作方法

            文檔序號:7922868閱讀:248來源:國知局
            專利名稱:存儲子系統的制作方法
            技術領域
            本發明涉及存儲子系統,尤其涉及可以抑制在存儲子系統內網絡中的數據
            包通信中發生死鎖(deadlock)的存儲子系統。
            背景技術
            一直以來,人們致力于在計算機系統中不發生死鎖。所謂死鎖,是在計算 機系統的通信網絡中,在多個數據包的處理中發生竟爭,引起多個數據包互相 退縮,數據包的處理無法進行的狀況。
            例如,在特開2002-344463號公報中記載了在通過可以雙方向進行通信 的鏈路、將與處理裝置連接的節點裝置連"^成環狀的雙向環型網絡中,為了可 以容易地變更數據包的路由,節點裝置具有切斷點記錄寄存器,該切斷點記錄 寄存器記錄為了避免死鎖而在網絡中的哪個部分切斷依存關系;關于從處理裝 置輸入的數據包,4艮據該寄存器值決定向雙向環型網絡上的哪個方向送出凄t據 包。
            另外,在特開2003-30166號公報中記載了為了提供在防止任務的處理 效率降低的同時解除死鎖的疏耦合多處理器系統,而具有在共享多個資源的同 時執行多個任務的主計算機群、以及死鎖檢測裝置,死鎖檢測裝置檢查由于多 個任務中的一個任務進入等待資源中的一個資源的等待狀態而發生的死鎖,當 檢測出死鎖時,根據各個任務的處理的進行程度、和針對各個任務而決定的優 先級(priority),從所述多個任務中選擇釋放已鎖定的資源的資源釋放任務。 而且,在特開2004-246439號公報中記載了為了防止由于構成集群系統
            (cluster system)的主計算機間的死鎖而導致的集群系統整體的停止(stall), 計時器監視單元監視針對共享資源的資源鎖定等待,共享資源長時間鎖定檢測 單元,調查成為針對共享資源的資源鎖定等待原因的主計算機以及進程
            (process),強制停止成為針對共享資源的資源鎖定等待原因的進程,釋^t由 進程確保的共享資源的鎖定,強制停止成為針對共享資源的資源鎖定等待原因的進程正在動作的主計算機,清除針對已由主計算機鎖定的共享資源的資源鎖 定請求。
            在特開2002-344463號公才艮的現有例中,存在必須在環型網絡的全部區域 內管理切斷點、管理負荷增大的問題。
            在特開2003-030166號公報的現有例中,當檢測出死鎖時,必須根據各個 任務的處理的進行程度和針對各個任務決定的優先級,從所述多個任務中選擇 釋放已鎖定的資源的資源釋放任務,但這對于任務的處理成為開銷 (overhead),尤其在使系統具有擴展性時,其缺少實現性。
            另夕卜,當想要把特開2004-246439號公報的現有例中的集群系統應用于存 儲系統的內部網絡時存在如下問題在檢測到資源鎖定狀態之前,向存儲系統 發送了命令的主計算機引起該命令的超時(timeout),主計算機無法在超時之 前將數據包發送到目標節點。
            作為可以配合用戶的事業的成長來擴大存儲容量等的規^莫的存儲系統,存 在網格存儲系統。該存儲系統經由交換器(switch)向存儲子系統的內部網絡 順次追加具有通道適配器或^t盤適配器等的較小規模的多個節點,實現可以擴 大對用戶提供的存儲資源的規模的網格結構(Grid Architecture )。
            當存儲系統的某個節點從主計算機接收命令時,接收到命令的節點經由交 換器向目標節點轉發讀命令或寫命令的數據包,接收到該數據包的節點在高速 緩沖存儲器或存儲設備之間進行數據的寫入'數據的讀出,由此,存儲系統向 主計算機進行應答。
            存儲子系統的內部網絡中的多個數據包的轉發,當到達多個交換器時,多 個數據包同時爭奪節點的路徑或緩沖器等資源,當此時的資源的依存關系構成 環路時,產生基于來自主計算機的命令的處理無法向前進行的所述死鎖。
            以往,在網格存儲系統等升級性(易擴展性)優異的存儲系統的領域中, 未提出用于解決該死鎖的有效方案。
            專利文獻1特開2002-344463號公報專利文獻2特開2003-030166號公報專利文獻3特開2004-246439號公報 發明內容因此,本發明的目的在于,在升級性優異的網格存儲系統中避免死鎖。本 發明的另一目的是,提供不需要死鎖檢測器等特別的硬件便可以防止死鎖的發 生的存儲子系統。本發明的另一目的是,提供不引起處理開銷、并且不引起主 計算機的超時便可以防止死鎖的發生的存儲子系統。
            為了達成所述目的,本發明在特征在于,在可以配合用戶的事業的成長來 擴大存儲容量等的規模的網格存儲系統中,具有不引起所述死鎖的數據包轉發 規則,根據該轉發規則控制內部網絡中的數據包的轉發。
            本發明,在升級性優異的網格存儲系統中可以避免死鎖。另外,根據本發 明,可以提供不需要死鎖檢測器等特別的硬件便可以防止死鎖的發生的存儲子 系統。
            而且,根據本發明,能夠提供不引起處理開銷、并且不引起主計算機的超 時便可以防止死鎖的發生的存儲子系統。


            圖l是與本發明相關的存儲系統的框圖。
            圖2是說明從主計算機向存儲子系統發送了讀請求時的數據包轉發處理 的梯形圖(ladder chart )。
            圖3是CHA從主計算機接收到寫請求的幀時的梯形圖。 圖4是高速緩沖存儲器的硬件框圖。 圖5表示交換器適配器的框結構。 圖6表示微處理器的塊結構。 圖7表示CHA/DKA的塊結構。
            圖8是表示在兩個才莫塊間,通過伴隨非郵遞性訪問(non-posted access) 的數據包處理來自主計算機的讀請求的過程的框圖。
            圖9是表示同時分別向第1模塊和第2模塊發送來自主計算機的讀請求 時,多個數據包引起了死鎖的狀態的框圖。
            圖IO是表示在兩個交換器間雙重地形成了路徑的框圖。
            圖11是表示第1模塊經由路徑與第2模塊連接,第2模塊經由路徑與第 3模塊連接,第3模塊經由路徑與第1模塊連接的框圖。
            圖12是表示在圖11中發生了數據包轉發中的死鎖的狀態的框圖。圖13是說明圖11的死鎖:故解除的情形的框圖。
            圖14是根據第1轉發控制規則以及第2轉發控制規則,處理來自主計算
            機的讀命令的實施方式相關的梯形圖。
            圖15是表示與圖14的梯形圖相關的、多個模塊間的內部組件(component) 的連接結構的框圖。 圖16是數據包幀。
            圖17是著眼于某交換器時的、設定了與其它SW或CHA等同一模塊的 內部組件的連接關系的路徑狀態表。
            圖18是表示圖17的路徑設定狀態的框圖。 圖19是路由表的一例。
            圖20是說明SW所屬的模塊的MP根據路徑狀態表設定RT時的動作的 流程圖。
            圖21是消息格式。
            圖22是LDEV-DKA表。
            圖23是表示了 PDEV (Physical Device )、與數據所存在的LDEV號碼以 及LDEV的邏輯地址之間的對應關系的DKA表。
            圖24是串連連接了 4個模塊的SW的存儲子系統的框圖。
            圖25是表示接收主計算機讀請求的MP進行的處理步驟的流程圖。
            圖26是消息轉發目的地表。
            圖27是說明MP的消息處理的流程圖。
            圖28是說明MP的讀請求消息處理的流程圖。
            圖29是說明讀應答消息的傳遞的存儲子系統的框圖。
            圖30是接收到讀應答消息的MP的動作相關的流程圖。
            圖31是處理主計算機寫訪問的存儲子系統的框圖。
            圖32是說明接收到主計算機寫請求的MP的動作的流程圖。
            圖33是表示接收到寫請求消息的MP的處理動作的流程圖。
            圖34是表示接收到寫應答消息的的動作的流程圖。
            圖35是將交換器結構冗余化的存儲子系統的塊結構。
            圖36是表示模塊的組件和交換器的連接關系的連接表。表。
            圖38是記錄了重定向數的拓樸表,該重定向數以發送源SW、發送目的
            地SW、發送目的地SW的下一SW、從發送源SW到發送目的地SW間的跳 躍數、以及允許跳躍數為前提。
            圖39是決定在數據包的轉發中使用的冗余系統的轉發使用冗余系統表。
            圖40是用于生成轉發使用冗余系統表的流程圖。
            圖41是表示重定向數的計算的細節的流程圖。
            圖42是說明當從交換器中移除與SW連接的組件、或者組件中發生了故 障時,放寬交換器間跳躍數等的修正處理的流程圖。
            圖43是說明在一方的冗余系統交換器中發生了故障時的數據包轉發的存 儲子系統的框圖。
            圖44是與圖35的變形例相關的框圖。
            圖45是表示配合二重化的電源將各CHA/DKA二重化的圖44的變形例的 框圖。
            圖46是說明圖44的實施方式的動作的框圖。 圖47是與圖46的變形例相關的框圖。
            圖48是與不使CHA/DKA兼有MP功能的實施方式相關的框圖。
            圖49是圖35所示的存儲子系統的多個模塊以網狀相互結合而得到的框圖。
            符號說明
            10:主計算機;12: SAN; 14:存儲子系統;16:模塊(構成單位);18: 微處理器;20:通道適配器;21:高速緩沖存儲器;22:磁盤適配器;24:交 換器;26: HDD。
            具體實施例方式
            接下來,說明本發明的實施方式。圖l是本發明相關的存儲系統的框圖。 該存儲系統具有,多個主計算機10經由作為網絡單元的SAN12與存儲子系統 14相連的結構。
            該存儲子系統14具有作為網格存儲(Grid Storage)的構造。即,模塊16可以順次追加到存儲子系統中。模塊16具有存儲資源、通道適配器等控制 針對存儲資源的數據輸入輸出的多個內部組件。
            各個模塊16具備通道適配器(CHA) 20、微處理器(MP) 18、高速緩 沖存儲器適配器(圖中表示為CMA或CM) 21、石茲盤適配器(DKA) 22、作 為存儲資源的硬盤驅動器(HDD)等存儲設備(主存儲設備)26、以及交換 器適配器(SW) 24。
            通道適配器20控制與主計算機10之間的數據轉發。磁盤適配器22控制 與存儲設備26之間的數據轉發。高速緩沖存儲器適配器21臨時存儲在主計算 機10與存儲設備26之間轉發的數據。微處理器18控制通道適配器20和磁盤 適配器22,控制通過交換器適配器24的數據包轉發。
            各個模塊的交換器適配器24,使自身模塊的CHA20、 MP18、 CMA21以 及DKA22相互連接,同時使這些內部組件與其它模塊的交換器適配器接合, 構成實現在一個模塊內以及與其它模塊間的數據包轉發的內部網絡。
            從而,來自主計算機10的讀或寫命令,通過經由各模塊的交換器適配器 24、進而經由其它模塊的交換器適配器的數據包轉發,被傳遞到目標模塊的 DKA22。
            圖2表示從主計算機10向存儲子系統14發送了讀請求的幀時,存儲子系 統的交換器內 交換器間的數據包轉發的處理流程的梯形圖。
            虛線表示被稱為所謂Posted Access (郵遞性訪問)的、數據包的轉發源組 件不要求來自命令數據包的轉發目的地組件的應答數據包的訪問,實線表示被 稱為所謂Non-posted Access (非郵遞性訪問)的、命令的轉發源組件要求來自 命令的轉發目的地組件的應答的訪問。請求數據的讀或寫的命令數據包,從應 該保護數據的觀點出發,通常按照非郵遞性訪問的形式被轉發。
            當從主計算機10向CHA發送了幀SOI時,CHA對該幀進行分析,形成 表示幀的種類(讀請求)和數據存在的地址的數據包S10,經由SW將其傳遞 給MP。
            接收該應答的MP分析數據處于哪個DKA下屬的存儲設備、或者處于哪 個CMA,若未在CMA中存儲數據,則形成向該DKA請求數據的命令數據包 S12并對其進行發送。在圖2的例子中表示了數據最初未存儲在CMA中、而僅存在于HDD26 中的情況。DKA、 CMA以及HDD處于與MP相同的模塊中或者處于其它模 塊中,根據數據的存在場所而不同。
            DKA根據來自MP的數據包S12訪問HDD26的特定區域來讀出數據,在 通過非郵遞性訪問S14將該數據向CMA升級(staging)的同時,在向CMA 的寫入結束的時刻,將表示該意思的數據包S15發送至MP。
            當MP接收數據包時,向CHA發送數據包S16,該數據包S16通知已向 CMA升級了數據、和數據存在的CMA的地址。于是,CHA訪問CMA的特 定地址來讀取目標數據(S18),將該數據通知給主計算機(S19)。
            當CHA20結束向主計算機轉發數據時,將表示該意思的數據包S19A通 知給MP18。然后,MP通過數據的保證碼等確認在讀取了數據的一連串處理 中沒有錯誤,向CHA通知數據包20,該數據包20請求向主計算機發出正常 讀取結束的應答幀S21。
            接著,圖3是CHA從主計算機接收到寫請求的幀S30時的梯形圖。當CHA 從主計算機接收到寫請求時,CHA向MP發送與寫請求相對應的數據包S32, MP分析應該將數據存儲在哪個CMA的哪個地址,然后,MP向CHA發送請 求來自主計算機的數據發送的命令數據包S34。 CHA向主計算機發送請求數 據發送的幀S36。
            當CHA從主計算機接收到數據幀38時,作為非郵遞性訪問,CHA將從 MP通知的CMA的特定地址中寫入數據的命令數據包S40通知給相應的 CMA。
            接收到來自CMA的應答的CHA向MP通知結束了數據轉發的數據包 S42。接收到該通知的MP確認是否將數據正確地寫入了 CMA,向CHA發送 數據包S44。 CHA向主計算機發送表示正常結束的應答幀S46。
            MP為了將CMA的數據降級(destaging),向控制應該存儲數據的HDD26 的DKA發送數據包S48,該數據包S48通知數據存在的CMA的地址、以及 寫入該數據的硬盤驅動器26的地址。
            DKA訪問CMA的該地址來取出相應數據,將請求將該數據發送至DKA 的命令數據包作為非郵遞性訪問來發送(S50)。接收到該數據的DKA在HDD26的特定地址保存相應的數據(S52 )。然 后,DKA向MP通知已對數據進行了降級處理(S54)。 MP在自身具有的存 儲器中保存目錄信息(臨時偶爾存儲了數據的CM上的地址、與從主計算機裝 置唯一指定的邏輯地址的對比)。
            圖4表示高速緩沖存儲器的硬件框圖。高速緩沖存儲器具有存儲高速緩沖 存儲數據的存儲器模塊34和存儲器模塊控制器32。存儲器模塊控制器經由數 據包處理部30與內部網絡控制部28相連。
            內部網絡控制部28是控制數據包的收發的部件,具有順次接收數據包的 接收緩沖器28A、和用于順次發送數據包的發送緩沖器28B。接收援沖器28A 和發送緩沖器28B由FIFO構造的存儲器構成。
            數據包處理部30具有命令數據包分析部30A和應答數據包生成部30B。 命令數據包分析部30A從接收緩沖器28A順次取得命令數據包,分析在命令 數據包中包含的地址和數據。SB2是向存儲器模塊控制器32通知地址的地址 信號線,SB4是用于通知數據的數據信號送出線。
            當命令是寫命令時,存儲器模塊控制器32根據從命令數據包分析部30A 通知的地址和數據,在存儲器模塊的該地址存儲該數據。另一方面,當命令是 讀命令時,存儲器模塊控制器32從存儲器模塊的該地址讀取數據。所讀取的 數據通過數據讀出線SB6被發送至應答數據包生成部30B。
            應答數據包生成部是生成表示數據的寫應答或數據的讀應答的數據包的 塊,參照地址信號線SB2的地址信號SB8來生成應答數據包。應答數據包被 順次發送至發送緩沖器28B 。
            圖5表示交換器適配器的塊結構。交換器適配器24具有多個內部網絡控 制部36,該內部網絡控制部36分別具有接收緩沖器36A和發送緩沖器36B。 各內部網絡控制部與相互連接網38相連,各內部網絡控制部的接收緩沖器和 發送緩沖器,可以分別與其它內部網絡控制部的接收緩沖器和發送緩沖器相互 連接。
            而且,各內部網絡控制部36通過命令或應答的數據包分析部42與相互連 接網38相連。
            數據包分析部42具有路由表(RT),按照RT決定將數據包發送至哪個發送緩沖器(端口 )較好。46是向相互連接網38送出端口的地址、或從多個發 送緩沖器中確定目標發送緩沖器的信號的信號線,44是向相互連接網38送出 數據包的信號線。
            相互連接網38根據端口地址確定發送緩沖器36B,向該發送緩沖器送出 數據包。此外,接收緩沖器36A以及發送緩沖器都由FIFO構造構成。
            圖6表示微處理器18的塊結構。具有內部網絡控制部48、數據包分析部 50以及數據包生成部52。內部網絡控制部48具有接收緩沖器48A和發送緩 沖器48B。這些結構與高速緩沖存儲器適配器(圖4)中說明的結構相同。
            微處理器18還具有存儲器模塊58和處理器56所連接的周邊電路部54。 數據包分析部50以及數據包生成部52與周邊電路部54相連。處理器56根據 存儲在存儲器才莫塊58中的管理塊(block ),控制各組件等。
            存儲器模塊58具有用于控制存儲子系統(內部組件)的控制程序58A、 表示向CMA的用戶數據的存儲狀況的目錄信息58B、存儲子系統的構成信息 58C、以及為了與其它內部組件進行通信而使用的通信區域58E。
            圖7表示CHA/DKA的塊結構。CHA和DKA既可以通過不同IC構成, 也可以通過同一 IC構成。CHA/DKA具有協議處理部60,該協議處理部在CHA 的情況下與主計算機和SAN或者LAN連接,在DKA的情況下與存儲設備連 接,在與主計算機或硬盤驅動器之間進行協議的變換處理。而且,CHA/DKA 具有與交換器適配器連接的端口 ,在該端口上連接了內部網絡控制部68。
            而且,在內部網絡控制部68上連接了緩沖器66和DMA控制器64。 DMA 控制器以及緩沖器通過相互連接網62與協議處理部60相連。內部網絡控制部 68與相互連接網62相連。相互連接網62通過交換器構成,協議控制部60通 過相互連接網62可以與DMA控制器64、緩沖器66或者內部網絡控制部68 連接。
            DMA控制器64通過命令分析部64A分析由MP設置的命令,然后進行 數據的轉發。在命令中包含用于實現讀功能64C、寫功能64D或拷貝功能 64E的命令;,或由高速緩沖存儲器地址表示的數據包的轉發目的地或轉發源。 DMA控制器64可以匯集多個命令,以命令列表64B的形式進行存儲。
            在CHA的情況下,根據來自MP的控制,通過協議控制部60與主計算機進行協議交換。
            當從主計算機發來寫命令時,把來自主計算機的寫數據從協議控制部60 臨時存儲在緩沖器66中。而且,DMA控制器64進行將緩沖器中存儲的數據 經由接收緩沖器68A轉發至CMA的控制。
            當來自主計算機等信息處理裝置的命令是讀命令時,DMA控制器64將經 由接收緩沖器68A從CMA讀取到的數據臨時存儲在緩沖器66中,協議控制 部60將該數據送至主計算機。在DKA的情況下,僅僅是將對象從主計算機 變換為硬盤驅動器,處理動作與CHA相同。另外,在DKA的情況下,也可 以設置用于對硬盤驅動器進行RAID控制的運算電路。
            圖8是表示在兩個模塊之間,通過與非郵遞性訪問相伴的命令數據包以及 應答數據包處理來自主計算機的讀請求的過程的框圖。
            CHA20-1、交換器適配器(SW) 24-1、 CMA21-1是第l模塊的組件的內 部組件。CHA20-2、交換器適配器24-2、 CMA21-2是第2模塊的內部組件。
            在SW24-1的端口和SW24-2的端口之間形成了一條路徑800。 CHA20-1 為了讀取第2 4莫塊的CMA21-2的數據,經由兩個SW間的路徑800訪問 CMA21畫2。
            從主計算機IO接收到讀請求的CHA20-1,從發送緩沖器28A-1向SW24-1 的接收緩沖器36A-1轉發數據包。接收緩沖器36A-1根據路由表(RT),向發 送緩沖器36B(l)-1輸出數據包。發送緩沖器36B(l)-1經由路徑800向SW24-2 的接收緩沖器36A(l)-2轉發命令數據包。
            該數據包經由SW24-2的發送緩沖器36(1)-2被轉發至CMA21-2的接收緩 沖器28A-2。 CMA21-2將存儲器模塊34-2的數據與應答數據包一起,經由發 送緩沖器28B-2送出到SW24-2的接收緩沖器36A(l)-2。
            SW24-2經由發送緩沖器36B(l)-2和路徑800,將該數據包發送至SW24-1 的接收緩沖器36B-1。 SW24-1經由發送緩沖器36B-1,將包含數據的數據包轉 發至CHA20-1的接收緩沖器28B-l。
            圖9表示當同時分別向第1模塊的CHA20-1和第2模塊的CHA20-2發送 了來自主計算機10的讀請求時,從CHA或CMA向交換器適配器(SW)連 續發送的多個數據包占有SW的緩沖器而引起了死鎖的狀態。假定CHA20-1根據來自第1主計算機的讀請求,從CMA21-2讀取數據, CHA20-2根據來自第2主計算機的讀請求,從CMA21-1讀取數據。結果,從 SW24-1向SW24-2的命令數據包800 (2)和相反方向的命令數據包800 ( 1 ), 在相同^各徑800上流動。
            此時,基于從主計算機向第1CHA20-1的讀請求的數據包占有發送緩沖器 36B(1)-1,基于從主計算機向第2CHA20-2的讀請求的數據包802鎖定。
            而且,基于向CHA20-2的讀請求的數據包占有發送緩沖器36B(l)-2,基 于從主計算機向第1CHA20-1的讀請求的數據包804鎖定。結果,雙方的數據 包分別占有發送緩沖器36B(l)-1和發送緩沖器36B(l)-2,引起針對數據包的轉 發處理相互無法進行的"退縮",導致死鎖。
            該死鎖是由于從一個模塊的SW向其它模塊的SW發送的命令數據包在同 一路徑800上雙向轉發而產生的。
            因此,作為用于防止死鎖的數據包轉發規則的第l規則,把在多個交換器 適配器間的路徑上轉發的命令數據包的方向限定為一個方向。但是,在圖9 的例子中,當把路徑800的命令數據包的方向從SW24-1限定為SW24-2時, CHA20-2變得無法向CMA21-1發送命令數據包。
            為了解決該問題,如圖10所示,在SW24-1和SW24-2之間除路徑800 以外還形成了第2路徑800A。而且,在SW24-1中設置與路徑800A分別連接 的接收緩沖器36A(2)-l和發送緩沖器36B(2)-l ,在SW24-2中設置與路徑800A 分別連接的接收緩沖器36A(2)-2和發送緩沖器36B(2)-2。
            并且,各模塊的MP在存儲器模塊58中生成并存儲用于實現所述第1轉 發規則的控制表。根據該控制表設定交換器的路由表40。按照該控制表或路 由表進行數據包的轉發,來實現轉發控制規則。此外,在后面對該控制表進行 描述。
            通過設定基于該控制表的路由表,從SW24-1向SW24-2的命令數據包沿 著路徑800像800 ( 1 )那樣被轉發,從SW24-2向SW24-1的命令數據包不沿 著路徑800而沿著路徑800A像800 (2)那樣被轉發。
            從CMA21-2向CHA20-1的應答數據包,沿著轉發了命令數據包的路徑 800在與命令數據包的轉發方向800 ( 1 )相反的方向上被轉發,從CMA21-1向CHA20-2的應答數據包,沿著路徑800A在與800 ( 2 )相反的方向上被轉 發。
            結果,用于發送數據包的資源得到擴充,從多個數據包相互竟爭的狀況中 解放出來,因此可以防止發生圖9的死鎖。
            通過像這樣至少限定轉發命令數據包的方向來防止死鎖。此外,通過與轉 發命令數據包的路徑不同地形成轉發應答數據包的路徑進一步預防死鎖,但另 一方面,這樣一來,模塊的緩沖器的結構以及交換器間的路徑結構變得復雜, 因此在該實施方式中,在與流動命令數據包的路徑相同的路徑上,流動與命令 數據對應的應答數據包。
            圖11是表示第1模塊的SW24-1經由路徑1100與第2模塊的SW24-2連 接,第2模塊的SW24-2經由路徑1100B與第3模塊的SW24-3連接,第3模 塊的SW24-3經由路徑1100A與SW24-1連接的情形的框圖。
            沿著這些路徑轉發的命令數據包的方向,根據所述的第1轉發規則被限定 為從SW24-1向SW24-3、從SW24-3向SW24-2、從SW24-2向SW24-1的方 向。
            在這種情況下,當第1模塊的CHA20-1從主計算機接收到應該向第2模 塊的CMA21-2寫入數據的請求時,命令數據包按照順序通過SW24-1的接收 緩沖器36A-1和發送緩沖器36B(3)-1、 SW24-3的接收緩沖器36A(l)-3和發送 緩沖器36B(3)-3、 SW24-2的接收緩沖器36A(3)-2和發送緩沖器36B(2)-2,從 CMA24-2的接收緩沖器28A-2向存儲器模塊34-2中寫入數據。圖11所示的 虛線是命令數據包的流動。
            CMA21-2生成應答數據包,然后,該應答數據包與命令數據包相反地從 SW24-2經過SW24-3到達SW24-1,被送至CHA20-1 。
            當向CHA20-2提供應該在CMA21-3中寫入數據的寫請求時,命令數據包 經由SW24-2、然后經由SW24-1被提供給SW24-3,而且當向CHA20-3提供 在CMA21-1中寫入數據的寫請求時,命令數據包經由SW24-3、然后經由 SW24-2被提供給SW24-1 。
            在這種情況下,當向CHA20-1、 CHA20-2以及CHA20-3同時提供寫請求 時,如圖12中"x"所示那樣,命令數據包的轉發形成環狀,多個命令數據包互相竟爭而發生死鎖。
            該死鎖的發生是由于在多個數據包各自的轉發中,各數據包經由sw和模 塊間的路徑跨越多個模塊而導致,通過限制至少一個數據包一次能跨越的路徑
            的數量(跳躍數)可以得到解決。將其作為第2轉發控制規則。
            因此,如圖13所示,作為用于把來自SW24-1的命令數據包的跳躍數從 圖12的"2"限制為"1"的一個手段,把來自CHA20-1的命令數據包的寫數 據臨時存儲在與SW24-3連接的CMA21-3中(1300)。
            由此,在圖12中,數據包的跳躍數是從SW24-1經由SW24-3向SW24-2 的"2",但在圖13中,命令數據包的跳躍數在SW24-3被中斷一次,被限制 為從SW24-1向SW24-3的一次、或者從SW24-3向SW24-2的一次。
            由此,可以從成為死鎖的原因的竟爭的3個數據包的轉發環路(參照圖 12)中釋放一個數據包,從而能提前防止死鎖的發生。
            限制數據包的跳躍數的第2轉發控制規則,以轉發控制表的形式被存儲在 各模塊的MP的存儲器中。MP根據該轉發控制規則對數據包的轉發進行SW 控制,由此達成第2轉發控制規則。
            圖14和圖15說明根據所述第l轉發控制規則以及第2轉發控制規則處理 來自主計算機的讀命令的實施方式。圖15表示多個模塊間的內部組件的連接 結構,圖14是表示數據包的轉發的梯形圖。
            當從主計算機向第1模塊1500的CHA20-1進行針對存儲在第3模塊1504 的存儲設備26-3中的數據的讀請求時,CHA20-1的協議處理部60分析主計算 機讀請求,將其作為命令數據包1400,經由同一模塊的SW24-1轉發至 MP18-1。
            該MP分析命令數據包的數據存在地址,當相應的數據尚未存儲在CMA 中時生成命令數據包1402,將其轉發至第3模塊1504的DKA22-3。
            DKA22-3訪問HDD26-3的目標區域來讀入數據,為了將數據臨時存儲在 同一模塊的CMA21-3中,對CMA21-3進行非郵遞性訪問1404。
            DKA22-3向MP18-1發送包含存儲了數據的CMA21-3的地址的應答數據 包1406。接受該應答數據包后,MP18-1向CHA20-2(第2模塊1502的CHA) 發送包含CHA21-3的地址的讀命令數據包1407。接收該數據包后,CHA20-2如圖15所示,對CMA21-3進行非郵遞性訪 問1408,從CMA21-3讀出目標數據。
            CHA20-2如圖15所示,通過非郵遞性訪問1410將讀出的數據臨時寫入 第2模塊1502的CMA21-2。
            CHA20-2形成包含寫入了數據的CMA21-2的地址的數據包1412,將其發 送至MP18-1。 MP18-1向CHA20-1發送數據包1411,該數據包1411包含存 儲了數據的CMA21-2的地址。
            CHA20-1如圖15所示,通過非郵遞性訪問向CMA21-2發送請求數據的 命令數據包1414來取得該數據。然后,CHA20-1向主計算機轉發該數據,然 后,CHA20-1向MP 18-1發送命令數據包1415,該命令數據包1415請求;險查 在CHA20-1取得數據的一連串的處理中是否有錯誤。
            MP18-1進行該檢查,生成沒有錯誤的應答數據包1416,向CHA20-1送 出。CHA20-1向主計算機送出表示數據正確的應答幀1418。
            在圖14和圖15中,通過非郵遞性訪問轉發用于向CMA存儲數據的數據 包,關于該通過非郵遞性訪問進行的數據包轉發(1414),即使有時通過多個 SW間的路徑,也將其限定為"1次跳躍"。
            在非郵遞性訪問中,數據包發送源為了等待數據包發送目的地的應答,爭 奪其它數據包和節點的資源(路徑或緩沖器),容易發生死鎖,但通過使非郵 遞性訪問為"l次跳躍"可以防止該死鎖。
            圖16是表示數據包的細節的數據包幀。數據包格式如(1 )那樣,由以下 各部構成表示讀命令、寫命令、消息、讀應答以及寫應答等數據包種類的數 據包種類部;數據包的發送目的地地址部;數據包的發送源地址部;數據長度 部(在讀命令的情況下是請求數據長度)、數據部(當數據包種類為讀命令或 寫應答時不存在);以及校驗碼部。
            發送目的地地址部的細節如(2)所示,由交換器號碼(SW#)、模塊的組 件的特定信息、和組件內的地址構成。發送源地址部也同樣地構成。
            圖17是在著眼于某交換器時的,設定了與其它SW、 CHA等同一模塊的 內部組件的連接關系的路徑狀態表。圖18以框圖表示了圖17的路徑設定狀況。 MP針對SW的各端口生成圖17的表,將其存儲在MP的存儲器模塊中,由此如圖18所示,可以設定或者定義針對一個模塊的SW的路徑的特性。
            圖17所示的表對應于圖18的SW0,如圖18所示,表示了在端口O上連 接CHAO,在端口 1上連接MPO,在端口 2上連接DKAO,在端口 3上連接 CMAO,在端口 4上連接其它模塊的SW3,而且在端口 5上還連接其它模塊的 SW1。針對每個交換器適配器設定路徑狀態表。
            而且,將可以從SW的各端口送出的數據包的種類登錄在路徑狀態表中。 端口 0是可以從CHAO接收命令數據包,送出應答數據包的端口;端口 l是 可以接收來自MPO的命令數據包,送出應答數據包的端口;端口2是可以從 DKAO接收命令數據包,送出應答數據包的端口;端口3是可以從CMA0接 收應答數據包,送出命令數據包的端口 ;端口 4是可以從SW3接收命令數據 包,送出應答數據包的端口;并且,端口 5是可以向SW1送出命令數據包的 端口。
            從而,當用箭頭表示轉發命令數據包的方向時,成為圖18所示那樣。當 MP按照路徑狀態表控制通過SW進行的數據包的轉發時,成為圖18所示那 樣。通過路徑狀態表和基于該表的MP的控制,實現所述第l數據包轉發控制 規則(圖10)。在圖10中,限定了在SW24-1和SW24-2間的路徑上流過的命 令數據包的方向,但根據圖18,可以從端口 5送出的數據包種類是向SW1的 命令數據包、在圖17中雖未說明但SW1的端口 1的連接目的地是SWO、其 可以送出的數據包種類是應答,據此可以實現所述第l數據包轉發控制規則。 數據包的種類可以通過數據包幀進行檢測。此外,后述的消息數據包是非郵遞 性數據包,可以與命令.應答數據包無關地在例如與MP連接的端口上進行收 發。
            接著,說明圖5的路由表(RT)的細節。SW將從某端口接收到的數據包 存儲在接收緩沖器中,按照RT決定將接收數據包送至哪個轉發端口的發送緩 沖器。針對SW的每個端口後定路由表。
            圖19是針對圖18的SWO的CHAO所連接的接收端口 0而設定的RT。應 該轉發數據包的發送目的地地址由SW弁和組件的特定信息(ID)構成。當發 送目的地地址的SW#為SWO時,被發送給同一模塊的目標組件,按照RT向 對應的轉發端口發送數據包。當發送目的地地址的SW^為SWO以外時,為了指向其它才莫塊的sw的接 收端口 ,對端口 5發送SWO接收到的數據包。圖19的RT的轉發端口與圖17 的路徑狀態表相一致。
            圖20是說明由SW所屬的模塊的MP根據路徑狀態表設定RT時的動作的 流程圖。MP從尚未設定RT的端口中選擇應該設定RT的端口 (2000)。
            然后,MP針對路徑設定表的"連接目的地"和RT的"組件" 一致的端 口,使RT的"轉發端口#"作為路徑設定表的"端口#" (S2002)。
            在這種情況下,若剛設定了 RT的端口的路徑設定表的可送出的數據包種 類為"應答",則該剛設定了 RT的端口所接收的是與"應答"成對的"命令" 數據包。決定該"命令"數據包的轉發目的地端口的是RT。因此,MP進一 步從路徑設定表中選擇"連接目的地"=SW、并且"可送出的數據包種類" 為"命令"的端口#,使"發送目的地地址"作為"其它SW"的"轉發端口 #" (2004)。若剛設定了 RT的端口的可送出的數據包種類為"命令",則在 此選擇的是"連接目的地"=SW、并且"可以送出的數據包種類,,是"應答" 的端口#。
            然后,MP判定是否進行了 SW中的全部端口的設定(2006),當對此進 行肯定時,結束用于進行RT的設定的處理,當對此進行否定時,返回2000。
            在所述圖13和圖14中,將數據臨時存儲在CMA中,使命令數據包或應 答數據包的跳躍數為"1"。多個模塊的各MP交換消息數據包來相互合作,實 現該數據包轉發控制規則。
            圖21表示消息格式的細節,消息中有讀(RD)請求消息(1 )、讀應答消 息(2)、寫(WR)請求消息(3)、寫應答消息(4)以及拷貝完成消息(5)。
            所謂msg種類表示消息的種類,消息欄的"to"是消息的最終目的地的 MP#, "from"是消息發送源的MP^ "temp"欄的"to"是在消息的轉發過程 中應該經由的MP目的地#, "from"是與"to"的MP弁對應的消息的發送源 MP#。
            讀請求消息(1)的"請求數據"表示與讀請求相關的數據的邏輯位置, 由用于確定被簡稱為"LDEV"的"Logical Device"的信息、LBA (邏輯塊地 址)和LEN (數據長)構成。讀應答消息(2)的"數據存在地址"欄表示所讀取的數據的CMA上的 地址,由CMA# (高速緩沖存儲器號碼)、ADR (CMA的存儲器部件上的地 址)、和LEN(數據長)構成。所謂拷貝是指向CMA拷貝數據。
            寫請求消息(3)的"請求數據"表示寫入寫數據的邏輯地址,"數據存在 地址"是寫數據所存在的高速緩沖存儲器上的地址。
            寫應答消息(4)的"請求數據"表示寫入寫數據的邏輯地址。
            拷貝完成消息,表示關于拷貝到高速緩沖存儲器的數據所存在的其它高速 緩沖存儲器的地址。
            圖22是記錄在MP的存儲器中的LDEV-DKA表。該表是規定了數據存在 的LDEV號碼以及LDEV的邏輯地址、與控制存儲該數據的HDD的DKA之 間的關系的表。
            圖23是表示PDEV( Physical Device )、與數據存在的LDEV號碼以及LDEV 的邏輯地址之間的對應關系的DKA表。圖23的控制方式是記載了 RAID等級 的控制方式。
            將這些表記錄在MP的存儲器中。MP可以對來自主計算機的寫命令或讀 命令進行分析,參照這些表來確定應該訪問的DKA以及PDEV。
            接著,詳細說明存儲子系統處理來自主計算機的讀請求的動作。圖24是 串聯連接了 4個模塊的SW的存儲子系統的框圖。
            當第1模塊的CHAO從主計算機接收向第3模塊的DKA2的讀請求S2400 時,第1模塊的MPO如圖25的流程圖所示,參照LDEV-DKA表來分析來自 CHAO的命令數據包(2500 ),檢查命令數據包的對象MP是否是自身(=MPO ) (2502 )。
            當對象MP是本MP (MPO)時,通過與SWO連接的DKAO,從DKAO 下屬的硬盤將數據升級到CMAO (2504)。然后,MPO向與發出了讀命令的主 計算機連接的相應CHA (CHAO)指示對主計算機進行應答處理(2506)。
            另一方面,在步驟2502中,當MPO將命令數據包中的對象MP判定為其 它模塊的MP時,生成發送到該其它MP的讀請求消息(圖21 ( 1 )) (2506)。
            每當生成該讀請求消息時,MPO參照圖26的消息轉發目的地表。該消息 轉發目的地表登錄了 最終目的地MP#、為了減少消息一次通過的跳躍數而應該經由的MP (轉發目的地MP# )、在最終目的地MP弁和轉發目的地MP弁之 間消息所通過的跳躍數。
            MP0當生成讀請求消息時,向轉發目的地MP弁發送讀請求消息。在圖24 中,當MP0識別出消息的最終轉發目的地是MP2時(圖25的2502),通過 圖26的轉發目的地表掌握轉發目的地MP弁是MP1,生成圖21 ( 1 )所示的讀 請求消息。
            在該讀請求消息中,消息欄的"to"成為MP2, "from"成為MPO, temp 欄的"to"根據消息轉發目的地表而變為MP1,其"from"變為MP0。
            結果,圖24的(1)所示的讀請求消息(REQmsg)從MP0被轉發至MPl。 此時消息跨越交換器間的路徑的次數(剩余跳躍數)成為SW0和SW1之間的
            而且,當讀請求消息到達MP1時,MP1分析該讀請求消息,而且參照圖 26的消息轉發表,向MP2轉發讀請求消息(圖24 ( 2 ))。
            通過存儲子系統的管理計算機等事先生成消息轉發目的地表,存儲在各 MP的存儲器中。
            圖27是說明MP的消息處理的流程圖,MP檢查存儲器的消息區域,確認 有無消息(2700)。然后,MP判定"有消息 " (2702),當"沒有消息"時 返回步驟2700。
            另一方面,當"有消息"時,判斷消息(msg)的種類是讀請求消息、讀 應答消息、寫請求消息、寫完成消息還是拷貝完成消息(2704),分別進行消 息的處理。
            圖28是說明接收到讀請求消息的MP的處理的流程圖。接收到讀請求消 息的MP,;險查成為讀請求消息中的最終目的地的MP (圖21 ( 1 )的讀請求 消息的消息欄的"to")是否是自身(2講)。
            當對此進行肯定時,MP將讀數據向同一模塊的CMA進行升級處理 (2802)。然后,鎖定已升級了數據的區域,即不許可將該區域無效化(2804)。 然后,MP生成讀應答消息(圖21 ( 2 )),將其發送至讀請求消息的發送源MP (2806 )。
            在讀應答消息的數據存在地址中,登錄讀數據存在的CMA和該CMA的數據存儲區域。在消息欄的"from"中登錄接收到讀請求消息的MP#,在其 "to"中登錄接收到主計算機讀請求的MP。
            在步驟2800中,接收到讀請求消息的MP,當判定出成為讀請求消息中 的最終目的地的MP不是自身時,進行讀請求消息的再轉發(2808)。在讀請 求消息(圖21 (l))的temp欄的"from"中登錄該MP弁,在"to"中登錄在 消息轉發目的地表中規定的轉發目的地MP#。
            在圖24中,當MP1從MP0接收讀請求消息(1 )時,由于該讀請求是發 送給MP2的讀請求,因此MP1否定步驟2800的判定,轉移至步驟2802,向 MP2轉發讀請求消息(2808 )。
            當MP2從MP1接收讀請求消息時,由于讀請求消息發送給MP2的,因 此肯定步驟2800的判定,如圖29所示那樣,在步驟2804中MP2在CMA2 中確保存儲通過DKA2得到的HDD的數據的區域(圖29 (3 ))。并且如步驟 2806所示,將讀應答消息送至MP1,向MP1通知數據存在的CMA的主區域 (master area)(圖29 ( 4 ) X
            在從MP2向MP1的讀應答消息的消息欄的"to"中登錄MP0,在其"from" 欄中登錄MP2。 MP2參照消息轉發目的地表,在讀應答消息的temp欄的"to" 中登錄MP1,在其"from"欄中登錄MP2。
            在圖30中表示了接收到讀應答消息的MP的動作的流程圖。接收到讀應 答消息的MP (本MP )判定成為讀應答消息的發送目的地的目的地MP (登錄 在消息欄的"to"中的MP)和本MP是否相同(3000)。
            當本MP肯定該判定時,不需要向其它MP轉發讀消息,為了向訪問了本 MP的模塊的CHA的主計算機應答本MP接收到的讀應答消息的數據存在地 址、即存儲了目標數據的區域,而向該CHA發送命令數據包(3002)。
            然后,本MP從CHA等待主計算機應答處理完成的應答數據包(3004), 當本MP接收到該應答數據包時,對于讀應答消息的發送源(記錄在讀應答消 息的temp欄的"from"中的MP)發送拷貝完成消息(3006 )。
            當本MP否定步驟3000的判定時,在與本MP同一模塊的SW的CMA中 的緩沖區域(存儲器模塊)中,確保臨時存儲目標數據的區域(3008)。
            然后,本MP為了將所接收到的讀應答消息的數據存在地址的數據拷貝到在步驟3008中確保的臨時存儲區域,而向同一模塊的CHA/DKA發送命令數 據包來對其進行指示(3010)。而且,本MP從該CHA/DKA等待作為完成了 所述拷貝的報告的應答數據包(3012)。
            當本MP接收到該應答數據包時,對于讀應答消息的發送源(記錄在讀應 答消息的temp欄的"from"的MP)發送拷貝完成消息(3014)。
            而且,本MP參照決定在消息到達最終的MP前的路徑或路由中成為中繼 的MP的消息轉發表,決定讀應答消息的轉發目的地(3016)。
            然后,本MP當轉發讀應答消息時,在其數據存在地址中登錄通過步驟 3008確保的臨時存儲區域的識別信息,在temp欄的"to"中記錄讀應答消息 的轉發目的地,在"from"中登錄本MP的識別信息(3018)。
            接著圖24,根據表示讀應答消息的傳遞情況的圖29來進行說明時,當 MP1從MP2接收讀應答消息(4)時,由于該讀應答消息是發送給其它MP (MP0)的讀應答消息,因此MP1在CMA1中確保臨時存儲區域,通過CHAl 將CMA2中的目標數據拷貝到CMA1中(5 )。
            然后,MP1向MP0轉發讀應答消息(6)。并且,接收到讀應答消息的 MPO (本MP )通過CHAO取得CMA1沖的目標數據,將其轉發至主計算機。
            接著,說明在圖24中說明的具有網格(grid)構造的存儲子系統從主計算 機接收到寫請求時的動作。圖31是對其進行說明的框圖。CHA2從主計算機 接收了寫請求。
            圖32是說明接收到來自主計算機的寫請求的MP的動作的流程圖。MP 參照LDEV-DKA表,確定進行將寫數據存儲在硬盤驅動器中的處理的DKA, 確定與該DKA同一模塊的MP (對象MP) (3200)。
            另一方面,當寫請求中的數據的寫目的地LDEV (相應區域)未分配給 LDEV-DKA表時(3202 ),針對與本MP的SW相連的DKA,本MP參照DKA 表來檢查在PDEV中是否有空區域(3204)。
            在PDEV中有空區域時,本MP向DKA表分配在寫請求中包含的LDEV、 LBA(相應區域),更新LDEV-DKA表以及DKA表,將其登錄在其存儲器中, 與此同時,向其它MP通知與該分配有關的信息或者更新后的這些表(3206)。
            然后,本MP通過同一模塊的DKA,將同一模塊的CMA中存在的寫數據從該CMA向該DKA下屬的硬盤驅動器進行降級處理(3214 )。
            在步驟3202中,當寫請求中的數據的寫目的地LDEV (相應區域)已被 分配給LDEV-DKA表時,判定本MP是否是對象MP (3212),當本MP是對 象MP時,與所述情況相同地進行降級處理。另一方面,在步驟3212中判定 為本MP不是對象MP時,參照消息轉發表來生成寫請求消息(圖21 (3)), 將其轉發至轉發目的地MP (3216)。與所述讀請求消息同樣地生成該寫請求 消息。
            在步驟3204中,當本MP判斷出在本MP的DKA中沒有空區域時,本 MP將請求分配相應區域的命令向較近模塊的MP進行請求(3208 )。
            本MP檢查來自接受了請求的MP的應當數據包,本MP首先在不進行拷 貝便可以訪問的范圍內、若該范圍內無法進行分配則在通過一次拷貝可以訪問 的范圍內,按照與本MP從近到遠的順序,按每個模塊與其它MP接觸,直到 實現相應區域的分配為止。
            承認來自本MP的請求的其它MP更新自身的表,將其通知給其它MP (3210)。然后,本MP生成寫請求消息,將其通知給承認了相應區域的分配 的MP。
            圖33是表示接收了寫請求消息的MP的處理動作的流程圖。接收了寫請 求消息的MP檢查寫請求是發送給本MP的還是發送給其它MP的(3300 )。
            當判定為目的地MP是本MP時,從與本MP同 一模塊的CMA向其DKA 下屬的HDD,將該CMA中存在的寫數據進行降級處理(3302 )。
            在該降級處理時,本MP通過CHA/DKA將寫請求消息的數據存在地址的 數據拷貝到同 一模塊的CMA中。
            然后,本MP生成寫應答消息(3304)。在寫應答消息(圖21 (4))的請 求數據中登錄寫請求消息的請求數據,在其消息欄的"from"中記錄本MP, 在其消息欄的"to"中記錄在寫請求消息的消息欄的"from"中所記載的MP。
            另一方面,當判定為目的地MP不是本MP時,本MP在同一模塊的CMA 中確保臨時存儲寫數據的區域(3306)。
            然后,本MP為了從接收到的寫請求消息的數據存在地址讀出數據,并將 該數據拷貝到步驟3306的臨時存儲區域中,而向同一模塊的CHA發送命令數據包(3308)。
            然后,本MP向接收到的寫請求消息的發送源(temp from)發送拷貝完成 消息(3310)。此時,本MP在拷貝完成消息(圖21 (5))的temp的"from" 中記錄本MP,在其"to"中記錄寫請求消息的發送源(temp from),在數據 存在地址中記錄步驟3306的臨時存儲區域。
            然后,本MP為了向其它MP轉發寫請求消息,參照消息轉發表來決定該 寫請求消息的轉發目的地MP (3312)。
            并且,本MP在轉發寫請求消息時,在數據存儲地址中記錄步驟3306的 臨時存儲區域,在temp欄的"from"中記錄本MP,在其"to"中記錄轉發目 的地MP。
            圖34是表示接收到在圖33的步驟3304中生成的寫應答消息的MP的動 作的流程圖。檢查接收到寫應答消息的本MP是否是寫應答消息中的轉發目的 地MP (目的地MP) (3400)。
            當判定為本MP不是目的地MP時,參照消息轉發目的地表來決定寫應答 消息的轉發目的地(3402)。然后,本MP在寫應答消息的temp欄的"from" 中記錄本MP,在其"to"中記錄轉發目的地MP來進行寫應答消息的轉發 (3404 )。
            并且,當步驟3400中判定為本MP是目的地MP時,向與本MP同一模 塊的CHA發送命令,該命令是針對從主計算機向該CHA的寫請求(相應請 求),應該發送表示寫處理已結束的應答幀(3406)。
            如圖31所示,CHA/DKA2當接收來自主計算機的寫請求時,在CMA2 中確保寫數據的存儲區域,向主計算機通知數據轉發準備完成。然后,CHA2 從主計算機接收數據,并將其轉發至CMA2 ( 3 )。
            當MP2接收到寫請求時,針對與數據寫目的地DKA0同一模塊的MP0生 成寫請求消息,參照消息轉發目的地表將其送至MP1 (4)。 MP1通過寫請求 消息得知CMA0的主區域(master area)(數據存儲目的地地址)。
            接收到該寫請求消息的MP1,由于消息是發送給MP0的消息,因此在同 一模塊的CMAl中確保臨時存儲區域,指示CHA/DKA1將CMA2的寫數據 拷貝到CMAl中。從CMA2向CMAl拷貝了寫數據(5 )的CHA/DKA1向MP1以及MP2通知拷貝的結束。
            由于來自MP2的寫請求消息的目的地MP是MPO,因此MP1將寫請求消 息轉發至MP2( 6 )。MP2得知CMA1的數據的存儲區域,MP2指示CHA/DKA0 將CMA1的數據拷貝到CMAO中(7 )。
            當CHAO結束該拷貝時,將其通知給MP1和MPO。 MPO向DKAO發送進 行將CMAO的寫數據降級到HDDO中的處理的命令數據包。
            MPO生成寫應答消息,通過SW1將其發送到MP1。 MP1通過SW2將寫 應答消息轉發至MP2。 MPO在MP2接收寫應答消息后,可以通過CHA2向主 計算機返回寫應答幀。
            在圖24、圖31等中,消息的跳躍數被限定為"1",因此在存儲子系統的 第2模塊、第3模塊以及第4模塊的至少一個模塊中,與第l模塊同樣地,即 使從主計算提供了請求幀,也可以避免發生數據包的死鎖。
            在圖35中表示將交換器結構、高速緩沖存儲器、CHA/DKA —起冗余化 的存儲子系統的塊結構。該存儲子系統具有兩個模塊3500以及3502,各模塊 通過交換器彼此間的路徑而連接。
            模塊3500具有CHA/DKA1、 CMA1、 CMA2、 CHA/DKA2、第1冗余系 統交換器(SW1A以及SW2A )以及第2冗余系統交換器(SW1B以及SW2B )。
            CHA/DKA1、 CMA1、 CMA2以及CHA/DKA2的各組件,對于第1冗余 系統(A系統)交換器和第2冗余系統(B系統)交換器,如箭頭所示那樣連 接。
            CHA/DKA1以及CHA/DKA2也可以分別通過第1冗余系統交換器以及第 2冗余系統交換器的某一個與CMA1或CMA2相連。即,實現交替路徑構造。 箭頭的方向表示命令數據包的轉發方向。同一冗余系統的SW間(SW1A-SW2A、 SW1B - SW2B )通過兩條路徑相連。
            模塊3502也與模塊3500同樣地如圖所示而構成。在模塊3500和3502之 間,同一冗余系統的交換器通過1條路徑相連。即,SW2A和SW3A通過1 條路徑相連,SW4A和SW1A同樣通過1條路徑相連。關于B系統的冗余系 統交換器也相同。
            在圖35中為了簡略而未圖示MP。實際上,可以通過和CHA/DKA同樣的形態進行連接,也可以在CHA/DKA上追加MP的功能,代替執行MP的功 能。 在此為后者。
            此外,在圖35中為了方便,如CHA/DKA那樣一體地表示CHA和DKA, 但CHA和DKA可以通過同一電路實現,或者可以通過不同電路分別實現。
            組件和連接交換器的定義基于圖36的連接表。該連接表被設定在 CHA/DKA1、 CHA/DKA2、 CHA/DKA3、 CHA/DKA4的各存儲器中。在圖37 的控制表中規定了 ,對于來自成為起點的交換器的命令數據包所允許的交換器 間的跳躍數。
            例如,對于來自SW1A的命令數據包允許2次跳躍,因此,從CHA/DKA1 向CMA3的數據寫入,從SW1A經由SW2A到SW3A,可以在途中不將數據 重定向(拷貝)到CMA中地一口氣轉發至CMA3。
            另一方面,從CHA/DKA1向CMA3的數據寫入,當想要利用B的冗余系 統時,在不同模塊的交換器間允許的命令數據包的方向與A冗余系統相反, 因此,需要從SW2B到SW1B、從SW1B到SW4B、從SW4B到SW3B的3 次跳躍,所以需要由CHA/DKA3從SW4B向CMA4臨時栲貝數據,然后從 CMA4讀取數據,從SW4B向SW3B進行發送,CHA/DKA4將該數據拷貝到 CMA3中。因此,利用A系統來進行從CHA/DKA1向CMA3的數據寫入。
            針對SW1A的允許跳躍數是"2",針對SW2A的允許跳躍數是"1"的理
            因此如圖IO所示,在死鎖的發生中沒有故障,與之相對,在跨越不同模塊的 SW2A和SW3A之間由1條路徑構成,因此從防止死鎖的觀點出發,在SW2A 和SW3A之間,把以SW2A為起點的數據包的發送限制為1次跳躍。關于其 它交換器也同樣。
            將發送源SW、發送目的地SW、發送源SW的下一 SW、從發送源SW到 發送目的地SW之間的跳躍數、以及以圖37的允許跳躍數為前提的重定向數 匯總為拓樸表(圖38),存儲在CHA/DKA的存儲器中。而且,當從發送源 (CHA/DKA)向發送目的地(CMA)轉發數據包時,把在數據包的轉發中使 用哪個冗余系統匯總為轉發使用冗余系統表(圖39)。
            圖40是用于生成轉發使用冗余系統表的流程圖。通過存儲子系統的管理計算機執行該流程圖。管理計算機以x作為數據包發送源組件,以y作為數據 包的發送目的地組件(4000 )。
            然后,管理計算機根據圖36的連接表,關于各個冗余系統,調查x和y 的連接交換器(4002)。管理計算機從圖38的拓樸表中,關于各冗余系統以x 作為發送源SW,以y作為發送目的地SW,調查這些SW間的重定向數、跳 躍數(4004 )。
            然后,管理計算機檢查兩冗余系統的重定向數是否相同(4006),若相同, 則針對數據包的轉發,使用SW間的跳躍數少的冗余系統(4008)。
            另一方面,當兩冗余系統的重定向數不相同時,使用重定向數少的冗余系 統(4010X然后,檢查是否針對全部x, y進行了調查(4012),在對此進行 肯定的情況下結束流程圖,在對此進行否定的情況下返回步驟4000。此外, 當兩冗余系統中重定向數以及跳躍數相同時,在轉發中可以使用任意冗余系統 交換器。
            圖41是表示管理計算機進行的重定向數的計算的流程圖。管理計算機以 x作為數據包發送源組件,以y作為數據包發送目的地組件,關于連接表,針 對各冗余系統調查x, y的連接交換器(4100)。
            管理計算機參照允許跳躍數表(圖37),針對成為數據包轉發中的發送源 (起點)的SW,確定允許跳躍數。然后,根據拓樸表確定發送源SW和發送 目的地SW間的實際跳躍數(4102 )。
            然后,管理計算機從實際跳躍數減去允許跳躍數,檢查其結果是否在0以 下(4104X若減法運算結果在0以下,則將重定向計數器的值作為"重定向 數,,登錄在圖38的拓樸表中(4106)。此外,也可以在管理計算機的存儲器中 設定圖36至圖39的表。
            重定向計數器也被設定在管理計算機的存儲器中。重定向計數器的初始值 是"0"。
            在將重定向計數器值登錄在拓樸表中后,將該計數器復位(4108),針對 下一x, y進行重定向數的計算(4110)。
            另一方面,當步驟4104中的減法運算結果在1以上時,將重定向計數器 值加l (4112),然后,將拓樸表的"下一SW"重新讀取為起點SW (4114),從實際跳躍數中減去允許跳躍數,檢查減法運算結果是否在0以下。 執行以上步驟,直到針對全部x, y結束處理(4110)。 圖42是說明與檢測出從SW中移除組件、組件的故障相對應的處理的流 程圖。管理計算機,關于與SW# (=K)連接的組件,當檢測出"移除"或"故 障"時(4200),檢查在與該SWk相連的組件中是否有正進行動作的組件 (4202 )。
            當肯定該判定時,不從組件向該SWk輸入命令,發生死鎖的可能性相應 地較小,因此在允許跳躍數表中將以SWk作為起點SW的SW間允許跳躍數 加1 (4204)。
            然后,管理計算機再次計算以SWk作為轉發源SW的重定向數,再次生 成轉發使用冗余系統表(4206)。
            另一方面,在步驟4202中,當與該SWk相連的組件中有正進行動作的組 件時,針對該組件的數據包有可能引起死鎖,因此取消步驟4204和步驟4206 的處理。
            在從圖40到圖42的說明中,由管理計算機執行來執行,但各MP或 CHA/DKA也可以具有允許跳躍數表等的副本,參照該副本由它們分別執行。
            圖35所示的存儲子系統,在從轉發源SW向轉發目的地SW的數據包轉 發中根據使用冗余系統表區分使用冗余系統,由此,在數據包轉發的過程中不 向CMA臨時拷貝數據,而可以從CHA/DKA訪問任何CMA。
            另一方面,在冗余系統的某個SW發生了故障時,若在數據包轉發的過程 中向CMA拷貝數據,則可以利用交替系統路徑從CHA/DKA訪問任何CMA。
            圖43說明在從CHA/DKA1向CMA4進行訪問時,使用冗余系統B的 SW1B中發生故障時的數據包轉發處理。
            從CHA/DKA1向CMA4進行的訪問利用A的冗余系統,針對SW1A允 許2次跳躍,因此,使數據包從SW1A到SW3A進行2次跳躍。
            CHA/DKA3將數據從SW3A臨時重定向到CMA3中,CHA/DKA4從 CMA3讀取數據后將其拷貝到CMA4中。
            由此,若允許數據的重定向,則即使在冗余系統的一方的SW中發生故障, CHA/DKA (MP)也可以從其它冗余系統訪問作為目標的組件(CMA)。下面,根據圖44來說明圖35的變形例。圖44的實施方式與圖35的實施 方式的不同點是電源被二重化為電源A和電源B、電源A向冗余系統A的 交換器供給電力、電源B向冗余系統B供給電力,并且與電源配置相匹配地 進一步將各CMA 二重化。CMA1被進一步二重化為CMA1A和CMA1B,從 電源A向CMA1A供給電力,從電源B向CMA1B供給電力。SW1A以及SW1B 分別與CMA1A和CMA1B相連。其它CMA以及交換器也如圖44所示,與 在此說明的內容同樣地構成。
            根據圖44,即使萬——方的電源脫落,通過把來自上位位置的寫數據存 儲在此次進一步被二重化的CMA的雙方中,寫數據即使不存儲在主存儲裝置 HDD中也不會丟失寫數據。
            此外,圖44雖未配合二重化的電源而將CHA/DKA二重化,但如圖45所 示,也可以配合二重化的電源將各CHA/DKA二重化。根據該結構,針對各電 源,像CHA/DKA10和CHA/DKA20那樣將CHA/DKA二重化,因此與交換 器以及CMA的冗余化相匹配,寫數據不會丟失。此外,在圖45 圖48中為 方便起見而省略了針對冗余化電源的描繪。
            接著,根據圖46說明圖44的動作的特點。圖46的存儲子系統(在圖35 以及圖46中,都將相鄰的兩個模塊作為象征性地表示存儲子系統的模塊來表 示)中,為了防止所述死鎖,從CHA/DKA1發送到CMA4的寫數據,并非從 SW1A — 口氣通過SW2A以及SW3A地被轉發到CMA4,而是在被臨時緩沖 在CMA3中后被轉發至CMA4。 CMA4的數據存儲區域是主區域(寫數據的 最終存儲目的地),從該存儲區域將數據降級到存儲介質 存儲設備(HDD或 閃速存儲器等半導體存儲器、磁帶或光盤等)。
            此外,應該臨時存儲在高速緩沖存儲器中的是包含數據在內的數據包,另 外,由于數據包的數據部分以外可以再構成,因此不一定需要進行臨時緩沖。
            在圖46中,當CHA/DKA4從SW4A將數據存儲在CMA4的主區域時, 在CMA4A和CMA4B中雙重地存儲數據。并且,存儲子系統在CMA4A和 CMA4B中雙重地存儲了數據的時刻向上位裝置報告寫結束。
            分別從不同電源向CMA4A和CMA4B供給電力,因此通常不發生寫數據 的丟失。于是,在存儲子系統在HDD中存儲數據之前,可以向主計算機裝置進行寫完成的報告,由此,可以從存儲子系統中減輕與來自主計算機裝置的寫 命令相對應的數據包處理的負荷。
            圖47是圖46的變形例。在圖46中,當模塊3502在CMA4A和CMA4B 中雙重地存儲了寫數據的時刻,向主計算機進行了寫完成報告,但在圖47中, 不使作為臨時存儲區域的CMA3A的寫數據存儲區域無效化,而升級到正式的 主區域中,與此同時,將寫數據存儲在CMA4B的主區域中,在此時刻,模塊 3502向主計算機裝置進行寫完成報告。通過將CMA3A的一個存儲區域存儲 在主區域中,寫數據也被雙重寫入CMA4B的主區域中。此外,向CMA3A供 給A系統的電源,向CMA4B供給B系統的電源,因此也實現了針對電源不 良的冗余化。
            圖48是使CHA/DKA不兼有MP功能時的框圖。MP在各模塊中被雙重 化為從電源A供給電力的A系統(例如MP1A)和從電源B供給電力的B系 統(例如MPIB )。各MP分別與全部的交換器(SW1A、 SW2A、 SW1B、 SW2B ) 相連。
            MP所處理的用于控制的信息的數據長度短,因此MP與交換器間的路徑, 與聯結轉發與主計算機裝置間的輸入輸出數據的CMA、 CHA/DKA和各交換 器的路徑相比,帶寬可以較窄。比較容易增多各交換器與MP之間的路徑數。 于是,通過在模塊內的4個SW中形成從MP開始的路徑,關于MP間的消息 的轉發不需要所述的重定向。例如,當與圖29對應時不中斷(4)、 (6), MP2—MPO可以通過1次跳躍進行消息的轉發。
            圖49是表示圖35所示的存儲子系統的多個模塊通過以網狀(mesh)相互 結合而得到的網格系統的要部的框圖。當著眼于模塊l時,模塊1與相鄰的3 個模塊通過B系統的交換器相互連接。以模塊1的交換器2B分別接收來自相 鄰的其它3個模塊的命令數據包的方式形成路徑,以從模塊1的交換器IB分 別向相鄰的其它3個模塊發送命令數據包的方式形成路徑。
            權利要求
            1. 一種與主計算機相連的、從該主計算機接受寫或讀訪問的存儲子系統,其特征在于,具有分別具有存儲資源的多個構成單位;聯結所述多個構成單位的交換器;控制器,其對于將數據包經由所述交換器轉發至所述多個構成單位中的目標構成單位的操作進行控制,該數據包是基于來自所述主計算機的所述寫或讀訪問的數據包;以及存儲了所述數據包的轉發規則的存儲器,所述控制器根據所述轉發規則控制所述數據包的轉發。
            2. 根據權利要求l所述的存儲子系統,其特征在于, 具有將所述構成單位、所述交換器和所述控制器組合而成的多個模塊, 所述多個模塊構成為可以經由所述交換器進行多重聯結,所述控制器根據所述轉發規則,將在所述模塊的所述交換器彼此間的路徑 上流動的命令數據包的轉發方向限定為特定方向。
            3. 根據權利要求2所述的存儲子系統,其特征在于, 在所述多個模塊的交換器間構成多條路徑,所述控制器經由所述多條路徑之一轉發從所述多個模塊之一向其它模塊 的所述命令數據包,經由與所述一條路徑不同的路徑轉發從所述其它模塊向所 述一個4莫塊的所述命令數據包。
            4. 根據權利要求2所述的存儲子系統,其特征在于,對于在所述多個模塊間轉發的多個數據包中的至少一個數據包,所述控制 器根據所述轉發控制規則限制該數據包可以 一次跨越的、所述多個模塊間的路 徑的數量。
            5. 根據權利要求2所述的存儲子系統,其特征在于,對于在所述多個模塊間轉發的多個數據包中的至少一個數據包,所述控制 器將該數據包的數據臨時存儲在所述多個模塊的至少 一個中。
            6. 根據權利要求5所述的存儲子系統,其特征在于, 所述模塊具有控制與所述主計算機之間的輸入輸出的第l適配器、保存存儲所述數據包的數據的主存儲裝置、高速緩沖存儲器、以及控制與所述主存儲裝置之間的輸入輸出的第2適配器,所述控制器經由所述交換器可以訪問所述第1適配器、所述主存儲裝置和所述高速緩沖存儲器,多個所述模塊,經由所述交換器間的路徑構成所述數據包的轉發路由, 構成所述轉發路由的所述多個模塊中的至少 一個模塊的所述高速援沖存儲器,臨時存儲所述轉發途中的數據包的數據,將該數據包從所述轉發路由進行臨時緩沖。
            7. 根據權利要求6所述的存儲子系統,其特征在于, 在所述轉發路由上發送所述數據包的過程中從第1高速緩沖存儲器向第2高速緩沖存儲器轉發所述數據包時,所述控制器釋放所述第1高速緩沖存儲器 的存儲了所述數據包的區域。
            8. 根據權利要求3所述的存儲子系統,其特征在于,與所述命令數據包對應的應答數據包,通過與該命令數據包所通過的路徑 相同的路徑,被轉發至所述命令數據包的發送源模塊。
            9. 根據權利要求4所述的存儲子系統,其特征在千,對于在所述多個才莫塊間轉發的多個數據包中的至少一個數據包,所述控制 器將該數據包的數據臨時存儲在所述多個模塊的至少一個中。
            10. 根據權利要求5所述的存儲子系統,其特征在于,關于在所述多個模塊的至少一個中臨時存儲的數據,所述控制器根據所述 轉發控制規則,限制用于寫或讀的數據包可以一次跨越的所述多個模塊間的路 徑的數量。
            11. 根據權利要求2所述的存儲子系統,其特征在于, 所述控制規則包含在所述多個模塊間轉發的消息數據包的中繼目的地模塊,所述控制器經由所述中繼目的地模塊,從轉發源模塊向轉發目的地模塊轉 發所述消息數據包。
            12. 根據權利要求11所述的存儲子系統,其特征在于,所述控制器根據所述轉發控制規則,限制所述消息數據包可以 一次跨越 的、所述多個模塊間的路徑的數量。
            13. 根據權利要求2所述的存儲子系統,其特征在于,通過構成第1冗余系統的所述多個第1交換器和構成第2冗余系統的所述 第2交換器,所述多個模塊相互聯結。
            14. 根據權利要求13所述的存儲子系統,其特征在于, 針對屬于所述第1冗余系統和第2冗余系統的交換器,限制與該交換器對應的數據包一次3爭越的所述多個交換器間的路徑的數量。
            15. 根據權利要求14所述的存儲子系統,其特征在于, 與屬于所述第1冗余系統和第2冗余系統的交換器相對應的數據包,當從該數據包的轉發源到其轉發目的地的所述路徑數量超過所述限制時,所述控制 器在所述數據包的轉發途中將數據臨時存儲在所述模塊內的組件中。
            16. 才艮據權利要求14所述的存儲子系統,其特征在于,當屬于第1冗余系統的所述至少一個交換器受到妨礙時,所述控制器經由 第2冗余系統將所述數據包轉發至所述多個模塊中的目標模塊的對象組件。
            17. —種存儲子系統,具有可以多重聯結地構成的多個i^塊,并接受來自 與該多個^^莫塊中的至少一個模塊相連的主計算機的寫或讀訪問,所述多個;f莫塊,構成轉發數據包的轉發路由,所述數據包順次通過構成該轉發路由的所述多個模塊,被轉發至目標模塊,所述數據包是基于來自所述主 計算機的所述寫或讀訪問的數據包,所述存儲子系統的特征在于,所述各模塊具有控制與所述主計算機之間的輸入輸出的第1適配器; 保存存儲所述數據包的數據的主存儲裝置; 高速緩沖存儲器;控制與所述主存儲裝置的輸入輸出的第2適配器; 控制器;以及與所述第1適配器、所述主存儲裝置、所述高速緩沖存儲器、所述第2 適配器和所述控制器連接的交換器,所述控制器經由所述交換器訪問所述第1適配器、所述主存儲裝置、所述高速緩沖存儲器和所述第2適配器來控制所述數據包的轉發,所述多個模塊經由設置在各模塊的所述交換器間的路徑進行連接,構成所 述轉發路由,所述控制器識別在所述轉發路由上轉發的數據包可以通過的所述路徑的 上限值,當所述數據包超過所述上限值地在所述轉發路由上被轉發時,在所述 數據包超過所述上限值之前,在所述轉發路由上的所述模塊的所述高速緩沖存 儲器中臨時存儲所述數據包中包含的數據,然后,將該高速緩沖存儲器中存儲 的所述數據包向其它4莫塊進行轉發。
            18. 根據權利要求17所述的存儲子系統,其特征在于, 接受來自所述主計算機的寫訪問的所述模塊的第l控制器,當判定為未分配存儲所述寫數據的存儲區域時,判定是否可以對該第1控制器屬于的模塊的 所述主存儲裝置分配該寫數據,當所述第l控制器否定了該判定時,該第l控制器向未超過所述上限值的 范圍內的其它模塊的第2控制器發送所述數據包,該第2控制器判定是否可以將從所述第l控制器發送來的所述數據包的所 述寫數據,向該其它模塊的所述主存儲裝置的存儲區域進行所述分配。
            19. 根據權利要求17所述的存儲子系統,其特征在于, 所述各才莫塊具有屬于第i冗余系統的第1交換器、和屬于第2冗余系統的第2交換器,通過所述路徑將同一冗余系統的所述交換器彼此連接,由此連接所述多個 模塊,所述各模塊的第1適配器、所述第2適配器、所述高速緩沖存儲器以及所 述控制器,與該模塊的所述第1交換器和所述第2交換器相連接。
            20. 根據權利要求19所述的存儲子系統,其特征在于, 所述第1交換器以及第2交換器分別由多個交換器適配器構成, 在所述各交換器適配器中設定所述上限值,被轉發至所述交換器適配器的所述數據包,當從該交換器適配器向作為目 的地的其它交換器適配器轉發時,受到所述上限值的限制,為使所述數據包到達其它模塊而對其進行轉發的第1交換器適配器的所述上限值,被設定為小于在同一模塊內轉發所述數據包的第2交換器適配器的 所述上限值的值,所述模塊將所述第2交換器適配器與所述第1交換器適配器相連接,并將 該第1交換器適配器與其它模塊的所述第1交換器適配器相連接。
            全文摘要
            本發明提供一種存儲子系統,其可以在可升級性優異的網格存儲系統中避免死鎖。本發明的存儲子系統是連接主計算機的、從該主計算機接受寫或讀訪問的存儲子系統,其具有分別具有存儲資源的多個模塊(16)、聯結多個模塊的交換器(24)、對于將基于來自主計算機的寫或讀訪問的數據包經由交換器轉發至多個模塊中的目標模塊的操作進行控制的MP(18)、以及存儲了數據包的轉發規則的存儲器。控制器根據轉發規則控制數據包的轉發。
            文檔編號H04L12/56GK101471882SQ20081018501
            公開日2009年7月1日 申請日期2008年12月26日 優先權日2007年12月27日
            發明者中村崇仁, 福田秀明, 細谷睦, 藤林昭 申請人:株式會社日立制作所
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品