[go: up one dir, main page]

KR100980667B1 - Storage device, method, and computer readable recording medium for improving random write performance in the SDD - Google Patents

Storage device, method, and computer readable recording medium for improving random write performance in the SDD Download PDF

Info

Publication number
KR100980667B1
KR100980667B1 KR1020080090959A KR20080090959A KR100980667B1 KR 100980667 B1 KR100980667 B1 KR 100980667B1 KR 1020080090959 A KR1020080090959 A KR 1020080090959A KR 20080090959 A KR20080090959 A KR 20080090959A KR 100980667 B1 KR100980667 B1 KR 100980667B1
Authority
KR
South Korea
Prior art keywords
data
log
hdd
ssd
sector number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1020080090959A
Other languages
Korean (ko)
Other versions
KR20100032019A (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 KR1020080090959A priority Critical patent/KR100980667B1/en
Publication of KR20100032019A publication Critical patent/KR20100032019A/en
Application granted granted Critical
Publication of KR100980667B1 publication Critical patent/KR100980667B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • 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

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)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

호스트 시스템으로부터의 임의 쓰기 요청에 따라 해당 데이터를 1차적으로 HDD 에 로그 형식으로 기록한 후, 유휴 시간에 상기 데이터를 본래 저장 위치인 SSD로 옮겨 전달함에 따라 데이터 읽기 동작에서는 SSD의 장점을 그대로 유지하도록 함과 동시에 쓰기 동작에서는 HDD의 장점을 유지하도록 하는 저장 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체가 제공된다. 본 발명에 따르면, 호스트 시스템으로부터의 데이터 임의 쓰기 요청에 대해, 상기 데이터를 로그 형식으로 변환한 로그 데이터 유닛을 저장하는 HDD(Hard Disk Drive); 및 유휴 시간 발생 시에 상기 HDD에 로그 데이터 유닛 형태로 저장된 상기 데이터가 이관되어 저장되는 SSD(Solid State Disk)를 포함하는 저장 장치가 제공된다. According to the random write request from the host system, the data is first recorded in the log format on the HDD, and the data is transferred to the original storage location SSD during idle time, so that the data read operation retains the advantages of the SSD. At the same time, a storage device, a method, and a computer-readable recording medium are provided to maintain the advantages of an HDD in a write operation. According to the present invention, a hard disk drive (HDD) for storing a log data unit converting the data into a log format for a random data write request from a host system; And a solid state disk (SSD) in which the data stored in the form of a log data unit is transferred to and stored in the HDD when an idle time occurs.

SSD, HDD, 임의 쓰기, 로그 데이터 유닛 SSD, HDD, Random Write, Log Data Unit

Description

SSD에서의 임의 쓰기 성능을 개선하기 위한 저장 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체{STORAGE MEDIUM, METHOD, AND COMPUTER-READABLE RECORDING MEDIUM FOR IMPROVING RANDOM WRITE PERFORMANCE OF SOLID STATE DISK}Storage device, method, and computer readable recording medium for improving random write performance in SSD, and the like, and a computer-readable recording medium TECHNICAL FIELD OF IMPROVING RANDOM WRITE PERFORMANCE OF SOLID STATE DISK}

본 발명은 SSD 에서의 임의 쓰기 성능을 개선하기 위한 저장 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체에 관한 것으로, 보다 상세하게는, 호스트 시스템으로부터의 임의 쓰기 요청에 따라 해당 데이터를 1차적으로 HDD 에 로그 형식으로 기록한 후, 유휴 시간에 상기 데이터를 본래 저장 위치인 SSD로 옮겨 전달함에 따라 데이터 읽기 동작에서는 SSD의 장점을 그대로 유지하도록 함과 동시에 쓰기 동작에서는 HDD의 장점을 유지하도록 하는 저장 장치, 방법, 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.The present invention relates to a storage device, a method, and a computer-readable recording medium for improving random write performance in an SSD. More particularly, the present invention relates to a HDD primarily in response to a random write request from a host system. Storage device and method for recording data in the log format and transferring the data to the SSD which is the original storage location during idle time, thereby maintaining the advantages of the SSD in the data read operation and maintaining the advantages of the HDD in the write operation. And a computer readable recording medium.

고체 상태 디스크(SSD; Solid State Disk)는 반도체를 기반으로 한 대용량 저장 장치로서 기존의 블록 기반 디스크의 인터페이스를 통해서 플래시 메모리와 같은 저장 장치에 데이터를 입/출력할 수 있는 장치이다. 일반적으로 플래시 메모리를 기반으로 하는 SSD에서의 순차적 읽기/쓰기(Sequential Read/Write)와 임의 읽기 동작(Random Read Operation)의 성능은 하드 디스크 드라이브(HDD; Hard Disk Drive)에 비해서 좋은 성능을 보여주고 있으나 임의 쓰기 동작(Random Write Operation)의 경우에 있어서는 다른 동작의 경우에 비해서 상대적으로 낮은 수준의 성능을 보여주고 있다.Solid state disk (SSD) is a semiconductor-based mass storage device that can input / output data to and from storage devices such as flash memory through an interface of a conventional block-based disk. In general, the performance of sequential read / write and random read operations in SSDs based on flash memory shows better performance than hard disk drives (HDDs). However, the random write operation shows a relatively low level of performance compared to the other operations.

따라서, SSD에 대한 임의 쓰기 동작에서의 성능을 향상시킬 수 있는 기술에 대한 개발이 요구되고 있다. Accordingly, there is a need for development of a technology capable of improving performance in random write operations on SSDs.

이러한 노력에 따라 개발된 기술 중 하나로서, D. Narayanan et al. "Write Off-Loading: Practical Power Management for Enterprise Storage", U SENIX FAST 2008, 에 소개된 기술이 있다. 이 기술은 다수의 디스크를 사용하는 엔터프라이즈 시스템에서 소모 에너지 절감을 위해 디스크의 회전을 줄이거나 멈추는 전략을 사용할 때, 상기 회전이 줄어들거나 멈춘 디스크로의 쓰기 요구를 정상적으로 구동되고 있는 다른 디스크로 일시적으로 기록한 뒤 추후에 이를 읽어들임으로써, 디스크가 휴지 상태일 때, 즉, 그 회전이 줄어들거나 멈춰질 때에 의한 에너지 절감 효과를 얻기 위한 기술이다. 그러나, 이 기술에 의하면 디스크 작동에 소모되는 에너지를 절감하는 효과만 얻을 수 있을 뿐, SSD로의 임의 쓰기 동작에 대한 성능 향상은 꾀할 수 없었다.As one of the technologies developed in accordance with this effort, D. Narayanan et al. There is a technology introduced in "Write Off-Loading: Practical Power Management for Enterprise Storage", U SENIX FAST 2008. This technology uses a strategy of reducing or stopping the rotation of the disk to reduce energy consumption in enterprise systems with multiple disks, temporarily sending the write request to the disk that is spinning or stopped to another disk that is normally running. It is a technique for obtaining an energy saving effect when the disc is at rest, i.e. when its rotation is reduced or stopped, by recording and reading it later. However, this technique can only reduce the energy consumption of disk operation and can not improve the performance of random write operations to the SSD.

