TW202203037A - 非暫態電腦可讀取媒體以及用於頁面快取管理的元件與方法 - Google Patents

非暫態電腦可讀取媒體以及用於頁面快取管理的元件與方法 Download PDF

Info

Publication number
TW202203037A
TW202203037A TW110116139A TW110116139A TW202203037A TW 202203037 A TW202203037 A TW 202203037A TW 110116139 A TW110116139 A TW 110116139A TW 110116139 A TW110116139 A TW 110116139A TW 202203037 A TW202203037 A TW 202203037A
Authority
TW
Taiwan
Prior art keywords
data
storage element
resilient
read
storage
Prior art date
Application number
TW110116139A
Other languages
English (en)
Inventor
亮奭 奇
星旭 柳
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW202203037A publication Critical patent/TW202203037A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Memory System (AREA)

Abstract

在各種實施例中,闡述一種用於頁面快取管理的方法。所述方法可包括:辨識與故障彈性儲存元件相關聯的儲存元件故障;確定與故障彈性儲存元件相關聯的第一區包括不可存取空間且與故障彈性儲存元件相關聯的第二區包括可存取空間;辨識第二儲存元件處對資料的讀取命令且基於讀取命令確定由讀取操作自第二儲存元件的區域記憶體請求的第一資料;基於讀取命令確定由讀取操作自第二區請求的第二資料;自第二區擷取第二資料;以及對第二資料自故障彈性儲存元件至第二儲存元件的傳輸進行排程。

Description

