国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于集群環(huán)境中的作業(yè)的管理的系統(tǒng)和方法

      文檔序號:6570707閱讀:316來源:國知局
      專利名稱:用于集群環(huán)境中的作業(yè)的管理的系統(tǒng)和方法
      技術領域
      本發(fā)明涉及集群的計算機環(huán)境,尤其涉及在集群的計算機環(huán)境中 的作業(yè)的管理。
      背景技術
      存儲系統(tǒng)典型包含一個或者多個存儲裝置,可自由地把信息輸入
      到所述存儲裝置并從中獲取信息。存儲系統(tǒng)包括通過尤其(interalia) 在由系統(tǒng)所執(zhí)行的存儲服務的支持下調用存儲操作從功能上組織系 統(tǒng)的存儲操作系統(tǒng)??筛鶕?jù)各種存儲構造實現(xiàn)存儲系統(tǒng),所述存儲構 造包括、但不限于網絡附連的存儲環(huán)境、存儲區(qū)域網和直接附連到客 戶或主計算機上的磁盤集合。存儲裝置一般是以磁盤陣列組織的磁盤 驅動器,其中術語"》茲盤"通常描述獨立旋轉式;茲介質存儲裝置。本 文中的術語"》茲盤"與硬盤驅動器(hard disk drive: HDD)或直接存 取存々者器(direct access storage device: DASD)同義。
      存儲系統(tǒng)的存儲操作系統(tǒng)可實現(xiàn)例如文件系統(tǒng)的高級模塊,以從 邏輯上把存儲在巻(volume)上的信息組織為數(shù)據(jù)容器(data container)、例如文件和邏輯單元的分級構造。例如,可把每個"盤 上(on-disk)"文件實現(xiàn)為配置來存儲信息、例如文件的實際數(shù)據(jù)的 數(shù)據(jù)結構集合,即磁盤塊(diskblock)。這些數(shù)據(jù)塊被組織在由文件 系統(tǒng)維持的巻塊號(volume block number: vbn)空間內。文件系統(tǒng)還 為文件中的每個數(shù)據(jù)塊分配相應的"文件偏移量(file offset)"或文 件塊號(file block number: fbn)。文件系統(tǒng)一般以每個文件為基礎分 配fbn序列,然而在更大的巻地址空間上分配vbn。文件系統(tǒng)把vbn 空間內的數(shù)據(jù)塊組織為"邏輯巻";每個邏輯巻可以、但不是必須與
      5其自身的文件系統(tǒng)關聯(lián)。
      一種已知類型的文件系統(tǒng)是不在vf茲盤上重寫數(shù)據(jù)的寫入任意位 置(write-anywhere)文件系統(tǒng)。如果數(shù)據(jù)塊被從磁盤恢復(讀)到存 儲系統(tǒng)的存儲器,并被新數(shù)據(jù)"弄臟(dirty)"(即被更新或被修改), 那么此后把該數(shù)據(jù)塊存儲(寫)到》茲盤上的新位置以使寫入性能最優(yōu) 化。寫入任意位置文件系統(tǒng)可最初假定最優(yōu)布局(layout),使得數(shù) 據(jù)基本上連續(xù)地排列在磁盤上。最優(yōu)磁盤布局導致被定向到磁盤的有 效的訪問操作,尤其是對于有序的讀操作。配置來操作存儲系統(tǒng)的寫 入任意位置文件系統(tǒng)的示例是可從California的Sunnyvale的Network Appliance公司得到的寫入任意位置文件布局(Write Anywhere File Layout: WAFL )文件系統(tǒng)。
      可把存儲系統(tǒng)進一 步配置成根據(jù)信息交付的客戶機/服務器的模 式運行,從而允許多客戶機訪問存儲在系統(tǒng)上的數(shù)據(jù)容器。在此模式 中,客戶機可包括在計算機上執(zhí)行的應用程序、如數(shù)據(jù)庫應用程序, 該計算機通過例如點對點鏈路、共享的局域網(LAN)、廣域網(WAN) 或在例如因特網的7>共網上所實現(xiàn)的虛擬專用網(virtual private network: VPN)的計算機網絡"連接"到存儲系統(tǒng)。每個客戶機可以 在網絡上通過向該系統(tǒng)發(fā)出基于文件和基于塊的協(xié)議消息(以包的形 式)請求存儲系統(tǒng)的服務。
      可把多個存儲系統(tǒng)互聯(lián)以提供配置成服務多個客戶機的存儲系 統(tǒng)集群。每個存儲系統(tǒng)可配置成服務一個或多個巻,其中每個巻存儲 一個或多個數(shù)據(jù)容器。在某些存儲系統(tǒng)集群中,可把數(shù)據(jù)容器的內容 在配置為條帶巻集(striped volume set: SVS )的多個巻上條帶化,這 里每個巻由不同的存儲系統(tǒng)服務,從而在多個存儲系統(tǒng)中為單個數(shù)據(jù) 容器分配負載(load)。在Richard Jernigan等人的名為《用于在集群 的巻上條帶化數(shù)據(jù)容器內容的存儲系統(tǒng)構造》(STORAGE SYSTEM ARCHITECTURE FOR STRIPING DATA CONTAINER CONTENT ACROSS VOLUMES OF A CLUSTER)的美國專利申請11/119278中描述了數(shù)據(jù)容器條帶化的集群環(huán)境。
      為了管理存儲系統(tǒng)集群而執(zhí)行的管理任務中的多數(shù)包括復雜的 和/或可能長期運行的操作??梢竽承┤蝿?作業(yè))在集群內的特定 存儲系統(tǒng)上運行,而其它的任務(作業(yè))可在集群內的任意存儲系統(tǒng) 上運行。作業(yè)可包含多個以有組織的方式操作以完成任務的進程
      (process)和/或線程(thread)。常規(guī)的集群存儲系統(tǒng)的一個顯著缺 點是啟動作業(yè)的管理命令可能必須在要在其上完成該作業(yè)的的特定 存儲系統(tǒng)上執(zhí)行。這由于需要存儲系統(tǒng)集群的管理員登錄進(log into) 每一個存儲器以執(zhí)行某些作業(yè)而使集群管理變得復雜。
      然而,正確管理的顯著要求是一旦作業(yè)已經開始,即使在存儲系 統(tǒng)發(fā)生故障的情況下該作業(yè)也必須運行至完成。另外,如果該作業(yè)不 能運行至完成,則該作業(yè)必須通過如刪除創(chuàng)建的任意臨時文件等實現(xiàn)
      "干凈的(clean)"退出。在典型的存儲系統(tǒng)集群中,這些要求使得 代表系統(tǒng)管理員的人工干預成為必要,從而降低任務關鍵
      (mission-critical)的集群環(huán)境的系統(tǒng)魯棒性。例如,如果在特定存儲 系統(tǒng)上啟動作業(yè),而該存儲系統(tǒng)在作業(yè)完成之前遭遇故障,那么管理 員需要識別該作業(yè)沒有完成并在其它存儲系統(tǒng)上人工重新初始化該 作業(yè)。

      發(fā)明內容
      本發(fā)明通過提供用于存儲系統(tǒng)集群環(huán)境中的作業(yè)的管理的系統(tǒng) 和方法克服了先有技術的缺點。根據(jù)本發(fā)明,作業(yè)管理器(job manager: JM)在集群環(huán)境內的每個存儲系統(tǒng)上運行,以便提供用于調度和/或 執(zhí)行集群內的作業(yè)的框架。JM確保作業(yè)執(zhí)行直至完成,并且如果發(fā) 生存儲系統(tǒng)的故障,在該存儲系統(tǒng)(一旦它已經復原)或存儲集群內 的其它存儲系統(tǒng)上重新啟動該作業(yè)。為此,JM與包含一個或多個隊 列的復制的數(shù)據(jù)庫(replicated data base: RDB)接口 ,用于跟蹤各個 作業(yè)及其對特定存儲系統(tǒng)的親和力 一 一即作業(yè)是否必須在該存儲系統(tǒng)上執(zhí)行。
      響應發(fā)布命令以執(zhí)行管理操作的用戶,創(chuàng)建配置對象并將其傳遞
      給JM。配置對象示例性地包含由用戶在發(fā)布命令時所指定的參數(shù)和/ 選項。JM使用此對象來創(chuàng)建作業(yè)對象。作業(yè)對象示例性地包含執(zhí)4亍 作業(yè)需要的數(shù)據(jù)狀況(data situation)和/或可執(zhí)行指令。JM接著把創(chuàng) 建的作業(yè)對象加載到RDB的隊列上。存儲系統(tǒng)集群內的每個JM監(jiān)視 最新加載作業(yè)的隊列。要是作業(yè)包含對特定存儲系統(tǒng)的親和力
      (affinity),該特定存儲系統(tǒng)的JM就從RDB的隊列恢復該作業(yè)并處 理該作業(yè)。如果作業(yè)不包含特定存儲系統(tǒng)的親和力,則集群內具有可 用處理帶寬的任意JM將恢復并處理該作業(yè)。
      為了確保作業(yè)執(zhí)行直至完成,集群內的JM之一被指定為主作業(yè) 管理器并監(jiān)視集群中存儲系統(tǒng)的狀態(tài)。在發(fā)現(xiàn)存儲系統(tǒng)的故障之上, 主作業(yè)管理器等待預定的超時期間過去。如果超時期間過去,發(fā)生故 障的存儲系統(tǒng)沒有復原,那么主作業(yè)管理器把該作業(yè)標記為未被主張
      (unclaimed),以致于集群內其它JM之一可以依照其正常作業(yè)獲取 程序(routine)主張該作業(yè)并處理該作業(yè)至完成。只有具有集群親和 力的那些作業(yè)能被集群內的第二 JM復原。


      通過參考結合附圖的以下說明,可以更好地理解本發(fā)明的上述和 其他優(yōu)點,附圖中,相似的參考標號表示相同的或功能上相似的單元 圖1是根據(jù)本發(fā)明實施例的互聯(lián)為集群的多個節(jié)點的示意框圖; 圖2是根據(jù)本發(fā)明實施例的節(jié)點的示意框圖; 圖3是可優(yōu)選配合本發(fā)明使用的存儲操作系統(tǒng)的示意框圖; 圖4是根據(jù)本發(fā)明實施例圖示集群結構(cluster fabric: CF)消息 的格式的示意框圖5是根據(jù)本發(fā)明實施例圖示數(shù)據(jù)容器句柄(handle)的格式的 示意框圖;圖6是才艮據(jù)本發(fā)明實施例的示例索引節(jié)點(inode)的示意框圖; 圖7是根據(jù)本發(fā)明實施例的示例緩沖樹(buffer tree)的示意框圖; 圖8是可優(yōu)選配合本發(fā)明使用的文件的緩沖樹的示例實施例的示 意框圖9是根據(jù)本發(fā)明實施例的示例集合體(aggregate)的示意框圖; 圖10是根據(jù)本發(fā)明實施例的集合體的示例盤上布局的示意框圖; 圖11是圖示根據(jù)本發(fā)明實施例的管理進程的集合(collection)的 示意框圖12是根據(jù)本發(fā)明實施例的示例作業(yè)對象數(shù)據(jù)結構的示意框圖13是根據(jù)本發(fā)明實施例的示例狀態(tài)數(shù)據(jù)結構的示意框圖14是根據(jù)本發(fā)明實施例詳述用于執(zhí)行作業(yè)的流程(procedure)
      的步驟的流程圖15是根據(jù)本發(fā)明實施例示出多種狀態(tài)的狀態(tài)圖;以及
      圖16是根據(jù)本發(fā)明實施例詳述監(jiān)控和從故障恢復的流程的步驟
      的流程圖。
      具體實施方式
      A.集群環(huán)境
      圖l是多個節(jié)點200的示意框圖,該多個節(jié)點互聯(lián)為集群100并 被配置成提供與存儲裝置上的信息的組織有關的存儲服務。節(jié)點200 包含協(xié)同提供集群100的分布式存儲系統(tǒng)架構的多個功能組件。為此, 每個節(jié)點200通常被組織為網絡單元(N-模塊310)和^茲盤單元(D-模塊350) 。 N-模塊310包括使節(jié)點200能夠通過計算機網絡140連 接到客戶機180的功能,而每個D-模塊350連接到一個或多個存儲裝 置、例如磁盤陣列120中的磁盤130。節(jié)點200由在該示例實施例中 配置為千兆以太網(Gigabit Ethernet)切換的集群交換結構150互聯(lián)。 2002年8月22日出版的M. Kazar等人的名為《用于響應文件系統(tǒng)請 求的方法和系統(tǒng)》(METHOD AND SYSTEM FOR RESPONDING TO FILE
      9SYSTEM REQUESTS)的美國專利申請公開2002/0116593中對典型分布
      式文件系統(tǒng)架構進行了一般描述。要注意,雖然在示例集群100中顯 示了相同數(shù)目的N-模塊和D-模塊,但是根據(jù)本發(fā)明的各種實施例可 存在不同數(shù)目的N-模塊和D-模塊。例如,在不反映N-模塊和D-模塊 之間的——對應的集群配置100中可以存在互聯(lián)的多個N-模塊和/或 D-模塊。因此,應把包含一個N模塊和一個D模塊的節(jié)點200的說明 認為只是示例性的。
      客戶機180可以是配置成根據(jù)信息交付的客戶機/服務器模式與 節(jié)點200交互的普通用途計算機。即,通過在網絡140上交換包,每 個客戶機可以請求該節(jié)點的服務,而該節(jié)點可以返回客戶機所請求的 服務的結果??蛻魴C可在訪問以文件或目錄的形式的信息時通過傳輸 4空制十辦i義/因特網十辦i義(Transmission Control Protocol/Internet Protocol: TCP/IP)發(fā)出包,所述包包括基于文件的訪問協(xié)議、例如通用因特網 文件系統(tǒng)(Common Internet File System: CIFS )協(xié)議或網絡文件系統(tǒng) (Network File System: NFS )協(xié)議。備選地,客戶機可以訪問以塊的 形式的信息時發(fā)出包,所述包包括基于塊的訪問協(xié)議、例如通過TCP 封裝的小型計算機系統(tǒng)接口 ( Small Computer Systems Interface: SCSI) 協(xié)議(iSCSI)和通過光纖通道封裝的SCSI協(xié)議(FCP)。
      B.存儲系統(tǒng)節(jié)點
      圖2是示例性地配置為存儲系統(tǒng)的節(jié)點200的示意框圖,該存儲 系統(tǒng)包括通過系統(tǒng)總線223互聯(lián)的多個處理器222a、 222b,存儲器224 , 網絡適配器225,集群訪問適配器226,存儲適配器228和本地存儲 器230。本地存儲器230包含一個或多個例如^f茲盤的存儲裝置,該存 儲裝置被節(jié)點用來在本地存儲由 一個或多個以用戶模式應用1100 (見 圖11 )執(zhí)行的管理進程所提供的配置信息(例如,在配置表235中)。 集群訪問適配器226包含適合把節(jié)點200耦合到集群100的其它節(jié)點 的多個端口 。在示例實施例中,以太網被用作聚類協(xié)議(clustering protocol)和互連媒介(interconnection media),然而對本領域技術人員而言顯而易見,可在本文描述的集群架構中使用其它類型的協(xié)議和
      互連。在分離的存儲系統(tǒng)或計算機上實現(xiàn)N-模塊和D-模塊的備選實 施例中,N/D-模塊使用集群訪問適配器226以與集群100中的其它 N/D-模塊通信。
      每個節(jié)點200示例性地配置為執(zhí)行存儲操作系統(tǒng)300的雙處理器 存儲系統(tǒng),該存儲操作系統(tǒng)優(yōu)選執(zhí)行高級模塊、例如文件系統(tǒng)以在磁 盤上將信息從邏輯上組織為指定目錄、文件以及稱為虛擬^磁盤的特殊 類型的文件(下文中一般稱為"塊")的分級構造。然而對本領域普 通技術人員而言顯而易見,節(jié)點200可備選地包括單個或者多于兩個 的處理器的系統(tǒng)。示例性地, 一個處理器222a在節(jié)點上執(zhí)行N-模塊 310的功能,而另 一處理器222b執(zhí)行D-模塊350的功能。
      存儲器224示例性地包括可由處理器和適配器尋址的存儲位置, 用于存儲軟件程序(即有序操作的特定集合)和與本發(fā)明關聯(lián)的數(shù)據(jù) 結構。處理器和適配器又包含配置來執(zhí)行程序和操作數(shù)據(jù)結構的處理 單元和/或邏輯電路。部分一般常駐于存儲器(memory)中并由處理 單元執(zhí)行的存儲操作系統(tǒng)300,在由節(jié)點所執(zhí)行的存儲服務的支持下 尤其通過調用存儲操作從功能上組織節(jié)點200。對本領域技術人員而 言顯而易見,包括各種計算機可讀々某介的其他處理和存儲裝置可用于 存儲和執(zhí)行與本文所述的發(fā)明有關的程序指令。
      網絡適配器225包含多個端口,所述端口適合通過點到點鏈路、 廣域網、在公共網絡(因特網)上實現(xiàn)的虛擬專用網或共享局域網把 節(jié)點200耦合到一個或多個客戶機。因此,網絡適配器225可包含把 節(jié)點連接到網絡所需的機械的、電的和發(fā)信號(signalling)電路。示 例性地,計算機網絡140可配置為以太網或光纖通道(Fibre Channel: FC)網。每個客戶機180可通過4艮據(jù)預先定義的協(xié)議、例如TCP/IP 交換離散幀或數(shù)據(jù)包來與網絡140上的節(jié)點通信。
      存儲適配器228與在節(jié)點200上運行的存儲操作系統(tǒng)300合作以 便訪問客戶機所請求的信息。該信息可以被存儲在任意類型的附連陣列的可寫存儲裝置媒介上,例如錄傳J茲帶、光盤、DVD、磁帶、磁泡 存儲器(bubble memory)、電子隨機存取存儲器、微電子機械的和其 他類似的適合存儲包括數(shù)據(jù)和奇偶信息的信息的媒介。存儲適配器包 括具有輸入/輸出(input/output: I/O)接口電路的多個端口 ,所述接口 電路耦合到I/O互聯(lián)布置、例如常規(guī)高性能FC鏈路拓樸之上的磁盤。
      優(yōu)選以一個或多個存儲"巻(volume)"執(zhí)行每個陣列120上的 信息的存儲,所述存儲巻包括協(xié)同定義巻上的巻塊號(volume block number: vbn)空間的總體邏輯排列的物理存儲磁盤130的集合。每個 邏輯巻一般、但不是必需與其自身的文件系統(tǒng)關聯(lián)。 一般把邏輯巻/ 文件系統(tǒng)內的;茲盤組織為 一個或多個組,其中可4巴每個組作為獨立 (或廉i"介)》茲盤6勺冗余卩車歹'J ( Redundant Array of Independent (or Inexpensive) Disks: RAID)來操作。大多數(shù)RAID實現(xiàn)(implementations)、例如 RAID-4級實現(xiàn),通過在RAID組中在給定數(shù)目的物理;茲盤的數(shù)據(jù)"條 帶(stripe)"的冗余寫入和與成條帶的數(shù)據(jù)有關的奇偶信息的適當存 儲,提高數(shù)據(jù)存儲的可靠性/完整性。RAID實現(xiàn)的示例實施例是 RAID-4級實現(xiàn),但是,要理解根據(jù)本文所述的發(fā)明原理可使用其他 類型和級別的RAID實現(xiàn)。
      C.存儲操作系統(tǒng)
      為了使對磁盤130的訪問便利,;茲盤操作系統(tǒng)300執(zhí)行與一個或 多個虛擬化模塊合作以便"虛擬化"由磁盤130所提供的存儲空間的 寫入任意位置文件系統(tǒng)。本文件系統(tǒng)把信息從邏輯上組織為磁盤上的 指定目錄和文件的分級構造。把每個"盤上"文件實現(xiàn)為配置成存儲 例如數(shù)據(jù)的信息的磁盤塊的集合,而把目錄實現(xiàn)為存儲了名稱和到其 它文件及目錄的鏈接的特定格式化文件。虛擬化模塊允許文件系統(tǒng)進 一步從邏輯上把信息組織為在以指定邏輯單元號(logical unit numbers: luns)輸出的盤上的塊的分級構造。
      在示例實施例中,存儲操作系統(tǒng)優(yōu)選為可從California的 Sunnyvale的Network Appliance公司獲得的NetApp Data ONTAP
      12操作系統(tǒng),該操作系統(tǒng)執(zhí)行寫入任意位置文件布局(WAFL )的文 件系統(tǒng)。然而,要明確預期,根據(jù)本文所述的發(fā)明原理可使用任意適 當?shù)拇鎯Σ僮飨到y(tǒng)。同樣,如果使用術語"ONTAP",那么它廣泛地 指其他適可用于本發(fā)明的教導的任意存儲操作系統(tǒng)。
      圖3是可優(yōu)選與本發(fā)明配合使用的存儲操作系統(tǒng)300的示意框 圖。本存儲操作系統(tǒng)包含一系列的軟件層,組織該軟件層以形成綜合 的網絡協(xié)議棧,或者更一般地形成為客戶機提供數(shù)據(jù)路徑以便使用塊 和文件訪問協(xié)議訪問存儲在節(jié)點上的信息的多協(xié)議引擎325。多協(xié)議 引擎包括網絡驅動器(如吉比特以太驅動器)的i某體接入層312,所 述媒體接入層連接到例如IP層314及其支持的傳輸機制、TCP層316 和用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol: UDP)層315的的網絡協(xié) 議層。文件系統(tǒng)協(xié)議層提供多協(xié)議文件訪問,并因此包括對直接訪問 文件系統(tǒng)(Direct Access File System: DAFS )協(xié)議318、 NFS協(xié)議320、
      協(xié)議324的支持。VI層326實現(xiàn)VI體系結構以提供DAFS協(xié)議318 所需要的直接訪問傳輸(direct access transport: DAT)能力、例如 RDMA。 iSCSI驅動器層328通過TCP/IP網絡協(xié)議層提供塊協(xié)議訪問, 而FC驅動器層330從節(jié)點接收并向節(jié)點發(fā)送塊訪問請求和響應。FC 和iSCSI驅動器向塊提供FC-特定和iSCSI-特定的訪問控制,并因此 在訪問節(jié)點200上的塊時,管理向iSCSI或FCP或備選地向iSCSI和 FCP 二者的luns輸出。
      另外,存儲操作系統(tǒng)包括一系列軟件層,組織所述軟件層以形成 提供數(shù)據(jù)路徑用于訪問存儲在節(jié)點200的磁盤130上的信息的存儲服 務器365。為此,存儲服務器365包括與巻條帶化模塊(volume striping module: VSM) 370處于協(xié)同操作關系的文件系統(tǒng)模塊360、 RAID系 統(tǒng)模塊380和磁盤驅動器系統(tǒng)模塊390。 RAID系統(tǒng)380根據(jù)I/O操作 管理來往于巻/磁盤的信息的存儲和恢復(retrieval),而磁盤驅動器 系統(tǒng)390執(zhí)行磁盤訪問協(xié)議、例如SCSI協(xié)議。VSM 370示例性地實現(xiàn)了條帶巻集(striped volume set: SVS )。特別地,VSM370執(zhí)行Locate 0 (定位函數(shù))375以計算在SVS巻中數(shù)據(jù)容器內容的位置,從而確 保由集群所服務的此類內容的一致性。
      文件系統(tǒng)360通過與示例性地配置為例如虛擬》茲盤(virtual disk: vdisk)模塊(未示出)的一個或多個虛擬化模塊(以及SCSI對象模 塊335 )的交互,實現(xiàn)存儲操作系統(tǒng)300的虛擬化系統(tǒng)。vdisk模塊能 夠響應向節(jié)點200發(fā)布命令的用戶(系統(tǒng)管理員),通過管理接口、 例如管理框架1110 (參見圖11)的用戶接口進行訪問。SCSI對象模 塊335 —般被設置在FC和iSCSI驅動器328、 330和文件系統(tǒng)360之 間,以便在塊(lun)空間和文件系統(tǒng)空間之間提供虛擬化系統(tǒng)的轉換 層(translation layer),這里4巴luns表示為塊。
      文件系統(tǒng)360示例性地為基于消息的系統(tǒng),該系統(tǒng)提供邏輯巻管 理性能用于對存儲在存儲裝置、例如磁盤上的信息的訪問。即,除了 提供文件系統(tǒng)語義(semantics )以外,文件系統(tǒng)360還提供通常與巻 管理器關聯(lián)的功能。這些功能包括(1)磁盤的聚合(aggregation), (2)磁盤的存儲帶寬的聚合,及(3)可靠性保證,如鏡像和/或奇偶 (RAID)。示例性地,文件系統(tǒng)360使用例如4千字節(jié)(kilobyte: KB) 的塊并使用索引節(jié)點(indexnode: "inode")來識別文件和文件屬性 (如創(chuàng)建時間、訪問許可、大小和塊位置),執(zhí)行具有基于塊的盤上 格式表示法的WAFL文件系統(tǒng)(在下文中一般為"寫入任意位置文件 系統(tǒng)"),。文件系統(tǒng)使用文件來存儲元數(shù)據(jù),所述元數(shù)據(jù)描述其文 件系統(tǒng)的布局;其中,這些元婆:據(jù)的文件包括inode文件。文件句柄、 即包括inode號的標識符被用來從石茲盤恢復inode。
      寬泛地講,把任意位置寫入文件系統(tǒng)的所有inode組織到inode 文件。文件系統(tǒng)(file system: fs)信息塊(info block)指定文件系統(tǒng) 中的信息的布局,并包括含有該文件系統(tǒng)的所有別的inode的文件的 inode的文件。每個邏輯巻(文件系統(tǒng))具有優(yōu)選存儲在例如RAID組 內的固定位置的fsinfo (文件系統(tǒng)信息)塊。inode文件中的inode可以直接引用(指向)該inode文件的數(shù)據(jù)塊,或者可以引用inode文件的間接塊,間接塊又引用inode文件的數(shù)據(jù)塊。把inode嵌入到inode文件的每個數(shù)據(jù)塊,其中每個inode可引用間接塊,間接塊又引用文件的數(shù)據(jù)塊。
      在操作上,以計算機網絡140上和到節(jié)點200的包轉發(fā)來自客戶機180的請求,在節(jié)點200的網絡適配器225接收該包。(層312或層330的)網絡驅動器處理該包,且如果適當,向寫入任意位置文件系統(tǒng)360轉發(fā)該包之前將其傳遞到網絡協(xié)議和文件訪問層作附加處理。此時,如果被請求的數(shù)據(jù)沒有常駐在"核內"、即在存儲器224中,則文件系統(tǒng)產生把其從^茲盤130加栽(恢復)的操作。如果信息不在存儲器中,則文件系統(tǒng)360使用inode號在inode文件內做索引以便訪問適當?shù)娜肟诓⒒謴瓦壿媣bn。文件系統(tǒng)接著向RAID系統(tǒng)380傳遞包括邏輯vbn的消息結構;邏輯vbn被映射(map)到;茲盤標識符和磁盤塊號(disk, dbn),并被發(fā)送至磁盤驅動器系統(tǒng)390的合適驅動器(如SCSI)。該磁盤驅動器從指定磁盤130訪問dbn,并在存儲器中加載所請求的數(shù)據(jù)塊供節(jié)點處理。在該請求的完成之上,節(jié)點(和操作系統(tǒng))通過網絡140向客戶機180返回答復。
      要注意,可備選地以硬件實現(xiàn)通過上述存儲操作系統(tǒng)層的、為節(jié)點接收的客戶機請求執(zhí)行數(shù)據(jù)存儲訪問所需的軟件"路徑"。即,在本發(fā)明的備選實施例中,可以在現(xiàn)場可編程門陣列(field programmablegate array: FPGA )或專用集成電路(application specific integrated circuit:ASIC)內所配備的邏輯電路來實現(xiàn)存儲訪問請求數(shù)據(jù)的路徑。這種類型的硬件實現(xiàn)提高了由節(jié)點200在響應客戶機180發(fā)出的請求時所提供的存儲服務的性能。此外,在本發(fā)明的另一備選實施例中,可把適配器225、 228的處理單元配置來從處理器222分別卸載(offload )某些或全部包處理和存儲訪問操作,從而提高該節(jié)點所提供的存儲服務的性能??擅鞔_預期,本文所述的各種處理、架構和流程能夠以硬件、固件或者軟件來實現(xiàn)。本文所用的術語"存儲操作系統(tǒng)" 一般是指可在計算機上運行以
      執(zhí)行管理數(shù)據(jù)存取的存儲功能的計算機可執(zhí)行代碼,而且在節(jié)點200的情況中,可實現(xiàn)普通用途的操作系統(tǒng)的數(shù)據(jù)存取語義。還能夠以微核(microkernel)、通過普通用途的操作系統(tǒng)(如UNIX⑧或WindowsXP )操作的應用程序、或者以具有配置用于本文所述的存儲應用的可配置功能的普通用途操作系統(tǒng)實現(xiàn)存儲操作系統(tǒng)。
      另外,本領域技術人員要理解,本文所述的發(fā)明可以應用到任意類型的包括獨立計算機或其部分、被配置為或包括存儲系統(tǒng)的特殊用途(如文件服務器、文件管理程序(filer)或存儲服務應用)或普通用途計算機。此外,本發(fā)明的教導能夠適合于包括但不限于網絡附連的存儲環(huán)境、存儲區(qū)域網絡和直接附連到客戶機或主機的磁盤集(diskassembly)的多種存儲系統(tǒng)架構。因此,除了配置來執(zhí)行存儲功能并與其他設備或系統(tǒng)關聯(lián)的任意子系統(tǒng)之外,術語"存儲系統(tǒng)"還應該廣泛地包括此類配置。要注意,雖然根據(jù)寫入任意位置文件系統(tǒng)書寫本說明書,但是本發(fā)明的教導可配合包括按寫入位置文件系統(tǒng)的任意適當文件系統(tǒng)使用。
      D. CF協(xié)議
      在示例實施例中,把存儲服務器365配置為存儲操作系統(tǒng)300的D-模塊350以服務陣列120的一個或多個巻。另外,把多協(xié)議引擎325配置為N-模塊310以(1 )執(zhí)行與通過網絡140發(fā)出輸入數(shù)據(jù)訪問請求包的客戶機有關的協(xié)議終止,以及(2)把那些數(shù)據(jù)訪問請求重定向至集群100的任意存儲服務器365。而且,N-模塊310和D-模塊350合作以提供集群100的完全可升級的(scalable )分布式存儲系統(tǒng)架構。為此,每個模塊包括適合實現(xiàn)模塊間的、包括D-模塊到D-模塊通信的集群內通信以供數(shù)據(jù)容器條帶化操作的集群結構(cluster fabric:CF)接口模塊340a、 b。
      N-模塊310的協(xié)議層、例如NFS/CIFS層和iSCSI/FC層)以協(xié)議服務器運行,該協(xié)議服務器將來自客戶機的基于文件和基于塊的數(shù)據(jù)訪問請求轉換(translate )成與D-模塊350通信所使用的CF協(xié)議消息。即,N-模塊服務器將輸入的數(shù)據(jù)訪問請求轉換為文件系統(tǒng)原語操作
      (命令),由CF接口模塊340把該原語操作嵌入到CF消息以供向集群100的D-模塊350的傳輸。尤其,CF接口模塊340協(xié)同在集群100中的所有D-模塊350提供單一文件系統(tǒng)映象(image)。因此,接收客戶機請求的N-模塊的任意網絡端口能夠訪問在位于集群的任意D-模塊350上的單一文件系統(tǒng)映象內的任意數(shù)據(jù)容器。
      示例性地,以存儲操作系統(tǒng)300的獨立預設的進程實現(xiàn)N-模塊310和D-模塊350;但是,在備選實施例中,可以單一操作系統(tǒng)進程內的代碼段實現(xiàn)這些模塊。本文所用的進程(process)表示由例如處理器222所執(zhí)行的程序的情形,而線程(thread)是進程的程序代碼序列的情形。因此,示例性地,N-模塊和D-模塊間的通信通過所述模塊之間的消息傳遞的使用而實現(xiàn),然而,在不同節(jié)點的N-模塊和D-模塊之間的遠程通信的情況下,這樣的消息傳遞發(fā)生在集群交換結構150上。由存儲操作系統(tǒng)提供來在模塊(進程)之間傳輸信息的已知消息傳遞機制是進程間通信(Inter Process Communication: IPC )機制。配合IPC機制使用的協(xié)議示例性地為通用文件和/或基于塊的"不可知的"CF協(xié)議,該CF協(xié)議包含組成CF應用編程接口 (applicationprogramming interface: API)的方法/函lt集。這種不可知的十辦i義的例子是可從Network Appliance公司獲得的SpinFS和SpinNP協(xié)議。該SpinFS協(xié)議記載在上文引用的美國專利申請公開2002/0116593中。
      CF接口模塊340執(zhí)行CF協(xié)議用于集群100的模塊之間通信文件系統(tǒng)命令。示例性地,通過D-模塊向發(fā)布呼叫(call)的那個N-模塊
      (或另一D-模塊)公開CFAPI實現(xiàn)通信。為此,把CF接口模塊340組織為CF編碼器和CF解碼器。例如,N^莫塊310上的CF接口 340a的CF編碼器把CF消息封裝為(1)在把文件系統(tǒng)命令通信到駐留在同一節(jié)點200上的D-模塊350時的本地過程呼叫(local procedure call:LPC)或(2)在把該命令通信到駐留在集群100的遠程節(jié)點上的D-模塊時的遠程過程呼叫(remote procedure call: RPC)。在任一情況下,D-模塊350上的CF接口 340b的CF解碼器解封裝CF消息并處理文件系統(tǒng)命令。
      圖4是根據(jù)本發(fā)明實施例圖解CF消息400的格式的示意框圖。把CF消息400示例性地用于集群100的遠程模塊之間通過交換結構150的RPC通信;但是,要理解,術語"CF消息" 一般可被用來指集群的模塊之間的LPC和RPC通信。CF消息400包括媒體訪問層402、IP層404、 UDP層406、可靠連接(reliable connection: RC)層408以及CF協(xié)議層410。如所述,CF協(xié)議是通用文件系統(tǒng)協(xié)議,其傳送與包含在對訪問在集群100上所存儲的數(shù)據(jù)容器的客戶機請求內的操作有關的文件系統(tǒng)命令;CF協(xié)議層410是消息400的攜帶文件系統(tǒng)命令的那部分。示例性地,CF協(xié)議是基于數(shù)據(jù)報的,且同樣包括以可靠方式從源(如N-模塊310)至目的地(如D-模塊350)的消息或"信包(envelope)"的傳輸。RC層408執(zhí)行可靠傳輸協(xié)議,該協(xié)議適合根據(jù)無連接協(xié)議、例如UDP 406處理此類信包。
      在文件系統(tǒng)中通過使用數(shù)據(jù)容器句柄訪問比如文件的數(shù)據(jù)容器。圖5是圖解數(shù)據(jù)容器句柄500的格式的示意框圖,該句柄包括SVS ID域502、 inode號域504、唯一-ifier (unique-ifier)域506、條帶化標志域508和條帶化戳記(epoch)號域510。 SVS ID域502包含數(shù)據(jù)容器駐留其內的SVS的全局標識符(在集群100內)。inode號域504包含與數(shù)據(jù)容器有關的inode(在inode文件內)的inode號。unique-ifier域506包含唯一地識別數(shù)據(jù)容器句柄500的單調遞增的號碼。unique-ifier特別適用于已刪除、再使用inode號以及將其重新分配給新數(shù)據(jù)容器的情形。unique-ifier從那些域的可能先前的使用中區(qū)別出在特殊數(shù)據(jù)容器中再使用的inode號。條帶化標志域508示例性地為識別數(shù)據(jù)容器是否被條帶化的布爾值(Boolean value)。對于SVS對不同的數(shù)據(jù)容器利用不同的條帶化技術的實施例,條帶化戳記號域510指示配合此數(shù)據(jù)容器使用的適當?shù)臈l帶化技術。E.文件系統(tǒng)組織
      在示例實施例中,數(shù)據(jù)容器在寫入任意位置文件系統(tǒng)中被表示為適合磁盤130上的存儲的inode數(shù)據(jù)結構。圖6是inode 600的示意框圖,其優(yōu)選包括元數(shù)據(jù)部分605和數(shù)據(jù)部分660。存儲在每個inode 600的元數(shù)據(jù)部分605中的信息描述該數(shù)據(jù)容器(例如文件);且同樣包括文件的類型(如規(guī)則、目錄、vdisk)610,文件大小615,文件的時間戳(如訪問和/或修改時間)620和所有權即用戶標識符(UID625 )以及組ID (GID 630 )。元數(shù)據(jù)部分605還包括生成號631和元數(shù)據(jù)失效標志域634。如本文將進一步所述,元數(shù)據(jù)失效標記域634被用來指示在inode中的元數(shù)據(jù)是否是可用的或者它是否應該被從MDV重獲。根據(jù)在類型域610內所定義的文件(inode)的類型,可對每個inode的數(shù)據(jù)部分660的內容進行不同解釋。例如,目錄inode的數(shù)據(jù)部分660包含由文件系統(tǒng)所控制的元數(shù)據(jù),然而規(guī)則inode的數(shù)據(jù)部分包含文件系統(tǒng)數(shù)據(jù)。在后一情形中,數(shù)據(jù)部分660包括與文件關聯(lián)的數(shù)據(jù)的表示。
      特定地,規(guī)則的盤上inode的數(shù)據(jù)部分660可包括文件系統(tǒng)數(shù)據(jù)或指針,后者引用在存儲文件系統(tǒng)數(shù)據(jù)所用的磁盤上的4KB數(shù)據(jù)塊。每個指針在訪問磁盤上的數(shù)據(jù)時優(yōu)選為邏輯vbn,以促進文件系統(tǒng)和RAID系統(tǒng)380之間的效率。已知inode的受限制的大小(如128字節(jié)),在該inode的數(shù)據(jù)部分內以其全部表示具有小于或等于64字節(jié)的大小的文件系統(tǒng)數(shù)據(jù)。但是,如果數(shù)據(jù)容器的內容的長度超過64字節(jié)但小于或等于64KB,則inode (如第一級inode)的數(shù)據(jù)部分包括16個指針,每個指針引用磁盤上4 KB的數(shù)據(jù)塊。
      此外,如果數(shù)據(jù)的大小超過64KB但小于或等于64兆字節(jié)(megabytes: MB ),則在inode (如第二級inode)的數(shù)據(jù)部分660中的每個節(jié)點引用包含1024個指針的間接塊(如第一級L1塊),其每個指針引用盤上4KB的數(shù)據(jù)塊。對于具有超過64MB的大小的文件系統(tǒng)數(shù)據(jù),inode (如第三級L3 inode)的數(shù)據(jù)部分660的每個指針引用包含1024個指針的雙間接塊(如第二級L2塊),每個指針引用間接(如第一級LI)塊。間接塊又包含1024個指針,每個指針引用盤上4KB的數(shù)據(jù)塊。當訪問文件時,把文件的每個塊從磁盤130加載到存儲器224。
      當把盤上inode (或塊)從盤130加載到存^f諸器224時,其相應的核內結構嵌入盤上結構。例如,包圍inode600的點線指示盤上inode結構的核內表示。核內結構是存儲盤上結構外加管理存儲器中(但不在盤上)的數(shù)據(jù)所需的附加消息的存儲器塊。附加消息包括例如"dirty"位670。在如寫操作所指示的那樣更新/修改inode (或塊)中的數(shù)據(jù)之后,使用dirty位670把修改的數(shù)據(jù)標記為"臟(dirty)",以致于能夠隨后把inode (塊)"刷新"(存儲)到磁盤。在1998年10月6日出版的David Hitz等人的名為《用于保持文件系統(tǒng)的一致狀態(tài)和創(chuàng)建文件系統(tǒng)的用戶可訪問只讀副本的方法》(METHOD FORMAINTAINING CONSISTENT STATES OF A FILE SYSTEM ANDFOR CREATING USER- ACCESSIBLE READ-ONLY COPIES OF AFILE SYSTEM )的先前合并的美國專利5819292中公開并描述了包括inode和inode文件的WAFL文件系統(tǒng)的核內和盤上的格式結構。
      圖7是可優(yōu)選配合本發(fā)明使用的文件緩沖樹的實施例的示意框圖。緩沖樹是對^皮加載到存儲器224并由寫入任意位置文件系統(tǒng)360所維持的文件(例如文件700 )的塊的內部表示。根(頂級)inode 702、例如嵌入的inode引用間接(如1級)塊704。注意,根據(jù)文件的大小,可存在間接塊的附加級(如2級、3級)。間接塊(和inode)包含指針705,該指針最終引用用于存儲文件的實際數(shù)據(jù)的數(shù)據(jù)塊706。即,文件700的數(shù)據(jù)被容納在數(shù)據(jù)塊中,這些塊的位置被存儲在該文件的間接塊中。每個1級間接塊704可包含至1024個數(shù)據(jù)塊的指針。根據(jù)文件系統(tǒng)的"寫入任意位置"的特性,這些塊可以位于磁盤130上的任意位置。
      提供將基本物理巻分配成存儲系統(tǒng)的一個或多個虛擬巻(或靈活巻)、例如節(jié)點200的文件系統(tǒng)布局。在JohnK. Edwards等人的名為 《寫入任何位置文件系統(tǒng)布局的擴展》(EXTENSION OF WRITE ANYWHERE FILE SYSTEM LAYOUT)的、并轉讓給Network Appliance公司的美國專利申請序號10/836817中記載了這種文件系統(tǒng) 布局的示例?;疚锢韼喪前ü?jié)點的一個或多個磁盤組、如節(jié)點的 RAID組的集合體。集合體具有其自身的物理巻塊號(physical volume block number: pvbn)空間,并在該pvbn空間內維持例如塊分配結構 的元數(shù)據(jù)。每個靈活巻具有其自身的虛擬巻塊號(virtual volume block number: vvbn)空間,并在該vvbn空間內維持例如塊分配結構的元數(shù) 據(jù)。每個靈活巻是與容器文件關聯(lián)的文件系統(tǒng);容器文件是在包含由 靈活巻所使用的所有塊的集合體中的文件。此外,每個靈活巻包括數(shù) 據(jù)塊和包含指向其他間接塊或數(shù)據(jù)塊的塊指針的間接塊。
      在一實施例中,pvbn被用作在存儲在靈活巻中的文件(如文件 700)的緩沖樹內的塊指針。此"混合的"靈活巻的實施例包括僅pvbn 在父(parent)間接塊(如inode或間接塊)中的插入。在邏輯巻的讀 取路徑上,"邏輯"巻(volume: vol)信息塊具有一個或多個引用一 個或多個fsinfo塊的指針,每個fsinfo塊指針又指向inode文件及其相 應的inode緩沖樹。靈活巻上的讀取路徑一般相同,按照pvbn (而不 是wbn)來尋找塊的適當位置;在該上下文中,靈活巻的讀取路徑(及 相應的讀取性能)與物理巻的基本類似。從pvbn到磁盤、dbn的轉換 發(fā)生在存儲操作系統(tǒng)300的文件系統(tǒng)/RAID系統(tǒng)的邊界。
      在示例性的雙vbn混合靈活巻的實施例中,把pvbn及其相應的 wbn插入到文件緩沖樹的父間接塊中。即,把pvbn和wbn作為每個 塊指針對存儲在具有指向例如1級(LI)間接塊、inode文件0級(L0) 塊的其他塊的指針的大多數(shù)緩沖樹結構中。圖8是優(yōu)選配合本發(fā)明使 用的文件800的緩沖樹的示例實施例的示意框圖。根(頂級Xnode 802、 例如嵌入的inode引用間接(如1級)塊804。注意,根據(jù)文件的大 小可存在間接塊的附加級(如2級、3級)。間接塊(和inode)包含最終引用存儲文件的實際數(shù)據(jù)的數(shù)據(jù)塊806所使用的pvbn/wbn指針 對結構808。
      pvbn引用在集合體的磁盤上的位置,同時vvbn引用靈活巻的文 件內的位置。在間接塊804中作為塊指針808的pvbn的使用提供讀 取路徑的效率,而wbn塊指針的使用提供對所需元數(shù)據(jù)的有效訪問。 即,當釋放文件的塊時,文件中的父間接塊包含容易獲得的wbn塊 指針,這避免與訪問所有者映射(owner map )以便執(zhí)行pvbn到vvbn 的轉換關聯(lián)的等待時間;但是,在讀取路徑上,pvbn是可用的。
      圖9是可優(yōu)選與本發(fā)明配合使用的集合體900的實施例的示意框 圖。lun (塊)902、目錄904、 qtree 906和文件908都被包含在靈活 巻910、例如雙vbn靈活巻內,靈活巻又包含在集合體900內。使集 合體900示例性地成層于由至少一 RAID叢950 (根據(jù)存儲配置是否 被鏡像)代表的RAID系統(tǒng)之上,其中,每叢950包括至少一 RAID 組960。每一 RAID組還包括多個磁盤930、例如一個或多個數(shù)據(jù)(data: D)磁盤和至少一個奇偶(parity: P)磁盤。
      而集合體900類似于常規(guī)存儲系統(tǒng)的物理巻,靈活巻類似于該物 理巻內的文件。即,集合體900包括一個或多個文件,其中每個文件 包含靈活巻910,其中由靈活巻所占用的存儲空間的總數(shù)在物理上小 于(或等于)全部物理巻的大小。集合體利用物理pvbn空間,該空 間定義由物理巻的磁盤所提供的塊的存儲空間,而每個(在文件內) 嵌入的靈活巻利用邏輯vvbn空間以把那些塊組織為例如文件。每一 vvbn空間是對應于文件內的位置的獨立號碼集合,然后那些位置被轉 換到磁盤上的dbn。因為靈活巻910也是邏輯巻,所以它在其vvbn空 間中具有其自身的塊分配結構(如有效、空間和相無要映射(map))。
      容器文件是在包含由靈活巻所使用的所有塊的集合體中的文件。 容器文件是支持靈活巻的內部(對集合體而言)特征;示例性地,每 靈活巻存在一個數(shù)據(jù)容器。與文件接近(approach)中的純邏輯巻類 似,數(shù)據(jù)容器是在保持由靈活巻的使用中的每個塊的集合體中的隱藏文件(對用戶不可訪問)。集合體包括示例性的隱藏的元數(shù)據(jù)根目錄,
      該根目錄包含靈活巻的子目錄
      WAFL/fsid/filesystemfile, storage label file 特別地,物理文件系統(tǒng)(WAFL)的目錄包括集合體中每個靈活 巻的子目錄,該子目錄的名稱是靈活巻的文件系統(tǒng)標識符(file system identifier: fsid)。每一 fsid子目錄(靈活巻)包含至少兩個文件文 件系統(tǒng)(fflesystem)文件和存儲標簽文件。示例性地,存儲標簽文件 為包含元數(shù)據(jù)的4KB文件,該元數(shù)據(jù)與在常規(guī)搜查(raid)標簽中所 存儲的類似。換句話說,存儲標簽文件是搜查標簽的模擬,同樣包括 有關靈活巻狀態(tài)的信息,例如靈活巻的名稱、靈活巻的通用唯一標識 符(universal unique identifier: uuid)和fsid、是否在線、是否浮皮創(chuàng)建 或被破壞等。
      圖10是集合體1000的盤上表示的示意框圖。存儲操作系統(tǒng)300、 例如RAID系統(tǒng)380集合pvbn的物理巻以創(chuàng)建集合體1000, pvbn 1 和2包含集合體的"物理"巻信息(volinfo )塊1002。 volinfo塊1002 包含指向fsinfo塊1004的塊指針,每個塊指針代表集合體的快照 (snapshot)。每個fsinfo塊1004包括指向包含多個文件的inode的 inode文件1006的塊指針,包括所有者映射(map) 1010、有效映射 1012、相X要映射1014和空間映射1016、及其他特定元數(shù)據(jù)文件。inode 文件1006還包括根目錄1020和"隱藏"的元數(shù)據(jù)根目錄1030,其中 后者包括具有與其中用戶不能"看到"文件的靈活巻有關的文件的名 稱空間。隱藏的元數(shù)據(jù)根目錄包括包含文件系統(tǒng)文件1040和存儲標 簽文件1090的『JFL^VZ/目錄結構。注意,集合體中的根目錄1020 為空;所有涉及集合體的文件被組織在隱藏的元數(shù)據(jù)根目錄1030內。
      除了被配置為具有被組織為容器映射的1級塊的容器文件外,文 件體系文件1040還包括引用被配置為靈活巻1050的各個文件系統(tǒng)的 塊指針。集合體1000以特別保留的inode號維持這些靈活巻1050。 每個靈活巻1050也具有其靈活巻空間內、尤其用于塊分配位圖(bitmap)結構的特別保留的inode號。如所述,例如有效映射1062、 概要映射1064和空間映射1066的塊分配位圖結構位于每個靈活巻 中。
      特別地,每個靈活巻1050具有與集合體相同的inode文件結構/ 內容,但在隱藏的元數(shù)據(jù)根目錄1080中沒有所有者映射和 WAFL/fsid/filesystem file, storage label file目錄結構1080除外。為此, 每個靈活巻1050具有volinfo塊1052, volinfo塊指向一個或多個fsinfo 塊1054,每個fsinfo塊連同靈活巻的活動文件系統(tǒng)一起表示快照。每 個fsinfo塊又指向inode文件1060,如所述,inode文件具有與集合體 相同的inode結構/內容,但上文所述除外的除外。每個靈活巻1050 具有其自身的mode文件1060和具有相應的inode號的不同的inode 空間,以及其自身的可從其他靈活巻獨立輸出的文件的根(fsid)目 錄1070和子目錄。
      集合體的隱藏的元數(shù)據(jù)根目錄1030內所包含的存儲標簽文件 1090是起對常規(guī)搜查(raid)標簽的模擬作用的小文件。搜查標簽包 括與存儲系統(tǒng)有關的物理信息,如巻名;該信息被加載到存儲標簽文 件1090。示例性地,存儲標簽文件1090包括關聯(lián)的靈活巻1050的名 稱1092、靈活巻的在線/離線狀態(tài)1094以及關聯(lián)的靈活巻的其它身份 和狀態(tài)信息1096 (它是否處于被創(chuàng)建或被破壞的進程中)。
      F.管理進程
      本發(fā)明通過提供用于在存儲系統(tǒng)集群環(huán)境中的作業(yè)的管理的系 統(tǒng)和方法克服了現(xiàn)有技術的缺點。根據(jù)本發(fā)明,作業(yè)管理器(job manager: JM)運行在集群環(huán)境內的每個存儲系統(tǒng)上,以提供用于在集 群內調力或執(zhí)行作業(yè)的框架。JM確保作業(yè)運行至完成,如果發(fā)生存 儲系統(tǒng)故障,就在該存儲系統(tǒng)(一旦它已復原)或存儲集群內的其他 存儲系統(tǒng)上重新啟動該作業(yè)。為此,JM與復制的數(shù)據(jù)庫(replicated data base: RDB)接口 ,復制的數(shù)據(jù)庫包含一個或多個隊列用于跟蹤各個作 業(yè)及其對特定存儲系統(tǒng)的親和力(affinity) —一即這些作業(yè)是否必須在該存+者系統(tǒng)上運4亍。
      響應發(fā)布命令執(zhí)行管理操作的用戶,創(chuàng)建配置對象并將其傳遞給
      JM。配置對象示例性地包含由用戶在發(fā)布命令時所指定的參數(shù)和/或 選項。JM使用該對象以創(chuàng)建作業(yè)對象。作業(yè)對象示例性地包含執(zhí)行 作業(yè)所需的可執(zhí)行指令和/或數(shù)據(jù)狀況。JM接著把創(chuàng)建的作業(yè)對象加 載到RDB的隊列。存儲系統(tǒng)集群內的每個JM監(jiān)視(monitor)最近 加載的作業(yè)的隊列。 一旦作業(yè)包含對于特定存儲系統(tǒng)的親和力,即作 業(yè)必須在該特定存儲系統(tǒng)上運行,則該特定存儲系統(tǒng)的JM從RDB的 隊列中恢復該作業(yè)并處理該作業(yè)。如果作業(yè)不包含特定存儲系統(tǒng)的親 和力,則集群內具有可用處理帶寬的任意JM將恢復并處理該作業(yè)。
      為了確保該作業(yè)執(zhí)行至完成,集群內的JM之一被指定為主作業(yè) 管理器并監(jiān)視集群中存儲系統(tǒng)的狀態(tài)??墒褂冒ɡ缡褂镁哂凶畹?序號(serialnumber)或網絡地址的存儲系統(tǒng)、最少利用的存^f渚系統(tǒng)、 循環(huán)法(round robin)等的任何任意的技術來選擇主作業(yè)管理器。在 發(fā)現(xiàn)存儲系統(tǒng)的故障之上,主作業(yè)管理器等待預定的超時期間過去。 如果超時期間過去而發(fā)生故障的存儲系統(tǒng)沒有復原,則主作業(yè)管理器 把該作業(yè)標記為未被主張的(unclaimed),以致于集群內的其他JM 之一可依照其正常作業(yè)獲取程序(routine)主張該作業(yè)并處理該作業(yè) 至完成。只有具有集群親和力的那些作業(yè)可以被集群內的第二 JM復 原。
      圖11是圖示管理進程的集合的示意框圖,管理進程在存儲操作 系統(tǒng)300上以用戶模式應用1100運行,以便為集群的節(jié)點提供配置 信息(即管理數(shù)據(jù))的管理。管理進程包括各自利用被鏈接為庫的數(shù) 據(jù)復制服務(RDB 1150)的管理框架進程1110和巻位置數(shù)據(jù)庫
      (volume location database: VLDB)進程1130。管理框架1110通過命 令行界面(command line interface: CLI)和/或基于網的圖形用戶界面
      (graphical user interface: GUI)給管理員1170界面提供用戶界面(user interface: UI)。示例性地,管理框架基于單元管理器,單元管理器給與節(jié)點200交互的用戶/系統(tǒng)管理員提供實體(entity )以管理集群100。 VLDB 1130是數(shù)據(jù)庫進程,該進程跟蹤集群100內各個存儲部件 (如靈活巻,集合體等)的位置,從而使遍及集群的請求的路由便利。 在示例實施例中,每個節(jié)點的N-模塊310訪問配置表235,該表把數(shù) 據(jù)容器句柄500的SVS ID 502映射到"擁有"(服務)集群內的數(shù)據(jù) 容器的D-模塊350。 VLDB包括多個條目(entry),這些條目又提供 配置表235中的條目(entry)的內容;其中,VLDB條目記載集群內 靈活巻(下文中一般為"巻910")和集合體900的位置。
      管理框架1110包括示例性地為多線程進程的作業(yè)管理器(JM) 1160,多線程進程為調度被配置為作業(yè)的管理任務的執(zhí)行提供勤出結 構和機制。JM 1160包括多個線程1165,每個線程在示例實施例中與 例如高、中和/或低優(yōu)先權的優(yōu)先權等級關聯(lián)。示例性地,具有特定優(yōu) 先權的作業(yè)可使用具有該優(yōu)先權或較低優(yōu)先權的任意線程來執(zhí)行。因 此,例如,低優(yōu)先權的作業(yè)可只在低優(yōu)先權的線程上執(zhí)行,反之,高 優(yōu)先權作業(yè)可以在具有低、中和/或高優(yōu)先權的線程上執(zhí)行。
      根據(jù)示例實施例,管理員計算機1170的UI進程1175響應由用 戶所運行的管理操作命令創(chuàng)建配置對象1125。利用配置對象1120創(chuàng) 建與特定作業(yè)關聯(lián)的作業(yè)對象1200。所創(chuàng)建的作業(yè)對象1200接著在 作業(yè)對象(Job Object: J.O.)隊列1180中排隊,該隊列把作業(yè)對象1200 持久地存儲在RDB 1150上集群范圍(cluster-wide)的布置中。同樣, 每個J.O.隊列被配置來存儲由一個或多個JM所加載的一個或多個作 業(yè)對象。通過持久存儲作業(yè)對象1200和隊列1180,集群內的每個JM 1160可以識別要被執(zhí)行的作業(yè)而不管哪個JM 1160最初加載了作業(yè)對 象1200。
      管理進程具有到RDB 1150的接口 (緊密耦合到RDB 1150)。 RDB包含對由管理進程所處理的管理數(shù)據(jù)提供持久的對象存儲(對象 的存儲)的庫。特別地,RDB 1150復制和同步在集群100的所有節(jié) 點200的管理數(shù)據(jù)對象存儲訪問,從而確保RDB數(shù)據(jù)庫映象(image)在所有節(jié)點200上都相同。當把作業(yè)對象1200加載到隊列1180上, RDB通知每個JM 1160以使適當?shù)腏M可采取適當?shù)男袆印?br> 圖12是根據(jù)本發(fā)明實施例的示例作業(yè)對象1200的示意框圖。示 例性地,使用面向對象的范例(paradigm)配置作業(yè),其中,每個作 業(yè)對象1200包含用于執(zhí)行相關作業(yè)的必需的數(shù)據(jù)結構和/或可執(zhí)行指 令。示例性地,作業(yè)對象1200包括許多執(zhí)行函數(shù)入口點(entry point), 包括Run()(運行)函數(shù)1205、 Restart ()(重啟)函數(shù)1210、 Resume ()(恢復)函數(shù)1212、 CheckComplete ()(檢查完成)函數(shù)1215、 Pause ()(暫停)函數(shù)1220和Stop ()(停止)函數(shù)U25。另外。作業(yè)對象數(shù) 據(jù)結構包括與之關聯(lián)的一種或多種數(shù)據(jù)類,所述數(shù)據(jù)類包括如配置類 1230、作業(yè)記錄數(shù)據(jù)結構1300、執(zhí)行類1235以及在備選實施例中的 附加類和/或執(zhí)行函數(shù)1245。
      RunO函數(shù)1205為作業(yè)的初始化和4丸行提供初始入口點。當首次 初始化與作業(yè)對象1200關聯(lián)的作業(yè)時,JM 1160調用Rim ()函數(shù)1205。 因此,Run O函數(shù)1205通過4企查配置類1230內所包含的信息以確定 要被執(zhí)行的作業(yè)的參數(shù)來啟動作業(yè)的處理。根據(jù)作業(yè)的完成,Run () 函數(shù)返回識別作業(yè)完成狀態(tài)的值,下文將進一步描述。JM調用Restart ()函數(shù)1210以在如JM崩潰的故障之后重啟作業(yè)的處理。Resume ()函 數(shù)1212被用來繼續(xù)處理暫停的作業(yè)。CheckComplete ()函數(shù)1215為 JM提供入口點以檢查作業(yè)的完成狀態(tài)。示例性地,CheckComplete () 函數(shù)1215返回可示例性地被存儲在作業(yè)記錄數(shù)據(jù)結構1300中的狀態(tài) 信息集合。調用OnComplete()(完成中)函數(shù)1222以在等待另一作 業(yè)直到完成之后繼續(xù)處理。類似地,Pause()函數(shù)1220和Quit()(退出) 函數(shù)1225使JM能夠暫停和/或停止作業(yè)的執(zhí)行。
      配置類域1230存儲用于特定作業(yè)的必需的配置信息。具體地, 配置類1230對于將被執(zhí)行的每個特定類型的作業(yè)是唯一的,并使JM 能夠創(chuàng)建適當?shù)淖鳂I(yè)對象1200。如下文進一步描述的,當執(zhí)4亍命令以 初始化作業(yè)時,配置類1230凈皮創(chuàng)建并為JM排隊,以配置適當?shù)淖鳂I(yè)對象1200。作業(yè)記錄數(shù)據(jù)結構1300,包含與作業(yè)相關的狀態(tài)信息集 合。執(zhí)行類域1235包含用于作業(yè)的作業(yè)特定執(zhí)行數(shù)據(jù)結構。
      圖13是根據(jù)本發(fā)明實施例的示例的作業(yè)記錄數(shù)據(jù)結構1300的示 意框圖。示例性地,在作業(yè)對象凝:據(jù)結構1200內利用作業(yè)記錄數(shù)據(jù) 結構1300來跟蹤與作業(yè)有關的各種運行狀態(tài)信息。作業(yè)記錄數(shù)據(jù)結 構1300示例性地包括名稱域1305、標識符域1310、親和力域1315、 所有者(owner)域1320、優(yōu)先權域1325、運行狀態(tài)域1330、作業(yè)等 待列表域1335、調度域(schedule field) 1340、排隊時間域1345、開 始時間域1350、再調度間隔域1355、倒斃(drop dead)時間i或1360、 重排隊標志域1365、作業(yè)類型域1370和在備選實施例中的附加域 1375。在備選實施例中,可使用附加的、不同的和/或較少的域。
      名稱域1305包含與特定作業(yè)對象1200關聯(lián)的作業(yè)的文字數(shù)字名 稱。標識符域1310包含與特定作業(yè)關聯(lián)的數(shù)字標識符。親和力域1315 確定作業(yè)是否包含對特定存儲系統(tǒng)的親和力,或者作業(yè)是否會在集群 內的任意存儲系統(tǒng)上被執(zhí)行,即集群范圍的親和力。在示例實施例中, 作業(yè)包含對確定的存儲系統(tǒng)的親和力,即作業(yè)由于例如僅在該確定的 存儲系統(tǒng)上可用的特定硬件而必須在該存儲系統(tǒng)上執(zhí)行。優(yōu)先權域 1325確定作業(yè)的優(yōu)先權等級。示例性地,每個作業(yè)可與高、中和/或 低優(yōu)先權關聯(lián)。優(yōu)先權等級確定在處理作業(yè)時可使用JM的哪些線程。 根據(jù)示例性的實施例,作業(yè)可只由JM內的具有與該作業(yè)關聯(lián)的優(yōu)先 權等級相等或比其低的優(yōu)先權等級的線程處理。例如,具有中優(yōu)先權 的作業(yè)能由中和/或低級優(yōu)先權的線程執(zhí)行但不能由高優(yōu)先權的線程 執(zhí)行。但是,要注意,在備選實施例中,可在沒有脫離本發(fā)明的精神 或范圍時利用不同的線程優(yōu)先化方案。
      作業(yè)等待域1335識別當前作業(yè)在執(zhí)行前正在等待完成的任意作 業(yè)。例如,可要求作業(yè)在執(zhí)行某些任務前等待先前調用的作業(yè)的完成。 在這種情況下,當前作業(yè)正在等待的那些作業(yè)的標識符被存4諸在作業(yè) 等待域1335內。JM 1160可檢查此域1335,提出適合的警報,以便一旦已完成作業(yè)就調用OnComplete()函數(shù)1222。調度域1340識別作 業(yè)的執(zhí)行將開始執(zhí)行的日期/時間。排隊時間域1345識別最初把作業(yè) 排隊到RDB的時間。開始時間域1350識別啟動作業(yè)的執(zhí)行的時間。 重調度間隔域1355包含識別作業(yè)將要被重新調度的頻率的值。當作 業(yè)要求在正常調度1340之外被重新調度時使用調度間隔1355。例如, 如果作業(yè)要被每天運行但遇到問題,那么作業(yè)的重新調度間隔1355 可指示作業(yè)將在例如5分鐘后被重新調度而不是一直等到第二天的定 期調度時間。倒斃時間域1360識別作業(yè)的執(zhí)行的倒斃時間。即,作 業(yè)必須在不遲于倒斃時間域1360內所確定的時間凈皮^l行。
      重排隊標志域1365示例性地包含識別特定作業(yè)對象1200是否已 被重排隊的布爾值。重排隊可發(fā)生在例如作業(yè)被特定JM啟動但因為 某些原因(如啟動作業(yè)的JM的故障)而被暫停(halt)時。在這種情 況下,主作業(yè)管理器(下文要進一步描述),可為把作業(yè)重排隊以供 由另一存儲系統(tǒng)的執(zhí)行。在這種情況下,新的JM 1160使用Restart () 函數(shù)1210而不是RunO函數(shù)1205來調用作業(yè)。作業(yè)類型域1370識別 與作業(yè)對象1200關聯(lián)的作業(yè)的類型。
      G.作業(yè)管理
      圖14是詳述4艮據(jù)本發(fā)明的示例實施例用于處理作業(yè)的流程1400 的步驟的流程圖。流程1400開始于步驟1405,并繼續(xù)到步驟1410, 在那里用戶發(fā)布命令啟動作業(yè)。示例性地,用戶在管理UI 1170輸入 命令行界面(command line interface: CLI)命令;但是,根據(jù)與特定 存儲系統(tǒng)關聯(lián)的用戶界面,用戶可從圖形用戶界面(graphical user interface: GUI)中選擇各種選項來啟動作業(yè)。同樣地,應該經GUI使 輸入CLI命令的描述包括作業(yè)的啟動。要注意,在備選實施例中,可 由例如自動化進程等啟動作業(yè)而不需要用戶的干預。同樣地,應把用 戶輸入命令的描述認為只是示例性的。
      響應命令的執(zhí)行,在步驟1415, UI進程1175創(chuàng)建配置對象1125。 配置對象1125示例性地包括由用戶在發(fā)布命令時所指定的參數(shù)和/或選項。在步驟1420, JM接收排隊的配置對象并利用配置對象1125創(chuàng) 建作業(yè)對象1200。示例性地,JM通過識別要祐 使用的作業(yè)對象的適 當?shù)念愋秃蛯⒆鳛榕渲妙惖呐渲脤ο蟛迦氲阶鳂I(yè)對象1200, ^使用配置 對象創(chuàng)建作業(yè)對象1200。
      一旦創(chuàng)建了作業(yè)對象1200, JM 1160就接著在步驟1425把對象 1200加載到RDB上的J.O.隊列1130。通過將作業(yè)對象1200排隊, JM 1160使RDB通知集群內的所有JM 1160最近排隊的作業(yè)對象是可 用的,即更新已經出現(xiàn)在復制的數(shù)據(jù)庫。響應時,每個JM1160檢查 最近排隊的作業(yè)對象1200以確定它是否具有對執(zhí)行JM 1160的特定 存儲系統(tǒng)的親和力或者作業(yè)對象1200是否具有集群范圍的親和力。 如果作業(yè)對象1200具有集群范圍的親和力,則具有可用處理帶寬(如 適當優(yōu)先權等級的可用線程)的任意JM 1160可執(zhí)行作業(yè)對象1200。 在步驟1430中,適當?shù)腏M 1160接著從RDB的隊列1180中恢復作 業(yè)對象1200并處理該作業(yè)。通過從RDB中恢復該作業(yè),該JM通知
      后在步驟1435,流程1400結束。
      圖15是根據(jù)本發(fā)明的示例實施例示出作業(yè)的各種狀態(tài)的狀態(tài)圖。 示例性地,當初始創(chuàng)建作業(yè)的作業(yè)對象1200時作業(yè)開始于初始狀態(tài) 1505,接著在作業(yè)對象1200被加載到RDB的作業(yè)對象隊列時作業(yè)轉 換到排隊狀態(tài)(狀態(tài)1510)。在JM從作業(yè)對象隊列中選擇要執(zhí)行的 作業(yè)時作業(yè)轉換到可運行狀態(tài)1515。在選擇作業(yè)之上,JM4全查作業(yè) 對象1200的狀態(tài)數(shù)據(jù)結構1300內的重排隊域,以確定是否已設置重 排隊域,從而指示作業(yè)對象1200已被重排隊。如果是,JM調用與作 業(yè)對象1200關聯(lián)的Restart ()函數(shù)。注意作業(yè)示例性地負責確定中斷 的原因并在繼續(xù)適當?shù)牟僮髦扒宄我馀R時的數(shù)據(jù)結構。但是,如 果沒有設置重排隊域,則JM調用與作業(yè)對象1200關聯(lián)的Run ()函數(shù)。
      當Run ()和/或Restart ()函凄t完成時,向JM返回完成值。示例性 地,這些值可具有JOB_COMPLETE (作業(yè)—完成)、JOB—WAITING(作業(yè)—等待)或JOB—PAUSED (作業(yè)—暫停)的值。JM4企查返回的 完成值,并通過把作業(yè)轉換到由返回的完成值所確定的狀態(tài)采取適當 動作。例如,如果返回的完成值是JOB—COMPLETE (作業(yè)—完成), 則作業(yè)已經運行至完成,JM把作業(yè)轉換到完成狀態(tài)1520。 JOB—WAITING (作業(yè)_等待)值意味著作業(yè)希望進入等待狀態(tài)1535。 在進入等待狀態(tài)之前,作業(yè)(JM)把它有興趣等待的那些作業(yè)登記在 狀態(tài)數(shù)據(jù)結構1300的等待域1335中。如果返回值為表示作業(yè)響應了 外部請求而暫停的JOB—PAUSED (作業(yè)—暫停),那么作業(yè)在進入已 暫停(paused state)狀態(tài)1545之前轉換到正暫停狀態(tài)(pausing state) 1540。由JM的退出作業(yè)的外部動作可導致作業(yè)>^人已暫停狀態(tài)1545轉 換到完成狀態(tài)1520,作業(yè)從完成狀態(tài)轉換到清除狀態(tài)1525,在清除 狀態(tài)作業(yè)釋放任意臨時創(chuàng)建的數(shù)據(jù)結構、存儲器和/或文件。此刻,作 業(yè)已被完成并已適當?shù)厍宄巳我馀R時數(shù)據(jù)結構。JM包括執(zhí)行鎖定
      (lock)機制的適當功能,以防止作業(yè)在狀態(tài)間顛簸(thrashing)、進 入循環(huán)或死鎖等。
      圖16是根據(jù)本發(fā)明的示例實施例細述用于從一個或多個存儲系 統(tǒng)的故障中復原(recovering )的流程1600的步驟的流程圖。步驟1600 開始于步驟1605,并繼續(xù)到主作業(yè)管理器監(jiān)視集群的存儲系統(tǒng)的狀態(tài) 的步驟1610。示例性地,根據(jù)任意方案,把集群的JM之一指定為主 作業(yè)管理器。示例性地,通過跟蹤RDB內當前活動的存儲系統(tǒng)執(zhí)行 監(jiān)視。但是,在備選實施例中,可使用監(jiān)視集群中節(jié)點的狀態(tài)的任意 技術。示例性地,監(jiān)視以常規(guī)間隔發(fā)生。在步驟1615,主作業(yè)管理器 確定故障是否已在集群的任意存儲系統(tǒng)中發(fā)生。如果故障沒有發(fā)生, 則流程返回到主作業(yè)控制器繼續(xù)監(jiān)視存儲系統(tǒng)狀態(tài)的步驟1610 。
      然而,如果發(fā)現(xiàn)了故障,則主作業(yè)管理器在采取任意動作之前等 待預定的超時期間過去。在步驟1620,如果發(fā)生故障的存儲系統(tǒng)在超 時期間內復原,則流程返回到步驟1610。否則,錯誤已經發(fā)生,存儲 系統(tǒng)沒有在可接受的時段內復原。因此,在步驟1625,主作業(yè)管理器將當前與發(fā)生故障的存儲系統(tǒng)關聯(lián)的作業(yè)標記為未被主張。示例性 地,主作業(yè)管理器在作業(yè)對象的狀態(tài)類內設置重排隊域。結果,當作
      業(yè)對象被重新主張時,JM將調用Restart ()函數(shù)而不是Run ()函數(shù)。響 應時,在步驟1630,其他存儲系統(tǒng)主張作業(yè)用于處理。然后在步驟 1635,流程完成。
      再次總結,本發(fā)明使JM能夠利用RDB (或其他分布式數(shù)據(jù)存儲 器)來實現(xiàn)在集群的多個節(jié)點中所分布的進程的管理并確保作業(yè)執(zhí)行 至完成。
      已把前述的描述定向到本發(fā)明的特定實施例。然而,顯而易見, 可對描述的實施例進行其它變化和更改,而獲得所述實施例的某些或 者全部優(yōu)點。特別地,要注意,本發(fā)明的原理可在非分布式文件系統(tǒng) 中實施。此外,雖然本說明書根據(jù)N-模塊和D-模塊來書寫,但是本 發(fā)明的教導同樣適用于在單個系統(tǒng)中實現(xiàn)N-模塊和D-模塊的功能的 系統(tǒng)。備選地,可把N-模塊和D-模塊的功能遍布于任意數(shù)目的分離 系統(tǒng)中,其中,每個系統(tǒng)執(zhí)行一項或多項功能。另外,本文描述的流 程、進程和/或模塊可以硬件、配置為具有程序指令的計算機可讀媒介 的軟件、固件或其組合實現(xiàn)。因此,隨附權利要求書的目的是要覆蓋 諸如落入本發(fā)明的實質精神和范圍內的所有變化和更改。
      權利要求
      1. 一種用于存儲系統(tǒng)集群內的作業(yè)的管理的方法,所述方法包括以下步驟創(chuàng)建與所述作業(yè)關聯(lián)的配置對象;利用所述配置對象創(chuàng)建作業(yè)對象;把所述創(chuàng)建的作業(yè)對象在復制的數(shù)據(jù)庫上排隊;以及從所述復制的數(shù)據(jù)庫恢復所述作業(yè)對象。
      2. 如權利要求1所述的方法,還包括執(zhí)行所述恢復的作業(yè)對象內 的函數(shù)的步驟。
      3. 如權利要求l所述的方法,其中,所述作業(yè)對象包括函數(shù)調用 集合。
      4. 如權利要求3所述的方法,還包括使用所述函數(shù)調用集合的運 行函數(shù)初始化所述作業(yè)的執(zhí)行的步驟。
      5. 如權利要求3所述的方法,還包括使用所述函數(shù)調用集合的重 啟函數(shù)在所述復制的數(shù)據(jù)庫中的所述作業(yè)的排隊之后重新初始化所 述作業(yè)的執(zhí)行的步驟。
      6. 如權利要求l所述的方法,其中,所述作業(yè)對象包括數(shù)據(jù)類集合。
      7. 如權利要求6所述的方法,其中,所述數(shù)據(jù)類集合包括含有與 所述作業(yè)關聯(lián)的狀態(tài)信息的作業(yè)記錄。
      8. 如權利要求l所述的方法,其中,恢復所述作業(yè)對象的所述步 驟包括在計算機上執(zhí)行作業(yè)管理器以從所述復制的數(shù)據(jù)庫返回所述 作業(yè)對象的步驟。
      9. 一種用于多臺計算機的集群內的作業(yè)的管理的系統(tǒng),所述系統(tǒng) 包括作業(yè)管理器,在所述集群內的所述多臺計算機的每臺計算機上執(zhí) 行,所述作業(yè)管理器的每個作業(yè)管理器適合使用配置對象來創(chuàng)建作業(yè)對象。
      10. 如權利要求9所述的系統(tǒng),其中,響應用戶的命令的執(zhí)行創(chuàng) 建所述配置對象。
      11. 如權利要求9所述的系統(tǒng),其中;所述作業(yè)管理器還適合把 所述創(chuàng)建的作業(yè)對象加載到復制的數(shù)據(jù)庫的第二隊列上。
      12. 如權利要求9所述的系統(tǒng),其中,每個作業(yè)管理器還適合從 復制的數(shù)據(jù)庫恢復存儲的作業(yè)對象并處理所述恢復的作業(yè)對象。
      13. 如權利要求9所述的系統(tǒng),其中,所述第一隊列存儲在復制 的數(shù)據(jù)庫中。
      14. 一種用于存儲系統(tǒng)集群內的作業(yè)的管理的系統(tǒng),所述系統(tǒng)包括用于創(chuàng)建與所述作業(yè)關聯(lián)的配置對象的裝置;用于利用所述配置對象創(chuàng)建作業(yè)對象的裝置;用于把所述創(chuàng)建的作業(yè)對象在復制的數(shù)據(jù)庫上排隊的裝置;以及用于從所述復制的數(shù)據(jù)庫恢復所述作業(yè)對象的裝置。
      15. 如權利要求14所述的系統(tǒng),還包括用于執(zhí)行所述恢復的作業(yè) 對象內的函數(shù)的裝置。
      16. 如權利要求15所述的系統(tǒng),其中,所述作業(yè)對象包括函數(shù)調 用集合。
      17. 如權利要求17所述的系統(tǒng),還包括^使用運行函數(shù)初始化所述 作業(yè)的執(zhí)行的步驟。
      18. 如權利要求15所述的系統(tǒng),其中,所述作業(yè)對象包括數(shù)據(jù)類 集合。
      19. 如權利要求18所述的系統(tǒng),其中,所述數(shù)據(jù)類集合包括含有 與所述作業(yè)關聯(lián)的狀態(tài)信息的狀態(tài)類。
      20. —種用于存儲系統(tǒng)集群內的作業(yè)的管理的計算機可讀媒介, 所述計算機可讀媒介包括用于執(zhí)行以下步驟的程序指令創(chuàng)建與所述作業(yè)關聯(lián)的配置對象;利用所述配置對象創(chuàng)建作業(yè)對象;把所述創(chuàng)建的作業(yè)對象在復制的數(shù)據(jù)庫上排隊;以及從所述復制的數(shù)據(jù)庫恢復所述作業(yè)對象。
      21. —種用于存儲系統(tǒng)集群內的進程集合的管理的系統(tǒng),所述系 統(tǒng)包括用于創(chuàng)建與所述進程集合關聯(lián)的配置對象的裝置;用于利用所述配置對象創(chuàng)建描述所述進程集合的對象的裝置; 用于將所述創(chuàng)建的對象在復制的數(shù)據(jù)庫上排隊的裝置;以及 用于從所述復制的數(shù)據(jù)庫恢復所述對象以啟動所述進程集合的 執(zhí)行的裝置。
      全文摘要
      本發(fā)明提供用于集群環(huán)境中的作業(yè)的管理的系統(tǒng)和方法。集群的每個節(jié)點執(zhí)行與復制的數(shù)據(jù)庫接口的作業(yè)管理器,以能夠在集群內實現(xiàn)作業(yè)的集群范圍的管理。作業(yè)在復制的數(shù)據(jù)庫中排隊并被作業(yè)管理器恢復以供執(zhí)行。每個作業(yè)管理器確保作業(yè)被處理至完成,或者如果失敗則在其它存儲系統(tǒng)上重排隊以供執(zhí)行。
      文檔編號G06F9/46GK101473305SQ200680055083
      公開日2009年7月1日 申請日期2006年7月20日 優(yōu)先權日2006年4月28日
      發(fā)明者M·科默 申請人:網絡裝置公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1