또한, 대한민국 등록특허 제 0801015 호에는 "하이브리드 하드 디스크 드라이브와 데이터 저장 방법" 이 개시되어 있다. 이 기술은 기존의 하드 디스크 드라이브에 비교적 대용량(예를 들어, 64Mbytes, 128Mbytes 또는 256Mbytes)의 비휘발성 메모리 장치인 플래시 메모리 장치를 추가로 장착하여 디스크가 저속으로 회전하는 시간을 증가시킴으로써 하이브리드 하드 디스크 드라이브의 전력 소비를 최소 화하고 성능을 향상시키기 위해 호스트로부터의 쓰기 패턴을 분석하여 디스크 및 플래시 메모리 장치 중에서 선택된 저장 장소에 데이터를 저장하는 것을 특징으로 한다. 그러나, 이 기술 또한, 전력 소비를 줄일 수는 있으나, SSD에 대한 임의 쓰기 동작 시에, HDD 에서 얻을 수 있었던 순차적 기록 방식의 성능과 동일한 정도의 성능을 얻을 수는 없는 문제가 있었다.In addition, Korean Patent No. 0801015 discloses a "hybrid hard disk drive and a data storage method." This technology allows hybrid hard disk drives to increase the time that disks spin at low speeds by adding flash memory devices that are relatively large (for example, 64 Mbytes, 128 Mbytes, or 256 Mbytes) of nonvolatile memory devices to existing hard disk drives. In order to minimize power consumption and improve performance, the write pattern from the host is analyzed and data is stored in a storage location selected from a disk and a flash memory device. However, this technique also can reduce power consumption, but there is a problem in that the random write operation on the SSD cannot achieve the same performance as that of the sequential write method obtained from the HDD.

한편, 대한민국 공개특허 제 10-2006-0099429 호에는 "복합형 기억 장치, 데이터 처리 방법 및 프로그램" 이 개시되어 있다. 이 기술은, 작은 용량의 비휘발성 메모리의 용량 제약과 HDD 또는 기타 기록 매체의 기계적 구조 사용에 의한 낮은 신뢰성을 보완하기 위해서 비휘발성 메모리와 HDD를 구분하여 효율적으로 사용하기 위한 기술이다. 구체적으로는, 두 개의 저장 장치를 동등한 기록 매체로 사용하여 정상 상태에서 HDD를 주 기억장치로 사용하고 과도 상태의 데이터 또는 빈번하게 접근되는 데이터들의 기록 공간으로만 비휘발성 메모리를 사용하는 기술이다. 그러나, 이 기술 또한, SSD로의 임의 쓰기 성능을 향상시키고자 하는 기술은 아니며, 여전히 임의 쓰기 동작 시에 순차적 쓰기와 동일한 정도의 성능을 얻을 수는 없는 문제는 존재하였다. Meanwhile, Korean Unexamined Patent Publication No. 10-2006-0099429 discloses a "composite memory device, a data processing method and a program". This technique is a technique for efficiently separating and using a nonvolatile memory in order to compensate for the capacity limitation of a small capacity nonvolatile memory and the low reliability by using the mechanical structure of an HDD or other recording medium. Specifically, a technique in which two storage devices are used as equivalent recording mediums, a HDD is used as a main storage device in a normal state, and a nonvolatile memory is used only as a recording space for transient data or frequently accessed data. However, this technique is also not intended to improve random write performance to the SSD, and there is a problem that still cannot achieve the same level of performance as sequential write during random write operations.

본 발명은 상술한 종래 기술의 문제점을 해결하기 위한 것으로, 호스트 시스템으로부터의 임의 쓰기 요청에 따라 해당 데이터를 1차적으로 HDD 에 로그 형식으로 기록한 후, 유휴 시간에 상기 데이터를 본래 저장 위치인 SSD로 옮겨 전달함에 따라 데이터 읽기 동작에서는 SSD의 장점을 그대로 유지하도록 함과 동시에 쓰기 동작에서는 순차적 쓰기 성능을 갖는 HDD의 장점을 유지하도록 하여 저장 장치의 전체적인 성능 향상을 꾀하는 것을 그 목적으로 한다. The present invention is to solve the above-described problems of the prior art, and writes the data in a log format to the HDD primarily in response to a random write request from the host system, and then stores the data in the SSD as an original storage location at idle time. As the data is transferred, the objective of the present invention is to maintain the advantages of the SSD in the data read operation while maintaining the advantages of the HDD having the sequential write performance in the write operation, thereby improving the overall performance of the storage device.

상술한 목적을 달성하기 위한 본 발명의 일 실시예를 따르면, 호스트 시스템으로부터의 데이터 임의 쓰기 요청에 대해, 상기 데이터를 로그 형식으로 변환한 로그 데이터 유닛을 저장하는 HDD(Hard Disk Drive); 및 유휴 시간 발생 시에 상기 HDD에 로그 데이터 유닛 형태로 저장된 상기 데이터가 이관되어 저장되는 SSD(Solid State Disk)를 포함하는 저장 장치가 제공된다. According to an embodiment of the present invention for achieving the above object, a hard disk drive (HDD) for storing a log data unit converting the data into a log format for a random data write request from a host system; And a solid state disk (SSD) in which the data stored in the form of a log data unit is transferred to and stored in the HDD when an idle time occurs.

상기 로그 데이터 유닛은, 상기 데이터의 버전(version) 정보, 상기 데이터가 상기 SSD 로 이관될 때 저장되는 위치를 나타내는 논리 섹터 번호(Logical Sector Number) 정보, 상기 SSD의 논리 섹터 번호에 실제로 저장될 상기 데이터, 및 상기 데이터의 끝을 알리는 커미트(commit)를 포함할 수 있다. The log data unit may include version information of the data, logical sector number information indicating a location where the data is transferred to the SSD, and the logical sector number of the SSD. Data, and a commit indicating the end of the data.

상기 저장 장치는, 상기 HDD와 SSD를 상기 호스트 시스템과 연결하는 디스크 인터페이스를 더 포함할 수 있다 The storage device may further include a disk interface connecting the HDD and the SSD to the host system.

상기 HDD는 상기 호스트 시스템으로부터의 임의 쓰기 요청이 발생하는 순서대로 해당 데이터에 대한 로그 데이터 유닛에 물리 섹터 번호(Physical Sector Number)를 할당하여 순차적으로 저장하는 것이 바람직하다. The HDD preferably allocates a physical sector number to a log data unit for the corresponding data in order of occurrence of a random write request from the host system and sequentially stores the physical sector number.

