KR20220169894A - 메모리 기반 통합 스토리지 관리 장치 및 방법 - Google Patents

메모리 기반 통합 스토리지 관리 장치 및 방법 Download PDF

Info

Publication number
KR20220169894A
KR20220169894A KR1020220064902A KR20220064902A KR20220169894A KR 20220169894 A KR20220169894 A KR 20220169894A KR 1020220064902 A KR1020220064902 A KR 1020220064902A KR 20220064902 A KR20220064902 A KR 20220064902A KR 20220169894 A KR20220169894 A KR 20220169894A
Authority
KR
South Korea
Prior art keywords
storage
memory
block
disk
area
Prior art date
Application number
KR1020220064902A
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 US17/842,943 priority Critical patent/US20220405021A1/en
Publication of KR20220169894A publication Critical patent/KR20220169894A/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/0604Improving or facilitating administration, e.g. storage management
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • 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/0658Controller construction arrangements
    • 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/1016Performance improvement
    • 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/1041Resource optimization

Abstract

메모리 기반 통합 스토리지 관리 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치는 하나 이상의 프로세서; 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 사용자로부터 메모리 기반 통합 스토리지에 대한 접근 요청에 따른 데이터의 연산 작업들을 변환시키고, 여기서 상기 메모리 기반 통합 스토리지의 가상 스토리지 풀의 단일 가상 디스크는 상기 연산 작업들에 따라 디스크 접근 명령어를 스토리지 백엔드로 연결하는 커맨드로 변환시키고, 상기 연산 작업들과 상기 커맨드의 변환은 상기 메모리 기반 통합 스토리지 중 어떤 로컬 스토리지가 사용할지를 나타내는 타겟 식별을 포함한다.

Description

