KR20220008237A - 임시 스토리지에 대한 데이터 복원을 위한 시스템 및 장치 - Google Patents

임시 스토리지에 대한 데이터 복원을 위한 시스템 및 장치 Download PDF

Info

Publication number
KR20220008237A
KR20220008237A KR1020210091520A KR20210091520A KR20220008237A KR 20220008237 A KR20220008237 A KR 20220008237A KR 1020210091520 A KR1020210091520 A KR 1020210091520A KR 20210091520 A KR20210091520 A KR 20210091520A KR 20220008237 A KR20220008237 A KR 20220008237A
Authority
KR
South Korea
Prior art keywords
storage device
data
fault recovery
fault
read
Prior art date
Application number
KR1020210091520A
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 KR20220008237A publication Critical patent/KR20220008237A/ko

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/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
    • 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
    • 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/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • 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 Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Abstract

본 개시는 페이지 캐시 관리를 위한 방법에 관한 것이다. 상기 방법은 결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 식별하는 단계, 상기 결함 복구 스토리지 장치와 관련된 제 1 영역이 액세스 불가한 공간을 포함하고, 상기 결함 복구 스토리지 장치와 관련된 제 2 영역이 액세스 가능한 공간을 포함한다는 것을 결정하는 단계, 데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 식별하고, 상기 읽기 명령에 기반하여, 상기 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청된 제 1 데이터를 결정하는 단계, 상기 읽기 명령에 기반하여, 상기 제 2 영역으로부터 상기 읽기 동작에 의하여 요청된 제 2 데이터를 결정하는 단계, 상기 제 2 영역으로부터 상기 제 2 데이터를 회수하는 단계 및 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 상기 제 2 데이터의 전송을 스케줄하는 단계를 포함할 수 있다.

Description

