KR102275094B1 - 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스 - Google Patents

저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스 Download PDF

Info

Publication number
KR102275094B1
KR102275094B1 KR1020197010643A KR20197010643A KR102275094B1 KR 102275094 B1 KR102275094 B1 KR 102275094B1 KR 1020197010643 A KR1020197010643 A KR 1020197010643A KR 20197010643 A KR20197010643 A KR 20197010643A KR 102275094 B1 KR102275094 B1 KR 102275094B1
Authority
KR
South Korea
Prior art keywords
host machine
data
erases
hard drives
host
Prior art date
Application number
KR1020197010643A
Other languages
English (en)
Other versions
KR20190052083A (ko
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 KR20190052083A publication Critical patent/KR20190052083A/ko
Application granted granted Critical
Publication of KR102275094B1 publication Critical patent/KR102275094B1/ko

Links

Images

Classifications

    • 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/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • 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/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage 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/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/0688Non-volatile semiconductor memory arrays

Abstract

저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법이 제공되고, 방법은 적어도 2개의 물리적 저장부를 통해 기입 제어를 수행하기 위한 중앙 제어 기능 모듈에 적용된다. 방법은 소거되는 각각의 물리적 저장부 내 모든 블록의 총 축적된 횟수를 획득하는 단계(310); 및 미리 결정된 기입 조건을 충족시키는 물리적 저장부 중, 적어도 하나의 물리적 저장부에 저장된 데이터를 기입하는 단계(동일한 총 축적된 횟수가 가장 작은 소거된 횟수임)(320)를 포함한다. 기술적 해결책에 의해, 상이한 물리적 저장부 간의 균형적 소거 및 기입은 단일의 물리적 저장부가 사전에 손상된 경우에, 물리적 저장부가 복수 회의 소거 및 기입되는 것이 방지되기 때문에 실현되고, 그리고 고가용성인 경우 물리적 저장부가 위치되는 시스템의 안정성은 개선될 수 있다.

Description

저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스
본 출원은 컴퓨터 및 네트워크 기술의 분야, 구체적으로, 저장용 데이터를 플래시 메모리-기반 저장 매체에 기입하기 위한 방법 및 디바이스에 관한 것이다.
저장 매체로서 플래시 메모리를 사용하고 그리고 전자식 판독/기입을 채택하는 솔리드 스테이트 드라이브(Solid State Drive: SSD)는 우수한 판독/기입 성능을 갖고 그리고 개인용 컴퓨터와 서버를 위한 저장의 주류 하드웨어가 되어왔다. SSD의 저장 매체는 NAND 플래시 셀이고, NAND 플래시 셀의 각각의 비트는 비트의 값이 트랜지스터를 충전함으로써 1로부터 0으로 변화될 수 있는 반면에, 그 값이 오직 소거를 통해 0으로부터 1로 재설정될 수 있는 물리적 특성을 갖는다. 소거 작동은 블록 단위로 수행된다.
NAND 플래시 셀의 수명은 셀 상의 복수의 소거와 기입에 의해 측정된다. 블록이 이 횟수의 소거와 기입에 도달할 때, 데이터를 저장하기 위해 블록을 사용하는 것이 불가능하고, 그리고 블록은 부적절한 블록이 된다. 부적절한 블록의 수가 증가됨에 따라, SSD의 사용 수명은 급격히 감소된다.
따라서, 플래시 변환 계층(Flash Translation Level: FTL)의 균형적 소거 및 기입 알고리즘 또는 균형적 소거 및 기입 기능을 가진 파일 시스템 계층이 개별적인 SSD의 사용 수명을 연장시키기 위해서 동일한 SSD 상에서 모든 블록에 대한 균형적 소거 및 기입을 가능한 한 많이 달성하도록 현재의 기술에서 사용된다. 예는 FTL 계층의 동적 균형적 전략, FTL 계층의 정적 균형적 전략, 저널링 플래시 파일 시스템 버전 2(Journaling Flash File System Version 2: JAFF2), 여전히 또 다른 플래시 파일 시스템(Yet Another Flash File System: YAFFS) 등을 포함한다.
그러나, 복수의 SSD가 이용 가능한 시스템에 대해, 하나 이상의 SSD는 하나 이상의 다른 SSD 상에서의 소거 및 기입보다 훨씬 더 많은, 매우 많은 수의 소거 및 기입을 종종 겪을 수 있다. 그 결과, 과도하게 사용된 SSD는 조기에 손상된다. 고가용성 해결책이 SSD에 저장된 데이터에 적용되지 않는다면, 데이터 손실의 발생이 가능하고; 고가용성 저장 해결책을 채택하는 시스템에 대해, 시스템 안정성은 부가적인 데이터 이송에 기인하여 약화될 것이다.
이것을 고려하여, 본 출원은 저장용 데이터를 플래시 메모리-기반 저장 매체에 기입하기 위한 방법을 제공하고, 방법은 적어도 2개의 물리적 저장부를 통해 기입 제어를 수행하기 위한 중앙 제어 기능 모듈에 적용되고, 그리고 방법은,
물리적 저장부의 각각 내 모든 블록의 총 누적된 소거 수를 획득하는 단계; 및
저장용 데이터를 미리 설정된 기입 조건을 충족시키는 물리적 저장부 중 가장 낮은 총 누적된 소거 수를 가진 적어도 하나의 물리적 저장부에 기입하는 단계를 포함한다.
본 출원은 저장용 데이터를 플래시 메모리-기반 저장 매체에 기입하기 위한 디바이스를 더 제공하고, 디바이스는 적어도 2개의 물리적 저장부를 통해 기입 제어를 수행하기 위한 중앙 제어 기능 모듈에 적용되고, 그리고 디바이스는,
물리적 저장부의 각각 내 모든 블록의 총 누적된 소거 수를 획득하도록 구성된 총-누적된-소거-수 부재(total-cumulative-erasing-count member); 및
저장용 데이터를 미리 설정된 기입 조건을 충족시키는 물리적 저장부 중 가장 낮은 총 누적된 소거 수를 가진 적어도 하나의 물리적 저장부에 기입하도록 구성된 물리적-저장-장치 부재(physical-storage-unit member)를 포함한다.
위의 기술적 해결책으로부터 본 출원의 실시형태에서, 중앙 제어 기능 모듈이 각각의 물리적 저장부 내 모든 블록의 총 누적된 소거 수에 기초하여, 저장용 데이터를 기입하기 위한 미리 설정된 기입 조건을 충족시키는 물리적 저장부로부터 가장 낮은 총 누적된 소거 수를 가진 물리적 저장부를 선택하여, 상이한 물리적 저장부 간의 균형적 소거 및 기입을 달성하고, 물리적 저장부의 복수회의 소거 및 기입에 기인한 단일의 물리적 저장부에 대한 조기 손상을 방지하고, 비-고가용성 시나리오에서 데이터 손실의 가능성을 낮추고, 그리고 고가용성 시나리오에서 물리적 저장부가 위치되는 시스템의 안정성을 개선시키는 것을 알 수 있다.
도 1은 본 출원의 일부 실시형태에 따른, 제1 적용예에서 호스트 머신(host machine)의 구성의 개략적인 구조도;
도 2는 본 출원의 일부 실시형태에 따른, 제2 적용예에서 클러스터의 구성의 개략적인 구조도;
도 3은 본 출원의 실시형태 I에 따른, 저장용 데이터를 기입하기 위한 방법의 흐름도;
도 4는 본 출원의 실시형태 II에 따른, 저장용 데이터를 클러스터에 기입하기 위한 방법의 흐름도;
도 5는 본 출원의 일부 실시형태에 따른, 디바이스의 하드웨어 구조도;
도 6은 본 출원의 일부 실시형태에 따른, 저장용 데이터를 기입하기 위한 디바이스의 논리 구조도;
도 7은 본 출원의 일부 실시형태에 따른, 클러스터의 논리 구조도.
본 출원의 실시형태는 저장용 데이터를 플래시 메모리-기반 저장 매체에 기입하기 위한 새로운 방법을 제공하고, 방법은 각각의 물리적 저장부 내 모든 블록의 총 누적된 소거 수의 통계적 데이터에 기초하여, 저장용 데이터의 기입을 위한 미리 설정된 기입 조건을 충족시키는 물리적 저장부로부터 가장 낮은 총 누적된 소거 수를 가진 하나 이상의 물리적 저장부를 선택하여, 상이한 물리적 저장부 간의 균형적 소거 및 기입을 달성해서 상이한 물리적 저장부의 사용 수명이 서로 더 비슷해지고, 이는 단일의 물리적 저장부에 대한 조기 손상의 결과로서 데이터 손실의 가능성 또는 시스템 안정성에 관한 영향의 가능성을 낮추고 따라서 현재 기술의 문제점을 해결한다.
본 출원의 실시형태에서, 2개 이상의 물리적 저장부는 기입 제어를 위한 중앙 제어 기능 모듈에 의해 제어되고, 즉, 중앙 제어 기능 모듈은 어떤 물리적 저장부(들)가 저장용 데이터를 기입할지를 결정한다. 여기서, 물리적 저장부는 다른 물리적 저장부로부터 물리적으로 독립되고 그리고 플래시 메모리-기반 저장 매체를 사용하는 개체이다. 물리적 저장부는 독립형 플래시 메모리-기반 물리적 저장 컴포넌트(예를 들어, 플래시 칩, 하드 드라이브 등)일 수 있고, 호스트 머신은 적어도 하나의 독립형 플래시 메모리-기반 물리적 저장 컴포넌트(예를 들어, 디스크 어레이 캐비넷, 개인용 컴퓨터, 서버) 등을 포함하고; 중앙 제어 기능 모듈은 소프트웨어에 의해 또는 소프트웨어와 하드웨어의 조합에 의해 구현되고, 물리적 저장부에서 실행될 수 있거나 또는 중앙 제어 기능 모듈에 의해 제어되는 모든 물리적 저장부로부터 독립된 또 다른 호스트 머신에서 실행될 수 있다.
도 1은 본 출원의 일부 실시형태에 따른, 적용 시나리오의 실시예를 예시하고, 복수의 하드 드라이브(본 적용 시나리오에서 물리적 저장부)를 가진 호스트 머신이 설치되고, 그리고 저장 제어 모듈(본 적용 시나리오에서 중앙 제어 기능 모듈)은 어느 하드 드라이브에 어떤 데이터를 저장하는 결정을 포함하여, 모든 하드 드라이브에서 판독/기입 제어를 수행하기 위해 호스트 머신에서 실행된다.
도 2는 본 출원의 일부 실시형태에 따른, 적용 시나리오의 또 다른 실시예를 예시하고, 복수의 호스트 머신(본 적용 시나리오에서 물리적 저장부)에 의해 형성된 클러스터 내 하나의 호스트 머신은 주요 제어 노드이고, 반면에 다른 호스트 머신은 작업 노드이다. 클러스터 제어 모듈(본 적용 시나리오에서 중앙 제어 기능 모듈)은 호스트 머신의 수에 대해 데이터 저장에 관한 할당 및 관리를 수행하도록 주요 제어 노드에서 실행된다. 결함이 주요 제어 노드로서 기능하는 호스트 머신에서 발생할 때, 또 다른 호스트 머신은 클러스터의 작동을 계속하도록 주요 제어 노드로 업그레이될 수 있다.
본 출원의 일부 실시형태에 따른, 적용에서 중앙 제어 기능 모듈은 산출 및 저장할 수 있는 임의의 디바이스, 예를 들어, 태블릿 컴퓨터, PC(개인용 컴퓨터), 랩탑 컴퓨터 및 서버에서 실행될 수 있다.
본 출원의 실시형태 I에서, 저장용 데이터를 기입하기 위한 방법의 과정이 도 3에 도시된다.
단계(310), 각각의 물리적 저장부 내 모든 블록의 총 누적된 소거 수를 획득.
블록은 데이터 저장에서 저장 공간 할당의 가장 작은 단위이다. 블록이 할당될 때, 블록의 공간을 획득하는 애플리케이션(또는 스레드, 과정 등)이 데이터를 기입하기 위해 블록을 사용할 수 있도록 소거 작동이 블록에서 수행될 것이다. 따라서, 블록이 할당되는 수는 블록이 소거되는 누적된 수이다.
물리적으로 독립형 저장 컴포넌트(예를 들어, 하드 드라이브, 플래시 칩 등)에 대해, 블록 분할은 일반적으로 저장 컴포넌트가 초기화될 때 수행된다. 예로써 하드 드라이브에 대해, 대부분의 파일 시스템에서, 관리자는 하드 드라이브를 초기화할 때 블록의 크기를 지정할 수 있다. 하드 드라이브가 위치되는 호스트 머신의 저장 제어 모듈이 하드 드라이브의 저장 관리를 수행한다고 가정하면, 저장 제어 모듈이 하드 드라이브에서 모든 블록 간의 고유의 블록 식별자를 사용할 수 있어서 하드 드라이브에 각각의 블록을 나타내고 그리고 하드 드라이브의 각각의 블록 식별자와 누적된 소거 수 간의 대응 관계를 유지한다. 블록의 블록 식별자의 누적된 소거 수는 블록이 할당될 때마다 1만큼 증분되고; 하드 드라이브가 적용 시나리오에서 물리적 저장부로서 기능할 때, 모든 블록의 누적된 소거 수는 하드 드라이브의 총 누적된 수를 획득하도록 추가될 수 있다. 대안적으로, 저장 제어 모듈은 또한 하드 드라이브의 상위 블록 내 모든 블록의 총 누적된 소거 수를 유지할 수 있다. 총 누적된 소거 수는 블록이 할당될 때마다 할당된 블록의 수만큼 증분되고; 즉, 총 누적된 소거 수는 블록이 할당될 때마다 1만큼 증분된다. 위에서 설명된 방식으로, 물리적으로 독립형 저장 컴포넌트의 모든 블록의 총 누적된 소거 수가 획득될 수 있다.
물리적 저장부가 적어도 하나의 독립형 물리적 저장 컴포넌트를 포함하는 호스트 머신인 경우에, 각각의 호스트 머신의 저장 제어 모듈은 저장 제어 모듈에 의해 제어된 물리적 저장 컴포넌트의 총 누적된 소거 수를 셀 수 있고 그리고 총 누적된 소거 수를 중앙 제어 기능 모듈에 보고할 수 있다. 예시적인 보고 방식은 적용 시나리오의 구현예에 따라 결정될 수 있다. 예를 들어, 모든 호스트 머신이 클러스터를 형성한다고 가정하면, 클러스터의 클러스터 제어 모듈은 적용 시나리오에서 중앙 제어 기능 모듈이다. 각각의 호스트 머신은 미리 설정된 기간에 호스트 머신의 모든 블록의 총 누적된 소거 수를 클러스터 제어 모듈에 사전에 보고할 수 있고; 대안적으로, 클러스터 제어 모듈은 모든 블록의 총 누적된 소거 수에 대해 미리 설정된 기간에 모든 호스트 머신을 폴링(poll)할 수 있고, 그리고 이어서 클러스터 제어 모듈은 미리 설정된 기간에 각각의 호스트 머신의 모든 블록의 총 누적된 소거 수를 수신할 수 있다.
단계(320), 저장용 데이터를 미리 설정된 기입 조건을 충족시키는 물리적 저장부 중 가장 낮은 총 누적된 소거 수를 가진 적어도 하나의 물리적 저장부에 기입.
저장용 데이터가 N개(N은 자연수)의 물리적 저장부에 기입되어야 한다고 가정하면, 하나 이상의 조건은 현재 기술에서 저장용 데이터를 기입하기 위해 사용될 수 있는 2개 이상의 물리적 저장부가 있을 때 어떤 물리적 저장부(들)가 저장용 데이터를 기입하는지를 결정하도록 사용된다. 예를 들어, 충족될 조건은 일반적으로 남은 저장 공간이 기입될 저장용 데이터를 수용하기에 충분하다는 것을 포함한다. 본 출원의 일부 실시형태에서, 미리 설정된 기입 조건은 위의 조건(들) 중 하나 이상의 허용 가능한 범위에 따라 생성될 수 있고, 이는 2개의 실시예로 아래에 설명될 것이다:
제1 실시예에서, 복수의 하드 드라이브 중에서, 가장 큰 남은 저장 공간을 가진 N개의 하드 드라이브가 저장용 데이터를 기입하기 위한 하드 드라이브로서 사용된다. 그래서 본 출원의 일부 실시형태에서, 미리 설정된 기입 조건은 남은 저장 공간이 미리 설정된 값보다 더 작지 않거나 또는 하드 드라이브 용량의 미리 설정된 백분율보다 더 낮지 않은 것일 수 있다.
제2 실시예에서, 복수의 호스트 머신 중에서, 기입될 저장용 데이터를 수용하기에 충분한 남은 저장 공간을 갖고 그리고 호스트 머신에 이미 저장된 데이터로의 가장 낮은 수의 액세스를 가진 N개의 호스트 머신이 선택된다. 그래서 본 출원의 일부 실시형태에서, 미리 설정된 기입 조건은 남은 저장 공간이 기입될 저장용 데이터를 수용하기에 충분하고 그리고 호스트 머신에 이미 저장된 데이터로의 액세스의 수가 문턱값을 초과하지 않는 것일 수 있다.
물리적 저장부에 기입될 저장용 데이터는 파일을 저장할 때 기입될 저장용 데이터일 수 있거나 또는 파일을 이송할 때 기입될 저장용 데이터일 수 있다. 중앙 제어 기능 모듈에 대해, 파일을 저장할 때 기입될 저장용 데이터는 일반적으로 새롭게 추가된 저장용 데이터이고, 반면에 파일을 이송할 때 기입될 저장용 데이터는 이미 저장된 저장용 데이터의 유지를 의미한다. 적용 시나리오의 예시적인 구현예에 따르면, 파일을 저장할 때 기입될 저장용 데이터의 하나의 복사본이 있을 수도 있거나 또는 파일을 저장할 때 기입될 저장용 데이터의 2개 이상의 복사본이 있을 수도 있고, 어느 경우든 일반적으로 각각의 복사본을 상이한 물리적 저장부에 기입하는 것이 필요하다. 파일 이송은 2가지 경우를 포함한다. 하나의 경우에서, 파일을 저장하는 물리적 저장부가 교체되고, 즉, 저장된 파일이 새로운 물리적 저장부에 기입되고 그리고 원래 파일을 저장한 물리적 저장부로부터 삭제되고; 적용 시나리오가 파일의 2개 초과의 복사본을 저장하는 또 다른 경우에서, 파일 중 하나가 손상되거나 또는 파일 중 어느 하나가 위치되는 물리적 저장부가 고장 났을 때, 보통 전체 시스템의 고가용성의 필요조건을 충족시키도록 기능하는 물리적 저장부에 파일의 복사본을 만드는 것이 필요하다. 파일 이송 동안, 미리 설정된 기입 조건은 파일의 복사본을 이미 저장한 물리적 저장부 및/또는 고장난 물리적 저장부를 배제하도록 사용될 수 있다. 따라서, 1개 초과의 물리적 저장부가 파일 저장 또는 파일 이송 동안 저장용 데이터의 기입을 위해 필요하다는 것이 가능하다.
따라서, 각각의 물리적 저장부에 대한 모든 블록의 총 누적된 소거 수를 획득한 후, 중앙 제어 기능 모듈은 미리 설정된 기입 조건에 따라, 저장용 데이터의 기입 작동이 필요할 때 선택을 위해 이용 가능한 복수의 물리적 저장부를 결정하고, 그리고 물리적 저장부로부터, 저장용 데이터의 기입을 위해 가장 낮은 총 누적된 소거 수를 가진 N개(N은 자연수임)의 물리적 저장부를 선택한다. 이와 같이, 균형적 소거 및 기입이 상이한 물리적 저장부 간에 달성될 수 있다.
본 출원의 실시형태에서, 저장용 데이터를 기입할 때 물리적 저장부 간의 균형적 소거 및 기입을 수행하는 것에 더하여, 중앙 제어 기능 모듈은 또한 물리적 저장부의 사용의 균형을 유지하도록, 물리적 저장부 간에 소거 및 기입의 상당한 차이가 있을 때 사전에 파일 이송을 수행할 수 있다. 예를 들어, 중앙 제어 기능 모듈은 각각의 물리적 저장부의 소거 및 기입을 모니터링할 수 있다. 2개의 물리적 저장부의 총 누적된 소거 수 간의 차이가 미리 설정된 편차 범위를 초과할 때, 저장용 데이터는 더 높은 총 누적된 소거 수를 가진 2개의 물리적 저장부 중 하나로부터 더 낮은 총 누적된 소거 수를 가진 물리적 저장부로 이송된다.
미리 설정된 편차 범위는 예시적인 적용 시나리오에서 저장용 파일의 크기 및 균형적 소거 및 기입을 위한 필요조건과 같은 요인에 따라 결정될 수 있다. 적용 시나리오에서, 미리 설정된 편차 범위는 모든 물리적 저장부의 총 누적된 소거 수의 평균에 기초하여 결정될 수 있다. 예를 들어, 평균의 20%가 미리 설정된 편차 범위로서 사용될 수 있다.
따라서, 본 출원의 실시형태 I에서, 중앙 제어 기능 모듈은 각각의 물리적 저장부 내 모든 블록의 총 누적된 소거 수의 통계적 데이터에 기초하여, 저장용 데이터의 기입을 위한 미리 설정된 기입 조건을 충족시키는 물리적 저장부로부터 가장 낮은 총 누적된 소거 수를 가진 물리적 저장부를 선택하여, 상이한 물리적 저장부 간의 균형적 소거 및 기입을 달성하고 그리고 물리적 저장부의 매우 많은 횟수의 소거 및 기입에 기인한 단일의 물리적 저장부에 대한 조기 손상을 방지해서, 상이한 물리적 저장부의 사용 수명이 서로 더 비슷해지고, 이는 비-고가용성 시나리오에서 데이터 손실의 가능성을 낮출 수 있고, 그리고 고가용성 시나리오에서 물리적 저장부가 위치되는 시스템의 안정성을 개선시킬 수 있다.
적어도 일부 호스트 머신이 복수의 호스트 머신으로 이루어진 클러스터 내 2개 초과의 하드 드라이브 또는 다른 독립형 물리적 저장 컴포넌트를 갖는다면, 본 출원의 실시형태는 클러스터 레벨 및 호스트 머신 레벨, 각각에 적용될 수 있다는 것에 유의해야 한다. 즉, 상이한 호스트 머신 간의 균형적 소거 및 기입은 클러스터 레벨에서 달성되고, 그리고 단일의 호스트 머신의 상이한 하드 드라이브 또는 다른 물리적 저장 컴포넌트 간의 균형적 소거 및 기입은 호스트 머신 레벨에서 달성된다. 또한, 현재 기술에서 FTL 균형적 소거 및 기입 알고리즘 또는 균형적 소거 및 기입 기능을 가진 파일 시스템 계층이 단일의 호스트 머신 또는 다른 물리적 저장 컴포넌트에서 사용될 수 있어서 물리적 저장 컴포넌트의 레벨에서 균형적 소거 및 기입을 달성하여, 전체 클러스터 시스템의 모든 레벨에서 균형적 소거 및 기입을 달성하고, 클러스터 시스템 내 저장 디바이스의 사용 수명을 연장시키고, 그리고 또한 클러스터 시스템의 안정성을 개선시킨다.
본 출원의 실시형태 II에서, 저장용 데이터를 클러스터에 기입하기 위한 방법의 흐름도가 도 4에 도시된다. 이 실시형태에서 클러스터는 적어도 2개의 호스트 머신을 포함하고, 그리고 호스트 머신은 클러스터 제어 모듈에 의해 저장 관리되기 쉽고; 각각의 호스트 머신은 저장 매체로서 플래시 메모리를 사용하는 적어도 2개의 하드 드라이브를 포함하고, 그리고 각각의 호스트 머신의 저장 제어 모듈은 호스트 머신의 하드 드라이브에서 저장 관리를 수행한다. 실시형태 II는 2개의 레벨(클러스터 레벨 및 호스트 머신 레벨)에서 실시형태 I의 동시 적용의 예시적인 구현예를 제공하고, 그리고 실시형태 I의 설명은 모든 단계의 상세한 설명을 위해 참조될 수 있고, 이는 반복되지 않을 것이다.
단계(410), 클러스터 제어 모듈이 각각의 호스트 머신의 모든 블록의 총 누적된 소거 수를 획득.
단계(420), 각각의 호스트 머신의 저장 제어 모듈이 호스트 머신의 각각의 하드 드라이브의 총 누적된 소거 수를 각각 획득.
단계(430), 클러스터 제어기가 타깃 호스트 머신으로서 미리 설정된 호스트 머신 기입 조건을 충족시키는 호스트 머신으로부터 가장 낮은 호스트 머신의 총 누적된 소거 수를 가진 적어도 하나의 호스트 머신을 선택.
클러스터가 기입될 저장용 데이터, 예를 들어, 파일 이송 및/또는 파일 저장 동안 기입될 저장용 데이터를 가질 때, 저장용 데이터가 N개의 호스트 머신에 기입되어야 한다고 가정하면, 클러스터 제어기는 타깃 호스트 머신, 즉, 기입될 저장 요구용 데이터가 기입될 호스트 머신으로서 미리 설정된 호스트 머신 기입 조건을 충족시키는 호스트 머신으로부터 가장 낮은 호스트 머신의 총 누적된 소거 수를 가진 적어도 N개의 호스트 머신을 선택한다.
단계(440), 각각의 타깃 호스트 머신에서, 호스트 머신의 저장 제어기가 저장용 데이터를 미리 설정된 하드 드라이브 기입 조건을 충족시키고 그리고 가장 낮은 하드 드라이브의 총 누적된 소거 수를 가진 적어도 하나의 하드 드라이브에 기입.
호스트 머신이 타깃 호스트 머신으로서 선택될 때, 저장용 데이터가 호스트 머신의 M개(M은 자연수임)의 하드 드라이브에 기입되어야 한다고 가정하면, 호스트 머신의 저장 제어기는 타깃 하드 드라이브로서 미리 설정된 하드 드라이브 기입 조건을 충족시키는 하드 드라이브로부터 가장 낮은 하드 드라이브의 총 누적된 소거 수를 가진 M개의 하드 드라이브를 선택하고, 그리고 저장용 데이터를 타깃 하드 드라이브에 기입한다.
클러스터 제어기는 호스트 머신의 총 누적된 소거 수 간의 차이를 모니터링할 수 있다. 2개의 호스트 머신의 총 누적된 소거 수 간의 차이가 미리 설정된 호스트 머신 편차 범위를 초과할 때, 클러스터 제어기는 저장용 데이터를 더 높은 총 누적된 소거 수를 가진 2개의 호스트 머신 중 하나로부터 더 낮은 총 누적된 소거 수를 가진 호스트 머신으로 이송한다. 저장용 이송된 데이터가 기입될 호스트 머신에 관하여, 호스트 머신의 저장 제어기는 데이터를 미리 설정된 하드 드라이브 기입 조건을 충족시키고 그리고 가장 낮은 하드 드라이브의 총 누적된 소거 수를 가진 하드 드라이브에 기입할 수 있다.
각각의 호스트 머신의 저장 제어기는 호스트 머신의 하드 드라이브의 총 누적된 소거 수 간의 차이를 모니터링할 수 있다. 호스트 머신의 2개의 하드 드라이브의 총 누적된 소거 수 간의 차이가 미리 설정된 하드 드라이브 편차 범위를 초과할 때, 호스트 머신의 저장 제어기는 저장용 데이터를 더 높은 총 누적된 소거 수를 가진 2개의 하드 드라이브 중 하나로부터 더 낮은 총 누적된 소거 수를 가진 하드 드라이브로 이송할 수 있다.
따라서, 실시형태 I의 방법을 (호스트 머신 간의) 클러스터 레벨 및 (각각의 호스트 머신의 하드 드라이브 간의) 호스트 머신 레벨에 각각 적용함으로써, 본 출원의 실시형태 II는 전체 클러스터 시스템 내 모든 물리적 저장 컴포넌트에 대한 균형적 소거 및 기입을 달성하고, 클러스터 시스템 내 저장 디바이스의 사용 수명을 연장시키고, 그리고 또한 클러스터 시스템의 안정성을 개선시킨다.
본 출원의 적용예에서, 고가용성 클러스터 시스템은 K개(K는 3보다 더 큰 자연수임)의 호스트 머신을 포함하고, 각각의 호스트 머신은 저장 매체로서 플래시 메모리를 사용하는 적어도 3개의 하드 드라이브를 포함한다. 클러스터에 저장된 각각의 파일의 하나의 복사본은 3개의 상이한 호스트 머신에 각각 저장되어야 한다. 클러스터의 클러스터 제어기는 클러스터의 주요 제어 노드(호스트 머신 중 하나)에서 실행되고 그리고 어느 3개의 호스트 머신이 파일을 저장하는지를 제어하도록 사용되고; 저장 제어기는 각각의 호스트 머신에서 실행되고 그리고 어느 하드 드라이브가 파일을 저장하는지를 제어하도록 사용된다.
각각의 호스트 머신에서, 저장 제어기는 각각의 하드 드라이브의 상위 블록에서, 하드 드라이브의 각각의 블록에 대한 누적된 소거 수(블록_마모_수) 및 하드 드라이브의 모든 블록에 대한 총 누적된 소거 수(디스크_마모_수)를 유지한다. 하드 드라이브의 블록이 할당될 때, 블록의 블록 식별자(블록_num)에 대응하는 누적된 소거 수(블록_마모_수)는 1만큼 증분되고, 그리고 하드 드라이브의 모든 블록에 대한 총 누적된 소거 수(디스크_마모_수)는 1만큼 증분된다.
또한, 저장 제어기는 호스트 머신의 모든 블록에 대한 총 누적된 소거 수(서버_마모_수)를 유지하고, 그리고 서버_마모_수는 호스트 머신의 모든 하드 드라이브의 디스크_마모_수의 합과 같다. 클러스터 내 각각의 작업 노드는 심박동 신호를 주요 제어 노드로 주기적으로 전송해야 하고, 그리고 작업 노드가 위치되는 호스트 머신의 서버_마모_수는 클러스터 제어기에 주기적인 심박동 신호로 보고될 수 있다. 주요 제어 노드의 저장 제어기는 또한 주요 제어 노드가 위치되는 호스트 머신의 서버_마모_수를 클러스터 제어기에 심박동 신호의 기간과 동일한 기간으로 보고할 수 있다.
새로운 파일이 클러스터에 기입될 때, 클러스터 제어기는 K개의 호스트 머신으로부터 미리 설정된 호스트 머신 기입 조건을 충족시키는 복수의 호스트 머신을 결정한다. 본 적용 실시예에서 새로운 파일을 기입하기 위한 미리 설정된 호스트 머신 기입 조건은 남은 저장 용량이 호스트 머신의 총 저장 용량의 15%를 초과하고 그리고 저장용 데이터에 대한 액세스의 수가 설정된 문턱값을 초과하지 않는 것이다. 새로운 파일을 기입하기 위한 미리 설정된 호스트 머신 기입 조건을 충족시키는 호스트 머신 중에서, 클러스터 제어기는 새로운 파일을 기입하기 위한 호스트 머신으로서 서버_마모_수의 가장 낮은 값을 가진 3개의 호스트 머신을 선택한다.
선택된 3개의 호스트 머신에서, 각각의 호스트 머신의 저장 제어기는 호스트 머신의 하드 드라이브로부터 미리 설정된 하드 드라이브 기입 조건을 충족시키는 복수의 하드 드라이브를 결정한다. 본 적용 실시예에서 미리 설정된 하드 드라이브 기입 조건은 남은 저장 용량이 하드 드라이브의 총 저장 용량의 10%를 초과하는 것이다. 하드 드라이브 기입 조건을 충족시키는 하드 드라이브 중에서, 저장 제어기는 새로운 파일을 기입하기 위한 가장 낮은 디스크_마모_수를 가진 하드 드라이브를 선택한다.
클러스터 내 호스트 머신 또는 호스트 머신의 하드 드라이브가 고장날 때, 클러스터 제어기는 호스트 머신 또는 하드 드라이브에 저장된 파일을 더 이상 사용할 수 없는 것으로 간주한다. 그 결과, 클러스터 내 이 파일의 저장된 복사본은 3개의 복사본보다 더 적다. 파일을 이송하기 위한 미리 설정된 호스트 머신 기입 조건이, 남은 저장 용량이 호스트 머신의 총 저장 용량의 15%를 초과하고, 저장용 데이터에 대한 액세스의 수가 설정된 문턱값을 초과하지 않고, 그리고 기입될 파일이 저장되지 않았다고 가정하면, 그러면 클러스터 제어기는 파일을 이송하기 위한 미리 설정된 호스트 머신 기입 조건을 충족시키는 호스트 머신으로부터, 이송된 파일을 기입하기 위한 호스트 머신으로서 가장 낮은 서버_마모_수를 가진 호스트 머신을 선택한다. 선택된 호스트 머신에서, 저장 제어기는 하드 드라이브 기입 조건을 충족시키는 하드 드라이브로부터, 이송된 파일을 기입하기 위한 가장 낮은 디스크_마모_수를 가진 하드 드라이브를 선택한다.
클러스터 제어기는 특정한 호스트 머신 모니터링 기간에 호스트 머신의 총 누적된 소거 수(서버_마모_수) 간의 차이를 모니터링한다. 클러스터 내 서버_마모_수의 최대값과 최소값 간의 차이가 모든 서버_마모_수의 평균의 20%를 초과한다면, 최대의 서버_마모_수를 가진 호스트 머신의 파일은, 클러스터 내 서버_마모_수의 최대값과 최소값 간의 차이가 모든 서버_마모_수의 평균의 20% 내에 있을 때까지, 최소의 서버_마모_수를 가진 호스트 머신으로 이송된다. 이송 파일의 선택은 현재 기술을 참조하여 구현될 수 있고, 이는 반복되지 않을 것이다.
각각의 호스트 머신에서, 저장 제어기는 특정한 하드 드라이브 모니터링 기간에 호스트 머신의 하드 드라이브의 총 누적된 소거 수(디스크_마모_수) 간의 차이를 모니터링한다. 호스트 머신의 디스크_마모_수의 최대값과 최소값 간의 차이가 모든 디스크_마모_수의 평균의 15%를 초과한다면, 최대의 디스크_마모_수를 가진 하드 드라이브의 파일은, 호스트 머신의 디스크_마모_수의 최대값과 최소값 간의 차이가 모든 디스크_마모_수의 평균의 15% 내에 있을 때까지, 최소의 디스크_마모_수를 가진 하드 드라이브로 이송된다. 이송 파일의 선택은 유사하게 현재 기술을 참조하여 구현될 수 있다.
위의 과정에 대응하여, 본 출원의 실시형태는 저장용 데이터를 기입하기 위한 디바이스를 더 제공한다. 디바이스는 소프트웨어, 하드웨어 또는 소프트웨어와 하드웨어의 조합에 의해 구현될 수 있다. 예로써 소프트웨어 구현예에 대해, 디바이스는 논리의 의미에서 디바이스가 실행용 메모리 내에 대응하는 컴퓨터 프로그램 명령어를 판독할 때 있는 장치의 중앙 처리 장치(Central Processing Unit: CPU)에 의해 형성된다. 하드웨어 관점에서, 도 5에 도시된 CPU, 메모리 및 비휘발성 메모리에 더하여, 저장용 데이터를 기입하기 위한 디바이스가 일반적으로 있는 장치는 무선 신호 수신 및 전송을 위한 칩과 같은 다른 하드웨어 및/또는 네트워크 통신 기능을 달성하기 위한 보드와 같은 다른 하드웨어를 더 포함한다.
도 6은 본 출원의 일부 실시형태에 따른 저장용 데이터를 기입하기 위한 디바이스를 예시하고, 디바이스는 적어도 2개의 물리적 저장부를 통해 기입 제어를 수행하기 위한 중앙 제어 기능 모듈에 적용되고, 그리고 디바이스는 총-누적된-소거-수 부재 및 물리적-저장-장치 부재를 포함하고, 총-누적된-소거-수 부재는 각각의 물리적 저장부 내 모든 블록의 총 누적된 소거 수를 획득하도록 구성되고; 그리고 물리적-저장-장치 부재는 저장용 데이터를 미리 설정된 기입 조건을 충족시키는 물리적 저장부 중 가장 낮은 총 누적된 소거 수를 가진 적어도 하나의 물리적 저장부에 기입하도록 구성된다.
일부 실시예에서, 디바이스는 2개의 물리적 저장부의 총 누적된 소거 수 간의 차이가 미리 설정된 편차 범위를 초과할 때, 저장용 데이터를 더 높은 총 누적된 소거 수를 가진 2개의 물리적 저장부 중 하나로부터 더 낮은 총 누적된 소거 수를 가진 물리적 저장부로 이송하도록 구성된 편차-이송 부재를 더 포함한다.
실시예에서, 미리 설정된 편차 범위는 모든 물리적 저장부의 총 누적된 소거 수의 평균에 기초하여 결정될 수 있다.
임의로, 저장용 데이터는 파일을 이송할 때 기입될 저장용 데이터 및/또는 파일을 저장할 때 기입될 저장용 데이터를 포함한다.
임의로, 물리적 저장부는 호스트 머신을 포함하고; 중앙 제어 기능 모듈은 모든 호스트 머신을 포함하는 클러스터의 클러스터 제어 모듈을 포함하고; 그리고 총-누적된-소거-수 부재는 미리 설정된 기간에 각각의 호스트 머신에 의해 보고된 총 누적된 소거 수를 수신하도록 구성된다.
임의로, 물리적 저장부는 하드 드라이브를 포함하고; 중앙 제어 기능 모듈은 호스트 머신의 저장 제어 모듈을 포함하고; 그리고 총-누적된-소거-수 부재는 각각의 하드 드라이브의 상위 블록에서 유지된 총 누적된 소거 수를 판독하도록 구성되고, 총 누적된 소거 수는 하드 드라이브의 각각의 블록이 할당된 후 1만큼 증분된다.
도 7은 본 출원의 일부 실시형태에 따른, 클러스터를 예시한다. 클러스터는 적어도 2개의 호스트 머신을 포함하고, 그리고 각각의 호스트 머신은 저장 매체로서 플래시 메모리를 사용하는 적어도 2개의 하드 드라이브를 포함한다. 클러스터는 클러스터 제어 모듈 및 각각의 호스트 머신의 저장 제어 모듈을 더 포함하고, 클러스터 제어 모듈은 각각의 호스트 머신의 모든 블록의 총 누적된 소거 수를 획득하고, 그리고 저장용 기입 데이터가 필요할 때, 타깃 호스트 머신으로서 미리 설정된 호스트 머신 기입 조건을 충족시키는 호스트 머신으로부터 가장 낮은 호스트 머신의 총 누적된 소거 수를 가진 적어도 하나의 호스트 머신을 선택하도록 구성되고; 각각의 호스트 머신의 저장 제어 모듈은 호스트 머신의 각각의 하드 드라이브의 총 누적된 소거 수를 획득하고, 그리고 호스트 머신이 타깃 호스트 머신으로서 선택될 때, 저장용 데이터를 미리 설정된 하드 드라이브 기입 조건을 충족시키고 그리고 가장 낮은 하드 드라이브의 총 누적된 소거 수를 가진 적어도 하나의 하드 드라이브에 기입하도록 구성된다.
임의로, 클러스터 제어 모듈은 2개의 호스트 머신의 총 누적된 소거 수 간의 차이가 미리 설정된 호스트 머신 편차 범위를 초과할 때, 저장용 데이터를 더 높은 총 누적된 소거 수를 가진 2개의 호스트 머신 중 하나로부터 더 낮은 총 누적된 소거 수를 가진 호스트 머신으로 이송하도록 더 구성되고; 각각의 호스트 머신의 저장 제어 모듈은 호스트 머신의 2개의 하드 드라이브의 총 누적된 소거 수 간의 차이가 미리 설정된 하드 드라이브 편차 범위를 초과할 때, 저장용 데이터를 더 높은 총 누적된 소거 수를 가진 2개의 하드 드라이브 중 하나로부터 더 낮은 총 누적된 소거 수를 가진 하드 드라이브로 이송하도록 더 구성된다.
임의로, 저장용 데이터는 파일을 이송할 때 기입될 저장용 데이터를 포함한다.
본 출원의 바람직한 실시형태만이 위에서 설명되고, 이는 본 출원을 제한하도록 사용되지 않는다. 본 출원의 정신 및 원리 내에서 행해진 임의의 변경, 등가 치환 또는 개선은 본 출원의 보호 범위에 포함될 것이다.
전형적인 구성에서, 산출 디바이스는 하나 이상의 프로세서(CPU), 입력/출력 인터페이스, 네트워크 인터페이스 및 메모리를 포함한다.
메모리는 컴퓨터 판독 가능한 매체, 예컨대, 휘발성 메모리, 랜덤 액세스 메모리(random access memory: RAM) 및/또는 비휘발성 메모리, 예를 들어, 판독-전용 메모리(read-only memory: ROM) 또는 플래시 RAM을 포함할 수도 있다. 메모리는 컴퓨터 판독 가능한 매체의 예이다.
컴퓨터 판독 가능한 매체는 임의의 방법 또는 기술을 통해 정보 저장을 구현할 수 있는, 영구적, 이동 및 부동 매체를 포함한다. 정보는 컴퓨터 판독 가능한 명령어, 데이터 구조, 프로그램의 모듈 또는 다른 데이터일 수도 있다. 컴퓨터의 저장 매체의 예는 상 변화 RAM(Phase-change RAM: PRAM), 정적 RAM(SRAM), 동적 RAM(DRAM), 다른 유형의 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 전기적으로 소거 가능한 프로그램 가능한 판독 전용 메모리(Electrically Erasable Programmable Read-Only Memory: EEPROM), 플래시 메모리 또는 다른 메모리 기술, 콤팩트 디스크 판독-전용 메모리(Compact Disk Read-Only Memory: CD-ROM), 디지털 다기능 디스크(Digital Versatile Disc: DVD) 또는 다른 광 메모리, 카세트, 카세트 및 디스크 메모리 또는 다른 자기 메모리 디바이스 또는 임의의 다른 비전송 매체를 포함하지만, 이들로 제한되지 않고, 이는 산출 디바이스에 액세스 가능한 정보를 저장하기 위해 사용될 수 있다. 본 명세서의 정의에 따르면, 컴퓨터 판독 가능한 매체는 일시적인 매체, 예컨대, 변조된 데이터 신호 및 캐리어를 포함하지 않는다.
용어 "포함" 또는 이들의 임의의 다른 변형이 배타적이지 않은 포함을 포함하도록 의도되어, 일련의 구성요소를 포함하는 과정, 방법, 상품 또는 디바이스가 이러한 구성요소를 포함할 뿐만 아니라 특별히 나열되지 않은 다른 구성요소를 포함하거나, 또는 이러한 과정, 방법, 상품 또는 디바이스에 고유한 구성요소를 더 포함한다는 것에 더 유의해야 한다. 추가의 제한이 없을 때, 표현 "~을 포함하는"에 의해 규정된 구성요소는 위의 구성요소를 포함하는 과정, 상품 또는 디바이스가 부가적인 동일한 구성요소를 더 포함한다는 것을 배제하지 않는다.
당업자는 본 출원의 실시형태가 방법, 시스템 또는 컴퓨터 프로그램 제품으로서 제공될 수도 있다는 것을 이해해야 한다. 따라서, 본 출원은 완전한 하드웨어 실시형태, 완전한 소프트웨어 실시형태, 또는 소프트웨어와 하드웨어를 조합한 실시형태로서 구현될 수도 있다. 또한, 본 출원은 내부에 컴퓨터 사용 가능한 프로그램 코드를 포함하는 하나 이상의 컴퓨터 사용 가능한 저장 매체(자기 디스크 메모리, CD-ROM, 및 광 메모리를 포함하지만 이들로 제한되지 않음)에 구현된 컴퓨터 프로그램 제품의 형태일 수도 있다.

Claims (18)

  1. 데이터를 복수의 호스트 머신(host machine)들의 클러스터에 기입하기 위한 방법으로서, 각 호스트 머신은 복수의 하드 드라이브들을 포함하고, 그리고 상기 방법은,
    상기 호스트 머신들의 각 호스트 머신 상의 상기 하드 드라이브들에 대한 복수의 소거 수를 획득하는 단계로서, 상기 하드 드라이브들의 각 하드 드라이브에 대한 상기 소거 수는 상기 하드 드라이브 상에서 수행된 소거 동작의 총 수와 같은 것인, 단계;
    상기 호스트 머신들의 각 호스트 머신에 대한 총 소거 수를 획득하는 단계로서, 상기 총 소거 수는 상기 호스트 머신 상의 상기 하드 드라이브들의 소거 수의 합과 같은 것인, 단계;
    상기 클러스터에 기입될 데이터를 획득하는 단계;
    상기 클러스터에 기입될 상기 데이터의 획득에 응답하여, 상기 데이터를 기입하는 것과 연관된 제1 조건을 충족하는 하나 이상의 호스트 머신을 식별하는 단계로서, 상기 제1 조건은,
    호스트 머신의 남은 저장 용량이 상기 호스트 머신의 총 저장 용량의 문턱 퍼센티지(threshold percentage)를 초과하는 것,
    호스트 머신에 이미 저장된 데이터로의 액세스의 수가 액세스 문턱값(access threshold)을 초과하지 않는 것, 그리고
    호스트 머신의 상기 총 소거 수가 문턱값을 초과하지 않는 것을 포함하는, 단계;
    상기 식별된 하나 이상의 호스트 머신 중 가장 작은 총 소거 수를 갖는 호스트 머신을 결정하는 단계;
    상기 결정된 호스트 머신에서, 데이터를 기입하는 것과 연관된 하나 이상의 제2 조건을 충족하는 하나 이상의 하드 드라이브를 식별하는 단계;
    상기 식별된 하나 이상의 하드 드라이브 중 가장 작은 소거 수를 갖는 하드 드라이브를 결정하는 단계; 및
    상기 데이터를 상기 결정된 하드 드라이브에 기입하는 단계를 포함하는, 데이터를 기입하기 위한 방법.
  2. 제1항에 있어서, 호스트 머신의 2개의 하드 드라이브의 상기 소거 수 간의 차이가 미리 설정된 편차 범위를 초과할 때, 데이터를 더 높은 소거 수를 가진 상기 2개의 하드 드라이브 중 하나로부터 더 낮은 소거 수를 가진 하드 드라이브로 이송하는 단계를 더 포함하는, 데이터를 기입하기 위한 방법.
  3. 제2항에 있어서, 상기 미리 설정된 편차 범위는 상기 호스트 머신의 모든 하드 드라이브들의 상기 소거 수의 평균에 기초하여 결정되는, 데이터를 기입하기 위한 방법.
  4. 제1항에 있어서, 상기 클러스터에 기입될 데이터는 파일 이송 동안 기입될 데이터 및/또는 파일 저장 동안 기입될 데이터를 포함하는, 데이터를 기입하기 위한 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 호스트 머신들의 각 호스트 머신에 대한 총 소거 수를 획득하는 단계는 미리 설정된 기간에 각각의 호스트 머신으로부터 총 소거 수를 획득하는 것을 포함하는, 데이터를 기입하기 위한 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 호스트 머신들의 각 호스트 머신 상의 상기 하드 드라이브들에 대한 복수의 소거 수를 획득하는 단계는 각각의 하드 드라이브의 상위 블록에서 유지된 소거 수를 판독하는 것을 포함하고, 상기 소거 수는 상기 하드 드라이브의 각각의 블록이 할당된 후 1만큼 증분되는, 데이터를 기입하기 위한 방법.
  7. 데이터를 복수의 호스트 머신(host machine)들의 클러스터에 기입하기 위한 디바이스로서, 각 호스트 머신은 복수의 하드 드라이브들을 포함하고, 상기 디바이스는 프로세서와, 상기 프로세서가 동작들을 수행하도록 상기 프로세서에 의해 실행 가능한 명령어로 구성된 컴퓨터-판독 가능 저장 매체를 포함하고, 상기 동작들은,
    상기 호스트 머신들의 각 호스트 머신 상의 상기 하드 드라이브들에 대한 복수의 소거 수를 획득하는 동작으로서, 상기 하드 드라이브들의 각 하드 드라이브에 대한 상기 소거 수는 상기 하드 드라이브 상에서 수행된 소거 동작의 총 수와 같은 것인, 동작;
    상기 호스트 머신들의 각 호스트 머신에 대한 총 소거 수를 획득하는 동작으로서, 상기 총 소거 수는 상기 호스트 머신 상의 상기 하드 드라이브들의 소거 수의 합과 같은 것인, 동작;
    상기 클러스터에 기입될 데이터를 획득하는 동작;
    상기 클러스터에 기입될 상기 데이터의 획득에 응답하여, 상기 데이터를 기입하는 것과 연관된 제1 조건을 충족하는 하나 이상의 호스트 머신을 식별하는 동작으로서, 상기 제1 조건은,
    호스트 머신의 남은 저장 용량이 상기 호스트 머신의 총 저장 용량의 문턱 퍼센티지(threshold percentage)를 초과하는 것,
    호스트 머신에 이미 저장된 데이터로의 액세스의 수가 액세스 문턱값(access threshold)을 초과하지 않는 것, 그리고
    호스트 머신의 상기 총 소거 수가 문턱값을 초과하지 않는 것을 포함하는, 동작;
    상기 식별된 하나 이상의 호스트 머신 중 가장 작은 총 소거 수를 갖는 호스트 머신을 결정하는 동작;
    상기 결정된 호스트 머신에서, 데이터를 기입하는 것과 연관된 하나 이상의 제2 조건을 충족하는 하나 이상의 하드 드라이브를 식별하는 동작;
    상기 식별된 하나 이상의 하드 드라이브 중 가장 작은 소거 수를 갖는 하드 드라이브를 결정하는 동작; 및
    상기 데이터를 상기 결정된 하드 드라이브에 기입하는 동작을 포함하는, 데이터를 기입하기 위한 디바이스.
  8. 제7항에 있어서, 상기 동작들은, 호스트 머신의 2개의 하드 드라이브의 상기 소거 수 간의 차이가 미리 설정된 편차 범위를 초과할 때, 데이터를 더 높은 소거 수를 가진 상기 2개의 하드 드라이브 중 하나로부터 더 낮은 소거 수를 가진 하드 드라이브로 이송하는 동작을 더 포함하는, 데이터를 기입하기 위한 디바이스.
  9. 제8항에 있어서, 상기 미리 설정된 편차 범위는 상기 호스트 머신의 모든 하드 드라이브들의 상기 소거 수의 평균에 기초하여 결정되는, 데이터를 기입하기 위한 디바이스.
  10. 제7항에 있어서, 상기 클러스터에 기입될 데이터는 파일 이송 동안 기입될 데이터 및/또는 파일 저장 동안 기입될 데이터를 포함하는, 데이터를 기입하기 위한 디바이스.
  11. 제7항 내지 제10항 중 어느 한 항에 있어서, 상기 호스트 머신들의 각 호스트 머신에 대한 총 소거 수를 획득하는 동작은 미리 설정된 기간에 각각의 호스트 머신으로부터 총 소거 수를 획득하는 것을 포함하는, 데이터를 기입하기 위한 디바이스.
  12. 제7항 내지 제10항 중 어느 한 항에 있어서, 상기 호스트 머신들의 각 호스트 머신 상의 상기 하드 드라이브들에 대한 복수의 소거 수를 획득하는 동작은 각각의 하드 드라이브의 상위 블록에서 유지된 소거 수를 판독하는 것을 포함하고, 상기 소거 수는 상기 하드 드라이브의 각각의 블록이 할당된 후 1만큼 증분되는, 데이터를 기입하기 위한 디바이스.
  13. 하나 이상의 프로세스가 동작들을 수행하도록 상기 하나 이상의 프로세서에 의해 실행 가능한 명령어로 구성되어 데이터를 복수의 호스트 머신(host machine)들의 클러스터에 기입하기 위한 비-일시적 컴퓨터-판독 가능 저장 매체로서, 각 호스트 머신은 복수의 하드 드라이브들을 포함하고, 상기 동작들은,
    상기 호스트 머신들의 각 호스트 머신 상의 상기 하드 드라이브들에 대한 복수의 소거 수를 획득하는 동작으로서, 상기 하드 드라이브들의 각 하드 드라이브에 대한 상기 소거 수는 상기 하드 드라이브 상에서 수행된 소거 동작의 총 수와 같은 것인, 동작;
    상기 호스트 머신들의 각 호스트 머신에 대한 총 소거 수를 획득하는 동작으로서, 상기 총 소거 수는 상기 호스트 머신 상의 상기 하드 드라이브들의 소거 수의 합과 같은 것인, 동작;
    상기 클러스터에 기입될 데이터를 획득하는 동작;
    상기 클러스터에 기입될 상기 데이터의 획득에 응답하여, 상기 데이터를 기입하는 것과 연관된 제1 조건을 충족하는 하나 이상의 호스트 머신을 식별하는 동작으로서, 상기 제1 조건은,
    호스트 머신의 남은 저장 용량이 상기 호스트 머신의 총 저장 용량의 문턱 퍼센티지(threshold percentage)를 초과하는 것,
    호스트 머신에 이미 저장된 데이터로의 액세스의 수가 액세스 문턱값(access threshold)을 초과하지 않는 것, 그리고
    호스트 머신의 상기 총 소거 수가 문턱값을 초과하지 않는 것을 포함하는, 동작;
    상기 식별된 하나 이상의 호스트 머신 중 가장 작은 총 소거 수를 갖는 호스트 머신을 결정하는 동작;
    상기 결정된 호스트 머신에서, 데이터를 기입하는 것과 연관된 하나 이상의 제2 조건을 충족하는 하나 이상의 하드 드라이브를 식별하는 동작;
    상기 식별된 하나 이상의 하드 드라이브 중 가장 작은 소거 수를 갖는 하드 드라이브를 결정하는 동작; 및
    상기 데이터를 상기 결정된 하드 드라이브에 기입하는 동작을 포함하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  14. 제13항에 있어서, 상기 동작들은, 호스트 머신의 2개의 하드 드라이브의 상기 소거 수 간의 차이가 미리 설정된 편차 범위를 초과할 때, 데이터를 더 높은 소거 수를 가진 상기 2개의 하드 드라이브 중 하나로부터 더 낮은 소거 수를 가진 하드 드라이브로 이송하는 동작을 더 포함하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  15. 제14항에 있어서, 상기 미리 설정된 편차 범위는 상기 호스트 머신의 모든 하드 드라이브들의 상기 소거 수의 평균에 기초하여 결정되는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  16. 제13항에 있어서, 상기 클러스터에 기입될 데이터는 파일 이송 동안 기입될 데이터 및/또는 파일 저장 동안 기입될 데이터를 포함하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  17. 제13항 내지 제16항 중 어느 한 항에 있어서, 상기 호스트 머신들의 각 호스트 머신에 대한 총 소거 수를 획득하는 동작은 미리 설정된 기간에 각각의 호스트 머신으로부터 총 소거 수를 획득하는 것을 포함하는, 비-일시적 컴퓨터-판독 가능 저장 매체.
  18. 제13항 내지 제16항 중 어느 한 항에 있어서, 상기 호스트 머신들의 각 호스트 머신 상의 상기 하드 드라이브들에 대한 복수의 소거 수를 획득하는 동작은 각각의 하드 드라이브의 상위 블록에서 유지된 소거 수를 판독하는 것을 포함하고, 상기 소거 수는 상기 하드 드라이브의 각각의 블록이 할당된 후 1만큼 증분되는, 비-일시적 컴퓨터-판독 가능 저장 매체.
KR1020197010643A 2016-09-14 2017-09-05 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스 KR102275094B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610827195.6A CN107025066A (zh) 2016-09-14 2016-09-14 在基于闪存的存储介质中写入存储数据的方法和装置
CN201610827195.6 2016-09-14
PCT/CN2017/100570 WO2018050006A1 (zh) 2016-09-14 2017-09-05 在基于闪存的存储介质中写入存储数据的方法和装置

Publications (2)

Publication Number Publication Date
KR20190052083A KR20190052083A (ko) 2019-05-15
KR102275094B1 true KR102275094B1 (ko) 2021-07-08

Family

ID=59524718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197010643A KR102275094B1 (ko) 2016-09-14 2017-09-05 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스

Country Status (15)

Country Link
US (2) US11099744B2 (ko)
EP (1) EP3514674B1 (ko)
JP (1) JP2019532413A (ko)
KR (1) KR102275094B1 (ko)
CN (1) CN107025066A (ko)
AU (2) AU2017325886B2 (ko)
BR (1) BR112019004916A2 (ko)
CA (1) CA3036415C (ko)
MX (1) MX2019002948A (ko)
MY (1) MY188873A (ko)
PH (1) PH12019500555A1 (ko)
RU (1) RU2735407C2 (ko)
TW (1) TWI676992B (ko)
WO (1) WO2018050006A1 (ko)
ZA (1) ZA201902298B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025066A (zh) * 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
KR102611566B1 (ko) * 2018-07-06 2023-12-07 삼성전자주식회사 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법
KR20210039872A (ko) * 2019-10-02 2021-04-12 삼성전자주식회사 프리 블록의 할당을 관리하는 호스트 시스템, 이를 포함하는 데이터 처리 시스템 및 호스트 시스템의 동작방법
CN111143238B (zh) * 2019-12-27 2022-03-15 无锡融卡科技有限公司 基于eFlash存储芯片的数据擦写方法及系统
KR20210101973A (ko) 2020-02-11 2021-08-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US11561729B2 (en) * 2020-08-19 2023-01-24 Micron Technology, Inc. Write determination counter
CN112162934A (zh) * 2020-09-29 2021-01-01 深圳市时创意电子有限公司 存储块异常磨损处理方法、装置、电子设备及存储介质
TWI808384B (zh) * 2021-02-23 2023-07-11 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
TWI821152B (zh) * 2021-02-23 2023-11-01 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
CN112947862B (zh) * 2021-03-10 2022-09-20 歌尔科技有限公司 设备、Flash存储器及其数据存储方法
CN113452867A (zh) * 2021-06-25 2021-09-28 珠海奔图电子有限公司 数据清除方法、主机、图像形成装置、系统及存储介质
CN115374065B (zh) * 2022-10-25 2023-02-28 山东捷瑞数字科技股份有限公司 一种基于云平台日志记录监控的文件清理方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265265A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US20140089565A1 (en) * 2012-09-27 2014-03-27 Arkologic Limited Solid state device write operation management system
JP2015014963A (ja) 2013-07-05 2015-01-22 富士通株式会社 ストレージ制御装置、制御プログラム及び制御方法
US20160062676A1 (en) 2014-08-29 2016-03-03 International Business Machines Corporation Thermally sensitive wear leveling for a flash memory device that includes a plurality of flash memory modules

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990667B2 (en) 2001-01-29 2006-01-24 Adaptec, Inc. Server-independent object positioning for load balancing drives and servers
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
JP4651913B2 (ja) 2003-02-17 2011-03-16 株式会社日立製作所 記憶装置システム
US20050055495A1 (en) * 2003-09-05 2005-03-10 Nokia Corporation Memory wear leveling
CA2552019A1 (en) 2003-12-29 2005-07-21 Sherwood Information Partners, Inc. System and method for reduced vibration interaction in a multiple-hard-disk-drive enclosure
US7411757B2 (en) 2006-07-27 2008-08-12 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with nonvolatile memory having multiple modes of operation
US9153337B2 (en) 2006-12-11 2015-10-06 Marvell World Trade Ltd. Fatigue management system and method for hybrid nonvolatile solid state memory system
CN101364437A (zh) * 2007-08-07 2009-02-11 芯邦科技(深圳)有限公司 一种可使闪存损耗均衡的方法及其应用
US8751755B2 (en) * 2007-12-27 2014-06-10 Sandisk Enterprise Ip Llc Mass storage controller volatile memory containing metadata related to flash memory storage
US8427552B2 (en) 2008-03-03 2013-04-23 Videoiq, Inc. Extending the operational lifetime of a hard-disk drive used in video data storage applications
US8554983B2 (en) 2008-05-27 2013-10-08 Micron Technology, Inc. Devices and methods for operating a solid state drive
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US9123422B2 (en) 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
US8010738B1 (en) 2008-06-27 2011-08-30 Emc Corporation Techniques for obtaining a specified lifetime for a data storage device
JP5242264B2 (ja) 2008-07-07 2013-07-24 株式会社東芝 データ制御装置、ストレージシステムおよびプログラム
US8024442B1 (en) 2008-07-08 2011-09-20 Network Appliance, Inc. Centralized storage management for multiple heterogeneous host-side servers
US8244995B2 (en) * 2008-10-30 2012-08-14 Dell Products L.P. System and method for hierarchical wear leveling in storage devices
CN101419842B (zh) * 2008-11-07 2012-04-04 成都市华为赛门铁克科技有限公司 硬盘的损耗均衡方法、装置及系统
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
CN101441599B (zh) * 2008-11-28 2011-11-02 成都市华为赛门铁克科技有限公司 一种固态硬盘的均衡方法和固态硬盘
US9164689B2 (en) * 2009-03-30 2015-10-20 Oracle America, Inc. Data storage system and method of processing a data access request
US8429373B2 (en) 2009-07-15 2013-04-23 International Business Machines Corporation Method for implementing on demand configuration changes
WO2011010344A1 (ja) 2009-07-22 2011-01-27 株式会社日立製作所 複数のフラッシュパッケージを有するストレージシステム
US8402242B2 (en) 2009-07-29 2013-03-19 International Business Machines Corporation Write-erase endurance lifetime of memory storage devices
WO2011021126A1 (en) 2009-08-21 2011-02-24 International Business Machines Corporation Data storage system and method for operating a data storage system
US8464106B2 (en) 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
US8234520B2 (en) 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US8621141B2 (en) * 2010-04-01 2013-12-31 Intel Corporations Method and system for wear leveling in a solid state drive
US8700842B2 (en) 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8904226B2 (en) 2010-08-26 2014-12-02 Cleversafe, Inc. Migrating stored copies of a file to stored encoded data slices
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8825977B1 (en) 2010-09-28 2014-09-02 Western Digital Technologies, Inc. Hybrid drive writing copy of data to disk when non-volatile semiconductor memory nears end of life
WO2012060824A1 (en) 2010-11-02 2012-05-10 Hewlett-Packard Development Company, L.P. Solid-state disk (ssd) management
CN102135942B (zh) * 2010-12-31 2013-04-24 北京握奇数据系统有限公司 一种存储设备中实现损耗均衡的方法及存储设备
FR2977047B1 (fr) 2011-06-22 2013-08-16 Starchip Procede de gestion de l'endurance de memoires non volatiles.
KR101938210B1 (ko) * 2012-04-18 2019-01-15 삼성전자주식회사 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법
US9443591B2 (en) 2013-01-23 2016-09-13 Seagate Technology Llc Storage device out-of-space handling
WO2013190597A1 (en) * 2012-06-21 2013-12-27 Hitachi, Ltd. Flash memory device and storage control method
KR20140006299A (ko) * 2012-07-03 2014-01-16 삼성전자주식회사 낸드 플래시 메모리 기반의 저장부에 데이터 기록을 제어하는 방법 및 장치
CN102880556B (zh) * 2012-09-12 2015-05-20 浙江大学 一种实现Nand Flash磨损均衡的方法及其系统
CN102981970B (zh) * 2012-11-23 2016-08-03 深圳市江波龙电子有限公司 闪存管理方法和系统
US20150143021A1 (en) 2012-12-26 2015-05-21 Unisys Corporation Equalizing wear on storage devices through file system controls
CN103116549B (zh) * 2013-01-04 2016-03-16 张亚丽 基于最大可擦除次数的闪存存储方法
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
JP6005566B2 (ja) * 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
TWI515736B (zh) 2013-07-25 2016-01-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US9336129B2 (en) * 2013-10-02 2016-05-10 Sandisk Technologies Inc. System and method for bank logical data remapping
US9442662B2 (en) * 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
CN104572489B (zh) * 2013-10-23 2019-12-24 深圳市腾讯计算机系统有限公司 磨损均衡方法及装置
CN104731515B (zh) * 2013-12-18 2018-02-23 华为技术有限公司 控制存储设备机群磨损均衡的方法及设备
US9619381B2 (en) 2013-12-24 2017-04-11 International Business Machines Corporation Collaborative health management in a storage system
JP5858081B2 (ja) * 2014-03-27 2016-02-10 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
US10725668B1 (en) * 2014-08-29 2020-07-28 SK Hynix Inc. Data separation during garbage collection and wear leveling
US9368218B2 (en) * 2014-10-03 2016-06-14 HGST Netherlands B.V. Fast secure erase in a flash system
CN104360957A (zh) * 2014-11-26 2015-02-18 上海爱信诺航芯电子科技有限公司 一种维持闪存损耗均衡的方法
JP6107802B2 (ja) 2014-12-15 2017-04-05 コニカミノルタ株式会社 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム
US10459639B2 (en) * 2015-04-28 2019-10-29 Hitachi, Ltd. Storage unit and storage system that suppress performance degradation of the storage unit
TWI563509B (en) * 2015-07-07 2016-12-21 Phison Electronics Corp Wear leveling method, memory storage device and memory control circuit unit
CN105159601B (zh) * 2015-08-07 2018-12-07 杭州海兴电力科技股份有限公司 一种提高Flash擦写寿命的方法
TWI601059B (zh) * 2015-11-19 2017-10-01 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US9886324B2 (en) * 2016-01-13 2018-02-06 International Business Machines Corporation Managing asset placement using a set of wear leveling data
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
CN107678906B (zh) * 2016-08-01 2021-01-29 杭州海康威视数字技术股份有限公司 硬盘管理方法和系统
CN107025066A (zh) * 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
KR20200053965A (ko) * 2018-11-09 2020-05-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007265265A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US20080140918A1 (en) 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
US20140089565A1 (en) * 2012-09-27 2014-03-27 Arkologic Limited Solid state device write operation management system
JP2015014963A (ja) 2013-07-05 2015-01-22 富士通株式会社 ストレージ制御装置、制御プログラム及び制御方法
US20160062676A1 (en) 2014-08-29 2016-03-03 International Business Machines Corporation Thermally sensitive wear leveling for a flash memory device that includes a plurality of flash memory modules

Also Published As

Publication number Publication date
JP2019532413A (ja) 2019-11-07
CN107025066A (zh) 2017-08-08
EP3514674A1 (en) 2019-07-24
AU2017325886A1 (en) 2019-04-04
AU2019101583A4 (en) 2020-01-23
EP3514674B1 (en) 2023-07-19
US20210342073A1 (en) 2021-11-04
WO2018050006A1 (zh) 2018-03-22
EP3514674A4 (en) 2020-05-06
CA3036415A1 (en) 2018-03-22
RU2019110993A (ru) 2020-10-15
TWI676992B (zh) 2019-11-11
US11099744B2 (en) 2021-08-24
CA3036415C (en) 2021-07-06
MY188873A (en) 2022-01-12
US11287984B2 (en) 2022-03-29
TW201818401A (zh) 2018-05-16
MX2019002948A (es) 2019-07-18
RU2019110993A3 (ko) 2020-10-15
ZA201902298B (en) 2021-06-30
PH12019500555A1 (en) 2019-11-18
US20190212922A1 (en) 2019-07-11
BR112019004916A2 (pt) 2019-06-04
AU2017325886B2 (en) 2020-11-19
RU2735407C2 (ru) 2020-10-30
KR20190052083A (ko) 2019-05-15

Similar Documents

Publication Publication Date Title
KR102275094B1 (ko) 저장된 데이터를 플래시 메모리에 기초한 저장 매체에 기입하기 위한 방법 및 디바이스
US10915442B2 (en) Managing block arrangement of super blocks
US20190179698A1 (en) Managing Data Arrangement in a Super Block
US9753653B2 (en) High-priority NAND operations management
US11157365B2 (en) Method for processing stripe in storage device and storage device
US11210031B1 (en) Thermal region tags and thermal region outlier detection
US10126970B2 (en) Paired metablocks in non-volatile storage device
US10254979B1 (en) Relocating or aborting a block of data by a host, based on media policies managed by a storage device
CN112148525A (zh) 实现更快且经过调节的装置初始化时间
EP4120086A1 (en) Solid-state drive management method and solid-state drive
US10740020B2 (en) Method, device and computer program product for managing disk array
US10942655B2 (en) Mitigating data errors in a storage device
US20220043713A1 (en) Meta Data Protection against Unexpected Power Loss in a Memory System
US20200042193A1 (en) Method, storage system and computer program product for managing data storage
US11275680B2 (en) Profile and queue-based wear leveling of memory devices
US20230305721A1 (en) Method and apparatus for memory management in memory disaggregation environment
US20240071522A1 (en) Read counter adjustment for delaying read disturb scans
Olson NAND flash memory reliability in embedded computer systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right