暫時儲存資料恢復之元件以及系統
根據本揭露實施例的一或多個態樣是有關於資料儲存系統,且更具體而言是有關於被配置以例如在暫時儲存的上下文中提供資料恢復的資料儲存系統以及元件。 [相關申請案的交叉參考]
本申請案主張以下美國臨時申請案的優先權及權益:(i)在2020年7月13日提出申請且名稱為「故障彈性儲存元件及介面(Fault Resilient Storage Device and Interfaces)」的美國臨時申請案第63/051,158號;(ii)在2020年7月16日提出申請且名稱為「具有永續唯讀特徵的故障彈性驅動機(Fault Resilient Drive with Sustainable Read-only Feature)」的美國臨時申請案第63/052,854號;以及(iii)在2020年7月28日提出申請且名稱為「使用故障彈性驅動機之故障彈性獨立磁碟冗餘陣列-0方法(Fault Resilient RAID-0 Method Using Fault Resilient Drives)」的美國臨時申請案第63/057,744號。在此段落中辨識的所有申請案的全部內容併入本案供參考。
本背景技術部分旨在僅提供上下文,且本部分中的任何實施例或概念的揭露不構成對所述實施例或概念是先前技術的承認。
儲存元件及系統在各種資料處理系統內具有廣泛的適用性。在一些實施例中,可使用儲存元件代管與虛擬機(virtual machine,VM)相關聯的至少一些態樣,所述虛擬機可指對電腦系統的仿真。VM可包括可涉及專用硬體、軟體及/或其組合的實施方案。此外,儲存元件可足夠複雜,以至能遇到一系列顯著的內部故障情況(包括例如溫度感測器故障或輻射誘導的位元翻轉)。此種故障情況可能會降低可對儲存元件實行或使用儲存元件實行的某些操作的效率。
因此,需要一種用於與儲存元件及/或包含儲存元件的系統相關聯的彈性操作的系統及方法。
在一些實施例中,闡述一種用於頁面快取管理的方法。所述方法可包括:辨識與故障彈性儲存元件相關聯的儲存元件故障;確定與所述故障彈性儲存元件相關聯的第一區包括不可存取空間且與所述故障彈性儲存元件相關聯的第二區包括可存取空間;辨識第二儲存元件處對資料的讀取命令且基於所述讀取命令確定由讀取操作自所述第二儲存元件的區域記憶體請求的第一資料;基於所述讀取命令確定由所述讀取操作自所述第二區請求的第二資料;自所述第二區擷取所述第二資料;以及對所述第二資料自所述故障彈性儲存元件至所述第二儲存元件的傳輸進行排程。所述方法可更包括:基於所述讀取命令確定由所述讀取操作自所述故障彈性儲存元件的所述不可存取空間請求的第三資料;以及基於對所述第三資料的所述確定自所述故障彈性儲存元件向所述第二儲存元件返送錯誤。
在另一實施例中,所述方法可更包括:辨識所述故障彈性儲存元件處對所述資料的寫入命令;將所述資料的至少一部分寫入至主機元件的頁面快取;確定所述資料的所述一部分包括錯資料且將所述錯資料寫入至所述第二儲存元件的持續記憶體;以及確定所述資料的所述一部分包括與所述不可存取空間相關聯的潔淨資料且將所述潔淨資料寫入至所述第二儲存元件的持續記憶體。
在各種實施例中,資料的所述傳輸可包括至少一個虛擬機自所述故障彈性儲存元件至所述第二儲存元件的不停機遷移(live migration)。在一些實施例中,所述第一資料包括所述資料的在所述區域記憶體處進行快取的至少一部分。在各種實施例中,所述區域記憶體包括動態隨機存取記憶體(dynamic random access memory,DRAM)且對所述第一資料的所述確定是自頁面快取進行。在一些實施例中,所述資料包括與主機元件的至少一個虛擬機相關聯的資料。在各種實施例中,所述元件故障包括所述故障彈性儲存元件以其中所述故障彈性儲存元件以降低的效能或者以降低的容量工作的局部唯讀模式運作。在一些實施例中,所述故障彈性儲存元件或所述第二儲存元件中的至少一者包括固態驅動機。
在各種實施例中,闡述一種用於頁面快取管理的元件。所述元件可包括:至少一個記憶體元件,儲存電腦可執行指令;以及至少一個處理器,被配置以對所述至少一個記憶體元件進行存取,其中所述至少一個處理器被配置以執行所述電腦可執行指令以:辨識與故障彈性儲存元件相關聯的儲存元件故障;確定與所述故障彈性儲存元件相關聯的第一區包括不可存取空間且與所述故障彈性儲存元件相關聯的第二區包括可存取空間;辨識第二儲存元件處對資料的讀取命令且基於所述讀取命令確定由讀取操作自所述第二儲存元件的區域記憶體請求的第一資料;基於所述讀取命令確定由所述讀取操作自所述第二區請求的第二資料;自所述第二區擷取所述第二資料;以及對所述第二資料自所述故障彈性儲存元件至所述第二儲存元件的傳輸進行排程。
在各種實施例中,所述至少一個處理器可更被配置以執行所述電腦可執行指令以:基於所述讀取命令確定由所述讀取操作自所述故障彈性儲存元件的所述不可存取空間請求的第三資料;以及基於對所述第三資料的所述確定自所述故障彈性儲存元件向所述第二儲存元件返送錯誤。所述至少一個處理器可更被配置以執行所述電腦可執行指令以:辨識所述故障彈性儲存元件處對所述資料的寫入命令;將所述資料的至少一部分寫入至主機元件的頁面快取;確定所述資料的所述一部分包括錯資料且將所述錯資料寫入至所述第二儲存元件的持續記憶體;以及確定所述資料的所述一部分包括與所述不可存取空間相關聯的潔淨資料且將所述潔淨資料寫入至所述第二儲存元件的持續記憶體。
在另一實施例中,資料的所述傳輸可包括至少一個虛擬機自所述故障彈性儲存元件至所述第二儲存元件的不停機遷移。在一些實施例中,所述第一資料可包括所述資料的在所述區域記憶體處進行快取的至少一部分。在各種實施例中,所述區域記憶體包括DRAM且對所述第一資料的所述確定是自頁面快取進行,且其中所述資料包括與主機元件的至少一個虛擬機相關聯的資料。在一些實施例中,所述儲存元件故障可包括所述故障彈性儲存元件以其中所述故障彈性儲存元件以降低的效能或者以降低的容量工作的局部唯讀模式運作。
在各種實施例中,闡述一種非暫態(non-transitory)電腦可讀取媒體。所述非暫態電腦可讀取媒體可儲存電腦可執行指令,所述電腦可執行指令在由處理器執行時使所述處理器實行包括以下的操作:辨識與故障彈性儲存元件相關聯的儲存元件故障;確定與所述故障彈性儲存元件相關聯的第一區包括不可存取空間且與所述故障彈性儲存元件相關聯的第二區包括可存取空間;辨識第二儲存元件處對資料的讀取命令且基於所述讀取命令確定由讀取操作自所述第二儲存元件的區域記憶體請求的第一資料;基於所述讀取命令確定由所述讀取操作自所述第二區請求的第二資料;自所述第二區擷取所述第二資料;以及對所述第二資料自所述故障彈性儲存元件至所述第二儲存元件的傳輸進行排程。
所述非暫態電腦可讀取媒體可更包括電腦可執行指令以:基於所述讀取命令確定由所述讀取操作自所述故障彈性儲存元件的所述不可存取空間請求的第三資料;以及基於對所述第三資料的所述確定自所述故障彈性儲存元件向所述第二儲存元件返送錯誤。
所述非暫態電腦可讀取媒體更包括電腦可執行指令以:辨識所述故障彈性儲存元件處對所述資料的寫入命令;將所述資料的至少一部分寫入至主機元件的頁面快取;確定所述資料的所述一部分包括錯資料且將所述錯資料寫入至所述第二儲存元件的持續記憶體;以及確定所述資料的所述一部分包括與所述不可存取空間相關聯的潔淨資料且將所述潔淨資料寫入至所述第二儲存元件的持續記憶體。在另一實施例中,資料的所述傳輸可包括至少一個虛擬機自所述故障彈性儲存元件至所述第二儲存元件的不停機遷移。
如上所述,在一些實施例中,所述系統、方法及元件可包括故障彈性儲存元件。故障彈性儲存元件可能夠在維持局部能力的同時以各種彈性模式運作,或者儘管存在內部故障亦能夠恢復至全部功能。舉例而言,儲存元件可維持局部能力所採用的方式中的一者是在一些情況下以唯讀模式運作,在唯讀模式中儲存元件可對來自主機的讀取請求作出因應,但若儲存元件接收到來自主機的寫入請求,則儲存元件可返送錯誤訊息。
以下結合附圖陳述的詳細說明旨在作為對根據本揭露所提供的用於儲存元件及包含儲存元件的系統的彈性運作的系統及方法的示範性實施例的說明,而不旨在表示本揭露可被構造或利用的唯一形式。本說明結合所例示實施例陳述本揭露的特徵。然而應理解,可藉由亦旨在囊括於本揭露的範圍內的不同實施例來達成相同或等效的功能及結構。如本文中其他地方所表明,相同的部件編號旨在指示相同的部件或特徵。
在一些實施例中,可使用所揭露的系統實行虛擬機(VM)自故障彈性儲存元件(以下將在圖1至圖3的上下文中進一步闡述)至另一儲存元件的不停機遷移。具體而言,遷移可指在具有少的服務中斷或不具有服務中斷的情況下將運行的虛擬機自一個實體主機移動至另一實體主機(例如,支援儲存元件)的過程。此外,不停機遷移(在以下進一步闡述)可指在不斷開客戶端或應用程式的情況下在不同的實體機器(例如,包括儲存元件的計算元件)之間移動運行的虛擬機或應用程式的過程。在一些實施例中,可將虛擬機的記憶體、儲存及網路連接性的至少一些部分自源元件轉移至目的地元件(destination device)。
在各種實施例中,所揭露的系統可包括支援VM的運作的儲存元件且可進一步支援VM在源元件與目的地元件之間的不停機遷移。在一些方面,本揭露可引用源元件及目的地元件,源元件及目的地元件可表示包括例如故障彈性儲存元件等儲存元件在內的元件,所述元件可用於儲存與VM相關聯的資料及資訊中的至少一些資料及資訊。應理解,在不背離本揭露的範圍的條件下,例如源元件、源儲存元件、目的地元件及/或目的地儲存元件等術語在本文中可互換使用。
在一些實施例中,如上所述,儲存元件可更包括經歷故障並被轉換至降低效能運作模式(例如唯讀運作模式或局部唯讀運作模式)的故障彈性儲存元件,如以下進一步所闡述。在一些態樣中,此種故障彈性儲存元件可被配置以在源側上的伺服器中運作且可至少局部地實行操作(例如,儲存相關操作)以支援虛擬機。因此,所揭露的系統被配置以使得至少局部地代管於經歷故障的故障彈性儲存元件上的虛擬機能夠向第二元件(例如,第二儲存元件)進行不停機遷移。具體而言,所揭露的系統可使用涉及對以下的組合上的資料進行檢查的方法:源元件工作(例如,揮發性)記憶體、輔助儲存器(例如,故障彈性儲存元件非揮發性記憶體)以及目的地元件工作(例如,揮發性)記憶體及輔助儲存器(例如,第二儲存元件非揮發性記憶體)。此外,應理解,在不背離本揭露的範圍的條件下,用語工作記憶體及揮發性記憶體以及輔助儲存器、持續記憶體及非揮發性記憶體在本文中可互換使用。
如上所述,所揭露的系統可被配置以結合故障彈性儲存元件運作,以實行VM自故障彈性儲存元件至第二元件(例如,目的地元件)的不停機遷移的態樣。在一些實施例中,故障彈性儲存元件可能夠以各種彈性模式運作且能夠維持局部能力,或者儘管存在內部故障亦能夠恢復至全部功能。舉例而言,因應於溫度感測器故障,儲存元件可以降低的速率運作或者以降低的速率進行寫入操作,或者儲存元件可完全停止實行寫入操作。因應於可能已破壞儲存媒體的短暫故障(transient failure),儲存元件可將儲存媒體重新格式化。因應於未破壞儲存媒體的短暫故障,儲存元件可使電源循環。儲存元件可維持局部能力所採用的方式中的一者是在一些情況下以唯讀模式運作,在唯讀模式中儲存元件可對來自主機的讀取請求作出因應,但若儲存元件接收到來自主機的寫入請求,則儲存元件可返送錯誤訊息。儲存元件亦可將即將過期的資料移動至救援區域,使得所述資料將不會因過期而丟失。
在各種實施例中,對於未經歷故障的非故障彈性儲存元件,儲存元件可藉由例如使用記憶體拷貝操作(memory copy operation)將資料的影像自與源元件相關聯的儲存元件拷貝至與目的地元件相關聯的儲存元件來實行VM的不停機遷移。在一些方面(如以下結合圖4A進一步示出並闡述),在此種情形中,在不停機遷移期間,資料的一部分可停留於揮發性記憶體(例如,DRAM)中,而資料的另一部分可被寫入至輔助儲存器(例如,第二儲存元件)。舉例而言,一些潔淨(clean,C)資料、錯(dirty,D)資料(例如,已被存取並修改但尚未被寫入至輔助儲存器的資料)及/或被驅逐資料(evicted data)(例如,可能已被丟棄或可被丟棄的資料)可在不停機遷移期間保留於揮發性記憶體中。因此,在不具有儲存元件故障的不停機遷移的情形中,所揭露的系統可完成將資料自源元件寫入至目的地元件的磁碟。在實行不停機遷移之後,所揭露的系統可釋放源元件(例如,在實行將局部記憶體或完整記憶體自源元件拷貝至目的地元件之後)。此外,若另一元件(例如,運行與源元件及/或目的地元件相關聯的應用程式的元件)需要對目的地元件的輔助儲存器上的資料進行存取,則所揭露的系統可被配置以容許藉由相關聯的網路進行的遠程磁碟存取(例如,經由對目的地元件的遠程磁碟存取)。然而,若源元件經歷故障,則遷移過程可能會被禁止,此至少是由於在一些系統中下伏的磁碟可能無回應(unresponsive)(即使揮發性記憶體具有資料的至少一部分)且因此在不具有附加技術的情況下可能無法繼續進行遷移。
然而,如本文中進一步所闡述,在各種實施例中,若源元件包括故障彈性儲存元件且故障彈性儲存元件已被配置以唯讀運作模式,則所揭露的系統可維持對源元件進行一些級別的存取(例如,對源元件的非揮發性記憶體及/或揮發性記憶體的一部分的存取),以讀取資料中的一些資料並將所述資料轉移至目的地元件,以繼續進行遷移過程。
在另一實施例中,所揭露的系統可被配置以實行虛擬機的不停機遷移,即使源元件不處於完全唯讀運作模式、而是處於局部唯讀運作模式(例如,儲存元件對於讀取操作具有降低的效能的運作模式)。在一些實施例中,所揭露的系統可被配置以實行與經歷故障且處於局部唯讀運作模式(例如,儲存元件在處於唯讀運作模式時以較低的效能、較小的容量或較小的能力運作)的故障彈性源元件上的資料相關聯的某些機會性恢復操作(opportunistic recovery operation)。舉例而言,若資料因使用駐留於揮發性記憶體(例如,DRAM)中的資訊(info)而在預定持續時間內被最近寫入(例如,引起本文中所闡述的各種實施例的暫時儲存適用性),則所揭露的系統可被配置以對被寫入至與故障彈性元件相關聯的記憶體(例如,非揮發性記憶體)的故障區域的資料進行恢復。具體而言,所揭露的系統可被配置以使用與源元件及/或目的地元件相關聯的DRAM資訊,以實行不停機遷移的此態樣。
在各種實施例中,如上所述,可在實行虛擬機的不停機遷移的上下文中使用所揭露的系統,現將對此進行進一步詳細闡述。虛擬機的不停機遷移的一些示例性操作可包括以下中的至少一些。在一些方面,所揭露的系統可首先實行不停機遷移設定過程。在不停機遷移設定期間,所揭露的系統可對源元件(例如,包括故障彈性儲存元件或具有對故障彈性儲存元件的存取的儲存元件)進行配置來創建與目的地元件的連接,以將虛擬機配置資料轉移至目的地元件。所揭露的系統可在目的地元件上建立虛擬機,且可將記憶體分配至目的地虛擬機。此外,所揭露的系統可實行各種檢查,例如驗證與目的地元件相關聯的主機及/或超管理器(hypervisor)可接收源虛擬機(例如,所揭露的系統可確定各種參數(例如記憶體、磁碟連接性、其組合及/或類似參數)是足夠的。
在另一實施例中,根據本文中不同地闡述的實施例,所揭露的系統可實行各種記憶體頁面自源元件至目的地元件的轉移。在一個實施例中,在不停機遷移的此階段,所揭露的系統可例如藉由實行本文中闡述的方法的態樣而將記憶體分派至藉由網路被拷貝至目的地元件的遷移的虛擬機。此記憶體可被稱為遷移的虛擬機的「工作集(working set)」。在一些態樣中,記憶體的頁面可為4千位元或任何合適的大小。所揭露的系統可被配置以容許遷移的虛擬機繼續運行。在一些實施例中,所揭露的系統可將超管理器配置以使記憶體拷貝過程迭代。在一些實例中,每一迭代可能需要拷貝較少數目的經修改頁面。在工作集被拷貝至目的地伺服器之後,可根據本文中闡述的方法的各個態樣來轉移經修改頁面。
在此種狀態中,根據本文中闡述的方法,所揭露的系統的不停機遷移可包括將剩餘的經修改記憶體頁面複製至目的地伺服器的記憶體拷貝過程。在一些實施例中,源元件可將某些資訊(例如虛擬機的中央處理單元(central processing unit,CPU)及元件狀態)轉移至目的地元件。在一些方面,源元件自遷移的虛擬機的工作集轉移經修改頁面的速度越快,不停機遷移便可完成得越快。此外,被轉移的頁面的數目可基於虛擬機存取及修改記憶體頁面的主動程度。在將經修改記憶體頁面拷貝至目的地伺服器之後,目的地元件可具有最新的虛擬機工作集。
在一些實例中,在不停機遷移的此階段期間,可將對與虛擬機相關聯的儲存器(例如任何虛擬儲存檔案或經由虛擬配接器附接的實體儲存器)的控制轉移至目的地元件。此外,所揭露的系統可使虛擬機在目的地元件上為線上的。目的地元件現可對虛擬機的工作集進行存取以及對虛擬機所使用的儲存器進行存取。
在一些實施例中,可結合超大規模環境(hyperscaler environment)(例如,資料中心)使用所揭露的系統。在一些態樣中,各種超大規模環境被配置以使用暫時儲存元件,在暫時儲存元件中儲存元件提供在虛擬機保持不停機(alive)時被使用達一定時間的儲存空間。在一些實施例中,例如相較於主儲存器,所揭露的系統可適合在此種環境(例如,使用暫時儲存元件及方法的超大規模環境)中工作。舉例而言,此可能是由於在主儲存元件中,系統可不被配置以在故障期間可讀取。然而,暫時儲存元件可在揮發性記憶體中儲存臨時資料。因此,所揭露的系統可被配置以使用在故障儲存元件運行的同時可退出的更近的資料運作。在此種情形中,所揭露的系統可能夠找到被寫入至揮發性記憶體(例如,DRAM)且未被破壞的資料。
本揭露現將闡述其中可使用包括故障彈性儲存元件的儲存系統進行虛擬機的不停機遷移的上下文的一些態樣。具體而言,圖1示出根據本揭露示例性實施例的計算系統,所述計算系統例示出可在其中操作對暫時儲存元件實行不停機遷移的系統及方法的示例性網路。如圖中所示,系統可包括連接至一或多個儲存元件110(或「驅動機」)的主機105。儲存元件110可經由所示的容積管理器115連接至主機105,或者儲存元件可直接連接至主機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或者快閃記憶體晶粒內部或快閃記憶體平面內部的另一控制器可開始使用預留的區塊並停止使用壞區塊。
本揭露現將闡述與故障彈性儲存元件相關聯的各種故障狀態的一些進一步的細節,可出於虛擬機的不停機遷移目的而使用所述各種故障狀態。具體而言,故障彈性儲存元件可能會經歷各種各樣的故障,且可在結合圖1所示及所述的網路中繼續運作,以實行虛擬機的不停機遷移。此種故障中的一些故障闡述如下。
具體而言,圖2A是與故障彈性儲存元件相關聯的故障情況(或「故障狀態」)的表,所述故障情況各自被標有情形辨識符(「情形ID」)。情形1是如下的任何故障情況:在所述故障情況中儲存元件110不能再實行讀取操作或寫入操作且無法藉由使電源循環或將儲存媒體重新格式化來解決所述故障情況。儲存元件110以此種方式表現的狀態可具有各種子狀態,其中例如每一子狀態對應於不同的故障機制。此種狀態或故障情況(其中儲存元件110不能再實行讀取操作或寫入操作且無法藉由使電源循環或將儲存媒體重新格式化來解決所述故障情況)可例如因控制器的韌體的一部分變得被破壞(在此種情形中,控制器可能會重新啟動至安全模式,在安全模式中被破壞的指令不被執行)或因儲存元件110中的處理電路的故障(例如,管理與儲存媒體的交互作用但不負責與主機105的通訊的處理電路的故障)而引起。當出現此種類型的故障情況時,儲存元件110可使用錯誤訊息對來自主機105的任何讀取命令或寫入命令作出因應。
情形2是如下的任何故障情況:(i)在所述故障情況中儲存元件110不能再實行讀取操作或寫入操作;且(ii)藉由使儲存元件110的電源循環或藉由將儲存媒體重新格式化,有可能自所述故障情況恢復。此種故障情況可例如因儲存元件110的控制器120的程式執行錯誤(例如,由於控制器120的隨機存取記憶體(RAM)中的位元翻轉而超出範圍的指標或者由於位元翻轉而不正確的指令)而引起。若程式執行錯誤尚未使控制器120將不正確的資料寫入至儲存媒體125(例如,若自控制器最近寫入至儲存媒體以來出現程式執行錯誤),則對儲存元件進行電源循環可足以使儲存元件110恢復至正常操作;若程式執行錯誤已使控制器120將錯誤的資料寫入至儲存媒體125,則將儲存媒體125重新格式化可足以使儲存元件110恢復至正常操作。
情形3是如下的任何故障情況:可藉由使儲存元件110以唯讀模式運作來減緩所述故障情況,且對於所述故障情況而言將儲存媒體125重新格式化將不會恢復全部功能。此種故障的實例包括(i)溫度感測器故障以及(ii)儲存媒體125的一部分已轉變至唯讀模式。在溫度感測器故障的情形中,可藉由確定溫度感測器讀取超出範圍(例如,已超過臨限溫度)來偵測故障,且在此種情形中,可藉由避免寫入操作(其可耗散較讀取操作多的電力)來降低儲存元件110過熱的風險。舉例而言,對於快閃記憶體儲存媒體125而言,若快閃記憶體平面或晶粒耗盡用於運行時間壞區塊管理的壞區塊管理預留空間,則儲存媒體125的一部分可能會發生向唯讀模式的轉變。舉例而言,在嘗試實行讀取操作的同時,儲存元件110可能會嘗試解碼資料項不成功、確定儲存資料的區塊是壞區塊且在將所述資料自壞區塊移動至壞區塊管理預留空間時確定剩餘的壞區塊管理預留空間小於臨限大小且因此不足以確保平面或晶粒的可靠性。接著儲存元件110可確定不再實行壞區塊管理且轉變至唯讀模式。唯讀模式的操作在以下進行進一步詳細論述。如本文中所使用的「資料項」是在一個操作中正在被處理的任何數量的資料(例如,對碼區塊進行解碼而產生的資料可為資料項)。
情形4是可藉由使儲存元件110以直寫模式(write-through mode)運作而得到減緩的任何故障情況。舉例而言,若儲存元件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中受影響的晶粒,且整體磁碟容量可減小。丟失的空間上的使用者資料可能會丟失。舉例而言,若輸入輸出(input and/or output,IO)確定性中的集合或分區名稱空間中的區不能再接受新的資料寫入,則可自磁碟空間排除所述集合或區,但剩餘的磁碟空間仍可用於讀取操作及寫入操作。所述區或集合上的使用者資料可能會丟失。
若儲存元件110不容許進行寫入操作,則儲存元件110可以降低的能力運作並切換至唯讀模式。儲存元件110可能夠以兩種類型的唯讀模式運作:永續唯讀模式(sustainable read-only mode)及非永續唯讀模式(unsustainable read-only mode)。在永續唯讀模式中,儲存元件110可在儲存媒體125的保持週期之後繼續服務於讀取請求。在非永續唯讀模式中,儲存元件110可在儲存媒體125的保持週期期間繼續服務於讀取請求,且若儲存元件110遇到資料完整性問題(例如,由在讀取操作期間對資料進行解碼的一或多次不成功的嘗試所偵測),則儲存元件110可報告無效資料區。如上所述,以易損模式運作的儲存元件110可能不能實行讀取操作或寫入操作,且可實行平穩退出,進而繼續自主機接收命令並返送錯誤。
以下提供示例性內部儲存元件(例如,故障彈性儲存元件)的一些進一步的細節。在一些實施例中,可定義五種邏輯區塊位址(logical block address,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空間。圖2B所示表示出在表的第一行中辨識的故障情況中的每一者中儲存元件110中可能存在的LBA空間類型的組合。被辨識為具有星號(*)的模式可支援主機使用獲取特徵命令來擷取關於LBA空間的詳細資訊。圖2C示出對「獲取特徵」命令的論證,「獲取特徵」命令可被傳遞至儲存元件110,以向儲存元件110查詢關於儲存元件110的狀態及相關聯參數的值(「IOPS」意指每秒的輸入操作及輸出操作)。
圖2D所示表示出主機105可用來向儲存元件110查詢關於儲存元件110的狀況的快速非揮發性記憶體(non-volatile memory express,NVMe)命令以及儲存元件110可用來作出因應的枚舉常數的階層。
在各種實施例中,如上所述,所揭露的系統可包括可被配置以以唯讀模式運作的故障彈性儲存元件。然而,在一些實際態勢中,對於唯讀模式可不提供充足的服務品質(quality of service,QoS)的應用程式,所揭露的系統可找到附加的效用。因此,某些應用程式可受益於故障彈性儲存元件即使在存在元件故障的情況下仍運作(例如,以局部寫入模式運作),且此種情形可包括局部故障彈性運作模式。舉例而言,所揭露的系統可被配置以(例如,向主機)報告儲存元件的狀況且當元件無回應時實行故障彈性儲存元件的平穩退出。然而,可存在其中故障彈性儲存元件處於無效狀態但所述元件仍可運作並作出因應的態勢。在一些情形中,在其中儲存於故障彈性儲存元件上的資料的一部分可不可存取而元件的其他部分可存取的情形中,故障彈性儲存元件仍可(例如,對主機請求)作出因應。所揭露的系統可被配置以繼續使得某些操作能夠繼續進行(例如,在故障彈性儲存元件的可存取區上及/或使用已被寫入且因此仍有效的資料),而並非使故障彈性儲存元件完全停用(retire)。因此,在故障情況中,所揭露的系統可被配置以使得故障彈性儲存元件可(例如,向第二儲存元件及/或向主機的超管理器)報告與所述元件相關聯的哪些區及/或資料區塊是有效的。此種有效資料可用於虛擬機在儲存元件之間的不停機遷移。
在進一步的實施例中,所揭露的系統可被配置以禁用故障彈性儲存元件內的一或多個晶粒,而不禁用故障彈性儲存元件中的其他晶粒。因此,所揭露的系統可被配置以使故障區隔離並向主機(或其他發出請求的元件)提供關於與故障彈性儲存元件相關聯的哪些區(例如,邏輯區塊位址(LBA)空間/區)無效以及哪些區有效的資訊。
本文中進一步闡述系統、方法及裝置,其闡述在其中故障彈性儲存器可提供與故障彈性儲存元件的有效(例如,可存取)區及無效(例如,不可存取)區相關聯的資訊的態勢中如何使包括故障彈性儲存元件的系統上的資料恢復。如上所述,所揭露的系統可被配置以在運行虛擬機的系統中運作。在一些實施例中,所揭露的系統可能會遇到與運行及/或儲存和故障虛擬機相關聯的資料的元件相關聯的故障。因此,所揭露的系統可被配置以將虛擬機遷移至另一元件並將與虛擬機相關聯的資料遷移至第二儲存元件。在一些實施例中,源機器中的給定儲存元件可能會經歷故障,且因此若所述元件是故障彈性儲存元件,則故障彈性儲存元件可切換至故障彈性運作模式,如本文中所不同地闡述。
圖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)儲存元件中實施。
圖4A示出根據本揭露示例性實施例的使用儲存元件實行不停機虛擬機遷移的圖。圖400包括源元件402及目的地元件408。在一些實施例中,源元件402可包括儲存元件(例如,固態驅動機,SSD)。在另一實施例中,源元件402可包括非揮發性記憶體404組件及揮發性記憶體406組件。在一個實施例中,揮發性記憶體406可包括記憶體內工作集,所述記憶體內工作集可主動處置與正由源元件402處理的資料區塊相關聯的頁面。如圖所示,頁面中的一些頁面可被標記為被驅逐(E)、潔淨(C)、錯(D)及/或刷新(F)(未示出)。在另一實施例中,非揮發性記憶體404可包括與持續保存於源元件402的區域儲存器(例如,NAND)上的資料相關聯的頁面。如圖400的實例中所示,頁面中的一些頁面可被標記為佔用源元件402的不可存取(I)空間。此外,由於目的地元件408可包括非揮發性記憶體410及揮發性記憶體413,因此目的地元件408具有與源元件402相似的結構。相似地,在一個實施例中,目的地元件408的揮發性記憶體413可包括記憶體內工作集,所述記憶體內工作集可主動處置與正由目的地元件408處理的資料區塊相關聯的頁面。在另一實施例中,非揮發性記憶體410可包括與持續保存於目的地元件408的區域儲存器(例如,NAND)上的資料相關聯的頁面。
在一些實施例中,圖400示出例如在後拷貝操作(post-copy operation)的情形中虛擬機遷移的示例性操作405。在此種操作405中,在源元件402側上,揮發性記憶體406中的資料的一部分可被持續保存至源元件402的非揮發性記憶體404上。具體而言,作為實例示出,被驅逐頁面及潔淨頁面中的一些頁面可被持續保存至與非揮發性記憶體404相關聯的不可存取空間。在作為實例示出的另一實施例中,當源元件402經歷故障時,揮發性記憶體406中的錯頁面可能正處於被寫入至非揮發性記憶體404的過程中。在另一實施例中,若源元件402不是故障彈性的,則操作405將導致資料自源元件402至目的地元件408的潛在不成功遷移。具體而言,如作為實例所示,若系統第二次嘗試在源元件402的非揮發性記憶體404上讀取與目的地元件408的揮發性記憶體413處的一些被驅逐區塊相關聯的頁面,則此種操作可能會失敗,此至少是由於源元件402已經歷故障。此外,若系統嘗試在源元件402的非揮發性記憶體404上讀取與目的地元件408的揮發性記憶體413處的一些潔淨頁面相關聯的頁面,則此種操作可能會失敗,此乃因目的地元件408的揮發性記憶體413可能會丟棄潔淨頁面,且此外,目的地元件408無法自源元件402的非揮發性記憶體404恢復對應的頁面,此至少是由於源元件402已經歷故障。因此,如圖所示,頁面的僅駐留於目的地元件408的揮發性記憶體413中的一部分(例如,圖400中所示的錯區塊)可被持續保存至(或寫回)區域儲存器(即,目的地元件408的非揮發性記憶體410)。
應理解,儘管以上說明是在後拷貝操作的情形中提供,然而相似的原理可適用於虛擬機自源元件402至目的地元件408的不停機遷移期間的其他操作。具體而言,虛擬機遷移的後拷貝操作可包括以下操作中的至少一些操作。首先,可藉由暫停源元件處的虛擬機來啟動後拷貝操作。在一些實例中,可將虛擬機的執行狀態(例如,CPU狀態、暫存器、可分頁記憶體及/或類似物)的子集轉移至目的地元件。接著可在目的地元件處使虛擬機回復。在一個實施例中,源元件可將虛擬機的剩餘記憶體頁面推送至目的地元件(例如,實行預分頁)。在目的地元件處,若虛擬機試圖對尚未轉移的頁面進行存取,則此種操作可能會產生頁面故障。該些故障可能會陷獲於目的地元件處並被重新定向至源元件,源元件可使用出現故障的頁面作出因應。在一些態樣中,預分頁可藉由主動推送最末故障附近的頁面來使頁面傳輸次序動態地適應網路故障。在一些方面,後拷貝可用於藉由網路發送給定的頁面一次。相比之下,若頁面在遷移期間在源元件處重複出錯,則預拷貝可轉移同一頁面多次。另一方面,預拷貝可在遷移期間在源元件處留存虛擬機的最新狀態。相較之下,在使用後拷貝的情況下,虛擬機的狀態可分佈於源元件及目的地元件二者之上。若目的地元件在遷移期間出現故障,則預拷貝可使虛擬機恢復,而後拷貝可能無法使虛擬機恢復。
如圖4B中所示,圖401包括故障彈性源元件412及目的地元件418。在一些實施例中,故障彈性源元件412可包括故障彈性儲存元件(例如故障彈性SSD)。在另一實施例中,故障彈性源元件412可包括非揮發性記憶體414組件及揮發性記憶體416組件。在一個實施例中,揮發性記憶體416可包括記憶體內工作集,所述記憶體內工作集可主動處置與正由故障彈性源元件412處理的資料區塊相關聯的頁面。如圖所示,頁面中的一些頁面可被標記為被驅逐(E)、潔淨(C)、錯(D)及/或刷新(F)(未示出),且此外,此特定頁面結構與圖400中的情形重複,使得對於此實例而言可利於達成對所述兩種情形之間的元件操作的比較。在另一實施例中,非揮發性記憶體414可包括與持續保存於故障彈性源元件412的區域儲存器(例如,NAND)上的資料相關聯的頁面。如圖401的實例中所示,頁面中的一些頁面可被標記為佔據故障彈性源元件412的不可存取(I)空間。此外,由於目的地元件418可包括非揮發性記憶體420及揮發性記憶體422,因此目的地元件418可具有與故障彈性源元件412相似的結構。相似地,在一個實施例中,揮發性記憶體422可包括記憶體內工作集,所述記憶體內工作集可主動處置與正由目的地元件418處理的資料區塊相關聯的頁面。在另一實施例中,非揮發性記憶體420可包括與持續保存於目的地元件418的區域儲存器(例如,NAND)上的資料相關聯的頁面。此外,非揮發性記憶體420可包括自故障彈性源元件412恢復的頁面以及自目的地元件418的揮發性記憶體422恢復的其他頁面。舉例而言,可展示出潔淨頁面及錯頁面二者皆可基於目的地元件418的揮發性記憶體422中的對應的頁面而被寫回至(即,持續保存至)415目的地元件418的非揮發性記憶體420。此外,如實例中所示,由於故障彈性源元件412的唯讀運作狀況,可自故障彈性源元件412的非揮發性記憶體414讀取來自故障彈性源元件412的非揮發性記憶體414的可存取部分的某些唯讀(R)頁面。
應理解,儘管以上說明是在預拷貝操作的情形中提供,然而相似的原理可適用於虛擬機自故障彈性源元件412至目的地元件418的不停機遷移期間的其他操作。此外,藉由闡釋的方式,預拷貝可指以下操作中的至少一些操作。在預拷貝記憶體遷移中,超管理器可將記憶體頁面自源元件拷貝至目的地元件,而虛擬機可仍在源元件上運行。若一些記憶體頁面在所述過程期間發生改變(例如,記憶體頁面變成「錯的」),則可重新拷貝記憶體頁面,直至重新拷貝的頁面的速率大於頁面出錯速率為止。此外,之後,可在與源元件相關聯的原始主機上停止虛擬機,可將剩餘的錯頁面拷貝至目的地元件,且可在目的地元件上使虛擬機回復。
圖5是示出根據本揭露示例性實施例的虛擬機的不停機遷移的態樣的示範性流程圖的例示。具體而言,流程圖500示出與虛擬機在故障彈性源元件501與目的地元件503之間的不停機遷移相關聯的一些示例性操作,故障彈性源元件501及目的地元件503各自分別具有源超管理器及目的地超管理器。儘管以下參照SSD,然而應理解,SSD與儲存元件在本文中可互換使用。
在方塊502處,所揭露的系統可判斷SSD(例如,故障彈性SSD)是否可用。若方塊502的判斷結果是SSD可用,則在方塊504處,所揭露的系統可判斷SSD是否正以故障彈性模式運作。另一方面,若方塊502的判斷結果是SSD不可用,則在方塊506處,所揭露的系統可返送錯誤。
所揭露的系統可藉由操作507自故障彈性SSD恢復資料。在方塊508處,所揭露的系統可判斷與所擷取的資料對應的邏輯區塊位址(LBA)是否屬於與故障彈性SSD相關聯的不可存取空間。若方塊508的判斷結果為是(yes),則所揭露的系統可在方塊506處返送錯誤。另一方面,若方塊508的判斷結果是LBA不屬於故障彈性SSD的不可存取空間,則在方塊510處,所揭露的系統可自與故障彈性SSD相關聯的可存取空間進行讀取。
在方塊512處,所揭露的系統可判斷儲存元件的系統中的SSD是否經歷故障。若否,則所揭露的系統可繼續進行方塊518處的操作。若是,則所揭露的系統可繼續進行方塊514處的操作,在方塊514處所揭露的系統可判斷SSD是否是故障彈性SSD。若否,則所揭露的系統可繼續進行方塊518處的操作。若是,則在方塊516處,所揭露的系統可捕獲並確定與故障彈性SSD的故障記憶體扇區(memory sector)相關聯的LBA空間類型資訊,且可視需要在方塊508處判斷故障彈性SSD中的故障記憶體扇區是否包括不可存取空間的LBA,及/或在方塊538處(在目的地元件上,將在以下進一步闡述)判斷LBA是否屬於(源元件的)不可存取空間。所揭露的系統可進一步繼續前進至方塊518,如下所述。
在方塊518處,所揭露的系統可釋放與SSD(故障彈性SSD或常規SSD)相關聯的頁面快取刷新操作,以使得能夠進行不停機遷移過程,接著可如方塊520處所指示般開始進行所述不停機遷移過程。
在方塊526處,所揭露的系統可判斷與不停機遷移過程相關聯的操作是否包括讀取操作。若否,則所揭露的系統可在方塊527處將與寫入操作相關聯的資料區塊寫入至頁面快取。若是,則所揭露的系統可在方塊528處判斷資料區塊是否存在於目的地元件的頁面快取中(例如,目的地元件的揮發性記憶體處)。此外,若方塊528處的判斷結果是資料區塊不位於目的地元件的頁面快取中,則所揭露的系統可繼續前進至方塊524處的操作,如下所述。若方塊528處的判斷結果是資料區塊位於目的地元件的頁面快取中,則所揭露的系統可繼續前進至方塊530,在方塊530處所揭露的系統可自目的地元件的頁面快取讀取資料。
在方塊524處,所揭露的系統可判斷在區域磁碟(例如,目的地元件的非揮發性記憶體)上是否可找到用於讀取操作(例如,方塊526的讀取操作)的資料區塊。若否,則在方塊522處,所揭露的系統可自遠程磁碟讀取資料區塊(例如,藉由自方塊502的示例性操作開始在源元件上繼續進行操作,如上所述)。另一方面,若在區域磁碟上可找到用於讀取操作的資料區塊,則在方塊531處,所揭露的系統可自區域磁碟(例如,目的地元件的非揮發性記憶體)讀取資料區塊。
如上所述,在方塊538處,所揭露的系統可判斷與資料區塊相關聯的LBA是否屬於(與源元件的非揮發性記憶體相關聯的)不可存取空間。若否,則所揭露的系統可在方塊536處丟棄資料區塊及/或頁面。若是,則所揭露的系統可藉由操作539自與目的地元件相關聯的DRAM(例如,揮發性記憶體)恢復資料區塊,且可在方塊534處繼續將該些區塊寫入至區域磁碟(例如,目的地元件的非揮發性記憶體)。此外,所揭露的系統可在方塊532處判斷在方塊538處闡述的操作中所涉及的資料區塊及/或頁面是否是錯的。若所揭露的系統判斷出資料區塊及/或頁面是錯的,則所揭露的系統可在方塊534處將資料區塊寫入至區域磁碟(例如,目的地元件的非揮發性記憶體)。
在一些實施例中,流程圖500闡述所揭露的系統可如何將虛擬機自源伺服器(例如,伺服器)遷移至目的地元件(例如,伺服器)。以上闡述了一些示例性操作,且現提供對該些操作的更一般的總結及論述。
如上所述,由一些系統實行的虛擬機遷移可不包括對駐留於與目的地元件或源元件中的一或多者相關聯的揮發性記憶體(例如,DRAM)上的資料的檢查操作。在一些實施例中,所揭露的系統可用於藉由使用在某些情況中至少臨時儲存於揮發性記憶體中的資訊來恢復儲存元件資訊(例如,將被遷移的虛擬機相關資料)(例如,以機會性方式,如下所述)。
在一些實施例中,當出現故障時,所揭露的系統可有效地凍結與在包括故障元件的鏈路上運行的虛擬機相關聯的操作,且所揭露的系統可例如在具有故障的源元件上開始進行遷移過程。在各種實施例中,源元件可包括故障彈性儲存元件,且故障彈性儲存元件可進一步向例如與源元件相關聯的作業系統(operating system,OS)/超管理器提供資訊(例如,LBA故障彈性空間資訊)。因此,所揭露的系統可將虛擬機轉移至目的地元件,且可通知對應的超管理器與虛擬機相關聯的儲存元件的哪些部分有效以及無效;此外,若儲存元件的所述部分無效,則所揭露的系統可被配置以實行操作以自源元件或目的地元件的揮發性記憶體恢復資料。因此,在遷移期間,虛擬機可被執行並實行輸入/輸出。
若在目的地元件處存在讀取操作,則所揭露的系統可判斷被請求的資料是否已存在於目的地元件的揮發性記憶體(例如,DRAM)中;若被請求的資料已存在於目的地元件的揮發性記憶體(例如,DRAM)中,則所揭露的系統可自相關聯的頁面快取讀取資料。另一方面,若所揭露的系統判斷出所請求的資料不存在於目的地元件的揮發性記憶體中,則所揭露的系統可確定獲得資料的位置。具體而言,若資料不存在於目的地元件的區域磁碟中,則所述資料可能駐留於源元件的區域磁碟中;因此,所揭露的系統可對源元件的資料進行檢查。具體而言,若源元件與目的地元件之間的磁碟遷移已完成,則所揭露的系統可對源元件的區域磁碟的資料進行檢查。然而,存取資料可取決於源元件的正被存取的記憶體區。舉例而言,若正自源元件的故障區請求資料,則所述資料可被認為是無效的,在此種情形中,所揭露的系統可被配置以拒絕對資料的請求並返送錯誤。另一方面,若所請求的資料不位於故障區上而是位於源元件的記憶體的有效且可存取的區上,則源元件可提供所述資料。因此,儘管具有故障,可包括故障彈性儲存元件的源元件仍可為可讀取的。
在另一實施例中,若自源元件請求的操作不是讀取操作(例如,所述操作是寫入操作),則源元件的故障狀況不太相關,且所揭露的系統可被配置以寫入資料。具體而言,所揭露的系統可被配置以首先將資料寫入至頁面快取;若資料是錯的,則所揭露的系統稍後可將資料寫入至目的地元件的磁碟。在另一實施例中,若資料不是錯的,則所揭露的系統可被配置以丟棄資料(例如,所揭露的系統不需要再次寫入資料)。若與資料相關聯的資料區塊是潔淨的,則此可意味著資料在與源儲存元件或目的地儲存元件相關聯的相應磁碟上可用。然而,在由於故障而引起的虛擬機遷移之後,所揭露的系統可能無法判斷資料是否存在於給定的磁碟上。舉例而言,所揭露的系統可能已讀取資料且所述資料可能仍位於未被更新的DRAM中。此外,由於讀取的LBA現在在已經歷故障的源機器上無效,因此下伏的磁碟可能不可用。因此,所揭露的系統可被配置以將虛擬機移動至目的地元件,以使資料恢復。
在一些實施例中,一些示例性不停機遷移操作可適用於具有唯讀運作模式而不具有錯誤的元件。若儲存元件未被配置為唯讀模式,則資料可位於DRAM上;然而,若資料是錯的,則所揭露的系統仍可自源機器上正被存取的區域恢復資料以進行寫入操作。若源元件具有故障但資料區塊潔淨,則所揭露的系統可被配置以將資料區塊寫入至磁碟,以使資料恢復。若不存在故障,則在虛擬機遷移期間,所述資料可被認為是潔淨的;因此,所揭露的系統可自區域(例如,目的地)元件或遠程(例如,源)元件讀取資料。因此,如上所述,輕易地顯而易見的是,在超管理器/OS與儲存元件(例如,源元件及目的地元件)之間可存在高度耦合。
圖6是根據本揭露示例性實施例的示例性頁面快取管理操作的示範性流程圖的例示。在各種實施例中,闡述一種確定與故障彈性儲存元件相關聯的儲存元件故障的方法。在方塊602處,所揭露的系統可確定實行資料自故障彈性儲存元件至第二儲存元件的傳輸。舉例而言,作為不停機遷移過程的一部分,所揭露的系統可確定將與和故障彈性儲存元件相關聯的虛擬機相關聯的資料移動至第二儲存元件。
在方塊604處,所揭露的系統可確定與故障彈性儲存元件相關聯的第一區包括不可存取空間且與故障彈性儲存元件相關聯的第二區包括可存取空間。具體而言,不可存取空間可包括NAND的由於實體故障(例如,壞電路、壞晶片、損壞、過多覆寫等)而不可存取的部分,如本文中所不同地闡述。如上所述,故障彈性儲存元件可經歷故障,但在可存取空間中仍包括運作的記憶體(例如,故障彈性元件的整個記憶體不會由於故障而被均勻地損壞)。可結合不停機遷移過程使用可存取空間,以將與虛擬機相關聯的頁面自故障彈性儲存元件遷移至目的地元件(例如,第二儲存元件)。
在方塊606處,所揭露的系統可確定第二儲存元件處對資料的讀取命令且基於所述讀取命令確定由讀取操作自第二儲存元件的區域記憶體請求的第一資料。在一些實施例中,區域記憶體可包括與第二儲存元件相關聯的揮發性記憶體(例如DRAM)。
在其他實施例中,所揭露的系統可確定故障彈性儲存元件處針對資料的寫入命令。因此,所揭露的系統可將資料的至少一部分寫入至主機元件的頁面快取(例如,與第二儲存元件及/或故障彈性儲存元件相關聯的主機元件)。此外,所揭露的系統可確定所述資料的所述部分包括錯資料,且所揭露的系統可被配置以將錯資料寫入至第二儲存元件的持續記憶體(例如,非揮發性記憶體)。此外,所揭露的系統可確定所述資料的所述部分包括與不可存取空間相關聯的潔淨資料,且所揭露的系統可將潔淨資料寫入至第二儲存元件的持續記憶體(例如,非揮發性記憶體)。
在方塊608處,所揭露的系統可基於讀取命令確定由讀取操作自第二區請求的第二資料。在一些實施例中,對第二資料的讀取命令可包括故障彈性儲存元件的可存取空間。在方塊610處,所揭露的系統可自第二區擷取第二資料。
在方塊612處,所揭露的系統可基於讀取命令確定由讀取操作自故障彈性儲存元件的不可存取空間請求的第三資料。在方塊614處,所揭露的系統可基於對第三資料的確定自故障彈性儲存元件向第二儲存元件返送錯誤。此可能是由於第三資料是在故障彈性儲存元件的不可存取空間中請求的。
本文中闡述的各種部件(例如主機105或控制器120)可為或可包含處理電路。在本文中使用用語「處理電路」或「處理構件」來意指用於處理資料或數位訊號的硬體、韌體及軟體的任意組合。處理電路硬體可包括例如特殊應用積體電路(application specific integrated circuit,ASIC)、通用或專用中央處理單元(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))。本文中所述任何最大數值限制旨在包括其中所包含的所有較低的數值限制,且本說明書中所述的任何最小數值限制旨在包括其中所包含的所有較高的數值限制。
儘管已在本文中具體闡述並例示了用於儲存元件及包含儲存元件的系統進行虛擬機的不停機遷移的彈性操作的系統及方法的示範性實施例,然而許多潤飾及變型將對熟習此項技術者顯而易見。因此,應理解,根據本揭露的原理構造的用於儲存元件及包含儲存元件的系統進行虛擬機的不停機遷移的彈性操作的系統及方法可被實施成不同於本文中所具體闡述者。亦在以下申請專利範圍及其等效範圍中界定本發明。
105:主機 110:儲存元件 115:容積管理器 120:控制器 125:儲存媒體/快閃記憶體儲存媒體 305、310、315、320、325、330、335、340、345、405、507:操作 400、401:圖 402:源元件 404、410、414、420:非揮發性記憶體 406、413、416、422:揮發性記憶體 408、418、503:目的地元件 412、501:故障彈性源元件 500:流程圖 502、504、506、508、510、512、514、516、518、520、522、524、526、527、528、530、531、532、534、536、538、539、602、604、606、608、610、612、614:方塊
本文中提供的圖式僅是出於例示某些實施例的目的;可能未明確例示出的其他實施例並不排除於本揭露的範圍之外。
參照說明書、申請專利範圍及附圖,將領會及理解本揭露的該些及其他特徵及優點,在附圖中:
圖1是根據本揭露實施例的示出所揭露的系統可在其中運作的上下文的資料儲存系統的方塊圖。
圖2A是根據本揭露實施例的儲存元件的故障狀態的表,所述表例示出故障彈性儲存元件在例如VM的不停機遷移期間可能會面臨的各種故障模式。
圖2B是根據本揭露實施例的儲存元件的運作模式的表,所述運作模式可表示故障彈性儲存元件在不停機遷移期間的不同狀態。
圖2C是根據本揭露實施例的由主機發送至儲存元件的命令的表。
圖2D是示出根據本揭露實施例的彈性模式的階層的表。
圖3A是根據本揭露實施例的故障彈性儲存元件的第一操作方法的流程圖。
圖3B是根據本揭露實施例的故障彈性儲存元件的第二操作方法的流程圖。
圖4A示出根據本揭露示例性實施例的使用儲存元件實行不停機虛擬機遷移的圖。
圖4B示出根據本揭露示例性實施例的使用故障彈性儲存元件實行不停機虛擬機遷移的另一圖。
圖5是根據本揭露示例性實施例的使用故障彈性儲存元件實行不停機虛擬機遷移的方法的流程圖。
圖6是根據本揭露示例性實施例的實行與頁面快取管理相關聯的示例性操作的方法的流程圖。
602、604、606、608、610、612、614:方塊

