KR20110107798A - Ssd 기술에 의해 지원되는 스토리지 시스템 스냅샷 - Google Patents

Ssd 기술에 의해 지원되는 스토리지 시스템 스냅샷 Download PDF

Info

Publication number
KR20110107798A
KR20110107798A KR1020117013825A KR20117013825A KR20110107798A KR 20110107798 A KR20110107798 A KR 20110107798A KR 1020117013825 A KR1020117013825 A KR 1020117013825A KR 20117013825 A KR20117013825 A KR 20117013825A KR 20110107798 A KR20110107798 A KR 20110107798A
Authority
KR
South Korea
Prior art keywords
ssd
snapshot
data
command
mapping table
Prior art date
Application number
KR1020117013825A
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 KR20110107798A publication Critical patent/KR20110107798A/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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

솔리드 스테이트 디스크(SSD)를 사용한 스토리지 시스템의 스냅샷을 생성하는 방법과 장치. SSD의 복수의 매핑 테이블은 하나 이상의 포인트-인-타임 스냅샷 및 SSD의 의 현재 뷰를 생성하는 데 필요한 데이터를 저장한다. 기록 명령어에 따라, SSD는 정상적인 기록 프로세스를 실행하고, SSD의 현재 뷰를 나타내도록 매핑 테이블을 업데이트하며, SSD의 이전 상태의 스냅샷으로써 본래 데이터의 포인터 테이블에 본래 데이터를 추가적으로 보관한다. 바람직한 실시예에서, 새로운 위치로 데이터를 기록하는 SSD의 내재된 기능은 스냅샷의 실행 시에 성능 손실이 거의 또는 전혀 없이 포인트-인-타입 카피를 실행하는 데에 사용된다.

Description

