KR20210075038A - 분산형 블록 저장시스템, 방법, 장치, 장비와 매체 - Google Patents

분산형 블록 저장시스템, 방법, 장치, 장비와 매체 Download PDF

Info

Publication number
KR20210075038A
KR20210075038A KR1020210071274A KR20210071274A KR20210075038A KR 20210075038 A KR20210075038 A KR 20210075038A KR 1020210071274 A KR1020210071274 A KR 1020210071274A KR 20210071274 A KR20210071274 A KR 20210071274A KR 20210075038 A KR20210075038 A KR 20210075038A
Authority
KR
South Korea
Prior art keywords
magnetic disk
data
read
end magnetic
storage
Prior art date
Application number
KR1020210071274A
Other languages
English (en)
Inventor
청 천
펑페이 정
Original Assignee
베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. filed Critical 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디.
Publication of KR20210075038A publication Critical patent/KR20210075038A/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/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
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to 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/064Management of blocks
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Landscapes

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

Abstract

본 발명은 분산형 블록 저장 시스템, 방법, 장치, 장비와 매체를 공개하며, 데이터 저장 기술분야에 관한 것으로, 구체적으로, 클라우드 저장, 클라우드 컴퓨팅 등 분야에 관한 것이다. 분산형 블록 저장 시스템은 프론트엔드 저장 노드와 백엔드 저장 노드를 포함하며, 프론트엔드 저장 노드는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 백엔드 저장 노드는 적어도 하나의 백엔드 자기디스크를 포함하며, 프론트엔드 자기디스크의 읽기 쓰기 성능은 백엔드 자기디스크의 읽기 쓰기 성능보다 높으며, 방법은 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하는 단계; 사전 설정된 전송 조건을 만족 시, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 조작 데이터의 전송 처리를 실행하는 단계를 포함한다. 본 발명은 분산형 블록 저장 시스템의 읽기 쓰기 성능을 향상시킬 수 있다.

Description