상기 저장 장치는, 상기 데이터가 저장되는 SSD 내의 위치를 나타내는 논리 섹터 번호 정보, 상기 로그 데이터 유닛의 물리 섹터 번호 정보, 상기 물리 섹터 번호를 갖는 로그 데이터 유닛의 시작점을 나타내는 오프셋 정보, 및 상기 로그 데이터 유닛의 크기를 나타내는 로그 사이즈 정보를 포함하는 로그 서치 DS를 더 포함할 수 있다. The storage device may include logical sector number information indicating a location in an SSD in which the data is stored, physical sector number information of the log data unit, offset information indicating a starting point of a log data unit having the physical sector number, and the log data. It may further include a log search DS including log size information indicating the size of the unit.

상기 로그 서치 DS는 해시 테이블(Hash Table) 또는 레드 블랙 트리(Red-Black Tree)일 수 있다. The log search DS may be a hash table or a red-black tree.

상기 HDD는 상기 데이터가 상기 SSD로 이관된 후 메모리 수집(Garbage Collection) 될 수 있다. The HDD may be a memory collection after the data is transferred to the SSD.

한편, 상술한 목적을 달성하기 위한 본 발명의 다른 실시예에 따르면, 데이터에 대한 임의 쓰기 성능을 향상시키기 위한 방법으로서, (a) 호스트 시스템으로부터의 데이터 임의 쓰기 요청에 대해, 상기 데이터에 대한 로그 데이터 유닛을 HDD에 저장하는 단계; 및 (b) 유휴 시간 발생 시에 상기 HDD에 로그 데이터 유닛 형태로 저장된 상기 데이터를 SSD에 이관하여 저장하는 단계를 포함하는, 방법이 제공된다. On the other hand, according to another embodiment of the present invention for achieving the above object, as a method for improving the random write performance for the data, (a) for the random write data request from the host system, the log for the data Storing the data unit on the HDD; And (b) transferring the data stored in the form of a log data unit in the HDD to an SSD when an idle time occurs.

상기 로그 데이터 유닛은, 상기 데이터의 버전(version) 정보, 상기 데이터가 상기 SSD 로 이관될 때 저장되는 위치를 나타내는 논리 섹터 번호(Logical Sector Number) 정보, 상기 SSD의 논리 섹터 번호에 실제로 저장될 상기 데이터, 및 상기 데이터의 끝을 알리는 커미트(commit)를 포함할 수 있다. The log data unit may include version information of the data, logical sector number information indicating a location where the data is transferred to the SSD, and the logical sector number of the SSD. Data, and a commit indicating the end of the data.

상기 SSD에 이관하여 저장되는 데이터는 가장 최근 버전의 데이터일 수 있다. Data stored by transferring to the SSD may be the most recent version of data.

상기 (a) 단계는, 상기 데이터를 상기 로그 데이터 유닛으로 변환하는 단계; 상기 로그 데이터 유닛에 물리 섹터 번호를 할당하는 단계; 상기 물리 섹터 번호에 대응되는 상기 HDD의 위치에 상기 로그 데이터 유닛을 저장하는 단계; 및 상기 물리 섹터 번호 정보 및 메타데이터를 포함하는 엔트리(entry)를 로그 서치 DS에 추가하는 단계를 포함할 수 있다.Step (a) may include converting the data into the log data unit; Assigning a physical sector number to the log data unit; Storing the log data unit at a location of the HDD corresponding to the physical sector number; And adding an entry including the physical sector number information and metadata to a log search DS.

상기 메타데이터는 상기 데이터가 저장되는 SDD 내의 위치를 나타내는 논리 섹터 번호 정보, 상기 로그 데이터 유닛의 시작점을 나타내는 오프셋 정보, 및 상기 로그 데이터 유닛의 크기를 나타내는 로그 사이즈 정보를 포함할 수 있다. The metadata may include logical sector number information indicating a position in the SDD where the data is stored, offset information indicating a starting point of the log data unit, and log size information indicating a size of the log data unit.

상기 방법은, (c) 상기 HDD에 대한 메모리 수집을 수행하여, 상기 데이터 이관에 의해 상기 HDD에 생긴 공간을 병합하는 단계를 더 포함할 수 있다. The method may further include (c) performing memory collection on the HDD to merge space created in the HDD by the data migration.

이 밖에, 본 발명은, SSD의 임의 쓰기 성능을 향상시키기 위한 다른 저장 장치, 방법, 또는 상기 방법들을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체를 제공한다.In addition, the present invention provides another storage device, method for improving the random write performance of an SSD, or a computer readable recording medium for recording a computer program for executing the above methods.

본 발명에 따르면, 호스트 시스템으로부터의 임의 쓰기 요청에 따라 해당 데이터를 1차적으로 HDD 에 로그 형식으로 기록한 후, 유휴 시간에 상기 데이터를 본 래 저장 위치인 SSD로 옮겨 전달함에 따라 데이터 읽기 동작에서는 SSD의 장점을 그대로 유지할 수 있음과 동시에 쓰기 동작에서는 순차적 쓰기 성능을 갖는 HDD의 장점이 유지되어 저장 장치의 전체적인 성능 향상을 꾀할 수 있다.According to the present invention, in response to a random write request from a host system, the corresponding data is first recorded in a log format on the HDD, and then the data is transferred to the SSD, which is a storage location of the original storage time, during idle time. At the same time, the advantages of the HDD having sequential write performance are maintained in the write operation, thereby improving the overall performance of the storage device.

후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.DETAILED DESCRIPTION The following detailed description of the invention refers to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description, therefore, is not to be taken in a limiting sense, and the scope of the present invention, if properly described, is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled. Like reference numerals in the drawings refer to the same or similar functions throughout the several aspects.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement the present invention.

전체 시스템의 구성Configuration of the entire system

도 1은 본 발명의 일 실시예에 따른 호스트 시스템에 포함되는 저장 시스템의 전체적인 구성을 나타내는 도면이다. 1 is a view showing the overall configuration of a storage system included in a host system according to an embodiment of the present invention.

도 1에 도시되는 바와 같이 본 발명의 저장 시스템은 하드 디스크 드라이브(HDD; Hard Disk Drive)(이하, 'HDD'라 함)(110), 일 이상의 고체 상태 디스크(SDD; Solid State Disk)(이하, 'SDD' 라 함)(120), 및 상기 HDD(110)와 SDD(120)를 호스트 시스템(100)과 연결시키는 디스크 인터페이스(130)를 포함하여 구성될 수 있다.As shown in FIG. 1, the storage system of the present invention includes a hard disk drive (HDD) (hereinafter, referred to as 'HDD') 110, one or more solid state disks (SDDs). And a disk interface 130 connecting the HDD 110 and the SDD 120 to the host system 100.

