TW201814522A - 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 - Google Patents
具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 Download PDFInfo
- Publication number
- TW201814522A TW201814522A TW105133252A TW105133252A TW201814522A TW 201814522 A TW201814522 A TW 201814522A TW 105133252 A TW105133252 A TW 105133252A TW 105133252 A TW105133252 A TW 105133252A TW 201814522 A TW201814522 A TW 201814522A
- Authority
- TW
- Taiwan
- Prior art keywords
- chunk
- block
- storage devices
- storage device
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/1092—Rebuilding, e.g. when physically replacing a failing disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
-
- 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
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/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
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
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 Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一種資料儲存系統及其管理方法。本發明之資料儲存系統基於多個主邏輯儲存裝置以及至少一個備援邏輯儲存裝置存取或重建資料。多個主邏輯儲存裝置以第一磁碟陣列架構規劃成多個資料區塊。至少一個備援邏輯儲存裝置以第二磁碟陣列架構規劃成多個備援區塊。本發明之資料儲存系統利用多個虛擬儲存裝置與數個一對一和映成函數將多個資料區塊與多個備援區塊分散地映射至多個實體儲存裝置中之區塊。
Description
本發明係關於一種資料儲存系統(data storage system)及其管理方法,並且特別地,關於具有虛擬區塊(virtual block)及磁碟陣列(redundant array of independent drives,RAID)架構之資料儲存系統及其管理方法,以利大幅縮短重建資料儲存系統中損毀或被替換的儲存裝置所耗費的時間。
隨著用戶儲存資料量日益增多,符合磁碟陣列(RAID)架構的資料儲存系統(亦稱為磁碟陣列(RAID)系統)已廣泛地被採用來儲存大量資料。磁碟陣列(RAID)系統能提供高可用性(high availability)、高效能(high performance)或大容量(high volume)的資料儲存空間給主機(host)。
習知的磁碟陣列系統的構成,包含磁碟陣列控制器(RAID controller)以及由多個實體儲存裝置(physical storage device)所構成的磁碟陣列。磁碟陣列控制器係連接至每一個實體儲存裝置,並由磁碟陣列控制器將磁碟陣列定義成RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5或RAID 6之一個或多個邏輯磁碟機(logical disk drive)而達成。磁碟陣列控制器係能產生(重建)與待讀取資料相同之冗餘資料(redundant data)。
於實際應用中,每一個實體儲存裝置可以是磁帶機(tape drive)、磁碟機(disk drive)、記憶體裝置(memory drive)、光儲存記錄裝置(optical storage drive),或是於同一顆磁碟機中之對應於單一讀寫頭之一個磁區,或是其他等效的實體儲存裝置。
藉著每個RAID級別採用不同的冗餘/資料儲存方案,RAID在不同的級別可以被實施。例如,RAID 1實施硬碟鏡像(disk mirroring),其中第一個儲存裝置保存被儲存的資料,並且第二個儲存裝置保存被儲存在第一個儲存裝置中的資料之精確複製資料。如果任何一個儲存裝置發生毀損,因為剩餘的儲存裝置中的資料仍然可用,所以沒有資料遺失。
在其他RAID系統中,每一個實體儲存裝置被區分成多個資料區塊(block)。從容錯的觀點來看,可分為使用者資料區塊以及同位元資料區塊兩類。使用者資料區塊儲存一般的使用者資料。同位元資料區塊則儲存多餘的一組同位元資料,以當有容錯需求時,供反算使用者資料之用。存在於不同實體儲存裝置之相對應使用者資料區塊與同位元資料區塊形成一個儲存條帶(stripe),其中同位元資料區塊中的同位元資料係由使用者資料區塊中的使用者資料執行互斥或(XOR)運算所得的結果。這些RAID系統中若有實體儲存裝置損毀,可以利用其餘未損毀的實體儲存裝置內儲存的使用者資料及同位元資料執行互斥或(XOR)運算,進而重建。須聲明的是,熟習此項技藝的人士皆了解,同位資料區塊中之資料之計算,除可使用互斥或(XOR)運算外,也包含各式各樣之同位元(parity)運算或類似的運算技術,只要存在以下關係:相同儲存條帶中之任一個資料區塊中之資料可由其相對應資料區塊之資料計算而得。
一般重建磁碟陣列等資料儲存系統中之一個實體儲存裝置,依序讀取未替換的實體儲存裝置之邏輯區塊位址,計算出毀損的實體儲存裝置相對應的邏輯區塊位址(logical block address,LBA)之資料,再將計算的資料寫入替 換的實體儲存裝置之邏輯區塊位址,上述程序執行到讀取完未替換的實體儲存裝置之所有邏輯區塊位址為止。明顯地,重建實體儲存裝置需要花費相當長的時間。隨著實體儲存裝置的容量增大(目前市場已出現容量4TB以上的實體儲存裝置),以習知的方法重建實體儲存裝置需要耗費的時間甚至超出600分鐘。
已有先前技術利用虛擬儲存裝置來降低重建實體儲存裝置需要花費的時間,相關先前技術請參閱美國專利專利第8,046,537號專利。美國專利第8,046,537號專利建立映射表格先行紀錄虛擬儲存裝置中之區塊與實體儲存裝置中之區塊之間的映射關係。然而,隨著實體儲存裝置的容量增加,上述映射表格佔記憶體空間也隨之增加。
另有先前技術將原屬同一儲存帶的區塊並不集中,而是分散映射到各個實體儲存裝置中之區塊來降低重建實體儲存裝置需要花費的時間,相關先前技術請參閱中國大陸公開號第101923496號。然而,中國大陸公開號第101923496號仍利用至少一個備援實體儲存裝置,因此,重建備援實體儲存裝置過程中將資料寫入備援實體儲存裝置內的程序是明顯的瓶頸。
目前,先前技術對於如何大幅縮短重建磁碟陣列等資料儲存系統中之一個實體儲存裝置所需耗費的時間仍有極大的改善空間。
因此,本發明所欲解決的技術問題在於提供一種資料儲存系統及其管理方法,尤其是針對符合磁碟陣列架構的資料儲存系統。並且特別地,根據本發明之資料儲存系統及其管理方法具有虛擬區塊及磁碟陣列架構,可以大幅縮短重建資料儲存系統中損毀或被替換的儲存裝置所耗費的時 間。
本發明之一較佳具體實施例之資料儲存系統包含磁碟陣列處理模組、多個實體儲存裝置以及虛擬區塊處理模組。磁碟陣列處理模組用以基於多個主邏輯儲存裝置以及至少一個備援邏輯儲存裝置存取或重建資料。多個主邏輯儲存裝置以第一磁碟陣列架構規劃成多個資料區塊。至少一個備援邏輯儲存裝置以第二磁碟陣列架構規劃成多個備援區塊。每一個資料區塊以及每一個備援區塊皆被視為區塊單元(chunk),並且依序指派唯一的單元區塊辨識碼(Chunk_ID)。區塊單元的大小(Chunk_Size)被定義。多個實體儲存裝置係分組成至少一儲存裝置池。每一個實體儲存裝置係依序指派唯一的實體儲存裝置辨識碼(PD_ID),並且規劃成多個第一區塊。每一個第一區塊的大小等同Chunk_Size。每一個儲存裝置池之個別的實體儲存裝置數目(PD_Count)被定義。虛擬區塊處理模組係分別耦合至磁碟陣列處理模組以及多個實體儲存裝置。虛擬區塊處理模組用以建立多個虛擬儲存裝置。每一個虛擬儲存裝置係依序指派唯一的虛擬儲存裝置辨識碼(VD_ID),並且規劃成多個第二區塊。每一個第二區塊的大小等同Chunk_Size。多個虛擬儲存裝置之虛擬儲存裝置數目(VD_Count)被定義。虛擬區塊處理模組根據Chunk_Size、VD_Count、VD_ID以及於多個虛擬儲存裝置內之邏輯區塊位址(VD_LBA)計算每一個第二區塊映射之一個Chunk_ID,並且計算該個Chunk_ID映射之一個第一區塊的PD_ID與於多個實體儲存裝置內之邏輯區塊位址(PD_LBA)。該磁碟陣列處理模組根據每一個Chunk_ID之PD_ID與PD_LBA存取資料。
本發明之一較佳具體實施例之管理方法係針對資料儲存系統。資料儲存系統基於多個主邏輯儲存裝置以及至少一個備援邏輯儲存裝置存取或重建資料。多個主邏輯儲存裝置以第一磁碟陣列架構規劃成多個資料區塊。至少一個 備援邏輯儲存裝置以第二磁碟陣列架構規劃成多個備援區塊。每一個資料區塊以及每一個備援區塊皆被視為區塊單元,並且依序指派唯一的單元區塊辨識碼(Chunk_ID)。區塊單元的大小(Chunk_Size)被定義。資料儲存系統包含多個實體儲存裝置。每一個實體儲存裝置係依序指派唯一的實體儲存裝置辨識碼(PD_ID),並且規劃成多個第一區塊。每一個第一區塊的大小等同Chunk_Size。本發明之方法首先係將多個實體儲存裝置分組成至少一儲存裝置池,其中每一個儲存裝置池之個別的實體儲存裝置數目(PD_Count)被定義。接著,本發明之方法係建立多個虛擬儲存裝置。每一個虛擬儲存裝置係依序指派唯一的虛擬儲存裝置辨識碼(VD_ID),並且規劃成多個第二區塊。每一個第二區塊的大小等同Chunk_Size。多個虛擬儲存裝置之虛擬儲存裝置數目(VD_Count)被定義。接著,本發明之方法係根據Chunk_Size、VD_Count、VD_ID以及於多個虛擬儲存裝置內之邏輯區塊位址(VD_LBA)計算每一個第二區塊映射之一個Chunk_ID。接著,本發明之方法係計算該個Chunk_ID映射之一個第一區塊之PD_ID與於多個實體儲存裝置內之邏輯區塊位址(PD_LBA)。最後,本發明之方法係根據每一個Chunk_ID之PD_ID與PD_LBA存取資料。
於一具體實施例中,每一個第二區塊映射之一個Chunk_ID的計算可以藉由第一一對一(one-to-one)和映成(onto)函數執行。
於一具體實施例中,該個Chunk_ID映射之一個第一區塊之PD_ID的計算可以藉由第二一對一和映成函數執行。該個Chunk_ID映射之於多個實體儲存裝置內之邏輯區塊位址(PD_LBA)的計算可以藉由第三一對一和映成函數執行。
與先前技術相較,根據本發明之資料儲存系統及其管理方法並無備援實體儲存裝置,並且具有虛擬區塊及磁碟陣列架構,可以大幅縮短重建資料儲存系統中損毀或被替 換的儲存裝置所耗費的時間。
關於本發明之優點與精神可以藉由以下的發明詳述及所附圖式得到進一步的瞭解。
1‧‧‧資料儲存系統
10‧‧‧磁碟陣列處理模組
102a、102b‧‧‧主邏輯儲存裝置
104‧‧‧備援邏輯儲存裝置
106a‧‧‧第一磁碟陣列架構
106b‧‧‧第二磁碟陣列架構
11‧‧‧傳輸介面
12a~12n‧‧‧實體儲存裝置
14‧‧‧虛擬區塊處理模組
142a~142n‧‧‧虛擬儲存裝置
16a、16b‧‧‧儲存裝置池
2‧‧‧存取要求應用單元
3‧‧‧本發明之方法
S30~S38‧‧‧流程步驟
圖1為採用本發明之一較佳具體實施例之資料儲存系統的架構示意圖。
圖2係第一磁碟陣列架構之多個資料區塊與多個虛擬儲存裝置之多個第二區塊之間的映射關係範例的示意圖。
圖3係第一磁碟陣列架構之多個資料區塊與一個儲存裝置池之多個實體儲存裝置之多個第一區塊之間的映射關係範例的示意圖。
圖4係屬於同一區塊群組的使用者資料區塊與同位元資料區塊以及備援區塊映射至多個實體儲存裝置之多個第一區塊與的範例的示意圖。
圖5係根據本發明之一較佳具體實施例之管理方法的流程圖。
請參閱第1圖,根據本發明之一較佳具體實施例之資料儲存系統1之架構係繪示於第1圖中。
如圖1所示,本發明之資料儲存系統1包含磁碟陣列處理模組10、多個實體儲存裝置(12a~12n)以及虛擬區塊處理模組14。
磁碟陣列處理模組10用以基於多個主邏輯儲存裝置(102a、102b)以及至少一個備援邏輯儲存裝置104存取或重建資料。須強調的是,多個主邏輯儲存裝置(102a、102b)以及至少一個備援邏輯儲存裝置104並非實體的裝置。
多個主邏輯儲存裝置(102a、102b)以第一磁碟陣 列架構106a規劃成多個資料區塊。從容錯的觀點來看,多個資料區塊可分為使用者資料區塊以及同位元資料區塊兩類。使用者資料區塊儲存一般的使用者資料。同位元資料區塊則儲存多餘的一組同位元資料,以當有容錯需求時,供反算使用者資料之用。屬於同一區塊群組的使用者資料區塊與同位元資料區塊,其中同位元資料區塊中的資料係由使用者資料區塊中的資料執行互斥或(XOR)運算所得的結果。須聲明的是,熟習此項技藝的人士皆瞭解,同位元資料區塊中之資料之計算,除可使用互斥或(XOR)運算外,也包含各式各樣的同位元(parity)運算或類似的運算技術,只要存在以下關係:相同區塊群組中之任一個資料區塊中之資料可由其相對應資料區塊之資料計算而得。
至少一個備援邏輯儲存裝置104以第二磁碟陣列架構106b規劃成多個備援區塊。每一個資料區塊以及每一個備援區塊皆被視為區塊單元(chunk),並且依序指派唯一的單元區塊辨識碼(Chunk_ID)。區塊單元的大小(Chunk_Size)被定義。
多個實體儲存裝置(12a~12n)係分組成至少一儲存裝置池(16a、16b)。每一個實體儲存裝置(12a~12n)係依序指派唯一的實體儲存裝置辨識碼(PD_ID),並且規劃成多個第一區塊。每一個第一區塊的大小等同Chunk_Size。每一個儲存裝置池(16a、16b)之個別的實體儲存裝置數目(PD_Count)被定義。須強調的是,不同於先前技術,多個實體儲存裝置(12a~12n)並未規劃成磁碟陣列。
於實際應用中,每一個實體儲存裝置(12a~12n)可以是磁帶機、磁碟機、記憶體裝置、光儲存記錄裝置,或是於同一顆磁碟機中之對應於單一讀寫頭之一個磁區,或是其他等效的實體儲存裝置。
同樣示於圖1,圖1並且繪示存取要求應用單元2。存取要求應用單元2係經由傳輸介面11可以是網路電腦、迷你電腦、大型主機、筆記型電腦,或是需要讀取本發明之資料儲存系統1中之資料的任何電子設備,例如,手機、個人數位助理、數位錄影設備、數位音樂播放器,等。
當存取要求應用單元2係一***立的電子設備時,其係可透過儲存區域網路(SAN)、區域網路(LAN)、序列先進技術(serial ATA,SATA)介面、光纖通道(FC)、小型電腦標準介面(SCSI)等傳輸介面,或是PCI Express等輸出入(I/O)介面與本發明之資料儲存系統1相連接。此外,當存取要求應用單元2係特殊積體電路元件,或是其他能夠送出輸出入讀取要求的等效裝置,其係能依據其他裝置之命令(或請求)而送出資料讀取要求至磁碟陣列處理模組10,進而透過磁碟陣列處理模組10讀取該等實體儲存裝置(12a~12n)中的資料。
虛擬區塊處理模組14係分別耦合至磁碟陣列處理模組10以及多個實體儲存裝置(12a~12n)。虛擬區塊處理模組14用以建立多個虛擬儲存裝置(142a~142n)。每一個虛擬儲存裝置(142a~142n)係依序指派唯一的虛擬儲存裝置辨識碼(VD_ID),並且規劃成多個第二區塊。每一個第二區塊的大小等同Chunk_Size。多個虛擬儲存裝置(142a~142n)之虛擬儲存裝置數目(VD_Count)被定義。
虛擬區塊處理模組14根據Chunk_Size、VD_Count、VD_ID以及於多個虛擬儲存裝置內之邏輯區塊位址(VD_LBA)計算每一個第二區塊映射之一個Chunk_ID,並且計算該個Chunk_ID映射之一個第一區塊的PD_ID與於多個實體儲存裝置(12a~12n)內之邏輯區塊位址(PD_LBA)。磁碟陣列處理模組10根據每一個Chunk_ID之PD_ID與PD_LBA存取資料。
於一具體實施例中,每一個第二區塊映射之一個Chunk_ID的計算可以藉由第一一對一函數(one-to-one function)和映成(onto)函數執行。
於一具體實施例中,每一個第二區塊映射之一個Chunk_ID的計算係藉由下列函數執行:Chunk_ID=(((VD_ID+VD_Rotation_Factor)% VD_Count)+((VD_LBA/Chunk_Size)×VD_Count)),其中VD_Rotation_Factor係一整數值。
於一具體實施例中,該個Chunk_ID映射之一個第一區塊之PD_ID的計算可以藉由第二一對一和映成函數執行。該個Chunk_ID映射之於多個實體儲存裝置(12a~12n)內之邏輯區塊位址(PD_LBA)的計算可以藉由第三一對一和映成函數執行。
於一具體實施例中,該個Chunk_ID映射之一個第一區塊之該PD_ID的計算係藉由下列函數執行:PD_ID=(((Chunk_ID % PD_Count)+PD_Rotation_Factor)% PD_Count),其中運算子”%”係模數(取餘數)之計算,PD_Rotation_Factor係一整數值。
於一具體實施例中,該個Chunk_ID映射之於該多個實體儲存裝置(12a~12n)內之該邏輯區塊位址(PD_LBA)的計算係藉由下列函數執行:PD_LBA=(((Chunk_ID/PD_Count)×Chunk_Size)+(VD_LBA % Chunk_Size))。
請參閱圖2,第一磁碟陣列架構106a之多個資料區塊(CK0~CK11)與多個虛擬儲存裝置(142a~142c)之多個第二區塊之間的映射關係範例。須強調的是,圖2所示的範例並未以表格方式存在本發明之資料儲存系統1內,而是直接計算。
請參閱圖3,第一磁碟陣列架構106a之多個資料區塊(CK0~CK11)與一個儲存裝置池16a之多個實體儲存裝置(12a~12d)之多個第一區塊之間的映射關係範例。須強調的是,圖3所示的範例並未以表格方式存在本發明之資料儲存系統1內,而是直接計算。
請參閱圖4,屬於同一區塊群組的使用者資料區塊與同位元資料區塊以及備援區塊映射至多個實體儲存裝置(12a~12h)之多個第一區塊與的範例。於圖4,實體儲存裝置12c損毀,重建實體儲存裝置12c中資料的程序也示意地描繪。由於重建實體儲存裝置12c中資料的程序係分散地寫入多個實體儲存裝置(12a~12h)中映射備援區塊之第一區塊,所以並無先前技術將資料寫入備援實體儲存裝置內的瓶頸。
請參閱圖5,圖5係繪示根據本發明之一較佳具體實施例之管理方法3之流程圖。根據本發明之管理方法3係針對例如圖1之資料儲存系統1的管理方法。資料儲存系統1之架構已於上文中詳述,在此不再贅述。
如圖5所示,本發明之方法3首先係執行步驟S30,將多個實體儲存裝置(12a~12n)分組成至少一儲存裝置池(16a、16b),其中每一個儲存裝置池(16a、16b)之個別的實體儲存裝置數目(PD_Count)被定義。
接著,本發明之方法3係執行步驟S32,建立多個虛擬儲存裝置(12a~12n)。每一個虛擬儲存裝置(12a~12n)係依序指派唯一的虛擬儲存裝置辨識碼(VD_ID),並且規劃成多個第二區塊。每一個第二區塊的大小等同Chunk_Size。多個虛擬儲存裝置(142a~142n)之虛擬儲存裝置數目(VD_Count)被定義。
接著,本發明之方法3係執行步驟S34,根據Chunk_Size、VD_Count、VD_ID以及於多個虛擬儲存裝置 (142a~142n)內之邏輯區塊位址(VD_LBA)計算每一個第二區塊映射之一個Chunk_ID。
接著,本發明之方法3係執行步驟S36,計算該個Chunk_ID映射之一個第一區塊之PD_ID與於多個實體儲存裝置(12a~12n)內之邏輯區塊位址(PD_LBA)。
最後,本發明之方法3係係執行步驟S38,根據每一個Chunk_ID之PD_ID與PD_LBA存取資料。
須強調的是,與先前技術相較,根據本發明之資料儲存系統及其管理方法並無備援實體儲存裝置,重建實體儲存裝置中資料的程序係分散地寫入多個實體儲存裝置中映射備援區塊之第一區塊,所以並無先前技術將資料寫入備援實體儲存裝置內的瓶頸。根據本發明之資料儲存系統及其管理方法並且具有虛擬區塊及磁碟陣列架構,可以大幅縮短重建資料儲存系統中損毀或被替換的儲存裝置所耗費的時間。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之面向加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的面向內。因此,本發明所申請之專利範圍的面向應該根據上述的說明作最寬廣的解釋,以致使其涵蓋所有可能的改變以及具相等性的安排。
Claims (10)
- 一種資料儲存系統,包含:一磁碟陣列處理模組,用以基於多個主邏輯儲存裝置以及至少一個備援邏輯儲存裝置存取或重建資料,其中該多個主邏輯儲存裝置以一第一磁碟陣列架構規劃成多個資料區塊,該至少一個備援邏輯儲存裝置以一第二磁碟陣列架構規劃成多個備援區塊,每一個資料區塊以及每一個備援區塊皆被視為一區塊單元且依序指派一唯一的單元區塊辨識碼(Chunk_ID),該區塊單元的大小(Chunk_Size)被定義;多個實體儲存裝置,係分組成至少一儲存裝置池,其中每一個實體儲存裝置係依序指派一唯一的實體儲存裝置辨識碼(PD_ID)並且規劃成多個第一區塊,每一個第一區塊的大小等同該Chunk_Size,每一個儲存裝置池之一個別的實體儲存裝置數目(PD_Count)被定義;以及一虛擬區塊處理模組,係分別耦合至該磁碟陣列處理模組以及該多個實體儲存裝置,用以建立多個虛擬儲存裝置,每一個虛擬儲存裝置係依序指派一唯一的虛擬儲存裝置辨識碼(VD_ID)並且規劃成多個第二區塊,每一個第二區塊的大小等同該Chunk_Size,該多個虛擬儲存裝置之一虛擬儲存裝置數目(VD_Count)被定義;其中該虛擬區塊處理模組根據該Chunk_Size、該VD_Count、該VD_ID以及於多個虛擬儲存裝置內之一邏輯區塊位址(VD_LBA)計算每一個第二區塊映射之一個 Chunk_ID,並且計算該個Chunk_ID映射之一個第一區塊之該PD_ID與於該多個實體儲存裝置內之一邏輯區塊位址(PD_LBA),該磁碟陣列處理模組根據每一個Chunk_ID之該PD_ID與該PD_LBA存取資料。
- 如請求項1所述之資料儲存系統,其中每一個第二區塊映射之一個Chunk_ID的計算係藉由一第一一對一和映成函數執行。
- 如請求項1所述之資料儲存系統,其中每一個第二區塊映射之一個Chunk_ID的計算係藉由下列函數執行:Chunk_ID=(((VD_ID+VD_Rotation_Factor)% VD_Count)+((VD_LBA/Chunk_Size)×VD_Count)),VD_Rotation_Factor係一整數值。
- 如請求項1所述之資料儲存系統,其中該個Chunk_ID映射之一個第一區塊之該PD_ID的計算係藉由一第二一對一和映成函數執行,該個Chunk_ID映射之於該多個實體儲存裝置內之該邏輯區塊位址(PD_LBA)的計算係藉由一第三一對一和映成函數執行。
- 如請求項4所述之資料儲存系統,其中該個Chunk_ID映射之一個第一區塊之該PD_ID的計算係藉由下列函數執行:PD_ID=(((Chunk_ID % PD_Count)+PD_Rotation_Factor)% PD_Count),%係模數之計算,PD_Rotation_Factor係一整數值。 該個Chunk_ID映射之於該多個實體儲存裝置內之該邏輯區塊位址(PD_LBA)的計算係藉由下列函數執行: PD_LBA=(((Chunk_ID/PD_Count)×Chunk_Size)+(VD_LBA % Chunk_Size))。
- 一種針對一資料儲存系統之管理方法,該資料儲存系統基於多個主邏輯儲存裝置以及至少一個備援邏輯儲存裝置存取或重建資料,該多個主邏輯儲存裝置以一第一磁碟陣列架構規劃成多個資料區塊,該至少一個備援邏輯儲存裝置以一第二磁碟陣列架構規劃成多個備援區塊,每一個資料區塊以及每一個備援區塊皆被視為一區塊單元且依序指派一唯一的單元區塊辨識碼(Chunk_ID),該區塊單元的大小(Chunk_Size)被定義,該資料儲存系統包含多個實體儲存裝置,每一個實體儲存裝置係依序指派一唯一的實體儲存裝置辨識碼(PD_ID)並且規劃成多個第一區塊,每一個第一區塊的大小等同該Chunk_Size,該管理方法包含下列步驟:將該多個實體儲存裝置分組成至少一儲存裝置池,其中每一個儲存裝置池之一個別的實體儲存裝置數目(PD_Count)被定義;建立多個虛擬儲存裝置,其中每一個虛擬儲存裝置係依序指派一唯一的虛擬儲存裝置辨識碼(VD_ID)並且規劃成多個第二區塊,每一個第二區塊的大小等同該Chunk_Size,該多個虛擬儲存裝置之一虛擬儲存裝置數目(VD_Count)被定義; 根據該Chunk_Size、該VD_Count、該VD_ID以及於多個虛擬儲存裝置內之一邏輯區塊位址(VD_LBA)計算每一個第二區塊映射之一個Chunk_ID;計算該個Chunk_ID映射之一個第一區塊之該PD_ID與於該多個實體儲存裝置內之一邏輯區塊位址(PD_LBA);以及根據每一個Chunk_ID之該PD_ID與該PD_LBA存取資料。
- 如請求項6所述之管理方法,其中每一個第二區塊映射之一個Chunk_ID的計算係藉由一第一一對一和映成函數執行。
- 如請求項6所述之管理方法,其中每一個第二區塊映射之一個Chunk_ID的計算係藉由下列函數執行:Chunk_ID=(((VD_ID+VD_Rotation_Factor)% VD_Count)+((VD_LBA/Chunk_Size)×VD_Count)),VD_Rotation_Factor係一整數值。
- 如請求項6所述之管理方法,其中該個Chunk_ID映射之一個第一區塊之該PD_ID的計算係藉由一第二一對一和映成函數執行,該個Chunk_ID映射之於該多個實體儲存裝置內之該邏輯區塊位址(PD_LBA)的計算係藉由一第三一對一和映成函數執行。
- 如請求項9所述之管理方法,其中該個Chunk_ID映射之一個第一區塊之該PD_ID的計算係藉由下列函數執行: PD_ID=(((Chunk_ID % PD_Count)+PD_Rotation_Factor)% PD_Count),%係模數之計算,PD_Rotation_Factor係一整數值。 該個Chunk_ID映射之於該多個實體儲存裝置內之該邏輯區塊位址(PD_LBA)的計算係藉由下列函數執行:PD_LBA=(((Chunk_ID/PD_Count)×Chunk_Size)+(VD_LBA % Chunk_Size))。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105133252A TWI607303B (zh) | 2016-10-14 | 2016-10-14 | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 |
US15/683,378 US20180107546A1 (en) | 2016-10-14 | 2017-08-22 | Data storage system with virtual blocks and raid and management method thereof |
CN201710825699.9A CN107957850A (zh) | 2016-10-14 | 2017-09-14 | 具虚拟区块及磁盘阵列结构的数据存储***及其管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105133252A TWI607303B (zh) | 2016-10-14 | 2016-10-14 | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI607303B TWI607303B (zh) | 2017-12-01 |
TW201814522A true TW201814522A (zh) | 2018-04-16 |
Family
ID=61230695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105133252A TWI607303B (zh) | 2016-10-14 | 2016-10-14 | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180107546A1 (zh) |
CN (1) | CN107957850A (zh) |
TW (1) | TWI607303B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10459795B2 (en) * | 2017-01-19 | 2019-10-29 | International Business Machines Corporation | RAID systems and methods for improved data recovery performance |
CN111966540B (zh) | 2017-09-22 | 2024-03-01 | 成都华为技术有限公司 | 存储介质的管理方法、装置及可读存储介质 |
CN110413208B (zh) * | 2018-04-28 | 2023-05-30 | 伊姆西Ip控股有限责任公司 | 用于管理存储***的方法、设备和计算机程序产品 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134630A (en) * | 1997-11-14 | 2000-10-17 | 3Ware | High-performance bus architecture for disk array system |
GB0514529D0 (en) * | 2005-07-15 | 2005-08-24 | Ibm | Virtualisation engine and method, system, and computer program product for managing the storage of data |
CN100470506C (zh) * | 2007-06-08 | 2009-03-18 | 马彩艳 | 基于sector访问的flash存储器的存储管理方法 |
EP2211263A3 (en) * | 2009-01-23 | 2013-01-23 | Infortrend Technology, Inc. | Method for performing storage virtualization in a storage system architecture |
US20120079229A1 (en) * | 2010-09-28 | 2012-03-29 | Craig Jensen | Data storage optimization for a virtual platform |
WO2014016860A1 (en) * | 2012-07-23 | 2014-01-30 | Hitachi, Ltd. | Raid storage system and rebuild process |
CN102880428B (zh) * | 2012-08-20 | 2015-09-09 | 华为技术有限公司 | 分布式独立磁盘冗余阵列的创建方法及装置 |
CN103942112B (zh) * | 2013-01-22 | 2018-06-15 | 深圳市腾讯计算机***有限公司 | 磁盘容错方法、装置及*** |
CN105893188B (zh) * | 2014-09-30 | 2018-12-14 | 伊姆西公司 | 用于加速磁盘阵列的数据重构的方法和装置 |
-
2016
- 2016-10-14 TW TW105133252A patent/TWI607303B/zh not_active IP Right Cessation
-
2017
- 2017-08-22 US US15/683,378 patent/US20180107546A1/en not_active Abandoned
- 2017-09-14 CN CN201710825699.9A patent/CN107957850A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
TWI607303B (zh) | 2017-12-01 |
US20180107546A1 (en) | 2018-04-19 |
CN107957850A (zh) | 2018-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10140041B1 (en) | Mapped RAID (redundant array of independent disks) in a data storage system with RAID extent sub-groups that are used to perform drive extent allocation and data striping for sequential data accesses to a storage object | |
TWI702495B (zh) | 對使用者資料執行選擇性下伏暴露映射之設備、方法以及多模式儲存裝置 | |
US10365983B1 (en) | Repairing raid systems at per-stripe granularity | |
US10146447B1 (en) | Mapped RAID (redundant array of independent disks) in a data storage system with drive extents allocated to individual RAID extents from individual sub-groups of storage made up of ranges of logical block addresses defined across a group of hard disk drives | |
US10528272B2 (en) | RAID array systems and operations using mapping information | |
US8819338B2 (en) | Storage system and storage apparatus | |
KR100392382B1 (ko) | 동적 크기 변경 및 메타 데이터 양의 최소화를 위한 논리볼륨 관리 방법 | |
US20130013880A1 (en) | Storage system and its data processing method | |
CN110806839B (zh) | 存储控制的方法、记忆装置、存储器控制器及存储服务器 | |
JP2017091546A (ja) | 多重モード動作のための多重パーティションを含む格納装置、及びその動作方法 | |
US20080270719A1 (en) | Method and system for efficient snapshot operations in mass-storage arrays | |
JP2007012061A (ja) | 記憶データ構造用の冗長性 | |
US11256447B1 (en) | Multi-BCRC raid protection for CKD | |
US11327668B1 (en) | Predictable member assignment for expanding flexible raid system | |
US11789873B2 (en) | System and method for LBA-based RAID | |
TWI607303B (zh) | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 | |
JP2019128960A (ja) | データストレージシステム及びキーバリューペアのオブジェクトにアクセスする方法 | |
US11526447B1 (en) | Destaging multiple cache slots in a single back-end track in a RAID subsystem | |
US7188303B2 (en) | Method, system, and program for generating parity data | |
WO2016112824A1 (zh) | 存储的处理方法、装置和存储设备 | |
US11314608B1 (en) | Creating and distributing spare capacity of a disk array | |
US11868637B2 (en) | Flexible raid sparing using disk splits | |
US11327666B2 (en) | RAID member distribution for granular disk array growth | |
US11449237B2 (en) | Targetless snapshot system replication data pointer table | |
KR102032878B1 (ko) | 플래시 메모리 컨트롤러의 에러 정정 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |