KR101694984B1 - 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법 - Google Patents

비대칭 클러스터링 파일시스템에서의 패리티 산출 방법 Download PDF

Info

Publication number
KR101694984B1
KR101694984B1 KR1020100125106A KR20100125106A KR101694984B1 KR 101694984 B1 KR101694984 B1 KR 101694984B1 KR 1020100125106 A KR1020100125106 A KR 1020100125106A KR 20100125106 A KR20100125106 A KR 20100125106A KR 101694984 B1 KR101694984 B1 KR 101694984B1
Authority
KR
South Korea
Prior art keywords
data
chunk
file
parity
temporary
Prior art date
Application number
KR1020100125106A
Other languages
English (en)
Other versions
KR20120063926A (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 한국전자통신연구원
Priority to KR1020100125106A priority Critical patent/KR101694984B1/ko
Priority to US13/309,752 priority patent/US8972779B2/en
Publication of KR20120063926A publication Critical patent/KR20120063926A/ko
Application granted granted Critical
Publication of KR101694984B1 publication Critical patent/KR101694984B1/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

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)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)

Abstract

본 발명은 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법에 관한 것으로, 클라이언트 시스템에서 저장하고자 하는 파일을 기 설정된 크기의 청크로 분할하여 복수의 데이터 서버로 분산 저장하는 단계; 상기 클라이언트 시스템이 메타데이터 서버로 데이터 쓰기 완료 알림 메시지를 전송하는 단계; 상기 메타데이터 서버에서 상기 데이터 쓰기 완료 알림 메시지를 통해 전달된 파일을 복구 큐에 저장하는 단계; 및 상기 메타데이터 서버가 상기 복구 큐에 저장된 파일에 대한 패리티 산출 요청을 임의의 데이터 서버로 전송하는 단계를 포함하여 구성된다.

Description

비대칭 클러스터링 파일시스템에서의 패리티 산출 방법 {METHOD OF PARITY UPDATES IN ASYMMETRIC CLUSTERING FILESYSTEM}
본 발명은 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법에 관한 것으로, 보다 상세하게는 파일시스템에서 파일을 기 설정된 크기의 데이터 청크로 분할하고, 기 설정된 수의 데이터 청크마다 오류 복구를 위한 패리티 청크를 저장하는 구조에서, 데이터의 저장과 패리티 산출을 비동기적으로 처리하고 패리티 산출을 복수의 데이터 서버에서 분산 처리하도록 함으로써 패리티 운용 오버헤드를 분산하여 효율성을 높이기 위한 기술에 관한 것이다.
일반적으로 비대칭 클러스터링 파일시스템은 파일의 메타데이터를 관리하는 메타데이터 서버(MetaData Server; MDS), 파일의 데이터를 관리하는 복수의 데이터 서버(Data Server; DS), 그리고 파일을 저장하거나 검색하는 복수의 클라이언트 시스템이 로컬 네트워크 상에서 연결되어 통신을 통해 상호 운용된다.
복수의 데이터 서버는 가상화 기술을 통해 대규모의 단일 저장공간으로 제공될 수 있으며, 데이터 서버나 서버 내 볼륨의 추가/삭제를 통해 자유로운 저장공간 관리가 가능하다. 이처럼 복수의 데이터 서버를 관리하는 시스템에서는 서버 수에 비례하는 고장율을 고려하여 RAID(Redundant Array of Inexpensive Disks) 레벨 5처럼 데이터는 분산시키고 복구를 위해 패리티를 두는 방법이나 데이터에 대한 복제본을 두는 미러링 기술이 주로 이용된다. 미러링 기술은 데이터의 중복 저장으로 스토리지 효율성이 낮아 고장 감내를 요구하는 경우 패리티를 이용한 데이터 분산 저장 구조가 선호된다.
패리티를 이용한 데이터 분산 저장 구조에서는 데이터를 저장하는 저장장치에 오류가 발생하는 경우 패리티를 이용하여 오류가 발생한 저장장치에 저장된 데이터를 복구한다. 패리티를 구성하는 데이터 집합을 스트라입이라 하며, 각 스트라입마다 생성하는 패리티의 수는 동시에 고장나더라도 데이터의 손실없이 복구가 가능한 데이터 서버의 수를 의미한다. 예를 들어, 스트라입마다 두 개의 패리티가 저장되면 스트라입을 구성하는 데이터를 저장하는 두 대의 데이터 서버가 동시에 고장나더라도 나머지 고장나지 않은 데이터 서버들과 두 개의 패리티를 이용하여 고장난 두 대의 데이터 서버에 저장되는 데이터를 복구할 수 있다.
종래 기술에 의하면, 패리티를 이용한 데이터 분산 저장 구조에서 데이터의 저장과 패리티 산출이 동기적으로 처리된다. 다시 말해, 클라이언트 시스템에서 파일 데이터를 저장하는 시점에 스트라입 단위로 패리티를 산출하면서 해당 스트라입의 데이터와 패리티를 동시에 복수의 데이터 서버로 분산 저장한다. 그러나, 이 경우 패리티 산출 오버헤드가 클라이언트로 집중되어 효율성이 떨어진다는 단점이 있다.
따라서 본 발명은 상기와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 비대칭 클러스터링 파일시스템에서 복수의 데이터 서버로 데이터 및 패리티를 분산 저장하는 구조에서, 파일의 모든 데이터가 복수의 데이터 서버에 저장된 후 복수의 데이터 서버에서 병렬로 패리티 산출을 수행하도록 함으로써 패리티 산출 오버헤드가 복수의 데이터 서버들로 분산되도록 하여 효율성을 높이기 위한 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법을 제공하기 위한 것이다.
상기한 목적을 달성하기 위한 본 발명의 일 실시예에 의한 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법은, 클라이언트 시스템에서 저장하고자 하는 파일을 기 설정된 크기의 청크로 분할하여 복수의 데이터 서버로 분산 저장하는 단계; 상기 클라이언트 시스템이 메타데이터 서버로 데이터 쓰기 완료 알림 메시지를 전송하는 단계; 상기 메타데이터 서버에서 상기 데이터 쓰기 완료 알림 메시지를 통해 전달된 파일을 복구 큐에 저장하는 단계; 및 상기 메타데이터 서버가 상기 복구 큐에 저장된 파일에 대한 패리티 산출 요청을 임의의 데이터 서버로 전송하는 단계를 포함한다.
본 발명에 의하면, 파일의 모든 데이터가 복수의 데이터 서버로 저장 완료된 후 복수의 데이터 서버에서 병렬로 패리티 산출을 수행함으로써 패리티 산출 오버헤드가 복수의 데이터 서버들로 분산된다. 따라서, 데이터 저장 성능의 저하를 방지할 수 있고, 효율적인 패리티 운용을 지원할 수 있다.
도 1은 비대칭 클러스터링 파일시스템의 구조도이다.
도 2는 비대칭 클러스터링 파일시스템에서 데이터 및 패리티의 분산 저장 방식을 설명하기 위한 도면이다.
도 3은 본 발명에 따라 데이터의 저장과 패리티 산출을 비동기적으로 처리하기 위한 비대칭 클러스터링 파일시스템의 운용 구조도이다.
도 4는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 메타데이터 서버에서 패리티 산출을 담당하는 복구 프로세스의 처리 흐름도이다.
도 5는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 수신한 패리티 산출 요청을 처리하는 흐름도이다.
도 6a는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 청크 데이터를 저장하는 파일 관리 구조를 도시하는 도면이다.
도 6b는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 청크 임시 파일의 메타데이터 구조를 도시하는 도면이다.
도 7은 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 클라이언트로부터의 청크 데이터 읽기 요청을 처리하는 흐름도이다.
도 8은 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 클라이언트로부터의 청크 데이터 쓰기 요청을 처리하는 흐름도이다.
도 9는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 패리티 산출을 위한 청크 데이터 요청을 처리하는 흐름도이다.
도 10은 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 데이터 청크 복구를 위한 청크 데이터 요청을 처리하는 흐름도이다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
도 1은 비대칭 클러스터링 파일시스템의 구조도이다.
도 1을 참조하면, 비대칭 클러스터링 파일시스템(100)은 파일의 메타데이터를 관리하는 메타데이터 서버(110), 파일의 데이터를 관리하는 복수의 데이터 서버(120) 및 복수의 데이터 서버(120)에 접근하여 파일을 저장하거나 검색하는 복수의 클라이언트(130)가 이더넷 등의 네트워크(140)를 통해 연결되어 통신을 통해 상호 운용된다.
메타데이터 서버(110)는 파일의 메타데이터의 저장소로서, 데이터베이스 또는 로컬 파일시스템 등으로 구현될 수 있다.
복수의 데이터 서버(120)는 각각 하나 이상의 디스크 저장장치로 구현될 수 있으며, 이 경우 장착한 디스크 수에 의해 각각의 데이터 서버(120)의 저장공간의 크기가 결정된다. 또한, 파일의 데이터를 저장하는 디스크 저장장치는 로컬 파일시스템 등으로 구현될 수 있다.
복수의 클라이언트(130)은 네트워크(140)를 통해 복수의 데이터 서버 (120)에 접근하여 파일을 저장하거나 검색하기 위한 단말장치로서, 개인용 컴퓨터(PC), 노트북 등으로 구현될 수 있다.
도 2는 비대칭 클러스터링 파일시스템에서 데이터 및 패리티의 분산 저장 방식을 설명하기 위한 도면이다.
우선, 클라이언트(230)에서 저장하고자 하는 파일 A(250)를 기 설정된 크기를 갖는 청크라는 단위로 분할한다. 이때, 청크의 크기는 파일시스템을 구성하는 사용자에 의해 정의된 값으로, 미리 고정된 값 또는 파일 크기를 저장하려는 데이터 서버 수로 나눈 값 등이 될 수 있다.
이와 같이 파일을 분할한 후, 기 설정된 수의 데이터 청크(251, 252, 253) 마다 패리티 청크(254, 255)를 생성한다. 이때, 스트라입을 구성하는 데이터 청크의 수와 생성하는 패리티 청크의 수는 사용자에 의해 정의될 수 있다.
이 후, 데이터 청크(251, 252, 253) 및 패리티 청크(254, 255)를 복수의 데이터 서버(221, 222, 223, 224, 225)에 분산 저장하는데, 이때 데이터 청크와 패리티 청크를 저장할 데이터 서버는 메타데이터 서버(210)에서 각 데이터 서버의 저장공간 이용률 등을 고려하여 선정한 후 클라이언트(230)에 알려줄 수 있다.
도 3은 본 발명에 따라 데이터의 저장과 패리티 산출을 비동기적으로 처리하기 위한 비대칭 클러스터링 파일시스템의 운용 구조도이다.
우선, 클라이언트(330)는 저장하고자 하는 파일 A(350)를 기 설정된 크기를 갖는 일정 단위인 청크(351)로 분할한 후, 기 설정된 수의 청크들을 스트라입(352)으로 묶어 메타데이터 서버(310)가 알려준 데이터 서버(321, 322, 323, 324)로 분산 저장한다.
파일 저장이 완료되면, 클라이언트(330)는 메타데이터 서버(310)로 데이터 쓰기 완료 알림 메시지를 전송한다.
이에 따라, 메타데이터 서버(310)는 데이터 쓰기 완료 알림 메시지로 전달된 해당 파일을 복구 프로세스(311)가 관리하는 복구 큐(미도시)에 저장하고 클라이언트(330)로 응답을 반환한다. 이때, 복구 큐에는 해당 파일의 메타데이터 정보를 확인할 수 있도록 파일 경로명이나 파일의 아이노드(inode) 등과 같이 유일성을 갖는 파일 식별자가 저장된다.
복구 프로세스(311)는 메타데이터 서버 프로세스로부터 생성되는 데몬 쓰레드 형태나 독립적인 프로세스 형태로 운용될 수 있으며, 복구 큐에 저장되는 파일에 대한 패리티 산출 및 오류 데이터 복구를 데이터 서버로 명령하는 기능을 수행할 수 있다.
도 4는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 메타데이터 서버에서 패리티 산출을 담당하는 복구 프로세스의 처리 흐름도이다.
메타데이터 서버에서 대기 중인 복구 프로세스는 복구 큐에 저장된 파일을 순차적으로 처리한다.
우선, 복구 큐로부터 파일의 식별자를 획득한 후(S401), 메타데이터 저장소로부터 해당 파일의 메타데이터 정보를 획득한다(S402). 이때, 파일의 메타데이터 정보는 기본적인 파일 정보 및 스트라입 단위로 각 데이터 청크가 저장된 데이터 서버 및 디스크에 대한 정보를 포함한다.
이후, 패리티 산출이 필요한 스트라입을 결정하고(S403), 해당 스트라입의 패리티 청크가 저장될 데이터 서버를 결정한 후(S404), 해당 데이터 서버로 패리티 청크 할당 및 산출을 요청한다(S405). 데이터 서버로 패리티 청크 할당 및 산출 요청을 보낸 후 완료 응답을 수신할 때까지 기다리는 동기 방식으로 처리할 것인지, 아니면 요청을 보낸 후 완료 응답을 별도로 처리하는 비동기 방식으로 처리할 것인지는 사용자에 의해 결정될 수 있다.
이후, 해당 파일에서 패리티 산출이 필요한 스트라입이 더 존재하는지 확인하여(S406) 패리티 산출이 필요한 스트라입에 대해 상술한 과정(S403 내지 S405)을 반복 수행한다.
또한, 해당 파일에 대한 처리가 완료되면, 복구 큐에 다음 파일이 존재하는지 확인하여(S407) 다음 파일에 대해서도 상술한 패리티 산출 과정(S401 내지 S406)을 반복 수행한다.
복구 큐에 더 이상 파일이 존재하지 않으면 복구 프로세스는 대기 상태로 전환된다.
도 5는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 수신한 패리티 산출 요청을 처리하는 흐름도이다.
우선, 데이터 서버 프로세스는 메타데이터 서버로부터 스트라입 정보를 포함하는 패리티 청크 할당 및 산출 요청을 수신한다(S501). 이때, 스트라입 정보는 스트라입을 구성하는 데이터 청크 목록과 각 데이터 청크를 저장하는 데이터 서버 및 디스크의 정보를 포함한다.
이후, 데이터 서버 프로세스는 데이터 저장소에 패리티가 저장될 패리티 청크 파일을 생성하고(S502) 패리티 연산에 사용될 청크 크기의 임시 버퍼를 할당한다(S503).
이후, 수신한 데이터 청크 목록의 첫번째 데이터 청크가 저장된 데이터 서버로 패리티 산출을 위한 데이터 요청을 보내고 대기한다(S504). 데이터 요청에 대한 응답과 함께 수신한 데이터는 임시 버퍼에 저장한 후(S505) 첫번째 데이터 청크인지 확인한다(S506).
확인 결과 첫번째 데이터 청크라면 임시 버퍼에 저장된 데이터를 패리티 청크 파일에 저장하고(S508), 첫번째 데이터 청크가 아니라면 패리티 청크 파일로부터 읽은 데이터와 임시 버퍼에 저장된 데이터에 대해 패리티 연산을 수행한 후(S507) 임시 버퍼에 저장된 데이터를 패리티 청크 파일에 저장한다 (S508).
패리티 청크 파일의 저장이 완료되면 해당 데이터 청크를 전송한 데이터 서버로 패리티 반영 완료 응답을 전송한다(S509).
상술한 과정(S504 내지 S509)은 해당 스트라입의 마지막 데이터 청크까지 반복하여 수행된다(S510).
해당 스트라입을 구성하는 모든 데이터 청크에 대한 패리티 연산이 완료되면 메타데이터 서버로 패리티 산출 완료 응답을 전송하고(S511) 패리티 산출 과정이 종료된다.
도 6a는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 청크 데이터를 저장하는 파일 관리 구조를 도시하는 도면이다.
도 6a를 참조하면, /disk0/volume은 데이터 저장소의 경로이고, 청크 파일은 청크 식별자를 디렉터리 구조로 저장한다. 따라서, /ab/cde/f(600)는 청크 식별자(0xabcdef)를 갖는 청크 데이터가 파일명 f에 저장된다. 해당 파일은 처음 청크 데이터가 저장될 때 생성되며, 마지막으로 패리티에 반영된 데이터를 저장하는 파일이다.
또한, 파일명 /ab/cde/f_temp(610)는 파일 f에 대한 청크 임시 파일로서 마지막 패리티 반영 후 청크 파일에 쓰기 요청된 신규 데이터를 저장한다. 원본 청크 파일 f와 동일한 디렉터리에 저장되며, 파일명은 사용자에 의해 정의된 특정 접미사(_temp)를 원본 파일명 뒤에 붙여 생성한다.
청크 임시 파일을 사용하는 이유는 패리티 산출이 데이터 갱신과 비동기적으로 이루어지기 때문에 갱신된 데이터가 패리티에 반영되기 전에 다른 데이터 청크에 오류가 발생한 경우 이를 복구하기 위함이다. 데이터 청크는 신규 데이터로 갱신되었지만 패리티에는 아직 반영되지 않은 경우, 갱신된 데이터 청크를 이용하여 오류 데이터를 복구하면 원래 데이터가 아닌 잘못된 데이터가 복구될 수 있다. 따라서 마지막으로 패리티에 반영된 데이터는 갱신된 데이터가 패리티에 반영될 때까지 해당 데이터 서버에서 유지되어야 하는 것이다.
도 6b는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 청크 임시 파일의 메타데이터 구조를 도시하는 도면이다.
데이터 청크(620)는 데이터 서버의 로컬 파일시스템에 파일로 저장된다. 이때, 청크의 크기는 메타데이터 서버에서 해당 스토리지 볼륨이 구성될 때 사용자에 의해 결정될 수 있다. 청크 파일은 메타데이터 정보를 저장하는 헤더(621)와 데이터(622)로 구성된다. 파일 메타데이터의 크기는 사용자에 의해 정의될 수 있으며, 청크 버전, 파일 아이노드 번호, 파일 경로명 등 해당 청크 데이터 관리에 필요한 정보가 저장될 수 있다.
또한, 청크 임시 파일의 메타데이터 정보에는 청크 데이터를 구성하는 페이지 단위로 갱신 여부를 나타내는 갱신 비트맵(623)이 정의된다. 갱신 비트맵 (623)은 청크 데이터를 페이지 크기(4KB)로 나누어 각 페이지마다 비트를 정의할 수 있다. 예를 들어, 청크의 크기가 64MB라면 16,384 페이지가 존재하므로 비트맵의 크기는 약 2Kbyte가 할당된다. 각 비트는 청크내 오프셋에 해당하는 데이터가 청크 파일과 청크 임시 파일에 존재함을 의미한다. 비트가 1이면 청크 임시 파일의 데이터는 최근에 갱신된 데이터(624)이고, 청크 파일에 존재하는 데이터는 패리티에 반영된 마지막 데이터임을 나타낸다. 반면, 비트가 0이면 해당 오프셋의 데이터는 청크 파일에만 존재함을 나타낸다.
도 7은 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 클라이언트로부터의 청크 데이터 읽기 요청을 처리하는 흐름도이다.
데이터 서버 프로세스가 클라이언트로부터 청크 데이터 읽기 요청을 수신하면(S701), 해당 청크 파일에 대해 파일 쓰기 차단을 설정하고(S702) 로컬 파일시스템의 기능을 활용한다.
이후, 청크 임시 파일이 존재하는지 여부를 확인하여(S703), 청크 임시 파일이 존재하지 않으면 해당 청크 파일로부터 데이터를 읽어 클라이언트로 전달한 후(S704) 청크 파일에 대한 쓰기 차단을 해제하고(S712) 읽기 요청에 대한 처리를 종료한다.
반면, 청크 임시 파일이 존재한다면, 청크 임시 파일에 대해 쓰기 차단을 설정하고(S705) 청크 임시 파일의 메타데이터 정보로부터 갱신 비트맵을 읽어 메모리에 저장한다(S706). 이후, 읽고자 하는 데이터의 시작 오프셋부터 페이지 단위로 갱신 여부를 확인, 즉 읽을 페이지의 갱신 비트맵의 비트가 1인지 여부를 확인하여(S707), 비트가 1인 페이지는 청크 임시 파일로부터 데이터를 읽어 클라이언트로 전달하고(S708) 비트가 0인 페이지는 청크 파일로부터 데이터를 읽어 클라이언트로 전달한다(S709). 이때, 연속적으로 동일한 비트 값을 갖는 페이지는 모아서 처리할 수 있다. 모든 페이지에 대한 데이터 읽기가 완료되면(S710), 청크 임시 파일에 대한 쓰기 차단을 해제한 후(S711) 청크 파일에 대한 쓰기 차단을 해제하고(S712) 읽기 요청에 대한 처리를 종료한다.
도 8은 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 클라이언트로부터의 청크 데이터 쓰기 요청을 처리하는 흐름도이다.
데이터 서버 프로세스가 클라이언트로부터 청크 데이터 쓰기 요청을 수신하면(S801) 해당 청크 파일에 대해 파일 쓰기 차단을 설정한다(S802).
이후, 쓰려는 청크 파일 오프셋이 청크 파일 크기보다 큰지 여부를 확인하여(S803), 청크 파일 오프셋이 크다면 청크 파일에 데이터를 저장한 후(S804) 청크 파일에 대한 쓰기 차단을 해제하고(S815) 쓰기 요청에 대한 처리를 종료한다.
반면, 청크 파일 오프셋이 크지 않다면 청크 임시 파일이 존재하는지 여부를 확인한다(S805). 청크 임시 파일이 이미 존재한다면 청크 임시 파일에 대한 쓰기 차단을 설정한 후(S810) 데이터가 저장되는 페이지의 일부만을 갱신하는 경우 갱신될 페이지의 데이터를 청크 파일로부터 청크 임시 파일로 읽어서 저장하고(S811) 청크 임시 파일의 해당 페이지에 신규 데이터를 저장한다(S812). 반면, 청크 임시 파일이 아직 존재하지 않는다면 청크 임시 파일을 생성하고(S806) 청크 임시 파일에 대한 쓰기 차단을 설정한 후(S807) 데이터가 저장되는 페이지의 일부만을 갱신하는 경우 갱신될 페이지의 데이터를 청크 파일로부터 청크 임시 파일로 읽어서 저장하고(S808) 청크 임시 파일의 해당 페이지에 신규 데이터를 저장한다(S809). 이후, 청크 임시 파일의 메타데이터의 갱신 비트맵에 갱신된 페이지에 해당하는 비트를 1로 설정한다(S813). 모든 쓰기가 완료되면 청크 임시 파일에 대한 쓰기 차단을 해제한 후(S814) 청크 파일에 대한 쓰기 차단을 해제하고(S815) 쓰기 요청에 대한 처리를 종료한다.
도 9는 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 패리티 산출을 위한 청크 데이터 요청을 처리하는 흐름도이다.
데이터 서버 프로세스가 패리티 산출을 담당하는 데이터 서버로부터 패리티 산출을 위한 데이터 요청을 수신하면(S901), 해당 청크 파일에 대한 쓰기 차단을 설정하고(S902) 데이터를 저장할 임시 버퍼를 할당한다(S903).
이후, 청크 임시 파일이 존재하는지 여부를 확인하여(S904) 청크 임시 파일이 존재하지 않는다면 청크 파일로부터 데이터를 읽어 임시 버퍼에 저장한다(S905).
반면, 청크 임시 파일이 존재한다면 청크 임시 파일에 대한 쓰기 차단을 설정한 후(S906) 청크 임시 파일로부터 데이터를 읽어 임시 버퍼에 저장하고 (S907) 청크 파일로부터 읽은 데이터와 임시 버퍼에 저장한 데이터를 exclusive-OR 연산을 수행하여 중간 패리티를 산출한다(S908). 중간 패리티 산출이 완료되면 청크 임시 파일에 대한 쓰기 차단을 해제한다(S909).
이후, 데이터를 요청한 데이터 서버로 임시 버퍼에 저장된 데이터를 전달하고 응답을 대기한다(S910).
데이터를 요청한 데이터 서버로부터 응답을 수신하면(S911) 패리티 반영이 완료된 것이므로 다음과 같은 과정에 따라 청크 임시 파일과 청크 파일을 병합한다.
우선, 청크 임시 파일이 존재하는지 여부를 확인하여(S912) 청크 임시 파일이 존재한다면 청크 임시 파일에 대한 쓰기 차단을 설정하고(S913) 갱신 비트맵의 모든 비트가 1인지 여부를 확인한다(S914).
모든 비트가 1이면 청크 전체가 갱신된 것이므로 청크 임시 파일을 청크 파일로 변환한다(S915). 비트가 모두 1은 아니지만 1인 비트가 더 많으면 비트가 0인 페이지의 데이터를 청크 파일로부터 청크 임시 파일로 복사한 후 청크 임시 파일을 청크 파일로 변환하고, 0인 비트가 더 많으면 비트가 1인 페이지의 데이터를 청크 임시 파일로부터 청크 파일로 복사한 후 청크 임시 파일을 삭제한다(S916).
청크 임시 파일과 청크 파일의 병합이 완료되면 청크 임시 파일에 대한 쓰기 차단을 해제하고(S917) 청크 파일에 대한 쓰기 차단을 해제한 후(S918) 데이터 요청 처리를 종료한다.
도 10은 본 발명이 적용된 비대칭 클러스터링 파일시스템의 데이터 서버에서 데이터 청크 복구를 위한 청크 데이터 요청을 처리하는 흐름도이다.
본 발명이 적용된 비대칭 클러스터링 파일시스템에서 데이터 청크의 복구는 메타데이터 서버가 복구된 데이터 청크를 저장할 데이터 서버를 결정한 후 해당 데이터 서버로 복구 요청을 전송하여 처리하도록 한다. 복구 요청을 동기적으로 처리할 것인지 비동기적으로 처리할 것인지는 사용자에 의해 정의될 수 있다.
메타데이터 서버로부터 복구 데이터가 속한 스트라입 정보를 포함하는 복구 요청을 수신한 데이터 서버는 스트라입을 구성하는 첫번째 데이터 청크부터 순차적으로 데이터를 요청한다.
데이터 서버 프로세스가 복구 요청을 수신한 데이터 서버로부터 데이터 청크 복구를 위한 데이터 요청을 수신하면(S1001) 해당 청크 파일에 대한 쓰기 차단을 설정한다(S1002).
이후, 청크 파일로부터 요청된 크기의 데이터를 읽어 데이터 요청을 전송한 데이터 서버로 전송한다(S1003).
이후, 데이터 요청을 전송한 데이터 서버로부터 데이터 수신 완료 응답을 수신하면 해당 청크 파일에 대한 쓰기 차단을 해제하고(S1004) 데이터 요청 처리를 종료한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (15)

  1. 클라이언트 시스템에서 저장하고자 하는 파일을 기 설정된 크기의 청크로 분할하여 복수의 데이터 서버로 분산 저장하는 단계;
    상기 클라이언트 시스템이 메타데이터 서버로 데이터 쓰기 완료 알림 메시지를 전송하는 단계;
    상기 메타데이터 서버에서 상기 데이터 쓰기 완료 알림 메시지를 통해 전달된 파일을 복구 큐에 저장하는 단계;
    상기 메타데이터 서버가 상기 복구 큐에 저장된 파일에 대한 패리티 산출 요청을 임의의 데이터 서버로 전송하는 단계; 및
    상기 패리티 산출 요청을 수신한 데이터 서버가 패리티 연산을 수행하는 단계를 포함하고,
    상기 패리티 연산을 수행하는 단계는,
    상기 메타데이터 서버로부터 스트라입 정보를 포함하는 패리티 청크 할당 및 산출 요청을 수신하는 단계;
    패리티가 저장될 패리티 청크 파일을 생성하는 단계;
    패리티 연산에 사용될 청크 크기의 임시 버퍼를 할당하는 단계;
    상기 스트라입을 구성하는 데이터 청크가 저장된 데이터 서버로 패리티 산출을 위한 데이터를 요청하고 수신한 데이터를 상기 임시 버퍼에 저장하는 단계;
    상기 수신한 데이터가 첫번째 데이터 청크이면 상기 임시 버퍼에 저장된 데이터를 상기 패리티 청크 파일에 저장하는 단계;
    상기 수신한 데이터가 첫번째 데이터 청크가 아니면 상기 패리티 청크 파일로부터 읽은 데이터와 상기 임시 버퍼에 저장된 데이터에 대해 패리티 연산을 수행하고 상기 임시 버퍼에 저장된 데이터를 상기 패리티 청크 파일에 저장하는 단계;
    상기 데이터 청크를 전송한 데이터 서버로 패리티 반영 완료 응답을 전송하는 단계; 및
    상기 스트라입을 구성하는 모든 데이터 청크에 대한 패리티 연산이 완료되면 상기 메타데이터 서버로 패리티 산출 완료 응답을 전송하는 단계를 포함하는 것을 특징으로 하는 패리티 산출 방법.
  2. 제 1 항에 있어서,
    상기 복수의 데이터 서버로 분산 저장하는 단계는,
    상기 메타데이터 서버가 알려준 복수의 데이터 서버로 분할한 청크를 분산 저장하는 것을 특징으로 하는 패리티 산출 방법.
  3. 제 1 항에 있어서,
    상기 복구 큐에 저장하는 단계는,
    상기 전달된 파일의 경로명 또는 파일의 식별자를 저장하는 것을 특징으로 하는 패리티 산출 방법.
  4. 제 1 항에 있어서,
    상기 패리티 산출 요청을 임의의 데이터 서버로 전송하는 단계는,
    상기 복구 큐로부터 상기 파일의 식별자를 획득하는 단계;
    메타데이터 저장소로부터 상기 파일의 메타데이터 정보를 획득하는 단계;
    패리티 산출이 필요한 스트라입을 결정하는 단계;
    상기 스트라입의 패리티 청크가 저장될 데이터 서버를 결정하는 단계; 및
    결정된 데이터 서버로 패리티 청크 할당 및 산출을 요청하는 단계를 포함하는 것을 특징으로 하는 패리티 산출 방법.
  5. 삭제
  6. 삭제
  7. 제 1 항에 있어서,
    상기 패리티 연산을 수행하는 단계는,
    상기 패리티 산출을 위한 데이터 요청을 수신한 데이터 서버가 데이터를 저장할 임시 버퍼를 할당하는 단계;
    청크 임시 파일이 존재하지 않으면 청크 파일로부터 데이터를 읽어 상기 임시 버퍼에 저장하는 단계;
    청크 임시 파일이 존재하면 상기 청크 임시 파일로부터 데이터를 읽어 상기 임시 버퍼에 저장하고 중간 패리티를 산출하는 단계; 및
    데이터를 요청한 데이터 서버로 상기 임시 버퍼에 저장된 데이터를 전달하는 단계를 더 포함하는 것을 특징으로 하는 패리티 산출 방법.
  8. 제 7 항에 있어서,
    상기 패리티 연산을 수행하는 단계는,
    상기 데이터를 요청한 데이터 서버로부터 응답을 수신하면 상기 청크 임시 파일과 상기 청크 파일을 병합하는 단계를 더 포함하는 것을 특징으로 하는 패리티 산출 방법.
  9. 제 8 항에 있어서,
    상기 청크 임시 파일과 상기 청크 파일을 병합하는 단계는,
    상기 청크 임시 파일의 메타데이터의 갱신 비트맵의 모든 비트가 1인지 여부를 확인하는 단계;
    모든 비트가 1이면 상기 청크 임시 파일을 상기 청크 파일로 변환하는 단계;
    1인 비트가 더 많으면 비트가 0인 페이지의 데이터를 상기 청크 파일로부터 상기 청크 임시 파일로 복사하고 상기 청크 임시 파일을 상기 청크 파일로 변환하는 단계; 및
    0인 비트가 더 많으면 비트가 1인 페이지의 데이터를 상기 청크 임시 파일로부터 상기 청크 파일로 복사하고 상기 청크 임시 파일을 삭제하는 단계를 포함하는 것을 특징으로 하는 패리티 산출 방법.
  10. 제 1 항에 있어서,
    상기 클라이언트 시스템으로부터 청크 데이터 읽기 요청을 수신한 데이터 서버가 상기 읽기 요청을 처리하는 단계를 더 포함하는 것을 특징으로 하는 패리티 산출 방법.
  11. 제 10 항에 있어서,
    상기 읽기 요청을 처리하는 단계는,
    청크 임시 파일이 존재하는지 여부를 확인하는 단계;
    상기 청크 임시 파일이 존재하지 않으면 청크 파일로부터 데이터를 읽어 상기 클라이언트 시스템으로 전달하는 단계; 및
    상기 청크 임시 파일이 존재하면 상기 청크 임시 파일의 메타데이터의 갱신 비트맵의 비트가 1인 페이지는 상기 청크 임시 파일로부터 데이터를 읽어 상기 클라이언트 시스템으로 전달하고, 비트가 0인 페이지는 상기 청크 파일로부터 데이터를 읽어 상기 클라이언트 시스템으로 전달하는 단계를 포함하는 것을 특징으로 하는 패리티 산출 방법.
  12. 제 1 항에 있어서,
    상기 클라이언트 시스템으로부터 청크 데이터 쓰기 요청을 수신한 데이터 서버가 상기 쓰기 요청을 처리하는 단계를 더 포함하는 것을 특징으로 하는 패리티 산출 방법.
  13. 제 12 항에 있어서,
    상기 쓰기 요청을 처리하는 단계는,
    청크 파일 오프셋이 청크 파일 크기보다 크면 청크 파일에 데이터를 저장하는 단계;
    상기 청크 파일 오프셋이 상기 청크 파일 크기보다 크지 않다면 청크 임시 파일이 존재하는지 여부를 확인하는 단계;
    청크 임시 파일이 존재하면 갱신될 페이지의 데이터를 청크 파일로부터 상기 청크 임시 파일로 읽어와 상기 청크 임시 파일의 해당 페이지에 저장하고, 청크 임시 파일이 존재하지 않으면 청크 임시 파일을 생성한 후 갱신될 페이지의 데이터를 청크 파일로부터 생성한 청크 임시 파일로 읽어와 생성한 청크 임시 파일의 해당 페이지에 저장하는 단계; 및
    상기 청크 임시 파일의 메타데이터의 갱신 비트맵에 갱신된 페이지에 해당하는 비트를 1로 설정하는 단계를 포함하는 것을 특징으로 하는 패리티 산출 방법.
  14. 제 1 항에 있어서,
    상기 메타데이터 서버가 복구된 데이터 청크를 저장할 데이터 서버로 복구 요청을 전송하는 단계를 더 포함하는 것을 특징으로 하는 패리티 산출 방법.
  15. 제 14 항에 있어서,
    상기 복구 요청을 수신한 데이터 서버가 복구 데이터가 속한 스트라입을 구성하는 데이터 청크를 저장하는 데이터 서버로 데이터 청크를 요청하는 단계; 및
    상기 데이터 청크를 요청받은 데이터 서버가 청크 파일로부터 요청된 데이터를 읽어 상기 복구 요청을 수신한 데이터 서버로 전송하는 단계를 더 포함하는 것을 특징으로 하는 패리티 산출 방법.
KR1020100125106A 2010-12-08 2010-12-08 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법 KR101694984B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100125106A KR101694984B1 (ko) 2010-12-08 2010-12-08 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법
US13/309,752 US8972779B2 (en) 2010-12-08 2011-12-02 Method of calculating parity in asymetric clustering file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100125106A KR101694984B1 (ko) 2010-12-08 2010-12-08 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법

Publications (2)

Publication Number Publication Date
KR20120063926A KR20120063926A (ko) 2012-06-18
KR101694984B1 true KR101694984B1 (ko) 2017-01-11

Family

ID=46200665

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100125106A KR101694984B1 (ko) 2010-12-08 2010-12-08 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법

Country Status (2)

Country Link
US (1) US8972779B2 (ko)
KR (1) KR101694984B1 (ko)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
JP2013131192A (ja) * 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法
US8732355B1 (en) 2012-10-02 2014-05-20 Nextbit Systems Inc. Dynamic data prefetching
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US10057726B2 (en) 2012-10-02 2018-08-21 Razer (Asia-Pacific) Pte. Ltd. Managing user data on an electronic device
WO2014190501A1 (zh) * 2013-05-29 2014-12-04 华为技术有限公司 数据恢复方法、存储设备和存储系统
JP2015013008A (ja) * 2013-07-05 2015-01-22 セイコーエプソン株式会社 運動検出装置および運動検出プログラム並びに運動解析システム
KR20150061258A (ko) 2013-11-27 2015-06-04 한국전자통신연구원 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치
US10105593B2 (en) 2014-04-08 2018-10-23 Razer (Asia-Pacific) Pte. Ltd. File prefetching for gaming applications accessed by electronic devices
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
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
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA 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
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
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
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9053124B1 (en) 2014-09-30 2015-06-09 Code 42 Software, Inc. System for a distributed file system element collection
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
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
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
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
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
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
WO2018009040A1 (ko) * 2016-07-08 2018-01-11 엘지전자(주) 블루투스 기술을 이용하여 데이터를 송수신하기 위한 방법 및 장치
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
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
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
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
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
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
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
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive 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
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
WO2021046693A1 (zh) * 2019-09-09 2021-03-18 华为技术有限公司 存储系统中数据处理方法、装置以及存储系统
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216832A1 (en) * 2008-02-26 2009-08-27 Quinn Steven C Array-based distributed storage system with parity

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08329021A (ja) * 1995-03-30 1996-12-13 Mitsubishi Electric Corp クライアントサーバシステム
US7197599B2 (en) 2003-12-29 2007-03-27 Intel Corporation Method, system, and program for managing data updates
US7529967B2 (en) * 2004-11-04 2009-05-05 Rackable Systems Inc. Method and system for network storage device failure protection and recovery
US8555109B2 (en) * 2009-07-30 2013-10-08 Cleversafe, Inc. Method and apparatus for distributed storage integrity processing
US7587569B2 (en) * 2005-12-19 2009-09-08 Yahoo! Inc. System and method for removing a storage server in a distributed column chunk data store
KR100922584B1 (ko) 2006-12-01 2009-10-21 한국전자통신연구원 객체 기반 분산 공유 시스템 및 그의 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090216832A1 (en) * 2008-02-26 2009-08-27 Quinn Steven C Array-based distributed storage system with parity

Also Published As

Publication number Publication date
US8972779B2 (en) 2015-03-03
US20120151255A1 (en) 2012-06-14
KR20120063926A (ko) 2012-06-18

Similar Documents

Publication Publication Date Title
KR101694984B1 (ko) 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
WO2018040591A1 (zh) 一种远程数据复制方法及系统
US9811405B2 (en) Cache for file-based dispersed storage
JP6264666B2 (ja) データ格納方法、データストレージ装置、及びストレージデバイス
EP4139781B1 (en) Persistent memory architecture
US11720525B2 (en) Flexible tiering of snapshots to archival storage in remote object stores
WO2017189476A1 (en) Inline deduplication
US10067831B2 (en) Slice migration in a dispersed storage network
US11994998B2 (en) Low-overhead atomic writes for persistent memory
US11960448B2 (en) Unified object format for retaining compression and performing additional compression for reduced storage consumption in an object store
US20230133533A1 (en) Snapshot copy operation between endpoints
US11544007B2 (en) Forwarding operations to bypass persistent memory
US20240061603A1 (en) Co-located Journaling and Data Storage for Write Requests
US11340804B2 (en) Block allocation for persistent memory during aggregate transition
US20220035524A1 (en) Data management across a persistent memory tier and a file system tier
WO2023197937A1 (zh) 数据处理方法及其装置、存储介质、计算机程序产品
JP6376626B2 (ja) データ格納方法、データストレージ装置、及びストレージデバイス
US20210026780A1 (en) Methods for using extended physical region page lists to improve performance for solid-state drives and devices thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20191223

Year of fee payment: 4