TW202145011A - 用於資料恢復之方法及系統、以及儲存陣列控制器 - Google Patents
用於資料恢復之方法及系統、以及儲存陣列控制器 Download PDFInfo
- Publication number
- TW202145011A TW202145011A TW110116395A TW110116395A TW202145011A TW 202145011 A TW202145011 A TW 202145011A TW 110116395 A TW110116395 A TW 110116395A TW 110116395 A TW110116395 A TW 110116395A TW 202145011 A TW202145011 A TW 202145011A
- Authority
- TW
- Taiwan
- Prior art keywords
- storage element
- data
- storage
- read
- space
- Prior art date
Links
Images
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
- 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/1088—Reconstruction on already foreseen single or plurality of spare disks
-
- 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
-
- 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/1096—Parity calculation or recalculation after configuration or reconfiguration of the system
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication 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
- 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/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
Abstract
一種方法可包括:將第一儲存元件及第二儲存元件作為冗餘陣列進行操作,所述冗餘陣列被配置成使用同位資訊自故障儲存元件恢復資訊;基於第一儲存元件的故障情況,以具有至少局部讀取能力的故障彈性模式操作第一儲存元件;以及在第二儲存元件的同位空間中對來自第一儲存元件的資訊進行重建。在第二儲存元件的同位空間中對來自第一儲存元件的資訊進行重建可包括:將資訊自第一儲存元件複製至第二儲存元件的同位空間。所述方法可更包括:將經重建的資訊自第二儲存元件的同位空間複製至替換儲存元件。
Description
本揭露大體而言是有關於儲存器,且更具體而言是有關於使用同位空間作為恢復空間進行資料恢復之系統、方法以及元件。
儲存系統可藉由使用來自另一儲存元件的同位資訊對資料進行重建來自故障儲存元件恢復資料。
在此先前技術部分中揭露的以上資訊僅用於增強對本發明的背景的理解,且因此其可能含有不構成先前技術的資訊。
在一些實施例中,故障彈性儲存元件可能夠在維持局部能力的同時以各種彈性模式進行操作,或者儘管存在內部故障亦能夠恢復至全部功能。儲存元件可維持局部能力所採用的方式中的一者是在一些情況下以唯讀模式進行操作,其中儲存元件可對來自主機的讀取請求作出因應,但若儲存元件接收到來自主機的寫入請求,則儲存元件可返送錯誤訊息。在RAID-0儲存系統中,可藉由對構成條帶(stripe)的條(strip)進行重新分配來適應儲存元件可轉變至以唯讀模式進行操作的可能性,所述條帶用於在儲存元件已轉變至以唯讀模式進行操作之後實行的任何寫入操作。
根據本發明的實施例,提供一種操作包括儲存媒體的儲存元件的方法,所述方法包括:由所述儲存元件確定所述儲存元件處於如下的第一故障狀態:藉由對所述儲存元件進行電源循環或者藉由將所述儲存媒體格式化,有可能自所述第一故障狀態恢復;由所述儲存元件確定所述儲存元件處於如下的第二故障狀態:藉由以降低的效能、以降低的容量或者以唯讀模式操作所述儲存元件,有可能自所述第二故障狀態局部恢復;以及以降低的效能、以降低的容量或者以所述唯讀模式操作所述儲存元件。
在一些實施例中,所述方法更包括:由所述儲存元件確定所述儲存元件處於與所述第一故障狀態及所述第二故障狀態不同的第三故障狀態;以及以如下的模式操作所述儲存元件:在所述模式中不實行讀取操作及寫入操作,且在所述模式中所述儲存元件因應於所接收的讀取命令或寫入命令而返送錯誤,其中:所述儲存元件包括控制器,所述控制器包括第一核心及第二核心,且所述第三故障狀態包括其中所述第一核心確定所述第二核心已出現故障的子狀態。
在一些實施例中,所述方法更包括:自主機接收關於所述儲存元件的狀況的查詢;以及使用與狀況階層中的狀況對應的狀況來對所述查詢作出因應。
在一些實施例中,所述狀況階層包括第一層階,所述第一層階包括:完全彈性狀況,對應於所述第一故障狀態;以及局部彈性狀況,對應於所述第二故障狀態。
在一些實施例中,所述局部彈性狀況包括指示能力損失的第一子狀況,所述第一子狀況包括:第一子子狀況,指示以永續唯讀模式進行的操作;以及第二子子狀況,指示以非永續唯讀模式進行的操作。
在一些實施例中,所述接收所述查詢包括:經由快速非揮發性記憶體(nonvolatile memory express,NVMe)介面接收所述查詢,且所述對所述查詢作出因應包括:經由所述快速非揮發性記憶體(NVMe)介面作出因應。
在一些實施例中,所述第一故障狀態包括第一子狀態,在所述第一子狀態中所述儲存元件的控制器的程式執行錯誤已導致將不正確的資料寫入至所述儲存媒體;所述確定所述儲存元件處於所述第一故障狀態包括:確定指標超出範圍;且所述第一故障狀態包括第二子狀態,在所述第二子狀態中自所述儲存元件的控制器最近寫入至儲存媒體以來已出現所述控制器的程式執行錯誤。
在一些實施例中,所述方法更包括將所述儲存媒體的一部分重新格式化,其中所述重新格式化包括:將整個所述儲存媒體重新格式化。
在一些實施例中,所述方法包括以降低的效能操作所述儲存元件。
在一些實施例中,所述以降低的效能操作包括:自連接至所述儲存元件的主機接收包括資料的寫入命令;將所述資料寫入至所述儲存媒體;以及向所述主機發送命令完成,其中所述將所述資料寫入至所述儲存媒體與所述向所述主機發送所述命令完成是作為同步寫入的一部分而被實行。
在一些實施例中,所述以降低的效能操作包括:對所述儲存媒體實行第一寫入;在與所述降低的效能對應的間隔期間進行等待;以及對所述儲存媒體實行第二寫入。
在一些實施例中,所述方法包括以降低的容量操作所述儲存元件。
根據本發明的實施例,提供一種儲存元件,所述儲存元件包括:處理電路;以及儲存媒體,所述處理電路被配置成:確定所述儲存元件處於如下的第一故障狀態:藉由對所述儲存元件進行電源循環或者藉由將所述儲存媒體格式化,有可能自所述第一故障狀態恢復;確定所述儲存元件處於如下的第二故障狀態:藉由以降低的效能、以降低的容量或者以唯讀模式操作所述儲存元件,有可能自所述第二故障狀態局部恢復;以及以降低的效能、以降低的容量或者以所述唯讀模式操作所述儲存元件。
在一些實施例中,所述處理電路更被配置成:自主機接收關於所述元件的狀況的查詢;以及使用與狀況階層中的狀況對應的狀況來對所述查詢作出因應,其中所述狀況階層包括第一層階,所述第一層階包括:完全彈性狀況,對應於所述第一故障狀態;以及局部彈性狀況,對應於所述第二故障狀態。
在一些實施例中,所述接收所述查詢包括:經由快速非揮發性記憶體(NVMe)介面接收所述查詢,且所述對所述查詢作出因應包括:經由所述快速非揮發性記憶體(NVMe)介面作出因應。
在一些實施例中,所述處理電路被配置成以降低的效能操作所述儲存元件,其中所述以降低的效能操作包括:對所述儲存媒體實行第一寫入;在與所述降低的效能對應的間隔期間進行等待;以及對所述儲存媒體實行第二寫入。
根據本發明的實施例,提供一種系統,所述系統包括儲存元件,所述儲存元件包括:處理構件;以及儲存媒體,所述處理構件被配置成:確定所述儲存元件處於如下的第一故障狀態:藉由對所述儲存元件進行電源循環或者藉由將所述儲存媒體格式化,有可能自所述第一故障狀態恢復;確定所述儲存元件處於如下的第二故障狀態:藉由以降低的效能、以降低的容量或者以唯讀模式操作所述儲存元件,有可能自所述第二故障狀態局部恢復;以及以降低的效能、以降低的容量或者以所述唯讀模式操作所述儲存元件。
在一些實施例中,所述處理構件更被配置成:自主機接收關於所述元件的狀況的查詢;以及使用與狀況階層中的狀況對應的狀況來對所述查詢作出因應,其中所述狀況階層包括第一層階,所述第一層階包括:完全彈性狀況,對應於所述第一故障狀態;以及局部彈性狀況,對應於所述第二故障狀態。
在一些實施例中,所述接收所述查詢包括:經由快速非揮發性記憶體(NVMe)介面接收所述查詢,且所述對所述查詢作出因應包括:經由所述快速非揮發性記憶體(NVMe)介面作出因應。
在一些實施例中,所述處理構件被配置成以降低的效能操作所述儲存元件,其中所述以降低的效能操作包括:自連接至所述儲存元件的主機接收包括資料的寫入命令;將所述資料寫入至所述儲存媒體;以及向所述主機發送命令完成,其中所述將所述資料寫入至所述儲存媒體與所述向所述主機發送所述命令完成是作為同步寫入的一部分而被實行。
一種方法可包括:將第一儲存元件及第二儲存元件作為冗餘陣列進行操作,所述冗餘陣列被配置成使用同位資訊自故障儲存元件恢復資訊;基於所述第一儲存元件的故障情況,以具有至少局部讀取能力的故障彈性模式操作所述第一儲存元件;以及在所述第二儲存元件的同位空間中對來自所述第一儲存元件的資訊進行重建。在所述第二儲存元件的所述同位空間中對來自所述第一儲存元件的所述資訊進行重建可包括:將所述資訊自所述第一儲存元件複製至所述第二儲存元件的所述同位空間。所述方法可更包括:將經重建的所述資訊自所述第二儲存元件的所述同位空間複製至替換儲存元件。所述方法可更包括:在所述第二儲存元件的所述同位空間中對用於所述第一儲存元件的寫入操作的第一資料進行更新。所述方法可更包括:將經更新的所述第一資料自所述第二儲存元件的所述同位空間複製至所述替換儲存元件。所述方法可更包括:針對經重建的所述資訊的至少一部分計算同位資訊。在所述第二儲存元件的同位空間中對來自所述第一儲存元件的所述資訊進行重建可至少部分地藉由後台處理來實行。在所述第二儲存元件的同位空間中對來自所述第一儲存元件的所述資訊進行重建可至少部分地藉由批次處理來實行。來自所述第一儲存元件的所述資訊可包括資料。所述方法可更包括:基於所述第二儲存元件的所述同位空間的重建點讀取用於所述第一儲存元件的讀取操作的第一資料。用於所述讀取操作的所述第一資料可自所述第一儲存元件讀取。用於所述讀取操作的所述第一資料可自所述第二儲存元件的所述同位空間中的經重建的所述資訊讀取。所述方法可更包括:在所述第二儲存元件的所述同位空間中對用於所述第一儲存元件的寫入操作的第一資料進行更新;以及自所述第二儲存元件的所述同位空間讀取用於所述第一儲存元件的讀取操作的經更新的所述第一資料。所述方法可更包括:接收用於所述第一儲存元件的寫入操作的寫入資料;以及將所述寫入資料寫入至所述第二儲存元件的所述同位空間。
一種系統可包括:控制器;第一儲存元件;以及第二儲存元件,其中所述第一儲存元件能夠基於所述第一儲存元件的故障情況而以具有至少局部讀取能力的故障彈性模式進行操作,且其中所述控制器可被配置成:將所述第一儲存元件及所述第二儲存元件作為冗餘陣列進行操作,所述冗餘陣列被配置成使用同位資訊自故障儲存元件恢復資訊;以及在所述第二儲存元件的同位空間中對來自所述第一儲存元件的資訊進行重建。所述控制器可更被配置成將經重建的所述資訊自所述第二儲存元件的所述同位空間複製至替換儲存元件。所述控制器可更被配置成基於所述第二儲存元件的所述同位空間的重建點自所述第一儲存元件讀取用於讀取操作的第一資料。所述控制器可更被配置成:接收用於所述第一儲存元件的寫入操作的寫入資料;以及將所述寫入資料寫入至所述第二儲存元件的所述同位空間。
一種儲存陣列控制器可包括邏輯,所述邏輯被配置成:將第一儲存元件、第二儲存元件及第三儲存元件作為具有同位的獨立儲存元件冗餘陣列(redundant array of independent storage device,RAID)進行操作,其中所述第一儲存元件被配置成基於所述第一儲存元件的故障情況而以具有至少局部讀取能力的故障彈性模式操作所述第一儲存元件;以及藉由將資訊自所述第一儲存元件複製至所述第二儲存元件的同位空間而基於所述第一儲存元件的所述故障情況對來自所述第一儲存元件的資訊進行重建。所述邏輯可更被配置成基於所述第二儲存元件的所述同位空間的重建點自所述第一儲存元件讀取用於讀取操作的資料。
以下結合附圖陳述的詳細說明旨在作為對根據本揭露所提供的用於儲存元件及包含儲存元件的系統的彈性操作的系統及方法的示例性實施例的說明,而不旨在代表本揭露可被構造或利用的唯一形式。本說明結合所示實施例陳述本揭露的特徵。然而應理解,可藉由亦旨在囊括於本揭露的範圍內的不同實施例來達成相同或等效的功能及結構。如本文中其他地方所表明,相同的部件編號旨在指示相同的部件或特徵。
在一些實施例中,故障彈性儲存元件可能夠以各種彈性模式進行操作且能夠維持局部能力,或者儘管存在內部故障亦能夠恢復至全部功能。舉例而言,因應於溫度感測器故障,儲存元件可以降低的速率進行操作或者以降低的速率進行寫入操作,或者儲存元件可完全停止實行寫入操作。因應於可能已破壞儲存媒體的暫時故障,儲存元件可將儲存媒體重新格式化。因應於未破壞儲存媒體的暫時故障,儲存元件可使電源循環。儲存元件可維持局部能力所採用的方式中的一者是在一些情況下以唯讀模式進行操作,其中儲存元件可對來自主機的讀取請求作出因應,但若儲存元件接收到來自主機的寫入請求,則儲存元件可返送錯誤訊息。儲存元件亦可將即將過期的資料移動至救援區域,使得所述資料將不會因過期而丟失。在RAID-0儲存系統中,可藉由對構成條帶的條進行重新分配來適應儲存元件可轉變至以唯讀模式進行操作的可能性,所述條帶用於在儲存元件已轉變至以唯讀模式進行操作之後實行的任何寫入操作。
圖1示出根據本揭露示例性實施例的包括連接至一或多個儲存元件110(或「驅動機」)的主機105的計算系統。儲存元件110可經由所示的容積管理器115(以下進一步詳細論述)連接至主機105,或者儲存元件110可直接連接至主機105。在一些實施例中,儲存元件110可能會經歷內部故障情況,且儲存元件可表現出各種彈性行為(如以下進一步詳細論述),以減緩故障情況的系統級影響。每一儲存元件110可為固態驅動機(solid state drive,SSD)且每一儲存元件110可包括控制器120(或「控制電路」)及儲存媒體125(例如,反及(not AND,NAND)快閃記憶體)。儲存元件110中最小的可抹除單元可被稱為「區塊(block)」,且儲存元件110中最小的可寫入單元可被稱為「頁(page)」。每一儲存元件110可具有作為適合於持久儲存元件的多個形狀因數(包括但不限於2.5”、1.8”、MO-297、MO-300、M.2以及企業及資料中心SSD形狀因數(Enterprise and Data Center SSD Form Factor,EDSFF))中的任一者的形狀因數,且每一儲存元件110可具有作為適合於持久儲存元件的多個介面(包括周邊組件互連(Peripheral Component Interconnect,PCI)、快速PCI(PCI express,PCIe)、乙太網路、小型電腦系統介面(Small Computer System Interface,SCSI)、串列進階技術附接(serial advanced technology attachment,SATA)及串列附接SCSI(Serial Attached SCSI,SAS))中的任一者的電性介面,每一儲存元件110可經由所述電性介面連接至主機105。
儲存媒體125可具有保持週期(其可取決於儲存媒體125的使用歷史,且如此一來可在儲存媒體125內有所變化);已儲存較保持週期長的時間的資料(即,具有超過保持週期的年齡的資料)可能會變得不可靠且可被認為已過期。可使用錯誤糾正碼將資料儲存於儲存媒體125中,錯誤糾正碼可為區塊碼。當自儲存媒體125讀取資料時,可自儲存媒體125讀取被稱為碼區塊的大量原始資料,且可嘗試對所述大量原始資料進行解碼。若嘗試失敗,則可進行附加的嘗試(讀取再審(read retrial))。使用儲存媒體125的一部分(例如,區塊)可能會使保持週期變短至不可接受的點降低,且所述區塊可被分類為「壞區塊」。為避免使得此種情況導致整個儲存媒體125不可操作,可存在被稱為「壞區塊管理預留空間」的預留空間(例如,包括於每一快閃記憶體晶粒中或每一快閃記憶體平面中),且控制器120或者快閃記憶體晶粒內部或快閃記憶體平面內部的另一控制器可開始使用預留的區塊並停止使用壞區塊。
圖2A是根據本揭露示例性實施例的故障情況(或「故障狀態」)的表,所述故障情況各自被標有情形辨識符(「情形ID」)。情形1是如下的任何故障情況:在所述故障情況中儲存元件110不能再實行讀取操作或寫入操作且無法藉由使電源循環或將儲存媒體重新格式化來解決所述故障情況。儲存元件110以此種方式表現的狀態可具有各種子狀態,其中例如每一子狀態對應於不同的故障機制。此種狀態或故障情況(其中儲存元件110不能再實行讀取操作或寫入操作且無法藉由使電源循環或將儲存媒體重新格式化來解決所述故障情況)可例如因控制器的韌體的一部分變得被破壞(在此種情形中,控制器可能會重新啟動至安全模式,在安全模式中被破壞的指令不被執行)或因儲存元件110中的處理電路的故障(例如,管理與儲存媒體的交互作用但不負責與主機105的通訊的處理電路的故障)而引起。當出現此種類型的故障情況時,儲存元件110可以錯誤訊息來對來自主機105的任何讀取命令或寫入命令作出因應。
情形2是如下的任何故障情況:(i)在所述故障情況中儲存元件110不能再實行讀取操作或寫入操作;且(ii)藉由使儲存元件110的電源循環或藉由將儲存媒體重新格式化,有可能自所述故障情況恢復。此種故障情況可例如因儲存元件110的控制器120的程式執行錯誤(例如,由於控制器120的隨機存取記憶體(random-access memory,RAM)中的位元翻轉而超出範圍的指標(pointer)或者由於位元翻轉而不正確的指令)而引起。若程式執行錯誤尚未使控制器120將不正確的資料寫入至儲存媒體125(例如,若自控制器最近寫入至儲存媒體以來發生了程式執行錯誤),則使儲存元件進行電源循環可足以將儲存元件110恢復至正常操作;若程式執行錯誤已使控制器120將錯誤的資料寫入至儲存媒體125,則將儲存媒體125重新格式化可足以將儲存元件110恢復至正常操作。
情形3是如下的任何故障情況:可藉由以唯讀模式操作儲存元件110來減緩所述故障情況,且對於所述故障情況而言將儲存媒體125重新格式化將不會恢復全部功能。此種故障的實例包括(i)溫度感測器故障以及(ii)儲存媒體125的一部分已轉變至唯讀模式。在溫度感測器故障的情形中,可藉由確定溫度感測器讀取超出範圍(例如,已超過臨限溫度)來偵測故障,且在此種情形中,可藉由避免寫入操作(其可耗散較讀取操作多的電力)來降低儲存元件110過熱的風險。舉例而言,對於快閃記憶體儲存媒體125而言,若快閃記憶體平面或晶粒耗盡用於運行時間壞區塊管理的壞區塊管理預留空間,則儲存媒體125的一部分可能會發生向唯讀模式的轉變。舉例而言,在嘗試實行讀取操作的同時,儲存元件110可能會嘗試解碼資料項不成功、確定儲存資料的區塊是壞區塊且在將所述資料自壞區塊移動至壞區塊管理預留空間時確定剩餘的壞區塊管理預留空間小於臨限大小且因此不足以確保平面或晶粒的可靠性。接著儲存元件110可確定不再實行壞區塊管理且轉變至唯讀模式。唯讀模式的操作在以下進行進一步詳細論述。如本文中所使用的「資料項」是在一個操作中正在被處理的任何數量的資料(例如,對碼區塊進行解碼而產生的資料可為資料項)。
情形4是可藉由以直寫模式(write-through mode)操作儲存元件110而得到減緩的任何故障情況。舉例而言,若儲存元件110中的電源備用電容器出現故障,則所述元件可因應於自主機接收的任何寫入命令而在向主機105發送命令完成之前完成向儲存媒體125的寫入,使得若在向儲存媒體125的寫入已完成之前電源出現故障,則主機不會被不正確地告知寫入已成功完成。以直寫模式進行操作可能會導致效能下降(在通量及延遲方面)。
情形5是可藉由以降低功耗的方式操作儲存元件110而得到減緩的任何故障情況。舉例而言,在溫度感測器故障的情形中,儲存元件110可以上述的唯讀模式進行操作或者儲存元件110可降低實行操作(例如,可耗散較讀取操作多的電力的寫入操作)的速率,以減少儲存元件110中的功耗。舉例而言,儲存元件110可向儲存媒體實行第一寫入,接著在與降低的效能對應的間隔期間進行等待(所述等待使得實行寫入操作的速率降低);且接著向儲存媒體實行另一(例如,第二)寫入。
情形6是如下的任何故障情況:可藉由以唯讀模式操作儲存元件110來減緩所述故障情況,且對於所述故障情況而言將儲存媒體125重新格式化將恢復全部功能。圖2A所示表的第三行針對每一情形指示有效使用者資料是否仍保持可用以及儲存元件110是否可藉由例如將儲存媒體125重新格式化而恢復至全部功能。
如圖2A中所列的情形所例示,在一些實施例中,儲存元件110可達成三個級別的故障彈性,即完全彈性模式(fully resilient mode)、局部彈性模式(partially resilient mode)及易損模式(vulnerable mode)。在完全彈性模式中,儲存元件110可以「自愈(self-healing)」特徵進行操作,且儲存元件110可能夠藉由對操作(例如儲存媒體125的電源循環或格式化)進行重置來恢復全部功能(但元件中的使用者資料可能會丟失)。
在局部彈性模式中,當存在故障情況時,儲存元件110可以較低的效能、較小的容量或降低的能力進行操作。舉例而言,如上所述,若電源備用電容器出現故障,則可僅在資料被寫入至儲存媒體125之後(即,僅可實行同步寫入)完成所有寫入(即,命令完成可被發送至主機105),進而減慢儲存元件110的操作並降低儲存元件110的效能。在此種情況下,可保留使用者資料。若壞區塊管理運行時間壞區塊(run time bad block,RTBB)的預留空間耗盡,則儲存元件110可以較小的容量進行操作。在此種情況下,可自磁碟空間排除儲存元件110中受影響的晶粒,且整體磁碟容量可減小。丟失的空間上的使用者資料可能會丟失。舉例而言,若輸入及/或輸出(inputs and/or output,IO)確定性中的集合或分區名稱空間中的區不能再接受新的資料寫入,則可自磁碟空間排除所述集合或區,但剩餘的磁碟空間仍可用於讀取操作及寫入操作。所述區或集合上的使用者資料可能會丟失。
若儲存元件110不容許進行寫入操作,則儲存元件110可以降低的能力進行操作並切換至唯讀模式。儲存元件110可能夠以兩種類型的唯讀模式進行操作:永續唯讀模式(sustainable read-only mode)(其可被稱為「第一唯讀模式」)及非永續唯讀模式(unsustainable read-only mode)(其可被稱為「第二唯讀模式」)。在永續唯讀模式中,儲存元件110可在儲存媒體125的保持週期之後繼續服務於讀取請求。當在永續唯讀模式中進行操作不可行時(例如當不存在足夠的未被使用儲存空間來建立救援空間(以下進一步詳細論述)時),可採用非永續唯讀模式。當轉變至非永續唯讀模式時,儲存元件110可向主機105發送以下通知:儲存元件110正以第二(非永續)唯讀模式進行操作;以及將容許儲存於儲存元件110中的資料項過期(例如,在所述資料項各自的保持週期結束時)。在非永續唯讀模式中,儲存元件110可在儲存媒體125的保持週期期間繼續服務於讀取請求,且若儲存元件110遇到資料完整性問題(例如,由在讀取操作期間對資料進行解碼的一或多次不成功的嘗試所偵測),則儲存元件110可報告無效資料區。如上所述,以易損模式進行操作的儲存元件110可能不能實行讀取操作或寫入操作,且可實行平穩退出,進而繼續自主機接收命令並返送錯誤。
在一些實施例中,可定義五種邏輯區塊位址(LBA)空間類型,所述五種LBA空間類型被稱為:(i)實行空間(P)、(ii)低實行力空間(UP)、(iii)唯讀空間(RO)、(iv)揮發性唯讀空間(VRO)及(v)不可存取空間(IA)。實行(P)空間可為包含如下的有效資料的LBA空間:所述有效資料能夠在不犧牲效能的情況下以正常方式被讀取及寫入。低實行力(UP)空間可為包含如下的有效資料的LBA空間:所述有效資料能夠以正常方式被讀取及寫入但效能降低(例如,寫入效能降低)。唯讀(RO)空間可為包含唯讀的有效資料的LBA空間。儲存元件110可以錯誤訊息對自主機引導至此種類型的LBA空間的寫入命令作出因應。唯讀空間中的資料可能會在超過保持週期的一段時間內保持有效。揮發性唯讀(VRO)空間可為唯讀的且儲存元件110可以錯誤訊息對自主機引導至此種類型的LBA空間的寫入命令作出因應。此種類型的LBA空間中的資料可能是暫時有效的,且當所述資料過期時(即,當儲存媒體125中的資料的年齡達到儲存媒體125的保持週期時)可能會變得無效。不可存取(IA)空間可為包含不可自主機存取的無效資料的LBA空間。圖23所示表示出根據本揭露示例性實施例的在表的第一行中辨識的故障情況中的每一者中儲存元件110中可能存在的LBA空間類型的一些組合。被辨識為具有星號(*)的模式可支援主機使用獲取特徵命令來擷取關於LBA空間的詳細資訊。圖2B示出根據本揭露示例性實施例的對「獲取特徵」命令的論證,「獲取特徵」命令可被傳遞至儲存元件110,以向儲存元件110查詢關於儲存元件110的狀態及相關聯參數的值(「IOPS」意指每秒的輸入操作及輸出操作)。
圖2C所示表示出根據本揭露示例性實施例的主機105可用來向儲存元件110查詢關於儲存元件110的狀況的快速非揮發性記憶體(NVMe)命令以及儲存元件110可用來作出因應的處於故障彈性特徵的類別內的枚舉常數的階層。如圖2C中所示,所述階層可包括第一層階,所述第一層階包括完全彈性狀況、局部彈性狀況及易損狀況。亦可對子狀況及子子狀況進行定義。舉例而言,如圖2C中所示,所述局部彈性狀況包括指示能力丟失的第一子狀況,且所述第一子狀況包括:第一子子狀況,指示在永續唯讀模式中進行的操作;以及第二子子狀況,指示在非永續唯讀模式中進行的操作。
圖3A是根據本揭露示例性實施例的以故障彈性模式進行操作的方法的流程圖。在305處,主機105自儲存元件發送或接收資料;在310處,主機105判斷儲存元件中是否已出現錯誤;在315處,儲存元件110實行內部診斷並確定儲存元件110的故障彈性狀況(例如,完全彈性狀況、局部彈性狀況或易損狀況);在320處,儲存元件110基於所述診斷而修改儲存元件110的效能、容量或能力(例如,轉變至唯讀模式);在325處,儲存元件110基於應用程式化介面(application programming interface,API)而根據來自主機105的請求發佈狀況;且在330處,主機105基於所述狀況以給定的頻寬將給定類型的資料路由至儲存元件110或路由至不同的儲存元件110。圖3B是示出根據本揭露示例性實施例的以故障彈性模式進行操作的方法的細節的流程圖。所述方法包括:在335處,由儲存元件確定儲存元件處於如下的第一故障狀態:藉由對儲存元件進行電源循環或者藉由將儲存媒體格式化,有可能自所述第一故障狀態恢復;在340處,由儲存元件確定儲存元件處於如下的第二故障狀態:藉由以降低的效能、降低的容量或以唯讀模式操作儲存元件,有可能自所述第二故障狀態局部恢復;以及在345處,以降低的效能、降低的容量或以唯讀模式操作儲存元件。
亦可構造本文中所揭露的實施例的多個實施例及變型。現場可程式化閘陣列(field programmable gate array,FPGA)或嵌入式處理器可實行內部區塊檢查並向主機105發送關於儲存元件110的狀況的異步更新。可能會發生事件並將所述事件傳輸至主機105(例如,溫度或元件內部的其他參數)。若不存在用於提供通知的元件驅動器特徵,則主機105可按照預定時間表對儲存元件110進行輪詢。FPGA或嵌入式處理器可對儲存元件110的歷史效能進行監測且使用機器學習提供預測分析(例如,處於給定故障彈性狀態的似然度)。可在NVMe規範中引入命令;舉例而言,可擴展NVMe規範的遙測資訊(以報告儲存元件110的狀態)。一些實施例可在例如乙太網路儲存元件或鍵值(key-value,KV)儲存元件中實施。
在一些實施例中,主機可進行以下操作:(i)基於儲存元件110的狀況發送不同的資料類型(例如,例如影像、視訊、文本等檔案類型或者高優先權資料或低優先權資料)(例如,高優先權資料或實時資料可不被寫入至被認為處於局部易損模式中的元件);(ii)若儲存元件110處於局部易損狀態及較低效能狀態,則降低傳輸速率;(iii)若儲存元件110處於局部易損及較低容量狀態,則發送減少的總量的資料;(iv)若儲存元件110處於局部易損的非永續唯讀模式,則以最大可能的速率讀取資料並將資料儲存於別處,以避免超過保持週期(在此種情況下,主機可基於將被複製的資料的量及保持週期來計算所需的資料速率);(v)忽略自易損儲存元件110「讀取」的資料(此乃因所述資料是錯誤的)且在所述資料被主機105接收時簡單地刪除所述資料;(vi)基於控制主機與儲存元件110之間的此種事件的定時的訊息而暫時將讀取/寫入輸入及輸出重新路由至正在進行電源循環或格式化的完全彈性儲存元件110中的高速緩存記憶體。容量已降低的局部易損SSD上的FPGA可對傳入的資料寫入進行過濾且僅將所述資料的一部分寫入至儲存元件110。在一些情形中,所述過濾可包括壓縮。此種FPGA可自主機105接收各種資料(例如,例如影像、視訊、文本等檔案類型或者高優先權資料或低優先權資料)並基於儲存元件110的狀況進行過濾。舉例而言,FPGA可確定高優先權資料不應被寫入至處於局部易損模式的儲存元件110。FPGA可向主機105發送拒絕訊息並給出拒絕的原因。作為另外一種選擇,FPGA可過濾掉特定類型的資料(例如,影像資料)以用於寫入至局部彈性的較低容量狀態儲存元件110。舉例而言,若儲存元件110失去效能(例如,以降低的寫入速率進行操作),則延遲敏感的讀取及寫入可能會被拒絕。
在一些實施例中,如上所述,儲存元件110可以兩種唯讀模式中的一者進行操作,所述兩種唯讀模式可被稱為「永續」(或「第一」)唯讀模式及「非永續」(或「第二」)唯讀模式。在非永續唯讀模式中,儲存元件110可簡單地拒絕儲存元件110可自主機105接收的任何寫入命令,且儲存元件110可進行以下操作:(i)嘗試對未過期的資料執行讀取命令;或者(ii)嘗試執行所有讀取命令,返送由任何成功的解碼嘗試產生的資料且若解碼不成功則返送錯誤碼(對資料項無法被讀取的指示,例如零)。
在永續唯讀模式中,儲存元件110可能夠在儲存媒體125的保持週期之後服務於外部讀取請求。儲存元件110可因應於來自主機105的任何寫入命令而除了返送錯誤訊息之外不採取任何動作,但儲存元件110可出於內部目的而實行向儲存媒體125的寫入,如以下所闡述。為使在保持週期之後保留資料成為可能,儲存元件110可對被稱為「救援空間」的空間進行分配,儲存元件110將即將過期的資料(例如,年齡超過臨限年齡的資料,臨限年齡是基於儲存媒體125的保持週期(例如,是儲存媒體125的保持週期的80%))移動至所述空間,使得資料的過期接著被救援空間的保持週期推遲。若救援空間中的資料即將過期,則可根據需要在救援空間內再次移動所述資料,以防止資料丟失。在一些實施例中,儲存元件110在資料過期之前很早便移動資料,進而利用例如低負載時間段來實行此種移動。如上所述,壞區塊管理預留空間耗盡可能會觸發向永續唯讀模式的轉變。在此種情況下,一旦儲存於受影響的平面或晶粒中的所有資料已被重新定位至救援空間,則受影響的平面或晶粒可能會變成唯讀的且可能會被自儲存元件110的物理位址空間排除。
儲存元件110可跨越整個LBA空間對來自主機105的讀取命令作出因應。由於儲存元件110的物理空間可減小(例如,由於儲存媒體125的一部分已變成唯讀的且儲存媒體125的資料正在被移動(或者已被移動)至救援空間),但元件的邏輯空間保持不變,因此若主機105在無法被映射至物理區塊位址(Physical Block Address,PBA)空間的LBA空間內發送讀取命令,則儲存元件110可返送零。
可自超量配置空間或者自儲存元件110上的任何未被使用空間來分配救援空間。若IO確定性中的集合或分區名稱空間中的區不可寫入,則一旦所有資料被重新定位,所述集合或區便可變成唯讀的且被自物理位址空間排除。可使用名稱空間動態地創建救援空間。可對使用者資料使用一或多個名稱空間,且可為救援空間創建附加的名稱空間。當儲存元件110轉變至永續唯讀模式時,可減小使用者資料的名稱空間中的一或多者的大小且可增大救援空間的名稱空間的大小。
若儲存媒體125的受故障(例如,儲存媒體125內的壞區塊管理預留空間已耗盡)影響的區的大小超過可用救援空間的大小,則儲存元件110可僅移動將最早過期的資料(例如,最老的資料),或者僅移動被標記為重要或與給定檔案類型(例如,影像、視訊或文檔)相關的資料,或者移動相連類型的資料(例如,與檔案相關的所有資料)並留下其他資料。被認為重要的檔案類型集合可為使用者可配置的。在採用KV儲存元件110的一些實施例中,可使用鍵值對來對資料重要性進行壓縮或編碼。
在一些實施例中,儲存元件110可確定可用救援空間的量小於臨限大小且因此不足以支援以永續唯讀模式進行操作,且因此儲存元件110可轉變至非永續唯讀模式。可在第一次偵測到故障時進行此種確定,或者在第一次偵測到故障時儲存元件110可最初轉變至永續唯讀模式,且在一段時間之後救援空間被消耗(例如,因儲存媒體125的故障部分中的資料的持續過期)至可用救援空間減少至小於臨限大小的程度,且接著儲存元件110可自永續唯讀模式轉變至非永續唯讀模式。在自永續唯讀模式轉變至非永續唯讀模式時,儲存元件110可向主機105通知所述轉變,且接著主機105可嘗試在資料過期之前將盡可能多的資料自儲存元件110複製至另一儲存元件。
在一些情況下,資料可能會在一時間段(例如,一天或一小時)內丟失。如此一來,儲存元件110中的FPGA可對驅動機上的資料的性質(例如,老的資料、被標記的資料、連續的資料或按檔案類型的資料)進行監測以便於在儲存元件110轉變至永續唯讀模式時進行轉移。FPGA可對資料進行排隊,或者按照存在次序對將被轉移至救援空間的資料進行排序,且當資料被移動至救援空間中時,FPGA可壓縮資料。一些實施例可在例如乙太網路儲存元件或鍵值(KV)儲存元件中實施。
圖4是根據本揭露示例性實施例的儲存元件110的示意性資料佈局圖。區塊壽命表405列出儲存元件110中的每一區塊的保持週期,且映射表410列出自邏輯區塊位址至物理區塊位址的映射。當儲存元件110轉變至永續唯讀模式時,儲存元件110將資料自故障使用空間415(受故障情況影響的物理空間)複製至救援空間420。若儲存元件110處於正常操作模式(而非處於永續唯讀模式),則將對正常使用空間425中的資料進行處置。由於故障情況導致物理空間損失,因此所使用LBA空間430的大小相應地減小,其中一些先前可用的LBA空間變成未被使用LBA空間435。由控制器120執行的韌體440可如上所述般使資料移動且使所述表更新。
圖5A是根據本揭露示例性實施例的轉變至永續唯讀模式的方法的流程圖。在505處,主機105自儲存元件發送/接收資料;在510處,主機105判斷儲存元件中是否已出現錯誤;在520處,主機105判斷儲存元件是否發生錯誤;在525處,儲存元件110實行內部診斷並轉變至永續唯讀模式;在530處,FPGA可視需要對儲存元件110上的有效資料的性質進行監測(例如,基於資料類型或年齡);在535處,當資料的年齡接近保持週期時,儲存元件110將有效資料重新定位至救援空間;且在540處,儲存元件110可視需要將關於救援空間的狀況及內容的資訊傳輸至主機105,主機105會刷新所述資料。圖5B是示出根據本揭露示例性實施例的以永續唯讀模式進行操作的方法的細節的流程圖。所述方法包括以下操作:在535處,由儲存元件確定儲存元件處於如下的故障狀態:藉由以第一唯讀模式操作儲存元件,有可能自所述故障狀態局部恢復;以及在540處,藉由以下方式以第一唯讀模式操作儲存元件:確定儲存於儲存元件的頁中的第一資料項的年齡已超過臨限年齡且將第一資料項複製至儲存元件中的救援空間中。
在一些實施例中,如上所述,包括儲存元件110的陣列及容積管理器115的RAID-0系統可被構造成適應RAID-0系統的儲存元件110中的任一者向唯讀模式的轉變(例如,向永續唯讀模式的轉變)。在正常操作中,容積管理器115可負責跨越儲存元件110的陣列對資料進行分條,例如將每一條帶的一個條寫入至儲存元件110的陣列中的相應的儲存元件110(每一條帶由此種條構成)。在此種系統中,當儲存元件110的陣列中的任一者轉變至唯讀模式(或「唯讀狀態」)時,RAID-0系統轉變至操作模式(其可被稱為「緊急模式」),且儲存元件110的陣列的容積管理器115進行以下操作:(i)在剩餘的未受影響的儲存元件110(在讀取-寫入狀態中剩餘的儲存元件110)中的每一者上為元資料及來自故障儲存元件110的救援使用者資料分配救援空間;以及(ii)維護映射表(其可被稱為「緊急映射表」)。每一儲存元件110上的救援空間可能夠儲存n個條,其中n=R/(條大小)、R = C/M且C是儲存元件110的陣列中的儲存元件中的每一者的容量。可在主機中(例如,在硬體中或在軟體或韌體中或者在硬體、軟體及韌體的組合中)實施容積管理器115或者在RAID-0系統(例如,其可被容納於與主機分開的殼體中)的RAID控制器中實施容積管理器115。在一些實施例中,在FPGA中實施容積管理器115。RAID-0系統可為自包含式的且可使儲存元件110的陣列虛擬化,使得自主機的角度而言,RAID-0系統如單個儲存元件110般進行操作。一般而言,容積管理器可為處理電路(以下進一步詳細論述),所述處理電路被配置(例如,由合適的軟體或韌體)成實行本文中闡述的由容積管理器實行的操作。
當RAID-0系統正以緊急模式進行操作且自主機105接收到要求將條帶寫入至儲存元件110的陣列的寫入命令時,容積管理器115檢查緊急映射表以判斷條帶是否被「註冊」(即,是否已為條帶製作表項)。若尚未製作表項(即,若條帶是「開放映射的」,即未被註冊),則容積管理器115在緊急映射表中製作表項,以指示通常已被寫入至故障儲存元件110(已轉變至唯讀模式的儲存元件110)的條將被寫入的位置。若緊急映射表已包含用於條帶的表項,則使用所述表項確定通常已被寫入至故障儲存元件110的條將被寫入的位置。在任一情形中,接著容積管理器115將每一條寫入至儲存元件110的陣列(如圖6A中所示),進而將通常已被寫入至故障儲存元件110的條605寫入至另一儲存元件110中的救援空間。
當自主機105接收到要求自儲存元件110的陣列讀取條帶的讀取命令時,容積管理器115檢查緊急映射表,以判斷是否已為條帶製作表項。若尚未製作表項,則如圖6B中所示,容積管理器115接著將讀取條帶,在正常操作中自包括故障儲存元件110在內的儲存元件110中的每一者讀取條。若緊急映射表包含用於條帶的表項,則使用所述表項確定通常已自故障儲存元件110讀取的條將被讀取的位置。
通常已被寫入至故障儲存元件110的條的重新映射可例如如下所述般完成。儲存元件110的陣列中的每一儲存元件110可具有驅動機辨識號碼(或「驅動機ID」),驅動機辨識號碼可為介於零與M-1之間的號碼,其中M是儲存元件110的陣列中的儲存元件110的數目。容積管理器115可重新指派驅動極辨識號碼,例如對儲存元件110的陣列中的每一儲存元件110指派替代驅動機辨識號碼,以用於對註冊的條帶實行讀取操作或寫入操作(對未註冊的條帶的讀取操作可繼續使用原始驅動機辨識號碼)。可使用以下公式產生替代驅動機辨識號碼:
若驅動機ID < 故障驅動機ID,
則新驅動機ID = 驅動機ID
否則,
新驅動機ID = ((驅動機ID – 1) + (M – 1)) mod (M-1)
此效果可為:(i)對具有較故障儲存元件的原始驅動機辨識號碼小的辨識號碼的每一儲存元件指派相應的原始驅動機辨識號碼;以及(ii)對具有較第一儲存元件的原始驅動機辨識號碼大的辨識號碼的每一儲存元件指派相應的原始驅動機辨識號碼減去一。
在使用替代驅動機號碼的情況下,可使用以下公式來辨識通常已被寫入至故障儲存元件110的條可被寫入至的目標驅動機:目標驅動機ID = sid % (M-1),其中目標驅動機ID是目標驅動機的替代驅動機辨識號碼,sid是通常已被寫入至故障儲存元件110的條的條辨識符,且「%」是模數運算符。
圖6C是根據本揭露示例性實施例的具有四個儲存元件110(即,M=4)的RAID-0系統的示意圖,其中驅動機1已轉變至唯讀模式。在寫入條帶1時,目標驅動機ID由以下方程式隱式確定:
目標驅動機ID = 條ID % (M-1) = 1,
即,目標驅動機是具有替代驅動機辨識號碼1(即,驅動機2)的儲存元件110。在驅動機內,救援空間可被分成大小與條大小相同的條(被稱為「救援條」或「R-條」)。緊急映射表可包含表項(1,0)(表項(1,0)的第一個元素是條帶ID(條帶1),且表項(1,0)的第二個元素是目標驅動機上的R-條ID)。如此一來,緊急映射表中的表項(1,0)意指條(1,1)被映射至R-條(1,0)。
RAID-0系統可被構造成藉由儲存元件110的陣列中的一或多者來適應向永續唯讀模式或向非永續唯讀模式的轉變。在轉變至非永續唯讀模式的情形中,故障儲存元件110的註冊的條可被永久寫入至另一元件的救援空間。在轉變至非永續唯讀模式的情形中,容積管理器115可以例如足以在所有資料過期之前將所有資料自故障儲存元件110移動的速率將資料自故障儲存元件110遷移至未受影響的儲存元件110。伺服器可基於資料的量及過期前剩餘時間來計算此速率。
圖7A是根據本揭露示例性實施例的操作RAID-0系統的方法的流程圖。在705處,RAID-0系統中的儲存元件110具有故障且轉變至唯讀模式;在710處,受影響的儲存元件110實行內部診斷且確定儲存元件110的故障彈性狀況是局部彈性及唯讀的;在715處,容積管理器115確定受影響的儲存元件110處於唯讀模式且對未受影響的(「活的」)儲存元件的ID進行重新指派;在720處,容積管理器115接收寫入操作,將表項添加至緊急映射表以指示受影響的元件的條被重新定向至目標(未受影響的)儲存元件110且基於未受影響的儲存元件的新的驅動機ID將整個條寫入至目標(未受影響的)儲存元件的救援空間;且在725處,容積管理器115自主機105接收讀取命令且自RAID系統的未受影響的活的儲存元件110讀取條帶的所有條,同時自目標(未受影響的)儲存元件的救援空間讀取受影響的儲存元件的條。
圖7B是示出根據本揭露示例性實施例的操作RAID-0儲存系統的方法的細節的流程圖。所述方法包括:在730處,確定第一儲存元件處於唯讀狀態且第二儲存元件處於讀取-寫入狀態;在735處,藉由將第一條帶的一部分寫入至第二儲存元件且在映射表中為第一條帶製作表項來向儲存系統實行第一條帶的寫入操作;在740處,藉由自第一儲存元件及第二儲存元件讀取第二條帶的一部分來自儲存系統實行第二條帶的第一讀取操作;以及在745處,藉由確定映射表包括第一條帶的表項且自第二儲存元件讀取第一條帶的一部分來自儲存系統實行第一條帶的第二讀取操作。
本文中闡述的各種部件(例如主機105或控制器120)可為或可包含處理電路。在本文中使用用語「處理電路」或「處理構件」來意指用於處理資料或數位訊號的硬體、韌體及軟體的任何組合。處理電路硬體可包括例如特殊應用積體電路(application specific integrated circuit,ASIC)、通用或專用中央處理單元(central processing unit,CPU)、數位訊號處理器(digital signal processor,DSP)、圖形處理單元(graphics processing unit,GPU)及可程式化邏輯元件,例如現場可程式化閘陣列(FPGA)。在如本文中所使用的處理電路中,每一功能由被配置(即,硬接線)成實行所述功能的硬體來實行,或者由被配置成執行儲存於非暫時性儲存媒體中的指令的更通用的硬體(例如,CPU)來實行。處理電路可製作於單個印刷電路板(printed circuit board,PCB)上或者分佈於若干互連的PCB之上。處理電路可包含其他處理電路;舉例而言,處理電路可包括在PCB上互連的兩個處理電路、FPGA及CPU。
如本文中所使用的某事物「的一部分」意指所述事物「的至少一些」,且因此可意指少於所述事物的全部或全部所述事物。如此一來,事物「的一部分」包括作為特殊情形的整個事物,即整個事物是所述事物的一部分的實例。如本文中所使用的用語「或」應被解釋為「及/或」,進而使得例如,「A或B」意指「A」或「B」或「A及B」中的任一者。
在本揭露部分的背景技術部分中提供的背景僅被包括來設定上下文,且並不承認此部分的內容是先前技術。所闡述的組件中的任一者或組件的任何組合(例如,在本文中所包括的任何系統圖中)可用於實行本文中所包括的任何流程圖的操作中的一或多者。此外,(i)操作是示例性操作且可涉及未明確涵蓋的各種附加步驟,且(ii)操作的時間次序可發生變化。
如本文中所使用的,當方法(例如,調整)或第一數量(例如,第一變數)被稱為「基於」第二數量(例如,第二變數)時,其意指第二數量是所述方法的輸入或者影響第一數量,例如,第二數量可為計算第一數量的函數的輸入(例如,唯一的輸入,或者若干輸入中的一者),或者第一數量可等於第二數量,或者第一數量可相同於第二數量(例如,儲存於記憶體中的相同的一或多個位置處)。
應理解,儘管可在本文中使用用語「第一」、「第二」、「第三」等來闡述各種部件、組件、區、層及/或區段,但該些部件、組件、區、層及/或區段不應受限於該些用語。該些用語僅用於區分各個部件、組件、區、層或區段。因此,在不背離本發明概念的精神及範圍的條件下,本文中所論述的第一部件、組件、區、層或區段可被稱為第二部件、組件、區、層或區段。
為易於說明,本文中可能使用例如「位於…之下(beneath)」、「位於…下方(below)」、「下部的(lower)」、「位於…下面(under)」、「位於…上方(above)」、「上部的(upper)」等空間相對性用語來闡述圖中所示的一個部件或特徵與另一(其他)部件或特徵的關係。應理解,此種空間相對性用語旨在除圖中所繪示的定向外亦囊括元件在使用或操作中的不同定向。舉例而言,若圖中的元件被上下翻轉,則被闡述為位於其他部件或特徵「下方」或位於其他部件或特徵「之下」或位於其他部件或特徵「下面」的部件將被定向為位於其他部件或特徵「上方」。因此,示例性用語「位於…下方」及「位於…下面」可囊括上方及下方二者的定向。元件可具有其他定向(例如,旋轉90度或處於其他定向),且本文中所使用的空間相對性描述語可同樣相應地進行解釋。另外,亦將理解,當稱層位於兩個層「之間」時,所述層可為所述兩個層之間的唯一層,或者亦可存在一或多個中間層。
本文中所使用的術語僅出於闡述特定實施例的目的,而不旨在限制本發明概念。如本文中所使用的用語「實質上(substantially)」、「大約(about)」及相似用語用作近似用語、而並非用作程度用語,且旨在考慮到此項技術中具有通常知識者將知的量測值或計算值的固有偏差。
除非上下文清楚地另外指明,否則本文中所使用的單數形式「一(a及an)」旨在亦包括複數形式。更應理解,當在本說明書中使用用語「包括(comprises及/或comprising)」時,是指明所述特徵、整數、步驟、操作、部件及/或組件的存在,但不排除一或多個其他特徵、整數、步驟、操作、部件、組件及/或其群組的存在或添加。本文中所使用的用語「及/或(and/or)」包括相關所列項中一或多個項的任意及所有組合。例如「…中的至少一者(at least one of)」等表達當出現在一系列部件之後時,是修飾整個系列的部件而並非修飾所述系列的各別部件。此外,在闡述本發明概念的實施例時使用「可(may)」是指「本揭露的一或多個實施例」。另外,用語「示例性的」旨在指實例或例示。本文中所使用的用語「使用(use)」、「正使用(using)」、及「被使用(used)」可被視為分別與用語「利用(utilize)」、「正利用(utilizing)」、及「被利用(utilized)」同義。
應理解,當稱一部件或層位於另一部件或層「上」、「連接至」、「耦合至」或「相鄰於」另一部件或層時,所述部件或層可直接位於所述另一部件或層上、直接連接至、直接耦合至或直接相鄰於所述另一部件或層,或者可存在一或多個中間部件或層。相比之下,當稱一部件或層「直接」位於另一部件或層「上」、「直接連接至」、「直接耦合至」或「緊鄰於」另一部件或層時,則不存在中間部件或層。
本文中所述的任何數值範圍旨在包括所述範圍內所包含的具有相同數值精度的所有子範圍。舉例而言,範圍「1.0至10.0」或「介於1.0與10.0之間」旨在包括介於所述最小值1.0與所述最大值10.0之間(且包括1.0及10.0)的所有子範圍,即,具有等於或大於1.0的最小值及等於或小於10.0的最大值(例如(舉例而言,2.4至7.6))。本文中所述任何最大數值限制旨在包括其中所包含的所有較低的數值限制,且本說明書中所述的任何最小數值限制旨在包括其中所包含的所有較高的數值限制。
本揭露的原理中的一些原理是有關於在儲存元件出現故障的情形中可繼續以一或多種故障彈性(fault resilient,FR)模式進行操作的儲存元件。舉例而言,儲存元件可繼續以有限的方式進行操作,此可使儲存系統能夠快速及/或高效地自儲存元件的故障恢復。
在一些實施例中,以一或多種故障彈性模式進行操作的儲存元件可例如藉由以唯讀模式進行操作而具有至少局部讀取能力。
在一些實施例中,可使用具有包括至少局部讀取能力的一或多個故障彈性模式的儲存元件實施儲存元件群組的恢復方案,其中可使用一或多個同位空間作為重建操作的救援空間,以自故障儲存元件恢復資訊。舉例而言,儲存元件群組可被配置於冗餘陣列中,所述冗餘陣列可呈現為單個(在一些情形中呈現為更多個)虛擬儲存元件。在具有包括至少局部讀取能力的故障彈性模式的第一儲存元件出現故障的事件中,冗餘陣列可實施重建操作,其中可藉由將資料自第一儲存元件複製至第二儲存元件的同位空間而在第二儲存元件的同位空間中對來自故障儲存元件的資料進行預重建。
在一些實施例中,儲存元件群組可無限期地繼續操作,其中將第二儲存元件的同位空間的至少一部分作為故障儲存元件的至少一部分的替換而進行操作。在此種實施例中,可不對第一儲存元件的可被第二儲存元件的同位空間的所述一部分替換的部分實施同位。
在一些實施例中,可藉由將預重建資料中的一些預重建資料或全部預重建資料自第二儲存元件的同位空間複製至替換儲存元件來繼續進行重建操作。接著儲存元件群組可恢復正常操作,例如,針對自故障儲存元件恢復的資料計算同位資訊。
在一些實施例中,儲存系統可在將來自故障儲存元件的資料預重建至第二儲存元件的同位空間的同時繼續自故障儲存元件進行讀取操作。若讀取操作嘗試在重建操作期間自故障儲存元件讀取資料,則依據重建點而定,可直接自故障儲存元件及/或自第二儲存元件的同位空間中的對應的位置讀取資料。
在一些實施例中,儲存系統可在將資料自故障儲存元件預重建至第二儲存元件的同位空間的同時繼續進行針對故障儲存元件擬定的寫入操作。若寫入操作嘗試在重建操作期間將資料寫入至故障儲存元件,則可將寫入資料改為寫入至第二儲存元件的同位空間中的對應的位置。
依據實施細節而定,該些特徵中的一或多者可減少輸入/輸出(input/output,I/O)操作、同位計算及/或類似操作,且可使儲存系統能夠在例如不進行同位計算及/或同步化的情況下快速恢復資料。
本文中所揭露的原理具有獨立的實用性且可被各別地實施,且並非每個實施例均可利用每個原理。然而,所述原理亦可以各種組合來實施,所述組合中的一些組合可以協同方式放大各別原理的益處。
在一些實施例中,儲存系統可實施可呈現為虛擬儲存元件的獨立驅動機冗餘陣列(redundant array of independent drive,RAID)。RAID儲存系統的一些實施例可包括同位資訊,所述同位資訊可被用於自出現故障的驅動機重建資料。
圖8示出根據本揭露示例性實施例的RAID-4儲存系統的映射方案的實施例。在一些實施例中,可將驅動機劃分成被稱為延伸區(extent)的資料儲存空間的相連的區。在一些實施例中,延伸區可包括整個驅動機。因此,在一些實施例中且在本揭露中,除非在上下文中顯而易見,否則用語延伸區可與驅動機或儲存元件互換使用。每一驅動機可包括一或多個條,所述一或多個條可共同形成條帶,所述條帶可具有跨越多個驅動機的條帶長度。每一條可被進一步劃分成一或多個資料區塊。由於同位區塊可全部儲存於單個驅動機上(例如,在延伸區0中),因此此實例可被稱為具有非旋轉同位。
在單個驅動機出現故障的情形中,可藉由對對應的同位區塊與來自其他健康驅動機的剩餘資料區塊進行互斥或(exclusive-OR)運算來恢復來自出現故障的驅動機的資料區塊。作為另外一種選擇,若出現故障的驅動機包含同位區塊,則可藉由對來自其他健康驅動機的資料區塊進行互斥或運算來重新計算同位區塊。
圖9示出根據本揭露示例性實施例的RAID-5儲存系統的映射方案的實施例。圖9中所示的實施例可相似於圖8中所示的實施例,但圖9中所示的實施例可具有旋轉同位,其中具有同位區塊的條可旋轉至不同條帶的不同驅動機。
圖10A示出根據本揭露示例性實施例的包括至少一個故障彈性儲存元件的冗餘陣列儲存系統的映射方案的實施例。圖10A中所示的實施例可包括被配置為冗餘陣列1000的第一儲存元件1002及第二儲存元件1004。冗餘陣列1000可被配置成使用任何類型的映射方案1010(例如,包括可用於自故障儲存元件重建資訊的同位資訊的映射方案)將虛擬儲存空間1008映射至第一儲存元件1002及第二儲存元件1004。
第一儲存元件1002及第二儲存元件1004可分別包括資訊區塊1012及1014,資訊區塊1012及1014中的一或多者可被實施為可被映射至虛擬儲存空間1008中的對應的資料區塊1018的資料區塊。資訊區塊1012及1014中的一或多者可被實施為同位區塊,所述同位區塊可用於恢復資訊區塊1012及1014中可被實施為資料區塊的一或多者。
一些實施例可更包括一或多個達101n的附加儲存元件,所述附加儲存元件被配置為冗餘陣列1000的一部分,如圖10A中的省略號所示。
第一儲存元件1002或第二儲存元件1004中的至少一者可被實施為可能夠以一或多種故障彈性模式進行操作的故障彈性儲存元件,在所述故障彈性模式中,儘管遇到故障情況,儲存元件仍可繼續進行操作並保持至少局部讀取能力,如以下更詳細地闡述。舉例而言,在一些實施例中,故障彈性儲存元件可以唯讀模式進行操作。
包括具有至少局部讀取能力的故障彈性模式的儲存元件可使圖10A中所示的實施例能夠實施如下的恢復方案:在所述恢復方案中,儲存系統可在將資料自故障儲存元件重建或預重建至健康儲存元件上的同位空間中的同時繼續自故障儲存元件進行讀取。在一些實施例中,在預重建操作之後,可使用如圖10B中所示的替換儲存元件1004A替換故障儲存元件且可藉由將預重建資料自同位空間複製至替換儲存元件1004A中的一或多個資訊區塊1014A來繼續進行重建操作。
依據實施細節而定,該些特徵可提供諸多益處,例如減少輸入/輸出操作、潛時(latency)、資料轉移及/或同位計算的功耗、同步化及/或類似物。該些特徵亦可例如藉由釋放可用於其他操作的輸入/輸出頻寬來增大系統通量。
圖10中所示的實施例可用於實施例如RAID-4系統或RAID-5系統等RAID儲存系統,但在本文中針對圖10闡述的原理並非僅限於RAID儲存系統且可被應用於具有被配置為冗餘陣列的儲存元件群組的任何儲存系統,所述冗餘陣列具有如下的至少一個儲存元件:儘管遇到故障情況,所述至少一個儲存元件仍可繼續進行操作並保持至少局部讀取能力。另外,儘管可使用儲存元件1002及1004來實施圖10中所示的實施例,然而亦可將該些原理應用於可用於實施冗餘陣列儲存系統的延伸區及/或任何其他資訊單元。因此,在一些實施例中,儲存元件可指儲存元件的延伸區及/或任何其他資訊單元或者儲存元件的一部分。
圖11示出根據本揭露示例性實施例的冗餘陣列儲存系統的示例性實施例。可例如使用圖11中所示的實施例實施圖10中所示的實施例及/或本文中所揭露的任何其他實施例。
圖11中所示的實施例可包括儲存陣列控制器1115及一或多個儲存元件1110。在一些實施例中,儲存陣列控制器1115可自主機1105接收讀取請求及/或寫入請求以及相關聯的資料。每一儲存元件1110可包括儲存控制器1120(其亦可被稱為控制電路)及儲存媒體1125。在一些實施例中,儲存元件1110可能會經歷內部故障情況,且儲存元件可表現出各種故障彈性行為(如以下進一步詳細論述),以減緩故障情況的系統級影響。
儲存陣列控制器1115可包括邏輯1116,邏輯1116被配置成實施資訊恢復過程、資訊重建操作、讀取操作、寫入操作、同位計算及/或本文中所揭露的任何其他技術中的任意者。
可使用包括以下在內的任何類型的儲存裝置及相關聯的儲存媒體來實施所述一或多個儲存元件1110:固態驅動機(SSD)、硬碟驅動機(hard disk drive,HDD)、光學驅動機、基於任何類型的持久記憶體(例如具有塊狀電阻變化的交叉柵格非揮發性記憶體)的驅動機及/或類似驅動機及/或其任意組合。每一儲存元件中的資料可被排列為區塊、鍵值結構及/或類似結構及/或其任意組合。每一儲存元件1110可具有使用任何連接器配置(例如串列進階技術附接(SATA)、小型電腦系統介面(SCSI)、串列附接SCSI(SAS)、U2及/或類似連接器配置)且使用任何儲存介面及/或協定(例如周邊組件互連(PCI)、快速PCI(PCIe)、快速非揮發性記憶體(NVMe)、架構上NVMe(NVMe-over-Fabrics,NVMe-oF)、乙太網路、無線頻寬(InfiniBand)、光纖通道及/或類似儲存介面及/或協定)的任何形狀因數(例如3.5英吋、2.5英吋、1.8英吋、M.2、MO-297、MO-300、企業及資料中心SSD形狀因數(EDSFF)及/或類似形狀因數)。可使用伺服器底盤(server chassis)、伺服器框架、資料室、資料中心、邊緣資料中心、行動邊緣資料中心及/或其任意組合及/或類似物完全或局部地實施一些實施例及/或結合伺服器底盤、伺服器框架、資料室、資料中心、邊緣資料中心、行動邊緣資料中心及/或其任意組合及/或類似物使用所述一些實施例。
可使用執行儲存於揮發性記憶體(例如動態隨機存取記憶體(DRAM)及/或靜態隨機存取記憶體(SRAM))、非揮發性記憶體(例如快閃記憶體)及/或類似記憶體以及圖形處理單元(GPU)、神經處理單元(neural processing unit,NPU)及/或類似處理單元中的指令的硬體、軟體或其任意組合來實施儲存控制器1120、儲存陣列控制器1115、邏輯1116、以下闡述的實施例中的同位邏輯及/或類似物中的任意者,所述硬體、軟體或其任意組合包括組合邏輯、序列邏輯、一或多個定時器、計數器、暫存器、狀態機、複雜可程式化邏輯元件(complex programmable logic device,CPLD)、現場可程式化閘陣列(FPGA)、特殊應用積體電路(ASIC)、複雜指令集電腦(complex instruction set computer,CISC)處理器(例如x86處理器)及/或精簡指令集電腦(reduced instruction set computer,RISC)處理器及/或類似物。
儘管本發明原理並非僅限於任何特定實施細節,然而出於例示目的,在一些實施例中,每一儲存元件1110可被實施為其中可例如使用反及(NAND)快閃記憶體來實施儲存媒體1125的SSD,且每一儲存控制器1120可實施與操作SSD相關聯的任何功能(包括快閃轉譯層(flash translation layer,FTL)、儲存介面以及與實施本文中所揭露的故障彈性特徵相關聯的任何功能)。儲存元件1110中最小的可抹除單元可被稱為區塊,且儲存元件1110中最小的可寫入單元可被稱為頁。
儲存媒體1125可具有保持週期(其可取決於儲存媒體1125的使用歷史,且如此一來可在儲存媒體1125內有所變化)。已儲存較保持週期長的時間的資料(即,具有超過保持週期的年齡的資料)可能會變得不可靠且可被認為已過期。可使用錯誤糾正碼將資料儲存於儲存媒體1125中,錯誤糾正碼可為例如區塊碼。當自儲存媒體1125讀取資料時,可自儲存媒體1125讀取被稱為碼區塊的大量原始資料,且可嘗試對所述大量原始資料進行解碼。若嘗試失敗,則可進行附加的嘗試(例如,讀取再審)。使用儲存媒體1125的一部分(例如,區塊)可能會使保持週期變短至不可接受的點降低,且所述區塊可被分類為壞區塊。為避免使得此種情況導致整個儲存媒體1125不可操作,可存在被稱為壞區塊管理預留空間的預留空間(例如,包括於每一快閃記憶體晶粒中或每一快閃記憶體平面中),且控制器1120或者快閃記憶體晶粒內部或快閃記憶體平面內部的另一控制器可開始使用預留的區塊並停止使用壞區塊。
針對圖10至圖11中所示的實施例以及本文中闡述的所有其他實施例闡述的操作及/或組件是示例性操作及/或組件。在一些實施例中,可省略一些操作及/或組件,及/或可包括其他操作及/或組件。另外,在一些實施例中,操作及/或組件的時間次序及/或空間次序可有所變化。儘管一些組件可被示出為各別組件,然而在一些實施例中,可將單獨示出的一些組件整合至單個組件中,及/或可使用多個組件來實施被示出為單個組件的一些組件。
出於例示目的,可在以下在RAID-5儲存系統的上下文中闡述系統、元件及/或操作的一些示例性實施例。然而,所述原理並非僅限於RAID-5系統且可被應用於其他類型的RAID系統(例如RAID-4)以及其他非RAID類型的冗餘陣列系統,在所述冗餘陣列系統中儲存元件群組可被配置成提供一定量的冗餘,而無論條帶化、資料重啟及/或繼續、旋轉及/或非旋轉同位及/或類似物如何。另外,儘管一些實施例可在完整儲存元件的上下文中示出,然而所述原理可被應用於儲存元件的任何部分(包括可用於實施儲存陣列的延伸區及/或任何其他資訊單元)。
圖12A示出不具有故障彈性儲存元件的RAID-5儲存系統的示例性實施例。在圖12A中所示的實施例中,冗餘陣列可包括健康儲存元件1202、1204、1206、1208及1210。健康儲存元件1202、1204、1206、1208及1210可分別被指定為元件0(Dev 0)、元件1(Dev 1)、元件2(Dev 2)、元件3(Dev 3)及元件4(Dev 4)。
儲存元件1202、1204、1206、1208及1210中的前四個區塊可共同形成第一條帶(條帶0)。在條帶0內,Dev 0中的前四個區塊可包含同位資訊(例如,該些區塊可被稱為同位區塊),而Dev 1至Dev 4中的前四個區塊可包含儲存資料(例如,該些區塊可被稱為資料區塊)。
儲存元件1202、1204、1206、1208及1210中的後四個區塊可共同形成第二條帶(條帶1)。在條帶1內,Dev 1中的後四個區塊可為同位區塊,而Dev 0以及Dev 2至Dev 4中的後四個區塊可為資料區塊。在儲存元件1202、1204、1206、1208及1210的底部處示出的區塊連同由省略號所指示的附加區塊可共同形成附加條帶。
圖12B示出使用替換儲存元件實行重建操作的圖12A的實施例。在圖12B中所示的實施例中,儲存元件1204(Dev 1)可能已出現故障且已被替換儲存元件1204A替換。為將來自出現故障的儲存元件1204的資料區塊B0在替換儲存元件1204A上進行重建,所述系統可分別自健康儲存元件1202、1206、1208及1210讀取同位區塊P(0,0,0)及資料區塊B4、B8及B12,且藉由使用同位邏輯1214對同位區塊P(0,0,0)及資料區塊B4、B8及B12實行邏輯互斥或(XOR)運算來恢復資料區塊B0。接著可將恢復的資料區塊B0寫入至替換儲存元件1204A。可以相似的方式恢復第一條帶中剩餘的資料區塊B1、B2及B3。
接著所述系統可繼續進行至下一條帶且藉由分別自健康儲存元件1202、1206、1208及1210讀取資料區塊B16、B20、B24及B28且使用同位邏輯1214對該些資料區塊實行XOR運算來恢復同位區塊P(0,1,1)。接著可將恢復的同位區塊P(0,1,1)寫入至替換儲存元件1204A。所述系統可繼續進行第二條帶及任何附加條帶的剩餘部分,以將來自出現故障的儲存元件1204的剩餘的資料在替換儲存元件1204A上進行重建。
如圖12B中所示,在一些實施例中,自故障儲存元件恢復資料區塊可涉及自多個儲存元件(在此實例中為四個儲存元件)讀取資料及/或同位區塊,此可能會例如因使用可由其他輸入/輸出操作以其他方式使用的輸入/輸出頻寬而增加輸入/輸出操作、潛時、資料轉移及/或同位計算的功耗及/或類似物且亦可能會降低系統通量。
圖13A及圖13B示出根據本揭露示例性實施例的使用故障彈性儲存元件實行重建操作的RAID-5儲存系統的示例性實施例。圖13A中所示的實施例可包括與圖12A中所示的實施例中的組件相似的組件,然而根據本揭露的示例性實施例,可使用能夠以具有至少局部讀取能力的故障彈性模式進行操作的故障彈性儲存元件來實施儲存元件1304。
在圖13A中所示的示例性實施例中,儲存元件1304可能會經歷故障(由陰影指示),所述故障可導致儲存元件1304以唯讀模式進行操作,例如藉由以在以下參照圖23闡述的故障彈性模式FR_MODE_CAPACITY_READ_ONLY、FR_MODE_PERFORMANCE、FR_MODE_READ_ONLY及/或FR_MODE_TEMP_READ_ONLY中的一或多者進行操作。
由於故障儲存元件1304可以唯讀模式進行操作,因此圖13A中所示的系統可藉由將第一條帶中的資料區塊B0、B1、B2及B3自故障儲存元件1304複製至健康儲存元件1302上的同位空間來實行預重建操作。預重建操作亦可將第三條帶中以B36開始的資料區塊複製至健康儲存元件1306上的同位空間。可將任何附加條帶中的資料區塊複製至任何健康儲存元件上的其他同位空間。
在一些實施例中,在將資料中的一些資料或全部資料自故障儲存元件1304複製至健康儲存元件上的同位空間之後,所述系統可在不替換故障儲存元件1304的情況下無限期地或暫時地進行操作(例如,藉由在不具有同位資訊的情況下進行操作)。在此種實施例中,所述系統本質上可以RAID-0配置進行操作。因此,依據實施細節而定,使用故障彈性儲存元件1304及同位空間進行重建操作可使儲存系統能夠在儲存元件出現故障之後快速恢復操作。在一些實施例中,可以可提高效率的批次模式將資料自故障儲存元件1304複製至健康儲存元件的同位空間。
在一些實施例中,在將資料中的一些資料或全部資料自故障儲存元件1304複製至健康儲存元件上的同位空間之後,可使用如圖13B中的虛線輪廓所示的健康替換儲存元件1304A替換故障儲存元件1304。接著所述系統可藉由將預重建資料(例如,B0、B1、B2、B3、B36等)自健康儲存元件中的同位空間複製至如圖13B中所示的替換儲存元件1304A而繼續進行資料重建操作。在一些實施例中,可以可提高效率的批次模式將預建的資料自健康儲存元件複製至替換儲存元件1304A。
為恢復RAID-5操作,所述系統可在替換儲存元件1304A中實行同位計算來重建同位區塊(例如,第一條帶中的P(0,1,1)、P(1,1,1)、P(2,1,1)及P(3,1,1))。根據本揭露的示例性實施例,可以各種方式實行同位計算。舉例而言,在一些實施例中,當複製每一資料區塊時,可對每一資料區塊實行一些同位計算或全部同位計算。作為另外一種選擇或另外地,可在複製操作完成之後實行一些同位計算或全部同位計算。在一些實施例中,可例如由儲存伺服器以集中的方式實行一些同位計算或全部同位計算。作為另外一種選擇或另外地,可由各別儲存元件以分散式方式實行一些同位計算或全部同位計算(例如,若儲存元件具有同級間(peer-to-peer,P2P)通訊及/或同位計算能力)。
圖13C示出根據本揭露示例性實施例的在使用替換儲存元件替換經歷故障情況的故障彈性儲存元件之後實行重建操作的RAID-5儲存系統的另一示例性實施例。圖13C中所示的實施例可包括與圖12B中所示的實施例中的組件相似的組件,然而根據本揭露的示例性實施例,被替換儲存元件1304A替換的故障儲存元件可已為能夠以具有至少局部讀取能力的故障彈性模式進行操作的故障彈性儲存元件。
在替換之前,可藉由將資料區塊B0及B1自故障彈性儲存元件複製至健康儲存元件1302中的同位空間(例如,以唯讀模式進行操作)而已對資料區塊B0及B1進行預重建。在故障彈性儲存元件經歷故障情況之後的某一點,可藉由將經更新的資料區塊B0’寫入至健康儲存元件1302中的同位空間中的對應的位置而已在寫入操作期間將資料區塊B0更新成資料區塊B0’,如以下針對圖21所述。
在使用替換儲存元件1304A替換故障彈性儲存元件之後,可藉由將經更新的資料區塊B0’複製至替換如圖13C中所示的儲存元件1304A來繼續進行重建操作。在一些實施例中,同位邏輯1314可對經更新的資料區塊B0’以及可分別自健康儲存元件1306、1308及1310讀取的資料區塊B4、B8及B12實行同位計算,以產生可被寫入至健康儲存元件1302的經更新的同位區塊P’(0,0,0)。
圖14及圖15示出根據本揭露示例性實施例的在單個儲存元件出現故障的事件中由不具有故障彈性儲存元件的RAID-5儲存系統實行的讀取操作的一些示例性實施例。圖14及圖15中所示的實施例可包括與圖12A中所示的實施例中的組件相似的組件。在圖14及圖15中所示的實施例中,儲存元件1404及1504可經歷可使儲存元件1404及1504不能實行讀取操作的故障情況。
在圖14中所示的實施例中,由於資料區塊B4可位於健康儲存元件1406上,因此可在不實行恢復操作的情況下讀取資料區塊B4。
在圖15中所示的實施例中,資料區塊B0可位於故障儲存元件1504上。因此,為讀取資料區塊B0,可分別自健康儲存元件1502、1506、1508及1510讀取同位區塊P(0,0,0)及資料區塊B4、B8及B12,且由同位邏輯1514對同位區塊P(0,0,0)及資料區塊B4、B8及B12進行處理以恢復資料區塊B0。因此,自故障儲存元件恢復資料區塊可涉及自多個儲存元件(在此實例中為四個儲存元件)讀取資料及/或同位區塊,此可能會因例如使用可被其他輸入/輸出操作以其他方式使用的輸入/輸出頻寬而增加輸入/輸出操作、潛時、資料轉移及/或同位計算的功耗及/或類似物且亦可能會降低系統通量。
圖16及圖17示出根據本揭露示例性實施例的在重建操作期間由具有故障彈性儲存元件的RAID 5儲存系統實行的讀取操作的示例性實施例。圖16及圖17中所示的儲存系統的實施例可包括與圖12A中所示的實施例中的組件相似的組件,然而根據本揭露的示例性實施例,可使用能夠以具有至少局部讀取能力的故障彈性模式進行操作的儲存元件來實施故障儲存元件1604及1704。
在圖16及圖17中所示的示例性實施例中,故障儲存元件1604及1704可以唯讀模式進行操作,例如藉由以在以下參照圖23所述的故障彈性模式FR_MODE_CAPACITY_READ_ONLY、FR_MODE_PERFORMANCE、FR_MODE_READ_ONLY及/或FR_MODE_TEMP_READ_ONLY中的一或多者進行操作。
在圖16及圖17中所示的實施例中,當預重建點向下進行時,所述系統可處於藉由將來自故障儲存元件1604及1704的資料分別複製至健康儲存元件1602及1702的同位空間來對所述資料進行預重建的過程中。若將被讀取的資料區塊位於健康儲存元件上,則可以與圖14中所示的方式相似的方式讀取所述資料區塊。然而,若將被讀取的資料區塊位於故障儲存元件1604及1704上,則依據實施細節而定,可在不具有如圖16及圖17中所示的同位計算及/或同步化的情況下快速恢復所述資料區塊。
在圖16中所示的實施例中,將被讀取的資料區塊(例如,資料區塊B0)可位於同位空間的可已被預重建的一部分中。因此,可自健康儲存元件1602的同位空間中的對應的位置讀取所述資料區塊。
在圖17中所示的實施例中,資料區塊B2可位於故障儲存元件1704的可在健康儲存元件1702的同位空間中尚未被預重建的一部分中。然而,由於故障儲存元件1704可能夠以唯讀模式進行操作,因此可直接自故障儲存元件1704讀取資料區塊B2。
資料區塊B3亦可位於故障儲存元件1704的可在健康儲存元件1702的同位空間中尚未被預重建的一部分中。然而,可藉由例如以下針對圖21闡述的寫入操作而已將資料區塊B3更新成健康儲存元件1702的同位空間中的對應的位置處的資料區塊B3’。因此,可自健康儲存元件1702讀取經更新的資料區塊B3’。
在一些實施例中且依據實施細節而定,圖16至圖17中所示的實施例可例如藉由釋放可用於其他輸入/輸出操作的輸入/輸出頻寬而減少輸入/輸出操作、潛時、資料轉移及/或同位計算的功耗、同步化及/或類似物且亦可增大系統通量。
圖18及圖19示出根據本揭露示例性實施例的由不具有故障彈性儲存元件的RAID-5儲存系統實行的寫入操作的示例性實施例。圖18及圖19中所示的實施例可包括與圖12A中所示的實施例中的組件相似的組件。在圖18及圖19中所示的實施例中,儲存元件1804及1904可經歷可使儲存元件1804及1904不能實行讀取操作或寫入操作的故障情況。
圖18示出根據本揭露示例性實施例的將經更新的資料區塊B4’寫入至健康儲存元件1806的操作。由於原始資料區塊B4及對應的同位區塊P(0,0,0)皆不位於故障儲存元件1804上,因此可將經更新的資料區塊B4’寫入至儲存元件1806。可藉由讀取原始同位區塊P(0,0,0)且使用同位邏輯1814、使用自儲存元件1806讀取的原始資料區塊B4以及經更新的資料區塊B4’對原始同位區塊P(0,0,0)實行同位計算來計算所述對應的經更新的同位區塊P’(0,0,0)。接著可將經更新的同位區塊P’(0,0,0)寫入至健康儲存元件1802。
圖19示出根據本揭露示例性實施例的其中資料區塊或者對應的同位區塊位於故障儲存元件1904上的寫入操作的示例性實施例。在寫入經更新的資料區塊B16’的情形中,對應的同位區塊P(0,1,1)位於故障儲存元件1904上。因此,可在不計算條帶的同位或讀取任何其他資料區塊的情況下將經更新的資料區塊B16’寫入至健康儲存元件1902。
在寫入經更新的資料區塊B0’的情形中,可藉由自健康儲存元件1902讀取原始同位區塊P(0,0,0)來恢復原始資料區塊B0,且可分別自健康驅動機1906、1908及1910讀取資料區塊B4、B8及B12,且使用同位邏輯1914對資料區塊B4、B8及B12進行處理。接著可使用經更新的資料區塊B0’來計算經更新的同位區塊P’(0,0,0)並將經更新的同位區塊P’(0,0,0)寫入至健康儲存元件1902。儘管經更新的資料區塊B0’可能未被寫入至故障儲存元件1904,然而可在未來的讀取操作中藉由對經更新的同位區塊P’(0,0,0)及資料區塊B4、B8及B12進行讀取並對經更新的同位區塊P’(0,0,0)及資料區塊B4、B8及B12實行同位計算來恢復經更新的資料區塊B0’。
在圖19中所示的實施例中,缺乏自故障儲存元件1904讀取資訊的能力可能會例如因使用可被其他輸入/輸出操作以其他方式使用的輸入/輸出頻寬而增加輸入/輸出操作、潛時、資料轉移及/或同位計算的功耗及/或類似物且亦可能會降低系統通量。
圖20及圖21示出根據本揭露示例性實施例的可由具有故障彈性儲存元件的RAID-5儲存系統實行的寫入操作的示例性實施例。圖20及圖21中所示的儲存系統的實施例可包括與圖16中所示的實施例中的組件相似的組件,其中根據本揭露的示例性實施例,可使用能夠以具有至少局部讀取能力的故障彈性模式進行操作的儲存元件來實施故障儲存元件2004及2104。在圖20及圖21中所示的示例性實施例中,故障儲存元件2004及2104可以唯讀模式進行操作,例如藉由以在以下參照圖23闡述的故障彈性模式FR_MODE_CAPACITY_READ_ONLY、FR_MODE_PERFORMANCE、FR_MODE_READ_ONLY及/或FR_MODE_TEMP_READ_ONLY中的一或多者進行操作。
在圖20及圖21中所示的實施例中,可以例如後台操作將資料分別自故障儲存元件2004及2104複製至健康儲存元件2002及2102上的對應的同位空間。在將資料自故障儲存元件2004或2104複製至對應的同位空間之前、期間或之後的任何時間,所述系統可以與RAID-0系統相似的方式在不具有同位的情況下無限期地或暫時地進行操作。
圖20示出根據本揭露示例性實施例的其中寫入操作可涉及健康儲存元件上的資料區塊的實施例。在此種情形中,可在不計算同位的情況下將經更新的資料區塊B4’寫入至健康儲存元件2006。在一些實施例中,所述系統亦可主動將資料區塊B0自故障儲存元件2004複製至健康儲存元件2002的同位空間中的對應的位置。此可使系統能夠相對於所述條帶的所述部分而在不具有同位的情況下進行操作(例如,以與RAID-0系統相似的方式)。作為另外一種選擇,所述系統可推遲將資料區塊B0自故障儲存元件2004複製至健康儲存元件2002的同位空間中的對應的位置,直至預建過程開始。
圖21示出根據本揭露示例性實施例的其中經更新的寫入資料或對應的同位區塊可位於故障儲存元件2104上且預重建過程尚未開始的寫入操作的實施例。可在不計算同位的情況下將經更新的資料區塊B16’寫入至健康儲存元件2102上的資料區塊B16’的正常位置。可同樣在不計算同位的情況下將經更新的資料區塊B0’寫入至健康儲存元件2102上的同位空間中的對應的位置。此可使系統能夠相對於所述條帶的那些部分在不具有同位的情況下進行操作(例如,以類與RAID-0系統相似的方式)。
依據實施細節而定,圖20及圖21中所示的實施例可例如藉由釋放可由其他過程使用的輸入/輸出頻寬來減少輸入/輸出操作、潛時、資料轉移及/或同位計算的功耗、同步化及/或類似物且亦可增大系統通量。
圖22示出根據本揭露示例性實施例的操作儲存陣列的方法的實施例。所述方法可在操作2202處開始。在操作2204處,所述方法可將第一儲存元件及第二儲存元件作為冗餘陣列進行操作,所述冗餘陣列被配置成使用同位資訊來自故障儲存元件恢復資訊。在操作2206處,所述方法可基於第一儲存元件的故障情況而以具有至少局部讀取能力的故障彈性模式操作第一儲存元件。在操作2208處,所述方法可在第二儲存元件的同位空間中對來自第一儲存元件的資訊進行重建。所述方法可在操作2210處結束。
針對圖22中所示的實施例以及本文中闡述的所有其他實施例闡述的操作及/或組件是示例性操作及/或組件。在一些實施例中,可省略一些操作及/或組件,及/或可包括其他操作及/或組件。另外,在一些實施例中,操作及/或組件的時間次序及/或空間次序可有所變化。儘管一些組件可被示出為各別組件,然而在一些實施例中,可將單獨示出的一些組件整合至單個組件中,及/或可使用多個組件來實施被示出為單個組件的一些組件。
在一些實施例中,可使用例如LBA空間類型來實施故障彈性模式的一些實施例。圖23示出根據本揭露示例性實施例的可由儲存元件實施的故障彈性模式及相關聯的LBA空間類型的一些示例性實施例的表。根據本揭露的示例性實施例,圖23中所示的表中的模式行可包括可用於例如在應用程式化介面(API)中辨識模式的故障彈性模式編號及名稱,可經由所述應用程式化介面(API)存取儲存元件的一或多個特徵。在圖23中所示的表中被標記為P、UP、RO、VRO及IA的行可分別指示可在對應的模式中使用的實行(P)LBA空間、低實行力(UP)LBA空間、唯讀(RO)LBA空間、揮發性唯讀(VRO)LBA空間及不可存取(IA)LBA空間的量。
在一些實施例中,圖23中所示的模式可由例如主機經由API來調用。在一些實施例中,主機可使用以下所述的獲取特徵命令來查詢儲存元件。在一些實施方案中,被辨識具有星號(*)的模式可向主機提供關於所述模式因應於獲取特徵命令而使用的每一類型的LBA空間的詳細資訊。在一些實施方案中,關於由其他命令使用的LBA空間的資訊可為隱式的。舉例而言,在電源循環模式(模式1)中,所有記憶體可具有實行(P)類型。然而,在一些實施例中,可使用LBA空間類型及/或LBA空間類型的一些部分的其他組合。
在一些實施例中,儲存元件可實施任意數目的以下故障彈性模式。舉例而言,元件製造商可在不同的產品中實施該些及其他故障彈性模式的不同組合。
電源循環模式(模式1)可涉及基於對儲存元件進行電源循環的自愈。舉例而言,基於例如SRAM或DRAM等記憶體中的一或多個翻轉位元,儲存元件可能會經歷故障情況。翻轉位元可由例如老化、發熱及/或天線或海平面以上的高海拔引起的輻射造成,此可能會干擾記憶體胞元。具有故障彈性電源循環模式的儲存元件可具有自愈能力,使得對儲存元件進行電源循環(例如移除電力且接著重新施加電力)可重置當前狀態並將出現故障的SSD恢復至正常狀態。在此種情形中,提交佇列中的一或多個正在運行的(inflight)命令可能會丟失。儲存元件的使用者資料是否保持有效可取決於實施細節,例如元件的分區、儲存控制器的不同電路被重置的程度及/或類似實施細節。在一些實施例中,在電源循環模式中,儲存元件的整個儲存空間(100%)可正常操作(例如,作為實行(P)空間)。
重新格式化模式(模式2)可涉及基於將全部或部分儲存元件格式化的自愈。在一些實施例中,將儲存元件格式化可重置儲存元件的當前狀態並將出現故障的儲存元件恢復至其正常狀態。然而,依據實施細節(例如,快速格式化、完全格式化、分區細節及/或類似實施細節)而定,磁碟上的所有資料可能會丟失。在一些實施例中,在重新格式化模式中,儲存元件的整個儲存空間(100%)可正常操作(例如,作為實行(P)空間)。
在降低容量唯讀模式(模式3)中,儲存元件的儲存空間的第一部分(例如,X%)可正常操作(例如,作為實行(P)空間)且第二部分(例如,(100-X)%)可作為唯讀(RO)儲存空間進行操作。因此,儲存元件中的效能(P)空間的大小可減小,且儲存元件可相對於所述空間表現得如正常驅動機一般,但唯讀(RO)類型的空間可能不可寫入。在一些實施例中,例如因應於獲取特徵命令,儲存元件可向主機提供效能(P)空間及/或唯讀(RO)空間的LBA範圍的列表。若儲存元件支援IO確定性,則LBA範圍可代表集合。若儲存元件支援分區名稱空間(Zoned Namespace,ZNS),則LBA範圍可代表區。在一些實施例中,儲存元件亦可因應於獲取特徵命令提供關於集合及/或ZNS的位址範圍的資訊。
在降低容量模式(模式4)中,儲存元件的儲存空間的第一部分(例如,X%)可正常操作(例如,作為實行(P)空間)且第二部分(例如,(100-X)%)可能不可存取(IA)。因此,儲存元件中的效能(P)空間的大小可減小且儲存元件可相對於所述空間表現得如正常驅動機一般,但不可存取(IA)空間可能不可用於正常輸入及/或輸出(IO)。舉例而言,若RTBB耗盡,則可自磁碟空間排除有問題的晶粒,且因此整體磁碟容量可能會降低。儲存元件可為效能(P)空間類型及/或不可存取(AI)空間類型提供LBA範圍列表。若儲存元件支援IO確定性,則LBA範圍可代表集合。若儲存元件支援ZNS,則LBA範圍可代表區。在一些實施例中,儲存元件可因應於獲取特徵命令提供關於LBA範圍、集合、區及/或類似物的資訊。
在降低效能模式(模式5)中,可降低儲存元件的效能的一或多個態樣。舉例而言,儲存元件可實行正常操作,但通量及/或潛時降低。在一些實施例中,儲存元件可包括一或多個備用電容器,在主電源丟失的事件中,所述備用電容器可向儲存元件提供電力達足夠長的時間段,以使儲存元件能夠完成寫入操作。若該些悲痛電容器中的一或多者出現故障,則儲存元件可不通知主機寫入操作完成,直至資料被寫入至媒體之後。(此可被稱為同步寫入操作)。此可減少每秒輸入及/或輸出操作(input and/or output operations per second,IOPS)及/或增加潛時,進而降低儲存元件的效能。因此,在一些實施例中,降低性能模式可以100%的低實行力(UP)空間進行操作。依據實施細節而定,一些使用者資料或全部使用者資料可保持有效。在一些實施例中,儲存元件可向主機提供推測效能資訊,此可使主機能夠以可減緩對故障情況的系統級影響的方式做出關於向儲存元件發送寫入資料的決定。
在唯讀模式(模式6)中,儲存元件可僅容許進行讀取操作且可阻止外部寫入操作。依據實施細節而定,唯讀空間中的資料可例如在保持週期之後保持有效。唯讀模式可以100%的唯讀空間(RO)進行操作。
在局部唯讀模式(模式7)中,儲存元件的儲存空間的第一部分(例如,X%)可作為唯讀(RO)空間進行操作,且第二部分(例如,(100-X)%)可為不可存取(IA)空間。因此,儲存元件可僅容許進行讀取操作且在儲存空間的第一部分中可禁止外部寫入操作。依據實施細節而定,唯讀空間中的資料可例如在保持週期之後仍然有效。儲存元件可為唯讀(RO)空間類型及/或不可存取(IA)空間類型提供LBA範圍列表。若儲存元件支援IO確定性,則LBA範圍可代表集合。若儲存元件支援ZNS,則LBA範圍可代表區。在一些實施例中,儲存元件可因應於獲取特徵命令提供關於LBA範圍、集合、區及/或類似物的資訊。
在暫時唯讀模式(模式8)中,可自儲存元件的儲存空間讀取資料,所述儲存元件可以100% VRO空間進行操作,但可能會禁止外部寫入。此空間中的資料可暫時有效,但在保持週之後可變得無效。
在暫時局部唯讀模式(模式9)中,可自儲存元件的儲存空間的第一部分(例如,X%)讀取資料,所述第一部分可作為VRO空間進行操作,而外部寫入可能會被禁止。第二部分(例如,(100-X)%)可為不可存取(IA)空間。第一部分中的資料可暫時有效,但在保持週期之後可變得無效。若儲存元件支援IO確定性,則LBA範圍可代表集合。若儲存元件支援ZNS,則LBA範圍可代表區。在一些實施例中,儲存元件可因應於獲取特徵命令提供關於LBA範圍、集合、區及/或類似物的資訊。
在易損模式(模式10)中,儲存元件可不可用於輸入/輸出操作。然而,儲存元件可繼續自主機接收命令並返送錯誤。
在正常模式(模式11)中,儲存元件可正常操作。
以上所揭露的實施例已在各種實施細節的上下文中進行闡述,但本揭露的原理並非僅限於該些或任何其他具體細節。舉例而言,一些功能已被闡述為由某些組件實施,但在其他實施例中,所述功能可分配於位於不同位置且具有各種使用者介面的不同系統及組件之間。某些實施例已被闡述為具有特定的過程、操作等,但該些用語亦囊括其中可使用多個過程、操作等來實施特定過程、步驟等的實施例或者其中可將多個過程、操作等整合至單一過程、步驟等中的實施例。對組件或部件的引用可僅指代所述組件或部件的一部分。舉例而言,對積體電路的引用可指代所述積體電路的全部或僅一部分,且對區塊的引用可指代整個區塊或者一或多個子區塊。除非上下文顯而易見,否則在本揭露及申請專利範圍中使用例如第一及第二等用語可僅是為了區分所述用語所修飾的事物且可能並不指示任何空間次序或時間次序。在一些實施例中,「基於」可指代「至少部分地基於」。在一些實施例中,「去能」可指代「至少部分地去能」。對第一部件的引用可能並不暗示第二部件的存在。為方便起見,可提供各種組織輔助(例如章節標題及類似物),但根據該些輔助及本揭露的原理佈置的標的物不受該些組織輔助界定或限制。
根據本專利揭露的發明原理,可對上述各種細節及實施例進行組合以生成附加的實施例。由於可在不背離本發明概念的條件下對本專利揭露的發明原理進行佈置及細節上的潤飾,因此此種變更及潤飾被認為落於以下申請專利範圍的範圍內。
105、1105:主機
110、1110、1404:儲存元件
115:容積管理器
120:控制器
125:儲存媒體/快閃記憶體儲存媒體
305、310、315、320、325、330、335、340、345、505、510、520、525、530、535、540、705、710、715、720、725、730、735、740、745、2202、2204、2204、2208、2210:操作
405:區塊壽命表
410:映射表
415:故障使用空間
420:救援空間
425:正常使用空間
430:所使用邏輯區塊位址(LBA)空間
435:未被使用LBA空間
440:韌體
605:條
1000:冗餘陣列
1002:第一儲存元件/儲存元件
1004:第二儲存元件/儲存元件
1004A、1204A:替換儲存元件
1008:虛擬儲存空間
1010:映射方案
1012、1014、1014A:資訊區塊
1018、B0、B0’、B1、B2、B3、B3’、B4、B4’、B8、B12、B16、B16’、B20、B24、B28、B36:資料區塊
1115:儲存陣列控制器
1116:邏輯
1120:儲存控制器
1125:儲存媒體
1202、1204、1206、1208、1210、1806:健康儲存元件/儲存元件
1214、1314、1514、1814、1914:同位邏輯
1302、1306、1308、1310、1406、1502、1506、1508、1510、1602、1702、1802、1902、2002、2102:健康儲存元件
1304:儲存元件/故障儲存元件/故障彈性儲存元件
1304A:健康替換儲存元件/替換儲存元件
1504、1804、1904:儲存元件/故障儲存元件
1604、1704、2004、2006、2104:故障儲存元件
1906、1908、1910:健康驅動機
Dev 0:元件0
Dev 1:元件1
Dev 2:元件2
Dev 3:元件3
Dev 4:元件4
各圖未必按比例繪製,且出於例示目的,在所有圖中具有相似的結構或功能的部件可一般由相同的參考編號或其部分表示。各圖僅旨在利於達成對本文中闡述的各種實施例的說明。各圖並未闡述本文中所揭露的教示內容的每個態樣,且不對申請專利範圍的範圍進行限制。為防止圖式變得模糊,可能並未示出所有的組件、連接及類似物,且並非所有的組件皆可具有參考編號。然而,組件配置的圖案在圖式中可容易地顯而易見。附圖與說明書一同示出本揭露的示例性實施例,且與說明一同用於闡釋本揭露的原理。
圖1是根據本揭露示例性實施例的資料儲存系統的方塊圖。
圖2A是根據本揭露示例性實施例的儲存元件的故障狀態的表。
圖2B是根據本揭露示例性實施例的由主機發送至儲存元件的命令的表。
圖2C是示出根據本揭露示例性實施例的彈性模式的階層的表。
圖3A是根據本揭露示例性實施例的故障彈性儲存元件的第一操作方法的流程圖。
圖3B是根據本揭露示例性實施例的故障彈性儲存元件的第二操作方法的流程圖。
圖4是根據本揭露示例性實施例的儲存元件的示意性資料佈局圖。
圖5A是根據本揭露示例性實施例的儲存元件以故障彈性唯讀模式進行的第一操作方法的流程圖。
圖5B是根據本揭露示例性實施例的儲存元件以故障彈性唯讀模式進行的第二操作方法的流程圖。
圖6A是根據本揭露示例性實施例的實行寫入操作的RAID-0系統的示意性資料佈局圖。
圖6B是根據本揭露示例性實施例的實行讀取操作的RAID-0系統的示意性資料佈局圖。
圖6C是根據本揭露示例性實施例的實行重新映射及寫入操作的RAID-0系統的示意性資料佈局圖。
圖7A是根據本揭露示例性實施例的RAID-0儲存系統的第一操作方法的流程圖。
圖7B是根據本揭露示例性實施例的RAID-0儲存系統的第二操作方法的流程圖。
圖8示出根據本揭露示例性實施例的RAID-4儲存系統的映射方案的實施例。
圖9示出根據本揭露示例性實施例的RAID-5儲存系統的映射方案的實施例。
圖10A示出根據本揭露示例性實施例的包括至少一個故障恢復儲存元件的冗餘陣列儲存系統的映射方案的實施例。
圖10B示出根據本揭露示例性實施例的包括至少一個故障恢復儲存元件及替換儲存元件的冗餘陣列儲存系統的映射方案的實施例。
圖11示出根據本揭露示例性實施例的冗餘陣列儲存系統的示例性實施例。
圖12A示出根據本揭露示例性實施例的不具有故障彈性儲存元件的RAID-5儲存系統的示例性實施例。
圖12B示出根據本揭露示例性實施例的圖12A的使用替換儲存元件實行重建操作的實施例。
圖13A示出根據本揭露示例性實施例的使用故障彈性儲存元件實行預重建(pre-rebuild)操作的RAID-5儲存系統的示例性實施例。
圖13B示出根據本揭露示例性實施例的使用替換儲存元件實行重建操作的RAID-5儲存系統的示例性實施例。
圖13C示出根據本揭露示例性實施例的在使用替換儲存元件替換經歷故障情況的故障彈性儲存元件之後實行重建操作的RAID-5儲存系統的另一示例性實施例。
圖14示出根據本揭露示例性實施例的在單個儲存元件出現故障的事件中由不具有故障彈性儲存元件的RAID-5儲存系統實行的讀取操作的示例性實施例。
圖15示出根據本揭露示例性實施例的在單個儲存元件出現故障的事件中由不具有故障恢復儲存元件的RAID 5儲存系統實行的讀取操作的示例性實施例。
圖16示出根據本揭露示例性實施例的在重建操作期間由具有故障彈性儲存元件的RAID 5儲存系統實行的讀取操作的示例性實施例。
圖17示出根據本揭露示例性實施例的在重建操作期間由具有故障彈性儲存元件的RAID 5儲存系統實行的讀取操作的示例性實施例。
圖18示出根據本揭露示例性實施例的由不具有故障彈性儲存元件的RAID-5儲存系統實行的寫入操作的示例性實施例。
圖19示出根據本揭露示例性實施例的由不具有故障彈性儲存元件的RAID-5儲存系統實行的寫入操作的示例性實施例。
圖20示出根據本揭露示例性實施例的可由具有故障彈性儲存元件的RAID-5儲存系統實行的寫入操作的示例性實施例。
圖21示出根據本揭露示例性實施例的可由具有故障彈性儲存元件的RAID-5儲存系統實行的寫入操作的示例性實施例。
圖22示出根據本揭露示例性實施例的操作儲存陣列的方法的實施例。
圖23示出根據本揭露示例性實施例的可由儲存元件實施的故障彈性模式及相關聯的邏輯區塊位址(logical block address,LBA)空間類型的一些示例性實施例的表。
1105:主機
1110:儲存元件
1115:儲存陣列控制器
1116:邏輯
1120:儲存控制器
1125:儲存媒體
Claims (20)
- 一種方法,包括: 將第一儲存元件及第二儲存元件作為冗餘陣列進行操作,所述冗餘陣列被配置成使用同位資訊自故障儲存元件恢復資訊; 基於所述第一儲存元件的故障情況,以具有至少局部讀取能力的故障彈性模式操作所述第一儲存元件;以及 在所述第二儲存元件的同位空間中對來自所述第一儲存元件的資訊進行重建。
- 如請求項1所述的方法,其中在所述第二儲存元件的所述同位空間中對來自所述第一儲存元件的所述資訊進行重建包括:將所述資訊自所述第一儲存元件複製至所述第二儲存元件的所述同位空間。
- 如請求項2所述的方法,更包括:將經重建的所述資訊自所述第二儲存元件的所述同位空間複製至替換儲存元件。
- 如請求項3所述的方法,更包括:在所述第二儲存元件的所述同位空間中對用於所述第一儲存元件的寫入操作的第一資料進行更新。
- 如請求項4所述的方法,更包括:將經更新的所述第一資料自所述第二儲存元件的所述同位空間複製至所述替換儲存元件。
- 如請求項3所述的方法,更包括:針對經重建的所述資訊的至少一部分計算同位資訊。
- 如請求項1所述的方法,其中在所述第二儲存元件的同位空間中對來自所述第一儲存元件的所述資訊進行重建是至少部分地藉由後台處理來實行。
- 如請求項1所述的方法,其中在所述第二儲存元件的同位空間中對來自所述第一儲存元件的所述資訊進行重建是至少部分地藉由批次處理來實行。
- 如請求項1所述的方法,其中來自所述第一儲存元件的所述資訊包括資料。
- 如請求項1所述的方法,更包括:基於所述第二儲存元件的所述同位空間的重建點讀取用於所述第一儲存元件的讀取操作的第一資料。
- 如請求項10所述的方法,其中用於所述讀取操作的所述第一資料是自所述第一儲存元件讀取。
- 如請求項10所述的方法,其中用於所述讀取操作的所述第一資料是自所述第二儲存元件的所述同位空間中的經重建的所述資訊讀取。
- 如請求項1所述的方法,更包括: 在所述第二儲存元件的所述同位空間中對用於所述第一儲存元件的寫入操作的第一資料進行更新;以及 自所述第二儲存元件的所述同位空間讀取用於所述第一儲存元件的讀取操作的經更新的所述第一資料。
- 如請求項1所述的方法,更包括: 接收用於所述第一儲存元件的寫入操作的寫入資料;以及 將所述寫入資料寫入至所述第二儲存元件的所述同位空間。
- 一種系統,包括: 控制器; 第一儲存元件;以及 第二儲存元件; 其中所述第一儲存元件能夠基於所述第一儲存元件的故障情況而以具有至少局部讀取能力的故障彈性模式進行操作;且 其中所述控制器被配置成: 將所述第一儲存元件及所述第二儲存元件作為冗餘陣列進行操作,所述冗餘陣列被配置成使用同位資訊自故障儲存元件恢復資訊;以及 在所述第二儲存元件的同位空間中對來自所述第一儲存元件的資訊進行重建。
- 如請求項15所述的系統,其中所述控制器更被配置成將經重建的所述資訊自所述第二儲存元件的所述同位空間複製至替換儲存元件。
- 如請求項15所述的系統,其中所述控制器更被配置成基於所述第二儲存元件的所述同位空間的重建點自所述第一儲存元件讀取用於讀取操作的第一資料。
- 如請求項15所述的系統,其中所述控制器更被配置成: 接收用於所述第一儲存元件的寫入操作的寫入資料;以及 將所述寫入資料寫入至所述第二儲存元件的所述同位空間。
- 一種包括邏輯的儲存陣列控制器,所述邏輯被配置成: 將第一儲存元件、第二儲存元件及第三儲存元件作為具有同位的獨立儲存元件冗餘陣列(RAID)進行操作,其中所述第一儲存元件被配置成基於所述第一儲存元件的故障情況而以具有至少局部讀取能力的故障彈性模式操作所述第一儲存元件;以及 藉由將資訊自所述第一儲存元件複製至所述第二儲存元件的同位空間而基於所述第一儲存元件的所述故障情況對來自所述第一儲存元件的資訊進行重建。
- 如請求項19所述的儲存陣列控制器,其中所述邏輯更被配置成基於所述第二儲存元件的所述同位空間的重建點自所述第一儲存元件讀取用於讀取操作的資料。
Applications Claiming Priority (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063023243P | 2020-05-11 | 2020-05-11 | |
US63/023,243 | 2020-05-11 | ||
US202063051158P | 2020-07-13 | 2020-07-13 | |
US63/051,158 | 2020-07-13 | ||
US202063052854P | 2020-07-16 | 2020-07-16 | |
US63/052,854 | 2020-07-16 | ||
US202063057744P | 2020-07-28 | 2020-07-28 | |
US63/057,744 | 2020-07-28 | ||
US17/109,053 US11803446B2 (en) | 2020-07-13 | 2020-12-01 | Fault resilient storage device |
US17/109,053 | 2020-12-01 | ||
US202163137133P | 2021-01-13 | 2021-01-13 | |
US63/137,133 | 2021-01-13 | ||
US17/227,262 | 2021-04-09 | ||
US17/227,262 US20210349781A1 (en) | 2020-05-11 | 2021-04-09 | Systems, methods, and devices for data recovery using parity space as recovery space |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202145011A true TW202145011A (zh) | 2021-12-01 |
Family
ID=78412657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110116395A TW202145011A (zh) | 2020-05-11 | 2021-05-06 | 用於資料恢復之方法及系統、以及儲存陣列控制器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210349781A1 (zh) |
KR (1) | KR20210137922A (zh) |
CN (1) | CN113641528A (zh) |
TW (1) | TW202145011A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111857549A (zh) * | 2019-04-29 | 2020-10-30 | 伊姆西Ip控股有限责任公司 | 用于管理数据的方法、设备和计算机程序产品 |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154853A (en) * | 1997-03-26 | 2000-11-28 | Emc Corporation | Method and apparatus for dynamic sparing in a RAID storage system |
US8443134B2 (en) * | 2006-12-06 | 2013-05-14 | Fusion-Io, Inc. | Apparatus, system, and method for graceful cache device degradation |
US20080140724A1 (en) * | 2006-12-06 | 2008-06-12 | David Flynn | Apparatus, system, and method for servicing object requests within a storage controller |
US8458515B1 (en) * | 2009-11-16 | 2013-06-04 | Symantec Corporation | Raid5 recovery in a high availability object based file system |
US8788755B2 (en) * | 2010-07-01 | 2014-07-22 | Infinidat Ltd. | Mass data storage system and method of operating thereof |
US8839028B1 (en) * | 2011-12-23 | 2014-09-16 | Emc Corporation | Managing data availability in storage systems |
US9823840B1 (en) * | 2012-05-07 | 2017-11-21 | Amazon Technologies, Inc. | Data volume placement techniques |
US9122405B1 (en) * | 2013-03-15 | 2015-09-01 | Western Digital Technologies, Inc. | Fast initialization of storage device |
US20140281689A1 (en) * | 2013-03-15 | 2014-09-18 | Teradata Corporation | Method and system for rebuilding data following a disk failure within a raid storage system |
JP6209926B2 (ja) * | 2013-10-09 | 2017-10-11 | 富士通株式会社 | ストレージ制御装置、およびストレージ装置の制御プログラム |
US20170060421A1 (en) * | 2015-08-31 | 2017-03-02 | Dell Products, Lp | System and Method to Support Shingled Magnetic Recording Hard Drives in a Storage System |
US10296255B1 (en) * | 2015-12-16 | 2019-05-21 | EMC IP Holding Company LLC | Data migration techniques |
US20220019366A1 (en) * | 2017-04-21 | 2022-01-20 | Pure Storage, Inc. | Providing Data Services During Migration |
CN109753223B (zh) * | 2017-11-03 | 2022-07-08 | 伊姆西Ip控股有限责任公司 | 用于检测存储系统中的慢存储设备操作的方法和系统 |
US10929229B2 (en) * | 2018-06-21 | 2021-02-23 | International Business Machines Corporation | Decentralized RAID scheme having distributed parity computation and recovery |
US11069425B2 (en) * | 2018-08-21 | 2021-07-20 | Intel Corporation | Multi-level memory repurposing technology to process a request to modify a configuration of a persistent storage media |
US11055172B2 (en) * | 2018-10-05 | 2021-07-06 | Texas Instruments Incorporated | Systems, methods, and apparatus to detect address faults |
CN112148204B (zh) * | 2019-06-27 | 2024-02-02 | 伊姆西Ip控股有限责任公司 | 用于管理独立冗余盘阵列的方法、设备和介质 |
US11256428B2 (en) * | 2019-07-11 | 2022-02-22 | Dell Products L.P. | Scaling raid-based storage by redistributing splits |
US11163459B2 (en) * | 2019-10-28 | 2021-11-02 | EMC IP Holding Company LLC | Rekeying information on storage devices using a proactive copy service |
US11231859B2 (en) * | 2019-10-29 | 2022-01-25 | EMC IP Holding Company LLC | Providing a RAID resiliency set from a plurality of storage devices |
US11281535B2 (en) * | 2020-03-06 | 2022-03-22 | Dell Products L.P. | Method and system for performing a checkpoint zone operation for a spare persistent storage |
-
2021
- 2021-04-09 US US17/227,262 patent/US20210349781A1/en active Pending
- 2021-05-06 TW TW110116395A patent/TW202145011A/zh unknown
- 2021-05-11 CN CN202110511912.5A patent/CN113641528A/zh active Pending
- 2021-05-11 KR KR1020210060571A patent/KR20210137922A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
US20210349781A1 (en) | 2021-11-11 |
CN113641528A (zh) | 2021-11-12 |
KR20210137922A (ko) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726033B (zh) | 提供raid数据保护的方法、数据存储系统和计算机可读介质 | |
US8065558B2 (en) | Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance | |
EP2703991B1 (en) | Scalable storage protection | |
US10452498B2 (en) | Fault tolerance for persistent main memory | |
KR20180106867A (ko) | 키 밸류 솔리드 스테이트 드라이브 | |
TW202147092A (zh) | 儲存元件、儲存系統以及操作儲存元件的方法 | |
US20230244570A1 (en) | Fault resilient storage device | |
US20050193273A1 (en) | Method, apparatus and program storage device that provide virtual space to handle storage device failures in a storage system | |
TW202145011A (zh) | 用於資料恢復之方法及系統、以及儲存陣列控制器 | |
US20210349780A1 (en) | Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device | |
JP2003296046A (ja) | ディスクアレイ装置及びその制御方法 | |
JP2015197793A (ja) | 記憶装置、データ復旧方法およびデータ復旧プログラム |