TW201510725A - 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法 - Google Patents

執行儲存虛擬化之儲存子系統及儲存系統架構及其方法 Download PDF

Info

Publication number
TW201510725A
TW201510725A TW103143870A TW103143870A TW201510725A TW 201510725 A TW201510725 A TW 201510725A TW 103143870 A TW103143870 A TW 103143870A TW 103143870 A TW103143870 A TW 103143870A TW 201510725 A TW201510725 A TW 201510725A
Authority
TW
Taiwan
Prior art keywords
validity check
input
host
output access
access command
Prior art date
Application number
TW103143870A
Other languages
English (en)
Other versions
TWI514147B (zh
Inventor
Gordon Schnapp Michael
Ching-Hua Fang
Original Assignee
Infortrend Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infortrend Technology Inc filed Critical Infortrend Technology Inc
Publication of TW201510725A publication Critical patent/TW201510725A/zh
Application granted granted Critical
Publication of TWI514147B publication Critical patent/TWI514147B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1004Compatibility, e.g. with legacy hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一種於一儲存系統架構下產生一虛擬卷之方法,該儲存系統架構包含一主機及至少一磁碟陣列子系統。該等磁碟陣列子系統各包含一儲存控制器。該等磁碟陣列子系統之至少其一包含一實體儲存陣列及一實體儲存媒體陣列。該方法包含:映射該實體儲存陣列至複數個媒體區,其中,每一媒體區包含複數個區段;提供一虛擬池來實現一區段交互參照功能,其中,該虛擬池定義位於該虛擬池之區段中之一區段索引(SI)來交互參照虛擬池區段至實體媒體區位置;提供一轉換方法、一程序及一功能中之其一來映射虛擬池容量至一虛擬卷;以及,呈現該虛擬捲給該主機。

Description

執行儲存虛擬化之儲存子系統及儲存系統架構及其方法
本發明係有關於一種虛擬卷生成方法,尤指一種於一儲存系統架構下產生一虛擬卷之方法。
在習知的技術中,由RAID子系統所映射出來的邏輯磁碟機/分割區(LD/partition)係呈現在主機通道上成為實體卷(physical volume,PV)給主機存取,主機存取這些PV時係直接利用這些LD/partition的LBA來進行存取。因此,一旦RAID子系統將這些PV呈現給主機之後,便很難再變更這些PV及所對應的LD/partition的組態(configuration),特別是,要想減小一個PV及所對應的LD/partition的容量更是完全不可能。這種架構使得RAID子系統的彈性受到一些限制,因而在子系統儲存空間的運用上受到很大的限制。
舉例而言,若有一個RAID子系統之容量有800GB,原本被組態設定為兩個400GB的LD1及LD2後呈現為PV1及PV2給主機存取,結果在使用一陣子後發現PV1的用途只會用到100GB,但是PV2的用途所需要的空間一直增加,400GB的容量最終將不敷使用。在習知的技術中,由於PV1 的組態無法改變且其中只有100GB容量會被使用,其中另外300GB的容量將閒置而無法使用,反觀PV2卻因其空間不足只好再另行添購儲存設備,形成浪費。
因此,如何增加RAID子系統的使用彈性以避免資源浪費的問題,實為儲存業界的一大課題。
有鑑於此,本發明的目的之一在於提供一種執行儲存虛擬化之儲存子系統及儲存系統架構及其方法,以解決習知技術所面臨的問題,提高磁碟陣列子系統的使用彈性。
本發明之另一目的在於提供一種執行儲存虛擬化之儲存子系統及儲存系統架構及其方法,以解決習知技術所面臨的問題,避免資源浪費的問題。
根據本發明之一實施例,其係提供一種於一儲存系統架構下產生一虛擬卷之方法。該儲存系統架構包含有一主機及至少一磁碟陣列子系統,該至少一磁碟陣列子系統包含有一磁碟陣列控制器及一實體儲存媒體陣列。首先,該方法先映射該實體儲存媒體陣列成一或多個媒體區,並於該至少一磁碟陣列子系統中之其一中提供一虛擬化模組而為一主控磁碟陣列子系統;接著,該虛擬化模組依據一區段分配機制選取該一或多個媒體區中之至少一媒體區而形成一虛擬池;然後,該虛擬化模組依據該區段分配機制形成至少一虛擬卷並管理該至少一虛擬卷;之後,該虛擬化模組呈現該至少一虛擬卷給該主機;最後,於該至少一磁碟陣列子系統之每一 者中均設置有一有效性檢查模組,用以查核來自該主機之一輸出入存取命令的有效性。
依據本發明之一實施樣態,其中該映射該實體儲存媒體陣列 成一或多個媒體區步驟更包含有:於該至少一磁碟陣列子系統之每一者中均設置有一有效性檢查模組,用以查核來自該主機之一輸出入存取命令的有效性,以判斷該輸出入存取命令位址之正確性。
依據本發明之一實施樣態,其中該映射該實體儲存媒體陣列 成一或多個媒體區之該步驟更包含有:先將該實體儲存媒體陣列映射成一或多個具有獨立冗餘磁碟陣列(RAID)功能保護的實體卷,再將該一或多個實體卷每一者映射成一或多個媒體區。
依據本發明之一實施樣態,其中形成至少一虛擬卷並管理該 至少一虛擬卷之該步驟更包含有:設定一虛擬卷容量作為該至少一虛擬卷的儲存容量,其中,所有該至少一虛擬卷的該虛擬卷容量的總和可大於該實體儲存媒體陣列的儲存容量的總和;以及當接收到該輸出入存取命令且需要已指定給該至少一虛擬卷使用之儲存空間外的儲存空間時,指定(assign)該實體儲存媒體陣列中之儲存空間給該虛擬卷。
依據本發明之一實施樣態,其中形成至少一虛擬卷並管理該 至少一虛擬卷之該步驟更包含有:設定一保留容量作為該至少一虛擬卷的保留儲存容量;分派該實體儲存媒體陣列中之儲存空間作為該至少一虛擬卷的保留儲存空間,其大小等於該保留儲存容量;以及,當接收到該輸出入存取命令且需要已指定給該至少一虛擬卷使用之儲存空間外的儲存空間時,指定該保留儲存空間給該虛擬卷。
依據本發明之一實施樣態,依據本發明之一實施樣態,依據 本發明之一實施樣態,其係提供一種於一儲存系統架構下產生一虛擬卷之方法。該方法更包含有:當該至少一虛擬卷中之已使用的儲存容量的總和達到一門檻值時,產生一事件通知訊號給該磁碟陣列控制器。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構 下產生一虛擬卷之方法。該方法更包含有:當該虛擬池中之已使用容量的總和達到一門檻值時,產生一事件通知訊號給該磁碟陣列控制器。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構 下產生一虛擬卷之方法。該方法更包含有:依據一有效性檢查序號查核來自該主機之該輸出入存取命令的有效性。
依據本發明之一實施樣態,其中查核該輸出入存取命令的有 效性之該步驟更包含有:當該輸出入存取命令為有效命令,則依據該輸出入存取命令存取該實體儲存媒體陣列。
依據本發明之一實施樣態,其中查核該輸出入存取命令的有 效性之該步驟更包含有:當該輸出入存取命令非為有效命令,則傳送一錯誤發生訊息給該主機。
依據本發明之一實施樣態,其中查核該輸出入存取命令的有 效性之該步驟更包含有:當主機收到該錯誤發生訊息後,向該虛擬化模組發出一資料位置查詢命令,以獲得新的有效性查詢序號。
依據本發明之一實施樣態,其中查核該輸出入存取命令的有 效性之該步驟更包含有:該有效性檢查模組係對每一媒體區儲存有一或多個有效性檢查序號,且每一有效性檢查序號係對應至一或多個實體區段; 以及,比對儲存著的該一或多個有效性檢查序號中與該主機之該輸出入存取命令所繫屬之媒體去相關的VCSN中之一最新有效性檢查序號與該輸出入存取命令中之一有效性檢查序號。
依據本發明之一實施樣態,其中比對該一或多個有效性檢查 序號中與該主機之該輸出入存取命令所繫屬之媒體去相關的VCSN中之一最新有效性檢查序號之該步驟更包含有:於該最新有效性檢查序號小於該輸出入存取命令中之該有效性檢查序號時,則判定該輸出入存取命令非為有效命令。
依據本發明之一實施樣態,其中比對該一或多個有效性檢查 序號中與該主機之該輸出入存取命令所繫屬之媒體去相關的VCSN中之一最新有效性檢查序號之該步驟更包含有:於該輸出入存取命令中之該有效性檢查序號為大於或等於該最新有效性檢查序號時,擷取該輸出入存取命令之一資料存取位址;依據該資料存取位址擷取一第一有效性檢查序號;以及,比對該第一有效性檢查序號與該輸出入存取命令中之該有效性檢查序號。
依據本發明之一實施樣態,其中比對該第一有效性檢查序號 與該輸出入存取命令中之該有效性檢查序號之該步驟更包含有:於該輸出入存取命令中之該有效性檢查資訊小於該第一有效性檢查序號時,判定該輸出入存取命令非為有效命令。
依據本發明之一實施樣態,其中比對該第一有效性檢查序號 與該輸出入存取命令中之該有效性檢查序號之該步驟更包含有:於該輸出入存取命令中之該有效性檢查資訊大於或等於該第一有效性檢查序號時, 判定該輸出入存取命令為有效命令。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構 下產生一虛擬卷之方法。該方法更包含有:針對該至少一虛擬卷之一特定實體區段位置範圍發送一更新之有效性檢查序號給所有從屬磁碟陣列子系統;當主控磁碟陣列子系統接收到來自主機之資料位置查詢命令時,回覆一特殊的有效性檢查序號給該主機;以及,該主機依據該特殊的有效性檢查序號而將一與該特定實體區段位置範圍相關的輸出入存取命令發送給主控磁碟陣列子系統處理。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構 下產生一虛擬卷之方法。該方法更包含有:當該主控磁碟陣列子系統收到該與該特定實體區段位置範圍相關的輸出入存取命令時,進行一與該特定實體區段位置範圍相關的輸出入存取命令之一資料服務程序,其中,該資料服務程序係為虛擬卷快照程序。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構 下產生一虛擬卷之方法,且該至少一磁碟陣列子系統更包含一第二磁碟陣列子系統係為一從屬磁碟陣列子系統,該方法包含有:當該第二磁碟陣列子系統中的有效性檢查序號與該主控磁碟陣列子系統中的有效性檢查序號不一致時,該主控磁碟陣列子系統執行一再同步程序來使該等磁碟陣列子系統中之有效性檢查序號同步化。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構 下產生一虛擬卷之方法,其中該至少一磁碟陣列子系統更包含一第二磁碟陣列子系統係為一從屬磁碟陣列子系統,該方法更包含有:於該至主控磁 碟陣列子系統發生重設、電源關後重開及失效轉移中之其一時,執行一再同步程序來使該等磁碟陣列子系統中的有效性檢查序號同步化。
依據本發明之一實施樣態,其中執行該再同步程序之該步驟 包含有:該虛擬化模組發送一命令給該第二磁碟陣列子系統以清除其中之有效性檢查序號;以及,該虛擬化模組將最新有效性檢查序號發生給該第二磁碟陣列子系統中。
根據本發明之另一實施例,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法先檢查所欲存取之一輸出入存取命令之一資料位置資訊是否出現在該主機之一快取記憶體中,其中,若該資料位置資訊出現在該主機之該快取記憶體中,則該主機依據該資料位置資訊發送該輸出入存取命令至該等儲存節點中之一目標儲存節點,且該輸出入存取命令包含一第一有效性檢查資訊;之後,該目標儲存節點利用該第一有效性檢查資訊檢查該輸出入存取命令之有效性,以判斷該輸出入存取命令位址之正確性;最後,若該輸出入存取命令為有效命令,則該目標儲存節點執行該輸出入存取命令。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法更包含有:提供一有效性檢查序號代理人於該目標儲存節點,用以檢查該輸出入存取命令中之該第一有效性檢查資訊之有效性。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法更更包含有:若該資料位置資訊不在該主機之該快取記憶體中,則 該主機產生一資料位置詢問命令給該等儲存節點中之一主控儲存節點;接著,該主控儲存節點依據該資料位置詢問命令回覆該資料位置資訊給該主機,且該資料位置資訊中包含有該第一有效性檢查資訊(VCI);然後,該主機更新位於該快取記憶體中之該資料位置資訊;以及,該主機依據該資料位置資訊發送一輸出入存取命令至該等儲存節點中之該目標儲存節點,其中,該輸出入存取命令包含該第一有效性檢查資訊(VCI)。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法更更包含有:若該輸出入存取命令非為有效命令,則該目標儲存節點回傳一錯誤發生訊息給該主機。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法更更包含有:當該主機進行初始化時,掃描該等儲存節點之儲存空間來產生一媒體區識別碼對儲存節點交互參照表,並依據一媒體區識別碼及該媒體區識別碼對儲存節點交互參照表來確定該目標儲存節點,其中,該資料位置資訊包含有該媒體區識別碼。
依據本發明之一實施樣態,其中檢查該輸出入存取命令之有效性之該步驟更包含:該目標儲存節點檢查被包含於該輸出入存取命令之該第一有效性檢查資訊與來自於該主控儲存節點之一第二有效性檢查資訊間之一致性。
依據本發明之一實施樣態,其中檢查該輸出入存取命令之有效性之該步驟更包含:若該第一有效性檢查資訊與該第二有效性檢查資訊 不一致時,則該目標儲存節點回覆一錯誤發生指示訊息給該主機。
依據本發明之一實施樣態,其中檢查該輸出入存取命令之有 效性之該步驟更包含:該目標儲存節點檢查該輸出入存取命令中之該第一有效性檢查資訊之一壽命。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構 下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。 該方法更包含有:若該第一有效性檢查資訊之該壽命為超過一有效壽命時,則使位於該主機中之該快取記憶體中之該資料位置資訊或所有資料位置資訊無效,且該主機產生一資料位置詢問命令給該等儲存節點之該主控儲存節點;以及,該主控儲存節點依據該資料位置詢問命令回覆該資料位置資訊給該主機,且該資料位置資訊中包含一第一有效性檢查資訊(VCI)。
根據本發明之另一實施例,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法先經由該主機傳送一資料位置詢問命令給該等儲存節點之一主控儲存節點;然後,當該主控儲存節點接收到該資料位置詢問命令時,該主控儲存節點傳送一資料位置資訊給該主機,其中,該資料位置資訊中包含一第一有效性檢查資訊(VCI);接著,該主機依據該資料位置識別碼傳送一輸出入存取命令給該等儲存節點中之一目標儲存節點,其中,該輸出入存取命令包含該第一有效性檢查資訊(VCI);之後,該目標儲存節點利用該第一有效性檢查資訊檢查該輸出入存取命令之有效性,以判斷該輸出入存取命令位址之正確性;最後,若該輸出入存取命令為有效命令,則該目標儲存節點執行該輸出入存取命令。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法更包含有:提供一有效性檢查序號代理人於該目標儲存節點,用以檢查該輸出入存取命令中之該第一有效性檢查資訊之有效性。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法更包含有:若該輸出入存取命令非為有效命令,則該目標儲存節點傳送一錯誤發生訊息給該主機。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點。該方法更包含有:當該主機進行初始化時,掃描該等儲存節點之儲存空間來產生一媒體區識別碼對儲存節點交互參照表;以及,依據一媒體區識別碼及該媒體區識別碼對儲存節點交互參照表來確定該目標儲存節點,其中,該資料位置資訊包含有該媒體區識別碼。
依據本發明之一實施樣態,其係提供一種於一儲存系統架構下之資料存取方法,且該儲存系統架構包含有一主機及複數個儲存節點,其中檢查該輸出入存取命令之有效性之該步驟更包含:該目標儲存節點比對該輸出入存取命令中之該第一有效性檢查資訊與來自該主控儲存節點之一第二有效性檢查資訊。
依據本發明之一實施樣態,其中比對該第一有效性檢查資訊與該第二有效性檢查資訊之該步驟更包含:若該第一有效性檢查資訊與該第二有效性檢查資訊為一致,則該輸出入存取命令為有效命令。
依據本發明之一實施樣態,其中比對該第一有效性檢查資訊與該第二有效性檢查資訊之該步驟更包含:若該第一有效性檢查資訊與該第二有效性檢查資訊不為一致,則該輸出入存取命令非為有效命令。
1,30,90,92‧‧‧儲存系統架構
10‧‧‧主機
110‧‧‧代理人
20,20A,20B,20C‧‧‧獨立冗餘磁碟陣列子系統(RAID子系統)
200‧‧‧儲存虛擬化控制器
202,202A,202B,202C‧‧‧虛擬化層
203A,203B,203C‧‧‧ME伺服器層
204,204A,204B,204C‧‧‧RAID層
205A,205B,205C‧‧‧VCSN代理人
211,51‧‧‧區段分配系統(SAS)
215,515‧‧‧節點表
213a,213b‧‧‧區塊關聯集區段分配串列
2131,5131‧‧‧屬性區塊
2133,5133‧‧‧目錄
2135‧‧‧日誌
2137‧‧‧區塊關聯表
2139‧‧‧資料區域
400‧‧‧PSD陣列
41‧‧‧卷區塊索引
42‧‧‧位置索引
43‧‧‧區塊索引位元映像(BAB)
410‧‧‧實體儲存媒體
513a‧‧‧P2V/V2P SAL
5135‧‧‧V2P表
5137‧‧‧P2V表
61‧‧‧虛擬索引
63‧‧‧實體索引
8‧‧‧實體區段索引對實體邏輯區段位址映射函數
81‧‧‧實體區段索引
82‧‧‧ME ID
83‧‧‧起始位址
84‧‧‧分區數量
VV‧‧‧虛擬卷
VP‧‧‧虛擬池
第1A圖係為依據本發明之一實施例之包含一個獨立冗餘磁碟陣列子系統之儲存系統架構1。
第2A圖係為其係為依據本發明之另一實施例之儲存系統架構30。
第1B圖係為依據本發明之一實施例之RAID層204所映射出之邏輯磁碟機(logical drive,LD)與實體卷(physical volume)之關係。
第1C係為依據本發明之一實施例之實體卷與其中之媒體區與分區(sector)之關係。
第1D圖係為依據本發明之一實施例之實體卷與其中之媒體區與實體區段(section)之關係。
第2B圖係為第2A圖實施例之儲存系統架構30中,依據本發明之一實施例之虛擬池與媒體區及虛擬卷關係之示意圖。
第2C圖,係為依據本發明之一實施例之用於虛擬池之一區段分配系統的資料結構之示意圖。
第3A圖,其係為依據本發明之一實施例之由多個RAID子系統中之媒體區所形成的虛擬池之示意圖。
第3B圖係為依據本發明第3A圖之虛擬池中所包含的實體區段之資料結構之一實施例示意圖。
第3C圖係為依據本發明第3A圖之虛擬池中所包含的實體區段之資料結構之另一實施例示意圖。
第3D圖係為依據本發明第3A圖之虛擬池中所包含的實體區段之資料結構之又一實施例示意圖。
第4A圖係為依據本發明之一實施例之BAT 2137之示意圖。
第4B圖係為依據本發明之另一實施例之BAT 2137之示意圖。
第4C圖及第4D圖係為依據本發明之一實施例之『分散式資料』功能之示意圖。
第5圖係為依據本發明之一實施例之用於虛擬池之一區段分配系統的V2P表與P2V表的資料結構之示意圖。
第6A圖係為依據本發明之一實施例之P2V Table 5137表之示意圖。
第6B圖係為依據本發明之另一實施例之P2V Table 5137表之示意圖。
第7A圖係為依據本發明之一實施例之V2P Table 5135表之示意圖。
第7B圖係為依據本發明之另一實施例之V2P Table 5135表 之示意圖。
第8A圖係為當具有V2P表時之VBI與其所對應之實體區段LBA之映射關係之示意圖。
第8B圖係為當發生資料區段遷徙時,VBI與其所對應之實體區段LBA之映射關係之變化之示意圖。
第8C圖係為當只有P2V表而無V2P表時,VBI與其所對應之實體區段LBA之映射關係之示意圖。
第8D圖係為當只有P2V表而無V2P表時,當發生資料區段遷徙時,VBI與其所對應之實體區段LBA之映射關係之變化之示意圖。
第9圖係為依據本發明之另一實施例之儲存系統架構90之示意圖。
第10圖係為依據本發明之又一實施例之儲存系統架構92之示意圖。
第11圖,其係為本發明第10圖之實施例之儲存系統架構92指定媒體區之示意圖。
第12A圖係為當沒有V2P表及P2V表時之VBI與其所對應之實體區段起始位置之映射關係之示意圖。
第12B圖係為當沒有V2P表及P2V表時,若發生資料區段遷徙時,VBI與其所對應之實體區段LBA之映射關係之變化之示意圖。
第13圖係為依據本發明之一實施例之因移除ME而引發的 遷徙作業之流程圖。
第14圖係為依據本發明之一實施例之因增加ME而引發的遷徙作業之流程圖。
第15圖係為依據本發明之另一實施例之因移除ME而引發的遷徙作業之流程圖。
第16圖係為依據本發明之另一實施例之因增加ME而引發的遷徙作業之流程圖。
第17圖係為依據本發明之一實施例之主機10或主機代理人110向主控子系統20A的虛擬化層202A詢問VCSN的流程圖。
第18圖係為依據本發明之一實施例之接受IO請求的VCSN代理人確認其所攜帶VCSN的有效性的流程圖。
第19圖係繪示依據本發明之一資料儲存架構中之直接媒體區存取功能之一實施例的流程圖。
第20A圖及第20B圖係繪示依據本發明之一資料儲存架構中之直接媒體區存取功能之另一實施例的流程圖。
第21圖係為依據本發明之虛擬卷快照(virtual volume snapshot)之一資料結構之一實施例。
請參閱第1A圖,係為依據本發明之一實施例之一個資料儲存系統架構(簡稱儲存系統架構)1。該儲存系統架構1係由一主機10與一個獨立 冗餘磁碟陣列子系統(redundant array of independent disks subsystem,RAID subsystem,以下稱為RAID子系統)20透過溝通管道(communication channel)而連接在一起而組成。該RAID子系統20包含一個儲存虛擬化控制器(storage virtualization controller,SVC)200及一具有複數個實體儲存媒體(physical storage device,PSD)410之PSD陣列400。其中該等PSD 410可以為HDD、CD、VCD、DVD、TAPE、SSD、Flash Memory、EEPROM等儲存媒體。此外,依據本發明之另一實施例,一個RAID子系統亦可包含複數個設定為冗餘組態的儲存虛擬化控制器200,以當一個儲存虛擬化控制器200失效時,另一個儲存虛擬化控制器200仍能正常運作而接管失效控制器的工作。
依據本發明之一實施例,在一個RAID子系統20中,透過儲存 虛擬化控制器200及應用程式之操作,係在RAID層204之前加入一虛擬化層(virtualization layer)202,也就是在主機10與RAID層204之間加入該虛擬化層202,而使得來自主機10而欲存取PSD陣列400中之資料的IO請求(Input/Output request)均會先為該虛擬化層202所處理,再由該RAID層204來處理。需說明的是,該虛擬化層202及該RAID層204係包含於儲存虛擬化控制器200中。此外,在後文中,該虛擬化層亦被稱為虛擬化模組,而該RAID層亦被稱為RAID模組。
請參閱第1B、1C及1D圖,其中第1B圖係為依據本發明之一實 施例之RAID層204所映射出之邏輯磁碟機(logical drive,LD)與實體卷(physical volume,PV)之關係,第1C圖係為依據本發明之一實施例之實體卷與其中之媒體區與分區(sector)之關係,及第1D圖係為依據本發明之一實施例之實體卷與其中之媒體區與實體區段(section)之關係。第1B圖中顯示,在 RAID層204中,一或複數個PSDs之各分區區塊(block)(或稱為“分區(sector)”)組成一或多個邏輯磁碟機(logical drive,LD),每一個LD也可以被進一步切割成一或多個分割區(partition),每一個LD或分割區係包含複數個分區區塊,且每個分區區塊係對應到一邏輯區塊位址(logical block address,LBA),在此亦稱為實體LBA(physical LBA,phyLBA),該等PhyLBA係為連續定址,例如第1C圖所示之PhyLBA1、PhyLBA2與PhyLBA3…等。 每一個LD或分割區係對應到一個實體卷(physical volume,PV),每個實體卷係可切割成一個或多個實體媒體區(physical media extent,physical ME,後簡稱媒體區,ME)而被提供給虛擬化層202使用。每個媒體區係以一個實體區段(physical section)(或稱為“區段(section)”)為單位儲存資料,一個實體區段(section)可以包含有一至多個分區區塊。以上所稱之分區區塊在儲存媒體(例如硬碟)的觀點來看,相當於一個分區(sector)的單位。媒體區中的每個實體區段(section)皆對應到一個表示實體區段起始位置的LBA以及一個表示實體區段長度的“分區數(sector count)”,由此可知,圖1D所示之LBA1、LBA2與LBA3…等並不一定是連續的位址。在虛擬化層202中,係對RAID層204所呈現出來之媒體區進行管理以產生一個虛擬池(virtual pool,VP)(圖未示),包含有一或多個媒體區,並由該虛擬池VP中產生一或多個虛擬卷(virtual volume,VV)(圖未示),擬化層202A並將該等虛擬卷呈現給主機10供其進行IO請求存取資料。該虛擬池VP及該虛擬卷將於下文中藉由第2A圖之實施例加以說明。
請參閱第2A圖,其係為依據本發明之另一實施例之儲存系統架構30。儲存系統架構30係由多個RAID子系統20透過溝通管道 (communication channel)而連接在一起而組成,該溝通管道可以是一區域網路(LAN)、廣域網路(WAN)、儲存區域網路(SAN)、網際網路(Internet)、溝通連結(communication interconnect)、或其他任何可以讓RAID子系統20間互相傳遞訊息的溝通管道。在儲存系統架構30中,只需要有一個RAID子系統20A中設置有虛擬化層202A,即可將所有RAID子系統20中的儲存空間加以虛擬化成為一或多個虛擬卷VV給主機10存取。其中,設置有虛擬化層202A的RAID子系統稱為主控(master)RAID子系統20A,簡稱主控子系統(master subsystem)20A,被主控子系統20A管理的其他RAID子系統20稱為從屬(slave)RAID子系統20B、20C,簡稱從屬子系統(slave subsystem)20B、20C。 在每一子系統20A、20B、20C中,分別建置有一媒體區伺服器層(ME Server Layer)203A、203B、203C於各RAID層204A、204B、204C之上,以將各該RAID層204A、204B、204C中之媒體區呈現出來,供主控子系統20A的虛擬化層202A或其他裝置(例如主機10等)管理使用。於本實施例中,該媒體區伺服器層203A係可建置於主控子系統20A的虛擬化層202A中或獨立於虛擬化層202A之外(圖未示),而RAID子系統20B及20C則無虛擬化層而為從屬子系統。在此儲存系統架構30中,該主機10可僅與RAID子系統20A聯繫,而該RAID子系統20A係與該RAID子系統20B及RAID子系統20C聯繫,所有來自主機10進入儲存系統架構30中的IO請求係進入RAID子系統20A並為其虛擬化層202A所接收,虛擬化層202A則檢查該IO請求所繫屬的(associated)資料是屬於哪些RAID子系統20A、20B、20C,而對那些RAID子系統的RAID層204A、204B、204C發出對應的IO請求以進行資料存取,並由該虛擬化層202A將結果回報給主機10。
依據本發明之另一實施例,主控子系統可以是一個RAID HEAD而無任何PSD於其中;在此種情況下,該主控子系統的儲存空間僅能由其從屬子系統中提供。
為更清楚說明本發明第2A圖的實施例詳的細運作方式,請參 閱第2B圖。第2B圖係為第2A圖實施例之儲存系統架構30中,依據本發明之一實施例之虛擬池與媒體區及虛擬卷關係之示意圖。儲存系統架構30分配媒體區之示意圖顯示出RAID子系統20A、20B及20C係各自包含有媒體區ME1至MEn,且經過虛擬化層202A的管理後產生一個虛擬池(virtual pool,以下稱VP),包含有一或多個媒體區(例如RA-ME1至RA-ME5、RB-ME1至RB-ME5、RC-ME1至RC-ME5,其中RA、RB及RC係分別表示RAID子系統20A、20B及20C),並由該虛擬池VP中產生一或多個虛擬卷(virtual volume,以下稱VV),例如VV1、VV2、VV3至VVm等m個虛擬卷,虛擬化層202A將該等虛擬卷VV呈現給主機10供其進行IO請求存取。
依據本發明之一實施例,當儲存系統架構30被建立好之後, 該等VV被呈報給主機10之卷容量係為一虛擬卷容量,儲存為該VV之一區塊關聯集(Block Association Set,BAS)屬性,但並未真正被分配或指定給該等VV,而是等到有主機10寫入IO請求發生時,才會有儲存空間從VP中分配給相關的VV,這稱為低額容量提供(thin provisioning)。依據本發明之另一實施例,當儲存系統架構30被建立好之後,該等VV被呈報給主機10之卷容量係為一實際卷容量,這稱為全額容量提供(full provisioning)。從VP中分配給VV的儲存空間是以實體區段(section)為最小單位,每一個區段可以包含一個或多個區塊(block)(或稱為“分區(sector)”)。
此外,依據本發明之一實施例,當原先產生之VV已經呈現給 主機10進行IO請求存取之後,在VP的資源尚足夠時,仍可俟後新增VV以供主機10之其他用途。又且,依據本發明之又一實施例,當原先產生之VV已經呈現給主機10進行IO請求存取之後,若有一VV之原有用途已不存在而使該VV無繼續存在之必要時,亦可將其自VP中移除,並將其中之容量釋出至該VP中供其他VV利用。
另外,依據本發明之又一實施例,當VP之容量已經不夠其中 之VV使用時,如果在該儲存系統架構30中尚存有可用之ME的話,亦可新增ME至VP中而讓該VP的容量增加以供其VV使用。又且,依據本發明之再一實施例,在一個VP中的ME,若是未被任何VV所使用時,亦可自VP中移除。如果在VP中的一個ME(例如ME1)上的被使用容量係小於該VV中另一個ME(例如ME2)上的未使用容量的話,則可將該個ME(即ME1)上的有效資料遷徙至該另一個ME(即ME2)上,並將該個ME(即ME1)移除。
請參閱第2C圖,係為依據本發明之一實施例之用於虛擬池之 一區段分配系統的資料結構之示意圖。主控RAID子系統20A於虛擬化層202A產生一或複數個虛擬池(VP),一虛擬池係設置有一區段分配系統(section allocation system,後簡稱SAS)211來進行虛擬卷VV之管理操作。亦請參閱第2B圖之實施例,當主控RAID子系統20A管理RAID子系統20A、20B及20C中之媒體區RA-ME1至RA-ME5、RB-ME1至RB-ME5、RC-ME1至RC-ME5時,稱該等媒體區RA-ME1至RA-ME5、RB-ME1至RB-ME5、RC-ME1至RC-ME5繫屬(associated)於虛擬化層202A或主控RAID子系統20A。依據本發明之一實施例,該SAS 211係為一類似檔案系統 (file-system-like)結構,可包含一或多個媒體區,這些媒體區係由一或多個作為媒體區段供應者(media section providers)之實體卷(physical volume)經過切割所形成。SAS 211可以包含一或複數個區塊關聯集區段分配串列(block association set section allocation list,BAS SAL)213a、213b及一節點表(Inode Table)215。節點表215係用以記錄區塊關聯集區段分配串列213a、213b內容存放位置的資訊,即區塊關聯集區段分配串列213a、213b內容的指標(pointer),使系統可以透過節點表215正確取得區塊關聯集區段分配串列213a、213b的內容。此SAS 211和與其關聯之每個ME皆有一唯一識別碼(identity,ID)。關於區塊關聯集區段分配串列213a、213b,以一種比喻的說法是:區塊關聯集區段分配串列213a、213b可以視作是SAS 211中的檔案,檔案可以分做許多種,區塊關聯集區段分配串列213a、213b則是其中一種用作特定用途的檔案。
依據本發明之一實施例,該區塊關聯集區段分配串列,係為 VV之資料結構,每個區塊關聯集區段分配串列213a、213b映射出一個VV,包含有:一屬性區塊(Attribute Block)2131,用以記載此區塊關聯集區段分配串列213a、213b之ID、大小以及相關設定等資訊;一目錄(directory)欄位2133,記載指引、管理該區塊關聯集區段分配串列213a、213b中各實體區段的資訊;一日誌(Journal)欄位2135,用以存放運作日誌,以供系統發生錯誤或斷電情事時可供恢復(recovery)之用;一區塊關聯表(Block Association Table,以下稱BAT)欄位2137,用以儲存指向資料區(Data Area)2139的參考資訊;以及資料區2139,用以存放主機所發出的IO請求之資料,並且所存放資料之位置將紀錄於區塊關聯集區段分配串列213a、213b分別所包含之 BAT 2137中。依據本發明之另一實施例,該SAS也可以包含其他種類之SAL,而非一定要使用前述之BAS SAL。
依據本發明之一實施例,建立一VV之第一步驟即是建置一個 虛擬池,此係藉由建置一SAS與虛擬池對應而達成。接著,BAS SAL與BAT應被建置並將其所對應之VV映射至一主機通道上之CH/ID/LUN。最後,當主機寫入IO請求發生之時,虛擬化層會向SAS取得足夠的空間以存放IO請求資料,並將該等IO請求資料的存放位置記錄於該BAT中。
當一個虛擬池建立時,必須指定一個或多個媒體區給此虛擬 池,並將這些媒體區及其所對應的實體LBA(phyLBA)儲存於SAS的描述資料欄位中。
請參閱第3A圖,其係為依據本發明之一實施例之由多個RAID 子系統中之媒體區所形成的虛擬池之示意圖。第3A圖中係為儲存系統架構30中具有3個子系統RA 20A、RB 20B及RC 20C,各被對應到ME1至ME5,每個ME具有10000個實體區段,且每個實體區段係對應一LBA,稱之為實體LBA(phyLBA),故每個ME均對應10000個實體LBA。例如RA ME1係對應RA-ME1-00001至RA-ME1-10000,RB ME3係對應RB-ME3-00001至RA-ME1-10000,RC ME4係對應RC-ME4-00001至RA-ME1-10000等等。在ME中的各實體區段的LBA被稱為實體LBA,是因為在習知技術中沒有虛擬化層202A的情況下,子系統RA 20A、RB 20B及RC 20C將其LD/分割區呈現為實體卷給主機10後,主機10是以該LBA對實體卷進行IO存取;也因為該LBA被稱為實體LBA,故其所構成之區段稱為實體區段(physical section)。
假設當一個虛擬池(即VP1)建立之時,VP1中係被組態設定 (configure)成包含有RA的ME1、RB的ME1、以及RC的ME1,則在SAS 211的METADATA(圖未示)中會將這些ME以及其所包含的實體區段記錄起來,例如以一實體LBA清單的方式來記錄,如第3B圖所示;或是以一實體區段索引(physical section index,PSI)對實體LBA表的方式來記錄,如第3C圖及3D圖所示。
第3B圖係為依據本發明第3A圖之虛擬池中所包含的實體區段 之資料結構之一實施例示意圖。在第3B圖的實施例中,實體LBA清單中的每一個項目係具有三個欄位,第一個欄位(field)為該ME之ID或索引,第二個欄位表示該ME的起始位址(start address)(或稱為基礎區塊位址(base block address)),係指向該ME的起始LBA;第三個欄位表示該ME的實體區塊數量(section count)。藉由實體LBA清單中各個ME的先後順序(sequence)與各區塊在各個ME中的先後順序,可得到各區塊在VP中的先後順序,再利用每一實體區段所包含的分區數量,可以算出每一實體區段的先後順序及其起始位址,其中每一區段的先後順序在此係定義為該VP中各區段之實體區段索引(physical section index,PSI)。
第3C圖及第3D圖係為依據本發明第3A圖之虛擬池中所包含的 實體區段之資料結構之另兩個實施例之示意圖,其中係以實體區段索引(PSI)對實體區段表(physical section index to physical section table,PSI2PS table)來儲存PSI與實體區段之對照資訊(cross-referencing information)。該表中係具有四個欄位:PSI 81、ME ID 82、起始位址(start address)83(或稱為基礎區塊位址)、分區數量(sector count)84,分別表示該PSI 81、該PSI 81所對應實體區段之ME ID 82、該實體區段之起始位址(LBA)83、及該實體 區段所包含之分區數量84。具體而言,第3C圖的實施例中,係假設每個實體區段包含一個分區(sector),該第一個項目(entry)係表示PSI=00001之實體區段係對應至RA-ME1-00001開始的1個分區(sector);則最後一個項目中係表示PSI=30000之實體區段係對應至RC-ME1-10000開始的1個分區。第3D圖的實施例中,係假設每個區段包含100個分區,該第一個項目係表示PSI=001之實體區段係對應至RA-ME1-00001開始的100個分區;該第二個項目係表示PSI=002之實體區段係對應至RA-ME1-00101開始的100個分區;最後一個項目係表示PSI=300之實體區段係對應至RC-ME1-09901開始的100個分區。
在第3C圖與第3D圖中,係在每一記錄中儲存有一實體區段索 引(PSI)與其所對應之實體媒體區之實體區段LBA。實施本發明時,第3C圖與第3D圖亦可用其他方式儲存並經由計算而得到對應關係,例如第3B圖所示者。
除了第3B、3C及3D圖的方式之外,只要能找出PSI與其所對 應之實體媒體區之實體LBA之映射關係的函數或方法,例如:利用特定的運算關係或公式,皆可用於本發明中。
雖然在第3A圖的實施例中係以該3個子系統RA 20A、RB 20B 及RC 20C的各自第一個ME構成一個VP1,但是依據本發明之另一實施例,VP的ME數量亦可以是其他數目,例如4個、5個等等,且其不必在3個子系統中輪流加入ME至VP1中,亦不必依照每個子系統中ME的先後順序將ME加入VP1中。例如,VP1中若有5個ME時,其先後順序可為RA ME1、RB ME1、RA ME3、RB ME2、RA ME2。
雖然在第3A圖與第3D圖的實施例中係設定該等子系統RA 20A、RB 20B及RC 20C之ME數量皆為5個,且該等ME的區段數量相同,皆為100,但是依據本發明之又一實施例,每個子系統RA 20A、RB 20B及RC 20C之ME數量可以不同,且每個ME的區段數量也可以不同,又且該每個子系統RA 20A、RB 20B及RC 20C之總實體區段數量也可以互不相同,例如該RA具有5個ME,其中RA ME1之實體區段數量為100且RA ME2-ME5之實體區段數量為50,該RB具有4個ME,其中RB ME1-ME2之實體區段數量為60且該RB ME3-ME4之實體區段數量為80,該RC具有6個ME,其中RC ME1-ME6之實體區段數量皆為50。
關於BAT 2137,再請參閱第4A圖。第4A圖係為依據本發明之 一實施例之BAT 2137之示意圖。該BAT 2137的每一個項目(entry)具有3個欄位:一卷區塊索引(Volume Block Index,VBI)欄位41、一位置索引(location index)欄位42及一區塊索引位元映像(block association bitmap,BAB)欄位43,分別儲存有VBI、區段索引(section index,以下稱SI)及BAB。該VBI係為虛擬卷VV1所使用的卷區塊(volume block)之順序。該位置索引係為該卷區塊所對應之該SI,依據本發明之一實施例,該位置索引係指向該卷區塊所對應的實體區段之起始PSI(start PSI),此係為在沒有V2P映射表的情況下;依據本發明之另一實施例,該位置索引係指向該卷區塊所對應的虛擬區段之起始虛擬索引(virtual index,VI),此係為在有V2P映射表的情況下;其中V2P映射表將於稍後詳細說明。該BAB係用以判斷該PSI所對應的實體區段是否為VV1所使用。
卷區塊的大小可為一個或多個區段大小,而當一個VV1之大 小固定時,卷區塊愈大則卷區塊數量愈少,其所對應之VBI數量也愈少,因 而項目也愈少,使得整個BAT 2137的大小也變少;反之,當卷區塊愈小則VBI愈多,使得整個BAT 2137的大小也變大。當一個卷區塊只包含一個區段時,則一個VBI所對應到的起始SI即是該卷區塊所對應的區段之SI;當一個卷區塊對應多個區段時,則一個VBI所對應到的起始SI只是該卷區塊所對應的多個區段中之第一個區段的SI,而該卷區塊所對應的其他區段則可利用該SI而得到。
舉例來說,在圖4A中所顯示者係一個卷區塊對應一個區段的 情形。在第1到第4個項目及第7個項目中,若BAB欄位43為1,則表示這5個項目的位置索引欄位42中(location index)001、002、101、201及299所對應的區段已經被VV1所使用,且其所對應的VBI欄位41分別為001、002、003、004及007。在第5個項目與第6個項目中,其BAB為0,表示第5個與第6個位置索引欄位42尚未對應到區段因而未被VV1所使用。若是VV1對主機10宣告具有10個VBI,但是位置索引欄位42中的008、009及010均未被使用,則依據本發明之第一種實施方式,BAT 2137可以具有10個項目,但位置索引欄位42中的008、009及010對應之BAB欄位43均為0;而依據本發明之第二種實施方式,倘若BAT 2137只具有7個項目,惟需記載項目7已為最後一個項目。
必須說明的是,上述具有BAB之資料結構僅係本發明之一實 施例;依據本發明之另一實施例,當亦可以僅將BAT存放於快取緩衝記憶體(cache buffer)中而不使用BAB。
請參第4B圖,係為依據本發明之另一實施例之BAT 2137之示 意圖。BAT 2137的每一個項目(entry)具有2個欄位:一位置索引欄位42及一 區塊索引位元映像(block association bitmap,BAB)欄位43,分別儲存有PSI及BAB,而該等項目之順序即可對應出VBI。舉例來說,若VV1對主機10宣告具有10個VBI,則位置索引及BAB的數量均需要有10個以與該10個VBI對應,不論其實際上是否已為VV1所使用(亦即BAB為1)。此種實施方式的好處在於可省去VBI欄位41所佔據之空間。
由於一個卷區塊係包含一或多個實體區段(例如為m個),且一 個實體區段係包含一或多個分區(例如為n個),故一個卷區塊係包含m乘n個(m x n)分區。而主機端所使用的LBA係為連續定址的且每一LBA所對應之儲存空間大小係為一分區之大小,故主機端IO請求之LBA所對應的VBI之關係為:VBI=主機LBA/(m x n)。
雖然以上係以第4A及4B圖說明一BAT 2137之資料結構,但是 只要是能找出VBI與VV1中實際使用的區段之位置索引(亦即BAB為1之位置索引欄位41)之映射關係(mapping)的方法,皆為本發明之範疇。
依據本發明之一低額容量提供(thin provisioning)實施例,當一 虛擬卷VV建立好並呈現給主機10後,但尚未收到主機10寫入IO請求之前,沒有被分配任何實際的容量,因為在該虛擬卷VV中並無資料,故其BAT中之BAB均為零,沒有任何PSI被用於該虛擬卷VV中;然而,一虛擬卷容量係被儲存為一個BAS屬性並呈報給主機10,主機10因而會認為此一虛擬卷之容量係為該虛擬卷容量。
依據本發明之一實施例,若是在虛擬化層202A中有足夠的快 取緩衝(cache buffer)(圖未示)的話,可將虛擬卷VV(含VV1)中之全部的MATADATA及區塊關聯集區段分配串列213a、213b以及虛擬池VP(含VP1) 中之一實體對虛擬區段索引映射表(physical-to-virtual section index mapping table,簡稱physical-to-virtual mapping table,P2V table,或P2V表)5135,其儲存於V2P及一虛擬對實體區段索引映射表(virtual-to-physical section index mapping table,簡稱virtual-to-physical mapping table,V2P table,或V2P表)5137存入該快取緩衝中,則IO處理的延遲(latency)將很小,因而降低儲存虛擬化的時間成本(overhead)。P2V表與V2P表將於後文中說明。
依據本發明之另一實施例,一虛擬卷VV在建立時亦可設定一 保留容量(reserved capacity),以確保該虛擬卷VV可具有一最小容量。舉例而言,若該虛擬卷VV之虛擬卷容量為400GB,但是其保留容量(reserved capacity)係設定為100GB,則其最小容量將會是100GB。此可利用SAS區段保留機制(section reservation mechanism)而達成。當該虛擬卷VV的實際容量尚不足該保留容量時,該SAS區段保留機制會將該保留容量與實際容量差額之容量保留起來,並隨著實際容量的增加而減小所保留的容量,直到實際容量已達到該保留容量為止。
依據本發明之一實施例的全額容量提供(full provisioning)實施 例,在儲存系統架構30建立之時,即會將卷容量的空間分配給該虛擬卷VV,故該虛擬卷VV中呈報給主機10之卷容量係為一實際卷容量,此可確保此VV一定可以用到呈報給主機10之卷容量。
依據本發明之容量提供(provisioning)實施例,其具有以下三種 實施樣態:第一、係利用上述SAS區段保留機制(section reservation mechanism)而達成;第二、係利用區段分配機制(section allocation mechanism)而達成;第三、係利用區段指定機制(section assignment mechanism)而達成。
依據第一種實施樣態之「區段保留機制」進行無容量提供(no provisioning)時,虛擬卷VV之虛擬容量只是藉由一個數值的設定而被保留起來,並未被真正地分配(allocate)或指定(assign)給虛擬卷VV,故此一操作非常快速,而空間的實際分配與指定則是等到主機的IO請求發生時才進行。 若是有空間需要從虛擬卷VV中釋放出來,則也只要更改虛擬容量的設定值即可。因此虛擬卷VV要更改其虛擬容量將會具有很大的彈性而非常容易進行且快速。
依據第二種實施樣態之「區段分配機制」進行全額容量提供(full provisioning)時,虛擬卷VV之虛擬容量只是先被分配(allocate),並未被真正地指定(assign)給他們,故此一操作會較慢於第一種實施樣態之區段保留機制,而空間的實際指定則是等到主機的IO請求發生時才進行。如果虛擬卷VV要更改其虛擬容量將會較難於第一種實施樣態之區段保留機制。依據本發明之一實施例,當進該區段分配機制係利用一已分配區段串列(allocated section list)將已分配的區段記錄下來。之後,當收到主機的IO請求且需要已指定給該至少一虛擬卷使用之儲存空間外的儲存空間時,會從該已分配區段串列中提供資料區段指定給虛擬卷VV使用。
依據第三種實施樣態之「區段指定機制」進行預先容量提供 (pre-provisioning)時,虛擬卷VV之虛擬容量已被實際地指定(assign)給他們,故此一操作會較慢於第一種實施樣態之區段保留機制及第二種實施樣態之區段分配機制,但主機的IO請求進行時可將循序的(sequential)資料連續地(contiguously)排列,可得到較佳之循序讀取效能。依據本發明之一實施例,區段的指定係藉由將位置索引(location index)填入虛擬卷VV之BAT中而 達成,其實施例請見第4A圖及第4B圖之相關說明。由於虛擬容量已經實際指定(assign)給某一虛擬卷VV,因此無法將已經指定的空間釋放出來。除非利用其他機制(例如BAB等)記錄被指定給虛擬卷VV的容量中,實際被主機的IO請求所使用掉的空間才有可能將其釋放(例如利用遷徙功能等)。
依據本發明之一實施例,一虛擬池VP係可對於其中所用掉的 容量或所剩餘的容量進行事件通知(event notification),此事件通知門檻(threshold)可依容量水準(capacity level)而設或是容量百分比(capacity percentage)而設。例如:假設一虛擬池VP之總容量為800GB,可設定當用掉的容量達到700GB時發出事件通知,當用掉的容量達到80%(560GB)時發出事件通知,或是兩者皆設任一達到即發出事件通知。依據本發明之另一實施例,該此事件通知門檻亦可依特定虛擬卷VV容量佔虛擬池VP總容量百分比而設。例如,當一個虛擬池VP中提供有10個虛擬卷VV時,平均一個虛擬卷VV之容量佔虛擬池VP總容量百分比為10%,故可設定當一虛擬卷VV之容量佔虛擬池VP總容量百分比達20%或30%(意味著為預估平均值之兩倍或三倍)時即發出事件通知。又如,當一虛擬卷VV之容量佔虛擬池VP總容量百分比達50%(意味著為已達虛擬池VP總容量之一半)時即發出事件通知。又或,當某特定之虛擬卷VV之容量佔虛擬池VP總容量百分比達特定值時(意味著為已達到某一預估值)時即發出事件通知。
依據本發明之一實施例,該儲存系統架構30可以利用單一管 理窗口來管理多個子系統或多個卷的容量分配及利用,具有容量管理方便的優點。該儲存系統架構30,依據本發明之一實施例,在VV空間不敷使用時,可以加大其呈報給主機10的卷容量(無論其為虛擬卷容量或實體卷容 量);依據本發明之一實施例,當VP空間不敷使用時,可以向ME提供者取得可用的ME容量來使用。依據本發明之一實施例,當一個VP中的(例如VP1)之空間不敷使用而另一個VP中的(例如VP2)之空間尚有可利用之空間時,可將另一個VP(即VP2)的可利用空間釋出並將之提供給該個VP(即VP1)使用。例如,當VP1之空間不敷使用,則VP2可利用遷徙功能將某一ME移除再將該ME新增入VP1,而使得VP1增加可用的ME空間。
依據本發明之一實施例,當整個儲存系統架構30中之儲存空 間不敷使用時,可以經過簡單的組態設定(configure),即可將一新的RAID子系統加入儲存系統架構30中,並為各個VP及VV所使用。
利用本發明之低額容量提供(thin provisioning)功能,一個VP 可以映射出多個VV,這些VV的各別虛擬卷容量總合可以超過該VP之總容量,如此可以使子系統或儲存系統架構30在儲存空間的運用上具有很大的彈性。
舉例而言,當一個VP(例如圖2B中之VP)之總容量為800GB時, 可以映射出多個VV(例如VV1、VV2及VV3),每個VV均有一虛擬卷容量呈報給主機10(例如VV1之虛擬卷容量為400GB、VV2之虛擬卷容量為500GB、VV3之虛擬卷容量為700GB),所有VV之虛擬卷容量之總合(1600GB)可以超過該總容量,但是實際使用時則視寫入各個VV中的實際IO請求的資料量來決定各個VV中的實際使用容量。例如,當使用之時判斷VV1需要200G、VV2需要250G、VV3需要350G,故將其各自之虛擬卷容量為以上之設定結果在使用一陣子後發現VV1的用途只會用到100GB,但是VV2的用途所需要的空間一直增加,可能會用到500GB,而VV3的容量卻因為IT 預算的改變而根本從未使用,結果當時真正的使用空間是VV1為80GB、VV2為470GB、VV3為0GB。此時,由於800GB的VP只用掉了550GB,尚有250GB的空間可以使用,若是還有需求,仍可以產生新的VV,如VVm等。
因此,由以上所述可知,儲存虛擬化的優點在於其儲存系統的管理方便及系統的擴充性。
關於媒體區伺服器層(ME server layer)203A、203B及203C,依據本發明之一實施例,一個ME僅可繫屬(associated)於一個主控子系統20A的虛擬化層202A而為其管理及使用。依據本發明之一實施例,每一子系統20A、20B、20C分別建置有一ME伺服器層203A、203B及203C於RAID層204A、204B及204C之上,以將該RAID層204A、204B及204C中之ME呈現出來供所繫屬的虛擬化層202A管理使用,並為其本身所在的子系統20A、20B、20C的虛擬化層202A找到所繫屬的ME供其管理使用。該ME伺服器層203A、203B及203C會將其所在之子系統20A、20B、20C的每一個ME所繫屬的主控子系統20A加以記錄。依據本發明之一實施例,在第1A圖中之實施例中亦有媒體區伺服器層,雖然於第1A圖中並未繪示。
依據本發明之一實施例,係可自虛擬池中移除媒體區,茲說明如下。
首先,在媒體區的區段中的資料係被遷徙至其他媒體區的區段中。遷徙目的地係由該區段相關的(associated)虛擬卷的『分散式資料』屬性所決定(亦請參閱與『區段遷徙(Section Migration)』及『分散式資料(Distributed Data)』等主題)。其次,被清空的區段於是被從所連結的BAS SAL中抽掉。{Then,the emptied sections are then swapped out of the BAS SALs to which they are linked.}最後,當要被移除的媒體區中之所有區段以此種方式被釋出後,該媒體區係自該SAS中移除。
請參閱第9圖,其係為依據本發明之又一實施例之儲存系統架 構90之示意圖。該儲存系統架構90不論其架構、運作方式或資料結構,大致上與第2A圖之實施例相同,相同之處於此不予贅述,並僅就差異之處做說明。
儲存系統架構90,係為多個RAID子系統(RA 20A、RB 20B、 RC 20C)及一主機10與其相連而成。第9圖之實施例與第2A圖之實施例相較之下,第9圖之實施例係增設一主機代理人(Agent or Host Agent)110於主機10中,且主機10可透過該主機代理人110的協助而直接與所有的子系統20A、20B、20C聯繫以存取其資料。藉此,藉此改善單一主控子系統20可能會成為系統效能的瓶頸的問題。於本發明第二實施例中,從屬子系統20B、20C與主控子系統20A之聯繫可在主機代理人110及該ME伺服器層203A、203B及203C的協助下而進行,其細節將於下文中說明。
在具有主機代理人110的架構下,每一個從屬子系統20B、20C 必須將它的實體媒體區呈現給有權限存取該媒體區所屬的虛擬卷的主機代理人110以供其使用,而主機代理人110必須將這些媒體區遮蔽起來而不為主機上層所見,且亦不為其他主機所見。此一功能係由媒體區伺服器所執行。
主機代理人110會使用一資料位置詢問命令發送給主控子系統 20A的虛擬化層202A向其詢問主機10欲存取資料的位置。依據本發明之一實施例,該資料位置詢問命令係可為自定的資料分佈詢問SCSI命令 (proprietary data distribution query SCSI command)發送給主控子系統20A的虛擬化層202A向其詢問主機10欲存取資料的位置,然後根據主控子系統20A之虛擬化層202A的回覆資訊直接在資料實體所在之子系統20A、20B、20C上進行資料存取,詳細說明如後。在主機代理人110的資料分佈詢問SCSI命令的IO請求中,提供了定義要存取之虛擬範圍之邏輯區塊位址/區塊數量(LBA/Block-Count defining virtual range to be accessed)。子系統20A、20B、20C在收到詢問命令後,則回應以一實體媒體識別碼/邏輯區塊位址/區塊數量/有效性檢查序號之清單(list of physical ME-ID/LBA/Block-Count/VCSN),該清單含括了所詢問的範圍。另一方面,主機代理人110進一步與各個子系統20A、20B、20C的ME伺服器層203A、203B、203C溝通,以得知各個子系統20A、20B、20C所呈現出來可供存取的ME的相關資訊,據以判斷上述清單中所記載的ME ID是屬於哪一個子系統20A、20B、20C。然後,主機代理人110便可以根據以上資訊,使用自定的讀/寫SCSI命令(proprietary Read/Write SCSI commands)直接對該ME ID所屬的子系統發出資料讀取或寫入的IO請求(或稱為輸出入存取命令(IO access command))。除了邏輯區塊位址/區塊數量之外,該等自定的讀/寫SCSI命令另包含了一有效性檢查序號(Validity Check Sequence Number,VCSN)於其命令描述碼區塊(command descriptor block,CDB)(圖未示)中,用以供接受命令的子系統驗證該命令的有效性,其中當該IO請求為有效命令,則依據該IO請求存取RAID子系統20A、20B、20C,而當該IO請求非為有效命令,則拒絕該IO請求。依據本發明之另一實施例,該資料位置詢問命令係可為依據其他通訊協定所定義的資料位置詢問命令。
依據本發明之一實施例,各子系統20A、20B、20C的RAID層 204A、204B、204C之上更設有一有效性檢查模組,以本實施例而言,係分別為一「有效性檢查序號代理人」(Validity Check Sequence NumberAgent,以下稱VCSN代理人)205A、205B、205C,做為在主機代理人110與RAID層204A、204B、204C之間處理讀取/寫入輸出入要求(Read/Write IO request)(或稱為輸出入存取命令(IO access command))的橋樑,其工作之一便是驗證由主機代理人110所發出之自定的讀/寫SCSI命令所攜帶的VCSN的有效性,藉以判斷該輸出入存取命令位址之正確性。於主控子系統20A中,VCSN代理人205A可以獨立設置於虛擬化層202之外,抑或是設置於虛擬化層202A之內(圖未示)。於各子系統20A、20B、20C中,VCSN代理人205A、205B、205C可分別與ME伺服器層203A、203B、203C分開獨立設置,或是兩者整合在一起(圖未示)。
依據本發明之一實施例,更可於具有資料遷徙功能時對每一 ME增設一VCSN參數。該VCSN值是由主控子系統20A的虛擬化層202A決定並告知ME所在之子系統20A、20B、20C的VCSN代理人205A、205B、205C,而由VCSN代理人205A、205B、205C實際使用VCSN值以決定其所接收的IO請求(或稱為輸出入存取命令(IO access command))的有效性。舉例來說,每當執行一次遷徙操作時,主控子系統20A的虛擬化層202A便進行遷徙操作的ME的VCSN加1(incremented),並通知該ME所屬的子系統的VCSN代理人205A、205B、205C,讓該VCSN代理人205A、205B、205C可以根據新VCSN值驗證資料存取的有效性,其詳細內容將於後文中說明。依據本發明之一實施例,一次遷徙操作可以針對一實體區段進行遷徙操作。若是某一 位置的資料在被主機10或代理人110詢問之時到該主機10或代理人110真正發出IO請求之前已經發生改變,藉由VCSN代理人205A、205B、205C的設置可以確認從屬子系統偵測到此改變並拒絕該IO請求,以迫使主機10或代理人110再次向主控子系統20A詢問相關資訊。此外,於本實施例中,主控子系統20A可以以一特殊VCSN,(或稱為保留(reserved)VCSN),例如「0」,但不以此限制本發明,以回應主機10或代理人110的詢問,該特殊VCSN表示該主機10或代理人110所發出的IO請求必須都透過主控子系統20A來處理。
於本實施例中,更可在主控子系統20A需要主機10或代理人110 先向主控子系統20A詢問再決定如何進行主機的IO請求時將該VCSN改變。例如,主控子系統20A要主機10或代理人110更改IO請求位址時,或是主控子系統20A在主機10或代理人110發出IO請求前要先進行其他資料操作時,或是資料要被寫至好幾個位址時,或是IO請求由主控子系統20A來處理時,將該VCSN改變。依據實施本發明之一實施例,主控子系統清除(purge)從屬子系統20B、20C的VCSN快取(cache),由於此時的從屬子系統20B、20C的VCSN快取(cache)已沒有任何資料,則主機10或主機代理人110所發出的IO請求所攜帶的VCSN便無法通過一致性檢查,如此可使所有的IO請求都被拒絕。
依據本發明之一實施例之有效性檢查序號之建制重點說明如下:
(1)在主控子系統把有效性檢查序號加1,但是在真正服務讀/寫請求的從屬子系統檢查序號。
(2)依據本發明之一實施例,每執行一次遷徙操作時,有效性檢查序號係被加1且透過自定帶內SCSI命令送至從屬端子系統。依據本發明之另一實施例,每當主控子系統需要主機代理人先向其詢問再決定如何進行主機IO請求時,則將該VCSN改變。
(3)回應於資料分佈詢問SCSI命令,將該有效性檢查序號與實體媒體識別碼/邏輯區塊位址/區塊數量一起回覆給主機代理人。
(4)主機代理人在其發給媒體ID所在之子系統的自定讀/寫SCSI命令中,係包含有該有效性檢查序號。
(5)從屬子系統檢查在CDB中之有效性檢查序號,以之與自主控子系統所接收到的最新有效性檢查序號相比。如果兩者不同,則從屬端將拒絕請求,並附帶以意涵說明資料(sense data)以指出原因。
(6)然後主機代理人必須再度詢問以更新映射。
(7)依據本發明之一實施例,有效性檢查序號具有一有效壽命與其繫屬,該有效壽命係與其位元數量相依。舉例而言,如果假設每秒有100個遷徙操作及用16元位長度來紀錄序號,則序號之有效壽命係為小於2**16/100秒的某一值。
(8)如果主機代理人利用快取暫存映射關係資料的話,則其必須監控有效性檢查序號的壽命。有效性檢查序號的壽命的開始時點必須自詢問被發出之時開始起算,而非從回應收到時起算。
(9)如果已經超過有效壽命的話,主機代理人必須將其映射快取清空並再度詢問。如果在一個IO請求的執行期間中可能會發生超過有效壽命的情形的話,則主機代理人應於發出該IO請求之前再度詢問。
依據本發明之另一實施例,亦可不建置該VCSN機制,例如, 當儲存系統架構不執行遷徙操作時。此時,在圖6中亦可不在各子系統20A、20B、20C的RAID Layer 204A、204B、204C之上設置VCSN Agent 205A、205B、205C。又例如,當儲存系統架構透過主控子系統執行遷徙操作時;這是因為該主控子系統知道其所繫屬的資料的實體區段所在的實際位置之故。
依據本發明之又一實施例,亦可當儲存系統架構不執行遷徙 操作時建置該VCSN機制,例如:每當主控子系統需要主機代理人先向其詢問再決定如何進行主機IO請求時,則將該VCSN改變,而當主機IO向主控子系統詢問時(可能是因IO請求被從屬子系統拒絕,也可能是直接詢問),以保留VCSN回覆主機,則主機將會因而直接向主機代理人發出IO請求。
請參閱第10圖,其係為依據本發明之再一實施例之儲存系統 架構92之示意圖。第三實施例與第二實施例大致上相同,相同之處於此不予贅述,並僅就差異之處做說明。儲存系統架構92係為多個RAID子系統(RA 20A、RB 20B、RC 20C)及一主機10與其相連而成,且在主機10中亦設有一主機代理人110。第10圖之實施例與第9圖之實施例相較之下,第10圖之實施例主機10在主機代理人110的協助下不僅與所有的子系統20A、20B、20C均有聯繫,而且每個子系統20A、20B、20C中分別設有虛擬化層202A、202B、202C,即他們各自可做為主控子系統。藉此,主機10可以在代理人110的協助下直接對各子系統20A、20B、20C進行存取,以改善了儲存系統架構90之主控子系統20A可能會成為系統效能的瓶頸的問題,且提高了系統資源運用上的彈性。
請參閱第11圖,其係為本發明第10圖之實施例之儲存系統架 構92指定媒體區之示意圖。儲存系統架構92中的子系統20A、20B、20C係分別產生一VP-A 100A、VP-B 100B、VP-C 100C,除了各自擁有的ME之外,其他的ME皆可被指派給VP-A 100A、VP-B 100B、VP-C 100C的其中任一而供其使用。
依據本發明之一實施例,該等儲存系統架構係可設置『分散 式資料(Distributed Data)』屬性,則在某些情況下會啟動一分散式資料功能而使得儲存系統架構中的資料以分散的方式儲存(attribute)。依據本發明之一實施例,該『分散式資料』屬性係可針對每一虛擬卷各別設定(The "distributed data”attribute supported per Virtual Volume.)。依據本發明之另一實施例,該『分散式資料』屬性係可針對一個虛擬池設定因而其中之每一虛擬卷均具有該『分散式資料』屬性或均不具有該『分散式資料』功能性。
依據本發明之一實施例,各個實體區段係自不同的媒體區以 輪流的方式被分配給一個BAS SAL。
舉例而言,假設在圖3A及3D的實施例中,當一個VV1向VP要 空間時,其方式係利用第4C及4D圖說明如下。當第一次寫入IO發生時,虛擬化層會輪流向RA-ME1、RB-ME1、RC-ME1取得其中之可用區段。假設該IO只需要使用到2個區段的空間,則PSI為001及101的區段將會被指定給VV1,如第4C圖所示。當使用一陣子之後,在另一次收到主機寫入IO時,VV1的空間已不足夠,假設此時VV1總共實際會用到5個區段的空間,則其PSI依序為201、002、102,如第4D圖所示。由於VV中所使用的區段對於各 ME而言大體上是均勻分佈的,故主機IO存取會被分散到各ME上進行,對於子系統而言主機IO存取也較為分散,故各子系統之工作負荷較為平衡,因而此功能性具有負荷平衡(load balance)的功能。
依據本發明之另一實施例,當『分散式資料』屬性係被設定給一個虛擬卷且媒體區係被增加至該虛擬卷所在的池中的話,則增加媒體區至池中會啟動遷徙操作而將在該BAS SAL中的某些資料遷徙至新增加的媒體區的實體區段中。有關資料遷徙功能的細節將於下文中說明。
當媒體區的實體區段中的資料係被遷徙至其他媒體區的實體區段中時,遷徙目的地係由該實體區段相關的虛擬卷的『分散式資料』屬性所決定。有關資料遷徙功能的細節將於下文中說明。
依據本發明之一實施例,該等儲存系統架構係可設置區段遷徙(Section Migration)功能,則在某些情況下會啟動此區段遷徙功能。
依據本發明之一實施例,當增加媒體區至虛擬池中且『分散式資料』屬性係被設定給任一個虛擬卷時,會啟動資料區段遷徙操作。
依據本發明之又一實施例,當進行媒體區自虛擬池中移除操作以釋放屬於要被移除之媒體區的資料區段時,會啟動區段遷徙操作。
依據本發明之一實施例,資料遷徙功能的建制重點如下;
(1)在SAS中為資料遷徙功能而設置一實體區段對虛擬區段交互參照機制(physical section versus virtual section cross-referencing mechanism)。依據本發明之一實施方式,實體區段對虛擬區段交互參照機制之實施係可藉由設置一實體到虛擬區段索引映射表(P2V表)而達成。依據本發明之一實施方式,實體區段對虛擬區段交互參照機制之實施係可藉由, 設置一實體到虛擬區段索引映射表(P2V表)及一虛擬到實體區段索引映射表(V2P表)而達成。其中該(P2V表)及/或(V2P表)係由SAS中的區段分配串列(SAL)所構成,稱為P2V/V2P SAL。
(2)介於BAS SAL及SAS管理層間之界面係藉由虛擬區段索引 (而非實體區段索引)所完成,此一虛擬區段索引在區段遷徙的過程中將不會改變。
(3)虛擬對實體區段索引映射表係用以加速虛擬區段索引轉換 成為實體區段索引。每一個存取一BAS SAL(或虛擬卷)之資料區段的主機IO請求必須參考虛擬對實體區段索引映射表以找到實際資料所在位置之實體區段索引。
(4)在區段遷徙過程中,所有的SAS區段資料更新係被暫停。 此係藉由鎖定機制而達成。同樣的,在獲得鎖定之前,遷徙程式(migration deamon)不能進行遷徙。
(5)將虛擬區段索引轉換成為實體區段索引需要讀取描述資 料,因而成為一凍結操作(blocking operation)。
(6)在所建置之虛擬區段索引中,SAS提供客戶端使用不變的 虛擬區段索引(VSI)而非會遷徙的實體區段索引。
(7)實體對虛擬映射資料係儲存於每個媒體區的SAT中或是另 一個類似於SAT的表中。維護實體對虛擬映射表的目的係為在遷徙以及其他維護操作的過程中加速交互參照。
(8)虛擬對實體映射表係儲存於該SAS的一個保留的SAL中。 虛擬區段索引係基於在該虛擬對實體映射表中之可用之項目而分配。在遷 徙中,僅修改該區段索引映射項目,不須修改區段索引,因為SAS對其客戶端使用不變的虛擬索引。
(9)依據本發明之一實施方式,虛擬對實體及實體對虛擬映射 表係以具有複本的方式儲存,以確保媒體錯誤(media errors)將不致造成映射資料無可挽回的遺失(fatal loss)。依據本發明之另一實施方式,虛擬對實體及實體對虛擬映射表係可以不具複本的方式儲存。
(10)依據本發明之一實施方式,SAS日誌功能也將P2V/V2P映 射表SAL納入其中。依據本發明之另一實施方式,SAS日誌功能也可不將P2V/V2P映射表SAL納入其中。
根據本發明之一實施例,若是有新的ME加入某一VP且該VP 中設定有「分散式資料」屬性,或VP中有ME需要移除,則會啟動一區段遷徙(Section Migration)作業。為使區段遷徙前後,ME中各卷區塊(Volume Block)的VBI與其位置索引(Location Index)之間的虛擬對應關係不變(請參考第4A圖與第4B圖),因此,於本發明之一實施例中,採用一虛擬對實體區段索引映射表(Virtual-to-Physical(V2P)section index mapping table,以下簡稱V2P Table)以及一實體對虛擬區段索引映射表(Physical-to-Virtual(P2V)section index mapping table,以下簡稱P2V Table)各自紀錄虛擬索引(Virtual Index)對實體索引(Physical Index)與實體索引(Physical Index)對虛擬索引(Virtual Index)之對應關係。
請參照第5圖,在SAS中V2P Table與P2V Table係以區段分配表(section allocation list,SAL)的型式儲存,其對應有一節點表(Inode Table)。此儲存有V2P Table與P2V Table的SAL專供SAS本身管理使用,而不呈現出 去供主機存取資料之用。該SAL有一屬性區塊(Attribute Block),用以記載此SAS ID以及相關設定等資訊;有一目錄(directory)欄位,用以記載指引、管理該SAL中各區段(section)的資訊;有一儲存V2P Table的欄位、以及有一儲存P2V Table的欄位。
根據本發明之一實施例,P2V Table 5137的資料格式可如第6A 圖與第6B圖所示,兩者同樣是記載實體索引(Physical Index)對虛擬索引(Virtual Index)的對應關係。不同的是,第6B圖並不如第6A圖般有紀錄實體索引(Physical Index)的欄位,而是依照紀錄虛擬索引(Virtual Index)之各項目(entry)的先後順序而推知其對應的實體索引(Physical Index)。
根據本發明之一實施例,V2P Table 5135的資料格式可如第7A 圖與第7B圖所示,兩者同樣是記載虛擬索引(Virtual Index)對實體索引(Physical Index)的對應關係。不同的是,第7B圖並不如第7A圖般有紀錄虛擬索引(Virtual Index)的欄位,而是依照紀錄實體索引(Physical Index)之各項目(entry)的先後順序而推知其對應的虛擬索引(Virtual Index)。
舉例來說,本發明係利用V2P Table 5135與P2V Table 5137而 使得區段遷徙前後虛擬卷(VV)中各卷區塊索引欄位41中的VBI對位置索引欄位42中的位置索引(location index)的虛擬對應關係不變,而不使資料區段遷徙作業影響到上層應用端的區塊索引資訊。以下舉一實例說明如何應用V2P Table 5135與P2V Table 5137使得虛擬對應關係不變。假設主機10發出一IO請求給虛擬化層202A欲對VBI=001之卷區塊存取資料,請參照第4A及4B圖。首先於虛擬化層202A內找到VBI=001所對應的BAB項目(entry),得知該VBI=001的卷區塊有被其VV1所使用,然後找VBI=001所對應的位置索引為 001。在有V2P Table 5135的情況下,第4A及4B圖中所示的位置索引係對應到第6A及6B圖中的虛擬索引(virtual index)61,據此,可以找到虛擬索引=001(圖中繪示為“1”)所對應的實體索引(physical index)63為002。有了實體索引之後,可以查詢一如第3C或3D圖的紀錄表或經由一特定的運算規則或公式,而得知實體索引=002時所對應到的實體區段位置。若以第3D圖為例,實體索引=002便對應到PSI 81,然後查詢該表(或以一特定的運算規則或公式取代)便可以得知PSI=002時的實體區段位置是在ME ID為RA-ME1、起始位址(LBA)為101之連續100個分區之處。假設主控子系統20A將資料遷徙至另一ME(例如,RB-ME1),則V2P Table 5135中的實體索引63會根據資料的遷徙而改變,例如:虛擬索引=001(圖中繪示為“1”)所對應的實體索引63由002改為對應PSI=101。如此一來,VBI對位置索引的虛擬對應關係可以不用改變,透過V2P Table 5135的轉換仍然可以順利對應到遷徙後新的資料位置,例如:ME ID為RB-ME1、起始位址(LBA)為001之連續100個分區。
請參閱第8A圖,係為當具有V2P表時,VBI與其所對應之實體 區段LBA之映射關係之示意圖。在一個具有V2P表之主控子系統中,虛擬化層係可利用該區塊關聯表(BAT)、該V2P表、及該實體區段索引對實體區段LBA映射函數(或表)8得到VBI與其所對應之實體區段LBA之映射關係。當一VBI為已知時,可利用該區塊關聯表找到其所對應之位置索引,再以該位置索引找到該V2P表之虛擬索引而找到其所對應之實體索引,再以該實體索引作為該實體區段索引並利用該實體區段索引對實體區段LBA映射函數而找到其所對應之實體區段位址。
以下說明如何利用上述之VBI與其所對應之實體區段LBA之映射關係得到一主機命令中之LBA與其所對應之實體區段LBA及分區位址。當一個主控子系統收到一個來自主機的命令時,該命令中所帶之LBA(例如一IO存取命令之LBA或一資料位址查詢命令中所欲查詢之LBA)係被轉換成其所對應之VBI及位址相關資訊(例如區段資訊及/或分區資訊),接著可以利用上述方式找該VBI到所對應之實體區段LBA,再利用該等位址相關資訊(例如區段資訊及/或分區資訊)找到所對應之分區位址。
請參閱第8B圖,係為當發生資料區段遷徙時,VBI與其所對應之實體區段LBA之映射關係之變化之示意圖。在第8A圖的時間之後,當一個虛擬池中發生資料區段遷徙時,若該資料所在實體區段從RA-ME1中PSI=002之一分區處遷徙到RB-ME1中PSI=101另一分區處時,則該V2P表中之PI由002改變成101,而該區塊關聯表(BAT)則並未發生改變。
請參閱第8C圖,係為當只有P2V表而無V2P表時,VBI與其所對應之實體區段LBA之映射關係之示意圖。在一個具有P2V表之主控子系統中,虛擬化層係可利用該區塊關聯表(BAT)、該P2V表、及該實體索引對實體區段LBA映射函數得到VBI與其所對應之實體區段LBA之映射關係。當一VBI為已知時,可利用該區塊關聯表找到其所對應之位置索引,再以該位置索引找到該P2V表之虛擬索引而找到其所對應之實體索引,再以該實體索引利用該實體索引對實體區段LBA映射函數而找到其所對應之實體區段LBA。其中,由於P2V表中是以實體索引次序存放虛擬索引(VI)值,在尋找該P2V表中的虛擬索引(VI)與該位置索引(LI)相同者時,無法直接找到虛擬索引(VI)值,而必須對實體索引內容一一擷取出再與位置索引(LI)比較。
請參閱第8D圖,係為當只有P2V表而無V2P表時,當發生資料區段遷徙時,VBI與其所對應之實體區段LBA之映射關係之變化之示意圖。當該資料所在實體區段從RA-ME1中PSI=002之一分區處遷徙到RB-ME1中PSI=101另一分區處時,則該P2V表中之由原本的PI=002對應至VI=001改變成PI=101對應至VI=001,而該區塊關聯表(BAT)則並未發生改變。
由第8C及8D圖中可以得知,若從PI=001開始檢索VI=001時之PI值,當PI=002時可以較快找到VI=001,而當PI=101時則較慢找到VI=001。由於在第8C及8D圖中之P2V表中之VI值係為不規則排列而必須對實體索引內容一一擷取出再與位置索引(LI)比較,故較為費時。
值得注意的是,於本發明之一實施例中,若是不考慮遷徙作業,且沒有V2P Table 5135與P2V Table 5137,圖4A、4B中所示的位置索引(LI)係為實體區段索引(PSI),即對應至第3C圖或第3D圖中所示之PSI。
請參閱第12A圖,係為當沒有V2P表及P2V表時,VBI與其所對應之實體區段LBA之映射關係之示意圖。在一個沒有V2P表及P2V表之主控子系統中,虛擬化層係可利用該區塊關聯表(BAT)及該實體索引對實體區段LBA映射函數得到VBI與其所對應之實體區段LBA之映射關係。當一VBI為已知時,可利用該區塊關聯表找到其所對應之位置索引,再以該位置索引利用該實體索引對實體區段LBA映射函數而找到其所對應之實體區段LBA。
以下說明如何利用上述之VBI與其所對應之實體區段LBA之映射關係得到一主機命令中之LBA與其所對應之實體區段LBA及分區位址。當一個主控子系統收到一個來自主機的命令時,該命令中所帶之LBA(例如 一IO存取命令之LBA或一資料位址查詢命令中所欲查詢之LBA)係被轉換成其所對應之VBI及位址相關資訊(例如區段資訊及/或分區資訊),接著可以利用上述方式找該VBI到所對應之實體區段LBA,再利用該等位址相關資訊(例如區段資訊及/或分區資訊)找到所對應之分區位址。
在發生資料區段遷徙而需變更卷區塊索引(VBI)與實體區段 LBA的映射關係時,若有P2V表及/或V2P表的話,僅需變更P2V表及V2P表中虛擬索引與實體索引的映射關係,即便是在SAS中尚具有其他資料結構會使用位置索引來映射實體區段LBA時亦是如此,而如第8B及8D圖所示。在發生資料區段遷徙而需變更VBI與實體區段LBA的映射關係時,若無P2V表及V2P表的話,則需變更BAT表中的卷區塊索引與位置索引的映射關係,而如第12B圖所示。
惟,若SAS中尚具有其他資料結構會使用卷區塊索引與位置索 引來映射實體區段位置時(例如另一BAT表),則需變更所有資料結構中卷區塊索引與位置索引的映射關係。此時,由於沒有特定資料結構記錄需變更的位置索引係用於哪些資料結構中(例如一BAT表),SAS須將所有具有位置索引的資料結構(例如所有的BAT表)掃瞄一次,以找出是否其中具有該需變更的位置索引,並於找出後針對每一資料結構中的位置索引進行變更,系統效能會因而大幅降低,甚至於低到令人無法接受的程度。
請參閱第21圖,其中係顯示有依據本發明之虛擬卷快照(virtual volume snapshot)功能性之一資料結構之一實施例。在本實施例中,該SAS 211中另可包含用於虛擬卷快照功能性之資料結構。SAS 211可以包含一或複數個用於區塊關聯集區段分配串列BAS SAL#1、BAS SAL#2等及一節點 表,係用以記錄係進行時間點(point-in-time;簡寫為PIT)備份(backup)之基礎。區塊關聯表(Block Association Tables),以下簡稱BAT,係儲存在此BAS之中。BAT係用以儲存交互參考資訊以與具有原始儲存位置(LBA)之備份資料相對應,亦即每個BAT內係記錄有指向其所對應之PIT快照影像(Snapshot Image)之資訊。而備份資料(快照影像)亦儲存於此BAS之中。
依據本發明之一實施例,該區塊關聯集區段分配串列另包含 有:一屬性區塊(Attribute Block),用以記載此區塊關聯集區段分配串列之ID、大小以及相關設定等資訊;一目錄(directory)欄位,記載指引、管理該區塊關聯集區段分配串列中各實體區段的資訊;一日誌(Journal)欄位,用以存放運作日誌,以供系統發生錯誤或斷電情事時可供恢復(recovery)之用。
由於該虛擬卷快照功能亦係利用BAT表來記錄卷區塊索引與 位置索引的映射關係,一旦發生資料區段遷徙而需變更卷區塊索引與實體區段LBA的映射關係時,亦須將所有的BAT表掃瞄一次,以找出是否其中具有該需變更的位置索引,並於找出後針對每一BAT表中的位置索引進行變更。
由於第10圖的實施例中的該等子系統20A、20B及20C均是主 控子系統,子系統20A、20B及20C也均是從屬子系統,則各子系統之ME伺服器層203A、203B、203C會將其自身的RAID層204A、204B及204C中的每一個ME記錄其各自所繫屬的主控子系統20A、20B、20C並將其呈現出來,且主控子系統20A、20B、20C之ME伺服器層203A、203B、203C會將自身的虛擬化層202A、202B、202C所繫屬的ME找到供其管理使用。假設虛擬化層202A產生一VP-A 100A、虛擬化層202B產生一VP-B 100B、虛擬化層 202C產生一VP-C 100C,則ME伺服器層203A會記錄RA-ME1繫屬於子系統20A,RA-ME2、RA-ME3、RA-ME4繫屬於子系統20C;ME伺服器層203B會記錄RB-ME1繫屬於子系統20A,RB-ME5、RB-ME6繫屬於子系統20C;ME伺服器層203C會記錄RC-ME1繫屬於子系統20A,RC-ME2、RC-ME3、RC-ME6繫屬於子系統20B。
以上所述之各儲存系統架構實施例係為本發明對於儲存虛擬 化之應用。更甚者,依據本發明之一實施例,在該等儲存系統架構實施例中係可建制資料遷徙功能性。以下係為本發明在資料遷徙上功能性的說明。
雖然在前述的例子中,僅例示有一個主機10連接於一主控子 系統20A上,但是依據本發明之其他實施例,可以有複數個主機10連接於一主控子系統20A上。
第13圖係為依據本發明之一實施例之因移除ME而引發的遷徙 作業之流程圖。在本實施例中,當主控子系統20A的虛擬化層202A接到一將被移除的ME所對應之一移除時,首先,於步驟501,根據該移除訊息,找出該將被移除的ME所繫屬的SAS(VP)。步驟501的尋找過程可以從任一SAS(VP)開始,如果判斷結果不是,再尋找另一個SAS(VP)來加以判斷;或者是可以複數個SAS(VP)同時進行判斷。於步驟502,找到與該將被移除的ME所繫屬的SAS(VP)後,則從該SAS(VP)的SAT中取得與將被移除的ME關聯的實體區段資訊。於步驟503,根據所取得的實體區段資訊,從第一個區段開始。於步驟504,在進行該區段的遷徙作業之前,虛擬化層先將該將被移除的ME的VCSN加1、且通知該ME所繫屬的子系統的VCSN代理人其加1後的VCSN。於步驟505,更改VCSN的相關作業完成後,開始複製(Copy) 或搬移(Move)該將被移除的ME所包含的實體區段的資料到另一個ME。於步驟506,然後判斷該將被移除的ME上所包含的實體區段資料是否皆已複製或移動到另一或多個ME;當判斷該將被移除的ME上之所有實體區段上的資料已完成複製或移動至其他該複數媒體區其中之一或多個時,則移除該將被移除之媒體區,此流程係完成。否則,於步驟506,當判斷該將被移除的ME上尚有實體區段未完成複製或移動至其他ME其中之一或多個時,則執行步驟507,取得下一個實體區段的資訊,然後重複進行步驟504到步驟506的流程。
第14圖係為依據本發明之一實施例之因增加ME而引發的遷徙 作業之流程圖。在本實施例中,當主控子系統20A的虛擬化層202A接到一新增訊息得知有新的ME加入某一SAS(VP)時,首先,於步驟601,根據該新增訊息,找出該新增ME所繫屬的SAS;接著,計算該SAS(VP)中所有ME已經使用的實體區段的總實體區段數,此資訊可以由該SAS(VP)的SAT中獲得。於步驟602,利用該總實體區段數及ME數(亦包含該新增的ME),以計算出每一個繫屬於該SAS(VP)的ME之一平衡後的實體區段數(balanced section count)。於步驟603,選取一來源ME(Source ME)開始進行處理,其中來源ME係指SAS(VP)中原有之所有ME為。於步驟604,判斷是否所有的來源ME皆已處理過。若步驟604的判斷結果為「是」,則結束此流程。若步驟604的判斷結果為「否」,則至步驟605。於步驟605,判斷正在處理中的來源ME之實體區段數是否大於該平衡後的實體區段數。若步驟605判斷為「是」,則至步驟606進行該來源ME的VCSN更改程序,包括將該來源ME的VCSN加1、且通知該來源ME所繫屬的子系統的VCSN代理人其加1後的 VCSN(step 606),然後至步驟607將該來源ME的區段資料複製或搬移到新增的ME(目標ME)。以上作業完成後,來源ME的實體區段數將因移出資料而減少,因此回到step 605,繼續比較已使用區段的實體區段數是否大於計算出來的平衡後的實體區段數,如果判斷結果為「是」,重複step 606與step 607。若步驟605判斷為「否」,即正在處理中的ME之實體區段數不大於該平衡後的實體區段數時,則進行步驟608以取得下一ME進行處理,然後再回到步驟604判斷所有的ME是否已處理完成,重複進行之後的判斷與處理。
第13圖與第14圖所描述的流程係處理只有1個ME移除與1個新 ME加入的情況。若是移除或加入第1個ME之後且第13圖或第14圖的流程還在進行中,又移除或加入第2個ME,根據本發明之一實施例,第13圖或第14圖的流程將因移除或加入第2個ME而重新開始。於第14圖的流程,因為第1個加入的ME已經接收了一些搬移進去的實體區段上的資料,因此第1個加入的ME相對於第2個加入的ME而言,亦可能扮演傳遞資料之來源ME角色。
以上第13圖與第14圖係為以ME為基礎而進行的遷徙作業。接下來的第15圖與第16圖係為以SAL為基礎而進行的遷徙作業。
請參照第15圖,係為依據本發明之另一實施例之因移除ME而引發的遷徙作業之流程圖。當主控子系統20A的虛擬化層202A接到一將被移除之ME所對應之一移除訊息時,首先,於步驟701,根據該移除訊息,找出該將被移除的ME所繫屬的SAS(VP)。步驟701的尋找過程可以從任一SAS(VP)開始,如果判斷結果不是,再尋找另一個SAS(VP)來加以判斷;或者是可以複數個SAS(VP)同時進行判斷。接著,於步驟702,找到與該將被 移除的ME所繫屬的SAS(VP)後,判斷所繫屬之該SAS(VP)中的所包含之所有區塊關聯集區段分配串列是否已確認。若步驟702的判斷為「是」,則移除該將被移除之媒體區,此一流程結束。若步驟702的判斷結果為「否」,則進行步驟703,亦即,當該複數區塊關聯集區段分配串列尚有未完成確認者時,選擇一區塊關聯集區段分配串列進行確認。若步驟703的判斷結果為「是」,則進行步驟704,取得另一個SAL的資訊,並回到步驟702。若步驟703的判斷結果為「否」,則進行步驟705,判斷該區塊關聯集區段分配串列中目前進行處理之實體區段是否關聯於該將被移除之媒體區。當步驟705的判斷結果為「是」時,表示該目前進行處理之實體區段是關聯於該將被移除之媒體區,此時進行步驟706,虛擬化層202先將該將被移除的ME的VCSN加1、且通知該ME所繫屬的子系統的VCSN Agent其加1後的VCSN。於更改VCSN的相關作業完成後,進行步驟707,複製(Copy)或搬移(Move)該目前進行處理之實體區段上的資料至其他該複數媒體區的其中之一。然後取得下一個區段的資訊(step 708),並回到步驟703,重複進行步驟703到步驟708的流程。當步驟705的判斷結果為「否」時,表示該目前進行處理之實體區段並非關聯於該將被移除之媒體區,此時進行步驟708,到step 708取得下一個區段的資訊,並重複之後的流程。
請參照第16圖,係為依據本發明之另一實施例之因增加ME而引發的遷徙作業之流程圖。當主控子系統20A的虛擬化層202A接到一新增ME之新增訊息時,首先,找出該新增ME所繫屬的SAS(VP),尋找過程可以從任一SAS(VP)開始,如果判斷結果不是,再尋找另一個SAS(VP)來加以判斷;或者是可以複數個SAS(VP)同時進行判斷。於步驟801中,根據該新增 訊息,找出該新增媒體區所繫屬之該區段分配系統。於步驟802,判斷所繫屬之該區段分配系統中所包含之所有複數區塊關聯集區段分配串列是否皆已確認。當步驟802的判斷結果為「是」時,表示所有該複數區塊關聯集區段分配串列已完成確認,則此流程結束。然而,當步驟802的判斷結果為「否」時,表示該複數區塊關聯集區段分配串列尚有未完成確認者,則進行步驟803。於步驟803,選擇一區塊關聯集區段分配串列進行確認,判斷是否已經到了目前進行確認的SAL的終點(end of list,EOL)。若步驟803的判斷結果為「是」,則進行步驟804,取得另一個BAS SAL的資訊,並回到步驟802。若步驟803的判斷結果為「否」,則進行步驟805,進一步判斷該BAS SAL在與目前進行確認之區段關聯的ME中是否有較多的區段數。若step 805的判斷結果為「是」,表示該目前進行確認之實體區段所關聯之該媒體區中已使用的實體區段數大於新增媒體區之該實體區段數,則進行步驟806,虛擬化層202先將該新增的ME的VCSN加1、且通知該ME所繫屬的子系統的VCSN代理人其加1後的VCSN。更改VCSN的相關作業完成後,進行步驟807,開始複製(copy)或搬移(Move)該區段的資料到新增的ME。然後進行步驟808,取得下一個區段的資訊,並回到步驟803,重複進行步驟803到步驟807的流程。如果步驟805的判斷結果為“否”,表示該所關聯之該媒體區中已使用的實體區段數不大於新增媒體區之該實體區段數,則到步驟808取得下一個區段的資訊,並重複之後的流程。
以上第15圖與第16圖所描述的流程係處理只有1個ME移除與1個新ME加入的情況。若是移除或加入第1個ME之後,且第15圖或第16圖的流程還在進行中,又移除或加入第2個ME,根據本發明之一實施例,第15 圖或第16圖的流程將因移除或加入第2個ME而重新開始,也就是該SAS(VP)中的所有SAL需要重新進行確認。
在進行遷徙作業的過程中,主機仍可能隨時對進行遷徙作業 的ME發出讀取/寫入資料的IO請求。為避免在遷徙作業的過程中存取到錯誤的資料,於本發明之一實施例中,每一ME係設定一有效性檢查序號(VCSN),每當ME中的一個實體區段上的資料要遷徙之前,主控子系統的虛擬化層必須先更改該ME的VCSN,並通知該ME繫屬的子系統的VCSN代理人,使得VCSN代理人可以根據VCSN來判斷IO請求的有效性。
第17圖係為依據本發明之一實施例之主機10或主機代理人110 向主控子系統20A的虛擬化層202A詢問VCSN的流程圖。第18圖係為依據本發明之一實施例之接受IO請求的VCSN代理人確認其所攜帶VCSN的有效性的流程圖。需說明的是,IO請求係可由主機10或主機10內所包含之代理人110所發出,而以下為簡化說明,僅以代理人110發出IO請求做為說明,熟悉該技術領域之人士應當可輕易推得,主機10亦可取代代理人110而發出IO請求,或是以RAID子系統觀之,該IO請求係由該主機10所發出。
請同時參照第17圖與第9圖。於步驟901,代理人110發出包含 一自定的資料分佈詢問SCSI命令之IO請求向主控子系統20A的虛擬化層202A詢問欲存取之目標資料(target data)的實體位置資訊。於步驟902,主控子系統20A的虛擬化層202A在收到詢問命令後,則回應代理人110一實體媒體識別碼/邏輯區塊位址/區塊數量/有效性檢查序號之清單(list of physical ME-ID/LBA/Block-Count/VCSN),該清單含括了所詢問的範圍,然後結束此一詢問流程。於本發明之一實施例中,步驟902在進行回應之前,必須先 確認代理人110所詢問的目標資料所在的ME是否正在實體區段上的資料進行區段遷徙作業的過程中。如果確認結果為「是」,則主控子系統20A可能延遲回應直到實體區段上的資料區段遷徙作業結束,或是回應一個「Busy」的訊息給代理人110指示它等一下再試一次,或是回覆一個指示(例如:reserved VCSN)要求代理人110所發出的IO請求必須發送至主控子系統20A。
請同時參照第18圖與第6圖。於步驟903,代理人110根據該清 單的資訊對目標資料所在之目標RAID子系統發出IO請求。於步驟904,該IO請求由目標RAID子系統中的VCSN代理人所接收。於步驟905,VCSN代理人將該IO請求中所攜帶的VCSN與虛擬化層202A通知的VCSN做比較,看兩者是否一致,若是一致,表示該IO請求中所攜帶的VCSN是有效的,反之則是無效。於步驟907,若是步驟905的比較結果是該IO請求中所攜帶的VCSN是有效的,則VCSN代理人將該IO請求轉移給RAID層。於步驟908,RAID層處理完該IO請求後,將處理的結果經由VCSN代理人回覆給代理人110。 於步驟906,若是步驟905的比較結果是該IO請求中所攜帶的VCSN不是有效的,則VCSN代理人拒絕該IO請求並結束此一確認流程。
綜上所述,代理人110被拒絕存取後,可能會有兩種做法:第一種做法,再向主控子系統20A的虛擬化層202A詢問正確的VCSN,然後再根據正確的VCSN發出另一IO請求以存取資料,也就是再重複進行一次第17圖與第18圖的流程。第二種做法,代理人110放棄直接向ME所在的子系統發出IO請求,而是轉而尋求主控子系統20A的虛擬化層202A協助存取資料。
值得注意的是,第17圖所描述之詢問VCSN的流程可能發生在 發出IO請求之前或之後,端視代理人110在何時有此需求。舉例來說,如果之前已經有IO請求存取過相同區塊的資料,則代理人110會有與該資料區塊對應的VCSN的紀錄,此時代理人110可以不要進行第17圖的詢問流程,而是直接根據之前的紀錄向目標RAID子系統發出IO請求,也就是直接進行第18圖的流程。若是此IO請求所攜帶的VCSN為無效而被拒絕,則代理人110可能馬上或在下次發出IO請求前,進行第17圖的詢問流程。
請參閱第19圖,第19圖係繪示依據本發明之一儲存系統架構 中之直接媒體區存取功能之一實施例的流程圖。於此,主機透過一主機代理人(host agent)來處理IO存取等事項。因此,主機代理人先掃描該等ME來以便得知與該等ME相關之ME組態/位置(configuration/location)等資訊,並據以產生一份清單用以紀錄ME屬性及他們位於哪一個ME伺服器之下,如:媒體區識別碼對儲存節點交互參照表(ME-identifier-to-storage-node cross-reference table)(步驟2100);然後,主機代理人接收到來自於主機之一IO請求(步驟2102);接著,主機代理人傳送一資料位置詢問命令(data location query command)給一虛擬池主控者(VPM)來得到被定址資料的實體位置(步驟2104),其中,該資料位置詢問命令係由一命令碼、一虛擬卷識別碼/代號(handle)及欲存取之區塊範圍(基礎區塊位址(base block address)與區塊數(block count))所構成。該虛擬池主控者在接收到該資料位置詢問命令後,會發送一資料位置描述碼(data location descriptor)給主機代理人,其中,該資料位置描述碼包含有一資料位置資訊(data location information)(步驟2106);再者,主機代理人依據該資料位置資訊產生一IO請求(步驟2108),其中,於第19圖中所示,IO請求又稱作為IO存取命令(IO access command);接著,主機代理人使用媒體區識別碼(ME ID)及該媒體區識別碼對儲存節點交互參照表來確定所要存取的目標儲存節點後,就發送出一IO請求給該目標儲存節點,其中,媒體區識別碼係被包含於該資料位置資訊中(步驟2110)。該目標儲存節點之媒體區伺服器查驗該IO請求中之有效性檢查資訊(Validity Check Information,VCI)是否與來自該虛擬卷主控者中的有效性檢查資訊(步驟2112及步驟2114)一致;若該IO請求中之有效性檢查資訊與來自該虛擬卷主控者中的有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊一致,則該目標儲存節點之該媒體區伺服器執行該IO請求(步驟2116);而若該IO請求中之有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊與來自該虛擬卷主控者中的有效性檢查資訊不一致,則該目標儲存節點之該媒體區伺服器回覆一錯誤指示信號(error indication)給該主機代理人,且該主機代理人再次執行上述之步驟2104(步驟2118)。
在本實施例中,該主機代理人並不需要將來自該虛擬卷主控 者中的有效性檢查資訊儲存起來,但是必須於每次發出IO請求之前,先向該虛擬卷主控者發出一資料位置詢問命令後,才能向目標ME發出IO請求。
請參閱第20A圖及第20B圖,第20A圖及第20B圖係繪示依據本發明之一儲存系統架構中之直接媒體區存取機制之另一實施例的流程圖。於此,主機代理人先掃描該等ME來以便得知與該等ME相關之ME組態/位置(configuration/location)等資訊,並據以產生一份清單用以紀錄ME屬性及他們位於哪一個ME伺服器之下,如:媒體區識別碼對儲存節點交互參照表(ME-identifier-to-storage-node cross-reference table)(步驟2202);然後,主 機代理人接收到來自於主機之一IO請求(步驟2204)。然後,主機代理人在發送一IO請求給一儲存節點前,會先檢查該資料位置資訊是否存在於其快取記憶體中(步驟2206及步驟2208);若該資料位置資訊不存在於主機代理人之快取記憶體中,主機代理人傳送一資料位置詢問命令(data location query command)給一虛擬池主控者(VPM)來得到被定址資料的實體位置(步驟2210),其中,該資料位置詢問命令係由一命令碼、一虛擬卷識別碼/代號(handle)及欲存取之區塊範圍(基礎區塊位址(base block address)與區塊數(block count))所構成。該虛擬池主控者在接收到該資料位置詢問命令後,會發送一資料位置描述碼給主機代理人,其中,該資料位置識別碼包含有一資料位置資訊(data location information)(步驟2212);接著,主機代理人會將該資料位置資訊儲存在其快取記憶體中(步驟2214)並決定是否檢查該有效性檢查資訊之壽命(步驟2216)。承上步驟2206及步驟2208,若該資料位置資訊存在於主機代理人之快取記憶體中,主機代理人決定是否檢查該有效性檢查資訊之壽命(步驟2216)。
承上述之步驟2216,若決定不檢查該有效性檢查資訊之壽命, 該主機代理人依據該資料位置資訊產生一IO請求(步驟2230);接著,主機代理人使用媒體區識別碼及該媒體區識別碼對儲存節點交互參照表來確定所要存取的目標儲存節點後,就發送出一IO請求給該目標儲存節點,其中,媒體區識別碼係被包含於該資料位置資訊(步驟2232);然後,該目標儲存節點之媒體區伺服器檢查該IO請求中之有效性檢查資訊(VCI)是否與來自該虛擬卷主控者中的有效性檢查資訊(步驟2234及步驟2236)一致。
承上述之步驟2236,若該IO請求中之有效性檢查資訊與來自 該虛擬卷主控者中的有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊一致,則該目標儲存節點之該媒體區伺服器執行該IO請求(步驟2238);而若該IO請求中之有效性檢查資訊與來自該虛擬卷主控者中的有效性檢查資訊與該虛擬卷主控者中的有效性檢查資訊不一致,則該目標儲存節點之該媒體區伺服器回覆一錯誤指示信號(error indication)給該主機代理人(步驟2240),且該主機代理人再次將其所屬之快取記憶體中之特定資料位置資訊或全部資料位置資訊視為無效(步驟2242),並再次執行步驟2210。
承上述之步驟2216,當決定檢查該有效性檢查資訊之壽命, 則該主機代理人判定該資料位置資訊之壽命是否已過完(elapsed)(步驟2218);若該資料位置資訊之壽命已過完(即已超過其有效壽命),則該主機代理人將其所屬之快取記憶體中之特定資料位置資訊或全部資料位置資訊視為無效(步驟2220),並再次執行步驟2210;若該資料位置資訊之壽命尚未過完(即尚未超過其有效壽命),則執行步驟2230。
在本實施例中,該主機代理人必須將得自該虛擬卷主控者中 的有效性檢查資訊儲存於一儲存裝置中,例如一快取記憶體中,而於每次欲向目標ME發出IO請求之前,先檢查該IO請求之資料位置資訊已儲存於該儲存裝置中,若該資料位置資訊已儲存於該儲存裝置中時,可以直接向目標ME發出IO請求而不必向該虛擬卷主控者發出一資料位置詢問命令。
於此,針對上述實施例中之有效性檢查資訊的查驗(步驟2112 及步驟2114)作一細部說明。於本發明之有效性檢查資訊的查驗之一實施例中,該目標儲存節點更包含有一有效性檢查單元,用以執行下列步驟來檢查源自該主機代理人之每一IO請求之有效性。
承上所述,該些步驟包含有:首先,該有效性檢查單元接收 到來自該主機代理人之一IO請求後,會依據該IO請求所欲存取之ME來選擇對應之一ME server,其中,該IO請求包含有一有效性檢查資訊,且該有效性檢查資訊更包含有一有效性檢查序號。
接著,該有效性檢查單元擷取該ME server中之一或多個有效 性序號中之最新有效性檢查序號與該IO請求中之一有效性檢查序號進行比對;當該IO請求中之有效性檢查序號大於該最新有效性檢查序號時,則該有效性檢查單元不將該IO請求視一有效之IO請求,並執行上述實施例中之步驟2118;而當該IO請求中之有效性檢查序號不大於(i.e.小於或等於)該最新有效性檢查序號時,則該有效性檢查單元依據該IO請求所欲存取之位址來擷取一有效性檢查序號(後稱“對應於該位址之該有效性檢查序號”),並比對該IO請求中之該有效性檢查序號與對應於該位址之該有效性檢查序號。
若對應於該位址之該有效性檢查序號大於該IO請求中之該有 效性檢查序號,則該有效性檢查單元不將該IO請求視為一有效之IO請求,並執行上述實施例中之步驟2118;而若對應於該位址之該有效性檢查序號不大於(i.e.小於或等於)該IO請求中之該有效性檢查序號,則該有效性檢查單元將該IO請求視為一有效之IO請求,並執行上述實施例中之步驟2116。
於本實施例中所述之步驟2112、2114、2116及2118,在說明第 19圖時,已有說明,故於此不予贅述。在上述有主機代理人的情況下,於該主機向主控子系統發出資料位置詢問命令以取得資料位置資訊時,該主控子系統係以資料位置詢問命令中之主機LBA利用第8A及8C圖中的方式而 得到資料位置資訊。
雖然前述之各實施例係以RAID子系統來說明,惟,依據本發 明之一實施例,該RAID子系統亦可以由沒有RAID功能之磁碟陣列子系統(disk array subsystem)替代而不影響發明實質。在此情形下,該實體卷係透過該儲存虛擬化控制器200而由沒有RAID功能之磁碟陣列子系統所直接映射而成。
直接媒體區存取功能之一實施例之詳細說明
一種克服某些傳統儲存系統架構之效能瓶頸的方法是,使主機(包含設置其中的主機代理人,以下同)可以直接發出IO至一儲存節點(storage node),且該儲存節點(storage node)中包含資料所在的ME,而非間接地透過一虛擬卷主控者。以上的方法,統稱為「直接媒體區存取(Direct ME Access)」功能。其中,作為該虛擬池主控者的儲存節點即為前述之其中設置有虛擬化層202之儲存虛擬化控制器200。
為了實施「直接媒體區存取」功能,主機首先必須紀錄一ME的清單以決定該等ME的屬性且找出它們在哪一媒體區伺服器(ME Server)之下。這通常是藉由一掃描操作而達成,該掃描操作蒐集關於ME組態/位置(configuration/location)的資訊。若是系統中ME組態/位置是固定的,主機只需要在初始化程序時掃描ME組態/位置一次。然而,若是系統中ME組態/位置可能動態地改變,例如一ME的所有權可能由一儲存節點轉移至另一儲存節點,則需要一個機制通知主機(host)有一個改變發生,以便主機可以再做一次掃描。僅在改變後單純地回覆一錯誤條件(例如:a“Unit Attention”)以回應從主機接收的第一命令,可能不足以避免基於改變前之狀態而產生 的輸出入存取命令被執行,因為目前發出的輸出入存取命令可能在主機接收到錯誤通知之前已經前往媒體區伺服器了(說明:在本實施例中,此媒體區伺服器本身包含有VCSN代理人的功能,以下同)。比較傾向的做法是:讓媒體區伺服器拒絕所有的輸出入存取命令直到它從主機收到狀態改變的確認回應。
其中一種此類機制是,要求主機在對某一目標ME發出任何輸 出入存取命令之前須先要到該ME的存取許可(access permission)。若是ME組態/位置發生改變,存取許可便會從所有的主機清除掉,如此將導致所有以該ME作為目標的輸出入存取命令會隨著「存取許可未要求(Access Permissions Not Requested)」錯誤資訊而失敗。在偵測到此錯誤條件之時,主機將清除所有與該特定ME關聯的狀態資訊,不只包括ME組態/位置資訊,亦包括主機快取中所有與該ME關聯的資料位置資訊(data location information)。然後主機將重新掃描以得到更新的ME資訊,且向管理該ME的新媒體區伺服器重新要求存取許可,得到存取許可之後,輸出入存取命令便可重新發出至該新媒體區伺服器。
主機與媒體區伺服器有效性確認程序與資訊快取儲存之一實施例之詳細說明
「直接媒體區存取」功能需要建制一通訊協定,讓主機可以藉由該協定判定輸出入存取命令之目標資料的目前位置。此通訊協定,以下稱為「資料位置詢問(Data Location Query)」通訊協定,包含發出一詢問命令(即「資料位置詢問命令」),該詢問命令係由一命令碼、虛擬卷識別碼或代號(handle)、以及欲存取之區塊範圍(基礎區塊位址(base block address)與 區塊數(block count))所構成。該詢問命令係由主機發送至「虛擬池主控者(Virtual Pool Master,以下簡稱為VP Master或VPM)」以得到被定址資料範圍的實體位置。回應該詢問命令的是一組涵蓋全部範圍的「資料位置描述碼(Data Location Descriptor)」,每一該描述碼係由一ME識別碼、基礎區塊位址、區塊數與有效性檢查資訊(validity check information,VCI)所組成。主機維持一「ME識別碼對儲存節點交互參照表(ME-identifier-to-storage-node cross-reference table)」,該表使主機可以決定經由哪一儲存節點(storage node)可以存取到「資料位置描述碼」中所定義的ME。當接收到回應該「資料位置詢問」的「資料位置描述碼」之後,主機發出一或多個輸出入請求(IO requests,或簡稱為IOS)至儲存節點(storage nodes),此係透過「ME識別碼對儲存節點交互參照表」,藉由交互參照包含於「資料位置碼描述碼」中的ME識別碼對照儲存節點識別碼(storage node identifiers)而確認。一般來說,一個「資料位置描述碼」對應一個IO。如果一組識別碼(identifier)識別出相同的ME且其包含的區塊範圍是連續的,則可以使用單一IO去存取該組識別碼所涵蓋的所有資料,而不是根據每個識別碼都發出一個IO,藉此可以減少存取資料之時間成本(overhead)。
「資料位置描述碼」中的有效性確認資訊係用以供「媒體區伺 服器(Media Extent server,以下簡稱為ME Server)」判斷輸出入存取命令中包含的資料位置資訊(ME識別碼與區塊範圍)是否是最新的,其中該輸出入存取命令係由主機根據從虛擬池主控者(VPM)回覆之「資料位置描述碼」中的資訊產生。資料的位置可能因為某些操作而改變,例如:資料位置遷徙,此改變可能發生在虛擬池主控者因回應「資料位置詢問」而回覆主機資料 位置資訊之時至輸出入存取命令被媒體區伺服器接收到的時間點之間。在此一情況下,假如IO真的為媒體區伺服器所執行的話,則可能發生資料損壞,因為輸出入存取命令所要存取的位置不是主機想要存取資料的實際位置。雖然假如主機快取儲存資料位置資訊以試圖減少其發出至虛擬池主控者的「資料位置詢問」命令之數量時,非常有可能經常遭遇到上述輸出入存取命令存取位置錯誤而導致資料損壞的事件,但是即使主機在接收到資料位置資訊後立即產生並發出與「資料位置詢問」命令之結果關聯的輸出入存取命令,仍有可能發生此類事件。
「有效性檢查資訊」典型地包含與一虛擬池之成員ME關聯的一有效性檢查序號(Validity Check Sequence Number,以下簡稱為VCSN)。每次當ME有任何資料的實際位置改變,或是一虛擬卷(VV)在虛擬池主控者之資料發生改變或操作狀態發生改變,或虛擬池(virtual pool)本身的操作狀態發生改變,且此改變需要主機在發出輸出入存取命令之前再次詢問虛擬池主控者之時,虛擬池主控者就會將VCSN加1。如果VCSN可能會發生繞回(wrap around)的情形而使得VCSN在增加足夠次數後可能會再發生相同的值,則虛擬池主控者可以實施一由主機監視之VCI有效壽命。如果當主機發出一資料位置詢問命令(data location query command)之時與目前時間之間,已經過一段大於VCI有效壽命之時間時,主機將先主動地使VCI失效且再次詢問虛擬池主控者與欲存取資料範圍關聯之最新VCI。此有效壽命資訊可以是一個事先定義的值,由主機藉由一單獨命令或一組命令向虛擬池主控者詢問,或者由「資料位置描述碼」本身中的VCI回覆。
「直接媒體區存取」功能,以最簡單的實施來說,每執行一次 IO存取,至少需要發出兩個命令到儲存節點群(storage node group)。首先發出的命令是資料位置詢問命令,其被發送至扮演虛擬池主控者角色的儲存節點以決定資料位於哪一個ME。然後,一組包含一至多個實際的讀/寫命令(actual read/write command)被發至作為特定媒體區伺服器的儲存節點。典型地,實際的讀/寫命令會被分發給儲存節點群(storage node group)中的數個儲存節點,而資料位置詢問命令一定是都發送至虛擬池主控者。如此的結果是,如果虛擬池主控者處理資料位置詢問命令的能力已經到了所能負擔的極限的話,則可能終將成為效能瓶頸之所在。
為了減少一定要發出的資料位置詢問命令的數量,以減少虛 擬池主控者的負擔,主機可以將資料位置詢問命令的回應結果儲存於快取(cache)中,以備未來可能的參照之用。若是採用這種做法,主機將先檢查其快取中的資料位置資訊,以確認將要發送的IO所欲存取的區塊位址範圍所對應的資料位置資訊是否已出現在快取之中。如果該區塊位址範圍所對應的資料位置資訊已出現在快取中,則主機不須發出資料位置詢問命令至虛擬池主控者,因為決定資料位置的資訊已經存在於主機的快取之中。在這種情況下,主機將根據其快取的位置資訊直接產生一或多個輸出入存取命令並且直接發送至個別媒體區伺服器所在的個別的儲存子系統。
如果一個媒體區伺服器偵查到輸出入存取命令中的資訊與其 從虛擬池主控者接收到的資訊並不一致,該媒體區伺服器將會回覆一個錯誤發生指示(error indication)給主機。根據此錯誤資訊,主機可能使其資料位置資訊快取(data location information cache)中的某些特定資訊失效,其中該定資訊係為與導致錯誤回覆的區塊位址為相關聯的(associated);或者,它可 能使快取中的所有資訊都失效,無論其區塊位址為何。無論是哪一種情況,主機都必須再發出資料位置詢問命令至虛擬池主控者以得到最新的資料位置資訊,該最新的資料位置資訊於是可以儲存於主機的快取之中,然後根據此更新後的資訊發出一或多個輸出入存取命令至個別的媒體區伺服器。
典型地,當輸出入存取命令中攜帶的有效性檢查資訊與從虛 擬池主控者接收到的有效性檢查資訊(VCI)之間的不一致被偵測到時,媒體區伺服器將回覆一錯誤資訊,該錯誤資訊指示主機只需要使儲存於快取中且與輸出入存取命令所攜帶的一或多個區塊位址關聯的資料位置資訊失效即可。可能的情形是,例如,在主機由虛擬池主控者取得資料位置資訊之時至輸出入存取命令被發出的時間點之間,輸出入存取命令所定址的資料中的某些的位置已經改變(例如:起因於遷徙操作)。
然而,在有些情況下,可能有必要使快取中所有的資料位置 資訊皆失效。舉例來說,假如媒體區伺服器無法判斷輸出入存取命令所攜帶的VCI是否有效,因為該媒體區伺服器不再有該特定VCI的紀錄,則媒體區伺服器可能會回覆主機一個錯誤資訊,指出與引發此錯誤資訊的VCI符合的VCI資料所屬的所有快取資料資訊應該都使其失效。另一種情況是,假如虛擬池主控者重設(reset)或電源關後重開(power-cycled),虛擬池主控者可能會遺失所有之前產生的VCI的紀錄。在這種情況下,虛擬池主控者必須通知所有的媒體區伺服器之前由其得到的所有有效性檢查資訊都須使其失效,並且主機任何嚐試發出的輸出入存取命令都須拒絕,直到主機已經執行一個程序,該程序包含使所有快取儲存的資料位置資訊皆無效。
除了從媒體區伺服器接收到錯誤發生指示時使已快取儲存的 關聯的資料位置資訊失效之外,主機典型地將再發送出一資料位置詢問命令至虛擬池主控者以得到輸出入存取命令所涵蓋區塊位址範圍的最新資料位置資訊。假如所回覆的任何資料位置描述碼中的VCI中的VCSN等同於在媒體區伺服器中產生錯誤的VCI的VCSN,由於主機知道媒體區伺服器並不認為該VCSN是有效的,主機可以發出一指示(indication)給虛擬池主控者表示其可能發現在虛擬池主控者與媒體區伺服器之間有一關於該特定區塊位址範圍的不一致現象。收到此指示(indication)之後,虛擬池主控者將典型地進行一與媒體區伺服器的再同步程序。該再同步程序的一可能實施例可能包含發出一命令至媒體區伺服器以清除其VCI快取,並且,可以在同一命令中執行或是在隨後的命令執行,設立包含最新VCSN的最新VCI至媒體區伺服器使得媒體區伺服器可以更新其快取中的資訊。
以上所述之再同步程序,稱為「有效性檢查資訊再同步程序 (Validity Check Information Re-synchronization Procedure)」,一般來說只要虛擬池主控者懷疑媒體區伺服器的VCI不與之同步,也會隨時進行。舉例來說,當虛擬池主控者開機(power on)、重設(reset)或電源關後重開(power cycled)之時,因為其不知該等有呈現媒體區(ME)供其管理的媒體區伺服器的目前狀態,虛擬池主控者一般會進行此再同步程序以確認媒體區伺服器的VSI有重設回與虛擬池主控者的初始狀態相同。在一冗餘控制器對的組態下,若是失效轉移(failover)程序發生,須讓第二控制器接管原本做為虛擬池主控者的主要控制器的工作,則亦會因相同的原因而進行此一再同步程序。
以下兩件事是重要的:媒體區伺服器發出訊息給所有主機要求其清除與目標ME關聯的存取許可做為「有效性檢查資訊再同步程序」的 一部分,以及主機在偵測到「存取許可未要求」錯誤資訊時會清除(purge)所有快取儲存中關於該特定ME的資料位置資訊。這至少需要涵蓋到以下的情形:虛擬池主控者由一儲存節點變換至另一個,此可能發生在一冗餘控制器儲存子系統中,當原本做為虛擬池主控者的控制器失效而導致另一個控制器接管其角色之時。因為另一個控制器可能沒有與該特定ME關聯的任何VCI狀態的紀錄,它可能會開始由VCI初始狀態來更新該ME的VCI。在虛擬池初始化作業期間,新的虛擬池主控者將與該特定ME關聯之媒體區伺服器進行上述之再同步程序,以確定該媒體區伺服器上快取儲存的VCI與新虛擬池主控者紀錄的VCI是同步的。然而,如果主機持續發出輸出入存取命令,且該等輸出入存取命令包含由原本虛擬池主控者得到之VCI,則可能該等資訊對媒體區伺服器而言似乎是有效的,因此即使用來產生輸出入存取命令的資料位置資訊可能已經過時了,該等輸出入存取命令亦可能會不慎地被接受。為避免此種可能導致嚴重資料損壞的情況,媒體區伺服器可以要求所有主機清除與該特定ME相關的存取許可做為「有效性檢查資訊再同步程序」的一部分。同時,在偵測到「存取許可未要求」錯誤資訊時,其中該錯誤資訊是因接收到來自主機的任何以該特定ME為目標的輸出入存取命令而傳遞出去,主機會清除快取儲存中所有與該ME關聯的資料位置資訊,且再發出資料位置詢問命令至虛擬池主控者並於俟後才再發出以該ME為目標的任何輸出入存取命令。在虛擬池主控者的角色由一儲存節點轉移至另一儲存節點之後,此將確定輸出入存取命令是依據最新的資料位置資訊而再發送至該媒體區伺服器。
為簡化實施內容,一般來說虛擬池主控者總是在「資料位置 描述碼」中回覆VCI之VCSN的目前值,而不是要改變之前的最後的VCSN的值。當虛擬池主控者因一關聯的特定區塊範圍的改變發生而增加VCSN的值時,其發送該區塊範圍之更新的VCI至該區塊範圍所在之ME的媒體區伺服器。該媒體區伺服器紀錄該區塊範圍之更新的VCI。在由主機接收到一輸出入存取命令時,媒體區伺服器比較該輸出入存取命令中的VCI對照它自己紀錄的VCI。包含於該輸出入存取命令的VCI中的VCSN被拿來與從虛擬池主控者接收到的最新VCSN做比較。假如前者比後者大,表示不在有效的範圍內且該輸出入存取命令會被拒絕。假如前者小於或等於後者,表示其被視為在有效範圍之內,然後該輸出入存取命令的VCI中的VCSN更被拿來與媒體區伺服器中為該特定區塊範圍紀錄的VCSN做比較。如果前者小於後者,則表示該區塊範圍在主機由虛擬池主控者得到該VCI之後有發生改變,因而使得該VCI無效,所以拒絕該輸出入存取命令。另一方面,如果前者大於或等於後者,則表示該輸出入存取命令的VCI一定是在該區塊範圍發生改變之後得到,此意謂著VCI有效,且該輸出入存取命令可以被接受且正常處理。
典型地,由於資源有限,一個媒體區伺服器只能夠保有從虛擬池主控者接收到的有限數量的有效性檢查資訊。由於這樣的原因,媒體區伺服器可能會採取一快取機制(caching mechanism),以試圖並最大化可以正確地決定一由主機接收到之輸出入存取命令的有效性的可能性。其中一此類快取機制是單純地保持最近由虛擬池主控者接收到之有效性檢查資訊。如果有新資訊進來,且沒有足夠的資源可以儲存該新資訊,則目前儲存之最舊的資訊會被從快取中清除(purge),以空出足夠的空間儲存該新資 訊。由於從虛擬池主控者接收到的有效性檢查資訊所包含的VCSN是循序增加,儲存於此快取中的VCI會包含一特定範圍中的所有VCSN。就其而論,在檢查包含於主機輸出入存取命令的有效性檢查資訊時,只有三種可能的狀況需要處理,各別是:在輸出入存取命令中的有效性檢查資訊的VCSN小於媒體區伺服器快取儲存的有效性檢查資訊的VCSN的最小值、介於媒體區伺服器快取儲存的有效性檢查資訊的VCSN的最小值與最大值之間、以及大於媒體區伺服器快取儲存的有效性檢查資訊的VCSN的最大值。
如果在輸出入存取命令中的有效性檢查資訊的VCSN是介於媒體區伺服器快取儲存的有效性檢查資訊的VCSN的最小值與最大值之間,則媒體區伺服器檢查輸出入存取命令所涵蓋的區塊位址是否出現在其VCI快取之中。假如輸出入存取命令所涵蓋的區塊位址都出現在媒體區伺服器的VCI快取之中,並且媒體區伺服器紀錄之關聯的VCSN也都小於或等於包含於輸出入存取命令之有效性檢查資訊的對應VCSN,則該輸出入存取命令會被視為有效且被接受。然而,若是有任何輸出入存取命令涵蓋的區塊位址沒有出現在媒體區伺服器的VCI快取之中,或者有任何紀錄在媒體區伺服器的VCI快取的VCSN,該等VCSN與輸出入存取命令涵蓋的該等區塊位址有關聯,且該等VCSN中的任一大於輸出入存取命令中包含的有效性檢查資訊的對應VCSN,則該特定的VCSN會被判定為失效(stale)或無效(invalid)。在此情形下,媒體區伺服器會典型地回覆『無效的有效性檢查資訊(“Invalid Validity Check Information”)』錯誤資訊,指出與該特定區塊位址關聯的資料位置資訊是無效的,因此主機只需要使該特定資訊無效。
須注意的是,可能在媒體區伺服器的VCI快取中儲存有多組的 有效性檢查資訊皆對應到同一特定區塊範圍。可能的原因是,該區塊範圍的位置可能已經有多於一次的改變。因此,在執行上述的檢查作業時,若是媒體區伺服器的VCI快取中出現一定址的區塊範圍對應有多組的有效性檢查資訊,則包含於輸出入存取命令中的有效性檢查資訊的VCSN將被拿來與媒體區伺服器的VCI快取中該些有相同區塊範圍的項目中VCSN為最大者的項目(entry)做比較。為最佳化資源的使用效率,媒體區伺服器可能會使其VCI快取中的某一或某些項目失效並再利用其儲存空間,該某一或某些項目的區塊範圍有被其他具有更大VCSN的項目涵蓋到。此再利用功能將導致一個結果,媒體區伺服器的VCI快取中可能有些介於最大與最小VCSN之間的項目不會出現在快取之中。
如果任何與輸出入存取命令中的有效性檢查資訊的任何區塊位址關聯的VCSN係小於媒體區伺服器快取儲存的有效性檢查資訊的VCSN的最小值,則媒體區伺服器無法判定輸出入存取命令中的有效性檢查資訊的有效性,因此,媒體區伺服器將典型地回覆『有效性檢查資訊有效性無法決定(“Validity Check Information validity undetermined”)』錯誤資訊,指出所有主機端快取儲存的資料位置資訊,且該資料位置資訊有一關聯的VCSN等於考慮中的VCSN,皆都應使其失效。
如果任何與輸出入存取命令中的有效性檢查資訊的任何區塊位址關聯的VCSN係大於媒體區伺服器快取儲存的有效性檢查資訊的VCSN的最大值,媒體區伺服器將典型地回覆『有效性檢查資訊超出範圍(“Validity Check Information out-of-range”)』錯誤資訊,指出所有主機端快取儲存的資料位置資訊都應使其失效,因為在主機和媒體區伺服器之間 出現嚴重的不一致,此不一致可能表示主機和儲存子系統之間嚴重缺乏同步。
以上後兩種狀況之一或兩者,媒體區伺服器可能選擇簡單地 回應『無效的有效性檢查資訊』錯誤資訊,指出與該特定區塊位址關聯的資料位置資訊是無效的,以求減少主機必須處理的事件數量,從而簡化技術的實施內容。另一方面,主機也可以簡單地不去分辨不同的錯誤條件,直接對與該特定區塊位址關聯的資料位置資訊使其失效,並不去理會媒體區伺服器回覆的是那一種錯誤資訊。然而另一個在第二種狀況的可能實施例是媒體區伺服器回覆『有效性檢查資訊超出範圍』錯誤資訊,指出所有快取儲存的資料位置資訊,無論其關聯的VCSN為何,都應使其失效,或者主機從媒體區伺服器接收到『有效性檢查資訊有效性無法決定』錯誤資訊時使所有快取儲存的資料位置資訊都失效。
橫跨媒體區之資料分佈之一實施例之詳細說明
當主機發出一輸出入存取命令以寫入資料至一虛擬卷(VV)且還沒有實體區塊被分配去容置該資料範圍時,虛擬池主控者必須在一或多個組成該虛擬池的ME上配置實體區塊。可能是最簡單的配置計畫是,首先由一個ME配置區塊,當該ME滿了之後再開始由第二個ME配置,以此類推。然而由效能的觀點來看,讓輸出入存取命令存取的資料散布於多個ME以分散負擔至多個媒體區伺服器與ME是較有利的。具有將資料散布於多個媒體區伺服器且/或ME之特性的虛擬池或虛擬卷,係具有一「分散式資料(Distributed Data)」的屬性。
典型地,當一虛擬池或虛擬卷具有一「分散式資料(Distributed Data)」的屬性時,虛擬池主控者將以平均分散資料在虛擬池的所有的MEs且/或媒體區伺服器的方式,配置實體空間給被寫入的虛擬卷(VV)以容置資料。在大部分的情況中,資料分佈得越平均,則MEs且/或媒體區伺服器所分攤的負擔越平均,也因此效能越好。
一既簡單又可讓IO存取在大部分的IO負擔條件下可以均勻分 散的資料分佈方案是,單純地將資料分段(striping)儲存於所有的MEs,以下稱為「分段資料分佈(Striped Data Distribution)」。虛擬卷(VV)之可定址空間被劃分為固定長度的區塊,其中第一個區塊位於第一個ME、第二個區塊位於第二個ME,以下以此類推,直到抵達最後一個ME,則下一個區塊又回去設置在第一個ME、再下一個區塊設置在第二個ME,以下以此類推。在這種分佈之下,存取範圍小於一個區塊的輸出入存取命令將只在一個ME、或者最多在二個ME存取資料(如果資料範圍剛好跨越兩個區塊)。在這些情況之下,以多個同時發生之獨立的IO存取負擔,虛擬池中所有的MEs將近乎平均地被存取,因而改善了效能。對於那些一次橫跨多個區塊而存取大資料的輸出入存取命令,每一此命令將導致同時存取多個MEs,由於同時存取與資料傳輸,此將減少完成該命令所需的時間,從而改善效能。
當一新的ME增加至一虛擬池中,需要進行資料遷徙以實施「分 段資料分佈」,以便將一些資料分散至新的ME。此資料遷徙可能不只需要由現存的MEs移動資料至新的ME,亦可能需要重新分配資料至所有現存的MEs,以便維持虛擬池中所有MEs之資料分佈的分段(striped)特性。因此,「分段資料分佈」的實施不只在當ME成員被移出虛擬池時需要做資料遷徙,當有新MEs加入虛擬池時亦需要做資料遷徙。
20A,20B,20C‧‧‧獨立冗餘磁碟陣列子系統(RAID子系統)
ME1-MEn‧‧‧媒體區
VP‧‧‧虛擬池
VV1-VVm‧‧‧虛擬卷

Claims (45)

  1. 一種於一儲存系統架構下產生一虛擬卷之方法,該儲存系統架構包含有至少一磁碟陣列子系統,該至少一磁碟陣列子系統包含有一磁碟陣列控制器及一實體儲存媒體陣列,其中該方法包含有:映射該實體儲存媒體陣列成一或多個媒體區;於該至少一磁碟陣列子系統中之其一中提供一虛擬化模組而為一主控磁碟陣列子系統;該虛擬化模組依據一區段分配機制選取該一或多個媒體區中之至少一媒體區而形成一虛擬池;該虛擬化模組依據該區段分配機制形成至少一虛擬卷並管理該至少一虛擬卷;該虛擬化模組呈現該至少一虛擬卷給一主機。
  2. 依據專利申請範圍第1項所述之方法,其中該區段分配機制包含有用以協助處理輸出入存取命令之一實體對虛擬區段索引映射表(P2V table)或一虛擬對實體區段索引映射表(V2P table)。
  3. 依據專利申請範圍第2項所述之方法,其中該映射該實體儲存媒體陣列成一或多個媒體區步驟更包含有:於該至少一磁碟陣列子系統之每一者中均設置有一有效性檢查模組,用以依據一有效性檢查資訊(VCI)查核來自該主機之一輸出入存取命令的有效性。
  4. 依據專利申請範圍第2項所述之方法,其中該映射該實體儲存媒體陣列成一或多個媒體區步驟更包含有:先將該實體儲存媒體陣列映射成一或多個具有獨立冗餘磁碟陣列(RAID)功能保護的實體卷,再將該一或多個實體卷每一者映射成一或多 個媒體區。
  5. 依據專利申請範圍第2項所述之方法,其中形成至少一虛擬卷並管理該至少一虛擬卷之該步驟更包含有:設定一虛擬卷容量作為該至少一虛擬卷的儲存容量,其中,所有該至少一虛擬卷的該虛擬卷容量的總和可大於該實體儲存媒體陣列的儲存容量的總和;以及當接收到該輸出入存取命令且需要已指定給該至少一虛擬卷使用之儲存空間外的儲存空間時,指定(assign)該實體儲存媒體陣列中之儲存空間給該虛擬卷。
  6. 依據專利申請範圍第2項所述之方法,其中形成至少一虛擬卷並管理該至少一虛擬卷之該步驟更包含有:設定一保留容量作為該至少一虛擬卷的保留儲存容量;分派(allocate)該實體儲存媒體陣列中之儲存空間作為該至少一虛擬卷的保留儲存空間,其大小等於該保留儲存容量;以及當接收到該輸出入存取命令且需要已指定給該至少一虛擬卷使用之儲存空間外的儲存空間時,指定該保留儲存空間給該虛擬卷。
  7. 依據專利申請範圍第2項所述之方法,其中形成至少一虛擬卷並管理該至少一虛擬卷之該步驟更包含有:設定一實際容量作為該至少一虛擬卷的儲存容量;以及指定該實體儲存媒體陣列中之儲存空間為該至少一虛擬卷的實際儲存空間,其大小等於該實際容量。
  8. 依據專利申請範圍第2項所述之方法,更包含有:當該至少一虛擬卷中之已使用的儲存容量達到一門檻值時,產生一事件通知訊號給該磁碟陣列控制器。
  9. 依據專利申請範圍第2項所述之方法,更包含有:當該虛擬池中之已使用容量的總和達到一門檻值時,產生一事件通知訊號給該磁碟陣列控制器。
  10. 依據專利申請範圍第3項所述之方法,其中該有效性檢查資訊更包含有一有效性檢查序號。
  11. 依據專利申請範圍第10項所述之方法,其中查核該輸出入存取命令的有效性之該步驟更包含有:當該輸出入存取命令為有效命令,則依據該輸出入存取命令存取該實體儲存媒體陣列。
  12. 依據專利申請範圍第10項所述之方法,其中查核該輸出入存取命令的有效性之該步驟更包含有:當該輸出入存取命令非為有效命令,則傳送一錯誤發生訊息給該主機。
  13. 依據專利申請範圍第12項所述之方法,其中查核該輸出入存取命令的有效性之該步驟更包含有:在該虛擬化模組傳送該錯誤發生訊息後,當該虛擬化模組收到來自該主機之一資料位置查詢命令時,該虛擬化模組將一新的有效性檢查資訊傳送給該主機。
  14. 依據專利申請範圍第10項所述之方法,其中查核該輸出入存取命令的有效性之該步驟更包含有:該有效性檢查模組係對每一媒體區儲存有一或多個有效性檢查序號,且每一有效性檢查序號係對應至一或多個實體區段;以及比對儲存著的該一或多個有效性檢查序號中與該主機之該輸出入存取命令所繫屬之媒體區相關的VCSN中之一最新有效性檢查序號與 該輸出入存取命令中之一有效性檢查序號。
  15. 依據專利申請範圍第14項所述之方法,其中比對該一或多個有效性檢查序號中與該主機之該輸出入存取命令所繫屬之媒體區相關的VCSN中之一最新有效性檢查序號之該步驟更包含有:於該輸出入存取命令中之該有效性檢查序號大於該最新有效性檢查序號時,則判定該輸出入存取命令非為有效命令。
  16. 依據專利申請範圍第14項所述之方法,其中比對該一或多個有效性檢查序號中與該主機之該輸出入存取命令所繫屬之媒體區相關的VCSN中之一最新有效性檢查序號之該步驟更包含有:於該輸出入存取命令中之該有效性檢查序號為小於或等於該最新有效性檢查序號時,擷取該輸出入存取命令之一資料存取位址;依據該資料存取位址擷取一第一有效性檢查序號;以及比對該第一有效性檢查序號與該輸出入存取命令中之該有效性檢查序號。
  17. 依據專利申請範圍第16項所述之方法,其中比對該第一有效性檢查序號與該輸出入存取命令中之該有效性檢查序號之該步驟更包含有:於該輸出入存取命令中之該有效性檢查資訊小於該第一有效性檢查序號時,判定該輸出入存取命令非為有效命令。
  18. 依據專利申請範圍第16項所述之方法,其中比對該第一有效性檢查序號與該輸出入存取命令中之該有效性檢查序號之該步驟更包含有:於該輸出入存取命令中之該有效性檢查資訊大於或等於該第一有效性檢查序號時,判定該輸出入存取命令為有效命令。
  19. 依據專利申請範圍第2項所述之方法,其中更包含下列步驟:針對該至少一虛擬卷之一特定實體區段位置範圍發送一更新之有 效性檢查資訊給所有從屬磁碟陣列子系統;當該主控磁碟陣列子系統接收到來自該主機之資料位置查詢命令時,回覆一特殊的有效性檢查資訊給該主機;以及在回覆該特殊的有效性檢查資訊給該主機後,該主控磁碟陣列子系統收到來自於該主機之一與該特定實體區段位置範圍相關的輸出入存取命令,其中,該輸出入存取命令包含有該特殊的有效性檢查資訊。
  20. 依據專利申請範圍第19項所述之方法,其中更包含以下之步驟:當該主控磁碟陣列子系統收到該與該特定實體區段位置範圍相關的輸出入存取命令時,進行一與該特定實體區段位置範圍相關的輸出入存取命令之一資料服務程序。
  21. 依據專利申請範圍第20項所述之方法,其中該資料服務程序係為虛擬卷快照程序。
  22. 依據專利申請範圍第3項所述之方法,其中該至少一磁碟陣列子系統更包含一第二磁碟陣列子系統,該第二磁碟陣列子系統係為一從屬磁碟陣列子系統,該方法包含有:當該第二磁碟陣列子系統中的有效性檢查資訊與該主控磁碟陣列子系統中的有效性檢查資訊不一致時,該主控磁碟陣列子系統執行一再同步程序來使該等磁碟陣列子系統中之有效性檢查資訊同步化。
  23. 依據專利申請範圍第3項所述之方法,其中該至少一磁碟陣列子系統更包含一第二磁碟陣列子系統,該第二磁碟陣列子系統係為一從屬磁碟陣列子系統,該方法更包含有:於該至主控磁碟陣列子系統發生重設(reset)、電源關後重開(power cycled)及失效轉移(failover)中之其一時,執行一再同步程序來使該等磁碟陣列子系統中的有效性檢查資訊同步化。
  24. 依據專利申請範圍第22項或第23項所述之方法,其中執行該再同步程序之該步驟包含有:該虛擬化模組發送一命令給該第二磁碟陣列子系統以清除其中之有效性檢查資訊;以及該虛擬化模組將最新有效性檢查資訊發生給該第二磁碟陣列子系統中。
  25. 依據專利申請範圍第1項所述之方法,其中該映射該實體儲存媒體陣列成一或多個媒體區步驟更包含有:於該至少一磁碟陣列子系統之每一者中均設置有一有效性檢查模組,用以查核來自該主機之一輸出入存取命令的有效性,以判斷該輸出入存取命令位址之正確性。
  26. 一種於一儲存系統架構下之資料存取方法,該儲存系統架構包含有一主機及複數個儲存節點,其中該方法包含有:檢查所欲發送之一輸出入存取命令之一資料位置資訊是否出現在該主機之一快取記憶體中;若該資料位置資訊出現在該主機之該快取記憶體中,則該主機依據該資料位置資訊發送該輸出入存取命令至該等儲存節點中之一目標儲存節點,其中,該輸出入存取命令包含一第一有效性檢查資訊(VCI);該目標儲存節點利用該第一有效性檢查資訊檢查該輸出入存取命令之有效性;以及若該輸出入存取命令為有效命令,則該目標儲存節點執行該輸出入存取命令。
  27. 依據專利申請範圍第26項所述之方法,更包含有:提供一有效性檢查模組於該目標儲存節點,用以檢查該輸出入存取命令中之該第一有效性檢查資訊之有效性。
  28. 依據專利申請範圍第26項所述之方法,更包含有:若該資料位置資訊不在該主機之該快取記憶體中,則該主機產生一資料位置詢問命令給該等儲存節點中之一主控儲存節點;該主控儲存節點依據該資料位置詢問命令回覆該資料位置資訊給該主機,且該資料位置資訊中包含有該第一有效性檢查資訊(VCI);該主機更新位於該快取記憶體中之該資料位置資訊;以及該主機依據該資料位置資訊發送一輸出入存取命令至該等儲存節點中之該目標儲存節點,其中,該輸出入存取命令包含該第一有效性檢查資訊(VCI)。
  29. 依據專利申請範圍第26項所述之方法,更包含有:若該輸出入存取命令非為有效命令,則該目標儲存節點回傳一錯誤發生訊息給該主機。
  30. 依據專利申請範圍第26項所述之方法,更包含有:當該主機進行初始化時,掃描該等儲存節點之儲存空間來產生一媒體區識別碼對儲存節點交互參照表,並依據一媒體區識別碼(ME ID)及該媒體區識別碼對儲存節點交互參照表來確定該目標儲存節點,其中,該資料位置資訊包含有該媒體區識別碼。
  31. 依據專利申請範圍第26項或第28項所述之方法,其中檢查該輸出入存取命令之有效性之該步驟更包含:該目標儲存節點檢查被包含於該輸出入存取命令之該第一有效性檢查資訊與來自於該主控儲存節點之一第二有效性檢查資訊間之一致性。
  32. 依據專利申請範圍第31項所述之方法,更包含:若該第一有效性檢查資訊與該第二有效性檢查資訊不一致時,則該 目標儲存節點回覆一錯誤發生訊息(error indication)給該主機。
  33. 依據專利申請範圍第26項或第28項所述之方法,更包含:該目標儲存節點檢查該輸出入存取命令中之該第一有效性檢查資訊之一壽命。
  34. 依據專利申請範圍第33項所述之方法,更包含:若該第一有效性檢查資訊之該壽命為超過一有效壽命時,則使位於該主機中之該快取記憶體中之該資料位置資訊或所有資料位置資訊無效,且該主機產生一資料位置詢問命令給該等儲存節點之該主控儲存節點;以及該主控儲存節點依據該資料位置詢問命令回覆該資料位置資訊給該主機,且該資料位置資訊中包含一第一有效性檢查資訊(VCI)。
  35. 一種資料存取方法,該資料存取方法係由一主機執行,用以向複數個儲存節點的至少其中之一存取資料,該方法包含有:傳送一資料位置詢問命令給該複數個儲存節點中之一主控儲存節點;接收該主控儲存節點回傳的一資料位置資訊,其中,該資料位置資訊中包含一第一有效性檢查資訊(VCI);以及依據該資料位置資訊傳送一輸出入存取命令給該複數個儲存節點中之至少一目標儲存節點,其中,該輸出入存取命令包含該第一有效性檢查資訊(VCI)。
  36. 依據專利申請範圍第35項所述之方法,更包含有:當該主機進行初始化時,掃描該複數個儲存節點之儲存空間以產生一媒體區識別碼對儲存節點交互參照表。
  37. 依據專利申請範圍第36項所述之方法,更包含有: 依據一媒體區識別碼(ME ID)及該媒體區識別碼對儲存節點交互參照表來確定該至少一目標儲存節點,其中,該資料位置資訊包含有該媒體區識別碼。
  38. 一種資料存取方法,該資料存取方法係由複數個儲存節點的其中至少之一執行,用以回應一主機的詢問命令,該方法包含有:該複數個儲存節點中之一主控儲存節點接收到該主機的一資料位置詢問命令;該主控儲存節點傳送一資料位置資訊給該主機,其中,該資料位置資訊中包含一第一有效性檢查資訊(VCI);該複數個儲存節點中之一目標儲存節點接收到該主機的一輸出入存取命令,該輸出入存取命令包含該第一有效性檢查資訊(VCI);該目標儲存節點利用該第一有效性檢查資訊檢查該輸出入存取命令之有效性;以及若該輸出入存取命令為有效命令,則該目標儲存節點執行該輸出入存取命令。
  39. 依據專利申請範圍第38項所述之方法,更包含有:該目標儲存節點使用一有效性檢查模組,用以檢查該輸出入存取命令中之該第一有效性檢查資訊(VCI)之有效性。
  40. 依據專利申請範圍第38項所述之方法,更包含有:若該有效性檢查序號模組判斷該輸出入存取命令非為有效命令,則該目標儲存節點傳送一錯誤發生訊息給該主機。
  41. 依據專利申請範圍第38項所述之方法,其中檢查該輸出入存取命令之有效性之該步驟更包含:該目標儲存節點比對該輸出入存取命令中之該第一有效性檢查資 訊(VCI)與來自該主控儲存節點之一第二有效性檢查資訊。
  42. 依據專利申請範圍第41項所述之方法,其中比對該第一有效性檢查資訊與該第二有效性檢查資訊之該步驟更包含:若該第一有效性檢查資訊與該第二有效性檢查資訊為一致,則該輸出入存取命令為有效命令。
  43. 依據專利申請範圍第41項所述之方法,其中比對該第一有效性檢查資訊與該第二有效性檢查資訊之該步驟更包含:若該第一有效性檢查資訊與該第二有效性檢查資訊不為一致,則該輸出入存取命令非為有效命令。
  44. 依據專利申請範圍第38項所述之方法,其中檢查該輸出入存取命令之有效性之該步驟更包含:該目標儲存節點中一有效性檢查模組擷取一或多個有效性檢查資訊中之一最新的第三有效性檢查資訊,並使用該第三有效性檢查資訊與該輸出入存取命令中之該第一有效性檢查資訊進行比對;以及當該輸出入存取命令中之該第一有效性檢查資訊大於該第三有效性檢查資訊時,該有效性檢查模組將該輸出入存取命令視作為一非為有效的輸出入存取命令。
  45. 依據專利申請範圍第44項所述之方法,其中檢查該輸出入存取命令之有效性之該步驟更包含:該有效性檢查模組依據該輸出入存取命令所欲存取之一目標位址擷取對應於該目標位址的一第四有效性檢查資訊,並使用該第四有效性檢查資訊與該輸出入存取命令中之該第一有效性檢查資訊進行比對;以及當該第四有效性檢查資訊不大於該輸出入存取命令中之該第一有 效性檢查資訊時,該有效性檢查模組將該輸出入存取命令視為一有效的輸出入存取命令。
TW103143870A 2009-01-23 2010-01-22 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法 TWI514147B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14665909P 2009-01-23 2009-01-23
US18557809P 2009-06-09 2009-06-09

Publications (2)

Publication Number Publication Date
TW201510725A true TW201510725A (zh) 2015-03-16
TWI514147B TWI514147B (zh) 2015-12-21

Family

ID=42170380

Family Applications (3)

Application Number Title Priority Date Filing Date
TW103143870A TWI514147B (zh) 2009-01-23 2010-01-22 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法
TW099101839A TWI432959B (zh) 2009-01-23 2010-01-22 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法
TW99101841A TWI467370B (zh) 2009-01-23 2010-01-22 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
TW099101839A TWI432959B (zh) 2009-01-23 2010-01-22 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法
TW99101841A TWI467370B (zh) 2009-01-23 2010-01-22 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法

Country Status (4)

Country Link
US (4) US8510508B2 (zh)
EP (2) EP2211262A3 (zh)
CN (3) CN101819506B (zh)
TW (3) TWI514147B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI587152B (zh) * 2016-10-26 2017-06-11 先智雲端數據股份有限公司 用於延長雲端服務系統中磁碟預期壽命值的方法及使用該方法的系統
TWI607303B (zh) * 2016-10-14 2017-12-01 喬鼎資訊股份有限公司 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法
TWI734895B (zh) * 2017-03-31 2021-08-01 南韓商三星電子股份有限公司 聚集儲存方法、跨結構高速非揮發性記憶體固態硬碟用的容量聚集方法及聚集的乙太網路固態硬碟群組
TWI804021B (zh) * 2021-06-17 2023-06-01 日商鎧俠股份有限公司 記憶體系統及資訊處理系統

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4958739B2 (ja) * 2007-11-09 2012-06-20 株式会社日立製作所 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
JP5112246B2 (ja) * 2008-10-09 2013-01-09 株式会社日立製作所 ストレージシステム及び通信方法
US8225039B2 (en) * 2009-10-09 2012-07-17 Hitachi, Ltd. Storage controller and virtual volume control method
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
US8386834B1 (en) * 2010-04-30 2013-02-26 Network Appliance, Inc. Raid storage configuration for cached data storage
CN102419694A (zh) * 2010-09-27 2012-04-18 智微科技股份有限公司 存取储存装置的方法与电子系统
WO2012114492A1 (ja) * 2011-02-24 2012-08-30 株式会社日立製作所 計算機システム、及びその管理方法、並びにプログラム
US8452819B1 (en) * 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
WO2013070273A1 (en) * 2011-04-01 2013-05-16 Nexsan Corporation Journaling raid system
CN102841758B (zh) * 2011-06-20 2015-09-30 钜贯德科技股份有限公司 高效能虚拟磁盘管理系统
US9417821B2 (en) 2011-09-30 2016-08-16 Intel Corporation Presentation of direct accessed storage under a logical drive model
JP2013122691A (ja) * 2011-12-12 2013-06-20 Fujitsu Ltd 割り当て装置およびストレージ装置
US9838269B2 (en) * 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
WO2013160939A1 (en) * 2012-04-24 2013-10-31 Hitachi, Ltd. Backup system and backup method
US8930374B2 (en) 2012-06-29 2015-01-06 Nokia Corporation Method and apparatus for multidimensional data storage and file system with a dynamic ordered tree structure
US8856079B1 (en) * 2012-09-28 2014-10-07 Emc Corporation Application programming interface for efficient object information gathering and listing
CN103034567B (zh) * 2012-12-06 2015-09-09 华为技术有限公司 发现并修复损坏数据的装置和方法
CN103870398B (zh) * 2012-12-11 2017-04-26 晨星软件研发(深圳)有限公司 存储器存取权限控制方法与相关存储器管理系统
CN103049521B (zh) * 2012-12-19 2015-11-11 广东电子工业研究院有限公司 可实现多属性复合条件查询的虚拟表索引系统及方法
US9514151B1 (en) 2012-12-21 2016-12-06 Emc Corporation System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9591099B1 (en) 2012-12-21 2017-03-07 EMC IP Holding Company LLC Server connection establishment over fibre channel using a block device access model
US9647905B1 (en) 2012-12-21 2017-05-09 EMC IP Holding Company LLC System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9531765B1 (en) 2012-12-21 2016-12-27 Emc Corporation System and method for maximizing system data cache efficiency in a connection-oriented data proxy service
US9473590B1 (en) 2012-12-21 2016-10-18 Emc Corporation Client connection establishment over fibre channel using a block device access model
US9563423B1 (en) 2012-12-21 2017-02-07 EMC IP Holding Company LLC System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9473591B1 (en) * 2012-12-21 2016-10-18 Emc Corporation Reliable server transport over fibre channel using a block device access model
US9712427B1 (en) 2012-12-21 2017-07-18 EMC IP Holding Company LLC Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9235471B2 (en) * 2013-04-29 2016-01-12 Netapp, Inc. Background initialization for protection information enabled storage volumes
TW201445429A (zh) * 2013-05-22 2014-12-01 Asmedia Technology Inc 磁碟陣列系統及資料處理方法
CN104301345B (zh) * 2013-07-17 2018-04-27 阿里巴巴集团控股有限公司 一种Cache集群中删除数据的方法及系统
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10261960B2 (en) 2014-09-12 2019-04-16 Scality, S.A. Snapshots and forks of storage systems using distributed consistent databases implemented within an object store
US10366070B2 (en) 2015-02-20 2019-07-30 Scality S.A. Locking and I/O improvements of systems built with distributed consistent database implementations within an object store
US10248682B2 (en) 2015-02-20 2019-04-02 Scality, S.A. Object storage system capable of performing snapshots, branches and locking
WO2015145617A1 (ja) * 2014-03-26 2015-10-01 株式会社日立製作所 ストレージシステム及び記憶制御方法
US9348526B2 (en) * 2014-03-28 2016-05-24 Scale Computing, Inc. Placement engine for a block device
US10235053B1 (en) * 2014-03-31 2019-03-19 Emc Corporation Method and system for using host driver for flexible allocation fast-sideways data movements
US9612769B1 (en) * 2014-06-30 2017-04-04 EMC IP Holding Company LLC Method and apparatus for automated multi site protection and recovery for cloud storage
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
WO2016033718A1 (zh) 2014-09-01 2016-03-10 华为技术有限公司 访问文件的方法、装置和存储系统
SG11201701365XA (en) 2014-09-01 2017-03-30 Huawei Tech Co Ltd File access method and apparatus, and storage system
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
WO2016056815A1 (ko) 2014-10-06 2016-04-14 엘지전자 주식회사 무선 통신 시스템에서 nbifom에 관련된 신호 송수신 방법 및 이를 위한 장치
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10067688B2 (en) * 2015-01-23 2018-09-04 Qualcomm Incorporated Storage resource management in virtualized environments
WO2016122514A1 (en) * 2015-01-29 2016-08-04 Hewlett Packard Enterprise Development Lp Communications over a serial attached small computer interface (sas)
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US20160259573A1 (en) * 2015-03-03 2016-09-08 International Business Machines Corporation Virtual tape storage using inter-partition logical volume copies
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US10466913B2 (en) * 2015-04-29 2019-11-05 EMC IP Holding Company LLC Method and system for replicating and using grid level metadata in a storage system
US20170017420A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US20170017414A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US10275160B2 (en) 2015-12-21 2019-04-30 Intel Corporation Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller
US10013168B2 (en) 2015-12-24 2018-07-03 Intel Corporation Disaggregating block storage controller stacks
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
JP2018010507A (ja) * 2016-07-14 2018-01-18 富士通株式会社 メモリ管理プログラム、メモリ管理方法及びメモリ管理装置
US10200376B2 (en) 2016-08-24 2019-02-05 Intel Corporation Computer product, method, and system to dynamically provide discovery services for host nodes of target systems and storage resources in a network
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10176116B2 (en) 2016-09-28 2019-01-08 Intel Corporation Computer product, method, and system to provide discovery services to discover target storage resources and register a configuration of virtual target storage resources mapping to the target storage resources and an access control list of host nodes allowed to access the virtual target storage resources
CN106681660B (zh) * 2016-12-17 2020-02-07 郑州云海信息技术有限公司 Io调度方法及io调度装置
CN108733308B (zh) * 2017-04-17 2021-06-22 伊姆西Ip控股有限责任公司 用于管理盘池的方法和设备
US10922303B1 (en) * 2017-08-17 2021-02-16 Amazon Technologies, Inc. Early detection of corrupt data partition exports
US10579288B2 (en) * 2017-08-31 2020-03-03 Micron Technology, Inc. Prioritized security
US10628200B2 (en) * 2017-11-02 2020-04-21 Red Hat Israel, Ltd. Base state for thin-provisioned volumes
JP6967959B2 (ja) * 2017-12-08 2021-11-17 キオクシア株式会社 メモリシステムおよび制御方法
CN109976662B (zh) * 2017-12-27 2022-06-14 浙江宇视科技有限公司 数据存储方法、装置及分布式存储系统
CN110096219B (zh) * 2018-01-31 2022-08-02 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
US10725941B2 (en) 2018-06-30 2020-07-28 Western Digital Technologies, Inc. Multi-device storage system with hosted services on peer storage devices
US10409511B1 (en) * 2018-06-30 2019-09-10 Western Digital Technologies, Inc. Multi-device storage system with distributed read/write processing
US11249852B2 (en) 2018-07-31 2022-02-15 Portwonx, Inc. Efficient transfer of copy-on-write snapshots
US10592144B2 (en) 2018-08-03 2020-03-17 Western Digital Technologies, Inc. Storage system fabric with multichannel compute complex
US11354060B2 (en) 2018-09-11 2022-06-07 Portworx, Inc. Application snapshot for highly available and distributed volumes
US11061604B2 (en) 2018-09-28 2021-07-13 Infortrend Technology, Inc. Method and storage system architecture for accessing data by means of a compatible module
CN111124250B (zh) 2018-10-30 2023-11-21 伊姆西Ip控股有限责任公司 用于管理存储空间的方法、设备和计算机程序产品
CN111522499B (zh) 2019-02-01 2023-08-08 香港商希瑞科技股份有限公司 运维数据读取装置及其读取方法
US11132138B2 (en) 2019-09-06 2021-09-28 International Business Machines Corporation Converting large extent storage pools into small extent storage pools in place
US10901645B1 (en) 2019-09-06 2021-01-26 International Business Machines Corporation Converting small extent storage pools into large extent storage pools in place
US11494128B1 (en) 2020-01-28 2022-11-08 Pure Storage, Inc. Access control of resources in a cloud-native storage system
CN113625937A (zh) * 2020-05-09 2021-11-09 鸿富锦精密电子(天津)有限公司 存储资源处理装置及方法
CN112621719B (zh) * 2020-12-11 2022-09-02 珠海格力电器股份有限公司 示教器系统文件保护方法、装置、存储介质及示教器
US11531467B1 (en) 2021-01-29 2022-12-20 Pure Storage, Inc. Controlling public access of resources in a secure distributed storage system
US11842083B2 (en) * 2021-02-03 2023-12-12 Infortrend Technology, Inc. Storage system architecture with dual storage virtualization controllers and the data access method thereof
US11520516B1 (en) 2021-02-25 2022-12-06 Pure Storage, Inc. Optimizing performance for synchronous workloads
US11733897B1 (en) 2021-02-25 2023-08-22 Pure Storage, Inc. Dynamic volume storage adjustment
US11726684B1 (en) 2021-02-26 2023-08-15 Pure Storage, Inc. Cluster rebalance using user defined rules
US11733922B2 (en) 2021-05-06 2023-08-22 EMC IP Holding Company LLC Method for data reconstruction in a RAID system having a protection pool of storage units
US11748016B2 (en) 2021-05-06 2023-09-05 EMC IP Holding Company LLC Method for adding disks in a raid system having a protection pool of storage units
US11640343B2 (en) * 2021-05-06 2023-05-02 EMC IP Holding Company LLC Method for migrating data in a raid system having a protection pool of storage units
US11782791B2 (en) * 2021-08-25 2023-10-10 Western Digital Technologies, Inc. System and method for memory hang recovery using a distributed power management system
CN115237351B (zh) * 2022-08-02 2023-08-15 苏州启恒融智信息科技有限公司 Nand块动态重映射、读写命令处理方法及存储设备
TWI815735B (zh) * 2022-11-21 2023-09-11 中華電信股份有限公司 一種具備空間回收之序列化儲存系統、方法及其電腦可讀媒介

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US6857059B2 (en) * 2001-01-11 2005-02-15 Yottayotta, Inc. Storage virtualization system and methods
US6895466B2 (en) * 2002-08-29 2005-05-17 International Business Machines Corporation Apparatus and method to assign pseudotime attributes to one or more logical volumes
US6938120B2 (en) * 2002-08-29 2005-08-30 International Business Machines Corporation Apparatus and method to form one or more premigration aggregates comprising a plurality of least recently accessed virtual volumes
JP2004259079A (ja) * 2003-02-27 2004-09-16 Hitachi Ltd データ処理システム
CN101566930B (zh) 2003-08-14 2013-10-16 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
JP2005165444A (ja) * 2003-11-28 2005-06-23 Hitachi Ltd ディスクアレイ装置、及びディスクアレイ装置の制御方法
US7814293B2 (en) * 2004-07-19 2010-10-12 Infotrend Technology Inc. Redundant controller host-side IO rerouting
US20060101204A1 (en) * 2004-08-25 2006-05-11 Bao Bill Q Storage virtualization
US8229985B2 (en) * 2005-02-07 2012-07-24 Cisco Technology, Inc. Arrangement for a distributed file system having data objects mapped independent of any data object attribute
EP1816563B1 (en) 2006-01-26 2016-04-27 Infortrend Technology, Inc. Method of managing data snapshot images in a storage system
JP4757165B2 (ja) 2006-10-04 2011-08-24 株式会社日立製作所 計算機システム、データ移行監視方法及びデータ移行監視プログラム
US7949847B2 (en) * 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
US8321652B2 (en) * 2008-08-01 2012-11-27 Infineon Technologies Ag Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US8225039B2 (en) * 2009-10-09 2012-07-17 Hitachi, Ltd. Storage controller and virtual volume control method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI607303B (zh) * 2016-10-14 2017-12-01 喬鼎資訊股份有限公司 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法
TWI587152B (zh) * 2016-10-26 2017-06-11 先智雲端數據股份有限公司 用於延長雲端服務系統中磁碟預期壽命值的方法及使用該方法的系統
TWI734895B (zh) * 2017-03-31 2021-08-01 南韓商三星電子股份有限公司 聚集儲存方法、跨結構高速非揮發性記憶體固態硬碟用的容量聚集方法及聚集的乙太網路固態硬碟群組
TWI804021B (zh) * 2021-06-17 2023-06-01 日商鎧俠股份有限公司 記憶體系統及資訊處理系統

Also Published As

Publication number Publication date
US9946460B2 (en) 2018-04-17
US20100199041A1 (en) 2010-08-05
CN102681789B (zh) 2015-03-25
US20100199040A1 (en) 2010-08-05
TWI432959B (zh) 2014-04-01
TW201028852A (en) 2010-08-01
TWI467370B (zh) 2015-01-01
EP2211263A2 (en) 2010-07-28
TW201028851A (en) 2010-08-01
US8510508B2 (en) 2013-08-13
CN101819506B (zh) 2012-12-05
EP2211263A3 (en) 2013-01-23
US8612679B2 (en) 2013-12-17
CN101788890B (zh) 2012-02-08
US20140068200A1 (en) 2014-03-06
CN102681789A (zh) 2012-09-19
US20170177237A1 (en) 2017-06-22
EP2211262A2 (en) 2010-07-28
CN101819506A (zh) 2010-09-01
TWI514147B (zh) 2015-12-21
US9588892B2 (en) 2017-03-07
EP2211262A3 (en) 2013-01-09
CN101788890A (zh) 2010-07-28

Similar Documents

Publication Publication Date Title
TWI514147B (zh) 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法
US11003368B2 (en) Compound storage system and storage control method to configure change associated with an owner right to set the configuration change
US9639277B2 (en) Storage system with virtual volume having data arranged astride storage devices, and volume management method
US8667241B2 (en) System for data migration from a storage tier allocated to a virtual logical volume
JP5264464B2 (ja) 高可用性、低容量のシン・プロビジョニング
JP5685676B2 (ja) 計算機システム及びデータ管理方法
US8650381B2 (en) Storage system using real data storage area dynamic allocation method
WO2017149581A1 (ja) 仮想ストレージシステム
US20140351545A1 (en) Storage management method and storage system in virtual volume having data arranged astride storage device
US20150347047A1 (en) Multilayered data storage methods and apparatus
JP2004355638A (ja) 計算機システム及びそのデバイスの割り当て方法
US11061604B2 (en) Method and storage system architecture for accessing data by means of a compatible module
JP5597266B2 (ja) ストレージシステム
JP7313458B2 (ja) ストレージシステム、ストレージノード及びデータ記憶方法