WO2017188581A1 - 작업부하 편중을 완화하는 저장 장치 - Google Patents

작업부하 편중을 완화하는 저장 장치 Download PDF

Info

Publication number
WO2017188581A1
WO2017188581A1 PCT/KR2017/002056 KR2017002056W WO2017188581A1 WO 2017188581 A1 WO2017188581 A1 WO 2017188581A1 KR 2017002056 W KR2017002056 W KR 2017002056W WO 2017188581 A1 WO2017188581 A1 WO 2017188581A1
Authority
WO
WIPO (PCT)
Prior art keywords
striping
pattern
host request
sub
size
Prior art date
Application number
PCT/KR2017/002056
Other languages
English (en)
French (fr)
Inventor
성윤제
나안수
Original Assignee
주식회사 디에이아이오
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 디에이아이오 filed Critical 주식회사 디에이아이오
Publication of WO2017188581A1 publication Critical patent/WO2017188581A1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

Definitions

  • the present invention relates to a storage device, and more particularly to a storage device using a fixed striping technique.
  • Striping technology divides (or segments) data and distributes the divided data to a plurality of storage devices provided in the storage system, thereby reducing the workload of each of the storage devices and providing high speed data access. Can be enabled.
  • Static striping techniques use a logical address corresponding to a request (e.g., a host request from a host device to a storage system, such as a read / write / delete request). Based on the determination, the storage device to perform the request may be determined. In this case, a request for the same logical address may be performed in the same storage device.
  • Fixed striping techniques can have low operational overhead and can be simple to implement. In addition, even if the number of storage devices is increased, the management complexity of the storage system using the fixed striping technology may not be greatly increased.
  • a workload may be concentrated on a specific storage device in the storage system according to a fixed striping technique.
  • One object of the present invention is to provide a storage device that can alleviate the bias (or bias) phenomenon of the workload.
  • a storage device receives a host request from storage units and a host device, analyzes the pattern of the host request, and the pattern of the host request.
  • the controller may include a controller configured to determine a striping pattern based on the distribution, and to distribute the host request to the storage units based on the striping pattern.
  • the pattern of the host request may indicate a change in workload according to the host request.
  • the striping pattern may represent a rule for allocating the host request to the storage units according to a logical address associated with the host request.
  • the controller may be further configured to divide the logical address space associated with the host request into sub- logical address spaces using a striping unit having a first size, and to determine the second size and the second size of the pattern of the host request.
  • the striping pattern may be determined based on the first size of the striping unit.
  • the controller may include striping patterns and select one of the striping patterns based on the second size of the pattern of the host request and the first size of the striping unit.
  • the controller divides the logical address space associated with the host request into sub- logical address spaces using a striping unit having a first size, and the second size and the striping of the pattern of the host request.
  • the one of the striping patterns may be selected based on the first size of a unit, and the sub logical address spaces may be allocated to the storage units based on the one of the striping patterns.
  • control unit calculates a third size which is a least common multiple between the first size of the striping unit and the second size of the pattern of the host request, and the sub-logic corresponding to the third size.
  • a first number indicating the number of address spaces may be calculated, and it may be determined whether the first number and the second number indicating the number of storage units are mutually different.
  • the controller selects a first striping pattern from among the striping patterns, and the first striping pattern includes the storage units sequentially arranged. It may include a first order.
  • the controller selects a second striping pattern from among the striping patterns, and the second striping pattern is the first striping pattern. Can be different from.
  • the second striping pattern includes a first sub striping pattern and a second sub striping pattern
  • the first sub striping pattern includes a first sub order in which the storage units are arranged in a first section.
  • the second sub striping pattern may include a second sub order different from the first sub order in a second period, wherein the first period and the second period are adjacent to each other and correspond to the second number. .
  • the controller may determine the first sub-order and the second sub-order using a round robin.
  • a storage device receives a host request from storage units and a host device, analyzes the pattern of the host request, and the pattern of the host request.
  • the controller may include a controller configured to determine a first size of a striping unit based on the first size, and to distribute the host request to the storage units based on the striping unit.
  • the storage device may use a fixed striping technique, but may determine (or change or select) a striping pattern based on a pattern (or a workload pattern) of a host request.
  • the host request can be evenly distributed to the storage units included in the storage device, thereby alleviating the workload burden.
  • the storage device uses a predetermined striping pattern, and divides a striping unit (ie, a logical address space associated with the host request) based on the pattern (or workload pattern) of the host request.
  • a striping unit ie, a logical address space associated with the host request
  • the size of the minimum unit can be determined (or changed, selected). Therefore, even if one striping pattern is used, the bias of the workload can be alleviated.
  • FIG. 1 is a block diagram illustrating a storage device according to example embodiments.
  • FIG. 2 is a diagram illustrating an operation of a controller included in the storage device of FIG. 1.
  • FIG. 3 is a diagram illustrating a comparative embodiment of a control unit included in the storage device of FIG. 1.
  • 4A is a diagram illustrating an example of a file system.
  • 4B is a diagram illustrating a comparative embodiment of a control unit included in the storage device of FIG. 1.
  • FIG. 5 is a flowchart illustrating an example of a method of determining a striping pattern by a controller included in the storage device of FIG. 1.
  • FIG. 6 is a diagram illustrating an example of a controller included in the storage device of FIG. 1.
  • FIG. 7 is a diagram illustrating an example of a controller included in the storage device of FIG. 1.
  • FIG. 8 is a diagram illustrating an example of a controller included in the storage device of FIG. 1.
  • FIG. 1 is a block diagram illustrating a storage device according to example embodiments.
  • the storage device 100 may perform a read operation, a write operation, a delete operation, or the like in response to a host request provided from the host device 10.
  • the host device 10 generates a read command or a write command for data in block units on a logical address based on a logical block based interface using the file system 11. can do.
  • the file system 11 may be an extended file system (Ext4), an NT file system (NTS), or the like.
  • the host device 10 interacts with the storage device 100, for example, the host device 10 transmits data with the storage device 100 through an interface protocol (eg, ATA, PCI, etc.). (Or, communication).
  • an interface protocol eg, ATA, PCI, etc.
  • the storage device 100 may correspond to a hard disk device, a NAND flash memory device, or the like. Hereinafter, the storage device 100 will be described as an NAND flash memory device.
  • the storage device 100 may include a controller 110 and a storage 120.
  • the storage unit 120 may include storage units 120-1 to 120 -N (or operation units), where N is an integer of 2 or more.
  • the storage units 120-1 through 120 -N may interact with each other.
  • Each of the storage units includes a solid state drive (SSD), secure digital card (SDCARD), universal flash storage (UFS), embedded multi media card (EMMC), It may be implemented as a CF card, a memory stick, an XD picture card, or the like. This is merely an example, and the type of the storage unit 110 is not limited thereto.
  • the controller 110 uses the flash translation layer (FTL) 111 to support the file system 11 to map a logical address into a physical address.
  • FTL flash translation layer
  • (address mapping) operation can be performed.
  • the controller 110 stores a logical address generated in the host device 10 (or the file system 11) using a mapping table (not shown), and stores the storage units 120-1 to 120 -N.
  • An address mapping operation may be performed to convert a physical address to.
  • the controller 110 may perform a read operation, a write operation, a delete operation, or the like with respect to the storage units 120-1 through 120 -N through an address mapping operation.
  • the control unit 110 assigns (or distributes) a logical address to the storage units using a fixed striping technique, analyzing the pattern of the host request, and analyzing the striping pattern based on the pattern of the host request. static striping pattern).
  • the pattern of the host request indicates a workload (eg, a workload of the storage 130) or a change in workload according to the host request
  • the striping pattern indicates a host according to a logical address associated with the host request. It may be a rule, order, pattern, algorithm or policy for allocating a request to storage units 120-1 through 120-N.
  • the controller 110 may include different striping patterns and select one of the striping patterns based on the pattern of the host request. In this case, the controller 110 may distribute the host request to the storage units 120-1 to 120 -N based on the selected one of the striping patterns.
  • FIG. 2 is a diagram illustrating an operation of a controller included in the storage device of FIG. 1.
  • the controller 110 divides a logical address space (or a logical address space associated with a host request) into sub- logical address spaces by using the striping unit 210, and controls each of the sub- logical address spaces.
  • Sub logical address spaces may be allocated to the storage units 120-1 through 120 -N based on the logical address number.
  • the striping unit 210 may be a minimum unit for dividing the logical address space, and may have a first size K, and the first size K may be equal to the size of the physical page (for example, 16 KB). have.
  • the control unit 110 uses a specific function f (x) to store a storage unit (eg, j-th storage unit 120-j or k-th storage corresponding to a logical address number).
  • Unit 120-k For example, the controller 110 may allocate an odd sub- logical address space to the j th storage unit 120-j and an even sub sub logical address space to the k th storage unit 120-k.
  • the striping pattern is a rule for allocating a host request to storage units 120-1 through 120-N according to a logical address space (or sub logical address spaces), for example, the striping pattern is [j , k, j, k].
  • the controller 110 may perform a storage unit (eg, the storage units 120-1 to 120 to perform the host request based on a logical address associated with the host request. -N) can be determined. Since the same logical address number is assigned to the same storage unit according to the striping pattern, a request for the same logical address may be performed in the same storage unit.
  • a storage unit eg, the storage units 120-1 to 120 to perform the host request based on a logical address associated with the host request. -N
  • the specific storage unit eg, the j-th storage unit 120-
  • the workload may be biased.
  • FIG. 3 is a diagram illustrating a comparative embodiment of a control unit included in the storage device of FIG. 1.
  • 4A is a diagram illustrating an example of a file system.
  • 4B is a diagram illustrating a comparative embodiment of a control unit included in the storage device of FIG. 1.
  • a host request (eg, request A to request D) may correspond to odd (or even) sub logical address spaces.
  • the storage device 100 uses the striping pattern described with reference to FIG. 2, the storage device 100 distributes a host request (eg, request A to request D) only to the j th storage unit 120-j. It may not be distributed to the k-th storage unit 120-k. Thus, the workload may be biased on the j th storage unit 120-j.
  • the pattern of the host request (or the pattern of workload due to the host request) may be generated by the characteristics of the file system 11 used in the host device 10 described with reference to FIG. 1.
  • the file system 11 is an extended file system (Ext4) and may include metadata 410.
  • the meta data 410 is structured data about data and may be data (or attribute information) describing other data.
  • the metadata 410 may include a super block, an inode, a data block, and the like. Due to the nature of the metadata 410, reference and change to the metadata 410 may be frequent. Therefore, a host request for the logical address space to which the metadata 410 is allocated frequently occurs, and the workload of the logical address space may be relatively high.
  • the metadata 410 is managed in a unit called a block group on the extended file system Ext4, and the location of the logical address of the metadata 410 (or the block group) may be periodically repeated. . Therefore, the host request generated based on the extended file system Ext4 may have a workload pattern that is periodically repeated.
  • the meta data 410 may correspond to the first sub logical address space among the four sub logical address spaces.
  • the workload for the first sub logical address space may be relatively high. Therefore, in the storage device 100 using one striping pattern (or fixed striping pattern), the workload of the j th storage unit 120-j is compared to the workload of the k th storage unit 120-k. Can be relatively large. That is, the workload may be biased in the j th storage unit 120-j.
  • the storage device 100 since the storage device 100 according to the exemplary embodiments of the present invention determines the striping pattern based on the pattern (or workload pattern) of the host request (for example, selecting one of the striping patterns), The workload can be alleviated.
  • FIG. 5 is a flowchart illustrating an example of a method of determining a striping pattern by a controller included in the storage device of FIG. 1.
  • a method of determining a striping pattern may be performed by the controller 110 (or the storage device 100).
  • the method of FIG. 5 may determine the striping pattern based on the second size P of the pattern of the host request and the first size K of the striping unit 210.
  • the second size P of the pattern of the host request is one cycle in which the pattern of the host request is repeated, as described with reference to FIG. 4B, for example, the size of the extended file system Ext4 or four It may be equal to the total size of the sub logical address spaces.
  • the method of FIG. 5 may select one of the striping patterns based on the second size P of the pattern of the host request and the first size K of the striping unit 210.
  • the striping patterns may be preset and included in the storage device 100 (or the controller 110).
  • the method of FIG. 5 calculates (S510) a third size L which is the least common multiple between the first size K of the striping unit 210 and the second size P of the pattern of the host request (S510).
  • a first number M representing the number of sub- logical address spaces corresponding to L is calculated (S520), and the first number M and the second number N (that is, the storage units 120-1 through N).
  • each other may be two or more positive integers having no common factors other than one.
  • the third size L is 64 K (or 64).
  • the second number N 3
  • the first number M and the second number N may be mutually different.
  • the second number N 2 or 4
  • the first number M and the second number N have a common divisor of 2 in addition to 1, and thus may not be mutually different.
  • the method of FIG. 5 may select the first striping pattern from the striping patterns (S540).
  • the first striping pattern may include a first order in which the storage units 120-1 to 120 -N are sequentially arranged, and may be set as a basic striping pattern.
  • the first striping pattern may have a first order such as [1, 2, ... K].
  • the method of FIG. 5 is striping.
  • the second striping pattern may be selected from among the patterns.
  • the second striping pattern may be different from the first striping pattern.
  • the second striping pattern may have a second order such as [1, 2, ..., K, K, K-1, ..., 1].
  • FIG. 6 is a diagram illustrating an example of a controller included in the storage device of FIG. 1.
  • the first number M of sub- logical address spaces corresponding to the pattern of the host request is 4, and the second number N of the storage devices 120-1 and 120-2 is 2 days. Can be. In this case, the first number M and the second number N may not be mutually different.
  • the storage device 100 may use the second striping pattern.
  • the second striping pattern includes a first sub striping pattern STIPPING PATTERN A and a second sub striping pattern STIPPING PATTERN B
  • the first sub striping pattern STIPPING PATTERN A includes a second sub striping pattern STIPPING. May differ from PATTERN B).
  • the first sub striping pattern STIPPING PATTERN A may include a first sub order in which the storage units 120-1 and 120-2 are sequentially arranged in the first section (eg, [1, 2, 1, 2]), and the second sub striping pattern STIPPING PATTERN B includes a second sub order in which the storage units 120-1 and 120-2 are arranged in reverse order in the second section (eg, , [2, 1, 2, 1]).
  • the first interval and the second interval correspond to the second number N (ie, the second number N of the storage devices 120-1 to 120 -N), and the first interval is the second interval. Adjacent to.
  • the first storage unit 120-1 may be used.
  • the workload can be biased.
  • the storage device 100 according to the embodiments of the present invention uses a second striping pattern, the workload is applied to the first storage unit 120-1 and the second storage unit ( 120-2) evenly distributed. That is, the storage device 100 can alleviate the bias of the workload.
  • the controller 110 may determine the second striping pattern using a round robin.
  • round robin is a method of scheduling, and can execute the execution order of tasks cyclically in multiple processing.
  • the controller 110 may use a round robin to form a first sub striping pattern (STRIPPING PATTERN A) (or a first sub order) and a second sub striping pattern included in the second striping pattern.
  • STRIPPING PATTERN B (or second sub order) may be determined.
  • FIG. 7 is a diagram illustrating an example of a controller included in the storage device of FIG. 1.
  • the second striping pattern may include first to fourth sub striping patterns STRPPING PATTERN A / B / C / D.
  • the first sub striping pattern (STRIPPING PATTERN A) in the first section is [1, 2, 3, 4]
  • the second sub striping pattern (STRIPPING PATTERN B) in the second section is [2, 3, 4, 1]
  • the third sub striping pattern (STRIPPING PATTERN C) in the third section is [3, 4, 1, 2]
  • the fourth sub striping pattern (STRIPPING PATTERN D) in the fourth section is [ 4, 1, 2, 3]. That is, the number of storage units that will perform the host request may be increased by one every cycle of the pattern of the host request. In this case, the storage device 100 may evenly distribute the host request to the first to fourth storage units 120-1 to 120-4, and alleviate the workload burden.
  • the storage device 100 analyzes the pattern of the host request, changes the striping pattern (or selects one of the striping patterns) based on the pattern of the host request, and changes the striping pattern (or, The host request may be distributed to the storage units 120-1 to 120 -N based on one selected from the striping patterns.
  • the storage device 100 can alleviate the bias of the workload for host requests.
  • FIG. 8 is a diagram illustrating an example of a controller included in the storage device of FIG. 1.
  • the controller 800 receives a host request from the host device 10, analyzes a pattern of the host request, and based on the pattern of the host request, the first size K of the striping unit. And distribute the host request to the storage units 210-1 through 210-N based on the striping unit.
  • the striping unit 810 may be substantially the same as the striping unit 210 with reference to FIG. 2B, and may have a first size K as a minimum unit for dividing the logical address space.
  • the controller 800 may determine the first size K of the striping unit 810 based on the second size P of the pattern of the host request and the second number N of the storage units 120-1 to 120 -N. ) Can be determined. For example, the controller 800 calculates the fourth size Q by dividing the second size P of the pattern of the host request by the second number N of the storage units 120-1 to 120 -N. The first size K, which is not a multiple of the fourth size Q, may be determined.
  • the controller 800 includes striping units having different sizes from each other, and determines whether the size of each of the fourth size Q and the striping patterns is a multiple relationship, and according to a result of the determination, the fourth size (You can choose a striping unit with a specific size that is not a multiple of Q).
  • the controller 810 when the controller 810 divides the pattern of the host request to correspond to four sub- logical address spaces, the j-th storage unit 120-j (eg, the first storage) The workload may be biased in the unit 120-1. Meanwhile, since the controller 810 divides the pattern of the host request to correspond to the five sub-logical address spaces based on the striping unit 810, the same striping pattern (for example, as the first striping pattern is [1, 2]). , 1, 2] may be evenly distributed to the first storage unit 120-1 and the second storage unit 120-2.
  • the storage device 100 analyzes the pattern of the host request, determines the striping unit based on the pattern of the host request (eg, determines the size of the striping unit), and based on the determined striping unit. To distribute the host request to the storage units 120-1 through 120 -N. Thus, the storage device 100 can alleviate the bias of the workload for host requests.
  • the storage device may be applied to a storage system having a storage device (ie, a flash memory device).
  • a storage device ie, a flash memory device
  • the present invention can be applied to a storage system having a solid state drive (SSD), an embedded multimedia card (EMMC), a secure digital card (SD card), and the like.
  • SSD solid state drive
  • EMMC embedded multimedia card
  • SD card secure digital card
  • flash conversion layer 120 storage unit
  • striping unit 410 metadata
  • control unit 810 striping unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