SSD 기술에 의해 지원되는 스토리지 시스템 스냅샷{STORAGE SYSTEM SNAPSHOT ASSISTED BY SSD TECHNOLOGY}
본 발명은 일반적으로 플래시 기반 솔리드 스테이트 스토리지(solid state storage) 기술에 관한 것이다.
RAID(독립 디스크의 중복 배열, Redundant Array of Independent Disks)는 성능을 향상시키고 결함 내성(fault tolerance)을 제공하기 위해 사용되는 스토리지 시스템이다. RAID는 둘 이상의 하드 디스크와 RAID 기능을 포함하는 특수 디스크 제어기의 세트이다. RAID는 다수의 드라이브에 걸쳐 바이트 또는 바이트 그룹이 인터리브(interleave)되는 디스크 스트라이핑(disk striping)으로 성능이 향상되고, 따라서 하나 이상의 디스크가 동시에 읽기 및 쓰기가 가능하다(예를 들어, RAID 0). 결함 내성은 미러링(mirroring) 또는 패리티에 의해 얻어진다. 미러링은 두 개의 드라이브에 데이터가 100 % 복제된 것이다(예를 들어, RAID 1).
RAID 스토리지 시스템의 볼륨은 가상 디스크 드라이브(virtual disk drive)이다. 볼륨은 RAID 스토리지 시스템에 부착된 컴퓨터 시스템의 디스크 드라이브로 보이게 된다. RAID 시스템의 볼륨은 여러 물리적 하드 드라이브에 걸쳐 있거나, 그 전체가 단일 물리적 드라이브의 일부분에 포함되거나, RAID 시스템의 다른 가상 드라이브에 매핑될 수 있다. 인클로저(enclosure)는 하나 이상의 물리적 디스크 드라이브를 수용하는 물리적 구조이다. 인클로저는 또한, RAID 제어기를 포함하거나, 부착된 컴퓨터 및 RAID 제어기가 인클로저에 수용된 물리적 하드 드라이브와 통신가능하게 하는 스토리지 연결 하드웨어를 포함할 수 있다. 논리 장치(Logical Unit, LU)는 SCSI 주변 기기 내의 주소 지정 가능 엔티티(addressable entity)에 대한 SCSI 용어이다. SCSI 프로토콜을 거쳐 외부에서 주소 지정 가능한 RAID 스토리지 시스템의 볼륨은 일반적으로 논리 장치로써 다루어지고, LUN(Logical Unit Number, 논리 장치 번호) 지정자가 부여된다. 따라서 RAID 시스템 내의 볼륨은 때때로 LUN이라고 불린다.
SAN(스토리지 영역 네트워크, Storage Area Network)은 보통 다수의 서버를 다수의 스토리지 장치 및 스토리지 시스템에 연결한다. 어떤 SAN에서는, 백업을 위해 컴퓨터 처리 오버헤드(overhead) 없이 스토리지 장치 자체가 다른 스토리지 장치에 데이터를 복사할 수 있다. SAN 네트워크는 고속의 주변 채널(high peripheral channel speeds)로 컴퓨터와 스토리지 시스템 사이에서 데이터를 전송한다.
"제어기" 또는 "호스트 버스 어댑터"로도 불리는 호스트 어댑터는 하나 이상의 주변 장치(peripheral units)를 컴퓨터에 연결하는 장치이다. 호스트 어댑터는 또한 컴퓨터를 SAN에 연결할 수 있다. 이는 일반적으로 버스에 연결되는 확장 카드(expansion card)이다. 제어기를 호스트 어댑터라고 부르는 주변 인터페이스의 예로써 SCSI, SAS, 파이버 채널(Fibre Channel), iSCSI 및 인피니밴드(Infiniband)가 있다. 호스트는, 어플리케이션을 실행하고 컴퓨터에 직접 또는 SAN을 통해 부착되는 스토리지 시스템 및 장치에 액세스하는 컴퓨터일 수 있다.
플래시 메모리(NAND 및 NOR 타입 모두)는 비휘발성 메모리(non-volatile memory)이다. 플래시 메모리의 한 가지 제약은, 랜덤 액세스 방식(random access fashion)으로 한 번에 바이트나 단어(NOR)로 또는 페이지(NAND)로 읽히거나 프로그램 될 수 있지만, 한 번에 "블록"으로써 삭제되어야 한다는 점이다. 플래시 메모리(특히, NOR 플래시)는 랜덤 액세스 읽기 및 프로그래밍 동작은 제공하지만, 임의 랜덤 액세스 재기록(arbitrary random-access rewrite) 또는 삭제 동작은 제공하지 않는다. 또 다른 제약으로, 플래시 메모리는 한정된 수의 삭제-기록 사이클을 가진다. 시중에서 유통되는 대부분의 플래시 제품, 특히 NOR 타입은 대략 100,000 기록-삭제 사이클을 보장한다. NAND 플래시에는 두 가지 타입: SLC(single level cell, 단일 레벨 셀) 및 MLC(multiple level cell, 다중 레벨 셀)이 있다. SLC NAND 플래시는 셀에 한 비트를 저장하고, MLC NAND 플래시는 셀마다 하나 이상의 비트를 저장할 수 있다. SLC NAND 플래시는 NOR 플래시와 동등한 기록 내구성(write endurance)인 100,000 기록-삭제 사이클을 가지고, MLC 플래시의 기록 내구성은 10,000 기록-삭제 싸이클 이하이다. NAND 플래시는 NOR보다 저렴하고, 삭제 및 기록 NAND는 NOR보다 빠르다.
NAND 플래시 페이지는 메모리의 쓰거나 읽을 수 있는 최소 단위이며, 일반적인 크기는 2048 바이트이다. 플래시 메모리의 최소 삭제 가능 단위는 블록이다. 일반적으로 블록은 64 페이지 또는 128K 바이트를 가진다. NAND 플래시 아키텍쳐는 1989년에 도시바(Toshiba)에 의해 소개되었다. 이러한 메모리는 하드 디스크나 메모리 카드 등의 블록 장치처럼 액세스 된다. 각 블록은 많은 페이지로 이루어진다. 페이지의 크기는 일반적으로 512, 또는 2,048, 또는 4,096 바이트이다. 각 페이지에서 몇 바이트(일반적으로 12-16 바이트)는 오류 검출 및 정정 체크섬(error detection and correction checksum)의 저장에 사용되어야만 한다. 일반적인 블록 크기로, 블록 크기 16kiB는 512 바이트 32 페이지, 블록 크기 128kiB는 2,048 바이트 64 페이지, 블록 크기 256kiB는 4,096 바이트 64 페이지, 블록 크기 512kiB는 4,096 바이트 128 페이지를 가진다. 읽기와 프로그래밍은 페이지 단위로 실행되나, 삭제는 오직 블록 단위로 실행된다.
SSD(solid state disk or device, 솔리드 스테이트 디스크 또는 장치)는 솔리드 스테이트 기술을 사용하여 정보를 저장하고, 스토리지 인터페이스를 거쳐 저장 정보로의 액세스를 제공하는 장치이다. SSD는, 종래의 드라이브와 달리 이동시킬 읽기/기록 헤드가 없고, 대기할 스피닝 디스크도 없기 때문에, 기계적인 작동 시간(mechanical latency)이 없어서, 스피닝 플래터(spinning platters)를 사용하는 하드 디스크 드라이브보다 빠르다. SSD는 하드 디스크보다 더 견고하다. SSD는 비휘발성 플래시 메모리를 사용하거나, 전원 장애의 경우는, 디스크 드라이브나 UPS 시스템에 의해 백업되는 휘발성 DRAM 또는 SRAM을 사용할 수 있고, 이 모두는 SSD 시스템의 일부이다.
종래의 스토리지 시스템은 타임 카피(time copy) 또는 스냅샷이라고 하는, 스토리지 시스템 및 서브 시스템에서 데이터의 포인트-인-타임 카피(point-in-time copy)를 실행할 수 있다. 스냅샷을 목적은 어플리케이션이 데이터의 현재 카피를 사용 중에, 백업 동작을 실행할 수 있게 하기 위한 것이다. 또한, 스냅샷은 액티브 데이터 세트의 지속적인 사용에 영향을 주지 않고, 데이터 카피에 대한 데이터 마이닝(data mining)을 가능하게 하기 위해 사용된다. 스냅샷 기술로 COW(copy on write) 및 ROW(redirect on write)가 있고, 이는 아래에서 설명될 것이다.
플래시 기반 SSD는, 성능 및 웨어 레벨링(wear leveling)과 같은 파라미터에 대해 데이터 배치를 최적화하는 알고리즘에 따라서 내부 물리적 장치에 데이터를 배치한다. 이러한 SSD는, 논리 드라이브 또는 장치와 SSD 내부의 물리적 장치 사이의 데이터 주소를 관련짓고 번역하는 매핑 또는 룩업(lookup) 테이블을 보유한다. LAID 시스템과 같이, SSD는 논리 드라이브 또는 장치와 SSD 내부의 물리적 장치 사이의 데이터 주소를 관련짓고 번역하는 매핑 또는 룩업(lookup) 테이블을 보유한다. SSD에서, 비휘발성 메모리의 데이터는 페이지로 나뉘고, 각 페이지에는 일반적으로 2K 데이터로 이루어진 복수의 데이터 세그먼트를 가진 128K의 데이터 블록이 있다. 하나 이상의 매핑 테이블이 데이터(예컨대, 데이터 세그먼트), 페이지 및 플래시 블록(비휘발성 메모리 영역, X, Y, Z 등) 사이의 관련성을 보유하고, 이는 하드웨어가 데이터의 정확한 주소를 찾는 데에 사용될 수 있다. 그러나, 본 발명과는 달리, 이러한 매핑 테이블은 스냅샷을 생성하는 데에 사용되지 않은 데이터의 현재 카피만을 가리킨다.
선행 기술에 없는 점은, 본 발명에서 제시한 바와 같이 솔리드 스테이트 장치(SSD)의 타임 카피나 스냅샷을 실행하는 개선된 시스템에 관한 방법 및 장치이다.
따라서, 본 발명의 일 측면은 솔리드 스테이트 장치(SSD)의 개선된 타임 카피 또는 스냅샷에 관한 방법 및 장치이다.
본 발명의 일 측면은 SSD의 최고 성능을 사용하는 타임 카피 또는 스냅샷을 제공하는 것이다.
본 발명의 또 다른 측면은 플래시 기반 솔리드 스테이트 스토리지 장치의 업데이트 메커니즘과 스토리지 시스템의 스냅샷 특징을 결합하는 것이다.
본 발명의 또 다른 측면으로 포인트-인-타임 카피 또는 스냅샷을 실행하는 개선된 방법을 얻기 위해, 룩업 테이블과 함께 비휘발성 메모리의 사용에 대해 개시한다.
본 발명의 또 다른 측면은, 플래시 기반 SSD가 ROW에서 제시하는 기능을 사용하고, 적절한 룩업 테이블과 함께 SSD 드라이브의 이전 상태의 포인트-온-타임 스냅샷을 생성하는 능력을 포함하도록 이러한 기능을 확장한 것이다.
본 발명의 또 다른 측면은, SSD 기반 스냅샷 메커니즘을 사용하여 하나 이상의 SSD에 저장된 데이터 세트의 시스템 레벨 데이터 스냅샷을 실행 및 사용할 수 있는 하나 이상의 SSD에 데이터를 저장하는 스토리지 시스템을 개시한 것이다. 시스템 레벨 데이터 스냅샷은 선행 기술에서 공지된 대로, 전체적으로 스토리지 시스템에 관련된다면 어떠한 데이터도 가능하다.
본원에 개시된 본 발명의 내재된 효과 및 다른 많은 효과뿐만 아니라 상기의 효과도 선행 기술보다 개선되었다.
상기에서 설명된 본 발명의 많은 다른 특징 및 수반된 효과는 첨부된 도면을 참조하여 아래의 상세한 설명을 참조하면 명백해질 것이다.
본 발명의 바람직한 실시예는 첨부된 도면을 참조하여 상세히 설명될 것이다. 현재 가장 잘 알려진 발명의 실행 모드에 대한 상세한 설명이 본원에 기술된다. 이러한 설명은 한정적인 의미가 아니라, 단지 본 발명의 일반적인 원리를 설명하기 위해서 작성된 것이다. 섹션 제목과 상세한 설명의 전반적인 구성은 오직 편의를 위한 것이며, 본 발명을 한정하기 위한 것은 아니다.
도 1은 데이터가 기록되기 전, 본 발명에서와 같은 플래시 장치 내부의 두 개의 플래시 블록 개략도이다.
도 2는 본 발명에서와 같이 플래시 주소 번역에 대한 룩업 테이블이다.
도 3은 새로운 데이터가 기록되는 동안, 본 발명에서와 같은 플래시 장치 내부의 두 개의 플래시 블록 개략도이다.
도 4는 데이터 기록이 완료된 후, 본 발명에서와 같은 플래시 장치 내부의 두 개의 플래시 블록 개략도이다.
도 5는 본 발명에 따른, 기록 동작 후의 플래시 주소 번역 룩업 테이블이다.
도 6(a) 및 6(b)은 기록 전, 현재 뷰 및 포인트-인-타임 카피에 대해, 본 발명에 따른 플래시 주소 번역에 대한 두 개의 룩업 테이블의 사용을 도시한다.
도 7은 본 발명의 최상위 레벨(top-level) 순서도이다.
도 8은 본 발명에 따른 스냅샷을 생성하는 과정의 보다 상세한 순서도이다.
당업자라면 본 발명을 통해, 본 발명의 사상을 벗어나지 않는 범위에서 도면에 도시된 실시예를 변형할 수 있을 것이다. 도면에서, 서로 다른 도에서 유사한 참조 부호를 가진 구성 요소는 이전의 정의된 동일 구성 요소를 나타낸다.
본 발명은 바람직하게는 특수 집적 회로 또는 ASIC에서 실행되는 펌웨어에 관한 것이다. 본 발명은 펌웨어, 소프트웨어, 하드웨어 또는 이들의 조합; 제어기 칩, ASIC, 또는 마더보드 카드에 있고, 또한 바람직하게는 SSD 자체에 있으며; 어떤 경우든 본 발명을 포함하는 SSD 시스템은, 시스템이 하나의 유닛 또는 여러 유닛으로의 패키징 여부와 상관없이 SSD를 포함한다. 본 발명에서 제공되는 기능은 주로 하드웨어와 소프트웨어의 조합이다. 어떤 종류의 하드웨어 및 소프트웨어인지는 구현에 따를 것이다. 예를 들어, 논리 장치가 소프트웨어 드라이버 및 호스트 버스 어댑터를 가진 리눅스(Linux) 시스템에 설치되면, 펌웨어, 디스크 제어 칩, ASIC 및 카드를 사용한 논리 장치 구현이 가능하다.
게다가, 어떠한 종류의 소프트웨어 툴이라도 본 발명을 기록하고 컴파일하는 데에 사용될 수 있으며, 이는 C와 같은 컴퓨터 언어, C++과 같은 객체 지향 언어(object-oriented language)를 포함하는 컴퓨터 언어로 작성될 수 있다. 또한, 펌웨어는 주된 메모리 스토리지 및 보조 메모리 스토리지가 있는 컴퓨터와 같은 범용 컴퓨터 시스템으로 대신할 수 있다. 일반적으로, 본 발명의 소트프웨어를 구성하고 구현하기 위해 사용되는 언어에 따라서, 소프트웨어는 클래스, 기능, 서브루틴(subroutines), 객체, 변수, 템플릿, 모듈, 코드 라인, 코드 일부 및 컨스트럭트(constructs, 종합적으로 또한 일반적으로, 그리고 본원의 순서도에 도시된 대로, "프로세스 스텝", "스텝", "지시어", "프로세스", "블록", "블록 스텝", "어플리케이션", "모듈" 또는 "소프트웨어 모듈") 중 여러 가지를 가지고, 본원에서 설명된 바대로 본 발명을 연속적인 단계로 실행할 수 있고, 또한 소프트웨어는 독립형(standalone)의 소프트웨어 어플리케이션이거나, 다른 소프트웨어 어플리케이션의 내부에 채택되거나, 다른 소프트웨어 어플리케이션에 의해 호출될 수 있다. 어플리케이션의 일부분의 코드가 복수의 기능을 수행하도록, 예를 들어, 객체 지향 프로그래밍(예를 들어, 과부하 프로세스)에서처럼, 소프트웨어 프로세스나 소프트웨어 모듈이 구성될 수 있다. 복수의 소프트웨어 모듈 또는 프로세스 스텝들이 본원에서 설명된 단일 프로세스 스텝의 기능을 실행하도록 구성될 수도 있다는 점에서, 본 발명의 일반성의 손실 없이 그 역도 성립한다. 본 발명의 프로세스 스텝의 어떤 단계에서도, 중간값(intermediate values), 변수 및 데이터는 프로그램의 추후 사용을 위해 저장될 수 있다. 일반적으로 본 발명의 방법 및 장치는, 본 발명을 구현하는 소프트웨어를 실행하는 어떠한 종류의 하드웨어도 사용할 수 있으며, 집적 회로 칩의 펌웨어뿐만 아니라, 개인 컴퓨터, ARM 프로세서, XScale 프로세서, DSP, ASIC 또는 프로그램 가능한 플랫폼 ASIC, FPGA, GPP, 마이크로프로세서, 메인프레임, 메모리가 있는 전용회로 또는 하드웨어나 가상 기계와 호환 가능한 부분을 포함하며 이에 한정되지 않는다.
도 1에서, 데이터가 기록되기 전, 본 발명에서와 같은 플래시 장치 내부의 두 개의 플래시 블록 개략도이다.
일반적으로 NAND 기술을 사용한 솔리드 스테이트 드라이브는 데이터의 이전 카피 위에 새롭게 기록된 데이터를 두지 않는다. 현재의 기술로, 삭제 가능한 최소 데이터량은 128 K의 사용자 데이터이다. 이 128 K 블록은 동작 시에 기록 가능한 사용자 데이터의 최소량인 2 K 페이지로 나뉘어진다. SSD는 일반적으로 새로운 기록 데이터를 동일한 데이터의 이전 기록 카피와는 다른 장소에 둔다. 도 1은 단순화된 예시를 도시한다. 복수의 데이터 세그먼트가 플래시 블록 X에 기록되었다. 플래시 블록 Y는 삭제되어, 기록될 준비가 되어있다. 도 1은 데이터가 기록되기 전을 보여준다.
도 2는 본 발명에서와 같이 플래시 주소 번역에 대한 룩업 테이블이다. 테이블은 SSD 내부의 SSD 제어기를 위해서, 도 2의 칼럼 헤더에 있는 몇몇 정보의 관계를 설명하고, 이는 어떤 특정 데이터(예컨대, 데이터 세그먼트)가 어느 플래시 블록(예컨대, 플래시 블록 X 또는 Y)에서 발견되는지, 어느 플래시 블록(SSD의 논리 블록에 대응)의 어느 페이지에서 데이터가 발견되는지를 포함한다. 이 개략도는 단순화된 예시이기 때문에, 다른 타입의 정보, 예를 들어, 버전 번호가 표시될 수도 있다. 테이블은 포인터를 포함할 수 있다. 소프트웨어 관점에서, "주소"는 "포인터"일 수 있다. 따라서, 주소 테이블은 포인터 테이블이다. 테이블과 동등한 것으로, 동일한 기능을 실행하는 유사 구조 및/또는 다른 변수의 주소를 지닌 변수를 포함하는 동등한 데이터 컨스트럭트를 들 수 있다. 또한, 동시에 복수의 스냅샷을 보관하는 여러 쌍의 테이블도 가능하다.
도 3은 새로운 데이터가 기록되는 동안, 본 발명의 SSD와 같은 플래시 장치 내부의 두 개의 플래시 블록 개략도이다. 플래시 장치는 데이터 세그먼트(210, 211)에 대해 외부 하드에서 구동되는 프로그램으로부터 기록 명령어를 수신하고, 이는 "새로운 데이터 세그먼트(210)" 및 "새로운 데이터 세그먼트(211)"로 명명된 화살표(301, 302)로 표시된다. 플래시 장치는 세그먼트(210, 211)에 대한 새로운 데이터를 수신하고, 이를 도 3의 플래시 블록 Y의 미리 삭제된 영역인 페이지(1) 및 페이지(2)에 기록한다. 플래시 블록 X는 변하지 않는다. 플래시 블록 Y로의 기록 후에, 도 3의 플래시 블록 X의 페이지는 플래시 블록 X의 블록(210, 21)의 데이터가 이제 구 데이터(old data)임을 나타내도록 수정된다. 이는 도 3에서 플래시 블록 X의 페이지(1) 및 페이지(6)에서의 "구 데이터 세그먼트(210)" 및 "구 데이터 세그먼트(211)"와 같이 "구 데이터"로 표시된다.
도 4는 전술한 기록 동작이 완료된 후, 본 발명에서와 같은 플래시 장치 내부의 두 개의 플래시 블록 개략도이다. 이 때, 플래시 장치는 데이터 세그먼트(210, 211)에 대한 위치로써 플래시 블록 Y를 가리키는 데이터 매핑 테이블을 업데이트할 것이다. 데이터 세그먼트의 구 카피는, 플래시 블록 X 전체가 재사용 준비를 위해 재생되고 삭제되기 전까지 플래시 블록 X에 남게 된다. 다음으로, 플래시 장치의 주소 번역 테이블이 데이터 세그먼트(210, 211)의 새로운 주소로 업데이트 되고, 이는 도 5에 도시된다.
공지된 대로, 디스크 어레이 서브시스템(disk array subsystems)은 포인트-인-타임 카피 또는 스냅샷이라고 하는 특성을 지원한다. 데이터 스냅샷을 생성하기 위하여, 어레이는 사용자 데이터의 본래 및 새로 기록된 카피를 보존하기 위한 "COW" 또는 "ROW" 스냅샷 메커니즘을 사용할 것이다. 두 방법은 모두 플래시 장치 주소 번역 테이블에 유사한 데이터에 대해 포인터를 사용한다. 일반적인 스냅샷 방법은 스토리지 볼륨 및 스냅샷에 대해, 본래 위치에 변하지 않은 데이터의 공통 카피를 보관한다. 스토리지 시스템은, 기록이 수신될 때 새로운 위치에 구 데이터를 카피하거나(COW 방법), 또는 새로운 데이터를 새로운 위치에 기록할 것이다(ROW 방법). 양쪽의 경우 모두, 스토리지 시스템은 볼륨의 최신 버전 뿐만 아니라 볼륨의 시간 카피의 포인트가 스토리지 시스템의 사용자에게 보이도록 데이터 세트를 관리한다.
스토리지 시스템 레벨에서 스냅샷을 구현하는 현재의 방법의 한가지 문제점은 성능에 부정적인 영향을 크게 끼친다는 것이다. 예를 들어, COW 방법을 사용할 때, 호스트로부터 수신하는 각 기록 명령어에 대하여, 스토리지 시스템은 본래 위치로부터 구 데이터를 읽고, 구 데이터를 스냅샷 위치로 카피한 후 새로운 데이터를 본래 위치에 기록해야 한다. 스냅샷이 종료될 시점의 ROW 스냅샷의 경우에, 스냅샷 위치의 새로운 데이터는 본래 위치로 다시 카피되어야만 한다.
본 발명에 따르면, SSD는 내재적으로 사용자 데이터의 이전 카피를 보유하기 때문에, 스냅샷의 실행 시 성능 손실이 거의 또는 전혀 없이 현재 데이터 및 스냅샷 데이터를 보관하는 데 사용될 수 있다. 본 발명에 따라 수정될 때, 실질적으로 SSD는 매 기록 명령어가 수신될 때마다 ROW를 실행한다. 복수의 매핑 테이블이 있는 플래시 장치에 이전 버전의 데이터를 가리키는 추가 주소 번역 테이블을 포함시킴으로써, 플래시 장치는, 장치에 저장된 데이터의 다수의 포인트-인-타임 카피로의 액세스를 제공할 수 있다.
따라서, 도면을 참조하면, 플래시 장치는 기록(210, 211) 이전의 데이터의 포인트-인-타임 카피를 저장하는 명령어를 수신한다. 플래시 장치는 포인트-인-타임에 대한 주소의 포인터로써, 도 2의 룩업 테이블의 주소에 대한 룩업 테이블 카피를 보관한다. 볼륨이 업데이트되면, 데이터의 현재 뷰(기록 명령어에 대응한 SSD의 데이터 기록 결과를 포함한 SSD의 현재 상태)가 도 5의 플래시 주소 번역 테이블에서 도시되는 것과 같이 유지된다. SSD는 두 개의 룩업 테이블을 포함하도록 수정되고, 플래시 장치는 스냅샷을 위한 공간을 가지고 있는 한 양쪽 테이블의 카피를 보관하고, 스냅샷은 기타 다른 동작에 의해 종료되지는 않는다. 이는 도 6(a) 및 6(b)의 두 개의 테이블에 도시되며, 도 6(a) 및 6(b)은 기록 전, 현재 뷰 및 포인트-인-타임 카피(SSD의 이전 상태의 스냅샷)에 대한 본 발명의 두 개의 플래시 주소 번역 룩업 테이블의 사용에 대해 도시된다. 도 6(a)는 상기에서 설명한 도 5와 유사하게, 기록 후의 주소 번역 테이블을 도시하며, 도 6(b)는 상기에서 설명한 도 2와 유사하게, 기록 동작, 스냅샷 또는 포인트-인-타임 카피 이전의 주소 번역 테이블을 도시한다.
도 7은 본 발명의 방법의 상위 레벨 순서도이다. 본 발명은 SSD를 제어하고, 또한 본원에서 서술된 스텝 및 지시어에 따라 동작하는 하드웨어, 소프트웨어 및/또는 펌웨어의 어떠한 조합을 통해서라도 본 방법을 실행할 수 있다. 스텝 700의 "시작"에서, 본 발명의 프로그램이 시작된다. 다음으로 박스 702의 "명령어 수신"으로 진행되며, 여기서 플래시 장치는 기록 명령어, 스냅샷 명령어 또는 기타 타입의 명령어 등의 명령어를 수신하고, 회로 또는 지시어의 실행을 트리거하며, 또는 결과를 저장하거나, 일반적으로 플래그 또는 데이터 인디시아(data indicia)를 설정한다. 명령어는 기록 명령어이거나, 또는 스토리지 장치에 데이터의 포인트-인-타임 카피(스냅샷)를 저장하는 스냅샷 명령어일 수 있다. 이러한 스냅샷 명령어가 수신되면, 플래그, 데이터 또는 다른 데이터 인디시아는 스냅샷이 생성될 것임을 나타내도록 설정되고, 이렇게 설정된 데이터는 스냅샷 이벤트를 트리거하는 하드웨어에 대한 신호 또는 지시어를 포함할 수 있다. 스냅샷은 기록 명령어보다는 횟수가 적고, 일반적으로 스토리지 시스템에서 하나의 스냅샷 또는 여러 개의 스냅샷이 언제든지 액티브하게 될 수 있다.
다음으로 다이아몬드 스텝 704의 "기록 명령어?"로 진행된다. SSD가 명령어를 수신하면, 결정 다이아몬드 스텝 704에 도시된 대로, 프로그램의 흐름은, 명령어가 기록 명령어가 아닌 경우에는 "아니오"를 따라 스텝 박스 706의 "다른 명령어 처리"로 진행되고, 명령어가 기록 명령어인 경우에는 "예"를 따라 박스 708의 "스냅샷 진행 중?"으로 진행된다. 결정 다이아몬드 708의 "스냅샷 진행 중?"에서, 스냅샷이 시작되고, 이는 도 8과 관련하여 추가 설명될 것이다.
스냅샷이 진행되지 않으면, 즉, 스냅샷 명령어가 수신되지 않으면, 흐름은 "아니오"를 따라서 스텝 박스 710의 "기록 명령어 처리"로 계속되어, 보통의 기록 명령어(스냅샷 부재)가 처리되고, 이어서 흐름은 스텝 박스 712의 "현재 뷰 데이터 포인터 업데이트"로 계속 진행되며, 선행 기술에 공지된 대로, SSD의 현재 뷰의 데이터 포인터가 업데이트된다.
반면, 스냅샷이 진행 중이면, 흐름은 "예"를 따라 스텝 박스 714의 "현재 데이터 및 포인터 보존"으로 이동하고, 플래시 장치는 포인트-인-타임(스냅샷)에 대한 주소의 포인터를 사용하여, 도 2 또는 도 6(b)와 같이 플래시에서의 주소에 대한 룩업 테이블의 카피를 보관한다. 다음으로, 스텝 박스 716의 "기록 명령어 처리"에서 기록 명령어가 처리되고, 흐름은 스텝 박스 718의 "현재 뷰 및 스냅샷 카피 테이블 업데이트"로 진행되며, 스토리지의 볼륨은 도 5 및 도 6(a)와 같이 현재 뷰(기록 후)를 반영하도록 업데이트된다. 본 발명을 사용하는 경우, SSD가 동작하는 본연의 방식에 의해, SSD에서 생성하는 기록 명령어에 따라 스냅샷을 만드는 것은 성능면에서 손실이 많지 않다. 도 6(a) 및 6(b)에서 도시된 것처럼, 단지 두 개의 테이블을 사용함으로써, SSD 장치의 내재된 기능을 통해 수신된 모든 기록 명령에 대해 ROW를 실행하고, 필요할 때마다 이 ROW로 스냅샷을 구성하도록 하는 것이 가능하다.
따라서, 두 개의 테이블이 업데이트 될 때, 스냅샷이 얻어지고, 제어도 정상으로, 즉, 시작인 스텝 박스 700으로 돌아간다.
도 8은 본 발명에 따른 스냅샷을 생성하는 방법의 보다 상세한 상위 레벨 순서도이다. 스냅샷 프로세스의 시작 전에, SSD는 도 2에 도시된 데이터에 대한 현재 포인터 테이블을 유지한다. 이 방법은 스텝 800의 "시작"에서 시작되고, 스냅샷 명령어를 확인하는 스텝 박스 802의 "명령어 수신"으로 진행되며, 이러한 명령어가 수신되면, 흐름은 스텝 박스 804의 "스냅샷 명령어 시작"으로 진행되어, 스냅샷의 생성 여부를 나타내는 인디시아(예컨대, 플래그 또는 지시어)를 설정하는 적절한 수단으로부터 스냅샷 명령어가 수신되었는 지를 본 발명의 시스템에서 확인한다. 스냅샷이 생성되는 경우는, 흐름은 "예"를 따라 스텝 박스 806의 "스냅샷 포인터 설정 테이블(Set Up Table For Snapshot Pointers). 스냅샷 진행 중 플래그 설정 (Set Snapshot In Progress Flag)"으로 진행되어, 도 7의 박스 714, 716 및 718에서 서술된 스텝들이 실행되며, 또한 현재 뷰 테이블(예컨대, 도 6(a))뿐만 아니라 제 2 테이블(도 6(b))의 설정도 포함할 수 있다. 제 2 테이블(도 6(b))은 스냅샷 명령어가 처리되는 순간의 데이터 뷰의 포인터를 보유하게 된다. 또한, SSD 제어기는 스냅샷 테이블에 기록된 페이지를 재사용하지 않는다.
스냅샷 명령어가 시작되지 않는다면, 흐름은 결정 다이아몬드 스텝 808의 "스냅샷 명령어 종료?"로 진행하고, 또 다른 명령어를 처리하기 위해 명령어가 수신되는 경우에는 "아니오"를 따라 스텝 박스 810의 "다른 명령어 처리"로 이동한다. 이전 스냅샷은 생성되었지만, 이를 종료하거나 삭제하고자 하는 경우에는 "예"를 따라 스텝 박스 812의 "스냅샷 포인터 테이블 폐기. 스냅샷 진행 중 플래그 클리어(Clear Snapshot in Progress Flag)"로 진행되어, 스냅샷 포인터의 테이블을 폐기하고, 또한 스냅샷이 진행 중이거나 스냅샷이 생성될 경우의 진행 플래그, 데이터 또는 인디시아를 클리어하는 등과 같이 스냅샷과 관련된 모든 테이블을 폐기시킴으로써 스냅샷이 종료될 수 있다. 도 6(b)의 테이블은 폐기되고, 도 6(a)에 없는 도 6(b)의 구 데이터, 예컨대, 플래시 블록 X에서 블록(210 및 211)의 구 카피는 플래시 블록 X가 재사용을 위해 삭제될 때 폐기되어도 무방하다. 이러한 스텝들로 스냅샷 명령어가 종료된다.
도 8의 모든 경로 후, 흐름은 시작인 박스 800으로 되돌아 갈 수 있다.
본원에서 설명한 방식으로 두 개의 테이블을 얻기 위한 본 발명으로의 액세스와 관련하여, 다양한 수단에 의해 액세스 가능하다. 예를 들어, 플래시 장치는 SSD의 장치 포트의 제 2 논리 장치를 통하거나 SSD의 추가 포트를 통해 포인트-타임-카피로의 액세스를 제공할 수 있다. 또 다른 실시예로, SSD는 특별한 명령어 세트를 통해 액세스를 제공할 수 있다. RAID 시스템 또는 호스트 어댑터는 특정 명령어가 호스트로부터 제공될 때 스냅샷을 트리거하는 소프트웨어나 펌웨어를 가질 수 있다.
본 발명의 또 다른 측면으로, 본 발명의 SSD 기반 스냅샷 메커니즘을 사용하여 하나 이상의 SSD에 저장되는 데이터 세트의 시스템 레벨 데이터 스냅샷을 실행하고 이용하는, 하나 이상의 SSD에 데이터를 저장하는 스토리지 시스템에서 본 발명이사용된다. 시스템 레벨 데이터 스냅샷은 선행 기술에서 공지된 대로, 전체적으로 스토리지 시스템에 관련된다면 어떠한 데이터도 가능하다.
본 발명은 상기의 바람직한 실시예로 설명되었지만, 본원의 기재를 통해 상기에서 기술한 바람직한 실시예에 대한 다양한 수정 및/또는 추가가 당업자에게 자명할 것이다. 예를 들어, SSD가 명백하게 언급되었어도, SSD와 동일한 방식으로 동작하는 스토리지 장치라면 SSD를 대신할 수 있다. 또한, 장치가 본원의 기재대로 기능한다면, 당업자는 COW 스토리지 매체에 적절한 수정도 가능할 것이다. 본원의 기재를 통해, 당업자라면 COW를 사용하여 본 발명과 유사한 기능을 실행하는 종래의 회전 플래터 하드 디스크 드라이브(HDD)도 수정할 수 있고, 이는 종래의 HDD가 데이터를 배치하기 위해 테이블 대신에 기하학적 연산을 사용하기 때문에, 더 많은 작업이 요구되지만, 본 발명의 실시예에 따라서 매핑 테이블 능력을 제공할 수 있다. 이러한 경우에, HDD 제어기는 SSD 제어기와 기능상 동일하므로, 권리 주장 목적으로 이처럼 명명될 수 있고, 다만 솔리드 스테이트 메모리 대신에 스피닝 디스크에서 동작한다는 차이점이 있다.
본 발명의 범위는 이러한 모든 수정 및/또는 추가로 확장되며, 본 발명의 범위는 오직 아래의 특허청구범위에 의해서 한정된다.