분산형 블록 저장시스템, 방법, 장치, 장비와 매체{DISTRIBUTED BLOCK STORAGE SYSTEM, METHOD, APPARATUS, DEVICE AND MEDIUM}
본 발명은 데이터 저장 기술분야에 관한 것으로서, 구체적으로는 클라우드 컴퓨팅, 클라우드 스토리지 등 기술 분야에 관한 것이며, 특히 분산형 블록 저장시스템, 방법, 장치, 장비와 매체에 관한 것이다.
클라우드 컴퓨팅(cloud computing)이란 네트워크를 통해 탄력적으로 확장 가능한 공유 물리적 또는 가상 리소스 풀에 접속하고, 필요에 따라 온디멘드, 셀프 서비스 방식으로 리소스를 배치 및 관리하는 기술 체계로서, 리소스는 서버, 운영체계, 네트워크, 소프트웨어, 애플리케이션 및 저장장치 등을 포함할 수 있다. 클라우드 컴퓨팅 기술을 통해, 인공지능, 블록체인 등 기술 응용, 모델 훈련에 강력한 데이터 처리 능력을 제공할 수 있다.
분산형 블록 저장은 데이터 저장 기술의 하나로서, 데이터를 여러 기기의 자기디스크에 분산 저장한다. 관련 기술 중, 분산형 블록 저장 시스템은 고성능 자기디스크와 저성능 자기디스크를 포함하며, 고성능 자기디스크에는 핫 데이터가 저장되고, 저성능 자기디스크에는 콜드 데이터가 저장된다.
본 발명은 분산형 블록 저장시스템, 방법, 장치, 장비와 매체를 제공한다.
본 발명의 일 측면에 따라 분산형 블록 저장 시스템의 읽기 쓰기 방법을 제공함에 있어서, 분산형 블록 저장 시스템은 프론트엔드 저장 노드와 백엔드 저장 노드를 포함하며, 프론트엔드 저장 노드는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 백엔드 저장 노드는 적어도 하나의 백엔드 자기디스크를 포함하며, 프론트엔드 자기디스크의 읽기 쓰기 성능은 백엔드 자기디스크의 읽기 쓰기 성능보다 높으며, 방법은 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하는 단계; 사전 설정된 전송 조건을 만족 시, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 조작 데이터의 전송 처리를 실행하는 단계를 포함한다.
본 발명의 또 다른 측면에 따라 분산형 블록 저장 시스템의 읽기 쓰기 장치를 제공함에 있어서, 분산형 블록 저장 시스템은 프론트엔드 저장 노드와 백엔드 저장 노드를 포함하며, 프론트엔드 저장 노드는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 백엔드 저장 노드는 적어도 하나의 백엔드 자기디스크를 포함하며, 프론트엔드 자기디스크의 읽기 쓰기 성능은 백엔드 자기디스크의 읽기 쓰기 성능보다 높으며, 장치는 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하기 위한 응답 유닛; 사전 설정된 전송 조건을 만족 시, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 조작 데이터의 전송 처리를 실행하기 위한 전송 유닛을 포함한다.
본 발명의 또 다른 측면에 따르면, 적어도 하나의 프론트엔드 자기디스크; 및, 프론트엔드 자기디스크에 대해 조작을 수행하는 상기 어느 하나의 측면의 어느 한 항에 따른 장치를 포함하는 프론트엔드 저장 노드를 제공한다.
본 발명의 또 다른 측면에 따르면, 상기 어느 하나의 측면의 어느 한 항에 따른 프론트엔드 저장 노드를 포함하는 분산형 블록 저장 시스템을 제공한다.
본 발명의 또 다른 측면에 따르면, 적어도 하나의 프로세서; 및 적어도 하나의 프로세서와 통신 연결되는 메모리를 포함하는 전자장치를 제공하며; 여기서, 메모리는 적어도 하나의 프로세서에 의해 실행될 수 있는 명령이 저장되고, 명령은 적어도 하나의 프로세서가 상기 어느 한 측면의 어느 한 항에 따른 방법을 실행할 수 있도록 적어도 하나의 프로세서에 의해 실행된다.
본 발명의 또 다른 측면에 따르면, 컴퓨터 명령이 저장된 비일시적 컴퓨터 가독 저장 매체를 제공하며, 여기서, 컴퓨터 명령은 컴퓨터가 상기 어느 하나의 측면의 어느 한 항에 따른 방법을 실행하도록 하기 위한 것이다.
본 발명의 또 다른 측면에 따르면, 컴퓨터 가독 저장매체에 저장되는 컴퓨터 프로그램을 제공하며, 컴퓨터 프로그램은 명령을 포함하고, 여기서, 명령은 적어도 하나의 프로세서에 의해 실행 시, 상기 어느 하나의 측면의 어느 한 항에 따른 방법을 구현한다.
본 발명의 기술방안에 따르면, 분산형 블록 저장 시스템의 읽기 쓰기 성능을 향상시킬 수 있다.
이 부분에 기술된 내용은 본 발명의 실시예의 핵심적이거나 또는 중요한 특징을 표시하기 위한 것이 아니며, 본 발명의 범위를 제한하기 위한 것도 아님을 이해하여야 한다. 본 발명의 기타 특징은 아래의 명세서를 통해 쉽게 이해될 수 있을 것이다.
첨부 도면은 본 방안을 더욱 잘 이해하도록 하기 위한 것으로서, 본 발명을 제한하지 않는다. 여기서,
도 1은 본 발명의 제1 실시예에 따른 설명도이다.
도 2는 본 발명의 제2 실시예에 따른 설명도이다.
도 3은 본 발명의 제3 실시예에 따른 설명도이다.
도 4는 본 발명의 제4 실시예에 따른 설명도이다.
도 5는 본 발명의 제5 실시예에 따른 설명도이다.
도 6은 본 발명의 제6 실시예에 따른 설명도이다.
도 7은 본 발명의 제7 실시예에 따른 설명도이다.
도 8은 본 발명의 제8 실시예에 따른 설명도이다.
도 9는 본 발명의 제9 실시예에 따른 설명도이다.
도 10은 본 발명의 제10 실시예에 따른 설명도이다.
도 11은 본 발명의 실시예의 위한 분산형 블록 저장 시스템의 읽기 쓰기 방법 중 어느 하나의 방법을 구현하기 위한 전자장치의 설명도이다.
이하 첨부도면을 결합하여 본 발명의 시범적인 실시예에 대해 설명한다. 여기서 본 발명의 실시예를 포함하는 각종 세부 내용은 이해를 돕기 위한 것으로서, 시범적인 것으로만 이해하여야 한다. 따라서, 당업자라면 여기에 기재된 실시예에 대해 본 발명의 범위를 벗어나지 않고 각종 변경과 수정을 가할 수 있음을 인식해야 한다. 마찬가지로, 명확성과 간략함을 위해, 아래의 기술에서는 공지의 기능과 구조에 대한 설명을 생략하였다.
관련 기술에서 분산형 블록 저장 시스템은 고성능 자기디스크에 핫 데이터가 저장되고, 저성능 자기디스크에 콜드 데이터가 저장된다. 이러한 방식은 어느 정도의 문제가 있을 수 있으며, 예컨대 클라이언트단이 콜드 데이터를 읽거나 써야 할 때, 저성능 자기디스크에 대해 읽기 쓰기 조작을 수행 해야 하는데, 이때 분산형 블록 저장 시스템의 읽기 쓰기 성능은 저성능 자기디스크의 읽기 쓰기 성능이며, 저성능 자기디스크는 읽기 쓰기 성능이 나쁜 편이므로, 콜드 데이터에 대한 분산형 블록 저장 시스템의 읽기 쓰기 성능 역시 떨어진다.
분산형 블록 저장 시스템의 읽기 쓰기 성능을 향상시키기 위하여, 본 발명은 다음과 같은 일부 실시예를 제공한다.
도 1은 본 발명의 제1 실시예에 따른 설명도이다. 본 실시예는 분산형 블록 저장 시스템을 제공한다. 도 1에 도시된 바와 같이, 상기 시스템(100)은 적어도 하나의 프론트엔드 저장 노드그룹(101)과 적어도 하나의 백엔드 저장 노드그룹(102)을 포함하며; 적어도 하나의 프론트엔드 저장 노드그룹 중의 각 프론트엔드 저장 노드그룹(101)은 적어도 하나의 프론트엔드 저장 노드(1011)를 포함하고, 적어도 하나의 백엔드 저장 노드그룹 중의 각 백엔드 저장 노드그룹(102)은 적어도 하나의 백엔드 저장 노드(1021)를 포함하며, 적어도 하나의 프론트엔드 저장 노드 중의 각각의 프론트엔드 저장 노드(1011)는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 적어도 하나의 백엔드 저장 노드 중의 각각의 백엔드 저장 노드(1021)는 적어도 하나의 백엔드 자기디스크를 포함하며; 프론트엔드 자기디스크의 읽기 쓰기 성능은 백엔드 자기디스크의 읽기 쓰기 성능보다 높다. 여기서, 적어도 하나의 프론트엔드 저장 노드그룹(101)의 집합은 프론드엔드 풀(pool)이라 칭할 수 있고, 적어도 하나의 백엔드 저장 노드그룹(102)의 집합은 백엔드 풀이라 칭할 수 있다.
본 발명의 실시예에서, 저장 노드그룹(프론트엔드 저장 노드그룹과 백엔드 저장 노드그룹)은 동일한 데이터에 대응하여 구분한 것으로서, 각 저장 노드그룹에 하나의 저장 노드만 포함되는 상황을 배제하지 않는다. 즉, 각각의 프론트엔드 저장 노드그룹은 하나의 프론트엔드 저장 노드를 포함하고, 각각의 백엔드 저장 노드그룹은 하나의 백엔드 저장 노드를 포함하는 것일 수 있다. 그러나, 일반적으로, 데이터 백업 재해복구를 구현하기 위하여 동일한 데이터는 여러 복사본으로 백업될 수 있다. 예를 들어 동일한 데이터에 3개의 복사본이 대응되어, 각각의 복사본이 하나의 저장 노드에 저장되며, 따라서, 이 3개의 복사본이 소재하는 3개의 저장 노드가 하나의 저장 노드그룹을 구성하며, 동일한 데이터에 대응되는 다수(예를 들어 3개)의 복사본의 집합을 하나의 복제그룹(Replicate Group, RG)으로 칭할 수 있다.
도 1은 각각의 프론트엔드 저장 노드그룹(101)은 3개의 프론트엔드 저장 노드(1011)를 포함하고, 각각의 백엔드 저장 노드그룹(102)은 3개의 백엔드 저장 노드(1021)를 포함하는 예, 및, 프론트엔드 자기디스크는 고체 하드디스크(Solid State Disk 또는 Solid State Drive, SSD)이고, 백엔드 자기디스크는 직렬(Serial Advanced Technology Attachment, SATA) 하드디스크인 예를 든 것이다.
분산형 블록 저장 시스템은 다수의 저장 노드를 포함하고, 저장 노드는 예를 들어 서버이다. 클라이언트단은 사전 설정된 할당 정책에 따라, 읽기 쓰기 요청을 위해 분산형 블록 저장 시스템에서 하나의 저장 노드를 할당한 다음, 할당된 저장 노드로 읽기 쓰기 요청을 전송할 수 있다.
본 실시예에서, 클라이언트단은 읽기 쓰기 요청을 위해 저장 노드를 할당 시, 프론트엔드 저장 노드에 할당하며, 즉, 하나의 프론트엔드 저장 노드를 할당을 위한 저장 노드로 선택하고, 이후 읽기 쓰기 요청을 상기 선택된 프론트엔드 저장 노드로 전송하며, 클라이언트단은 로드 밸런싱(load balancing) 정책에 따라 다수의 프론트엔드 저장 노드에서 상기 선택을 수행할 수 있다.
이와 대응되게, 관련 기술에서는 클라이언트단이 데이터의 핫한 정도에 따라 저장 노드를 할당한다. 예를 들어, 핫 데이터는 SSD를 포함한 저장 노드에 할당하고, 콜드 데이터는 SATA를 포함한 저장 노드에 할당한다. 따라서, 관련 기술에서는, 클라이언트단이 전송한 읽기 쓰기 요청을 수신하는 저장 노드가 SSD를 포함한 저장 노드일 수도 있고, SATA를 포함한 저장 노드일 수도 있으며, 이는 본 실시예 중의 프론트엔드 저장 노드가 모두 SSD를 포함한 저장 노드인 점과 다르다.
도 1에 도시된 바와 같이, 각각의 프론트엔드 저장 노드그룹에 3개의 프론트엔드 저장 노드가 포함되는 경우를 예로 들고, 또한, 도 2를 참조하면, 프론트엔드 저장 노드 그룹(200) 중의 3개의 프론트엔드 저장 노드는 각각 하나의 메인 저장 노드(201)와 2개의 슬레이브 저장 노드(202)로 칭할 수 있으며, 메인 저장 노드는 클라이언트단과 상호 작용하는 저장 노드로서, 즉, 클라이언트단이 전송한 읽기 쓰기 요청을 수신하는 프론트엔드 저장 노드를 메인 저장 노드로 칭한다. 도 2는 또한 쓰기 방향의 데이터 진행 방향을 나타낸 것으로서, 즉 읽기 쓰기 요청이 구체적으로 쓰기 요청인 경우, 메인 저장 노드(201)는 또한 쓰기 요청에 휴대된 기록할 데이터를 동시에 2개의 슬레이브 저장 노드(202)로 전송한다.
백엔드 저장 노드그룹에 포함된 3개의 백엔드 저장 노드 역시 하나의 메인 저장 노드와 2개의 슬레이브 저장 노드로 나뉠 수 있으며, 백엔드 저장 노드 중의 메인 저장 노드는 프론트엔드 저장 노드의 읽기 쓰기 요청을 수신하는 저장 노드를 가리키고, 나머지 동작은 프론트엔드 저장 노드 중의 메인 저장 노드와 슬레이브 저장 노드의 조작 원리와 기본적으로 일치한다는 점을 이해할 수 있을 것이다.
본 실시예에서, 메인 저장 노드와 슬레이브 저장 노드의 설정을 통해, 데이터 재해복구 백업을 구현할 수 있다.
도 3은 본 발명의 제3 실시예의 설명도이다. 본 실시예는 분산형 블록 저장 시스템의 읽기 쓰기 방법을 제공한다. 분산형 블록 저장 시스템은 프론트엔드 저장 노드와 백엔드 저장 노드를 포함하며, 프론트엔드 저장 노드는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 백엔드 저장 노드는 적어도 하나의 백엔드 자기디스크를 포함하며, 프론트엔드 자기디스크의 읽기 쓰기 성능은 백엔드 자기디스크의 읽기 쓰기 성능보다 높고, 방법은 이하 단계를 포함한다:
301: 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하는 단계.
302: 사전 설정된 전송 조건을 만족 시, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 조작 데이터의 전송 처리를 실행하는 단계.
일반적으로, 비용을 절감하기 위하여, 분산형 블록 저장 시스템은 계층적 저장(hierarchical storage) 방식을 채택할 수 있으며, 즉 분산형 블록 저장 시스템은 일 부분의 고성능 자기디스크 및 일 부분의 저성능 자기디스크를 포함한다. 관련 기술 중 핫 데이터는 고성능 자기디스크에 저장되고, 콜드 데이터는 저성능 자기디스크에 저장되며, 콜드 데이터를 조작 시 성능이 떨어진다. 반면 본 실시예에서는 클라이언트단의 읽기 쓰기 요청에 따라 조작하는 것은 프론드엔드 자기디스크로서, 즉 콜드 데이터와 핫 데이터를 구분하지 않고, 프론트엔드 저장 노드를 이용하여 클라이언트단의 읽기 쓰기 요청에 응답하고, 프론트엔드 저장 노드는 읽기 쓰기 요청에 따라 프론트엔드 자기디스크에 대해 조작을 수행하며, 프론트엔드 자기디스크는 고성능 자기디스크이므로, 읽기 쓰기 성능이 향상될 수 있다.
본 실시예에서, 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 읽기 쓰기 조작을 수행하는 방식을 통해, 프론트엔드 자기디스크는 읽기쓰기 성능이 비교 적 높은 자기디스크이므로, 분산형 블록 저장 시스템의 읽기 쓰기 성능이 향상될 수 있다.
일부 실시예에서, 전송 조건은 마이그레이션 조건과 캐시 조건을 포함하며, 사전 설정된 전송 조건을 만족 시, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 조작 데이터의 전송 처리를 실행하는 단계는, 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하는 단계; 및/또는 캐시 조건을 만족 시, 백엔드 자기디스크 상의 조작 데이터를 프론트엔드 자기디스크로 캐시하는 단계를 포함한다.
여기서, 마이그레이션은 플러시(flush)라고도 칭할 수 있으며, 데이터가 백엔드 자기디스크로 마이그레이션된 후, 프론트엔드 자기디스크의 해당 저장 공간이 새로운 데이터를 저장하는데 사용되도록 회수될 수 있음을 의미한다. 캐시는 미리 읽기라고도 칭할 수 있으며, 백엔드 자기디스크 상의 데이터가 변경되지 않도록 유지하면서, 프론트엔드 자기디스크에 동일한 데이터를 백업하는 것을 가리킨다.
본 실시예에서, 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 데이터를 백엔드 자기디스크로 마이그레이션함으로써, 프론트엔드 자기디스크 상의 데이터 점유율을 낮출 수 있으며, 프론트엔드 자기디스크의 읽기 쓰기 성능이 백엔드 자기디스크의 읽기 쓰기 성능보다 높기 때문에, 일반적으로 프론트엔드 자기디스크의 원가 역시 백엔드 자기디스크의 원가에 비해 높으므로, 따라서, 프론트엔드 자기디스크 상의 데이터 점유율을 낮춤으로써, 비용을 절감하거나; 및/또는, 캐시 조건을 만족 시, 백엔드 자기디스크 상의 데이터를 프론트엔드 자기디스크에 캐싱시켜, 직접 데이터를 프론트엔드 자기디스크로부터 클라이언트단에 제공함으로써, 읽기 성능을 향상시킬 수 있다.
본 발명의 실시예의 읽기 쓰기 방법은 구체적으로 프론트엔드 저장 노드에 응용할 수 있으며, 또한, 도 2에 도시된 프론트엔드 저장 노드는 메인 저장 노드와 슬레이브 저장 노드를 포함하는 상황으로서, 상기 읽기 쓰기 방법은 구체적으로 메인 저장 노드에 응용될 수 있다. 즉, 메인 저장 노드는 클라이언트단이 전송한 읽기 쓰기 요청을 수신하여, 상기 읽기 쓰기 요청에 따라 메인 저장 노드 중의 SSD에 대해 읽기 쓰기 조작을 수행한다. 또한, 읽기 쓰기 요청 중의 쓰기 요청에 대응하여, 메인 저장 노드는 또한 쓰기 요청 중에 휴대된 기록할 데이터를 슬레이브 저장 노드로 동시에 전송할 수 있으며, 슬레이브 저장 노드는 기록할 데이터를 수신한 후, 상기 기록할 데이터를 슬레이브 저장 노드 자체에 포함된 SSD에 저장한다. 슬레이브 저장 노드의 데이터 쓰기 과정과 메인 저장 노드의 데이터 쓰기 과정은 기본적으로 일치한다. 읽기 쓰기 요청 중의 읽기 요청의 경우, 메인 저장 노드와 슬레이브 저장 노드가 동일한 데이터를 저장하는 노드이므로, 읽기 요청에 대해서는 메인 저장 노드가 직접 클라이언트단으로 독취할 데이터를 회송하거나 또는 독취에 실패한 정보를 회송할 수 있으며, 메인 저장 노드가 읽기 요청을 슬레이브 저장 노드로 더 전송할 필요가 없다.
일부 실시예에서, 도 4를 참조하면, 프론트엔드 자기디스크(예컨대 SSD)는 논리적으로 각각 쓰기 캐시와 읽기 캐시로 칭하는 2개의 논리 영역으로 나뉠 수 있고, 이와 상응하게, 물리적으로, 프론트엔드 자기디스크(400)는 제1 물리 저장 공간(401)과 제2 물리 저장 공간(402)을 포함할 수 있다. 제1 물리 저장 공간(401)은 적어도 하나의 물리 블록을 포함하고, 제2 물리 저장 공간(402)은 적어도 하나의 물리 블록을 포함하며, 제1 물리 저장 공간(401)은 상기 쓰기 캐시에 대응되고, 제2 물리 저장 공간(402)은 상기 읽기 캐시에 대응된다.
도 4에서는 제1 물리 저장 공간(401)과 제2 물리 저장 공간(402)에 교집합이 존재하지 않는 것을 예로 들었으나, 일부 실시예에서, 이 2개의 물리 저장 공간은 교집합이 존재할 수 있음을 이해할 수 있을 것이다. 예를 들어, 제1 물리 저장 공간은 물리 블록 A, 물리 블록 B와 물리 블록 C를 포함하고, 제2 물리 저장 공간은 물리 블록 C와 물리 블록 D를 포함할 수 있다.
일반적으로, 쓰기 요청량이 읽기 요청량보다 클 수 있으므로, 일부 실시예에서, 실제 수요를 더욱 확실하게 만족시키기 위하여, 제1 물리 저장 공간의 용량의 합은 제2 물리 저장 공간의 용량의 합보다 크다.
일부 실시예에서, 프론트엔드 자기디스크 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하는 단계는, 프론트엔드 자기디스크의 제1 물리 저장 공간 내의 조작 데이터를 백엔드 자기디스크로 마이그레이션하는 단계를 포함하고; 및/또는, 백엔드 자기디스크 상의 조작 데이터를 프론트엔드 자기디스크에 캐싱하는 단계는, 백엔드 자기디스크 상의 조작 데이터를 프론트엔드 자기디스크의 제2 물리 저장 공간 내에 캐싱하는 단계를 포함한다.
데이터를 SSD로부터 SATA로 마이그레이션하는 것을 백업 애플리케이션이라고 칭할 수 있고, 데이터를 SATA로부터 SSD로 캐싱하는 것을 캐시 애플리케이션이라 칭할 수 있다. 본 실시예 중 마이그레이션에 대응되는 데이터와 캐시에 대응되는 데이터가 각각 제1 물리 저장 공간과 제2 물리 저장 공간에 저장되고, 2개의 물리 저장 공간이 다르기 때문에, 백업 애플리케이션과 캐시 애플리케이션이 호환될 수 있다. 이와 대응되게, 관련 기술에서는 콜드 데이터를 SATA로부터 SSD로 마이그레이션하거나, 또는 핫 데이터를 SSD로부터 SATA로 마이그레이션하는 과정에서, 백업 애플리케이션과 캐시 애플리케이션 중의 하나만 구현할 수 있으며, 백업 애플리케이션과 캐시 애플리케이션은 호환될 수 없다.
본 실시예에서, SSD에서 제1 물리 저장 공간과 제2 물리 저장 공간으로 구분하고, 이 2개의 물리 저장 공간을 각각 마이그레이션된 데이터와 캐싱된 데이터에 대응시키는 방식을 통해, 백업 애플리케이션과 캐시 애플리케이션의 호환을 구현할 수 있다.
프론트엔드 저장 노드는 미리 설치된 관리툴, 예를 들어 스토리지 엔진(예컨대 rocksdb)을 통해 데이터 관리를 수행할 수 있다. 예를 들어, 도 5를 참조하면, 프론트엔드 저장 노드(500)는 하드웨어 계층의 SSD(501)와 소프트웨어 계층의 스토리지 엔진(502)을 포함할 수 있다.
도 6을 참조하면, 스토리지 엔진이 수행하는 데이터 관리는 공간 할당, 공간 회수, 캐시 상태 통계, 메타정보 유지관리 등을 포함할 수 있다.
공간 할당: 데이터를 위해 물리 저장 공간을 할당한다. 예를 들어, SSD는 다수의 물리 스토리지 엔진을 포함하며, 스토리지 엔진은 사전 설정된 할당 정책에 따라 물리 블록을 데이터에 할당하여 사용할 수 있다. 물리 블록의 할당 상황에 따라, 물리 블록의 상태는 할당되지 않음, 사전 할당됨 및 매핑됨으로 구분할 수 있다. 또한, SSD가 논리 계층에서 읽기 캐시와 쓰기 캐시로 나뉜 경우, 상기 할당되지 않음과 사전 할당됨은 더 나아가 읽기 캐시 할당되지 않음, 쓰기 캐시 할당되지 않음, 읽기 캐시 사전 할당됨, 쓰기 캐시 사전 할당됨으로 구분될 수 있고, 매핑됨은 더 나아가 읽기 캐시 매핑, 쓰기 캐시 매핑, 읽기 쓰기 캐시 매핑으로 구분될 수 있다. 여기서, 할당되지 않음은 즉 할당을 하지 않은 것이고, 사전 할당됨은 현재 데이터에 대해 물리 불록을 할당 시 현재 데이터의 다음 데이터를 위해 물리 블록을 미리 할당할 수 있음을 의미한다. 예를 들어 현재 데이터에게 물리 불록 A를 할당 시, 다음 데이터를 위해 물리 블록 B를 동시에 할당할 수 있다. 매핑됨이란 할당되었을 뿐만 아니라 읽기 캐시 및/또는 쓰기 캐시와 매핑관계를 더 구축하였음을 의미한다. 예를 들어, 도 4를 참조하면, SSD는 논리 계층에서 읽기 캐시와 쓰기 캐시로 구분할 수 있으며, 각기 다른 물리 블록은 다른 캐시와 관계를 구축할 수 있다. 예를 들어 쓰기 캐시에 대응되는 물리 블록은 물리 블록 A, 물리 블록 B와 물리 블록 C를 포함하고, 읽기 캐시에 대응되는 물리 블록은 물리 블록 C와 물리 블록 D를 포함할 수 있으며, 즉 물리 블록 A와 물리 블록 B의 상태는 이미 매핑됨이면서 쓰기 캐시 매핑이고; 물리 블록 C의 상태는 이미 매핑됨이면서 읽기 쓰기 캐시 매핑이며; 물리 블록 D의 상태는 이미 매핑됨이면서 읽기 캐시 매핑이다. 상기 공간 할당 상황, 예를 들어 각 물리 블록의 상태는 스토리지 엔진에 지속될 수 있으며, 이에 따라 스토리지 엔진에 대응되는 프로세스를 다시 시작한 후 복구할 수 있다.
공간 회수: 데이터가 이미 사용한 물리 공간을 회수하며, 주로 SSD의 공간을 회수하는 것을 말하며, SSD의 점유율이 감소되어, 비용이 절감된다. 예를 들어 회수 가능한 공간은 쓰기 캐시 사전 할당에 대응되는 물리 블록; 읽기 캐시 사전 할당에 대응되는 물리 블록; 쓰기 캐시에 대응되는 물리 블록 중의 데이터가 SATA로 플러싱된 후, 상기 데이터가 원래 사용한 물리 블록; 읽기 캐시에 대응되는 물리 블록 중의 미리 읽기 데이터보다 더 핫한 데이터가 나타난 경우, 상기 미리 읽기 데이터에 대응되는 물리 블록을 포함한다.
캐시 상태 통계: 읽기 캐시의 상태와 쓰기 캐시의 상태에 대해 각각 통계를 수행하며, 읽기 캐시에 대하여, 예를 들어 읽기 캐시 중에 저장된 데이터의 단위 시간 길이 또는 특정 시간 길이 내에서의 방문량을 집계하여, 저장된 데이터의 핫한 정도를 확정하고; 쓰기 캐시에 대하여, 예를 들어 단위 시간 길이 또는 특정 시간 길이 내에서의 쓰기 요청 데이터량을 통계내어, 쓰기 조작의 핫한 정도를 통계낸다.
메타정보 유지관리: 메타정보란 데이터 관리 시 채택하는 기본 데이터 정보를 말하며, 예를 들어 상기 공간 할당 후 구축된 매핑 관계, 데이터를 물리 블록에 기록한 후의 저장 정보, 프론트엔드 저장 노드와 백엔드 저장 노드의 매핑 관계 등이며, 메타정보는 스토리지 엔진에 저장될 수 있고, 각 복제그룹은 하나의 동일한 스토리지 엔진의 구현예에 대응된다.
스토리지 엔진을 기반으로, 프론트엔드 저장 노드는 다음과 같은 읽기 쓰기 조작을 실행할 수 있다:
일부 실시예에서, 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하는 단계는, 읽기 쓰기 요청이 쓰기 요청일 때, 조작 데이터는 기록할 데이터이며, 쓰기 요청에 기록할 데이터를 휴대하고, 기록할 데이터를 파일화하여, 파일을 적어도 하나의 파일유닛으로 구분하는 단계, 및 적어도 하나의 파일 유닛 중의 각 파일 유닛이 매핑되는 물리 유닛을 확정하고, 물리 유닛은 프론트엔드 자기디스크에 위치하며, 각 파일유닛을 프론트엔드 자기디스크의 매핑된 물리 유닛에 저장하는 단계; 및/또는, 읽기 쓰기 요청이 읽기 요청인 경우, 조작 데이터는 독취할 데이터이며, 읽기 요청에 독취할 데이터의 식별자를 휴대하여, 식별자에 따라 독취할 데이터의 프론트엔드 자기디스크 상의 저장 정보를 획득하며, 저장 정보에 따라 프론트엔드 자기디스크에서 독취할 데이터를 획득하고, 독취할 데이터를 클라이언트단으로 전송하는 단계를 포함한다.
쓰기 요청에 대하여:
제1 물리 저장 공간(401)은 프론트엔드 저장 노드가 수신한 쓰기 요청에 휴대된 기록할 데이터를 저장하기 위한 것이며, 예를 들어, 메인 저장 노드의 경우, 메인 저장 노드는 클라이언트단이 전송한 쓰기 요청에 휴대된 기록할 데이터를 메인 저장 노드의 SSD의 쓰기 캐시에 대응되는 물리 블록에 저장하고; 슬레이브 저장 노드의 경우, 슬레이브 저장 노드가 메인 저장 노드의 기록할 데이터를 포함하는 동기적인 쓰기 요청을 수신한 후, 슬레이브 저장 노드가 상기 기록할 데이터를 슬레이브 저장 노드의 SSD의 쓰기 캐시에 대응되는 물리 블록에 저장한다.
스토리지 엔진은 가상 파일 시스템의 형식에 따라 데이터를 관리할 수 있다. 도 7을 참조하면, 가상 파일 시스템(700)은 파일(file)층, 파일 유닛(inode)층과 물리(disk) 유닛층으로 구분할 수 있다. 파일층과 파일유닛층은 논리 계층에 위치하고, 물리유닛층은 물리 계층에 위치한다. 도 7에는 하나의 파일의 관련 내용만 도시하였으나, 가상 파일 시스템은 다수의 파일을 포함할 수도 있음을 이해할 수 있을 것이다. 또한, 데이터 저장 시에는 데이터를 파일로 처리하는 것이며, SSD 중의 데이터는 일정 조건 하에서 SATA로 플러싱될 수 있다. 따라서, SSD 중의 각 데이터는 희소하다고 칭할 수 있다. 이와 상응하게, 상기 가상 파일 시스템은 희소 가상 파일 시스템이라 칭할 수 있다.
도 7을 결합해보면, 프론트엔드 저장 노드(메인 저장 노드와 슬레이브 저장 노드 포함)가 데이터(즉 상기 기록할 데이터)를 수신한 후, 데이터를 파일화하여, 파일을 적어도 하나의 파일유닛으로 나눈 다음, 각 파일유닛을 대응되는 물리유닛에 매핑할 수 있다. 필요에 따라, 파일유닛과 물리유닛의 입도를 설정할 수 있음을 이해할 수 있을 것이며, 예를 들어 파일유닛은 파일블록(file block)또는 파일 슬라이스(file slice)일 수 있고, 물리유닛은 물리 블록(block) 또는 물리 세그먼트(segment)일 수 있다. 여기서, 파일 슬라이스의 입도는 파일 블록의 입도보다 작고, 물리 세그먼트의 입도는 물리 블록의 입도보다 작으며, 파일 블록은 물리 블록에 대응되고, 파일 슬라이스는 물리 세그먼트에 대응된다. 본 실시예에서, 도 7을 참조하면, 파일유닛은 파일 블록이고, 물리유닛은 물리 블록인 경우를 예로 든 것이다.
파일을 파일블록으로 구분 시, 프론트엔드 저장 노드는 스토리지 엔진에 미리 저장된 할당 정책에 따라 구분할 수 있다. 예를 들어, 도 7을 참조하면, 하나의 기록할 데이터에 대응하여, 상기 데이터를 파일화한 후, 제1 파일블록과 제2 파일블록으로 구분한다. 파일블록과 물리블록의 매핑 관계는 쓰기 과정에 의거하여 생성 및 업데이트할 수 있다. 예를 들어, 프론트엔드 저장 노드는 매핑관계가 구축되지 않은 하나의 파일블록에 대응되며, 스토리지 엔진에 기록된 메타정보를 통해, 점용되지 않은 물리블록을 확정하고, 사전 설정된 할당 정책에 따라 점용되지 않은 물리블록에서 하나의 물리 블록을 선택한 후, 상기 파일블록과 상기 물리블록의 매핑관계를 구축하거나, 또는 이미 매핑 관계가 구축된 파일블록의 경우, 이미 존재하는 매핑 관계에 따라 파일 블록에 대응되는 물리 블록을 확정할 수 있고, 매핑 관계 역시 스토리지 엔진에 저장될 수 있다. 예를 들어, 도 7을 참조하면, 제1 파일블록을 제1 물리블록에 대응시키고, 제2 파일블록을 제3 물리블록에 대응시킨 후, 제1 파일블록을 제1 물리블록에 저장하고, 제2 파일블록을 제3 물리블록에 저장한다.
물론, 만약 SSD를 쓰기 캐시에 대응되는 물리블록과 읽기 캐시에 대응되는 물리블록으로 구분하는 경우, 상기 쓰기 요청에 대응되는 제1 물리블록, 제2 물리블록과 제3 물리블록 등은 쓰기 캐시에 대응되는 물리블록이며, 다시 말해 제1 물리 저장 공간 내의 물리블록이다.
읽기 요청에 대하여:
제2 물리 저장 공간(402)은 SATA로부터 캐싱된 데이터를 저장하기 위한 것으로서, 상기 데이터는 미리 읽기 데이터라고 칭할 수 있으며, 미리 읽기 데이터에 클라이언트단이 전송한 읽기 요청에 휴대된 독취할 데이터의 식별자에 대응되는 데이터가 포함된 경우, 프론트엔드 저장 노드가 대응되는 데이터를 클라이언트단으로 전송하기에 용이하다.
데이터를 독취 시, 프론트엔드 저장 노드는 스토리지 엔진을 기반으로 데이터 읽기 과정을 실행할 수도 있다. 예를 들어, 스토리지 엔진은 저장된 미리 읽기 데이터의 메타정보를 기록하며, 메타정보는 예컨대 데이터 식별자 및 대응되는 저장 정보로서, 수신된 읽기 요청에 휴대된 독취할 데이터의 식별자가 저장된 데이터의 식별자 내에 포함된 경우, 대응되는 저장 정보에 따라, 읽기 캐시에 대응되는 물리블록으로부터 대응되는 데이터를 독취하여 클라이언트단으로 전송할 수 있다. 미리 읽기 데이터는 먼저 백엔드 저장 노드로부터 프론트엔드 저장 노드로 캐싱된 것이며, 미리 읽기 과정은 후속되는 내용을 참조할 수 있다.
앞에서는 프론트엔드 저장 노드가 각각 클라이언트단이 전송한 쓰기 요청과 읽기 요청을 처리하는 과정에 대해 설명하였으며, 상기 과정을 통해 데이터를 SSD에 기록하거나 및/또는 SSD로부터 데이터를 독취하여 클라이언트단으로 전송할 수 있다.
또한, 상기 과정을 통해, 쓰기 데이터에 대하여, SSD의 쓰기 성능을 제공할 수 있고, SSD에 독취할 데이터가 저장된 경우, 직접 SSD로부터 데이터를 독취하여 클라이언트단으로 회송함으로써, SSD의 읽기 성능을 제공할 수 있다. 따라서, 분산형 블록 저장 시스템의 읽기 쓰기 성능이 향상될 수 있다.
프론트엔드 저장 노드는 클라이언트단과 상호 작용하여, 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 읽기 쓰기 조작을 수행할 뿐만 아니라, 다른 한편으로는 일정 조건하에서 백엔드 저장 노드와도 상호 작용한다. 즉, 프론트엔드 저장 노드는 사전 설정된 전송 조건을 만족시키는 경우, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 데이터 전송 처리를 실행한다.
상기한 바와 같이, 일부 실시예에서, 전송 조건은, 마이그레이션 조건과 캐시 조건을 포함하며, 사전 설정된 전송 조건을 만족 시, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 데이터 전송 처리를 실행하는 단계는, 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 데이터를 백엔드 자기디스크로 마이그레이션시키는 단계; 및/또는, 캐시 조건을 만족 시, 백엔드 자기디스크상의 데이터를 프론트엔드 자기디스크로 캐싱하는 단계를 포함한다.
설명을 간단히 하기 위하여, 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 데이터를 백엔드 자기디스크로 마이그레이션하는 상기 과정을 플러시라고 칭할 수 있고, 캐시 조건을 만족 시, 백엔드 자기디스크 상의 데이터를 프론트엔드 자기디스크에 캐싱하는 상기 과정은 미리 읽기라고 칭할 수 있다.
플러시에 대하여:
플러시란 SSD 중의 데이터를 SATA로 마이그레이션하는 것을 의미하며, 프론트엔드 저장 노드의 스토리지 엔진에 프론트엔드 저장 노드와 백엔드 저장 노드의 매핑 관계를 저장할 수 있다. 상기 매핑 관계는 할당 정책에 따라 확정하거나 또는 설정된 고정 매핑 관계일 수 있다. 따라서, 상기 매핑 관계에 따라, SSD 중의 데이터를 어떤 백엔드 저장 노드그룹으로 플러시할지 확정할 수 있으며, 이후 상기 SSD를 포함하는 프론트엔드 저장 노드가 플러시 데이터를 대응되는 백엔드 저장 노드그룹 중의 메인 저장 노드로 전송하고, 메인 저장 노드는 다시 동기적으로 대응되는 슬레이브 저장 노드로 전송한다. 예를 들어, 프론트엔드 저장 노드 A 중의 SSD 상의 데이터를 플러싱해야 하고, 매핑관계가 존재하는 것이 백엔드 저장 노드 B라면, 백엔드 저장 노드 B가 데이터를 수신한 후, 프론트엔드 저장 노드의 처리 방식을 참고하여 데이터를 SATA에 기록할 수 있다.
본 실시예에서, 플러시 조건은 다음 항 중의 적어도 한 항을 포함할 수 있다:
(1) 주기적 플러시 시점: 상응하게, 주기적 플러시 시점에 도달 시 플러시를 실행한다.
(2) 더티 데이터와 SSD 총 용량의 비율: 더티 데이터란 SSD에 이미 기록된 데이터를 의미하며, 즉 SSD의 쓰기 캐시에 대응되는 물리블록에 이미 저장된 데이터이다. 이와 상응하게, 이미 기록된 데이터와 SSD 총 용량의 비율이 사전 설정된 비율보다 크거나 같을 경우, 플러시를 실행하며; 여기서, 쓰기 캐시에 대응되는 물리블록 중의 데이터가 이미 가득 찬 경우가 상기 상황의 극단적인 상황에 속한다.
(3) 더티 데이터가 차지하는 공간의 크기: 상응하게, 이미 기록된 데이터의 총량이 사전 설정 데이터량보다 크거나 같을 경우, 플러시를 실행한다.
(4) 더티 데이터 캐시 시간 길이: 상응하게, 이미 기록된 데이터의 기록 시간 길이가 사전 설정 시간 길이보다 크거나 같을 경우, 플러시를 실행한다.
(5) 더티 데이터와 미리 읽기 데이터의 비율: 미리 읽기 데이터란 읽기 캐시에 대응되는 물리블록에 저장된 데이터를 의미하며; 상응하게, 상기 비율이 사전 설정값보다 큰 경우, 플러시를 실행한다.
플러싱된 데이터가 쓰기 캐시에 대응되는 물리블록 중의 데이터를 지칭하는 것임을 이해할 수 있을 것이다.
상기 어느 하나의 플러시 조건을 만족 시, 플러시 조작을 실행한다.
여기서, (1) 주기적 플러시 시점에 도달한 경우, 사전 설정량만큼의 데이터를 플러시할 수 있다.
(2)~(4)의 조건에 도달한 경우, 플러시 조건이 충족되지 않을 때까지 플러시를 실행하며, 예를 들어 더티 데이터와 SSD 총 용량의 비율에 대해, 상기 비율이 사전 설정 비율보다 작아질 때까지 플러시를 실행한다.
일부 실시예에서, 프론트엔드 자기디스크 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하는 단계는, 조작 데이터가 프론트엔드 자기디스크 상의 다수의 물리블록을 점용한 경우, 다수의 물리블록 중 각 물리블록의 우선등급 순서에 따라, 순차적으로 각 물리블록 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하는 단계를 포함한다.
예를 들어, 조작 데이터가 다수의 물리블록을 점용한다면, 물리블록의 우선등급에 따라 플러시 조건이 충족되지 않을 때까지 플러싱할 수 있다. 예를 들어 물리블록 A의 우선등급이 물리블록 B의 우선등급보다 높다면, 즉 먼저 물리블록 A 중의 데이터를 플러싱하고, 물리블록 A 중의 데이터를 플러싱한 후, 예컨대 상기 비율이 사전 설정 비율보다 작아지면, 즉 플러싱을 중지하고, 그렇지 않을 경우 물리블록 B 중의 데이터를 계속 플러싱한다.
본 실시예에서, 각 물리블록(block)의 우선등급은 다음과 같은 순서일 수 있다:
스냅샷(snapshot) 중인 block> 쓰기 캐시 데이터량이 많은 block > 쓰기 캐시 데이터량이 적은 block.
본 실시예에서, 물리블록의 우선등급에 따라 데이터 플러싱을 실시함으로써, 플러싱 효과를 향상시킬 수 있다.
상기 실시예에서, 다수의 물리블록에 대해 우선등급에 따라 플러싱한다. 일부 실시예에서, 단일한 물리블록의 경우, 순서대로 플러싱한다. 즉, 단일한 block 데이터의 플러싱의 경우, 최대한 오프셋(offset), 길이(length)의 순서로 플러싱하여, 랜덤 읽기 쓰기(io) 조작을 감소시키고, 백엔드 SATA에 순서대로 기록한다. 즉, 일부 실시예에서, 순차적으로 각 물리블록 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션시키는 단계는, 각 물리블록 중 각각의 단일한 물리블록에 대응하여, 단일한 물리블록에 저장된 조작 데이터의 저장 순서에 따라, 순서대로 단일한 물리블록 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하는 단계를 포함한다.
본 실시예에서, 단일한 물리블록에 대응하여 순서대로 플러싱을 실행함으로써, 랜덤 읽기 쓰기 조작을 감소시켜, 백엔드 저장 노드에 대한 스트레스를 낮출 수 있다.
또한, 플러싱 시, 다음과 같은 약간의 처리를 더 실시할 수 있다. 예를 들어 동일한 복제그룹의 동시 발생 플러시 총량이 설정 총량보다 크지 않도록 제어하고; 플러싱 속도가 설정 속도를 초과하지 않도록 설정하며; 로컬 SSD 및/또는 플러싱할 SATA의 자기디스크 스트레스(예를 들어 ioutil로 특성화되는 압력)가 설정값보다 클 경우, 플러싱을 정지하는 등의 처리를 더 실시할 수 있다.
본 실시예에서, 상기 각종 플러싱 조건을 통해, 프론트엔드 저장 노드의 점유율을 감소시켜, 스토리지 엔진이 의거하는 가상 파일 시스템을 희소 가상 파일 시스템으로 구현하고, 나아가 분산형 블록 저장 시스템의 원가를 절감할 수 있다.
미리 읽기에 대하여:
미리 읽기란 SATA 중의 데이터를 SSD로 캐싱하는 것을 의미하며, 예를 들어 SSD의 읽기 캐시에 대응되는 물리블록에 저장하는 것을 말한다.
미리 읽기 조건은 예를 들어, 단위 시간 또는 설정 시간 내에, 동일한 데이터에 대한 읽기 요청 수량이 설정값보다 크면, 미리 읽기를 실행한다. 예를 들어, 초기 시, SSD의 읽기 캐시에 대응되는 물리블록은 비어 있으며, 어느 한 시각에 상기 SSD가 소재하는 프론트엔드 저장 노드가 클라이언트단이 전송한 제1 데이터에 대한 읽기 요청을 수신하였다면, 현재 읽기 캐시에 대응되는 물리블록이 비어 있기 때문에, 프론트엔드 저장 노드는 클라이언트단으로 읽기 실패 정보를 피드백하고, 매우 짧은 시간(상기 시간은 설정 가능하다)이 지나, 상기 프론트엔드 저장 노드가 또 다시 제1 데이터에 대한 읽기 요청을 수신하였다면, 상기 프론트엔드 저장 노드는 백엔드 저장 노드로부터 상기 제1 데이터를 독취하여, SSD의 읽기 캐시에 대응되는 물리블록에 저장한다. 여기서, 프론트엔드 저장 노드의 스토리지 엔진에 데이터의 메타정보를 기록할 수 있으며, 상기 메타정보에 따라 상기 백엔드 저장 노드를 알 수 있고, 이에 따라 대응되는 백엔드 저장 노드로 미리 읽기할 데이터의 식별자를 포함하는 미리 읽기 요청을 전송할 수 있으며, 백엔드 저장 노드는 프론트엔드 저장 노드가 전송한 미리 읽기 요청을 수신한 후, 자신의 SATA로부터 대응되는 데이터를 획득하여 프론트엔드 저장 노드로 회송한다. 프론트엔드 저장 노드는 한편으로는 읽기 캐시를 수행하고, 다른 한편으로는 데이터를 클라이언트단으로 회송한다.
본 실시예에서, 미리 읽기 조건이 충족된 경우에만 미리 읽기를 수행함으로써, 매 번 백엔드로 미리 읽기하여 초래되는 읽기 쓰기 스트레스 문제를 피할 수 있으며, 읽기 쓰기 성능 저하를 피할 수 있다.
또한, 읽기 캐시에 대응되는 물리블록에 저장된 데이터는 상황에 따라 도태될 수 있으며, 이에 따라 도태된 데이터에 대응되는 물리블록을 회수하여 후속되는 데이터 미리 읽기에 사용할 수 있다. 본 실시예에서, 최근 최소 사용(Least Recently Used, LRU)에 따라 도태시킬 수 있다. 예를 들어, 도태 시점을 설정하여 상기 시점에 도달 후, 상기 시점 전의 사전 설정된 시간 내의 각 읽기 캐시에 대응되는 물리블록 중의 데이터 방문 빈도를 통계낼 수 있으며, 방문 빈도가 가장 낮은 데이터가 우선적으로 도태된다. 또한, 상기 시점에 따라 도태를 트리거하는 이외에, SSD 자기디스크의 공간이 부족할 때에도 도태를 트리거할 수 있다. 예를 들어, 쓰기 캐시에 대응되는 물리블록에 이미 저장된 데이터의 데이터량과 읽기 캐시에 대응되는 물리블록에 이미 저장된 데이터량을 더한 총량이 설정값보다 크거나, 또는 상기 총량과 SSD 자기디스크의 총 용량의 비율이 설정값보다 크면, 읽기 캐시에 대응되는 물리블록 중의 데이터의 도태를 트리거할 수 있으며, 도태 시 상기 트리거 시점 이전의 설정 시간의 방문 빈도에 따라, 방문 빈도가 낮은 데이터를 우선적으로 도태시킬 수도 있다.
상기 실시예의 관련 내용을 결합하여, 도 8을 참조하면, 클라이언트단이 전송한 쓰기 요청의 경우, 프론트엔드 저장 노드는 쓰기 요청에 휴대된 데이터를 프론트엔드 저장 노드 중의 SSD(801)의 쓰기 캐시에 대응되는 물리블록에 기록할 수 있으며, 또한 플러시 조건을 만족 시, 쓰기 캐시에 대응되는 물리블록 상의 데이터를 SATA(802)로 플러싱할 수 있다. 또한, 프론트엔드 저장 노드가 사전 설정된 미리 읽기 조건을 만족 시, 백엔드 저장 노드의 SATA로부터 데이터를 독취하여 SSD의 읽기 캐시에 대응되는 물리블록에 저장함으로써, 클라이언트단이 상기 데이터를 독취 시, 상기 데이터를 클라이언트단으로 회송할 수 있다. 비록 도 8에서 쓰기와 플러시는 SSD 중의 동일한 물리블록을 지시하고 있으나, 단 상기 방식에 한정되지 않고, 쓰기는 물리블록 A에 기록하고, 플러싱 대상 물리블록은 물리블록 B일 수도 있다.
본 실시예에서, 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 읽기 쓰기 조작을 수행하며, 프론트엔드 자기디스크는 읽기 쓰기 성능이 비교적 높은 자기디스크이므로, 분산형 블록 저장 시스템의 읽기 쓰기 성능이 향상될 수 있다. 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 데이터를 백엔드 자기디스크로 마이그레이션함으로써, 프론트엔드 자기디스크 상의 데이터 점유율을 낮출 수 있으며, 프론트엔드 자기디스크의 읽기 쓰기 성능이 백엔드 자기디스크의 읽기 쓰기 성능보다 높으므로, 일반적으로 프론트엔드 자기디스크의 원가 역시 백엔드 자기디스크의 원가보다 높다. 따라서, 프론트엔드 자기디스크 상의 데이터 점유율을 감소시킴으로써 원가를 절감할 수 있으며; 및/또는, 캐시 조건을 만족 시, 백엔드 자기디스크 상의 데이터를 프론트엔드 자기디스크로 캐싱함으로써, 직접 데이터를 프론트엔드 자기디스크로부터 클라이언트단으로 제공할 수 있어 읽기 성능이 향상된다. SSD에서 제1 물리 저장 공간과 제2 물리 저장 공간으로 구분하여, 이 2개의 물리 저장 공간이 각각 마이그레이션 데이터와 캐시 데이터에 대응되므로, 백업 애플리케이션과 캐시 애플리케이션의 호환을 구현할 수 있다.
위에서는 상기 분산형 블록 저장 시스템 및 그의 읽기 쓰기 방법을 설명하였다. 본 발명의 실시예는 대응되는 읽기 쓰기 장치 및 프론트엔드 저장 노드를 더 제공할 수 있다.
도 9는 본 발명의 제9 실시예의 설명도로서, 본 실시예는 분산형 블록 저장 시스템의 읽기 쓰기 장치를 제공한다. 분산형 블록 저장 시스템은 프론트엔드 저장 노드와 백엔드 저장 노드를 포함하며, 프론트엔드 저장 노드는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 백엔드 저장 노드는 적어도 하나의 백엔드 자기디스크를 포함하며, 프론트엔드 자기디스크의 읽기 쓰기 성능은 백엔드 자기디스크의 읽기 쓰기 성능보다 높다. 도 9에 도시된 바와 같이, 장치(900)는, 응답 유닛(901)과 전송 유닛(902)을 포함한다. 응답 유닛(901)은 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하기 위한 것이고; 전송 유닛(902)은 사전 설정된 전송 조건을 만족 시, 프론트엔드 자기디스크와 백엔드 자기디스크 사이에서, 조작 데이터의 전송 처리를 실행하기 위한 것이다.
일부 실시예에서, 전송 조건은 마이그레이션 조건과 캐시 조건을 포함하며, 전송 유닛(902)은 마이그레이션 모듈, 및/또는, 캐시 모듈을 포함하고; 마이그레이션 모듈은 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하기 위한 것이고; 캐시 모듈은 캐시 조건을 만족 시, 백엔드 자기디스크 상의 조작 데이터를 프론트엔드 자기디스크로 캐싱하기 위한 것이다.
일부 실시예에서, 마이그레이션 모듈은 구체적으로, 조작 데이터가 프론트엔드 자기디스크의 다수의 물리블록을 점용 시, 다수의 물리블록 중 각 물리블록의 우선등급 순서에 따라, 순차적으로 각 물리블록 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하기 위한 것이다.
일부 실시예에서, 마이그레이션 모듈은 더 구체적으로, 각 물리블록 중의 각 단일한 물리블록에 대응하여, 단일한 물리블록에 저장된 조작 데이터의 저장 순서에 따라, 순서대로 단일한 물리블록 상의 조작 데이터를 백엔드 자기디스크로 마이그레이션하기 위한 것이다.
일부 실시예에서, 프론트엔드 자기디스크는 제1 물리 저장 공간과 제2 물리 저장 공간을 포함하며; 마이그레이션 모듈은 구체적으로, 프론트엔드 자기디스크의 제1 물리 저장 공간 내의 조작 데이터를 백엔드 자기디스크로 마이그레이션하기 위한 것이고; 및/또는 캐시 모듈은 구체적으로, 백엔드 자기디스크 상의 조작 데이터를 프론트엔드 자기디스크의 제2 물리 저장 공간 내로 캐싱하기 위한 것이다.
일부 실시예에서, 응답 유닛(901)은 구체적으로, 읽기 쓰기 요청이 쓰기 요청일 경우, 조작 데이터는 기록할 데이터이며, 쓰기 요청에 기록할 데이터를 휴대하여, 기록할 데이터를 파일화하고, 파일을 적어도 하나의 파일유닛으로 구분하여, 적어도 하나의 파일유닛 중의 각 파일유닛이 매핑된 물리유닛을 확정하고, 물리유닛은 프론트엔드 자기디스크에 위치하며, 각각의 파일유닛을 프론트엔드 자기디스크의 매핑된 물리유닛에 저장하기 위한 것이거나; 및/또는, 읽기 쓰기 요청이 읽기 요청일 경우, 조작 데이터는 독취할 데이터이며, 읽기 요청에 독취할 데이터의 식별자를 휴대하여, 식별자에 따라 독취할 데이터의 프론트엔드 자기디스크 상에서의 저장 정보를 획득하고, 저장 정보에 따라 프론트엔드 자기디스크 상에서 독취할 데이터를 획득하여, 독취할 데이터를 클라이언트단으로 전송하기 위한 것이다.
본 실시예에서, 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 읽기 쓰기 조작을 수행하며, 프론트엔드 자기디스크는 읽기 쓰기 성능이 비교적 높은 자기디스크이므로, 분산형 블록 저장 시스템의 읽기 쓰기 성능이 향상될 수 있다. 마이그레이션 조건을 만족 시, 분산형 블록 저장 시스템의 읽기 쓰기 성능이 향상될 수 있다. 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 데이터를 백엔드 자기디스크로 마이그레이션함으로써, 프론트엔드 자기디스크 상의 데이터 점유율을 낮출 수 있으며, 프론트엔드 자기디스크의 읽기 쓰기 성능이 백엔드 자기디스크의 읽기 쓰기 성능보다 높으므로, 일반적으로 프론트엔드 자기디스크의 원가 역시 백엔드 자기디스크의 원가보다 높다. 따라서, 프론트엔드 자기디스크 상의 데이터 점유율을 감소시킴으로써 원가를 절감할 수 있으며; 및/또는, 캐시 조건을 만족 시, 백엔드 자기디스크 상의 데이터를 프론트엔드 자기디스크로 캐싱함으로써, 직접 데이터를 프론트엔드 자기디스크로부터 클라이언트단으로 제공할 수 있어 읽기 성능이 향상된다. SSD에서 제1 물리 저장 공간과 제2 물리 저장 공간으로 구분하여, 이 2개의 물리 저장 공간이 각각 마이그레이션 데이터와 캐시 데이터에 대응되므로, 백업 애플리케이션과 캐시 애플리케이션의 호환을 구현할 수 있다.
도 10은 본 발명의 제10 실시예의 설명도이다. 본 실시예는 프론트엔드 저장 노드를 제공하며, 상기 프론트엔드 저장 노드(1000)는 적어도 하나의 프론트엔드 자기디스크(1001)와 읽기 쓰기 장치(1002)를 포함한다. 상기 읽기 쓰기 장치(1002)는 프론트엔드 자기디스크(1001)에 대해 읽기 쓰기 조작을 수행하기 위한 것이다. 읽기 쓰기 장치(1002)는 도 9에 도시된 바와 같을 수 있다.
또한, 본 발명은 분산형 블록 저장 시스템을 더 제공하며, 상기 분산형 블록 저장 시스템은 도 10에 도시된 프론트엔드 저장 노드를 포함한다.
일부 실시예에서, 프론트엔드 저장 노드는 프론트엔드 저장 노드그룹에 위치하며, 시스템은 적어도 하나의 프론트엔드 저장 노드그룹을 포함하고, 적어도 하나의 프론트엔드 저장 노드그룹 중의 각 그룹의 프론트엔드 저장 노드그룹은 적어도 하나의 프론트엔드 저장 노드를 포함하며; 시스템은 또한 적어도 하나의 백엔드 저장 노드그룹을 더 포함하고, 적어도 하나의 백엔드 저장 노드그룹 중의 각 그룹의 백엔드 저장 노드그룹은 적어도 하나의 백엔드 저장 노드를 포함한다.
일부 실시예에서, 각 그룹의 프론트엔드 저장 노드그룹은 다수의 프론트엔드 저장 노드를 포함하고, 다수의 프론트엔드 저장 노드는 메인 저장 노드와 적어도 하나의 슬레이브 저장 노드를 포함하며; 프론트엔드 저장 노드가 메인 저장 노드인 경우, 메인 저장 노드는 또한, 클라이언트단이 전송한 읽기 쓰기 요청을 수신하고; 및, 읽기 쓰기 요청이 쓰기 요청일 경우, 쓰기 요청에 휴대된 기록할 데이터를 동시에 슬레이브 저장 노드로 전송하기 위한 것이다.
일부 실시예에서, 프론트엔드 자기디스크는 SSD이고; 및/또는, 백엔드 자기디스크는 SATA이다.
본 실시예에서, 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 프론트엔드 자기디스크에 대해 읽기 쓰기 조작을 수행하며, 프론트엔드 자기디스크는 읽기 쓰기 성능이 비교적 높은 자기디스크이므로, 분산형 블록 저장 시스템의 읽기 쓰기 성능이 향상될 수 있다. 마이그레이션 조건을 만족 시, 분산형 블록 저장 시스템의 읽기 쓰기 성능이 향상될 수 있다. 마이그레이션 조건을 만족 시, 프론트엔드 자기디스크 상의 데이터를 백엔드 자기디스크로 마이그레이션함으로써, 프론트엔드 자기디스크 상의 데이터 점유율을 낮출 수 있으며, 프론트엔드 자기디스크의 읽기 쓰기 성능이 백엔드 자기디스크의 읽기 쓰기 성능보다 높으므로, 일반적으로 프론트엔드 자기디스크의 원가 역시 백엔드 자기디스크의 원가보다 높다. 따라서, 프론트엔드 자기디스크 상의 데이터 점유율을 감소시킴으로써 원가를 절감할 수 있으며; 및/또는, 캐시 조건을 만족 시, 백엔드 자기디스크 상의 데이터를 프론트엔드 자기디스크로 캐싱함으로써, 직접 데이터를 프론트엔드 자기디스크로부터 클라이언트단으로 제공할 수 있어 읽기 성능이 향상된다. SSD에서 제1 물리 저장 공간과 제2 물리 저장 공간으로 구분하여, 이 2개의 물리 저장 공간이 각각 마이그레이션 데이터와 캐시 데이터에 대응되므로, 백업 애플리케이션과 캐시 애플리케이션의 호환을 구현할 수 있다.
본 발명의 상이한 실시예에서 동일하거나 또는 상응하는 내용은 상호 참고할 수 있으며, 실시예에서 상세히 설명하지 않은 내용은 다른 실시예의 관련 내용을 참고할 수 있음을 이해할 수 있을 것이다.
본 발명의 실시예에 따르면, 본 발명은 전자장치, 가독 저장매체와 컴퓨터 프로그램을 더 제공한다.
도 11은 본 발명의 실시예를 실시할 수 있는 예시의 전자장치(1100)의 개략적인 블록도이다. 전자장치는 각종 형식의 디지털 컴퓨터, 예를 들어 랩탑 컴퓨터, 데스크탑 컴퓨터, 워크스테이션, 서버, 블레이드 서버, 대형 컴퓨터, 및 기타 적합한 컴퓨터를 나타내기 위한 것이다. 전자장치는 또한 각종 형식의 이동장치, 예를 들어 개인 디지털 조수, 셀 폰, 스마트 폰, 웨어러블 장치 및 다른 유사한 컴퓨팅 장치를 나타낼 수도 있다. 본문의 부재, 이들의 연결과 관계, 및 이들의 기능은 단지 예시로만 사용될 뿐이며, 또한 본문에 기재된 및/또는 요구되는 본 발명의 구현을 제한하려는 의도가 있는 것이 아니다.
도 11에 도시된 바와 같이, 전자장치(1110)는 리드 온리 메모리(ROM)(1102)에 저장된 컴퓨터 프로그램 또는 저장유닛(1008)으로부터 랜덤 액세스 메모리(RAM)(1103)로 로드된 컴퓨터 프로그램에 따라 각종 적당한 동작과 처리를 실행할 수 있는 컴퓨팅 유닛(1101)을 포함한다. RAM(1103)에는 또한 장치(1100)의 조작에 필요한 각종 프로그램과 데이터가 더 저장될 수 있다. 컴퓨팅 유닛(1101), ROM(1102) 및 RAM(1103)은 버스(1104)를 통해 서로 연결된다. 입/출력(I/O) 인터페이스(1105) 역시 버스(1104)에 연결된다.
전자장치(1100) 중의 다수의 부재는 키보드, 마우스 등과 같은 입력유닛(1106); 각종 유형의 디스플레이, 스피커 등과 같은 출력유닛(1107); 자기디스크, 광디스크 등과 같은 저장유닛(1108); 및 넷카드, 모뎀, 무선통신 송수신기 등과 같은 통신유닛(1109)을 포함하는 I/O 인터페이스(1105)에 연결되며, 통신유닛(1109)은 전자장치(1100)가 인터넷과 같은 컴퓨터 네트워크 및/또는 각종 통신 네트워크를 통해 기타 장치와 정보/데이트를 교환하도록 허용한다.
컴퓨팅 유닛(1101)은 각종 처리 및 계산 능력을 갖춘 범용 및/또는 전용 처리 어셈블리일 수 있다. 컴퓨팅 유닛(1101)의 일부 구현예는 중앙처리장치(CPU), 그래픽처리장치(GPU), 각종 전용 인공지능(AI) 컴퓨팅 칩, 각종 머신 러닝 모델 알고리즘을 실행하는 컴퓨팅 유닛, 디지털 신호 프로세서(DSP), 및 임의의 적당한 프로세서, 컨트롤러, 마이크로컨트롤러 등을 포함하나 이에 한정되지 않는다. 컴퓨팅 유닛(1101)은 본문에 기재된 각 방법과 처리를 실행하며, 예를 들어 분산형 블록 저장 시스템의 읽기 쓰기 방법을 실행한다. 예를 들어, 일부 실시예에서, 분산형 블록 저장 시스템의 읽기 쓰기 방법은 컴퓨터 소프트웨어 프로그램으로 구현될 수 있으며, 저장유닛(1108)과 같이 머신 가독 매체에 유형으로 포함될 수 있다. 일부 실시예에서, 컴퓨터 프로그램의 일부 또는 전부는 ROM(1102) 및/또는 통신유닛(1109)을 통해 장치(1100)에 로딩 및/또는 설치될 수 있다. 컴퓨터 프로그램이 RAM(1103)에 로딩되어 컴퓨팅 유닛(1101)에 의해 실행될 때, 본문에 기재된 분산형 블록 저장 시스템의 읽기 쓰기 방법 중의 하나 또는 다수의 단계를 실행할 수 있다. 또한, 기타 실시예에서, 컴퓨팅 유닛(1101)은 다른 어떠한 적당한 방식을 통해(예를 들어 펌웨어에 의해) 분산형 블록 저장 시스템의 읽기 쓰기 방법을 실행하도록 설정될 수 있다.
본문에서 상기와 같이 기재된 시스템과 기술의 각종 실시방식은 디지털 전자회로 시스템, 집적회로 시스템, 필드 프로그래머블 게이트 어레이(FPGA), 전용 집적 회로(ASIC), 전용 표준 제품(ASSP), 시스템 온 칩 시스템(SOC), 복잡한 프로그래머블 논리 장치(CPLD) 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합 중에서 구현될 수 있다. 이러한 각종 실시방식은 하나 또는 다수의 컴퓨터 프로그램에서 실시되며, 상기 하나 또는 다수의 컴퓨터 프로그램은 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템에서 실행 및/또는 해석될 수 있고, 상기 프로그래머블 프로세서는 전용 또는 범용 프로그래머블 프로세서일 수 있으며, 저장 시스템, 적어도 하나의 입력장치, 및 적어도 하나의 출력장치로부터 데이터와 명령을 수신하고, 데이터와 명령을 상기 저장 시스템, 상기 적어도 하나의 입력장치, 및 상기 적어도 하나의 출력장치로 전송할 수 있다.
본 발명의 방법을 실시하기 위한 프로그램 코드는 하나 또는 다수의 프로그램 언어의 어떠한 조합을 이용하여 작성될 수 있다. 이러한 프로그램 코드는 범용 컴퓨터, 전용 컴퓨터 또는 기타 프로그래머블 데이터 처리 장치의 프로세서 또는 컨트롤러에게 제공되어, 프로그램 코드가 프로세서 또는 컨트롤러에 의해 실행될 때 흐름도 및/또는 블록도에 규정된 기능/조작이 실시되도록 할 수 있다. 프로그램 코드는 완전히 기기에서 실행되거나, 부분적으로 기기에서 실행되며, 독립된 소프트웨어 패키지로서 부분적으로는 기기상에서 실행되고 부분적으로는 원격 기기에서 실행되거나 또는 전적으로 원격 기기 또는 서버에서 실행될 수 있다.
본 발명의 상하 본문에서, 머신 가독 매체는 유형의 매체일 수 있으며, 명령 실행 시스템, 장치 또는 장비가 사용하거나 또는 명령 실행 시스템, 장치 또는 장비와 결합하여 사용하기 위한 프로그램을 포함하거나 또는 저장할 수 있다. 머신 가독 매체는 머신 가독 신호 매체 또는 머신 가독 저장 매체일 수 있다. 머신 가독 매체는 전자, 자성, 광학, 전자기, 적외선, 또는 반도체 시스템, 장치 또는 장비, 또는 상기 내용의 임의의 적합한 조합을 포함할 수 있으나 이에 한정되지 않는다. 머신 가독 저장 매체의 더욱 구체적인 예시는 하나 또는 다수의 선에 기초한 전기적인 연결, 휴대용 컴퓨터 디스크, 하드디스크, 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 소거 가능 프로그래머블 리드 온리 메모리(EPROM 또는 플래시 메모리), 광섬유, 컴팩트 디스크 리드 온리 메모리(CD-ROM), 광학 저장 장치, 자기 저장장치, 또는 상기 내용의 임의의 적합한 조합을 포함할 수 있다.
사용자와의 상호작용을 제공하기 위하여, 컴퓨터에서 여기에 기재된 시스템과 기술을 실시할 수 있으며, 상기 컴퓨터는 사용자에게 정보를 표시하기 위한 디스플레이 장치(예를 들어 CRT(음극선관) 또는 LCD(액정디스플레이) 모니터); 및 키보드와 포인팅 장치(예를 들어, 마우스 또는 트레이스볼)를 구비하여, 사용자가 상기 키보드와 상기 포인팅 장치를 통해 입력을 컴퓨터에 제공할 수 있다. 다른 종류의 장치는 또한 사용자와의 상호작용을 제공하기 위한 것일 수도 있다. 예를 들어 사용자에게 제공되는 피드백은 임의의 형식의 센싱 피드백(예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백)일 수 있으며; 또한 임의의 형식(소리 입력, 음성 입력 또는 촉각 입력 포함)으로 사용자로부터의 입력을 수신할 수 있다.
여기에 기재된 시스템과 기술은 백엔드 부재를 포함하는 컴퓨팅 시스템(예를 들어 데이터 서버), 또는 미들웨어를 포함하는 컴퓨팅 시스템(예를 들어 응용 서버), 또는 프론트엔드 부재를 포함하는 컴퓨팅 시스템(예를 들어, 그래픽 사용자 인터페이스 또는 네트워크 브라우저를 구비한 사용자 컴퓨터, 사용자는 상기 그래픽 사용자 인터페이스 또는 상기 네트워크 브라우저를 통해 여기에 기재된 시스템과 기술의 실시방식과 상호작용할 수 있다), 또는 이러한 백엔드 부재, 미들웨어 부재, 또는 프론트엔드 부재의 임의의 조합을 포함하는 컴퓨팅 시스템에서 실시될 수 있다. 임의의 형식 또는 매체의 디지털 데이터 통신(예를 들어, 통신 네트워크)을 통해 시스템의 부재가 서로 연결될 수 있으며, 통신 네트워크의 예시는 로컬 영역 네트워크(LAN), 광역 네트워크(WAN)와 인터넷을 포함한다.
컴퓨터 시스템은 클라이언트단과 서버를 포함할 수 있다. 클라이언트단과 서버는 일반적으로 서로 멀리 떨어져 있으며, 또한 통상적으로 통신 네트워크를 통해 상호 작용한다. 상응하는 컴퓨터에서 실행되며 서로 클라이언트단-서버 관계를 갖는 컴퓨터 프로그램을 통해 클라이언트단과 서버의 관계가 생성된다. 서버는 클라우드 서버일 수 있으며, 클라우드 컴퓨팅 서버 또는 클라우드 호스트로도 칭하며, 클라우드 컴퓨팅 서비스 체계 중의 하나의 호스트 제품으로서, 종래의 물리 호스트와 VPS 서버("Virtual Private Server", 또는 "VPS"로 약칭함)에 존재하는 관리의 어려움이 크고, 업무의 확장성이 약한 결함을 해결하였다. 서버는 분산형 시스템의 서버일 수도 있고, 또흔 블록체인을 결합한 서버일 수도 있다.
위에서 설명한 각종 형식의 흐름을 사용하여, 단계를 재배열, 추가 또는 삭제할 수 있다는 점을 이해하여야 한다. 예를 들어 본 발명에 기재된 각 단계는 병행 실행될 수도 있고, 순서대로 또는 각기 다른 순서로 실행될 수도 있으며, 본 발명에 공개된 기술방안이 희망하는 결과를 구현할 수 있기만 하면 되므로, 본문은 이에 대해 제한을 두지 않는다.
상기 구체적인 실시방식은 본 발명의 보호범위를 제한하는 것이 아니다. 당업자는 설계 요구와 기타 요소에 따라, 각종 수정, 조합, 서브조합과 교체를 실시할 수 있음을 알아야 한다. 본 발명의 정신과 원칙 내에서 실시되는 임의의 수정, 등가의 교체 및 개선 등은 모두 본 발명의 보호범위 내에 포함되어야 한다.