본 발명의 일 실시예에 따른 HDD(110)는 호스트 시스템(100)으로부터 저장 장치에 저장하려는 데이터들 및 메타 데이터들이 로그(log)형식으로 저장되는 공간이다. 호스트 시스템(100)에서 요청하는 모든 작성 데이터는 우선적으로 HDD(110)에 로그 방식으로 기록되고, 이후 유휴 시간이 발생할 때 이 데이터는 SSD(120)에 옮겨 기록된다. 이에 따라, SSD(120)는 주 저장 장치로서 기능하게 되며, HDD(110)는 로그 형식으로 기록되는 데이터만을 저장하는 보조 저장 장치로서 기능하게 된다. 한편, 도 1에서는 HDD(110)가 하나만 구비되는 것으로 도시되었으나, 당업자의 필요에 따라 HDD(110)는 일 이상 구비될 수도 있음은 물론이다. The HDD 110 according to an embodiment of the present invention is a space in which data and metadata to be stored in the storage device from the host system 100 are stored in a log format. All created data requested by the host system 100 are preferentially recorded in the HDD 110 in a log manner, and when the idle time occurs, the data is transferred to the SSD 120 and recorded. Accordingly, the SSD 120 functions as a primary storage device, and the HDD 110 functions as an auxiliary storage device that stores only data recorded in a log format. Meanwhile, although only one HDD 110 is illustrated in FIG. 1, the HDD 110 may be provided more than one according to the needs of those skilled in the art.

다음으로, SSD(120)는 고체 상태 메모리(Solid State Memory)와 같은 반도체를 사용하여 데이터를 저장하는 데이터 저장 장치로서, 임의접근을 하여 탐색시간 없이 고속으로 데이터를 입출력할 수 있는 저장 장치이다. 전술한 바와 같이, 본 발명의 저장 시스템에서는, 호스트 시스템(100)으로부터 기록을 요청하는 모든 데이터가 1차적으로 HDD(110)에 로그 형태로 기록되어 있다가 추후 유휴 시간 때, SSD(120)로 해당 데이터가 옮겨지게 된다.Next, the SSD 120 is a data storage device that stores data using a semiconductor such as a solid state memory, and is a storage device that can input and output data at high speed without a search time by random access. As described above, in the storage system of the present invention, all data requesting a recording from the host system 100 are first recorded in a log form on the HDD 110, and then the SSD 120 is stored at a later idle time. The data will be moved.

디스크 인터페이스(130)는 HDD(110)와 SSD(120)를 호스트 시스템(100)과 연결시켜주는 기능을 수행한다. 즉, 호스트 시스템(100)으로부터의 데이터 기록 요청을 HDD(110)에 전달하여 해당 데이터가 로그 형식으로 HDD(110)에 기록될 수 있도록 하고, 추후 HDD(110)에 로그 형식으로 기록된 데이터를 읽어들여 이를 SSD(120)에 옮겨 기록한다. 이러한 디스크 인터페이스(130)는 SATA(Serial ATA) 또는 PATA(Parallel ATA) 등 통상의 컴퓨터에서 사용되는 인터페이스 방식을 이용할 수 있다. The disk interface 130 connects the HDD 110 and the SSD 120 with the host system 100. That is, the data recording request from the host system 100 is transmitted to the HDD 110 so that the corresponding data can be recorded on the HDD 110 in a log format, and the data recorded in the log format on the HDD 110 is later recorded. Read it and transfer it to SSD 120 to record. The disk interface 130 may use an interface method used in a typical computer such as Serial ATA (SATA) or Parallel ATA (PATA).

HDDHDD 에 기록되는 로그 데이터 유닛Data units written to

이하에서는, 초기 호스트 컴퓨터에서의 데이터 기록 요청에 따라 HDD(110)에 저장되는 로그 형식의 데이터 유닛에 대해 설명하기로 한다. Hereinafter, a log data unit stored in the HDD 110 in response to a data recording request from the initial host computer will be described.

도 2는 본 발명의 일 실시예에 따른 HDD(110)에 기록되는 로그 데이터 유닛의 구성을 나타내는 도면이다. 2 is a diagram illustrating a configuration of a log data unit recorded in the HDD 110 according to an embodiment of the present invention.

도 2에 도시되는 바와 같이, HDD(110)에 기록되는 로그 데이터 유닛(200)은 버전(version) 정보(210), 논리 섹터 번호(Logical Sector Number) 정보(220), 실제 데이터(230), 및 커미트(commit)(240)를 포함할 수 있다. As shown in FIG. 2, the log data unit 200 recorded on the HDD 110 may include version information 210, logical sector number information 220, actual data 230, and the like. And a commit 240.

버전 정보(210)는 HDD(110)에 기록되는 데이터, 즉, 실제 데이터(230)의 버전 정보를 나타낸다. 데이터를 기록할 때에는 동일한 데이터를 여러 번 저장하여 이를 변경하는 경우가 있는데, 이 때, 최종적으로 변경된 데이터가 어떤 것인지를 파악하기 위해서 각 데이터의 버전 정보(210)가 필요한 것이다.The version information 210 indicates data recorded on the HDD 110, that is, version information of the actual data 230. When data is recorded, the same data may be stored several times and changed. In this case, version information 210 of each data is required to determine what the changed data is.

논리 섹터 번호 정보(220)는 실제 데이터(230)가 추후 SSD(120)로 옮겨 기록되는 경우에 그 기록될 데이터의 위치를 가리키는 번호에 대한 정보이다. 논리 섹터 번호 정보(220)는 추후에 SSD(120) 내부의 플래시 변환계층(FTL; Flash Translation Layer)에 의해서 물리적 주소로 변환되어 사용된다. 논리 섹터 번호 정보(220)에 의해 HDD(110)에 로그 형식으로 기록된 데이터가 주 저장 장치로서 기능하는 SSD(120)에 옮겨질 때 올바른 물리적 위치에 기록되어 저장될 수 있다.The logical sector number information 220 is information about a number indicating a position of data to be recorded when the actual data 230 is later transferred to the SSD 120 and recorded. The logical sector number information 220 is later converted into a physical address by a flash translation layer (FTL) in the SSD 120 and used. When the data recorded in the log format on the HDD 110 by the logical sector number information 220 is transferred to the SSD 120 serving as a main storage device, the data may be recorded and stored in the correct physical location.

실제 데이터(230)는 HDD(110)에 로그 형식으로 저장되어 있다가 추후 논리 섹터 번호 정보(220)가 가리키는 SSD(120)의 위치에 실제로 기록되어 저장되어야 하는 데이터이다. The actual data 230 is data that is to be stored in the log format on the HDD 110 and then actually recorded and stored in the location of the SSD 120 indicated by the logical sector number information 220 later.

커미트(240)는 해당 버전의 데이터 기록의 끝을 알림과 동시에 기록된 로그 데이터 유닛(200)이 완전하게 작성된 것임을 알리는 기능을 수행한다.The commit 240 notifies the end of the data recording of the corresponding version and at the same time performs a function of notifying that the recorded log data unit 200 is completely written.

HDDHDD 에 로그 데이터 유닛이 기록되는 순서In which log data units are written to