저장 장치는 저장 유닛들 및 제어부를 포함한다. 제어부는 호스트 장치로부터 호스트 요청을 수신하고, 호스트 요청의 패턴을 분석하며, 호스트 요청의 패턴에 기초하여 스트라이핑 패턴들 중 하나를 선택하며, 스트라이핑 패턴들 중 하나에 기초하여 호스트 요청을 저장 유닛들에 분배한다.

Description

작업부하 편중을 완화하는 저장 장치
본 발명은 저장 장치에 관한 것으로, 보다 상세하게는 고정 방식 스트라이핑 기술을 이용하는 저장 장치에 관한 것이다.
스트라이핑(striping) 기술은 데이터를 분할(또는 세그먼트화)하고, 분할된 데이터를 저장 시스템에 구비된 복수의 저장 장치들에 분산함으로써, 저장 장치들 각각의 작업부하(workload)를 줄이고, 고속 데이터 엑세스가 가능하게 할 수 있다.
고정 방식 스트라이핑(static striping) 기술은 요청(예를 들어, 호스트 장치로부터 저장 시스템에 제공되는 호스트 요청으로서, 읽기(read)/쓰기(write)/ 지우기(delete) 요청 등)에 대응하는 논리 주소에 기초하여 해당 요청을 수행할 저장 장치를 결정할 수 있다. 이 경우, 동일한 논리 주소에 대한 요청은 동일한 저장 장치에서 수행될 수 있다. 고정 방식 스트라이핑 기술은 동작 오버헤드(overhead)가 낮고 구현이 단순할 수 있다. 또한, 저장 장치들의 개수가 증가하더라도 고정 방식 스트라이핑 기술을 이용하는 저장 시스템의 관리 복잡도가 크게 증가하지 않을 수 있다.
다만, 반복적으로 특정 논리 주소에 대한 요청이 제공되는 경우, 고정 방식 스트라이핑 기술에 따라 저장 시스템 내 특정 저장 장치에 작업부하가 편중될 수 있다.
본 발명의 일 목적은 작업부하의 편중(또는, 편중 현상)을 완화할 수 있는 저장 장치를 제공하는 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 저장 장치는 저장 유닛들, 및 호스트 장치로부터 호스트 요청을 수신하고, 상기 호스트 요청의 패턴을 분석하며, 상기 호스트 요청의 상기 패턴에 기초하여 스트라이핑 패턴을 결정하고, 상기 스트라이핑 패턴에 기초하여 상기 호스트 요청을 상기 저장 유닛들에 분배하는 제어부를 포함할 수 있다. 여기서, 상기 호스트 요청의 상기 패턴은 상기 호스트 요청에 따른 작업부하의 변화를 나타낼 수 있다. 여기서, 상기 스트라이핑 패턴은 상기 호스트 요청과 관련된 논리 주소에 따라 상기 호스트 요청을 상기 저장 유닛들에 할당하는 규칙을 나타낼 수 있다.
일 실시예에 의하면, 상기 제어부는, 상기 호스트 요청과 관련된 논리 주소 공간을 제1 크기를 가지는 스트라이핑 유닛을 이용하여 서브 논리 주소 공간들로 분할하고, 상기 호스트 요청의 상기 패턴의 제2 크기 및 상기 스트라이핑 유닛의 상기 제1 크기에 기초하여 상기 스트라이핑 패턴을 결정 할 수 있다.
일 실시예에 의하면, 상기 제어부는, 스트라이핑 패턴들을 포함하고, 상기 호스트 요청의 상기 패턴의 상기 제2 크기 및 상기 스트라이핑 유닛의 상기 제1 크기에 기초하여 상기 스트라이핑 패턴들 중 하나를 선택할 수 있다.
일 실시예에 의하면, 상기 제어부는 상기 호스트 요청과 관련된 논리 주소 공간을 제1 크기를 가지는 스트라이핑 유닛을 이용하여 서브 논리 주소 공간들로 분할하고, 상기 호스트 요청의 상기 패턴의 제2 크기 및 상기 스트라이핑 유닛의 상기 제1 크기에 기초하여 상기 스트라이핑 패턴들 중 상기 하나를 선택하며, 상기 스트라이핑 패턴들 중 상기 하나에 기초하여 상기 서브 논리 주소 공간들을 상기 저장 유닛들에 할당할 수 있다.
일 실시예에 의하면, 상기 제어부는 상기 스트라이핑 유닛의 상기 제1 크기 및 상기 호스트 요청의 상기 패턴의 상기 제2 크기 간의 최소 공배수인 제3 크기를 산출하고, 상기 제3 크기에 대응하는 상기 서브 논리 주소 공간들의 개수를 나타내는 제1 개수를 산출하며, 상기 제1 개수 및 상기 저장 유닛들의 개수를 나타내는 제2 개수가 서로소인지 여부를 판단할 수 있다.
일 실시예에 의하면, 상기 제어부는 상기 제1 개수 및 상기 제2 개수가 서로소인 경우, 상기 스트라이핑 패턴들 중에서 제1 스트라이핑 패턴을 선택하고, 상기 제1 스트라이핑 패턴은 상기 저장 유닛들이 순차적으로 배열된 제1 순서를 포함할 수 있다.
일 실시예에 의하면, 상기 제어부는 상기 제1 개수 및 상기 제2 개수가 2 이상의 공약수를 가지는 경우, 상기 스트라이핑 패턴들 중에서 제2 스트라이핑 패턴을 선택하고, 상기 제2 스트라이핑 패턴은 상기 제1 스트라이핑 패턴과 다를 수 있다.
일 실시예에 의하면, 상기 제2 스트라이핑 패턴은 제1 서브 스트라이핑 패턴 및 제2 서브 스트라이핑 패턴을 포함하고, 상기 제1 서브 스트라이핑 패턴은 제1 구간에서 상기 저장 유닛들이 배열된 제1 서브 순서를 포함하며, 상기 제2 서브 스트라이핑 패턴은 제2 구간에서 상기 제1 서브 순서와 다른 제2 서브 순서를 포함하고, 상기 제1 구간 및 상기 제2 구간은 상호 인접하고, 상기 제2 개수에 대응할 수 있다.
일 실시예에 의하면, 상기 제어부는 라운드 로빈(round robin)을 이용하여 상기 제1 서브 순서 및 상기 제2 서브 순서를 결정할 수 있다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 저장 장치는 저장 유닛들, 및 호스트 장치로부터 호스트 요청을 수신하고, 상기 호스트 요청의 패턴을 분석하며, 상기 호스트 요청의 상기 패턴에 기초하여 스트라이핑 유닛의 제1 크기를 결정하고, 상기 스트라이핑 유닛에 기초하여 상기 호스트 요청을 상기 저장 유닛들에 분배하는 제어부를 포함할 수 있다.
본 발명의 실시예들에 따른 저장 장치는 고정 방식 스트라이핑 기술을 이용하되, 호스트 요청의 패턴(또는, 작업부하 패턴)에 기초하여 스트라이핑 패턴을 결정(또는, 변경, 선택)할 수 있다. 따라서, 저장 장치에 포함된 저장 유닛들에 호스트 요청을 고르게 분배하여, 작업부하의 편중을 완화할 수 있다.
또한, 본 발명의 실시예들에 따른 저장 장치는 기 설정된 스트라이핑 패턴을 이용하되, 호스트 요청의 패턴(또는, 작업부하 패턴)에 기초하여 스트라이핑 유닛(즉, 호스트 요청과 관련된 논리 주소 공간을 분할하는 최소 단위)의 크기를 결정(또는, 변경, 선택)할 수 있다. 따라서, 하나의 스트라이핑 패턴을 이용하더라도, 작업부하의 편중을 완화할 수 있다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 저장 장치를 나타내는 블록도이다.
도 2는 도 1의 저장 장치에 포함된 제어부의 동작을 설명하는 도면이다.
도 3은 도 1의 저장 장치에 포함된 제어부의 비교 실시예를 나타내는 도면이다.
도 4a는 파일 시스템의 일 예를 나타내는 도면이다.
도 4b는 도 1의 저장 장치에 포함된 제어부의 비교 실시예를 나타내는 도면이다.
도 5는 도 1의 저장 장치에 포함된 제어부에서 스트라이핑 패턴을 결정하는 방법의 일 예를 나타내는 순서도이다.
도 6은 도 1의 저장 장치에 포함된 제어부의 일 예를 나타내는 도면이다.
도 7은 도 1의 저장 장치에 포함된 제어부의 일 예를 나타내는 도면이다.
도 8은 도 1의 저장 장치에 포함된 제어부의 일 예를 나타내는 도면이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성 요소에 대해서는 동일하거나 유사한 참조 부호를 사용한다.
도 1은 본 발명의 실시예들에 따른 저장 장치를 나타내는 블록도이다.
도 1을 참조하면, 저장 장치(100)는 호스트 장치(10)로부터 제공되는 호스트 요청에 응답하여 읽기(read) 동작, 쓰기(write) 동작, 삭제(delete) 동작 등을 수행할 수 있다.
호스트 장치(10)는 파일 시스템(11)을 이용하여 논리 블록 기반 인터페이스에 기초하여 논리 주소(logical address) 상에서 블록 단위로 데이터들에 대한 읽기 커맨드(read command) 또는 쓰기 커맨드(write command)를 생성할 수 있다. 여기서, 파일 시스템(11)은 확장 파일 시스템(Extended File System; Ext4), NT 파일 시스템(New Technology File System; NTFS) 등일 수 있다. 또한, 호스트 장치(10)는 저장 장치(100)와 상호 작용하며, 예를 들어, 호스트 장치(10)는 인터페이스 규약(예를 들어, ATA, PCI 등)을 통해 저장 장치(100)와 데이터 전송(또는, 통신)을 수행할 수 있다.
저장 장치(100)는 하드 디스크 장치, 낸드 플래시 메모리 장치 등에 상응할 수 있다. 이하에서는, 저장 장치(100)는 낸드 플래시 메모리 장치인 것을 예시적으로 설명하기로 한다. 저장 장치(100)는 제어부(110) 및 저장부(120)를 포함할 수 있다.
저장부(120)는 저장 유닛들(120-1 내지 120-N)(또는, 운영 유닛들(operation units))을 포함할 수 있다(단, N은 2 이상의 정수). 저장 유닛들(120-1 내지 120-N)은 상호 인터액션을 수행할 수 있다. 저장 유닛들 각각은 솔리드 스테이트 드라이브(solid state drive; SSD), 시큐어 디지털 카드(secure digital card; SDCARD), 유니버셜 플래시 스토리지(universal flash storage; UFS), 임베디드 멀티미디어 카드(embedded multi media card; EMMC), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등으로 구현될 수 있다. 이는 예시적인 것으로서, 저장 유닛(110)의 종류가 이에 한정되는 것은 아니다.
제어부(110)(또는, 스토리지 컨트롤러)는 파일 시스템(11)을 지원하기 위한 플래시 변환 레이어(flash translation layer; FTL)(111)를 이용하여 논리 주소를 물리 주소(physical address)로 변환하는 어드레스 맵핑(address mapping) 동작을 수행할 수 있다. 예를 들어, 제어부(110)는 맵핑 테이블(미도시)을 이용하여 호스트 장치(10)(또는, 파일 시스템(11))에서 생성되는 논리 주소를 저장 유닛들(120-1 내지 120-N)의 물리 주소로 변환하는 어드레스 맵핑 동작을 수행할 수 있다. 또한, 제어부(110)는 어드레스 맵핑 동작을 통해 저장 유닛들(120-1 내지 120-N)에 대한 읽기(read) 동작, 쓰기(write) 동작, 소거(delete) 동작 등을 수행할 수 있다.
실시예들에서, 제어부(110)는 고정 방식 스트라이핑 기술을 이용하여 논리 주소를 저장 유닛들에 할당(또는, 분배)하되, 호스트 요청의 패턴을 분석하고, 호스트 요청의 패턴에 기초하여 스트라이핑 패턴(static striping pattern)을 결정할 수 있다. 여기서, 호스트 요청의 패턴은 호스트 요청에 따른 작업부하(예를 들어, 저장부(130)의 작업부하(workload)) 또는 작업부하의 변화를 나타내고, 스트라이핑 패턴은 호스트 요청과 관련된 논리 주소에 따라 호스트 요청을 저장 유닛들(120-1 내지 120-N)에 할당하는 규칙, 순서, 패턴, 알고리즘 또는 정책일 수 있다. 예를 들어, 제어부(110)는 상호 다른 스트라이핑 패턴들을 포함하고, 호스트 요청의 패턴에 기초하여 스트라이핑 패턴들 중 하나를 선택할 수 있다. 이 경우, 제어부(110)는 스트라이핑 패턴들 중 선택된 하나에 기초하여 호스트 요청을 저장 유닛들(120-1 내지 120-N)에 분배할 수 있다.
스트라이핑 패턴을 결정하는 구성에 대해서는 도 5 내지 도 8을 참조하여 후술하기로 한다.
도 2는 도 1의 저장 장치에 포함된 제어부의 동작을 설명하는 도면이다.
도 2를 참조하면, 제어부(110)는 스트라이핑 유닛(210)을 이용하여 논리 주소 공간(또는, 호스트 요청과 관련된 논리 주소 공간)을 서브 논리 주소 공간들로 분할하고, 서브 논리 주소 공간들 각각의 논리 주소 번호에 기초하여 서브 논리 주소 공간들을 저장 유닛들(120-1 내지 120-N)에 할당할 수 있다. 여기서, 스트라이핑 유닛(210)은 논리 주소 공간을 분할하는 최소 단위로서, 제1 크기(K)를 가질 수 있고, 제1 크기(K)는 물리 페이지의 크기(예를 들어, 16KB)와 같을 수 있다.
도 2에 도시된 바와 같이, 제어부(110)는 특정 함수(f(x))를 이용하여 논리 주소 번호에 대응하는 저장 유닛(예를 들어, 제j 저장 유닛(120-j) 또는 제k 저장 유닛(120-k))을 결정할 수 있다. 예를 들어, 제어부(110)는 홀수 번째 서브 논리 주소 공간을 제j 저장 유닛(120-j)에 할당하고, 짝수 번째 서브 논리 주소 공간을 제k 저장 유닛(120-k)에 할당할 수 있다(단, j, k는 N보다 작은 양의 정수). 이 경우, 스트라이핑 패턴은 논리 주소 공간(또는, 서브 논리 주소 공간들)에 따라 호스트 요청을 저장 유닛들(120-1 내지 120-N)에 할당하는 규칙이고, 예를 들어, 스트라이핑 패턴은 [j, k, j, k]일 수 있다.
한편, 저장 장치(100)가 호스트 요청을 수신하는 경우, 제어부(110)는 호스트 요청과 관련된 논리 주소에 기초하여 호스트 요청을 수행할 저장 유닛(예를 들어, 저장 유닛들(120-1 내지 120-N) 중 하나)을 결정할 수 있다. 스트라이핑 패턴에 따라 동일한 논리 주소 번호는 동일한 저장 유닛에 할당되므로, 동일한 논리 주소에 대한 요청은 동일한 저장 유닛에서 수행될 수 있다.
다만, 특정 논리 주소(예를 들어, 홀수 번째 서브 논리 주소들)에 대응하는 호스트 요청이 저장 장치(100)에 반복적으로 제공되는 경우, 특정 저장 유닛(예를 들어, 제j 저장 유닛(120-j))에 작업부하가 편중될 수 있다.
도 3은 도 1의 저장 장치에 포함된 제어부의 비교 실시예를 나타내는 도면이다. 도 4a는 파일 시스템의 일 예를 나타내는 도면이다. 도 4b는 도 1의 저장 장치에 포함된 제어부의 비교 실시예를 나타내는 도면이다.
도 3을 참조하면, 호스트 요청(예를 들어, 요청A 내지 요청D)은 홀수 번째(또는, 짝수 번째)의 서브 논리 주소 공간들에 대응할 수 있다. 저장 장치(100)가 도 2를 참조하여 설명한 스트라이핑 패턴을 이용하는 경우, 저장 장치(100)는 호스트 요청(예를 들어, 요청A 내지 요청D)을 제j 저장 유닛(120-j)에만 분배하고, 제k 저장 유닛(120-k)에는 분배하지 않을 수 있다. 따라서, 제j 저장 유닛(120-j)에 작업부하가 편중될 수 있다.
예를 들어, 호스트 요청의 패턴(또는, 호스트 요청에 기인한 작업부하의 패턴)은 도 1을 참조하여 설명한 호스트 장치(10)에서 이용되는 파일 시스템(11)의 특성에 의해 발생될 수 있다.
도 4a를 참조하면, 파일 시스템(11)은 확장 파일 시스템(Extended File System; Ext4)이고, 메타 데이터(410)를 포함할 수 있다. 여기서, 메타 데이터(410)는 데이터에 관한 구조화된 데이터로, 다른 데이터를 설명하는 데이터(또는, 속성 정보)일 수 있다. 예를 들어, 메타 데이터(410)는 슈퍼 블록(Super Block), 아이노드(inode), 데이터 블록(data block) 등을 포함할 수 있다. 메타 데이터(410)의 특성상, 메타 데이터(410)에 대한 참조 및 변경이 잦을 수 있다. 따라서, 메타 데이터(410)가 할당되는 논리 주소 공간에 대한 호스트 요청이 빈번하게 발생하고, 해당 논리 주소 공간의 작업부하가 상대적으로 높을 수 있다.
한편, 메타 데이터(410)는 확장 파일 시스템(Ext4) 상에서 블록 그룹(Block Group)이라는 단위로 관리되고, 메타 데이터(410)(또는, 블록 그룹)의 논리 주소의 위치는 주기적으로 반복될 수 있다. 따라서, 확장 파일 시스템(Ext4)에 기초하여 생성된 호스트 요청은 주기적으로 반복되는 작업부하 패턴을 가질 수 있다.
도 4b를 참조하면, 메타 데이터(410)는 4개의 서브 논리 주소 공간들 중 제1 서브 논리 주소 공간에 대응될 수 있다. 이 경우, 제1 서브 논리 주소 공간에 대한 작업부하가 상대적으로 높을 수 있다. 따라서, 하나의 스트라이핑 패턴(또는, 고정된 스트라이핑 패턴)을 이용하는 저장 장치(100)에서, 제j 저장 유닛(120-j)의 작업부하는 제k 저장 유닛(120-k)의 작업부하에 비해 상대적으로 클 수 있다. 즉, 작업부하가 제j 저장 유닛(120-j)에 편중될 수 있다.
한편, 본 발명의 실시예들에 따른 저장 장치(100)는 호스트 요청의 패턴(또는, 작업부하 패턴)에 기초하여 스트라이핑 패턴을 결정하므로(예를 들어, 스트라이핑 패턴들 중에서 하나를 선택하므로), 작업부하가 편중되는 것을 완화할 수 있다.
도 5는 도 1의 저장 장치에 포함된 제어부에서 스트라이핑 패턴을 결정하는 방법의 일 예를 나타내는 순서도이다.
도 1 및 도 5를 참조하면, 스트라이핑 패턴을 결정하는 방법은 제어부(110)(또는, 저장 장치(100))에서 수행될 수 있다.
도 5의 방법은 호스트 요청의 패턴의 제2 크기(P) 및 스트라이핑 유닛(210)의 제1 크기(K)에 기초하여 스트라이핑 패턴을 결정할 수 있다. 여기서, 호스트 요청의 패턴의 제2 크기(P)는, 도 4b를 참조하여 설명한 바와 같이, 호스트 요청의 패턴이 반복되는 한 주기이고, 예를 들어, 확장 파일 시스템(Ext4)의 크기 또는 4개의 서브 논리 주소 공간들의 총 크기와 같을 수 있다.
실시예들에서, 도 5의 방법은 호스트 요청의 패턴의 제2 크기(P) 및 스트라이핑 유닛(210)의 제1 크기(K)에 기초하여 스트라이핑 패턴들 중에서 하나를 선택할 수 있다. 여기서, 스트라이핑 패턴들은 기 설정되고, 저장 장치(100)(또는, 제어부(110))에 포함될 수 있다.
도 5의 방법은 스트라이핑 유닛(210)의 제1 크기(K) 및 호스트 요청의 패턴의 제2 크기(P) 간의 최소 공배수인 제3 크기(L)를 산출(S510)하고, 제3 크기(L)에 대응하는 서브 논리 주소 공간들의 개수를 나타내는 제1 개수(M)을 산출(S520)하며, 제1 개수(M) 및 제2 개수(N)(즉, 저장 유닛들(120-1 내지 120-N)의 개수를 나타내는 제2 개수(N))가 서로소(coprime)인지 여부를 판단(S530)할 수 있다. 여기서, 서로소는 1 이외에 공약수를 갖지 않는 2 이상의 양의 정수일 수 있다.
예를 들어, 스트라이핑 유닛(210)의 제1 크기(K)가 16KB이고, 호스트 요청의 패턴의 제2 크기(P)가 64KB인 경우, 제3 크기(L)는 64K(또는, 64)이고, 제1 개수(M)는 4일 수 있다(즉, M = L / K = 64 / 16 = 4). 예를 들어, 제2 개수(N)가 3인 경우, 제1 개수(M) 및 제2 개수(N)는 서로소일 수 있다. 다른 예를 들어, 제2 개수(N)가 2 또는 4인 경우, 제1 개수(M) 및 제2 개수(N)는 1 이외에 2 라는 공약수를 가지므로, 서로소가 아닐 수 있다.
제1 개수(M) 및 제2 개수(N)가 서로소인 경우, 도 5의 방법은 스트라이핑 패턴들 중에서 제1 스트라이핑 패턴을 선택(S540)할 수 있다. 여기서, 제1 스트라이핑 패턴은 저장 유닛들(120-1 내지 120-N)이 순차적으로 배열된 제1 순서를 포함하고, 기본 스트라이핑 패턴으로서 설정될 수 있다. 예를 들어, 제1 스트라이핑 패턴은 [1, 2,... K]와 같은 제1 순서를 가질 수 있다.
제1 개수(M) 및 제2 개수(N)가 서로소가 아닌 경우(즉, 제1 개수(M) 및 제2 개수(N)가 2 이상의 공약수를 가지는 경우), 도 5의 방법은 스트라이핑 패턴들 중에서 제2 스트라이핑 패턴을 선택할 수 있다. 여기서, 제2 스트라이핑 패턴은 제1 스트라이핑 패턴과 다를 수 있다. 예를 들어, 제2 스트라이핑 패턴은 [1, 2, ..., K, K, K-1, ..., 1]와 같은 제2 순서를 가질 수 있다.
도 6은 도 1의 저장 장치에 포함된 제어부의 일 예를 나타내는 도면이다.
도 6을 참조하면, 호스트 요청의 패턴에 대응하는 서브 논리 주소 공간들의 제1 개수(M)는 4이고, 저장 장치들(120-1 및 120-2)의 제2 개수(N)는 2일 수 있다. 이 경우, 제1 개수(M) 및 제2 개수(N)는 서로소가 아닐 수 있다.
이 경우, 저장 장치(100)(또는, 제어부(110))는 제2 스트라이핑 패턴을 이용할 수 있다. 여기서, 제2 스트라이핑 패턴은 제1 서브 스트라이핑 패턴(STRIPPING PATTERN A) 및 제2 서브 스트라이핑 패턴(STIPPING PATTERN B)을 포함하고, 제1 서브 스트라이핑 패턴(STRIPPING PATTERN A)은 제2 서브 스트라이핑 패턴(STIPPING PATTERN B)과 다를 수 있다. 예를 들어, 제1 서브 스트라이핑 패턴(STRIPPING PATTERN A)은 제1 구간에서 저장 유닛들(120-1 및 120-2)이 순차적으로 배열된 제1 서브 순서(예를 들어, [1, 2, 1, 2])를 포함하고, 제2 서브 스트라이핑 패턴(STIPPING PATTERN B)은 제2 구간에서 저장 유닛들(120-1 및 120-2)이 역순차적으로 배열된 제2 서브 순서(예를 들어, [2, 1, 2, 1])를 포함할 수 있다. 여기서, 제1 구간 및 제2 구간은 제2 개수(N)(즉, 저장 장치들(120-1 내지 120-N)의 제2 개수(N))에 대응하고, 제1 구간은 제2 구간과 인접할 수 있다.
앞서, 도 4b를 참조하여 설명한 바와 같이, 저장 장치(100)가 제1 스트라이핑 패턴(예를 들어, 제1 서브 스트라이핑 패턴(STRIPPING PATTERN A))을 이용하는 경우, 제1 저장 유닛(120-1)에 작업부하가 편중될 수 있다. 한편, 도 6에 도시된 바와 같이, 본 발명의 실시예들에 따른 저장 장치(100)는 제2 스트라이핑 패턴을 이용하므로, 작업부하를 제1 저장 유닛(120-1) 및 제2 저장 유닛(120-2)에 고르게 분배할 수 있다. 즉, 저장 장치(100)는 작업부하의 편중을 완화시킬 수 있다.
실시예들에서, 제어부(110)는 라운드 로빈(round robin)을 이용하여 제2 스트라이핑 패턴을 결정할 수 있다. 여기서, 라운드 로빈은 스케줄링의 한 방법으로서, 다중 처리에서 작업의 실행 순서를 사이클릭(cyclic)으로 실행할 수 있다. 예를 들어, 제어부(110)는 라운드 로빈(round robin)을 이용하여 제2 스트라이핑 패턴에 포함된 제1 서브 스트라이핑 패턴(STRIPPING PATTERN A)(또는, 제1 서브 순서) 및 제2 서브 스트라이핑 패턴(STRIPPING PATTERN B)(또는, 제2 서브 순서)을 결정할 수 있다.
도 7은 도 1의 저장 장치에 포함된 제어부의 일 예를 나타내는 도면이다.
도 7을 참조하면, 제2 스트라이핑 패턴은 제1 내지 제4 서브 스트라이핑 패턴들(STRIPPING PATTERN A/B/C/D)을 포함할 수 있다. 여기서, 제1 구간에서의 제1 서브 스트라이핑 패턴(STRIPPING PATTERN A)은 [1, 2, 3, 4]이고, 제2 구간에서의 제2 서브 스트라이핑 패턴(STRIPPING PATTERN B)은 [2, 3, 4, 1]이며, 제3 구간에서의 제3 서브 스트라이핑 패턴(STRIPPING PATTERN C)은 [3, 4, 1, 2]이고, 제4 구간에서의 제4 서브 스트라이핑 패턴(STRIPPING PATTERN D)은 [4, 1, 2, 3]일 수 있다. 즉, 호스트 요청의 패턴의 매주기마다 호스트 요청을 수행할 저장 유닛의 번호를 1씩 증가시킬 수 있다. 이 경우, 저장 장치(100)는 제1 내지 제4 저장 유닛들(120-1 내지 120-4)에 호스트 요청을 고르게 분배하고, 작업부하의 편중을 완화시킬 수 있다.
상술한 바와 같이, 저장 장치(100)는 호스트 요청의 패턴을 분석하고, 호스트 요청의 패턴에 기초하여 스트라이핑 패턴을 변경하고(또는, 스트라이핑 패턴들 중 하나를 선택하고), 변경된 스트라이핑 패턴(또는, 스트라이핑 패턴들 중에서 선택된 하나)에 기초하여 호스트 요청을 저장 유닛들(120-1 내지 120-N)에 분배할 수 있다. 따라서, 저장 장치(100)는 호스트 요청에 대한 작업부하의 편중을 완화시킬 수 있다.
도 8은 도 1의 저장 장치에 포함된 제어부의 일 예를 나타내는 도면이다.
도 1 및 도 8을 참조하면, 제어부(800)는 호스트 장치(10)로부터 호스트 요청을 수신하고, 호스트 요청의 패턴을 분석하며, 호스트 요청의 패턴에 기초하여 스트라이핑 유닛의 제1 크기(K)를 결정하고, 스트라이핑 유닛에 기초하여 호스트 요청을 저장 유닛들(210-1 내지 210-N)에 분배할 수 있다. 여기서, 스트라이핑 유닛(810)은, 도 2b를 참조하여 스트라이핑 유닛(210)과 실질적으로 동일하고, 논리 주소 공간을 분할하는 최소 단위로서, 제1 크기(K)를 가질 수 있다.
제어부(800)는 호스트 요청의 패턴의 제2 크기(P) 및 저장 유닛들(120-1 내지 120-N)의 제2 개수(N)에 기초하여 스트라이핑 유닛(810)의 제1 크기(K)를 결정할 수 있다. 예를 들어, 제어부(800)는 호스트 요청의 패턴의 제2 크기(P)를 저장 유닛들(120-1 내지 120-N)의 제2 개수(N)로 나누어 제4 크기(Q)를 산출하고, 제4 크기(Q)와 배수 관계가 아닌 제1 크기(K)를 결정할 수 있다. 예를 들어, 제어부(800)는 상호 다른 크기를 가지는 스트라이핑 유닛들을 포함하고, 제4 크기(Q)와 스트라이핑 패턴들 각각의 크기가 배수 관계인지 여부를 판단하며, 판단 결과에 따라 제4 크기(Q)와 배수 관계가 아닌 특정 크기를 가진 스트라이핑 유닛을 선택할 수 있다.
도 4b를 참조하여 설명한 바와 같이, 제어부(810)가 호스트 요청의 패턴을 4개의 서브 논리 주소 공간들에 대응하도록 분할하는 경우, 제j 저장 유닛(120-j)(예를 들어, 제1 저장 유닛(120-1))에 작업부하가 편중될 수 있다. 한편, 제어부(810)는 스트라이핑 유닛(810)에 기초하여 호스트 요청의 패턴을 5개의 서브 논리 주소 공간에 대응하도록 분할하므로, 동일한 스트라이핑 패턴(예를 들어, 제1 스트라이핑 패턴으로서, [1, 2, 1, 2])을 이용하더라도, 호스트 요청을 제1 저장 유닛(120-1) 및 제2 저장 유닛(120-2)에 고르게 분배할 수 있다.
상술한 바와 같이, 저장 장치(100)는 호스트 요청의 패턴을 분석하고, 호스트 요청의 패턴에 기초하여 스트라이핑 유닛을 결정하고(예를 들어, 스트라이핑 유닛의 크기를 결정하고), 결정된 스트라이핑 유닛에 기초하여 호스트 요청을 저장 유닛들(120-1 내지 120-N)에 분배할 수 있다. 따라서, 저장 장치(100)는 호스트 요청에 대한 작업부하의 편중을 완화시킬 수 있다.
이상, 본 발명의 실시예들에 따른 저장 장치에 대하여 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다.
본 발명의 실시예들에 따른 저장 장치는 저장 장치(즉, 플래시 메모리 장치)를 구비한 스토리지 시스템에 적용될 수 있다. 예를 들어, 본 발명은 솔리드 스테이트 드라이브(SSD), 임베디드 멀티미디어 카드(EMMC), 시큐어 디지털 카드(SD카드) 등을 구비한 스토리지 시스템에 적용될 수 있다.
<부호의 설명>
10: 호스트 장치 11: 파일 시스템
100: 저장 장치 110: 제어부
111: 플래시 변환 레이어 120: 저장부
120-1 내지 120-N: 제1 내지 제N 저장 유닛들
210: 스트라이핑 유닛 410: 메타 데이터
800: 제어부 810: 스트라이핑 유닛