Claims (20)

  1. 一種用於頁面快取管理的方法,包括: 辨識與故障彈性儲存元件相關聯的儲存元件故障; 確定與所述故障彈性儲存元件相關聯的第一區包括不可存取空間且與所述故障彈性儲存元件相關聯的第二區包括可存取空間; 辨識第二儲存元件處對資料的讀取命令且基於所述讀取命令確定由讀取操作自所述第二儲存元件的區域記憶體請求的第一資料; 基於所述讀取命令確定由所述讀取操作自所述第二區請求的第二資料; 自所述第二區擷取所述第二資料;以及 對所述第二資料自所述故障彈性儲存元件至所述第二儲存元件的傳輸進行排程。
  2. 如請求項1所述的方法,其中所述方法更包括: 基於所述讀取命令確定由所述讀取操作自所述故障彈性儲存元件的所述不可存取空間請求的第三資料;以及 基於對所述第三資料的所述確定自所述故障彈性儲存元件向所述第二儲存元件返送錯誤。
  3. 如請求項1所述的方法,更包括: 辨識所述故障彈性儲存元件處對所述資料的寫入命令; 將所述資料的至少一部分寫入至主機元件的頁面快取; 確定所述資料的所述一部分包括錯資料且將所述錯資料寫入至所述第二儲存元件的持續記憶體;以及 確定所述資料的所述一部分包括與所述不可存取空間相關聯的潔淨資料且將所述潔淨資料寫入至所述第二儲存元件的持續記憶體。
  4. 如請求項1所述的方法,其中所述第二資料的所述傳輸包括至少一個虛擬機自所述故障彈性儲存元件至所述第二儲存元件的不停機遷移。
  5. 如請求項1所述的方法,其中所述第一資料包括所述資料的在所述區域記憶體處進行快取的至少一部分。
  6. 如請求項1所述的方法,其中所述區域記憶體包括動態隨機存取記憶體且對所述第一資料的所述辨識是自頁面快取進行。
  7. 如請求項1所述的方法,其中所述資料包括與主機元件的至少一個虛擬機相關聯的資料。
  8. 如請求項1所述的方法,其中所述儲存元件故障包括所述故障彈性儲存元件以其中所述故障彈性儲存元件以降低的效能或者以降低的容量工作的局部唯讀模式運作。
  9. 如請求項1所述的方法,其中所述故障彈性儲存元件或所述第二儲存元件中的至少一者包括固態驅動機。
  10. 一種用於頁面快取管理的元件,包括: 至少一個記憶體元件,儲存電腦可執行指令;以及 至少一個處理器,被配置以對所述至少一個記憶體元件進行存取,其中所述至少一個處理器被配置以執行所述電腦可執行指令以: 辨識與故障彈性儲存元件相關聯的儲存元件故障; 確定與所述故障彈性儲存元件相關聯的第一區包括不可存取空間且與所述故障彈性儲存元件相關聯的第二區包括可存取空間; 辨識第二儲存元件處對資料的讀取命令且基於所述讀取命令確定由讀取操作自所述第二儲存元件的區域記憶體請求的第一資料; 基於所述讀取命令確定由所述讀取操作自所述第二區請求的第二資料; 自所述第二區擷取所述第二資料;以及 對所述第二資料自所述故障彈性儲存元件至所述第二儲存元件的傳輸進行排程。
  11. 如請求項10所述的元件,其中所述至少一個處理器更被配置以執行所述電腦可執行指令以: 基於所述讀取命令確定由所述讀取操作自所述故障彈性儲存元件的所述不可存取空間請求的第三資料;以及 基於對所述第三資料的所述確定自所述故障彈性儲存元件向所述第二儲存元件返送錯誤。
  12. 如請求項10所述的元件,其中所述至少一個處理器更被配置以執行所述電腦可執行指令以: 辨識所述故障彈性儲存元件處對所述資料的寫入命令; 將所述資料的至少一部分寫入至主機元件的頁面快取; 確定所述資料的所述一部分包括錯資料且將所述錯資料寫入至所述第二儲存元件的持續記憶體;以及 確定所述資料的所述一部分包括與所述不可存取空間相關聯的潔淨資料且將所述潔淨資料寫入至所述第二儲存元件的持續記憶體。
  13. 如請求項10所述的元件,其中所述資料的所述傳輸包括至少一個虛擬機自所述故障彈性儲存元件至所述第二儲存元件的不停機遷移。
  14. 如請求項10所述的元件,其中所述第一資料包括所述資料的在所述區域記憶體處進行快取的至少一部分。
  15. 如請求項10所述的元件,其中所述區域記憶體包括動態隨機存取記憶體且對所述第一資料的所述確定是自頁面快取進行,且其中所述資料包括與主機元件的至少一個虛擬機相關聯的資料。
  16. 如請求項10所述的元件,其中所述儲存元件故障包括所述故障彈性儲存元件以其中所述故障彈性儲存元件以降低的效能或者以降低的容量工作的局部唯讀模式運作。
  17. 一種用於儲存電腦可執行指令的非暫態電腦可讀取媒體,所述電腦可執行指令在由處理器執行時使所述處理器實行包括以下的操作: 辨識與故障彈性儲存元件相關聯的儲存元件故障; 確定與所述故障彈性儲存元件相關聯的第一區包括不可存取空間且與所述故障彈性儲存元件相關聯的第二區包括可存取空間; 辨識第二儲存元件處對資料的讀取命令且基於所述讀取命令確定由讀取操作自所述第二儲存元件的區域記憶體請求的第一資料; 基於所述讀取命令確定由所述讀取操作自所述第二區請求的第二資料; 自所述第二區擷取所述第二資料;以及 對所述第二資料自所述故障彈性儲存元件至所述第二儲存元件的傳輸進行排程。
  18. 如請求項17所述的非暫態電腦可讀取媒體,其中所述非暫態電腦可讀取媒體更包括電腦可執行指令,所述電腦可執行指令包括: 基於所述讀取命令確定由所述讀取操作自所述故障彈性儲存元件的所述不可存取空間請求的第三資料;以及 基於對所述第三資料的所述確定自所述故障彈性儲存元件向所述第二儲存元件返送錯誤。
  19. 如請求項17所述的非暫態電腦可讀取媒體,其中所述非暫態電腦可讀取媒體更包括電腦可執行指令,所述電腦可執行指令包括: 辨識所述故障彈性儲存元件處對所述資料的寫入命令; 將所述資料的至少一部分寫入至主機元件的頁面快取; 確定所述資料的所述一部分包括錯資料且將所述錯資料寫入至所述第二儲存元件的持續記憶體;以及 確定所述資料的所述一部分包括與所述不可存取空間相關聯的潔淨資料且將所述潔淨資料寫入至所述第二儲存元件的持續記憶體。
  20. 如請求項17所述的非暫態電腦可讀取媒體,其中資料的所述傳輸包括至少一個虛擬機自所述故障彈性儲存元件至所述第二儲存元件的不停機遷移。