메모리 기반 통합 스토리지 관리 장치 및 방법 {APPARATUS AND METHOD FOR MANAGING INTERGATED STORAGE BASED ON MEMORY}
본 발명은 클라우드 환경의 스토리지 기술에 관한 것으로, 보다 상세하게는 메모리 기반 통합 스토리지 관리 기술에 관한 것이다.
최근 클라우드 시스템은 가상 머신이나 컨테이너 환경을 위해서 자신의 스토리지와 연계된 통합 스토리지를 생성하고 운영한다. 한대의 물리 머신에는 복수개의 서비스 응용(혹은 사용자)혹은 컨테이너 들이 생성되어 운영되며, 복수의 서비스들이 동시에 구동될 경우, 가상 디스크가 존재하는 디스크 스토리지에 부하가 집중되어 성능이 저하될 수 있다.
이러한 클라우드의 성능을 더욱 높이기 위해서, 메인 메모리는 가상 디스크로 활용될 수 있다. 그러나, 메인 메모리는 용량이 제한적이기 때문에, 많은 데이터를 저장할 수 없다는 단점이 있다.
한편, 한국공개특허 제 10-2021-0038285 호“계층형 구조 지원 통합 스토리지 관리 장치 및 방법”는 클라우드 컴퓨팅 환경에서 클라우드 스토리지와 논-클라우드 스토리지의 스토리지의 계층적 구조를 지원하는 통합 스토리지 관리 장치 및 방법에 관하여 개시하고 있다.
본 발명은 메인 메모리와 디스크 및 클라우드 스토리지를 단일 형상으로 통합함으로써, 클라우드를 위한 가상 머신에 메인 메모리의 고성능과 디스크 스토리지의 대용량을 함께 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 사용자로부터 메모리 기반 통합 스토리지의 가상 스토리지 풀에 대한 디스크 접근 명령어를 수신하고, 상기 디스크 접근 명령어의 블록 ID와 상기 메모리 기반 통합 스토리지의 기설정된 스토리지 경계의 블록 ID와 비교하고, 상기 블록 ID를 비교한 결과에 기반하여 상기 가상 스토리지 풀에서 상기 디스크 접근 명령어를 처리할 스토리지를 결정하여 단일 가상 디스크 스토리지를 생성한다.
이 때, 상기 메모리 기반 통합 스토리지는 기설정된 제1 블록 영역에 메인 메모리 스토리지의 블록 ID들이 매핑되고, 제2 블록 영역에 디스크 스토리지의 블록 ID들이 매핑되고, 제3 블록 영역에 클라우드 스토리지의 블록 ID들이 매핑될 수 있다.
이 때, 상기 메모리 기반 통합 스토리지는 상기 제2 블록 영역의 첫번째 블록 ID는 상기 제1 블록 영역의 마지막 블록 ID보다 큰 값으로 매핑되고, 상기 제3 블록 영역의 첫번째 블록 ID는 상기 제2 블록 영역의 마지막 블록 ID 보다 큰 값으로 매핑될 수 있다.
이 때, 상기 메모리 기반 통합 스토리지는 상기 제1 영역과 상기 제2 영역 사이에 제1 스토리지 경계가 설정되고, 상기 제2 영역과 상기 제3 영역 사이에 제2 스토리지 경계가 설정될 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 디스크 접근 명령어의 블록 ID와 상기 제1 스토리지 경계와 상기 제2 스토리 경계를 기준으로 블록 ID의 크기를 비교하여 가장 가까운 값에 해당하는 블록 영역을 결정할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 결정된 블록 영역에 매핑된 스토리지에 상응하는 상기 단일 가상 디스크 스토리지를 생성할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 사용자의 요구 사항을 더 수신하고, 상기 사용자의 요구 사항에 포함된 디스크 성능 정보에 기반하여 상기 단일 가상 디스크 스토리지를 최적화할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 방법은 메모리 기반 통합 스토리지 관리 장치의 메모리 기반 통합 스토리지 관리 방법에 있어서, 사용자로부터 메모리 기반 통합 스토리지의 가상 스토리지 풀에 대한 디스크 접근 요청을 수신하는 단계; 및 상기 접근 요청에 따른 데이터의 연산 작업들을 스토리지 백엔드로 연결하는 커맨드로 변환시키는 단계를 포함하고, 여기서 상기 연산 작업들에 따라 디스크 접근 명령어는 상기 메모리 기반 통합 스토리지의 가상 스토리지 풀의 데이터 분산 작업을 통해 스토리지 백엔드로 연결하는 커맨드로 변환되고, 상기 연산 작업들과 상기 커맨드의 변환은 상기 메모리 기반 통합 스토리지 중 어떤 로컬 스토리지가 사용할지를 나타내는 타겟 식별을 포함한다.
이 때, 상기 메모리 기반 통합 스토리지는 기설정된 제1 블록 영역에 메인 메모리 스토리지의 블록 ID들이 매핑되고, 제2 블록 영역에 디스크 스토리지의 블록 ID들이 매핑되고, 제3 블록 영역에 클라우드 스토리지의 블록 ID들이 매핑될 수 있다.
이 때, 상기 메모리 기반 통합 스토리지는 상기 제2 블록 영역의 첫번째 블록 ID는 상기 제1 블록 영역의 마지막 블록 ID보다 큰 값으로 매핑되고, 상기 제3 블록 영역의 첫번째 블록 ID는 상기 제2 블록 영역의 마지막 블록 ID 보다 큰 값으로 매핑될 수 있다.
이 때, 상기 메모리 기반 통합 스토리지는 상기 제1 영역과 상기 제2 영역 사이에 제1 스토리지 경계가 설정되고, 상기 제2 영역과 상기 제3 영역 사이에 제2 스토리지 경계가 설정될 수 있다.
본 발명은 메인 메모리와 디스크 및 클라우드 스토리지를 단일 형상으로 통합함으로써, 클라우드를 위한 가상 머신에 메인 메모리의 고성능과 디스크 스토리지의 대용량을 함께 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치를 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 메모리 기반 통합 클라우드 스토리지 생성 과정을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 방법을 나타낸 동작흐름도이다.
도 5는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 시스템을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 시스템은 서비스 응용 (가상머신 혹은 컨테이너 기반), 가상 디스크, 메모리 기반 통합 스토리지 관리 장치(100), 메모리 기반 통합 스토리지(200), 메인 메모리 및 디스크 스토리지 혹은 클라우드 스토리지로 구성되는 것을 알 수 있다.
메모리 기반 통합 스토리지 관리 장치(100)는 사용자가 정한 정책에 따라 가상 스토리지 풀에서 제공되는 단일 가상 디스크를 제공할 수 있다. 가상 스토리지 풀은 가상 스토리지 풀이 생성되는 장치 유형 (DRAM 기반 스토리지 풀, SSD 또는 NVMe 기반 스토리지 풀, HDD 기반 스토리지 풀, 네트워크 기반 스토리지 풀 등)에 따라 다른 특성을 가질 수 있다.
제공되는 가상 디스크의 특성은 가상 스토리지 풀의 장치 유형에 따라 달라질 수 있다.
사용자는 다양한 유형의 가상 스토리지 풀에서 생성 된 단일 가상 디스크를 선택하여 서비스의 성능 차이를 극복할 수 있다.
예를 들어, 도 1에 도시된 바와 같이, 장치의 특성상 메모리 기반 스토리지 풀에서 생성 된 단일 가상 디스크의 속도가 가장 빠르며 메모리 기반 장치를 선택하는 백엔드(Backend) 스토리지도 가장 빠른 속도를 제공하지만 데이터 손실에 대한 백업이 필요하다.
메모리 기반 통합 스토리지 관리 장치(100)는 사용자로부터 데이터 스토리지 정책과 함께 다양한 유형의 단일 가상 디스크를 요청받고, 데이터 운영 메타 데이터에 포함된 각 스토리지 풀의 유형을 제공할 수 있다.
메모리 기반 통합 스토리지 관리 장치(100)는 메모리 기반 스토리지 풀을 형성하기 위하여 메모리 기반 통합 스토리지(200)를 사용할 수 있다.
메모리 기반 통합 스토리지 관리 장치(100)는 사용자에게 성능에 따라 단일 가상 디스크를 제공할 수 있다.
먼저, 메모리 기반 통합 스토리지 관리 장치(100)는 가상 스토리지 풀의 기기 정보를 얻어 저장할 수 있다.
이 때, 메모리 기반 통합 스토리지 관리 장치(100)는 가상 스토리지의 I/O 대역폭을 모니터링할 수 있다.
이 때, 메모리 기반 통합 스토리지 관리 장치(100)는 사용자의 성능 요구(I/O 대역폭, 용량 정보, 기기 타입 등)에 따라 새로운 단일 가상 디스크를 요청할 수 있다.
이 때, 메모리 기반 통합 스토리지 관리 장치(100)는 사용자 요구에 맞는 가상 스토리지 풀을 선택하고 단일 가상 디스크를 생성할 수 있다.
이 때, 메모리 기반 통합 스토리지 관리 장치(100)는 사용자 요구에 맞는 인터페이스를 생성하여 제공할 수 있다.
또한, 메모리 기반 통합 스토리지 관리 장치(100)는 일반적으로 동작하는 서비스, 사용자, 서비스 응용, 컨테이너를 메모리 기반 통합 스토리지
(200) 상의 스토리지 풀로부터 가상 디스크를 생성할 수 있다.
또한, 메모리 기반 통합 스토리지 관리 장치(100)는 메인 메모리와 디스크 스토리지를 통합하여 하나의 스토리지 형상인 메모리기반 통합 스토리지를 생성할 수 있다.
이 때, 메모리기반 통합 스토리지(200)는 표준 블록 스토리지 인터페이스를 제공하여 기존의 서비스를 수정없이 운영할 수 있다.
도 2는 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치를 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치(100)는 스토리지 사용자 연결부(110), 데이터 처리부(120), 데이터 배포부(130), 백엔드 스토리지 관리부(140)를 포함할 수 있다.
스토리지 사용자 연결부는(110)는 서비스 응용(혹은 사용자)로부터 통합 스토리지를 가상화한 단일 가상 디스크에 대한 디스크 접근 명령어를 수신할 수 있다.
이 때, 가상 디스크는 가상 스토리지 풀의 단일 가상 디스크에 상응할 수 있다.
이 때, 스토리지 사용자 연결부는(110)는 사용자 요구사항을 등록할 수 있다.
사용자 요구사항은 데이터 스토리지 용량, 엑세스 매카니즘, 데이터 이동성(모빌리티), 단일 가상 디스크의 스토리지 타입, 데이터 안전성, 성능 정보, 스토리지 정책 등을 포함할 수 있다.
성능 정보는 read/write I/O 대역폭, 네트워크 대역폭, 스토리지 용량, 스토리지 타입 I/O 레이턴시(latency), 네트워크 레이턴시(latency) 등을 포함할 수 있다.
이 때, 데이터 처리부(120)는 디스크 접근 명령어의 블록 ID를 조사할 수 있다.
데이터 처리부(120)는 데이터 연산(data operation)을 통합 스토리지에 상응하는 커맨드 (commands)로 변환할 수 있다. 해당 커맨드는 API, I/O interface 등을 포함할 수 있다.
이 때, 데이터 처리부(120)는 상기 접근 요청에 따른 데이터의 연산 작업들을 스토리지 백엔드로 연결하는 커맨드로 변환시킬 수 있다.
이 때, 상기 연산 작업들에 따라 디스크 접근 명령어는 상기 메모리 기반 통합 스토리지의 가상 스토리지 풀의 데이터 분산 작업을 통해 스토리지 백엔드로 연결하는 커맨드로 변환될 수 있다.
이 때, 상기 연산 작업들과 상기 커맨드의 변환은 상기 메모리 기반 통합 스토리지 중 어떤 로컬 스토리지가 사용할지를 나타내는 타겟 식별을 포함할 수 있다.
디스크 접근 명령어의 블록 ID를 조사하여 스토리지 경계와 크기를 비교할 수 있다.
이 때, 데이터 처리부(120)는 디스크 접근 명령어의 블록 ID를 조사하여 블록 ID가 스토리지 경계보다 작거나 같다면, 디스크 접근 명령어를 메인 메모리 제어 모듈로 전달할 수 있다.
이 때, 데이터 처리부(120)는 고속의 메인 메모리 스토리지를 사용하여 디스크 접근 명령어를 처리할 수 있다.
이 때, 데이터 처리부(120)는 디스크 접근 명령어의 블록 ID를 조사하여 블록 ID가 스토리지 경계보다 크다면 디스크 접근 명령어를 디스크 스토리지 제어 모듈로 전달할 수 있다.
이 때, 데이터 처리부(120)는 대용량의 디스크 스토리지를 이용하여 디스크 접근 명령어를 처리할 수 있다.
이 때, 데이터 처리부(120)는 디스크 접근 명령어의 블록 ID를 조사하여 블록 ID가 스토리지 경계보다 크다면 디스크 접근 명령어를 클라우드 스토리지 제어 모듈로 전달할 수 있다.
이 때, 데이터 처리부(120)는 클라우드 스토리지를 이용하여 디스크 접근 명령어를 처리할 수 있다.
데이터 배포부(130)는 가상 스토리지 풀의 단일 가상 디스크에 대한 디스크 접근 명령어(read or write)를 데이터 분산 및 저장(data distribution and storing)을 통해 스토리지 백엔드 연결(storage management)이 해당 커맨드로 변환하도록 전달할 수 있다.
데이터 연산(data operation)과 커맨드의 변환은 통합 스토리지 중 어떤 로컬 스토리지가 사용할지를 나타내는 타겟 식별을 체크작업을 포함할 수 있다. 타겟 식별은 물리 주소, 블록 ID 및 해당 로컬 스토리지가 사용하는 타겟 API를 포함할 수 있다.
백엔드 스토리지 관리부(140)는 메인 메모리 제어 모듈, 디스크 스토리지 제어 모듈 및 클라우드 스토리지 제어 모듈을 포함할 수 있다.
이 때, 백엔드 스토리지 관리부(140)는 메인 메모리 및 디스크 스토리지를 통합하여 단일 형상의 메모리 기반 통합 스토리지를 생성할 수 있다.
이 때, 백엔드 스토리지 관리부(140)는 메인 메모리와 디스크 스토리지를 통합하여 디스크 접근 명령을 처리할 수 있다.
이 때, 백엔드 스토리지 관리부(140)는 통합 스토리지를 연결하는 인터페이스를 이용하여 가상 스토리지 풀의 여러 가지 저장 타입을 제공할 수 있다.
여러 가지 저장 타입은 메인 메모리, SSD, NVMe, HDD 기반의 스토리지 풀, 네트워크 기반의 스토리지 풀 등을 포함한다. 가상 스토리지 풀은 결합된 직접 인터페이스를 가진 다른 타입의 통합 스토리지들과 단일화된 하나의 저장 디스크 사이에 맵핑된 스토리지 영역을 포함할 수 있다.
이 때, 백엔드 스토리지 관리부(140)는 사용자의 요구사항에 따라 단일 가상 디스크를 사용자에게 제공할 수 있다.
이 때, 사용자는 성능 정보에 따라 가장 낮은 레이턴시, 가장 좋은 대역폭, 대용량 등을 가진 단일 가상 디스크를 선택할 수 있다.
이 때, 백엔드 스토리지 관리부(140)는 저장 데이터의 중복 제거(de-duplication) 기능을 이용하여 데이터 저장의 용량을 줄일 수 있다. 중복 제거는 가상 스토리지 풀과 메인 메모리 상의 통합 스토리지 상의 로컬 스토리지에서 이루어질 수 있다.
이 때, 백엔드 스토리지 관리부(140)는 로컬 스토리지의 특성을 고려하여 가상 스토리지 풀의 최적화(optimization)을 수행할 수 있다.
최적화되는 로컬 스토리지의 특성은 스토리지 미러링(storage mirroring), 스토리지 우선화(prioritization), 사용자의 물리적 접근 위치 및 그 결합정보를 포함할 수 있다.
이 때, 백엔드 스토리지 관리부(140)는 사용자의 요구사항을 고려하여 단일 가상 디스크의 최적화를 수행할 수 있다.
단일 가상 디스크의 최적화는 스토리지 용량, 데이터 안정성, 스토리지 성능, 사용 환경의 모빌리티, 및 그 성능을 포함할 수 있다.
또한, 스토리지 사용자 연결부는(110)는 표준 블록 스토리지 형식의 인터페이스를 제공하며, 사용자의 응용에서 발생한 디스크 접근 명령을 수신할 수 있다.
스토리지 사용자 연결부는(110)는 수신된 명령어를 데이터 배포부(130)로 전달할 수 있다.
데이터 배포부(130)는 디스크 접근 명령의 특징에 따라서 메인 메모리 스토리지 혹은 디스크 스토리지를 사용하여 서비스를 수행할지 결정할 수 있다.
이 때, 데이터 배포부(130)는 백엔드 스토리지 관리부(140)의 메인 메모리 제어 모듈 혹은 디스크 스토리지 제어 모듈 및 클라우드 스토리지 제어 모듈로 접근 명령을 전달할 수 있다.
메인 메모리 제어 모듈은 메인 메모리를 사용하여 디스크 접근 명령을 처리하며 이는 고속의 접근 속도를 제공할 수 있다.
이 때, 메인 메모리 제어 모듈은 블록 단위로 전송된 디스크 접근 명령어들을 주소 단위로 접근 가능한 메인 메모리상에 실제 읽기/쓰기 동작을 수행할 수 있다.
이 때, 메인 메모리 제어 모듈은 메인 메모리상에 가상 디스크의 데이타들을 저장할 수 있다.
디스크 스토리지 제어 모듈은 디스크 스토리지를 사용하여 가상 디스크 접근 명령을 처리할 수 있다.
클라우드 스토리지 제어 모듈은 클라우드 스토리지를 사용하여 가상 디스크 접근 명령을 처리할 수 있다.
도 3은 본 발명의 일실시예에 따른 메모리 기반 통합 클라우드 스토리지 생성 과정을 나타낸 도면이다.
도 3을 참조하면, 메인 메모리 스토리지와 디스크 스토리지를 통합하여 단일 메모리기반 통합 스토리지를 생성하는 과정을 나타낸 것을 알 수 있다. 메모 리기반 통합 스토리지는 표준 블록 스토리지 형식을 제공하며, 메모리 기반 통합 스토리지는 앞부분에 메인 메모리 스토리지 영역이 매핑되고, 뒷 부분에 디스크 스토리지 영역이 매핑되는 것을 알 수 있다.
메인 메모리 스토리지의 블록ID 1 ~ N 은 메모리기반 통합 스토리지의 블록ID 1 ~ N에 매핑될 수 있다. 디스크 스토리지의 블록 ID 1 ~ M은 메모리기반 통합 스토리지의 블록 ID N+1 ~ N+M으로 매핑될 수 있다. 그리고 클라우드 스토리지의 블록 ID 1 ~ L은 클라우드 스토리지 N+M+1 ~ N+M+L로 매핑될 수 있다. 그리고 메모리 기반 통합 스토리지블록 ID N과 N+1 사이에 스토리지 경계가 설정 및 M과 M+1 사이의 스토리지 경계가 설정될 수 있다. 상기 블록 개념의 확장은 스토리지 장치간의 확장을 통하여 얼마든지 확장 가능할 수 있다.
도 4는 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 방법을 나타낸 동작흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 방법은 사용자로부터 서비스 응용(혹은 사용자)로부터 통합 스토리지를 가상화한 단일 가상 디스크에 대한 디스크 접근 명령어를 수신할 수 있다(S210).
이 때, 가상 디스크는 가상 스토리지 풀의 단일 가상 디스크에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 방법은 디스크 접근 명령어의 블록 ID를 조사할 수 있다(S220).
즉, 단계(S220)는 디스크 접근 명령어의 블록 ID를 조사하여 스토리지 경계와 크기를 비교할 수 있다.
이 때, 메모리 기반 통합 스토리지는 기설정된 제1 블록 영역에 메인 메모리 스토리지의 블록 ID들이 매핑되고, 제2 블록 영역에 디스크 스토리지의 블록 ID들이 매핑되고, 제3 블록 영역에 클라우드 스토리지의 블록 ID들이 매핑될 수 있다.
이 때, 메모리 기반 통합 스토리지는 상기 제2 블록 영역의 첫번째 블록 ID는 상기 제1 블록 영역의 마지막 블록 ID보다 큰 값으로 매핑되고, 상기 제3 블록 영역의 첫번째 블록 ID는 상기 제2 블록 영역의 마지막 블록 ID 보다 큰 값으로 매핑될 수 있다.
이 때, 메모리 기반 통합 스토리지는 상기 제1 영역과 상기 제2 영역 사이에 제1 스토리지 경계가 설정되고, 상기 제2 영역과 상기 제3 영역 사이에 제2 스토리지 경계가 설정될 수 있다.
클라우드 스토리지의 블록 연결은 해당 클라우드가 제공하는 해당 API 혹은 프로토콜 및 API를 따르고 스토리지가 연결되어 있을 경우 네트워크 프로토콜을 통한 NFS, SAN등의 프로토콜도 작용할 수 있다.
이 때, 단계(S220)는 디스크 접근 명령어의 블록 ID와 상기 제1 스토리지 경계와 상기 제2 스토리 경계를 기준으로 블록 ID의 크기를 비교하여 가장 가까운 값에 해당하는 블록 영역을 결정할 수 있다.
이 때, 단계(S220)는 디스크 접근 명령어의 블록 ID를 조사하여 블록 ID가 스토리지 경계보다 작거나 같다면, 디스크 접근 명령어를 메인 메모리 제어 모듈로 전달할 수 있다(S230).
이 때 단계(S230)는 고속의 메인 메모리 스토리지를 사용하여 디스크 접근 명령어를 처리할 수 있다.
이 때, 단계(S230)는 상기 결정된 블록 영역에 매핑된 메인 메모리 스토리지에 상응하는 상기 단일 가상 디스크 스토리지를 생성할 수 있다.
이 때, 단계(S230)는 상기 사용자로부터 사용자의 요구 사항을 수신하여 상기 사용자의 요구사항에 포함된 디스크 성능 정보에 기반하여 상기 단일 가상 디스크 스토리지를 최적화할 수 있다.
또한, 단계(S220)는 디스크 접근 명령어의 블록 ID를 조사하여 블록 ID가 스토리지 경계보다 크다면 디스크 접근 명령어를 디스크 스토리지 제어 모듈로 전달할 수 있다(S240).
이 때, 단계(S240)는 대용량의 디스크 스토리지를 이용하여 디스크 접근 명령어를 처리할 수 있다.
이 때, 단계(S240)는 상기 결정된 블록 영역에 매핑된 디스크 스토리지에 상응하는 상기 단일 가상 디스크 스토리지를 생성할 수 있다.
이 때, 단계(S240)는 상기 사용자로부터 사용자의 요구 사항을 수신하여 상기 사용자의 요구사항에 포함된 디스크 성능 정보에 기반하여 상기 단일 가상 디스크 스토리지를 최적화할 수 있다.
또한, 단계(S220)는 디스크 접근 명령어의 블록 ID를 조사하여 블록 ID가 스토리지 경계보다 크다면 디스크 접근 명령어를 클라우드 스토리지 제어 모듈로 전달할 수 있다(S250).
이 때, 단계(S250)는 클라우드 스토리지를 이용하여 디스크 접근 명령어를 처리할 수 있다.
이 때, 단계(S250)는 상기 결정된 블록 영역에 매핑된 클라우드 스토리지에 상응하는 상기 단일 가상 디스크 스토리지를 생성할 수 있다.
이 때, 단계(S250)는 상기 사용자로부터 사용자의 요구 사항을 수신하여 상기 사용자의 요구사항에 포함된 디스크 성능 정보에 기반하여 상기 단일 가상 디스크 스토리지를 최적화할 수 있다.
메인 메모리 스토리지는 메모리를 램디스크로 활용하고 램디스크의 데이터를 다른 스토리지와 연결하여 비휘발성 블록 장치를 동기적 혹은 비동기적으로 함께 사용할 수 있다. 연결된 블록으로 백업을 수행 할 수도 있어 편리하다.
메인 메모리 스토리지는 백업 시작 시에 디스크 스토리지의 데이터를 메인 메모리 스토리지 램디스크로 복원할 수 있다. 복원 과정 중에 SBR모듈은 멈추지 않고 정상 서비스를 진행할 수 있다.
메인 메모리 스토리지는 동기식 백업 모드일 때, 전달받은 모든 데이터를 램디스크와 디스크 스토리지에 동시에 저장할 수 있다. 메인 메모리 스토리지는 두 장치로 저장이 완료되면 상위 계층에 쓰기를 완료할 수 있다.
메인 메모리 스토리지는 비동기식 백업 모드일 때, 전달받은 데이터를 램디스크에만 저장할 수 있다. 메인 메모리 스토리지 내부의 커널 쓰레드는 램디스크의 더티 데이터를 LRW(Least Recently Written) 순서로 디스크 스토리지에 저장할 수 있다.
메인 메모리 스토리지의 용량은 디스크 스토리지의 용량으로 설정될 수 있다. 램 크기 이내의 영역의 데이터는 램디스크로 사용되고, 초과 영역은 디스크 스토리지에서 바로 서비스될 수 있다.
일반적인 가상화 환경에서는 초기에 가상 머신이나 컨테이너가 구동하기 위한 운영체제 데이터를 포함하는 가상 디스크가 생성될 수 있다. 이렇게 메모리 기반 통합 스토리지 운영 초기에 생성된 운영체제 데이터는 고성능을 제공하는 메인 메모리 스토리지에서 서비스될 수 있다.
따라서, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치는 서비스 응용의 속도에 가장 큰 영향을 미치는 운영체제 데이터들을 메인 메모리에 저장함으로써, 고속의 가상 머신을 수행할 수 있다.
이 때, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치는 서비스 응용(혹은 사용자) 운영시 사용자 데이터를 지속적으로 생성하며, 메인 메모리 용량을 초과할 경우, 해당 데이터들은 디스크 스토리지에 저장할 수 있.
사용자 데이터들은 디스크 스토리지에 저장되어도 서비스의 운영 성능에 미치는 영향이 작다. 또한, 대용량의 디스크 스토리지를 사용함으로써 많은 양의 사용자 데이터들이 저장될 수 있다.
따라서, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치는 응용 서비스의 속도에 중요한 운영체제 데이터들을 메인 메모리에 저장하여 고성능을 지원하며, 대용량 사용자 데이터들을 디스크 스토리지에 저장함으로써 메인 메모리의 용량 한계를 극복할 수 있다.
도 5는 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치(100)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 5에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치는 하나 이상의 프로세서(1110); 및 상기 하나 이상의 프로세서(1110)에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리(1130)를 포함하고, 상기 적어도 하나 이상의 프로그램은 사용자로부터 메모리 기반 통합 스토리지에 대한 접근 요청에 따른 데이터의 연산 작업들을 변환시키고, 여기서 상기 메모리 기반 통합 스토리지의 가상 스토리지 풀의 단일 가상 디스크는 상기 연산 작업들에 따라 디스크 접근 명령어를 스토리지 백엔드로 연결하는 커맨드로 변환시키고, 상기 연산 작업들과 상기 커맨드의 변환은 상기 메모리 기반 통합 스토리지 중 어떤 로컬 스토리지가 사용할지를 나타내는 타겟 식별을 포함한다.
이 때, 상기 메모리 기반 통합 스토리지는 기설정된 제1 블록 영역에 메인 메모리 스토리지의 블록 ID들이 매핑되고, 제2 블록 영역에 디스크 스토리지의 블록 ID들이 매핑되고, 제3 블록 영역에 클라우드 스토리지의 블록 ID들이 매핑될 수 있다.
이 때, 상기 메모리 기반 통합 스토리지는 상기 제2 블록 영역의 첫번째 블록 ID는 상기 제1 블록 영역의 마지막 블록 ID보다 큰 값으로 매핑되고, 상기 제3 블록 영역의 첫번째 블록 ID는 상기 제2 블록 영역의 마지막 블록 ID 보다 큰 값으로 매핑될 수 있다.
이 때, 상기 메모리 기반 통합 스토리지는 상기 제1 영역과 상기 제2 영역 사이에 제1 스토리지 경계가 설정되고, 상기 제2 영역과 상기 제3 영역 사이에 제2 스토리지 경계가 설정될 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 디스크 접근 명령어의 블록 ID와 상기 제1 스토리지 경계와 상기 제2 스토리 경계를 기준으로 블록 ID의 크기를 비교하여 가장 가까운 값에 해당하는 블록 영역을 결정할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 결정된 블록 영역에 매핑된 스토리지에 상응하는 상기 단일 가상 디스크 스토리지를 생성할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 사용자의 요구 사항을 더 수신하고, 상기 사용자의 요구 사항에 포함된 디스크 성능 정보에 기반하여 상기 단일 가상 디스크 스토리지를 최적화할 수 있다.
이상에서와 같이 본 발명의 일실시예에 따른 메모리 기반 통합 스토리지 관리 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.

