[go: up one dir, main page]

KR20150061258A - 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치 - Google Patents

분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치 Download PDF

Info

Publication number
KR20150061258A
KR20150061258A KR1020130145137A KR20130145137A KR20150061258A KR 20150061258 A KR20150061258 A KR 20150061258A KR 1020130145137 A KR1020130145137 A KR 1020130145137A KR 20130145137 A KR20130145137 A KR 20130145137A KR 20150061258 A KR20150061258 A KR 20150061258A
Authority
KR
South Korea
Prior art keywords
data
parity
chunk
chunks
partial
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020130145137A
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 한국전자통신연구원
Priority to KR1020130145137A priority Critical patent/KR20150061258A/ko
Priority to US14/244,388 priority patent/US9411685B2/en
Publication of KR20150061258A publication Critical patent/KR20150061258A/ko
Ceased legal-status Critical Current

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

본 발명은 패리티 청크 운용에 관한 것으로, 파일의 데이터를 청크 단위로 나누고, 오류 복구를 위한 패리티를 산출하여 스트라입을 구성하고, 스트라입에 포함되는 데이터 청크 및 패리티 청크를 다수의 데이터 서버로 분산 저장하는 환경에서, 스트라입 구조의 데이터 청크 및 패리티 청크를 데이터 서버들이 저장하는 저장 과정, 상기 데이터 청크를 저장한 데이터 서버가 갱신 데이터 청크 저장 과정에서 이전 데이터 청크를 상기 생신 데이터 청크를 이용한 부분 패리티를 생성하는 부분 패리티 생성 과정, 상기 부분 패리티를 상기 패리티 청크를 저장하는 데이터 서버에 전송하는 부분 패리티 전송 과정을 포함하는 것을 특징으로 하는 패리티 청크 운용 방법 및 이를 지원하는 데이터 서버 장치의 구성을 개시한다.

Description

분산 RAID 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치{Operating System and Method for Parity chunk update processing in distributed Redundant Array of Inexpensive Disks system}
본 발명은 다수의 데이터 서버에 데이터를 분산 저장하여 운용하는 분산 RAID 시스템에서 패리티 청크와 부분 패리티 청크 관리를 지원하는 분산 RAID 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치에 관한 것이다.
일반적으로 비대칭 클러스터링 파일시스템은 파일의 메타데이터를 관리하는 메타데이터 서버(MDS : MetaData Server), 파일의 데이터를 관리하는 다수의 데이터 서버(DS : Data Server), 그리고 파일을 저장하거나 검색하는 다수의 클라이언트 시스템이 이더넷 네트워크 상에서 연결되어 통신 프로토콜로 운용되는 파일시스템이다.
다수의 데이터 서버는 가상화 기술을 통해 대규모의 단일 저장공간으로 제공되며, 데이터 서버나 서버 내 볼륨의 추가/삭제를 통해 자유로운 저장공간 관리가 가능하다. 이와 같이 다수의 데이터 서버를 관리하는 시스템에서는 서버 수에 비례하는 고장 율을 고려하여 RAID 레벨 5처럼 데이터는 분산시키고, 복구를 위한 패리티를 마련하는 방법 또는 데이터에 대한 복제본을 마련하는 미러링 방법 등이 사용될 수 있다. 여기서 미러링 기술은 데이터 중복 저장으로 스토리지 효율성이 낮은 반면에 패리티를 이용한 데이터 분산 저장 구조는 상대적으로 스토리지 효율성이 높고 고장 감내를 충족할 수 있어 선호된다.
패리티를 이용한 데이터 분산 저장 구조는 데이터 장애가 발생하는 경우 패리티를 이용하여 데이터 가용성을 보장한다. 예컨대, 다수의 데이터 청크와 그로부터 산출된 패리티로 스트라입을 구성하면, 생성하는 패리티 수만큼 동시에 데이터 청크에 장애가 발생하더라도 데이터 손실 없이 복구가 가능하다. 한편, 종래에는 데이터를 갱신하기 전에 산출된 부분 패리티를 데이터 청크와 같은 로컬 저장소에서 관리한다. 따라서 종래 방식은 부분 패리티 산출 및 저장 시간을 줄임으로써 쓰기 성능 면에서 효율적일 수 있다. 그러나 패리티 갱신 전에 부분 패리티 청크가 저장된 데이터 서버에 장애가 발생하면 데이터 청크의 갱신 부분은 복구가 어려울 수 있다. 또한, 장애 데이터에 대한 degraded read나 degraded write 처리에서 먼저 패리티 갱신을 확인하려면 원격 서버로부터 부분 패리티 청크를 확인하고, 필요하면 부분 패리티를 원격으로 읽어와서 패리티 갱신을 처리해야 하기 때문에 네트워크 오버헤드가 발생하고, degraded 모드 성능도 저하된다. 따라서 종래 방식은 장애 데이터 복구 전까지 입출력 성능 저하가 지속되는 문제가 있다.
본 발명의 다양한 실시예에서는 갱신되는 데이터마다 산출한 부분 패리티를 패리티 청크를 저장하는 데이터 서버에서 저장 관리할 수 있도록 하는 분산 RAID 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치를 제공함에 있다.
본 발명의 실시예에 따른 데이터 서버 장치는 파일의 데이터를 청크 단위로 나누고, 오류 복구를 위한 패리티를 산출하여 스트라입을 구성하고, 스트라입에 포함되는 데이터 청크 및 패리티 청크를 다수의 데이터 서버로 분산 저장하는 환경에서, 스트라입을 구성하는 데이터 청크를 수신하는 통신부, 상기 데이터 청크를 저장하는 저장소, 갱신 데이터 청크를 수신하는 경우 이전 저장된 데이터 청크와 상기 갱신 데이터 청크 간의 연산을 수행하여 부분 패리티를 산출하고, 산출된 부분 패리티를 상기 스트라입을 구성하는 패리티 청크를 관리하는 서버 장치에 전송하는 제어부를 포함하는 것을 특징으로 한다.
상기 제어부는 상기 갱신 데이터 청크 저장을 위한 버퍼 및 상기 이전 저장된 데이터 청크 저장을 위한 버퍼 할당을 제어할 수 있다.
상기 제어부는 상기 갱신 데이터 청크와 상기 이전 저장된 데이터 청크 간의 XOR 연산 결과 값을 부분 패리티로 산출하고, 상기 부분 패리티 산출 이후 상기 버퍼 반환을 제어하는 것을 특징으로 한다.
상기 제어부는 상기 데이터 청크 식별자를 상기 부분 패리티의 파일명으로 정의하는 것을 특징으로 한다.
본 발명은 또한, 파일의 데이터를 청크 단위로 나누고, 오류 복구를 위한 패리티를 산출하여 스트라입을 구성하고, 스트라입에 포함되는 데이터 청크 및 패리티 청크를 다수의 데이터 서버로 분산 저장하는 환경에서, 스트라입을 구성하는 상기 패리티 청크를 수신하는 통신부, 상기 패리티 청크를 저장하는 저장소, 갱신 데이터 청크와 이전 저장된 데이터 청크 간의 연산을 수행하여 산출된 부분 패리티를 수신하여 저장 관리하는 제어부를 포함하는 것을 특징으로 하는 데이터 서버 장치의 구성을 개시한다.
상기 제어부는 상기 부분 패리티 수신을 위한 버퍼를 할당하여 부분 패리티를 저장하고 해당 부분 패리티 청크 파일에 대한 접근을 제한시키며, 상기 버퍼에 저장된 부분 패리티를 청크 데이터 영역의 해당 세그먼트 영역에 저장한 후 부분 패리티 청크 파일에 대한 접근 제한을 해제하도록 제어하는 것을 특징으로 한다.
상기 제어부는 상기 할당된 버퍼들을 메모리로 반환하고 상기 부분 패리티 전송 요청에 대한 응답을 반환하도록 제어하는 것을 특징으로 한다.
상기 제어부는 상기 부분 패리티의 상기 세그먼트 영역 저장에서 세그먼트 영역을 확장하거나, 세그먼트를 삽입하거나, 새 세그먼트를 추가하거나, 이전 세그먼트와 병합하여 세그먼트 정보 배열 조정을 수행하는 것을 특징으로 한다.
상기 제어부는 상기 부분 패리티를 이용하여 상기 패리티 청크를 갱신하는 것을 특징으로 한다.
상기 제어부는 클라이언트로부터 데이터 읽기 장애 처리 요청 수신 시 패리티 청크 파일에 대한 접근을 제한하고, 패리티 갱신을 수행한 후 원격으로 수신된 데이터 청크들에 대하여 복구된 데이터를 클라이언트로 전송하고 패리티 청크 파일에 대한 접근 제한을 해제시키는 것을 특징으로 한다.
상기 제어부는 상기 데이터 쓰기 장애 복구 요청 수신 시 상기 패리티 갱신을 수행하고, 갱신된 패리티 청크를 기반으로 이전 데이터를 복구한 후, 이전 데이터 갱신 데이터 및 현재 패리티 데이터 연산을 통해 산출된 신규 패리티를 저장하는 것을 특징으로 한다.
본 발명은 또한, 파일의 데이터를 청크 단위로 나누고, 오류 복구를 위한 패리티를 산출하여 스트라입을 구성하고, 스트라입에 포함되는 데이터 청크 및 패리티 청크를 다수의 데이터 서버로 분산 저장하는 환경에서, 스트라입 구조의 데이터 청크 및 패리티 청크를 데이터 서버들이 저장하는 저장 과정, 상기 데이터 청크를 저장한 데이터 서버가 갱신 데이터 청크 저장 과정에서 이전 데이터 청크를 상기 생신 데이터 청크를 이용한 부분 패리티를 생성하는 부분 패리티 생성 과정, 상기 부분 패리티를 상기 패리티 청크를 저장하는 데이터 서버에 전송하는 부분 패리티 전송 과정을 포함하는 것을 특징으로 하는 패리티 청크 운용 방법의 구성을 개시한다.
상술한 바와 같이, 본 발명의 분산 RAID 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치에 따르면, 본 발명은 부분 패리티와 패리티 청크를 동일 데이터 서버에서 저장 및 관리하도록 함으로써, 최소한의 네트워크 오버헤드로 성능 저하를 방지할 수 있다.
또한 본 발명은 패리티 갱신 전에 장애로 인한 갱신 데이터 손실을 방지하고 가용성을 개선시킬 수 있다.
또한 본 발명은 degraded 입출력 처리에서 선행되는 패리티 갱신에 필요한 모든 부분 패리티 처리를 패리티 청크와 동일한 저장소에서 관리하기 때문에 추가적인 네트워크 오버헤드 없이 패리티를 갱신하여 degraded 입출력 처리 성능을 개선할 수 있다.
도 1은 본 발명과 관련한 비대칭 클러스터링 파일시스템 구조를 나타낸 도면.
도 2는 본 발명과 관련한 비대칭 클러스터링 파일시스템에서 데이터 및 패리티의 분산 저장 구조를 설명하기 위한 도면.
도 3은 본 발명에서 제안하는 비동기적 패리티 갱신을 수행하는 시스템 운용을 설명하기 위한 도면.
도 4a는 본 발명에서 제안하는 부분 패리티를 활용한 데이터 갱신 처리를 설명하기 위한 도면.
도 4b는 본 발명에서 제안하는 부분 패리티를 활용한 데이터 갱신 처리 흐름도.
도 5는 본 발명에서 제안하는 부분 패리티 청크 파일의 레이아웃 구조.
도 6a는 본 발명에서 제안하는 패리티 및 부분 패리티 청크 파일의 저장 구조.
도 6b는 본 발명에서 제안하는 부분 패리티 전송 요청 처리 흐름도.
도 6c는 본 발명에서 제안하는 부분 패리티 청크 파일의 세그먼트 관리 설명을 위한 도면.
도 7a는 본 발명에서 제안하는 패리티 갱신 처리를 설명하기 위한 도면.
도 7b는 본 발명에서 제안하는 패리티 갱신 처리 흐름도.
도 8c는 본 발명에서 제안하는 시스템에서 Degraded read 처리 흐름도.
도 8b는 본 발명에서 제안하는 시스템에서 Degraded write 처리 흐름도.
도 9는 본 발명에서 제안하는 데이터 관리를 수행하는 데이터 서버 장치 구성도.
도 10은 본 발명에서 제안하는 패리티 운용을 수행하는 데이터 서버 장치 구성도.
이하 본 발명이 속하는 기술분야에서 통상의 지식을 가진자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부도면을 참조하여 본 발명에서 제안하는 패리티 청크와 부분 패리티 청크를 동일 저장소에서 관리하는 파일 갱신 처리 방식에 대해 설명하기로 한다.
도 1은 본 발명과 관련한 비대칭 클러스터링 파일시스템 구조를 개략적으로 나타낸 도면이다.
도 1을 참조하면, 본 발명의 비대칭 클러스터링 파일시스템은 클라이언트(110), 메타데이터 서버(100) 및 다수의 데이터 서버(120)를 포함할 수 있다. 그리고 파일 메타데이터를 관리하는 메타데이터 서버(100), 파일 접근을 수행하는 클라이언트(110), 파일 데이터를 관리하는 다수의 데이터 서버(120)가 네트워크(130) 예컨대 이더넷으로 연결되어 통신을 통해 상호 운용된다. 메타데이터 서버(100)는 파일시스템의 파일 메타데이터를 저장하는 저장소로 데이터베이스나 로컬 파일시스템(101)을 활용한다. 단일 데이터 서버(140)는 하나 이상의 디스크 저장 장치를 포함하는 데이터 저장소(150)를 포함할 수 있으며, 장착된 디스크 수에 의해 단일 데이터 서버(140)의 저장 공간 크기가 결정된다. 파일 데이터를 저장하는 데이터 저장소(150)는 로컬 파일시스템을 활용한다.
도 2는 본 발명과 관련한 비대칭 클러스터링 파일시스템에서 데이터 및 패리티를 분산 저장하는 구조를 설명하기 위한 도면이다.
도 2를 참조하면, 클라이언트(210)에서 파일 A(220)는 ?뼜?라는 일정 단위로 분할된다. 여기서 분할 크기는 미리 고정하거나 파일 크기를 저장하려는 데이터 서버(230, 231, 232, 233, 234) 수로 나눈 값과 같이 파일 시스템을 구성하는 사용자가 정의할 수 있다. 일정 수의 데이터 청크들(221, 222, 223)마다 패리티 청크(224, 225)가 생성된다. 생성된 패리티 청크 수와 스트라입을 구성하는 데이터 청크의 수에 대한 정의는 사용자에 의해 결정될 수 있다. 데이터 청크와 패리티 청크를 저장할 데이터 서버(230, 231, 232, 233, 234)의 선정은 메타데이터 서버(200)에서 각 데이터 서버(230, 231, 232, 233, 234)의 저장 공간 이용률 등을 고려하여 선정하고, 선정 결과를 메타데이터 서버(200)가 클라이언트(210)에 알려줄 수 있다.
도 3은 본 발명에서 제안하는 방식에 의해 비동기적으로 패리티를 산출하기 위한 시스템 운용을 설명하기 위한 도면이다.
도 3을 참조하면, 클라이언트(310)는 쓰고자 하는 파일 A(320)를 일정 단위인 청크(321)로 나누고, 사용자에 의해 정의된 수의 청크들을 스트라입(322)으로 묶어 메타데이터 서버(300)가 알려준 데이터 서버들로 분산 저장한다(323). 파일 저장이 완료되면 클라이언트(310)는 메타데이터 서버(200)로 데이터 쓰기 완료 알림(324) 메시지를 전송한다.
메타데이터 서버(300)는 데이터 쓰기 완료 알림 메시지를 통해 전달된 해당 파일을 복구 프로세스(301)가 관리하는 복구 큐에 저장하고, 클라이언트(310)로 응답을 반환한다. 복구 큐는 파일 메타데이터 정보를 확인할 수 있도록 파일 경로명 또는 파일 inode 등 유일성을 갖는 파일 식별자를 저장한다.
복구 프로세스(301)는 메타데이터 서버(300)의 프로세스로부터 생성되는 데몬 쓰레드 형태나 독립적인 프로세스 형태로 운용될 수 있다. 복구 프로세스(301)는 복구 큐에 저장되는 파일에 대한 패리티 청크 할당과 패리티 산출 요청, 오류 데이터 복구 등을 특정 데이터 서버로 명령하는 기능을 수행한다(302).
도4a는 본 발명에서 제안하는 부분 패리티를 활용한 데이터 갱신 처리 구조이고, 도4b는 처리 흐름도이다.
도 4a 및 도 4b를 참조하면, 이전 도면들에서 설명한 파일 A를 구성하는 스트라입(401)은 데이터 서버1 내지 데이터 서버5(402 내지 406)에 분산 저장될 수 있다. 각 청크는 고유한 식별자를 파일명으로 해당 데이터 서버의 로컬 파일시스템에 저장된다. 클라이언트는 데이터 청크1(0x1212)에 대해 시작 오프셋과 데이터 크기를 저장한 쓰기 요청(400)을 데이터 서버1(402)로 네트워크를 통해 보낸다.
쓰기 요청을 받은(420) 데이터 서버1(402)은 갱신데이터 수신버퍼(407)에 해당하는 버퍼1을 할당하고, 할당된 버퍼1을 이용하여 클라이언트로부터 데이터 청크를 수신한다(421). 수신이 완료되면 데이터 서버1(402)은 갱신하려는 데이터 청크 파일에 대한 접근을 제한한다(422). 그리고 데이터 서버1(402)는 이전 데이터 버퍼(408)에 해당하는 버퍼2를 할당하고, 할당된 버퍼2에 현재 데이터 청크 파일에 저장된 데이터를 읽어 저장한다(423).
데이터 서버1(402)은 두 버퍼(407, 408)의 데이터를 XOR(exclusive-OR) 연산을 수행한다(424). 연산 결과로 부분 패리티가 산출되면, 데이터 서버1(402)은 이전데이터 버퍼(408)에 해당하는 버퍼2에 저장된다(425). 연산이 끝나면 데이터 서버1(402)은 갱신데이터 수신버퍼(407)에 해당하는 버퍼1의 데이터를 해당 데이터 청크 파일에 저장한다(426). 데이터 서버1(402)은 버퍼2에 저장된 부분 패리티를 패리티 청크가 저장된 데이터 서버 예컨대 데이터 서버5(406)로 네트워크를 통해 전송한다(427).
패리티 청크를 저장하는 데이터 서버5(406)는 부분 패리티 처리를 수행하고 그에 따른 응답을 데이터 서버1(402)로 반환한다. 부분 패리티 처리와 관련해서 도 6b 등을 참조하여 보다 상세히 후술하기로 한다.
한편, 데이터 서버5(406)로부터 응답을 수신하면 데이터 서버1(402)은 갱신된 데이터 청크 파일에 대한 접근 제한을 해제한다(428). 그리고 데이터 서버1(402)은 할당된 버퍼들(407, 408)을 메모리로 반환(429)시킴으로써 데이터 갱신 처리를 완료한다(430).
도 5는 본 발명에서 제안하는 부분 패리티 청크 파일의 레이아웃 구조를 설명하기 위한 도면이다.
도 5를 참조하면, 부분 패리티 청크 파일의 레이아웃(500)은 크게 청크 헤더 영역(501)과 청크 데이터(508) 영역으로 구성된다. 청크 헤더 영역(501)은 파일 앞부분(오프셋 0)에 저장되며, 청크 메타데이터 정보(502)와 세그먼트 정보 배열(503)을 포함한다. 청크 메타데이터 정보(502)는 파일 Inode 번호(64 비트), 파일 버전(64비트), 스트라입 인덱스(32 비트), 청크 인덱스(32 비트), 유효 세그먼트 수(32 비트) 등으로 구성된다. 세그먼트 정보 배열(503)은 세그먼트 시작 오프셋과 저장된 데이터 크기로 구성되는 세그먼트 정보 자료 구조(505 내지 507)의 배열이며, 세그먼트는 서로 인접하지 않지만 시작 오프셋을 기준으로 올림차순으로 정렬한다. 배열 크기는 메타데이터 정보 중 유효 세그먼트 수(504)에 의해 결정된다. 청크 헤더 영역(501)의 크기는 청크 데이터 영역(508)의 크기와 부분 패리티를 처리하는 최소 크기에 연동되어 결정될 수 있다.
청크 데이터 영역(508)은 실제 부분 패리티 데이터가 저장되는 영역이다. 청크 데이터 영역(508)의 크기는 메타데이터 서버에서 파일을 저장하는 스토리지 볼륨을 구성할 때 정의된다. 부분 패리티 데이터가 저장되는 세그먼트(509 내지 511)의 위치 정보는 세그먼트 정보 배열(503)에서 관리한다. 청크 데이터 영역(508)을 접근할 때는 청크 헤더 영역(501)을 고려하여 (파일 오프셋 + 청크 헤더 영역 크기)로 실제 파일 오프셋을 조정하는 과정이 선행되어야 한다.
도 6a는 본 발명에서 제안하는 패리티 및 부분 패리티 청크 파일의 저장 구조이다.
도 4a 및 도 6a를 참조하면, "/disk/ds5"는 도 4a의 파일 A에서 패리티 청크 파일이 저장되는 데이터 서버5(406)의 데이터 저장소 경로이며, 로컬 파일시스템으로 관리한다. 동일 스트라입의 데이터 청크들이 갱신될 때마다 산출되는 부분 패리티는 패리티 청크 파일(600)과 동일한 디렉터리에서 독립 파일로 관리한다. 부분 패리티는 601 내지 604에서와 같이 데이터 청크 식별자를 파일명으로 생성될 수 있다. 부분 패리티는 패리티 갱신 과정을 통해 패리티에 반영 전까지 전송되며, 해당 부분 패리티 청크 파일에 저장한다.
도 6b는 본 발명에서 제안하는 부분 패리티 전송 요청을 처리하는 흐름도이다.
도 4a 및 도 6b를 참조하면, 데이터 청크를 갱신한 데이터 서버로부터 부분 패리티 전송 요청이 수신되면(610), 패리티 청크를 관리하는 데이터 서버 예컨대, 데이터 서버5는 우선 해당 부분 패리티 청크 파일의 존재 여부를 확인한다(611). 이때, 데이터 서버5는 요청과 함께 전달된 패리티 청크 식별자를 이용하여 디렉터리를 탐색하고, 데이터 청크 식별자로 부분 패리티 파일이 존재하는지 검색한다. 해당 디렉터리에 파일이 존재하지 않으면 데이터 서버5는 데이터 청크 식별자를 파일명으로 부분 패리티 청크 파일을 생성한다(612).
그리고 데이터 서버5는 부분 패리티 수신 버퍼에 해당하는 버퍼1을 할당한 후 수신된 부분 패리티를 버퍼1에 저장한다(613). 이후 데이터 서버5는 해당 부분 패리티 청크 파일에 대한 접근을 제한(Locking)시키고(614), 청크 헤더 정보를 읽어 메모리 구조에 저장한다(615). 데이터 서버5는 메모리에 저장된 세그먼트 정보 배열과 수신된 부분 패리티의 시작 오프셋과 데이터 크기를 비교하여 접근해야 하는 세그먼트 영역을 검색하고(616), 필요한 경우 세그먼트 정보 배열을 조정한다(617). 세그먼트 정보 배열 조정은 도 6c에서 설명한다.
다음으로, 데이터 서버5는 메모리의 갱신된 청크 헤더 정보를 해당 부분 패리티 청크 파일에 저장하고(618), 부분 패리티 수신 버퍼를 청크 데이터 영역의 해당 세그먼트 영역에 저장한다(619). 저장이 완료되면 데이터 서버5는 부분 패리티 청크 파일에 대한 접근 제한을 해제(Unlocking)한다(620). 데이터 서버5는 할당된 버퍼들을 메모리로 반환하고(621), 부분 패리티 전송 요청에 대한 응답을 반환한다(622).
도 6c는 본 발명에서 제안하는 부분 패리티 청크 파일의 세그먼트 관리 구조이다.
도 4a 및 도 6c를 참조하면, 패리티 청크를 관리하는 데이터 서버는 부분 패리티 처리를 위하여 세그먼트 관리를 수행할 수 있다. 이때, 데이터 서버의 세그먼트 관리 기능은 크게 확장, 끼어넣기(삽입), 추가, 병합으로 정의된다. 예를 들어, 유효한 세그먼트 수가 3이고(630), 배열 인덱스 별로 세그먼트 정보(631 내지 633)를 저장하고 있는 부분 패리티 청크 파일이 있다고 하자.
먼저, 확장의 예로서, 전송된 부분 패리티 영역의 시작 오프셋이 0x1000이고, 크기가 0x2000이면(640), 세그먼트[0] 영역의 0x1000부터 0x2000까지 겹친다. 결과적으로 데이터 서버5는 세그먼트[0] 크기를 0x3000으로 확장한다(641). 확장 후 유효한 세그먼트 수는 유지되지만(642) 특정 세그먼트 정보가 변경될 수 있다.
삽입의 예로서, 전송된 부분 패리티 영역의 시작 오프셋이 0x200000이고, 크기가 0x2000이면(650), 사용 중인 영역이 아니므로 신규 세그먼트 할당이 필요하고, 저장 위치는 세그먼트[1]과 세그먼트[2] 사이이다. 따라서 데이터 서버5는 현재 세그먼트[2] 정보를 세그먼트[3]으로 이동하여 저장하고(652), 신규 할당된 세그먼트 정보를 세그먼트[2]에 저장한다(651). 삽입 후 데이터 서버5는 유효한 세그먼트 수를 4로 증가시킨다(653).
추가의 예로서, 전송된 부분 패리티 영역의 시작 오프셋이 0x600000이고, 크기가 0x2000이면(660), 마지막 세그먼트와도 인접하지 않으므로 데이터 서버5는 신규 세그먼트[3]을 추가하고, 정보를 저장한다(661). 추가 후 데이터 서버5는 유효한 세그먼트 수를 4로 증가시킨다(662).
병합의 예로서, 전송된 부분 패리티 영역의 시작 오프셋이 0x0이고, 크기가 0x140000이면(670), 데이터 서버5는 세그먼트[0]에서 세그먼트[1]까지 빈 공간 없이 데이터를 저장한다. 이에 따라, 데이터 서버5는 두 세그먼트 정보를 세그먼트[0]으로 병합하여 데이터 크기를 0x142000로 확장시키고(671), 세그먼트[2]를 세그먼트[1]로 이동 저장한다(672). 데이터 서버5는 병합 후 유효한 세그먼트 수를 2로 감소시킨다(673).
도 7a는 본 발명에서 제안하는 패리티 갱신 요청의 처리 구조이고, 도 7b는 처리 흐름도이다.
도 4a, 도 7a 및 도 7b를 참조하면, 패리티 청크를 관리하는 데이터 서버5의 패리티 갱신은 메타데이터 서버의 복구 프로세스로부터 직접 요청되어 처리되는 경우와 데이터 청크 장애 발생에 따라 클라이언트로부터 degraded read 혹은 degraded write 요청이 전달되어 처리되는 경우를 포함할 수 있다. 어느 경우든 부분 패리티 청크 파일이 존재하여 이를 패리티 청크 파일에 반영하는 과정을 패리티 갱신이라 한다.
우선 데이터 서버5는 부분 패리티를 저장하는 인코딩 크기의 버퍼2(707)와 패리티를 저장하는 청크 크기의 버퍼1(708)을 메모리에 할당한다(721 및 722). 그리고 데이터 서버5는 패리티 청크 파일에 대한 접근을 제한한다(723). 다음으로, 데이터 서버5는 현재 처리되는 부분 패리티는 마지막 부분 패리티 청크 파일인지 확인한다. 마지막 부분 패리티 청크 파일이 아니면 데이터 서버5는 부분 패리티 청크 파일의 청크 헤더 정보(702)를 메모리 구조(706)에 저장한다(725).
데이터 서버5는 유효한 세그먼트 수를 인덱스 크기로 하여 현재 처리되는 세그먼트가 마지막 세그먼트 인덱스를 가지는지 확인하면서 세그먼트 정보 배열로부터 순차적으로 처리한다(726). 현재 처리되는 세그먼트가 마지막 세그먼트 인덱스를 가지지 않는 경우, 데이터 서버5는 세그먼트 단위로 인코딩 크기 범위 내에서 부분 패리티 데이터(703)와 동일한 오프셋의 패리티 데이터(709)를 각 버퍼1 및 버퍼2(707, 708)로 읽는다(727 및 728). 데이터 서버5는 두 버퍼(707, 708)에 저장된 데이터를 XOR(exclusive-OR) 연산 수행하고(729), 산출된 결과는 패리티 버퍼1(708)에 저장한다. 이후 데이터 서버5는 패리티 버퍼1(708)에 저장된 산출 결과를 패리티 청크 파일의 해당 오프셋(709)에 저장한다(730).
상술한 과정을 나머지 부분 패리티 세그먼트(704 및 705)와 패리티 세그먼트(710 및 711)에 대해서도 수행한다(726). 세그먼트 크기가 정의된 버퍼 크기를 넘으면 버퍼 크기 단위로 나누어 수행한다. 모든 세그먼트에 대해 패리티 갱신이 완료되면 데이터 서버5는 해당 부분 패리티 청크 파일(701)을 삭제한다(731). 데이터 서버5는 상술한 갱신 과정을 모든 부분 패리티 청크 파일에 대해 수행하고(724), 완료되면 패리티 청크 파일에 대한 접근 제한을 해제하고(732), 모든 버퍼를 메모리로 반환한다(733).
도 8a는 본 발명에서 제안하는 시스템에서 Degraded read 처리 흐름도이다.
도 4a, 도 7a, 도 7b 및 도 8a를 참조하면, 클라이언트는 읽기 처리 중에 데이터 청크 장애를 감지하면 동일 스트라입의 패리티 청크가 저장된 데이터 서버5로 degraded read 요청을 전달한다. 그러면 패리티 청크가 저장된 데이터 서버5는 degraded read 요청을 수신한다(800). 이에 따라 데이터 서버5는 해당 패리티 청크 파일에 대한 접근을 제한한다(801). 그리고 데이터 서버5는 도 7a와 7b에서 설명한 방식으로 우선 패리티 청크 파일의 데이터를 갱신하여 패리티 갱신을 수행한다(802). 데이터 서버5는 복구된 장애 데이터를 저장할 수 있는 복구 데이터 버퍼를 할당하고(803), 스트라입을 구성하는 나머지 데이터 청크 수만큼 패킷 크기의 수신 버퍼들을 할당한다(804). 그리고 데이터 서버5는 원격으로 해당 데이터 청크를 저장한 데이터 서버에 데이터 청크들을 요청하고, 수신된 데이터 청크를 각 버퍼에 저장하고, 로컬 디스크의 패리티 청크 파일로부터 읽은 패리티와 함께 복구(decoding) 연산을 수행하여 장애 데이터를 복구한다(806). 이후 데이터 서버5는 복구된 데이터를 클라이언트로 전송하고(807), 모든 버퍼를 메모리로 반환한다(808). 데이터 서버5는 패리티 청크 파일에 대한 접근 제한을 해제시킴으로써(809) degraded read 요청은 종료된다(810).
도 8b는 본 발명에서 제안하는 시스템에서 Degraded write 처리 흐름도이다.
도 4a, 도 7a, 도 7b 및 도 8b를 참조하면, 클라이언트에서 쓰기 처리 중에 데이터 청크 장애를 감지하면 동일 스트라입의 패리티 청크가 저장된 데이터 서버5로 degraded write 요청을 전달한다. 이에 따라 패리티 청크를 저장 관리하는 데이터 서버5는 degraded write 요청을 수신한다(811). 요청을 수신하면, 데이터 서버5는 갱신 데이터를 수신할 버퍼1을 할당하고, 버퍼1을 이용하여 갱신 데이터를 수신한다(812). 그리고 데이터 서버5는 도 7a와 7b에서 설명한 방식으로 우선 패리티 청크 파일의 데이터를 갱신하여 패리티 갱신 처리를 수행한다(813).
그리고 데이터 서버5는 복구된 장애 데이터를 저장할 수 있는 복구 데이터 버퍼를 할당하고(814), 스트라입을 구성하는 나머지 데이터 청크 수만큼 패킷 크기의 수신 버퍼들을 할당한다(815). 데이터 서버5는 원격으로 데이터 청크들을 요청하고, 요청에 따라 수신된 데이터를 각 버퍼에 저장하고, 로컬 디스크의 패리티 청크 파일로부터 읽어 들인 패리티(816)와 함께 복구(decoding) 연산을 수행하여 장애 데이터를 복구한다(817). 복구된 데이터는 수신된 갱신 데이터의 old 데이터이다. 데이터 서버5는 복구된 old 데이터, 수신된 갱신 데이터, 현재 패리티 데이터를 가지고 인코딩(encoding) 연산을 수행한다(818). 데이터 서버5는 연산 결과로 산출된 신규 패리티를 패리티 청크 파일에 저장한다(819). 이후, 데이터 서버5는 모든 버퍼를 메모리로 반환하고(820), 패리티 청크 파일에 대한 접근 제한을 해제시킴으로써(821) degraded write 요청은 종료된다(822).
도 9는 본 발명의 실시예에 따른 데이터 청크가 저장된 데이터 서버 장치의 구성을 개략적으로 나타낸 도면이다.
도 9를 참조하면, 본 발명의 데이터 청크가 저장되는 데이터 서버 장치 900은 앞서 도 4a에서 설명한 데이터 서버 1, 2, 3, 4 중 적어도 하나가 될 수 있다. 이러한 데이터 서버 장치 900은 통신부 910, 제어부 960 및 저장소 950을 포함할 수 있다.
이와 같은 구성을 가지는 데이터 서버 장치 900은 데이터 갱신 요청을 클라이언트로부터 수신하면 부분 패리티를 이전 데이터 청크와 갱신 데이터 청크를 기반으로 생성하고 이를 패리티 청크를 관리하는 데이터 서버 장치에 전송할 수 있다. 데이터 서버 장치 900에 저장된 데이터 청크의 복구는 패리티 청크를 관리하는 데이터 서버 장치가 제공하는 패리티 청크를 이용하여 수행될 수 있다.
이를 위하여 통신부 910은 클라이언트와 패리티 청크를 관리하는 데이터 서버 장치 간의 통신 채널을 형성할 수 있다. 통신부 910은 예컨대 이더넷 통신을 지원하는 통신 모듈로 구성될 수 있다. 통신부 910은 데이터 청크 및 갱신 데이터 청크를 수신할 수 있다. 그리고 통신부 910은 데이터 청크 갱신 과정에서 발생하는 부분 패리티 정보의 전송을 수행할 수 있다.
저장소 950은 데이터 청크를 저장할 수 있다. 저장소 950은 클라이언트로부터 갱신 데이터 청크를 수신하면, 이전 저장된 데이터 청크를 갱신 데이터 청크로 교체 저장할 수 있다. 저장소 950에 저장된 데이터 청크는 클라이언트 요청에 따라 검색 및 전달될 수 있다. 저장소 950은 데이터 장애가 발생한 경우 패리티 청크를 저장한 데이터 서버의 처리에 따라 데이터 복구 읽기 또는 쓰기를 지원할 수 있다.
제어부 960은 데이터 청크를 저장하는 데이터 서버 운용을 위한 신호 처리와 데이터 처리를 지원할 수 있다. 예컨대, 제어부 960은 클라이언트가 전달하는 데이터 청크를 저장소 950에 저장할 수 있다. 또한 제어부 960은 클라이언트 요청에 따라 저장소 950에 저장된 데이터 청크를 클라이언트에 제공할 수 있다. 또한 제어부 960은 패리티 청크를 저장 관리하는 데이터 서버 요청에 따라 데이터 청크를 제공할 수도 있다. 특히, 제어부 960은 부분 패리티 처리부 961을 포함할 수 있다. 부분 패리티 처리부 961은 부분 패리티 생성과 전송을 처리할 수 있다. 이를 보다 상세히 설명하면, 부분 패리티 처리부 961은 갱신 데이터 청크를 저장할 버퍼와 이전 데이터 청크를 저장할 버퍼 할당을 제어할 수 있다. 그리고 부분 패리티 처리부 961은 갱신 데이터 청크와 이전 데이터 청크의 XOR 연산을 통하여 부분 패리티를 산출할 수 있다. 부분 패리티 처리부 961은 산출된 부분 패리티를 패리티 청크를 관리하는 데이터 서버에 전달할 수 있다. 이때, 부분 패리티 처리부 961은 패리티 청크를 관리하는 데이터 서버의 위치 정보를 메타데이터 서버를 통해 확인하거나, 사전에 데이터 청크를 저장하는 과정에서 메타데이터 서버로부터 수신할 수 있다. 부분 패리티 처리부 961은 부분 패리티 산출 및 전송 이후 할당된 버퍼들의 반환을 제어할 수 있다.
도 10은 본 발명의 실시예에 따른 데이터 청크가 저장된 데이터 서버 장치의 구성을 개략적으로 나타낸 도면이다.
도 10을 참조하면, 본 발명의 패리티 청크가 저장된 데이터 서버 장치 1000은 앞서 도 4a에서 설명한 데이터 서버5일 수 있다. 이러한 데이터 서버 장치 1000은 통신부 1010, 저장소 1050, 제어부 1060을 포함할 수 있다.
이와 같은 구성의 패리티 청크를 저장 관리하는 데이터 서버 장치 1000은 클라이언트가 전달한 청크들 중 패리티 청크를 저장할 수 있다. 그리고 데이터 서버 장치 1000은 데이터 청크를 저장하는 데이터 서버 장치 900으로부터 부분 패리티를 수신할 수 있다. 데이터 서버 장치 1000은 수신된 부분 패리티를 저장 관리할 수 있다. 이때, 데이터 서버 장치 1000은 부분 패리티를 이용하여 기 저장된 패리티 청크를 갱신할 수 있다.
통신부 1010은 패리티 청크를 저장 관리하는 데이터 서버 장치 1000의 통신 기능을 수행할 수 있다. 통신부 1010은 클라이언트와 통신 채널을 형성하고, 클라이언트로부터 패리티 청크를 수신할 수 있다. 한편, 통신부 1010은 데이터 청크를 저장하는 데이터 서버 장치 900으로부터 부분 패리티를 수신할 수 있다. 또한, 통신부 1010은 클라이언트로부터 데이터 장애 복구 요청을 수신할 수 있다. 통신부 1010은 복구된 데이터를 클라이언트로 전달하거나 해당 데이터 서버 장치에 전달할 수 있다.
저장소 1050은 패리티 청크를 저장할 수 있다. 저장소 1050은 부분 패리티 청크를 임시 저장할 수 있다. 저장소 1050은 부분 패리티 청크를 기반으로 데이터 갱신된 패리티 청크를 저장할 수 있다. 저장소 1050은 데이터 복원 과정에서 데이터 청크를 임시 저장할 수 있는 버퍼로 이용될 수 있다.
제어부 1060은 패리티 청크의 저장, 부분 패리티 수신, 수신된 부분 패리티의 적용, 데이터 복구 등의 과정을 제어할 수 있다. 이를 위하여 제어부 1060은 패리티 관리를 위한 패리티 관리부 1061을 포함할 수 있다. 패리티 관리부 1061은 데이터 청크를 저장하는 데이터 서버 장치 900이 전송한 부분 패리티 전송 요청의 처리, 세그먼트 관리 기능, 패리티 갱신 처리 기능, degraded read 또는 degraded write를 위한 데이터 청크 및 패리티 청크의 연산 및 응답 반환을 수행할 수 있다. 이를 보다 상세히 설명하면, 패리티 관리부 1061은 부분 패리티 수신을 위하여 버퍼 할당을 수행할 수 있다. 그리고 패리티 관리부 1061은 부분 패리티 청크의 식별자 정보를 확인하여 갱신할 위치를 확인하고, 해당 위치의 패리티 청크를 부분 패리티 청크로 갱신할 수 있다. 또한 패리티 관리부 1061은 클라이언트로부터 데이터 장애 복구 요청을 받으면, 앞 도면들에서 설명한 degraded read 또는 degrade write 제어를 수행할 수 있다.
한편, 도 9 및 도 10에서는 각각 데이터 청크가 저장되는 데이터 서버 장치와 패리티 청크가 저장되는 데이터 서버 장치를 구분하여 설명하였으나, 본 발명이 이에 한정되는 것은 아니다. 즉 데이터 서버 장치는 메타데이터 서버에 의해 선택되는 과정에서 데이터 청크 또는 패리티 청크 중 어느 하나가 저장 및 관리될 수 있다. 따라서, 데이터 청크를 저장하도록 설계된 데이터 서버 장치라 하더라도 필요에 따라 패리티 청크를 저장하고 해당 패리티 청크의 운용을 지원할 수도 있다. 또한 패리티 청크를 저장하도록 설계된 데이터 서버 장치라 하더라도 필요에 따라 데이터 청크를 저장하고, 부분 패리티를 산출하여 패리티 청크를 저장하는 다른 데이터 서버 장치에 전송하는 역할을 수행할 수도 있다. 따라서, 상술한 데이터 서버 장치는 데이터 청크를 저장 및 운용하는 기능과 패리티 청크를 저장 및 운용하는 기능 중 적어도 하나의 기능을 지원할 수 있도록 설계될 수 있을 것이다.
상술한 본 발명의 바람직한 실시예는 예시의 목적을 위한 것으로, 당업자라면 첨부된 특허청구범위의 기술적 사상과 범위를 통해 다양한 수정, 변경, 대체 및 부가가 가능할 것이며, 이러한 수정 변경 등은 이하의 특허청구범위에 속하는 것으로 보아야 할 것이다.
100 : 메타데이터 서버
110 : 클라이언트
120 : 데이터 서버

Claims (20)

  1. 파일의 데이터를 청크 단위로 나누고, 오류 복구를 위한 패리티를 산출하여 스트라입을 구성하고, 스트라입에 포함되는 데이터 청크 및 패리티 청크를 다수의 데이터 서버로 분산 저장하는 환경에서,
    스트라입을 구성하는 데이터 청크를 수신하는 통신부;
    상기 데이터 청크를 저장하는 저장소;
    갱신 데이터 청크를 수신하는 경우 이전 저장된 데이터 청크와 상기 갱신 데이터 청크 간의 연산을 수행하여 부분 패리티를 산출하고, 산출된 부분 패리티를 상기 스트라입을 구성하는 패리티 청크를 관리하는 서버 장치에 전송하는 제어부;를 포함하는 것을 특징으로 하는 데이터 서버 장치.
  2. 제1항에 있어서,
    상기 제어부는
    상기 갱신 데이터 청크 저장을 위한 버퍼;
    상기 이전 저장된 데이터 청크 저장을 위한 버퍼; 할당을 제어하는 것을 특징으로 하는 데이터 서버 장치.
  3. 제2항에 있어서,
    상기 제어부는
    상기 갱신 데이터 청크와 상기 이전 저장된 데이터 청크 간의 XOR 연산 결과 값을 부분 패리티로 산출하는 것을 특징으로 하는 데이터 서버 장치.
  4. 제3항에 있어서,
    상기 제어부는
    상기 부분 패리티 산출 이후 상기 버퍼 반환을 제어하는 것을 특징으로 하는 데이터 서버 장치.
  5. 제1항에 있어서,
    상기 제어부는
    상기 데이터 청크 식별자를 상기 부분 패리티의 파일명으로 정의하는 것을 특징으로 하는 데이터 서버 장치.
  6. 파일의 데이터를 청크 단위로 나누고, 오류 복구를 위한 패리티를 산출하여 스트라입을 구성하고, 스트라입에 포함되는 데이터 청크 및 패리티 청크를 다수의 데이터 서버로 분산 저장하는 환경에서,
    스트라입을 구성하는 상기 패리티 청크를 수신하는 통신부;
    상기 패리티 청크를 저장하는 저장소;
    갱신 데이터 청크와 이전 저장된 데이터 청크 간의 연산을 수행하여 산출된 부분 패리티를 수신하여 저장 관리하는 제어부;를 포함하는 것을 특징으로 하는 데이터 서버 장치.
  7. 제6항에 있어서,
    상기 제어부는
    상기 부분 패리티 수신을 위한 버퍼를 할당하여 부분 패리티를 저장하고 해당 부분 패리티 청크 파일에 대한 접근을 제한시키며, 상기 버퍼에 저장된 부분 패리티를 청크 데이터 영역의 해당 세그먼트 영역에 저장한 후 부분 패리티 청크 파일에 대한 접근 제한을 해제하도록 제어하는 것을 특징으로 하는 데이터 서버 장치.
  8. 제7항에 있어서,
    상기 제어부는
    상기 할당된 버퍼들을 메모리로 반환하고 상기 부분 패리티 전송 요청에 대한 응답을 반환하도록 제어하는 것을 특징으로 하는 데이터 서버 장치.
  9. 제7항에 있어서,
    상기 제어부는
    상기 부분 패리티의 상기 세그먼트 영역 저장에서 세그먼트 영역을 확장하거나, 세그먼트를 삽입하거나, 새 세그먼트를 추가하거나, 이전 세그먼트와 병합하여 세그먼트 정보 배열 조정을 수행하는 것을 특징으로 하는 데이터 서버 장치.
  10. 제6항에 있어서,
    상기 제어부는
    상기 부분 패리티를 이용하여 상기 패리티 청크를 갱신하는 것을 특징으로 하는 데이터 서버 장치.
  11. 제10항에 있어서,
    상기 제어부는
    클라이언트로부터 데이터 읽기 장애 처리 요청 수신 시 패리티 청크 파일에 대한 접근을 제한하고, 패리티 갱신을 수행한 후 원격으로 수신된 데이터 청크들에 대하여 복구된 데이터를 클라이언트로 전송하고 패리티 청크 파일에 대한 접근 제한을 해제시키는 것을 특징으로 하는 데이터 서버 장치.
  12. 제10항에 있어서,
    상기 제어부는
    상기 데이터 쓰기 장애 복구 요청 수신 시 상기 패리티 갱신을 수행하고, 갱신된 패리티 청크를 기반으로 이전 데이터를 복구한 후, 이전 데이터 갱신 데이터 및 현재 패리티 데이터 연산을 통해 산출된 신규 패리티를 저장하는 것을 특징으로 하는 데이터 서버 장치.
  13. 파일의 데이터를 청크 단위로 나누고, 오류 복구를 위한 패리티를 산출하여 스트라입을 구성하고, 스트라입에 포함되는 데이터 청크 및 패리티 청크를 다수의 데이터 서버로 분산 저장하는 환경에서,
    스트라입 구조의 데이터 청크 및 패리티 청크를 데이터 서버들이 저장하는 저장 과정;
    상기 데이터 청크를 저장한 데이터 서버가 갱신 데이터 청크 저장 과정에서 이전 데이터 청크를 상기 생신 데이터 청크를 이용한 부분 패리티를 생성하는 부분 패리티 생성 과정;
    상기 부분 패리티를 상기 패리티 청크를 저장하는 데이터 서버에 전송하는 부분 패리티 전송 과정;을 포함하는 것을 특징으로 하는 패리티 청크 운용 방법.
  14. 제13항에 있어서,
    상기 부분 패리티 생성 과정은
    상기 데이터 청크를 저장하는 데이터 서버가 상기 갱신 데이터 청크 저장을 위한 버퍼 및 상기 이전 저장된 데이터 청크 저장을 위한 버퍼 할당을 수행하는 과정;을 더 포함하는 것을 특징으로 하는 패리티 청크 운용 방법.
  15. 제14항에 있어서,
    상기 데이터 청크를 저장하는 데이터 서버가 상기 갱신 데이터 청크와 상기 이전 저장된 데이터 청크 간의 XOR 연산 결과 값을 부분 패리티로 산출하는 과정;
    상기 부분 패리티 산출 이후 상기 버퍼를 반환하는 과정;을 더 포함하는 것을 특징으로 하는 패리티 청크 운용 방법.
  16. 제13항에 있어서,
    상기 패리티 청크를 저장하는 데이터 서버가 상기 부분 패리티 수신을 위한 버퍼를 할당하여 부분 패리티를 저장하는 과정;
    해당 부분 패리티 청크 파일에 대한 접근을 제한하는 과정;
    상기 버퍼에 저장된 부분 패리티를 청크 데이터 영역의 해당 세그먼트 영역에 저장하는 과정;
    상기 부분 패리티 청크 파일에 대한 접근 제한을 해제하는 과정;
    상기 할당된 버퍼들을 메모리로 반환하고 상기 부분 패리티 전송 요청에 대한 응답을 반환하는 과정;을 더 포함하는 것을 특징으로 하는 패리티 청크 운용 방법.
  17. 제16항에 있어서,
    상기 부분 패리티의 상기 세그먼트 영역 저장 과정에서 세그먼트 영역을 확장하는 과정, 세그먼트를 삽입하는 과정, 새 세그먼트를 추가하는 과정, 이전 세그먼트와 병합하는 과정 중 적어도 하나를 포함하는 세그먼트 정보 배열 조정 과정;을 더 포함하는 것을 특징으로 하는 패리티 청크 운용 방법.
  18. 제13항에 있어서,
    상기 부분 패리티를 이용하여 상기 패리티 청크를 갱신하는 과정;을 더 포함하는 패리티 청크 운용 방법.
  19. 제18항에 있어서,
    클라이언트로부터 데이터 읽기 장애 처리 요청을 수신하는 과정;
    상기 패리티 청크 파일에 대한 접근을 제한하는 과정;
    상기 패리티 갱신을 수행한 후 원격으로 수신된 데이터 청크들에 대하여 데이터를 복구하는 과정;
    상기 복구된 데이터를 클라이언트로 전송하고 패리티 청크 파일에 대한 접근 제한을 해제시키는 과정;을 더 포함하는 것을 특징으로 하는 패리티 청크 운용 방법.
  20. 제19항에 있어서,
    상기 데이터 쓰기 장애 복구 요청을 수신하는 과정;
    상기 패리티 갱신을 수행하는 과정;
    상기 갱신된 패리티 청크를 기반으로 이전 데이터를 복구하는 과정;
    상기 이전 데이터, 갱신 데이터 및 현재 패리티 데이터들의 연산을 통해 산출된 신규 패리티를 저장하는 과정;을 더 포함하는 것을 특징으로 하는 패리티 청크 운용 방법.