임시 스토리지에 대한 데이터 복원을 위한 시스템 및 장치{SYSTEM AND DEVICE FOR DATA RECOVERY FOR EPHEMERAL STORAGE}
본 개시는 데이터 스토리지 시스템에 관한 것으로, 특히 임시 스토리지의 맥락에서 데이터 복원을 제공하도록 구성된 데이터 스토리지 시스템 및 장치에 관한 것이다.
본 배경이 되는 기술 섹션은 단지 문맥을 제공하기 위한 것이고, 이 섹션의 임의의 실시 예 또는 개념의 개시가 선행 기술임을 인정하는 것을 구성하지 않는다.
스토리지 장치들 및 시스템들은 다양한 데이터 처리 시스템들에서 광범위하게 응용할 수 있다. 일부 실시 예들에서, 스토리지 장치들은 컴퓨터 시스템의 에뮬레이션을 지칭할 수 있는 가상 머신(Virtual Machine, 이하 VM)과 관련된 적어도 일부 양상들에서 호스트로 사용될 수 있다. VM은 특정 하드웨어, 소프트웨어, 및/또는 이들의 조합들을 포함할 수 있는 구현들을 포함할 수 있다. 더불어, 스토리지 장치들은 상당한 범위의 내부 결함 상태들(예를 들어, 온도 센서 오류 또는 복사로 인한 비트 플립들을 포함하는)에 직면할 수 있을 만큼 충분히 복잡할 수 있다. 이러한 결함 상태들은 스토리지 장치 상에서 또는 스토리지 장치와 함께 수행되는 특정 작업의 효율성을 저하시킬 수 있다.
따라서, 스토리지 장치들 및/또는 스토리지 장치들을 포함하는 시스템들과 관련된 복구 동작들을 위한 시스템 및 방법이 필요하다.
본 개시의 목적은 임시 스토리지에 대한 데이터 복원을 제공하도록 구성된 데이터 스토리지 시스템 및 장치를 제공하는데 있다.
일부 실시 예에서, 페이지 캐시 관리를 위한 방법이 기술된다. 상기 방법은 결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 식별하는 단계, 상기 결함 복구 스토리지 장치와 관련된 제 1 영역이 액세스 불가한 공간을 포함하고, 상기 결함 복구 스토리지 장치와 관련된 제 2 영역이 액세스 가능한 공간을 포함한다는 것을 결정하는 단계, 데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 식별하고, 상기 읽기 명령에 기반하여, 상기 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청된 제 1 데이터를 결정하는 단계, 상기 읽기 명령에 기반하여, 상기 제 2 영역으로부터 상기 읽기 동작에 의하여 요청된 제 2 데이터를 결정하는 단계, 상기 제 2 영역으로부터 상기 제 2 데이터를 회수하는 단계 및 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 상기 제 2 데이터의 전송을 스케줄하는 단계를 포함할 수 있다. 상기 방법은 상기 읽기 명령에 기반하여, 상기 결함 복구 스토리지 장치의 상기 액세스 불가한 공간으로부터 상기 읽기 동작에 의하여 요청된 제 3 데이터를 결정하는 단계 및 상기 제 3 데이터의 결정에 기반하여, 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 에러를 반환하는 단계를 더 포함할 수 있다.
또 다른 실시 예에서, 상기 방법은 상기 데이터에 대한 상기 결함 복구 스토리지 장치에서 쓰기 명령을 식별하는 단계, 호스트 장치의 페이지 캐시로 상기 데이터의 적어도 일부를 기록하는 단계, 상기 데이터의 상기 일부는 더티 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 영구 메모리에 상기 더티 데이터를 기록하는 단계 및 상기 데이터의 다른 일부는 상기 액세스 불가한 공간과 관련된 클린 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 상기 영구 메모리에 상기 클린 데이터를 기록하는 단계를 더 포함할 수 있다.
다양한 실시 예들에서, 상기 제 2 데이터의 전송은 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로의 적어도 하나의 가상 머신의 라이브 마이그레이션(live migration)을 포함한다. 일부 실시 예들에서, 상기 제 1 데이터는 상기 로컬 메모리에 캐시된 상기 데이터의 적어도 일부를 포함한다. 다양한 실시 예들에서, 상기 로컬 메모리는 DRAM(Dynamic Random Access Memory)을 포함하고, 상기 제 1 데이터의 식별은 페이지 캐시로부터 수행된다. 일부 실시 예들에서, 상기 데이터는 호스트 장치의 적어도 하나의 가상 머신과 관련된 데이터를 포함한다. 다양한 실시 예들에서, 상기 스토리지 장치 결함은 상기 결함 복구 스토리지 장치를 부분 읽기 전용 모드에서 동작하게하고, 상기 결함 복구 스토리지 장치는 저하된 성능 또는 감소된 용량에서 동작을 수행한다. 일부 실시 예들에서, 상기 결함 복구 스토리지 장치 또는 상기 제 2 스토리지 장치 중 적어도 하나는 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함한다. 다양한 실시 예들에서, 페이지 캐시 관리를 위한 장치가 기술된다. 상기 장치는 컴퓨터 실행 가능 명령들을 저장하는 적어도 하나의 메모리 장치 및 상기 적어도 하나의 메모리 장치에 액세스 하도록 구성되는 적어도 하나의 프로세서를 포함하되, 상기 적어도 하나의 프로세서는 결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 식별하고, 상기 결함 복구 스토리 장치와 관련된 제 1 영역이 액세스 불가한 공간을 포함하고, 상기 결함 복구 스토리지 장치와 관련된 제 2 영역이 액세스 가능한 공간을 포함한다는 것을 결정하고, 데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 식별하고, 상기 읽기 명령에 기반하여, 상기 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청된 제 1 데이터를 결정하고, 상기 읽기 명령에 기반하여, 상기 제 2 영역으로부터 상기 읽기 동작에 의하여 요청된 제 2 데이터를 결정하고, 상기 제 2 영역으로부터 상기 제 2 데이터를 회수하고, 그리고 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 상기 제 2 데이터의 전송을 스케줄하기 위한 상기 컴퓨터 실행 가능 명령들을 실행하도록 구성된다.
다양한 실시 예들에서, 상기 적어도 하나의 프로세서는 상기 읽기 명령에 기반하여, 상기 결함 복구 스토리지 장치의 상기 액세스 불가한 공간으로부터 상기 읽기 동작에 의하여 요청된 제 3 데이터를 결정하고, 그리고 상기 제 3 데이터의 결정에 기반하여, 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 에러를 반환하기 위한 상기 컴퓨터 실행 가능 명령들을 더 실행하도록 구성된다. 상기 적어도 하나의 프로세서는 상기 데이터에 대한 상기 결함 복구 스토리지 장치에서 쓰기 명령을 식별하고, 호스트 장치의 페이지 캐시로 상기 데이터의 적어도 일부를 기록하고, 상기 데이터의 상기 일부는 더티 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 영구 메모리에 상기 더티 데이터를 기록하고, 그리고 상기 데이터의 다른 일부는 상기 액세스 불가한 공간과 관련된 클린 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 상기 영구 메모리에 상기 클린 데이터를 기록하기 위한 상기 컴퓨터 실행 가능 명령들을 더 실행한다.
또 다른 실시 예에서, 상기 제 2 데이터의 전송은 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로의 적어도 하나의 가상 머신의 라이브 마이그레이션을 포함한다. 일부 실시 예들에서, 상기 제 1 데이터는 상기 로컬 메모리에 캐시된 상기 데이터의 적어도 일부를 포함한다. 다양한 실시 예들에서, 상기 로컬 메모리는 DRAM을 포함하고, 상기 제 1 데이터의 결정은 페이지 캐시로부터 수행되고, 상기 데이터는 호스트 장치의 적어도 하나의 가상 머신과 관련된 데이터를 포함한다. 일부 실시 예들에서, 상기 스토리지 장치 결함은 상기 결함 복구 스토리지 장치를 부분 읽기 전용 모드에서 동작하게하고, 상기 결함 복구 스토리지 장치는 저하된 성능 또는 감소된 용량에서 동작을 수행한다.
다양한 실시 예들에서, 비 일시적 컴퓨터 판독 가능 매체가 기술된다. 프로세서에 의하여 실행되는 컴퓨터 실행 가능 명령들을 저장하는 비 일시적 컴퓨터 판독 가능 매체에 있어서, 상기 프로세서에 의하여 결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 식별하고, 상기 결함 복구 스토리 장치와 관련된 제 1 영역이 액세스 불가한 공간을 포함하고, 상기 결함 복구 스토리지 장치와 관련된 제 2 영역이 액세스 가능한 공간을 포함한다는 것을 결정하고, 데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 식별하고, 상기 읽기 명령에 기반하여, 상기 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청된 제 1 데이터를 결정하고, 상기 읽기 명령에 기반하여, 상기 제 2 영역으로부터 상기 읽기 동작에 의하여 요청된 제 2 데이터를 결정하고, 상기 제 2 영역으로부터 상기 제 2 데이터를 회수하고 그리고 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 상기 제 2 데이터의 전송을 스케줄하는 동작들을 수행한다.
상기 비 일시적 컴퓨터 판독 가능 매체는 상기 읽기 명령에 기반하여, 상기 결함 복구 스토리지 장치의 상기 액세스 불가한 공간으로부터 상기 읽기 동작에 의하여 요청된 제 3 데이터를 결정하고, 그리고 상기 제 3 데이터의 결정에 기반하여, 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 에러를 반환하는 컴퓨터 실행 가능 명령들을 더 포함한다.
상기 비 일시적 컴퓨터 판독 가능 매체는 상기 데이터에 대한 상기 결함 복구 스토리지 장치에서 쓰기 명령을 식별하고, 호스트 장치의 페이지 캐시로 상기 데이터의 적어도 일부를 기록하고, 상기 데이터의 상기 일부는 더티 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 영구 메모리에 상기 더티 데이터를 기록하고, 그리고 상기 데이터의 다른 일부는 상기 액세스 불가한 공간과 관련된 클린 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 상기 영구 메모리에 상기 클린 데이터를 기록하는 컴퓨터 실행 가능 명령들을 더 포함한다. 또 다른 실시 예에서, 상기 제 2 데이터의 전송은 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로의 적어도 하나의 가상 머신의 라이브 마이그레이션을 포함한다.
언급된 바와 같이, 일부 실시 예들에서, 시스템들, 방법들, 및 장치는 결함 복구 스토리지 장치를 포함할 수 있다. 결함 복구 스토리지 장치는 부분적인 기능을 유지하는 동안 다양한 복구 모드들로 동작하거나, 내부 결함에도 불구하고 전체 기능으로 반환될 수 있다. 예를 들어, 일부 상황들에서, 스토리지 장치가 부분적으로 기능을 유지할 수 있는 방법 중 하나는 읽기 전용 모드로 동작하는 것이고, 이 경우 스토리지 장치는 호스트로부터의 읽기 요청들에는 응답할 수 있으나, 스토리지 장치가 호스트로부터 쓰기 요청을 수신한 경우 에러 메시지를 반환할 수 있다.
본 개시에 따른 시스템 및 장치에 따르면, 스토리지 장치 상에 결함이 발생하여 성능이 저하되거나, 용량이 감소하거나, 기능이 저하되더라도 처리되는 데이터의 무결성을 유지할 수 있고, 결함 발생에 의하여 야기되는 데이터 처리 속도의 저하를 방지할 수 있다.
본 명세서에 제공되는 도면들은 특정 실시 예들을 설명하기 위한 것이고, 명시적으로 예시되지 않을 수 있는 다른 실시 예들이 본 개시의 범위에서 배제되는 것은 아니다.
본 개시의 특정 실시 예들 및 다른 특징들 및 이점들은 발명의 설명, 청구범위 및 첨부된 도면들을 참조하여 식별되고 이해될 것이다.
도 1은 본 개시의 실시 예에 따라 개시된 시스템들이 동작할 수 있는 환경을 보여주는 데이터 스토리지 시스템의 블록도이다.
도 2a는 본 개시의 실시 예에 따라 결함 복구 스토리지 장치가 직면할 수 있는 다양한 결함 모드들을 나타내는(예를 들어, 가상 머신들의 라이브 마이그레이션 동안) 스토리지 장치의 결함 상태들의 테이블이다.
도 2b는 본 개시의 실시 예에 따라 라이브 마이그레이션 동안 결함 복구 스토리지 장치의 다양한 상태들을 나타낼 수 있는 스토리지 장치의 동작 모드들의 테이블이다.
도 2c는 본 개시의 실시 예에 따라 호스트에 의하여 스토리지 장치로 전송하기 위한 명령들의 테이블이다.
도 2d는 본 개시의 실시 예에 따른 복구 모드들의 계층 구조는 보여주는 테이블이다.
도 3a는 본 개시의 실시 예에 따른 결함 복구 스토리지 장치의 동작의 제 1 방법에 대한 순서도이다.
도 3b는 본 개시의 실시 예에 따른 결함 복구 스토리지 장치의 동작의 제 2 방법에 대한 순서도이다.
도 4a는 본 개시의 실시 예에 따라 스토리지 장치를 사용하여 라이브 가상 머신 마이그레이션을 수행하는 것에 대한 다이어그램을 보여준다.
도 4b는 본 개시의 실시 예에 따라 결함 복구 스토리지 장치를 사용하여 라이브 가상 머신 마이그레이션을 수행하는 것에 대한 또 다른 다이어그램을 보여준다.
도 5는 본 개시의 실시 예에 따라 결함 복구 스토리지 장치를 사용하여 라이브 가상 머신 마이그레이션을 수행하는 방법에 대한 순서도이다.
도 6은 본 개시의 실시 예에 따라 페이지 캐시 관리와 연관된 예시적인 동작들을 수행하는 방법에 대한 순서도이다.
첨부된 도면들과 관련하여 이하 설명되는 상세한 설명은 본 개시에 따라 제공되는 스토리지 장치들 및 스토리지 장치들을 포함하는 시스템들의 복구 동작을 위한 시스템 및 방법의 실시 예들의 설명이며, 본 개시 내용을 구성되거나 활용될 수 있는 유일한 형태들을 나타내는 것을 아니다. 상세한 설명은 설명된 실시 예들과 관련한 본 개시의 특징들을 설명하다. 다만, 동일하거나 등가의 기능들 및 구조들이 본 개시의 범위 내에 포함되도록 의도된 상이한 실시 예들에 의하여 달성될 수 있음이 이해되어야 한다. 본 명세서에 표시된 바와 같이, 유사한 구성 번호는 유사한 구성들 또는 특징들을 나타내도록 의도된다.
일부 실시 예들에서, 개시된 시스템들은 결함 복구 스토리지 장치(도 1 내지 3과 관련하여 이하 상세히 설명됨)로부터 또 다른 스토리지 장치로 가상 머신(Virtual Machine, VM)의 라이브 마이그레이션(live migration)을 수행하는데 사용될 수 있다. 특히, 마이그레이션은 서비스 중단이 거의 또는 전혀 없이, 실행 중인 가상 머신이 하나의 물리적 호스트로부터 또 다른 물리적 호스트로(예를 들어, 지원 스토리지 장치들로) 이동하는 프로세스를 의미할 수 있다. 또한, 라이브 마이그레이션(이하 상세히 설명됨)은 클라이언트 또는 애플리케이션의 연결을 끊지 않고, 실행 중인 가상 머신 또는 애플리케이션을 서로 다른 물리적 머신들 사이에서 이동시키는 프로세스를 의미할 수 있다. 일부 실시 예들에서, 가상 머신의 메모리, 스토리지, 및 네트워크 연결의 적어도 일부는 소스 장치로부터 목표 장치로 이전될 수 있다.
다양한 실시 예들에서, 개시된 시스템들은 가상 머신들의 동작을 지원하는 스토리지 장치들을 포함할 수 있고, 소스 장치 및 목표 장치 간의 가상 머신의 라이브 마이그레이션을 추가적으로 지원할 수 있다. 일부 양상들에서, 본 개시는 결함 복구 스토리지 장치와 같은 스토리지 장치를 포함하는 장치들을 나타낼 수 있고, 가상 머신들과 연관된 데이터 및 정보들의 적어도 일부를 저장하는데 사용될 수 있는 소스 장치 및 목표 장치를 참조할 수 있다. 소스 장치, 소스 스토리지 장치, 목표 장치, 및/또는 목표 스토리지 장치과 같은 용어는 본 개시의 범위를 벗어남 없이 본 명세서에서 상호 교환하여 사용될 수 있음을 이해하여야 한다.
일부 실시 예들에서 언급된 바와 같이, 스토리지 장치는 결함을 경험하고, 저하된 성능 동작 모드(예를 들어, 후술되는 바와 같이 읽기 전용 동작 모드 또는 부분 읽기 전용 동작 모드)로 변환되는 결함 복구 스토리지 장치를 더 포함할 수 있다. 일부 양상들에서, 이러한 결함 복구 스토리지 장치는 가상 머신을 지원하기 위하여 소스 측의 서버에서 동작하도록 구성될 수 있고, 적어도 부분적으로 동작들(예를 들어, 스토리지 관련 동작들)을 수행할 수 있다. 따라서, 개시된 시스템들은 결함을 경험하는 결함 복구 스토리지 장치에서 적어도 부분적으로 호스팅된 가상 머신의 제 2 장치(예를 들어, 제 2 스토리지 장치)들로의 라이브 마이그레이션을 허용하도록 구성된다. 특히, 개시된 시스템들은 소스 장치 작업(예를 들어, 휘발성) 메모리, 2차 스토리지(예를 들어, 결함 복구 스토리지 장치 비휘발성 메모리), 목표 장치 작업(예를 들어, 휘발성) 메모리 및 2차 스토리지(예를 들어, 제 2 스토리지 장치 비휘발성 메모리)의 조합에 대한 데이터 검사를 포함하는 방법론을 사용할 수 있다. 또한, 작업 메모리, 휘발성 메모리, 2차 스토리지, 영구 메모리 및 비휘발성 메모리는 본 개시의 범위를 벗어나지 않는 한, 상호 교환하여 사용될 수 있음을 이해하여야 한다.
상술한 바와 같이, 개시된 시스템들은 결함 복구 스토리지 장치로부터 제 2 장치(예를 들어, 목표 장치)로의 가상 머신들의 라이브 마이그레이션의 양상들을 수행하기 위하여, 결함 복구 스토리지 장치들과 관련하여 동작하도록 구성될 수 있다. 일부 실시 예들에서, 결함 복구 스토리지 장치는 다양한 복구 모드들에서 동작할 수 있고, 내부 결함들에도 불구하고 부분적으로 기능을 유지하거나 전체 기능으로 복귀할 수 있다. 예를 들어, 온도 센서 장애에 응답하여, 스토리지 장치는 감소된 사용률로, 또는 쓰기 동작들에 대한 감소된 사용률로 동작할 수 있거나, 쓰기 동작들을 완전히 수행하지 않을 수 있다. 스토리지 매체를 손상시킬 수 있는 일시적인 장애에 응답하여, 스토리지 장치는 스토리지 매체를 재포맷 할 수 있다. 스토리지 매체가 손상되지 않은 일시적인 장애에 응답하여, 스토리지 장치는 전원을 사이클링할 수 있다. 일부 상황들에서, 스토리지 장치가 부분적으로 기능을 유지할 수 있는 방법들 중 하나는 읽기 전용 모드로 동작하는 것이고, 이 경우 스토리지 장치가 호스트의 읽기 요청들에 응답할 수 있으나, 호스트의 쓰기 요청을 수신하는 경우 에러 메시지를 반환할 수 있다. 또한, 만료 예정인 데이터를 복구 영역으로 이동할 수 있으므로, 해당 데이터는 만료로 인하여 소실되지 않을 것이다.
다양한 실시 예들에서, 결함을 경험하지 않은 비-결함 복구 스토리지 장치의 경우, 스토리지 장치들은 소스 장치와 연관된 스토리지 장치로부터 목표 장치와 연관된 스토리지 장치로 데이터의 이미지를 복사함으로써(예를 들어, 메모리 복사 동작을 사용하여), 가상 머신의 라이브 마이그레이션을 수행할 수 있다. 일부 측면들에서(아래 도 4a와 관련하여 추가로 도시되고 설명됨), 이 경우 라이브 마이그레이션 동안, 데이터의 일부는 휘발성 메모리(예를 들어, DRAM)에 잔존할 수 있는 반면, 데이터의 또 다른 일부는 2차 스토리지 장치(예를 들어, 제 2 스토리지 장치)에 기록될 수 있다. 예를 들어, 일부 클린(C) 데이터, 더티(또는 오염된)(D) 데이터(예를 들어, 액세스 및 수정되었으나, 아직 2차 스토리지에 기록되지 않은 데이터) 및/또는 제거된 데이터(예를 들어, 버려질 수 있었거나 버려질 수 있는 데이터)는 라이브 마이그레이션 동안 휘발성 메모리에 남을 수 있다. 따라서, 스토리지 장치 결함이 없는 라이브 마이그레이션의 경우, 개시된 시스템들은 소스 장치로부터 목표 장치의 디스크로 데이터를 전부 기록할 수 있다. 라이브 마이그레이션을 수행한 후(예를 들어, 소스 장치에서 목표 장치로 부분적으로 또는 전체 메모리 복사를 수행한 후), 개시된 시스템들은 소스 장치를 해제할 수 있다. 또한, 또 다른 장치(예를 들어, 소스 장치 및/또는 목표 장치와 연관된 애플리케이션을 실행하는 장치)가 목표 장치의 2차 스토리지 상의 데이터에 액세스 할 필요가 있는 경우, 개시된 시스템들은 연관된 네트워크를 통한(예를 들어, 목표 장치에 대한 원격 디스크 액세스를 통하여) 원격 디스크 액세스를 허용하도록 구성될 수 있다. 그러나, 소스 장치가 결함을 경험한 경우, 일부 시스템들에서, 적어도 기본 디스크가 응답하지 않을 수 있고(휘발성 메모리가 데이터의 적어도 일부를 가지고 있더라도) 따라서 추가적인 기술들 없이 마이그레이션을 계속할 수 없을 수 있으므로, 마이그레이션은 금지될 수 있다.
그러나, 본 명세서에서 추가로 설명된 바와 같이, 다양한 실시 예들에서, 소스 장치가 결함 복구 스토리지 장치를 포함하고, 그 결함 복구 스토리지 장치가 읽기 전용 동작 모드로 구성된 경우, 개시된 시스템은 마이그레이션 프로세스를 계속하기 위하여, 데이터의 일부를 읽고, 그 데이터를 목표 장치로 전송하기 위한 소스 장치로의 일정 수준의 액세스(예를 들어, 비휘발성 메모리의 일부 및/또는 소스 장치의 휘발성 메모리로의 액세스)를 유지할 수 있다.
또 다른 실시 예에서, 개시된 시스템들은 소스 장치가 전체 읽기 전용 동작 모드가 아닌 부분 읽기 전용 동작 모드(예를 들어, 스토리지 장치가 읽기 동작을 위한 성능이 저하된 동작 모드)에 있더라도, 가상 머신들의 라이브 마이그레이션을 수행하도록 구성될 수 있다. 일부 실시 예들에서, 개시된 시스템들은 결함을 경험하고 부분 읽기 전용 동작 모드에 있는 결함 복구 소스 장치 상의 데이터와 관련된 특정 기회적 복원 동작들을 수행하도록 구성될 수 있다(예를 들어, 스토리지 장치는 저하된 성능, 더 작은 용량, 또는 더 적은 기능으로 동작한다). 예를 들어, 휘발성 메모리(예를 들어, DRAM)에 있는 정보를 사용함으로써 데이터가 최근 미리 결정된 기간 내에 기록된 경우(예를 들어, 본 명세서에 설명된 다양한 실시 예들의 임시 저장 적용 가능성을 야기함), 개시된 시스템들은 결함 복구 장치와 관련된 메모리(예를 들어, 비휘발성 메모리)의 결함 영역에 기록된 데이터를 복원하도록 구성될 수 있다. 특히, 개시된 시스템들은 라이브 마이그레이션의 이러한 양상을 수행하기 위하여 소스 장치 및/또는 목표 장치와 관련된 DRAM 정보를 사용하도록 구성될 수 있다.
다양한 실시 예들에서, 개시된 시스템은 언급된 바와 같이, 가상 머신들의 라이브 마이그레이션을 수행하는 맥락에서 사용될 수 있으며, 이는 이하 보다 상세히 설명될 것이다. 가상 머신들의 라이브 마이그레이션을 위한 일부 예시적인 동작들은 다음 중 적어도 일부가 포함될 수 있다. 일부 양상들에서, 개시된 시스템들은 먼저 라이브 마이그레이션 설정 프로세스를 수행할 수 있다. 라이브 마이그레이션이 설정되는 동안, 개시된 시스템들은 가상 머신 구성 데이터를 대상 장치로 전송하기 위하여 목표 장치와의 연결을 생성하는 소스 장치(예를 들어, 결함 복구 스토리지 장치를 포함하거나 결함 복구 스토리지 장치로의 액세스를 가지는 스토리지 장치)를 구성할 수 있다. 개시된 시스템들은 목표 장치에 가상 머신을 설정할 수 있고, 메모리는 목표 가상 머신에 할당될 수 있다. 또한, 개시된 시스템들은 목표 장치와 관련된 호스트 및/또는 하이퍼바이저(hypervisor)가 소스 가상 머신을 수신할 수 있는지 확인하는 것과 같은 다양한 검사들을 수행할 수 있다(예를 들어, 개시된 시스템들은 메모리, 디스크 연결성, 이들의 조합 등과 같은 다양한 파라미터가 충분한지를 결정할 수 있다).
또 다른 실시 예에서, 개시된 시스템들은 본 명세서에서 다양하게 설명된 실시 예들에 따라, 소스 장치로부터 목표 장치로 다양한 메모리 페이지의 전송을 수행할 수 있다. 일 실시 예에서, 개시된 시스템은 예를 들어, 본 개시에서 설명된 방법론의 양상들을 수행함으로써, 라이브 마이그레이션의 단계에서 네트워크를 통해 목표 장치로 복사되는 마이그레이션 가상 머신에 메모리를 할당할 수 있다. 해당 메모리는 마이그레이션하는 가상 머신의 “작업 세트”로 지칭될 수 있다. 일부 양상들에서, 메모리의 페이지는 4KB일 수 있거나, 임의의 적절한 크기일 수 있다. 개시된 시스템들은 마이그레이션하는 가상 머신이 계속 실행되도록 구성될 수 있다. 일부 실시 예들에서, 개시된 시스템들은 메모리 복사 프로세스를 반복하도록 하이퍼바이저를 구성할 수 있다. 일부 실시 예들에서, 각각의 반복은 더 적은 수의 수정된 페이지가 복사될 것을 요구할 수 있다. 작업 세트가 목표 서버에 복사된 후, 본 개시에 설명된 방법론의 다양한 양상들에 따라 수정된 페이지들이 전송될 수 있다.
이 상태에서, 개시된 시스템들의 라이브 마이그레이션은 본 개시에 설명된 방법론에 따라서, 목표 서버로 나머지 수정된 메모리 페이지들을 복제하는 메모리 복사 프로세스를 포함할 수 있다. 일부 실시 예들에서, 소스 장치는 CPU 및 가상 머신의 장치 상태와 같은 특정 정보를 목표 장치로 전송할 수 있다. 일부 양상들에서, 소스 장치가 마이그레이션하는 가상 머신의 작업 세트로부터 수정된 페이지들을 더 빨리 전송할수록, 라이브 마이그레이션은 더 빨리 완료될 수 있다. 또한, 전송되는 페이지들의 수는 가상 머신이 메모리 페이지들에 얼마나 적극적으로 액세스하고, 메모리 페이지들을 수정하는지에 기반할 수 있다. 수정된 메모리 페이지들이 목표 서버로 복사된 후, 목표 장치는 최신의 가상 머신 작업 세트를 가질 수 있다.
일부 실시 예들에서, 라이브 마이그레이션 단계 동안, 임의의 가상 스토리지 파일들 또는 가상 어댑터를 통하여 연결된 물리적 스토리지와 같은 가상 머신과 관련된 스토리지의 제어는 목표 장치로 전송될 수 있다. 또한, 개시된 시스템들은 목표 장치에서 가상 머신을 온라인 상태로 만들 수 있다. 이제 목표 장치는 가상 머신의 작업 세트에 액세스할 수 있고, 마찬가지로 가상 머신으로부터 사용되는 스토리지에 액세스할 수 있다.
일부 실시 예들에서, 개시된 시스템들은 하이퍼스케일러(hyperscaler) 환경(예를 들어, 데이터 센터들)과 관련하여 사용될 수 있다. 일부 양상들에서, 다양한 하이퍼스케일러 환경은 스토리지 장치가 가상 머신이 살아있을 동안 특정 시간에 대하여 사용되는 스토리지 공간을 제공하는 임시 스토리지 장치들을 사용하도록 구성된다. 일부 실시 예들에서, 개시된 시스템들은 이러한 환경들(예를 들어, 임시 스토리지 장치들 및 방법들을 사용하는 하이퍼스케일러 환경들)에서 작업하기에 적합할 수 있다(예를 들어, 주 스토리지와 비교할 때). 예를 들어, 이것은 주 스토리지 장치들에서 시스템들이 결함 발생시 읽을 수 있도록 구성되지 않을 수 있기 때문일 수 있다. 그러나, 임시 스토리지 장치들은 휘발성 메모리에 임시 데이터를 저장할 수 있다. 따라서, 개시된 시스템들은 결함이 있는 스토리지 장치가 실행되는 동안 종료될 수 있는 최신 데이터로 작동하도록 구성될 수 있다. 이 경우, 개시된 시스템들은 휘발성 메모리(예를 들어, DRAM)에 기록된 데이터를 찾을 수 있으며, 손상되지 않는다.
본 개시는 이제 가상 머신의 라이브 마이그레이션을 위한 결함 복구 스토리지 장치들을 포함하는 스토리지 시스템에서 사용될 수 있는 상황의 일부 양상들을 설명할 것이다. 특히, 도 1은 본 개시의 실시 예들에 따라, 임시 스토리지 장치에 대한 라이브 마이그레이션을 수행하는 시스템들 및 방법들이 작동할 수 있는 예시 네트워크를 설명하는 컴퓨팅 시스템을 보여준다. 도시된 바와 같이, 시스템은 하나 이상의 스토리지 장치(110)(또는 “드라이브”)에 연결된 호스트(105)를 포함할 수 있다. 도시된 바와 같이 스토리지 장치(110)들은 볼륨 관리자(115)를 통하여 호스트(105)에 연결될 수 있거나, 스토리지 장치(110)들은 호스트(105)에 직접 연결될 수 있다. 일부 실시 예들에서, 스토리지 장치(110)는 내부 결함 상태를 경험할 수 있고, 스토리지 장치는 결함 상태의 시스템 레벨 영향을 완화하기 위하여 이하 보다 상세히 논의되는 바와 같이 다양한 복구 행태들을 나타낼 수 있다. 주어진 스토리지 장치(110)는 솔리드 스테이트 드라이브(Solid State Drive, 이하 SSD)일 수 있고, 컨트롤러(120)(또는 제어 회로) 및 스토리지 매체(125)(예를 들어, NAND 플래시 메모리)를 포함할 수 있다. 스토리지 장치(110)에서 삭제 가능한 가장 작은 단위는 “블록”으로 지칭될 수 있고, 스토리지 장치(110)에서 쓰기 가능한 가장 작은 단위는 “페이지”로 지칭될 수 있다. 각각의 스토리지 장치(110)는 영구 스토리지 장치들에 적합한, 2.5”1.8”및 EDSFF(Enterprise and Data Center SSD Form Factor)를 포함하되 이에 국한되지 않 는 복수의 폼 팩터들 중 임의의 폼 팩터를 가질 수 있고, 영구 스토리지 장치들에 적합한, PCI(Peripheral Component Interconnect), PCIe(PCI Express), 이더넷, SCSI(Small Computer System Interface), SATA(Serial AT Attachment) 및 SAS(Serial Attached SCSI)를 포함하는 복수의 인터페이스들 중 임의의 호스트(105)에 연결될 수 있는 전기 인터페이스를 가질 수 있다.
이제 스토리지 장치에 대한 일부 추가 세부 정보가 제공된다. 일부 양상들에서, 스토리지 매체(125)는 보존 기간을 가질 수 있고(이는 스토리지 매체(125)의 사용 이력에 의존할 수 있고, 따라서 스토리지 매체(125) 내에서 변할 수 있음), 보존 기간보다 오래 저장된 데이터(즉, 보존 기간을 초과하는 데이터)는 신뢰할 수 없게 되어 만료되었다고 할 수 있다. 데이터는 블록 코드일 수 있는 에러 정정 코드를 사용하여 스토리지 매체(125)내에 저장될 수 있다. 스토리지 매체(125)로부터 데이터를 읽는 경우, 코드 블록으로 지칭되는 대량의 로 데이터(raw data)가 스토리지 매체(125)로부터 읽어질 수 있고, 이를 디코딩하기 위한 시도가 이루어질 수 있다. 만약, 그 시도가 실패하는 경우, 추가적인 시도들(읽기 재시도들)이 이루어질 수 있다. 사용에 따라, 스토리지 매체(125)의 일부(예를 들어, 블록)는 보존 기간이 허용할 수 없을 정도로 짧아지는 지점까지 열화될 수 있으며, 해당 블록은 “배드 블록”으로 분류될 수 있다. 이러한 상황이 스토리지 매체(125) 전체가 동작 불가능하게 만드는 것을 방지하기 위하여, “배드 블록 관리 예비 공간”이라고 지칭되는 예비 공간이 존재할 수 있으며(예를 들어, 각각의 플래시 메모리 다이 또는 각각의 플래시 메모리 플레인에 포함됨), 컨트롤러(120), 또는 플래시 메모리 다이 혹은 플래시 메모리 플레인 내부의 또 다른 컨트롤러는 예비 블록을 사용하기 시작하고, 배드 블록 사용을 중단할 수 있다.
이제, 본 개시는 가상 머신들의 라이브 마이그레이션을 목적으로 사용될 수 있는 결함 북구 스토리지 장치들과 관련된 다양한 결함 상태들에 대하여 보다 상세히 설명할 것이다. 특히, 결함 복구 스토리지 장치는 다양한 결함들을 널리 경험할 수 있으며, 가상 머신들의 라이브 마이그레이션을 수행하기 위하여 도 1과 관련하여 도시되고 설명된 네트워크에서 계속 동작할 수 있다. 이러한 결함들 중 일부는 아래와 같이 설명된다.
특히, 도 2는 케이스 식별자(“Case ID”로 각각 라벨링된 결함 복구 스토리지 장치들과 관련된 결함 조건(또는 “결함 상태”)의 테이블이다. Case 1은 스토리지 장치(110)가 더 이상 읽기 또는 쓰기 동작들을 수행할 수 없는 임의의 결함 조건이며, 이는 전원을 사이클링(cycling)하거나 스토리지 매체를 리포맷함으로써 해결할 수 없다. 스토리지 장치(110)가 이러한 방식으로 동작하는 상태는 다양한 하위 상태들을 가질 수 있다(예를 들어, 다른 장애 메커니즘에 해당하는 각각의 하위 상태). 이러한 상태, 또는 결함 조건들은(스토리지 장치(110)가 더 이상 읽기 또는 쓰기 동작들을 수행할 수 없고, 전원을 사이클링 하거나 스토리지 매체를 리포맷함으로써 해결할 수 없는) 컨트롤러의 펌웨어 일부가 손상되거나(이 경우, 컨트롤러가 안전 모드로 다시 시작될 수 있고, 이 경우 손상된 명령들은 실행되지 않는다), 스토리지 장치(110) 내 처리 회로의 장애(예를 들어, 스토리지 매체와의 상호 작용을 관리하지만 호스트(105)와의 통신에 응답할 수 없는 처리 회로의 장애)에 의하여 야기될 수 있다. 이러한 유형의 장애 조건이 발생하면, 스토리지 장치(110)는 호스트(105)로부터 임의의 읽기 또는 쓰기 명령에 오류 메시지로 응답할 수 있다.
Case 2는 (i) 스토리지 장치(110)가 더 이상 읽기 또는 쓰기 동작들을 수행할 수 없고, (ii) 스토리지 장치(110)의 전원을 사이클링 하거나, 스토리지 매체를 재포맷함으로써 복원 가능한 임의의 결함 조건이다. 이러한 결함 조건은 예를 들어, 스토리지 장치(110)의 컨트롤러(120)의 프로그램 실행 에러로 인하여 야기될 수 있다(예를 들어, 컨트롤러(120)의 RAM(Random-Access Memory)에서 비트 플립의 결과로 범위를 벗어난 포인터 또는 비트 플립의 결과로써 잘못된 명령). 만약 프로그램 실행 에러가 컨트롤러(120)가 스토리지 매체(125)에 부정확한 데이터를 기록하도록 야기하지 않은 경우(예를 들어, 컨트롤러에 의한 스토리지 매체로의 가장 최근의 쓰기로 인해 프로그램 실행 에러가 발생한 경우), 스토리지 장치(110)의 전원 사이클링은 스토리지 장치(110)를 정상 동작으로 복원하기에 충분할 수 있고, 프로그램 실행 에러가 컨트롤러(120)가 스토리지 매체(125)에 잘못된 데이터를 기록하도록 야기한 경우, 스토리지 매체(125)를 재포맷하는 것은 스토리지 장치(110)를 정상 동작으로 복원하기에 충분할 수 있다.
Case 3은 스토리지 장치(110)를 읽기 전용 모드로 동작시킴으로써 완화될 수 있고, 스토리지 매체(125)를 재포맷하는 것이 전체 기능을 복원하지 않을 임의의 결함 조건이다. 이러한 결함들의 예시들은 (i) 온도 센서 장애, 및 (ii) 읽기 전용 모드로 전환된 스토리지 매체(125)의 일부를 포함한다. 온도 센서 장애의 경우, 온도 센서 판독 값이 범위를 벗어나는지(예를 들어, 임계 온도를 초과하였는지)를 확인하여 장애를 감지할 수 있고, 이러한 경우 스토리지 장치(110)의 과열 위험은 읽기 동작보다 더 많은 전력을 소비할 수 있는 쓰기 동작을 피함으로써 감소될 수 있다. 스토리지 매체(125)의 일부의 읽기 전용 모드로의 전환은 예를 들어, 플래시 메모리 플레인 또는 다이가 런타임 배드 블록 관리에 사용되는 배드 블록 관리 예비 공간을 소진하는 경우, 플래시 메모리 스토리지 매체(125)에 대하여 발생할 수 있다. 예를 들어, 스토리지 장치(110)는 읽기 동작 수행을 시도하는 동안, 데이터 항목을 디코딩 하기 위한 실패한 시도를 할 수 있고, 데이터를 저장하는 블록이 배드 블록인지를 결정할 수 있고, 데이터를 배드 블록에서 배드 블록 관리 예비 공간으로 이동함에 따라, 나머지 배드 블록 관리 예비 공간이 임계 값의 크기보다 작아서 플레인 또는 다이의 신뢰성을 보장하기에 불충분한지를 결정할 수 있다. 그 다음, 스토리지 장치(110)는 배드 블록 관리가 더 이상 수행되지 않음을 결정하고, 읽기 전용 모드로 전환할 수 있다. 본 명세서에서 사용되는 바와 같이, “데이터 항복”은 하나의 동작에서 처리되는 임의의 양의 데이터이다(예를 들어, 코드 블록을 디코딩한 결과 데이터가 데이터 항목일 수 있다).
Case 4는 쓰기 통과 모드에서 스토리지 장치(110)를 동작시킴으로써 완화될 수 있는 임의의 결함 조건이다. 예를 들어, 스토리지 장치(110)의 전원 공급 백업 커패시터가 고장난 경우, 장치는 호스트(105)로부터 수신된 임의의 쓰기 명령에 응답하여 명령 완료를 호스트(105)에 전송하기 전에 스토리지 매체(125)에 대한 기록이 완료할 수 있고, 스토리지 매체(125)에 대한 기록이 완료되기 전에 전원이 고장나는 경우, 호스트(105)는 기록이 성공적으로 완료되었다는 잘못된 정보를 받지 않는다. 쓰기 통과 모드에서의 동작은 성능 저하를 초래할 수 있다(처리량 및 지연 시간 측면에서).
Case 5는 전력 손실을 감소시키는 방식으로 스토리지 장치(110)를 동작시킴으로써 완화될 수 있는 임의의 결함 조건이다. 예를 들어, 온도 센서 장애의 경우, 스토리지 장치(110)는 상술한 바와 같이 읽기 전용 모드로 동작하거나, 스토리지 장치(110)에서의 전력 손실을 감소시키기 위하여 동작들이 수행되는 비율(예를 들어, 읽기 동작들보다 더 많은 전력을 소비할 수 있는 쓰기 동작들)을 감소 시킬 수 있다. 예를 들어, 스토리지 장치(110)는 스토리지 매체에 대한 제 1 기록을 수행할 수 있고, 그런 다음 성능 저하에 대응하는 시간 동안 대기한 후(대기의 결과로 쓰기 동작이 수행되는 속도가 감소함), 스토리지 매체에 대한 또 다른(예를 들어, 제 2) 기록을 수행한다.
Case 6은 스토리지 장치(110)를 읽기 전용 모드로 동작시킴으로써 완화될 수 있고, 스토리지 매체(125)를 재포맷하면 완전히 기능을 복원할 수 있는 임의의 결함 조건이다. 도 2a의 테이블의 세 번째 열은 각각의 경우에 대하여 유효한 사용자 데이터를 사용할 수 있는지 여부 및 스토리지 장치(110)가 예를 들어, 스토리지 매체(125)를 리포맷함으로써 완전한 기능으로 복귀될 수 있는지 여부를 나타낸다.
도 2a에 열거된 사례들에 의하여 예시된 바와 같이, 일부 실시 예들에서 스토리지 장치(110)의 완전 복구 모드, 부분 복구 모드 및 취약 모드에 의하여 결함 복구의 3가지 레벨이 달성될 수 있다. 완전 복구 모드에서, 스토리지 장치(110)는 “자가 치유” 특징들로 동작할 수 있으며, 스토리지 장치(110)는 전원 사이클링 또는 스토리지 매체(125)의 포맷과 같은 동작들을 재설정함으로써 전체 기능을 복원할 수 있다(장치 내의 사용자 데이터가 손실될 수 있음에도 불구하고).
부분 복구 모드에서, 스토리지 장치(110)는 결함 조건이 존재하는 경우 저하된 성능, 더 작은 용량 또는 감소된 기능으로 동작할 수 있다. 예를 들어, 상술한 바와 같이, 전원 공급 백업 커패시터가 불량인 경우, 모든 기록들은 데이터가 스토리지 매체(125)에 기록된 후에만(즉, 동기식 기록들만 수행될 수 있음) 완료될 수 있으므로(즉, 명령 완료가 호스트(105)로 전송될 수 있음), 스토리지 장치(110)의 동작을 늦추고 그 성능을 저하시킨다. 이러한 상황에서, 사용자 데이터는 보존될 수 있다. 스토리지 장치(110)들은 배드 블록 관리 RTBB(Run Time Bad Block)을 위한 예비 공간이 소진되면, 더 작은 용량으로 동작할 수 있다. 이러한 상황에서, 스토리지 장치(110)의 영향을 받는 다이들은 디스크 공간으로부터 제외될 수 있고, 전체 디스크 용량이 감소될 수 있다. 손실된 공간의 사용자 데이터는 손실될 수 있다. 예를 들어, IO 결정론의 세트 또는 영역화된 네임 스페이스의 영역이 더 이상 새로운 쓰기를 허용할 수 없는 경우, 세트 또는 영역은 디스크 공간에서 제외될 수 있으나, 나머지 디스크 공간을 읽기 및 쓰기 동작들에 계속 사용할 수 있다. 영역 또는 세트 상의 사용자 데이터는 손실될 수 있다.
스토리지 장치(110)가 쓰기 동작을 허용하지 않고 읽기 전용 모드로 전환하는 경우, 스토리지 장치(110)는 감소된 성능으로 동작할 수 있다. 스토리지 장치(110)는 지속 가능한 읽기 전용 모드 및 지속 불가능한 읽기 전용 모드 두 가지 유형의 읽기 전용 모드로 동작할 수 있다. 지속 가능한 읽기 전용 모드에서, 스토리지 장치(110)는 스토리지 매체(125)의 보존 기간을 넘어서 읽기 요청들을 계속하여 제공할 수 있다. 지속 불가능한 읽기 전용 모드에서, 스토리지 장치(110)는 스토리지 매체(125)의 보존 기간 동안 읽기 요청을 계속하여 제공할 수 있고, 스토리지 장치(110)가 데이터 무결성 문제들에 직면하면(예를 들어, 읽기 동작들 동안 데이터를 디코딩하기 위한 하나 이상의 실패한 시도에 의하여 감지되는 바와 같이), 스토리지 장치(110)는 유효하지 않은(무효한) 데이터 영역을 보고할 수 있다. 취약 모드에서 동작하는 스토리지 장치(110)는 상술한 바와 같이, 읽기 또는 쓰기 동작들을 수행할 수 없고, 호스트로부터 명령을 계속하여 수신하고, 에러들을 반환하는 정상적 종료를 수행할 수 있다.
내부 스토리지 장치(예를 들어, 결함 복구 스토리지 장치)에 대한 몇 가지 추가 세부 정보가 이하 제공된다. 일부 실시 예들에서, (i) 실행 공간(P), (ii) 실행이 저조한 공간(UP), (iii) 읽기 전용 공간(RO), (iv) 휘발성 읽기 전용 공간(VRO), 및 (v) 접근 불가 공간(IA)로 지칭되는 5가지의 논리 블록 어드레스(Logical Block Address, LBA) 유형들이 정의될 수 있다. 실행 공간(P)은 성능 저하없이 정상적인 방식으로 읽고 쓸 수 있는 유효한 데이터를 포함하는 논리 블록 어드레스 공간일 수 있다. 실행이 저조한 공간(UP)은 정상적인 방식으로 읽고 쓸 수 있으나, 성능이 저하된(예를 들어, 쓰기 성능이 열화된) 유효한 데이터를 포함하는 논리 블록 어드레스 공간일 수 있다. 읽기 전용 공간(RO)은 읽기 전용인 유효한 데이터를 포함하는 논리 블록 어드레스 공간일 수 있다. 스토리지 장치(110)는 호스트로부터 논리 블록 어드레스 공간의 이러한 유형으로 향하는 쓰기 명령들에 대하여 에러 메시지들로 응답할 수 있다. 읽기 전용 공간의 데이터는 보존 기간을 초과하는 기간 동안 유효할 수 있다. 휘발성 읽기 전용 공간(VRO)은 읽기 전용일 수 있고, 스토리지 장치(110)는 호스트로부터 논리 블록 어드레스 공간의 이러한 유형으로 향하는 쓰기 명령들에 대하여 에러 메시지들로 응답할 수 있다. 논리 블록 어드레스의 이러한 유형의 데이터는 일시적으로 유효할 수 있고, 그것이 만료되면(즉, 스토리지 매체(125)의 데이터의 수명이 스토리지 매체의 보존 기간에 도달하는 경우) 무효화될 수 있다. 액세스 불가한 공간(IA)은 호스트로부터 액세스할 수 없는 무효의 데이터를 포함하는 논리 블록 어드레스 공간일 수 있다. 도 2b의 테이블은 테이블의 첫 번째 열에서 식별된 각각의 결함 조건들에서 스토리지 장치(110)에 존재할 수 있는 논리 블록 어드레스 유형들의 조합들을 보여준다. 별표(*)로 식별된 모드는 논리 블록 어드레스 공간에 대한 상세한 정보를 회수하기 위하여 특징 획득 명령을 사용하는 호스트를 지원할 수 있다. 도 2c는 그것의 상태 및 관련된 파라미터들의 값들에 대하여 스토리지 장치(110)에 쿼리하기 위하여 스토리지 장치(110)로 전달될 수 있는 “특징 획득” 명령의 인수들을 보여준다(“IPOS”는 초당 입력 및 출력 동작들을 의미한다).
도 2d의 테이블은 호스트(105)가 스토리지 장치(110)에 그것의 상태 및 스토리지 장치(110)가 응답하기 위하여 사용할 수 있는 열거된 상수들의 계층을 쿼리하기 위하여 사용할 수 있는 NVMe(Non-Volatile Memory Express) 명령들을 보여준다.
다양한 실시 예들에서, 상술한 바와 같이, 개시된 시스템들은 읽기 전용 모드로 동작하도록 구성될 수 있는 결함 복구 스토리지 장치들을 포함할 수 있다. 그러나, 일부 실제 상황들에서, 개시된 시스템들은 읽기 전용 모드가 적절한 서비스 품질(Quality of Service, QoS)을 제공하지 않을 수 있는 애플리케이션에 대한 추가적인 유틸리티를 찾을 수 있다. 따라서, 특정 애플리케이션을 장치의 결함에도 불구하고, 결함 복구 스토리지 장치들의 동작(예를 들어, 부분 쓰기 모드)으로부터 이익을 얻을 수 있으며, 이 사례는 부분 결함 복구 동작 모드를 포함할 수 있다. 예를 들어, 개시된 시스템들은 스토리지 장치의 상태를 보고하고(예를 들어, 호스트로), 장치가 응답하지 않을 때 결함 복구 스토리지 장치의 정상적인 종료를 수행하도록 구성될 수 있다. 그러나, 결함 복구 스토리지 장치가 유효하지 않은 상태에 있으나, 장치가 여전히 동작하고 응답할 수 있는 상황이 있을 수 있다. 일부 사례들에서, 결함 복구 스토리지 장치는 결함 복구 스토리지 장치 상에 저장된 데이터의 일부가 액세스 불가할 수 있고, 반면에 장치의 다른 부분들은 액세스 할 수 있는 경우에 여전히 응답할 수 있다(예를 들어, 호스트 요청에 대하여). 결함 복구 스토리지 장치를 완전히 폐기하는 대신, 개시된 시스템들은 특정 동작들을 계속하기 위하여 계속하여 허용하도록 구성될 수 있다(예를 들어, 결함 복구 스토리지 장치의 액세스 가능한 영역들 및/또는 이미 기록된 데이터가 있어서 여전히 유효할 수 있는 경우). 따라서, 결함 조건에서, 개시된 시스템들은 결함 복구 스토리지 장치가 장치와 관련된 영역들 및/또는 데이터 블록들이 유효한지 (예를 들어, 제 2 스토리지 장치 및/또는 호스트의 하이퍼바이저로) 보고할 수 있도록 구성될 수 있다. 이러한 유효한 데이터는 스토리지 장치들 간의 가상 머신의 라이브 마이그레이션에 사용될 수 있다.
추가적인 실시 예들에서, 개시된 시스템들은 결함 복구 스토리지 장치 내의 하나 이상의 다이들을 비활성화 하고, 반면에 결함 복구 스토리지 장치의 다른 다이들은 활성화하도록 구성될 수 있다. 따라서, 개시된 시스템들은 결함 영역들을 분리하고, 결함 복구 저장 장치와 관련된 어떤 영역들(예를 들어, 논리 블록 어드레스 공간들/영역들)이 무효인지, 어떤 영역들이 유효한지에 대한 정보를 호스트로 제공할 수 있다.
본 명세서에서는 결함 복구 스토리지들이 결함 복구 스토리지 장치의 유효한(예를 들어, 액세스 가능한) 그리고 유효하지 않은(예를 들어, 액세스 불가한) 영역들과 관련된 정보를 제공할 수 있는 상황들에서 결함 복구 스토리지 장치들을 포함하는 시스템 상에서 데이터를 어떻게 복원하는지를 설명하는 시스템들, 방법들, 및 장치들이 추가적으로 설명된다. 언급된 바와 같이, 개시되 시스템들은 가상 머신들을 실행하는 시스템들에서 동작하도록 구성될 수 있다. 일부 실시 예들에서, 개시된 시스템들은 결함 가상 머신과 관련된 데이터를 실행 및/또는 저장하는 장치와 관련된 결함에 대항할 수 있다. 따라서, 개시된 시스템들은 가상 머신을 또 다른 장치로 마이그레이션하고, 가상 머신과 관련된 데이터를 제 2 스토리지 장치로 마이그레이션하도록 구성될 수 있다. 일부 실시 예들에서, 소스 머신에서 주어진 스토리지 장치는 결함을 경험할 수 있고, 따라서, 장치가 결함 복구 스토리지 장치인 경우, 본 명세서에서 다양하게 설명한 바와 같이 결함 복구 스토리지 장치는 결함 복구 동작 모드로 전환할 수 있다.
도 3a는 일부 실시 예들에서, 결함 복구 모드의 결함 복구 스토리지 장치를 동작시키기 위한 방법의 순서도이다. 305 단계에서, 호스트(105)는 스토리지 장치로 데이터를 전송하거나 스토리지 장치로부터 데이터를 수신한다; 310 단계에서, 호스트(105)는 스토리지 장치에서 에러가 발생했는지 여부를 결정한다; 315 단계에서, 스토리지 장치(110)는 내부 진단을 수행하고, 그것의 결함 복구 상태(예를 들어, 완전 복구, 부분 복구, 또는 취약함)들을 결정한다; 320 단계에서, 스토리지 장치(110)는 진단에 기반하여 그것의 성능, 용량, 또는 기능(예를 들어, 읽기 전용 모드로 전환)을 수정한다; 325 단계에서, 스토리지 장치(110)는 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)에 기반하여 호스트(105)로부터의 요청에 따라 상태를 게시한다; 그리고 330 단계에서, 호스트(105)는 상태에 기반하여 주어진 대역폭에서 주어진 유형의 데이터를 스토리지 장치(110) 또는 상이한 스토리지 장치(110)로 라우팅한다.
도 3b는 결함 복구 모드에서 동작하기 위한 방법의 세부 사항들을 보여주는 순서도이다. 이 방법은 335 단계에서, 스토리지 장치에 의하여, 스토리지 장치가 전원 사이클링을 하거나 스토리지 매체를 포맷함으로써, 스토리지 장치가 복원 가능한 제 1 결함 상태에 있음을 결정하고; 340 단계에서, 스토리지 장치에 의하여, 저하된 성능으로, 감소된 용량으로, 또는 읽기 전용 모드로 스토리지 장치를 작동함으로써, 스토리지 장치가 부분 복원이 가능한 제 2 결함 상태에 있음을 결정하고; 345 단계에서, 저하된 성능으로, 감소된 용량으로, 또는 읽기 전용 모드로 스토리지 장치를 작동하는 단계를 포함한다.
또한, 본 명세서에 개시된 실시 예들에서, 다수의 실시 예들 및 변형들이 구성될 수 있다. FPGA(Field Programmable Gate Array) 또는 임베디드 프로세서는 내부 블록 검사들을 수행하고, 스토리지 장치(110)의 상태에 대하여 비동기 업데이트들을 호스트(105)로 전송할 수 있다. 이벤트들은 발생하고, 호스트(105)로 전송될 수 있다(예를 들어, 온도 또는 장치 내부의 다른 파라미터들). 통지를 제공하기 위한 장치 드라이버 특성이 없는 경우, 호스트(105)는 미리 결정된 스케줄에 따라 스토리지 장치(110)들을 풀링할 수 있다. FPGA 또는 임베디드 프로세서는 스토리지 장치(110)의 과거 성능을 모니터링하고, 예측 분석들(예를 들어, 주어진 결함 복구 상태에 있을 가능성)을 제공하기 위하여 기계 학습을 사용할 수 있다. NVMe 사양에 명령들이 도입될 수 있다; 예를 들어, NVMe 사양의 원격 측정 정보가 확장될 수 있다(스토리지 장치(110)의 상태를 보고하기 위하여). 일부 실시 예들은 예를 들어 이더넷 스토리지 장치들 또는 키-밸류(Key-Value, KV) 스토리지 장치들에서 구현될 수 있다.
도 4a는 본 개시의 실시 예들에 따라 스토리지 장치를 사용하는 라이브 가상 머신 마이그레이션을 수행하기 위한 다이어그램을 보여준다. 다이어그램 400은 소스 장치(402) 및 목표 장치(408)를 포함한다. 일부 실시 예들에서, 소스 장치(402)는 스토리지 장치(예를 들어, SSD)를 포함할 수 있다. 또 다른 실시 예에서, 소스 장치(402)는 비휘발성 메모리(404) 구성요소 및 휘발성 메모리(406) 구성요소를 포함할 수 있다. 일 실시 예에서, 휘발성 메모리(406)는 소스 장치(402)에 의하여 처리되고 있는 데이터 블록들과 관련된 페이지들을 능동적으로 처리할 수 있는 인-메모리 작업 세트(in-memory working set)를 포함할 수 있다. 표기된 바와 같이, 일부 페이지들은 제거됨(E), 클린(C), 더티(D) 및/또는 플러시(F)(표기되지 않음)로 표시될 수 있다. 또 다른 실시 예에서, 비휘발성 메모리(404)는 소스 장치(402)의 로컬 스토리지(예를 들어, NAND)에 지속되는 데이터와 관련된 페이지들을 포함할 수 있다. 다이어그램 400의 예에서 도시된 바와 같이, 일부 페이지들은 소스 장치(402)의 액세스 불가한(I) 공간을 차지하는 것으로 표시될 수 있다. 또한, 목표 장치(408)는 목적 장치(408)가 비휘발성 메모리(410) 및 휘발성 메모리(413)를 포함할 수 있다는 점에서 소스 장치(402)와 유사한 구조를 가진다. 유사하게, 일 실시 예에서, 목표 장치(408)의 휘발성 메모리(413)는 목표 장치(408)에 의하여 처리되고 있는 데이터 블록들과 관련된 페이지들을 능동적으로 처리할 수 있는 인-메모리 작업 세트를 포함할 수 있다. 또 다른 실시 예에서, 비휘발성 메모리(410)는 목표 장치(408)의 로컬 스토리지(예를 들어, NAND)에 지속되는 데이터와 관련된 페이지들을 포함할 수 있다.
일부 실시 예들에서, 다이어그램(400)은 가상 머신 마이그레이션을 위한 예시적인 동작(405)을 보여준다(예를 들어, 사후-복사(post-copy) 동작의 경우). 이러한 동작(405)에서, 소스 장치(402)측에서, 휘발성 메모리(406)의 데이터의 일부는 소스 장치(402)의 비휘발성 메모리(404) 상에 지속될 수 있다. 특히, 예로서 도시된 바와 같이, 제거된 페이지들 및 클린 페이지들은 비휘발성 메모리(404)와 관련된 액세스 불가한 공간에 지속될 수 있다. 또 다른 실시 예에서, 예로서 도시된 바와 같이, 휘발성 메모리(406)의 더티 페이지는 소스 장치(402)가 결함을 경험하는 경우, 비휘발성 메모리(404)에 기록되는 프로세스에 있을 수 있다. 또 다른 실시 예에서, 소스 장치(402)가 결함 복원성이 없는 경우, 동작(405)은 소스 장치(402)로부터 목표 장치(408)로의 잠재적으로 성공적이지 않은 데이터 마이그레이션을 초래할 것이다. 특히, 예로서 도시된 바와 같이, 시스템이 목표 장치(408)의 휘발성 메모리(413)에서 일부 제거된 블록들과 관련된 소스 장치(402)의 비휘발성 메모리(404)상의 페이지들을 두 번째로 읽기 위하여 시도하는 경우, 그러한 동작은 소스 장치(402)가 적어도 결함을 경험했기 때문에 실패할 수 있다. 또한, 시스템이 목표 장치(408)의 휘발성 메모리(413)에서 일부 클린 페이지들과 관련된 소스 장치(402)의 비휘발성 메모리(404)상의 페이지들을 읽기 위하여 시도하는 경우, 그러한 동작은 목표 장치(408)의 휘발성 메모리(413)가 클린 페이지들을 폐기할 수 있기 때문에 실패할 수 있고, 더욱이 목표 장치(408)는 적어도 소스 장치(402)가 결함을 경험했기 때문에 소스 장치(402)의 비휘발성 메모리(404)로부터 대응하는 페이지들을 복원할 수 없다. 따라서, 도시된 바와 같이, 목표 장치(408)의 휘발성 메모리(413)에 상주하는 페이지들의 일부만이(예를 들어, 다이어그램(400)에 도시된 더티 블록) 목표 장치(408)의 비휘발성 메모리(410)인 로컬 스토리지에 지속(또는 다시 기록)될 수 있다.
상술한 설명은 사후-복사 동작의 사례에 제공되었으나, 유사한 원리들이 소스 장치(402)로부터 목표 장치(408)로의 가상 머신의 라이브 마이그레이션 동안의 다른 동작들에 대하여 유지될 수 있다. 특히, 가상 머신 마이그레이션을 위한 사후-복사 동작들은 다음 동작들의 일부를 포함할 수 있다. 먼저, 사후-복사는 소스 장치에서 가상 머신을 일시 중단함으로써 사후-복사를 시작할 수 있다. 일부 실시 예들에서, 가상 머신의 실행 상태의 서브 세트(subset)(예를 들어, CPU 상태, 레지스터들, 페이징 가능한 메모리 등)는 목표 장치로 전송될 수 있다. 가상 머신은 목표 장치에서 재개될 수 있다. 일 실시 예에서, 소스 장치는 가상 머신의 나머지 메모리 페이지들을 목표 장치로 푸시할 수 있다(예를 들어, 사전-페이징 수행). 목표 장치에서, 가상 머신이 아직 전송되지 않은 페이지에 액세스하려고 하는 경우, 이러한 동작은 페이지-결함을 생성할 수 있다. 이러한 결함들은 목표 장치에서 트랩될 수 있고, 결함이 발생한 페이지에 응답할 수 있는 소스 장치로 리디렉션 될 수 있다. 일부 양상들에서, 사전-페이징은 마지막 결함 근처에서 페이지들을 적극적으로 푸시함으로써, 네터워크 결함들에 대한 페이지 전송 순서를 동적으로 조정할 수 있다. 일부 측면들에서, 사후-복사는 네트워크를 통하여 주어진 페이지를 한 번 전송하는 역할을 할 수 있다. 대조적으로, 사전-복사는 마이그레이션 동안 소스 장치에서 페이지가 반복적으로 오염되는 경우, 동일한 페이지를 여러 번 전송할 수 있다. 반면, 사전-복사는 마이그레이션 동안 소스 장치에서 가상 머신의 최신 상태를 유지할 수 있다. 이에 비하여, 사후-복사의 경우, 가상 머신의 상태는 소스 및 목표 장치들 모두에 분배될 수 있다. 마이그레이션 동안 목표 장치가 결함이 발생하는 경우, 사전-복사는 가상 머신을 복원할 수 있는 반면, 사후-복사는 가상 머신을 복원하지 못할 수 있다.
도 4b에 도시된 바와 같이, 다이어그램 401은 결함 복구 소스 장치(412) 및 목표 장치(418)를 포함할 수 있다. 일부 실시 예들에서, 결함 복구 소스 장치(412)는 결함 복구 SSD와 같은 결함 복구 스토리지 장치를 포함할 수 있다. 또 다른 실시 예에서, 결함 복구 소스 장치(412)는 비휘발성 메모리(414) 구성요소 및 휘발성 메모리(416) 구성요소를 포함할 수 있다. 일 실시 예에서, 휘발성 메모리(416)는 결함 복구 소스 장치(412)에 의하여 처리되고 있는 데이터 블록들과 관련된 페이지들을 능동적으로 처리할 수 있는 인-메모리 작업 세트를 포함할 수 있다. 도시된 바와 같이, 일부 페이지들은 제거됨(E), 클린(C), 더티(D) 및/또는 플러시(F)(표기되지 않음)로 표시될 수 있고, 더욱이 이 특정 페이지 구조는 다이어그램(400)의 사례에서 모사될 수 있고, 따라서 두 사례들 간의 장치 동작의 비교가 본 예시에서 용이해질 수 있다. 또 다른 실시 예에서, 비휘발성 메모리(414)는 결함 복구 소스 장치(412)의 로컬 스토리지(예를 들어, NAND) 상에 지속되는 데이터와 관련된 페이지들을 포함할 수 있다. 다이어그램(401)의 예에서 도시된 바와 같이, 페이지들의 일부는 결함 복구 소스 장치(412)의 액세스 불가한 공간을 차지하는 것으로써 표시될 수 있다. 또한, 목표 장치(418)는 목표 장치(418)가 비휘발성 메모리(420) 및 휘발성 메모리(422)를 포함할 수 있다는 점에서 결함 복구 소스 장치(412)와 유사한 구조를 가질 수 있다. 유사하게, 일 실시 예에서, 휘발성 메모리(422)는 목표 장치(418)에 의하여 처리되고 있는 데이터 블록들과 관련된 페이지들을 능동적으로 처리할 수 있는 인-메모리 작업 세트를 포함할 수 있다. 또 다른 실시 예에서, 비휘발성 메모리(420)는 목표 장치(418)의 로컬 스토리지(예를 들어, NAND)상에 지속되는 데이터와 관련된 페이지들을 포함할 수 있다. 또한, 비휘발성 메모리(420)는 결함 복구 소스 장치(412)로부터 복원된 페이지들 및 목표 장치(418)의 휘발성 메모리(422)로부터 복원된 다른 페이지들을 포함할 수 있다. 예를 들어, 클린 페이지 및 더티 페이지 모두는 목표 장치(418)의 휘발성 메모리(422)내의 대응하는 페이지들에 기반하여 목표 장치(418)의 비휘발성 메모리(420)에 다시 기록될 수 있음(즉, 지속됨)이 입증될 수 있다. 또한, 예시에서 도시된 바와 같이, 결함 복구 소스 장치(412)의 비휘발성 메모리(414)의 일부에 액세스 가능한 부분으로부터의 특정 읽기 전용(R) 페이지들은 결함 복구 소스 장치(412)의 읽기 전용 작동 상태로 인하여 결함 복구 소스 장치(412)의 비휘발성 메모리(414)로부터 읽혀질 수 있다.
상술한 설명은 사전-복사 동작에서 제공되었으나, 유사한 원리들이 결함 복구 소스 장치(412)로부터 목표 장치(418)로의 가상 머신의 라이브 마이그레이션 동안 다른 동작들에 대하여 유지될 수 있는 것으로 이해된다. 또한, 설명에 의하여 사전-복사는 다음 동작들 중 적어도 일부를 지칭할 수 있다. 사전-복사 메모리 마이그레이션에서, 하이퍼바이저는 가상 머신이 소스 장치 상에서 계속 실행되는 동안, 소스 장치로부터 목표 장치로 메모리 페이지들을 복사할 수 있다. 프로세스 동안 일부 메모리 페이지들이 변경되는 경우(예를 들어, 메모리 페이지들이 '더티'가 되는 경우), 메모리 페이지들은 재복사된 페이지들의 비율이 페이지 더티화된 비율보다 클 때까지 재복사될 수 있다. 또한, 나중에 소스 장치와 관련된 원래 호스트에서 가상 머신은 중단될 수 있고, 나머지 더티 페이지들은 목표 장치로 복사될 수 있으며, 가상 머신은 목표 장치에서 다시 시작될 수 있다.
도 5는 본 개시의 실시 예들에 따라 가상 머신들의 라이브 마이그레이션의 양상들을 보여주는 순서도의 예시이다. 특히, 순서도(500)는 각각 소스 하이퍼바이저 및 목표 하이퍼바이저를 가지는 결함 복구 소스 장치(501) 및 목표 장치(503) 간의 가상 머신들의 라이브 마이그레이션과 관련된 일부 예시 동작들을 보여준다. 이하 SSD를 참조하나, 본 명세서에서 SSD들 및 스토리지 장치들은 상호 교환적으로 사용될 수 있는 것으로 이해된다.
502 블록에서, 개시된 시스템들은 SSD(예를 들어, 결함 복구 SSD)가 이용 가능한지 여부를 결정할 수 있다. 502 블록의 결정 결과가 SSD를 이용할 수 있는 경우, 그 다음 504블록에서, 개시된 시스템들은 SSD가 결함 복구 모드에서 동작하는지 여부를 결정할 수 있다. 반면, 502 블록의 결정 결과가 SSD를 이용할 수 없는 경우, 그 다음 506 블록에서, 개시된 시스템들은 에러를 반환할 수 있다.
개시된 시스템들은 507 동작을 통하여 결함 복구 SSD로부터 데이터를 복원할 수 있다. 508 블록에서, 개시된 시스템들은 회수된 데이터와 대응하는 논리 블록 어드레스들이 결함 복구 SSD와 관련된 액세스 불가한 공간에 속하는지 여부를 결정할 수 있다. 508 블록의 결정 결과가 예이면, 개시된 시스템들은 506 블록에서 에러를 반환할 수 있다. 반면, 508 블록의 결정 결과가 논리 블록 어드레스들이 결함 복구 SSD의 공간에 속하지 않는 경우, 그 다음 510 블록에서, 개시된 시스템들은 결함 복구 SSD와 관련된 액세스 가능한 공간으로부터 읽을 수 있다.
512 블록에서, 개시된 시스템들은 스토리지 장치들의 시스템 내의 SSD가 결함을 경험하는지 여부를 결정할 수 있다. 만약 그렇지 않다면, 개시된 시스템들은 518 블록에서 동작들을 계속할 수 있다. 만약 그렇다면, 개시된 시스템들은 514 블록에서 동작들을 계속할 수 있고, 여기서 개시된 시스템들은 SSD가 결함 복구 SSD인지 아닌지 여부를 결정할 수 있다. 만약 그렇지 않다면, 개시된 시스템들은 518 블록에서 동작들을 계속할 수 있다. 만약 그렇다면, 516 블록에서, 개시된 시스템들은 결함 복구 SSD와 관련된 논리 블록 어드레스 공간 유형 정보를 캡처하고 결정할 수 있으며, 선택적으로 518 블록에서 결함 복구 SSD의 결함 메모리 셀터들이 액세스 불가한 공간의 논리 블록 어드레스들을 포함하는지 여부를 결정 및/또는 538 블록에서(이하 더 설명될 목표 장치에서), 논리 블록 어드레스들이 액세스 불가한 공간에 속하는지 여부를 결정할 수 있다. 개시된 시스템들은 아래에 설명되는 518 블록으로 더 진행할 수 있다.
518 블록에서, 개시된 시스템들은 라이브 마이그레이션 프로세스를 허용하기 위하여, SSD(고장 복구 SSD 또는 일반 SSD)와 관련된 페이지 캐시 플러싱 동작을 해제할 수 있고, 이는 520 블록에 나타난대로 시작할 수 있다.
526 블록에서, 개시된 시스템들은 라이브 마이그레이션 프로세스가 읽기 동작을 포함하는지 여부를 결정할 수 있다. 만약 그렇지 않다면, 527 블록에서, 개시된 시스템들은 쓰기 동작과 관련된 데이터 블록들을 페이지 캐시에 기록할 수 있다. 만약 그렇다면, 528 블록에서, 개시된 시스템들은 데이터 블록들이 목표 장치의 페이지 캐시(예를 들어, 목표 장치의 휘발성 메모리)에 존재하는지 여부를 결정할 수 있다. 또한, 528 블록에서 결정의 결과가 데이터 블록들이 목표 장치의 페이지 캐시에 없다는 것이라면, 개시된 시스템들은 후술되는 524 블록에서 동작들을 진행할 수 있다. 528 블록에서 결정의 결과가 데이터 블록들이 목표 장치의 페이지 캐시에 있는 것이라면, 개시된 시스템들은 530 블록으로 진행할 수 있고, 여기서 개시된 시스템들은 목표 장치의 페이지 캐시로부터 데이터를 읽을 수 있다.
524 블록에서, 개시된 시스템들은 읽기 동작(예를 들어, 526 블록의 읽기 동작)을 위한 데이터 블록들이 로컬 디스크(예를 들어, 목표 장치의 비휘발성 메모리)에서 발견될 수 있는지 여부를 결정할 수 있다. 만약 그렇지 않다면, 그 다음 522 블록에서, 개시된 시스템들은 원격 디스크로부터 데이터 블록들을 읽을 수 있다(예를 들어, 상술한 502 블록의 예시적인 동작에서 시작하는 소스 장치에 대한 동작들을 계속함으로써). 반면, 읽기 동작을 위한 데이터 블록들이 로컬 디스크에서 발견될 수 있으면, 그 다음 531 블록에서, 개시된 시스템들은 로컬 디스크(예를 들어, 목표 장치의 비휘발성 메모리)로부터 데이터 블록들을 읽을 수 있다.
언급된 바와 같이, 538 블록에서, 개시된 시스템들은 데이터 블록들과 관련된 논리 블록 어드레스들이 액세스 불가한 공간(소스 장치의 비휘발성 메모리와 관련된)에 속하는지 여부를 결정할 수 있다. 만약 그렇지 않다면, 그 다음 536 블록에서, 개시된 시스템들은 데이터 블록들 및/또는 페이지들을 폐기할 수 있다. 만약 그렇다면, 539 동작을 통하여 개시된 시스템들은 목표 장치와 관련된 DRAM(예를 들어, 휘발성 메모리)으로부터 데이터 블록들을 복원할 수 있고, 534 블록에서 이러한 블록들을 로컬 디스크(예를 들어, 목표 장치의 비휘발성 메모리)에 기록하는 것을 진행할 수 있다. 또한, 532 블록에서, 개시된 시스템들은 538 블록에서 설명된 동작들에 속하는 데이터 블록들 및/또는 페이지들이 더티인지 여부를 결정할 수 있다. 만약 개시된 시스템들이 데이터 블록들 및/또는 페이지들이 더티인 것으로 결정하는 경우, 그 다음 534 블록에서, 개시된 시스템들은 데이터 블록을 로컬 디스크(예를 들어, 목표 장치의 비휘발성 메모리)에 기록할 수 있다.
일부 실시 예에서, 순서도(500)는 개시된 시스템이 어떻게 소스 서버(예를 들어, 서버)에서 목표 장치(예를 들어, 서버)로 가상 머신을 마이그레이션 할 수 있는지를 설명한다. 앞서 일부 예시적인 동작들이 설명되었으며, 이제 이러한 동작들에 대한 보다 일반적인 요약 및 설명이 제공된다.
상술한 바와 같이, 일부 시스템들에 의하여 수행되는 가상 머신 마이그레이션은 하나 이상의 목표 장치 또는 소스 장치와 관련된 휘발성 메모리(예를 들어, DRAM)에 상주하는 데이터에 대한 체크 동작을 포함하지 않을 수 있다. 일부 실시 예들에서, 개시된 시스템들은 특정 조건들(예를 들어, 후술되는 기회주의적 방식으로)에서 휘발성 메모리에 적어도 일시적으로 저장된 정보를 사용함으로써, 스토리지 장치 정보(예를 들어, 마이그레이션될 가상 머신과 관련된 데이터)를 복원하는 역할을 할 수 있다.
일부 실시 예들에서, 결함이 발생하는 경우, 개시된 시스템들은 결함 장치를 포함하는 링크에서 실행되는 가상 머신과 관련된 동작들을 효과적으로 동결시킬 수 있고, 개시된 시스템들은 예를 들어, 결함을 가진 소스 장치에서 마이그레이션 프로세스를 시작할 수 있다. 다양한 실시 예들에서, 소스 장치는 결함 복구 스토리지 장치를 포함할 수 있고, 결함 복구 스토리지 장치는 예를 들어, 소스 장치와 관련된 운영 체제(Operating Systerm, OS)/하이퍼바이저로 정보(예를 들어, 논리 블록 어드레스 결함 복구 공간 정보)를 더 제공할 수 있다. 따라서, 개시된 시스템들은 가상 머신을 목표 장치로 전송할 수 있고, 대응하는 하이퍼바이저는 가상 머신과 관련된 스토리지 장치의 어떤 부분들이 유효하고 유효하지 않은지에 대하여 통지 받을 수 있다; 또한, 만약 스토리지 장치의 일부가 유효하지 않은 경우, 개시된 시스템들은 소스 또는 목표 장치의 휘발성 메모리로부터 데이터를 복원하기 위한 동작들을 수행하도록 구성될 수 있다. 따라서, 마이그레이션 동안, 가상 머신은 실행될 수 있고, I/O를 수행할 수 있다.
목표 장치에서 읽기 동작이 있는 경우, 개시된 시스템들은 목표 장치의 휘발성 메모리(예를 들어, DRAM)에 요청되는 데이터가 이미 존재하는지 여부를 결정할 수 있으며; 만약 그렇다면, 개시된 시스템들은 관련 페이지 캐시로부터 데이터를 읽을 수 있다. 반면, 만약 개시된 시스템들이 요청된 데이터가 목표 장치의 휘발성 메모리에 존재하지 않는 것으로 결정하는 경우, 개시된 시스템들은 데이터를 어디서 획득할 수 있는지 결정할 수 있다. 특히, 만약 데이터가 목표 장치의 로컬 디스크에 존재하지 않는 경우, 데이터가 소스 장치의 로컬 디스크에 상주할 가능성이 높으며; 따라서, 개시된 시스템들은 데이터를 위하여 소스 장치를 확인할 수 있다. 특히, 소스 및 목표 장치들 간의 디스크 마이그레이션이 완료되면, 개시된 시스템들은 데이터를 위하여 소스 장치의 로컬 디스크를 확인할 수 있다. 그러나, 데이터에 액세스하는 것은 소스 장치의 어떤 메모리 영역에 액세스 되는지에 의존할 수 있다. 예를 들어, 만약 소스 장치의 결함 영역으로부터 데이터가 요청되는 경우, 그 데이터는 유효하지 않은 것으로 간주될 수 있고, 이러한 경우, 개시된 시스템들은 데이터를 위한 요청을 거부하고, 에러를 반환하도록 구성될 수 있다. 반면, 요청된 데이터가 결함 영역이 아니라 소스 장치의 메모리의 유효하고, 액세스 가능한 영역에 있는 경우, 소스 장치는 데이터를 제공할 수 있다. 따라서, 결함 복구 스토리지 장치를 포함할 수 있는 소스 장치는 결함에도 불구하고 읽을 수 있다.
또 다른 실시 예에서, 만약 소스 장치로부터 요청된 동작이 읽기 동작이 아닌 경우(예를 들어, 쓰기 동작인 경우), 소스 장치의 결함 상태는 관련성이 덜하고, 개시된 시스템들은 데이터를 기록하도록 구성될 수 있다. 특히, 개시된 시스템들은 페이지 캐시에 데이터를 먼저 기록하도록 구성될 수 있으며; 만약 그 데이터가 더티인 경우, 개시된 시스템들은 나중에 목표 장치의 디스크에 데이터를 쓸 수 있다. 또 다른 실시 예에서, 만약 그 데이터가 더티가 아닌 경우, 개시된 시스템들은 데이터를 폐기하도록 구성될 수 있다(예를 들어, 개시된 시스템들은 데이터를 다시 기록할 필요가 없다). 만약 데이터와 관련된 데이터 블록이 클린한 경우, 그것은 소스 또는 목표 스토리지 장치와 관련된 각각의 디스크에서 데이터를 이용할 수 있음을 의미할 수 있다. 그러나, 결함으로 인한 가상 머신 마이그레이션 후에, 개시된 시스템들은 데이터가 주어진 디스크 상에 존재하는지 여부를 결정하지 못할 수 있다. 예를 들어, 개시된 시스템들은 그 데이터를 읽을 수 있고, 그 데이터는 업데이트 되지 않은 DRAM에 여전히 위치할 수 있다. 또한, 읽혀진 논리 블록 어드레스는 결함을 경험해온 소스 머신 상에서 이제 유효하지 않기 때문에, 기본 디스크는 사용될 수 없다. 따라서, 개시된 시스템은 데이터를 복원하기 위하여 가상 머신을 목표 장치로 이동시키도록 구성될 수 있다.
일부 실시 예들에서, 일부 예시적인 라이브 마이그레이션 동작들은 동작의 읽기 전용 모드를 가지는 장치에 대하여 에러 없이 유지될 수 있다. 만약, 스토리지 장치가 읽기 전용 모드로 구성되지 않은 경우, 그 데이터는 DRAM에 위치할 수 있으나; 만약 그 데이터가 더티인 경우, 개시된 시스템들은 쓰기 동작들을 위한 소스 머신 상에 액세스되는 영역으로부터 데이터를 여전히 복원할 수 있다. 만약, 소스 장치에 결함이 있으나, 데이터 블록은 클린한 경우, 개시된 시스템들은 데이터를 복원하기 위하여 디스크로 데이터 블록들을 기록하도록 구성될 수 있다. 만약, 결함이 없는 경우, 가상 머신 마이그레이션 동안, 그 데이터는 클린한 것으로 간주될 수 있고; 따라서, 개시된 시스템들은 로컬(예를 들어, 목표) 또는 원격(예를 들어, 소스) 장치들로부터 데이터를 읽을 수 있다. 따라서, 상술한 바와 같이, 하이퍼바이저/OS 및 스토리지 장치들(예를 들어, 소스 및 목표 장치들) 간에 높은 수준의 결합이 있을 수 있음이 명백하다.
도 6은 본 개시의 실시 예에 따른 예시적인 페이지 캐시 관리 동작들에 대한 순서도의 예시이다. 다양한 실시 예들에서, 결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 결정하기 위한 방법이 설명된다. 602 블록에서, 개시된 시스템들은 결함 복구 스토리지 장치로부터 제 2 스토리지 장치로 데이터의 전송을 수행하도록 결정할 수 있다. 예를 들어, 개시된 시스템들은 라이브 마이그레이션 프로세스의 일부로써, 결함 복구 스토리지 장치와 관련된 가상 머신과 관련된 데이터를 제 2 스토리지 장치로 이동하도록 결정할 수 있다.
604 블록에서, 개시된 시스템들은 액세스 불가한 공간을 포함하는 결함 복구 스토리지 장치와 관련된 제 1 영역 및 액세스 가능한 공간을 포함하는 결함 복구 스토리지 장치와 관련된 제 2 영역을 결정할 수 있다. 특히, 액세스 불가한 공간은 본 명세서에서 다양하게 설명된 바와 같이, 물리적 결함(예를 들어, 불량 회로, 불량 칩, 손상, 너무 많은 덮어 쓰기 등) 때문에 액세스 불가한 NAND의 부분들을 포함할 수 있다. 언급된 바와 같이, 결함 복구 스토리지 장치는 결함을 경험할 수 있으나, 여전히 작동중인 액세스 가능한 공간에 메모리를 포함할 수 있다(예를 들어, 결함 복구 장치의 전체 메모리가 결함의 결과로써 균일하게 손상되지 않음). 액세스 가능한 공간은 결함 복구 스토리지 장치로부터 목표 장치(예를 들어, 제 2 스토리지 장치)로의 가상 머신과 관련된 페이지들을 마이그레이션 하기 위한 라이브 마이그레이션 프로세스와 관련하여 사용될 수 있다.
606 블록에서, 개시된 시스템들은 데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 결정할 수 있고, 읽기 명령에 기반하여, 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청되는 제 1 데이터를 결정할 수 있다. 일부 실시 예들에서, 로컬 메모리는 제 2 스토리지 장치와 관련된 DRAM과 같은 휘발성 메모리를 포함할 수 있다.
다른 실시 예들에서, 개시된 시스템들은 데이터를 위한 결함 복구 스토리지 장치에서 쓰기 명령을 결정할 수 있다. 따라서, 개시된 시스템들은 호스트 장치(제 2 스토리지 장치 및/또는 결함 복구 스토리지 장치와 관련된 호스트 장치)의 페이지 캐시로 데이터의 적어도 일부를 기록할 수 있다. 또한, 개시된 시스템들은 데이터의 일부가 더티 데이터를 포함하는 것을 결정할 수 있고, 개시된 시스템들은 제 2 스토리지 장치의 영구 메모리(예를 들어, 비휘발성 메모리)에 더티 데이터를 기록하도록 구성될 수 있다. 또한, 개시된 시스템들은 액세스 불가한 공간과 관련된 클린 데이터를 포함하는 데이터의 일부를 결정할 수 있고, 개시된 시스템들은 제 2 스토리지 장치의 영구 메모리(예를 들어, 비휘발성 메모리)에 클린 데이터를 기록할 수 있다.
608 블록에서, 개시된 시스템들은 읽기 명령에 기반하여 제 2 영역으로부터 읽기 동작에 의하여 요청된 제 2 데이터를 결정할 수 있다. 일부 실시 예들에서, 제 2 데이터를 위한 읽기 명령은 결함 복구 스토리지 장치의 액세스 가능한 공간들을 포함할 수 있다. 610 블록에서, 개시된 시스템들은 제 2 영역으로부터 제 2 데이터를 회수할 수 있다.
612 블록에서, 개시된 시스템들은 읽기 명령에 기반하여 결함 복구 스토리지 장치의 액세스 불가한 공간으로부터 읽기 동작에 의하여 요청된 제 3 데이터를 결정할 수 있다. 614 블록에서, 개시된 시스템들은 제 3 데이터의 결정에 기반하여 결함 복구 스토리지 장치로부터 제 2 스토리지 장치로 에러를 반환할 수 있다. 이는 결함 복구 스토리지 장치의 액세스 불가한 공간에서 요청된 제 3 데이터 때문일 수 있다.
호스트(105) 또는 컨트롤러(120)와 같이 본 명세서에서 설명된 다양한 요소들은 처리 회로들일 수 있거나 이를 포함할 수 있다. “처리 회로” 또는 “처리를 위한 수단”이라는 용어는 본 명세서에서 데이터 또는 디지털 신호들을 처리하기 위하여 사용되는 하드웨어, 펌웨어, 및 소프트웨어의 임의의 조합을 의미하도록 사용된다. 예를 들어, 처리 회로 하드웨어는 ASICs(Application Specific Integrated Circuits), 범용 또는 특수 목적의 CPUs(Central Processing Units), DSPs(Digital Signal Processors), 및 FPGAs(Field Programmable Gate Arrays)와 같은 프로그래밍 가능한 논리 장치들을 포함할 수 있다. 본 명세서에서 사용된 처리 회로에서, 각 기능은 기능을 수행하도록 구성된 하드웨어(즉, 하드-와이어(hard-wired)), CPU와 같이 보다 범용인 하드웨어 중 하나에 의하여 수행되고, 비일시적 스토리지 매체에 저장된 명령들을 실행 가능하도록 구성된다. 처리 회로는 단일 인쇄 회로 기판(Printed Circuit Board, PCB) 또는 여러 개의 상호 연결된 PCB들에 분산될 수 있다. 처리 회로는 다른 처리 회로들을 포함할 수 있다; 예를 들어, 처리 회로는 PCB 상에서 상호 연결된 두 개의 처리 회로들, FPGA 및 CPU를 포함할 수 있다.
본 명세서에서 사용된 바와 같이, 어떤 것의 “일부”는 그것의 “적어도 일부”를 의미하고, 그 자체로 그것의 전부 또는 전부보다 적은 것을 의미할 수 있다. 이와 같이, “일부”는 특수한 경우로서 전체를 포함하고, 다시 말하면, 어떤 것의 전체는 어떤 것의 일부의 예이다. 본 명세서에서, “또는”이라는 용어는 “및/또는”으로 해석되어야 하고, 예를 들어, “A 또는 B”는 “A”“B”, “및 B”를 의미한다.
본 명세서에서 본 발명의 배경이 되는 기술 섹션에 제공된 배경 기술은 단지 문맥을 설정하기 위한 것이고, 이 부분의 내용은 선행 기술로 인정되지 않는다. 설명된 임의의 구성요소 또는 구성요소들의 임의의 조합(예를 들어, 본 명세서에 포함된 임의의 시스템 다이어그램들에서)은 본 명세서에 포함된 임의의 순서도의 동작 중 하나 이상을 수행하는데 사용될 수 있다. 또한, (i) 동작들은 예시적인 동작들이며, 명시적으로 제시되지 않은 다양한 추가 단계들을 포함할 수 있으며, (ii) 동작의 시간적 순서는 변경될 수 있다.
본 명세서에 사용된 바와 같이, 방법(예를 들어, 조정) 또는 제 1 수량(예를 들어, 제 1 변수)이 제 2 수량(예를 들어, 제 2 변수)에 “기반하는” 것으로 언급되는 경우, 그것은 제 2 수량이 그 방법에 대한 입력이거나 제 1 수량에 영향을 미친다는 것을 의미하는 것으로, 예를 들어, 제 2 수량은 제 1 수량을 계산하는 함수에 대한 입력(예를 들어, 유일한 입력 또는 여러 입력들 중 하나)이거나, 제 1 수량이 제 2 수량과 동일하거나, 제 1 수량이 (예를 들어, 메모리 내의 동일한 위치에 저장됨으로써) 제 2 수량과 동일할 수 있다.
본 명세서에서 “제 1”“제 2”“제 3”등의 용어들은 다양한 요소들, 성분들, 영역들, 층들 및/또는 섹션들을 설명하기 위하여 사용되더라도, 이러한 요소들, 성분들, 영역들, 층들 및/또는 섹션들은 이러한 용어들로 인하여 제한되지 않는 것으로 이해될 것이다. 이러한 용어들은 다른 요소, 성분, 영역, 층, 또는 섹션으로부터 하나의 요소, 성분, 영역, 층 또는 섹션을 구별하기 위해서만 사용된다. 따라서, 본 명세서에서 논의되는 제 1 요소, 성분, 영역, 층 또는 섹션은 본 개시의 사상 및 범위로부터 벗어남 없이 제 2 요소, 성분, 영역, 층, 또는 섹션을 지칭할 수 있다.
하나의 요소 또는 도면에서 도시된 다른 구성 요소(들) 또는 특징(들)과의 특징적인 관계를 설명하기 위한 설명을 용이하게 하기 위해 “아래의”, “아래”, “낮은”, “특정 부분 아래”, “위에”, “상부”와 같은 공간적이고 상대적인 용어들이 여기에서 사용될 수 있다. 공간적이고 상대적인 용어들은 도면에서 묘사된 방향에 더해 사용 또는 동작에서 장치의 다른 방향들을 포함하도록 의도된 것이 이해될 것이다. 예를 들면, 만약 도면의 장치가 뒤집어지면, 다른 구성 요소들 또는 특징들의 “아래” 또는 “아래의” 또는 “특정 부분 아래”로 설명된 구성요소들은 다른 구성 요소들 또는 특징들의 “위로” 맞춰지게 된다. 따라서, “아래의” 또는 “특정 부분 아래”의 예시적인 용어들은 위 또는 아래 방향 모두를 포함할 수 있다. 장치는 다르게 맞춰질 수 있으며(예를 들면, 90도 또는 다른 방향으로 회전됨) 그리고 공간적으로 상대적인 기술어들은 그에 따라 해석되어야 한다. 또한, 하나의 층이 두 층들 “사이”에 있는 것으로 언급되는 경우, 그것은 두 층 사이의 유일한 층일 수 있거나, 하나 이상의 중간층이 존재할 수 있는 것으로 이해될 것이다.
본 명세서에서 사용되는 용어는 특정 실시 예를 설명하기 위한 것이며, 본 개시를 제한하고자 하는 것은 아니다. 유사한 용어들은 근사치의 용어들로서 사용되고, 정도의 용어들로서 사용되지 않고. 본 개시의 통상의 기술자에 의해 식별되는 측정된 또는 계산된 값들의 고유한 변동을 고려하기 위한 것이다.
본 명세서에서 사용된 바와 같이, 맥락에서 명확하게 명시되지 않으면 단수 표현들은 복수 표현들 또한 포함하는 것으로 의도된다. “포함하는”이라는 용어가 본 명세서에 사용되는 경우, 기술된 특징, 숫자, 단계, 동작, 구성, 및/또는 부품들의 존재를 명기하는 것이며, 이들의 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성, 부품, 및/또는 그룹의 존재 또는 부가를 배제하지 않는 것으로 더 이해되어야 한다. 본 명세서에 사용된 바와 같이, “및/또는”이라는 용어는 하나 또는 그 이상의 관련된 나열된 사항의 모든 가능한 조합을 지시하거나 포함하는 것으로 이해되어야 한다. “적어도 하나”와 같은 표현들은 요소들 전체 리스트를 수정하고 그리고 리스트의 개별 요소들을 수정하지 않는다. 또한, 본 개시의 실시 예들을 기술할 때 "할 수 있다"의 사용은 "본 개시의 하나 이상의 실시 예들"을 의미한다. 또한, "예시" 용어는 예 또는 예시를 의미하는 것으로 의도된다. 본 명세서에서 사용된 바와 같이, “사용”, “사용하는”, 그리고 “사용된”과 같은 용어들은 “이용”, “이용하는”, 그리고 “이용된” 용어들의 동의어로 각각 간주 될 수 있다.
요소 또는 층이 다른 요소 또는 층“에”, “에 연결된”, “에 결합된” 것으로 언급되는 경우, 그것은 다른 요소 또는 층“에 직접적으로”, “에 직접적으로 연결된”, “에 직접적으로 결합된”일 수 있거나, 하나 또는 그 이상의 사이의 요소들 또는 층들이 존재할 수 있음을 의미한다. 반면, 하나의 요소 또는 층이 다른 요소 또는 층과 “직접적으로 연결”된다고 언급되는 경우에는, 중간의 매개 요소 또는 층은 존재하지 않는다.
본 명세서에서 언급된 임의의 수치 범위는 언급된 범위 내에 포함된 동일한 수치 정도의 모든 하위 범위들을 포함하는 것으로 의도된다. 예를 들어, “에서 10.0”또는 “1.0과 10.0 사이”의 범위는 언급된 최소값 1.0과 언급된 최대값 10.0 사이(그리고 포함)의 모든 하위 범위들을 포함하는, 즉, 최소값이 1.0이상이고, 최대값이 10.0이하인 하위 범위(예를 들어, 2.4 내지 7.6)를 가지는 것으로 의도된다. 본 명세서에 언급된 임의의 최대 수치 제한은 그 안에 포함된 모든 더 낮은 수치 제한들을 포함하는 것으로 의도되고, 본 명세서에 언급된 임의의 최소 수치 제한은 그 안에 포함된 모든 더 높은 수치 제한을 포함하는 것으로 의도된다.
가상 머신들의 라이브 마이그레이션을 위한 스토리지 장치들을 포함하는 스토리지 장치들 및 시스템들의 복구 동작을 위한 시스템 및 방법의 실시 예들이 본 명세서에서 구체적으로 설명되고 예시되었으나, 많은 수정들 및 변형들이 통상의 기술자에게 명백할 것이다. 따라서, 본 개시의 원리에 따라 구성되는 가상 머신의 라이브 마이그레이션을 위한 스토리지 장치들을 포함하는 스토리지 장치들 및 시스템들의 복구 동작을 위한 시스템 및 방법은 본 명세서에서 구체적으로 설명된 것과 다르게 구현될 수 있다. 또한, 본 개시는 다음의 청구범위 및 그것의 균등물로 정의된다.
105 : 호스트
110 : 스토리지 장치
115 : 볼륨 관리자
120 : 컨트롤러
125 : 스토리지 매체

