KR20150075831A - Cache-enabled Metadata-aware Storage in Linux System - Google Patents

Cache-enabled Metadata-aware Storage in Linux System Download PDF

Info

Publication number
KR20150075831A
KR20150075831A KR1020130164176A KR20130164176A KR20150075831A KR 20150075831 A KR20150075831 A KR 20150075831A KR 1020130164176 A KR1020130164176 A KR 1020130164176A KR 20130164176 A KR20130164176 A KR 20130164176A KR 20150075831 A KR20150075831 A KR 20150075831A
Authority
KR
South Korea
Prior art keywords
metadata
block
data
caching
cache
Prior art date
Application number
KR1020130164176A
Other languages
Korean (ko)
Other versions
KR101551029B1 (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 KR1020130164176A priority Critical patent/KR101551029B1/en
Publication of KR20150075831A publication Critical patent/KR20150075831A/en
Application granted granted Critical
Publication of KR101551029B1 publication Critical patent/KR101551029B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • 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

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A hybrid storage system according to the embodiment of the present invention includes a main processor, a main memory which loads a program or data according to the control of the main processor, a solid state drive on which a plurality of cache blocks are defined, and a hard disk on which the cache blocks are defined. The solid state drive is composed of a first region which stores a mapping table about a metadata block, a second region which stores the metadata block, and a third region which stores a caching mapping table for caching the data block.

Description

리눅스 시스템의 캐시 사용 메타데이터-인식 스토리지{Cache-enabled Metadata-aware Storage in Linux System}Cache-Enabled Metadata-aware Storage on Linux Systems -

본 발명은 전반적인 성능을 개선하기 위해 빠른 SSD와 느린 HDD를 통합한 하이브리드 스토리지 시스템에 관한 것이다.The present invention relates to a hybrid storage system incorporating a fast SSD and a slow HDD to improve overall performance.

하이브리드 스토리지 시스템은 전체적인 성능을 개선하기 위해, 느린 HDD들과 빠른 SSD들을 통합한다. 이를 위해, SSD들을 HDD들의 캐시로 이용하는 방법에 관한 다양한 연구들이 진행되고 있다.Hybrid storage systems integrate slower HDDs and faster SSDs to improve overall performance. To this end, various studies have been conducted on a method of using SSDs as a cache of HDDs.

그 중 하나의 제안은 메타 블록만을 캐싱하는 방법이다. 왜냐하면 모든 IO요청들은 데이터 블록들에 대한 요청을 하기 전에, 메타 데이터 블록들에 대한 요청을 동반하기 때문이다. 하지만 이 방식은 요구되는 성능 개선을 충족시키지 못한다고 평가하며, 따라서 이러한 결과는 캐시 기능 통합 방식을 수정해야 한다는 동기를 부여한다.One suggestion is to cache only metablocks. Since all IO requests are accompanied by a request for metadata blocks before making a request for data blocks. However, it evaluates that this approach does not meet the required performance improvement, so these results motivate the modification of the cache function integration approach.

본 발명이 제안하는 방식을 리눅스 시스템에서 구현했을 때, 여러 도전 과제들을 다루어야 했고, 제안된 방식의 평가 결과는 기존 방식보다 적어도 90% 이상의 성능 개선을 보여주었다. 이 결과는 메타데이터 블록보다, 데이터 블록을 캐싱하는 것이 훨씬 더 성능에 영향을 많이 준다는 것을 의미한다.When implementing the method proposed by the present invention in a Linux system, it was necessary to deal with various challenges, and the evaluation result of the proposed method showed at least 90% performance improvement over the conventional method. This result means that caching data blocks is much more impacting performance than metadata blocks.

본 발명은 상기한 문제점을 해결하기 위해 발명된 것으로, 그 목적은 데이터가 하드디스크 드라이브에 저장되어 있는 동안 메타데이터를 솔리드 스테이트 드라이브에 저장하는 하이브리드 스토리지에 있어서, 상기 솔리드 스테이트 드라이브를 통해 데이터 캐싱을 통합함으로써, 성능을 개선시킬 수 있는, 리눅스 시스템의 하이브리드 스토리지를 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and its object is to provide a hybrid storage for storing metadata in a solid state drive while data is being stored in a hard disk drive, To provide hybrid storage of Linux systems, which can improve performance by consolidating them.

상기한 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 하이브리드 스토리지 시스템은, 메인 프로세서와, 상기 메인 프로세서의 제어에 따라 데이터 또는 프로그램이 로딩되는 주메모리와, 다수의 캐시 블록이 정의된 솔리드 스테이트 드라이브와, 다수의 디스크 블록이 정의된 하드스크를 포함하는 하이브리드 스토리지 시스템에 있어서, 상기 솔리드 스테이트 드라이브는, 메타데이터 블록에 대한 매핑 테이블을 저장하는 제1 영역과, 상기 메타데이터 블록을 저장하는 제2 영역 및 데이터 블록을 캐싱하기 위해 캐싱 매핑 테이블을 저장하는 제3 영역으로 구성되는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a hybrid storage system including a main processor, a main memory loaded with data or a program under the control of the main processor, A hybrid storage system comprising a drive and a hard disk having a plurality of disk blocks defined therein, the solid state drive comprising: a first area for storing a mapping table for a metadata block; And a third area for storing the caching mapping table for caching the second area and the data block.

본 발명의 하이브리드 스토리지 시스템에 의하면, 메타데이터만 캐싱하는 오리지널 MACSS에 추가 캐싱 기능을 더하여 MACSS를 개선함으로써, 메타데이터 블록만 캐싱하는 방식보다 데이터 블록의 캐싱을 추가함으로써 성능에 훨씬 큰 영향을 미칠 수 있다.According to the hybrid storage system of the present invention, the MACSS is improved by adding an additional caching function to the original MACSS that only caches the metadata, so that the caching of the data block is added rather than the method of caching only the metadata block. have.

도 1은 HDD 전용의 평균 응답 시간과 MACSS의 평균 응답 시간을 나타내는 그래프.
도 2는 본원 발명의 실시 예에 의한 결과 그래프.
도 3은 본원 발명의 슈도 코드(pseudo code)의 일 예.
도 4는 본원 발명의 일 실시예에 의한 트랜잭션의 평균 응답 시간.
도 5는 본원 발명의 일 실시예에 따라 사이즈가 다른 파일을 복사하는데 걸린 시간을 보여주는 그래프.
1 is a graph showing an average response time for an HDD and an average response time for a MACSS.
2 is a graph of results according to an embodiment of the present invention.
3 is an example of the pseudo code of the present invention.
FIG. 4 illustrates an average response time of a transaction according to an embodiment of the present invention. FIG.
5 is a graph showing time taken to copy files of different sizes according to an embodiment of the present invention;

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명의 리눅스 시스템의 캐시 사용 메타데이터-어웨어 스토리지를 상세히 설명한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, a preferred embodiment of the present invention will be described with reference to the accompanying drawings.

하드 디스크 드라이브와 스몰 솔리드-스테이트 드라이브(SSD)를 이용하여 캐시를 통합한 하이브리드 스토리지는 하드 디스크 드라이브가 SSD에 의해 완전히 대체되기 전에 당분간 인기를 얻게 될 것이다.Hybrid storage, which combines cache with a hard disk drive and a small solid-state drive (SSD), will gain momentum before the hard disk drive is completely replaced by the SSD.

일부 하이브리드 스토리지 시스템은 Dataplex과 Hystor와 같은 소프트웨어 사용만으로 설정된다. 반면, 하드웨어 기반의 시스템도 이용 가능하다.Some hybrid storage systems are configured using only software such as Dataplex and Hystor. On the other hand, hardware-based systems are also available.

SSD는 쓰기 작업의 최대 허용 수에 대한 제약 조건을 가지고 있고, HDDs에 비교했을 때 가격 경쟁력이 떨어지기 때문에 대부분의 연구는 SSD들을 HDD들에 캐시로 결합하는데 초점을 둔다.Most research focuses on caching SSDs to HDDs because SSDs have constraints on the maximum allowable number of write operations and are less competitive than HDDs.

특히, 운영체제의 블록 장치 층은 SSD들과 HDD들로 조합된 집합을 하나의 논리 블록 장치[9]로 다루도록 수정되었다. 그런 다음, 내부 캐시 관리자를 사용하여, SSD들을 읽기 캐시로 사용하였다. 한편, SSD들의 쓰기 동작에 대한 제약은, 캐시로 쓰이는 SSD들의 쓰기 동작의 수를 줄이기 위한 다른 노력들을 가하게 하였다. 그러한 노력들 중 하나는, SSD들에 쓰기 전에 데이터를 압축하는 것이었다. 이를 위해, 파일 기반 압축과 비교하여, 블록 기반 압축이 연구되었다.In particular, the block device layer of the operating system has been modified to handle a combined set of SSDs and HDDs as a single logical block device [9]. Then, using the internal cache manager, SSDs were used as read cache. On the other hand, the constraints on the write operation of the SSDs have made other efforts to reduce the number of write operations of the SSDs used in the cache. One such effort was to compress the data before writing to the SSDs. To this end, block based compression has been studied in comparison to file based compression.

타 방식들이 SSD들을 데이터 캐시로 사용하는 반면, 메타 인식 콤보 저장 시스템(MACSS)은 SSD들에 메타데이터를 저장하도록 제안되었다.While other schemes use SSDs as data caches, the meta-recognition combo storage system (MACSS) has been proposed to store metadata in SSDs.

메타데이터는 파일들의 이름, 속성, 스토리지 내 위치와 같은 정보들과 저장소의 이용 가능한 공간과 같은 정보들의 기록이다. MACSS에서 오직 SSD들에만 메타데이터를 저장하는 것은 주목할 만한 사실이다. MACSS에 의한 성능 향상은, 운영체제가 IO를 요청하기 전에 메타데이터에 접근해야 하며, 그렇지 않는다면 커널이 스토리지에서 파일을 찾을 방법이 없다는 사실에 기인한다.Metadata is a record of information such as names of files, attributes, information such as location in storage, and available space in repository. It is noteworthy that MACSS only stores metadata in SSDs. The performance improvement due to MACSS is due to the fact that the operating system needs to access the metadata before requesting IO, otherwise the kernel can not find the file in storage.

메타데이터의 양이 데이터의 양에 비해 상대적으로 작기 때문에, MACSS는 HDD 전용 시스템보다 더 나은 성능을 발휘하기 위해 작은 사이즈의 SSD만을 필요로 한다.Since the amount of metadata is relatively small compared to the amount of data, MACSS requires only small size SSDs to perform better than HDD dedicated systems.

그러나, 다른 벤치마크들로 성능을 평가했을 때, MACSS가 보여 준 성능은 목표치를 달성하지 못하였다. MACSS는 전체 IO요청의 80%가 쓰기 요청인 다중 가상 머신 환경을 사용한 반면, 여기서는 표준화 되어 널리 이용되는 벤치마크 프로그램인, TPC-C[15]를 이용하여 테스트를 하였다. 이 결과에 대한 심층 분석은, 메타데이터에 대한 IO요청의 비율이 데이터에 대한 IO요청의 3% 미만임을 보여준다. 따라서, MACSS는 성능을 향상하는 데에 도움이 되지 않는다.However, when evaluating performance with other benchmarks, the performance of MACSS did not meet the target. MACSS used multiple virtual machine environments where 80% of the total IO requests were write requests, while the test was conducted using TPC-C [15], a standardized and widely used benchmark program. An in-depth analysis of this result shows that the percentage of IO requests for metadata is less than 3% of IO requests for data. Therefore, MACSS does not help to improve performance.

본 발명은, 성능 향상을 위해, 데이터 캐싱을 통합하도록 MACSS를 수정할 것을 제안한다. 데이터 캐싱을 통합할 수 있는 이유 중 하나는, SSD들의 단위 크기당 비용이 실질적으로 꾸준히 줄고 있으므로, SSD들의 볼륨이 메타데이터 뿐만 아니라 데이터까지 저장하기에 비용 효율면에서 충분하기 때문이다. 그러나 데이터 캐싱과 함께 메타데이터를 유지하는 것은 간단하지 않다. 이들 사이의 차이점 중 하나는 데이터 캐싱이 일시적인 반면, 메타데이터의 기록은 영구적이어야 한다는 것이다. 본 발명은 메타데이터 및 데이터 캐시를 분리하여 관리하는 맵핑 정보 테이블 두 세트를 소개한다.
The present invention proposes to modify the MACSS to incorporate data caching for performance enhancement. One reason for consolidating data caching is that the volume of SSDs is cost-effective enough to store not only metadata but also data, as the cost per unit size of SSDs is substantially steadily decreasing. However, maintaining metadata with data caching is not straightforward. One of the differences between them is that while data caching is temporary, the recording of metadata should be permanent. The present invention introduces two sets of mapping information tables that manage metadata and data caches separately.

MACSS의 평가Assessment of MACSS

MACSS는 데이터가 HDD에 저장되어 있는 동안 메타데이터를 SSD에 저장하기 때문에 데이터에 대한 요청과 메타 데이터에 대한 IO요청을 다르게 처리한다. 따라서 MACSS는 SSD들과 HDD들로 구성된 하이브리드 스토리지를 필요로 한다. 평가 결과에 따르면, MACSS는 HDD 전용 시스템보다 35% 이상의 응답시간을 개선할 수 있었다. 그러나 벤치마크 프로그램, TPC-C을 사용하여 MACSS를 평가한 결과는 다르게 나타난다. TCP-C 벤치마크는 온라인 상거래 환경에서 일어날 가능성이 있는 다섯 가지 트랜잭션 유형의 평균 응답 시간을 측정한다. 결과에 따르면, 트랜잭션의 평균 응답 시간은 HDD 전용 시스템보다 단지 17% 이상 향상되었으며, 이는 요구되는 성능 개선의 절반 정도에 지나지 않는다. 도 1은 HDD 전용의 것들과 MACSS의 평균 응답 시간을 보여준다. 개선보다는 오히려, Delivery 트랜잭션의 경우, 응답 시간이 HDD 전용보다 못하기까지 하다. 한편, Order status 트랜잭션만이 35% 이상의 성능 개선을 달성하였다.Because MACSS stores metadata in the SSD while data is stored on the HDD, it handles requests for data and IO requests for metadata differently. Therefore, MACSS requires hybrid storage consisting of SSDs and HDDs. According to the evaluation results, MACSS improved the response time by more than 35% compared to the HDD exclusive system. However, the results of evaluating MACSS using the benchmark program, TPC-C, are different. The TCP-C benchmark measures the average response time of five possible transaction types in an online commerce environment. The results show that the average response time of transactions has improved by only 17% over HDD dedicated systems, which is only half the required performance improvement. FIG. 1 shows the average response time of the HDD exclusive use and the MACSS. Rather than improvement, in the case of a delivery transaction, the response time is far less than the dedicated HDD. On the other hand, only the order status transaction achieved a performance improvement of more than 35%.

고안자는 MACSS의 성능이 기대 성능보다 낮음을 설명할 수 있는 다른 실험을 수행했다. 서로 다른 크기의 파일(100MB, 1GB, 2GB, 4GB)들을 복사하면서, 메타데이터 또는 데이터에 대한 IO요청들의 요청 횟수를 기록했다. 도 2는 100MB 파일의 복사 작업에 대해, 18회의 메타데이터 IO요청과 825회의 데이터 IO요청이 생성되는 것을 보여준다. 메타데이터 IO요청의 수는 데이터 IO요청의 수의 2.1% 정도밖에 되지 않는다는 것을 알 수 있다. 이는 다른 크기의 파일들에 대해서도 유사하며, 1GB 파일은 3%, 2GB 파일은 2.8%, 4GB 파일은 2.7% 정도의 비율을 가진다. 이를 통해 타입에 따라 요청들의 개수에 큰 차이가 존재한다는 것은 명백한 사실이며, 이것은, 메타데이터로의 빠른 접근만으로는 전체적인 성능 개선에 큰 도움이 되지 못한다는 것을 의미한다. 거기에다, SSD의 가격이 떨어지고 있다는 사실은, 메타데이터 뿐만 아니라, 데이터도 캐싱하는 방법이 유용하다는 것을 알 수 있게 해준다.
The inventor performed another experiment that could explain that the performance of the MACSS is lower than expected performance. Copying files of different sizes (100MB, 1GB, 2GB, 4GB) recorded the number of requests for IO requests for metadata or data. 2 shows that 18 metadata IO requests and 825 data IO requests are generated for a 100 MB file copy operation. It can be seen that the number of metadata IO requests is only about 2.1% of the number of data IO requests. This is similar for files of different sizes, with 3% for 1GB files, 2.8% for 2GB files, and 2.7% for 4GB files. It is clear that there is a big difference in the number of requests depending on the type, which means that quick access to metadata does not greatly improve overall performance. In addition, the fact that the price of an SSD is dropping lets you know that it is useful to cache data as well as metadata.

MACSS와 캐싱의 통합 및 리눅스 시스템에서의 구현Integration of MACSS and caching and implementation on Linux systems

고안자는 캐싱 기능을 추가하여 MACSS를 향상시킨다. 메타데이터를 저장하는 것 외에도, SSD는 자주 액세스되는 파일을 저장하는 캐시로도 동작한다.The inventor improves MACSS by adding a caching function. In addition to storing metadata, the SSD also acts as a cache that stores frequently accessed files.

도 3은 제안된 방법의 슈도 코드(pseudo code)를 보여준다. 현재의 요청이 메타데이터 블록에 대한 요청인지, 아니면 데이터 블록에 대한 요청인지 체크하고, 그에 따라 다르게 처리한다. 그리고 나서, 읽기에 대한 요청인지, 아니면 쓰기에 대한 요청인지 나눈다.Figure 3 shows the pseudo code of the proposed method. It checks whether the current request is a request for a metadata block or a request for a data block, and processes it accordingly. Then divide it by whether it is a request for reading or a request for writing.

데이터 블록에 대한 요청의 경우 다음과 같이 동작한다. 타겟 블록이 SSD에 있는 경우, 요청은 SSD로부터 블록을 판독함으로써 제공된다. 그렇지 않으면(타겟 블록이 SSD에 없는 경우), 타겟 블록이 HDD로부터 먼저 읽히고, 향후 접근을 위해 SSD에 캐싱된다.In the case of a request for a data block, it operates as follows. If the target block is in the SSD, the request is provided by reading the block from the SSD. Otherwise (if the target block is not in the SSD), the target block is first read from the HDD and cached in the SSD for future access.

유사하게, 쓰기의 경우도 두 가지 경우를 처리해야 한다. 타겟 블록이 캐시되어 있는 경우, SSD에 있는 데이터뿐만 아니라, HDD에 있는 데이터 또한 덮어쓴다(overwrites). 그렇지 않으면, HDD에 있는 데이터를 덮어쓰고, 해당 데이터를 SSD의 블록에 캐싱한다.
Similarly, in the case of writing, both cases must be handled. If the target block is cached, it overwrites the data in the HDD as well as the data in the SSD. Otherwise, it overwrites the data in the HDD and caches the data in the block of the SSD.

제안된 방법은 캐시 기능을 제공하기 위해 SSD의 추가 정보를 저장할 필요가 있다. 이를 위해 SSD를 세 개의 영역으로 분할한다. 제1 영역은 메타 데이터 블록에 대한 매핑 테이블을 위한 영역이다. 제1 영역은 블록 번호들의 쌍들의 세트를 저장한다. 각 쌍은 하나의 메타데이터 블록에 대응하고, 메타데이터 블록에 대한 HDD 블록 넘버와 대응하는 SSD 블록 넘버로 구성된다. 제2 영역은 메타 데이터 블록을 저장한다. 제3 영역은 데이터 블록을 캐싱하기 위한 영역이다. 이 영역은 또한 HDD블록 넘버와 SSD 블록 넘버 간의 매핑 테이블을 필요로 한다. 본 발명은 커널 메모리에서 그러한 매핑 정보를 구성하고 이에 대해 짧게 논의한다. The proposed method needs to store additional information of SSD to provide cache function. To do this, the SSD is divided into three regions. The first area is an area for a mapping table for the metadata block. The first area stores a set of pairs of block numbers. Each pair corresponds to one metadata block and is composed of the HDD block number for the metadata block and the corresponding SSD block number. The second area stores a metadata block. The third area is an area for caching data blocks. This area also requires a mapping table between the HDD block number and the SSD block number. The present invention constructs and briefly discusses such mapping information in kernel memory.

제안하는 방법에서 두 개의 매핑 테이블이 존재하기 때문에, 첫 번째 영역에서의 메타데이터 매핑 테이블을 MMT라 명명하고, 세 번째 영역의 캐싱 영역에서의 캐시 매핑 테이블을 CMT라 명명한다.Since there are two mapping tables in the proposed method, the metadata mapping table in the first domain is named MMT and the cache mapping table in the third domain is named CMT.

커널 버전 2.6.32와 리눅스 시스템에서 제안된 방법을 구현함에 있어서 자세히 설명할 세 가지 문제가 있다.There are three problems to be addressed in implementing the proposed method in kernel version 2.6.32 and Linux systems.

첫 번째는 요청이 메타데이터 블록인지 데이터 블록인지 여부를 구별하는 방법에 관한 것이며, 이는 요청이 리눅스 시스템에 표현되는 방법에 대한 지식을 필요로 한다. 요청은 멤버 변수의 집합을 포함하는 bio라고 불리는 구조체로 캡슐화된다. 변수 중 하나는 대응하는 요청이 완료될 때 호출되어야 하는 함수에 대한 포인터로서 end_io라고 불린다. 함수 포인터가 블록 종류에 따라 다르기 때문에, 요청이 메타데이터 블록 또는 데이터 블록에 대응하는지 여부를 알 수 있다. The first is about how to distinguish whether a request is a metadata block or a data block, which requires knowledge of how the request is represented in the Linux system. The request is encapsulated into a structure called bio containing a set of member variables. One of the variables is called end_io as a pointer to a function that should be called when the corresponding request is completed. Since the function pointer differs depending on the block type, it is possible to know whether the request corresponds to a metadata block or a data block.

둘째로, MMT는 HDD와 SSD 블록 넘버를 한 쌍의 세트로 저장하고, 각 넘버는 8바이트 길이를 가진다. 쌍은 MMT에 HDD 블록 넘버의 순서대로 순차적으로 저장되기 때문에, 주어진 HDD 블록 넘버인 Hn에 대응하는 SSD 블록 넘버 Sn는 Hn/32에서 SSD 블록을 읽고, Hn % 32 + 16에서 오프셋을 읽음으로써 찾을 수 있다.Second, the MMT stores the HDD and SSD block numbers as a pair of sets, each number having a length of 8 bytes. Since the pairs are sequentially stored in the MMT in the order of the HDD block number, the SSD block number Sn corresponding to the given HDD block number Hn is read by reading the SSD block at Hn / 32 and reading the offset at Hn% 32 + 16 .

마지막으로, CMT는 장치 드라이버의 메모리 내부에 할당되고, 현재 구현된 캐시 교체 정책이 LRU(Least Recently Used) 방식이기 때문에 큐(queue)와 같은 구조를 갖는다. 그리고, CMT의 각 요소는 HDD 블록 번호와 관련된 SSD 블록 번호의 쌍이다. LRU 대체를 사용하면서, 히트가 있는 경우, 대응하는 매핑 요소는 큐의 끝으로 이동하고, 더 캐시 공간을 사용할 수 없는 경우, 큐의 맨 앞에 있는 요소는 새 것으로 대체된다.
Finally, the CMT is allocated in the memory of the device driver and has the same structure as the queue since the currently implemented cache replacement policy is LRU (Least Recently Used) method. Each element of the CMT is a pair of SSD block numbers associated with the HDD block number. Using LRU substitution, if there is a hit, the corresponding mapping element moves to the end of the queue, and if no more cache space is available, the element at the front of the queue is replaced with a new one.

성능 평가 Performance evaluation

고안자는 TPC-C 벤치마크를 매개변수를 사용하여 창고의 관계수(warehouse cardinality) 20, 10의 지역, 300의 고객, 10만 항목, 3000의 주문, 10만 주식과 900의 신규 수주를 사용한다. 그리고 동시 접속의 수, 창고당 터미널의 수 및 선택성은 각각 20을 설정한다. 그리고 벤치마크 플랫폼은 표 1에 나타난다.The inventor uses the TPC-C benchmark as a parameter to use warehouse cardinality of 20, an area of 10, 300 customers, 100,000 items, 3000 orders, 100,000 shares and 900 new orders . The number of simultaneous connections, the number of terminals per warehouse, and selectivity are set to 20 respectively. The benchmark platform is shown in Table 1.

CPUCPU Intel core i7-260, 2.40HzIntel core i7-260, 2.40Hz MemoryMemory DDR3 16GBDDR3 16GB OSOS Linux Kernel Version 2.6.35Linux Kernel Version 2.6.35 HDDHDD WD 1200JSWD 1200JS SSDSSD 128 GB SATA2 interface128 GB SATA2 interface

도 4는 트랜잭션의 평균 응답 시간을 보여준다. 제안된 방법은 캐시의 도움으로, MACSS에 비해 응답 시간을 비약적으로 향상시켰다. 모든 트랜잭션에서, 응답 시간은 90% 이상 감소하였다. 이는 데이터 블록의 캐싱이 메타데이터 블록만 캐싱하는 방식보다 성능에 훨씬 큰 영향을 미치는 것을 보여준다. 메타데이터 블록 자체는 리눅스 시스템 캐시 내부에 캐싱될만큼 충분히 작다는 사실을 고려하면, 다른 장소에 메타데이터 블록을 캐싱하는 것은 쓸모 없을 수 있다.
Figure 4 shows the average response time of a transaction. The proposed method dramatically improves response time compared to MACSS with the help of cache. In all transactions, response time decreased by more than 90%. This shows that the caching of data blocks has a far greater impact on performance than the way it caches only metadata blocks. Taking into account the fact that the metadata block itself is small enough to be cached inside the Linux system cache, it may be useless to cache metadata blocks in other locations.

도 5는 사이즈가 다른 파일을 복사하는데 걸린 시간을 보여준다. 제안된 방법의 성능이 MACSS의 성능과 비슷하다 하더라도, 제안된 방법이 MACSS보다 더 나은 솔루션이 아니라는 것을 의미하는 것은 아니다. 제안된 방법은 캐싱을 다뤄야 하기 때문에 MACSS보다 더 많은 오버헤드를 지닌다는 것을 주목해야 한다. 또한 캐시 히트의 기회가 매우 낮기 때문에 복사 작업은 캐시의 이점을 거의 취하지 못할 수 있다. 이러한 불리한 조건에도 불구하고, 제안된 방법은 MACSS의 성능을 일치시킬 수 있다. 제안된 방법은, 추가된 캐싱 기능에 의한 오버헤드를 무시할 수 있을만한 수준으로 포함한다는 것을 의미한다.
Figure 5 shows the time taken to copy files of different sizes. Although the performance of the proposed method is similar to that of MACSS, it does not mean that the proposed method is not a better solution than MACSS. It should be noted that the proposed method has more overhead than MACSS because it has to deal with caching. Also, because the opportunity for cache hits is very low, copying may not take advantage of the cache. Despite these adverse conditions, the proposed method can match the performance of the MACSS. The proposed method means that the overhead due to the added caching function is included at a negligible level.

결론conclusion

본 발명은 메타데이터만 캐싱하는 오리지널 MACSS에 추가 캐싱 기능을 더하여 MACSS를 개선하는 방법을 제안한다. TPC-C벤치마크를 이용하여 MACSS를 평가한 결과는, MACSS가 이전에 여겨졌던 만큼 뛰어나지는 않았다. 이는 메타데이터만 캐싱하는 것은 SSD의 최대 성능을 활용하기에는 적절한 기법이 아님을 암시한다. 이 동기에서 시작하여 고안자는 캐싱 기능이 추가된 MACSS를 리눅스 시스템에 설계하고 구현했다. 두 개의 매핑 테이블에 대한 문제는 해결되었고, 리눅스 시스템에서 데이터 요청으로부터 메타데이터 요청을 끌어낼 방법을 연구하였다. 평가 결과는 제안된 방법이 평균 응답 시간을 MACSS의 90%이상 향상시킨 것을 보여주었고, 또한, 캐싱 기능에 의한 오버헤드는 무시할만하다.
The present invention proposes a method of improving MACSS by adding an additional caching function to an original MACSS that only caches metadata. The results of evaluating the MACSS using the TPC-C benchmark were not as good as previously thought. This implies that caching only metadata is not a suitable technique to take advantage of the maximum performance of the SSD. Beginning with this motive, the inventor designed and implemented MACSS with caching capabilities in a Linux system. The problem with the two mapping tables has been solved, and I have studied how to pull metadata requests from data requests in a Linux system. The evaluation results show that the proposed method improves the average response time by more than 90% of the MACSS, and the overhead due to the caching function is negligible.

이상에서 설명된 본 발명의 리눅스 시스템의 캐시 사용 메타데이터-인식 스토리지의 실시 예는 예시적인 것에 불과하며, 본 발명이 속한 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 잘 알 수 있을 것이다. 그러므로 본 발명은 상기의 상세한 설명에서 언급되는 형태로만 한정되는 것은 아님을 잘 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. 또한, 본 발명은 첨부된 청구범위에 의해 정의되는 본 발명의 정신과 그 범위 내에 있는 모든 변형물과 균등물 및 대체물을 포함하는 것으로 이해되어야 한다.The embodiments of the cache-based metadata-aware storage of the Linux system of the present invention described above are merely illustrative and those skilled in the art will appreciate that various modifications and equivalent implementations You can see that examples are possible. Therefore, it is to be understood that the present invention is not limited to the above-described embodiments. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims. It is also to be understood that the invention includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the appended claims.

Claims (3)

메인 프로세서와, 상기 메인 프로세서의 제어에 따라 데이터 또는 프로그램이 로딩되는 주메모리와, 다수의 캐시 블록이 정의된 솔리드 스테이트 드라이브와, 다수의 디스크 블록이 정의된 하드스크를 포함하는 하이브리드 스토리지 시스템에 있어서,
상기 솔리드 스테이트 드라이브는,
메타데이터 블록에 대한 매핑 테이블을 저장하는 제1 영역;
메타데이터 블록을 저장하는 제2 영역; 및
데이터 블록을 캐싱하기 위해 캐싱 매핑 테이블을 저장하는 제3 영역으로 구성되는 것을 특징으로 하는 하이브리드 스토리지 시스템.
1. A hybrid storage system comprising: a main processor; a main memory loaded with data or programs under the control of the main processor; a solid state drive having a plurality of cache blocks defined therein; and a hard disk having a plurality of disk blocks defined therein ,
The solid state drive includes:
A first area for storing a mapping table for a metadata block;
A second area for storing a metadata block; And
And a third area for storing a caching mapping table for caching data blocks.
제1항에 있어서, 상기 제1 영역은
상기 메타데이터 블록에 대하여 한 쌍의 번호를 저장하고, 각 쌍은 하나의 메타데이터 블록에 대한 하드 디스크 블록 넘버 및 솔리드 스테이트 드라이브 블록 넘버로 구성되는 것을 특징으로 하는 하이브리드 스토리지 시스템.
2. The method of claim 1,
Wherein a pair number is stored for the metadata block, and each pair comprises a hard disk block number and a solid state drive block number for one metadata block.
제1항에 있어서, 상기 제3 영역은,
커널 메모리에서 구성한 하드디스트 블록 넘버와 솔리드 스테이트 드라이버 블록 넘버 간의 캐싱 매핑 테이블을 저장하는 것을 특징으로 하는 하이브리드 스토리지 시스템.
The apparatus of claim 1, wherein the third region comprises:
And a caching mapping table between a hard disk block number and a solid state driver block number configured in the kernel memory.
KR1020130164176A 2013-12-26 2013-12-26 Cache-enabled Metadata-aware Storage in Linux System KR101551029B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130164176A KR101551029B1 (en) 2013-12-26 2013-12-26 Cache-enabled Metadata-aware Storage in Linux System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130164176A KR101551029B1 (en) 2013-12-26 2013-12-26 Cache-enabled Metadata-aware Storage in Linux System

Publications (2)

Publication Number Publication Date
KR20150075831A true KR20150075831A (en) 2015-07-06
KR101551029B1 KR101551029B1 (en) 2015-09-08

Family

ID=53788884

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130164176A KR101551029B1 (en) 2013-12-26 2013-12-26 Cache-enabled Metadata-aware Storage in Linux System

Country Status (1)

Country Link
KR (1) KR101551029B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117091A (en) * 2018-07-27 2019-01-01 广东浪潮大数据研究有限公司 A kind of SSD equipment mount point acquisition methods and relevant apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117091A (en) * 2018-07-27 2019-01-01 广东浪潮大数据研究有限公司 A kind of SSD equipment mount point acquisition methods and relevant apparatus

Also Published As

Publication number Publication date
KR101551029B1 (en) 2015-09-08

Similar Documents

Publication Publication Date Title
US9971513B2 (en) System and method for implementing SSD-based I/O caches
US9665495B2 (en) Methods and systems for throttling writes to a caching device in response to read misses
US7424577B2 (en) Dynamic optimization of cache memory
US9442660B2 (en) Selective space reclamation of data storage memory employing heat and relocation metrics
US9164676B2 (en) Storing multi-stream non-linear access patterns in a flash based file-system
US9146688B2 (en) Advanced groomer for storage array
US7430639B1 (en) Optimization of cascaded virtual cache memory
US20130145095A1 (en) Melthod and system for integrating the functions of a cache system with a storage tiering system
KR102443600B1 (en) hybrid memory system
US11132145B2 (en) Techniques for reducing write amplification on solid state storage devices (SSDs)
CN111919201A (en) Hybrid memory system
Klonatos et al. Azor: Using two-level block selection to improve SSD-based I/O caches
KR20170002866A (en) Adaptive Cache Management Method according to the Access Chracteristics of the User Application in a Distributed Environment
Allu et al. {Can’t} We All Get Along? Redesigning Protection Storage for Modern Workloads
US10628048B2 (en) Storage control device for controlling write access from host device to memory device
CN111868679A (en) Hybrid memory system
KR101551029B1 (en) Cache-enabled Metadata-aware Storage in Linux System
US20130282977A1 (en) Cache control device, cache control method, and program thereof
Lee et al. Zombie chasing: Efficient flash management considering dirty data in the buffer cache
US9864688B1 (en) Discarding cached data before cache flush
US20220382478A1 (en) Systems, methods, and apparatus for page migration in memory systems
US11403212B1 (en) Deduplication assisted caching policy for content based read cache (CBRC)
KR102403063B1 (en) Mobile device and management method of mobile device
Park et al. A flash-based SSD cache management scheme for high performance home cloud storage
US20210263648A1 (en) Method for managing performance of logical disk and storage array

Legal Events

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

Payment date: 20180827

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190826

Year of fee payment: 5