Claims (20)

  1. 스토리지 장치의 스냅샷(snapshot)을 생성하는 시스템으로서,
    상기 시스템은 스토리지 장치를 포함하되,
    상기 스토리지 장치는,
    상기 스토리지 장치의 기록 동작 전의 데이터를 보관하는 주소 번역을 위한 제 1 매핑 테이블 및 상기 스토리지 장치의 기록 동작 후의 데이터를 보관하는 주소 번역을 위한 제 2 매핑 테이블을 포함하고,
    상기 스토리지 장치는 상기 제 1 및 제 2 매핑 테이블에 의해 보관되는 데이터를 통해 상기 스토리지 장치의 포인트-인-타임 카피(a point in time copy)를 할 수 있는
    시스템.
  2. 제 1 항에 있어서,
    상기 스토리지 장치는 솔리드 스테이트 디스크(solid state disk, SSD)이고,
    상기 제 1 매핑 테이블은 상기 SSD의 스냅샷에 관련된 데이터를 보관하고, 상기 제 2 매핑 테이블은 상기 SSD의 현재 뷰에 관련된 데이터를 보관하며, 상기 SSD는 상기 제 1 및 제 2 매핑 테이블을 사용하여 상기 SSD의 스냅샷을 구성하는
    시스템.
  3. 제 2 항에 있어서,
    상기 SSD는 수신된 기록 명령어에 따라 기록을 실행하고, 기록 명령어의 실행에 따른 데이터로 상기 제 1 및 제 2 매핑 테이블을 업데이트하는
    시스템.
  4. 제 3 항에 있어서,
    상기 SSD는 수신된 기록 명령어에 대해 ROW(redirect-on-write)를 실행하고, 상기 SSD의 현재 뷰를 나타내는 데이터로 상기 제 2 매핑 테이블을 업데이트하는
    시스템.
  5. 제 4 항에 있어서,
    상기 SSD는 상기 기록 명령어 이전의 상기 SSD의 포인트-인-타임 카피를 나타내는 데이터로 상기 제 1 매핑 테이블을 업데이트하고,
    복수의 스냅샷을 생성하도록 복수의 제 1 및 제 2 매핑 테이블들을 업데이트하는
    시스템.
  6. 제 3 항에 있어서,
    상기 SSD가 스냅샷의 생성을 나타내는 데이터를 설정하고,
    상기 SSD가 수신된 기록 명령어에 대해 ROW를 실행하는
    시스템.
  7. 제 6 항에 있어서,
    상기 SSD는 스냅샷의 생성을 나타내는 상기 SSD에서 설정된 데이터에 따라 상기 제 1 및 제 2 매핑 테이블을 업데이트하는
    시스템.
  8. 제 7 항에 있어서,
    펌웨어는 상기 제 1 및 제 2 매핑 테이블을 업데이트하기 위해 상기 SSD에 존재하고,
    복수의 SSD는 상기 SSD에 저장된 데이터 세트의 시스템 레벨 데이터 스냅샷의 생성이 가능하도록, 적어도 하나의 SSD에 데이터를 저장하는 스토리지 시스템에서 사용되는
    시스템.
  9. 제 4 항에 있어서,
    데이터 인디시아(indicia)를 설정하는 수단이 스냅샷을 트리거하도록 마련되고,
    상기 SSD는 상기 ROW 이전의 상기 SSD의 포인트-인-타임 카피를 나타내는 데이터로 상기 제 1 매핑 테이블을 업데이트하고,
    상기 SSD는 상기 SSD의 현재 뷰를 나타내는 데이터로 상기 제 2 매핑 테이블을 업데이트하는
    시스템.
  10. 제 9 항에 있어서,
    상기 시스템은,
    다수의 스냅샷을 생성하는 것을 가능하게 하는 복수의 제 1 및 제 2 매핑 테이블과,
    데이터에 대한 포인터로 상기 제 1 및 제 2 테이블을 설정하는 수단과,
    스냅샷 테이블을 폐기하는 수단을 포함하여 스냅샷을 종료하는 수단과,
    복수의 SSD에 저장된 데이터 세트의 시스템 레벨 데이터 스냅샷의 생성이 가능하도록, 적어도 하나의 SSD에 데이터를 저장하는 스토리지 시스템에서 사용되는 상기 복수의 SSD를 더 포함하는
    시스템.
  11. 제 3 항에 있어서,
    상기 시스템은,
    복수의 SSD에 저장된 데이터 세트의 시스템 레벨 데이터 스냅샷의 생성이 가능하도록, 적어도 하나의 SSD에 데이터를 저장하는 스토리지 시스템에서 사용되는 상기 복수의 SSD를 더 포함하는
    시스템.
  12. 솔리드 스테이트 디스크 스냅샷 방법으로서,
    솔리드 스테이트 디스크(SSD)에 데이터를 저장하는 단계와,
    상기 SSD의 주소 번역을 위한 제 1 매핑 테이블을 제공하는 단계와,
    상기 SSD의 주소 번역을 위한 제 2 매핑 테이블을 제공하는 단계를 포함하되,
    상기 SSD는 상기 제 1 및 제 2 매핑 테이블이 보관하는 데이터를 통해 상기 SSD의 포인트-인-타임 카피를 하는
    방법.
  13. 제 12 항에 있어서,
    상기 방법은,
    상기 SSD의 상기 스냅샷에 관련된 데이터를 상기 제 1 매핑 테이블에 저장하는 단계와,
    상기 SSD의 현재 뷰와 관련된 데이터를 상기 제 2 매핑 테이블에 저장하는 단계와,
    상기 제 1 및 제 2 매핑 테이블의 데이터를 사용하여 상기 SSD의 스냅샷을 구성하는 단계를 포함하는
    방법.
  14. 제 13 항에 있어서,
    상기 방법은,
    기록 명령어를 실행하는 단계와,
    스냅샷 명령어를 확인하고, 스냅샷 명령어를 수신하면, 상기 스냅샷의 구성을 수행하는 단계를 포함하는
    방법.

  15. 제 14 항에 있어서,
    상기 방법은,
    상기 기록 명령어에 대해 ROW를 실행하는 단계와,
    ROW 이전의 상기 SSD의 포인트-인-타임 카피를 나타내는 데이터로 상기 제 1 매핑 테이블을 업데이트하는 단계와,
    상기 적어도 하나의 SSD에 데이터를 저장하는 스토리지 시스템에서의 사용을 위해 다수의 스냅샷을 생성하는 단계와,
    상기 복수의 SSD 중 적어도 하나에서, 상기 SSD에 저장된 데이터 세트의 시스템 레벨 데이터 스냅샷을 생성하는 단계를 포함하는
    방법.
  16. 제 15 항에 있어서,
    상기 방법은,
    상기 기록 명령어에 앞서 상기 스냅샷 명령어를 확인하는 단계와,
    상기 스냅샷 명령어를 종료하는 단계와,
    동시에 다수의 스냅샷을 생성하는 것이 가능하도록, 복수의 제 1 및 제 2 매핑 테이블을 제공하는 단계를 포함하는
    방법.
  17. 제 13 항에 있어서,
    상기 방법은,
    스냅샷 명령어를 확인하는 단계와,
    기록 명령어를 확인하여, 상기 기록 명령어에 대해 ROW를 실행하는 단계와,
    상기 스냅샷 명령어에 따라 포인트-인-타임의 시작 여부를 확인하고, 상기 스냅샷 명령어가 수신되면 타임 카피를 시작하고, 상기 스냅샷 명령어가 수신되지 않으면 상기 스냅샷을 종료하는 단계를 포함하는
    방법.
  18. 제 17 항에 있어서,
    상기 방법은,
    상기 스냅샷 명령어가 종료되면, 상기 제 1 매핑 테이블의 데이터를 클리어하는 단계와,
    동시에 다수의 스냅샷을 생성하는 것이 가능하도록 복수의 제 1 및 제 2 매핑 테이블을 제공하는 단계와,
    현재 뷰와 관련된 데이터로 상기 제 2 매핑 테이블을 업데이트하는 단계를 포함하는
    방법.
  19. 제 13 항에 있어서,
    상기 방법은,
    스냅샷 명령어를 확인하는 단계와,
    기록 명령어를 확인하여, 상기 기록 명령어에 대해 ROW를 실행하는 단계와,
    상기 스냅샷 명령어에 따라 포인트-인-타임의 시작 여부를 확인하고, 상기 스냅샷 명령어가 수신되면 타임 카피를 시작하는 단계와,
    ROW에 앞서, 상기 SSD의 포인트-인-타임 카피를 나타내는 데이터로 상기 제 1 매핑 테이블을 업데이트하는 단계와,
    스냅샷 카피가 수신되면, 현재 뷰와 관련된 데이터로 상기 제 2 매핑 테이블을 업데이트하는 단계와,
    동시에 다수의 스냅샷을 생성하는 것이 가능하도록 복수의 제 1 및 제 2 매핑 테이블을 제공하는 단계를 포함하는
    방법.
  20. SSD 스토리지 시스템의 포인트-인-타임 카피를 생성하는 시스템으로서,
    SSD를 포함하는 데이터 저장 수단과,
    ROW를 실행하는 수단을 포함하는 데이터 기록 수단과,
    스냅샷의 생성 여부를 나타내는 데이터 인디시아(indicia)를 설정하는 수단과,
    스냅샷 생성을 나타내는 상기 데이터 인디시아 설정 수단에 따라, 데이터 포인터로 상기 제 1 및 제 2 룩업 테이블을 업데이트하는 수단과,
    다수의 스냅샷 생성을 가능하게 하는 복수의 SSD의 복수의 제 1 및 제 2 룩업 테이블과,
    상기 복수의 SSD 중 적어도 하나에서 상기 SSD에 저장된 데이터 세트의 시스템 레벨 데이터 스냅샷을 생성을 가능하게 하는 수단과,
    스냅샷의 종료 명령어에 따라서, 스냅샷 데이터를 종료하는 수단을 포함하되,
    상기 SSD 스토리지 수단은 상기 SSD의 포인트-인-타임 카피에 관련된 데이터를 보관하는 제 1 룩업 테이블을 포함하는 주소 번역 수단과, 상기 SSD의 현재 뷰에 관련된 데이터를 보관하는 제 2 룩업 테이블을 포함하는 주소 번역 수단을 가지고,
    상기 SSD는 상기 제 1 및 제 2 룩업 테이블을 사용하여 상기 SSD의 스냅샷을 구성하는
    시스템.