Claims (20)

  1. 결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 식별하는 단계;
    상기 결함 복구 스토리지 장치와 관련된 제 1 영역이 액세스 불가한 공간을 포함하고, 상기 결함 복구 스토리지 장치와 관련된 제 2 영역이 액세스 가능한 공간을 포함한다는 것을 결정하는 단계;
    데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 식별하고, 상기 읽기 명령에 기반하여, 상기 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청된 제 1 데이터를 결정하는 단계;
    상기 읽기 명령에 기반하여, 상기 제 2 영역으로부터 상기 읽기 동작에 의하여 요청된 제 2 데이터를 결정하는 단계;
    상기 제 2 영역으로부터 상기 제 2 데이터를 회수하는 단계; 및
    상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 상기 제 2 데이터의 전송을 스케줄하는 단계를 포함하는 페이지 캐시 관리 방법.
  2. 제 1 항에 있어서,
    상기 읽기 명령에 기반하여, 상기 결함 복구 스토리지 장치의 상기 액세스 불가한 공간으로부터 상기 읽기 동작에 의하여 요청된 제 3 데이터를 결정하는 단계; 및
    상기 제 3 데이터의 결정에 기반하여, 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 에러를 반환하는 단계를 더 포함하는 페이지 캐시 관리 방법.
  3. 제 1 항에 있어서,
    상기 데이터에 대한 상기 결함 복구 스토리지 장치에서 쓰기 명령을 식별하는 단계;
    호스트 장치의 페이지 캐시로 상기 데이터의 적어도 일부를 기록하는 단계;
    상기 데이터의 상기 일부는 더티 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 영구 메모리에 상기 더티 데이터를 기록하는 단계; 및
    상기 데이터의 다른 일부는 상기 액세스 불가한 공간과 관련된 클린 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 상기 영구 메모리에 상기 클린 데이터를 기록하는 단계를 더 포함하는 페이지 캐시 관리 방법.
  4. 제 1 항에 있어서,
    상기 제 2 데이터의 전송은 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로의 적어도 하나의 가상 머신의 라이브 마이그레이션(live migration)을 포함하는 페이지 캐시 관리 방법.
  5. 제 1 항에 있어서,
    상기 제 1 데이터는 상기 로컬 메모리에 캐시된 상기 데이터의 적어도 일부를 포함하는 페이지 캐시 관리 방법.
  6. 제 1 항에 있어서,
    상기 로컬 메모리는 DRAM(Dynamic Random Access Memory)을 포함하고, 상기 제 1 데이터의 식별은 페이지 캐시로부터 수행되는 페이지 캐시 관리 방법.
  7. 제 1 항에 있어서,
    상기 데이터는 호스트 장치의 적어도 하나의 가상 머신과 관련된 데이터를 포함하는 페이지 캐시 관리 방법.
  8. 제 1 항에 있어서,
    상기 스토리지 장치 결함은 상기 결함 복구 스토리지 장치를 부분 읽기 전용 모드에서 동작하게 하고,
    상기 결함 복구 스토리지 장치는 저하된 성능 또는 감소된 용량에서 동작을 수행하는 페이지 캐시 관리 방법.
  9. 제 1 항에 있어서,
    상기 결함 복구 스토리지 장치 또는 상기 제 2 스토리지 장치 중 적어도 하나는 솔리드 스테이트 드라이브(Solid State Drive, SSD)를 포함하는 페이지 캐시 관리 방법.
  10. 페이지 캐시 관리를 위한 장치에 있어서:
    컴퓨터 실행 가능 명령들을 저장하는 적어도 하나의 메모리 장치; 및
    상기 적어도 하나의 메모리 장치에 액세스 하도록 구성되는 적어도 하나의 프로세서를 포함하되,
    상기 적어도 하나의 프로세서는:
    결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 식별하고;
    상기 결함 복구 스토리 장치와 관련된 제 1 영역이 액세스 불가한 공간을 포함하고, 상기 결함 복구 스토리지 장치와 관련된 제 2 영역이 액세스 가능한 공간을 포함한다는 것을 결정하고;
    데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 식별하고, 상기 읽기 명령에 기반하여, 상기 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청된 제 1 데이터를 결정하고;
    상기 읽기 명령에 기반하여, 상기 제 2 영역으로부터 상기 읽기 동작에 의하여 요청된 제 2 데이터를 결정하고;
    상기 제 2 영역으로부터 상기 제 2 데이터를 회수하고; 그리고
    상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 상기 제 2 데이터의 전송을 스케줄하기 위한 상기 컴퓨터 실행 가능 명령들을 실행하도록 구성되는 장치.
  11. 제 10 항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 읽기 명령에 기반하여, 상기 결함 복구 스토리지 장치의 상기 액세스 불가한 공간으로부터 상기 읽기 동작에 의하여 요청된 제 3 데이터를 결정하고; 그리고
    상기 제 3 데이터의 결정에 기반하여, 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 에러를 반환하기 위한 상기 컴퓨터 실행 가능 명령들을 더 실행하도록 구성되는 장치.
  12. 제 10 항에 있어서,
    상기 적어도 하나의 프로세서는:
    상기 데이터에 대한 상기 결함 복구 스토리지 장치에서 쓰기 명령을 식별하고;
    호스트 장치의 페이지 캐시로 상기 데이터의 적어도 일부를 기록하고;
    상기 데이터의 상기 일부는 더티 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 영구 메모리에 상기 더티 데이터를 기록하고; 그리고
    상기 데이터의 다른 일부는 상기 액세스 불가한 공간과 관련된 클린 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 상기 영구 메모리에 상기 클린 데이터를 기록하기 위한 상기 컴퓨터 실행 가능 명령들을 더 실행하도록 구성되는 장치.
  13. 제 10 항에 있어서,
    상기 제 2 데이터의 전송은 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로의 적어도 하나의 가상 머신의 라이브 마이그레이션(live migration)을 포함하는 장치.
  14. 제 10 항에 있어서,
    상기 제 1 데이터는 상기 로컬 메모리에 캐시된 상기 데이터의 적어도 일부를 포함하는 장치.
  15. 제 10 항에 있어서,
    상기 로컬 메모리는 DRAM(Dynamic Random Access Memory)을 포함하고,
    상기 제 1 데이터의 결정은 페이지 캐시로부터 수행되고,
    상기 데이터는 호스트 장치의 적어도 하나의 가상 머신과 관련된 데이터를 포함하는 장치.
  16. 제 10 항에 있어서,
    상기 스토리지 장치 결함은 상기 결함 복구 스토리지 장치를 부분 읽기 전용 모드에서 동작하게 하고,
    상기 결함 복구 스토리지 장치는 저하된 성능 또는 감소된 용량에서 동작을 수행하는 장치.
  17. 프로세서에 의하여 실행되는 컴퓨터 실행 가능 명령들을 저장하는 비 일시적 컴퓨터 판독 가능 매체에 있어서, 상기 프로세서에 의하여:
    결함 복구 스토리지 장치와 관련된 스토리지 장치 결함을 식별하고;
    상기 결함 복구 스토리 장치와 관련된 제 1 영역이 액세스 불가한 공간을 포함하고, 상기 결함 복구 스토리지 장치와 관련된 제 2 영역이 액세스 가능한 공간을 포함한다는 것을 결정하고;
    데이터에 대한 제 2 스토리지 장치에서 읽기 명령을 식별하고, 상기 읽기 명령에 기반하여, 상기 제 2 스토리지 장치의 로컬 메모리로부터 읽기 동작에 의하여 요청된 제 1 데이터를 결정하고;
    상기 읽기 명령에 기반하여, 상기 제 2 영역으로부터 상기 읽기 동작에 의하여 요청된 제 2 데이터를 결정하고;
    상기 제 2 영역으로부터 상기 제 2 데이터를 회수하고; 그리고
    상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 상기 제 2 데이터의 전송을 스케줄하는 동작들을 수행하는 비 일시적 컴퓨터 판독 가능 매체.
  18. 제 17 항에 있어서,
    상기 읽기 명령에 기반하여, 상기 결함 복구 스토리지 장치의 상기 액세스 불가한 공간으로부터 상기 읽기 동작에 의하여 요청된 제 3 데이터를 결정하고; 그리고
    상기 제 3 데이터의 결정에 기반하여, 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로 에러를 반환하는 컴퓨터 실행 가능 명령들을 더 포함하는 비 일시적 컴퓨터 판독 가능 매체.
  19. 제 17 항에 있어서,
    상기 데이터에 대한 상기 결함 복구 스토리지 장치에서 쓰기 명령을 식별하고;
    호스트 장치의 페이지 캐시로 상기 데이터의 적어도 일부를 기록하고;
    상기 데이터의 상기 일부는 더티 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 영구 메모리에 상기 더티 데이터를 기록하고; 그리고
    상기 데이터의 다른 일부는 상기 액세스 불가한 공간과 관련된 클린 데이터를 포함하는 것을 결정하고, 상기 제 2 스토리지 장치의 상기 영구 메모리에 상기 클린 데이터를 기록하는 컴퓨터 실행 가능 명령들을 더 포함하는 비 일시적 컴퓨터 판독 가능 매체.
  20. 제 17 항에 있어서,
    상기 제 2 데이터의 전송은 상기 결함 복구 스토리지 장치로부터 상기 제 2 스토리지 장치로의 적어도 하나의 가상 머신의 라이브 마이그레이션(live migration)을 포함하는 비 일시적 컴퓨터 판독 가능 매체.