Claims (20)

  1. 분산형 블록 저장 시스템의 읽기 쓰기 방법에 있어서,
    상기 분산형 블록 저장 시스템은 프론트엔드 저장 노드와 백엔드 저장 노드를 포함하며, 상기 프론트엔드 저장 노드는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 상기 백엔드 저장 노드는 적어도 하나의 백엔드 자기디스크를 포함하며, 상기 프론트엔드 자기디스크의 읽기 쓰기 성능은 상기 백엔드 자기디스크의 읽기 쓰기 성능보다 높고, 상기 방법은
    클라이언트단이 송신한 읽기 쓰기 요청에 따라, 상기 프론트엔드 자기디스크에 대해 조작 데이터(operation data)의 읽기 쓰기 조작(operation)을 수행하는 단계;
    사전 설정된 전송 조건을 만족 시, 상기 프론트엔드 자기디스크와 상기 백엔드 자기디스크 사이에서, 상기 조작 데이터의 전송 처리를 실행하는 단계를 포함하는, 분산형 블록 저장 시스템의 읽기 쓰기 방법.
  2. 제1항에 있어서,
    상기 전송 조건은 마이그레이션 조건과 캐시 조건을 포함하며, 상기 사전 설정된 전송 조건을 만족 시, 상기 프론트엔드 자기디스크와 상기 백엔드 자기디스크 사이에서,
    마이그레이션 조건을 만족 시, 상기 프론트엔드 자기디스크 상의 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하는 단계; 및/또는,
    상기 캐시 조건을 만족 시, 상기 백엔드 자기디스크 상의 상기 조작 데이터를 상기 프론트엔드 자기디스크로 캐시하는 단계;를 포함하는 상기 조작 데이터의 전송 처리를 실행하는, 방법.
  3. 제2항에 있어서,
    상기 프론트엔드 자기디스크 상의 상기 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하는 단계는,
    상기 조작 데이터가 상기 프론트엔드 자기디스크 상의 다수의 물리블록을 점용한 경우, 다수의 물리블록 중 각 물리블록의 우선등급 순서에 따라, 순차적으로 상기 각 물리블록 상의 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하는 단계를 포함하는, 방법.
  4. 제3항에 있어서,
    상기 순차적으로 상기 각 물리블록 상의 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션시키는 단계는,
    상기 각 물리블록 중 각각의 단일한 물리블록에 대해, 상기 단일한 물리블록에 저장된 상기 조작 데이터의 저장 순서에 따라, 순서대로 상기 단일한 물리블록 상의 상기 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하는 단계를 포함하는, 방법.
  5. 제2항에 있어서,
    상기 프론트엔드 자기디스크는 제1 물리 저장 공간과 제2 물리 저장 공간을 포함하며;
    상기 프론트엔드 자기디스크 상의 상기 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하는 단계는, 상기 프론트엔드 자기디스크의 상기 제1 물리 저장 공간 내의 상기 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하는 단계를 포함하고; 및/또는,
    상기 백엔드 자기디스크 상의 상기 조작 데이터를 상기 프론트엔드 자기디스크에 캐싱하는 단계는, 상기 백엔드 자기디스크 상의 상기 조작 데이터를 상기 프론트엔드 자기디스크의 상기 제2 물리 저장 공간 내에 캐싱하는 단계;를 포함하는, 방법.
  6. 제1항 내지 제5항 중의 어느 한 항에 있어서,
    상기 클라이언트단이 전송한 읽기 쓰기 요청에 따라, 상기 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하는 단계는,
    상기 읽기 쓰기 요청이 쓰기 요청일 때, 상기 조작 데이터는 기록할 데이터이며, 상기 쓰기 요청에 상기 기록할 데이터를 휴대하여, 상기 기록할 데이터를 파일화하여, 파일을 적어도 하나의 파일유닛으로 구분하는 단계, 및 상기 적어도 하나의 파일 유닛 중의 각 파일 유닛이 매핑되는 물리 유닛을 확정하고, 상기 물리 유닛은 상기 프론트엔드 자기디스크에 위치하며, 상기 각 파일유닛을 상기 프론트엔드 자기디스크의 상기 매핑된 물리 유닛에 저장하는 단계; 및/또는,
    상기 읽기 쓰기 요청이 읽기 요청인 경우, 상기 조작 데이터는 독취할 데이터이며, 상기 읽기 요청에 상기 독취할 데이터의 식별자를 휴대하여, 상기 식별자에 따라 상기 독취할 데이터의 상기 프론트엔드 자기디스크 상의 저장 정보를 획득하며, 상기 저장 정보에 따라 상기 프론트엔드 자기디스크에서 상기 독취할 데이터를 획득하고, 상기 독취할 데이터를 상기 클라이언트단으로 전송하는 단계;를 포함하는, 방법.
  7. 분산형 블록 저장 시스템의 읽기 쓰기 장치에 있어서,
    상기 분산형 블록 저장 시스템은 프론트엔드 저장 노드와 백엔드 저장 노드를 포함하며, 상기 프론트엔드 저장 노드는 적어도 하나의 프론트엔드 자기디스크를 포함하고, 상기 백엔드 저장 노드는 적어도 하나의 백엔드 자기디스크를 포함하며, 상기 프론트엔드 자기디스크의 읽기 쓰기 성능은 상기 백엔드 자기디스크의 읽기 쓰기 성능보다 높고, 상기 장치는
    클라이언트단이 송신한 읽기 쓰기 요청에 따라, 상기 프론트엔드 자기디스크에 대해 조작 데이터의 읽기 쓰기 조작을 수행하기 위한 응답 유닛;
    사전 설정된 전송 조건을 만족 시, 상기 프론트엔드 자기디스크와 상기 백엔드 자기디스크 사이에서, 상기 조작 데이터의 전송 처리를 실행하기 위한 전송 유닛;을 포함하는, 분산형 블록 저장 시스템의 읽기 쓰기 장치.
  8. 제7항에 있어서,
    상기 전송 조건은 마이그레이션 조건과 캐시 조건을 포함하며, 상기 전송 유닛은
    상기 마이그레이션 조건을 만족 시, 상기 프론트엔드 자기디스크 상의 상기 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하기 위한 마이그레이션 모듈; 및/또는,
    상기 캐시 조건을 만족 시, 상기 백엔드 자기디스크 상의 상기 조작 데이터를 상기 프론트엔드 자기디스크로 캐싱하기 위한 캐시 모듈;을 포함하는, 장치.
  9. 제8항에 있어서,
    상기 마이그레이션 모듈은 구체적으로,
    상기 조작 데이터가 상기 프론트엔드 자기디스크의 다수의 물리블록을 점용 시, 상기 다수의 물리블록 중 각 물리블록의 우선등급 순서에 따라, 순차적으로 상기 각 물리블록 상의 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하기 위한 것인, 장치.
  10. 제9항에 있어서,
    상기 마이그레이션 모듈은 더 구체적으로,
    상기 각 물리블록 중의 각 단일한 물리블록에 대해, 상기 단일한 물리블록에 저장된 상기 조작 데이터의 저장 순서에 따라, 순서대로 상기 단일한 물리블록 상의 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하기 위한 것인, 장치.
  11. 제8항에 있어서,
    상기 프론트엔드 자기디스크는 제1 물리 저장 공간과 제2 물리 저장 공간을 포함하며;
    상기 마이그레이션 모듈은 구체적으로, 상기 프론트엔드 자기디스크의 상기 제1 물리 저장 공간 내의 상기 조작 데이터를 상기 백엔드 자기디스크로 마이그레이션하기 위한 것이고; 및/또는,
    상기 캐시 모듈은 구체적으로, 상기 백엔드 자기디스크 상의 상기 조작 데이터를 상기 프론트엔드 자기디스크의 상기 제2 물리 저장 공간 내로 캐싱하기 위한 것인, 장치.
  12. 제7항 내지 제11항 중의 어느 한 항에 있어서,
    상기 응답 유닛은 구체적으로,
    상기 읽기 쓰기 요청이 쓰기 요청일 경우, 상기 조작 데이터는 기록할 데이터이며, 상기 쓰기 요청에 상기 기록할 데이터를 휴대하여, 상기 기록할 데이터를 파일화하고, 상기 파일을 적어도 하나의 파일유닛으로 구분하여, 상기 적어도 하나의 파일유닛 중의 각 파일유닛이 매핑된 물리유닛을 확정하고, 상기 물리유닛은 상기 프론트엔드 자기디스크에 위치하며, 상기 파일유닛 각각을 상기 프론트엔드 자기디스크의 상기 매핑된 물리유닛에 저장하기 위한 것이거나; 및/또는,
    상기 읽기 쓰기 요청이 읽기 요청일 경우, 상기 조작 데이터는 독취할 데이터이며, 상기 읽기 요청에 상기 독취할 데이터의 식별자를 휴대하여, 상기 식별자에 따라 상기 독취할 데이터의 상기 프론트엔드 자기디스크 상에서의 저장 정보를 획득하고, 상기 저장 정보에 따라 상기 프론트엔드 자기디스크 상에서 상기 독취할 데이터를 획득하여, 상기 독취할 데이터를 상기 클라이언트단으로 전송하기 위한 것인, 장치.
  13. 프론트엔드 저장 노드에 있어서,
    적어도 하나의 프론트엔드 자기디스크; 및,
    상기 프론트엔드 자기디스크에 대해 읽기 쓰기 조작을 수행하는 제7항 내지 제11항 중의 어느 한 항에 따른 장치를 포함하는 프론트엔드 저장 노드.
  14. 분산형 블록 저장 시스템에 있어서,
    제13항에 따른 프론트엔드 저장 노드를 포함하는, 분산형 블록 저장 시스템.
  15. 제14항에 있어서,
    상기 프론트엔드 저장 노드는 프론트엔드 저장 노드그룹에 위치하며, 상기 시스템은 적어도 하나의 프론트엔드 저장 노드그룹을 포함하고, 상기 적어도 하나의 프론트엔드 저장 노드그룹 중의 각 그룹의 프론트엔드 저장 노드그룹은 적어도 하나의 상기 프론트엔드 저장 노드를 포함하며;
    상기 시스템은 또한
    적어도 하나의 백엔드 저장 노드그룹을 더 포함하고, 상기 적어도 하나의 백엔드 저장 노드그룹 중의 각 그룹의 백엔드 저장 노드그룹은 적어도 하나의 상기 백엔드 저장 노드를 포함하는, 시스템.
  16. 제15항에 있어서,
    상기 각 그룹의 프론트엔드 저장 노드그룹은 다수의 프론트엔드 저장 노드를 포함하고, 상기 다수의 프론트엔드 저장 노드는 메인 저장 노드와 적어도 하나의 슬레이브 저장 노드를 포함하며;
    상기 프론트엔드 저장 노드가 상기 메인 저장 노드인 경우, 상기 메인 저장 노드는 또한, 상기 클라이언트단이 전송한 읽기 쓰기 요청을 수신하고; 및, 상기 읽기 쓰기 요청이 쓰기 요청일 경우, 상기 쓰기 요청에 휴대된 기록할 데이터를 동시에 슬레이브 저장 노드로 전송하기 위한 것인, 시스템.
  17. 제14항 내지 제16항 중의 어느 한 항에 있어서,
    상기 프론트엔드 자기디스크는 고체 하드디스크 SSD이고; 및/또는,
    상기 백엔드 자기디스크는 직렬 SATA 하드디스크인, 시스템.
  18. 전자장치에 있어서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서와 통신 연결되는 메모리를 포함하며; 여기서,
    상기 메모리는 적어도 하나의 프로세서에 의해 실행될 수 있는 명령이 저장되고, 상기 명령은 상기 적어도 하나의 프로세서에 의해 실행되어, 상기 적어도 하나의 프로세서가 제1항 내지 제5항 중의 어느 한 항에 따른 방법을 실행할 수 있도록 한, 전자장치.
  19. 컴퓨터 명령이 저장된 비일시적 컴퓨터 가독 저장 매체에 있어서,
    상기 컴퓨터 명령은 상기 컴퓨터가 제1항 내지 제5항 중의 어느 한 항에 따른 방법을 실행하도록 하기 위한 것인, 컴퓨터 가독 저장 매체.
  20. 컴퓨터 가독 저장매체에 저장되는 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 명령을 포함하며, 상기 명령은 적어도 하나의 프로세서에 의해 실행 시 제1항 내지 제5항 중의 어느 한 항에 따른 방법을 구현하는, 컴퓨터 프로그램.
