專利名稱:通過在文件系統(tǒng)上將虛擬盤對象分層進行存儲虛擬化的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲系統(tǒng),具體來說,涉及存儲系統(tǒng)、如多協(xié)議存儲設(shè)備上的存儲虛擬化。
背景技術(shù):
存儲系統(tǒng)是提供與在諸如存儲器、帶或盤的可寫持久存儲裝置上的信息的組織有關(guān)的存儲服務(wù)的計算機。存儲系統(tǒng)可設(shè)置在存儲區(qū)域網(wǎng)(SAN)或網(wǎng)絡(luò)連接存儲器(NAS)環(huán)境中。當用于NAS環(huán)境內(nèi)時,存儲系統(tǒng)可作為包含操作系統(tǒng)的文件服務(wù)器來實施,該操作系統(tǒng)實現(xiàn)文件系統(tǒng)以便在例如盤上將信息在邏輯上組織為目錄和文件的分級結(jié)構(gòu)。每個“盤上”文件可實現(xiàn)為一組數(shù)據(jù)結(jié)構(gòu)、例如盤塊,配置成存儲信息、如文件的實際數(shù)據(jù)。另一方面,目錄可實現(xiàn)為特殊格式的文件,在其中存儲有關(guān)其它文件和目錄的信息。
文件服務(wù)器或文件管理器還可配置成根據(jù)信息傳遞的客戶機/服務(wù)器模型來工作,從而允許許多客戶機系統(tǒng)(客戶機)存取文件管理器中存儲的共享資源、如文件。文件的共享是NAS系統(tǒng)的特點,它是由于對文件和文件系統(tǒng)的存取的語義級而實現(xiàn)的。在NAS系統(tǒng)中信息的存儲通常部署在包括互連通信鏈路的地理分布集合的計算機網(wǎng)絡(luò)、如以太網(wǎng)上,它允許客戶機遠程存取文件管理器中的信息(文件)??蛻魴C通常通過根據(jù)預(yù)定義協(xié)議、如傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)交換離散幀或數(shù)據(jù)包,與文件管理器進行通信。
在客戶機/服務(wù)器模型中,客戶機可包括在計算機上運行的應(yīng)用,計算機通過諸如點到點鏈路、共享局域網(wǎng)、廣域網(wǎng)或在公共網(wǎng)、如因特網(wǎng)上實現(xiàn)的虛擬專用網(wǎng)之類的計算機網(wǎng)絡(luò)“連接”到文件管理器。NAS系統(tǒng)一般采用基于文件的存取協(xié)議;因此,各客戶機可通過經(jīng)由網(wǎng)絡(luò)向文件系統(tǒng)發(fā)出文件系統(tǒng)協(xié)議消息(以數(shù)據(jù)包的形式)來請求文件管理器的服務(wù)。通過支持多個文件系統(tǒng)協(xié)議、如傳統(tǒng)的公用因特網(wǎng)文件系統(tǒng)(CIFS)、網(wǎng)絡(luò)文件系統(tǒng)(NFS)和直接存取文件系統(tǒng)(DAFS)協(xié)議等,可為將客戶機組網(wǎng)而增強文件管理器的用途。
SAN是高速網(wǎng)絡(luò),它允許建立存儲系統(tǒng)及其存儲裝置之間的直接連接。因此,SAN可看作是存儲總線的擴展,因此,存儲系統(tǒng)的操作系統(tǒng)允許采用基于塊的存取協(xié)議通過“擴展總線”對存儲信息進行存取。在此上下文中,擴展總線通常被具體化為光纖信道(FC)或以太網(wǎng)媒體(即網(wǎng)絡(luò)),適合在FC或TCP/IP/以太網(wǎng)上與塊存取協(xié)議、諸如小型計算機系統(tǒng)接口(SCSI)協(xié)議封裝配合工作。
SAN配置或部署允許存儲器與存儲系統(tǒng)、如應(yīng)用服務(wù)器分離以及將該存儲器設(shè)置在網(wǎng)絡(luò)上。但是,SAN存儲系統(tǒng)通常管理專門分配的存儲資源。雖然存儲可分組(或形成池)為若干區(qū)域(例如通過傳統(tǒng)的邏輯單元號或“l(fā)un”分區(qū)、掩碼和管理技術(shù)),但存儲裝置仍然由用戶、例如系統(tǒng)管理員預(yù)先分配給存儲系統(tǒng)。
存儲虛擬化一般涉及通常在網(wǎng)絡(luò)上由一個或多個存儲系統(tǒng)從多個存儲裝置、如物理盤匯集存儲資源,以便創(chuàng)建“用戶定義的卷”。傳統(tǒng)上用于SAN環(huán)境的術(shù)語“卷”意味著通過經(jīng)由將那些盤區(qū)/盤組合為用戶定義的卷存儲實體的操作來指定物理盤以及那些盤內(nèi)的盤區(qū)(由系統(tǒng)管理員)所構(gòu)建的存儲實體。盤區(qū)是指定物理盤內(nèi)的存儲器的一組毗鄰尋址塊(或“片”)。這種構(gòu)造可出現(xiàn)在存儲裝置或者應(yīng)用服務(wù)器上。存儲虛擬化往往用作SAN部署的一部分,其中,用戶定義的卷對于操作系統(tǒng)表現(xiàn)為單存儲實體,與所匯集的存儲裝置的類型無關(guān)。因此,虛擬化將存儲器對操作系統(tǒng)的表示與通過網(wǎng)絡(luò)連接的實際物理存儲器分開。
存儲虛擬化有許多解釋,包括物理盤大小限制和基礎(chǔ)物理結(jié)構(gòu)與對應(yīng)于盤或lun的用戶定義的卷的分離。虛擬化還可涉及l(fā)un的管理,包括定義存儲器的基礎(chǔ)可靠性保證。虛擬化的這個方面一般通過對于從存儲池形成的lun的明確鏡像或者獨立(或廉價)盤冗余陣列(RAID)保護等級來實現(xiàn)。也就是說,系統(tǒng)管理員明確定義所構(gòu)建的用戶定義卷的基礎(chǔ)可靠性保證。可以理解,這個管理過程是復(fù)雜、費時、因而成本高的。
虛擬化還可表示修改lun的現(xiàn)有配置(例如增加其大小)以及l(fā)un的性能特性的能力。但是,明確構(gòu)建較大存儲單元供客戶機使用的傳統(tǒng)物理盤和策略可能受到性能限制。例如,通過明確聚集多個盤和/或那些盤的“片”(盤區(qū))所構(gòu)建的用戶定義卷的帶寬可能受到所構(gòu)建卷的基礎(chǔ)屬性的物理約束的限制。
因此,存儲虛擬化的傳統(tǒng)概念涉及向客戶機提供存儲器(即用戶定義卷)的視圖,其中該卷由用戶或系統(tǒng)管理員選取的客戶機可存取的各種盤的盤區(qū)組成。管理員執(zhí)行的選擇過程一般包括(i)從與客戶機可存取的存儲器相關(guān)聯(lián)的盤選擇各種盤區(qū);(ii)將基礎(chǔ)可靠性保證(例如RAID或鏡像)應(yīng)用于那些盤區(qū),以確保卷的可靠性;以及(iii)將那些可靠盤區(qū)作為單存儲實體(例如盤或lun)提供給客戶機。本發(fā)明針對在存儲系統(tǒng)上有效地執(zhí)行存儲虛擬化選擇過程。
發(fā)明內(nèi)容
本發(fā)明涉及一種存儲虛擬化選擇技術(shù),它使虛擬化選擇過程“自動化”,以便在存儲系統(tǒng)、如多協(xié)議存儲設(shè)備的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)的卷上“分層”(創(chuàng)建)虛擬盤(虛盤)存儲對象。概括地說,文件系統(tǒng)提供一種虛擬化系統(tǒng),它將一組盤或盤的若干部分(例如盤區(qū))的物理存儲區(qū)聚集為可動態(tài)分配以形成虛盤的塊池。根據(jù)其基礎(chǔ)體系結(jié)構(gòu),文件系統(tǒng)還為虛盤提供可靠性保證。也就是說,文件系統(tǒng)在所管理的盤之中創(chuàng)建的卷內(nèi)組織其存儲。此后,虛盤在卷中作為存儲對象被創(chuàng)建,因而繼承了與該卷相關(guān)聯(lián)的基礎(chǔ)可靠性配置。值得注意的是,響應(yīng)來自存儲設(shè)備的用戶、如系統(tǒng)管理員的創(chuàng)建虛盤的請求,這些部分被聚集和分配為具有可靠性保證的虛盤,而不會進一步牽涉到用戶。
根據(jù)本發(fā)明的一個方面,該技術(shù)還為文件系統(tǒng)提供虛盤的盤上表示。虛盤是卷中的一種特殊文件類型,它從普通(常規(guī))文件得出,但具有支持盤模擬的相關(guān)導(dǎo)出控制和操作限制。明確地說,虛盤為多索引節(jié)點對象,其中包括作為文件系統(tǒng)內(nèi)的單“封裝”存儲對象來管理的特殊文件索引節(jié)點以及至少一個相關(guān)流索引節(jié)點。特殊文件索引節(jié)點用作存儲與模擬盤相關(guān)聯(lián)的數(shù)據(jù)的主容器。流索引節(jié)點用作用于存儲允許虛盤作為邏輯單元號(lun)導(dǎo)出到例如存儲區(qū)域網(wǎng)(SAN)客戶機的各種屬性的持久存儲區(qū)。這些屬性包括還允許封裝虛盤在例如重新引導(dǎo)操作上維持的安全信息,并且允許相對于SAN客戶機作為單盤對象來管理虛盤。
有利的是,卷的基礎(chǔ)可靠性配置定義該卷內(nèi)創(chuàng)建的虛盤的可靠性特性。多協(xié)議設(shè)備的這種“繼承的”可靠性方法簡化了虛盤的管理,因為用戶(系統(tǒng)管理員)不必基于存儲對象(虛盤)處理可靠性問題。相反,系統(tǒng)管理員只需要提出關(guān)于整個卷的可靠性的全局選擇。
附圖概述通過參照以下結(jié)合附圖的描述,可以更好地理解本發(fā)明的上述及其它優(yōu)點,附圖中相似的參考標號表示相同或功能相似的元件
圖1是可有利地與本發(fā)明配合使用的多協(xié)議存儲設(shè)備的示意框圖;圖2是可有利地與本發(fā)明配合使用的多協(xié)議存儲設(shè)備的存儲操作系統(tǒng)的示意框圖;圖3是與存儲操作系統(tǒng)的虛擬化模塊交互的文件系統(tǒng)所實現(xiàn)的虛擬化系統(tǒng)的示意框圖;圖4是可有利地與本發(fā)明配合使用的盤上索引節(jié)點數(shù)據(jù)結(jié)構(gòu)的示意框圖;
圖5是示意框圖,說明根據(jù)本發(fā)明的索引節(jié)點數(shù)據(jù)結(jié)構(gòu)的盤上表示,其中包括虛擬盤(虛盤)的邏輯單元號(lun)和屬性索引節(jié)點;以及圖6是流程圖,說明根據(jù)本發(fā)明創(chuàng)建虛盤時所涉及的步驟的說明性序列。
說明性實施例的詳細描述圖1是可有利地與本發(fā)明配合使用的多協(xié)議存儲設(shè)備100的示意框圖。多協(xié)議存儲設(shè)備配置成以綜合方式對存儲裝置中存儲的信息的文件及塊協(xié)議存取提供存儲服務(wù)。在此上下文中,綜合多協(xié)議設(shè)備表示一種具有諸如簡化存儲服務(wù)管理以及便于存儲器重新配置等特征的計算機,其中包括可再用的存儲空間,用于網(wǎng)絡(luò)連接存儲器(NAS)和存儲區(qū)域網(wǎng)(SAN)部署的用戶(系統(tǒng)管理員)和客戶機。
多協(xié)議存儲設(shè)備100被說明性地具體化為一種存儲系統(tǒng),其中包括通過系統(tǒng)總線123互連的處理器122、存儲器124、多個網(wǎng)絡(luò)適配器125、126以及存儲適配器128。多協(xié)議存儲設(shè)備100還包括存儲操作系統(tǒng)200,它提供虛擬化系統(tǒng)(以及具體的文件系統(tǒng)),以便在邏輯上將信息組織為盤130上的命名目錄、文件和虛擬盤(虛盤)存儲對象的分層結(jié)構(gòu)。在共同未決且共同轉(zhuǎn)讓的題為“提供對文件和塊存取協(xié)議的綜合支持的多協(xié)議存儲設(shè)備”的美國專利申請序號(112056-0070)中描述了可以有利地與本發(fā)明配合使用的多協(xié)議存儲設(shè)備的一個實例,通過引用將該申請結(jié)合于此,好像本文完整地提出那樣。
基于NAS的網(wǎng)絡(luò)環(huán)境的客戶機具有文件的存儲觀點,而基于SAN的網(wǎng)絡(luò)環(huán)境的客戶機則具有塊或盤的存儲觀點。為此,多協(xié)議存儲設(shè)備100通過創(chuàng)建邏輯單元號(lun)或虛盤對象將盤提供(導(dǎo)出)給SAN客戶機。虛盤對象(以下稱作“虛盤”)是一種特殊文件類型,它由虛擬化系統(tǒng)實現(xiàn)并被轉(zhuǎn)換成SAN客戶機看作的模擬盤。此后,多協(xié)議存儲設(shè)備使這些模擬盤通過受控導(dǎo)出可供SAN客戶機存取,如本文進一步所述那樣。
在說明性實施例中,存儲器124包括可由處理器和適配器尋址的存儲單元,用于存儲與本發(fā)明相關(guān)的軟件程序代碼和數(shù)據(jù)結(jié)構(gòu)。處理器和適配器又可包括配置成運行軟件代碼并處理數(shù)據(jù)結(jié)構(gòu)的處理元件和/或邏輯電路。存儲操作系統(tǒng)200的一部分通常駐留在存儲器中并由處理元件運行,存儲操作系統(tǒng)200特別通過調(diào)用支持該設(shè)備實現(xiàn)的存儲服務(wù)的存儲操作,在功能上組織存儲設(shè)備。本領(lǐng)域的技術(shù)人員十分清楚,其它處理及存儲部件、包括各種計算機可讀媒體都可用于存儲和執(zhí)行與本文所述的本發(fā)明有關(guān)的程序指令。
網(wǎng)絡(luò)適配器125通過在公共網(wǎng)絡(luò)(因特網(wǎng))或共享局域網(wǎng)上實現(xiàn)的點對點鏈路、廣域網(wǎng)、虛擬專用網(wǎng)(以下稱作說明性以太網(wǎng)165)將存儲設(shè)備耦合到多個客戶機160a、b。對于這種基于NAS的網(wǎng)絡(luò)環(huán)境,客戶機配置成存取多協(xié)議設(shè)備中以文件存儲的信息。因此,網(wǎng)絡(luò)適配器125可包括網(wǎng)絡(luò)接口卡(NIC),它具有將設(shè)備連接到網(wǎng)絡(luò)交換機、如傳統(tǒng)的以太網(wǎng)交換機170所需的機電及信令電路。客戶機160通過根據(jù)預(yù)定義的協(xié)議、如傳輸控制協(xié)議/因特網(wǎng)協(xié)議(TCP/IP)交換離散幀或數(shù)據(jù)包,經(jīng)由網(wǎng)絡(luò)165與存儲設(shè)備進行通信。
客戶機160可以是通用計算機,它配置成在包括UNIX和MicrosoftWindowsTM操作系統(tǒng)在內(nèi)的各種操作系統(tǒng)上運行應(yīng)用程序。在通過基于NAS的網(wǎng)絡(luò)存取信息(以文件和目錄的形式)時,客戶機系統(tǒng)一般采用基于文件的存取協(xié)議。因此,各客戶機160可通過經(jīng)由網(wǎng)絡(luò)165向設(shè)備發(fā)出文件存取協(xié)議消息(以數(shù)據(jù)包的形式),來請求存儲設(shè)備100的服務(wù)。例如,運行Windows操作系統(tǒng)的客戶機160a可采用基于TCP/IP的公用因特網(wǎng)文件系統(tǒng)(CIFS)協(xié)議與存儲設(shè)備100進行通信。另一方面,運行UNIX操作系統(tǒng)的客戶機160b可采用基于TCP/IP的網(wǎng)絡(luò)文件系統(tǒng)(NFS)協(xié)議或者根據(jù)基于TCP/IP的遠程DMA(RDMA)協(xié)議的基于虛擬接口(VI)傳送的直接存取文件系統(tǒng)(DAFS)協(xié)議與多協(xié)議設(shè)備進行通信。本領(lǐng)域的技術(shù)人員十分清楚,運行其它類型的操作系統(tǒng)的其它客戶機也可采用其它文件存取協(xié)議與綜合多協(xié)議存儲設(shè)備進行通信。
存儲網(wǎng)絡(luò)“目標”適配器126還將多協(xié)議存儲設(shè)備100耦合到還可配置成存取作為塊或盤的存儲信息的客戶機160。對于這種基于SAN的網(wǎng)絡(luò)環(huán)境,存儲設(shè)備耦合到說明性光纖信道(FC)網(wǎng)絡(luò)185。FC是描述主要見于SAN部署中的一套協(xié)議和媒體的組網(wǎng)標準。網(wǎng)絡(luò)目標適配器126可包括FC主機總線適配器(HBA),它具有將設(shè)備100連接到SAN網(wǎng)絡(luò)交換機、如傳統(tǒng)的FC交換機180所需的機電及信令電路。除了提供FC存取之外,F(xiàn)C HBA還可為存儲設(shè)備卸載光纖信道網(wǎng)絡(luò)處理操作。
在通過基于SAN的網(wǎng)絡(luò)存取信息(以塊、盤或虛盤的形式)時,客戶機160一般采用基于塊的存取協(xié)議、如小型計算機系統(tǒng)接口(SCSI)協(xié)議。SCSI是具有標準的與設(shè)備無關(guān)的協(xié)議的外圍輸入/輸出(I/O)接口,它允許不同的外圍設(shè)備、如盤130連接到存儲設(shè)備100。在SCSI技術(shù)中,在SAN環(huán)境中工作的客戶機160是發(fā)起對數(shù)據(jù)的請求和命令的發(fā)起者。因此,多協(xié)議存儲設(shè)備是配置成根據(jù)請求/響應(yīng)協(xié)議響應(yīng)發(fā)起者發(fā)出的請求的目標。發(fā)起者和目標具有端點地址,根據(jù)FC協(xié)議,這些地址包含全球名稱(WWN)。WWN是由8字節(jié)數(shù)字構(gòu)成的唯一標識符,例如節(jié)點名稱或端口名稱。
多協(xié)議存儲設(shè)備100支持用于SAN部署中的各種基于SCSI的協(xié)議,包括在TCP上封裝的SCSI(iSCSI)以及在FC上封裝的SCSI(FCP)。因此,發(fā)起者(以下稱作客戶機160)可通過經(jīng)由網(wǎng)絡(luò)185發(fā)出iSCSI和FCP消息來請求目標(以下稱作存儲設(shè)備100)的服務(wù),以便存取盤上存儲的信息。本領(lǐng)域的技術(shù)人員十分清楚,客戶機也可采用其它塊存取協(xié)議來請求綜合多協(xié)議存儲設(shè)備的服務(wù)。通過支持多個塊存取協(xié)議,多協(xié)議存儲設(shè)備對于異類SAN環(huán)境中的虛盤/lun提供統(tǒng)一且相干的存取解決方案。
存儲適配器128與存儲設(shè)備上運行的存儲操作系統(tǒng)200配合以存取客戶機所請求的信息。信息可存儲在盤130或適合存儲信息的其它類似媒體中。存儲適配器包括I/O接口電路,它通過I/O互連配置、如傳統(tǒng)的高性能FC串行鏈路拓撲耦合到盤上。信息由存儲適配器檢索,以及必要時,在通過系統(tǒng)總線123轉(zhuǎn)發(fā)給網(wǎng)絡(luò)適配器125、126之前由處理器122(或適配器128本身)處理,其中信息被格式化為數(shù)據(jù)包或消息并返回給客戶機。
信息在設(shè)備100上的存儲最好是實現(xiàn)為一個或多個存儲卷(例如VOL1-2150),它們包括物理存儲盤130的簇,定義盤空間的整個邏輯安排。卷中的盤通常被組織成一組或多組獨立(或廉價)盤冗余陣列(RAID)。通過在RAID組中的給定數(shù)量的物理盤上寫入數(shù)據(jù)“條”以及適當存儲關(guān)于分條數(shù)據(jù)的冗余信息,RAID實現(xiàn)增強了數(shù)據(jù)存儲的可靠性/完整性。冗余信息允許恢復(fù)存儲裝置出故障時丟失的數(shù)據(jù)。
明確地說,每個卷150由組織成RAID組140、142和144的物理盤130的陣列構(gòu)成。根據(jù)說明性RAID 4級配置,各RAID組的物理盤包括配置為存儲分條數(shù)據(jù)(D)的那些盤以及配置成存儲數(shù)據(jù)的奇偶性(P)的那些盤。但是,也可考慮其它RAID級配置(例如RAID 5)。在說明性實施例中,可采用最少一個奇偶性盤和一個數(shù)據(jù)盤。但是,一種典型實現(xiàn)可以是每個RAID組包括三個數(shù)據(jù)盤和一個奇偶性盤以及每卷包括至少一個RAID組。
為了便于對盤130的存取,存儲操作系統(tǒng)200實現(xiàn)隨處寫文件系統(tǒng),它與虛擬化模塊配合以提供把盤130所提供的存儲空間“虛擬化”的功能。文件系統(tǒng)在邏輯上將信息組織為盤上的命名目錄和文件對象(以下稱作“目錄”和“文件”)的分級結(jié)構(gòu)。各“盤上”文件可實現(xiàn)為配置成存儲信息、如數(shù)據(jù)的盤塊的集合,而目錄則可實現(xiàn)為特殊格式的文件,在其中存儲名稱以及對其它文件和目錄的鏈接。虛擬化系統(tǒng)允許文件系統(tǒng)進一步在邏輯上將信息組織為盤上的命名虛盤的分級結(jié)構(gòu),從而通過允許對命名文件和目錄的基于文件(NAS)的存取、同時還允許在基于文件的存儲平臺上對命名虛盤的基于塊(SAN)的存取,對存儲提供綜合NAS和SAN設(shè)備方法。
在說明性實施例中,存儲操作系統(tǒng)最好是可從Network Appliance,Inc.(Sunnyvale,California)購買的NetAppData ONTAPTM操作系統(tǒng),它實現(xiàn)隨處寫文件布局(WAFLTM)文件系統(tǒng)。但是,明確地考慮,根據(jù)本文所述的本發(fā)明原理,任何適當?shù)拇鎯Σ僮飨到y(tǒng)、包括適當位置可寫文件系統(tǒng)可增強使用。因此,在采用術(shù)語“WAFL”的情況下,應(yīng)當廣義地認為是表示以其它方式可適合本發(fā)明的理論的任何存儲操作系統(tǒng)。
本文所用的術(shù)語“存儲操作系統(tǒng)”一般表示可在計算機上工作的計算機可執(zhí)行代碼,它管理數(shù)據(jù)存取,以及在多協(xié)議存儲設(shè)備的情況下可實現(xiàn)數(shù)據(jù)存取語義,例如Data ONTAP存儲操作系統(tǒng),它實現(xiàn)為微核。存儲操作系統(tǒng)也可實現(xiàn)為在通用操作系統(tǒng)、如UNIX或Windows NT中工作的應(yīng)用程序,或者實現(xiàn)為具有可配置功能性的通用操作系統(tǒng),如本文所述,為存儲應(yīng)用而配置。
另外,本領(lǐng)域的技術(shù)人員理解,本文所述的本發(fā)明的技術(shù)可應(yīng)用于實現(xiàn)為或包括存儲系統(tǒng)的任何類型的專用(例如存儲服務(wù)設(shè)備)或通用計算機,包括獨立計算機或其部分。此外,本發(fā)明的理論可適合各種存儲系統(tǒng)體系結(jié)構(gòu),其中包括但不限于網(wǎng)絡(luò)連接存儲環(huán)境、存儲區(qū)域網(wǎng)以及直接連接到客戶機或主計算機的盤組件。因此,除了配置成執(zhí)行存儲功能并與其它設(shè)備或系統(tǒng)關(guān)聯(lián)的任何子系統(tǒng)之外,術(shù)語“存儲系統(tǒng)”還應(yīng)當廣義地包括這類配置。
圖2是可有利地與本發(fā)明配合使用的存儲操作系統(tǒng)200的示意框圖。存儲操作系統(tǒng)包括一系列軟件層,它們經(jīng)過組織以構(gòu)成綜合網(wǎng)絡(luò)協(xié)議棧,或者更一般來說,是提供讓客戶機采用塊和文件存取協(xié)議存取多協(xié)議存儲設(shè)備中存儲的信息的數(shù)據(jù)通路的多協(xié)議引擎。協(xié)議棧包括與網(wǎng)絡(luò)協(xié)議層、如IP層212及其支持傳輸機制、TCP層214和用戶數(shù)據(jù)報協(xié)議(UDP)層216接口的網(wǎng)絡(luò)驅(qū)動器(例如千兆位以太網(wǎng)驅(qū)動器)的媒體存取層210。文件系統(tǒng)協(xié)議層提供多協(xié)議文件存取,為此包括對DAFS協(xié)議218、NFS協(xié)議220、CIFS協(xié)議222以及超文本傳送協(xié)議(HTTP)協(xié)議224的支持。VI層226實現(xiàn)VI體系結(jié)構(gòu),以便提供DAFS協(xié)議218所要求的直接存取傳送(DAT)能力、例如RDMA。
iSCSI驅(qū)動器層228提供TCP/IP網(wǎng)絡(luò)協(xié)議層之上的塊協(xié)議存取,而FC驅(qū)動器層230則與FC HBA 126配合對綜合存儲設(shè)備接收和發(fā)送塊存取請求及響應(yīng)。FC和iSCSI驅(qū)動器提供對lun(虛盤)的FC特定的和iSCSI特定的存取控制,從而管理當存取多協(xié)議存儲設(shè)備中的單虛盤時對iSCSI或FCP或者對iSCSI和FCP兩者導(dǎo)出虛盤。另外,存儲操作系統(tǒng)包括實現(xiàn)例如RAID協(xié)議等盤存儲協(xié)議的盤存儲層240以及實現(xiàn)例如SCSI協(xié)議等盤存取協(xié)議的盤驅(qū)動器層250。
將盤軟件層與綜合網(wǎng)絡(luò)協(xié)議棧層橋接的是虛擬化系統(tǒng)300。圖3是虛擬化系統(tǒng)300的示意框圖,它通過與說明性實施為例如虛盤模塊330和SCSI目標模塊310的虛擬化模塊交互的文件系統(tǒng)320來實現(xiàn)。應(yīng)當指出,虛盤模塊330、文件系統(tǒng)320和SCSI目標模塊310可通過軟件、硬件、固件或其組合來實現(xiàn)。虛盤模塊330被分層在文件系統(tǒng)320上,從而使管理界面、如流線型用戶界面(UI 350)能夠響應(yīng)系統(tǒng)管理員向多協(xié)議存儲設(shè)備100發(fā)出命令而進行存取。本質(zhì)上,虛盤模塊330特別是通過實現(xiàn)由系統(tǒng)管理員經(jīng)由UI 350發(fā)出的虛盤(lun)命令的綜合集合,來管理SAN部署。這些虛盤命令被轉(zhuǎn)換成基本文件系統(tǒng)操作(“原語”),它們與文件系統(tǒng)320和SCSI目標模塊310交互以實現(xiàn)虛盤。
SCSI目標模塊310又通過提供將lun轉(zhuǎn)換成特殊虛盤文件類型的映射過程來發(fā)起盤或lun的模擬。SCSI目標模塊說明性地部署在FC和iSCSI驅(qū)動器228、230與文件系統(tǒng)320之間,從而提供SAN塊(lun)空間與文件系統(tǒng)空間之間的虛擬化系統(tǒng)300的轉(zhuǎn)換層,其中l(wèi)un表示為虛盤322。為此,SCSI目標模塊具有一組應(yīng)用編程接口(API 360),它們基于SCSI協(xié)議以及實現(xiàn)到iSCSI和FCP驅(qū)動器228、230的一致接口。通過將SAN虛擬化“部署”在文件系統(tǒng)320之上,多協(xié)議存儲設(shè)備顛倒先有系統(tǒng)采取的方法,從而為實質(zhì)上所有存儲存取協(xié)議提供單個統(tǒng)一存儲平臺。
文件系統(tǒng)320說明性地是基于消息的系統(tǒng);這樣,SCSI目標模塊310將SCSI請求變換為表示針對文件系統(tǒng)的操作的消息。例如,SCSI目標模塊所產(chǎn)生的消息可包括一種操作(例如讀、寫)以及路徑名稱(例如路徑描述符)和文件系統(tǒng)中表示的虛盤對象的文件名(例如特殊文件名)。SCSI目標模塊310將消息傳遞到文件系統(tǒng)層320作為例如函數(shù)調(diào)用365,其中執(zhí)行操作。
文件系統(tǒng)提供卷管理能力,用于對存儲裝置、如盤中存儲的信息的基于塊的存取。也就是說,除了提供文件系統(tǒng)語義、如存儲對象的命名之外,文件系統(tǒng)320提供一般與卷管理器相關(guān)聯(lián)的功能。這些功能包括(i)盤的聚集,(ii)盤的存儲帶寬的聚集,以及(iii)可靠性保證,例如鏡像和/或奇偶性(RAID),從而提供分層在文件系統(tǒng)上的一個或多個存儲對象。多協(xié)議存儲設(shè)備的一個特征是與這些卷管理能力相關(guān)聯(lián)的使用的簡化,尤其是當用于SAN部署時。
文件系統(tǒng)320說明性地實現(xiàn)具有盤上格式表示的WAFL文件系統(tǒng),它是采用例如4千字節(jié)(kB)塊以及采用索引節(jié)點來描述文件324的基于塊的。WAFL文件系統(tǒng)采用文件來存儲描述其文件系統(tǒng)的布局的元數(shù)據(jù);這些元數(shù)據(jù)文件包括索引節(jié)點文件等。包含索引節(jié)點編號的文件句柄、即標識符用于從盤檢索索引節(jié)點。在David Hitz等人的題為“用于保持文件系統(tǒng)的一致狀態(tài)以及用于創(chuàng)建文件系統(tǒng)的用戶可存取只讀副本的方法”的美國專利第5819292號(1998年10月6日授權(quán))中提供了文件系統(tǒng)、包括盤上索引節(jié)點和索引節(jié)點文件的結(jié)構(gòu)的描述,此專利通過引用結(jié)合于此,好像本文完整地提出那樣。
圖4是示意框圖,說明最好包括元數(shù)據(jù)部分410和數(shù)據(jù)部分450的盤上索引節(jié)點400。各索引節(jié)點400的元數(shù)據(jù)部分410中存儲的信息描述該文件,因此包括文件的類型(例如常規(guī)或目錄)412、文件的大小414、文件的時標(例如存取和/或修改)416以及文件的所有權(quán)、即用戶標識符(UID 418)和組ID(GID 420)。元數(shù)據(jù)部分410還包括xinode字段430,其中具有引用包含例如與文件或目錄相關(guān)聯(lián)的存取控制列表(ACL)信息的另一個盤上索引節(jié)點結(jié)構(gòu)的指針。但是,各索引節(jié)點的數(shù)據(jù)部分450的內(nèi)容根據(jù)類型字段412中定義的文件(索引節(jié)點)類型可有不同解釋。例如,目錄索引節(jié)點的數(shù)據(jù)部分450包含由文件系統(tǒng)控制的元數(shù)據(jù),而常規(guī)索引節(jié)點的數(shù)據(jù)部分則包含用戶定義的數(shù)據(jù)。在后一種情況中,數(shù)據(jù)部分450包含與文件相關(guān)聯(lián)的數(shù)據(jù)的表示。
明確地說,常規(guī)盤上索引節(jié)點的數(shù)據(jù)部分450可包含用戶數(shù)據(jù)或指針,后者引用用來存儲用戶數(shù)據(jù)的盤上的4kB數(shù)據(jù)塊。各指針最好是邏輯卷塊編號,從而促進當存取盤上的數(shù)據(jù)時文件系統(tǒng)與盤存儲(RAID)層240之間的效率。給定索引節(jié)點的受限大小(128字節(jié)),則在該索引節(jié)點的數(shù)據(jù)部分內(nèi)完整地表示具有小于或等于64字節(jié)的大小的用戶數(shù)據(jù)。但是,如果用戶數(shù)據(jù)大于64字節(jié)但小于或等于64kB,則索引節(jié)點的數(shù)據(jù)部分包括多達16個指針,其中的每個引用盤上的4kB數(shù)據(jù)塊。此外,如果數(shù)據(jù)的大小大于64千字節(jié)但小于或等于64兆字節(jié)(MB),則索引節(jié)點的數(shù)據(jù)部分450中的各指針引用包含1024個指針的間接節(jié)點,其中的每個指針引用盤上的4kB數(shù)據(jù)塊。各數(shù)據(jù)塊從盤130裝入存儲器124,以便存取該數(shù)據(jù)。另外,索引節(jié)點的元數(shù)據(jù)部分410的大小字段414表示文件的大小。
概括地說,文件系統(tǒng)的所有索引節(jié)點均組織為索引節(jié)點文件。文件系統(tǒng)(FS)信息塊指定文件系統(tǒng)中的信息布局,以及包括包含文件系統(tǒng)的其它所有索引節(jié)點的文件的索引節(jié)點。每個卷具有FS信息塊,它最好存儲于例如文件系統(tǒng)的RAID組內(nèi)的固定位置。根FS信息塊的索引節(jié)點可直接引用(指向)索引節(jié)點文件塊,或者可引用間接索引節(jié)點文件塊,這些間接塊又引用直接索引節(jié)點文件塊。在每個直接索引節(jié)點文件塊中嵌入了一些索引節(jié)點,其中的每個可引用間接塊,這些間接塊又引用文件或虛盤的數(shù)據(jù)塊。
再次參照圖3,文件系統(tǒng)實現(xiàn)對虛盤322的存取操作以及對就存儲單元的全局空間管理、如卷150和/或配額樹(qtree)328而言共存的文件324和目錄(dir 326)的存取操作。配額樹328是特殊目錄,它具有物理卷的名稱空間內(nèi)的邏輯子卷的屬性。各文件系統(tǒng)存儲對象(文件、目錄或虛盤)說明性地與一個配額樹相關(guān)聯(lián),以及配額、安全屬性及其它項目可按每個配額樹進行分配。虛盤和文件/目錄可被分層在配額樹328之上,配額樹328又被分層在卷150之上,如通過文件系統(tǒng)“虛擬化”層320抽象的那樣。
注意,文件系統(tǒng)320中的虛盤存儲對象與多協(xié)議存儲設(shè)備的SAN部署相關(guān)聯(lián),而文件和目錄存儲對象則與設(shè)備的NAS部署相關(guān)聯(lián)。文件和目錄一般不可經(jīng)由FC或SCSI塊存取協(xié)議進行存??;但是,文件可被轉(zhuǎn)換成虛盤,然后再通過SAN或NAS協(xié)議進行存取。虛盤可通過SAN(FC和SCSI)協(xié)議作為lun進行存取以及通過NAS(NFS和CIFS)作為文件進行存取。
雖然虛盤是包含適當操作和授權(quán)所需的全部數(shù)據(jù)的獨立對象,但虛盤內(nèi)容表(VTOC 370)則作為查找和加載虛盤的性能增強來提供。VTOC不是正確操作所必要的,可通過虛盤掃描來動態(tài)重構(gòu)。VTOC370是元數(shù)據(jù)文件中存儲的按卷數(shù)據(jù)結(jié)構(gòu),它用來優(yōu)化卷150中的持久虛盤322的位置確定及初始化。VTOC 370包含一個或多個記錄372,其中,每個記錄包含標志和文件條目信息,如上所述,它們可從表示文件系統(tǒng)320內(nèi)的虛盤的封裝存儲對象中所存儲的信息中動態(tài)重構(gòu)。具體來說,每個記錄372包括文件條目,其中包含(i)卷中的文件標識符(索引節(jié)點編號);(ii)虛盤(lun)索引節(jié)點的生成編號;以及(iii)目錄信息。目錄信息又包含其中具有虛盤的條目的父目錄(配額樹根)中的文件塊編號以及父目錄塊中的目錄條目的索引。
本發(fā)明涉及存儲虛擬化選擇技術(shù),它使將虛盤322分層在文件系統(tǒng)320的卷150上的虛擬化選擇過程“自動化”。響應(yīng)用戶創(chuàng)建虛盤的請求(命令),文件系統(tǒng)將一組盤130或盤的若干部分(盤區(qū)或“條”)的物理存儲區(qū)聚集為可動態(tài)分配以形成虛盤322的塊池。根據(jù)其基礎(chǔ)體系結(jié)構(gòu),文件系統(tǒng)還為虛盤提供可靠性保證。也就是說,文件系統(tǒng)320在所管理的盤之中創(chuàng)建的卷內(nèi)組織其存儲。此后,虛盤322在卷150內(nèi)作為命名存儲對象被創(chuàng)建,因而繼承(采取)與該卷相關(guān)聯(lián)的基礎(chǔ)可靠性配置。值得注意的是,這些部分被聚集和分配為具有可靠性保證的虛盤,而不用進一步牽涉存儲設(shè)備的用戶、如系統(tǒng)管理員。
明確地說,信息在多協(xié)議存儲設(shè)備的盤130中的存儲不是印刷字,而只是“原始”位存儲在盤中。文件系統(tǒng)320配置成根據(jù)聚集卷的所有盤的帶寬的輸入/輸出(I/O)存儲操作在盤上將信息寫(存儲)為那些盤上的連續(xù)長條。根據(jù)本發(fā)明的技術(shù),文件系統(tǒng)將該信息組織成卷的盤上的虛盤。從虛盤檢索信息時,I/O操作不是針對用戶所指定的盤。相反,那些操作對于用戶是透明的,因為文件系統(tǒng)根據(jù)其隨處寫布局策略以可靠方式對卷的所有盤上的數(shù)據(jù)“分條”。因此,虛盤322不需要明確地配置,因為虛擬化系統(tǒng)300以對用戶透明的方式創(chuàng)建虛盤。
如上所述,文件系統(tǒng)320將信息組織成盤130的卷150中的命名文件、目錄和虛盤對象。在各卷150之下是RAID組140-144的集合,它們對卷中的盤故障提供保護和可靠性。根據(jù)說明性RAID4配置對由多協(xié)議存儲設(shè)備提供服務(wù)的信息進行保護。這種保護等級可擴展為包括例如設(shè)備平臺中的同步鏡像。在卷上創(chuàng)建的受到RAID4保護的虛盤322在為卷150指定了附加同步鏡像保護時“繼承”了該保護。在這種情況下,同步鏡像保護不是虛盤的屬性,而是基礎(chǔ)卷的屬性以及文件系統(tǒng)320的可靠性保證。多協(xié)議存儲設(shè)備的這種“繼承”特征簡化了虛盤的管理,因為系統(tǒng)管理員不必處理可靠性問題。
虛盤是在卷中的一種特殊文件類型,它從普通(常規(guī))文件得出,但具有支持盤模擬的相關(guān)導(dǎo)出控制和操作限制。更明確地說,虛盤322為多索引節(jié)點對象,其中包括作為文件系統(tǒng)320內(nèi)的單一封裝存儲對象來管理的特殊文件索引節(jié)點以及至少一個相關(guān)流索引節(jié)點。虛盤322說明性地表明流索引節(jié)點的一個實施例,它與特殊文件索引節(jié)點配合,創(chuàng)建具有封裝特定安全性、管理和尋址(導(dǎo)出)信息的能力的新類型的文件存儲對象。在K.Patel的題為“表示文件系統(tǒng)的盤上結(jié)構(gòu)內(nèi)的命名數(shù)據(jù)流的系統(tǒng)和方法”的美國專利申請第09/891195號中描述了可有利地與本發(fā)明配合使用的流索引節(jié)點對象的一個實例,該申請于2001年6月25日提交,通過引用將其結(jié)合于此,好像本文完整地提出那樣。
根據(jù)本發(fā)明的一個方面,存儲虛擬化技術(shù)將物理盤大小限制和基礎(chǔ)物理結(jié)構(gòu)與呈現(xiàn)給客戶機的盤或lun分離。采用例如對于看似物理盤的虛盤從客戶機的角度易于管理的構(gòu)造,用戶可指定“正確大小”存儲器作為塊裝置(虛盤),供客戶機使用。也就是說,虛盤說明性地為固定大小的對象,它通過經(jīng)由命令行界面(CLI 32)或圖形用戶界面(GUI 354)采用簡單的“l(fā)un創(chuàng)建”命令來請求特定大小,從文件系統(tǒng)的全局存儲池中分配。
雖然虛盤不是多協(xié)議存儲設(shè)備內(nèi)的物理盤,但存儲虛擬化技術(shù)“模擬”物理盤,即以對用戶和客戶機透明的方式。該技術(shù)所實現(xiàn)的盤的一個重要的模擬屬性是,除了通過CLI或GUI之外,無法創(chuàng)建或破壞(刪除)虛盤。這種屬性意味著,當它可通過NAS協(xié)議存取時(在經(jīng)由共享的命令的明確動作之后),虛盤無法通過寫到其分配空間外部的NAS操作暗中擴展。虛盤可以在原位沒有復(fù)制操作地且以對客戶機透明的方式重新確定大小,例如使之更大(“生長”)或更小(“收縮)。值得注意的是,虛盤可在用戶控制下(例如經(jīng)由通過UI 350發(fā)出的lun命令)生長或收縮,同時保存對其應(yīng)用數(shù)據(jù)的塊及NAS多協(xié)議存取。當虛盤長大時,分配附加存儲空間;當收縮時,來自虛盤的額外空間返回給全局空閑池。此外,用戶(系統(tǒng)管理員)具有動態(tài)(“即時”)創(chuàng)建用于傳統(tǒng)塊存取應(yīng)用的虛盤的能力。
通過在存儲裝置中采用在客戶機上所用的管理工具、根據(jù)簡易名稱(由用戶定義的字母和數(shù)字組成)對它們進行標識,本發(fā)明的技術(shù)還簡化了虛盤的管理。SAN客戶機通常根據(jù)邏輯編號或lun對盤進行標識和尋址。但是,自動存儲虛擬化技術(shù)使系統(tǒng)管理員可以根據(jù)邏輯名稱來管理虛盤及其尋址。為此,多協(xié)議存儲設(shè)備的虛盤模塊330將邏輯名稱映射到虛盤。例如,當創(chuàng)建虛盤時,系統(tǒng)管理員以“正確大小”分配虛盤,并為它指定一般對其目標應(yīng)用有意義的名稱(例如/vol/vol0/database,用以保存數(shù)據(jù)庫)。
存儲虛擬化技術(shù)通過定義在文件系統(tǒng)“之上”的盤的虛盤抽象來處理性能限制的問題。通過為虛盤提供比需要僅滿足空間要求的較少數(shù)量的盤驅(qū)動器的連接可得到的更大帶寬,這種抽象聚集基礎(chǔ)盤的帶寬。另外,與純物理實現(xiàn)相比,文件系統(tǒng)的延遲分配策略和寫入聚集可用于優(yōu)化虛盤的帶寬。如上所述,虛盤在文件系統(tǒng)之上的分層還允許虛盤繼承基礎(chǔ)卷的可靠性配置(例如RAID 4和/或同步鏡像)。
根據(jù)本發(fā)明的另一個方面,存儲虛擬化技術(shù)提供多協(xié)議存儲設(shè)備中存儲的虛盤322的盤上表示。圖5是示意框圖,說明根據(jù)本發(fā)明的索引節(jié)點數(shù)據(jù)結(jié)構(gòu)的盤上表示500,其中包括虛盤(lun)和流(屬性)索引節(jié)點。目錄(DIR1)索引節(jié)點502包括指針505的數(shù)據(jù)部分504,它引用目錄數(shù)據(jù)塊,其中之一為目錄塊506。目錄塊包括多個條目,每個包含索引節(jié)點的外部表示(即索引節(jié)點的名稱)以及該索引節(jié)點的映射信息(即索引節(jié)點編號)。那些條目之一、即條目508包含引用lun索引節(jié)點510的映射信息(例如指針)。
lun索引節(jié)點510是特殊文件索引節(jié)點,它用作存儲與虛盤322相關(guān)聯(lián)的數(shù)據(jù)的主容器。也就是說,lun索引節(jié)點包括數(shù)據(jù)部分518,它可存儲實際的(用戶或應(yīng)用)數(shù)據(jù)或引用用來存儲該數(shù)據(jù)的盤上4kB數(shù)據(jù)塊的指針。這個“缺省”容器中所存儲的數(shù)據(jù)可由客戶機采用傳統(tǒng)的塊存取協(xié)議、如SCSI協(xié)議來檢索(讀取)和存儲(寫入)。當適當配置時,虛盤還可采用傳統(tǒng)的文件級存取協(xié)議、如NFS協(xié)議來存取。在這種配置中,虛盤對于這類存取“看起來”是常規(guī)文件。lun索引節(jié)點510還包括元數(shù)據(jù)部分512,其中包含元數(shù)據(jù)、如虛盤的類型513(即特殊虛盤類型)和大小516,它在索引節(jié)點創(chuàng)建時為零。標志_流標志514將lun索引節(jié)點510標識為不僅具有缺省數(shù)據(jù)容器部分518,而且還具有一個或多個流“部分”,由流_目錄索引節(jié)點520提供。
為了存取流_目錄索引節(jié)點520,lun索引節(jié)點510中的xinode字段515的指針被修改為引用那個索引節(jié)點。流_目錄索引節(jié)點520包括元數(shù)據(jù)部分522,它包含類型(流_目錄)字段524以及引用包含例如與虛盤關(guān)聯(lián)的存取控制(如CIFS許可)信息的另一個盤上索引節(jié)點結(jié)構(gòu)的xinode字段525。索引節(jié)點520還包括數(shù)據(jù)部分526,其中包含引用與虛盤關(guān)聯(lián)的流目錄數(shù)據(jù)塊、如流目錄塊530的指針528。流目錄塊530包括數(shù)據(jù)部分532,它包括多個條目,其中的每個包含流索引節(jié)點的外部表示以及該索引節(jié)點的映射信息(即索引節(jié)點編號)。那些條目之一、即條目534包含引用屬性(流)索引節(jié)點540的映射信息(例如指針)。
屬性索引節(jié)點540包括元數(shù)據(jù)部分542,它包括類型(流)字段543以及用作保存與虛盤322關(guān)聯(lián)的各種命名屬性的持久存儲區(qū)的數(shù)據(jù)部分544。屬性是文件系統(tǒng)內(nèi)部的一種實現(xiàn)機制,不由用戶管理。這些屬性包括允許虛盤作為邏輯單元號(lun)輸出到例如SAN客戶機的信息。另外,屬性包括允許封裝虛盤在例如重新引導(dǎo)操作中維持的信息,并且允許相對于SAN客戶機作為單盤對象來管理虛盤。
屬性的實例之中包括幾何尺寸545、SCSI序列號546、空間保留547、狀態(tài)(聯(lián)機/脫機)548以及導(dǎo)出信息549,后者通過例如指定虛盤要導(dǎo)出到的發(fā)起者(即獲準存取虛盤的那些發(fā)起者)的列表來控制對虛盤的存取。幾何尺寸信息545與模擬盤或lun所需的虛盤的物理幾何尺寸有關(guān)。例如,虛盤大小(由用戶提供)用算法轉(zhuǎn)換成幾何尺寸信息(例如柱面大小),它可返回給SAN客戶機作為盤或lun的表示。雖然幾何尺寸545說明性地表示為持久地存儲在屬性索引節(jié)點540中,但在一個備選實施例中,可動態(tài)(即時)計算幾何尺寸信息545。
明確地說,在虛盤創(chuàng)建及幾何尺寸選擇過程中考慮虛盤的大小調(diào)整。最小10x重定大小能力說明性地在初始盤幾何尺寸的選擇中考慮。也就是說,虛盤的初始請求大小被放大10x,以便計算用作幾何尺寸的基礎(chǔ)的所得柱面大小。所得柱面大小還是關(guān)于虛盤可調(diào)整到多大的限制因素。幾何尺寸信息是恒定的;即,一旦創(chuàng)建了虛盤,則其幾何尺寸的幾乎所有方面都是固定的。只有柱面數(shù)量可能改變,它在說明性實施例中具有65535的最大值。
流目錄塊530的其它條目536、538包含引用其它流索引節(jié)點、如lunmap(流)索引節(jié)點550和持久保留(流)索引節(jié)點560的映射信息(例如指針)。lunmap索引節(jié)點550包括元數(shù)據(jù)部分552,它包括類型(流)字段544以及用作保存名稱值對的列表558的持久存儲區(qū)的數(shù)據(jù)部分556。在說明性實施例中,名稱為發(fā)起者組(igroup)名稱,以及值為lun標識符(ID)。igroup是對于與一個或多個發(fā)起者關(guān)聯(lián)的一個或多個地址分配的邏輯命名實體(取決于是否配置了群集環(huán)境)。這些地址可包含WWN地址或iSCSI ID。“l(fā)un map”命令用于將一個或多個虛盤導(dǎo)出到igroup,也就是使虛盤讓igroup“可見”。在這方面,“l(fā)un map”命令等效于NFS導(dǎo)出或CIFS共享。這樣,WWN地址或iSCSI ID標識被準許存取lun map命令指定的那些虛盤的客戶機。
持久保留索引節(jié)點560包括元數(shù)據(jù)部分562,它包括類型(流)字段564以及用作保存提供有關(guān)虛盤的所有權(quán)及存取信息的持久保留記錄列表570的持久存儲區(qū)的數(shù)據(jù)部分566。在國家信息技術(shù)標準委員會的Committee T10的SCSI-3基本命令-3中描述了持久保留。各持久保留記錄包含連系(發(fā)起者ID)572、保留密鑰(WWN)574和保留類型(共享、專用、讀、寫)576。
總之,新穎的虛盤存儲對象構(gòu)造為包含控制和管理單存儲實體中的那個對象所需的數(shù)據(jù)和元數(shù)據(jù),這在運行于多協(xié)議存儲設(shè)備100上的存儲操作系統(tǒng)200的框架內(nèi)易于管理。為此,作為文件系統(tǒng)中的單一封裝單元來管理虛盤(數(shù)據(jù)及屬性)。這種“封裝”屬性使運行于存儲設(shè)備中的應(yīng)用能夠不必重新編碼而與虛盤配合工作。數(shù)據(jù)和屬性的封裝關(guān)聯(lián)還確保數(shù)據(jù)保護操作期間的保留。例如,當例如異步鏡像操作期間備份封裝虛盤存儲實體時,封裝屬性實現(xiàn)與那個實體關(guān)聯(lián)的數(shù)據(jù)和屬性的“綁定”。
明確地說,虛盤的數(shù)據(jù)(文件索引節(jié)點)和屬性(流索引節(jié)點)之間的綁定建立單一封裝對象,它是“自描述的”,因為它包含例如存取那個對象所需的全部信息。因此,不需要任何“外部”信息來描述虛盤對象。應(yīng)當指出,在寫操作(或者透明地“即時”發(fā)生整理碎片時的讀操作)期間,虛盤與盤塊之間沒有綁定。盤塊映射到駐留在文件系統(tǒng)中的對象的邏輯塊地址。在這種情況下,文件系統(tǒng)用作動態(tài)卷管理器。這種分離是采用文件系統(tǒng)作為基礎(chǔ)存儲處理器的結(jié)果。
根據(jù)本發(fā)明,虛盤具有許多其它屬性,包括“間隔保留”。也就是說,與可以是任意大小以及可適應(yīng)增加文件大小的連續(xù)寫操作的常規(guī)文件不同,虛盤局限在當它被創(chuàng)建時所指定的存儲空間。但是,所創(chuàng)建的虛盤可明確地重定大小,以便增加其存儲空間。在虛盤被創(chuàng)建時不耗用任何存儲空間、因此不必完全填充的意義上,虛盤也是“稀疏”文件類型。當數(shù)據(jù)存儲在塊中時,文件系統(tǒng)才為虛盤分配存儲空間、例如那些塊;因此,虛盤用作沒有預(yù)先分配存儲區(qū)的“占位符”。
當虛盤以特定大小被創(chuàng)建時,空間保留屬性確保,在文件系統(tǒng)中與所指定大小對應(yīng)的存儲空間始終被保留,而不管附加文件和虛盤的創(chuàng)建以及文件系統(tǒng)的持久鏡像的生成。稀疏文件類型屬性還確保寫操作不會無法對虛盤進行(從SAN客戶機的角度,這通常相當于盤故障)。這種對現(xiàn)有虛盤的寫操作始終完成的保證是支持對客戶機的透明度所需要的。
稀疏文件屬性的一個優(yōu)點在于,虛盤的創(chuàng)建(例如“l(fā)un創(chuàng)建”)實質(zhì)上瞬時發(fā)生。由于沒有預(yù)先分配與虛盤關(guān)聯(lián)的存儲空間,因此虛盤的創(chuàng)建僅采用最初需要的核算信息快速有效地發(fā)生。此后,對虛盤發(fā)生寫操作時分配存儲塊。在這個上下文中,塊的預(yù)先分配涉及對那些塊的內(nèi)容的初始化(“清零”),這對于較大容量的盤可能耗用相當多的時間。這種屬性不僅允許快速創(chuàng)建虛盤,它還支持數(shù)據(jù)完整性及保密性(即,既不需要把數(shù)據(jù)初始化,也不需要破壞舊數(shù)據(jù))。
圖6是流程圖,說明根據(jù)本發(fā)明創(chuàng)建虛盤時所涉及的說明性步驟序列。此序列在步驟600開始,并進行到步驟602,其中,用戶(系統(tǒng)管理員)通過例如經(jīng)由與多協(xié)議存儲設(shè)備關(guān)聯(lián)的CLI 352、GUI 354或類似的管理界面發(fā)出虛盤(“l(fā)un創(chuàng)建”)命令來創(chuàng)建虛盤。從用戶的角度,lun創(chuàng)建命令是原子操作,它指定虛盤(lun)的創(chuàng)建以及虛盤的預(yù)期大小和指定虛盤位置的路徑描述符(完整路徑名稱)。注意,路徑描述符包含將虛盤(由特殊文件名來標識)分層在其上的卷和目錄的標識。作為響應(yīng),文件系統(tǒng)320與虛盤模塊330配合以把基礎(chǔ)盤所提供的存儲空間“虛擬化”,并創(chuàng)建由創(chuàng)建命令指定的虛盤。為此,虛盤模塊330處理虛盤命令以“調(diào)用”文件系統(tǒng)320中的基本操作(“原語”),它們實現(xiàn)虛盤(lun)的高級概念。
例如,在步驟604,虛盤模塊與文件系統(tǒng)320配合以檢查指定的路徑描述符和大小。這個檢查操作檢驗(i)路徑描述符中指定的卷存在,(ii)先前在指定卷中沒有分配(特殊文件)名稱,以及(iii)在指定卷中存在足夠的存儲空間用于所創(chuàng)建的虛盤。然后,在步驟606確定是否成功地檢查指定路徑描述符和大小。如果為否,則虛盤創(chuàng)建在步驟608中止,然后序列在步驟620結(jié)束。如果路徑描述符和大小已經(jīng)檢查,則文件系統(tǒng)和虛盤模塊配合以創(chuàng)建與虛盤相關(guān)聯(lián)的文件索引節(jié)點,以及為該索引節(jié)點設(shè)置指定大小(步驟610)。在虛盤創(chuàng)建過程的步驟610,根據(jù)例如創(chuàng)建文件索引節(jié)點(創(chuàng)建文件)原語來創(chuàng)建常規(guī)(普通)文件。
此后,在步驟612,根據(jù)創(chuàng)建流索引節(jié)點(創(chuàng)建流)原語來創(chuàng)建流索引節(jié)點。創(chuàng)建這個流索引節(jié)點是為了存儲與待創(chuàng)建虛盤相關(guān)聯(lián)(“綁定”)的屬性。在步驟614,流索引節(jié)點被填充用戶所提供的屬性。這里,執(zhí)行原語(流寫入),它將信息存儲在流索引節(jié)點中。屬性之中可包括虛盤的狀態(tài)、通過網(wǎng)絡(luò)文件系統(tǒng)協(xié)議共享虛盤的許可以及SCSI查詢信息、例如SCSI序列號。注意,設(shè)置文件所有者和組ID參數(shù),以便在通過網(wǎng)絡(luò)文件系統(tǒng)協(xié)議導(dǎo)出虛盤時使用??臻g保留保證也被設(shè)置,使得對虛盤的寫操作不會失敗。然后,執(zhí)行另一個原語,將文件索引節(jié)點的類型從常規(guī)轉(zhuǎn)換成“虛盤”(步驟616),從而在步驟618創(chuàng)建虛盤(lun)索引節(jié)點。注意,文件類型在步驟616從常規(guī)到虛盤的轉(zhuǎn)換防止文件系統(tǒng)可能的破壞。然后,該序列在步驟620結(jié)束。
雖然已經(jīng)表示及描述了根據(jù)本發(fā)明的技術(shù)、用于創(chuàng)建虛盤的步驟的說明性序列,但是要理解,在本發(fā)明的精神和范圍之內(nèi),可進行其它各種變更和修改。例如,在一個備選實施例中,說明性虛盤創(chuàng)建過程的步驟610-616可改為直接創(chuàng)建虛盤(lun)索引節(jié)點,包括流索引節(jié)點以及為流索引節(jié)點填充屬性。此外,本領(lǐng)域的技術(shù)人員會理解,可采用確保根據(jù)本發(fā)明技術(shù)原理、從用戶角度來看的創(chuàng)建的這種原子性的構(gòu)造的其它方法。
有利的是,虛盤顯示為流索引節(jié)點對象的一個實施例,它與文件索引節(jié)點對象配合,創(chuàng)建具有封裝特定安全性、管理及尋址(導(dǎo)出)信息的能力的新的特殊類型的文件存儲對象。具體來說,虛盤封裝限制/控制對虛盤的存取的安全性信息(如存取控制和持久保留記錄),從而提供通過NAS或者SAN(塊)協(xié)議的多協(xié)議存取,同時保留數(shù)據(jù)完整性。例如,可準許通過NAS協(xié)議對虛盤的讀取訪問,而對虛盤的讀/寫訪問則可準許通過SAN(塊)協(xié)議進行。但是,通過NAS協(xié)議對虛盤的寫訪問在通過塊協(xié)議的存取被拒絕時是可允許的。虛盤的特殊文件類型增強了虛盤的集合的管理,用于例如庫存以及從備份媒體恢復(fù)。此外,通過基礎(chǔ)文件系統(tǒng)的支持,特殊類型有助于區(qū)分虛盤的某些操作、如空間保留。
以上描述針對本發(fā)明的特定實施例。但非常明顯,可對所述實施例進行其它變更和修改,同時獲得其部分或全部優(yōu)點。例如,明確地考慮,本發(fā)明的理論可實現(xiàn)為其中包括具有在計算機上執(zhí)行的程序指令的計算機可讀媒體的軟件、硬件、固件或其組合。因此,本描述只是作為實例而不是限制本發(fā)明的范圍。因而,所附權(quán)利要求的目的是涵蓋落入本發(fā)明真實精神和范圍內(nèi)的所有這類變更和修改。
權(quán)利要求
1.一種用于創(chuàng)建存儲系統(tǒng)的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)的虛擬盤(虛盤)的方法,所述方法包括以下步驟將盤的若干部分的物理存儲區(qū)聚集成塊池;動態(tài)分配所述盤的若干部分以形成虛盤;以及根據(jù)所述文件系統(tǒng)的基礎(chǔ)體系結(jié)構(gòu)為所述虛盤提供可靠性保證,其中響應(yīng)用戶創(chuàng)建虛盤的請求來執(zhí)行聚集、動態(tài)分配以及提供的步驟,而不需要進一步用戶參與。
2.如權(quán)利要求1所述的方法,其特征在于,所述盤的若干部分是盤區(qū)。
3.如權(quán)利要求1所述的方法,其特征在于還包括以下步驟在所管理的盤之中創(chuàng)建的卷內(nèi)組織所述文件系統(tǒng)的存儲區(qū);創(chuàng)建所述虛盤作為所述卷之一內(nèi)的存儲對象;以及代表所述虛盤繼承與所述卷相關(guān)聯(lián)的基礎(chǔ)可靠性配置。
4.如權(quán)利要求1所述的方法,其特征在于還包括以下步驟在用戶控制下擴大或收縮所述虛盤,同時保留對所述虛盤中存儲的應(yīng)用數(shù)據(jù)的塊和網(wǎng)絡(luò)連接存儲器(NAS)多協(xié)議存取。
5.一種用于在存儲系統(tǒng)上創(chuàng)建虛擬盤(虛盤)的系統(tǒng),所述系統(tǒng)包括存儲操作系統(tǒng),駐留在所述存儲系統(tǒng)的存儲器中,調(diào)用支持配置成在邏輯上將信息組織成所述存儲系統(tǒng)的卷內(nèi)的虛盤的分級結(jié)構(gòu)的文件系統(tǒng)的存儲操作,每個虛盤存儲在所述卷中作為包含用作存儲與所述虛盤相關(guān)聯(lián)的數(shù)據(jù)的主容器的邏輯單元號(lun)索引節(jié)點以及用作存儲各種屬性的持久存儲區(qū)的至少一個流索引節(jié)點的表示,其中所述lun索引節(jié)點和至少一個相關(guān)流索引節(jié)點作為所述文件系統(tǒng)內(nèi)的單一封裝存儲對象來管理。
6.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述至少一個流索引節(jié)點是屬性索引節(jié)點。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述lun索引節(jié)點包括數(shù)據(jù)部分,所述數(shù)據(jù)部分包括數(shù)據(jù)和引用用來存儲所述數(shù)據(jù)的盤上數(shù)據(jù)塊的指針其中之一。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述lun索引節(jié)點還包括元數(shù)據(jù)部分,其中包含所述虛盤的類型和大小,所述元數(shù)據(jù)部分還包含將所述lun索引節(jié)點標識為數(shù)據(jù)容器和一個或多個流的標志流標志。
9.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述屬性索引節(jié)點包括用作保存與所述虛盤相關(guān)聯(lián)的各種命名屬性的持久存儲區(qū)的數(shù)據(jù)部分,所述屬性包括允許所述虛盤作為lun導(dǎo)出到所述存儲系統(tǒng)的客戶機以及使所述虛盤能夠相對于所述客戶機作為單一盤對象來管理的信息。
10.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述屬性還包括序列號、空間保留、狀態(tài)和幾何尺寸信息中的至少一個。
11.如權(quán)利要求5所述的系統(tǒng),其特征在于,各虛盤還包括其中包含用作保存名稱值對列表的持久存儲區(qū)的數(shù)據(jù)部分的lunmap索引節(jié)點以及其中包含用作保存持久保留記錄列表的持久存儲區(qū)的數(shù)據(jù)部分的持久保留索引節(jié)點。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述持久保留記錄提供與所述虛盤有關(guān)的所有權(quán)和存取信息。
13.如權(quán)利要求5所述的系統(tǒng),其特征在于還包括元數(shù)據(jù)文件中存儲的按卷數(shù)據(jù)結(jié)構(gòu),它用來優(yōu)化卷中的虛盤的位置確定及初始化。
14.如權(quán)利要求13所述的系統(tǒng),其特征在于,所述數(shù)據(jù)結(jié)構(gòu)是虛盤內(nèi)容表數(shù)據(jù)結(jié)構(gòu),其中包括一個或多個含有可從表示所述虛盤的封裝存儲對象中存儲的信息來動態(tài)重構(gòu)的文件條目信息的記錄。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于,各個記錄包括含有下列各項的文件條目卷上的文件標識符;所述lun索引節(jié)點的生成編號;以及目錄信息,包括含有所述虛盤的條目的父目錄中的文件塊編號以及父目錄塊中的目錄條目的索引。
16.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述虛盤封裝限制對所述虛盤的存取的安全性信息,從而提供通過網(wǎng)絡(luò)連接存儲器或存儲區(qū)域網(wǎng)協(xié)議的多協(xié)議存取,同時保留數(shù)據(jù)完整性。
17.一種用于使創(chuàng)建由多協(xié)議存儲設(shè)備的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)的虛擬盤(虛盤)的選擇過程自動化的方法,所述方法包括以下步驟通過所述多協(xié)議存儲設(shè)備的管理界面發(fā)出lun創(chuàng)建命令,所述lun創(chuàng)建命令指定虛盤的大小以及虛盤的位置的路徑描述符;以及響應(yīng)所述lun創(chuàng)建命令而創(chuàng)建虛盤。
18.如權(quán)利要求17所述的方法,其特征在于還包括采用與所述虛盤的幾何尺寸有關(guān)的信息重新確定虛盤大小的步驟。
19.如權(quán)利要求18所述的方法,其特征在于,重新確定大小的步驟還包括用算法將所述指定虛盤大小轉(zhuǎn)換成所述幾何尺寸信息的步驟,所述幾何尺寸信息提供關(guān)于所述虛盤可重新調(diào)整到多大的限制因素。
20.如權(quán)利要求19所述的方法,其特征在于,所述幾何尺寸信息為柱面大小。
21.一種用于創(chuàng)建多協(xié)議存儲設(shè)備的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)的虛擬盤(虛盤)的方法,所述方法包括以下步驟通過所述多協(xié)議存儲設(shè)備的管理界面發(fā)出虛盤創(chuàng)建命令,所述虛盤創(chuàng)建命令指定虛盤的大小以及虛盤的位置的路徑描述符;創(chuàng)建與所述虛盤相關(guān)聯(lián)的文件索引節(jié)點,所述文件索引節(jié)點具有常規(guī)文件類型;創(chuàng)建流索引節(jié)點,用于存儲與所述虛盤相關(guān)聯(lián)的屬性;為所述流索引節(jié)點填充屬性;以及將所述文件索引節(jié)點的文件類型從常規(guī)轉(zhuǎn)換為虛盤,從而創(chuàng)建虛盤。
22.如權(quán)利要求21所述的方法,其特征在于在所述發(fā)出步驟之后還包括以下步驟在所述多協(xié)議存儲設(shè)備的虛擬化系統(tǒng)中檢查所述指定的大小和路徑描述符;如果所述路徑描述符和大小沒有檢查,則中止所述虛盤的創(chuàng)建;以及如果檢查了所述路徑描述符和大小,則進入創(chuàng)建文件索引節(jié)點的步驟。
23.如權(quán)利要求21所述的方法,其特征在于,創(chuàng)建文件索引節(jié)點的步驟還包括為所述文件索引節(jié)點設(shè)置所述指定大小的步驟。
24.如權(quán)利要求21所述的方法,其特征在于,所述屬性包括虛盤的狀態(tài)、對于通過網(wǎng)絡(luò)文件系統(tǒng)協(xié)議共享虛盤的許可以及查詢信息。
25.如權(quán)利要求24所述的方法,其特征在于,所述填充步驟還包括以下步驟設(shè)置文件所有者和組標識參數(shù),以便在通過所述網(wǎng)絡(luò)文件系統(tǒng)協(xié)議導(dǎo)出虛盤時使用;以及設(shè)置空間保留保證,使得對虛盤的寫操作不會失敗。
26.一種用于使在存儲設(shè)備上創(chuàng)建虛擬盤(虛盤)的選擇過程自動化的系統(tǒng),所述系統(tǒng)包括處理器;存儲器,耦合到所述處理器,并且具有所述處理器可尋址的存儲單元;至少一個盤,耦合到所述存儲器和處理器;以及存儲操作系統(tǒng),駐留在所述存儲器中,調(diào)用支持配置成在邏輯上將信息組織成所述盤中的虛盤的分級結(jié)構(gòu)的文件系統(tǒng)的存儲操作,每個虛盤存儲在所述盤中作為包含用作存儲與所述虛盤相關(guān)聯(lián)的數(shù)據(jù)的主容器的邏輯單元號(lun)索引節(jié)點以及用作存儲各種屬性的持久存儲區(qū)的屬性索引節(jié)點的表示,其中所述lun索引節(jié)點和屬性索引節(jié)點作為所述文件系統(tǒng)內(nèi)的單一封裝存儲對象來管理。
27.一種用于使創(chuàng)建由存儲設(shè)備的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)的虛擬盤(虛盤)的存儲虛擬化過程自動化的方法,所述方法包括以下步驟通過所述存儲設(shè)備的管理界面發(fā)出虛盤創(chuàng)建命令,所述虛盤創(chuàng)建命令指定虛盤的大小和虛盤的位置的路徑描述符;創(chuàng)建與所述虛盤相關(guān)聯(lián)的文件索引節(jié)點,所述文件索引節(jié)點具有虛盤文件類型;創(chuàng)建流索引節(jié)點,用于存儲與所述虛盤相關(guān)聯(lián)的屬性;以及為所述流索引節(jié)點填充屬性。
28.如權(quán)利要求27所述的方法,其特征在于,所述虛盤創(chuàng)建命令為lun創(chuàng)建命令。
29.用于在由多協(xié)議存儲設(shè)備的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)上分層設(shè)置虛擬盤(虛盤)的設(shè)備,所述設(shè)備包括用于將盤的若干部分的物理存儲區(qū)聚集為塊池的部件;用于動態(tài)分配所述盤的若干部分以形成虛盤的部件;以及用于根據(jù)所述文件系統(tǒng)的基礎(chǔ)體系結(jié)構(gòu)為所述虛盤提供可靠性保證的部件,其中響應(yīng)用戶創(chuàng)建虛盤的請求來執(zhí)行聚集、動態(tài)分配及提供的部件,而不需要進一步用戶參與。
30.一種計算機可讀媒體,包含用于由存儲系統(tǒng)的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)的虛擬盤(虛盤)的存儲虛擬化的可執(zhí)行程序指令,所述可執(zhí)行程序指令包含用于以下操作的程序指令通過所述存儲系統(tǒng)的管理界面發(fā)出lun創(chuàng)建命令,所述lun創(chuàng)建命令指定虛盤的大小和虛盤的位置的路徑描述符;以及響應(yīng)所述lun創(chuàng)建命令而創(chuàng)建虛盤。
31.一種用于由多協(xié)議存儲設(shè)備的存儲操作系統(tǒng)所實現(xiàn)的文件系統(tǒng)上的虛擬盤(虛盤)的存儲虛擬化的方法,所述方法包括以下步驟提供所述文件系統(tǒng)的封裝存儲對象,所述封裝存儲對象包括用于存儲與所述虛盤相關(guān)聯(lián)的數(shù)據(jù)的容器以及用于存儲與所述虛盤相關(guān)聯(lián)的屬性的持久存儲區(qū);以及作為邏輯單元號來存取所述封裝存儲對象。
全文摘要
如圖1所示,一種存儲虛擬化選擇技術(shù)使在多協(xié)議存儲設(shè)備(100)的存儲操作系統(tǒng)(200)所實現(xiàn)的文件系統(tǒng)的卷(150)和(160)上創(chuàng)建虛擬盤(虛盤)存儲對象的虛擬化選擇過程“自動化”。文件系統(tǒng)提供一種虛擬化系統(tǒng),它將一組盤(130)或盤的若干部分(如盤區(qū))的物理存儲區(qū)聚集為可動態(tài)分配以形成虛盤的塊池。根據(jù)其基本體系結(jié)構(gòu),文件系統(tǒng)還為虛盤提供可靠性保證。也就是說,文件系統(tǒng)在所管理的盤之中創(chuàng)建的卷內(nèi)組織其存儲區(qū)。此后,虛盤在卷內(nèi)作為存儲對象被創(chuàng)建,因而繼承了與該卷相關(guān)聯(lián)的基礎(chǔ)可靠性配置。
文檔編號G06F17/30GK1688981SQ03823825
公開日2005年10月26日 申請日期2003年7月28日 優(yōu)先權(quán)日2002年8月9日
發(fā)明者V·拉彥, M·斯里尼瓦桑, B·帕沃夫斯基, D·B·博倫, B·H·路易斯 申請人:網(wǎng)絡(luò)裝置公司