Claims (11)

  1. 저장 유닛들; 및
    호스트 장치로부터 호스트 요청을 수신하고, 상기 호스트 요청의 패턴을 분석하며, 상기 호스트 요청의 상기 패턴에 기초하여 스트라이핑 패턴을 결정하고, 상기 스트라이핑 패턴에 기초하여 상기 호스트 요청을 상기 저장 유닛들에 분배하는 제어부를 포함하는 저장 장치.
  2. 제 1 항에 있어서, 상기 호스트 요청의 상기 패턴은 상기 호스트 요청에 따른 작업부하의 변화를 나타내는 것을 특징으로 하는 저장 장치.
  3. 제 1 항에 있어서, 상기 스트라이핑 패턴은 상기 호스트 요청과 관련된 논리 주소에 따라 상기 호스트 요청을 상기 저장 유닛들에 할당하는 규칙을 나타내는 것을 특징으로 하는 저장 장치.
  4. 제 1 항에 있어서, 상기 제어부는,
    상기 호스트 요청과 관련된 논리 주소 공간을 제1 크기를 가지는 스트라이핑 유닛을 이용하여 서브 논리 주소 공간들로 분할하고,
    상기 호스트 요청의 상기 패턴의 제2 크기 및 상기 스트라이핑 유닛의 상기 제1 크기에 기초하여 상기 스트라이핑 패턴을 결정하는 것을 특징으로 하는 저장 장치.
  5. 제 4 항에 있어서, 상기 제어부는,
    스트라이핑 패턴들을 포함하고,
    상기 호스트 요청의 상기 패턴의 상기 제2 크기 및 상기 스트라이핑 유닛의 상기 제1 크기에 기초하여 상기 스트라이핑 패턴들 중 하나를 선택하는 것을 특징으로 하는 저장 장치.
  6. 제 5 항에 있어서, 상기 제어부는,
    상기 스트라이핑 유닛의 상기 제1 크기 및 상기 호스트 요청의 상기 패턴의 상기 제2 크기 간의 최소 공배수인 제3 크기를 산출하고,
    상기 제3 크기에 대응하는 상기 서브 논리 주소 공간들의 개수를 나타내는 제1 개수를 산출하며,
    상기 제1 개수 및 상기 저장 유닛들의 개수를 나타내는 제2 개수가 서로소인지 여부를 판단하는 것을 특징으로 하는 저장 장치.
  7. 제 6 항에 있어서, 상기 제어부는 상기 제1 개수 및 상기 제2 개수가 서로소인 경우, 상기 스트라이핑 패턴들 중에서 제1 스트라이핑 패턴을 선택하고,
    상기 제1 스트라이핑 패턴은 상기 저장 유닛들이 순차적으로 배열된 제1 순서를 포함하는 것을 특징으로 하는 저장 장치.
  8. 제 7 항에 있어서, 상기 제어부는 상기 제1 개수 및 상기 제2 개수가 2 이상의 공약수를 가지는 경우, 상기 스트라이핑 패턴들 중에서 제2 스트라이핑 패턴을 선택하고,
    상기 제2 스트라이핑 패턴은 상기 제1 스트라이핑 패턴과 다른 것을 특징으로 하는 저장 장치.
  9. 제 8 항에 있어서, 상기 제2 스트라이핑 패턴은 제1 서브 스트라이핑 패턴 및 제2 서브 스트라이핑 패턴을 포함하고,
    상기 제1 서브 스트라이핑 패턴은 제1 구간에서 상기 저장 유닛들이 배열된 제1 서브 순서를 포함하며,
    상기 제2 서브 스트라이핑 패턴은 제2 구간에서 상기 제1 서브 순서와 다른 제2 서브 순서를 포함하고,
    상기 제1 구간 및 상기 제2 구간은 상호 인접하고, 상기 제2 개수에 대응하는 것을 특징으로 하는 저장 장치.
  10. 제 9 항에 있어서, 상기 제어부는 라운드 로빈(round robin)을 이용하여 상기 제1 서브 순서 및 상기 제2 서브 순서를 결정하는 것을 특징으로 하는 저장 장치.
  11. 저장 유닛들; 및
    호스트 장치로부터 호스트 요청을 수신하고, 상기 호스트 요청의 패턴을 분석하며, 상기 호스트 요청의 상기 패턴에 기초하여 스트라이핑 유닛의 제1 크기를 결정하고, 상기 스트라이핑 유닛에 기초하여 상기 호스트 요청을 상기 저장 유닛들에 분배하는 제어부를 포함하는 저장 장치.