Claims (11)

  1. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고,
    상기 적어도 하나 이상의 프로그램은
    사용자로부터 메모리 기반 통합 스토리지에 대한 접근 요청에 따른 데이터의 연산 작업들을 변환시키고,
    여기서 상기 메모리 기반 통합 스토리지의 가상 스토리지 풀의 단일 가상 디스크는 상기 연산 작업들에 따라 디스크 접근 명령어를 스토리지 백엔드로 연결하는 커맨드로 변환시키고,
    상기 연산 작업들과 상기 커맨드의 변환은 상기 메모리 기반 통합 스토리지 중 어떤 로컬 스토리지가 사용할지를 나타내는 타겟 식별을 포함하는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 장치.
  2. 청구항 1에 있어서,
    상기 메모리 기반 통합 스토리지는
    기설정된 제1 블록 영역에 메인 메모리 스토리지의 블록 ID들이 매핑되고, 제2 블록 영역에 디스크 스토리지의 블록 ID들이 매핑되고, 제3 블록 영역에 클라우드 스토리지의 블록 ID들이 매핑되는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 장치.
  3. 청구항 2에 있어서,
    상기 메모리 기반 통합 스토리지는
    상기 제2 블록 영역의 첫번째 블록 ID는 상기 제1 블록 영역의 마지막 블록 ID보다 큰 값으로 매핑되고, 상기 제3 블록 영역의 첫번째 블록 ID는 상기 제2 블록 영역의 마지막 블록 ID 보다 큰 값으로 매핑되는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 장치.
  4. 청구항 3에 있어서,
    상기 메모리 기반 통합 스토리지는
    상기 제1 영역과 상기 제2 영역 사이에 제1 스토리지 경계가 설정되고, 상기 제2 영역과 상기 제3 영역 사이에 제2 스토리지 경계가 설정되는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 장치.
  5. 청구항 4에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 디스크 접근 명령어의 블록 ID와 상기 제1 스토리지 경계와 상기 제2 스토리 경계를 기준으로 블록 ID의 크기를 비교하여 가장 가까운 값에 해당하는 블록 영역을 결정하는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 장치.
  6. 청구항 5에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 결정된 블록 영역에 매핑된 스토리지에 상응하는 상기 단일 가상 디스크 스토리지를 생성하는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 장치.
  7. 청구항 6에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 사용자의 요구 사항을 더 수신하고, 상기 사용자의 요구 사항에 포함된 디스크 성능 정보에 기반하여 상기 단일 가상 디스크 스토리지를 최적화하는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 장치.
  8. 메모리 기반 통합 스토리지 관리 장치의 메모리 기반 통합 스토리지 관리 방법에 있어서,
    사용자로부터 메모리 기반 통합 스토리지의 가상 스토리지 풀에 대한 디스크 접근 요청을 수신하는 단계; 및
    상기 접근 요청에 따른 데이터의 연산 작업들을 스토리지 백엔드로 연결하는 커맨드로 변환시키는 단계를 포함하고,
    여기서 상기 연산 작업들에 따라 디스크 접근 명령어는 상기 메모리 기반 통합 스토리지의 가상 스토리지 풀의 데이터 분산 작업을 통해 스토리지 백엔드로 연결하는 커맨드로 변환되고,
    상기 연산 작업들과 상기 커맨드의 변환은 상기 메모리 기반 통합 스토리지 중 어떤 로컬 스토리지가 사용할지를 나타내는 타겟 식별을 포함하는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 방법.
  9. 청구항 8에 있어서,
    상기 메모리 기반 통합 스토리지는
    기설정된 제1 블록 영역에 메인 메모리 스토리지의 블록 ID들이 매핑되고, 제2 블록 영역에 디스크 스토리지의 블록 ID들이 매핑되고, 제3 블록 영역에 클라우드 스토리지의 블록 ID들이 매핑되는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 방법.
  10. 청구항 9에 있어서,
    상기 메모리 기반 통합 스토리지는
    상기 제2 블록 영역의 첫번째 블록 ID는 상기 제1 블록 영역의 마지막 블록 ID보다 큰 값으로 매핑되고, 상기 제3 블록 영역의 첫번째 블록 ID는 상기 제2 블록 영역의 마지막 블록 ID 보다 큰 값으로 매핑되는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 방법.
  11. 청구항 10에 있어서,
    상기 메모리 기반 통합 스토리지는
    상기 제1 영역과 상기 제2 영역 사이에 제1 스토리지 경계가 설정되고, 상기 제2 영역과 상기 제3 영역 사이에 제2 스토리지 경계가 설정되는 것을 특징으로 하는 메모리 기반 통합 스토리지 관리 방법.