KR1020130145137A 2013-11-27 2013-11-27 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치 Ceased KR20150061258A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130145137A KR20150061258A (ko) 2013-11-27 2013-11-27 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치
US14/244,388 US9411685B2 (en) 2013-11-27 2014-04-03 Parity chunk operating method and data server apparatus for supporting the same in distributed raid system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130145137A KR20150061258A (ko) 2013-11-27 2013-11-27 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치

Publications (1)

Publication Number Publication Date
KR20150061258A true KR20150061258A (ko) 2015-06-04

Family

ID=53183733

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130145137A Ceased KR20150061258A (ko) 2013-11-27 2013-11-27 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치

Country Status (2)

Country Link
US (1) US9411685B2 (ko)
KR (1) KR20150061258A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020041298A1 (en) * 2018-08-21 2020-02-27 Micron Technology, Inc. Tracking error-correction parity calculations
KR20200109726A (ko) * 2019-03-14 2020-09-23 주식회사 티맥스티베로 데이터베이스 관리 시스템에서의 로그 레코드 관리를 위한 기법

Families Citing this family (135)

* 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
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
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US12137140B2 (en) 2014-06-04 2024-11-05 Pure Storage, Inc. Scale out storage platform having active failover
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. 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
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
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
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
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
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US12182044B2 (en) 2014-07-03 2024-12-31 Pure Storage, Inc. Data storage in a zone drive
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US12158814B2 (en) 2014-08-07 2024-12-03 Pure Storage, Inc. Granular voltage tuning
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
JP6367704B2 (ja) * 2014-12-25 2018-08-01 株式会社バイオス 記憶制御システム及び記憶制御装置
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
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
CN105095013B (zh) * 2015-06-04 2017-11-21 华为技术有限公司 数据存储方法、恢复方法、相关装置以及系统
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
KR20170010273A (ko) * 2015-07-17 2017-01-26 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10466914B2 (en) * 2015-08-31 2019-11-05 Pure Storage, Inc. Verifying authorized access in a dispersed storage network
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US12271359B2 (en) 2015-09-30 2025-04-08 Pure Storage, Inc. Device host operations in a storage system
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
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
KR101995056B1 (ko) 2015-12-30 2019-07-02 한국전자통신연구원 분산 파일 시스템 및 이의 운영방법
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US12235743B2 (en) 2016-06-03 2025-02-25 Pure Storage, Inc. Efficient partitioning for storage system resiliency groups
US10102067B2 (en) 2016-07-14 2018-10-16 International Business Machines Corporation Performing a desired manipulation of an encoded data slice based on a metadata restriction and a storage operational condition
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
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
US10545861B2 (en) 2016-10-04 2020-01-28 Pure Storage, Inc. Distributed integrated high-speed solid-state non-volatile random-access memory
US20180095788A1 (en) 2016-10-04 2018-04-05 Pure Storage, Inc. Scheduling operations for a storage device
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
CN106598491A (zh) * 2016-11-29 2017-04-26 新华三技术有限公司 一种数据处理方法及装置
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
CN106991118A (zh) * 2017-02-17 2017-07-28 深圳市中博睿存信息技术有限公司 基于ceph纠删除容错的读取文件方法及装置
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
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
WO2018226228A1 (en) * 2017-06-08 2018-12-13 Hitachi Data Systems Corporation Deduplicating distributed erasure coded objects
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
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10685010B2 (en) * 2017-09-11 2020-06-16 Amazon Technologies, Inc. Shared volumes in distributed RAID over shared multi-queue storage devices
US10379942B2 (en) * 2017-09-27 2019-08-13 International Business Machines Corporation Efficient transfer of objects between containers on the same vault
US10719260B2 (en) * 2017-09-29 2020-07-21 Apple Inc. Techniques for storing and retrieving data from a computing device
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US12067274B2 (en) 2018-09-06 2024-08-20 Pure Storage, Inc. Writing segments and erase blocks based on ordering
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
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
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
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
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
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
US12079494B2 (en) 2018-04-27 2024-09-03 Pure Storage, Inc. Optimizing storage system upgrades to preserve resources
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
CN108763589B (zh) * 2018-06-20 2021-12-07 程慧泉 一种分布式文件系统的目录系统及其实现方法
CN108958660B (zh) * 2018-07-02 2021-03-19 深圳市茁壮网络股份有限公司 分布式存储系统及其数据处理方法和装置
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
US12050580B2 (en) * 2018-10-15 2024-07-30 Ocient Inc. Data segment storing in a database system
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
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
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US12001355B1 (en) 2019-05-24 2024-06-04 Pure Storage, Inc. Chunked memory efficient storage data transfers
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
CN110502365B (zh) * 2019-07-11 2024-03-01 平安科技(深圳)有限公司 数据存储及恢复的方法、装置及计算机设备
CN110442535B (zh) * 2019-07-19 2021-06-11 华中科技大学 提高分布式固态盘键值缓存系统可靠性的方法及系统
WO2021046693A1 (zh) 2019-09-09 2021-03-18 华为技术有限公司 存储系统中数据处理方法、装置以及存储系统
US10998919B2 (en) * 2019-10-02 2021-05-04 Microsoft Technology Licensing, Llc Coded stream processing
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11157179B2 (en) 2019-12-03 2021-10-26 Pure Storage, Inc. Dynamic allocation of blocks of a storage device based on power loss protection
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
US11573711B2 (en) * 2020-03-23 2023-02-07 Vmware, Inc. Enhanced data encryption in distributed datastores using random tweaks stored in data blocks
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US12056365B2 (en) 2020-04-24 2024-08-06 Pure Storage, Inc. Resiliency for a storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US12093545B2 (en) 2020-12-31 2024-09-17 Pure Storage, Inc. Storage system with selectable write modes
US12229437B2 (en) 2020-12-31 2025-02-18 Pure Storage, Inc. Dynamic buffer for storage system
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
JP2022143899A (ja) * 2021-03-18 2022-10-03 株式会社東芝 磁気ディスク装置
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN113626250B (zh) * 2021-07-08 2024-06-28 华中科技大学 一种基于纠删码的条带合并方法及系统
US11782778B2 (en) 2021-07-28 2023-10-10 Alibaba Singapore Holding Private Limited Data recovery bypassing protocol for cloud network storage system
US20240406248A1 (en) * 2023-05-31 2024-12-05 Microsoft Technology Licensing, Llc UDP File Serialization In One-Way Transfer Systems
US12204788B1 (en) 2023-07-21 2025-01-21 Pure Storage, Inc. Dynamic plane selection in data storage system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3661205B2 (ja) * 1994-09-09 2005-06-15 株式会社日立製作所 ディスクアレイシステムおよびディスクアレイシステムのパリティデータの生成方法
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
US6446237B1 (en) * 1998-08-04 2002-09-03 International Business Machines Corporation Updating and reading data and parity blocks in a shared disk system
US7779294B2 (en) * 2005-04-15 2010-08-17 Intel Corporation Power-safe disk storage apparatus, systems, and methods
US7831768B2 (en) * 2006-11-03 2010-11-09 Hewlett-Packard Development Company, L.P. Method and apparatus for writing data to a disk array
KR100922584B1 (ko) 2006-12-01 2009-10-21 한국전자통신연구원 객체 기반 분산 공유 시스템 및 그의 방법
US8583866B2 (en) * 2010-02-22 2013-11-12 International Business Machines Corporation Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
US8103903B2 (en) * 2010-02-22 2012-01-24 International Business Machines Corporation Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system
KR101694984B1 (ko) 2010-12-08 2017-01-11 한국전자통신연구원 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020041298A1 (en) * 2018-08-21 2020-02-27 Micron Technology, Inc. Tracking error-correction parity calculations
US10754726B2 (en) 2018-08-21 2020-08-25 Micron Technology, Inc. Tracking error-correction parity calculations
KR20200109726A (ko) * 2019-03-14 2020-09-23 주식회사 티맥스티베로 데이터베이스 관리 시스템에서의 로그 레코드 관리를 위한 기법
US11210281B2 (en) 2019-03-14 2021-12-28 TmaxData Co., Ltd. Technique for log records management in database management system