PCT/KR2017/002056 2016-04-28 2017-02-24 작업부하 편중을 완화하는 저장 장치 WO2017188581A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0052538 2016-04-28
KR1020160052538A KR101734160B1 (ko) 2016-04-28 2016-04-28 작업부하 편중을 완화하는 저장 장치

Publications (1)

Publication Number Publication Date
WO2017188581A1 true WO2017188581A1 (ko) 2017-11-02

Family

ID=58742005

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/002056 WO2017188581A1 (ko) 2016-04-28 2017-02-24 작업부하 편중을 완화하는 저장 장치

Country Status (2)

Country Link
KR (1) KR101734160B1 (ko)
WO (1) WO2017188581A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019074964A1 (en) * 2017-10-10 2019-04-18 University Of Southern California DYNAMIC PROXIMITY DATA PROCESSING CONTROL MECHANISM BASED ON AVAILABILITY OF COMPUTER RESOURCES ON SEMICONDUCTOR DISK PLATFORMS
KR20200053204A (ko) 2018-11-08 2020-05-18 삼성전자주식회사 저장 장치, 저장 장치의 동작 방법 및 저장 장치를 제어하는 호스트의 동작 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100251539B1 (ko) * 1996-12-14 2000-04-15 구자홍 연속매체 서비스 시스템의 부하 균등화방법
KR100377092B1 (ko) * 1994-07-19 2003-03-19 디바 시스템즈 코포레이션 다중 사용자 데이터 분배 시스템내 저장장치 서브세트상에 데이터 스트림을 스트라이핑하는 방법
JP2007149068A (ja) * 2005-11-23 2007-06-14 Internatl Business Mach Corp <Ibm> ストライピング済みディスク・データのリバランシングを行う方法、システム、及び製品(ストライピング済みディスク・データのリバランシング)
JP2008519359A (ja) * 2004-11-05 2008-06-05 データ ロボティクス インコーポレイテッド 種々のサイズの格納デバイスを可能にする動的に拡張可能かつ縮小可能な故障許容格納システム、および方法
JP2008539531A (ja) * 2005-04-29 2008-11-13 ネットワーク・アプライアンス・インコーポレイテッド ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100377092B1 (ko) * 1994-07-19 2003-03-19 디바 시스템즈 코포레이션 다중 사용자 데이터 분배 시스템내 저장장치 서브세트상에 데이터 스트림을 스트라이핑하는 방법
KR100251539B1 (ko) * 1996-12-14 2000-04-15 구자홍 연속매체 서비스 시스템의 부하 균등화방법
JP2008519359A (ja) * 2004-11-05 2008-06-05 データ ロボティクス インコーポレイテッド 種々のサイズの格納デバイスを可能にする動的に拡張可能かつ縮小可能な故障許容格納システム、および方法
JP2008539531A (ja) * 2005-04-29 2008-11-13 ネットワーク・アプライアンス・インコーポレイテッド ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術
JP2007149068A (ja) * 2005-11-23 2007-06-14 Internatl Business Mach Corp <Ibm> ストライピング済みディスク・データのリバランシングを行う方法、システム、及び製品(ストライピング済みディスク・データのリバランシング)