KR1020220064902A 2021-06-21 2022-05-26 메모리 기반 통합 스토리지 관리 장치 및 방법 KR20220169894A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/842,943 US20220405021A1 (en) 2021-06-21 2022-06-17 Apparatus and method for managing integrated storage based on memory

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20210080295 2021-06-21
KR1020210080295 2021-06-21

Publications (1)

Publication Number Publication Date
KR20220169894A true KR20220169894A (ko) 2022-12-28

Family

ID=84538456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220064902A KR20220169894A (ko) 2021-06-21 2022-05-26 메모리 기반 통합 스토리지 관리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20220169894A (ko)

Similar Documents

Publication Publication Date Title
US11188254B2 (en) Using a data mover and a clone blocklist primitive to clone files on a virtual file system
US8966476B2 (en) Providing object-level input/output requests between virtual machines to access a storage subsystem
US10296255B1 (en) Data migration techniques
US20220197513A1 (en) Workload Based Device Access
KR102236419B1 (ko) 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체
US10318166B1 (en) Preserving locality of storage accesses by virtual machine copies in hyper-converged infrastructure appliances
JP2021128802A (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US20210042032A1 (en) Drive box, storage system and data transfer method
US10402333B2 (en) Computer system including plurality of types of memory devices and method
US10789253B2 (en) Computing system and server
KR102326280B1 (ko) 데이터 처리 방법, 장치, 기기 및 매체
EP4123649A1 (en) Memory module, system including the same, and operation method of memory module
US11182202B2 (en) Migration between CPU cores
US10678431B1 (en) System and method for intelligent data movements between non-deduplicated and deduplicated tiers in a primary storage array
JP2020021417A (ja) データベース管理システム及び方法
US10705733B1 (en) System and method of improving deduplicated storage tier management for primary storage arrays by including workload aggregation statistics
JP7438246B2 (ja) ハードウェアベースのメモリ圧縮
US10154113B2 (en) Computer system
US20160077747A1 (en) Efficient combination of storage devices for maintaining metadata
KR20220169894A (ko) 메모리 기반 통합 스토리지 관리 장치 및 방법
US11513902B1 (en) System and method of dynamic system resource allocation for primary storage systems with virtualized embedded data protection
US11003378B2 (en) Memory-fabric-based data-mover-enabled memory tiering system
US9529721B2 (en) Control device, and storage system
US20220405021A1 (en) Apparatus and method for managing integrated storage based on memory
US10713171B2 (en) Computer system