Also Published As

Publication number Publication date
US20150149819A1 (en) 2015-05-28
US9411685B2 (en) 2016-08-09

Similar Documents

Publication Publication Date Title
KR20150061258A (ko) 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치
KR101694984B1 (ko) 비대칭 클러스터링 파일시스템에서의 패리티 산출 방법
JP6347802B2 (ja) データ記憶方法、データ回復方法、関係する装置及びシステム
US9830221B2 (en) Restoration of erasure-coded data via data shuttle in distributed storage system
US9690657B2 (en) Writing data across storage devices in an erasure-coded system
US9811405B2 (en) Cache for file-based dispersed storage
US9229950B2 (en) Method and device for processing files of distributed file system
CN110651246B (zh) 一种数据读写方法、装置和存储服务器
WO2010064328A1 (en) Information processing system and method of acquiring backup in an information processing system
CN107885612A (zh) 数据处理方法和系统及装置
GB2534956A (en) Storage system and storage control method
WO2023082556A1 (zh) 一种面向内存键值纠删码的混合数据更新方法及存储系统
US10067831B2 (en) Slice migration in a dispersed storage network
CN110383251A (zh) 存储系统、计算机可读记录介质、系统的控制方法
US10394484B2 (en) Storage system
CN109597903A (zh) 图像文件处理装置和方法、文件存储系统及存储介质
US9891992B2 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
US8832395B1 (en) Storage system, and method of storage control for storage system
CN107766170B (zh) 单一存储池的差量日志式纠删码更新方法
CN112783698A (zh) 一种存储系统中的元数据的管理方法及装置
JP2021086289A (ja) 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法
JP6942748B2 (ja) 分散ストレージシステム、データ管理方法、及びデータ管理プログラム
JP2002288014A (ja) ファイル管理システム及びファイルデータ書込方法
JP6318902B2 (ja) 冗長システムおよび冗長化方法
CN108366217B (zh) 监控视频采集存储方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20131127

PG1501 Laying open of application
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20180411

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20131127

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20190828

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20191112

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20190828

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I