KR1020210091520A 2020-07-13 2021-07-13 임시 스토리지에 대한 데이터 복원을 위한 시스템 및 장치 KR20220008237A (ko)

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
KR20220008237A true KR20220008237A (ko) 2022-01-20

Family

ID=79173657

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020210038020A KR20220008203A (ko) 2020-07-13 2021-03-24 장애 복원 읽기 전용 모드를 갖는 저장 장치
KR1020210041862A KR20220008206A (ko) 2020-07-13 2021-03-31 장애 복원 저장 장치
KR1020210066328A KR20220008214A (ko) 2020-07-13 2021-05-24 결합 복원 저장 장치들을 갖는 레이드 시스템
KR1020210091520A KR20220008237A (ko) 2020-07-13 2021-07-13 임시 스토리지에 대한 데이터 복원을 위한 시스템 및 장치

Family Applications Before (3)

Application Number Title Priority Date Filing Date
KR1020210038020A KR20220008203A (ko) 2020-07-13 2021-03-24 장애 복원 읽기 전용 모드를 갖는 저장 장치
KR1020210041862A KR20220008206A (ko) 2020-07-13 2021-03-31 장애 복원 저장 장치
KR1020210066328A KR20220008214A (ko) 2020-07-13 2021-05-24 결합 복원 저장 장치들을 갖는 레이드 시스템