TW110116139A 2020-07-13 2021-05-05 非暫態電腦可讀取媒體以及用於頁面快取管理的元件與方法 TW202203037A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
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/159,913 2021-01-27
US17/159,913 US11630731B2 (en) 2020-07-13 2021-01-27 System and device for data recovery for ephemeral storage

Publications (1)

Publication Number Publication Date
TW202203037A true TW202203037A (zh) 2022-01-16

Family

ID=79173657

Family Applications (4)

Application Number Title Priority Date Filing Date
TW110114097A TW202203034A (zh) 2020-07-13 2021-04-20 包括儲存元件的系統及操作儲存元件的方法
TW110114707A TW202219766A (zh) 2020-07-13 2021-04-23 用於儲存資料的系統以及操作儲存系統的方法
TW110116139A TW202203037A (zh) 2020-07-13 2021-05-05 非暫態電腦可讀取媒體以及用於頁面快取管理的元件與方法
TW110116137A TW202219765A (zh) 2020-07-13 2021-05-05 資料儲存系統、儲存元件以及操作儲存元件的方法

Family Applications Before (2)

Application Number Title Priority Date Filing Date
TW110114097A TW202203034A (zh) 2020-07-13 2021-04-20 包括儲存元件的系統及操作儲存元件的方法
TW110114707A TW202219766A (zh) 2020-07-13 2021-04-23 用於儲存資料的系統以及操作儲存系統的方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW110116137A TW202219765A (zh) 2020-07-13 2021-05-05 資料儲存系統、儲存元件以及操作儲存元件的方法