KR1020117013825A 2008-12-17 2009-03-30 Ssd 기술에 의해 지원되는 스토리지 시스템 스냅샷 KR20110107798A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/316,902 2008-12-17
US12/316,902 US8200922B2 (en) 2008-12-17 2008-12-17 Storage system snapshot assisted by SSD technology

Publications (1)

Publication Number Publication Date
KR20110107798A true KR20110107798A (ko) 2011-10-04

Family

ID=42241930

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117013825A KR20110107798A (ko) 2008-12-17 2009-03-30 Ssd 기술에 의해 지원되는 스토리지 시스템 스냅샷

Country Status (7)

Country Link
US (1) US8200922B2 (ko)
EP (1) EP2359252B1 (ko)
JP (1) JP2012512482A (ko)
KR (1) KR20110107798A (ko)
CN (1) CN102239480A (ko)
TW (1) TW201024994A (ko)
WO (1) WO2010071662A1 (ko)

Families Citing this family (293)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100133184A (ko) * 2009-06-11 2010-12-21 삼성전자주식회사 고체 상태 드라이브 장치
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US9971656B2 (en) 2010-12-13 2018-05-15 International Business Machines Corporation Instant data restoration
US8886869B2 (en) 2011-02-02 2014-11-11 Hitachi, Ltd. Storage system and data control method therefor
US8626991B1 (en) * 2011-06-30 2014-01-07 Emc Corporation Multi-LUN SSD optimization system and method
US8868869B2 (en) * 2011-08-08 2014-10-21 International Business Machines Corporation Enhanced copy-on-write operation for solid state drives
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US8788788B2 (en) 2011-08-11 2014-07-22 Pure Storage, Inc. Logical sector mapping in a flash storage array
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
WO2013038442A1 (en) * 2011-09-13 2013-03-21 Hitachi, Ltd. Storage system comprising flash memory, and storage control method
CN102591790B (zh) * 2011-12-30 2015-11-25 记忆科技(深圳)有限公司 基于固态硬盘的数据存储快照实现方法及固态硬盘
TWI479418B (zh) * 2012-01-19 2015-04-01 Novatek Microelectronics Corp 多媒體裝置的啟動方法及多媒體裝置
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
WO2013158633A1 (en) * 2012-04-20 2013-10-24 Violin Memory, Inc. Snapshots in a flash memory storage system
CN102629914A (zh) * 2012-04-27 2012-08-08 深圳市邦彦信息技术有限公司 一种以太网数据包缓存方法和装置
CN102789368B (zh) 2012-06-21 2015-10-21 记忆科技(深圳)有限公司 一种固态硬盘及其数据管理方法、系统
US9495287B2 (en) 2012-09-26 2016-11-15 International Business Machines Corporation Solid state memory device logical and physical partitioning
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US9336090B2 (en) 2012-10-10 2016-05-10 Hitachi, Ltd. Storage apparatus comprising snapshot function, and storage control method
CN102968381A (zh) * 2012-11-19 2013-03-13 浪潮电子信息产业股份有限公司 一种利用固态硬盘提高快照性能的方法
US8937317B2 (en) 2012-12-28 2015-01-20 Avogy, Inc. Method and system for co-packaging gallium nitride electronics
KR20150105323A (ko) 2013-01-08 2015-09-16 바이올린 메모리 인코포레이티드 데이터 스토리지 방법 및 시스템
US9063967B2 (en) 2013-01-10 2015-06-23 Pure Storage, Inc. Performing copies in a storage system
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
EP2955633B1 (en) 2013-03-15 2018-05-23 Huawei Technologies Co., Ltd. Data erasing method and device for flash memory
US9324645B2 (en) 2013-05-23 2016-04-26 Avogy, Inc. Method and system for co-packaging vertical gallium nitride power devices
US9489151B2 (en) 2013-05-23 2016-11-08 Netapp, Inc. Systems and methods including an application server in an enclosure with a communication link to an external controller
US10223208B2 (en) * 2013-08-13 2019-03-05 Sandisk Technologies Llc Annotated atomic write
CN104572138B (zh) * 2013-10-10 2018-10-30 腾讯科技(深圳)有限公司 应用程序的启动方法及装置
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US9324809B2 (en) 2013-11-18 2016-04-26 Avogy, Inc. Method and system for interleaved boost converter with co-packaged gallium nitride power devices
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
JP6279620B2 (ja) * 2014-01-29 2018-02-14 株式会社日立製作所 ストレージ装置
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
CN103955413A (zh) * 2014-04-11 2014-07-30 重庆纳跃信息科技有限公司 一种基于文件局部修改的文件快照还原方法
JP5864667B2 (ja) * 2014-05-07 2016-02-17 株式会社日立製作所 ストレージシステムおよびそのデータ制御方法
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
US9535799B2 (en) 2015-01-06 2017-01-03 HGST Netherlands B.V. Apparatus, systems, and methods for data recovery
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US9880755B2 (en) 2015-02-25 2018-01-30 Western Digital Technologies, Inc. System and method for copy on write on an SSD
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
CN105487898A (zh) * 2015-11-27 2016-04-13 国云科技股份有限公司 一种提高虚拟机批量开机关机速度的方法
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10372543B2 (en) 2016-03-04 2019-08-06 Toshiba Memory Corporation Memory system
US9836243B1 (en) * 2016-03-31 2017-12-05 EMC IP Holding Company LLC Cache management techniques
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US9946489B2 (en) 2016-07-27 2018-04-17 Western Digital Technologies, Inc. Multi-stream journaled replay
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US12039165B2 (en) 2016-10-04 2024-07-16 Pure Storage, Inc. Utilizing allocation shares to improve parallelism in a zoned drive storage system
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10620843B2 (en) * 2017-07-26 2020-04-14 Netapp, Inc. Methods for managing distributed snapshot for low latency storage and devices thereof
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10445195B2 (en) 2017-08-07 2019-10-15 Micron Technology, Inc. Performing data restore operations in memory
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US12032848B2 (en) 2021-06-21 2024-07-09 Pure Storage, Inc. Intelligent block allocation in a heterogeneous storage system
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
CN107798130B (zh) * 2017-11-17 2020-08-07 广西广播电视信息网络股份有限公司 一种分布式存储快照的方法
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US12001688B2 (en) 2019-04-29 2024-06-04 Pure Storage, Inc. Utilizing data views to optimize secure data access in a storage system
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11048597B2 (en) 2018-05-14 2021-06-29 Micron Technology, Inc. Memory die remapping
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US10636495B2 (en) 2018-06-12 2020-04-28 Western Digital Technologies, Inc. Adjustable read retry order based on decoding success trend
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
CN109117086B (zh) * 2018-07-16 2021-09-21 北京百度网讯科技有限公司 存储设备数据位置的处理方法、装置、设备及存储介质
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11074134B2 (en) 2018-08-23 2021-07-27 International Business Machines Corporation Space management for snapshots of execution images
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
TWI709854B (zh) * 2019-01-21 2020-11-11 慧榮科技股份有限公司 資料儲存裝置及用於存取邏輯至物理位址映射表之方法
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US12050683B2 (en) * 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
KR20210072990A (ko) 2019-12-10 2021-06-18 삼성전자주식회사 가변 크기 맵핑 기반의 스토리지 장치의 데이터 관리 방법 및 이를 이용한 구동 방법
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US12001684B2 (en) 2019-12-12 2024-06-04 Pure Storage, Inc. Optimizing dynamic power loss protection adjustment in a storage system
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
JP7309025B2 (ja) * 2020-07-31 2023-07-14 株式会社日立製作所 ストレージシステム及びストレージシステムにおけるデータ複製方法
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
CN112559386B (zh) * 2020-12-22 2024-06-18 深圳忆联信息系统有限公司 提升ssd性能的方法、装置、计算机设备及存储介质
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US12067282B2 (en) 2020-12-31 2024-08-20 Pure Storage, Inc. Write path selection
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US12061814B2 (en) 2021-01-25 2024-08-13 Pure Storage, Inc. Using data similarity to select segments for garbage collection
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US12099742B2 (en) 2021-03-15 2024-09-24 Pure Storage, Inc. Utilizing programming page size granularity to optimize data segment storage in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN113254265B (zh) * 2021-05-10 2023-03-14 苏州库瀚信息科技有限公司 基于固态硬盘的快照实现方法、存储系统
CN113377579B (zh) * 2021-06-23 2024-05-07 厦门市美亚柏科信息股份有限公司 一种基于映射表的固态硬盘数据恢复方法和系统
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
US12105700B2 (en) 2023-02-07 2024-10-01 International Business Machines Corporation Facilitating concurrent execution of database snapshot requests

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038639A (en) * 1997-09-09 2000-03-14 Storage Technology Corporation Data file storage management system for snapshot copy operations
US6959313B2 (en) 2003-07-08 2005-10-25 Pillar Data Systems, Inc. Snapshots of file systems in data storage systems
US7577807B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Methods and devices for restoring a portion of a data store
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8151060B2 (en) 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
US7949692B2 (en) * 2007-08-21 2011-05-24 Emc Corporation Systems and methods for portals into snapshot data
US7882068B2 (en) * 2007-08-21 2011-02-01 Isilon Systems, Inc. Systems and methods for adaptive copy on write

