TWI710909B - 具多平台相容性模組之資料儲存子系統之儲存系統架構及其方法 - Google Patents
具多平台相容性模組之資料儲存子系統之儲存系統架構及其方法 Download PDFInfo
- Publication number
- TWI710909B TWI710909B TW108134806A TW108134806A TWI710909B TW I710909 B TWI710909 B TW I710909B TW 108134806 A TW108134806 A TW 108134806A TW 108134806 A TW108134806 A TW 108134806A TW I710909 B TWI710909 B TW I710909B
- Authority
- TW
- Taiwan
- Prior art keywords
- data storage
- storage subsystem
- subcommand
- command
- host
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
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)
- Computer Networks & Wireless Communication (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種儲存系統架構,包括耦接至一主機以接收來自該主機之I/O要求之複數個資料儲存子系統。該複數個資料儲存子系統包括:用以產生複數個媒體區之一冗餘磁碟陣列層;用以將複數個媒體區形成一或多個虛擬卷並呈現給主機之一虛擬化模組;用以提供一資料存取介面於主機與儲存系統架構間並將來自主機之I/O要求剖析成至少一子I/O要求以轉發給複數個資料儲存子系統之一機載多平台相容模組;以及,用以驗證至少一子I/O要求之有效性之一媒體區伺服器模組。據此,主機可發送I/O要求至複數個資料儲存子系統中之任一資料儲存子系統。
Description
本發明係有關於一種資料存取之方法,尤指一種可跨平台之資料存取方法。
請參閱第1圖,其係為一習知儲存系統架構1(後稱「儲存系統架構」)的示意圖。該習知儲存系統架構1係透過二通道(communication channel)分別連接至一主機(host)10之二個獨立冗餘磁碟陣列子系統(redundant array of independent disks subsystem, RAID subsystem,後稱「RAID子系統」)20a、20b所組成,其中,該通道可以是一區域網路(LAN)、廣域網路(WAN)、儲存區域網路(SAN)、網際網路(Internet)、溝通連結(communication interconnect)、或其他任何可以讓該些RAID子系統20a、20b間互相傳遞訊息的通道。
這裡,在該習知儲存系統架構1之該主機10中安裝有一應用程式(或可稱為一應用模組,如:主機負載平衡驅動程式(Host-based load balance driver))13,好讓該主機10得以俱備有負載平衡、多重路徑功能等。但是,由於該主機10與該些RAID子系統20a、20b之通訊往來,皆須經於該應用程式13處理,因此,勢必會造成該應用程式13之一大負擔,進而形成一瓶頸所在。這是目前儲存業界所面臨到的一個難題。
再者,該應用程式13亦須維持跟管理一資料位置表,如此,方能藉由該資料位置表來確實處理該主機10與該些RAID子系統20a、20b間之每一筆資料存取往來,如:資料存取位置轉譯。而隨著資料存取數量及RAID子系統數量之增加,該資料位置表亦會隨之越來越龐雜繁複,如此,也會形成另一瓶頸之所在。這也是目前儲存業界所面臨到的另一個難題。
此外,基於系統使用者的種種考量,其並非願意在每一部主機上安裝得以呈現上述功能之相關應用程式。這也是目前儲存業界所面臨到的另一個難題。
又且,每一部主機上所使用的作業系統平台的開發廠商,並非皆願意開放給人在其作業系統平台上安裝有相關的應用程式,因此,這是目前儲存業界所面臨到的另一個難題。
最後,要在不同的作業系統平台,甚至是彼此不相同的作業系統平台上發展與作業系統相關的且相容的不同的應用程式,是一件十分不便利及相當消耗資源的事情,所以,這是目前儲存業界所面臨到的另外一個難題。綜上可知,如何提供可跨平台、可迅速開發且不限定安裝在主機端之一相關應用程式,是儲存業界亟待解決的問題。
依據本發明之一實施例,是提出一種存取資料的方法,用於存取一儲存系統架構中的資料,該儲存系統架構包含有複數個資料儲存子系統,該方法包含下列步驟:提供一機載多平台相容(On-board Load Balance, OBLB)模組於該複數個資料儲存子系統中的每一資料儲存子系統;該複數個資料儲存子系統中之一資料儲存子系統接收來自於一主機的一主機命令;收到該主機命令的該資料儲存子系統判斷是否能依據自身的該機載多平台相容模組的資料位置資訊來解析該主機命令;以及當收到該主機命令的該資料儲存子系統能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含下列步驟:收到該主機命令之該資料儲存子系統依據自身的該機載多平台相容模組的該資料位置資訊解析該主機命令成至少一第一子命令;收到該主機命令的該資料儲存子系統傳送該至少一第一子命令給該複數個資料儲存子系統中與該至少一第一子命令相關連的至少一第一資料儲存子系統;該至少一第一資料儲存子系統各自執行與其相關連的該至少一第一子命令;該至少一第一資料儲存子系統回傳其執行該至少一第一子命令後的至少一第一執行子結果給收到該主機命令的該資料儲存子系統;收到該主機命令的該資料儲存子系統匯集來自於該至少一第一資料儲存子系統的該至少一第一執行子結果;以及收到該主機命令之該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有來自於該至少一第一資料儲存子系統的該至少一第一執行子結果。
依據本發明之另一實施例,當收到該主機命令的該資料儲存子系統不能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含下列步驟:收到該主機命令的該資料儲存子系統傳送該主機命令給一主控資料儲存子系統;該主控資料儲存子系統解析該主機命令成至少一第二子命令,並傳送該至少一第二子命令給與該至少一第二子命令相關連的該複數個資料儲存子系統中的至少一第二資料儲存子系統;該至少一第二資料儲存子系統各自執行與其相關連的該至少一第二子命令;該至少一第二資料儲存子系統回傳其執行該至少一第二子命令後的至少一第二執行子結果給該主控資料儲存子系統;該主控資料儲存子系統匯集來自於該至少一第二資料儲存子系統的該至少一第二執行子結果;該主控資料儲存子系統回傳一主執行結果給收到該主機命令的該資料儲存子系統,其中該主執行結果包含有該至少一第二執行子結果;以及收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機。
依據本發明之另一實施例,收到該主機命令的該資料儲存子系統向該主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊。
依據本發明之另一實施例,來自於該主控資料儲存子系統的該資訊是一位址交互參照資訊。
依據本發明之另一實施例,當收到該主機命令的該資料儲存子系統不能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含下列步驟:收到該主機命令的該資料儲存子系統向一主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊;收到該主機命令的該資料儲存子系統依據向該主控資料儲存子系統詢問而得的該資訊,更新自身的該機載多平台相容模組的該資料位置資訊;收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組更新後的該資料位置資訊,解析該主機命令成至少一第三子命令,並傳送該至少一第三子命令給該複數個資料儲存子系統中與該至少一第三子命令相關連的至少一第三資料儲存子系統;該至少一第三資料儲存子系統各自執行與其相關連的該至少一第三子命令;該至少一第三資料儲存子系統回傳其執行該至少一第三子命令後的至少一第三執行子結果給收到該主機命令的該資料儲存子系統;收到該主機命令的該資料儲存子系統匯集來自於該至少一第三資料儲存子系統的該至少一第三執行子結果;以及收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第三執行子結果。
依據本發明之另一實施例,該複數個資料儲存子系統中的一主控資料儲存子系統規律地或依需要,更新該複數個資料儲存子系統的每一資料儲存子系統的該機載多平台相容模組的資料位置資訊。
依據本發明之另一實施例,該資料位置資訊包含有:一虛擬卷識別碼(Virtual Volume Identification, VV ID)、一虛擬邏輯區塊位址(virtual logical block address, virtual LBA)、一資料大小(size)、一磁碟陣列識別碼(RAID identification, RAID ID)、一媒體區識別碼(ME identification, ME ID)、一實體邏輯區塊位址(physical logical block address, physical LBA)及一區塊數量(block size)。
依據本發明之再一實施例,是提供一種存取資料的方法,用於存取一儲存系統架構中的資料,該儲存系統架構包含複數個資料儲存子系統,該方法包含下列步驟:提供一機載多平台相容(On-board Load Balance, OBLB)模組於該複數個資料儲存子系統中的每一資料儲存子系統;該複數個資料儲存子系統中的一資料儲存子系統接收來自於一主機的一主機命令;收到該主機命令的該資料儲存子系統判斷是否能依據自身的該機載多平台相容模組的資料位置資訊來解析該主機命令;以及當收到該主機命令的該資料儲存子系統能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含下列步驟:收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組的該資料位置資訊解析該主機命令成至少一第一子命令;收到該主機命令的該資料儲存子系統傳送該至少一第一子命令給該複數個資料儲存子系統中與該至少一第一子命令相關連的至少一第一資料儲存子系統;該至少一第一資料儲存子系統中的每一第一資料儲存子系統判斷其接收到的該第一子命令中的一有效性檢查資訊(VCI)是否為有效;當其接收到的該第一子命令中的該有效性檢查資訊被判斷為有效時,另包含下列步驟:收到有效第一子命令的該至少一第一資料儲存子系統中的一第一資料儲存子系統執行該有效第一子命令;收到有效第一子命令的該第一資料儲存子系統回傳一第一執行子結果給收到該主機命令的該資料儲存子系統;收到該主機命令的該資料儲存子系統匯集來自於該至少一第一資料儲存子系統中的該第一資料儲存子系統回傳的該第一執行子結果;以及收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該第一執行子結果。
依據本發明之再一實施例,該有效性檢查資訊是為一有效性檢查序號(Validity Check Sequence Number, VCSN)。
依據本發明之再一實施例,當其接收到的該第一子命令中的該有效性檢查資訊被判斷為無效時,另包含下列步驟:收到無效第一子命令的該至少一第一資料儲存子系統中的一第一資料儲存子系統,傳送該無效第一子命令給一主控資料儲存子系統;以及該主控資料儲存子系統處理來自於該至少一第一資料儲存子系統中的該第一資料儲存子系統的該無效第一子命令。
依據本發明之再一實施例,該無效第一子命令的該有效性檢查資訊會無效的原因,係起因於一資料遷移(data migration)作業或一快照(snapshot)作業。
依據本發明之再一實施例,該主控資料儲存子系統處理來自於該至少一第一資料儲存子系統中的該第一資料儲存子系統的該無效第一子命令之步驟,另包含下列步驟:該主控資料儲存子系統解析該無效第一子命令成至少一第四子命令;該主控資料儲存子系統傳送該至少一第四子命令給與該至少一第四子命令相關連的該複數個資料儲存子系統中的至少一第四資料儲存子系統;該至少一第四資料儲存子系統各自執行與其相關連的該至少一第四子命令;以及該至少一第四資料儲存子系統回傳其執行該至少一第四子命令後的至少一第四執行子結果給該主控資料儲存子系統,以回應該至少一第四子命令;以及該主控資料儲存子系統匯集來自於該至少一第四資料儲存子系統的該至少一第四執行子結果為該無效第一子命令的一執行結果。
依據本發明之再一實施例,該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統;以及收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該無效第一子命令的該執行結果。
依據本發明之再一實施例,該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該無效第一子命令的該第一資料儲存子系統;收到該無效第一子命令的該第一資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統;收到該主機命令的該資料儲存子系統匯集來自於收到該無效第一子命令的該第一資料儲存子系統的該執行結果;以及收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該無效第一子命令的該執行結果。
依據本發明之再一實施例,該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統;收到該主機命令的該資料儲存子系統匯集來自於收到該有效第一子命令的該第一資料儲存子系統的該第一執行子結果以及來自於收到該無效第一子命令的該主控資料儲存子系統的該無效第一子命令的該執行結果;以及收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機,其中該主執行結果包含有該有效第一子命令的該第一執行子結果與該無效第一子命令的該執行結果。
依據本發明之再一實施例,該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該無效第一子命令的該第一資料儲存子系統;收到該無效第一子命令的該第一資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統;收到該主機命令的該資料儲存子系統匯集來自於收到該有效第一子命令的該第一資料儲存子系統的該第一執行子結果以及來自於收到該無效第一子命令的該第一資料儲存子系統的該無效第一子命令的該執行結果;以及收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機,其中該主執行結果包含有該有效第一子命令的該第一執行子結果跟該無效第一子命令的該執行結果。
依據本發明之再一實施例,收到該至少一第一子命令的該至少一第一資料儲存子系統通知收到該主機命令的該資料儲存子系統,其所收到的第一子命令的有效性檢查資訊是為有效或無效。
依據本發明之再一實施例,當該至少一第一子命令中的一第一子命令的該有效性檢查資訊被判斷為有效時,收到該主機命令的該資料儲存子系統通知收到該有效第一子命令的該第一資料儲存子系統,執行其收到的該有效第一子命令;以及當該至少一第一子命令中的一第一子命令的該有效性檢查資訊被判斷為無效時,收到該主機命令的該資料儲存子系統通知收到該無效第一子命令的該第一資料儲存子系統,不執行其收到的該無效第一子命令。
依據本發明之再一實施例,當該至少一第一子命令的任一的該有效性檢查資訊被判斷為無效時,另包含下列步驟:收到該主機命令的該資料儲存子系統通知收到該至少一第一子命令的該至少一第一資料儲存子系統,不要執行其所收到的該至少一第一子命令;收到該主機命令的該資料儲存子系統傳送該主機命令給一主控資料儲存子系統;該主控資料儲存子系統解析該主機命令成至少一第五子命令,並傳送該至少一第五子命令給該複數個資料儲存子系統中與該至少一第五子命令相關連的至少一第五資料儲存子系統;該至少一第五資料儲存子系統各自執行與其相關連的該至少一第五子命令,以得到相對應於該至少一第五子命令的至少一第五執行子結果,並回傳該至少一第五執行子結果給該主控資料儲存子系統;該主控資料儲存子系統匯集來自於該至少一第五資料儲存子系統的該至少一第五執行子結果;該主控資料儲存子系統回傳該至少一第五執行子結果給收到該主機命令的該資料儲存子系統;以及收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第五執行子結果。
依據本發明之再一實施例,該無效第一子命令的該有效性檢查資訊會無效的原因,係起因於一資料遷移(data migration)作業或一快照(snapshot)作業。
依據本發明之再一實施例,當該至少一第一子命令的任一的該有效性檢查資訊被判斷為無效時,另包含下列步驟:收到該主機命令的該資料儲存子系統通知收到該至少一第一子命令的該至少一第一資料儲存子系統,不要執行其所收到的該至少一第一子命令;收到該主機命令的該資料儲存子系統向該主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊;收到該主機命令的該資料儲存子系統依據向該主控資料儲存子系統詢問而得的該資訊,更新自身的該機載多平台相容模組的該資料位置資訊;收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組更新後的資料位置資訊,解析該主機命令成至少一第六子命令,並傳送該至少一第六子命令給該複數個資料儲存子系統中與該至少一第六子命令相關連的至少一第六資料儲存子系統;當該至少一第六子命令的該有效性檢查資訊被判斷為有效時,該至少一第六資料儲存子系統執行該至少一第六子命令,以得到至少一第六執行子結果;該至少一第六資料儲存子系統回傳執行該至少一第六子命令後的該至少一第六執行子結果給收到該主機命令的該資料儲存子系統;收到該主機命令的該資料儲存子系統匯集來自於該至少一第六資料儲存子系統的該至少一第六執行子結果;以及收到該主機命令之該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第六執行子結果。
依據本發明之再一實施例,當該至少一第一子命令的任一的該有效性檢查資訊被判斷為無效時,另包含下列步驟:收到該主機命令的該資料儲存子系統通知收到該至少一第一子命令的該至少一第一資料儲存子系統,不要執行其所收到的該至少一第一子命令;收到該主機命令的該資料儲存子系統向該主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊;收到該主機命令的該資料儲存子系統依據向該主控資料儲存子系統詢問而得的該資訊,更新自身的該機載多平台相容模組的該資料位置資訊;收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組更新後的資料位置資訊,解析該主機命令成至少一第六子命令,並傳送該至少一第六子命令給該複數個資料儲存子系統中與該至少一第六子命令相關的至少一第六資料儲存子系統;當該至少一第六子命令的任一的該有效性檢查資訊被判斷為無效時,收到該主機命令的該資料儲存子系統傳送該主機命令給該主控資料儲存子系統;該主控資料儲存子系統解析該主機命令成至少一第七子命令,並傳送該至少一第七子命令給該複數個資料儲存子系統中與該至少一第七子命令相關連的至少一第七資料儲存子系統;該至少一第七資料儲存子系統執行該至少一第七子命令以得到至少一第七執行子結果,並回傳執行該至少一第七子命令後的該至少一第七執行子結果給該主控資料儲存子系統;該主控資料儲存子系統匯集來自於該至少一第七資料儲存子系統的該至少一第七執行子結果;該主控資料儲存子系統回傳該至少一第七執行子結果給收到該主機命令的該資料儲存子系統;以及收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第七執行子結果。
依據本發明之再一實施例,該無效第一子命令的該有效性檢查資訊會無效的原因,係起因於一資料遷移(data migration)作業或一快照(snapshot)作業。
依據本發明之再一實施例,來自於該主控資料儲存子系統的該資訊是一位址交互參照資訊。
依據本發明之再一實施例,來自於該主控資料儲存子系統的該資訊是一位址交互參照資訊。
依據本發明之再一實施例,該資料位置資訊包含有:一虛擬卷識別碼 (Virtual Volume Identification, VV ID)、一虛擬邏輯區塊位址(virtual logical block address, virtual LBA)、一資料大小(size)、一磁碟陣列識別碼(RAID identification, RAID ID)、一媒體區識別碼(ME identification, ME ID)、一實體邏輯區塊位址(physical logical block address, physical LBA)、一區塊數量(block size)及該有效性檢查資訊。
依據本發明之更一實施例,是提供一種用於存取資料的儲存系統架構,該儲存系統架構包含有複數個資料儲存子系統,且該複數個資料儲存子系統耦接於一主機,以接收來自於該主機的一主機命令,該儲存系統架構包含有:一冗餘磁碟陣列層,提供於該複數個資料儲存子系統中的每一資料儲存子系統,用以將複數個實體儲存元件(PSD)映射成複數個媒體區(ME);一虛擬化模組,提供於該複數個資料儲存子系統中的至少一資料儲存子系統,用以將該複數個媒體區(ME)形成一虛擬池(virtual pool),該虛擬池(virtual pool)產生一或多個虛擬卷(VV)並呈現給該主機;一機載多平台相容模組,提供於該複數個資料儲存子系統中的每一資料儲存子系統,用以提供一資料存取介面給該主機,其中該機載多平台相容模組包含有一資料位置資訊,用以剖析來自於該主機的該主機命令成至少一子命令;以及一媒體區伺服器(ME server)模組,提供於該複數個資料儲存子系統中的每一資料儲存子系統,用以接收該至少一子命令以及判斷該至少一子命令的有效性;其中,該複數個資料儲存子系統中的一資料儲存子系統接收並剖析來自於該主機的該主機命令成至少一子命令,並傳送該至少一子命令給相關連的一或多個第一資料儲存子系統執行該至少一子命令。
依據本發明之更一實施例,該機載多平台相容模組另包含:分別對應於該一或多個虛擬卷(VV)的一或多個資料位置表(Data Location Table, DLT),用以儲存對應於該一或多個虛擬卷(VV)的該資料位置資訊。
依據本發明之更一實施例,該複數個資料儲存子系統中的該資料儲存子系統包含有該虛擬化模組而為一主控資料儲存子系統,用以管理該一或多個虛擬卷(VV)。
依據本發明之更一實施例,該虛擬化模組、該機載多平台相容模組以及該媒體區伺服器(ME server)模組是三個獨立模組。
依據本發明之更一實施例,該機載多平台相容模組是被整合於該虛擬化模組之中。
依據本發明之更一實施例,該媒體區伺服器(ME server)模組是被整合於該虛擬化模組之中。
依據本發明之更一實施例,該媒體區伺服器(ME server)模組是被整合於該機載多平台相容模組之中。
依據本發明之更一實施例,該虛擬化模組、該機載多平台相容模組以及該媒體區伺服器(ME server)模組是被整合於一相同的模組之中。
依據本發明之更一實施例,該媒體區伺服器(ME server)模組包含有一或多個資料位置有效性表(data location validity table),該一或多個資料位置有效性表(data location validity table)用以判斷該至少一子命令的有效性檢查資訊是有效或無效。
依據本發明之更一實施例,該一或多個資料位置有效性表(data location validity table)是分別對應於該一或多個虛擬卷(VV)。
依據本發明之更一實施例,該有效性檢查資訊是為一有效性檢查序號(Validity Check Sequence Number, VCSN)。
依據本發明之更一實施例,接收該主機命令的該資料儲存子系統不同於該一或多個第一資料儲存子系統中的任一第一資料儲存子系統。
依據本發明之更一實施例,接收該主機命令的該資料儲存子系統是包含於該一或多個第一資料儲存子系統之中。
依據本發明之更一實施例,該主機命令的一執行結果係經由接收該主機命令的該資料儲存子系統回傳給該主機,該執行結果是為該至少一子命令的至少一執行子結果的匯集。
儲存虛擬化(storage virtualization)技術係為一種將實體儲存空間虛擬化的技術,亦即,儲存虛擬化技術能將實體儲存元件(Physical Storage Device, PSD)中的不同區段予以結合,使之成為可供一主機使用的一邏輯儲存體(logical storage entity),亦稱作為「邏輯媒體單元」(logical media unit, LMU),並藉由該儲存虛擬化技術及磁碟陣列(RAID)技術,除了得以將磁碟陣列儲存虛擬化外,還能將較小實體儲存裝置結合成為容量較大、可容錯、高效能之一邏輯媒體單元。
儲存虛擬化控制器(storage virtualization controller, SVC)係用以在上述之該主機與該邏輯媒體單元間建立一映射關係,使該邏輯媒體單元可為該主機所用。當該儲存虛擬化控制器接收到來自於該主機之一輸出輸入請求(I/O request)後,該儲存虛擬化控制器會先剖析及解譯該輸出入請求,並將相關之操作及資料轉譯成與實體儲存裝置相對應之輸出入請求。這個過程可以是間接地,例如運用快取、延遲(如:回寫(write-back))、預期(anticipate)(如:先讀(read-ahead))、群集(group)等操作來加強效能及其他之操作特性,因而一主機輸出入請求並不一定是以一對一的方式直接對應於實體儲存裝置輸出入請求。
儲存虛擬化控制器包含有兩種形式,分別為內部儲存虛擬化控制器與外部儲存虛擬化控制器(亦稱作獨立式(stand-alone)儲存虛擬化控制器),其中,外部儲存虛擬化控制器除了可連接至主機外,亦可與位於主機系統外部的裝置連接。一般來說,外部儲存虛擬化控制器通常獨立於主機運作。
請參閱第2圖,其係為本發明之一儲存系統架構2之示意圖。該儲存系統架構2係由一主機10以及透過一通道連接至該主機10之一資料儲存子系統所組成,該資料儲存子系統(data storage subsystem)可以是RAID子系統20。該RAID子系統20包含有一對儲存虛擬化控制器(SVC) 200a, 200b及具有複數個實體儲存媒體(PSD) 400之一PSD陣列300。其中,該複數個PSD 400可以為硬碟(Hard Disk Drive, HDD)、光碟(Compact Disk, CD)、影音光碟(Video Compact Disk, VCD)、多樣化數位光碟(Digital Versatile Disc, DVD)、磁帶(TAPE)、固態硬碟(Solid State Drive, SSD)、快閃記憶體(Flash Memory)、電子可抹拭唯讀記憶體(Electrically Erasable Programmable Read Only Memory, EEPROM)等儲存媒體,且該對SVC 200a, 200b係被設定為冗餘對(redundandent pair)之儲存虛擬化控制器。此外,依據本發明之另一實施例,一個RAID子系統可僅使用一個儲存虛擬化控制器。
在實際情況裡,常會見到將一對儲存虛擬化控制器配置成一冗餘對(redundandent pair)的應用例,其目的在於:當該冗餘對中,其中之一的儲存虛擬化控制器發生故障或無法運作時,該冗餘對中之另一儲存虛擬化控制器會接管提供服務之該儲存虛擬化控制器所負責的工作,而使得主機依然可以繼續執行資料存取工作。
常見到的冗餘儲存虛擬化控制器對有兩種類型,亦即,主動-待命模式(active-standby)與主動-主動模式(active-active)。在主動-待命模式中,該冗餘儲存虛擬化控制器對中之一儲存虛擬化控制器(亦稱為主要儲存虛擬化控制器)呈現、管理及處理儲存虛擬化RAID子系統中的所有邏輯媒體單元的所有輸出入請求,而另一儲存虛擬化控制器(亦稱為次要儲存虛擬化控制器)則是處於待命狀態(stand by),只在該主要儲存虛擬化控制器無法提供服務時,接替該主要儲存虛擬化控制器;而在主動-主動模式下,上述該冗餘儲存虛擬化控制器對中的之二儲存虛擬化控制器,都是正在執作呈現、管理及處理儲存虛擬化RAID子系統中的所有邏輯媒體單元的所有輸出入請求,並隨時預備好在另一個儲存虛擬化控制器無法提供服務時(如:故障(malfunction)),接手(take over)對方所負責的工作,其中,主動-主動模式的效能通常較優於主動-待命模式,因為主動-主動模式冗餘儲存虛擬化控制器對中的兩個儲存虛擬化控制器的資源(如:中央處理器(Central Processing Unit, CPU)時間、內部匯流排頻寬…等)與單一儲存虛擬化控制器相比,可負載較多的輸出入請求服務。
然而,不論是主動─被動模式或者是主動─主動模式,冗餘儲存虛擬化電腦系統的一個基本功能就是在一儲存虛擬化控制器發生狀況時,另一個儲存虛擬化控制器得以接管(take over)發生狀況的儲存虛擬化控制器之工作,例如:繼續完成存取直接存取儲存裝置中的資料。因此要能建構冗餘儲存虛擬化電腦系統,其儲存虛擬化控制器間首先必須要能建立一個控制器間通訊通道(Inter-controller Communications Channel, ICC),藉由此通訊通道得以傳送訊息,其中,該控制器間通訊通道可以為一光纖通道仲裁迴圈(FC-AL)、小型電腦系統介面(parallel small computer system interface, SCSI)或序列先進技術接取介面(serial advanced technology attachment, SATA)等通訊連結。
請參閱第3圖。第3圖係為依據本發明之一實施例之儲存系統架構3。該儲存系統架構3係由具有多重路徑功能之一主機10經由一交換器15、至少一通道(channel, CH)(例如:第一通道CH1、第二通道CH2、第三通道CH3)及三個資料儲存子系統(data storage subsystem)所構成,該些資料儲存子系統可以是RAID子系統30A、30B、30C。RAID子系統30A的架構係包含一虛擬化層(virtualization layer) 302A、一冗餘磁碟陣列層(RAID layer,後稱「RAID層」) 304A、一機載多平台相容模組40A(即On Board Load Balance module,OBLB模組)及一媒體區伺服器模組(Media Extent Server module, ME Server 模組)90A。其中,該OBLB模組40A、該媒體區伺服器模組90A可分別地設置於該虛擬化層302A之內(圖未示),亦可分別地獨立設置於該虛擬化層302A之外。亦即,依據本發明之一實施例,該OBLB模組40A、該媒體區伺服器模組90A與該虛擬化層302A以各自獨立之模組的方式來實現,如第3圖所示。依據本發明之另一實施例,該OBLB模組40A設置於該虛擬化層302A之內但該媒體區伺服器模組90A設置於該虛擬化層302A之外(圖未示)。依據本發明之又一實施例,該OBLB模組40A設置於該虛擬化層302A之外但該媒體區伺服器模組90A設置於該虛擬化層302A之內(圖未示)。依據本發明之再一實施例,該OBLB模組40A與該媒體區伺服器模組90A皆設置於該虛擬化層302A之內(圖未示)。依據本發明之再一實施例,該OBLB模組40A與該媒體區伺服器模組90A整合成一模組且獨立於該虛擬化層302A(圖未示)。同樣地,RAID子系統30B的架構包含有一虛擬化層302B、一RAID層304B、一機載多平台相容模組40B(OBLB模組)及一媒體區伺服器模組(ME Server mudule)90B,而RAID子系統30C的架構包含有一虛擬化層302C、一RAID層304C、一機載多平台相容模組40C(OBLB模組)及一媒體區伺服器模組(ME Server mudule)90C。於此,該OBLB模組40B、該媒體區伺服器模組90B可分別地設置於該虛擬化層302B之內(圖未示),亦可分別地獨立設置於該虛擬化層302B之外;該OBLB模組40C、該媒體區伺服器模組90C可分別地設置於該虛擬化層302C之內(圖未示),亦可分別地獨立設置於該虛擬化層302C之外。
在介紹該儲存系統架構3前,先說明多重路徑功能(multi-pathing functionality)及負載平衡(load balance)的功能。多重路徑功能係為一種存取技術,亦即,在主機10與各個RAID子系統30A、30B、30C之間建立路徑,以便當一或多個元件失效而造成該些路徑的其中之一失效時,藉由多重路徑功能可以讓主機10發出之主機命令(Host command)使用其它替代路徑,以取代該失效路徑,其中,該主機命令(Host command)可以是輸出輸入要求(I/O request)。如此,主機10仍能透過替代路徑存取儲存裝置中之資料。比如:在主機10與該些RAID子系統30A、30B、30C之間建立冗餘路徑,若儲存虛擬化控制器中之一或多個失效而造成冗餘路徑的其中之一失效時,則存活的儲存虛擬化控制器會切換選擇其它仍正常運作的冗餘路徑,並接手處理失效的儲存虛擬化控制器所負責的I/O,使得主機10仍能正常地存取該些RAID子系統30A、30B、30C中的資料。在此機制之下,主機10不需要知道哪一個正常運作的儲存虛擬化控制器會接管哪一個失效的儲存虛擬化控制器所處理之I/O。而這樣的冗餘儲存虛擬化控制器組態,就是所謂的透明的(transparent)冗餘儲存虛擬化控制器組態,且此種接管機制稱做為透明的(transparent)冗餘儲存虛擬化控制器接管機制。當主機10在發出主機命令時,會輪流向該些虛擬化層302A、302B、302C發出主機命令(Host command)(又稱為「輸出輸入要求」(I/O request)),使得每一個虛擬化層均勻地接收到主機命令,以避免少數節點(node)接收到大多數的主機命令而形成I/O處理上的瓶頸。如此,可以使各個RAID子系統30A、30B、30C的工作負載較為平衡,且系統的效能不會僅取決於某特定節點的I/O處理能力,以達到負載平衡(load balance)的功能。
以下,分別介紹虛擬化層302(如:虛擬化層302A、302B、302C)、RAID層304(如:RAID層304A、304B、304C)、該些媒體區伺服器模組90(如:媒體區伺服器模組90A、90B、90C)及OBLB模組40(如:OBLB模組40A、40B、40C)之功能。RAID層304(如:RAID層304A、304B、304C)之功能,係詳述於第4圖、第5圖及其對應段落中,請參考後文的說明。虛擬化層302A、302B、302C又稱為「虛擬化模組」(virtualization module),其負責管理各RAID層304A、304B、304C中呈現出來之媒體區(ME, Media Extent)、管理並記錄有效性檢查資訊(Validity Check Information, VCI)、將各RAID層304A、304B、304C中之媒體區(ME, Media Extent)形成一虛擬池(VP, Virtual Pool) 以產生一或多個虛擬卷(VV, Virtual Volume)來呈現給主機10。除此之外,亦負責管理虛擬位址與實體位址間之對映關係。虛擬化層302A、302B、302C亦負責驅動用以實現「資料服務」(data service)功能之各種程序(procedure),例如:資料卷複製(volume replication)、虛擬卷快照(virtual volume snapshot)、資料遷徙(data migration)等。有關「資料卷複製」之資料服務程序,係包含有資料卷拷貝(volume copy)與資料卷鏡像(volume mirror)之兩種資料卷複製方式;其中,資料卷鏡像係用於將一來源資料卷(source volume)中的資料與一目的資料卷(destination volume)中的資料一直維持在資料同步的關係;而資料卷拷貝係在一特定時間點下達分離(split)指令,以中止來源資料卷與目的資料卷在該特定時間點後的資料同步關係,如此使得目的資料卷的資料狀態維持在該特定時間點時來源資料卷的資料狀態。有關「虛擬卷快照」之資料服務程序,係指將一來源資料卷(或稱基卷(Base Volume))在某一特定時間點之資料狀態保留下來成為一快照卷(Snapshot-Volume),即來源資料卷之快照。而且,快照只有在來源資料卷被寫入或被更新新資料時,才會將被寫入或被更新新資料之區域中的原始資料複製至一快照影像(Snapshot Image)(此即為「寫入複製」(copy-on-write)程序),而非複製來源資料卷的全部資料,因此,每一時間點之快照卷係由所對應之快照影像與來源資料卷內未複製於該快照影像的資料所組成。有關「資料遷徙」之資料服務程序,係指將一或多個來源資料卷(source volume)中的資料搬移到一或多個目的資料卷(destination volume),而其他相關細節係被記載和詳細說明於第8圖及第9圖中。該些RAID子系統30A、30B、30C剖析(parse)主機10之主機命令成至少一子命令,該些媒體區伺服器模組90A、90B、90C係用以驗證該至少一子命令中的有效性檢查資訊(VCI)的有效性,藉以判斷主機命令所欲存取資料之位置(location)的有效性。
如此,該儲存系統架構3即可透過該些虛擬化層302A、302B、302C,依據系統之需求,將該些RAID子系統30A、30B、30C中的儲存空間所建構而成之虛擬池(VP)定義成為一或多個虛擬卷(VV),以供該主機10使用。換言之,主機10可以直接與各個RAID子系統30溝通,亦即,具備有多重路徑功能(multi-pathing functionality)及負載平衡(load balance)功能。另外,依據本發明之一實施例,有效性檢查資訊(VCI)可用一有效性檢查序號(VCSN, Validity Check Sequence Number)來實作,且有關有效性檢查序號(VCSN)之實施例的操作細節詳述於第15圖與第16圖。
請參閱第4圖與第5圖。第4圖係為本發明之一實施例之RAID層304(例如:RAID層304A、304B、304C)所映射出之邏輯磁碟機(logical drive, LD)與媒體區(media extent, ME)之關係示意圖。第5圖係為本發明之一實施例之媒體區(ME)與區塊(block)之關係示意圖。如第4圖與第5圖中顯示,在該些RAID層304、304A、304B、304C中,一或多個PSDs中的每一區塊(block)(或稱為分區(sector))皆對應到一實體邏輯區塊位址(physical logical block address, phy LBA)(或稱為邏輯區塊位址(LBA)),其中,該些實體邏輯區塊位址(physical LBA, phy LBA)係為連續定址,例如:第5圖所示之phy LBA1、phy LBA2與phy LBA3…等。一或多個區塊(block)組成一個媒體區(ME),例如:第4圖、第5圖所示之ME 1、ME 2、ME 3、ME 4、ME 5與ME 6…等。而一或多個媒體區(ME)組成一個邏輯磁碟機(LD),例如:第4圖所示之LD 1、LD 2、LD 3、…與LD i等。這裡,每一個邏輯磁碟機更可被進一步切割成一或多個分割區(partition),例如:第4圖所示之分割區1、分割區2、分割區3、分割區4、分割區5、分割區6與分割區n…等。第3圖中之該些虛擬化層(例如:虛擬化層302A、302B、302C)係用以管理由RAID層(例如:RAID層304A、304B、304C)所呈現出來之媒體區(ME),並藉以產生一或多個虛擬池(virtual pool, VP)(圖未示)。虛擬池(VP)可以完全由單一RAID子系統30A、30B、30C中的一或多個媒體區所構成,或是由一或多個RAID子系統30A、30B、30C中的一或多個媒體區所聯合構成。接著,虛擬化層302A、302B、302C再由虛擬池(VP)中產生一或多個虛擬卷(virtual volume, VV)(圖未示),並將該些虛擬卷(VV)呈現給主機10,供主機10藉由發送主機命令而做資料存取之用。在本發明中,虛擬卷(VV)可完全由虛擬池中的單一RAID子系統中的一或多個媒體區所構成,或是由虛擬池中的一或多個RAID子系統中的一或多個媒體區所構成,但不管是以前述哪種方式來構成,對於主機來說,不論是透過第一通道CH1、第二通道CH2或第三通道CH3,都可以將主機命令發送到欲存取的虛擬卷。
請參閱第6圖,其係為本發明之一實施例之用於虛擬池之一區段分配系統(section allocation system, SAS) 601的資料結構之示意圖。區段分配系統(SAS) 601係為一類似檔案系統(file-system-like)資料結構,其包含有一或多個區塊關聯集區段分配串列(block association set section allocation list, BAS SAL)603a、603b及一節點表(Inode Table)605。節點表605係用以記錄區塊關聯集區段分配串列603a、603b內容存放位置的資訊,即區塊關聯集區段分配串列(BAS SAL)603a、603b內容的指標(pointer),使系統可以透過節點表605正確取得區塊關聯集區段分配串列(BAS SAL)603a、603b的內容。關於區塊關聯集區段分配串列(BAS SAL)603a、603b,以一種比喻的說法是:區塊關聯集區段分配串列(BAS SAL)603a、603b可以視作是區段分配系統(SAS) 601中的檔案,檔案可以分做許多種,區塊關聯集區段分配串列(BAS SAL)603a、603b則是其中一種用作特定用途的檔案。依據本發明之一實施例,區塊關聯集區段分配串列(BAS SAL)係為虛擬卷(VV)之資料結構,每個區塊關聯集區段分配串列(BAS SAL)603a、603b映射出一個虛擬卷(VV),包含有:一屬性區塊(Attribute Block)6031,用以記載此區塊關聯集區段分配串列(BAS SAL)603a、603b之識別碼(identification, ID)、大小以及相關設定等資訊;一目錄(directory)欄位6033,記載指引、管理該區塊關聯集區段分配串列(BAS SAL)603a、603b中各實體區塊的資訊;一日誌(Journal)欄位6035,用以存放運作日誌,以供系統發生錯誤或斷電情事時可供恢復(recovery)之用;一區塊關聯表(Block Association Table, BAT)欄位6037,用以儲存指向資料區塊(Data Area)6039的參考資訊;以及資料區6039,用以存放供主機存取之資料,並且所存放資料之位置將紀錄於區塊關聯集區段分配串列603a、603b分別所包含之區塊關聯表(BAT) 6037中。依據本發明之一實施例,虛擬化層(例如:虛擬化層302A、302B、302C)管理由RAID層(例如:RAID層304A、304B、304C)所呈現出來之媒體區(ME),並據以產生一或多個虛擬池(VP)。然後,虛擬化層302A、302B、302C再由虛擬池(VP)中產生一或多個虛擬卷(VV),該一或多個虛擬卷(VV)分別映射於一區塊關聯集區段分配串列(BAS SAL)(例如:區塊關聯集區段分配串列603a、603b)。接著,區塊關聯集區段分配串列(BAS SAL)與區塊關聯表(BAT)將被建置,並且將與其對應之虛擬卷(VV)映射至一主機10通道上之CH/ID/LUN (Channel/Identification/Logical Unit Number)(通道/識別碼/邏輯單元號碼),呈現給主機10。在本實施例中,虛擬池(VP)分配給虛擬卷(VV)的儲存空間,係以實體區段(section)為最小單位,其中,每一個實體區段包含有一或多個區塊(block)(或稱為分區(sector))。
請參閱第3圖及第7圖,其中,第7圖係為依據本發明之僅有單一個主控RAID子系統的儲存系統架構3之一實施例之虛擬池(VP)、虛擬卷(VV)與媒體區(ME)關係之示意圖。本實施例係使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法。於本實施例中,設置有虛擬化層302的RAID子系統可被設定作為一主控(master)RAID子系統30,而被主控RAID子系統30所管理的其他RAID子系統30係被稱為從屬(slave)RAID子系統30;於其它實施例中,設置有虛擬化層302的RAID子系統不須必定被設定作為一主控RAID子系統30。依據本發明之一實施例,第3圖中所示之RAID子系統30A設置有虛擬化層302A,因此,RAID子系統30A被設定在一虛擬池VP0中擔任主控RAID子系統(master RAID subsystem),而其它RAID子系統30B、30C對虛擬池VP0而言是從屬RAID子系統(slave RAID subsystem)。第7圖的實施例中,由虛擬池VP0產生出三個虛擬卷VV0、VV1、VV2。於本實施例中,虛擬卷VV0包含有媒體區ME11、ME12、ME21、ME22、ME31、ME32,虛擬卷VV1包含有媒體區ME13、ME14、ME23、ME24、ME33、ME34,該虛擬卷VV2包含有ME15、ME16、ME25、ME26、ME35、ME36,如第7圖所示。
請參照第8圖及第9圖,分別例示本發明儲存系統架構3之有效性檢查序號總表12A、資料位置有效性表14A至14C、虛擬池(VP)與媒體區(ME)之間之關係的示意圖,以繪示使用有效性檢查資訊(VCI)之一特定實施方式(例如:有效性檢查序號(VCSN))來實現主機命令有效性驗證方法。依據本發明之一實施例,可在虛擬化層302A、302B、302C分別設置各自專屬的資料位置有效性表(Data location validity table)14A、14B、14C,其中記載有藉以記錄自身儲存資料的搬遷狀態。在本發明儲存系統架構3之有效性檢查序號總表12A、資料位置有效性表14A至14C中建制有效性檢查序號(VCSN)的目的,在於避免:當主機10發出讀取/寫入資料的主機命令是對正在進行資料遷徙作業(data migration functionality)之RAID子系統30的媒體區(ME)(例如:該RAID子系統30A、30B、30C中之任意兩者間之資料遷徙作業)時,可以避免該主機命令被執行而存取到錯誤的資料。所以,RAID子系統30A、30B、30C中之每一媒體區(ME)皆係設定一有效性檢查序號(VCSN),而且當一RAID子系統30中之一媒體區(ME)中的一個實體區段(section)上的資料要遷徙至另一RAID子系統30中之一媒體區(ME)前,資料移出之該媒體區(ME)所屬RAID子系統30的虛擬化層302會更改資料移出之該媒體區(ME)的有效性檢查序號(VCSN)與更新其自身管理之資料位置有效性表14,並通知移出資料之該媒體區(ME)所隸屬之虛擬卷(VV)的管理者(亦即,該虛擬卷(VV)的主控RAID子系統30),使其能夠掌握最新資料分布狀態,以利後續所接收到要求讀取/寫入資料之主機命令之有效性檢查序號(VCSN)的判斷。於此,依據第3圖、第7圖、第8圖而提出之本發明的一實施例,若RAID子系統30B之媒體區22(ME 22)的資料要被遷徙至RAID子系統30C之媒體區31(ME 31),媒體區22(ME 22)所屬之RAID子系統30B會更改資料移出之媒體區22(ME 22)的有效性檢查序號(VCSN)與更新其自身管理之資料位置有效性表14B,並通知移出資料之媒體區22(ME 22)所隸屬之虛擬卷VV0的管理者(亦即,身為主控RAID子系統30之RAID子系統30A),使其更新該有效性檢查序號總表12A(VV0)以便掌握最新資料分布狀態而有利後續所接收到要求讀取/寫入資料之主機命令之有效性檢查序號(VCSN)的判斷。
發生資料遷徙作業的原因之一是:RAID子系統30A、30B、30C中之一或多個媒體區因為增加實體儲存元件(PSD)而增加媒體區數量或是因為減少實體儲存元件(PSD)而減少媒體區數量。所以,RAID子系統30A、30B、30C中所儲存之資料會因應媒體區數量的變化而進行資料遷徙作業(亦即,將資料由原本儲存的位置搬遷至另一或多個媒體區),以避免RAID子系統30A、30B、30C中之某一RAID子系統30的存取負載過重。這也是負載平衡(load balance)功能之體現。發生資料遷徙作業的另一原因是:若RAID子系統30A、30B、30C中之某一RAID子系統30所儲存資料為主機10頻繁存取之熱資料(hot data),及/或某一RAID子系統30所儲存資料為主機10甚少存取之冷資料(cold data),造成各個RAID子系統30A、30B、30C之存取負載不平衡。所以,RAID子系統30A、30B、30C中所儲存之資料會因應負載平衡(load balance)的需求而進行資料遷徙作業(亦即,將熱資料由原本儲存的位置搬遷至另一或多個媒體區),以避免該些RAID子系統30A、30B、30C中之某一RAID子系統30的存取負載過重,以達到負載平衡(load balance)功能。
請再參考第3圖、第7圖、第8圖繪示之本發明的一實施例。RAID子系統30A、30B、30C中之虛擬化層302A、302B、302C依據該些虛擬卷VV0、VV1、VV2中所屬之每一個媒體區(ME)而各自產生有效性檢查序號(VCSN)的初始值,並將每一個媒體區(ME)之有效性檢查序號(VCSN)的初始值各自儲存在資料位置有效性表14A、14B、14C中,且依據該些資料位置有效性表14A、14B、14C形成有效性檢查序號總表12A(VV0)。爾後,若有一RAID子系統30中之一媒體區(ME)中的一個實體區段(section)上的資料要遷徙至另一RAID子系統30中之一媒體區(ME)時,資料移出之RAID子系統30的虛擬化層302會更改資料移出之該媒體區(ME)的有效性檢查序號(VCSN)與更新其自身管理之資料位置有效性表14,並通知移出資料之該媒體區(ME)所隸屬之虛擬卷(VV)的管理者(亦即,身為虛擬卷VV0的主控RAID子系統30A),使其能夠掌握最新資料分布狀態,以利後續所接收到要求讀取/寫入資料之主機命令之有效性檢查序號(VCSN)的判斷。
請再參考第3圖、第7圖、第8圖,於本發明之一實施例,有效性檢查序號(VCSN)的更改/變動方式是:當一媒體區(ME)中之一區段(section)上的資料(區塊資料),因為前述原因(例如:媒體區(ME)數量的變化或熱資料(hot data)/冷資料(cold data)形成RAID子系統30的存取負載不平衡)而被從該媒體區(ME)中搬遷出去時,資料移出之媒體區(ME)所屬之RAID子系統的虛擬化層302會將資料移出之媒體區(ME)的有效性檢查序號(VCSN)數值加上一特定數值(incremented),例如:加上1單位計量值或加上1單位計數值,且1單位計量值或1單位計數值可以視需要而設定。然後,資料移出之媒體區(ME)所屬之RAID子系統的虛擬化層302會以更改後之有效性檢查序號(VCSN)更新其自身管理之資料位置有效性表14,並通知移出資料之媒體區(ME)所隸屬之虛擬卷(VV)的管理者(亦即,該虛擬卷(VV)的主控RAID子系統30A)。爾後,若該媒體區(ME)有再把其儲存資料搬遷至其他媒體區(ME)時,該媒體區(ME)所屬RAID子系統30的虛擬化層302會把該媒體區(ME)的有效性檢查序號(VCSN)數值再加上一特定數值(incremented),例如:加上1單位計量值或加上1單位計數值,且1單位計量值或1單位計數值可以視需要而設定。再依據第3圖、第7圖、第8圖而提出之本發明的一實施例,有效性檢查序號(VCSN)的更改/變動方式可以是:每有資料從一媒體區(ME)移出時,就將媒體區(ME)的有效性檢查序號(VCSN)數值加上1或一特定數值(例如:2、3、4……等,但不受限於此)。又依據第3圖、第7圖、第8圖而提出之本發明的一實施例,有效性檢查序號(VCSN)的更改/變動方式可以是:每有資料從一媒體區(ME)移出時,就將媒體區(ME)的有效性檢查序號(VCSN)數值減去1或一特定數值(例如:2、3、4……等,但不受限於此)。
請參閱第3圖、第7圖及第8圖,其中,第8圖係為依據第7圖之儲存系統架構3之一實施例之有效性檢查序號總表12、資料位置有效性表14A至14C、虛擬池(VP)與媒體區(ME)之間關係的示意圖。為了讓主機10可以任意對RAID子系統30A、30B、30C發出主機命令,因此, RAID子系統30A、30B、30C中皆分別設置有OBLB模組40A、40B、40C,用以將來自主機10之主機命令剖析(parse)成為一或多個子命令後,再轉遞給對應的RAID子系統30。於本發明之一實施例中,該些OBLB模組40A、40B、40C皆有分別對應於虛擬卷VV0、VV1、VV2之資料位置表(Data Location Table, DLT) DLT0、DLT1、DLT2,該些資料位置表DLT0、DLT1、DLT2係分別用以記錄由虛擬池VP0產生之虛擬卷VV0、VV1、VV2中之資料位置資訊(Data Location Information)。於此實施例中,由於RAID子系統30A為主控RAID子系統,因此,RAID子系統30A中之媒體區伺服器模組90A中設置有分別對應於該些虛擬卷VV0、VV1、VV2之有效性檢查序號總表12A(VV0)、12A(VV1)、12A(VV2),用以對其所接收到之一或多個子命令進行其有效性檢驗。其中,該些有效性檢查序號總表12A(VV0)、12A(VV1)、12A(VV2)中載有分別繫屬於虛擬卷VV0、VV1、VV2之媒體區ME及其VCSN最大值,例如:有效性檢查序號總表12A(VV0)中載有媒體區ME15、ME16、ME25、ME26、ME35、ME36及其VCSN最大值,分別是39、26、55、66、00、42。於本發明之一實施例中,將資料位置有效性表(Data location validity table)14設置於RAID子系統30之媒體區伺服器模組90中,因此,所有個別RAID子系統30中之媒體區伺服器模組90(例如:RAID子系統30A中之媒體區伺服器模組90A、RAID子系統30B中之媒體區伺服器模組90B、RAID子系統30C之媒體區伺服器模組90C)僅載有專屬其RAID子系統30之資料位置有效性表(Data location validity table)14中的每一媒體區ME中的LBA數值及VCSN最大值,同樣用以對其所接收到之一或多個子命令中的VCSN,進行子命令的有效性檢驗。依據第8圖所示之範例,媒體區伺服器模組90B中記載有資料位置有效性表14B中之媒體區ME21的VCSN最大值(21)、媒體區ME22的VCSN最大值(02)、媒體區ME23的VCSN最大值(53)、媒體區ME24的VCSN最大值(74)、媒體區ME25的VCSN最大值(55)、媒體區ME26的VCSN最大值(66),該媒體區伺服器模組90C中載有該資料位置有效性表14C中之媒體區ME31的VCSN最大值(31)、媒體區ME32的VCSN最大值(32)、媒體區ME33的VCSN最大值(91)、媒體區ME34的VCSN最大值(80)、媒體區ME35的VCSN最大值(00)、媒體區ME36的VCSN最大值(42)。
請參閱第3圖及第9圖,其中,第9圖係為本發明之具有複數個主控RAID子系統的儲存系統架構3之另一實施例之虛擬池(VP)、虛擬卷(VV)與媒體區(ME)關係之示意圖。同樣地,本實施例係使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法,且於本實施例中,設置有虛擬化層302的RAID子系統可被設定作為一主控RAID子系統30,而被主控RAID子系統30所管理的其他RAID子系統30係被稱為從屬RAID子系統30。如第3圖中所示,RAID子系統30A設置有虛擬化層302A,因此,RAID子系統30A被設定為虛擬池VP0(產生虛擬池VP0之虛擬卷VV0)之主控RAID子系統,而其它RAID子系統30B、30C則是虛擬池VP0的從屬RAID子系統;其中,虛擬池VP0中之虛擬卷VV0包含有媒體區ME11、ME12、ME21、ME22、ME31、ME32。類似地,RAID子系統30B設置有虛擬化層302B,因此,RAID子系統30B被設定為虛擬池VP1(產生虛擬池VP1之虛擬卷VV0)之主控RAID子系統,而其它RAID子系統30A、30C則是虛擬池VP1的從屬RAID子系統;其中,虛擬池VP1中之虛擬卷VV0包含有媒體區ME13、ME14、ME23、ME24、ME33、ME34。類似地,RAID子系統30C設置有虛擬化層302C,因此,RAID子系統30C被設定為虛擬池VP2(產生虛擬池VP2之虛擬卷VV0)之主控RAID子系統,而其它RAID子系統30A、30B則是虛擬池VP2的從屬RAID子系統;其中,虛擬池VP2中之虛擬卷VV0包含有媒體區ME15、ME16、ME25、ME26、ME35、ME36。
請參閱第3圖、第9圖及第10圖,其中,第10圖係為依據第9圖之儲存系統架構3之另一實施例之有效性檢查序號總表12、資料位置有效性表14、虛擬池(VP)與媒體區(ME)之間之關係的示意圖。為了讓主機10可以任意對RAID子系統30A、30B、30C發出主機命令,因此,該些RAID子系統30A、30B、30C中皆分別設置有OBLB模組40A、40B、40C,用以將來自主機10之主機命令剖析(parse)成為一或多個子命令後,再轉遞給對應的RAID子系統。例如:該些OBLB模組40A、40B、40C皆有分別對應於虛擬池VP0之虛擬卷VV0、虛擬池VP1之虛擬卷VV0、虛擬池VP2之虛擬卷VV0之資料位置表DLT0、DLT1、DLT2,其中,該些資料位置表DLT0、DLT1、DLT2係分別用以記錄虛擬池VP0生成之虛擬卷VV0、虛擬池VP1生成之虛擬卷VV0、虛擬池VP2生成之虛擬卷VV0中之資料分布位置資訊。依據本發明之一實施例,RAID子系統30A、30B、30C中之虛擬化層302A、302B、302C更可設置有各自專屬的資料位置有效性表14A、14B、14C,藉以記錄自身儲存資料的搬遷狀態(例如:資料移出)。由於該些RAID子系統30A、30B、30C分別為不同虛擬池VP0、VP1、VP2的主控RAID子系統,因此,該些RAID子系統30A、30B、30C中之媒體區伺服器模組90A、90B、90C皆設置有各自的有效性檢查序號總表12A、12B、12C,用以對其所接收到之來自於其他RAID子系統無法剖析(parse)的一或多個命令,進行處理、拆解,同時,該些媒體區伺服器模組90A、90B、90C亦分別載有專屬其RAID子系統30A、30B、30C之資料位置有效性表14中的每一媒體區ME中的LBA數值及VCSN最大值,同樣用以對其所接收到之一或多個子命令中的VCSN,進行子命令的有效性檢驗。依據本發明之使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之一實施例,在虛擬池VP0之虛擬卷VV0中,作為一從屬RAID子系統的RAID子系統30C,其媒體區伺服器模組90C中載有資料位置有效性表14C中之媒體區ME31的VCSN最大值(31)、媒體區ME32的VCSN最大值(32)、媒體區ME33的VCSN最大值(91)、媒體區ME34的VCSN最大值(80)、媒體區ME35的VCSN最大值(00)、媒體區ME36的VCSN最大值(42)。依據本發明之使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之一實施例,在虛擬池VP2之虛擬卷VV0中,作為一從屬RAID子系統的該RAID子系統30A,其媒體區伺服器模組90A中載有資料位置有效性表14A中之媒體區ME11的VCSN最大值(10)、媒體區ME12的VCSN最大值(17)、媒體區ME13的VCSN最大值(23)、媒體區ME14的VCSN最大值(44)、媒體區ME15的VCSN最大值(39)、媒體區ME16的VCSN最大值(26)。而於另一種實施方式中,該些媒體區伺服器模組90A、90B、90C係透過參考其RAID子系統30A、30B、30C之虛擬化層302A、302B、302C中所載的資料位置有效性表14中所載的媒體區ME、LBA數值及VCSN最大值,來進行子命令的有效性檢驗。
請參閱第3圖及第11圖,其中,第11圖係為本發明之具有複數個主控RAID子系統的儲存系統架構3之另一實施例,其中包含虛擬池(VP)、虛擬卷(VV)與媒體區(ME)關係之示意圖。同樣地,本實施例使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法,且於本實施例中,設置有虛擬化層302的RAID子系統可被設定作為主控RAID子系統30,而被主控RAID子系統30所管理的其他RAID子系統30稱為從屬RAID子系統30。如第3圖和第11圖中所示,RAID子系統30A中設置有虛擬化層302A,用以管理虛擬池VP0(其中呈現出虛擬卷VV0),因此,RAID子系統30A係為虛擬池VP0之主控RAID子系統,而其它RAID子系統30B、30C則對虛擬池VP0以及其虛擬卷VV0而言是從屬RAID子系統;其中,虛擬池VP0中之虛擬卷VV0包含有媒體區ME11、ME21、ME31。同樣地,RAID子系統30B中設置有虛擬化層302B,用以管理虛擬池VP1(其中呈現出虛擬卷VV0、VV1、VV2、VV3、VV4、VV5),因此,RAID子系統30B係為虛擬池VP1之主控RAID子系統,而其它RAID子系統30A、30C對虛擬池VP1以及其虛擬卷VV0、VV1、VV2、VV3、VV4、VV5而言是從屬RAID子系統;其中,虛擬池VP1中之虛擬卷VV0包含有媒體區ME12、ME22、ME32,虛擬池VP1中之虛擬卷VV1包含有媒體區ME13、ME14、ME23、ME33,虛擬池VP1中之虛擬卷VV2包含有媒體區ME24、ME34,虛擬池VP1中之虛擬卷VV3包含有媒體區ME15,虛擬池VP1中之虛擬卷VV4包含有媒體區ME16、ME25、ME35,以及虛擬池VP1中之虛擬卷VV5包含有媒體區ME26、ME36。此外,為了讓主機10可以任意對該些RAID子系統30A、30B、30C發出主機命令,因此,該些RAID子系統30A、30B、30C中皆分別設置有OBLB模組40A、40B、40C,用以將來自主機10之主機命令剖析(parse)成為一或多個子命令後,再轉遞給相對應的RAID子系統。以第11圖的實施例為例,OBLB模組40C有對應於虛擬池VP0中的虛擬卷VV0的資料位置表(Data Location Table, DLT) DLT00,以及有分別對應於虛擬池VP1中的虛擬卷VV0至VV5的資料位置表(Data Location Table, DLT)DLT10、DLT11、DLT12、DLT13、DLT14、DLT15;其中,資料位置表DLT00係用以記錄由虛擬池VP0形成之虛擬卷VV0相關之位址交互參照資訊,而資料位置表DLT10、DLT11、DLT12、DLT13、DLT14、DLT15係分別用以記錄由虛擬池VP1形成之虛擬卷VV0、VV1、VV2、VV3、VV4、VV5相關之位址交互參照資訊。
這裡,由第7圖、第8圖、第9圖、第10圖及第11圖中所例示的實施例可以瞭解到,一虛擬池VP可以依需要生成一或多個虛擬卷VV,而不限定一虛擬池VP僅能生成一個虛擬卷VV或是一虛擬池VP僅能生成特定數目的虛擬卷VV。
請參閱第3圖、第9圖、第10圖及第12圖,其中,第12圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡(load balance)功能之背景作業之一實施例的流程圖。於此,以使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之該儲存系統架構3為例子來說明。為了處理來自主機10之主機命令(例如:SCSI命令),RAID子系統30A(主控RAID子系統)會先掃描管理的媒體區(ME)以便得知與媒體區(ME)相關的組態/位置(configuration/location)以及資料分布等資訊,並據以產生一份用以記錄資料分布、媒體區(ME)屬性及其所隸屬之虛擬化層之表單。然後,所有的RAID子系統30(例如:做為主控RAID子系統之RAID子系統30A、做為從屬RAID子系統之RAID子系統30B、做為從屬RAID子系統之RAID子系統30C)會視需要及/或視狀況及/或週期性地發送一資料位置詢問命令(data location query command)至RAID子系統30A(主控RAID子系統),以詢問待存取目標資料的實體位置資料(步驟1201)。該資料位置詢問命令(data location query command)可以是,例如:利用小型電腦系統介面(Small Computer System Interface, SCSI)協定中,用以詢問資料儲存位置的一命令,但本發明之其它實施例不受限於此。該資料位置詢問命令包含有詢問虛擬卷識別碼 (Virtual Volume Identification,VV ID)、虛擬LBA、資料大小(size)、RAID識別碼(RAID identification, RAID ID)、媒體區識別碼(ME identification, ME ID)、實體LBA、區塊數量(Block size)及VCSN等內容。關於以上所稱「視需要」的一種實施態樣可以是:當一RAID子系統(例如:做為從屬RAID子系統之RAID子系統30B、做為從屬RAID子系統之RAID子系統30C)收到來自主機10之主機命令但卻無法處理該主機命令時,而需要向其做為主控RAID子系統之RAID子系統30A詢問待存取之目標資料的實體位置資料,以更新自身的資訊。關於以上所稱「視狀況」的一種實施態樣可以是:當一RAID子系統(例如:做為從屬RAID子系統之RAID子系統30B、做為從屬RAID子系統之RAID子系統30C)在其系統工作負載較輕、甚至是閒置時,為有效利用系統資源,因此趁空檔時向其做為主控RAID子系統之RAID子系統30A詢問最新的實體資料分布狀態,以更新自身的資訊。而關於以上所稱「週期性地」的一種實施態樣可以是:一RAID子系統(例如:做為從屬RAID子系統之RAID子系統30B、做為從屬RAID子系統之RAID子系統30C)以一固定的詢問頻率來詢問其做為主控RAID子系統之RAID子系統30A最新的實體資料分布狀態,以更新自身的資訊。
當RAID子系統30A(主控RAID子系統)收到資料位置詢問命令後,會回覆相關資訊給所有的RAID子系統(例如:回覆相關資訊給主控RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)或RAID子系統30C(從屬RAID子系統))(步驟1203)。這裡,該相關資訊包含有一資料位置描述碼(data location descriptor),而該資料位置描述碼另包含一位址交互參照資訊(location cross reference information),如:包含有VV ID (Virtual Volume Identification)、虛擬LBA、資料大小(size)、RAID識別碼(RAID ID)、媒體區識別碼(ME ID)、實體LBA、區塊數量(Block Size)及VCSN。之後,所有的RAID子系統(例如:RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)或RAID子系統30C(從屬RAID子系統))會根據位址交互參照資訊(location cross reference information)建立如第19A圖-第19D圖或第22圖所示之資料位置表(Data location table, DLT)於其自身的OBLO模組之中(例如:OBLO模組40A、OBLO模組40B、OBLO模組40C),以建立自身的OBLO模組之資料位置資訊(Data Location Information)。依據本發明之一實施例,RAID子系統30A為虛擬池VP0之虛擬卷VV0之主控RAID子系統,因此,RAID子系統30A(主控RAID子系統)會先掃描虛擬卷VV0所包含之媒體區ME11至ME12、ME21至ME22、ME31至ME32,以便得知與該些媒體區ME11至ME12、ME21至ME22、ME31至ME32相關的組態/位置(configuration/location)以及資料分布等資訊,並據以產生一份用以記錄資料分布、ME屬性及其所隸屬之虛擬化層之表單。然後,在虛擬池VP0之虛擬卷VV0中所有的RAID子系統(例如:RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)、RAID子系統30C(從屬RAID子系統))會視需要或視狀況或週期性地而發送一資料位置詢問命令(data location query command)至RAID子系統30A(主控RAID子系統),以詢問待存取目標資料的實體位置資料和該位址交互參照資訊(如第12圖中所示之該步驟1201),其中,該資料位置詢問命令係包含有詢問RAID識別碼(RAID ID)、媒體區識別碼(ME ID)、實體LBA、區塊數量(Block size)及VCSN等內容。當RAID子系統30A(主控RAID子系統)收到資料位置詢問命令後,會回覆相關資訊給該所有的RAID子系統(即RAID子系統30A、30B、30C)(如第12圖中所示之該步驟1203)。RAID子系統30A(主控RAID子系統)回覆的相關資訊包含有一資料位置描述碼(data location descriptor),其中另包含一位址交互參照資訊(location cross reference information),如:包含有RAID識別碼(RAID ID)、媒體區識別碼(ME ID)、實體LBA、區塊數量(Block Size)及VCSN。之後,所有的RAID子系統(即該些RAID子系統30A、30B、30C)會根據位址交互參照資訊(location cross reference information)建立如第19A圖-第19D圖或第22圖所示之資料位置表RA DLT0、RB DLT0、RC DLT0於其自身的OBLB模組40A、40B、40C中,以便週期性地或視狀況或視需要,將透過資料位置詢問命令所得到的位址交互參照資訊,用於在資料位置表(data location table, DLT)中建立資料位置資訊(Data Location Information)。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第一實施例的第13A圖與第13B圖,其中,第13A圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第一實施例的第一部分流程圖;第13B圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第一實施例的第二部分流程圖。由第一實施例的第13A圖之第一部分流程與第一實施例的第13B圖之第二部分流程結合而成之第一實施例流程,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第一實施例的流程圖。於此,以儲存系統架構3為例子作說明。依據本發明之一實施例,當身為從屬RAID子系統之RAID子系統30B(收到主機命令的RAID子系統)收到來自於該主機10之一主機命令(Host command)(又稱為「I/O要求」(I/O request))時(例如:SCSI命令)(步驟13001),會先判斷該主機命令是否為一存取命令(例如:讀命令(READ command)、寫命令(WRITE command))(步驟13003)。若是該主機命令為一讀寫命令(READ/WRITE command),則RAID子系統30B中(從屬RAID子系統)之OBLB模組40B會依據該主機命令來查詢其所繫屬的資料位置表(DLT)(步驟13009),以判斷在前述的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)中是否有相關的位址交互參照資訊(步驟13011)。若RAID子系統30B(從屬RAID子系統)的資料位置表(DLT) 中記錄之資料位置資訊(Data Location Information)中有相關於該主機命令的位址交互參照資訊,則RAID子系統30B(從屬RAID子系統)會根據相關於該主機命令的位址交互參照資訊來剖析(parse)該主機命令成為N個第一子命令(sub command)(又稱為「子輸出輸入要求」(sub-I/O request))後,再轉遞給相對應的RAID子系統進行處理(步驟13025),其中,N的數值可以為1或是比1還大的任一整數(例如:若N的數值為3,則表示該主機命令被拆解成為三個第一子命令)。依據本發明之一實施例,根據相關於主機命令的位址交互參照資訊,主機命令被剖析成為三個第一子命令(一第一子命令1、一第一子命令2及一第一子命令3,且該第一子命令1、該第一子命令2及該第一子命令3係分別被轉遞給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)及RAID子系統30C(從屬RAID子系統)來執行(步驟13025)。反之,若RAID子系統30B(從屬RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)中沒有相關於該主機命令的位址交互參照資訊,則RAID子系統30B(從屬RAID子系統)會將該主機命令轉送給RAID子系統30A(主控RAID子系統),再由該RAID子系統30A(主控RAID子系統)進一步處理(步驟13013),同時,因為RAID子系統30B(從屬RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)中沒有相關於該主機命令的位址交互參照資訊,所以RAID子系統30B(從屬RAID子系統)中之OBLB模組40B會向RAID子系統30A(主控RAID子系統)詢問有關該主機命令之位址交互參照資訊以更新自身的資料位置資訊(Data Location Information)(步驟13013)。然後,RAID子系統30A(主控RAID子系統)依據存放在該虛擬層302A之一虛擬對實體區段索引映射表(Virtual-to-Physical (V2P) section index mapping table,V2P Table)來處理、拆解該主機命令成為一或多個子命令並轉送給相對應之RAID子系統(步驟13015)來執行該一個或多個子命令(步驟13017)。之後,所有相對應的RAID子系統回傳執行結果給RAID子系統30A(主控RAID子系統)(步驟13019),再由RAID子系統30A(主控RAID子系統)匯集並回傳執行結果給RAID子系統30B(從屬RAID子系統)(步驟13021),再由RAID子系統30B(從屬RAID子系統)將執行結果回傳給主機10(步驟13023)。依據本發明之一實施例,RAID子系統30A(主控RAID子系統)把從RAID子系統30B(從屬RAID子系統)轉送過來的主機命令,剖析成一第一子命令1、一第一子命令2及一第一子命令3(如第13A圖之步驟13015),且該第一子命令1、該第一子命令2及該第一子命令3係分別被轉遞給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)及RAID子系統30C(從屬RAID子系統)來執行(如第13A圖之步驟13017)。之後,RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)及RAID子系統30C(從屬RAID子系統)分別將該第一子命令1、該第一子命令2及該第一子命令3的執行結果回傳給RAID子系統30A(主控RAID子系統)(如第13A圖之步驟13019),該RAID子系統30A(主控RAID子系統)回傳該第一子命令1、該第一子命令2及該第一子命令3的執行結果給RAID子系統30B(從屬RAID子系統)(如第13A圖之步驟13021)。然後,再由RAID子系統30B(從屬RAID子系統)將主機命令的執行結果回傳給主機10(如第13A圖之步驟13023)。而若在步驟13003中,判斷主機命令不為一讀寫命令,則RAID子系統30B(從屬RAID子系統)中之OBLB模組40B會將主機命令轉送給RAID子系統30A(主控RAID子系統),由RAID子系統30A(主控RAID子系統)來處理(步驟13005)。接著,RAID子系統30A(主控RAID子系統)會在處理過主機命令後,回傳處理結果給RAID子系統30B(收到主機命令的RAID子系統),再由RAID子系統30B(收到主機命令的RAID子系統)將處理結果通知主機10(步驟13007)。
請再次參閱第13A圖與第13B圖。在上述之第13A圖之步驟13025之後,主機命令已被拆解成為N個第一子命令並各別轉遞給相對應的RAID子系統進行處理。接下來的處理程序,係藉著節點A(第13A圖與第13B圖之步驟13027)進入第13B圖的流程。如上所述,因為有N個第一子命令各別轉遞給相對應的RAID子系統進行處理,因此可能會有一或多個對應第一子命令的處理程序並行運作,而第13B圖(步驟13029~步驟13037)所述只是該一或多個對應第一子命令的處理程序的其中之一。當某一相對應的RAID子系統收到第一子命令時,收到第一子命令之RAID子系統處理其所收到之第一子命令(步驟13029),首先判斷其所收到之第一子命令所內含之VCSN的有效性(步驟13031)(請參閱第13B圖)。若是RAID子系統判斷其所收到之第一子命令中的VCSN為一有效的VCSN,則RAID子系統會執行其所收到之第一子命令(步驟13033),然後RAID子系統再把其所收到之第一子命令的執行結果回傳給RAID子系統30B(收到主機命令的RAID子系統)(步驟13035),且RAID子系統30B(收到主機命令的RAID子系統)會等匯集到所有相對應的RAID子系統所回傳的第一子命令的執行結果後,再回傳主機命令的執行結果給主機10(步驟13037)。
請再次參閱第13B圖。若是步驟13031的判斷結果是:RAID子系統所收到之第一子命令中的VCSN為一無效的VCSN(步驟13031),則RAID子系統不會執行其所收到之第一子命令,而是將其所收到之第一子命令轉送給主控RAID子系統(RAID子系統30A)(步驟13039)。接著,主控RAID子系統(RAID子系統30A)會依據存放在其虛擬層302A之一虛擬對實體區段索引映射表(Virtual-to-Physical (V2P) section index mapping table,V2P Table)來處理、拆解其所收到之VCSN無效的第一子命令為M個第二子命令,並將M個第二子命令轉送給與其相對應之RAID子系統來執行(步驟13041);其中,M的數值可以為1或是比1還大的任一整數(例如:若M的數值為2,則表示第一命令被拆解成為二個第二子命令)。在收到第二子命令之RAID子系統執行其所收到之第二子命令(步驟13043)之後,收到第二子命令之RAID子系統回傳其第二子命令的執行結果給主控RAID子系統(RAID子系統30A)(步驟13045),主控RAID子系統(RAID子系統30A)再把收到的第二子命令的執行結果作一匯集後再回傳給原先收到該第一子命令之RAID子系統(步驟13047)。接著,原先收到第一子命令之RAID子系統把主控RAID子系統(RAID子系統30A)傳送過來的匯集結果回傳給收到主機命令的RAID子系統(RAID子系統30B)(步驟13049)。然後,RAID子系統30B(收到主機命令的RAID子系統)會等到匯集到所有第一子命令的執行結果後,再把主機命令的執行結果回傳給主機10(步驟13037)。舉例來說,依據本發明之一實施例,主機命令被RAID子系統30B(收到主機命令的RAID子系統)剖析成一第一子命令1、一第一子命令2、及一第一子命令3,並被分別轉送給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)、及RAID子系統30C(從屬RAID子系統)。其中,RAID子系統30C(從屬RAID子系統)判斷第一子命令3中的VCSN無效。因此,RAID子系統30C(從屬RAID子系統)不會執行其收到之第一子命令3,而是將第一子命令3轉遞給RAID子系統30A(主控RAID子系統)(如第13B圖之步驟13039)。RAID子系統30A(主控RAID子系統)會依據存放在其虛擬層302A之一虛擬對實體區段索引映射表(Virtual-to-Physical (V2P) section index mapping table,V2P Table)來處理、拆解第一子命令3成至少一第二子命令3後,並將至少一第二子命令3轉送給與其相對應之RAID子系統(例如:RAID子系統30B、RAID子系統30C)(步驟13041)。接著,收到第二子命令3之RAID子系統(例如:RAID子系統30B、RAID子系統30C)執行相對應第二子命令3(步驟13043)。執行完成之後,收到第二子命令3之RAID子系統(例如:RAID子系統30B、RAID子系統30C)把第二子命令3的執行結果回傳給RAID子系統30A(主控RAID子系統)(步驟13045),RAID子系統30A(主控RAID子系統)再把收到的第二子命令3的執行結果作一匯集後再回傳給收到第一子命令3之RAID子系統30C(步驟13047)。然後,RAID子系統30C再把主控RAID子系統(RAID子系統30A)傳送過來的匯集結果回傳給RAID子系統30B(收到主機命令的RAID子系統)。除此之外,因為主機命令係為被RAID子系統30B(收到主機命令的RAID子系統)剖析成一第一子命令1、一第一子命令2、及一第一子命令3(步驟13025),因此在此同時,接收到VCSN有效之第一子命令1的RAID子系統30A(主控RAID子系統)與接收到VCSN有效之第一子命令2的RAID子系統30B(從屬RAID子系統),亦分別執行第一子命令1與第一子命令2(步驟13033),並分別把第一子命令1的執行結果與第一子命令2的執行結果回傳給RAID子系統30B(收到主機命令的RAID子系統)(步驟13035)。最後,再由RAID子系統30B(收到主機命令的RAID子系統)把主機命令的執行結果(亦即,匯集第一子命令1的執行結果、第一子命令2的執行結果、與第二子命令3的執行結果)回傳給主機10(步驟13037)。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第二實施例的第13A圖與第13C圖,其中,第13A圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第二實施例的第一部分流程圖;第13C圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第二實施例的第二部分流程圖。由該第二實施例的第13A圖之第一部分流程與該第二實施例的第13C圖之第二部分流程結合而成之第二實施例流程,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第二實施例的流程圖,其中,因為第二實施例之第一流程與該第一實施例之第一流程一樣且皆使用第13A圖所例示之流程,因此有關於第二實施例的第13A圖之第一流程之詳細說明可參見上文中有關第13A圖的說明,於此不再贅述。以下僅對與第一實施例不同之第二實施例的第13C圖之第二部分流程,加以說明。同樣地,在上述之第13A圖之步驟13025之後,主機命令已被拆解成為N個第一子命令並轉遞給相對應的RAID子系統進行處理。接下來的處理程序,係藉著節點A(第13A圖與第13C圖之步驟13027)進入第13C圖的流程。如上所述,因為有N個第一子命令各別轉遞給相對應的RAID子系統進行處理,因此可能會有一或多個對應第一子命令的處理程序並行運作,而第13C圖(步驟13051~步驟13069)所述只是該一或多個對應第一子命令的處理程序的其中之一。當某一RAID子系統收到第一子命令時,收到第一子命令之RAID子系統會處理其所收到之第一子命令(步驟13051),首先判斷其所收到之第一子命令所內含之VCSN的有效性(步驟13053)(請參閱第13C圖)。若是RAID子系統判斷其所收到之第一子命令中的VCSN為一有效的VCSN,則RAID子系統會執行其所收到之第一子命令(步驟13055),然後,RAID子系統再把其所收到之第一子命令的執行結果回傳給RAID子系統30B(收到主機命令的RAID子系統)(步驟13057),以供RAID子系統30B(收到主機命令的RAID子系統)匯集其收到之第一子命令的執行結果並回傳給主機10(步驟13059)。
請再次參閱第13C圖。相反地,若是步驟13053的判斷結果是:RAID子系統所收到之第一子命令中的VCSN為一無效的VCSN,則RAID子系統不會執行其所收到之第一子命令,而是將其所收到之第一子命令轉送給主控RAID子系統(RAID子系統30A)(步驟13061)。接著,主控RAID子系統(RAID子系統30A)會依據存放在其虛擬層302A之一虛擬對實體區段索引映射表(Virtual-to-Physical (V2P) section index mapping table,V2P Table)來處理、拆解其所收到之VCSN無效的第一子命令為M個第二子命令,並將M個第二子命令轉送給與其相對應之RAID子系統(步驟13063)來執行。在收到第二子命令之RAID子系統執行其所收到之第二子命令(步驟13065)之後,收到第二子命令之RAID子系統回傳其第二子命令的執行結果給主控RAID子系統(RAID子系統30A)(步驟13067),主控RAID子系統(RAID子系統30A)再把收到的第二子命令的執行結果作一匯集後再回傳給收到主機命令的RAID子系統(RAID子系統30B)(步驟13069),以供收到主機命令的RAID子系統(RAID子系統30B)回傳其收到之執行結果給主機10(步驟13059)。舉例來說,依據本發明之一實施例,主機命令被該RAID子系統30B(收到主機命令的RAID子系統)剖析成一第一子命令1、一第一子命令2、及一第一子命令3,並被分別轉送給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)、及RAID子系統30C(從屬RAID子系統)。其中,RAID子系統30C(從屬RAID子系統)判斷第一子命令3中的VCSN無效。因此,RAID子系統30C(從屬RAID子系統)不會執行其收到之第一子命令3,而是將第一子命令3轉遞給RAID子系統30A(主控RAID子系統)(如第13C圖之步驟13061)。RAID子系統30A(主控RAID子系統)會依據存放在其虛擬層302A之一虛擬對實體區段索引映射表(Virtual-to-Physical (V2P) section index mapping table,V2P Table)來處理、拆解第一子命令3成至少一第二子命令3後,並將至少一第二子命令3轉送給與其相對應之RAID子系統(例如:RAID子系統30B)(步驟13063)。接著,收到第二子命令3之RAID子系統(例如:RAID子系統30B)執行第二子命令3(步驟13065)。執行完成之後,收到該第二子命令3之RAID子系統(例如:RAID子系統30B)把第二子命令3的執行結果回傳給RAID子系統30A(主控RAID子系統)(步驟13067),RAID子系統30A(主控RAID子系統)再把收到的第二子命令3的執行結果之一匯集結果回傳給RAID子系統30B(收到主機命令的RAID子系統)。除此之外,因為主機命令係為被RAID子系統30B(從屬RAID子系統)剖析成一第一子命令1、一第一子命令2、及一第一子命令3(步驟13025),因此在此同時,接收到VCSN有效之第一子命令1的RAID子系統30A與接收到VCSN有效之第一子命令2)的RAID子系統30B,亦會分別執行第一子命令1與第一子命令2(步驟13055),並分別把第一子命令1的執行結果與第一子命令2的執行結果回傳給RAID子系統30B(收到主機命令的RAID子系統)(步驟13057)。最後,再由RAID子系統30B(收到主機命令的RAID子系統)把主機命令的執行結果(亦即,匯集第一子命令1的執行結果、第一子命令2的執行結果、與第二子命令3的執行結果)回傳給主機10(步驟13059)。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第三實施例的第13A圖、第13D圖以及第13E圖,其中,第13A圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第三實施例的第一部分流程圖;第13D圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第三實施例的第二部分流程圖;第13E圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第三實施例的第三部分流程圖。由第13A圖所示之第一部分流程、第13D圖所示之第二部分流程、及第13E圖所示之第三部分流程結合而成之第三實施例,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第三實施例的流程圖。其中,因為第三實施例之第一流程與第一實施例之第一流程一樣,皆是使用第13A圖所例示之流程,因此有關於第三實施例之第一流程之詳細說明可參見上文中有關第13A圖的說明,於此不再贅述。以下僅對與第一實施例不同之以第13D圖表示之第三實施例的第二部分流程及以第13E圖表示之第三實施例的第三部分流程,加以說明。在上述之第13A圖之步驟13025之後,經由節點A(步驟13027)進入第13D圖的流程。在第13D圖所示之實施例中,有一或多個各自對應一第一子命令的程序並行運作。步驟13071-1至步驟13071-n標示該一或多個並行運作的程序,其各自對應第13A圖中拆解出來的N個第一子命令(例如:一第一子命令1、一第一子命令2、…、一第一子命令n)的其中之一。在每一並行運作的程序(步驟13071-1至步驟13071-n)中,相對應之RAID子系統收到該N個第一子命令的其中之一,然後判斷其收到之第一子命令所內含之VCSN是否有效;其中,第13D圖所示之n,其數值等於第13A圖所示之N的數值。相對應之RAID子系統(亦即,收到該第一子命令1之RAID子系統、收到該第一子命令2之RAID子系統、…,及收到該第一子命令n之RAID子系統)在根據子命令所含之VCSN而判斷其所收到之第一子命令中的有效性後,回報其判斷結果給收到主機命令的RAID子系統(步驟13071-1至步驟13071-n),以供收到主機命令的RAID子系統判斷後續進行步驟(步驟13073)。若在步驟13073中,收到主機命令的RAID子系統藉由所有相對應之RAID子系統的回報而判斷:N個第一子命令(第一子命令1、第一子命令2、…、第一子命令n)中的VCSN全部有效,則收到主機命令的RAID子系統會通知該些相對應之RAID子系統(亦即,收到第一子命令之RAID子系統)執行與其相對應之第一子命令(步驟13075)。該些收到第一子命令之RAID子系統執行其所收到的第一子命令,並回傳其執行執行結果給收到主機命令的RAID子系統(步驟13077)。然後,收到主機命令的RAID子系統匯整N個第一子命令(第一子命令1、第一子命令2、…、第一子命令n)的執行結果成主機命令的執行結果,再回傳給主機10(步驟13079)。
請參閱第13D圖與第13E圖。若在步驟13073中,收到主機命令的RAID子系統藉由所有相對應之RAID子系統的回報而判斷:N個第一子命令(第一子命令1、第一子命令2、…、第一子命令n)中的VCSN至少有一不被判斷為有效的VCSN,則會通知每一個相對應之RAID子系統(亦即,收到第一子命令之RAID子系統)不要執行其收到之第一子命令(步驟13081),接著流程藉由節點C(步驟13083)進入由第13E圖表示之第三實施例的第三部分流程。在上述步驟13081中,由於收到主機命令的RAID子系統通知各個相對應之RAID子系統(亦即,收到第一子命令之RAID子系統)不要執行與其相對應之第一子命令,所以,該些相對應RAID子系統(亦即,收到第一子命令之RAID子系統)全部都不執行其所收到之第一子命令。取而代之,收到主機命令的RAID子系統轉送主機命令給相對應虛擬卷VV之主控RAID子系統(該RAID子系統30A)(步驟13085)。主控RAID子系統(該RAID子系統30A)會在拆解主機命令成Q個第三子命令(例如:第三子命令1、第三子命令2、…、第三子命令q)後,轉送該Q個第三子命令(例如:第三子命令1、第三子命令2、…、第三子命令q)給相對應之RAID子系統(步驟13087),以供與該Q個第三子命令(例如:第三子命令1、第三子命令2、…、第三子命令q)相對應之RAID子系統(亦即,收到第三子命令之RAID子系統)執行與其相對應之第三子命令(例如:第三子命令1、第三子命令2、…、第三子命令q)(步驟13089);其中,第三子命令中所示之q,其數值等於第13E圖所示之Q的數值。接著,該些相對應之RAID子系統(亦即,收到第三子命令之RAID子系統)將其執行結果回傳給主控RAID子系統(RAID子系統30A)(步驟13091)。然後,主控RAID子系統(RAID子系統30A)匯集Q個第三子命令(第三子命令1、第三子命令2、…、第三子命令q)的執行結果並回傳給收到主機命令的RAID子系統30(步驟13093)。最後,收到主機命令的RAID子系統根據從主控RAID子系統接收到的執行結果,回傳該主機命令的執行結果給主機10(步驟13095)。舉例來說,依據本發明之一實施例,主機命令被RAID子系統30B接收並剖析成一第一子命令1、一第一子命令2及一第一子命令3,然後分別被轉送給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)、及RAID子系統30C(從屬RAID子系統),以分別供RAID子系統30A、RAID子系統30B、及RAID子系統30C判斷第一子命令1、第一子命令2、及第一子命令3中的VCSN是否有效。在此範例中,假設第一子命令3中的VCSN被RAID子系統30C判斷為無效,並將此第一子命令3中的VCSN判斷為無效的結果回報給RAID子系統30B(收到主機命令的RAID子系統)(步驟13071-1至步驟13071-n)。因此,RAID子系統30B(收到主機命令的RAID子系統)通知所有與第一子命令相對應的RAID子系統30A、30B、30C不要執行其所收到之第一子命令1、第一子命令2、及該第一子命令3(步驟13081)。取而代之, RAID子系統30B(收到主機命令的RAID子系統)轉送主機命令給RAID子系統30A(主控RAID子系統)(如第13E圖之步驟13085)。RAID子系統30A(主控RAID子系統)依據存放在其虛擬層302A之一虛擬對實體區段索引映射表(V2P Table),將主機命令拆解成一第三子命令1、一第三子命令2及一第三子命令3後,將該三個第三子命令分別轉送給RAID子系統30A、RAID子系統30B、及RAID子系統30C(如第13E圖之步驟13087)來執行(如第13E圖之步驟13089)。RAID子系統30A、RAID子系統30B、及RAID子系統30C分別執行完成該第三子命令1、該第三子命令2、及該第三子命令3後,會把其執行結果(例如:該RAID子系統30B處理該第三子命令2所得到之執行結果)回傳給RAID子系統30A(主控RAID子系統)(如第13E圖之步驟13091)。而RAID子系統30A(主控RAID子系統)再將所收到之第三子命令1、第三子命令2、及第三子命令3的執行結果回傳給RAID子系統30B(亦即,收到命令的RAID子系統)(如第13E圖之步驟13093)。最後,該RAID子系統30B(亦即,收到命令的RAID子系統)根據RAID子系統30A(主控RAID子系統)回傳的第三子命令執行結果,回傳主機命令的執行結果給主機10(如第13E圖之步驟13095)。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第四實施例的第13A圖、第13D圖以及第13F圖,其中,第13A圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第四實施例的第一部分流程圖;第13D圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第四實施例的第二部分流程圖;第13F圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第四實施例的第三部分流程圖。由第13A圖所示之第一部分流程、第13D圖所示之第二部分流程及第13F圖所示之第三部分流程結合而成之第四實施例流程,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之該第四實施例的流程圖。其中,因為第四實施例之第一流程與第一實施例之第一流程一樣皆是使用第13A圖所例示之流程,又,第四實施例之該第二流程與第三實施例之第二流程一樣皆是使用第13D圖所例示之流程,因此有關第四實施例之第一流程與第二流程之詳細說明,可參見上文中有關第13A圖與第13D圖的說明,於此不再贅述。以下僅對與第四實施例之第三部分流程的第13F圖加以說明。請參閱第13D圖與第13F圖。在上述第13D圖之步驟13083之後,經由節點C進入第13F圖之第四實施例的第三部分流程來執行後續之操作。前述第13D圖之步驟13081中,RAID子系統30B(收到主機命令的RAID子系統)通知各個相對應之RAID子系統(亦即,收到第一子命令之RAID子系統)不要執行其所收到之第一子命令。此時,RAID子系統30B(收到主機命令的RAID子系統)之OBLB模組40B(或是其它模組)向RAID子系統30A(主控RAID子系統)詢問主機命令所欲存取資料之相關資料位置資訊(Data Location Information),並藉以更新自身OBLB模組40中的資料位置表(DLT)(步驟13097)。之後,藉由第13F圖之節點E(步驟13099)回到第13A圖(代表第四實施例之第一部分流程)來執行後續之操作。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第五實施例的第13A圖、第13D圖、第13E圖以及第13G圖,其中,第13A圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第五實施例的第一部分流程圖;第13D圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第五實施例的第二部分流程圖;第13G圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第五實施例的第三部分流程圖;第13E圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第五實施例的第四部分流程圖。由第13A圖所示之第一部分流程、第13D圖所示之第二部分流程、第13G圖所示之第三部分流程、及第13E圖所示之該第四部分流程結合而成之第五實施例,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第五實施例的流程圖。其中,因為第五實施例之第一流程與第一實施例之第一流程一樣皆是使用第13A圖所例示之流程,且,第五實施例之第二流程與第三實施例之第二流程一樣皆是使用第13D圖所例示之流程,又,第五實施例之第四流程與第三實施例之第三流程一樣且皆使用第13E圖所例示之流程,因此有關於第五實施例之第一流程、第五實施例之第二流程、及第五實施例之第四流程之詳細說明,可參見上文中有關第13A圖、第13D圖、及第13E圖的說明,於此不再贅述。以下僅對第五實施例之第三部分流程的第13G圖加以說明。在第五實施例中,收到主機命令的RAID子系統(RAID子系統30B)另包含一計數器,用以計算第13D圖之步驟13081之執行次數。請參閱第13D圖與第13G圖。在上述第13D圖之步驟13083之後,經由節點C進入第13G圖之第五實施例的第三部分流程來執行後續之操作。於此實施例中,RAID子系統30B(收到主機命令的RAID子系統)將計數器所記錄之數值加1(步驟13101),之後跟一數值F進行比較(步驟13103)。若步驟13103的比較結果顯示:計數器所記錄之數值小於數值F,則RAID子系統30B(收到主機命令的RAID子系統)之OBLB模組40B(或是其它模組)向RAID子系統30A(主控RAID子系統)詢問主機命令所欲存取資料之相關資料位置資訊(Data Location Information),並藉以更新自身OBLB模組40中的資料位置表(DLT)(步驟13105)。之後,藉由第13G圖之節點E(步驟13099)回到第13A圖(代表第五實施例之第一部分流程)來執行後續之操作。而若步驟13103的比較結果顯示:計數器所記錄之數值不小於(大於或等於)該數值F,則藉由第13G圖之節點G(步驟13107)進入第13E圖(代表第五實施例之第四部分流程)來執行後續之操作。依據本發明之一實施例,該數值F可以為1或是比1還大的任一整數(例如:若F的數值為3,則表示允許執行三次第13D圖之該步驟13081)。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第六實施例的第14圖及第13B圖,其中,第14圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第六實施例的第一部分流程圖;第13B圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第六實施例的第二部分流程圖。由第14圖所示之第一部分流程及第13B圖所示之第二部分流程結合而成之第六實施例,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第六實施例的流程圖。其中,因為第六實施例之第二流程與第一實施例之第二流程一樣且皆使用第13B圖所例示之流程,因此有關於第六實施例之第二流程之詳細說明,可參見上文中有關第13B圖的說明,於此不再贅述。以下僅對第六實施例之第一部分流程的第14圖,加以說明。此第六實施例是以該儲存系統架構3為例子作說明。依據本發明之一實施例,當RAID子系統30B(收到主機命令的RAID子系統)收到來自於主機10之一主機命令時(例如:SCSI命令)(步驟1401),會先判斷該主機命令是否為存取命令(例如:讀命令(READ command)、寫命令(WRITE command))(步驟1403)。若是該主機命令不為一讀寫命令(READ/WRITE command),則RAID子系統30B中(收到主機命令的RAID子系統)之OBLB模組40B會將該主機命令轉送給RAID子系統30A(主控RAID子系統),由RAID子系統30A(主控RAID子系統)來處理(步驟1405)。接著,RAID子系統30A(主控RAID子系統)會在處理過該主機命令後,回傳處理結果給RAID子系統30B(收到主機命令的RAID子系統),再由RAID子系統30B(收到主機命令的RAID子系統)將處理結果通知主機10(步驟1407)。反之,若是該主機命令為一讀寫命令(READ/WRITE command),則RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B會依據該主機命令來查詢其所繫屬的資料位置表(DLT)(步驟1409),以判斷在該資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)是否有與該主機命令相關的位址交互參照資訊(步驟1411)。而若RAID子系統30B(收到主機命令的RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)沒有相關於該主機命令的位址交互參照資訊時,則RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B(或是其它模組)會向RAID子系統30A(主控RAID子系統)詢問位址交互參照資訊,以更新自身的資料位置資訊(Data Location Information)(步驟1413)。然後,RAID子系統30B(收到主機命令的RAID子系統)依據更新後的該資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)處理、拆解該命令成為P個第一子命令並轉送給相對應之RAID子系統(步驟1415)。而若RAID子系統30B(收到主機命令的RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)有相關於該主機命令的位址交互參照資訊,則RAID子系統30B(收到主機命令的RAID子系統)會直接處理、拆解該命令成為P個第一子命令並轉送給相對應之RAID子系統(步驟1415)。接著,承上的步驟1415,經由節點A(步驟13027)來到第13B圖,以執行第13B圖中所示之流程。此外,由於第六實施例中的第13B圖的流程已於前文介紹第一實施例時說明過了,因此不再重複敘述,請參考前文中有關第13B圖的說明。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第七實施例的第14圖及第13C圖,其中,第14圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第七實施例的第一部分流程圖;第13C圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第七實施例的第二部分流程圖。由第14圖所示之第一部分流程及第13C圖所示之第二部分流程結合而成之第七實施例,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第七實施例的流程圖。其中,因為第七實施例之第一流程與第六實施例之第一流程一樣皆是使用第14圖所例示之流程,又,第七實施例之第二流程與第二實施例之第二流程一樣且皆使用第13C圖所例示之流程,因此有關於第七實施例的第一流程與第二流程之詳細說明,可參見上文中有關第14圖與第13C圖的說明,於此不再贅述。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第八實施例的第14圖、第13D圖以及第13E圖,其中,第14圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第八實施例的第一部分流程圖;第13D圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第八實施例的第二部分流程圖;第13E圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第八實施例的第三部分流程圖。由第14圖所示之第一部分流程、第13D圖所示之第二部分流程、及第13E圖所示之第三部分流程結合而成之第八實施例,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第八實施例的流程圖。其中,因為第八實施例之第一流程與第六實施例之第一流程一樣且皆使用第14圖所例示之流程,又,第八實施例之第二流程與第三實施例之第二流程一樣且皆使用第13D圖所例示之流程,且,第八實施例之第三流程與第三實施例之第三流程一樣皆使用第13E圖所例示之流程,因此有關於第八實施例的第一流程、第二流程、與第三流程之詳細說明,可參見上文中有關第14圖、第13D圖、第13E圖的說明,於此不再贅述。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第九實施例的第14圖、第13D圖以及第13F圖,其中,第14圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第九實施例的第一部分流程圖;第13D圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第九實施例的第二部分流程圖;第13F圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第九實施例的第三部分流程圖。由第14圖所示之第一部分流程、第13D圖所示之第二部分流程、及第13F圖所示之第三部分流程結合而成之第九實施例,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之該第九實施例的流程圖。其中,因為第九實施例之第一流程與第六實施例之第一流程一樣且皆使用第14圖所例示之流程,又,第九實施例之第二流程與第三實施例之第二流程一樣且皆使用第13D圖所例示之流程,且,第九實施例之該第三流程與第四實施例之第三流程一樣且皆使用第13F圖所例示之流程,因此有關於第九實施例的第一流程、第二流程、與第三流程之詳細說明,可參見上文中有關第14圖、第13D圖、第13F圖的說明,於此不再贅述。
請參閱使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之用以例示本發明第十實施例的第14圖、第13D圖、第13E圖以及第13G圖,其中,第14圖係為本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第十實施例的第一部分流程圖;第13D圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第十實施例的第二部分流程圖;第13G圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第十實施例的第三部分流程圖;第13E圖係為依據本發明之一儲存系統架構中,以執行資料存取負載平衡功能之第十實施例的第四部分流程圖。由第14圖所示之第一部分流程、第13D圖所示之第二部分流程、第13G圖所示之第三部分流程、及第13E圖所示之第四部分流程結合而成之第十實施例,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之該第十實施例的流程圖。其中,因為第十實施例之第一流程與第六實施例之第一流程一樣且皆使用第14圖所例示之流程,又,第十實施例之第二流程13D與第三實施例之第二流程一樣且皆使用第13D圖所例示之流程,且,第十實施例之該第三流程與第五實施例之第三流程一樣皆使用第13G圖所例示之流程,且,第十實施例之第四流程與第三實施例之第三流程一樣且皆使用第13E圖所例示之流程,因此有關於第十實施例的第一流程、第二流程、第三流程、及第四流程之詳細說明,可參見上文中有關第13A圖、第13D圖及第13E圖的說明,於此不再贅述。
本發明之第一實施例、第二實施例、第三實施例、第四實施例、第五實施例、第六實施例、第七實施例、第八實施例、第九實施例和第十實施例充分說明了本發明在實施及運用上的彈性。此外,本發明之第一實施例、第二實施例、第三實施例、第四實施例、第五實施例、第六實施例、第七實施例、第八實施例、第九實施例和第十實施例,有關於VCSN有效性檢驗的操作細節(亦即,該第13B圖中之步驟13031、該第13C圖中之步驟13053與該第13D圖中之步驟13071-1至步驟13071-n),係被記載和詳細說明在第15圖與第16圖中。
由前述各個實施例可以知道,本發明係使用有效性檢查資訊(VCI)中之一特定實施方式(例如:有效性檢查序號(VCSN))來實現主機命令有效性驗證方法的作法。然而,有效性檢查資訊(VCI)並不僅限於以有效性檢查序號(VCSN)來加以實作。舉凡能用以識別每一媒體區(ME)之標示方式或命名方式,皆可以作為實作有效性檢查資訊(VCI)的作法。依據本發明之一實施例,有效性檢查資訊(VCI)可以以一組英文字母來實作,例如:A、B、C、D、…、Z、AA、AB、…、AZ、BA、….、BZ、CA、…、ZA、ZB、…、ZZ、AAA、AAB、…、AZZ、…、ZZZ、AAAA、…、ZZZZ、AAAAA、…等。依據本發明之另一實施例,有效性檢查資訊(VCI)可以以一組符號來實作,例如:阿爾法 (Alpha, α)、貝塔 (Beta, β)、….等。依據本發明之又一實施例,有效性檢查資訊(VCI)可以以一組數字來實作,例如:有效性檢查序號(VCSN)。依據本發明之再一實施例,有效性檢查資訊(VCI)可以以一組英文字母、一組符號及一組數字中之至少二者的組合排列來加以實作,例如:A0000000、A0000001、A0000002、…、A9999999、B0000000、B0000001、…等,或00000000A、00000001A、00000002 A、…、99999999A、00000000B、00000001B、…等,或A000α、A001α、A002α、…、A999α、A000β、A001β、A002β、…、A999β、A000γ、…、A999γ、…、B000α、B001α、…等。因此,一RAID子系統接收到來自主機10之一主機命令,並剖析主機命令成為至少一子命令,且轉送給相對應之RAID子系統。該相對應之RAID子系統接收到該至少一子命令中之其一之後,比對其所接收到之子命令中的有效性檢查資訊(VCI)是否與自身媒體區伺服器模組90中的有效性檢查資訊一致;若為一致,則RAID子系統執行該子命令;而若不一致,則RAID子系統不執行該子命令,且依據第13A圖-第13E圖與第14圖所例示之執行資料存取負載平衡功能之實施方式來處理。
此外,因為用以識別一媒體區(ME)之有效性檢查資訊(VCI)(例如,有效性檢查序號(VCSN))的標示方式或命名方式的可識別數量是有其限制的,所以必然會因為有限的可識別數量而出現「繞回」(wrap around)的現象,亦即,之前出現過的有效性檢查資訊(VCI)(例如,有效性檢查序號(VCSN))的標示表示/命名表示又再出現一次。舉例來說,一4位元的有效性檢查序號(VCSN)是從0001起算,假設在時間點T0時,一媒體區(ME)之所有LBA所對應之有效性檢查序號(VCSN)的最大值為0011,此一數值會隨著該媒體區(ME)中之任一LBA資料的搬遷而逐次累加1。而到時間點T1時,該媒體區(ME)中之LBA資料的搬遷次數達到1101次,則該媒體區(ME)之所有LBA所對應之有效性檢查序號(VCSN)的最大值會顯示為0000。在以上的例子中,在時間點T0時(較早)該媒體區(ME)所對應的有效性檢查序號(VCSN)的最大值比在時間點T1時(較晚)之該媒體區(ME)所對應的有效性檢查序號(VCSN)的最大值還來得較大,如此當流程進入第15圖之步驟1501(描述於後)及第16圖之步驟1603(描述於後)的判斷時,可能會發生誤判的狀況。因此,為了避免因為VCSN的「繞回」現象而在流程中發生誤判的情形,在每一虛擬卷VV之主控RAID子系統會賦予一壽命(lifetime)給有效性檢查資訊(VCI)(例如:VCSN),並由每一虛擬卷VV之主控RAID子系統或從屬RAID子系統監控有效性檢查資訊(VCI)(例如:VCSN)是否在有效壽命(valid lifetime)內。其中,有效壽命可以是一個事先定義的值,而且有效性檢查資訊(VCI)(例如:VCSN)的壽命的開始時點必須自被發出之時間點開始起算而非從回應收到之時間點起算。倘若主控RAID子系統或從屬RAID子系統發現有效性檢查資訊(VCI)(例如:VCSN)不是在其有效壽命(valid lifetime)內,就將原先有效性檢查資訊(VCI)(例如:VCSN)視為無效並重新更新有效性檢查資訊(VCI)(例如:VCSN)。依據本發明之一實施例,在時間點T0時,一媒體區(ME)中之LBA所對應之有效性檢查序號(VCSN)以4位元表示,且每秒有10個資料搬遷操作,則該媒體區(ME)之LBA所對應之有效性檢查序號(VCSN)序號的有效壽命係為小於(2**4)/10中的某一值。如此,即可解決因為「繞回」現象而會在第15圖之步驟1501及第16圖之步驟1603發生誤判的情形。
請參閱第15圖,其係為本發明之儲存系統架構之資料存取負載平衡功能中使用有效性檢查資訊(VCI)之一特定實施方式(例如:有效性檢查序號(VCSN))來驗證子命令有效性之第一實施例之子命令有效性驗證方法的流程圖1500。該流程圖1500係用以說明第13B圖中之步驟13031、第13C圖中之步驟13053、與第13D圖中之步驟13071-1至步驟13071-n的操作細節。當收到主機命令的RAID子系統(RAID子系統30B)接收到來自主機10之一主機命令時,會依據第13A圖或第14圖中所示之流程來加以處理,而將主機命令剖析成一第一子命令1、一第一子命令2、及一第一子命令3,然後將該些第一子命令分別轉遞給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)、及RAID子系統30C(從屬RAID子系統)。當RAID子系統30C接收到第一子命令3時,RAID子系統30C之媒體區伺服器模組90C會先解讀第一子命令3欲存取的相關媒體區(ME)並判斷第一子命令3攜帶之VCSN數值是否小於等於有效性檢查序號表14C中相關媒體區(ME)之所有對應VCSN的最大值(步驟1501)。倘若步驟1501的判斷結果為否(亦即,第一子命令3攜帶之VCSN數值不是小於等於有效性檢查序號表14C中相關媒體區(ME)之所有對應VCSN的最大值),則表示第一子命令3中之VCSN非為一有效的VCSN,故第一子命令3會被視為一無效命令(步驟1509)。據此,RAID子系統30C(從屬RAID子系統)不會執行第一子命令3,然後依照第13B圖、第13C圖或第13D圖所例示之流程的其中之一來處理第一子命令3。倘若步驟1501的判斷結果為是(亦即,第一子命令3攜帶之VCSN數值小於等於有效性檢查序號表14C中相關媒體區(ME)之所有對應VCSN的最大值),則再進一步判斷:有效性檢查序號表14C中具有相關媒體區(ME)的項目中是否有跟第一子命令3中之LBA數值相同的LBA項目(步驟1503)。若步驟1503的判斷結果為否(亦即,有效性檢查序號表14C中具有相關媒體區(ME)的項目中沒有與第一子命令3中之LBA數值相同的LBA項目),則表示與該LBA相對應的資料沒有搬動過,因此有效性檢查序號表14C中沒有記錄相關訊息。據此,第一子命令3中之VCSN會被視為一有效的VCSN,故第一子命令3為一有效命令(步驟1507)。據此,RAID子系統30C(從屬RAID子系統)會依照第13B圖、第13C圖所例示之流程的其中之一而直接執行第一子命令3,或是依照第13D圖及第13E圖所例示之流程的其中之一來對第一子命令3進行後續處理。若步驟1503的判斷結果為是(亦即,有效性檢查序號表14C中具有相關媒體區(ME)的項目中有與第一子命令3中之LBA數值相同的LBA項目),如此表示與該LBA相對應的資料有搬動過,接下來會更進一步判斷:第一子命令3攜帶之VCSN數值是否大於等於相關媒體區(ME)中該LBA項目所對應之VCSN數值(步驟1505)。若步驟1505的判斷結果為是(亦即,第一子命令3攜帶之VCSN數值大於等於相關媒體區(ME)中該LBA項目所對應之VCSN數值),則第一子命令3中之VCSN會被視為一有效VCSN,故第一子命令3為一有效命令(步驟1507)。據此,該RAID子系統30C會直接執行第一子命令3。反之,若步驟1505的判斷結果為否(亦即,第一子命令3攜帶之VCSN數值不大於等於相關媒體區(ME)中該LBA項目所對應之VCSN數值),則第一子命令3中之VCSN會被視為一無效VCSN,故第一子命令3為一無效命令(步驟1509)。據此,RAID子系統30C不會執行第一子命令3,並將第一子命令3轉送給RAID子系統30A(主控RAID子系統)來處理。
請參閱第16圖,其係為本發明之儲存系統架構之資料存取負載平衡功能中使用有效性檢查序號(VCSN)來驗證子命令有效性之第二實施例之子命令有效性驗證方法的流程圖1600。該流程圖1600係用以說明第13B圖中之步驟13031、第13C圖中之步驟13053、與第13D圖中之步驟13071-1至步驟13071-n的操作細節。在本發明之儲存系統架構之資料存取負載平衡功能中用以驗證子命令有效性之該第二實施例中,考量由主控RAID子系統30所剖析而得之子命令,一定是正確的子命令。這是因為當主控RAID子系統30(例如:RAID子系統30A)先後分別收到由其他從屬RAID子系統30(例如:RAID子系統30B及該RAID子系統30C)轉送過來之一主機命令B、一主機命令C時,相關的媒體區(ME)正好在執行資料遷徙作業或是正要開始執行資料遷徙作業,則RAID子系統30A(主控RAID子系統30)會先排序(enqueue)主機命令B、主機命令C,以供後續處理。依據本發明之一實施例,因為RAID子系統30A(主控RAID子系統)先接收到由RAID子系統30B(從屬RAID子系統)轉送過來之主機命令B,且若RAID子系統30A(主控RAID子系統30)是採用「先進先出」方式(First In First Out, FIFO)處理佇列(queue)上等待之命令,如此主機命令B之處理次序會排序(enqueue)在主機命令C之前。當資料遷徙作業執行完畢,RAID子系統30A(主控RAID子系統)依照先前排序(enqueue)的順序,依序處理主機命令B、主機命令C。因為RAID子系統30A(主控RAID子系統)管控主機命令B、主機命令C所要存取資料之虛擬卷(Virtual Volume, VV)及映射成該虛擬卷(Virtual Volume, VV)之虛擬池(Virtual Pool, VP);也就是說,RAID子系統30A(主控RAID子系統)掌握相關資料的動向,也必定知道主機命令B、主機命令C所要存取資料之虛擬位址與正確實體位址的對應關係。因此,經由RAID子系統30A(主控RAID子系統)所剖析而得之子命令必然是正確無誤。據此,於本發明之一實施例,只要是經由主控RAID子系統所剖析而得之子命令,其會被賦予一特權VCSN (privilege VCSN),而特權VCSN被編號為較特殊的保留代碼(例如0000、1111但不受限於此),因此,各個RAID子系統30之媒體區伺服器模組90會將具有此特權VCSN的子命令直接被視為一有效命令。亦即,當各個RAID子系統30之媒體區伺服器模組90收到此具有特權VCSN的子命令時,即可得知此具有特權VCSN的子命令係為主控RAID子系統30所剖析且一定為一有效子命令。請參考第16圖,當RAID子系統30B(從屬RAID子系統)接收到來自主機10之一主機命令時,會依據第13A圖或第14圖中所示之流程來加以處理,而將主機命令剖析成一第一子命令1、一第一子命令2及一第一子命令3,然後將該些第一子命令分別轉遞給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)、及RAID子系統30C(從屬RAID子系統)。接著,當RAID子系統30C接收到第一子命令3時,RAID子系統30C之媒體區伺服器模組90C會先判斷第一子命令3中之VCSN數值是否為一特權VCSN(步驟1601);若步驟1601的判斷結果為是,則第一子命令3為一有效命令(步驟1609);若步驟1601的判斷結果為否,再判斷第一子命令3攜帶之VCSN數值是否小於等於有效性檢查序號表14C中相關媒體區(ME)之所有對應VCSN的最大值(步驟1603)。倘若步驟1603的判斷結果為否(亦即,第一子命令3攜帶之VCSN數值不是小於等於有效性檢查序號表14C中相關媒體區(ME)之所有對應VCSN的最大值),則表示第一子命令3中之VCSN非為一有效的VCSN,故第一子命令3會被視為一無效命令(步驟1611)。據此,RAID子系統30C(從屬RAID子系統)不會執行第一子命令3,並將第一子命令3轉送給該RAID子系統30A(主控RAID子系統)來處理。倘若步驟1603的判斷結果為是(亦即,第一子命令3攜帶之VCSN數值小於等於該有效性檢查序號表14C中相關媒體區(ME)之所有對應VCSN的最大值),則再進一步判斷:有效性檢查序號表14C中具有相關媒體區(ME)的項目中是否有跟第一子命令3中之LBA數值相同的LBA項目(步驟1605)。若步驟1605的判斷結果為否(亦即,有效性檢查序號表14C中具有相關媒體區(ME)的項目中沒有與第一子命令3中之LBA數值相同的LBA項目),則表示與該LBA相對應的資料沒有搬動過,因此有效性檢查序號表14C中沒有記錄相關訊息。據此,第一子命令3中之VCSN會被視為一有效的VCSN,故故第一子命令為一有效命令(步驟1609)。據此,RAID子系統30C(從屬RAID子系統)會直接執行第一子命令3。若步驟1605的判斷結果為是(亦即,有效性檢查序號表14C中具有相關媒體區(ME)的項目中有與第一子命令3中之LBA數值相同的LBA項目),如此表示與該LBA相對應的資料有搬動過,接下來會更進一步判斷:第一子命令3攜帶之VCSN數值是否大於等於相關媒體區(ME)中該LBA項目所對應之VCSN數值(步驟1607)。若步驟1607的判斷結果為是(亦即,第一子命令3攜帶之VCSN數值大於等於相關媒體區(ME)中該LBA項目所對應之VCSN數值),則第一子命令3中之VCSN會被視為一有效VCSN,故第一子命令3為一有效命令(步驟1609)。據此,該RAID子系統30C會直接執行第一子命令3。反之,若步驟1607的判斷結果為否(亦即,第一子命令3攜帶之VCSN數值不大於等於相關媒體區(ME)中該LBA項目所對應之VCSN數值),則第一子命令3中之VCSN會被視為一無效VCSN,故第一子命令3為一無效命令(步驟1611)。據此,RAID子系統30C(從屬RAID子系統)不會執行第一子命令3,並將第一子命令3轉送給RAID子系統30A(主控RAID子系統)來處理。
請參閱第17圖、第18圖及第19A圖-第19D圖,其中第17圖係為本發明之儲存系統架構之資料存取負載平衡功能之命令轉遞之第一示意圖;第18圖係為本發明之儲存系統架構之資料存取負載平衡功能之命令轉遞之第二示意圖;第19A圖-第19D圖係用以實現第17圖所示的該示意圖、第18圖所示的該示意圖之資料存取負載平衡功能之使用有效性檢查序號(VCSN)來實現主機命令有效性驗證方法之資料位置表(DLT)的內部資料變遷之一示意圖。於此,在第17圖所示的該第一示意圖、第18圖所示的該第二示意圖中,係以第3圖的該儲存系統架構3為例子作說明。
請參閱第17圖及第19A圖,其中第19A圖顯示出每一個RAID子系統的資料位置表(DLT)的所有欄位。在本實施例中,以前述的實施例做說明。一剛開始開啟(switch on)本發明的所有的RAID子系統時,RAID子系統30A(主控RAID子系統)之OBLB模組40A、RAID子系統30B(從屬RAID子系統)之OBLB模組40B及RAID子系統30C(從屬RAID子系統)之OBLB模組40C中之資料位置表(例如:RA DLT0、RA DLT1、RA DLT2、RB DLT0、RB DLT1、RB DLT2、RC DLT0、RC DLT1及RC DLT2)皆還未儲存有任何的資料位置資訊(Data Location Information)(如第19A圖所示),其中,資料位置表RA DLT0、RA DLT1、RA DLT2、RB DLT0、RB DLT1、RB DLT2、RC DLT0、RC DLT1、RC DLT2係用以讓RAID子系統30A(主控RAID子系統)之該OBLB模組40A、RAID子系統30B(從屬RAID子系統)之OBLB模組40B及RAID子系統30C(從屬RAID子系統)之OBLB模組40C用來分別地儲存與該虛擬卷VV0、VV1、VV2中之資料分布狀態相關之資料位置資訊(Data Location Information)。
請參閱第17圖及第19B圖,其中第19B圖顯示出資料位置表RA DLT0、資料位置表RB DLT0及資料位置表RC DLT0皆未儲存有任何與虛擬卷VV0之資料分布狀態有關的資料位置資訊(Data Location Information)。因此,當RAID子系統30B(從屬RAID子系統)中之OBLB模組40B收到來自主機10的一第一主機命令(例如該第一主機命令之虛擬位址/大小為:VV ID=VV0, LBA=0, Size=20000),且判斷該第一主機命令為一讀寫命令後(步驟1303或步驟1403),會依照第13A圖的步驟1311或第14圖的步驟1411之流程來判斷該資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)是否有與該第一主機命令相關的位址交互參照資訊,以便剖析該第一主機命令。因為資料位置表RB DLT0中記錄之資料位置資訊(Data Location Information)未有任何與虛擬卷VV0有關的資訊,所以RAID子系統30B(從屬RAID子系統)中之OBLB模組40B確定無法剖析該第一主機命令。此時,則如第13A圖之步驟13013所示,透過第3圖所示之第二通道CH2、交換器15及第一通道CH1,將該第一主機命令轉送給與該第一主機命令所繫屬之該虛擬卷VV0中擔任主控角色之RAID子系統30A來處理。因為RAID子系統30A(主控RAID子系統)是擔任虛擬卷VV0之主控角色,故在收到該第一主機命令後,有能力將該第一主機命令剖析成一第一子命令1及一第一子命令2,並透過第3圖所示之第一通道CH1、交換器15、第二通道CH2及第三通道CH3,將該第一子命令1及該第一子命令2分別轉遞給RAID子系統30B(從屬RAID子系統)及RAID子系統30C(從屬RAID子系統)來執行(如第13A圖之步驟13015)。同時,RAID子系統30B(從屬RAID子系統)之OBLB模組40B向RAID子系統30A(主控RAID子系統)之虛擬化層302A詢問有關於該第一主機命令之位址交互參照資訊(VV ID=VV0, LBA=0, Size=20000是對應至RAID ID=RB, ME ID=ME22, LBA=20000, Block Size=10000, VCSN=11及RAID ID=RC, ME ID=ME32, LBA=10000, Block Size=10000, VCSN=02),以更新自身(RAID子系統30B)之資料位置表RB DLT0,包含其中所含的資料位置資訊(Data Location Information)。如此,可使本身的資料位置表RB DLT0儲存有該第一主機命令的位址交互參照資訊以待下一次之用,如第19C圖中的資料位置表RB DLT0所示。爾後,若RAID子系統30B(從屬RAID子系統)再接收到來自該主機10之具有相同虛擬位置的一讀寫命令時,RAID子系統30B(從屬RAID子系統)之OBLB模組40B即可透過更新後的資料位置表RB DLT0中之資料位置資訊(Data Location Information),如第19C圖所示,直接拆解該讀寫命令成為一或多個讀寫子命令,並轉送該些讀寫子命令給對應的RAID子系統來執行而不需要再交由RAID子系統30A(主控RAID子系統)來處理。接著,請參閱第18圖。當RAID子系統30A(主控RAID子系統)之OBLB模組40A接收到來自主機10之一第二主機命令(例如該第二主機命令之虛擬位址/大小為:VV ID=VV0, LBA=20000, Size=30000),且判斷該第二主機命令為一讀寫命令(步驟1303或步驟1403),則依照第13A圖的步驟1311或第14圖的步驟1411之流程來判斷是否有剖析該第二主機命令之能力。不過於此時,由於RAID子系統30A(主控RAID子系統)之資料位置表RA DLT0中記錄之資料位置資訊(Data Location Information)未有與該第二主機命令(VV ID=VV0, LBA=20000, Size=30000)相關的資訊(請參考第19C圖),故如第13A圖之步驟13013所示,RAID子系統30A(主控RAID子系統)之OBLB模組40A會將該第二主機命令直接地交給與該第二主機命令所繫屬之該虛擬卷VV0中擔任主控角色之主控RAID子系統之虛擬化層(亦即,RAID子系統30A之虛擬化層302A),由其進行後續之處理。也就是,因為RAID子系統30A(主控RAID子系統)在虛擬卷VV0中擔任主控角色,故在收到該第二主機命令後,有能力將該第二主機命令剖析成一第二子命令1、一第二子命令2及一第二子命令3,並透過第3圖所示之第一通道CH1、交換器15、第二通道CH2及第三通道CH3,將該第二子命令1、該第二子命令2及該第二子命令3分別轉遞給RAID子系統30A(主控RAID子系統)、RAID子系統30B(從屬RAID子系統)及RAID子系統30C(從屬RAID子系統)來執行(如第13A圖之步驟13015)。
然後,RAID子系統30A(主控RAID子系統)之OBLB模組40A會向RAID子系統30A(主控RAID子系統)之虛擬化層302A詢問與該第二主機命令(VV ID=VV0, LBA=20000, Size=30000)相關之位址交互參照資訊(VV ID= VV0, LBA=20000, Size=30000是對應至RAID ID=RA, ME ID=ME11, LBA=07000, Block Size=10000, VCSN=07、RAID ID=RB, ME ID=ME21, LBA=20000, Block Size=10000, VCSN=52及RAID ID=RC, ME ID=ME31, LBA=30000, Block Size=10000, VCSN=31)。之後,即根據詢問到的位址交互參照資訊更新本身的資料位置表RA DLT0中記錄之資料位置資訊(Data Location Information),如第19D圖中的資料位置表RA DLT0所示。之後,如果RAID子系統30A之OBLB模組40A再接收到來自主機10之具有相同虛擬位置的另一讀寫命令時,則RAID子系統30A(主控RAID子系統)之OBLB模組40A就可以透過更新後的資料位置表RA DLT0中記錄之資料位置資訊(Data Location Information),直接拆解該讀寫命令成一或多個讀寫子命令,並直接轉送該些讀寫子命令給對應的RAID子系統來執行,而不需要再交由RAID子系統30A(主控RAID子系統)之該虛擬化層302A處理。
此外,第19A圖-第19D圖之所有的該資料位置表 (DLTs)中VCSN欄位,是可選擇的(optional),可以視需要而移除。以第19D圖為例,移除該資料位置表RA DLT0中的VCSN欄位、該資料位置表RB DLT0中的VCSN欄位及該資料位置表RC DLT0中的VCSN欄位後,即如第22圖所示。也就是說,第19A圖-第19D圖和第22圖之間的不同,是在於第22圖的所有的DLT皆不包含有VCSN欄位,故有關於第22圖的詳細說明,請參考第19A圖-第19D圖,在此不再多做說明。因此,第22圖係為本發明之儲存系統架構之用以實現資料存取負載平衡功能之資料位置表之第五實施例和第六實施例的示意圖。
請參閱第20圖和第22圖,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第十一實施例的流程圖,其中前述第一至第十實施例與第十一實施例之間主要不同之處是:在第十一實施例中,所有的資料位置表(DLTs)中沒有VCSN欄位,亦即不考慮驗證VCSN值之有效性,如第22圖所示。於此,同樣以該儲存系統架構3為例子做說明。請參考第20圖,當RAID子系統30B(收到主機命令的RAID子系統且為一從屬RAID子系統)收到來自於主機10之一主機命令時(例如:SCSI命令)(步驟2001),會先判斷該主機命令是否為存取命令(例如:讀命令(READ command)、寫命令(WRITE command))(步驟2003)。若在步驟2003中,判斷該主機命令不是一讀寫命令,則RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B會將該主機命令轉送給RAID子系統30A(主控RAID子系統),由RAID子系統30A(主控RAID子系統)來進一步處理(步驟2005)。接著,RAID子系統30A(主控RAID子系統)會在處理過該主機命令後,回傳處理結果給RAID子系統30B(收到主機命令的RAID子系統),再由RAID子系統30B(收到主機命令的RAID子系統)將處理結果通知該主機10(步驟2007)。而若在步驟2003中,判斷該主機命令為一讀寫命令(READ/WRITE command),則該RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B會依據該主機命令來查詢其所繫屬的資料位置表(DLT)(步驟2009),以判斷在該資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)是否有與該主機命令相關的資訊(步驟2011)。
若RAID子系統30B(收到主機命令的RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)沒有與該主機命令相關的資訊,則RAID子系統30B(收到主機命令的RAID子系統)會將該主機命令轉送給RAID子系統30A(主控RAID子系統),再由RAID子系統30A(主控RAID子系統)進一步處理(步驟2013),同時,因為RAID子系統30B(收到主機命令的RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)沒有與該主機命令相關的資訊,所以RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B會向RAID子系統30A(主控RAID子系統)詢問位址交互參照資訊以更新自身的資訊(例如:資料位置資訊(Data Location Information))(步驟2013)。然後,RAID子系統30A(主控RAID子系統)依據存放在該虛擬層302A之一V2P表來拆解該主機命令成為一或多個子命令並轉送給相對應之RAID子系統(步驟2015)來執行該一個或多個子命令(步驟2017)。之後,所有相對應的RAID子系統回傳執行結果給RAID子系統30A(主控RAID子系統)(步驟2017),再由RAID子系統30A(主控RAID子系統)回傳執行結果給RAID子系統30B(收到主機命令的RAID子系統)(步驟2019),再由RAID子系統30B(收到主機命令的RAID子系統)將執行結果回傳給該主機10(步驟2027)。
反之,若RAID子系統30B(收到主機命令的RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)有與該主機命令相關的資訊,則RAID子系統30B(收到主機命令的RAID子系統)之OBLB模組40B會根據相關本身的資料位置資訊(Data Location Information)來剖析(parse)該主機命令成為一或多個子命令(例如:子命令1、子命令2、…、子命令n),之後,再轉遞該些子命令給相對應的RAID子系統(步驟2021)。所有相對應的RAID子系統在收到與其相關之子命令後,會直接執行與其相關之子命令(步驟2023),並將執行結果回傳給RAID子系統30B(收到主機命令的RAID子系統)(步驟2025)。最後,由RAID子系統30B(收到主機命令的RAID子系統)匯總該些子命令的執行結果為一主執行結果,並將該主執行結果回傳給主機10(步驟2027)
請參閱第21圖和第22圖,其係為本發明之儲存系統架構中,執行此資料存取負載平衡功能之第十二實施例的流程圖,其中前述第一至第十實施例與第十二實施例之間主要不同之處是:在本實施例中,所有的資料位置表(DLT)中沒有VCSN欄位,即不考慮驗證VCSN值之有效性。於此,同樣以該儲存系統架構3為例子作說明。請參考第21圖,當該RAID子系統30B(收到主機命令的RAID子系統且為一從屬RAID子系統)收到來自於主機10之一主機命令時(例如:SCSI命令)(步驟2101),會先判斷該主機命令是否為存取命令(例如:讀命令(READ command)、寫命令(WRITE command))(步驟2103)。若在步驟2103中,判斷該主機命令不為一讀寫命令,則該RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B會將該主機命令轉送給RAID子系統30A(主控RAID子系統),由RAID子系統30A(主控RAID子系統)來處理(步驟2105)。接著,RAID子系統30A(主控RAID子系統)會在處理過該主機命令後,回傳處理結果給RAID子系統30B(收到主機命令的RAID子系統),再由RAID子系統30B(收到主機命令的RAID子系統)將處理結果通知主機10(步驟2107)。而若在步驟2103中,判斷該主機命令為一讀寫命令(READ/WRITE command),則RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B會依據該主機命令來查詢其所繫屬的資料位置表(DLT)(步驟2109),以判斷在其資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)是否有與該主機命令相關的資訊(步驟2111)。
若RAID子系統30B(收到主機命令的RAID子系統)的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)沒有與該主機命令相關的資訊,則RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B會向RAID子系統30A(主控RAID子系統)詢問位址交互參照資訊,以更新自身的資訊(例如:資料位置資訊(Data Location Information))(步驟2119)。然後,RAID子系統30B(收到主機命令的RAID子系統)依據其更新後的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)來處理、拆解該主機命令成為一或多個子命令並轉送給相對應之RAID子系統(步驟2113)來執行該一個或多個子命令(步驟2115)。之後,所有的相對應的RAID子系統回傳該些子命令的執行結果給RAID子系統30B(收到主機命令的RAID子系統),再由RAID子系統30B(收到主機命令的RAID子系統)匯總該些子命令的執行結果為一主執行結果,並回傳該主執行結果給該主機10(步驟2117)。反之,若RAID子系統30B(收到主機命令的RAID子系統)中之OBLB模組40B的資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)儲存有與該主機命令相關的資訊,則RAID子系統30B(收到主機命令的RAID子系統)依據其資料位置表(DLT)中記錄之資料位置資訊(Data Location Information)來直接處理、拆解該主機命令成為一或多個子命令並轉送給相對應之RAID子系統(步驟2113)來執行該一或多個子命令(步驟2115)。之後,相對應的RAID子系統回傳該一或多個子命令的執行結果給RAID子系統30B(收到主機命令的RAID子系統),再由RAID子系統30B(收到主機命令的RAID子系統)匯總該一或多個子命令的執行結果為一主執行結果,並回傳該主執行結果給該主機10(步驟2117)。
綜上所述,本發明之RAID子系統機載之多平台相容模組,提供了一資料存取負載平衡功能,用以針對與該些RAID子系統連接之主機所發出的一或多個主機命令,平均分配該些主機命令於該些RAID子系統上之負載外。除此之外,由於本發明係利用RAID子系統機載之多平台相容模組的機載特性,不僅無需安裝任何用以呈現上述功能之相關軟體、韌體於與該些RAID子系統連接之主機上,亦無需依據與該些RAID子系統連接之主機的作業平台來開發相容的軟體、韌體。因此,無庸置疑地,本發明之RAID子系統機載之多平台相容模組提供了一可跨平台、可迅速開發且不限定安裝在主機端之一資料存取負載平衡功能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
1、2、3:儲存系統架構
10:主機
12、12A、12B、12C:有效性檢查序號總表
13:主機負載平衡驅動程式
14、14A、14B、14C:資料位置有效性表
15:交換器
1201至1203、13001至13107、1401至1415、2001至2027、2101至2119:步驟
1500、1600:流程圖
1501至1509、1601至1611:步驟
20、20a、20b、30、30A、30B、30C、RA、RB、RC:冗餘磁碟陣列子系統
40A、40B、40C:機載多平台相容模組
200a、200b:儲存虛擬化控制器
302、302A、302B、302C:虛擬化層
304A、304B、304C:冗餘磁碟陣列層
300:實體儲存元件陣列
400:實體儲存媒體
601:區段分配系統
603a、603b:區塊關聯集區段分配串列
605:節點表
6031:屬性區塊
6033:目錄
6035:日誌
6037:區塊關聯表
6039:資料區塊
90、90A、90B、90C:媒體區伺服器模組
CH1、CH2、CH3:通道
DLT、RA DLT0、RA DLT0、RB DLT0、RC DLT0、RA DLT1、RB DLT1、RC DLT1、RA DLT2、RB DLT2、RC DLT2:資料位置表
ME、ME1、ME2、ME3、ME4、ME5、ME6、MEn、ME11-ME16、ME21至ME26、ME31至ME36:媒體區
VP、VP0、VP1、VP2:虛擬池
VV、VV0、VV1、VV2:虛擬卷
第1圖係為習知儲存系統架構1之示意圖。
第2圖其係為本發明之一儲存系統架構2之示意圖。
第3圖係為本發明之一實施例之一儲存系統架構3。
第4圖係為本發明之一實施例之RAID層所映射出之邏輯磁碟機與媒體區之關係示意圖。
第5圖係為本發明之一實施例之媒體區與區塊之關係示意圖。
第6圖係為本發明之一實施例之用於虛擬池之一區段分配系統的資料結構之示意圖。
第7圖係為本發明之僅有單一個主控RAID子系統的儲存系統架構3之一實施例之虛擬池、虛擬卷與媒體區關係之示意圖。
第8圖係為依據第7圖之儲存系統架構3之一實施例之有效性檢查序號總表、資料位置有效性表、虛擬池與媒體區之間之關係的示意圖。
第9圖係為本發明之具有複數個主控RAID子系統的儲存系統架構3之另一實施例之虛擬池、虛擬卷與媒體區關係之示意圖。
第10圖係為依據第9圖之儲存系統架構3之另一實施例之有效性檢查序號總表、資料位置有效性表、虛擬池與媒體區之間之關係的示意圖。
第11圖係為本發明之具有複數個主控RAID子系統的儲存系統架構3之另一實施例之虛擬池、虛擬卷與媒體區關係之示意圖。
第12圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之背景作業之一實施例的流程圖。
第13A圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第一實施例、第二實施例、第三實施例、第四實施例和第五實施例的第一部分流程圖。
第13B圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第一實施例和第六實施例的第二部分流程圖。
第13C圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第二實施例和第七實施例的第二部分流程圖。
第13D圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第三實施例、第四實施例、第五實施例、第八實施例、第九實施例和第十實施例的第二部分流程圖。
第13E圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第三實施例、第八實施例的第三部分流程圖及第五實施例、第十實施例的第四部分流程圖。
第13F圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第四實施例和第九實施例的第三部分流程圖。
第13G圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第五實施例和第十實施例的第三部分流程圖。
第14圖係為本發明之一儲存系統架構3中,以執行資料存取負載平衡功能之第六實施例、第七實施例、第八實施例、第九實施例和第十實施例的第一部分流程圖。
第15圖係為之本發明之一儲存系統架構3之資料存取負載平衡功能中用以驗證子命令有效性之第一實施例之子命令有效性驗證方法的流程圖1500。
第16圖係為本發明之儲存系統架構3之資料存取負載平衡功能中用以驗證子命令有效性之第二實施例之子命令有效性驗證方法的流程圖1600。
第17圖係為本發明之儲存系統架構3之資料存取負載平衡功能之命令轉遞之第一示意圖。
第18圖係為本發明之儲存系統架構3之資料存取負載平衡功能之命令轉遞之第二示意圖。
第19A圖至第19D圖係為本發明之儲存系統架構3之用以實現第17圖、第18圖所示的實施例之資料存取負載平衡功能之資料位置表內部資料變遷之示意圖。
第20圖係為本發明之儲存系統架構3中,執行此資料存取負載平衡功能之第十一實施例的流程圖,其中前述第一至第十實施例與第十一實施例之間主要不同之處是在第十一實施例中,所有的資料位置表(DLTs)中沒有VCSN欄位。
第21圖係為本發明之儲存系統架構3中,執行此資料存取負載平衡功能之第十二實施例的流程圖,其中前述第一至第十實施例與第十二實施例之間主要不同之處是在第十二實施例中,所有的資料位置表(DLT)中沒有VCSN欄位。
第22圖係為本發明之儲存系統架構3之用以實現資料存取負載平衡功能之資料位置表(DLT)之第十一實施例和第十二實施例的示意圖。
13001至13027、13099:步驟
Claims (40)
- 一種存取資料的方法,用於存取一儲存系統架構中的資料,該儲存系統架構包含有複數個資料儲存子系統,該方法包含下列步驟: 提供一機載多平台相容(On-board Load Balance, OBLB)模組於該複數個資料儲存子系統中的每一資料儲存子系統; 該複數個資料儲存子系統中之一資料儲存子系統接收來自於一主機的一主機命令; 收到該主機命令的該資料儲存子系統判斷是否能依據自身的該機載多平台相容模組的資料位置資訊來解析該主機命令;以及 當收到該主機命令的該資料儲存子系統能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含有下列步驟: 收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組的該資料位置資訊解析該主機命令成至少一第一子命令; 收到該主機命令的該資料儲存子系統傳送該至少一第一子命令給該複數個資料儲存子系統中與該至少一第一子命令相關連的至少一第一資料儲存子系統; 該至少一第一資料儲存子系統各自執行與其相關連的該至少一第一子命令; 該至少一第一資料儲存子系統回傳其執行該至少一第一子命令後的至少一第一執行子結果給收到該主機命令的該資料儲存子系統; 收到該主機命令的該資料儲存子系統匯集來自於該至少一第一資料儲存子系統的該至少一第一執行子結果;以及 收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有來自於該至少一第一資料儲存子系統的該至少一第一執行子結果。
- 如請求項1所述之方法,當收到該主機命令的該資料儲存子系統不能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含有下列步驟: 收到該主機命令的該資料儲存子系統傳送該主機命令給一主控資料儲存子系統; 該主控資料儲存子系統解析該主機命令成至少一第二子命令,並傳送該至少一第二子命令給與該至少一第二子命令相關連的該複數個資料儲存子系統中的至少一第二資料儲存子系統; 該至少一第二資料儲存子系統各自執行與其相關連的該至少一第二子命令; 該至少一第二資料儲存子系統回傳其執行該至少一第二子命令後的至少一第二執行子結果給該主控資料儲存子系統; 該主控資料儲存子系統匯集來自於該至少一第二資料儲存子系統的該至少一第二執行子結果; 該主控資料儲存子系統回傳一主執行結果給收到該主機命令的該資料儲存子系統,其中該主執行結果包含有該至少一第二執行子結果;以及 收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機。
- 如請求項2所述之方法,另包含有下列步驟:收到該主機命令的該資料儲存子系統向該主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊。
- 如請求項3所述之方法,其中來自於該主控資料儲存子系統的該資訊是一位址交互參照資訊。
- 如請求項1所述之方法,當收到該主機命令的該資料儲存子系統不能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含有下列步驟: 收到該主機命令的該資料儲存子系統向一主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊; 收到該主機命令的該資料儲存子系統依據向該主控資料儲存子系統詢問而得的該資訊,更新自身的該機載多平台相容模組的該資料位置資訊; 收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組更新後的該資料位置資訊,解析該主機命令成至少一第三子命令,並傳送該至少一第三子命令給該複數個資料儲存子系統中與該至少一第三子命令相關連的至少一第三資料儲存子系統; 該至少一第三資料儲存子系統各自執行與其相關連的該至少一第三子命令; 該至少一第三資料儲存子系統回傳其執行該至少一第三子命令後的至少一第三執行子結果給收到該主機命令的該資料儲存子系統; 收到該主機命令的該資料儲存子系統匯集來自於該至少一第三資料儲存子系統的該至少一第三執行子結果;以及 收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第三執行子結果。
- 如請求項1所述之方法,另包含有下列步驟:該複數個資料儲存子系統中的一主控資料儲存子系統規律地或依需要,更新該複數個資料儲存子系統的每一資料儲存子系統的該機載多平台相容模組的資料位置資訊。
- 如請求項1所述之方法,其中該資料位置資訊包含有:一虛擬卷識別碼(Virtual Volume Identification, VV ID)、一虛擬邏輯區塊位址(virtual logical block address, virtual LBA)、一資料大小(size)、一磁碟陣列識別碼(RAID identification, RAID ID)、一媒體區識別碼(ME identification, ME ID)、一實體邏輯區塊位址(physical logical block address, physical LBA)及一區塊數量(block size)。
- 一種存取資料的方法,用於存取一儲存系統架構中的資料,該儲存系統架構包含複數個資料儲存子系統,該方法包含下列步驟: 提供一機載多平台相容(On-board Load Balance, OBLB)模組於該複數個資料儲存子系統中的每一資料儲存子系統; 該複數個資料儲存子系統中的一資料儲存子系統接收來自於一主機的一主機命令; 收到該主機命令的該資料儲存子系統判斷是否能依據自身的該機載多平台相容模組的資料位置資訊來解析該主機命令;以及 當收到該主機命令的該資料儲存子系統能夠依據自身的該機載多平台相容模組的該資料位置資訊來解析該主機命令時,另包含有下列步驟: 收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組的該資料位置資訊解析該主機命令成至少一第一子命令; 收到該主機命令的該資料儲存子系統傳送該至少一第一子命令給該複數個資料儲存子系統中與該至少一第一子命令相關連的至少一第一資料儲存子系統; 該至少一第一資料儲存子系統中的每一第一資料儲存子系統判斷其接收到的該第一子命令中的一有效性檢查資訊是否為有效; 當其接收到的該第一子命令中的該有效性檢查資訊被判斷為有效時,另包含有下列步驟: 收到有效第一子命令的該至少一第一資料儲存子系統中的一第一資料儲存子系統執行該有效第一子命令; 收到有效第一子命令的該第一資料儲存子系統回傳一第一執行子結果給收到該主機命令的該資料儲存子系統; 收到該主機命令的該資料儲存子系統匯集來自於該至少一第一資料儲存子系統中的該第一資料儲存子系統回傳的該第一執行子結果;以及 收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該第一執行子結果。
- 如請求項8所述之方法,其中該有效性檢查資訊是為一有效性檢查序號(Validity Check Sequence Number, VCSN)。
- 如請求項8所述之方法,當其接收到的該第一子命令中的該有效性檢查資訊被判斷為無效時,另包含有下列步驟: 收到無效第一子命令的該至少一第一資料儲存子系統中的一第一資料儲存子系統,傳送該無效第一子命令給一主控資料儲存子系統;以及 該主控資料儲存子系統處理來自於該至少一第一資料儲存子系統中的該第一資料儲存子系統的該無效第一子命令。
- 如請求項10所述之方法,其中該無效第一子命令的該有效性檢查資訊會無效的原因,係起因於一資料遷移(data migration)作業或一快照(snapshot)作業。
- 如請求項10所述之方法,其中該主控資料儲存子系統處理來自於該至少一第一資料儲存子系統中的該第一資料儲存子系統的該無效第一子命令之步驟,另包含有下列步驟: 該主控資料儲存子系統解析該無效第一子命令成至少一第四子命令; 該主控資料儲存子系統傳送該至少一第四子命令給與該至少一第四子命令相關連的該複數個資料儲存子系統中的至少一第四資料儲存子系統; 該至少一第四資料儲存子系統各自執行與其相關連的該至少一第四子命令; 該至少一第四資料儲存子系統回傳其執行該至少一第四子命令後的至少一第四執行子結果給該主控資料儲存子系統,以回應該至少一第四子命令;以及 該主控資料儲存子系統匯集來自於該至少一第四資料儲存子系統的該至少一第四執行子結果為該無效第一子命令的一執行結果。
- 如請求項12所述之方法,另包含有下列步驟: 該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統;以及 收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機,其中該主執行結果包含有該無效第一子命令的該執行結果。
- 如請求項12所述之方法,另包含有下列步驟: 該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該無效第一子命令的該第一資料儲存子系統; 收到該無效第一子命令的該第一資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統;以及 收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機,其中該主執行結果包含有該無效第一子命令的該執行結果。
- 如請求項12所述之方法,另包含有下列步驟: 該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統; 收到該主機命令的該資料儲存子系統匯集來自於收到該有效第一子命令的該第一資料儲存子系統的該第一執行子結果以及來自於收到該無效第一子命令的該主控資料儲存子系統的該無效第一子命令的該執行結果;以及 收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機,其中該主執行結果包含有該有效第一子命令的該第一執行子結果與該無效第一子命令的該執行結果。
- 如請求項12所述之方法,另包含有下列步驟: 該主控資料儲存子系統回傳該無效第一子命令的該執行結果給收到該無效第一子命令的該第一資料儲存子系統; 收到該無效第一子命令的該第一資料儲存子系統回傳該無效第一子命令的該執行結果給收到該主機命令的該資料儲存子系統; 收到該主機命令的該資料儲存子系統匯集來自於收到該有效第一子命令的該第一資料儲存子系統的該第一執行子結果以及來自於收到該無效第一子命令的該第一資料儲存子系統的該無效第一子命令的該執行結果;以及 收到該主機命令的該資料儲存子系統回傳該主執行結果給該主機,其中該主執行結果包含有該有效第一子命令的該第一執行子結果跟該無效第一子命令的該執行結果。
- 如請求項8所述之方法,另包含有下列步驟: 收到該至少一第一子命令的該至少一第一資料儲存子系統通知收到該主機命令的該資料儲存子系統,其所收到的第一子命令的有效性檢查資訊是為有效或無效。
- 如請求項8所述之方法,另包含有下列步驟: 當該至少一第一子命令中的一第一子命令的該有效性檢查資訊被判斷為有效時,收到該主機命令的該資料儲存子系統通知收到該有效第一子命令的該第一資料儲存子系統,執行其收到的該有效第一子命令;以及 當該至少一第一子命令中的一第一子命令的該有效性檢查資訊被判斷為無效時,收到該主機命令的該資料儲存子系統通知收到該無效第一子命令的該第一資料儲存子系統,不執行其收到的該無效第一子命令。
- 如請求項8所述之方法,當該至少一第一子命令的任一的該有效性檢查資訊被判斷為無效時,另包含有下列步驟: 收到該主機命令的該資料儲存子系統通知收到該至少一第一子命令的該至少一第一資料儲存子系統,不要執行其所收到的該至少一第一子命令; 收到該主機命令的該資料儲存子系統傳送該主機命令給一主控資料儲存子系統; 該主控資料儲存子系統解析該主機命令成至少一第五子命令,並傳送該至少一第五子命令給該複數個資料儲存子系統中與該至少一第五子命令相關連的至少一第五資料儲存子系統; 該至少一第五資料儲存子系統各自執行與其相關連的該至少一第五子命令,以得到相對應於該至少一第五子命令的至少一第五執行子結果,並回傳該至少一第五執行子結果給該主控資料儲存子系統; 該主控資料儲存子系統匯集來自於該至少一第五資料儲存子系統的該至少一第五執行子結果; 該主控資料儲存子系統回傳該至少一第五執行子結果給收到該主機命令的該資料儲存子系統;以及 收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第五執行子結果。
- 如請求項19所述之方法,其中該無效第一子命令的該有效性檢查資訊會無效的原因,係起因於一資料遷移(data migration)作業或一快照(snapshot)作業。
- 如請求項8所述之方法,當該至少一第一子命令的任一的該有效性檢查資訊被判斷為無效時,另包含有下列步驟: 收到該主機命令的該資料儲存子系統通知收到該至少一第一子命令的該至少一第一資料儲存子系統,不要執行其所收到的該至少一第一子命令; 收到該主機命令的該資料儲存子系統向該主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊; 收到該主機命令的該資料儲存子系統依據向該主控資料儲存子系統詢問而得的該資訊,更新自身的該機載多平台相容模組的該資料位置資訊; 收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組更新後的資料位置資訊,解析該主機命令成至少一第六子命令,並傳送該至少一第六子命令給該複數個資料儲存子系統中與該至少一第六子命令相關連的至少一第六資料儲存子系統; 當該至少一第六子命令的該有效性檢查資訊被判斷為有效時,該至少一第六資料儲存子系統執行該至少一第六子命令,以得到至少一第六執行子結果; 該至少一第六資料儲存子系統回傳執行該至少一第六子命令後的該至少一第六執行子結果給收到該主機命令的該資料儲存子系統; 收到該主機命令的該資料儲存子系統匯集來自於該至少一第六資料儲存子系統的該至少一第六執行子結果;以及 收到該主機命令之該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第六執行子結果。
- 如請求項8所述之方法,當該至少一第一子命令的任一的該有效性檢查資訊被判斷為無效時,另包含有下列步驟: 收到該主機命令的該資料儲存子系統通知收到該至少一第一子命令的該至少一第一資料儲存子系統,不要執行其所收到的該至少一第一子命令; 收到該主機命令的該資料儲存子系統向該主控資料儲存子系統詢問一資訊,以更新自身的該機載多平台相容模組的該資料位置資訊; 收到該主機命令的該資料儲存子系統依據向該主控資料儲存子系統詢問而得的該資訊,更新自身的該機載多平台相容模組的該資料位置資訊; 收到該主機命令的該資料儲存子系統依據自身的該機載多平台相容模組更新後的資料位置資訊,解析該主機命令成至少一第六子命令,並傳送該至少一第六子命令給該複數個資料儲存子系統中與該至少一第六子命令相關的至少一第六資料儲存子系統; 當該至少一第六子命令的任一的該有效性檢查資訊被判斷為無效時,收到該主機命令的該資料儲存子系統傳送該主機命令給該主控資料儲存子系統; 該主控資料儲存子系統解析該主機命令成至少一第七子命令,並傳送該至少一第七子命令給該複數個資料儲存子系統中與該至少一第七子命令相關連的至少一第七資料儲存子系統; 該至少一第七資料儲存子系統執行該至少一第七子命令以得到至少一第七執行子結果,並回傳執行該至少一第七子命令後的該至少一第七執行子結果給該主控資料儲存子系統; 該主控資料儲存子系統匯集來自於該至少一第七資料儲存子系統的該至少一第七執行子結果; 該主控資料儲存子系統回傳該至少一第七執行子結果給收到該主機命令的該資料儲存子系統;以及 收到該主機命令的該資料儲存子系統回傳一主執行結果給該主機,其中該主執行結果包含有該至少一第七執行子結果。
- 如請求項22所述之方法,其中該無效第一子命令的該有效性檢查資訊會無效的原因,係起因於一資料遷移(data migration)作業或一快照(snapshot)作業。
- 如請求項21所述之方法,其中來自於該主控資料儲存子系統的該資訊是一位址交互參照資訊。
- 如請求項22所述之方法,其中來自於該主控資料儲存子系統的該資訊是一位址交互參照資訊。
- 如請求項8所述之方法,其中該資料位置資訊包含有:一虛擬卷識別碼 (Virtual Volume Identification, VV ID)、一虛擬邏輯區塊位址(virtual logical block address, virtual LBA)、一資料大小(size)、一磁碟陣列識別碼(RAID identification, RAID ID)、一媒體區識別碼(ME identification, ME ID)、一實體邏輯區塊位址(physical logical block address, physical LBA)、一區塊數量(block size)及該有效性檢查資訊。
- 一種用於存取資料的儲存系統架構,該儲存系統架構包含有複數個資料儲存子系統,且該複數個資料儲存子系統耦接於一主機,以接收來自於該主機的一主機命令,該儲存系統架構包含有: 一冗餘磁碟陣列層,提供於該複數個資料儲存子系統中的每一資料儲存子系統,用以將複數個實體儲存元件映射成複數個媒體區; 一虛擬化模組,提供於該複數個資料儲存子系統中的至少一資料儲存子系統,用以將該複數個媒體區形成一虛擬池(virtual pool),該虛擬池產生一或多個虛擬卷並呈現給該主機; 一機載多平台相容模組,提供於該複數個資料儲存子系統中的每一資料儲存子系統,用以提供一資料存取介面給該主機,其中該機載多平台相容模組包含有一資料位置資訊,用以剖析來自於該主機的該主機命令成至少一子命令;以及 一媒體區伺服器(ME server)模組,提供於該複數個資料儲存子系統中的每一資料儲存子系統,用以接收該至少一子命令以及判斷該至少一子命令的有效性; 其中,該複數個資料儲存子系統中的一資料儲存子系統接收並剖析來自於該主機的該主機命令成至少一子命令,並傳送該至少一子命令給相關連的一或多個第一資料儲存子系統執行該至少一子命令。
- 如請求項27所述之儲存系統架構,其中該機載多平台相容模組另包含有:分別對應於該一或多個虛擬卷的一或多個資料位置表(Data Location Table, DLT),用以儲存對應於該一或多個虛擬卷的該資料位置資訊。
- 如請求項27所述之儲存系統架構,其中該複數個資料儲存子系統中的該資料儲存子系統包含有該虛擬化模組而為一主控資料儲存子系統,用以管理該一或多個虛擬卷。
- 如請求項27所述之儲存系統架構,其中該虛擬化模組、該機載多平台相容模組以及該媒體區伺服器模組是三個獨立模組。
- 如請求項27所述之儲存系統架構,其中該機載多平台相容模組是被整合於該虛擬化模組之中。
- 如請求項27所述之儲存系統架構,其中該媒體區伺服器模組是被整合於該虛擬化模組之中。
- 如請求項27所述之儲存系統架構,其中該媒體區伺服器模組是被整合於該機載多平台相容模組之中。
- 如請求項27所述之儲存系統架構,其中該虛擬化模組、該機載多平台相容模組以及該媒體區伺服器模組是被整合於一相同的模組之中。
- 如請求項27所述之儲存系統架構,其中該媒體區伺服器模組包含有一或多個資料位置有效性表(data location validity table),該一或多個資料位置有效性表用以判斷該至少一子命令的有效性檢查資訊是有效或無效。
- 如請求項35所述之儲存系統架構,其中該一或多個資料位置有效性表是分別對應於該一或多個虛擬卷。
- 如請求項35所述之儲存系統架構,其中該有效性檢查資訊是為一有效性檢查序號(Validity Check Sequence Number, VCSN)。
- 如請求項27所述之儲存系統架構,其中接收該主機命令的該資料儲存子系統不同於該一或多個第一資料儲存子系統中的任一第一資料儲存子系統。
- 如請求項27所述之儲存系統架構,其中接收該主機命令的該資料儲存子系統是包含於該一或多個第一資料儲存子系統之中。
- 如請求項27所述之儲存系統架構,其中該主機命令的一執行結果係經由接收該主機命令的該資料儲存子系統回傳給該主機,該執行結果是為該至少一子命令的至少一執行子結果的匯集。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862737926P | 2018-09-28 | 2018-09-28 | |
US62/737,926 | 2018-09-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202018521A TW202018521A (zh) | 2020-05-16 |
TWI710909B true TWI710909B (zh) | 2020-11-21 |
Family
ID=69196786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108134806A TWI710909B (zh) | 2018-09-28 | 2019-09-26 | 具多平台相容性模組之資料儲存子系統之儲存系統架構及其方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11061604B2 (zh) |
CN (1) | CN110703995B (zh) |
TW (1) | TWI710909B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11734131B2 (en) * | 2020-04-09 | 2023-08-22 | Micron Technology, Inc. | Memory device having redundant media management capabilities |
CN113849344B (zh) * | 2021-09-23 | 2023-09-01 | 苏州浪潮智能科技有限公司 | 卷快照创建方法、装置和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200627170A (en) * | 2005-01-25 | 2006-08-01 | Sunplus Technology Co Ltd | Control system for storage device |
CN103984642A (zh) * | 2013-02-11 | 2014-08-13 | Lsi公司 | 冗余辅助储存器缓存的重建 |
TWI467370B (zh) * | 2009-01-23 | 2015-01-01 | Infortrend Technology Inc | 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法 |
TWI475379B (zh) * | 2010-06-18 | 2015-03-01 | Lsi Corp | 提供可擴展儲存之方法、裝置及系統 |
US9489293B2 (en) * | 2012-08-17 | 2016-11-08 | Netapp, Inc. | Techniques for opportunistic data storage |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108684A (en) * | 1996-12-23 | 2000-08-22 | Lsi Logic Corporation | Methods and apparatus for balancing loads on a storage subsystem among a plurality of controllers |
US6353878B1 (en) * | 1998-08-13 | 2002-03-05 | Emc Corporation | Remote control of backup media in a secondary storage subsystem through access to a primary storage subsystem |
US7814293B2 (en) * | 2004-07-19 | 2010-10-12 | Infotrend Technology Inc. | Redundant controller host-side IO rerouting |
US7389393B1 (en) * | 2004-10-21 | 2008-06-17 | Symantec Operating Corporation | System and method for write forwarding in a storage environment employing distributed virtualization |
WO2008137047A2 (en) * | 2007-04-30 | 2008-11-13 | Netapp, Inc. | Method and apparatus for offloading network processes in a computer storage system |
KR20100107479A (ko) * | 2008-01-02 | 2010-10-05 | 샌디스크 아이엘 엘티디 | 직접적인 사용자 액세스를 갖는 저장 장치 |
US8832372B2 (en) * | 2012-05-24 | 2014-09-09 | Netapp, Inc. | Network storage systems having clustered raids for improved redundancy and load balancing |
US10372492B2 (en) * | 2013-12-11 | 2019-08-06 | Dropbox, Inc. | Job-processing systems and methods with inferred dependencies between jobs |
US10261690B1 (en) * | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
-
2019
- 2019-09-26 US US16/583,276 patent/US11061604B2/en active Active
- 2019-09-26 TW TW108134806A patent/TWI710909B/zh active
- 2019-09-27 CN CN201910926136.8A patent/CN110703995B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200627170A (en) * | 2005-01-25 | 2006-08-01 | Sunplus Technology Co Ltd | Control system for storage device |
TWI467370B (zh) * | 2009-01-23 | 2015-01-01 | Infortrend Technology Inc | 執行儲存虛擬化之儲存子系統及儲存系統架構及其方法 |
TWI475379B (zh) * | 2010-06-18 | 2015-03-01 | Lsi Corp | 提供可擴展儲存之方法、裝置及系統 |
US9489293B2 (en) * | 2012-08-17 | 2016-11-08 | Netapp, Inc. | Techniques for opportunistic data storage |
CN103984642A (zh) * | 2013-02-11 | 2014-08-13 | Lsi公司 | 冗余辅助储存器缓存的重建 |
Also Published As
Publication number | Publication date |
---|---|
US20200272354A1 (en) | 2020-08-27 |
US11061604B2 (en) | 2021-07-13 |
TW202018521A (zh) | 2020-05-16 |
CN110703995A (zh) | 2020-01-17 |
CN110703995B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200019516A1 (en) | Primary Data Storage System with Staged Deduplication | |
US7913037B2 (en) | Computer system for controlling allocation of physical links and method thereof | |
US7171522B2 (en) | Storage system including storage adaptors having cache memories and grasping usage situation of each cache memory and equalizing usage of cache memories | |
JP4749140B2 (ja) | データマイグレーション方法及びシステム | |
US8447924B2 (en) | Computer system having an expansion device for virtualizing a migration source wherein the operation mode of the computer is set to a cache through or write after mode | |
WO2014087518A1 (ja) | ネットワークシステム及びその運用方法 | |
EP4139802B1 (en) | Methods for managing input-ouput operations in zone translation layer architecture and devices thereof | |
US8972656B1 (en) | Managing accesses to active-active mapped logical volumes | |
US8972657B1 (en) | Managing active—active mapped logical volumes | |
US10620843B2 (en) | Methods for managing distributed snapshot for low latency storage and devices thereof | |
TWI710909B (zh) | 具多平台相容性模組之資料儲存子系統之儲存系統架構及其方法 | |
US11474730B1 (en) | Storage system and migration method of storage system | |
EP3765971A1 (en) | Methods for accelerating storage media access and devices thereof | |
US11201788B2 (en) | Distributed computing system and resource allocation method |