Also Published As

Publication number Publication date
KR101734160B1 (ko) 2017-05-11

Similar Documents

Publication Publication Date Title
KR102444832B1 (ko) 분산된 가상 명칭 공간 관리를 사용한 온-디맨드 스토리지 프로비져닝
JP6122557B2 (ja) ファイルマイグレーション方法及び装置、並びにストレージデバイス
KR102290540B1 (ko) 네임스페이스/스트림 관리
WO2012134017A1 (ko) 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치
US9921781B2 (en) Storage system including multiple storage apparatuses and pool virtualization method
CN103577345A (zh) 提高由多个系统共享的存储高速缓存灵活性的方法和结构
US20130036279A1 (en) Storage system using real data storage area dynamic allocation method
US8621176B2 (en) Method and system for allocating data objects for efficient reads in a mass storage subsystem
JP5537732B2 (ja) ストレージシステム
WO2017188581A1 (ko) 작업부하 편중을 완화하는 저장 장치
CN109783012A (zh) 基于闪存的储存器及其控制器
WO2014003707A2 (en) Hardware-based accelerator for managing copy-on-write
WO2017195928A1 (ko) 플래시 기반 저장 장치 및 이를 포함하는 컴퓨팅 디바이스
WO2013027922A1 (ko) 클라우드 컴퓨팅 시스템의 압축 이미지 파일 관리 장치 및 방법
WO2012149815A1 (zh) 磁盘缓存的管理方法及装置
JP5966404B2 (ja) 分散ファイルアクセス装置、分散ファイルアクセスシステム、分散ファイルアクセス方法、及び、分散ファイルアクセスプログラム
US10656862B1 (en) Systems and methods for implementing space consolidation and space expansion in a horizontally federated cluster
US20120254583A1 (en) Storage control system providing virtual logical volumes complying with thin provisioning
US8918621B1 (en) Block address isolation for file systems
US10789209B2 (en) Method and apparatus to enable finer-grained, scalable allocation of storage in a data storage system
JP2005309648A (ja) ファイル配置システム
He et al. A migratory heterogeneity-aware data layout scheme for parallel file systems
JPWO2021218038A5 (ko)
WO2023121338A1 (ko) Lsm-tree 및 근사 인덱싱에 기반한 ftl을 이용하는 ssd 장치 및 그 동작 방법
KR20150095978A (ko) 클라우드 컴퓨팅에서의 컴퓨팅 노드의 로컬 디스크를 이용한 분산 스토리지 시스템

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17789766

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 210219)

122 Ep: pct application non-entry in european phase

Ref document number: 17789766

Country of ref document: EP

Kind code of ref document: A1