Country Status (5)

Country Link
US (6) US11803446B2 (zh)
JP (3) JP2022017216A (zh)
KR (4) KR20220008203A (zh)
CN (4) CN114003167A (zh)
TW (4) TW202203034A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11803446B2 (en) * 2020-07-13 2023-10-31 Samsung Electronics Co., Ltd. Fault resilient storage device
US20240004749A1 (en) * 2022-06-29 2024-01-04 Western Digital Technologies, Inc. Failed temperature sensor detection and mitigation within data storage devices

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10162494A (ja) 1996-12-03 1998-06-19 Internatl Business Mach Corp <Ibm> エラー回復方法
US6883126B1 (en) 2000-11-07 2005-04-19 Maxtor Corporation Method and apparatus for reducing error recovery time in hard disk drive
US6829719B2 (en) * 2001-03-30 2004-12-07 Transmeta Corporation Method and apparatus for handling nested faults
US6995943B1 (en) * 2001-12-11 2006-02-07 Maxtor Corporation Off-track error recovery method and apparatus for disk drive
US7275179B1 (en) * 2003-04-24 2007-09-25 Network Appliance, Inc. System and method for reducing unrecoverable media errors in a disk subsystem
US7415115B2 (en) * 2003-05-14 2008-08-19 Broadcom Corporation Method and system for disaster recovery of data from a storage device
US20050015416A1 (en) 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
US7185222B2 (en) 2003-11-14 2007-02-27 International Business Machines Corporation Apparatus, system, and method for maintaining data in a storage array
JP4324088B2 (ja) 2004-12-17 2009-09-02 富士通株式会社 データ複製制御装置
US7536595B1 (en) 2005-10-19 2009-05-19 At&T Intellectual Property, Ii, L.P. Systems, devices, and methods for initiating recovery
TWI287190B (en) 2005-10-31 2007-09-21 Inventec Corp Stable storage method
US7774643B2 (en) 2006-01-06 2010-08-10 Dot Hill Systems Corporation Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
JP2007233903A (ja) 2006-03-03 2007-09-13 Hitachi Ltd 記憶制御装置及び記憶制御装置のデータ回復方法
JP2007299079A (ja) * 2006-04-28 2007-11-15 Fujitsu Ltd ストレージ装置及びその障害回復方法
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
JP2009104412A (ja) * 2007-10-23 2009-05-14 Hitachi Ltd ストレージ装置及びその制御方法
US7890504B2 (en) 2007-12-19 2011-02-15 Netapp, Inc. Using the LUN type for storage allocation
US8706950B2 (en) 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
EP2286343A4 (en) * 2008-05-19 2012-02-15 Axxana Israel Ltd ROBUST DATA STORAGE IN THE EVENT OF REPLICATION ERRORS AND ROLLING DISASTERS
JP2010033287A (ja) * 2008-07-28 2010-02-12 Hitachi Ltd ストレージサブシステム及びこれを用いたデータ検証方法
US8041991B2 (en) * 2008-11-18 2011-10-18 Lsi Corporation System and method for recovering solid state drive data
US20110012147A1 (en) * 2009-07-15 2011-01-20 Koninklijke Philips Electronics N.V. Wavelength-converted semiconductor light emitting device including a filter and a scattering structure
US8769535B2 (en) 2009-09-24 2014-07-01 Avaya Inc. Providing virtual machine high-availability and fault tolerance via solid-state backup drives
KR20120037786A (ko) * 2010-10-12 2012-04-20 삼성전자주식회사 저장 장치, 그것의 락 모드 관리 방법, 및 그것을 포함하는 메모리 시스템
US8589723B2 (en) 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US8949551B2 (en) * 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
KR101854214B1 (ko) * 2011-04-27 2018-05-03 시게이트 테크놀로지 엘엘씨 라이트 방법 및 그 방법을 이용하는 저장 장치
WO2012160760A1 (ja) 2011-05-25 2012-11-29 パナソニック株式会社 情報処理装置および情報処理方法
JP5887757B2 (ja) 2011-08-17 2016-03-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US9514014B2 (en) 2011-08-17 2016-12-06 EMC IP Holding Company, LLC Methods and systems of managing a distributed replica based storage
US9372755B1 (en) * 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8782369B2 (en) * 2011-11-15 2014-07-15 Lsi Corporation Apparatus to manage efficient data migration between tiers
US10073656B2 (en) * 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9164840B2 (en) * 2012-07-26 2015-10-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing a solid state drive (‘SSD’) in a redundant array of inexpensive drives (‘RAID’)
US8930663B2 (en) * 2012-09-24 2015-01-06 Infinidat Ltd. Handling enclosure unavailability in a storage system
JP5910444B2 (ja) * 2012-09-28 2016-04-27 富士通株式会社 情報処理装置、起動プログラム、および起動方法
JP2014119831A (ja) * 2012-12-13 2014-06-30 Fujitsu Ltd ストレージ装置、制御方法及び制御プログラム
US9251115B2 (en) 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
JP6005566B2 (ja) 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
US9830236B2 (en) 2013-06-05 2017-11-28 Vmware, Inc. System and method for assigning memory reserved for high availability failover to virtual machines
US9378083B2 (en) 2013-12-04 2016-06-28 Seagate Technology Llc Adaptive read error recovery for memory devices
US9397703B2 (en) 2013-12-04 2016-07-19 Seagate Technology Llc Adaptive read error recovery for memory devices
US9542272B2 (en) * 2014-03-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Write redirection in redundant array of independent disks systems
JP2015210658A (ja) * 2014-04-25 2015-11-24 富士通株式会社 記憶制御装置、データ復旧プログラム、およびデータ復旧方法
US10102082B2 (en) 2014-07-31 2018-10-16 Intuit Inc. Method and system for providing automated self-healing virtual assets
WO2016018421A1 (en) 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. Cache management for nonvolatile main memory
CN105320621A (zh) * 2014-08-04 2016-02-10 株式会社东芝 存储器系统以及信息处理装置
KR102147970B1 (ko) 2014-08-05 2020-08-25 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
US9477549B2 (en) * 2014-09-15 2016-10-25 Sandisk Technologies Llc Methods, systems, and computer readable media for address and data integrity checking in flash memory operations
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
KR102365269B1 (ko) * 2015-04-13 2022-02-22 삼성전자주식회사 데이터 스토리지 및 그것의 동작 방법
US9690651B2 (en) 2015-05-21 2017-06-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling a redundant array of independent disks (RAID) that includes a read only flash data storage device
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10013325B1 (en) 2015-09-29 2018-07-03 EMC IP Holding Company LLC Providing resiliency to a raid group of storage devices
TWI547801B (zh) 2015-10-22 2016-09-01 Accelstor Inc 資料儲存系統及方法
US9766965B2 (en) * 2015-11-25 2017-09-19 Salesforce.Com, Inc. System and method for monitoring and detecting faulty storage devices
US10275160B2 (en) * 2015-12-21 2019-04-30 Intel Corporation Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
JP6707939B2 (ja) 2016-03-25 2020-06-10 日本電気株式会社 制御装置、ストレージ装置、制御方法及びプログラム
US10445200B2 (en) * 2016-05-02 2019-10-15 Samsung Electronics Co., Ltd. Storage device having various recovery methods and recovery modes
CN107797878A (zh) 2016-09-06 2018-03-13 阿里巴巴集团控股有限公司 虚拟机热迁移处理方法及系统
KR20180045220A (ko) * 2016-10-25 2018-05-04 삼성전자주식회사 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템
US10223276B2 (en) 2017-02-23 2019-03-05 Red Hat, Inc. Page cache management during migration using a list of outstanding store requests transmitted to a destination host machine
JP2018170618A (ja) 2017-03-29 2018-11-01 Kddi株式会社 障害自動復旧システム、制御装置、手順作成装置およびプログラム
US10587685B2 (en) 2017-04-28 2020-03-10 Netapp Inc. Cross-platform replication of logical units
US10572161B2 (en) 2017-11-15 2020-02-25 Samsung Electronics Co., Ltd. Methods to configure and access scalable object stores using KV-SSDs and hybrid backend storage tiers of KV-SSDs, NVMe-SSDs and other flash devices
US10437517B2 (en) 2018-02-15 2019-10-08 International Business Machines Corporation Enhanced soft fence of devices
US10719397B2 (en) 2018-06-08 2020-07-21 Samsung Electronics Co., Ltd. System, device and method for storage device assisted low-bandwidth data repair
US11869586B2 (en) * 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11144240B2 (en) * 2018-08-24 2021-10-12 Micron Technology, Inc. Memory sub-system for increasing bandwidth for command scheduling
CN111104245B (zh) 2018-10-29 2023-07-14 建兴储存科技(广州)有限公司 固态存储装置的读取重试方法
US11003559B2 (en) 2019-03-26 2021-05-11 International Business Machines Corporation Underperforming drive handling in redundant arrays
US11099735B1 (en) 2020-02-18 2021-08-24 Vmware, Inc. Facilitating the recovery of full HCI clusters
US11636232B2 (en) 2020-05-05 2023-04-25 Lenovo (Singapore) Ltd. Pte. Apparatus, method, and program product for selectively obscuring data being displayed
US20210349782A1 (en) * 2020-05-11 2021-11-11 Samsung Electronics Co., Ltd. Systems, methods, and devices for fault resilient storage
US11803446B2 (en) * 2020-07-13 2023-10-31 Samsung Electronics Co., Ltd. Fault resilient storage device
US11301162B2 (en) 2020-05-31 2022-04-12 EMC IP Holding Company LLC Balancing resiliency and performance by selective use of degraded writes and spare capacity in storage systems
US11947838B2 (en) * 2020-11-30 2024-04-02 International Business Machines Corporation Utilizing statuses to preserve a state of data during procedures such as testing without causing functional interruptions
US11307931B1 (en) * 2021-03-19 2022-04-19 Micron Technology, Inc. Using zones to manage capacity reduction due to storage device failure