Also Published As

Publication number Publication date
WO2010071662A1 (en) 2010-06-24
EP2359252A4 (en) 2013-02-27
US20100153620A1 (en) 2010-06-17
TW201024994A (en) 2010-07-01
EP2359252B1 (en) 2015-08-12
US8200922B2 (en) 2012-06-12
EP2359252A1 (en) 2011-08-24
CN102239480A (zh) 2011-11-09
JP2012512482A (ja) 2012-05-31

Similar Documents

Publication Publication Date Title
US8200922B2 (en) Storage system snapshot assisted by SSD technology
US11042437B2 (en) Metadata hardening and parity accumulation for log-structured arrays
US10776153B2 (en) Information processing device and system capable of preventing loss of user data
US8130554B1 (en) Securely erasing flash-based memory
US9923562B1 (en) Data storage device state detection on power loss
CN112416242B (zh) 数据存储设备及其操作方法
KR102580123B1 (ko) Raid 스토리지 장치 및 그것의 관리 방법
US7774540B2 (en) Storage system and method for opportunistic write-verify
US10621051B2 (en) Logical to physical table restoration from stored journal entries
JP5649742B2 (ja) トランザクションログの復元
JP5585919B2 (ja) 電源遮断管理
KR20190060528A (ko) 데이터 관리 방법 및 이를 수행하는 저장 장치
TWI531963B (zh) Data storage systems and their specific instruction enforcement methods
WO2013160972A1 (en) Storage system and storage apparatus
WO2011055407A1 (en) Flash memory module
US20150095696A1 (en) Second-level raid cache splicing
US10521148B2 (en) Data storage device backup
US11036427B2 (en) Using content addressable memory to perform read-modify-write operations in non-volatile random access memory (NVRAM)
US8938641B2 (en) Method and apparatus for synchronizing storage volumes
US11119855B2 (en) Selectively storing parity data in different types of memory
WO2024108349A1 (zh) 存储系统和存储系统的操作方法

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E601 Decision to refuse application