Country Status (5)

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

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
WO2009141752A2 (en) 2008-05-19 2009-11-26 Axxana (Israel) Ltd. Resilient data storage in the presence of replication faults 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 시게이트 테크놀로지 엘엘씨 라이트 방법 및 그 방법을 이용하는 저장 장치
JP5879527B2 (ja) 2011-05-25 2016-03-08 パナソニックIpマネジメント株式会社 情報処理装置および情報処理方法
US9514014B2 (en) 2011-08-17 2016-12-06 EMC IP Holding Company, LLC Methods and systems of managing a distributed replica based storage
JP5887757B2 (ja) 2011-08-17 2016-03-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
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
US20170192886A1 (en) 2014-07-31 2017-07-06 Hewlett Packard Enterprise Development Lp 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
US10540165B2 (en) 2016-02-12 2020-01-21 Nutanix, Inc. Virtualized file server rolling upgrade
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
US20230251931A1 (en) 2023-08-10
TW202203037A (zh) 2022-01-16
CN113934367A (zh) 2022-01-14
US11775391B2 (en) 2023-10-03
US20220012130A1 (en) 2022-01-13
JP2022017216A (ja) 2022-01-25
US20220012147A1 (en) 2022-01-13
JP2022017215A (ja) 2022-01-25
US11803446B2 (en) 2023-10-31
CN113934368A (zh) 2022-01-14
CN114003167A (zh) 2022-02-01
US20220012145A1 (en) 2022-01-13
CN113934571A (zh) 2022-01-14
US11630731B2 (en) 2023-04-18
JP2022017212A (ja) 2022-01-25
TW202203034A (zh) 2022-01-16
TW202219765A (zh) 2022-05-16
US20230244570A1 (en) 2023-08-03
TW202219766A (zh) 2022-05-16
KR20220008206A (ko) 2022-01-20
US20220012142A1 (en) 2022-01-13
KR20220008214A (ko) 2022-01-20
KR20220008203A (ko) 2022-01-20