Also Published As

Publication number Publication date
JP2022017215A (ja) 2022-01-25
JP2022017216A (ja) 2022-01-25
US11803446B2 (en) 2023-10-31
KR20220008203A (ko) 2022-01-20
TW202203034A (zh) 2022-01-16
US20220012147A1 (en) 2022-01-13
CN113934367A (zh) 2022-01-14
KR20220008237A (ko) 2022-01-20
US20220012145A1 (en) 2022-01-13
CN113934368A (zh) 2022-01-14
KR20220008206A (ko) 2022-01-20
TW202219765A (zh) 2022-05-16
TW202219766A (zh) 2022-05-16
KR20220008214A (ko) 2022-01-20
US11775391B2 (en) 2023-10-03
US20220012130A1 (en) 2022-01-13
US20230244570A1 (en) 2023-08-03
US20220012142A1 (en) 2022-01-13
US11630731B2 (en) 2023-04-18
JP2022017212A (ja) 2022-01-25
US20230251931A1 (en) 2023-08-10
CN114003167A (zh) 2022-02-01
CN113934571A (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
TWI465906B (zh) 用以執行無原子元資料之電力故障安全快取的技術
US11474899B2 (en) Operation method of open-channel storage device
US20130212321A1 (en) Apparatus, System, and Method for Auto-Commit Memory Management
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US11720447B2 (en) Application high availability via application transparent battery-backed replication of persistent data
US20230251931A1 (en) System and device for data recovery for ephemeral storage
JP6540334B2 (ja) システム、情報処理装置、および情報処理方法
TW202147092A (zh) 儲存元件、儲存系統以及操作儲存元件的方法
US20210349781A1 (en) Systems, methods, and devices for data recovery using parity space as recovery space
CN116414616A (zh) 一种固态硬盘ssd故障恢复方法、ssd及系统
KR101526110B1 (ko) 증명 가능하고 정확한 오류 복구를 위한 플래시 변환 계층 설계 프레임워크
US20210349780A1 (en) Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device
JP6677021B2 (ja) 情報処理装置、情報処理方法、プログラム
US10437471B2 (en) Method and system for allocating and managing storage in a raid storage system
WO2015011749A1 (ja) ストレージシステムおよびストレージシステムの障害管理方法