이하에서는, 호스트 시스템(100)으로부터의 데이터 기록 요청에 따라 HDD(110)에 로그 데이터 유닛이 기록되는 방식 및 그 과정에 대해 설명하기로 한다. Hereinafter, a method and a process of recording a log data unit on the HDD 110 in response to a data write request from the host system 100 will be described.

먼저, 도 3을 참조하여 HDD(110)에 로그 데이터 유닛이 기록되는 순서에 대해 설명하면, 도 3에 도시되는 바와 같이, HDD(110)에 기록되는 로그 데이터 유닛(310)들은 기록 요청이 발생한 순서대로 HDD(110)의 요구 큐(RQ; Request Queue)에 삽입된다. 이 때, 각 로그 데이터 유닛(310)에는 HDD(110)에 실제로 기록되는 위치에 관한 정보를 담고 있는 물리 섹터 번호(Physical Sector Number)가 배정되 며, 이에 따라 HDD(110)에 순차적으로 기록된다.First, the order in which log data units are recorded in the HDD 110 will be described with reference to FIG. 3. As shown in FIG. 3, the log data units 310 recorded in the HDD 110 may have a recording request. In order, they are inserted into a request queue (RQ) of the HDD 110. At this time, each log data unit 310 is assigned a physical sector number (Physical Sector Number) that contains information about the position actually recorded on the HDD (110), and is sequentially recorded on the HDD (110) .

이하, 도 4를 참조하여, 호스트 시스템(100)으로부터의 데이터 기록 요청에 따라 HDD(110)에 로그 데이터 유닛이 기록되는 과정에 대해 설명하기로 한다. Hereinafter, referring to FIG. 4, a process of writing a log data unit to the HDD 110 in response to a data write request from the host system 100 will be described.

먼저, 호스트 시스템(100)에서 SSD(120)로의 데이터 기록 요청과 함께 해당 데이터를 전달받게 되면(S410), 이 데이터를 로그 형식으로 변환하고 물리 섹터 번호를 할당한다(S420). 임의의 데이터에 대한 로그 형식 변환의 결과는, 전술한 바와 같은 로그 데이터 유닛(200)의 구성과 같다. First, when the host system 100 receives the corresponding data together with the data write request from the SSD 120 (S410), the data is converted into a log format and a physical sector number is allocated (S420). The result of log format conversion for arbitrary data is the same as that of the log data unit 200 as described above.

데이터를 로그 형식으로 변환하고 그 결과물인 로그 데이터 유닛이 실제로 기록될 HDD(110)에서의 위치에 관한 정보인 물리 섹터 번호를 할당한 후에는 이를 입출력 스케줄러(I/O scheduler)에 전달한다(S430).After converting the data into a log format and allocating a physical sector number, which is information about a position on the HDD 110, in which the resulting log data unit is actually recorded, the data is transferred to an I / O scheduler (S430). ).

그 후, 추후에 로그 형식으로 HDD(110)에 기록된 데이터로의 접근을 위해, 로그 데이터 유닛의 위치에 관한 정보인 물리 섹터 번호 및 해당 데이터와 관련된 메타 정보를 기록한 엔트리(entry)를 로그 서치 DS(Data Set)에 추가한다(S440). 로그 서치 DS는 논리 섹터 번호에 대응되는 데이터가 로그 형태로 HDD(110)에 존재하는지 또는 SSD(120)의 원래 위치에 전재하는지의 여부에 관한 정보를 담고 있으며, 데이터가 로그 형식인 경우에는 HDD(110)에 기록된 최종 버전의 데이터를 쉽게 찾을 수 있도록 하는 위치 정보 등을 담고 있는 데이터 구조이며, 로그 서치 DS에 저장되는 엔트리의 데이터 구조는 도 5와 같다. Thereafter, for access to the data recorded in the HDD 110 in log format, the log search is performed on an entry in which the physical sector number, which is information about the position of the log data unit, and the meta information related to the data are recorded. Add to DS (Data Set) (S440). The log search DS contains information on whether data corresponding to a logical sector number exists in the HDD 110 in the form of a log or whether the data is transferred to the original location of the SSD 120. 5 is a data structure containing location information for easily finding the last version of data recorded at 110, and the data structure of an entry stored in the log search DS is shown in FIG.

도 5를 참조하면, 엔트리(500)의 데이터 구조는 논리 섹터 번호 정보(510), 물리 섹터 번호 정보(520), 오프셋 정보(530), 및 로그 사이즈 정보(540)를 포함한 다. Referring to FIG. 5, the data structure of entry 500 includes logical sector number information 510, physical sector number information 520, offset information 530, and log size information 540.

논리 섹터 번호 정보(510)는 HDD(110) 내에서 데이터 유닛의 논리적 위치 정보를 담고 있다. 논리 섹터 번호 정보(510)는 로그 데이터 유닛(200)의 논리 섹터 번호 정보(220)와 동일한 형태의 정보이다. 한편, 엔트리에서의 논리 섹터 번호 정보(510)는 각 엔트리를 구별하기 위한 키(key), 즉, 식별정보로서의 기능을 한다.The logical sector number information 510 contains logical position information of a data unit in the HDD 110. The logical sector number information 510 is the same type of information as the logical sector number information 220 of the log data unit 200. On the other hand, the logical sector number information 510 in the entry functions as a key for distinguishing each entry, that is, as identification information.

물리 섹터 번호 정보(520)는 로그 데이터 유닛이 실제로 위치하는 HDD(110) 내의 위치 정보를 담고 있다. 이를 통해, HDD(110)에 기록된 로그 데이터 유닛에 쉽게 접근할 수 있게 된다. The physical sector number information 520 contains location information in the HDD 110 where the log data unit is actually located. Through this, the log data unit recorded on the HDD 110 can be easily accessed.

오프셋 정보(530)는 HDD(110) 내에서 물리 섹터 번호 정보(520)에 대응하는 위치에 존재하는 로그 데이터 유닛이 어느 위치부터 시작되는지에 관한 정보를 담고 있다. The offset information 530 contains information regarding from which position the log data unit existing at the position corresponding to the physical sector number information 520 in the HDD 110 starts.

로그 사이즈 정보(540)는 HDD(110)에 실제로 기록되는 로그 데이터 유닛의 총 크기에 관한 정보를 담고 있다. 로그 데이터 유닛은 실제 데이터뿐만 아니라 해당 데이터와 연관되는 메타데이터를 포함하고 있기 때문에, 논리 섹터 번호 정보(510)에서 가리키는 실제 데이터의 크기와 이를 읽어들이기 위한 로그 데이터 유닛의 크기는 다를 수밖에 없다. 이에 따라 하나의 논리 섹터 번호 정보(510)에 대응되는 물리 섹터 번호 정보(520)는 연속되는 일 이상의 번호일 수 있다. 따라서, 해당 로그 데이터 유닛이 차지하는 크기에 관한 정보를 담고 있는 로그 사이즈 정보(540)가 필요한 것이며, 이에 의해 논리 섹터 번호 정보(510)에 대응되는 일 이 상의 물리 섹터 번호 정보(520)가 있다 하더라도, 해당 로그 데이터 유닛을 식별해 낼 수 있게 된다.The log size information 540 contains information on the total size of the log data unit actually recorded on the HDD 110. Since the log data unit includes not only the actual data but also metadata associated with the corresponding data, the size of the actual data indicated by the logical sector number information 510 and the size of the log data unit for reading the data are inevitably different. Accordingly, the physical sector number information 520 corresponding to one logical sector number information 510 may be one or more consecutive numbers. Therefore, log size information 540 containing information on the size occupied by the corresponding log data unit is required, so that even if there is one or more physical sector number information 520 corresponding to the logical sector number information 510. The log data unit can then be identified.

