KR20210124607A - 데이터 저장 시스템 및 컨트롤러의 동작 방법 - Google Patents

데이터 저장 시스템 및 컨트롤러의 동작 방법 Download PDF

Info

Publication number
KR20210124607A
KR20210124607A KR1020200041759A KR20200041759A KR20210124607A KR 20210124607 A KR20210124607 A KR 20210124607A KR 1020200041759 A KR1020200041759 A KR 1020200041759A KR 20200041759 A KR20200041759 A KR 20200041759A KR 20210124607 A KR20210124607 A KR 20210124607A
Authority
KR
South Korea
Prior art keywords
data
source
subsystem
network
source data
Prior art date
Application number
KR1020200041759A
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 KR1020200041759A priority Critical patent/KR20210124607A/ko
Priority to US17/024,540 priority patent/US11422737B2/en
Priority to CN202010987330.XA priority patent/CN113495688A/zh
Publication of KR20210124607A publication Critical patent/KR20210124607A/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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

컨트롤러의 동작 방법은 각각이 복수의 메모리 영역들을 포함하고 네트워크를 통해 연결된 서브 시스템들을 제어하는 방법으로서, 데이터의 압축률을 테스트하는 단계; 및 상기 메모리 영역들 중 상기 압축률에 따라 상기 데이터 및 복제본 데이터가 저장될 메모리 영역들을 결정하는 단계를 포함한다.

Description

데이터 저장 시스템 및 컨트롤러의 동작 방법{DATA STORAGE SYSTEM AND OPERATING METHOD OF CONTROLLER}
본 발명은 데이터를 분산 저장하는 데이터 저장 시스템에 관한 것이다.
데이터 저장 시스템은 유저의 요청에 응답하여, 데이터를 저장하도록 구성될 수 있다. 데이터 저장 시스템은 네트워크를 통해 연결된 복수의 서브 시스템들을 포함하고, 복수의 서브 시스템들에 데이터를 분산 저장할 수 있다.
본 발명의 실시 예는 데이터 복구 동작을 효율적으로 수행하는 데이터 저장 시스템 및 컨트롤러의 동작 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 컨트롤러의 동작 방법은 각각이 복수의 메모리 영역들을 포함하고 네트워크를 통해 연결된 서브 시스템들을 제어하는 방법으로서, 데이터의 압축률을 테스트하는 단계; 및 상기 메모리 영역들 중 상기 압축률에 따라 상기 데이터 및 복제본 데이터가 저장될 메모리 영역들을 결정하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 시스템은 각각이 복수의 메모리 영역들을 포함하고 네트워크를 통해 연결된 서브 시스템들; 및 데이터의 압축률을 테스트하고, 상기 메모리 영역들 중 상기 압축률에 따라 상기 데이터 및 복제본 데이터가 저장될 메모리 영역들을 결정하도록 구성된 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 시스템은 각각이 복수의 메모리 영역들을 포함하고 네트워크를 통해 연결된 서브 시스템들; 및 소스 서브 시스템으로부터 목적지 서브 시스템으로 소스 데이터를 복제할 때, 상기 소스 데이터의 압축률에 따라 압축된 소스 데이터 또는 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 컨트롤러를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 시스템 및 컨트롤러의 동작 방법은 데이터 복구 동작을 효율적으로 수행할 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 저장 시스템을 도시한 블록도,
도2는 본 발명의 실시 예에 따라 도1의 컨트롤러가 압축률에 따라 원본 데이터 및 복제본 데이터가 저장되는 메모리 영역들을 결정하는 방법을 도시하는 도면,
도3a 및 도3b는 본 발명의 실시 예에 따라 컨트롤러의 데이터 복구 방법을 도시하는 도면들,
도4a 내지 도4c는 본 발명의 실시 예에 따라 컨트롤러의 데이터 복구 방법을 도시하는 도면들,
도5는 본 발명의 실시 예에 따라 컨트롤러가 복제본 데이터를 저장하는 방법을 도시하는 도면,
도6은 본 발명의 실시 예에 따라 컨트롤러가 소거 코딩(Erasure coding)에 근거한 복구 동작을 수행하는 방법을 도시하는 도면,
도7은 본 발명의 실시 예에 따른 컨트롤러의 데이터 저장 방법을 설명하는 순서도,
도8은 본 발명의 실시 예에 따른 컨트롤러의 복구 동작 방법을 설명하는 순서도,
도9는 본 발명의 실시 예에 따른 컨트롤러의 복구 동작 방법을 설명하는 순서도,
도10은 본 발명의 실시 예에 따른 컨트롤러의 복구 동작 방법을 설명하는 순서도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 본 명세서에서 특정한 용어들이 사용되었으나. 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다.
본 명세서에서 '및/또는'이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, '연결되는/결합되는'이란 표현은 다른 구성 요소와 직접적으로 연결되거나 다른 구성 요소를 통해서 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 '포함한다' 또는 '포함하는'으로 언급된 구성 요소, 단계, 동작 및 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 데이터 저장 시스템(10)을 도시한 블록도이다.
도1을 참조하면, 데이터 저장 시스템(10)은 데이터 센터, 인터넷 데이터 센터, 클라우드 데이터 센터, 퍼스널 컴퓨터, 랩탑 컴퓨터, 스마트폰, 태블릿 컴퓨터, 디지털 카메라, 게임 콘솔, 네비게이션, 가상현실 장치 및 웨어러블 장치 등을 포함할 수 있다.
데이터 저장 시스템(10)은 네트워크(NTW)를 통해 연결된 컨트롤러(100) 및 서브 시스템들(SB1~SBn)을 포함할 수 있다.
컨트롤러(100)는 데이터 저장 시스템(10)의 제반 동작을 제어할 수 있다. 컨트롤러(100)는 서브 시스템들(SB1~SBn)의 서브 컨트롤러들(SCTL1~SCLRn)을 제어함으로써 데이터를 서브 시스템들(SB1~SBn)의 메모리 영역들(MR11~MR1m, MRn1~MRnk)에 분산 저장할 수 있다. 컨트롤러(100)는 데이터를 메모리 영역들(MR11~MR1m, MRn1~MRnk)에 분산 저장하기 위해, 서브 시스템들(SB1~SBn) 및 네트워트(NTW)의 성능을 모니터링할 수 있다.
컨트롤러(100)는 데이터의 손상을 대비하여, 원본 데이터 및 복제본 데이터를 메모리 영역들(MR11~MR1m, MRn1~MRnk)에 저장할 수 있다. 컨트롤러(100)는 원본 데이터가 손상될 때, 복제본 데이터를 새로운 메모리 영역에 복제함으로써 복구 동작을 수행할 수 있다. 물론 컨트롤러(100)는 복제본 데이터가 손상될 때도, 원본 데이터를 사용하여 복제본 데이터를 다시 저장할 수도 있다. 즉, 컨트롤러(100)는 원본 데이터 및 복제본 데이터 중 어느 하나가 손상될 때, 손상되지 않은 데이터를 복제하여 복구 동작을 수행할 수 있다.
컨트롤러(100)는 복구 동작을 메모리 영역의 단위로 수행할 수 있다. 즉, 컨트롤러(100)는 메모리 영역에 저장된 원본 데이터의 적어도 일부가 손상될 때, 복제본 데이터가 저장된 메모리 영역 전체를 복제함으로써 복구 동작을 수행할 수 있다.
한편, 이하에서, 복구 동작에서 복제되는 메모리 영역 단위의 데이터는 소스 데이터이고, 소스 데이터가 저장된 메모리 영역은 소스 메모리 영역이고, 소스 메모리 영역을 포함하는 서브 시스템은 소스 서브 시스템으로 언급될 수 있다. 또한, 소스 데이터가 복제되는 메모리 영역은 목적지 메모리 영역이고, 목적지 메모리 영역을 포함하는 서브 시스템은 목적지 서브 시스템으로 언급될 수 있다.
컨트롤러(100)는 압축률 테스터(110)를 포함할 수 있다. 압축률 테스터(110)는 데이터의 압축률을 테스트할 수 있다. 압축률 테스터(110)는, 예를 들어, 원본 데이터를 샘플링함으로써 원본 데이터의 압축률을 테스트할 수 있다.
컨트롤러(100)는 원본 데이터의 압축률에 따라 원본 데이터 및 복제본 데이터가 저장될 메모리 영역들을 결정할 수 있다.
도2는 본 발명의 실시 예에 따라 도1의 컨트롤러(100)가 압축률에 따라 원본 데이터 및 복제본 데이터가 저장되는 메모리 영역들을 결정하는 방법을 도시하는 도면이다.
도2를 참조하면, 테이블(TB1)은 압축률(cpr)의 범위들(RG1~RG5)에 대응하는 메모리 영역들의 리스트들(LIST1~LIST5)을 포함할 수 있다. 컨트롤러(100)는 압축률(cpr)의 범위들(RG1~RG5)에 리스트들(LIST1~LIST5)을 대응시킬 수 있다. 리스트들(LIST1~LIST5) 각각은 대응하는 범위의 압축률(cpr)을 가진 원본 데이터가 저장되는 메모리 영역과 복제본 데이터가 저장되는 메모리 영역을 포함할 수 있다. 한편, 본 발명의 실시 예에 따르면 범위들(RG1~RG5)의 개수가 5개로 제한되는 것은 아니다.
리스트들(LIST1~LIST5) 각각에 포함되는 메모리 영역들은 동일하거나 서로 다른 서브 시스템들에 포함될 수 있다. 따라서, 원본 데이터 및 복제본 데이터는 동일하거나 서로 다른 서브 시스템들의 메모리 영역들에 각각 저장될 수 있다.
이제 컨트롤러(100)의 데이터 저장 방법을 설명하면, 우선 압축률 테스터(110)는 원본 데이터(DT1)의 압축률(cpr)이 70%이고, 원본 데이터(DT2)의 압축률(cpr)이 10%라고 결정할 수 있다.
컨트롤러(100)는 원본 데이터(DT1)의 압축률(cpr)이 범위(RG4)에 포함되므로, 원본 데이터(DT1)를 리스트(LIST4)의 메모리 영역(MR7)에 저장하고 복제본 데이터(DT1CP)를 리스트(LIST4)의 메모리 영역(MR8)에 저장할 것으로 결정할 수 있다. 원본 데이터(DT1) 및 복제본 데이터(DT1CP)는 모두 비압축된 상태로 메모리 영역들(MR7, MR8)에 각각 저장될 수 있다.
그리고 컨트롤러(100)는 원본 데이터(DT2)의 압축률(cpr)이 범위(RG1)에 포함되므로, 원본 데이터(DT2)를 리스트(LIST1)의 메모리 영역(MR1)에 저장하고 복제본 데이터(DT2CP)를 리스트(LIST1)의 메모리 영역(MR2)에 저장할 것으로 결정할 수 있다. 원본 데이터(DT2) 및 복제본 데이터(DT2CP)는 모두 비압축된 상태로 메모리 영역들(MR1, MR2)에 각각 저장될 수 있다.
결국, 메모리 영역들(MR1~MR10) 각각은 비슷한 압축률(cpr)을 가진 원본 데이터 또는 복제본 데이터를 저장할 수 있다. 따라서, 메모리 영역 단위로 복구 동작이 수행될 때, 후술될 바와 같이 복구 동작이 보다 효율적으로 수행될 수 있다.
다시 도1을 참조하면, 컨트롤러(100)는 복구 동작에서 소스 데이터를 소스 서브 시스템으로부터 목적지 서브 시스템으로 복제해야 할 때, 소스 데이터의 압축률에 따라 압축된 소스 데이터 또는 비압축된 소스 데이터가 네트워크(NTW)를 통해 전송되도록 제어할 수 있다.
예를 들어, 컨트롤러(100)는 소스 데이터의 압축률이 소정의 임계값보다 높을 때, 압축된 소스 데이터가 네트워크(NTW)를 통해 전송되도록 제어할 수 있다. 소스 데이터는 소스 서브 시스템에서 비압축된 상태로 저장되어 있으므로, 컨트롤러(100)는 소스 서브 시스템이 소스 데이터를 압축하고 압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다. 그리고 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 압축된 소스 데이터를 압축 해제하고 압축 해제된 데이터를 저장하도록 제어할 수 있다.
반면에, 컨트롤러(100)는 소스 데이터의 압축률이 소정의 임계값보다 낮을 때, 비압축된 소스 데이터가 네트워크(NTW)를 통해 전송되도록 제어할 수 있다. 즉, 컨트롤러(100)는 소스 서브 시스템이 비압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다. 그리고 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 비압축된 소스 데이터를 저장하도록 제어할 수 있다.
실시 예에 따라, 컨트롤러(100)는 복구 동작에서 소스 서브 시스템으로부터 목적지 서브 시스템으로 소스 데이터를 복제해야 할 때, 병목점을 판단하여 압축된 소스 데이터 또는 비압축된 소스 데이터가 네트워크(NTW)를 통해 전송되도록 제어할 수 있다. 컨트롤러(100)는 다양한 기준에 근거하여 네트워크(NTW), 소스 서브 시스템, 및 목적지 서브 시스템 중 어디가 병목점인지 판단할 수 있다. 예를 들어, 컨트롤러(100)는 리소스 이용률에 근거하여 병목점을 판단할 수 있다. 리소스 이용률이란, 복구 동작에 사용되어야 할 리소스들 중 현재 다른 동작에서 사용되고 있는 비율을 의미할 수 있다. 다른 예로서, 컨트롤러(100)는 데이터 전송 속도에 근거하여 병목점을 판단할 수 있다.
구체적으로, 컨트롤러(100)는 네트워크(NTW)가 병목점이라고 판단될 때, 압축된 소스 데이터가 네트워크(NTW)를 통해 전송되도록 제어할 수 있다. 소스 데이터는 소스 서브 시스템에서 비압축된 상태로 저장되어 있으므로, 컨트롤러(100)는 소스 서브 시스템이 소스 데이터를 압축하고 압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다. 그리고 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 압축된 소스 데이터를 압축 해제하고 압축 해제된 데이터를 저장하도록 제어할 수 있다.
그리고 컨트롤러(100)는 목적지 서브 시스템이 병목점이라고 판단될 때, 압축된 소스 데이터가 네트워크(NTW)를 통해 전송되도록 제어할 수 있다. 이 경우 컨트롤러(100)는 소스 서브 시스템이 소스 데이터를 압축하고 압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다. 그리고 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 압축된 소스 데이터를 임시 저장하고 임시 저장된 데이터를 유휴 시간에 압축 해제하고 압축 해제된 데이터를 저장하도록 제어할 수 있다.
그리고 컨트롤러(100)는 소스 서브 시스템이 병목점이라고 판단될 때, 비압축된 소스 데이터가 네트워크(NTW)를 통해 전송되도록 제어할 수 있다. 즉, 컨트롤러(100)는 소스 서브 시스템이 비압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다. 그리고 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 비압축된 소스 데이터를 저장하도록 제어할 수 있다.
실시 예에 따라, 컨트롤러(100)는 원본 데이터의 압축률에 따라 복제본 데이터를 적어도 하나의 메모리 영역에 비압축된 상태로 저장하는 동시에, 적어도 하나의 메모리 영역에 압축된 상태로 저장할 수 있다. 구체적으로, 컨트롤러(100)는 원본 데이터의 압축률이 소정 임계값보다 높을 때, 복제본 데이터를 적어도 하나의 메모리 영역에 비압축된 상태로 저장하는 동시에, 적어도 하나의 메모리 영역에 압축된 상태로 저장할 수 있다.
서브 시스템들(SB1~SBn)은 컨트롤러(100)의 제어에 따라 메모리 영역들(MR11~MR1m, MRn1~MRnk)에 데이터를 저장할 수 있다. 서브 시스템들(SB1~SBn)은 컨트롤러(100)의 제어에 따라, 소스 데이터를 압축하여 네트워크(NTW)로 전송하고, 네트워크(NTW)로부터 수신한 압축된 소스 데이터를 압축 해제할 수 있다.
서브 시스템들(SB1~SBn)은 서브 컨트롤러들(SCTL1~SCLTn) 및 메모리 영역들(MR11~MR1m, MRn1~MRnk)을 각각 포함할 수 있다. 서브 컨트롤러들(SCTL1~SCLTn) 각각은 컨트롤러(100)의 제어에 따라 메모리 영역들(MR11~MR1m, MRn1~MRnk)에 데이터를 저장할 수 있다.
메모리 영역은 SSD(Solid State Drive) 및 플래시 메모리 장치와 같은 물리적으로 구분된 메모리 영역이거나, 논리 드라이브 및 파티션과 같이 논리적으로 구분된 메모리 영역일 수 있다. 상술한 바와 같이, 메모리 영역은 컨트롤러(100)가 복구 동작을 수행하는 메모리 단위일 수 있다.
실시 예에 따라, 메모리 영역들(MR11~MR1m, MRn1~MRnk) 각각이 SSD일 때, 소스 데이터의 압축은 소스 데이터가 저장된 SSD 내에서 수행되거나, 소스 서브 시스템의 서브 컨트롤러 내에서 수행될 수 있다. 마찬가지로, 압축된 소스 데이터의 압축 해제는 목적지 서브 시스템의 서브 컨트롤러 내에서 수행되거나 목적지 메모리 영역인 SSD 내에서 수행될 수 있다.
도3a 및 도3b는 본 발명의 실시 예에 따라 컨트롤러(100)의 데이터 복구 방법을 도시하는 도면들이다.
도3a를 참조하면, 컨트롤러(100)는 데이터(DT31)가 손상되었다고 판단할 수 있다. 컨트롤러(100)는 데이터(DT31)를 복구하기 위해 소스 데이터(SDT31)를 복제할 것으로 결정할 수 있다. 상술한 바와 같이, 데이터(DT31)는 원본 데이터 또는 복제본 데이터일 수 있고, 소스 데이터(SDT31)는 손상되지 않은 다른 하나일 수 있다.
컨트롤러(100)는 소스 서브 시스템(SSB31)에 저장된 소스 데이터(SDT31)를 목적지 서브 시스템(DSB31)에 저장할 것으로 결정할 수 있다. 소스 데이터(SDT31)가 네트워크(NTW)를 통해 목적지 서브 시스템(DSB31)으로 이동해야 하므로, 컨트롤러(100)는 소스 데이터(SDT31)가 압축된 상태로 전송될 것인지 또는 비압축된 상태로 전송될 것인지 여부를 결정할 수 있다.
구체적으로, 컨트롤러(100)는 소스 메모리 영역(미도시됨)에 대응하는 압축률의 범위를 알고 있으므로, 소스 데이터(SDT31)의 압축률(cpr)을 소정 임계값(TH1)과 비교할 수 있다. 예를 들어, 임계값(TH1)이 60%이고, 소스 메모리 영역이 도2의 리스트(LIST4)에 포함될 때, 컨트롤러(100)는 소스 데이터(SDT31)의 압축률(cpr)이 소정 임계값(TH1)보다 높다고 판단할 수 있다. 이 경우, 컨트롤러(100)는 네트워크(NTW)를 통해 압축된 소스 데이터(SDT31_C)가 전송되도록 제어할 수 있다. 컨트롤러(100)의 제어에 따라 소스 서브 시스템(SSB31)은 소스 데이터(SDT31)를 압축하고 압축된 소스 데이터(SDT31_C)를 네트워크(NTW)로 전송할 수 있다. 목적지 서브 시스템(DSB31)은 컨트롤러(100)의 제어에 따라 네트워크(NTW)를 통해 전송된 압축된 소스 데이터(SDT31_C)를 압축 해제하고, 소스 데이터(SDT31)를 목적지 메모리 영역(미도시됨)에 저장할 수 있다.
실시 예에 따라, 컨트롤러(100)는 압축된 소스 데이터(SDT31_C)를 전송할 것으로 결정한 경우에, 압축 방식을 더 선택할 수 있다. 구체적으로, 빠른 압축 방식(또는, 리소스를 조금 사용하는 압축 방식)은 더 낮은 압축률로 데이터를 압축시키고, 느린 압축 방식(또는, 리소스를 많이 사용하는 압축 방식)은 더 높은 압축률로 데이터를 압축시킬 수 있다. 따라서, 컨트롤러(100)는 소스 서브 시스템(SSB31) 및 목적지 서브 시스템(DSB31)의 리소스 이용률에 따라 서로 다른 압축 방식을 선택할 수 있다. 예를 들어, 소스 서브 시스템(SSB31) 및 목적지 서브 시스템(DSB31) 중 적어도 하나의 리소스 이용률이 높은 상황일 때는, 컨트롤러(100)는 소스 데이터(SDT31)가 보다 빠른 압축 방식으로 압축되도록 결정할 수 있다. 이 경우, 소스 데이터(SDT31)는 압축률(cpr)까지 압축가능하더라도 압축률(cpr)보다 낮은 압축률로 압축될 수 있다. 반면에, 소스 서브 시스템(SSB31) 및 목적지 서브 시스템(DSB31)의 리소스 이용률이 모두 낮은 상황일 때는, 컨트롤러(100)는 소스 데이터(SDT31)가 보다 느린 압축 방식으로 압축률(cpr)까지 충분히 압축되도록 결정할 수 있다.
도3b를 참조하면, 컨트롤러(100)는 데이터(DT32)가 손상되었다고 판단할 수 있다. 컨트롤러(100)는 데이터(DT32)를 복구하기 위해 소스 서브 시스템(SSB32)에 저장된 소스 데이터(SDT32)를 목적지 서브 시스템(DSB32)에 복제할 것으로 결정할 수 있다.
임계값(TH1)이 60%이고, 소스 메모리 영역이 도2의 리스트(LIST2)에 포함될 때, 컨트롤러(100)는 소스 데이터(SDT32)의 압축률(cpr)이 소정 임계값(TH1)보다 낮다고 판단할 수 있다. 이 경우, 컨트롤러(100)는 네트워크(NTW)를 통해 비압축된 소스 데이터(SDT32)가 전송되도록 제어할 수 있다. 컨트롤러(100)의 제어에 따라 소스 서브 시스템(SSB32)은 소스 데이터(SDT32)를 그대로 네트워크(NTW)로 전송할 수 있다. 목적지 서브 시스템(DSB31)은 컨트롤러(100)의 제어에 따라 네트워크(NTW)를 통해 전송된 비압축된 소스 데이터(SDT31)를 그대로 목적지 메모리 영역(미도시됨)에 저장할 수 있다.
정리하면, 컨트롤러(100)는 복구 동작을 수행할 때 높은 압축률의 데이터를 압축하여 전송시킴으로써 복구 속도를 향상시킬 수 있다. 또한, 데이터의 압축은 네트워크(NTW)의 사용 대역을 감소시키므로 컨트롤러(100)는 한정적인 네트워크 자원을 복구 동작에 전용하지 않고 다른 서비스에도 할당할 수 있다.
뿐만 아니라 컨트롤러(100)는 후술될 바와 같이 서브 시스템 및 네크워크(NTW)에서 사용가능한 리소스를 종합적으로 고려하여 복구 방법을 결정할 수 있다.
도4a 내지 도4c는 본 발명의 실시 예에 따라 컨트롤러(100)의 데이터 복구 방법을 도시하는 도면들이다.
도4a 내지 도4c를 참조하면, 컨트롤러(100)는 소스 데이터(SDT4)를 소스 서브 시스템(SSB4)으로부터 목적지 서브 시스템(DSB4)으로 복제할 것으로 결정했을 때, 네트워크(NTW), 소스 서브 시스템(SSB4), 및 목적지 서브 시스템(DSB4) 중 병목점을 판단하여 소스 데이터(SDT4)가 압축된 상태로 전송될 것인지 또는 비압축된 상태로 전송될 것인지 여부를 결정할 수 있다.
우선 컨트롤러(100)는 예를 들어 리소스 이용률이 더 높은 곳이 병목점이라고 결정할 수 있다. 다른 예로서, 컨트롤러(100)는 데이터 전송 속도가 더 낮은 곳이 병목점이라고 결정할 수 있다. 이외에, 컨트롤러(100)는 다양한 조건에 근거하여 병목점을 결정할 수 있다.
도4a를 참조하면, 네트워크(NTW), 소스 서브 시스템(SSB4), 및 목적지 서브 시스템(DSB4)에서의 데이터 전송 속도들이 각각 100MB/s, 500MB/s 및 500MB/s일 때, 컨트롤러(100)는 네트워크(NTW)가 병목점이라고 결정할 수 있다.
이 경우, 컨트롤러(100)는 네트워크(NTW)를 통해 압축된 소스 데이터(SDT4_C)가 전송되도록 제어할 수 있다. 컨트롤러(100)의 제어에 따라 소스 서브 시스템(SSB4)은 소스 데이터(SDT4)를 압축하고 압축된 소스 데이터(SDT4_C)를 네트워크(NTW)로 전송할 수 있다. 목적지 서브 시스템(DSB4)은 컨트롤러(100)의 제어에 따라 네트워크(NTW)를 통해 전송된 압축된 소스 데이터(SDT4_C)를 압축 해제하고, 소스 데이터(SDT4)를 목적지 메모리 영역(미도시됨)에 저장할 수 있다.
따라서, 컨트롤러(100)는 복구 동작을 보다 신속하게 수행할 수 있고, 데이터 저장 시스템(10)의 과도한 성능 저하를 방지할 수 있다.
실시 예에 따라, 컨트롤러(100)는 병목점 판단에 더하여, 소스 데이터(SDT4)의 압축률을 더 고려하여 소스 데이터(SDT4)가 압축된 상태로 전송될 것인지 여부를 결정할 수 있다. 예를 들어, 컨트롤러(100)는 네트워크(NTW)가 병목점이라고 판단될 때, 소정 임계값보다 높은 압축률의 소스 데이터(SDT4)에 한해서 압축된 상태로 전송되도록 제어할 수 있다. 즉 컨트롤러(100)는 네트워크(NTW)가 병목에 있다고 판단되더라도, 임계값보다 낮은 압축률의 소스 데이터(SDT4)는 비압축된 상태로 전송되도록 제어할 수 있다.
도4b를 참조하면, 네트워크(NTW), 소스 서브 시스템(SSB4) 및 목적지 서브 시스템(DSB4)에서의 데이터 전송 속도들이 각각 1GB/s, 200MB/s 및 100MB/s일 때, 컨트롤러(100)는 목적지 서브 시스템(DSB4)이 병목점이라고 결정할 수 있다.
이 경우 컨트롤러(100)는 네트워크(NTW)를 통해 압축된 소스 데이터(SDT4_C)가 전송되도록 제어할 수 있다. 컨트롤러(100)의 제어에 따라 소스 서브 시스템(SSB4)은 소스 데이터(SDT4)를 압축하고 압축된 소스 데이터(SDT4_C)를 네트워크(NTW)로 전송할 수 있다. 목적지 서브 시스템(DSB4)은 컨트롤러(100)의 제어에 따라 네트워크(NTW)를 통해 전송된 압축된 소스 데이터(SDT4_C)를 임시 메모리 영역(미도시됨)에 일단 저장하고, 유휴 시간에 압축된 소스 데이터(SDT4_C)를 압축 해제하고, 소스 데이터(SDT4)를 목적지 메모리 영역(미도시됨)에 저장할 수 있다.
즉, 목적지 서브 시스템(DSB4)이 병목점일 때, 컨트롤러(100)는 압축 해제를 보류함으로써 데이터 저장 시스템(10)의 과도한 성능 저하를 방지할 수 있다.
실시 예에 따라, 컨트롤러(100)는 병목점 판단에 더하여 데이터의 압축률을 더 고려하여 소스 데이터(SDT4)가 압축된 상태로 전송될 것인지 여부를 결정할 수 있다. 예를 들어, 컨트롤러(100)는 목적지 서브 시스템(DSB4)이 병목점이라고 판단될 때, 소정 임계값보다 높은 압축률의 소스 데이터(SDT4)에 한해서 압축된 상태로 전송되도록 제어할 수 있다. 즉, 컨트롤러(100)는 목적지 서브 시스템(DSB4)이 병목점이라고 판단되더라도, 임계값보다 낮은 압축률의 소스 데이터(SDT4)는 비압축된 상태로 전송되도록 제어할 수 있다.
도4c를 참조하면, 네트워크(NTW), 소스 서브 시스템(SSB4) 및 목적지 서브 시스템(DSB4)에서의 데이터 전송 속도들이 각각 1GB/s, 100MB/s 및 500MB/s일 때, 컨트롤러(100)는 소스 서브 시스템(SSB4)이 병목에 있는 것으로 결정할 수 있다.
이 경우 컨트롤러(100)는 네트워크(NTW)를 통해 비압축된 소스 데이터(SDT4)가 전송되도록 제어할 수 있다. 컨트롤러(100)의 제어에 따라 소스 서브 시스템(SSB4)은 소스 데이터(SDT4)를 그대로 네트워크(NTW)로 전송할 수 있다. 목적지 서브 시스템(DSB4)은 컨트롤러(100)의 제어에 따라 네트워크(NTW)를 통해 전송된 비압축된 소스 데이터(SDT4)를 그대로 목적지 메모리 영역(미도시됨)에 저장할 수 있다.
실시 예에 따라, 소스 서브 시스템(SSB4)과 목적지 서브 시스템(DSB4)의 데이터 전송 속도가 네트워크(NTW)보다 느리지만 비슷할 경우, 컨트롤러(100)는 도4c에 도시된 바와 유사하게 동작할 수 있다.
도5는 본 발명의 실시 예에 따라 컨트롤러(100)가 복제본 데이터를 저장하는 방법을 도시하는 도면이다.
도5를 참조하면, 컨트롤러(100)는 원본 데이터(DT5)에 대해 2개 이상의 복제본 데이터(DT5CP)를 저장할 수 있다. 특히 컨트롤러(100)는 압축률 테스터(110)에 의해 압축률(cpr)이 소정 임계값(TH2)보다 높다고 판단된 원본 데이터(DT5)에 대해 2개 이상의 복제본 데이터(DT5CP)를 저장할 수 있다.
이 때, 컨트롤러(100)는 적어도 하나의 복제본 데이터(DT5CP)를 서브 시스템(SB52)에 비압축된 상태로 저장하는 동시에, 적어도 하나의 복제본 데이터(DT5CP)를 서브 시스템(SB553)에 압축된 상태로 저장할 것으로 결정할 수 있다. 컨트롤러(100)의 제어에 따라, 서브 시스템(SB52)은 복제본 데이터(DT5CP)를 비압축된 상태로 메모리 영역(미도시됨)에 저장하고, 서브 시스템(SB53)은 복제본 데이터(DT5CP)를 압축한 뒤 압축된 복제본 데이터(DT5CP_C)를 메모리 영역(미도시됨)에 저장할 수 있다.
따라서, 비압축된 복제본 데이터(DT5CP)는 높은 접근 속도를 보장하고, 압축된 복제본 데이터(DT5CP_C)는 높은 공간 효율을 제공할 수 있다.
한편, 원본 데이터(DT5) 및 복제본 데이터(DT5CP)는 도시된 바와 달리 동일한 서브 시스템에 저장될 수도 있다.
실시 예에 따라, 컨트롤러(100)는 원본 데이터(DT5)에 대한 복구 동작에서 복제본 데이터(DT5CP)가 압축된 상태로 전송될 것으로 결정할 때, 서브 시스템(SB53)에 저장된 압축된 복제본 데이터(DT5CP_C)가 목적지 서브 시스템으로 전송되도록 제어할 수 있다. 이 경우, 복구 동작에서 복제본 데이터(DT5CP)의 압축 과정이 생략될 수 있다. 반면에 컨트롤러(100)는 원본 데이터(DT5)에 대한 복구 동작에서 복제본 데이터(DT5CP)가 비압축된 상태로 전송될 것으로 결정할 때는, 서브 시스템(SB52)에 저장된 복제본 데이터(DT5CP)가 목적지 서브 시스템으로 그대로 전송되도록 제어할 수 있다.
도6은 본 발명의 실시 예에 따라 컨트롤러(100)가 소거 코딩(Erasure coding)에 근거한 복구 동작을 수행하는 방법을 도시하는 도면이다.
도6을 참조하면, 컨트롤러(100)는 소거 코딩에 근거하여 서브 시스템들(SB61~SB63)에 데이터(DT61~DT63)를 저장하고, 서브 시스템(SB64)에 패리티 데이터(PDT)를 저장할 수 있다. 컨트롤러(100)는 서브 시스템들(SB61~SB64)에 데이터(DT61~DT63) 및 패리티 데이터(PDT)를 저장할 때, 데이터 및 패리티 데이터(PDT)의 압축률을 각각 테스트한 뒤 저장할 수 있다. 즉, 컨트롤러(100)는 데이터(DT61~DT63) 및 패리티 데이터(PDT)의 압축률을 각각 판단한 뒤, 데이터(DT61~DT63) 및 패리티 데이터(PDT)를 비압축된 상태로 메모리 영역들에 저장할 수 있다. 한편, 도6은 1개의 패리티 데이터(PDT)가 저장되는 경우를 도시하지만, 코딩 방식에 따라 패리티 데이터(PDT)는 복수개로 저장될 수도 있다. 또한, 도6에서 데이터(DT61~DT63) 및 패리티 데이터(PDT)는 모두 다른 서브 시스템들(SB61~SB64)에 저장되지만, 실시 예에 따라 동일한 서브 시스템에 저장될 수도 있다.
컨트롤러(100)는, 예를 들어, 데이터(DT61)가 손상될 때, 나머지 데이터(DT62, DT63) 및 패리티 데이터(PDT)를 사용하여 데이터(DT61)를 복구할 것으로 결정할 수 있다. 이때, 데이터(DT61)가 별개의 서브 시스템(SB65)에서 복구될 때, 즉, 나머지 데이터(DT62, DT63) 및 패리티 데이터(PDT)가 네트워크(NTW)를 통해 서브 시스템(SB65)으로 전송되어야 할 때, 컨트롤러(100)는 나머지 데이터(DT62, DT63) 및 패리티 데이터(PDT)의 압축률(cpr)에 따라 나머지 데이터(DT62, DT63) 및 패리티 데이터(PDT)를 압축된 상태로 전송시킬 것인지 여부를 결정할 수 있다.
구체적으로 컨트롤러(100)는 나머지 데이터(DT62, DT63) 및 패리티 데이터(PDT)에 대해 각 압축률(cpr)을 소정의 임계치(TH3)와 비교함으로써, 임계치(TH3)보다 높은 압축률(cpr)의 나머지 데이터(DT62, DT63)는 압축된 상태로 전송되고 임계치(TH3)보다 낮은 압축률(cpr)의 패리티 데이터(PDT)는 비압축된 상태로 전송되도록 제어할 수 있다.
따라서, 서브 시스템들(SB62, SB63)은 나머지 데이터(DT62, DT63)를 압축하여 네트워크(NTW)로 압축된 데이터(DT62_C, DT63_C)를 각각 전송할 수 있다. 서브 시스템(SB64)은 패리티 데이터(PDT)를 그대로 네트워크(NTW)로 전송할 수 있다. 서브 시스템(SB65)은 네트워크로(NTW)부터 압축된 데이터(DT62_C, DT63_C) 및 패리티 데이터(PDT)를 수신하고, 압축된 데이터(DT62_C, DT63_C)를 데이터(DT62, DT63)로 압축 해제한 뒤, 데이터(DT62, DT63) 및 패리티 데이터(PDT)를 사용하여 데이터(DT61)를 복구할 수 있다.
실시 예에 따라, 컨트롤러(100)는 임계치(TH3)를 네트워크(NTW) 및 서브 시스템들(SB62~SB65)의 모든 리소스 이용률에 근거하여 결정할 수 있다. 예를 들어, 압축된 데이터가 전송될 때, 네트워크(NTW)는 부담을 덜고 서브 시스템들(SB62~SB65)은 압축 및 압축 해제에 따른 부담을 더하게 되므로, 컨트롤러(100)는 네트워크(NTW)와 서브 시스템들(SB62~SB65) 중 어디의 리소스를 더 이용할 것인지에 따라 임계치(TH3)를 결정할 수 있다.
도7은 본 발명의 실시 예에 따른 컨트롤러(100)의 데이터 저장 방법을 설명하는 순서도이다.
도7을 참조하면, 단계(S110)에서, 컨트롤러(100)의 압축률 테스터(110)는 원본 데이터의 압축률을 테스트할 수 있다.
단계(S120)에서, 컨트롤러(100)는 원본 데이터의 압축률에 따라 원본 데이터 및 복제본 데이터가 저장될 메모리 영역들을 결정할 수 있다. 컨트롤러(100)는 압축률의 범위들 각각에 메모리 영역들을 대응시키고, 범위들 중 원본 데이터의 압축률을 포함하는 범위를 결정하고, 결정된 범위에 대응하는 메모리 영역들에 원본 데이터 및 복제본 데이터를 각각 저장할 것으로 결정할 수 있다. 따라서, 컨트롤러(100)의 제어에 따라 원본 데이터 및 복제본 데이터는 결정된 메모리 영역들에 비압축된 상태로 각각 저장될 수 있다.
도8은 본 발명의 실시 예에 따른 컨트롤러(100)의 복구 동작 방법을 설명하는 순서도이다.
도8을 참조하면, 단계(S210)에서, 컨트롤러(100)는 소스 데이터를 소스 서브 시스템으로부터 목적지 서브 시스템으로 복제하는 복구 동작을 수행할 것인지 여부를 결정할 수 있다. 복구 동작을 수행하지 않을 때, 절차는 종료될 수 있다. 복구 동작을 수행할 것으로 결정될 때, 절차는 단계(S220)로 이동할 수 있다.
단계(S220)에서, 컨트롤러(100)는 소스 데이터의 압축률이 소정의 임계값보다 높은지 결정할 수 있다. 압축률이 임계값보다 높을 때, 절차는 단계(S230)로 이동할 수 있다. 압축률이 임계값보다 높지 않을 때, 절차는 단계(S250)로 이동할 수 있다.
단계(S230)에서, 컨트롤러(100)는 소스 서브 시스템이 소스 데이터를 압축하고 압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다.
단계(S240)에서, 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 압축된 소스 데이터를 압축 해제하고 압축 해제된 데이터를 저장하도록 제어할 수 있다.
단계(S250)에서, 컨트롤러(100)는 소스 서브 시스템이 비압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다.
단계(S260)에서, 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 비압축된 소스 데이터를 저장하도록 제어할 수 있다.
도9는 본 발명의 실시 예에 따른 컨트롤러(100)의 복구 동작 방법을 설명하는 순서도이다.
도9를 참조하면, 단계(S310)에서, 컨트롤러(100)는 소스 데이터를 소스 서브 시스템으로부터 목적지 서브 시스템으로 복제하는 복구 동작을 수행할 것인지 여부를 결정할 수 있다. 복구 동작을 수행하지 않을 때, 절차는 종료될 수 있다. 복구 동작을 수행할 것으로 결정될 때, 절차는 단계(S320)로 이동할 수 있다.
단계(S320)에서, 컨트롤러(100)는 네트워크(NTW), 소스 서브 시스템, 및 목적지 서브 시스템 중 병목점을 결정할 수 있다. 예를 들어, 컨트롤러(100)는 리소스 이용률에 근거하여 병목점을 판단할 수 있다. 다른 예로서, 컨트롤러(100)는 데이터 전송 속도에 근거하여 병목점을 판단할 수 있다.
단계(S330)에서, 컨트롤러(100)는 네트워크(NTW)가 병목점인지 여부를 결정할 수 있다. 네트워크(NTW)가 병목점일 때, 절차는 단계(S340)로 이동할 수 있다. 네트워크(NTW)가 병목점이 아닐 때, 절차는 단계(S360)로 이동할 수 있다.
단계(S340)에서, 컨트롤러(100)는 소스 서브 시스템이 소스 데이터를 압축하고 압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다.
단계(S350)에서, 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 압축된 소스 데이터를 압축 해제하고 압축 해제된 데이터를 저장하도록 제어할 수 있다.
단계(S360)에서, 컨트롤러(100)는 목적지 서브 시스템이 병목점인지 여부를 결정할 수 있다. 목적지 서브 시스템이 병목점일 때, 절차는 단계(S370)로 이동할 수 있다. 목적지 서브 시스템이 병목점이 아닐 때, 즉, 소스 서브 시스템이 병목점일 때, 절차는 단계(S400)로 이동할 수 있다.
단계(S370)에서, 컨트롤러(100)는 소스 서브 시스템이 소스 데이터를 압축하고 압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다.
단계(S380)에서, 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 압축된 소스 데이터를 임시 저장하도록 제어할 수 있다.
단계(S390)에서, 컨트롤러(100)는 목적지 서브 시스템이 임시 저장된 데이터를 유휴 시간에 압축 해제하고 압축 해제된 데이터를 저장하도록 제어할 수 있다.
단계(S400)에서, 컨트롤러(100)는 소스 서브 시스템이 비압축된 소스 데이터를 네트워크(NTW)로 전송하도록 제어할 수 있다.
단계(S410)에서, 컨트롤러(100)는 목적지 서브 시스템이 네트워크(NTW)로부터 전송된 비압축된 소스 데이터를 저장하도록 제어할 수 있다.
도10은 본 발명의 실시 예에 따른 컨트롤러(100)의 복구 동작 방법을 설명하는 순서도이다. 도10에서 단계들(S510~S610)은 도9의 단계들(S310~S410)과 실질적으로 동일하게 수행될 수 있다. 따라서, 이하에서는 도9와의 차이점을 중심으로 설명하고, 다른 설명은 생략될 것이다.
도10을 참조하면, 단계(S510)에서 복구 동작을 수행할 것으로 결정될 때, 절차는 단계(S620)로 이동할 수 있다.
단계(S620)에서, 컨트롤러(100)는 소스 데이터의 압축률이 소정의 임계값보다 높은지 결정할 수 있다. 압축률이 임계값보다 높을 때, 절차는 단계(S520)로 이동할 수 있다. 압축률이 임계값보다 높지 않을 때, 절차는 단계(S600)로 이동할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 데이터 저장 시스템
100: 컨트롤러
110: 압축률 테스터
SB1, SBn: 서브 시스템
SCTL1, SCTLn: 서브 컨트롤러
MR11, MR1m, MRn1, MRnk: 메모리 영역
NTW: 네트워크

Claims (27)

  1. 각각이 복수의 메모리 영역들을 포함하고 네트워크를 통해 연결된 서브 시스템들을 제어하는 컨트롤러의 동작 방법으로서,
    데이터의 압축률을 테스트하는 단계; 및
    상기 메모리 영역들 중 상기 압축률에 따라 상기 데이터 및 복제본 데이터가 저장될 메모리 영역들을 결정하는 단계를 포함하는 컨트롤러의 동작 방법.
  2. 제1항에 있어서,
    상기 메모리 영역들을 결정하는 단계는,
    압축률의 복수의 범위들 각각에 메모리 영역들을 대응시키는 단계;
    상기 범위들 중 상기 데이터의 상기 압축률을 포함하는 범위를 결정하는 단계; 및
    상기 범위에 대응하는 메모리 영역들에 상기 데이터 및 복제본 데이터를 각각 저장할 것으로 결정하는 단계를 포함하는 컨트롤러의 동작 방법.
  3. 제1항에 있어서,
    상기 데이터 및 상기 복제본 데이터 중 소스 데이터를 소스 서브 시스템으로부터 목적지 서브 시스템으로 복제할 때, 상기 압축률에 따라 압축된 소스 데이터 또는 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 단계를 더 포함하는 컨트롤러의 동작 방법.
  4. 제3항에 있어서,
    상기 제어하는 단계는,
    상기 압축률이 임계값보다 높을 때, 상기 소스 서브 시스템이 상기 소스 데이터를 압축하고 상기 압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하는 단계; 및
    상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 압축된 소스 데이터를 압축 해제하고 압축 해제된 데이터를 저장하도록 제어하는 단계를 포함하는 컨트롤러의 동작 방법.
  5. 제3항에 있어서,
    상기 제어하는 단계는,
    상기 압축률이 임계값보다 낮을 때, 상기 소스 서브 시스템이 상기 비압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하는 단계; 및
    상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 비압축된 소스 데이터를 저장하도록 제어하는 단계를 포함하는 컨트롤러의 동작 방법.
  6. 제1항에 있어서,
    상기 데이터 및 상기 복제본 데이터 중 소스 데이터를 소스 서브 시스템으로부터 목적지 서브 시스템으로 복제할 때, 병목점을 판단하는 단계; 및
    상기 병목점에 따라 압축된 소스 데이터 또는 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 단계를 더 포함하는 컨트롤러의 동작 방법.
  7. 제6항에 있어서,
    상기 제어하는 단계는,
    상기 네트워크가 상기 병목점이라고 판단될 때, 상기 소스 서브 시스템이 상기 소스 데이터를 압축하고 상기 압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하는 단계; 및
    상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 압축된 소스 데이터를 압축 해제하고, 압축 해제된 데이터를 저장하도록 제어하는 단계를 포함하는 컨트롤러의 동작 방법.
  8. 제6항에 있어서,
    상기 제어하는 단계는,
    상기 목적지 서브 시스템이 상기 병목점이라고 판단될 때, 상기 소스 서브 시스템이 상기 소스 데이터를 압축하고 상기 압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하는 단계; 및
    상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 압축된 소스 데이터를 임시 저장하고 임시 저장된 데이터를 유휴 시간에 압축 해제하고 압축 해제된 데이터를 저장하도록 제어하는 단계를 포함하는 컨트롤러의 동작 방법.
  9. 제6항에 있어서,
    상기 제어하는 단계는,
    상기 소스 서브 시스템이 상기 병목점이라고 판단될 때, 상기 소스 서브 시스템이 상기 비압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하는 단계; 및
    상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 비압축된 소스 데이터를 저장하도록 제어하는 단계를 포함하는 컨트롤러의 동작 방법.
  10. 제6항에 있어서,
    상기 병목점을 판단하기 전에 상기 압축률이 임계값보다 높은지 판단하는 단계를 더 포함하는 컨트롤러의 동작 방법.
  11. 제1항에 있어서,
    상기 메모리 영역들을 결정하는 단계는,
    상기 압축률에 따라 상기 복제본 데이터를 적어도 하나의 메모리 영역에 비압축된 상태로 저장하는 동시에 적어도 하나의 메모리 영역에 압축된 상태로 저장할 것으로 결정하는 단계를 포함하는 컨트롤러의 동작 방법.
  12. 각각이 복수의 메모리 영역들을 포함하고 네트워크를 통해 연결된 서브 시스템들; 및
    데이터의 압축률을 테스트하고, 상기 메모리 영역들 중 상기 압축률에 따라 상기 데이터 및 복제본 데이터가 저장될 메모리 영역들을 결정하도록 구성된 컨트롤러를 포함하는 데이터 저장 시스템.
  13. 제12항에 있어서,
    상기 컨트롤러는 압축률의 복수의 범위들 각각에 메모리 영역들을 대응시키고, 상기 범위들 중 상기 데이터의 상기 압축률을 포함하는 범위를 결정하고, 상기 범위에 대응하는 메모리 영역들에 상기 데이터 및 복제본 데이터를 각각 저장할 것으로 결정하는 데이터 저장 시스템.
  14. 제12항에 있어서,
    상기 컨트롤러는 상기 데이터 및 상기 복제본 데이터 중 소스 데이터를 소스 서브 시스템으로부터 목적지 서브 시스템으로 복제할 때, 상기 압축률에 따라 압축된 소스 데이터 또는 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 데이터 저장 시스템.
  15. 제14항에 있어서,
    상기 컨트롤러는 상기 압축률이 임계값보다 높을 때, 상기 소스 서브 시스템이 상기 소스 데이터를 압축하고 상기 압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하고, 상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 압축된 소스 데이터를 압축 해제하고 압축 해제된 데이터를 저장하도록 제어하는 데이터 저장 시스템.
  16. 제14항에 있어서,
    상기 컨트롤러는 상기 압축률이 임계값보다 낮을 때, 상기 소스 서브 시스템이 상기 비압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하고, 상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 비압축된 소스 데이터를 저장하도록 제어하는 데이터 저장 시스템.
  17. 제12항에 있어서,
    상기 컨트롤러는 상기 데이터 및 상기 복제본 데이터 중 소스 데이터를 소스 서브 시스템으로부터 목적지 서브 시스템으로 복제할 때, 병목점을 판단하여 압축된 소스 데이터 또는 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 데이터 저장 시스템.
  18. 제17항에 있어서,
    상기 컨트롤러는 상기 네트워크가 상기 병목점이라고 판단될 때, 상기 소스 서브 시스템이 상기 소스 데이터를 압축하고 상기 압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하고, 상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 압축된 소스 데이터를 압축 해제하고 압축 해제된 데이터를 저장하도록 제어하는 데이터 저장 시스템.
  19. 제17항에 있어서,
    상기 컨트롤러는 상기 목적지 서브 시스템이 상기 병목점이라고 판단될 때, 상기 소스 서브 시스템이 상기 소스 데이터를 압축하고 상기 압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하고, 상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 압축된 소스 데이터를 임시 저장하고 임시 저장된 데이터를 유휴 시간에 압축 해제하고 압축 해제된 데이터를 저장하도록 제어하는 데이터 저장 시스템.
  20. 제17항에 있어서,
    상기 컨트롤러는 상기 소스 서브 시스템이 상기 병목점이라고 판단될 때, 상기 소스 서브 시스템이 상기 비압축된 소스 데이터를 상기 네트워크로 전송하도록 제어하고, 상기 목적지 서브 시스템이 상기 네트워크로부터 전송된 상기 비압축된 소스 데이터를 저장하도록 제어하는 데이터 저장 시스템.
  21. 제12항에 있어서,
    상기 컨트롤러는 상기 압축률에 따라 상기 복제본 데이터를 적어도 하나의 메모리 영역에 비압축된 상태로 저장하는 동시에 적어도 하나의 메모리 영역에 압축된 상태로 저장할 것으로 결정하는 데이터 저장 시스템.
  22. 각각이 복수의 메모리 영역들을 포함하고 네트워크를 통해 연결된 서브 시스템들; 및
    소스 서브 시스템으로부터 목적지 서브 시스템으로 소스 데이터를 복제할 때, 상기 소스 데이터의 압축률에 따라 압축된 소스 데이터 또는 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 컨트롤러를 포함하는 데이터 저장 시스템.
  23. 제22항에 있어서,
    상기 컨트롤러는 상기 소스 데이터가 상기 소스 서브 시스템에 저장되기 전에, 상기 압축률을 테스트하고 상기 압축률에 따라 상기 소스 서브 시스템에서 상기 소스 데이터가 저장될 메모리 영역을 결정하는 데이터 저장 시스템.
  24. 제23항에 있어서,
    상기 컨트롤러는 상기 메모리 영역에 소정 범위의 압축률의 데이터를 저장하는 데이터 저장 시스템.
  25. 제22항에 있어서,
    상기 컨트롤러는 상기 압축률이 임계값보다 높을 때 상기 압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하고, 상기 압축률이 상기 임계값보다 낮을 때 상기 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 데이터 저장 시스템.
  26. 제22항에 있어서,
    상기 소스 서브 시스템은 상기 컨트롤러의 제어에 따라 상기 소스 데이터를 압축하고 상기 압축된 소스 데이터를 상기 네트워크로 전송하고,
    상기 목적지 서브 시스템은 상기 컨트롤러의 제어에 따라 상기 네트워크로부터 전송된 상기 압축된 소스 데이터를 압축 해제하고, 압축 해제된 데이터를 저장하는 데이터 저장 시스템.
  27. 제22항에 있어서,
    상기 컨트롤러는 상기 서브 시스템들 및 상기 네트워크 중 병목점을 더 판단함으로써 상기 압축된 소스 데이터 또는 상기 비압축된 소스 데이터가 상기 네트워크를 통해 전송되도록 제어하는 데이터 저장 시스템.
KR1020200041759A 2020-04-06 2020-04-06 데이터 저장 시스템 및 컨트롤러의 동작 방법 KR20210124607A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200041759A KR20210124607A (ko) 2020-04-06 2020-04-06 데이터 저장 시스템 및 컨트롤러의 동작 방법
US17/024,540 US11422737B2 (en) 2020-04-06 2020-09-17 Data storage system for data distribution and data restoration based on compressibility ratio of data and operating method of controller for controlling the data distribution and data restoration
CN202010987330.XA CN113495688A (zh) 2020-04-06 2020-09-18 数据存储系统以及控制器的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200041759A KR20210124607A (ko) 2020-04-06 2020-04-06 데이터 저장 시스템 및 컨트롤러의 동작 방법

Publications (1)

Publication Number Publication Date
KR20210124607A true KR20210124607A (ko) 2021-10-15

Family

ID=77921572

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200041759A KR20210124607A (ko) 2020-04-06 2020-04-06 데이터 저장 시스템 및 컨트롤러의 동작 방법

Country Status (3)

Country Link
US (1) US11422737B2 (ko)
KR (1) KR20210124607A (ko)
CN (1) CN113495688A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023070797A (ja) * 2021-11-10 2023-05-22 キオクシア株式会社 メモリシステムおよび方法
US11934678B2 (en) * 2022-07-22 2024-03-19 Hewlett Packard Enterprise Development Lp Data reduction for storage volumes

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100914654B1 (ko) 2007-10-17 2009-08-28 고려대학교 산학협력단 데이터 파일의 선택적 압축전송시스템
KR102114388B1 (ko) * 2013-10-18 2020-06-05 삼성전자주식회사 전자 장치의 메모리 압축 방법 및 장치
KR101468336B1 (ko) * 2013-11-25 2014-12-04 성균관대학교산학협력단 데이터 압축률 예측 기법에 기반한 데이터 분산 저장 방법, 이를 이용한 저장 장치 및 시스템
KR20170062615A (ko) * 2015-11-27 2017-06-08 삼성전자주식회사 이종의 불휘발성 메모리를 갖는 스토리지 장치의 접근 방법

Also Published As

Publication number Publication date
US20210311656A1 (en) 2021-10-07
US11422737B2 (en) 2022-08-23
CN113495688A (zh) 2021-10-12

Similar Documents

Publication Publication Date Title
US9928003B2 (en) Management of writable snapshots in a network storage device
US7904684B2 (en) System and article of manufacture for consistent copying of storage volumes
US10409508B2 (en) Updating of pinned storage in flash based on changes to flash-to-disk capacity ratio
US8281069B2 (en) Distributed data storage system using local copy operations for RAID-1 volumes
US9658929B1 (en) Asynchronous splitting
US8838849B1 (en) Link sharing for multiple replication modes
US9659074B1 (en) VFA statistics
US20160283130A1 (en) Managing sequentiality of tracks for asynchronous pprc tracks on secondary
US9390034B1 (en) Unified SCSI target management for performing a delayed shutdown of a service daemon in a deduplication appliance
US9619264B1 (en) AntiAfinity
US8838840B1 (en) Method and apparatus for recovering from slow or stuck SCSI commands at a SCSI target
EP3891964A1 (en) Cache warming: agility for a stateful service
US9600354B1 (en) VTL adaptive commit
KR20210124607A (ko) 데이터 저장 시스템 및 컨트롤러의 동작 방법
US11842050B2 (en) System and method for enabling smart network interface card (smartNIC) access to local storage resources
US7734591B1 (en) Coherent device to device data replication
US11216204B2 (en) Degraded redundant metadata, DRuM, technique
US11194501B2 (en) Standby copies withstand cascading fails
US10210060B2 (en) Online NVM format upgrade in a data storage system operating with active and standby memory controllers
US9384151B1 (en) Unified SCSI target management for managing a crashed service daemon in a deduplication appliance
US9600188B2 (en) Collision avoidance using dynamic target volume allocation from a shared resource pool
US9235450B2 (en) Method and apparatus for reducing slow or stuck SCSI commands in a multi-service environment at a SCSI target
US20190303046A1 (en) Data transmission method and host system using the same
CN113032091B (zh) 一种采用aep提升虚拟机存储性能的方法、系统及介质
US9378160B1 (en) Unified SCSI target management for shutting down and de-configuring a service daemon in a deduplication appliance

Legal Events

Date Code Title Description
A201 Request for examination