KR1020210071274A 2020-12-25 2021-06-02 분산형 블록 저장시스템, 방법, 장치, 장비와 매체 KR20210075038A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011562809.5 2020-12-25
CN202011562809.5A CN112631520B (zh) 2020-12-25 2020-12-25 分布式块存储系统、方法、装置、设备和介质

Publications (1)

Publication Number Publication Date
KR20210075038A true KR20210075038A (ko) 2021-06-22

Family

ID=75324879

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210071274A KR20210075038A (ko) 2020-12-25 2021-06-02 분산형 블록 저장시스템, 방법, 장치, 장비와 매체

Country Status (5)

Country Link
US (1) US20220083281A1 (ko)
EP (1) EP3865992A3 (ko)
JP (1) JP2021144748A (ko)
KR (1) KR20210075038A (ko)
CN (1) CN112631520B (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220229569A1 (en) * 2021-01-20 2022-07-21 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for storage query planning
CN113138718A (zh) * 2021-04-27 2021-07-20 北京百度网讯科技有限公司 用于分布式块存储系统的存储方法、设备、系统和介质
CN113138722B (zh) * 2021-04-30 2024-01-12 北京百度网讯科技有限公司 用于分布式块存储系统的复制快照方法、系统和介质
CN113703675B (zh) * 2021-07-30 2023-12-22 济南浪潮数据技术有限公司 一种在客户端实现分级存储的方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7085883B1 (en) * 2002-10-30 2006-08-01 Intransa, Inc. Method and apparatus for migrating volumes and virtual disks
WO2005081942A2 (en) * 2004-02-20 2005-09-09 George Sullivan Hierarchical storage management
JP4386932B2 (ja) * 2007-08-17 2009-12-16 富士通株式会社 ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
KR20120032253A (ko) * 2010-09-28 2012-04-05 삼성전자주식회사 데이터 저장 장치들을 시험하는 방법 및 이를 위한 젠더
CN102467408B (zh) * 2010-11-12 2014-03-19 阿里巴巴集团控股有限公司 一种虚拟机数据的访问方法和设备
CN102307221A (zh) * 2011-03-25 2012-01-04 国云科技股份有限公司 一种云存储系统及其实现方法
US20130238851A1 (en) * 2012-03-07 2013-09-12 Netapp, Inc. Hybrid storage aggregate block tracking
US9323682B1 (en) * 2013-04-05 2016-04-26 Emc Corporation Non-intrusive automated storage tiering using information of front end storage activities
US9870434B1 (en) * 2014-06-20 2018-01-16 EMC IP Holding Company LLC Techniques for filtering workload and performance data
US10740287B2 (en) * 2015-01-05 2020-08-11 Iguazio Systems Ltd. System and method of managing service oriented data
US9720601B2 (en) * 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
JP5976265B1 (ja) * 2016-01-22 2016-08-23 株式会社エーピーコミュニケーションズ ダウンロードシステム、通信装置、ダウンロード方法、及びコンピュータプログラム
CN107506314B (zh) * 2016-06-14 2021-05-28 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和装置
US10572391B2 (en) * 2018-02-09 2020-02-25 Western Digital Technologies, Inc. Methods and apparatus for implementing a logical to physical address mapping in a solid state drive
JP6730344B2 (ja) * 2018-03-02 2020-07-29 Necプラットフォームズ株式会社 キャッシュ装置およびキャッシュ装置の制御方法
CN109376100A (zh) * 2018-11-05 2019-02-22 浪潮电子信息产业股份有限公司 一种缓存写入方法、装置、设备及可读存储介质
US10534758B1 (en) * 2018-12-20 2020-01-14 Qumulo, Inc. File system cache tiers
JP7323769B2 (ja) * 2019-04-15 2023-08-09 富士通株式会社 ストレージ装置、ストレージシステムおよびプログラム
US10860259B1 (en) * 2019-07-17 2020-12-08 Tyson York Winarski Multi-tiered storage system for blockchain
CN111857589B (zh) * 2020-07-16 2023-04-18 苏州浪潮智能科技有限公司 分布式存储系统中ssd缓存下刷速度控制方法及系统

Also Published As

Publication number Publication date
JP2021144748A (ja) 2021-09-24
US20220083281A1 (en) 2022-03-17
CN112631520B (zh) 2023-09-22
CN112631520A (zh) 2021-04-09
EP3865992A2 (en) 2021-08-18
EP3865992A3 (en) 2021-12-29

Similar Documents

Publication Publication Date Title
DE112013004250B4 (de) Vorrichtung, Verfahren und Computerprogrammprodukt für adaptive Persistenz
KR20210075038A (ko) 분산형 블록 저장시스템, 방법, 장치, 장비와 매체
US10509731B1 (en) Methods and apparatus for memory tier page cache coloring hints
US9971692B2 (en) Supporting concurrent operations at fine granularity in a caching framework
US9959074B1 (en) Asynchronous in-memory data backup system
US9916249B2 (en) Space allocation in a multi-grained writeback cache
US9612760B2 (en) Modular block-allocator for data storage systems
US10095595B2 (en) Instant recovery in a multi-grained caching framework
US10628311B2 (en) Reducing defragmentation in a multi-grained writeback cache
US11409454B1 (en) Container ownership protocol for independent node flushing
JP2020161103A (ja) ストレージシステム及びデータ転送方法
US11340829B1 (en) Techniques for log space management involving storing a plurality of page descriptor (PDESC) page block (PB) pairs in the log
US11243877B2 (en) Method, apparatus for data management, and non-transitory computer-readable storage medium for storing program
US9817757B2 (en) Scalable metadata management in a multi-grained caching framework
US10114566B1 (en) Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots
US11921695B2 (en) Techniques for recording metadata changes
US11775194B2 (en) Data storage method and apparatus in distributed storage system, and computer program product
US9864688B1 (en) Discarding cached data before cache flush
US11875060B2 (en) Replication techniques using a replication log
US20240004798A1 (en) Techniques for efficient user log flushing with shortcut logical address binding and postponing mapping information updates
US11620062B1 (en) Resource allocation techniques using a metadata log
US11868256B2 (en) Techniques for metadata updating and retrieval
US11853574B1 (en) Container flush ownership assignment
US11782842B1 (en) Techniques for reclaiming dirty cache pages
US11803314B2 (en) Techniques for performing metadata updates

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
WITB Written withdrawal of application