로그 데이터 유닛의 읽기 과정Reading process of log data unit

이하에서는, 도 6을 참조하여, 로그 데이터 유닛을 읽어들이는 과정에 대해 설명하기로 한다. Hereinafter, a process of reading a log data unit will be described with reference to FIG. 6.

먼저, 호스트 시스템(100)의 부팅시에 HDD(110)에 기록되어 있는 로그 데이터 유닛을 모두 스캔한 후, 로그 서치 DS를 생성하여 이를 가지고 있는다. 전술한 바와 같이, 로그 서치 DS는 데이터가 로그 데이터 유닛의 형태로 HDD(110)에 존재하는 경우 그 존재하는 위치에 관한 정보인 물리 섹터 번호 정보 등을 갖고 있는 데이터 구조이다.First, all the log data units recorded on the HDD 110 are scanned when the host system 100 boots up, and then a log search DS is generated and possessed. As described above, the log search DS is a data structure having physical sector number information or the like which is information on the location where data exists in the HDD 110 in the form of a log data unit.

그 후, 호스트 시스템(100)으로부터 읽기 요청을 받고, 읽기 대상이 되는 데이터의 논리 섹터 번호를 얻게 되면(S610), 상기 로그 서치 DS에서 상기 획득한 논리 섹터 번호에 해당하는 최신 버전의 데이터가 어느 위치에 있는지를 확인한다(S620). Subsequently, when a read request is received from the host system 100 and a logical sector number of the data to be read is obtained (S610), the latest version of data corresponding to the obtained logical sector number is obtained from the log search DS. Check whether the position (S620).

해당 데이터가 SSD(120)에 존재하는지 여부를 판단하고(S630), 만약, 로그 데이터 유닛의 형태로 HDD(110)에 존재하는 것으로 판단되면, 상기 로그 서치 DS에 포함되는 물리 섹터 번호 정보에 대응하는 위치에서 해당 데이터를 읽어들인다(S640). 한편, 해당 데이터가 SSD(120)에 존재하는 것으로 판단되면, 상기 논리 섹터 번호에 해당하는 데이터를 SSD(120)로부터 읽어들인다(S650).It is determined whether the corresponding data exists in the SSD 120 (S630). If it is determined that the data exists in the HDD 110 in the form of a log data unit, it corresponds to the physical sector number information included in the log search DS. Read the data from the position (S640). On the other hand, if it is determined that the data exists in the SSD 120, the data corresponding to the logical sector number is read from the SSD 120 (S650).

한편, 로그 데이터 유닛으로의 접근을 위한 정보를 담고 있는 로그 서치 DS 는 빠른 검색을 가능하게 하기 위해서 해시 테이블(Hash Table) 또는 레드 블랙 트리(Red-Black Tree) 등의 데이터 구조로서 구성될 수 있다. 그러나, 이에 한정되는 것은 아니며, 로그 서치 DS로서는 다른 효율적인 데이터 구조가 이용될 수도 있다. On the other hand, the log search DS that contains information for access to the log data unit may be configured as a data structure such as a hash table or a red-black tree in order to enable a quick search. . However, the present invention is not limited thereto, and other efficient data structures may be used as the log search DS.

HDDHDD 로부터 from SSDSSD 로의 데이터 전달Data to the server

이하에서는, 도 7을 참조하여, HDD(110)에 로그 데이터 유닛 형식으로 기록되었던 데이터가 SSD(120)로 전달되는 과정에 대해 설명하기로 한다. Hereinafter, referring to FIG. 7, a process in which data recorded in the log data unit format on the HDD 110 is transferred to the SSD 120 will be described.

먼저, HDD(110)에 로그 데이터 유닛 형식으로 기록된 데이터를 SSD(120)로 전달하라는 명령을 받아들이면(S710), 로그 서치 DS에서 관리하는 모든 로그 데이터 유닛에 대해 각각의 버전을 비교해서 최종 데이터만을 읽어낸 후(S720), SSD(120)의 원래의 위치에 기록한다(S730). 이 때, 논리 섹터 번호 정보가 참조될 수 있다.First, when a command to transfer the data recorded in the log data unit format to the SSD 120 to the HDD 110 is received (S710), the respective versions are compared for each log data unit managed by the log search DS, and the final version is compared. After reading only the data (S720), it writes to the original position of the SSD 120 (S730). At this time, logical sector number information may be referred to.

그 후, HDD(110)에 기록되어 있는 이전 버전의 로그 데이터 유닛을 삭제하고, SSD(120)에 기록된 데이터에 대한 정보도 로그 서치 DS에서 삭제한다(S740).Thereafter, the log data unit of the previous version recorded on the HDD 110 is deleted, and information on the data recorded on the SSD 120 is also deleted from the log search DS (S740).

다음으로, 더 이상 전달할 로그 데이터 유닛이 있는지 여부를 판단한 후(S750), 남아있다면 단계 S720 부터 S740 까지를 반복하고, 더 이상 SSD(120)로 전달할 로그 데이터 유닛이 남아있지 않다면, HDD(110)에서 로그 데이터 유닛 전달로 인해 생긴 공간에 대한 메모리 수집(Garbage Collection)을 수행하여 빈 공간에 대한 병합을 수행한다(S760). 이러한 메모리 수집에 의해 데이터 전달에 따라 생긴 빈 공간이 병합되어 연속된 공간이 확보되게 되며, 이에 따라 HDD(110)의 공간 효율성이 확보될 수 있다. Next, after determining whether there are any more log data units to deliver (S750), if remaining, repeat steps S720 to S740, and if there are no more log data units to deliver to the SSD 120, the HDD 110 In step S760, memory collection is performed on the space generated by the log data unit transfer, and merge is performed on the empty space. The empty spaces generated by data transfer by the memory collection are merged to secure a continuous space, thereby securing the space efficiency of the HDD 110.

본 발명에서는 호스트 시스템(100)으로부터의 임의 쓰기 요청에 대해, 해당 데이터를 로그 형식으로 변환하여 1차적으로 HDD(110)에 순차적으로 기록하고, 추후 유휴 시간에 SSD(120)의 원래의 위치로 옮겨질 수 있도록 함으로써, 임의 쓰기의 성능을 향상시킬 수 있다. In the present invention, for a random write request from the host system 100, the corresponding data is converted into a log format and sequentially written to the HDD 110 first, and then returned to the original position of the SSD 120 at idle time later. By allowing them to be moved, the performance of random writes can be improved.