Similar Documents

Publication Publication Date Title
US8943358B2 (en) Storage system, apparatus, and method for failure recovery during unsuccessful rebuild process
US7975169B2 (en) Memory preserved cache to prevent data loss
US20230251931A1 (en) System and device for data recovery for ephemeral storage
US7587630B1 (en) Method and system for rapidly recovering data from a “dead” disk in a RAID disk group
WO2013081616A1 (en) Hardware based memory migration and resilvering
US11573737B2 (en) Method and apparatus for performing disk management of all flash array server
US20090300408A1 (en) Memory preserved cache failsafe reboot mechanism
JP2014120179A (ja) 停電障害状況におけるイベントトレース情報の復旧
CN112667422A (zh) 内存故障处理方法及装置、计算设备、存储介质
US11809295B2 (en) Node mode adjustment method for when storage cluster BBU fails and related component
US20210349781A1 (en) Systems, methods, and devices for data recovery using parity space as recovery space
WO2021088367A1 (zh) 数据恢复方法及相关设备
US11636012B2 (en) Method and apparatus for performing node information exchange management of all flash array server
US20210349780A1 (en) Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device
TW202134863A (zh) 用以進行全快閃記憶體陣列伺服器的高可用性管理的方法與設備
US20170364270A1 (en) Method and system for managing memory in storage device