配置用于輸入/輸出操作的對(duì)象存儲(chǔ)系統(tǒng)的制作方法
【專利摘要】本發(fā)明的各實(shí)施例總體上涉及配置用于輸入/輸出操作的對(duì)象存儲(chǔ)系統(tǒng)。具體地,存儲(chǔ)系統(tǒng)導(dǎo)出被調(diào)配為存儲(chǔ)對(duì)象的邏輯存儲(chǔ)卷。連接的計(jì)算機(jī)系統(tǒng)通過在存儲(chǔ)系統(tǒng)中配置的用于協(xié)議流量的邏輯端點(diǎn)、使用標(biāo)準(zhǔn)協(xié)議、比如SCSI和NFS按照需求訪問這些存儲(chǔ)對(duì)象。當(dāng)在存儲(chǔ)系統(tǒng)接收輸入?輸出命令(IO)時(shí),從IO接收標(biāo)識(shí)符并且將標(biāo)識(shí)符轉(zhuǎn)譯成邏輯存儲(chǔ)卷標(biāo)識(shí)符,并且對(duì)與邏輯存儲(chǔ)卷標(biāo)識(shí)符對(duì)應(yīng)的邏輯存儲(chǔ)卷引用的存儲(chǔ)位置執(zhí)行IO。
【專利說明】
配置用于輸入/輸出操作的對(duì)象存儲(chǔ)系統(tǒng)
[00011 分案申請(qǐng)說明
[0002] 本申請(qǐng)是申請(qǐng)日為2012年8月22日、申請(qǐng)?zhí)枮?01280041490.9、發(fā)明名稱為"配置 用于輸入/輸出操作的對(duì)象存儲(chǔ)系統(tǒng)"的中國(guó)發(fā)明專利申請(qǐng)的分案申請(qǐng)。
技術(shù)領(lǐng)域
[0003] 本公開內(nèi)容總體上涉及計(jì)算機(jī)領(lǐng)域,具體地涉及配置用于輸入/輸出操作的對(duì)象 存儲(chǔ)系統(tǒng)。
【背景技術(shù)】
[0004] 隨著計(jì)算機(jī)系統(tǒng)伸縮至企業(yè)級(jí),特別是在支持大規(guī)模數(shù)據(jù)中心的背景中,下層數(shù) 據(jù)存儲(chǔ)系統(tǒng)經(jīng)常運(yùn)用存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)或者網(wǎng)絡(luò)附接存儲(chǔ)(NAS)。如在常規(guī)上適當(dāng)理解的 那樣,SAN或者NAS提供諸多技術(shù)能力和操作益處,這些技術(shù)能力和操作益處基本上包括數(shù) 據(jù)存儲(chǔ)設(shè)備的虛擬化、具有透明的容錯(cuò)故障恢復(fù)和故障保護(hù)控制的物理設(shè)備的冗余性、在 地理上分布和復(fù)制的存儲(chǔ)以及從以客戶端為中心的計(jì)算機(jī)系統(tǒng)管理解耦合的集中式監(jiān)督 和存儲(chǔ)配置管理。
[0005] 在架構(gòu)上,在SAN存儲(chǔ)系統(tǒng)中的存儲(chǔ)設(shè)備(例如,盤陣列等)通常連接到網(wǎng)絡(luò)交換機(jī) (例如,光纖信道交換機(jī)等),這些網(wǎng)絡(luò)交換機(jī)然后連接到服務(wù)器或者"主機(jī)",這些服務(wù)器或 者"主機(jī)"需要訪問存儲(chǔ)設(shè)備中的數(shù)據(jù)。在SAN中的服務(wù)器、交換機(jī)和存儲(chǔ)設(shè)備通常使用小型 計(jì)算機(jī)系統(tǒng)接口(SCSI)協(xié)議來通信,該SCSI協(xié)議在盤數(shù)據(jù)塊級(jí)跨越網(wǎng)絡(luò)傳送數(shù)據(jù)。對(duì)照而 言,NAS設(shè)備通常是如下設(shè)備,該設(shè)備內(nèi)部包含一個(gè)或者多個(gè)存儲(chǔ)設(shè)備并且通過網(wǎng)絡(luò)協(xié)議、 比如以太網(wǎng)連接到主機(jī)(或者居間交換機(jī))。除了包含存儲(chǔ)設(shè)備之外,NAS設(shè)備也已經(jīng)根據(jù)基 于網(wǎng)絡(luò)的文件系統(tǒng)、比如網(wǎng)絡(luò)文件系統(tǒng)(NFS)或者公共因特網(wǎng)文件系統(tǒng)(CIFS)預(yù)先格式化 它的存儲(chǔ)設(shè)備。這樣,如與向主機(jī)暴露盤(稱為L(zhǎng)UN并且以下進(jìn)一步具體描述)一一這些盤然 后需要根據(jù)主機(jī)利用的文件系統(tǒng)來格式化、然后裝配一一的SAN比對(duì),NAS設(shè)備的基于網(wǎng)絡(luò) 的文件系統(tǒng)(該系統(tǒng)需要由主機(jī)的操作系統(tǒng)支持)使NAS設(shè)備向主機(jī)的操作系統(tǒng)表現(xiàn)為文件 服務(wù)器,該文件服務(wù)器然后裝配或者映射NAS設(shè)備例如為操作系統(tǒng)可訪問的網(wǎng)絡(luò)驅(qū)動(dòng)。應(yīng)當(dāng) 認(rèn)識(shí),隨著存儲(chǔ)系統(tǒng)銷售商不斷創(chuàng)新和發(fā)布新產(chǎn)品,在SAN與NAS存儲(chǔ)系統(tǒng)之間的清晰差別 繼續(xù)減弱而實(shí)際存儲(chǔ)系統(tǒng)實(shí)現(xiàn)方式經(jīng)常表現(xiàn)二者的特性、在相同系統(tǒng)中賦予文件級(jí)協(xié)議 (NAS)和塊級(jí)協(xié)議(SAN)二者。例如,在備選NAS架構(gòu)中,NAS "首領(lǐng)"或者"網(wǎng)關(guān)"設(shè)備聯(lián)網(wǎng)到主 機(jī)而不是傳統(tǒng)NAS設(shè)備。這樣的NAS網(wǎng)關(guān)設(shè)備并非本身包含存儲(chǔ)驅(qū)動(dòng)、但是使外部存儲(chǔ)設(shè)備 能夠連接到NAS網(wǎng)關(guān)設(shè)備(例如,經(jīng)由光纖信道接口等)。被主機(jī)以相似方式感知為傳統(tǒng)NAS 設(shè)備的這樣的NAS網(wǎng)關(guān)設(shè)備提供一種用于顯著增加基于NAS的存儲(chǔ)架構(gòu)的容量(例如,在更 傳統(tǒng)上由SAN支持的存儲(chǔ)容量級(jí))而又保持文件級(jí)存儲(chǔ)訪問的簡(jiǎn)單性的能力。
[0006] SCSI和其它基于塊協(xié)議的存儲(chǔ)設(shè)備、比如圖1A中所示存儲(chǔ)系統(tǒng)30利用代表一個(gè)或 者多個(gè)編程的存儲(chǔ)處理器的存儲(chǔ)系統(tǒng)管理器31以聚合存儲(chǔ)設(shè)備中的存儲(chǔ)單元或者驅(qū)動(dòng)并 且將它們呈現(xiàn)為各自具有唯一可標(biāo)識(shí)編號(hào)的一個(gè)或者多個(gè)LUN(邏輯單元編號(hào))34兒· 34 通過網(wǎng)絡(luò)20(例如,光纖信道等)由一個(gè)或者多個(gè)計(jì)算機(jī)系統(tǒng)10通過物理主機(jī)總線適配器 (HBA) 11來訪問。在計(jì)算機(jī)系統(tǒng)10內(nèi)和在HBA 11以上,通過從低級(jí)設(shè)備驅(qū)動(dòng)器層12開始并且 在操作系統(tǒng)專屬文件系統(tǒng)層15中結(jié)束的一系列軟件層有特點(diǎn)地實(shí)施存儲(chǔ)訪問抽象化。實(shí)現(xiàn) 對(duì)LUN 34的基本訪問的設(shè)備驅(qū)動(dòng)器層12通常專屬于存儲(chǔ)系統(tǒng)使用的通信協(xié)議(例如,SCSI 等)。在設(shè)備驅(qū)動(dòng)器層12以上實(shí)施數(shù)據(jù)訪問層13以支持通過HBA 11以及其它數(shù)據(jù)訪問控制 和管理功能可見的LUN 34的多徑合并。通常在數(shù)據(jù)訪問層13與常規(guī)操作系統(tǒng)文件系統(tǒng)層15 之間實(shí)施的邏輯卷管理器14支持通過HBA 11可訪問的LUN 34的面向卷的虛擬化和管理???以在邏輯卷管理器14的控制之下將多個(gè)LUN 34-起聚集和管理為卷,用于向文件系統(tǒng)層15 呈現(xiàn)并且由文件系統(tǒng)層15用作邏輯設(shè)備。
[0007] 存儲(chǔ)系統(tǒng)管理器31實(shí)施在存儲(chǔ)系統(tǒng)30中駐留的、在圖1A中稱為紡錘體(spindle) 32的通?;诒P驅(qū)動(dòng)的物理存儲(chǔ)單元的可視化。從邏輯觀點(diǎn)來看,這些紡錘體32中的每個(gè) 紡錘體可以視為固定大小的盤區(qū)( extent)33的依次陣列。存儲(chǔ)系統(tǒng)管理器31通過向連接的 計(jì)算機(jī)系統(tǒng)、比如計(jì)算機(jī)系統(tǒng)10暴露連續(xù)邏輯存儲(chǔ)空間一一該邏輯存儲(chǔ)空間被劃分成被稱 為L(zhǎng)UN 34的虛擬SCSI設(shè)備的集合一一來抽象化掉使讀取和寫入操作以盤驅(qū)動(dòng)的實(shí)際紡錘 體和盤區(qū)的地址為目標(biāo)的復(fù)雜性。每個(gè)LUN借助存在這樣的LUN并且向計(jì)算機(jī)系統(tǒng)10呈現(xiàn)這 樣的LUN來代表被指派用于由計(jì)算機(jī)系統(tǒng)10使用的某個(gè)容量。存儲(chǔ)系統(tǒng)管理器31維護(hù)元數(shù) 據(jù),該元數(shù)據(jù)包括用于每個(gè)這樣的LUN到盤區(qū)有序列表的映射,其中每個(gè)這樣的盤區(qū)可以被 標(biāo)識(shí)為紡錘體-盤區(qū)對(duì)〈紡錘體#,盤區(qū)#>并且因此可以位于各種紡錘體32中的任何紡錘體 中。
[0008] 圖1B是通過網(wǎng)絡(luò)21(例如,因特網(wǎng))經(jīng)由網(wǎng)絡(luò)接口卡(NIC)ll'連接到一個(gè)或者多個(gè) 計(jì)算機(jī)系統(tǒng)10的基于NAS或者文件級(jí)的常規(guī)存儲(chǔ)系統(tǒng)40的框圖。存儲(chǔ)系統(tǒng)40包括代表一個(gè) 或者多個(gè)編程的存儲(chǔ)處理器的存儲(chǔ)系統(tǒng)管理器41。存儲(chǔ)系統(tǒng)管理器41在存儲(chǔ)系統(tǒng)40中駐留 的、在圖1B中稱為紡錘體42的通常基于盤驅(qū)動(dòng)的物理存儲(chǔ)單元上面實(shí)施文件系統(tǒng)45。從邏 輯觀點(diǎn)來看,這些紡錘體中的每個(gè)紡錘體可以視為固定大小的盤區(qū)43的依次陣列。文件系 統(tǒng)45通過向連接的計(jì)算機(jī)系統(tǒng)、比如計(jì)算機(jī)系統(tǒng)10暴露包括目錄和文件一一這些目錄和文 件可以被組織成文件系統(tǒng)級(jí)卷44(下文稱為"FS卷"),這些FS卷通過它們的相應(yīng)裝配點(diǎn)來訪 問一一的命名空間來抽象化掉使讀取和寫入操作以盤驅(qū)動(dòng)的實(shí)際紡錘體和盤區(qū)的地址為 目標(biāo)的復(fù)雜性。
[0009] 即使有以上描述的存儲(chǔ)系統(tǒng)進(jìn)步,仍然已經(jīng)廣泛地認(rèn)識(shí)它們未充分可伸縮以滿足 虛擬化的計(jì)算機(jī)系統(tǒng)的特定需要。例如,服務(wù)器機(jī)器群集可以服務(wù)于多達(dá)1〇,〇〇〇個(gè)虛擬機(jī) (VM),每個(gè)VM使用數(shù)目為多個(gè)的"虛擬盤"和數(shù)目為多個(gè)的"快照",每個(gè)虛擬盤和快照可以 例如被存儲(chǔ)為特定LUN或者FS卷上的文件。即使按比例縮減的估計(jì)為每VM有2個(gè)虛擬盤和2 個(gè)快照,如果VM直接連接到物理盤(即,每物理盤有1個(gè)虛擬盤或者快照),這仍然總計(jì)為存 儲(chǔ)系統(tǒng)支持60,000個(gè)不同盤。此外,在這一規(guī)模的存儲(chǔ)設(shè)備和拓?fù)涔芾硪阎欣щy。因此, 開發(fā)比如在通過這里引用而結(jié)合的、標(biāo)題為"Providing Multiple Concurrent Access to a File System"的美國(guó)專利7,849,098中描述的數(shù)據(jù)存儲(chǔ)庫(kù)這一概念,在這些數(shù)據(jù)存儲(chǔ)庫(kù) 中,將VM復(fù)用到物理存儲(chǔ)實(shí)體(例如,基于LUN的VMFS群集文件系統(tǒng)或者FS卷)的更小集合 上。
[0010]在運(yùn)用LUN或者FS卷的常規(guī)存儲(chǔ)系統(tǒng)中,來自多個(gè)VM的工作量通常由單個(gè)LUN或者 單個(gè)FS卷服務(wù)。因此,來自一個(gè)VM工作量的資源需求將影響在相同LUN或者FS卷上向另一 VM 工作量提供的服務(wù)水平。用于存儲(chǔ)的效率測(cè)量、比如延時(shí)和每秒輸入/輸出操作(10)或者 Ι0Ρ姻此根據(jù)在給定的LUN或者FS卷中的工作量數(shù)目變化并且不能被保障。因而,不能在每 VM基礎(chǔ)上執(zhí)行用于運(yùn)用LUN或者FS卷的存儲(chǔ)系統(tǒng)的存儲(chǔ)策略,并且不能在每VM基礎(chǔ)上給定 服務(wù)水平協(xié)定(SLA)保障。此外,以LUN或者FS卷的粒度而不是以VM的虛擬盤的粒度提供由 存儲(chǔ)系統(tǒng)銷售商提供的數(shù)據(jù)服務(wù)、比如快照、復(fù)制、加密和解重復(fù)。因此,可以使用存儲(chǔ)系統(tǒng) 銷售商提供的數(shù)據(jù)服務(wù)來為整個(gè)LUN或者整個(gè)FS卷創(chuàng)建快照,但是不能從其中存儲(chǔ)虛擬盤 的LUN或者文件系統(tǒng)分離地創(chuàng)建用于VM的單個(gè)虛擬盤的快照。
【發(fā)明內(nèi)容】
[0011] -個(gè)或者多個(gè)實(shí)施例涉及一種存儲(chǔ)系統(tǒng),該存儲(chǔ)系統(tǒng)被配置用于隔離在其中運(yùn)行 的工作量、從而可以每工作量提供SLA保障并且可以每工作量提供存儲(chǔ)系統(tǒng)的數(shù)據(jù)服務(wù)而 無需存儲(chǔ)系統(tǒng)的激進(jìn)重新設(shè)計(jì)。在存儲(chǔ)用于多個(gè)虛擬機(jī)的虛擬盤的存儲(chǔ)系統(tǒng)中,可以在每 虛擬盤基礎(chǔ)上提供SLA保障,并且可以在每虛擬盤基礎(chǔ)上提供存儲(chǔ)系統(tǒng)的數(shù)據(jù)服務(wù)。
[0012] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,存儲(chǔ)系統(tǒng)從這里稱為"存儲(chǔ)容器"的邏輯存儲(chǔ)容量指派 之中導(dǎo)出在每工作量基礎(chǔ)上被調(diào)配為存儲(chǔ)對(duì)象的、這里稱為"虛擬卷"的邏輯存儲(chǔ)卷。對(duì)于 VM,可以對(duì)于VM的虛擬盤和快照中的每個(gè)虛擬盤和快照創(chuàng)建虛擬卷。在一個(gè)實(shí)施例中,連接 的計(jì)算機(jī)系統(tǒng)通過在存儲(chǔ)系統(tǒng)中配置的稱為"協(xié)議端點(diǎn)"的用于協(xié)議流量的邏輯端點(diǎn)、使用 標(biāo)準(zhǔn)協(xié)議、比如SCSI和NFS按照需求訪問虛擬卷。
[0013] 根據(jù)本發(fā)明的一個(gè)實(shí)施例的一種用于在存儲(chǔ)系統(tǒng)中處理輸入-輸出命令(10)的方 法包括以下步驟:在存儲(chǔ)系統(tǒng)接收1〇,1〇包括第一標(biāo)識(shí)符和第二標(biāo)識(shí)符,其中第一標(biāo)識(shí)符用 來將10引向存儲(chǔ)系統(tǒng);從10獲取第二標(biāo)識(shí)符并且將第二標(biāo)識(shí)符轉(zhuǎn)譯成邏輯存儲(chǔ)卷標(biāo)識(shí)符; 并且對(duì)與邏輯存儲(chǔ)卷標(biāo)識(shí)符對(duì)應(yīng)的邏輯存儲(chǔ)卷引用的存儲(chǔ)位置執(zhí)行10。
[0014] 根據(jù)本發(fā)明的一個(gè)實(shí)施例的一種用于預(yù)備存儲(chǔ)系統(tǒng)以執(zhí)行10的方法包括以下步 驟:接收對(duì)于預(yù)備邏輯存儲(chǔ)卷的請(qǐng)求;選擇在存儲(chǔ)系統(tǒng)中配置的協(xié)議端點(diǎn),用于邏輯存儲(chǔ)卷 的10將通過協(xié)議端點(diǎn)來接收;并且生成將在用于邏輯存儲(chǔ)卷的10中包括的標(biāo)識(shí)符并且向發(fā) 出請(qǐng)求的計(jì)算機(jī)系統(tǒng)返回標(biāo)識(shí)符。
[0015] 根據(jù)本發(fā)明的一個(gè)實(shí)施例的一種用于預(yù)備存儲(chǔ)系統(tǒng)以執(zhí)行在主機(jī)計(jì)算機(jī)上運(yùn)行 的虛擬機(jī)發(fā)出的10的方法包括以下步驟:接收對(duì)于預(yù)備用于虛擬機(jī)的元數(shù)據(jù)邏輯存儲(chǔ)卷的 請(qǐng)求;選擇在存儲(chǔ)系統(tǒng)中配置的協(xié)議端點(diǎn),用于元數(shù)據(jù)邏輯存儲(chǔ)卷的10將通過協(xié)議端點(diǎn)來 接收;通過協(xié)議端點(diǎn)接收讀取10并且返回讀取的數(shù)據(jù),讀取的數(shù)據(jù)包括用于數(shù)據(jù)邏輯存儲(chǔ) 卷的標(biāo)識(shí)符;接收對(duì)于預(yù)備用于虛擬機(jī)的數(shù)據(jù)邏輯存儲(chǔ)卷的請(qǐng)求;并且對(duì)于每個(gè)數(shù)據(jù)邏輯 存儲(chǔ)卷,選擇在存儲(chǔ)系統(tǒng)中配置的協(xié)議端點(diǎn),用于邏輯存儲(chǔ)卷的10將通過協(xié)議端點(diǎn)來接收。
[0016] 本發(fā)明的各實(shí)施例還包括一種存儲(chǔ)指令的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),這些指令 在由計(jì)算機(jī)系統(tǒng)執(zhí)行時(shí)使計(jì)算機(jī)系統(tǒng)執(zhí)行以上闡述的方法之一。
【附圖說明】
[0017] 圖1A是通過網(wǎng)絡(luò)連接到一個(gè)或者多個(gè)計(jì)算機(jī)系統(tǒng)的基于塊協(xié)議的常規(guī)存儲(chǔ)設(shè)備 的框圖。
[0018] 圖1B是通過網(wǎng)絡(luò)連接到一個(gè)或者多個(gè)計(jì)算機(jī)系統(tǒng)的常規(guī)NAS設(shè)備的框圖。
[0019] 圖2A是根據(jù)本發(fā)明的一個(gè)實(shí)施例的實(shí)施虛擬卷的基于塊協(xié)議的存儲(chǔ)系統(tǒng)群集的 框圖。
[0020] 圖2B是根據(jù)本發(fā)明的一個(gè)實(shí)施例的實(shí)施虛擬卷的基于NAS的存儲(chǔ)系統(tǒng)群集的框 圖。
[0021] 圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的圖2A或者圖2B的存儲(chǔ)系統(tǒng)群集的用于管理虛擬 卷的部件框圖。
[0022] 圖4是用于創(chuàng)建存儲(chǔ)容器的方法步驟的流程圖。
[0023] 圖5A是在基于SAN的存儲(chǔ)系統(tǒng)上主控的被配置用于實(shí)施虛擬卷的計(jì)算機(jī)系統(tǒng)的一 個(gè)實(shí)施例的框圖。
[0024]圖5B是在基于NAS的存儲(chǔ)系統(tǒng)上主控的被配置用于虛擬卷的圖5A的計(jì)算機(jī)系統(tǒng)的 框圖。
[0025]圖5C是在基于SAN的存儲(chǔ)系統(tǒng)上主控的被配置用于實(shí)施虛擬卷的計(jì)算機(jī)系統(tǒng)的另 一實(shí)施例的框圖。
[0026]圖5D是在基于NAS的存儲(chǔ)系統(tǒng)上主控的被配置用于虛擬卷的圖5C的計(jì)算機(jī)系統(tǒng)的 框圖。
[0027]圖6是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的用來管理虛擬卷的部件和通信路徑的計(jì)算 機(jī)環(huán)境的簡(jiǎn)化框圖。
[0028]圖7是用于向圖2A或者圖2B的存儲(chǔ)系統(tǒng)群集認(rèn)證計(jì)算機(jī)系統(tǒng)的方法步驟的流程 圖。
[0029]圖8是根據(jù)一個(gè)實(shí)施例的用于創(chuàng)建虛擬卷的方法步驟的流程圖。
[0030]圖9A是用于發(fā)現(xiàn)可用于計(jì)算機(jī)系統(tǒng)的協(xié)議端點(diǎn)的方法步驟的流程圖。
[0031] 圖9B是用于存儲(chǔ)系統(tǒng)發(fā)現(xiàn)計(jì)算機(jī)系統(tǒng)經(jīng)由帶內(nèi)路徑連接到的協(xié)議端點(diǎn)的方法步 驟的流程圖。
[0032] 圖10是根據(jù)一個(gè)實(shí)施例的用于發(fā)出和執(zhí)行虛擬卷綁定請(qǐng)求的方法步驟的流程圖。 [0033]圖11A和圖11B是根據(jù)一個(gè)實(shí)施例的用于向虛擬卷發(fā)出10的方法步驟的流程圖。
[0034] 圖12是根據(jù)一個(gè)實(shí)施例的用于在存儲(chǔ)系統(tǒng)執(zhí)行10的方法步驟的流程圖。
[0035] 圖13是根據(jù)一個(gè)實(shí)施例的用于發(fā)出和執(zhí)行虛擬卷重新綁定請(qǐng)求的方法步驟的流 程圖。
[0036] 圖14是虛擬卷的生命周期的概念圖。
[0037]圖15是根據(jù)一個(gè)實(shí)施例的使用圖2A的存儲(chǔ)系統(tǒng)的來調(diào)配VM的方法步驟的流程圖。 [0038]圖16A是用于使VM通電的方法步驟的流程圖。
[0039]圖16B是用于使VM斷電的方法步驟的流程圖。
[0040] 圖17是用于擴(kuò)展VM的vvol的大小的方法步驟的流程圖。
[0041] 圖18是用于在存儲(chǔ)容器之間移動(dòng)VM的vvol的方法步驟的流程圖。
[0042]圖19是用于從模板VM克隆VM的方法步驟的流程圖。
[0043]圖20是根據(jù)另一實(shí)施例的用于調(diào)配VM的方法步驟的流程圖。
[0044]圖21圖示采樣存儲(chǔ)能力簡(jiǎn)檔和用于創(chuàng)建存儲(chǔ)容器的方法,該方法包括簡(jiǎn)檔選擇步 驟。
[0045] 圖22是圖示用于創(chuàng)建vvol并且定義用于vvol的存儲(chǔ)能力簡(jiǎn)檔的方法步驟的流程 圖。
[0046] 圖23是圖示用于創(chuàng)建快照的方法步驟的流程圖。
【具體實(shí)施方式】
[0047] 圖2A和圖2B是根據(jù)本發(fā)明的實(shí)施例的實(shí)施"虛擬卷"的存儲(chǔ)系統(tǒng)群集的框圖。存儲(chǔ) 系統(tǒng)群集包括一個(gè)或者多個(gè)存儲(chǔ)系統(tǒng)、例如存儲(chǔ)系統(tǒng)1301和1302,這些存儲(chǔ)系統(tǒng)可以是盤 陣列,每個(gè)存儲(chǔ)系統(tǒng)具有多個(gè)數(shù)據(jù)存儲(chǔ)單元(DSU),在圖中標(biāo)注這些DSU之一為141,并且存 儲(chǔ)系統(tǒng)群集包括存儲(chǔ)系統(tǒng)管理器131和132,這些存儲(chǔ)系統(tǒng)管理器控制存儲(chǔ)系統(tǒng)130的各種 操作以實(shí)現(xiàn)這里描述的本發(fā)明的實(shí)施例。在一個(gè)實(shí)施例中,兩個(gè)或者更多存儲(chǔ)系統(tǒng)130可以 實(shí)施分布式存儲(chǔ)系統(tǒng)管理器135,該分布式存儲(chǔ)系統(tǒng)管理器135控制存儲(chǔ)系統(tǒng)群集的操作如 同它們是單個(gè)邏輯存儲(chǔ)系統(tǒng)一樣。分布式存儲(chǔ)系統(tǒng)管理器135的操作域可以跨越在相同數(shù) 據(jù)中心中或者跨越多個(gè)數(shù)據(jù)中心安裝的存儲(chǔ)系統(tǒng)。例如,在一個(gè)這樣的實(shí)施例中,分布式存 儲(chǔ)系統(tǒng)管理器135可以包括存儲(chǔ)系統(tǒng)管理器131,存儲(chǔ)系統(tǒng)管理器131在與用作"從屬"管理 器的存儲(chǔ)系統(tǒng)管理器132通信時(shí)用作"主控"管理器,但是應(yīng)當(dāng)認(rèn)識(shí),可以實(shí)施用于實(shí)施分布 式存儲(chǔ)系統(tǒng)管理器的多種備選方法。DSU代表物理存儲(chǔ)單元、比如基于盤或者閃存的存儲(chǔ)單 元、比如旋轉(zhuǎn)盤或者固態(tài)盤。根據(jù)實(shí)施例,存儲(chǔ)系統(tǒng)群集創(chuàng)建并且向連接的計(jì)算機(jī)系統(tǒng)、比 如計(jì)算機(jī)系統(tǒng)1001和1002暴露如這里進(jìn)一步具體描述的"虛擬卷"(vvol)。在計(jì)算機(jī)系統(tǒng) 100中運(yùn)行的應(yīng)用(例如,VM等,這些VM訪問它們的虛擬盤)使用標(biāo)準(zhǔn)協(xié)議、比如在圖2A的實(shí) 施例中為SCSI和在圖2B的實(shí)施例中為NFS、通過在存儲(chǔ)系統(tǒng)130中配置的、稱為"協(xié)議端點(diǎn)" (PE)的用于SCSI或者NFS協(xié)議流量的邏輯端點(diǎn)按需訪問vvol。從計(jì)算機(jī)系統(tǒng)100到存儲(chǔ)系統(tǒng) 130的用于與應(yīng)用有關(guān)的數(shù)據(jù)操作的通信路徑這里被稱為"帶內(nèi)"路徑。在計(jì)算機(jī)系統(tǒng)100的 主機(jī)總線適配器(HBA)與在存儲(chǔ)系統(tǒng)130中配置的PE之間以及在計(jì)算機(jī)系統(tǒng)100的網(wǎng)絡(luò)接口 卡(NIC)與在存儲(chǔ)系統(tǒng)130中配置的PE之間的通信路徑是帶內(nèi)路徑的示例。從計(jì)算機(jī)系統(tǒng) 100到存儲(chǔ)系統(tǒng)130的不是在帶內(nèi)并且通常用來執(zhí)行管理操作的通信路徑這里被稱為"帶 外"路徑。在圖6中從帶內(nèi)路徑分離地圖示帶外路徑的示例、比如在計(jì)算機(jī)系統(tǒng)100與存儲(chǔ)系 統(tǒng)130之間的以太網(wǎng)網(wǎng)絡(luò)連接。為了簡(jiǎn)化,示出計(jì)算機(jī)系統(tǒng)100直接連接到存儲(chǔ)系統(tǒng)130。然 而,應(yīng)當(dāng)理解,它們可以通過多個(gè)路徑和一個(gè)或者多個(gè)交換機(jī)連接到存儲(chǔ)系統(tǒng)130。
[0048]分布式存儲(chǔ)系統(tǒng)管理器135或者單個(gè)存儲(chǔ)系統(tǒng)管理器131或者132可以從代表物理 DSU的邏輯聚合的邏輯"存儲(chǔ)容器"創(chuàng)建vvol(例如,在計(jì)算機(jī)系統(tǒng)100請(qǐng)求時(shí)等)。一般而言, 存儲(chǔ)容器可以跨越多于一個(gè)存儲(chǔ)系統(tǒng),并且許多存儲(chǔ)容器可以由單個(gè)存儲(chǔ)系統(tǒng)管理器或者 分布式存儲(chǔ)系統(tǒng)管理器創(chuàng)建。相似地,單個(gè)存儲(chǔ)系統(tǒng)可以包含許多存儲(chǔ)容器。在圖2A和圖2B 中,示出分布式存儲(chǔ)系統(tǒng)管理器135創(chuàng)建的存儲(chǔ)容器142A為跨越存儲(chǔ)系統(tǒng)1301和存儲(chǔ)系統(tǒng) 1302,而示出存儲(chǔ)容器142B和存儲(chǔ)容器142C為包含于單個(gè)存儲(chǔ)系統(tǒng)內(nèi)(即,分別為存儲(chǔ)系統(tǒng) 1301和存儲(chǔ)系統(tǒng)1302)。應(yīng)當(dāng)認(rèn)識(shí),由于存儲(chǔ)容器可以跨越多個(gè)一個(gè)存儲(chǔ)系統(tǒng),所以存儲(chǔ)系 統(tǒng)管理員可以向其客戶調(diào)配超過任一存儲(chǔ)系統(tǒng)的存儲(chǔ)容量的存儲(chǔ)容量。還應(yīng)當(dāng)認(rèn)識(shí),由于 可以在單個(gè)存儲(chǔ)系統(tǒng)內(nèi)創(chuàng)建多個(gè)存儲(chǔ)容器,所以存儲(chǔ)系統(tǒng)管理員可以使用單個(gè)存儲(chǔ)系統(tǒng)來 向多個(gè)客戶調(diào)配存儲(chǔ)裝置。
[0049]在圖2A的實(shí)施例中,從基于塊的存儲(chǔ)系統(tǒng)調(diào)配每個(gè)vvol。在圖2B的實(shí)施例中,基于 NAS的存儲(chǔ)系統(tǒng)在DSU 141上面實(shí)施文件系統(tǒng)145,并且每個(gè)vvol向計(jì)算機(jī)系統(tǒng)100暴露為在 這一文件系統(tǒng)內(nèi)的文件對(duì)象。此外,如以下將進(jìn)一步具體描述的那樣,在計(jì)算機(jī)系統(tǒng)100上 運(yùn)行的應(yīng)用通過PE訪問用于10的vvo 1。例如,如圖2A和圖2B中的虛線所示,vvo 1 151和vvo 1 152 經(jīng)由 PE161 可訪問;vvol 153 和 vvol 155 經(jīng)由 PE 162 可訪問;vvol 154 經(jīng)由 PE 163 和 PE 164可訪問;并且vvol 156經(jīng)由PE 165可訪問。應(yīng)當(dāng)認(rèn)識(shí),來自多個(gè)存儲(chǔ)容器的vvol、比如在 存儲(chǔ)容器142A中的vvol 153和在存儲(chǔ)容器142C中的vvol 155可以在任何給定的時(shí)間經(jīng)由 單個(gè)PE、比如PE 162可訪問。還應(yīng)當(dāng)認(rèn)識(shí),PE、比如PE 166可以在不存在經(jīng)由它們可訪問的任 何vvol時(shí)存在。
[0050] 在圖2A的實(shí)施例中,存儲(chǔ)系統(tǒng)130使用已知的用于設(shè)立LUN的方法來實(shí)施PE為特殊 類型的LUN。與LUN-樣,存儲(chǔ)系統(tǒng)130向每個(gè)UE提供稱為WWN(世界范圍名稱)的唯一標(biāo)識(shí)符。 在一個(gè)實(shí)施例中,在創(chuàng)建PE時(shí),存儲(chǔ)系統(tǒng)130未指定用于特殊LUN的大小,因?yàn)檫@里描述的PE 不是實(shí)際數(shù)據(jù)容器。在一個(gè)這樣的實(shí)施例中,存儲(chǔ)系統(tǒng)130可以指派零值或者很小的值為與 PE有關(guān)的LUN的大小,從而如以下進(jìn)一步討論的那樣,管理員可以在請(qǐng)求存儲(chǔ)系統(tǒng)提供LUN (例如,傳統(tǒng)數(shù)據(jù)LUN和與PE有關(guān)的LUN)列表時(shí)快速標(biāo)識(shí)PE。相似地,存儲(chǔ)系統(tǒng)130可以向PE 指派大于255的LUN編號(hào)為用于LUN的標(biāo)識(shí)編號(hào)以用人性化方式指示它們不是數(shù)據(jù)LUN。作為 用于在PE與LUN之間區(qū)分的另一方式,可以向擴(kuò)展查詢數(shù)據(jù)VH)頁面(頁面86h)添加 PE位。在 LUN是PE時(shí)將PE位設(shè)置成1,并且在它是普通數(shù)據(jù)LUN時(shí)設(shè)置成0。計(jì)算機(jī)系統(tǒng)100可以通過發(fā) 出SCSI命令REP0RT_LUNS(報(bào)告_LUN)來經(jīng)由帶內(nèi)路徑發(fā)現(xiàn)PE并且通過檢查指示的PE位來確 定它們是否為根據(jù)這里描述的實(shí)施例的PE或者常規(guī)數(shù)據(jù)LUN。計(jì)算機(jī)系統(tǒng)100可以可選地檢 查L(zhǎng)UN大小和LUN編號(hào)屬性以進(jìn)一步確認(rèn)LUN是否為PE或者常規(guī)LUN。應(yīng)當(dāng)認(rèn)識(shí),以上描述的 技術(shù)中的任何技術(shù)可以用來區(qū)分與PE有關(guān)的LUN與普通數(shù)據(jù)LUN。在一個(gè)實(shí)施例中,PE位技 術(shù)是用來區(qū)分與PE有關(guān)的LUN與普通數(shù)據(jù)LUN的僅有技術(shù)。
[0051] 在圖2B的實(shí)施例中,使用已知的用于設(shè)立指向FS卷的裝配點(diǎn)的方法在存儲(chǔ)系統(tǒng) 130中創(chuàng)建PE。在圖2B的實(shí)施例中創(chuàng)建的每個(gè)PE由也常規(guī)地一起稱為"裝配點(diǎn)"的IP地址和 文件系統(tǒng)路徑唯一標(biāo)識(shí)。然而,不同于常規(guī)裝配點(diǎn),PE未與FS卷相關(guān)聯(lián)。另外,不同于圖2A的 PE,圖2B的PE除非虛擬卷綁定到給定的PE則不可經(jīng)由帶內(nèi)路徑被計(jì)算機(jī)系統(tǒng)100發(fā)現(xiàn)。因 此,圖2B的PE經(jīng)由帶外路徑由存儲(chǔ)系統(tǒng)報(bào)告。
[0052]圖3是根據(jù)一個(gè)實(shí)施例的圖2A或者圖2B的存儲(chǔ)系統(tǒng)群集的用于管理虛擬卷的部件 的框圖。部件包括在一個(gè)實(shí)施例中在存儲(chǔ)系統(tǒng)130中執(zhí)行的存儲(chǔ)系統(tǒng)管理器131和132的軟 件模塊或者在另一實(shí)施例中的分布式存儲(chǔ)系統(tǒng)管理器135的軟件模塊、即輸入/輸出(1/0) 管理器304、卷管理器306、容器管理器308和數(shù)據(jù)訪問層310。在這里的實(shí)施例的描述中,應(yīng) 當(dāng)理解,分布式存儲(chǔ)系統(tǒng)管理器135采取的任何動(dòng)作可以根據(jù)實(shí)施例由存儲(chǔ)系統(tǒng)管理器131 或者存儲(chǔ)系統(tǒng)管理器132采取。
[0053] 在圖3的示例中,分布式存儲(chǔ)系統(tǒng)管理器135已經(jīng)從DSU 141創(chuàng)建三個(gè)存儲(chǔ)容器 SC1、SC2和SC3,示出這些存儲(chǔ)容器中的每個(gè)存儲(chǔ)容器具有標(biāo)注為P1至Pn的紡錘體盤區(qū) (spindle extent)。一般而言,每個(gè)存儲(chǔ)容器具有固定物理大小并且與DSU的具體盤區(qū)相關(guān) 聯(lián)。在圖3中所示示例中,分布式存儲(chǔ)系統(tǒng)管理器135具有對(duì)容器數(shù)據(jù)庫(kù)316的訪問,該容器 數(shù)據(jù)庫(kù)316為每個(gè)存儲(chǔ)容器存儲(chǔ)其容器ID、物理布局信息和一些元數(shù)據(jù)。容器數(shù)據(jù)庫(kù)316由 容器管理器308管理和更新,該容器管理器308在一個(gè)實(shí)施例中是分布式存儲(chǔ)系統(tǒng)管理器 135的部件。容器ID是在創(chuàng)建存儲(chǔ)容器時(shí)向存儲(chǔ)容器給定通用唯一標(biāo)識(shí)符。物理布局信息由 與給定的存儲(chǔ)容器相關(guān)聯(lián)并且存儲(chǔ)為〈系統(tǒng)ID,DSU ID,盤區(qū)編號(hào)〉有序列表的DSU 141的紡 錘體盤區(qū)構(gòu)成。元數(shù)據(jù)分節(jié)可以包含一些公共和一些存儲(chǔ)系統(tǒng)銷售商專屬元數(shù)據(jù)。例如,元 數(shù)據(jù)分節(jié)可以包含被允許訪問存儲(chǔ)容器的計(jì)算機(jī)系統(tǒng)或者應(yīng)用或者用戶的ID。作為另一示 例,元數(shù)據(jù)分節(jié)包含分配位圖,該分配位圖用于表示已經(jīng)向現(xiàn)有vvol分配存儲(chǔ)容器的哪些〈 系統(tǒng)ID,DSU ID,盤區(qū)編號(hào)〉盤區(qū)并且哪些盤區(qū)自由。在一個(gè)實(shí)施例中,存儲(chǔ)系統(tǒng)管理員可以 創(chuàng)建用于不同業(yè)務(wù)單元的分離存儲(chǔ)容器,從而不從相同存儲(chǔ)容器調(diào)配不同業(yè)務(wù)單元的 vvol。可以應(yīng)用其它用于隔離vvol的策略。例如,存儲(chǔ)系統(tǒng)管理員可以采用將從不同存儲(chǔ)容 器調(diào)配云服務(wù)的不同客戶的vvol這樣的策略。vvol也可以根據(jù)它們的所需服務(wù)水平來分組 并且從存儲(chǔ)容器來調(diào)配。此外,存儲(chǔ)系統(tǒng)管理員可以創(chuàng)建、刪除和另外管理存儲(chǔ)容器、比如 定義可以創(chuàng)建的存儲(chǔ)容器數(shù)目并且設(shè)置可以每存儲(chǔ)容器設(shè)置的最大物理大小。
[0054]同樣在圖3的示例中,分布式存儲(chǔ)系統(tǒng)管理器135已經(jīng)調(diào)配(代表請(qǐng)求計(jì)算機(jī)系統(tǒng) 100)各來自不同存儲(chǔ)容器的多個(gè)vvol。一般而言,vvol可以具有固定物理大小或者可以被 瘦(thinly)調(diào)配,并且每個(gè)vvol具有vvol ID,該vvol ID是在創(chuàng)建vvol時(shí)向vvol給定的通 用唯一標(biāo)識(shí)符。對(duì)于每個(gè)vvol,vvol數(shù)據(jù)庫(kù)314為每個(gè)vvol存儲(chǔ)其vvol ID、其中創(chuàng)建vvol的 存儲(chǔ)容器的容器ID和在該存儲(chǔ)容器內(nèi)的包括vvol的地址空間的〈偏移,長(zhǎng)度〉值有序列表。 vvol數(shù)據(jù)庫(kù)314由卷管理器306管理和更新,該卷管理器在一個(gè)實(shí)施例中是分布式存儲(chǔ)系統(tǒng) 管理器135的部件。在一個(gè)實(shí)施例中,vvol數(shù)據(jù)庫(kù)314也存儲(chǔ)關(guān)于vvol的少量元數(shù)據(jù)。這一元 數(shù)據(jù)在vvol數(shù)據(jù)庫(kù)314中被存儲(chǔ)為關(guān)鍵字-值對(duì)的集合并且可以在vvol的存在期間的任何 時(shí)間經(jīng)由帶外路徑由計(jì)算機(jī)系統(tǒng)100更新和查詢。存儲(chǔ)的關(guān)鍵字-值對(duì)落入三個(gè)類別。第一 類別是:熟知的值一一某些值的定義(并且因此它們的值的解釋)公開地可用。一個(gè)示例是 與虛擬卷類型(例如,在虛擬機(jī)實(shí)施例中,vvol是否包含VM的元數(shù)據(jù)或者VM的數(shù)據(jù))對(duì)應(yīng)的 關(guān)鍵字。另一示例是App ID,該App ID是在vvol中存儲(chǔ)數(shù)據(jù)的應(yīng)用的ID。第二類別是:計(jì)算 機(jī)系統(tǒng)專屬關(guān)鍵字一一計(jì)算機(jī)系統(tǒng)或者其管理模塊存儲(chǔ)某些關(guān)鍵字和值為虛擬卷的元數(shù) 據(jù)。第三類別是:存儲(chǔ)系統(tǒng)銷售商專屬關(guān)鍵字一一這些允許存儲(chǔ)系統(tǒng)銷售商存儲(chǔ)與虛擬卷 的元數(shù)據(jù)相關(guān)聯(lián)的某些關(guān)鍵字。存儲(chǔ)系統(tǒng)銷售商將這一關(guān)鍵字-值存儲(chǔ)用于它的元數(shù)據(jù)的 一個(gè)原因是所有這些關(guān)鍵字經(jīng)由用于vvol的帶外信道容易可用于存儲(chǔ)系統(tǒng)銷售商插件和 其它擴(kuò)展。用于關(guān)鍵字-值對(duì)的存儲(chǔ)操作是虛擬卷創(chuàng)建和其它過程的一部分,因此存儲(chǔ)操作 應(yīng)當(dāng)合理地快。存儲(chǔ)系統(tǒng)也被配置用于基于與在具體關(guān)鍵字上提供的值的確切匹配來實(shí)現(xiàn) 虛擬卷的搜索。
[0055] 10管理器304是維護(hù)連接數(shù)據(jù)庫(kù)312的軟件模塊(在某些實(shí)施例中也為分布式存儲(chǔ) 系統(tǒng)管理器135的部件),該連接數(shù)據(jù)庫(kù)312存儲(chǔ)在PE與vvol之間的當(dāng)前有效10連接路徑。在 圖3中所示示例中,示出七個(gè)當(dāng)前有效10會(huì)話。每個(gè)有效會(huì)話具有相關(guān)聯(lián)的PE ID、次級(jí)標(biāo)識(shí) 符(SLLID)、vvol ID和參考計(jì)數(shù)(RefCnt),該參考計(jì)數(shù)指示通過這一 10會(huì)話執(zhí)行10的不同 應(yīng)用的數(shù)目。分布式存儲(chǔ)系統(tǒng)管理器135(例如,在計(jì)算機(jī)系統(tǒng)100請(qǐng)求時(shí))在PE與vvol之間 建立有效10會(huì)話的過程這里稱為"綁定"過程。對(duì)于每個(gè)綁定,分布式存儲(chǔ)系統(tǒng)管理器135 (例如,經(jīng)由10管理器304)向連接數(shù)據(jù)庫(kù)312添加條目。分布式存儲(chǔ)系統(tǒng)管理器135隨后拆除 10會(huì)話的過程這里稱為"解綁"過程。對(duì)于每個(gè)解綁,分布式存儲(chǔ)系統(tǒng)管理器135(例如,經(jīng)由 10管理器304)將10會(huì)話的參考計(jì)數(shù)遞減一。在10會(huì)話的參考計(jì)數(shù)為零時(shí),分布式存儲(chǔ)系統(tǒng) 管理器135(例如,經(jīng)由10管理器304)可以從連接數(shù)據(jù)庫(kù)312刪除用于該10連接路徑的條目。 如先前討論的那樣,在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)100生成并且經(jīng)由帶外路徑向分布式存儲(chǔ) 系統(tǒng)管理器135發(fā)送綁定和解綁請(qǐng)求。備選地,計(jì)算機(jī)系統(tǒng)100可以通過使現(xiàn)有錯(cuò)誤路徑超 負(fù)荷來生成并且經(jīng)由帶內(nèi)路徑發(fā)送解綁請(qǐng)求。在一個(gè)實(shí)施例中,在參考計(jì)數(shù)從0改變成1或 者相反時(shí)將生成數(shù)改變成單調(diào)增加的數(shù)或者隨機(jī)生成的數(shù)。在另一實(shí)施例中,生成數(shù)是隨 機(jī)生成的數(shù),并且從連接數(shù)據(jù)庫(kù)312消除RefCnt列,并且對(duì)于每個(gè)綁定,即使在綁定請(qǐng)求是 對(duì)已經(jīng)綁定的vvol時(shí),分布式存儲(chǔ)系統(tǒng)管理器135仍然(例如,經(jīng)由10管理器304)向連接數(shù) 據(jù)庫(kù)312添加條目。
[0056]在圖2A的存儲(chǔ)系統(tǒng)群集中,10管理器304使用連接數(shù)據(jù)庫(kù)312來處理通過PE接收的 來自計(jì)算機(jī)系統(tǒng)1〇〇的10請(qǐng)求(1〇)。當(dāng)在PE之一接收10時(shí),10管理器304解析10以標(biāo)識(shí)在10 中包含的PE ID和SLLID以便確定10被期望用于的vvo 1。通過訪問連接數(shù)據(jù)庫(kù)314,10管理器 304繼而能夠獲取與解析的PE ID和SLLID相關(guān)聯(lián)的vvol ID。在圖3和后續(xù)附圖中,為了簡(jiǎn)化 而示出PE ID為PE_A、PE_B等。在一個(gè)實(shí)施例中,實(shí)際PE ID是PE的WWN。此外,SLLID被示為 S000US0002等。實(shí)際SLLID由分布式存儲(chǔ)系統(tǒng)管理器135生成為在與連接數(shù)據(jù)庫(kù)312中的給 定的PE ID相關(guān)聯(lián)的SLLID之中的任何唯一數(shù)。在具有vvol ID的虛擬卷的邏輯地址空間與 DSU 141的物理位置之間的映射由卷管理器306使用vvol數(shù)據(jù)庫(kù)314并且由容器管理器308 使用容器數(shù)據(jù)庫(kù)316來執(zhí)行。一旦已經(jīng)獲得DSU 141的物理位置,數(shù)據(jù)訪問層310(在一個(gè)實(shí) 施例中,也為分布式存儲(chǔ)系統(tǒng)管理器135的部件)在這些物理位置上執(zhí)行10。
[0057]在圖2B的存儲(chǔ)系統(tǒng)群集中,10通過PE接收,并且每個(gè)這樣的10包括10已經(jīng)被發(fā)到 的NFS句柄(或者相似文件系統(tǒng)句柄)。在一個(gè)實(shí)施例中,用于這樣的系統(tǒng)的連接數(shù)據(jù)庫(kù)312 包含存儲(chǔ)系統(tǒng)的NFS接口的IP地址為PE ID并且文件系統(tǒng)路徑為SLLID?;趘vol在文件系 統(tǒng)145中的位置生成SLLID。在vvol的邏輯地址空間與DSU 141的物理位置之間的映射由卷 管理器306使用vvol數(shù)據(jù)庫(kù)314并且由容器管理器308使用容器數(shù)據(jù)庫(kù)316來執(zhí)行。一旦已經(jīng) 獲得DSU 141的物理位置,數(shù)據(jù)訪問層在這些物理位置上執(zhí)行10。應(yīng)當(dāng)認(rèn)識(shí),對(duì)于圖2B的存 儲(chǔ)系統(tǒng),容器數(shù)據(jù)庫(kù)312可以在用于給定的vvol的容器位置條目中包含文件:〈偏移.長(zhǎng)度〉 條目有序列表(即,vvol可以包括在文件系統(tǒng)145中存儲(chǔ)的多個(gè)文件段)。
[0058]在一個(gè)實(shí)施例中,在易失性存儲(chǔ)器中維護(hù)連接數(shù)據(jù)庫(kù)312,而在持久存儲(chǔ)裝置、比 如DSU 141中維護(hù)vvol數(shù)據(jù)庫(kù)314和容器數(shù)據(jù)庫(kù)316。在其它實(shí)施例中,可以在持久存儲(chǔ)裝置 中維護(hù)所有數(shù)據(jù)庫(kù)312、314、316。
[0059]圖4是用于創(chuàng)建存儲(chǔ)容器的方法步驟410的流程圖。在一個(gè)實(shí)施例中,這些步驟在 存儲(chǔ)管理員的控制之下由存儲(chǔ)系統(tǒng)管理器131、存儲(chǔ)系統(tǒng)管理器132或者分布式存儲(chǔ)系統(tǒng)管 理器135執(zhí)行。如以上指出的那樣,存儲(chǔ)容器代表物理DSU的邏輯聚合并且可以跨越來自多 于一個(gè)存儲(chǔ)系統(tǒng)的物理DSU。在步驟411,存儲(chǔ)管理員(經(jīng)由分布式存儲(chǔ)系統(tǒng)管理器135等)設(shè) 置存儲(chǔ)容器的物理容量。在云或者數(shù)據(jù)中心內(nèi),這一物理容量可以例如代表客戶租賃的物 理存儲(chǔ)容量。這里公開的存儲(chǔ)容器提供的靈活性是不同客戶的存儲(chǔ)容器可以由存儲(chǔ)管理員 從相同存儲(chǔ)系統(tǒng)調(diào)配,并且用于單個(gè)客戶的存儲(chǔ)容器可以例如在任何一個(gè)存儲(chǔ)設(shè)備的物理 容量不足以滿足客戶請(qǐng)求的大小的情況下或者在比如vvol的物理存儲(chǔ)覆蓋區(qū)將自然地跨 越多個(gè)存儲(chǔ)系統(tǒng)這樣的復(fù)制的情況下從多個(gè)存儲(chǔ)系統(tǒng)調(diào)配。在步驟412,存儲(chǔ)管理員設(shè)置用 于訪問存儲(chǔ)容器的權(quán)限級(jí)別。例如,在多租戶數(shù)據(jù)中心中,客戶僅可以訪問已經(jīng)向他或者她 租賃的存儲(chǔ)容器。在步驟413,分布式存儲(chǔ)系統(tǒng)管理器135生成用于存儲(chǔ)容器的唯一標(biāo)識(shí)符。 然后,在步驟414,分布式存儲(chǔ)系統(tǒng)管理器135(例如,在一個(gè)實(shí)施例中經(jīng)由容器管理器308) 以充分?jǐn)?shù)量向存儲(chǔ)容器分配DSU 141的自由紡錘體盤區(qū)以滿足在步驟411設(shè)置的物理容量。 如以上指出的那樣,在任何一個(gè)存儲(chǔ)系統(tǒng)的自由空間不足以滿足物理容量的情況下,分布 式存儲(chǔ)系統(tǒng)管理器135可以從多個(gè)存儲(chǔ)系統(tǒng)分配DSU 141的紡錘體區(qū)段。在已經(jīng)分配分區(qū)之 后,分布式存儲(chǔ)系統(tǒng)管理器135(例如,經(jīng)由容器管理器308)用唯一容器ID、〈系統(tǒng)編號(hào)、DSU ID、盤區(qū)編號(hào)〉有序列表和被允許訪問存儲(chǔ)容器的計(jì)算機(jī)系統(tǒng)的上下文ID更新容器數(shù)據(jù)庫(kù) 316〇
[0060] 根據(jù)這里描述的實(shí)施例,存儲(chǔ)容量簡(jiǎn)檔、例如SLA或者服務(wù)質(zhì)量(QoS)可以在每 vvol基礎(chǔ)上由分布式存儲(chǔ)系統(tǒng)管理器135(例如,代表請(qǐng)求計(jì)算機(jī)系統(tǒng)100)配置。因此,有可 能讓具有不同存儲(chǔ)能力簡(jiǎn)檔的 vv〇l是相同存儲(chǔ)容器的一部分。在一個(gè)實(shí)施例中,系統(tǒng)管理 員定義默認(rèn)存儲(chǔ)能力簡(jiǎn)檔(或者多個(gè)可能存儲(chǔ)能力簡(jiǎn)檔),所述存儲(chǔ)能力簡(jiǎn)檔在創(chuàng)建存儲(chǔ)容 器時(shí)用于新創(chuàng)建的vvol并且存儲(chǔ)于容器數(shù)據(jù)庫(kù)316的元數(shù)據(jù)分節(jié)中。如果未對(duì)于在存儲(chǔ)容 器以內(nèi)創(chuàng)建的新vvol顯式地指定存儲(chǔ)能力簡(jiǎn)檔,則新vvol將繼承與存儲(chǔ)容器相關(guān)聯(lián)的默認(rèn) 存儲(chǔ)能力簡(jiǎn)檔。
[0061] 圖5A是在圖2A的存儲(chǔ)系統(tǒng)群集上主控的被配置用來實(shí)施虛擬卷的計(jì)算機(jī)系統(tǒng)的 一個(gè)實(shí)施例的框圖??梢栽诎ㄒ粋€(gè)或者多個(gè)中央處理單元(CPU)501、存儲(chǔ)器502、一個(gè)或 者多個(gè)網(wǎng)絡(luò)接口卡(NIC)503和一個(gè)或者多個(gè)主機(jī)總線適配器(HBA)504的通常為服務(wù)器類 的常規(guī)硬件平臺(tái)500上構(gòu)造計(jì)算機(jī)系統(tǒng)101。冊(cè)六504使計(jì)算機(jī)系統(tǒng)101能夠通過在存儲(chǔ)設(shè)備 130中配置的PE向虛擬卷發(fā)出10。如圖5A中進(jìn)一步所示,在硬件平臺(tái)500上面安裝操作系統(tǒng) 508,并且在操作系統(tǒng)508上面執(zhí)行多個(gè)應(yīng)用5121-512N。操作系統(tǒng)508的示例包括熟知的商 用操作系統(tǒng)、比如Microsoft Windows、Linux等中的任何操作系統(tǒng)。
[0062] 根據(jù)這里描述的實(shí)施例,每個(gè)應(yīng)用512具有與之相關(guān)聯(lián)的一個(gè)或者多個(gè)vvol并且 向操作系統(tǒng)508按照應(yīng)用512向操作系統(tǒng)508中的"創(chuàng)建設(shè)備"調(diào)用創(chuàng)建的vvol的塊設(shè)備實(shí)例 發(fā)出10。在塊設(shè)備數(shù)據(jù)庫(kù)53 3中維護(hù)在塊設(shè)備名稱與vvo 1 ID之間的關(guān)聯(lián)。來自應(yīng)用5121 -512N的10由文件系統(tǒng)驅(qū)動(dòng)器510接收,并將其轉(zhuǎn)換成塊10并且向虛擬卷設(shè)備驅(qū)動(dòng)器532提供 塊10。在另一方面,來自應(yīng)用5121的10被示出用于繞過文件系統(tǒng)驅(qū)動(dòng)器510并且被直接提供 給虛擬卷設(shè)備驅(qū)動(dòng)器532,這表示應(yīng)用5121以在通過這里引用將全部?jī)?nèi)容結(jié)合、標(biāo)題為 "Providing Access to a Raw Data Storage Unit in a Computer System" 的美國(guó)專利 7,155,558中描述的方式直接訪問其塊設(shè)備作為原始存儲(chǔ)設(shè)備、例如作為數(shù)據(jù)庫(kù)盤、日志 盤、備份存檔和內(nèi)容貯存庫(kù)。在虛擬卷設(shè)備驅(qū)動(dòng)器532接收塊10時(shí),它訪問塊設(shè)備數(shù)據(jù)庫(kù)533 以引用在10中指定的塊設(shè)備名稱與PE ID(PE LUN的WWN)和SLLID之間的映射,該P(yáng)E ID和 SLLID定義通向與塊設(shè)備名稱相關(guān)聯(lián)的vvol的10連接路徑。在這里所示示例中,塊設(shè)備名稱 archive對(duì)應(yīng)于為應(yīng)用5121創(chuàng)建的塊設(shè)備實(shí)例vvol 12,并且塊設(shè)備名稱f 〇〇、dbase和log分 別對(duì)應(yīng)于為應(yīng)用5122-512N中的一個(gè)或者多個(gè)應(yīng)用創(chuàng)建的塊設(shè)備實(shí)例vvol 1、vvol 16和 VV〇117。在塊設(shè)備數(shù)據(jù)庫(kù)533中存儲(chǔ)的其它信息包括用于每個(gè)塊設(shè)備的活躍位值,該活躍位 值指示塊設(shè)備是否活躍,并且包括CIF(在飛行中的命令)值。活躍位"Γ表示可以向塊設(shè)備 發(fā)出10?;钴S位"0"表示塊設(shè)備不活躍并且不能向塊設(shè)備發(fā)出I0XIF值提供多少10在飛行 中、即,被發(fā)出、但是尚未完成的指示。在這里所示示例中,塊設(shè)備f〇〇活躍并且具有一些在 飛行中的命令。塊設(shè)備archive不活躍并且不會(huì)接受較新的命令。然而,它等待2個(gè)在飛行中 的命令完成。塊設(shè)備dbase不活躍而無未完成的命令。最后,塊設(shè)備log活躍,但是應(yīng)用當(dāng)前 沒有向設(shè)備的未決10。虛擬卷設(shè)備驅(qū)動(dòng)器532可以選擇在任何時(shí)間從它的數(shù)據(jù)庫(kù)533去除這 樣的設(shè)備。
[0063]除了執(zhí)行以上描述的映射之外,虛擬卷設(shè)備驅(qū)動(dòng)器532還向數(shù)據(jù)訪問層540發(fā)出原 始?jí)K級(jí)10。數(shù)據(jù)訪問層540包括設(shè)備訪問層534和用于HBA 504的設(shè)備驅(qū)動(dòng)器536,該設(shè)備訪 問層534將命令排隊(duì)和調(diào)度策略應(yīng)用于原始?jí)K級(jí)10,并且該設(shè)備驅(qū)動(dòng)器536在符合協(xié)議的格 式中格式化原始?jí)K級(jí)10并且向HBA 504發(fā)送它們用于經(jīng)由帶內(nèi)路徑向PE轉(zhuǎn)發(fā)。在其中使用 SCSI協(xié)議的實(shí)施例中,在如在SAM-5(SCSI架構(gòu)模型-5)中指定的SCSI LUN數(shù)據(jù)字段中編碼 vvol信息,該數(shù)據(jù)字段是8字節(jié)結(jié)構(gòu)。在前2個(gè)字節(jié)中編碼常規(guī)地用于LUN ID的PE ID,并且 利用剩余6個(gè)字節(jié)(的一部分)在SCSI第二級(jí)LUN ID中編碼vvol信息、具體為SLLID。
[0064]如圖5A中進(jìn)一步所示,數(shù)據(jù)訪問層540也包括用于處置通過帶內(nèi)路徑從存儲(chǔ)系統(tǒng) 接收的10錯(cuò)誤的錯(cuò)誤處置單元542。在一個(gè)實(shí)施例中,I/O管理器304通過PE傳播錯(cuò)誤處置單 元542接收的10錯(cuò)誤。10錯(cuò)誤類的示例包括在計(jì)算機(jī)系統(tǒng)101與PE之間的路徑錯(cuò)誤、PE錯(cuò)誤 和vvol錯(cuò)誤。錯(cuò)誤處置單元542將所有檢測(cè)到的錯(cuò)誤分類為前述類。在遇到通向PE的路徑錯(cuò) 誤并且通向PE的另一路徑存在時(shí),數(shù)據(jù)訪問層540沿著通向PE的不同路徑發(fā)送10。在10錯(cuò)誤 是PE錯(cuò)誤時(shí),錯(cuò)誤處置單元542更新塊設(shè)備數(shù)據(jù)庫(kù)533以指示用于通過PE發(fā)出10的每個(gè)塊設(shè) 備的錯(cuò)誤狀況。在10錯(cuò)誤是vvol錯(cuò)誤時(shí),錯(cuò)誤處置單元542更新塊設(shè)備數(shù)據(jù)庫(kù)533以指示用 于與vvol關(guān)聯(lián)的每個(gè)塊設(shè)備的錯(cuò)誤狀況。錯(cuò)誤處置單元542也可以發(fā)出報(bào)警或者系統(tǒng)事件, 從而將拒絕向具有錯(cuò)誤狀況的塊設(shè)備的進(jìn)一步10。
[0065]圖5B是圖5A的計(jì)算機(jī)系統(tǒng)的框圖,該計(jì)算機(jī)系統(tǒng)已經(jīng)被配置用于與圖2B的存儲(chǔ)系 統(tǒng)群集而不是圖2A的存儲(chǔ)系統(tǒng)群集對(duì)接。在這一實(shí)施例中,數(shù)據(jù)訪問層540包括NFS客戶端 545和用于NIC 503的設(shè)備驅(qū)動(dòng)器546 JFS客戶端545將塊設(shè)備名稱映射到PE ID(NAS存儲(chǔ)系 統(tǒng)的IP地址)和SLLID,該SLLID是與塊設(shè)備對(duì)應(yīng)的NFS文件句柄。如圖5B中所示在塊設(shè)備數(shù) 據(jù)庫(kù)533中存儲(chǔ)這一映射。應(yīng)當(dāng)注意,活躍和CIF列仍然存在、但是在圖5B中所示塊設(shè)備數(shù)據(jù) 庫(kù)533中未被圖示。如以下將描述的那樣,NFS文件句柄在NAS存儲(chǔ)系統(tǒng)內(nèi)唯一標(biāo)識(shí)文件對(duì)象 并且可以在綁定過程期間被生成。備選地,響應(yīng)于對(duì)于綁定vvol的請(qǐng)求,NAS存儲(chǔ)系統(tǒng)返回 PE ID和SLLID,并且使用普通帶內(nèi)機(jī)制(例如,查找或者readdirplus)的vvol的開放將給定 NFS文件句柄。NFS客戶端545也將從虛擬卷設(shè)備驅(qū)動(dòng)器532接收的原始?jí)K級(jí)10轉(zhuǎn)譯成基于 NFS文件的10。用于NIC 503的設(shè)備驅(qū)動(dòng)器546然后以符合協(xié)議的格式格式化基于NFS文件的 10并且將它們與NFS句柄一起發(fā)送到NIC 503用于經(jīng)由帶內(nèi)路徑向PE之一轉(zhuǎn)發(fā)。
[0066]圖5C是被配置用于實(shí)施虛擬卷的計(jì)算機(jī)系統(tǒng)的另一實(shí)施例的框圖。在這一實(shí)施例 中,向計(jì)算機(jī)系統(tǒng)102配置這里表示為管理程序560的虛擬化軟件。在硬件平臺(tái)550上面安裝 管理程序560,該硬件平臺(tái)包括CPU 551、存儲(chǔ)器552、NIC 553和HBA 554并且支持虛擬機(jī)執(zhí) 行空間570,可以在該虛擬機(jī)執(zhí)行空間570內(nèi)并行實(shí)例化和執(zhí)行多個(gè)虛擬機(jī)(VM)5711-571N。 在一個(gè)或者多個(gè)實(shí)施例中,使用加利福尼亞州帕羅奧圖市的VMware公司分發(fā)的VMware vSphere?產(chǎn)品來實(shí)施管理程序560和虛擬機(jī)571。每個(gè)虛擬機(jī)571實(shí)施虛擬硬件平臺(tái)573, 該虛擬硬件平臺(tái)573支持安裝能夠執(zhí)行應(yīng)用579的客戶操作系統(tǒng)(0S)572。客戶0S 572的示 例包括熟知的商用操作系統(tǒng)、比如Microsoft Windows、Linux等中的任何操作系統(tǒng)。在每個(gè) 實(shí)例中,客戶OS 572包括本機(jī)文件系統(tǒng)層(在圖5C中未示出)、例如NTFS或者ext3FS類型的 文件系統(tǒng)層。這些文件系統(tǒng)層與虛擬硬件平臺(tái)573對(duì)接以從客戶0S 572的觀點(diǎn)來看訪問數(shù) 據(jù)存儲(chǔ)裝置HBA,該數(shù)據(jù)存儲(chǔ)裝置HBA在現(xiàn)實(shí)中是虛擬硬件平臺(tái)573實(shí)施的虛擬HBA 574,該 虛擬HBA提供盤存儲(chǔ)支持的表現(xiàn)(在現(xiàn)實(shí)中為虛擬盤或者虛擬盤575A-575X)以實(shí)現(xiàn)執(zhí)行客 戶0S 572。在某些實(shí)施例中,虛擬盤575A-575X可以表現(xiàn)為從客戶0S 572的觀點(diǎn)來看支持用 于連接到虛擬機(jī)的SCSI標(biāo)準(zhǔn)或者本領(lǐng)域普通技術(shù)人員已知的包括IDE、ATA和ATAPI的任何 其它適當(dāng)硬件連接接口標(biāo)準(zhǔn)。雖然,從客戶0S 572的觀點(diǎn)來看,這樣的客戶0S 572發(fā)起的用 于實(shí)施與文件系統(tǒng)有關(guān)的數(shù)據(jù)傳送和控制操作的文件系統(tǒng)調(diào)用表現(xiàn)為向虛擬盤575A-575X 尋路由用于最終執(zhí)行,但是在現(xiàn)實(shí)中,通過虛擬HBA 574處理和傳遞這樣的調(diào)用至附屬的虛 擬機(jī)監(jiān)視器(VMM)5611-561N,這些虛擬機(jī)監(jiān)視器(VMM)實(shí)施為了與管理程序560協(xié)調(diào)操作而 需要的虛擬系統(tǒng)支持。具體而言,HBA仿真器562在功能上使數(shù)據(jù)傳送和控制操作能夠由管 理程序560正確處置,該管理程序560通過其各種層向連接到存儲(chǔ)系統(tǒng)130的HBA 554最終傳 遞這樣的操作。
[0067]根據(jù)這里描述的實(shí)施例,每個(gè)VM 571具有與之關(guān)聯(lián)的一個(gè)或者多個(gè)vvol并且向管 理程序560按照VM 571向管理程序560中的"創(chuàng)建設(shè)備"調(diào)用來創(chuàng)建的vvol的塊設(shè)備實(shí)例發(fā) 出10。在塊設(shè)備數(shù)據(jù)庫(kù)580中維護(hù)在塊設(shè)備名稱與vvol ID之間的關(guān)聯(lián)。來自VM 5712-571N 的10由SCSI虛擬化層563接收,該SCSI虛擬化層563將它們轉(zhuǎn)換成虛擬機(jī)文件系統(tǒng)(VMFS)驅(qū) 動(dòng)器564理解的文件10 JMFS驅(qū)動(dòng)器564然后將文件10轉(zhuǎn)換成塊10,并且向虛擬卷設(shè)備驅(qū)動(dòng) 器565提供塊10。在另一方面,來自VM 5711的10被示出用于繞過VMFS驅(qū)動(dòng)器564并且被直接 提供給虛擬卷設(shè)備驅(qū)動(dòng)器565,這表示VM 5711以在美國(guó)專利7,155,558中描述的方式直接 訪問其塊設(shè)備作為原始存儲(chǔ)設(shè)備、例如作為數(shù)據(jù)庫(kù)盤、日志盤、備份存檔和內(nèi)容貯存庫(kù)。 [0068]在虛擬卷設(shè)備驅(qū)動(dòng)器565接收塊10時(shí),它訪問塊設(shè)備數(shù)據(jù)庫(kù)580以引用在10中指定 的塊設(shè)備名稱與PE ID和SLLID之間的映射,該P(yáng)E ID和SLLID定義通向與塊設(shè)備名稱關(guān)聯(lián)的 vvol的10會(huì)話。在這里所示示例中,塊設(shè)備名稱dbase和log分別對(duì)應(yīng)于為VM 5711創(chuàng)建的塊 設(shè)備實(shí)例vvoll和vv〇14,并且塊設(shè)備名稱vmdk2、vmdkn和snapn分別對(duì)應(yīng)于為VM 5712-571N 中的一個(gè)或者多個(gè)VM創(chuàng)建的塊設(shè)備實(shí)例VV〇112、VV〇116和vvoll7。在塊設(shè)備數(shù)據(jù)庫(kù)580中存 儲(chǔ)的其它信息包括用于每個(gè)塊設(shè)備的活躍位值,該活躍位值指示塊設(shè)備是否活躍,并且包 括CIF(在飛行中的命令)值?;钴S位"Γ表示可以向塊設(shè)備發(fā)出10?;钴S位"0"表示塊設(shè)備不 活躍并且不能向塊設(shè)備發(fā)出I0XIF值提供多少10在飛行中、即,被發(fā)出、但是尚未完成的指 示。在這里所示示例中,塊設(shè)備f 〇〇活躍并且具有一些在飛行中的命令。
[0069]除了執(zhí)行以上描述的映射之外,虛擬卷設(shè)備驅(qū)動(dòng)器565還向數(shù)據(jù)訪問層566發(fā)出原 始?jí)K級(jí)10。數(shù)據(jù)訪問層566包括設(shè)備訪問層567和用于HBA 554的設(shè)備驅(qū)動(dòng)器568,該設(shè)備訪 問層將命令排隊(duì)和調(diào)度策略應(yīng)用于原始?jí)K級(jí)10,并且該設(shè)備驅(qū)動(dòng)器在符合協(xié)議的格式中格 式化原始?jí)K級(jí)10并且向HBA 554發(fā)送它們用于經(jīng)由帶內(nèi)路徑向PE轉(zhuǎn)發(fā)。在其中使用SCSI協(xié) 議的實(shí)施例中,在如在SAM-5(SCSI架構(gòu)模型-5)中指定的SCSI LUN數(shù)據(jù)字段中編碼vvol信 息,該數(shù)據(jù)字段是8字節(jié)結(jié)構(gòu)。在前2個(gè)字節(jié)中編碼常規(guī)地用于LUN ID的PE ID,并且利用剩 余6個(gè)字節(jié)(的一部分)在SCSI第二級(jí)LUN ID中編碼vvol信息、具體為SLLID。如圖5C中進(jìn)一 步所示,數(shù)據(jù)訪問層566也包括以與錯(cuò)誤處置單元542相同的方式工作的錯(cuò)誤處置單元569。 [0070]圖5D是圖5C的計(jì)算機(jī)系統(tǒng)的框圖,該計(jì)算機(jī)系統(tǒng)已經(jīng)被配置用于與圖2B的存儲(chǔ)系 統(tǒng)群集而不是圖2A的存儲(chǔ)系統(tǒng)群集對(duì)接。在這一實(shí)施例中,數(shù)據(jù)訪問層566包括NFS客戶端 585和用于NIC 553的設(shè)備驅(qū)動(dòng)器586AFS客戶端585將塊設(shè)備名稱映射到PE ID(IP地址)和 與塊設(shè)備對(duì)應(yīng)的SLLID(NFS文件句柄)。如圖?中所示在塊設(shè)備數(shù)據(jù)庫(kù)580中存儲(chǔ)這一映射。 應(yīng)當(dāng)注意,活躍和CIF列仍然存在、但是在圖f5D中所示塊設(shè)備數(shù)據(jù)庫(kù)580中未被圖示。如以下 將描述的那樣,NFS文件句柄在NAS內(nèi)唯一標(biāo)識(shí)文件對(duì)象并且在一個(gè)實(shí)施例中在綁定過程期 間被生成。NFS客戶端585也將從虛擬卷設(shè)備驅(qū)動(dòng)器565接收的原始?jí)K級(jí)10轉(zhuǎn)譯成基于NFS文 件的10。用于NIC 553的設(shè)備驅(qū)動(dòng)器586然后在符合協(xié)議的格式中格式化基于NFS文件的10 并且將它們與NFS句柄一起發(fā)送到NIC 553用于經(jīng)由帶內(nèi)路徑向PE之一轉(zhuǎn)發(fā)。
[0071] 應(yīng)當(dāng)認(rèn)識(shí),可以不同地引用用來描述圖5A至圖5D中的部件的各種術(shù)語、層和分類 而未脫離它們的功能或者本發(fā)明的精神實(shí)質(zhì)和范圍。例如VMM 561可以視為在VM 571與管 理程序560之間的分離虛擬化部件(在這樣的概念中可以本身視為虛擬化"內(nèi)核"部件),因 為存在有用于每個(gè)實(shí)例化的VM的分離VMM。備選地,每個(gè)VMM 561可以視為它的對(duì)應(yīng)虛擬機(jī) 的部件,因?yàn)檫@樣的VMM包括用于虛擬機(jī)的硬件仿真部件。在這樣的備選概念中,例如描述 為虛擬硬件平臺(tái)573的概念層可以與VMM 561合并和合并到VMM 561中,從而從圖5C和圖5D 去除虛擬主機(jī)總線適配器574(即,因?yàn)樗墓δ苡芍鳈C(jī)總線適配器仿真器562實(shí)現(xiàn))。
[0072] 圖6是圖示根據(jù)本發(fā)明的一個(gè)實(shí)施例的用來管理vvol的部件和通信路徑的計(jì)算機(jī) 環(huán)境的簡(jiǎn)化框圖。如先前描述的那樣,用于10協(xié)議流量的通信路徑稱為帶內(nèi)路徑并且在圖6 中表示為虛線601,該虛線連接計(jì)算機(jī)系統(tǒng)的數(shù)據(jù)訪問層540(通過在計(jì)算機(jī)系統(tǒng)中提供的 HBA或者NIC)與在存儲(chǔ)系統(tǒng)130中配置的一個(gè)或者多個(gè)PE。用來管理vvol的通信路徑是帶外 路徑(如先前定義的那樣,不是"在帶內(nèi)"的路徑)并且在圖6中表示為實(shí)線602。根據(jù)這里描 述的實(shí)施例,可以通過在管理服務(wù)器610中提供的插件612和/或在計(jì)算機(jī)系統(tǒng)103中的每個(gè) 計(jì)算機(jī)系統(tǒng)中提供的插件622管理vvol,在圖6中僅示出這些插件之一。在存儲(chǔ)設(shè)備側(cè)上,管 理接口 625由存儲(chǔ)系統(tǒng)管理器131配置,并且管理接口 626由存儲(chǔ)系統(tǒng)管理器132配置。此外, 管理接口 624由分布式存儲(chǔ)系統(tǒng)管理器135配置。每個(gè)管理接口與插件612、622通信。為了有 助于發(fā)出和處置管理命令,已經(jīng)開發(fā)特殊應(yīng)用編程接口(API)。應(yīng)當(dāng)認(rèn)識(shí),在一個(gè)實(shí)施例中, 定制兩個(gè)插件612、622以與來自特定存儲(chǔ)系統(tǒng)銷售商的存儲(chǔ)硬件通信。因此,管理服務(wù)器 610和計(jì)算機(jī)系統(tǒng)103將在與用于不同存儲(chǔ)系統(tǒng)銷售商的存儲(chǔ)硬件通信時(shí)運(yùn)用不同插件。在 另一實(shí)施例中,可以有與任何銷售商的管理接口交互的單個(gè)插件。這將需要將存儲(chǔ)系統(tǒng)管 理器編程為熟知接口(例如,借助由計(jì)算機(jī)系統(tǒng)和/或管理服務(wù)器發(fā)布)。
[0073]還向管理服務(wù)器610配置用于關(guān)聯(lián)計(jì)算機(jī)系統(tǒng)的系統(tǒng)管理器611。在一個(gè)實(shí)施例 中,計(jì)算機(jī)系統(tǒng)執(zhí)行虛擬機(jī),并且系統(tǒng)管理器611管理在計(jì)算機(jī)系統(tǒng)中運(yùn)行的虛擬機(jī)。管理 虛擬機(jī)的系統(tǒng)管理器611的一個(gè)示例是VMware公司分發(fā)的vSphere?產(chǎn)品。如圖所示,系 統(tǒng)管理器611與在計(jì)算機(jī)系統(tǒng)103中運(yùn)行的主機(jī)后臺(tái)程序(daemon) (hostd)621通信(通過在 管理服務(wù)器610和計(jì)算機(jī)系統(tǒng)103二者的適當(dāng)軟件界面)以從計(jì)算機(jī)系統(tǒng)103接收資源使用 報(bào)告并且對(duì)在計(jì)算機(jī)系統(tǒng)103中運(yùn)行的應(yīng)用發(fā)起各種管理操作。
[0074]圖7是用于使用認(rèn)證相關(guān)API向圖2A或者圖2B的存儲(chǔ)系統(tǒng)群集認(rèn)證計(jì)算機(jī)系統(tǒng)的 方法步驟的流程圖。在計(jì)算機(jī)系統(tǒng)通過向存儲(chǔ)系統(tǒng)發(fā)送它的安全套接字層(SSL)證書來請(qǐng) 求認(rèn)證時(shí)發(fā)起這些方法步驟。在步驟710,存儲(chǔ)系統(tǒng)向請(qǐng)求認(rèn)證的計(jì)算機(jī)系統(tǒng)發(fā)出用于認(rèn)證 證書的提示(例如,用戶名和口令)。在步驟712接收認(rèn)證證書時(shí),存儲(chǔ)系統(tǒng)在步驟714比較它 們與存儲(chǔ)的證書。如果提供正確證書,則存儲(chǔ)系統(tǒng)在關(guān)鍵字存儲(chǔ)庫(kù)(步驟716)中存儲(chǔ)認(rèn)證的 計(jì)算機(jī)系統(tǒng)的SSL證書。如果提供不正確證書,則存儲(chǔ)系統(tǒng)忽略SSL證書并且返回適當(dāng)錯(cuò)誤 消息(步驟718)。在被認(rèn)證之后,計(jì)算機(jī)系統(tǒng)可以調(diào)動(dòng)API以通過SSL鏈路向存儲(chǔ)系統(tǒng)發(fā)出管 理命令,并且在SSL證書中包括的唯一上下文ID由存儲(chǔ)系統(tǒng)用來實(shí)行某些策略、比如定義哪 些計(jì)算機(jī)系統(tǒng)可以訪問哪些存儲(chǔ)容器。在一些實(shí)施例中,在管理計(jì)算機(jī)系統(tǒng)批準(zhǔn)的權(quán)限時(shí) 使用它們的上下文ID。例如,主機(jī)計(jì)算機(jī)可以被允許創(chuàng)建vvol、但是不可以被允許刪除vvol 或者vvol的快照,或者主機(jī)計(jì)算機(jī)可以被允許創(chuàng)建vvol的快照、但是不可以被允許克隆 vvol。此外,權(quán)限可以根據(jù)登錄到認(rèn)證的計(jì)算機(jī)系統(tǒng)的用戶的用戶級(jí)特權(quán)變化。
[0075]圖8是用于使用創(chuàng)建虛擬卷API命令來創(chuàng)建虛擬卷的方法步驟的流程圖。在一個(gè)實(shí) 施例中,計(jì)算機(jī)系統(tǒng)103在計(jì)算機(jī)系統(tǒng)103在步驟802從它的應(yīng)用之一接收對(duì)于創(chuàng)建具有某 個(gè)大小和存儲(chǔ)能力簡(jiǎn)檔、比如最小I0PS和平均延時(shí)的vvol的請(qǐng)求時(shí)經(jīng)由帶外路徑602向存 儲(chǔ)系統(tǒng)發(fā)出創(chuàng)建虛擬卷API命令。作為響應(yīng),計(jì)算機(jī)系統(tǒng)103在步驟804(在計(jì)算機(jī)系統(tǒng)103和 請(qǐng)求應(yīng)用被允許訪問的并且具有充分自由容量以適應(yīng)請(qǐng)求的存儲(chǔ)容器之中)選擇存儲(chǔ)容器 并且經(jīng)由插件622向存儲(chǔ)系統(tǒng)發(fā)出創(chuàng)建虛擬卷API命令。API命令包括vvol的存儲(chǔ)容器ID、 vvo 1大小和存儲(chǔ)能力簡(jiǎn)檔。在另一實(shí)施例中,API命令包括應(yīng)用要求存儲(chǔ)系統(tǒng)與新創(chuàng)建的 vvol存儲(chǔ)的關(guān)鍵字-值對(duì)集合。在另一實(shí)施例中,管理服務(wù)器610經(jīng)由帶外路徑602向存儲(chǔ)系 統(tǒng)發(fā)出創(chuàng)建虛擬卷API命令(經(jīng)由插件612)。
[0076]在步驟806,存儲(chǔ)系統(tǒng)管理器經(jīng)由管理接口(管理接口624、625或者626)接收對(duì)于 生成vvol的請(qǐng)求并且訪問選擇的存儲(chǔ)容器的在容器數(shù)據(jù)庫(kù)316中的元數(shù)據(jù)分節(jié)以驗(yàn)證包括 計(jì)算機(jī)系統(tǒng)103和應(yīng)用的請(qǐng)求上下文具有充分權(quán)限以在選擇的存儲(chǔ)容器中創(chuàng)建vvol。在一 個(gè)實(shí)施例中,如果權(quán)限級(jí)別不充分,則向計(jì)算機(jī)系統(tǒng)103返回錯(cuò)誤消息。如果權(quán)限級(jí)別充分, 則在步驟810生成唯一vvol ID。然后在步驟812,存儲(chǔ)系統(tǒng)管理器掃描容器數(shù)據(jù)庫(kù)316的元 數(shù)據(jù)分節(jié)中的分配位圖以確定選擇的存儲(chǔ)容器的自由分區(qū)。存儲(chǔ)系統(tǒng)管理器分配選擇的存 儲(chǔ)容器的足以適應(yīng)請(qǐng)求的vvol大小的自由分區(qū)并且更新存儲(chǔ)容器的在容器數(shù)據(jù)庫(kù)316的元 數(shù)據(jù)分節(jié)中的分配位圖。存儲(chǔ)系統(tǒng)管理器也用新vvol條目更新vvol數(shù)據(jù)庫(kù)314。新vvol條目 包括在步驟810生成的vvol條目、新分配的存儲(chǔ)容器盤區(qū)有序列表和新vvol的表達(dá)為關(guān)鍵 字-值對(duì)的元數(shù)據(jù)。然后,在步驟814,存儲(chǔ)系統(tǒng)管理器向計(jì)算機(jī)系統(tǒng)103發(fā)送vvol ID。在步 驟816計(jì)算機(jī)系統(tǒng)103關(guān)聯(lián)vvol ID與請(qǐng)求創(chuàng)建vvol的應(yīng)用。在一個(gè)實(shí)施例中,為每個(gè)應(yīng)用維 護(hù)一個(gè)或者多個(gè)vvol描述符文件,并且向?yàn)檎?qǐng)求創(chuàng)建vvol的應(yīng)用維護(hù)的vvol描述符文件中 寫入vvol ID〇
[0077] 如圖2A和圖2B中所示,并非所有vvol連接到PE。未連接到PE的vvol未知對(duì)應(yīng)應(yīng)用 發(fā)出的10,因?yàn)槲聪騰vol建立10會(huì)話。在可以向發(fā)出10之前,vvol經(jīng)歷綁定過程,作為該綁 定過程的結(jié)果,vvol將被綁定到特定PE。一旦vvol綁定到PE,可以向vvol發(fā)出10直至從PE解 綁vvol〇
[0078] 在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)130使用綁定虛擬卷API經(jīng)由帶外路徑602向存儲(chǔ)系 統(tǒng)發(fā)出綁定請(qǐng)求。綁定請(qǐng)求標(biāo)識(shí)待綁定的vvol(使用vvol ID),并且作為響應(yīng),存儲(chǔ)系統(tǒng)將 vvo 1綁定到計(jì)算機(jī)系統(tǒng)103經(jīng)由帶內(nèi)路徑連接到的PE。圖9A是用于計(jì)算機(jī)系統(tǒng)經(jīng)由帶內(nèi)路 徑發(fā)現(xiàn)它連接到的PE的方法步驟的流程圖。使用標(biāo)準(zhǔn)SCSI命令REP0RT_LUNS經(jīng)由帶內(nèi)路徑 發(fā)現(xiàn)在基于SCSI協(xié)議的存儲(chǔ)設(shè)備中配置的PE。使用API經(jīng)由帶外路徑發(fā)現(xiàn)在基于NFS協(xié)議的 存儲(chǔ)設(shè)備中配置的PE。計(jì)算機(jī)系統(tǒng)為每個(gè)連接的存儲(chǔ)系統(tǒng)執(zhí)行圖9A的方法步驟。
[0079]在步驟910,計(jì)算機(jī)系統(tǒng)確定連接的存儲(chǔ)系統(tǒng)是否基于SCSI協(xié)議或者基于NFS協(xié) 議。如果存儲(chǔ)系統(tǒng)基于SCSI協(xié)議,則計(jì)算機(jī)系統(tǒng)向存儲(chǔ)系統(tǒng)帶內(nèi)發(fā)出SCSI命令REP0RT_LUNS (步驟912)。然后在步驟913,計(jì)算機(jī)系統(tǒng)檢查來自存儲(chǔ)系統(tǒng)的響應(yīng)、具體為與返回的PE ID 中的每個(gè)PE ID關(guān)聯(lián)的PE位以在與PE有關(guān)的LUN與常規(guī)數(shù)據(jù)LUN之間區(qū)分。如果存儲(chǔ)系統(tǒng)基 于NFS協(xié)議,則計(jì)算機(jī)系統(tǒng)從插件622向管理接口(例如,管理接口 624、625或者626)帶外發(fā) 出API調(diào)用以獲得可用PE的ID(步驟914)。在跟隨步驟913和914的步驟916,計(jì)算機(jī)系統(tǒng)存儲(chǔ) 由存儲(chǔ)系統(tǒng)返回的與PE有關(guān)的LUN的PE ID或者管理接口返回的PE ID用于在綁定過程期間 使用。應(yīng)當(dāng)認(rèn)識(shí),基于SCSI協(xié)議的存儲(chǔ)設(shè)備返回的PE ID各自包括WWN,并且基于NFS協(xié)議的 存儲(chǔ)設(shè)備返回的PE ID各自包括IP地址和裝配點(diǎn)。
[0080] 圖9B是用于存儲(chǔ)系統(tǒng)管理器131或者存儲(chǔ)系統(tǒng)管理器132或者分布式存儲(chǔ)系統(tǒng)管 理器135(下文稱為"存儲(chǔ)系統(tǒng)管理器")發(fā)現(xiàn)給定的計(jì)算機(jī)系統(tǒng)103經(jīng)由帶內(nèi)路徑連接到的 PE的方法步驟的流程圖。存儲(chǔ)系統(tǒng)管理器發(fā)現(xiàn)這樣的PE使存儲(chǔ)系統(tǒng)能夠響應(yīng)于來自請(qǐng)求計(jì) 算機(jī)系統(tǒng)的綁定請(qǐng)求向計(jì)算機(jī)系統(tǒng)返回計(jì)算機(jī)系統(tǒng)可以被實(shí)際連接到其上的有效PE ID。 在步驟950,存儲(chǔ)系統(tǒng)管理器經(jīng)由管理接口和插件622向計(jì)算機(jī)系統(tǒng)103發(fā)出帶外 "Discovery_Topology (發(fā)現(xiàn)_拓?fù)?"API調(diào)用。計(jì)算機(jī)系統(tǒng)103返回它的系統(tǒng)ID和它經(jīng)由圖 9A的流程圖發(fā)現(xiàn)的所有PE ID的列表。在一個(gè)實(shí)施例中,存儲(chǔ)系統(tǒng)管理器通過經(jīng)由管理接口 和插件612向管理服務(wù)器610發(fā)出"Discovery_Topology"API調(diào)用來執(zhí)行步驟950。在這樣的 實(shí)施例中,存儲(chǔ)系統(tǒng)將接收響應(yīng),該響應(yīng)包含多個(gè)計(jì)算機(jī)系統(tǒng)ID和關(guān)聯(lián)PE ID,一個(gè)計(jì)算機(jī) 系統(tǒng)ID和關(guān)聯(lián)PE ID用于關(guān)聯(lián)服務(wù)器610管理的每個(gè)相應(yīng)計(jì)算機(jī)系統(tǒng)103。然后,在步驟952, 存儲(chǔ)系統(tǒng)管理器處理來自步驟950的結(jié)果。例如存儲(chǔ)系統(tǒng)管理器清除未在它的當(dāng)前控制之 下的所有PE ID的列表。例如,存儲(chǔ)系統(tǒng)管理器135在發(fā)出DiSC〇Very_T〇p〇l 〇gy調(diào)用時(shí)接收 的某些PE ID可以對(duì)應(yīng)于連接到相同計(jì)算機(jī)系統(tǒng)的另一存儲(chǔ)系統(tǒng)。相似地,某些接收的PE ID可以對(duì)應(yīng)于自從被存儲(chǔ)系統(tǒng)管理員刪除起的更老的PE,等等。在步驟954,存儲(chǔ)系統(tǒng)管理 器高速緩存處理的結(jié)果用于在后續(xù)綁定過程期間使用。在一個(gè)實(shí)施例中,存儲(chǔ)系統(tǒng)管理器 周期性地運(yùn)行圖9B的步驟以用進(jìn)行中的計(jì)算機(jī)系統(tǒng)和網(wǎng)絡(luò)拓?fù)涓淖兏滤母咚倬彺娴?結(jié)果。在另一實(shí)施例中,存儲(chǔ)系統(tǒng)管理器每當(dāng)它接收新vvol創(chuàng)建請(qǐng)求時(shí)運(yùn)行圖9B的步驟。在 更多另一實(shí)施例中,存儲(chǔ)系統(tǒng)管理器在運(yùn)行圖7的認(rèn)證步驟之后運(yùn)行圖9B的步驟。
[0081] 圖10是用于使用綁定虛擬卷API來發(fā)出和執(zhí)行虛擬卷綁定請(qǐng)求的方法步驟的流程 圖。在一個(gè)實(shí)施例中,計(jì)算機(jī)系統(tǒng)103在它的應(yīng)用之一請(qǐng)求10訪問與尚未綁定到PE的vvol關(guān) 聯(lián)的塊設(shè)備時(shí)經(jīng)由帶外路徑602向存儲(chǔ)系統(tǒng)發(fā)出綁定請(qǐng)求。在另一實(shí)施例中,管理服務(wù)器 610結(jié)合某些VM管理操作發(fā)出綁定請(qǐng)求,這些VM管理操作包括VM通電和從一個(gè)存儲(chǔ)容器向 另一存儲(chǔ)容器的vvol迀移。
[0082]繼續(xù)以上描述的示例,在該示例中,應(yīng)用請(qǐng)求10訪問與尚未綁定到PE的vvol關(guān)聯(lián) 的塊設(shè)備,計(jì)算機(jī)系統(tǒng)103在步驟1002從塊設(shè)備數(shù)據(jù)庫(kù)533(或者580)確定vvol的vvol ID。 然后在步驟1004,計(jì)算機(jī)系統(tǒng)1003通過帶外路徑602向計(jì)算機(jī)系統(tǒng)發(fā)出對(duì)于綁定vvol的請(qǐng) 求。
[0083]存儲(chǔ)系統(tǒng)管理器接收在步驟1006經(jīng)由管理接口(例如,管理接口624、625或者626) 接收對(duì)于綁定vvol的請(qǐng)求、然后執(zhí)行步驟1008,該步驟包括選擇vvol將被綁定到的PE、生成 用于選擇的PE的SLLID和生成數(shù)并且更新連接數(shù)據(jù)庫(kù)312(例如,經(jīng)由10管理器304)。根據(jù)連 通進(jìn)行選擇vvol將被綁定到的ΡΕ、即僅具有與計(jì)算機(jī)系統(tǒng)103的現(xiàn)有帶內(nèi)連接的ΡΕ可用于 選擇。在一個(gè)實(shí)施例中,存儲(chǔ)系統(tǒng)根據(jù)圖9B的方法從計(jì)算機(jī)系統(tǒng)103向它發(fā)送的處理和高速 緩存的PE列表選擇。SLLID生成在運(yùn)用圖2A的存儲(chǔ)系統(tǒng)群集的實(shí)施例與運(yùn)用圖2B的存儲(chǔ)系 統(tǒng)群集的實(shí)施例之間的不同。在前一情況下,生成對(duì)于選擇的PE唯一的SLLID。在后一情況 下,生成通向與vvol對(duì)應(yīng)的文件對(duì)象的文件路徑作為SLLID。在已經(jīng)對(duì)于選擇的TO生成 SLLID和生成數(shù)之后,更新連接數(shù)據(jù)庫(kù)312以包括與vvol的新生成的10會(huì)話。然后,在步驟 1010,向計(jì)算機(jī)系統(tǒng)103返回選擇的PE的ID、生成的SLLID和生成數(shù)。可選地,在運(yùn)用圖2B的 存儲(chǔ)系統(tǒng)群集的實(shí)施例中,可以對(duì)于與vvol對(duì)應(yīng)的文件對(duì)象生成并且與選擇的PE的ID、生 成的SLLID和生成數(shù)一起向計(jì)算機(jī)系統(tǒng)103返回唯一 NFS文件句柄。在步驟1012,計(jì)算機(jī)系統(tǒng) 103更新塊設(shè)備數(shù)據(jù)庫(kù)533(或者580)以包括從存儲(chǔ)系統(tǒng)返回的PE ID、SLLID(以及可選地返 回的NFS句柄)和生成數(shù)。具體而言,可以向塊設(shè)備數(shù)據(jù)庫(kù)533(或者580)添加從存儲(chǔ)系統(tǒng)返 回的PE ID、SLLID(以及可選地返回的NFS句柄)和生成數(shù)的每個(gè)集合作為新條目。應(yīng)當(dāng)認(rèn) 識(shí),生成數(shù)用來防范重放共計(jì)。因此,在其中未考慮重放共計(jì)的實(shí)施例中,未使用生成數(shù)。
[0084]在希望向相同vvol發(fā)出10的不同應(yīng)用發(fā)起的向相同vvol的后續(xù)綁定請(qǐng)求時(shí),存儲(chǔ) 系統(tǒng)管理器可以將vvol綁定到相同或者不同PE。如果將vvol綁定到相同PE,則存儲(chǔ)系統(tǒng)管 理器返回相同PE的ID和先前生成的SLLID并且遞增在連接數(shù)據(jù)庫(kù)312中存儲(chǔ)的這一 10連接 路徑的參考計(jì)數(shù)。在另一方面,如果將vvol綁定到不同PE,則存儲(chǔ)系統(tǒng)管理器生成新SLLID 并且返回不同PE的ID和新生成的SLLID并且向連接數(shù)據(jù)庫(kù)312添加與vvol的這一新10連接 路徑作為新條目。
[0085] 可以使用解綁虛擬卷API來發(fā)出虛擬卷解綁請(qǐng)求。解綁請(qǐng)求包括如下10連接路徑 的PE ID和SLLID,先前已經(jīng)通過該10連接路徑綁定vvol。然而建議處理解綁請(qǐng)求。存儲(chǔ)系統(tǒng) 管理器自由立即或者在延遲之后從PE解綁vvol。通過更新連接數(shù)據(jù)庫(kù)312以遞減包含PE ID 和SLLID的條目的參考計(jì)數(shù)來處理解綁請(qǐng)求。如果將參考計(jì)數(shù)遞減至零,則可以刪除條目。 在這一情況下應(yīng)當(dāng)注意,vvol繼續(xù)存在、但是不再可用于使用給定的PE ID和SLLID的10。 [0086]在實(shí)施VM的虛擬盤的vvol的情況下,用于這一vvol的參考計(jì)數(shù)將至少為一。在使 VM斷電并且與之結(jié)合發(fā)出解綁請(qǐng)求時(shí),參考計(jì)數(shù)將被遞減一。如果參考計(jì)數(shù)為零,則可以從 連接數(shù)據(jù)庫(kù)312去除vvol條目。一般而言,從連接數(shù)據(jù)庫(kù)312去除條目是有益的,因?yàn)?/0管 理器304管理更少數(shù)據(jù)并且也可以回收SLLID。這樣的益處在存儲(chǔ)系統(tǒng)存儲(chǔ)的vvol總數(shù)大 (例如vvol數(shù)以百萬計(jì)級(jí))、但是應(yīng)用活躍地訪問的vvol總數(shù)小(例如VM數(shù)以萬計(jì))時(shí)變得顯 著。此外,在vvol未被綁定到任何PE時(shí),存儲(chǔ)系統(tǒng)在選擇在DSU 141中何處存儲(chǔ)vvol時(shí)具有 更大靈活性。例如可以用不對(duì)稱、分級(jí)DSU 141實(shí)施存儲(chǔ)系統(tǒng),其中一些DSU 141提供更快數(shù) 據(jù)訪問并且其它DSU 141提供更慢數(shù)據(jù)訪問(例如以節(jié)省存儲(chǔ)成本)。在一個(gè)實(shí)現(xiàn)方式中,在 vvol未被綁定到任何PE(這可以通過檢查vvol的在連接數(shù)據(jù)庫(kù)312中的條目參考計(jì)數(shù)來確 定)時(shí),存儲(chǔ)系統(tǒng)可以向更慢和/或更廉價(jià)類型的物理存儲(chǔ)裝置迀移vvol。然后,一旦將vvol 綁定到PE,存儲(chǔ)系統(tǒng)可以向更快類型的物理存儲(chǔ)裝置迀移vvol。應(yīng)當(dāng)認(rèn)識(shí),可以通過改變 vvol數(shù)據(jù)庫(kù)314中的組成給定的vvol的容器位置有序列表的一個(gè)或者多個(gè)元素并且更新容 器數(shù)據(jù)庫(kù)316的元數(shù)據(jù)分節(jié)中的對(duì)應(yīng)盤區(qū)分配位圖來實(shí)現(xiàn)這樣的迀移。
[0087]向PE綁定和解綁vvol使存儲(chǔ)系統(tǒng)管理器能夠確定vvol活性。存儲(chǔ)系統(tǒng)管理器可以 利用這一信息以對(duì)非10服務(wù)(消極)和10服務(wù)(活躍)VV〇l執(zhí)行存儲(chǔ)系統(tǒng)銷售商專屬優(yōu)化。例 如存儲(chǔ)系統(tǒng)管理器可以被配置用于如果vvol在消極狀態(tài)中保持超出特定閾值時(shí)間則將它 從低延時(shí)(高成本)SSD重新定位到中延時(shí)(低成本)硬驅(qū)動(dòng)。
[0088]圖11A和圖11B是根據(jù)一個(gè)實(shí)施例的用于向虛擬卷發(fā)出IP的方法步驟的流程圖。圖 11A是用于從應(yīng)用向原始?jí)K設(shè)備直接發(fā)出IP的方法步驟1100的流程圖,并且圖11B是用于從 應(yīng)用通過文件系統(tǒng)驅(qū)動(dòng)器發(fā)出IP的方法步驟1120的流程圖。
[0089] 方法1100在步驟1102開始,其中應(yīng)用、比如圖5A至圖5B中所示應(yīng)用512或者圖5C至 圖中所示VM 571向原始?jí)K設(shè)備發(fā)出10。在步驟1104,虛擬卷設(shè)備驅(qū)動(dòng)器532或者565根據(jù) 應(yīng)用發(fā)出的10生成原始?jí)K級(jí)10。在步驟1106,原始?jí)K設(shè)備的名稱由虛擬卷設(shè)備驅(qū)動(dòng)器532或 者565轉(zhuǎn)譯成PE ID和SLLID(并且在運(yùn)用圖2B的存儲(chǔ)設(shè)備的實(shí)施例中也由NFS客戶端545或 者585轉(zhuǎn)譯成NFS句柄)。在步驟1108,數(shù)據(jù)訪問層540或者566執(zhí)行將PE ID和SLLID(并且在 運(yùn)用圖2B的存儲(chǔ)設(shè)備的實(shí)施例中也將NFS句柄)編碼成原始?jí)K級(jí)10。然后,在步驟1110,HBA/ NIC發(fā)出原始?jí)K級(jí)10。
[0090] 對(duì)于非VM應(yīng)用、比如圖5A至圖5B中所示應(yīng)用512,方法1120在步驟1121開始。在步 驟1121,應(yīng)用向在基于vvol的塊設(shè)備上存儲(chǔ)的文件發(fā)出10。然后在步驟1122,文件系統(tǒng)驅(qū)動(dòng) 器、例如文件系統(tǒng)驅(qū)動(dòng)器510根據(jù)文件10生成塊級(jí)10。在步驟1122,執(zhí)行與步驟1106、1108和 1110相同的步驟1126、1128和1130。
[0091] 對(duì)于VM應(yīng)用、比如圖5C至圖5D中所示VM 571,方法1120在步驟1123開始。在步驟 1123,VM向它的虛擬盤發(fā)出10。然后,在步驟1124,這一 10例如由SCSI虛擬化層563轉(zhuǎn)譯成文 件10。文件系統(tǒng)驅(qū)動(dòng)器、例如VMFS驅(qū)動(dòng)器564然后在步驟1125根據(jù)文件10生成塊級(jí)10。在步 驟1125之后,執(zhí)行與步驟1106、1108和1110相同的步驟1126、1128和1130。
[0092] 圖12是根據(jù)一個(gè)實(shí)施例的用于在存儲(chǔ)系統(tǒng)執(zhí)行10的方法步驟的流程圖。在步驟 1210,通過在存儲(chǔ)系統(tǒng)中配置的PE之一接收計(jì)算機(jī)系統(tǒng)發(fā)出的10。10管理器304在步驟1212 解析10。在步驟1212之后,如果存儲(chǔ)系統(tǒng)群集是圖2A中所示類型,則10管理器304執(zhí)行步驟 1214a,并且如果存儲(chǔ)系統(tǒng)群集是圖2B中所示類型,則10管理器304執(zhí)行步驟1214b。在步驟 1214a,10管理器304從解析的10提取SLLID并且訪問連接數(shù)據(jù)庫(kù)312以確定與PE ID和提取 的SLLID對(duì)應(yīng)的vvol ID。在步驟1214b,10管理器304從解析的10提取NFS并且使用PE ID和 NFS句柄作為SLLID來標(biāo)識(shí)vvol。在步驟1214a和1214b之后執(zhí)行步驟1216。在步驟1216,卷管 理器306和容器管理器308分別訪問vvol數(shù)據(jù)庫(kù)314和容器數(shù)據(jù)庫(kù)316以獲得將對(duì)其執(zhí)行10 的物理存儲(chǔ)位置。然后在步驟1218,數(shù)據(jù)訪問層310對(duì)在步驟1216獲得的物理存儲(chǔ)位置執(zhí)行 10。
[0093] 在一些情形中,應(yīng)用(應(yīng)用512或者VM 571)、管理服務(wù)器610和/或存儲(chǔ)系統(tǒng)管理器 可以確定vvol到特定PE的綁定比如在PE由于太多綁定而變成超負(fù)荷時(shí)經(jīng)歷問題。作為一種 解決這樣的問題的方式,即使在10命令被引向vvol之時(shí),存儲(chǔ)系統(tǒng)管理器仍然可以將綁定 的vvol重新綁定到不同PE。圖13是根據(jù)一個(gè)實(shí)施例的用于使用重新綁定API來發(fā)出和執(zhí)行 vvo 1重新綁定請(qǐng)求的方法步驟1300的流程圖。
[0094]如圖所示,方法1300在步驟1302開始,其中存儲(chǔ)系統(tǒng)管理器確定應(yīng)當(dāng)將vvol綁定 到與vvol當(dāng)前被綁定到的第一 PE不同的第二PE。在步驟1304,存儲(chǔ)系統(tǒng)管理器經(jīng)由帶外請(qǐng) 求向計(jì)算機(jī)系統(tǒng)(例如計(jì)算機(jī)系統(tǒng)103)發(fā)出對(duì)于重新綁定vvo 1的請(qǐng)求,該計(jì)算機(jī)系統(tǒng)運(yùn)行 向vvol發(fā)出10的應(yīng)用。在步驟1306,計(jì)算機(jī)系統(tǒng)103從存儲(chǔ)系統(tǒng)管理器接收重新綁定請(qǐng)求并 且作為響應(yīng)發(fā)出對(duì)于將νν〇1綁定到新ΡΕ的請(qǐng)求。在步驟1308,存儲(chǔ)系統(tǒng)管理器接收重新綁 定請(qǐng)求并且作為響應(yīng)將vvol綁定到新ΡΕ。在步驟1310,存儲(chǔ)系統(tǒng)管理器如以上結(jié)合圖10描 述的那樣向計(jì)算機(jī)系統(tǒng)發(fā)送vvol現(xiàn)在也被綁定到的新PE的ID和用于訪問vvol的SLLID。 [0095]在步驟1312,計(jì)算機(jī)系統(tǒng)從存儲(chǔ)系統(tǒng)管理器接收新PE ID和SLLID。在塊設(shè)備數(shù)據(jù) 庫(kù)533或者580中,初始地將新PE連接的活躍位設(shè)置成1,這意味著已經(jīng)建立經(jīng)由新PE的用于 vvol的新10會(huì)話。計(jì)算機(jī)系統(tǒng)也將第一 PE連接的活躍位設(shè)置成0,這表示不能通過這一 PE連 接向vvol發(fā)出更多10。應(yīng)當(dāng)認(rèn)識(shí),不應(yīng)在去激活時(shí)立即解綁這一 PE連接,因?yàn)榭赡苡型ㄟ^這 一PE連接的向vvol的10,這些10可能在非限制、即被發(fā)出、但是未完成。因此,在步驟1314, 計(jì)算機(jī)系統(tǒng)訪問塊設(shè)備數(shù)據(jù)庫(kù)533或者580以查看是否已經(jīng)完成通過第一 PE連接向vvol發(fā) 出的所有"在飛行中的命令"(CIF)、即是否CIF = 0。計(jì)算機(jī)系統(tǒng)在執(zhí)行步驟1318之前等待 CIF變成零。同時(shí),通過新PE發(fā)出向vvol的附加10,因?yàn)橐呀?jīng)將新PE連接的活躍位設(shè)置成1。 在CIF達(dá)到零時(shí),執(zhí)行步驟1318,其中向存儲(chǔ)系統(tǒng)管理器發(fā)出對(duì)于解綁第一PE連接的請(qǐng)求。 然后在步驟1320,存儲(chǔ)系統(tǒng)管理器從第一 PE解綁vvol。計(jì)算機(jī)系統(tǒng)也在步驟1324通過新PE 向vvol發(fā)出所有附加10。
[0096]圖14是根據(jù)一個(gè)實(shí)施例的虛擬卷的生命周期的概念圖。圖14中所示所有命令、即 創(chuàng)建、快照、克隆、綁定、解綁、擴(kuò)展和刪除形成vvol命令集并且通過以上結(jié)合圖6描述的插 件612、622可訪問。如圖所示,在作為以下命令--創(chuàng)建vvol、快照vvol或者克隆vvol-- 中的任何命令的結(jié)果生成vvo 1時(shí),生成的vvo 1在"消極"狀態(tài)中保持,其中vvo 1未被綁定到 特定PE、因此不能接收10。此外,在vvo 1在消極狀態(tài)中時(shí)執(zhí)行以下命令---決照vvo 1、克隆 vvo 1或者擴(kuò)展vvo 1--中的任何命令時(shí),原有vvo 1和新創(chuàng)建的vvo 1 (如果有)在消極狀態(tài)中 保持。也如圖所示,當(dāng)在消極狀態(tài)中的vvol被綁定到PE時(shí),vvol進(jìn)入"活躍"狀態(tài)。反言之,在 從PE解綁活躍vvol時(shí),vvol進(jìn)入消極狀態(tài),這假設(shè)vvol未被綁定到任何附加 PE。當(dāng)vvol在活 躍狀態(tài)中時(shí)執(zhí)行以下命令---決照v v〇 1、克隆vvo 1、擴(kuò)展v v〇 1或者重新綁定v v〇 1--中的 任何命令時(shí),原有vvol在活躍狀態(tài)中保持,并且新創(chuàng)建的vvol(如果有)在消極狀態(tài)中保持。 [0097] 如以上描述的那樣,VM可以具有多個(gè)虛擬盤,并且為每個(gè)虛擬盤創(chuàng)建分離vvol JM 也具有描述VM的配置的元數(shù)據(jù)文件。元數(shù)據(jù)文件包括VM配置文件、VM日志文件、盤描述符文 件、VM交換文件等,每個(gè)盤描述符文件用于VM的虛擬盤中的每個(gè)相應(yīng)虛擬盤。用于虛擬盤的 盤描述符文件包含涉及虛擬盤的信息、比如它的vvol ID、它的大小、是否瘦調(diào)配虛擬盤和 為虛擬盤創(chuàng)建的一個(gè)或者多個(gè)快照的標(biāo)識(shí)等。VM交換文件提供存儲(chǔ)系統(tǒng)上的VM的交換空 間。在一個(gè)實(shí)施例中,在vvol中存儲(chǔ)這些VM配置文件,并且這一vvol這里稱為元數(shù)據(jù)vvol。 [0098]圖15是根據(jù)一個(gè)實(shí)施例的用于調(diào)配VM的方法步驟的流程圖。在這一實(shí)施例中,使 用管理服務(wù)器610、主控VM的計(jì)算機(jī)系統(tǒng)、例如圖5C中所示計(jì)算機(jī)102(下文稱為"主機(jī)計(jì)算 機(jī)")和圖2A的存儲(chǔ)系統(tǒng)群集、具體為存儲(chǔ)系統(tǒng)管理器131、132或者135。如圖所示,存儲(chǔ)系統(tǒng) 管理器在步驟1502接收對(duì)于調(diào)配VM的請(qǐng)求。這可以是在使用與管理服務(wù)器610的適當(dāng)用戶 接口的VM管理員向管理服務(wù)器610發(fā)出用于調(diào)配具有某個(gè)大小和存儲(chǔ)能力簡(jiǎn)檔的VM的命令 時(shí)生成的請(qǐng)求。響應(yīng)于該命令,在步驟1504,管理服務(wù)器610發(fā)起用于用以上結(jié)合圖8描述的 方式創(chuàng)建用于包含VM的元數(shù)據(jù)的vvol (下文稱為"元數(shù)據(jù)vvol")的方法,存儲(chǔ)系統(tǒng)管理器在 步驟1508按照該方法創(chuàng)建元數(shù)據(jù)vvol并且向管理服務(wù)器610返回元數(shù)據(jù)vvol的vvol ID。在 步驟1514,管理服務(wù)器610向主控VM的計(jì)算機(jī)系統(tǒng)注冊(cè)回元數(shù)據(jù)vvol的vvol ID。在步驟 1516,主機(jī)計(jì)算機(jī)發(fā)起用于用以上結(jié)合圖10描述的方式將元數(shù)據(jù)vvol綁定到PE的方法,存 儲(chǔ)系統(tǒng)管理器在步驟1518按照該方法將元數(shù)據(jù)vvol綁定到PE并且向主機(jī)計(jì)算機(jī)返回PE ID 和SLLID。
[0099] 在步驟1522,主機(jī)計(jì)算機(jī)使用向主機(jī)計(jì)算機(jī)的操作系統(tǒng)中的"創(chuàng)建設(shè)備"調(diào)用來創(chuàng) 建元數(shù)據(jù)vvol的塊設(shè)備實(shí)例。然后在步驟1524,主機(jī)計(jì)算機(jī)在塊設(shè)備上創(chuàng)建文件系統(tǒng)(例如 VMFS),響應(yīng)于這一點(diǎn)返回文件系統(tǒng)ID(FSID)。主機(jī)計(jì)算機(jī)在步驟1526裝配具有返回的FSID 的文件系統(tǒng)并且向與這一文件系統(tǒng)關(guān)聯(lián)的命名空間中存儲(chǔ)VM的元數(shù)據(jù)。元數(shù)據(jù)的示例包括 VM日志文件、盤描述符文件和VM交換文件,每個(gè)盤描述符文件用于VM的虛擬盤中的每個(gè)相 應(yīng)虛擬盤。
[0100] 在步驟1528,主機(jī)計(jì)算機(jī)發(fā)起用于用以上結(jié)合圖8描述的方式為VM的虛擬盤中的 每個(gè)虛擬盤創(chuàng)建vvol (每個(gè)這樣的vvol這里稱為"數(shù)據(jù)vvol")的方法,存儲(chǔ)系統(tǒng)管理器在步 驟1530按照該方法創(chuàng)建數(shù)據(jù)vvol并且向主機(jī)計(jì)算機(jī)返回?cái)?shù)據(jù)vvol的vvol ID。在步驟1532, 主機(jī)計(jì)算機(jī)在用于虛擬盤的盤描述符文件中存儲(chǔ)數(shù)據(jù)vvol的ID。該方法以在已經(jīng)為VM的所 有虛擬盤創(chuàng)建數(shù)據(jù)vvol之后解綁元數(shù)據(jù)vvol (未示出)作為結(jié)束。
[0101]圖16A是用于在已經(jīng)以結(jié)合圖15描述的方式調(diào)配Vm之后使VM通電的方法步驟的流 程圖。圖16B是在已經(jīng)使VM通電之后使VM斷電的方法步驟的流程圖。這兩種方法由用于VM的 主機(jī)計(jì)算機(jī)執(zhí)行。
[0102] 在步驟1608接收VM通電命令時(shí),在步驟1610獲取與VM對(duì)應(yīng)的元數(shù)據(jù)vvol。然后在 步驟1612,元數(shù)據(jù)vvol經(jīng)歷如以上結(jié)合圖10描述的綁定過程。在步驟1614在元數(shù)據(jù)vvol上 裝配文件系統(tǒng),從而可以在步驟1616讀取用于數(shù)據(jù)vvol的元數(shù)據(jù)文件、具體為盤描述符文 件并且獲得數(shù)據(jù)vvol ID。數(shù)據(jù)vvol然后在步驟1618逐個(gè)經(jīng)歷如以上結(jié)合圖10描述的綁定 過程。
[0103] 在步驟1620接收VM斷電命令時(shí),在塊設(shè)備數(shù)據(jù)庫(kù)(例如,圖5C的塊設(shè)備數(shù)據(jù)庫(kù)580) 標(biāo)記VM的數(shù)據(jù)vvol為不活躍,并且主機(jī)計(jì)算機(jī)等待與數(shù)據(jù)vvol中的每個(gè)vvol關(guān)聯(lián)的CIF達(dá) 到零(步驟1622)。在與每個(gè)數(shù)據(jù)vvol關(guān)聯(lián)的CIF達(dá)到零時(shí),主機(jī)計(jì)算機(jī)在步驟1624請(qǐng)求存儲(chǔ) 系統(tǒng)解綁該數(shù)據(jù)vvol。在與所有數(shù)據(jù)vvol關(guān)聯(lián)的CIF達(dá)到零之后,在步驟1626在塊設(shè)備數(shù)據(jù) 庫(kù)中標(biāo)記元數(shù)據(jù)為不活躍。然后在步驟1628,在與元數(shù)據(jù)vvol關(guān)聯(lián)的CIF達(dá)到零時(shí),主機(jī)計(jì) 算機(jī)在步驟1630請(qǐng)求解綁元數(shù)據(jù)vvol。
[0104]圖17和圖18是用于重新調(diào)配VM的方法步驟的流程圖。在這里所不不例中,圖17是 用于擴(kuò)展VM的vvol、具體為用于VM的虛擬盤的數(shù)據(jù)vvol的大小的在主機(jī)計(jì)算機(jī)上執(zhí)行的方 法步驟的流程圖,并且圖18是用于在存儲(chǔ)容器之間移動(dòng)VM的vvol的在存儲(chǔ)系統(tǒng)中執(zhí)行的方 法步驟的流程圖。
[0105]用于擴(kuò)展用于VM的虛擬盤的數(shù)據(jù)vvol的大小的方法在步驟1708開始,其中主機(jī)計(jì) 算機(jī)確定是否使VM通電。如果主機(jī)計(jì)算機(jī)在步驟1708確定未使VM通電,則主機(jī)計(jì)算機(jī)在步 驟1710獲取與VM對(duì)應(yīng)的元數(shù)據(jù)vvol的ID。然后,主機(jī)計(jì)算機(jī)在步驟1712發(fā)起用于元數(shù)據(jù) vvol的綁定過程。在綁定之后,在步驟1714,主機(jī)計(jì)算機(jī)在元數(shù)據(jù)vvol上裝配文件系統(tǒng)并且 從用于虛擬盤的盤描述符文件獲取與虛擬盤對(duì)應(yīng)的數(shù)據(jù)vvol的ID,該盤描述符文件是在元 數(shù)據(jù)vvo 1上裝配的文件系統(tǒng)中的文件。然后在步驟1716,主機(jī)計(jì)算機(jī)在步驟1716向存儲(chǔ)系 統(tǒng)發(fā)送擴(kuò)展vvo 1 API調(diào)用,其中擴(kuò)展vvo 1 API調(diào)用可以包括數(shù)據(jù)V vo 1的ID和數(shù)據(jù)vvo 1的新 大小。
[0106] 如果使VM通電,則主機(jī)計(jì)算機(jī)在步驟1715接收VM的待擴(kuò)展的虛擬盤的數(shù)據(jù)vvol的 ID。應(yīng)當(dāng)從圖16A的方法認(rèn)識(shí),可以從與VM的虛擬盤關(guān)聯(lián)的盤描述符文件獲得這一 ID。然后, 在步驟1716,主機(jī)計(jì)算機(jī)在步驟1716向存儲(chǔ)系統(tǒng)發(fā)送擴(kuò)展vvol API調(diào)用,其中擴(kuò)展vvol API調(diào)用包括數(shù)據(jù)vvol的ID和數(shù)據(jù)vvol的新大小。
[0107] 擴(kuò)展vvol API調(diào)用造成在存儲(chǔ)系統(tǒng)中更新vvol數(shù)據(jù)庫(kù)和容器數(shù)據(jù)庫(kù)(例如,圖3的 vvol數(shù)據(jù)庫(kù)314和容器數(shù)據(jù)庫(kù)316)以反映 vvol的增加的地址空間。在接收擴(kuò)展vvol API調(diào) 用已經(jīng)完成的確認(rèn)時(shí),主機(jī)計(jì)算機(jī)在步驟1718用新大小更新用于VM的虛擬盤的盤描述符文 件。然后在步驟1720,主機(jī)計(jì)算機(jī)確定是否使VM通電。如果不是,則主機(jī)計(jì)算機(jī)在步驟1722 拆卸文件系統(tǒng)并且向存儲(chǔ)系統(tǒng)發(fā)送對(duì)于解綁元數(shù)據(jù)vvol的請(qǐng)求。在另一方面,如果使VM通 電,則該方法終止。
[0108] 用于將VM的當(dāng)前綁定到PE的vvol從源存儲(chǔ)容器移向目的地存儲(chǔ)容器--其中源 存儲(chǔ)容器和目的地存儲(chǔ)容器二者在相同存儲(chǔ)系統(tǒng)管理器的范圍內(nèi)--的方法在步驟1810 開始,其中接收源和目的地存儲(chǔ)容器的容器ID(分別為SCI和SC2)以及待移動(dòng)的vvol的vvol ID。然后,在步驟1812,更新vvo 1數(shù)據(jù)庫(kù)(例如圖3的vvo 1數(shù)據(jù)庫(kù)314)和容器數(shù)據(jù)庫(kù)(例如,圖 3的容器數(shù)據(jù)庫(kù)316)的盤區(qū)分配位圖如下。首先,存儲(chǔ)系統(tǒng)管理器從SCI的在容器數(shù)據(jù)庫(kù)316 中的條目去除SCI中的vvol盤區(qū)、然后通過修改SC2的在容器數(shù)據(jù)庫(kù)316中的條目來向SC2指 派這些盤區(qū)。在一個(gè)實(shí)施例中,存儲(chǔ)系統(tǒng)可以通過向SCI指派新紡錘體盤區(qū)來補(bǔ)償SCI中的 存儲(chǔ)容量損失(由于去除vvol存儲(chǔ)盤區(qū))并且通過從SC2去除一些未使用的紡錘體盤區(qū)來彌 補(bǔ)SC2中的存儲(chǔ)容量增加(由于添加 vvol存儲(chǔ)盤區(qū))。在步驟1814,存儲(chǔ)系統(tǒng)管理器確定當(dāng)前 綁定的PE是否能夠最優(yōu)地服務(wù)于向vvo 1的新位置的10。其中當(dāng)前PE不能服務(wù)于向vvo 1的新 位置的10的示例實(shí)例是如果存儲(chǔ)管理員已經(jīng)靜態(tài)配置存儲(chǔ)系統(tǒng)管理器以向來自不同客戶 并且因此來自不同存儲(chǔ)容器的vvol指派不同PE。如果當(dāng)前TO不能服務(wù)于向vvol的10,則 vvol在步驟1815經(jīng)歷以上結(jié)合圖13描述的重新綁定過程(和對(duì)連接數(shù)據(jù)庫(kù)、例如圖3的連接 數(shù)據(jù)庫(kù)312的關(guān)聯(lián)改變)。在步驟1815之后,執(zhí)行步驟1816,其中向主機(jī)計(jì)算機(jī)返回成功移動(dòng) 完成的確認(rèn)。如果存儲(chǔ)系統(tǒng)管理器在步驟1814確定當(dāng)前PE能夠服務(wù)于向vvol的新位置的 10,則繞過步驟1815并且接著執(zhí)行步驟1816。
[0109] 當(dāng)在不兼容存儲(chǔ)容器之間、例如在不同制造商的存儲(chǔ)設(shè)備中創(chuàng)建的存儲(chǔ)容器之間 移動(dòng)vvol時(shí),除了對(duì)容器數(shù)據(jù)庫(kù)316、vvol數(shù)據(jù)庫(kù)314和連接數(shù)據(jù)庫(kù)312的改變之外還在存儲(chǔ) 容器之間執(zhí)行數(shù)據(jù)移動(dòng)。在一個(gè)實(shí)施例中,運(yùn)用在通過這里引用將全部?jī)?nèi)容結(jié)合于此、提交 于2008年5月29 日并且標(biāo)題為 "Offloading Storage Operations to Storage Hardware" 的第12/129,323號(hào)美國(guó)專利申請(qǐng)中描述的數(shù)據(jù)移動(dòng)技術(shù)。
[0110] 圖19是用于從模板VM克隆VM的在主機(jī)計(jì)算機(jī)和存儲(chǔ)系統(tǒng)中執(zhí)行的方法步驟的流 程圖。這一方法在步驟1908開始,其中主機(jī)計(jì)算機(jī)向存儲(chǔ)系統(tǒng)發(fā)送對(duì)于為新VM創(chuàng)建元數(shù)據(jù) vvol的請(qǐng)求。在1910,存儲(chǔ)系統(tǒng)根據(jù)以上結(jié)合圖8描述的方法為新VM創(chuàng)建元數(shù)據(jù)并且向主機(jī) 計(jì)算機(jī)返回新元數(shù)據(jù)vvol ID。然后在步驟1914,對(duì)于屬于模板的所有數(shù)據(jù)vvol ID從主機(jī) 計(jì)算機(jī)經(jīng)由帶外路徑601向存儲(chǔ)系統(tǒng)發(fā)出克隆vvol API調(diào)用。在步驟1918,存儲(chǔ)系統(tǒng)檢查以 查看模板VM和新VM的數(shù)據(jù)vvol是否兼容。應(yīng)當(dāng)認(rèn)識(shí),如果克隆在不同制造商的存儲(chǔ)系統(tǒng)中 創(chuàng)建的存儲(chǔ)容器之間出現(xiàn),則數(shù)據(jù)vvol不可能兼容。如果有兼容性,則執(zhí)行步驟1919。在步 驟1919,存儲(chǔ)系統(tǒng)管理器通過生成新數(shù)據(jù)vvol ID、更新容器數(shù)據(jù)庫(kù)316中的分配位圖并且 向vvol數(shù)據(jù)庫(kù)314添加新vvol條目來創(chuàng)建新數(shù)據(jù)vvol并且向新VM的數(shù)據(jù)vvol復(fù)制在模板VM 的數(shù)據(jù)vvol中存儲(chǔ)的內(nèi)容。在步驟1920,存儲(chǔ)系統(tǒng)管理器向主機(jī)計(jì)算機(jī)返回新數(shù)據(jù)vvol ID。接收新數(shù)據(jù)vvol ID向主機(jī)計(jì)算機(jī)提供數(shù)據(jù)vvol克隆完成而無錯(cuò)誤的確認(rèn)。然后在步驟 1925,主機(jī)計(jì)算機(jī)向新VM的元數(shù)據(jù)vvo 1發(fā)出10以用新生成的數(shù)據(jù)vvo 1 ID更新元數(shù)據(jù)文件、 具體為盤描述符文件。存儲(chǔ)系統(tǒng)在步驟1926執(zhí)行主機(jī)計(jì)算機(jī)向存儲(chǔ)系統(tǒng)發(fā)出的10,作為這 一點(diǎn)的結(jié)果,用新生成的數(shù)據(jù)vvol ID更新新VM的盤描述符文件。
[0111]如果存儲(chǔ)系統(tǒng)管理器在步驟1918確定模板VM和新VM的數(shù)據(jù)vvol不兼容,則向主機(jī) 計(jì)算機(jī)返回錯(cuò)誤消息。在接收這一錯(cuò)誤消息時(shí),主機(jī)計(jì)算機(jī)在步驟19 21向存儲(chǔ)系統(tǒng)發(fā)出創(chuàng) 建vvol API調(diào)用以創(chuàng)建新數(shù)據(jù)vvol。在步驟1922,存儲(chǔ)系統(tǒng)管理器通過生成新數(shù)據(jù)vvol ID、更新容器數(shù)據(jù)庫(kù)316中的分配位圖并且向vvol數(shù)據(jù)庫(kù)314添加新vvol條目來創(chuàng)建新數(shù)據(jù) vvol并且向主機(jī)計(jì)算機(jī)返回新數(shù)據(jù)vvol ID。在步驟1923,主機(jī)計(jì)算機(jī)根據(jù)在通過這里引用 將全部?jī)?nèi)容結(jié)合于、提交于2009年1月21日并且標(biāo)題為"Data Mover for Computer System"的第12/356,694號(hào)美國(guó)專利申請(qǐng)中描述的技術(shù)執(zhí)行數(shù)據(jù)移動(dòng)(步驟1923)。在步驟 1923之后,如以上描述的那樣執(zhí)行步驟1925和1926。
[0112]圖20是根據(jù)另一實(shí)施例的用于調(diào)配VM的方法步驟的流程圖。在這一實(shí)施例中,使 用管理服務(wù)器610、主控VM的計(jì)算機(jī)系統(tǒng)、例如圖5D中所示計(jì)算機(jī)系統(tǒng)102(下文稱為"主機(jī) 計(jì)算機(jī)")和圖2B的存儲(chǔ)系統(tǒng)群集、具體為存儲(chǔ)系統(tǒng)管理器131或者存儲(chǔ)系統(tǒng)管理器132或者 存儲(chǔ)系統(tǒng)管理器135。如圖所示,在步驟2002接收對(duì)于調(diào)配VM的請(qǐng)求。這可以是在使用與管 理服務(wù)器610的適當(dāng)用戶接口的VM管理員向管理服務(wù)器610發(fā)出用于調(diào)配具有某個(gè)大小和 存儲(chǔ)能力簡(jiǎn)檔的VM的命令時(shí)生成的請(qǐng)求。響應(yīng)于該命令,在步驟2004,管理服務(wù)器610發(fā)起 用于用以上結(jié)合圖8描述的方式創(chuàng)建用于包含VM的元數(shù)據(jù)的vvol、具體為元數(shù)據(jù)vvol的方 法,存儲(chǔ)系統(tǒng)管理器在步驟2008按照該方法創(chuàng)建元數(shù)據(jù)vvol,該元數(shù)據(jù)vvol是在NAS設(shè)備中 的文件,并且向管理服務(wù)器610返回元數(shù)據(jù)vvol ID。在步驟2020,管理服務(wù)器610向主機(jī)計(jì) 算機(jī)系統(tǒng)注冊(cè)回元數(shù)據(jù)vvol的vvol ID。在步驟2022,主機(jī)計(jì)算機(jī)向存儲(chǔ)系統(tǒng)發(fā)出對(duì)于元數(shù) 據(jù)vvol ID的請(qǐng)求,響應(yīng)于該請(qǐng)求,存儲(chǔ)系統(tǒng)在步驟2023分別返回IP地址和目錄路徑作為PE ID和SLLID。在步驟2024,主機(jī)計(jì)算機(jī)在指定的IP地址和目錄路徑裝配目錄并且在裝配的目 錄中存儲(chǔ)元數(shù)據(jù)文件。在使用NFS的實(shí)施例中,NFS客戶端545或者585可以將給定的IP地址 和目錄路徑分解成NFS句柄以便向這樣的目錄發(fā)出NFS請(qǐng)求。
[0113] 在步驟2026,主機(jī)計(jì)算機(jī)發(fā)起用于用以上結(jié)合圖8描述的方式為VM的虛擬盤中的 每個(gè)虛擬盤創(chuàng)建數(shù)據(jù)vvol的方法,存儲(chǔ)系統(tǒng)管理器在步驟2030按照該方法創(chuàng)建數(shù)據(jù)vvol并 且向主機(jī)計(jì)算機(jī)返回?cái)?shù)據(jù)vvol的vvol ID。在步驟2032,主機(jī)計(jì)算機(jī)在用于虛擬盤的盤描述 符文件中存儲(chǔ)數(shù)據(jù)vvol的ID。該方法以在已經(jīng)對(duì)于VM的所有虛擬盤創(chuàng)建數(shù)據(jù)vvol之后解綁 元數(shù)據(jù)vvol (未示出)作為結(jié)束。
[0114] 如以上結(jié)合圖8描述的那樣,在從存儲(chǔ)容器創(chuàng)建新vvol并且未為新vvol顯式地指 定存儲(chǔ)能力簡(jiǎn)檔時(shí),新vvol將繼承與存儲(chǔ)容器關(guān)聯(lián)的存儲(chǔ)能力簡(jiǎn)檔??梢詮娜舾刹煌?jiǎn)檔 之一選擇與存儲(chǔ)容器關(guān)聯(lián)的存儲(chǔ)能力建檔。例如,如圖21中所示,不同簡(jiǎn)檔包括生產(chǎn)(prod) 簡(jiǎn)檔2101、開發(fā)(dev)簡(jiǎn)檔2102和測(cè)試簡(jiǎn)檔2103(這里通常為"簡(jiǎn)檔2100")。應(yīng)當(dāng)認(rèn)識(shí),可以 定義許多其它簡(jiǎn)檔。如圖所示,特定建檔的每個(gè)簡(jiǎn)檔條目為固定類型或者可變類型并且具 有名稱和與它關(guān)聯(lián)的一個(gè)或者多個(gè)值。固定類型的簡(jiǎn)檔條目具有固定數(shù)目的可選擇項(xiàng)目。 例如可以將簡(jiǎn)檔條目"復(fù)制"設(shè)置成真或者假。對(duì)照而言,可變類型的簡(jiǎn)檔條目無預(yù)定義選 擇。取而代之,為可變類型的簡(jiǎn)檔條目設(shè)置默認(rèn)值和值范圍,并且用戶可以選擇在范圍內(nèi)的 任何值。如果未指定值,則使用默認(rèn)值。在圖21中所示示例簡(jiǎn)檔2100中,可變類型的簡(jiǎn)檔條 目具有被逗號(hào)分離的三個(gè)數(shù)。第一個(gè)數(shù)是指定的范圍的更低端,并且第二個(gè)數(shù)是指定的范 圍的更高端。第三個(gè)數(shù)是默認(rèn)值。因此,將復(fù)制vvol,該vvol繼承在生產(chǎn)簡(jiǎn)檔2101中定義id 存儲(chǔ)能力簡(jiǎn)檔(復(fù)制?值=真),并且可以在范圍0.1到24小時(shí)中定義用于復(fù)制的恢復(fù)時(shí)間 目標(biāo)(RT0),默認(rèn)為1小時(shí)。此外,對(duì)于這一vvol(復(fù)制?值=真)允許快照。保持的快照數(shù)目 在范圍1至100中,默認(rèn)為1,并且快照頻率在范圍每小時(shí)一次至每24小時(shí)一次中,默認(rèn)為每 小時(shí)一次。Snaplnher it列指示在快照給定的vvol以創(chuàng)建作為衍生vvol的新vvol時(shí)是否應(yīng) 當(dāng)向衍生vvo 1傳播給定的簡(jiǎn)檔屬性(及其值)。在生產(chǎn)簡(jiǎn)檔2101的示例中,可以用生成簡(jiǎn)單 2101向給定的vvo 1的快照vvo 1傳播僅前兩個(gè)簡(jiǎn)檔條目(復(fù)制和RT0)??煺誺vo 1的所有其它 屬性的值將被設(shè)置成在簡(jiǎn)檔中指定的默認(rèn)值。換而言之,這些其它屬性在給定的vvol上的 任何定制(例如快照頻率的非默認(rèn)值)將由于它們的對(duì)應(yīng)Snaplnherit列為假而不會(huì)向快照 vvol傳播。簡(jiǎn)檔也包含其它列、比如Clonelnherit(未示出)和Replicalnherit(未示出),這 兩列控制分別向給定的vvo 1的克隆和復(fù)制傳播哪些屬性值。
[0115] 在根據(jù)圖4的方法創(chuàng)建存儲(chǔ)容器時(shí),可以設(shè)置可以對(duì)于從存儲(chǔ)容器創(chuàng)建的vvol定 義的存儲(chǔ)能力簡(jiǎn)檔類型。圖21中的流程圖圖示圖4中所示用于創(chuàng)建存儲(chǔ)容器的方法而在步 驟412與步驟413之間插入步驟2110。在步驟2110,存儲(chǔ)管理員選擇用于創(chuàng)建的存儲(chǔ)容器的 簡(jiǎn)檔2100中的一個(gè)或者多個(gè)簡(jiǎn)檔。例如,為一個(gè)客戶創(chuàng)建的存儲(chǔ)容器可以與生產(chǎn)建檔2101 和開發(fā)簡(jiǎn)檔2102關(guān)聯(lián),從而為生產(chǎn)類型的vvol將如情況可以是的那樣繼承用默認(rèn)值或者客 戶指定的值在生產(chǎn)簡(jiǎn)檔2101中定義的存儲(chǔ)能力簡(jiǎn)檔,并且為開發(fā)類型的vvol將如情況可以 是那樣繼承用默認(rèn)值或者客戶指定的值在開發(fā)建檔2102中定義的存儲(chǔ)能力簡(jiǎn)檔。
[0116] 圖22是用于創(chuàng)建vvol并且定義用于vvol的存儲(chǔ)能力簡(jiǎn)檔的由存儲(chǔ)系統(tǒng)管理器 131、132或者135執(zhí)行的所示方法步驟的流程圖。圖22的方法步驟、具體為方法步驟2210、 2212、2218和2220分別地對(duì)應(yīng)圖8中所示步驟806、810、812和814。此外,圖22的方法步驟包 括步驟2214、2215和2216,這些步驟定義用于創(chuàng)建的vvol的存儲(chǔ)能力簡(jiǎn)檔。
[0117] 在步驟2214,存儲(chǔ)系統(tǒng)管理器確定是否已經(jīng)在對(duì)于創(chuàng)建vvol的請(qǐng)求中指定將在存 儲(chǔ)能力簡(jiǎn)檔中使用的值。如果它們不是,則存儲(chǔ)系統(tǒng)管理器在步驟2215運(yùn)用與vvol的存儲(chǔ) 容器關(guān)聯(lián)的存儲(chǔ)能力簡(jiǎn)檔作為vvol的具有默認(rèn)值的存儲(chǔ)能力簡(jiǎn)檔。如果已經(jīng)指定將在存儲(chǔ) 能力簡(jiǎn)檔中使用的值,則存儲(chǔ)系統(tǒng)管理器在步驟2216運(yùn)用與vvol的存儲(chǔ)容器關(guān)聯(lián)的存儲(chǔ)能 力簡(jiǎn)檔作為vvol的具有指定的值而不是默認(rèn)值的存儲(chǔ)能力簡(jiǎn)檔。
[0118] 在一個(gè)實(shí)施例中,在vvol數(shù)據(jù)庫(kù)314中存儲(chǔ)vvol的存儲(chǔ)能力簡(jiǎn)檔為關(guān)鍵字-值對(duì)。 一旦已經(jīng)定義并且在vvol數(shù)據(jù)庫(kù)314中存儲(chǔ)vvol的存儲(chǔ)能力簡(jiǎn)檔為關(guān)鍵字-值對(duì),并且只要 與復(fù)制和快照有關(guān)的屬性和值如圖21的示例簡(jiǎn)檔中所示是這一簡(jiǎn)檔的部分,存儲(chǔ)系統(tǒng)就能 夠執(zhí)行用于vvo 1的復(fù)制和快照而無主機(jī)計(jì)算機(jī)發(fā)出的進(jìn)一步指令。
[0119] 圖23是圖示用于從母vvol創(chuàng)建快照的由存儲(chǔ)系統(tǒng)管理器131、132或者135執(zhí)行的 方法步驟的流程圖。在一個(gè)實(shí)施例中,運(yùn)用快照跟蹤數(shù)據(jù)結(jié)構(gòu)以根據(jù)在給定的存儲(chǔ)能力簡(jiǎn) 檔中的快照定義調(diào)度快照。在達(dá)到用于快照的調(diào)度的時(shí)間時(shí),存儲(chǔ)系統(tǒng)管理器在步驟2310 從快照跟蹤數(shù)據(jù)結(jié)構(gòu)獲取vvol ID。然后,在步驟2312,存儲(chǔ)系統(tǒng)管理器生成用于快照的唯 一vvol ID。存儲(chǔ)系統(tǒng)管理器在步驟2315運(yùn)用母VV〇l(即具有從快照跟蹤數(shù)據(jù)結(jié)構(gòu)獲取的 vvol ID的vvol)的存儲(chǔ)能力簡(jiǎn)檔作為快照vvol的存儲(chǔ)能力簡(jiǎn)檔。應(yīng)當(dāng)注意,由于這是存儲(chǔ) 系統(tǒng)驅(qū)動(dòng)的自動(dòng)化簡(jiǎn)檔驅(qū)動(dòng)的快照過程,所以用戶未獲得用于指定激昂在快照vvol的存儲(chǔ) 能力簡(jiǎn)檔中使用的定制值。在步驟2318,存儲(chǔ)系統(tǒng)管理器通過更新容器數(shù)據(jù)庫(kù)316中的分配 位圖并且向vvol數(shù)據(jù)庫(kù)314添加用于快照vvol的新vvol條目在母vvol的存儲(chǔ)容器內(nèi)創(chuàng)建快 照vvol。然后,在步驟2320,存儲(chǔ)系統(tǒng)管理器通過調(diào)度用于生成用于母vvol的下一快照的時(shí) 間來更新快照跟蹤數(shù)據(jù)結(jié)構(gòu)。應(yīng)當(dāng)認(rèn)識(shí),存儲(chǔ)系統(tǒng)管理器必須對(duì)于所有如下vvol并行維護(hù) 快照跟蹤數(shù)據(jù)結(jié)構(gòu)并且執(zhí)行圖23的方法步驟,這些vvol的存儲(chǔ)能力簡(jiǎn)檔規(guī)定調(diào)度的快照。
[0120] 在用以上描述的方式創(chuàng)建快照之后,更新在vvol數(shù)據(jù)庫(kù)314中存儲(chǔ)的關(guān)鍵字-值對(duì) 以指示快照vvol為類型=快照。也在其中為快照維護(hù)生成數(shù)一一每當(dāng)拍攝或者設(shè)置快照時(shí) 遞減生成數(shù)或者設(shè)置成等于日期+時(shí)間一一的實(shí)施例中,存儲(chǔ)生成數(shù)為關(guān)鍵字-值對(duì)。也在 快照VVO1條目中存儲(chǔ)快照VVO1的母VVO1 ID為關(guān)鍵字-值對(duì)。因此,主機(jī)計(jì)算機(jī)可以向vvo 1 數(shù)據(jù)庫(kù)314查詢與特定vvol ID對(duì)應(yīng)的快照。也有可能讓主機(jī)計(jì)算機(jī)向vvol數(shù)據(jù)庫(kù)發(fā)出對(duì)于 與特定vvol ID和特定生成數(shù)對(duì)應(yīng)的快照的查詢。
[0121] 這里描述的各種實(shí)施例可以運(yùn)用各種由計(jì)算機(jī)實(shí)施的操作,這些操作涉及到在計(jì) 算機(jī)系統(tǒng)中存儲(chǔ)的數(shù)據(jù)。例如這些操作通常、但是未必可能需要物理操縱物理數(shù)量,這些數(shù) 量可以采用電或者磁信號(hào)的形式,其中能夠存儲(chǔ)、傳送、組合、比較或者另外操縱它們或者 它們的表示。另外,經(jīng)常在術(shù)語、比如產(chǎn)生、標(biāo)識(shí)、確定或者比較中引用這樣的操縱。這里描 述的任何形成一個(gè)或者多個(gè)實(shí)施例的部分的操作可以是有用機(jī)器操作。此外,一個(gè)或者多 個(gè)實(shí)施例也涉及一種用于執(zhí)行這些操作的設(shè)備或者裝置。該裝置可以被特別地構(gòu)造用于具 體所需目的,或者它可以是通用計(jì)算機(jī),該通用計(jì)算機(jī)由在計(jì)算機(jī)中存儲(chǔ)的計(jì)算機(jī)程序有 選擇地激活或者配置。具體而言,各種通用機(jī)器可以與根據(jù)這里的教導(dǎo)編寫的計(jì)算機(jī)程序 使用,或者構(gòu)造更專門化的裝置以執(zhí)行所需操作可以更方便。
[0122]可以用包括手持設(shè)備、微處理器系統(tǒng)、基于微處理器或者可編程的客戶電子裝置、 小型計(jì)算機(jī)、大型機(jī)計(jì)算機(jī)等的其它計(jì)算機(jī)系統(tǒng)配置實(shí)現(xiàn)這里描述的各種實(shí)施例。
[0123] 可以實(shí)施一個(gè)或者多個(gè)實(shí)施例為一個(gè)或者多個(gè)計(jì)算機(jī)程序或者為在一個(gè)或者多 個(gè)計(jì)算機(jī)可讀介質(zhì)中體現(xiàn)的一個(gè)或者多個(gè)計(jì)算機(jī)程序模塊。術(shù)語計(jì)算機(jī)可讀介質(zhì)是指可以 存儲(chǔ)數(shù)據(jù)的任何數(shù)據(jù)存儲(chǔ)設(shè)備,該數(shù)據(jù)隨后可以向計(jì)算機(jī)系統(tǒng)輸入。計(jì)算機(jī)可讀介質(zhì)可以 基于用于以使計(jì)算機(jī)程序能夠被計(jì)算機(jī)讀取的方式體現(xiàn)計(jì)算機(jī)程序的任何現(xiàn)有或者以后 開發(fā)的技術(shù)。計(jì)算機(jī)可讀介質(zhì)的示例包括硬驅(qū)動(dòng)、網(wǎng)絡(luò)附接存儲(chǔ)裝置(NAS)、只讀存儲(chǔ)器、隨 機(jī)存取存儲(chǔ)器(例如閃存設(shè)備)、⑶(緊致盤)、⑶-R0M、⑶-R或者⑶-RW、DVD(數(shù)字萬用盤)、磁 帶以及其它光學(xué)和非光學(xué)數(shù)據(jù)存儲(chǔ)設(shè)備。也可以通過網(wǎng)絡(luò)耦合的計(jì)算機(jī)系統(tǒng)分發(fā)計(jì)算機(jī)可 讀介質(zhì),從而以分布式方式存儲(chǔ)和執(zhí)行計(jì)算機(jī)可讀代碼。
[0124] 雖然為了理解清楚而已經(jīng)用一些細(xì)節(jié)描述一個(gè)或者多個(gè)實(shí)施例,但是將清楚可以 在權(quán)利要求的范圍內(nèi)進(jìn)行某些改變和修改。例如運(yùn)用SCSI作為用于SAN設(shè)備的協(xié)議,并且使 用NFS作為用于NAS設(shè)備的協(xié)議??梢允褂肧CSI協(xié)議的任何備選、光纖信道,并且可以使用 NFS協(xié)議的任何備選、比如CIFS(公共因特網(wǎng)文件系統(tǒng))協(xié)議。因而,描述的實(shí)施例將視為示 例而非限制,并且權(quán)利要求的范圍將不限于這里給定的細(xì)節(jié)而是可以在權(quán)利要求的范圍和 等效含義內(nèi)被修改。在權(quán)利要求中,單元和/或步驟除非在權(quán)利要求中陳述則未意味著任何 特定操作順序。
[0125] 此外,盡管描述的可視化方法已經(jīng)主要假設(shè)虛擬機(jī)呈現(xiàn)與特定硬件系統(tǒng)一致的接 口,但是可以結(jié)合未與任何特定硬件系統(tǒng)直接對(duì)應(yīng)的虛擬化使用描述的方法。根據(jù)各種實(shí) 施例的可視化系統(tǒng)都被設(shè)想,實(shí)施這些實(shí)施例為主控的實(shí)施例、非主控的實(shí)施例或者為往 往模糊在二者之間的區(qū)分的實(shí)施例。另外,可以全部或者部分在硬件中實(shí)施各種可視化操 作。例如硬件實(shí)現(xiàn)方式可以將查找表用于修改存儲(chǔ)訪問請(qǐng)求以使非盤數(shù)據(jù)安全。
[0126] 許多變化、修改、添加和改進(jìn)無論可視化程度如何都是可能的??梢暬浖虼丝?以包括執(zhí)行可視化功能的主機(jī)、控制臺(tái)或者客戶操作系統(tǒng)的部件。可以提供多個(gè)實(shí)例用于 這里描述為單個(gè)實(shí)例的部件、操作或者結(jié)構(gòu)。最后,在各種部件、操作和數(shù)據(jù)存儲(chǔ)庫(kù)之間的 邊界有些任意,并且在具體示例配置的上下文中舉例說明具體操作。其它功能分配被設(shè)想 并且可以落入這里描述的實(shí)施例的范圍內(nèi)。一般而言,可以實(shí)施在示例配置中呈現(xiàn)為分離 部件的結(jié)構(gòu)和功能為組合的結(jié)構(gòu)或者部件。類似地,可以實(shí)施呈現(xiàn)為單個(gè)部件的結(jié)構(gòu)和功 能為分離部件。這些和其它變化、修改、添加和改進(jìn)可以落入所附權(quán)利要求的范圍內(nèi)。
【主權(quán)項(xiàng)】
1. 一種用于在存儲(chǔ)系統(tǒng)中處理輸入-輸出命令10的方法,所述方法包括: 在存儲(chǔ)系統(tǒng)處接收10,所述10包括第一標(biāo)識(shí)符和第二標(biāo)識(shí)符,其中所述第一標(biāo)識(shí)符用 來將所述10引向與所述存儲(chǔ)系統(tǒng)中的邏輯存儲(chǔ)卷集合相關(guān)聯(lián)的端點(diǎn); 在所述存儲(chǔ)系統(tǒng)處從所述10獲取所述第二標(biāo)識(shí)符并且將所述第二標(biāo)識(shí)符轉(zhuǎn)譯成與所 述端點(diǎn)相關(guān)聯(lián)的所述邏輯存儲(chǔ)卷集合中的一個(gè)邏輯存儲(chǔ)的邏輯存儲(chǔ)卷標(biāo)識(shí)符;以及 在與所述邏輯存儲(chǔ)卷標(biāo)識(shí)符對(duì)應(yīng)的邏輯存儲(chǔ)卷引用的存儲(chǔ)位置上執(zhí)行所述10。2. 根據(jù)權(quán)利要求1所述的方法,其中在所述存儲(chǔ)系統(tǒng)中被配置為所述端點(diǎn)的邏輯單元 編號(hào)LUN處接收所述10,并且所述第一標(biāo)識(shí)符是用于所述LUN的世界范圍名稱。3. 根據(jù)權(quán)利要求2所述的方法,還包括: 檢測(cè)所述邏輯存儲(chǔ)卷或者所述LUN中的錯(cuò)誤狀況并且向發(fā)出所述10的計(jì)算機(jī)系統(tǒng)發(fā)送 錯(cuò)誤消息。4. 根據(jù)權(quán)利要求1所述的方法,其中在所述存儲(chǔ)系統(tǒng)中被配置為所述端點(diǎn)的裝配點(diǎn)處 接收所述10,并且所述第一標(biāo)識(shí)符包括所述存儲(chǔ)系統(tǒng)和所述裝配點(diǎn)的IP地址。5. 根據(jù)權(quán)利要求4所述的方法,還包括: 檢測(cè)所述邏輯存儲(chǔ)卷或者所述裝配點(diǎn)中的錯(cuò)誤狀況并且向發(fā)出所述10的計(jì)算機(jī)系統(tǒng) 發(fā)送錯(cuò)誤消息。6. 根據(jù)權(quán)利要求1所述的方法,還包括: 維護(hù)一個(gè)數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)提供第二標(biāo)識(shí)符到邏輯存儲(chǔ)卷標(biāo)識(shí)符的映射,其中 所述第二標(biāo)識(shí)符是使用所述數(shù)據(jù)結(jié)構(gòu)被轉(zhuǎn)譯成所述邏輯存儲(chǔ)卷標(biāo)識(shí)符的。7. 根據(jù)權(quán)利要求1所述的方法,其中所述端點(diǎn)是在所述存儲(chǔ)系統(tǒng)使用的協(xié)議中用于所 述10的邏輯端點(diǎn)。8. -種用于在存儲(chǔ)系統(tǒng)中處理輸入-輸出命令10的裝置,所述裝置被配置為執(zhí)行根據(jù) 權(quán)利要求1至6中任一項(xiàng)所述的方法。9. 一種存儲(chǔ)系統(tǒng),被配置為由根據(jù)權(quán)利要求8所述的裝置進(jìn)行控制。
【文檔編號(hào)】H04L29/08GK105975214SQ201610331182
【公開日】2016年9月28日
【申請(qǐng)日】2012年8月22日
【發(fā)明人】R·布哈特, S·阿查亞, S·B·瓦哈尼, C-C·施
【申請(qǐng)人】威睿公司