또한, 읽기 동작에서는 SSD(120)에 기록된 데이터를 읽어들이므로 SSD(120)의 장점을 유지할 수 있음과 동시에, 쓰기 동작에서는 1차적으로 HDD(110)에 기록하기 때문에 HDD(110)의 장점을 살릴 수 있어 전체 저장 장치의 성능 향상을 꾀할 수 있다. In addition, the read operation reads the data recorded in the SSD 120, so that the advantages of the SSD 120 can be maintained, and at the same time, the write operation is primarily performed on the HDD 110. Can improve the performance of the entire storage device.

한편, 임의 쓰기 요청에 대해 로그 형식의 데이터를 1차적으로 HDD(110)에 기록함으로써, SSD(120)에서의 로그 기록, 머징(merging), 및 삭제 동작에 의한 기록 속도 저하의 감소를 꾀할 수 있다.On the other hand, by writing data in log form primarily to the HDD 110 for random write requests, it is possible to reduce the decrease in recording speed due to log writing, merging, and erasing operations in the SSD 120. have.

이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.Although the present invention has been described by specific embodiments such as specific components and the like, but the embodiments and the drawings are provided to assist in a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations can be made from these descriptions.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.

도 1은 본 발명의 일 실시예에 따른 호스트 시스템에 포함되는 저장 시스템의 전체적인 구성을 나타내는 도면이다. 1 is a view showing the overall configuration of a storage system included in a host system according to an embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 HDD에 기록되는 로그 데이터 유닛의 구성을 나타내는 도면이다. 2 is a diagram illustrating a configuration of a log data unit recorded in an HDD according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따라 HDD에 로그 데이터 유닛이 기록되는 순서를 설명하는 도면이다. 3 is a view for explaining the order in which log data units are recorded in the HDD according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따라 호스트 시스템으로부터의 데이터 기록 요청에 따라 HDD에 로그 데이터 유닛이 기록되는 과정을 설명하는 흐름도이다. 4 is a flowchart illustrating a process of writing a log data unit to an HDD in response to a data write request from a host system according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 로그 서치 DS에 저장되는 엔트리의 데이터 구조를 나타내는 도면이다. 5 is a diagram illustrating a data structure of entries stored in a log search DS according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따라 로그 데이터 유닛을 읽어들이는 과정을 설명하는 흐름도이다. 6 is a flowchart illustrating a process of reading a log data unit according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따라 HDD에 로그 데이터 유닛 형식으로 기록되었던 데이터가 SSD로 전달되는 과정을 설명하는 흐름도이다. FIG. 7 is a flowchart illustrating a process of transferring data recorded in a log data unit format to an SSD according to an embodiment of the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100: 호스트 시스템100: host system

110: HDD110: HDD

120: SSD120: SSD

130: 디스크 인터페이스130: disk interface

Claims (14)

호스트 시스템으로부터의 데이터 임의 쓰기 요청에 대해, 상기 데이터를 로그 형식으로 변환한 로그 데이터 유닛을 저장하는 HDD(Hard Disk Drive); 및A hard disk drive (HDD) for storing a log data unit converting the data into a log format for a random write request from a host system; And 유휴 시간 발생 시에 상기 HDD에 로그 데이터 유닛 형태로 저장된 상기 데이터가 이관되어 저장되는 SSD(Solid State Disk)를 포함하고, A solid state disk (SSD) in which the data stored in the form of log data units are transferred to and stored in the HDD when an idle time occurs; 상기 HDD는 상기 호스트 시스템으로부터의 임의 쓰기 요청이 발생하는 순서대로 해당 데이터에 대한 로그 데이터 유닛에 물리 섹터 번호(Physical Sector Number)를 할당하여 순차적으로 저장하는, 저장 장치. And the HDD sequentially allocates physical sector numbers to log data units for corresponding data in the order in which random write requests from the host system occur. 제1항에 있어서, The method of claim 1, 상기 로그 데이터 유닛은, The log data unit, 상기 데이터의 버전(version) 정보, 상기 데이터가 상기 SSD 로 이관될 때 저장되는 위치를 나타내는 논리 섹터 번호(Logical Sector Number) 정보, 상기 SSD의 논리 섹터 번호에 실제로 저장될 상기 데이터, 및 상기 데이터의 끝을 알리는 커미트(commit)를 포함하는, 저장 장치. Version information of the data, logical sector number information indicating a location to be stored when the data is transferred to the SSD, the data to be actually stored in the logical sector number of the SSD, and the data A storage device that includes a commit informing the end. 제1항에 있어서, The method of claim 1, 상기 HDD와 SSD를 상기 호스트 시스템과 연결하는 디스크 인터페이스를 더 포함하는, 저장 장치. And a disk interface connecting the HDD and the SSD to the host system. 삭제delete 제1항에 있어서, The method of claim 1, 상기 데이터가 저장되는 SSD 내의 위치를 나타내는 논리 섹터 번호 정보, 상기 로그 데이터 유닛의 물리 섹터 번호 정보, 상기 물리 섹터 번호를 갖는 로그 데이터 유닛의 시작점을 나타내는 오프셋 정보, 및 상기 로그 데이터 유닛의 크기를 나타내는 로그 사이즈 정보를 포함하는 로그 서치 DS를 더 포함하는, 저장 장치. Logical sector number information indicating a position in the SSD where the data is stored, physical sector number information of the log data unit, offset information indicating a starting point of a log data unit having the physical sector number, and a size of the log data unit And a log search DS containing log size information. 제5항에 있어서, The method of claim 5, 상기 로그 서치 DS는 해시 테이블(Hash Table) 또는 레드 블랙 트리(Red-Black Tree)인, 저장 장치.The log search DS is a hash table or a red-black tree. 제1항에 있어서, The method of claim 1, 상기 HDD는 상기 데이터가 상기 SSD로 이관된 후 메모리 수집(Garbage Collection) 되는, 저장 장치. The HDD is a memory collection (Garbage Collection) after the data is transferred to the SSD. 데이터에 대한 임의 쓰기 성능을 향상시키기 위한 방법으로서, As a method for improving random write performance on data, (a) 호스트 시스템으로부터의 데이터 임의 쓰기 요청에 대해, 상기 데이터에 대한 로그 데이터 유닛을 HDD에 저장하는 단계; 및(a) for a random write request from the host system, storing a log data unit for the data on the HDD; And (b) 유휴 시간 발생 시에 상기 HDD에 로그 데이터 유닛 형태로 저장된 상기 데이터를 SSD에 이관하여 저장하는 단계를 포함하고, (b) transferring the data stored in the form of a log data unit in the HDD to an SSD when an idle time occurs; 상기 HDD는 상기 호스트 시스템으로부터의 임의 쓰기 요청이 발생하는 순서대로 해당 데이터에 대한 로그 데이터 유닛에 물리 섹터 번호(Physical Sector Number)를 할당하여 순차적으로 저장하는, 방법. And storing the HDD sequentially by assigning physical sector numbers to log data units of corresponding data in the order in which random write requests from the host system occur. 제8항에 있어서, The method of claim 8, 상기 로그 데이터 유닛은, The log data unit, 상기 데이터의 버전(version) 정보, 상기 데이터가 상기 SSD 로 이관될 때 저장되는 위치를 나타내는 논리 섹터 번호(Logical Sector Number) 정보, 상기 SSD의 논리 섹터 번호에 실제로 저장될 상기 데이터, 및 상기 데이터의 끝을 알리는 커미트(commit)를 포함하는 방법.Version information of the data, logical sector number information indicating a location to be stored when the data is transferred to the SSD, the data to be actually stored in the logical sector number of the SSD, and the data How to include a commit to the end. 제9항에 있어서, 10. The method of claim 9, 상기 SSD에 이관하여 저장되는 데이터는 가장 최근 버전의 데이터인, 방법. And the data stored in the SSD is the most recent version of the data. 제8항에 있어서, The method of claim 8, 상기 (a) 단계는, In step (a), 상기 데이터를 상기 로그 데이터 유닛으로 변환하는 단계; Converting the data into the log data unit; 상기 로그 데이터 유닛에 물리 섹터 번호를 할당하는 단계; Assigning a physical sector number to the log data unit; 상기 물리 섹터 번호에 대응되는 상기 HDD의 위치에 상기 로그 데이터 유닛을 저장하는 단계; 및Storing the log data unit at a location of the HDD corresponding to the physical sector number; And 상기 물리 섹터 번호 정보 및 메타데이터를 포함하는 엔트리(entry)를 로그 서치 DS에 추가하는 단계를 포함하는 방법. Adding an entry containing the physical sector number information and metadata to a log search DS. 제11항에 있어서, The method of claim 11, 상기 메타데이터는 상기 데이터가 저장되는 SDD 내의 위치를 나타내는 논리 섹터 번호 정보, 상기 로그 데이터 유닛의 시작점을 나타내는 오프셋 정보, 및 상기 로그 데이터 유닛의 크기를 나타내는 로그 사이즈 정보를 포함하는 방법. The metadata includes logical sector number information indicating a location in the SDD where the data is stored, offset information indicating the starting point of the log data unit, and log size information indicating the size of the log data unit. 제8항에 있어서, The method of claim 8, (c) 상기 HDD에 대한 메모리 수집을 수행하여, 상기 데이터 이관에 의해 상기 HDD에 생긴 공간을 병합하는 단계를 더 포함하는 방법. (c) performing memory collection on the HDD to merge space created on the HDD by the data migration. 제8항 내지 제13항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체.A computer-readable recording medium for recording a computer program for executing the method according to any one of claims 8 to 13.
KR1020080090959A 2008-09-17 2008-09-17 Storage device, method, and computer readable recording medium for improving random write performance in the SDD Expired - Fee Related KR100980667B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080090959A KR100980667B1 (en) 2008-09-17 2008-09-17 Storage device, method, and computer readable recording medium for improving random write performance in the SDD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080090959A KR100980667B1 (en) 2008-09-17 2008-09-17 Storage device, method, and computer readable recording medium for improving random write performance in the SDD

Publications (2)

Publication Number Publication Date
KR20100032019A KR20100032019A (en) 2010-03-25
KR100980667B1 true KR100980667B1 (en) 2010-09-07

Family

ID=42181368

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080090959A Expired - Fee Related KR100980667B1 (en) 2008-09-17 2008-09-17 Storage device, method, and computer readable recording medium for improving random write performance in the SDD

Country Status (1)

Country Link
KR (1) KR100980667B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128165A (en) * 1995-10-27 1997-05-16 Toshiba Corp Solid-state recording / reproducing device
US20060080501A1 (en) 2004-10-12 2006-04-13 Hitachi Global Storage Technologies HDD having both dram and flash memory
KR20060100684A (en) * 2005-03-17 2006-09-21 삼성전자주식회사 Hard disk drive with low power consumption, information processing system having same, and data input / output method thereof
KR20080072447A (en) * 2007-02-02 2008-08-06 지인정보기술 주식회사 Read request processing system and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09128165A (en) * 1995-10-27 1997-05-16 Toshiba Corp Solid-state recording / reproducing device
US20060080501A1 (en) 2004-10-12 2006-04-13 Hitachi Global Storage Technologies HDD having both dram and flash memory
KR20060100684A (en) * 2005-03-17 2006-09-21 삼성전자주식회사 Hard disk drive with low power consumption, information processing system having same, and data input / output method thereof
KR20080072447A (en) * 2007-02-02 2008-08-06 지인정보기술 주식회사 Read request processing system and method

Also Published As

Publication number Publication date
KR20100032019A (en) 2010-03-25

Similar Documents

Publication Publication Date Title
US7979631B2 (en) Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method
TWI551989B (en) Method for managing a flash storage system
EP3617867B1 (en) Fragment management method and fragment management apparatus
CN111007991B (en) Method for separating read-write requests based on NVDIMM and computer thereof
US20180107601A1 (en) Cache architecture and algorithms for hybrid object storage devices
CN107924291B (en) Storage system
JP2013242908A (en) Solid state memory, computer system including the same, and operation method of the same
WO2017149592A1 (en) Storage device
US8862819B2 (en) Log structure array
KR20170038853A (en) Host-managed non-volatile memory
CN111752479B (en) Method and system for efficiently storing data
US11144508B2 (en) Region-integrated data deduplication implementing a multi-lifetime duplicate finder
JP2019028954A (en) Storage control apparatus, program, and deduplication method
US9471252B2 (en) Use of flash cache to improve tiered migration performance
KR101123335B1 (en) Method and apparatus for configuring hash index, and apparatus for storing data having the said apparatus, and the recording media storing the program performing the said method
KR101191650B1 (en) Apparatus and method for mapping the data address in NAND flash memory
US8151053B2 (en) Hierarchical storage control apparatus, hierarchical storage control system, hierarchical storage control method, and program for controlling storage apparatus having hierarchical structure
US20210224002A1 (en) Storage control apparatus and storage medium
JP2002014776A (en) Disk control system and data rearranging method
KR100980667B1 (en) Storage device, method, and computer readable recording medium for improving random write performance in the SDD
CN111831589B (en) Method and device for improving IO command processing parallelism
US11429519B2 (en) System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive
WO2016095233A1 (en) Method and apparatus for realizing non-volatile cache
KR100818993B1 (en) File management apparatus and method using block virtual allocation
US20230418798A1 (en) Information processing apparatus and information processing method

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

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

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20130830

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

FPAY Annual fee payment

Payment date: 20140827

Year of fee payment: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20150902

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20150902

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000