JP2016207096A - Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program - Google Patents

Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program Download PDF

Info

Publication number
JP2016207096A
JP2016207096A JP2015090895A JP2015090895A JP2016207096A JP 2016207096 A JP2016207096 A JP 2016207096A JP 2015090895 A JP2015090895 A JP 2015090895A JP 2015090895 A JP2015090895 A JP 2015090895A JP 2016207096 A JP2016207096 A JP 2016207096A
Authority
JP
Japan
Prior art keywords
storage
data
read
cache memory
hierarchical
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.)
Pending
Application number
JP2015090895A
Other languages
Japanese (ja)
Inventor
和一 大江
Kazuichi Oe
和一 大江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015090895A priority Critical patent/JP2016207096A/en
Priority to US15/073,010 priority patent/US10007437B2/en
Publication of JP2016207096A publication Critical patent/JP2016207096A/en
Pending legal-status Critical Current

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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PROBLEM TO BE SOLVED: To shorten the time required for movement of data from a first storage containing a storage device and a cache memory for caching by write-back method, to a second storage which can be accessed faster than to the first storage.SOLUTION: A hierarchical storage device 101 sequentially reads data md of a certain sub-LUN which is a storage region for migration from an HDD 112 of a tearing HDD 102 being a first storage. Further, the hierarchical storage device 101 reads modified data ddty1-4 of a certain sub-LUN from a cache SSD 111 of the tearing HDD 102. Then, the hierarchical storage device 101 merges the data md having been read from the HDD 112 with the data ddty1-4 having been read from the cache SSD 111. Then, the hierarchical storage device 101 writes the merged data md' in a tearing SSD 103.SELECTED DRAWING: Figure 1

Description

本発明は、階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラムに関する。   The present invention relates to a hierarchical storage apparatus, a hierarchical storage system, a hierarchical storage method, and a hierarchical storage program.

従来、アクセス性能が異なる複数のストレージにより階層ストレージを形成し、データをストレージ間で移動させる技術がある。また、記憶装置とキャッシュメモリとを用いることにより、前述の記憶装置よりアクセス性能を向上させたストレージを形成する技術がある。関連する先行技術として、例えば、ホストからのHDD(Hard Disk Drive)へのアクセス要求に対して、HDDの設定数以上の連続するセクタのデータにアクセスするかを判定した場合に記憶装置をキャッシュとして用いない技術がある。また、アプリケーションからのIO要求のそれぞれを構成可能なキャッシュマップと比較し、構成可能なキャッシュマップに基づきIO要求のそれぞれを処理し、付与したキャッシング決定に従ってIO要求のそれぞれに対し選択的なキャッシングを行う技術がある。   Conventionally, there is a technique of forming a tiered storage by a plurality of storages having different access performances and moving data between the storages. In addition, there is a technique for forming a storage with improved access performance over the above-described storage device by using a storage device and a cache memory. As a related prior art, for example, when it is determined whether to access data in a continuous sector that is equal to or more than the set number of HDDs in response to an access request from a host to an HDD (Hard Disk Drive), Some technologies are not used. Also, each IO request from the application is compared with a configurable cache map, each IO request is processed based on the configurable cache map, and selective caching is performed for each IO request according to the assigned caching decision. There is technology to do.

特開2013−77161号公報JP 2013-77161 A 特表2013−511091号公報Special table 2013-511091 gazette

しかしながら、従来技術によれば、記憶装置とライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから、第1のストレージより高速にアクセス可能な第2のストレージへのデータの移動にかかる時間が遅延することがある。具体的には、第1のストレージから移動対象の記憶領域のデータを読み込む際、第1のストレージの記憶装置には、移動対象の記憶領域のデータのうち変更されていないデータが散在する場合がある。この場合、第1のストレージの記憶装置から、変更されていないデータのそれぞれに対してランダムアクセスを発行して読み出すことになるため、移動にかかる時間が遅延することになる。   However, according to the related art, the time required for data movement from the first storage having the storage device and the cache memory that caches by the write-back method to the second storage that can be accessed faster than the first storage May be delayed. Specifically, when data in a storage area to be moved is read from the first storage, data that has not been changed among data in the storage area to be moved may be scattered in the storage device in the first storage. is there. In this case, since the random access is issued and read from the storage device of the first storage to each of the data that has not been changed, the time required for the movement is delayed.

1つの側面では、本発明は、記憶装置とライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから、第1のストレージより高速にアクセス可能な第2のストレージへのデータの移動にかかる時間を短縮化できる階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラムを提供することを目的とする。   In one aspect, the present invention involves moving data from a first storage having a storage device and a cache memory that caches in a write-back manner to a second storage that can be accessed faster than the first storage. It is an object of the present invention to provide a hierarchical storage apparatus, a hierarchical storage system, a hierarchical storage method, and a hierarchical storage program that can shorten the time.

本発明の一側面によれば、記憶装置と記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから第1のストレージより高速にアクセス可能な第2のストレージにデータを移動させる際に、記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、移動対象の記憶領域のデータのうち変更されたデータをキャッシュメモリから読み出し、読み出した移動対象の記憶領域のデータと、読み出した変更されたデータとをマージし、マージしたデータを、第2のストレージに書き込む階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラムが提案される。   According to one aspect of the present invention, data is transferred from a first storage having a storage device and a cache memory that caches data in the storage device in a write-back manner to a second storage that is accessible at a higher speed than the first storage. When moving, the data in the storage area to be moved is sequentially read from the storage device, the changed data among the data in the storage area to be moved is read from the cache memory, and the read data in the storage area to be moved A tiered storage device, a tiered storage system, a tiered storage method, and a tiered storage program are proposed that merge the read-out changed data and write the merged data to a second storage.

本発明の一態様によれば、記憶装置とライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから、第1のストレージより高速にアクセス可能な第2のストレージへのデータの移動にかかる時間を短縮化できるという効果を奏する。   According to one aspect of the present invention, data is transferred from a first storage having a storage device and a cache memory that caches data by a write-back method to a second storage that can be accessed faster than the first storage. There is an effect that the time can be shortened.

図1は、本実施の形態にかかる階層ストレージシステム100の動作例を示す説明図である。FIG. 1 is an explanatory diagram showing an operation example of the hierarchical storage system 100 according to the present embodiment. 図2は、階層ストレージ装置101のハードウェア構成例を示すブロック図である。FIG. 2 is a block diagram illustrating a hardware configuration example of the hierarchical storage apparatus 101. 図3は、階層ストレージ装置101のソフトウェア構成例を示すブロック図である。FIG. 3 is a block diagram illustrating a software configuration example of the hierarchical storage apparatus 101. 図4は、階層ストレージ装置101の機能構成例を示すブロック図である。FIG. 4 is a block diagram illustrating a functional configuration example of the hierarchical storage apparatus 101. 図5は、キャッシュメモリ読み出し処理の第一の例を示す説明図である。FIG. 5 is an explanatory diagram illustrating a first example of cache memory read processing. 図6は、キャッシュメモリ読み出し処理の第二の例を示す説明図である。FIG. 6 is an explanatory diagram illustrating a second example of the cache memory reading process. 図7は、マイグレーション処理手順の一例を示すフローチャートである。FIG. 7 is a flowchart illustrating an example of the migration processing procedure. 図8は、HDD読み出し処理手順の一例を示すフローチャートである。FIG. 8 is a flowchart illustrating an example of the HDD read processing procedure. 図9は、キャッシュメモリ読み出し処理の第一の例の手順を示すフローチャートである。FIG. 9 is a flowchart showing the procedure of the first example of the cache memory reading process. 図10は、sub−LUNデータ生成処理手順の一例を示すフローチャートである。FIG. 10 is a flowchart illustrating an example of a sub-LUN data generation processing procedure. 図11は、テンポラリーリスト作成処理手順の一例を示すフローチャートである。FIG. 11 is a flowchart illustrating an example of a temporary list creation processing procedure. 図12は、ユーザIOリクエスト発生時処理手順の一例を示すフローチャートである。FIG. 12 is a flowchart illustrating an example of a processing procedure when a user IO request occurs. 図13は、キャッシュメモリ読み出し処理の第二の例の手順を示すフローチャートである。FIG. 13 is a flowchart illustrating the procedure of the second example of the cache memory read process.

以下に図面を参照して、開示の階層ストレージ装置、階層ストレージシステム、階層ストレージ方法、および階層ストレージプログラムの実施の形態を詳細に説明する。   Exemplary embodiments of a disclosed hierarchical storage apparatus, hierarchical storage system, hierarchical storage method, and hierarchical storage program will be described below in detail with reference to the drawings.

図1は、本実施の形態にかかる階層ストレージシステム100の動作例を示す説明図である。具体的には、階層ストレージ装置101を有する階層ストレージシステム100は、第1のストレージと第2のストレージとにより階層ストレージを形成し、形成した階層ストレージの記憶領域を階層ストレージシステム100のユーザに提供する。さらに、階層ストレージ装置101は、記憶装置とライトバック方式によるキャッシュメモリとを用いて第1のストレージを形成することにより、前述の記憶装置よりアクセス性能を向上させたストレージとして運用する。   FIG. 1 is an explanatory diagram showing an operation example of the hierarchical storage system 100 according to the present embodiment. Specifically, the hierarchical storage system 100 having the hierarchical storage apparatus 101 forms a hierarchical storage by the first storage and the second storage, and provides the storage area of the formed hierarchical storage to the user of the hierarchical storage system 100 To do. Furthermore, the hierarchical storage apparatus 101 operates as a storage with improved access performance compared to the above-described storage apparatus by forming the first storage using a storage apparatus and a write-back cache memory.

ここで、階層ストレージが採用されたストレージシステムは、データをストレージ間で移動させることにより、各階層に属するストレージの負荷を分散させる。各階層に属するストレージは、1つでもよいし複数あってもよい。また、移動するデータのデータサイズは、どのようなサイズでもよいが、例えば、LUN(Logical Unit Number)を分割したsub−LUNのデータサイズとする。例えば、sub−LUNのデータサイズは、1[GB]である。以下、ストレージ間でデータを移動させることを、「マイグレーション」と呼称する。   Here, the storage system employing the tiered storage distributes the load of the storage belonging to each tier by moving data between the storages. There may be one or more storages belonging to each tier. The data size of the data to be moved may be any size. For example, the data size is a sub-LUN data size obtained by dividing a LUN (Logical Unit Number). For example, the data size of the sub-LUN is 1 [GB]. Hereinafter, the movement of data between storages is referred to as “migration”.

ここで、第1のストレージは、階層ストレージ装置101により論理的に形成されたものである。または、記憶装置とキャッシュメモリとを有するストレージ装置が存在しており、階層ストレージ装置101は、記憶装置とキャッシュメモリとを有するストレージ装置を制御してもよい。また、第1のストレージの記憶装置は、不揮発性の記憶媒体であればどのようなものでもよい。例えば、第1のストレージの記憶装置は、磁気ディスクを記憶媒体とするHDDでもよいし、磁気テープを記憶媒体とするテープドライブでもよい。   Here, the first storage is logically formed by the hierarchical storage apparatus 101. Alternatively, a storage device having a storage device and a cache memory exists, and the hierarchical storage device 101 may control a storage device having a storage device and a cache memory. Further, the storage device of the first storage may be any device as long as it is a nonvolatile storage medium. For example, the storage device of the first storage may be an HDD using a magnetic disk as a storage medium or a tape drive using a magnetic tape as a storage medium.

また、ライトバック方式によるキャッシュメモリについて、ライトバック方式とは、記憶装置にデータを書き込む際、一旦キャッシュメモリにデータを書き込み、処理の空き時間等ができてからキャッシュメモリから記憶装置に書き込む方式である。従って、キャッシュメモリのデータと、記憶装置とのデータとが常に一致するとは限らない。   As for the write-back cache memory, the write-back method is a method in which when data is written to the storage device, the data is once written to the cache memory, and the processing time is available and then written from the cache memory to the storage device. is there. Therefore, the data in the cache memory and the data in the storage device do not always match.

第1のストレージのキャッシュメモリは、第1のストレージの記憶装置より高速にアクセス可能であればよく、不揮発性でもよいし揮発性でもよい。例えば、第1のストレージのキャッシュメモリは、半導体メモリを記憶媒体とするSSD(Solid State Drive)や、RAM(Random Access Memory)でもよい。   The cache memory of the first storage only needs to be accessible at higher speed than the storage device of the first storage, and may be nonvolatile or volatile. For example, the first storage cache memory may be an SSD (Solid State Drive) using a semiconductor memory as a storage medium or a RAM (Random Access Memory).

第2のストレージは、不揮発性であり、第1のストレージより高速にアクセス可能であればよい。例えば、第1のストレージの記憶装置がHDDでキャッシュメモリがSSDである場合や、第1のストレージの記憶装置がテープドライブでキャッシュメモリがHDDである場合には、第2のストレージは、例えば、SSDでよい。また、第2のストレージが、第1のストレージのようにキャッシュメモリを有してもよいし、有していなくてもよい。   The second storage may be non-volatile and can be accessed faster than the first storage. For example, when the storage device of the first storage is an HDD and the cache memory is an SSD, or when the storage device of the first storage is a tape drive and the cache memory is an HDD, the second storage is, for example, SSD can be used. Also, the second storage may or may not have a cache memory like the first storage.

ここで、第1のストレージから第2のストレージへのデータ移動にかかる時間が延びることがある。具体的には、例えば、第1のストレージから移動対象の記憶領域のデータを読み込む際、第1のストレージの記憶装置には、移動対象の記憶領域のデータのうち変更されていないデータが偏在する場合もあるし、散在する場合もある。   Here, the time required for data movement from the first storage to the second storage may be extended. Specifically, for example, when data in a storage area to be moved is read from the first storage, unchanged data among the data in the storage area to be moved is unevenly distributed in the storage device of the first storage. In some cases, it may be scattered.

変更されていないデータが偏在する場合には、第1のストレージの記憶装置から、変更されていないデータのそれぞれに対してランダム読み出しを行っても、ランダム読み出しを行う回数は多くないため、データ移動にかかる時間はさほど延びることはない。しかし、変更されていないデータが散在する場合には、第1のストレージの記憶装置から、変更されていないデータのそれぞれに対してランダム読み出しを行うことになり、ランダム読み出しを行う回数が多くなって、データ移動にかかる時間が延びることになる。   If unchanged data is unevenly distributed, even if random read is performed on each of the unmodified data from the storage device of the first storage, the number of times of random read is not large, so data movement The time it takes does not extend much. However, when data that has not been changed is scattered, random reading is performed on each of the data that has not been changed from the storage device of the first storage, and the number of times of random reading increases. This increases the time required for data movement.

より具体的な例として、第1のストレージのキャッシュメモリの1つのデータサイズが4[KB]であり、キャッシュヒット率が50[%]であり、第1のストレージの記憶装置がHDDであって、ランダム読み出しの性能が200[iops]であるとする。このとき、1[GB]のsub−LUNのデータをマイグレーションするとなると、第1のストレージの記憶装置から読み出すデータの個数は、1[GB]*0.5/4[KB]=131072[個]となる。そして、131072[個]のデータが全て連続していない際に、第1のストレージから131072[個]のデータを読み出すとなると、131072回のランダム読み出しが発生することになる。結果、第1のストレージの記憶装置からの読み出しに、131072/200=655[秒]かかることになる。   As a more specific example, the data size of one cache memory of the first storage is 4 [KB], the cache hit rate is 50 [%], and the storage device of the first storage is an HDD. Assume that the performance of random reading is 200 [iops]. At this time, if data of 1 [GB] sub-LUN is migrated, the number of data read from the storage device of the first storage is 1 [GB] * 0.5 / 4 [KB] = 131072 [pieces] It becomes. If 131072 [pieces] of data are read from the first storage when all of the 131072 [pieces] of data are not continuous, 131072 random reads occur. As a result, it takes 131072/200 = 655 [seconds] to read from the storage device of the first storage.

そこで、本実施の形態では、第1のストレージの記憶装置から読み出したデータと、第1のストレージのライトバック方式でキャッシュするキャッシュメモリのデータとをマージして第2のストレージに書き込む階層ストレージ方法について説明する。以下、図1を用いて、階層ストレージ装置101の動作を説明する。図1で示す階層ストレージシステム100は、階層ストレージ装置101と、第1のストレージとするティアリングHDD102と、第1のストレージよりアクセス性能が高い第2のストレージとするティアリングSSD103とを有する。そして、ティアリングHDD102は、ライトバック方式によるキャッシュメモリとしてSSDを用いたキャッシュSSD111と、記憶装置としてHDD112とを有する。   Therefore, in the present embodiment, a hierarchical storage method for merging data read from the storage device of the first storage and cache memory data cached by the write-back method of the first storage and writing it to the second storage Will be described. Hereinafter, the operation of the hierarchical storage apparatus 101 will be described with reference to FIG. The tiered storage system 100 shown in FIG. 1 includes a tiered storage apparatus 101, a tiering HDD 102 that is a first storage, and a tiering SSD 103 that is a second storage having higher access performance than the first storage. The tearing HDD 102 includes a cache SSD 111 that uses an SSD as a write-back cache memory, and an HDD 112 as a storage device.

階層ストレージ装置101は、階層ストレージシステム100を制御するコンピュータである。階層ストレージ装置101は、例えば、サーバである。また、階層ストレージ装置101に、ティアリングHDD102とティアリングSSD103とが含まれていてもよい。図1の(1)が示す処理において、階層ストレージ装置101は、第1のストレージとなるティアリングHDD102のHDD112から、マイグレーション対象の記憶領域となった、あるsub−LUNのデータmdをシーケンシャルに読み出す。ここで、データmdは、あるsub−LUNの変更されていないデータとして、dold1〜4を含む。図1では、ハッチを付与した領域が変更されていないデータを示す。   The tier storage apparatus 101 is a computer that controls the tier storage system 100. The hierarchical storage apparatus 101 is a server, for example. Further, the tiered storage apparatus 101 may include a tearing HDD 102 and a tearing SSD 103. In the process indicated by (1) in FIG. 1, the hierarchical storage apparatus 101 sequentially reads out data md of a certain sub-LUN that has become a migration target storage area from the HDD 112 of the tearing HDD 102 that is the first storage. Here, the data md includes dold 1 to 4 as unchanged data of a certain sub-LUN. FIG. 1 shows data in which hatched areas are not changed.

また、図1の(2)が示す処理において、階層ストレージ装置101は、ティアリングHDD102のキャッシュSSD111から、あるsub−LUNの変更されたデータddty1〜4を読み出す。ここで、図1では、塗りつぶした領域が、あるsub−LUNの変更されたデータを示す。なお、図1におけるキャッシュSSD111に含まれる白抜きの領域は、sub−LUN以外のデータである。ここで、図1の(1)が示す処理と図1の(2)が示す処理とについて、階層ストレージ装置101は、どちらかを先に実行してもよいし、並行して実行してもよい。   Further, in the process shown in (2) of FIG. 1, the hierarchical storage apparatus 101 reads the changed data ddty 1 to 4 of a certain sub-LUN from the cache SSD 111 of the tearing HDD 102. Here, in FIG. 1, the filled area indicates changed data of a certain sub-LUN. Note that the white area included in the cache SSD 111 in FIG. 1 is data other than the sub-LUN. Here, the hierarchical storage apparatus 101 may execute either the process indicated by (1) in FIG. 1 or the process indicated by (2) in FIG. Good.

次に、階層ストレージ装置101は、図1の(3)が示す処理において、HDD112から読み出したデータmdと、キャッシュSSD111から読み出したデータddty1〜4とをマージする。マージすることにより、階層ストレージ装置101は、データmd’を得る。ここで、データmd’は、あるsub−LUNの変更されたデータddty1〜4を含むものである。そして、階層ストレージ装置101は、図1の(4)が示す処理において、データmd’をティアリングSSD103に書き込む。   Next, the hierarchical storage apparatus 101 merges the data md read from the HDD 112 and the data ddty 1 to 4 read from the cache SSD 111 in the process indicated by (3) in FIG. By merging, the hierarchical storage apparatus 101 obtains data md ′. Here, the data md ′ includes the changed data ddty 1 to 4 of a certain sub-LUN. Then, the hierarchical storage apparatus 101 writes the data md ′ to the tearing SSD 103 in the process indicated by (4) in FIG.

これにより、マイグレーション時に、HDD112にランダム読み出しを発生させることがなくなるため、マイグレーションにかかる時間を短縮化することができる。マイグレーションにかかる時間として、具体的には、例えば、HDDに対するシーケンシャルの読み出しが、100[MB/sec]であるとすると、1[GB]のマイグレーションにかかる時間は約10[秒]となる。従って、本実施の形態にかかるマイグレーションによれば、HDDに対してランダム読み出しを行ってマイグレーションを行う場合に比べて、65分の1の時間でマイグレーションを行うことができる。   As a result, random reading is not generated in the HDD 112 during migration, and the time required for migration can be shortened. Specifically, for example, if the sequential read from the HDD is 100 [MB / sec] as the time required for migration, the time required for migration of 1 [GB] is about 10 [seconds]. Therefore, according to the migration according to the present embodiment, the migration can be performed in 1/65 of the time compared to the case where the migration is performed by performing random reading on the HDD.

また、本実施の形態における階層ストレージシステム100は、2階層のストレージであったが、3階層以上のストレージを有してもよい。   Further, although the hierarchical storage system 100 in the present embodiment is a two-level storage, it may have a storage of three or more levels.

(階層ストレージ装置101のハードウェア構成例)
図2は、階層ストレージ装置101のハードウェア構成例を示すブロック図である。図2において、階層ストレージ装置101は、CPU201と、ROM(Read−Only Memory)202と、RAM203と、を含む。また、階層ストレージ装置101は、ディスクドライブ204およびディスク205と、通信インターフェース206と、を含む。また、CPU201〜ディスクドライブ204、通信インターフェース206はバス207によってそれぞれ接続される。
(Hardware configuration example of hierarchical storage apparatus 101)
FIG. 2 is a block diagram illustrating a hardware configuration example of the hierarchical storage apparatus 101. In FIG. 2, the hierarchical storage apparatus 101 includes a CPU 201, a ROM (Read-Only Memory) 202, and a RAM 203. The hierarchical storage apparatus 101 includes a disk drive 204 and a disk 205, and a communication interface 206. The CPU 201 to the disk drive 204 and the communication interface 206 are connected by a bus 207, respectively.

CPU201は、階層ストレージ装置101の全体の制御を司る演算処理装置である。また、階層ストレージ装置101は、複数のCPUを有してもよい。ROM202は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM203は、CPU201のワークエリアとして使用される揮発性メモリである。   The CPU 201 is an arithmetic processing unit that controls the entire hierarchical storage apparatus 101. The hierarchical storage apparatus 101 may have a plurality of CPUs. The ROM 202 is a non-volatile memory that stores a program such as a boot program. A RAM 203 is a volatile memory used as a work area for the CPU 201.

ディスクドライブ204は、CPU201の制御に従ってディスク205に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ204には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク205は、ディスクドライブ204の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ204が磁気ディスクドライブである場合、ディスク205には、磁気ディスクを採用することができる。また、ディスクドライブ204が光ディスクドライブである場合、ディスク205には、光ディスクを採用することができる。また、ディスクドライブ204がソリッドステートドライブである場合、ディスク205には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。   The disk drive 204 is a control device that controls reading and writing of data with respect to the disk 205 in accordance with the control of the CPU 201. As the disk drive 204, for example, a magnetic disk drive, an optical disk drive, a solid state drive, or the like can be adopted. The disk 205 is a non-volatile memory that stores data written under the control of the disk drive 204. For example, when the disk drive 204 is a magnetic disk drive, the disk 205 can be a magnetic disk. Further, when the disk drive 204 is an optical disk drive, an optical disk can be adopted as the disk 205. When the disk drive 204 is a solid state drive, a semiconductor memory formed by a semiconductor element, that is, a so-called semiconductor disk can be used as the disk 205.

通信インターフェース206は、ネットワークと内部のインターフェースを司り、他の装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース206は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース206には、例えば、モデムやLAN(Local Area Network)アダプタなどを採用することができる。   The communication interface 206 controls a network and an internal interface, and is a control device that controls input / output of data from other devices. Specifically, the communication interface 206 is connected to another device via a network through a communication line. For example, a modem or a LAN (Local Area Network) adapter may be employed as the communication interface 206.

また、階層ストレージシステム100の管理者が、階層ストレージ装置101を直接操作する場合、階層ストレージ装置101は、ディスプレイ、キーボード、マウスといったハードウェアを有してもよい。   When the administrator of the hierarchical storage system 100 directly operates the hierarchical storage apparatus 101, the hierarchical storage apparatus 101 may have hardware such as a display, a keyboard, and a mouse.

図3は、階層ストレージ装置101のソフトウェア構成例を示すブロック図である。階層ストレージ装置101は、ユーザ空間上で、ティアリングマネージャ301を実行する。また、階層ストレージ装置101は、OS空間上で、ティアリングドライバ311と、キャッシングボリューム312と、ディスクドライバ313〜315とを実行する。ここで、ディスクドライバ313は、ティアリングSSD103のディスクドライバである。また、ディスクドライバ314は、キャッシュSSD111のディスクドライバである。また、ディスクドライバ315は、HDD112のディスクドライバである。   FIG. 3 is a block diagram illustrating a software configuration example of the hierarchical storage apparatus 101. The hierarchical storage apparatus 101 executes the tearing manager 301 on the user space. The hierarchical storage apparatus 101 also executes a tearing driver 311, a caching volume 312, and disk drivers 313 to 315 on the OS space. Here, the disk driver 313 is a disk driver of the tearing SSD 103. The disk driver 314 is a disk driver for the cache SSD 111. The disk driver 315 is a disk driver for the HDD 112.

ティアリングマネージャ301は、ティアリングHDD102とティアリングSSD103とから形成される階層化ストレージを制御するソフトウェアである。具体的には、ティアリングマネージャ301は、sub−LUNごとに記憶するストレージを決定する。図3の例では、階層ストレージシステム100は、1つのLUNをsub−LUN ID:1〜Cに分割してある。そして、図3の例では、ティアリングマネージャ301の決定により、sub−LUN ID:1〜3、5〜8、A〜CのデータはティアリングHDD102に記憶させており、sub−LUN ID:4、9のデータはティアリングSSD103に記憶させてある。   The tearing manager 301 is software that controls the hierarchical storage formed by the tearing HDD 102 and the tearing SSD 103. Specifically, the tearing manager 301 determines a storage to be stored for each sub-LUN. In the example of FIG. 3, the hierarchical storage system 100 divides one LUN into sub-LUN IDs: 1 to C. In the example of FIG. 3, the data of sub-LUN IDs: 1 to 3 and 5 to 8 and A to C are stored in the tearing HDD 102 according to the determination of the tearing manager 301, and the sub-LUN IDs are 4 and 9. Is stored in the tearing SSD 103.

そして、ティアリングマネージャ301は、sub−LUN単位でアクセス数をカウントする。sub−LUN単位のアクセス数に基づいて、ティアリングマネージャ301は、ティアリングHDD102が記憶するsub−LUNのうちのいずれかのsub−LUNのデータの移動指示をティアリングドライバ311に送信する。また、sub−LUN単位のアクセス数に基づいて、ティアリングマネージャ301は、ティアリングSSD103が記憶するsub−LUNのうちのいずれかのsub−LUNのデータの移動指示をティアリングドライバ311に送信する。   Then, the tearing manager 301 counts the number of accesses in units of sub-LUNs. Based on the number of accesses in sub-LUN units, the tearing manager 301 transmits to the tearing driver 311 an instruction to move data of any sub-LUN among the sub-LUNs stored in the tearing HDD 102. Further, based on the number of accesses in sub-LUN units, the tearing manager 301 transmits to the tearing driver 311 an instruction to move data of any sub-LUN among the sub-LUNs stored in the tearing SSD 103.

ティアリングドライバ311は、階層化ストレージへのインターフェースを提供するソフトウェアである。具体的には、ティアリングドライバ311は、ティアリングマネージャ301からのデータの移動指示や、ユーザIO(Input Output)リクエストからのアクセスを、アクセス先に基づいて、キャッシングボリューム312か、ディスクドライバ313に振り分ける。   The tearing driver 311 is software that provides an interface to the tiered storage. Specifically, the tearing driver 311 distributes the data movement instruction from the tearing manager 301 and the access from the user IO (Input Output) request to the caching volume 312 or the disk driver 313 based on the access destination.

キャッシングボリューム312は、ライトバック方式によるキャッシュ機能を有するボリュームへのインターフェースを提供するソフトウェアである。具体的には、キャッシングボリューム312は、キャッシュアルゴリズムに従って、キャッシュSSD111とHDD112とを制御する。   The caching volume 312 is software that provides an interface to a volume having a cache function by a write-back method. Specifically, the caching volume 312 controls the cache SSD 111 and the HDD 112 according to a cache algorithm.

(階層ストレージ装置101の機能構成例)
図4は、階層ストレージ装置101の機能構成例を示すブロック図である。階層ストレージ装置101は、制御部を有する。制御部は、第1の読み出し部401と、第2の読み出し部402と、マージ部403と、書き込み部404と、受け付け部405と、検索部406と、記憶部407とを有する。図4で示すように、第1の読み出し部401〜書き込み部404は、ティアリングドライバ311が有する機能であり、受け付け部405〜記憶部407は、キャッシングボリューム312が有する機能である。ここで、制御部は、記憶装置に記憶されたプログラムをCPU201が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図2に示したROM202、RAM203、ディスク205などである。また、各部の処理結果は、CPU201のレジスタや、CPU201のキャッシュメモリ等に格納される。
(Example of functional configuration of hierarchical storage apparatus 101)
FIG. 4 is a block diagram illustrating a functional configuration example of the hierarchical storage apparatus 101. The hierarchical storage apparatus 101 has a control unit. The control unit includes a first reading unit 401, a second reading unit 402, a merge unit 403, a writing unit 404, a receiving unit 405, a search unit 406, and a storage unit 407. As illustrated in FIG. 4, the first reading unit 401 to the writing unit 404 are functions that the tearing driver 311 has, and the receiving unit 405 to the storage unit 407 are functions that the caching volume 312 has. Here, the control unit realizes the function of each unit by the CPU 201 executing the program stored in the storage device. Specifically, the storage device is, for example, the ROM 202, the RAM 203, the disk 205, etc. shown in FIG. In addition, the processing result of each unit is stored in a register of the CPU 201, a cache memory of the CPU 201, or the like.

また、階層ストレージ装置101は、管理データmにアクセス可能である。管理データmは、RAM203といった記憶装置に格納される。ここで、管理データmは、キャッシュメモリが記憶するデータに応じてHDD112の記憶領域におけるデータに対応するアドレスとデータが変更されたものか否かを示す情報とを対応付けた情報である。ここで、HDD112のアドレスは、LBA(Logical Block Addressing)で表現されたものでもよいし、CHS(Cylinder Head Sector)で表現されたものでもよい。以下の例では、HDD112のアドレスは、LBAで表現されたものであるとする。管理データmの詳細な説明については、図5で説明する。   The hierarchical storage apparatus 101 can access the management data m. The management data m is stored in a storage device such as the RAM 203. Here, the management data m is information in which an address corresponding to data in the storage area of the HDD 112 and information indicating whether the data has been changed are associated with data stored in the cache memory. Here, the address of the HDD 112 may be expressed by LBA (Logical Block Addressing) or may be expressed by CHS (Cylinder Head Sector). In the following example, it is assumed that the address of the HDD 112 is expressed in LBA. Details of the management data m will be described with reference to FIG.

そして、管理データmは、キャッシュSSD111が記憶するデータごとにある。ここで、キャッシュSSD111が記憶するデータを、「キャッシュブロック」と呼称する。キャッシュブロックは、例えば、4[KB]のデータである。また、キャッシュブロックに対応するHDD112のデータを、「HDD112のデータブロック」と呼称する。図4の例では、管理データm1は、キャッシュブロックcb1に対応しており、管理データm2は、キャッシュブロックcb2に対応しており、管理データmnは、キャッシュブロックcbnに対応する。   The management data m exists for each data stored in the cache SSD 111. Here, the data stored in the cache SSD 111 is referred to as a “cache block”. The cache block is, for example, 4 [KB] data. The data in the HDD 112 corresponding to the cache block is referred to as a “data block in the HDD 112”. In the example of FIG. 4, the management data m1 corresponds to the cache block cb1, the management data m2 corresponds to the cache block cb2, and the management data mn corresponds to the cache block cbn.

第1の読み出し部401は、マイグレーションする際に、HDD112から、マイグレーション対象のsub−LUNのデータをシーケンシャルに読み出す。   The first reading unit 401 sequentially reads data of the migration target sub-LUN from the HDD 112 during migration.

第2の読み出し部402は、マイグレーション対象のsub−LUNのデータのうち変更されたキャッシュブロックをキャッシュSSD111から読み出す。例えば、第2の読み出し部402は、キャッシュSSD111のキャッシュブロックのうち、マイグレーション対象のsub−LUNに対応する全てを、変更されたキャッシュブロックとして読み出してもよい。または、例えば、第2の読み出し部402は、変更されたキャッシュブロックを検索部406から受け取ることにより、マイグレーション対象の記憶領域のデータのうち変更されたキャッシュブロックをキャッシュSSD111から読み出すこととしてもよい。   The second reading unit 402 reads the changed cache block from the migration target sub-LUN data from the cache SSD 111. For example, the second reading unit 402 may read all the cache blocks of the cache SSD 111 corresponding to the migration target sub-LUN as changed cache blocks. Alternatively, for example, the second reading unit 402 may receive the changed cache block from the search unit 406 to read the changed cache block from the migration target storage area data from the cache SSD 111.

マージ部403は、第1の読み出し部401が読み出したマイグレーション対象の記憶領域のデータと、第2の読み出し部402が読み出した変更されたキャッシュブロックとをマージする。   The merge unit 403 merges the migration target storage area data read by the first read unit 401 and the changed cache block read by the second read unit 402.

書き込み部404は、マージしたデータを、ティアリングSSD103に書き込む。   The writing unit 404 writes the merged data to the tearing SSD 103.

受け付け部405は、移動対象予定、すなわち、マイグレーション予定の記憶領域を示す情報を受け付ける。マイグレーション予定の記憶領域を示す情報は、LBAの範囲でもよいし、LUNでもよい。本実施の形態では、マイグレーション予定の記憶領域を示す情報は、マイグレーション予定となるsub−LUN IDである。具体的には、ティアリングマネージャ301が、マイグレーション予定のsub−LUN IDをティアリングドライバ311に通知する。ティアリングドライバ311は、受け付けたsub−LUN IDに対応する先頭LBAと末尾LBAとを算出して、受け付け部405に通知する。なお、どのようにマイグレーション予定のsub−LUN IDを特定するかについては、図6で説明する。   The accepting unit 405 accepts information indicating a storage target schedule, that is, a storage area scheduled for migration. The information indicating the storage area to be migrated may be an LBA range or a LUN. In the present embodiment, the information indicating the storage area scheduled for migration is a sub-LUN ID that is scheduled for migration. Specifically, the tearing manager 301 notifies the tearing driver 311 of the sub-LUN ID scheduled for migration. The tearing driver 311 calculates a head LBA and a tail LBA corresponding to the received sub-LUN ID, and notifies the reception unit 405 of the calculation. Note that how to identify the migration-sub-LUN ID will be described with reference to FIG.

検索部406は、管理データmを参照して、マイグレーション対象のsub−LUNのうち変更されたキャッシュブロックを検索する。検索部406は、検索して得られたキャッシュブロックを、第2の読み出し部402に通知する。   The search unit 406 refers to the management data m and searches for a changed cache block in the migration target sub-LUN. The search unit 406 notifies the second read unit 402 of the cache block obtained by the search.

記憶部407は、ティアリングHDD102へのアクセスが発生したことに応じて、受け付けたマイグレーション予定の記憶領域にアクセス先のLBAが含まれる場合、アクセス先のLBAを示すIO情報aを記憶する。IO情報aは、アクセス先のLBAそのものを記憶してもよいし、アクセス先のLBAと同一のLBAを有する管理データmを指し示す情報を記憶してもよい。管理データmを指し示す情報は、例えば、管理データmが格納されたRAM203上のアドレスである。図4の例では、記憶部407は、2つのIO情報a1、a2を記憶する。そして、IO情報a1は、管理データm1を指し示す情報を記憶しており、IO情報a2は、管理データm2を指し示す情報を記憶している。   In response to the occurrence of access to the tearing HDD 102, the storage unit 407 stores IO information a indicating the access destination LBA when the received migration planned storage area includes the access destination LBA. The IO information a may store the access destination LBA itself, or may store information indicating management data m having the same LBA as the access destination LBA. The information indicating the management data m is, for example, an address on the RAM 203 where the management data m is stored. In the example of FIG. 4, the storage unit 407 stores two pieces of IO information a1 and a2. The IO information a1 stores information indicating the management data m1, and the IO information a2 stores information indicating the management data m2.

そして、検索部406は、IO情報aと管理データmとを参照して、アクセス先のLBAのデータのうち変更されたデータを抽出する。具体的には、図4の例では、検索部406は、IO情報a1から管理データm1を特定し、管理データm1に対応するキャッシュブロックcb1が、変更されたものかを判断する。同様に、検索部406は、IO情報a2から管理データm2を特定し、管理データm2に対応するキャッシュブロックcb2が、変更されたものかを判断する。変更されたキャッシュブロックである場合、検索部406は、変更されたキャッシュブロックを第2の読み出し部402に通知する。   Then, the search unit 406 refers to the IO information a and the management data m, and extracts changed data from the access destination LBA data. Specifically, in the example of FIG. 4, the search unit 406 identifies the management data m1 from the IO information a1, and determines whether the cache block cb1 corresponding to the management data m1 has been changed. Similarly, the search unit 406 specifies the management data m2 from the IO information a2, and determines whether the cache block cb2 corresponding to the management data m2 has been changed. If the cache block has been changed, the search unit 406 notifies the second read unit 402 of the changed cache block.

次に、図5を用いてキャッシュメモリ読み出し処理の第一の例を示すとともに、図6を用いてキャッシュメモリ読み出し処理の第二の例を示す。   Next, a first example of the cache memory read process is shown using FIG. 5, and a second example of the cache memory read process is shown using FIG.

図5は、キャッシュメモリ読み出し処理の第一の例を示す説明図である。図5の(1)で示す処理として、ティアリングドライバ311は、キャッシュブロック回収命令をキャッシングボリューム312に通知する。キャッシュブロック回収命令には、移動対象となるsub LUNの範囲として、先頭LBAと末尾LBAとが含まれる。   FIG. 5 is an explanatory diagram illustrating a first example of cache memory read processing. As the processing shown in (1) of FIG. 5, the tearing driver 311 notifies the caching volume 312 of a cache block collection command. The cache block collection instruction includes a head LBA and a tail LBA as a range of sub LUNs to be moved.

キャッシュブロック回収命令を受信したキャッシングボリューム312は、図5の(2)で示す処理として、管理データmを参照して、先頭LBAから末尾LBAまでの範囲であり、かつ、変更された状態であるキャッシュブロックを検索する。具体的な検索例の前に、キャッシングボリューム312におけるキャッシュブロックの管理方法の一例を説明する。   The caching volume 312 that has received the cache block recovery command refers to the management data m as the processing shown in (2) of FIG. 5, and is in the range from the head LBA to the tail LBA and has been changed. Search for a cache block. Before a specific search example, an example of a cache block management method in the caching volume 312 will be described.

キャッシングボリューム312は、キャッシュブロックと1対1対応する管理データmを管理する。管理データmは、論理LBA、物理LBA、状態というフィールドを有する。論理LBAフィールドには、該当の管理データmに対応するキャッシュブロックに、ユーザのアプリケーションがアクセスする際に用いられるLBAが格納される。物理LBAフィールドには、該当の管理データmに対応するキャッシュブロックを格納するキャッシュSSD111のLBAが格納される。   The caching volume 312 manages the management data m that has a one-to-one correspondence with the cache block. The management data m has fields of logical LBA, physical LBA, and state. The logical LBA field stores the LBA used when the user application accesses the cache block corresponding to the corresponding management data m. The physical LBA field stores the LBA of the cache SSD 111 that stores the cache block corresponding to the corresponding management data m.

状態フィールドは、キャッシュブロックが変更されたものか否かを示す情報を含むものであり、キャッシュブロックの状態を示す識別子が格納される。具体的には、状態フィールドには、free、alloc、dirtyのうちのいずれかの識別子が格納される。freeは、キャッシュブロックがHDD112のデータブロックと対応していない状態を示す識別子である。allocは、キャッシュブロックに対応するHDD112のデータブロックがあり、かつ、キャッシュブロックとHDD112のデータブロックとの内容が一致する状態を示す識別子である。dirtyは、キャッシュブロックに対応するHDD112のデータブロックがあり、かつ、キャッシュブロックのデータが変更された結果、キャッシュブロックとHDD112のデータブロックとの内容が一致しない状態を示す識別子である。   The status field includes information indicating whether or not the cache block has been changed, and stores an identifier indicating the status of the cache block. Specifically, the identifier of any one of free, alloc, and dirty is stored in the state field. “free” is an identifier indicating that the cache block does not correspond to the data block of the HDD 112. “alloc” is an identifier indicating a state in which there is a data block of the HDD 112 corresponding to the cache block, and the contents of the cache block and the data block of the HDD 112 match. Dirty is an identifier indicating a state in which there is a data block of the HDD 112 corresponding to the cache block, and the contents of the cache block and the data block of the HDD 112 do not match as a result of changing the data of the cache block.

そして、キャッシングボリューム312は、HDD112のデータブロックに対応するキャッシュブロックに対応する管理データmを、アローケーションリスト501を用いて管理する。具体的には、アローケーションリスト501には、HDD112のデータブロックに対応するキャッシュブロックに対応する管理データmのアドレスが格納される。例えば、図5の例では、アローケーションリスト501には、管理データm1〜m6のアドレスが格納される。   The caching volume 312 manages the management data m corresponding to the cache block corresponding to the data block of the HDD 112 using the allocation list 501. Specifically, the address of the management data m corresponding to the cache block corresponding to the data block of the HDD 112 is stored in the allocation list 501. For example, in the example of FIG. 5, addresses of management data m1 to m6 are stored in the allocation list 501.

また、キャッシングボリューム312は、HDD112のデータブロックに対応するキャッシュブロックに対応しない管理データmを、フリーリスト502を用いて管理する。管理の方法は、アローケーションリスト501と同様の方法である。   The caching volume 312 manages management data m not corresponding to the cache block corresponding to the data block of the HDD 112 using the free list 502. The management method is the same as that of the allocation list 501.

図5の(2)で示す処理の具体例として、キャッシングボリューム312は、アローケーションリスト501が管理する管理データmを参照して、論理LBAが先頭LBAから末尾LBAまでの範囲であり、かつ、状態がdirtyの管理データmを検索する。図5の例では、キャッシングボリューム312は、論理LBAが先頭LBAから末尾LBAまでの範囲であり、かつ、状態がdirtyの管理データmとして、管理データm4〜m6を検出する。ここで、管理データm4の論理LBAがLBA0であり、管理データm5の論理LBAがLBA1であり、管理データm6の論理LBAがLBA2であるとする。   As a specific example of the processing shown in (2) of FIG. 5, the caching volume 312 refers to the management data m managed by the allocation list 501, the logical LBA is in the range from the head LBA to the tail LBA, and Search the management data m whose state is dirty. In the example of FIG. 5, the caching volume 312 detects management data m4 to m6 as management data m whose logical LBA is in the range from the head LBA to the tail LBA and whose state is dirty. Here, it is assumed that the logical LBA of the management data m4 is LBA0, the logical LBA of the management data m5 is LBA1, and the logical LBA of the management data m6 is LBA2.

管理データmを検出した後、キャッシングボリューム312は、図5の(3)の処理で示すように、検出した管理データmの論理LBAと、管理データmの物理LBAから読み出したキャッシュブロックのデータとの組をティアリングドライバ311に送信する。図5の例では、キャッシングボリューム312は、キャッシュSSD111から、管理データm4〜m6の物理LBAが示すキャッシュブロックのデータ511〜513を読み出す。そして、キャッシングボリューム312は、管理データm4の論理LBA0とデータ511との組と、管理データm5の論理LBA1とデータ512との組と、管理データm6の論理LBA2とデータ513との組とをティアリングドライバ311に送信する。   After detecting the management data m, the caching volume 312 determines the logical LBA of the detected management data m and the cache block data read from the physical LBA of the management data m, as shown in the process of (3) in FIG. Are sent to the tearing driver 311. In the example of FIG. 5, the caching volume 312 reads the cache block data 511 to 513 indicated by the physical LBAs of the management data m4 to m6 from the cache SSD 111. The caching volume 312 tiers the set of the logical LBA0 and data 511 of the management data m4, the set of the logical LBA1 and data 512 of the management data m5, and the set of the logical LBA2 and data 513 of the management data m6. Transmit to the driver 311.

図6は、キャッシュメモリ読み出し処理の第二の例を示す説明図である。キャッシュメモリ読み出し処理の第2例では、ティアリングドライバ311とキャッシングボリューム312が、キャッシュブロック回収命令を行う前に行っておく処理がある。まず、図6の(1)が示す処理として、ティアリングドライバ311は、マイグレーション予定のsub−LUNとして先頭LBAおよび末尾LBAと、タイムアウト値とをキャッシングボリューム312に送信する。   FIG. 6 is an explanatory diagram illustrating a second example of the cache memory reading process. In the second example of the cache memory read process, there is a process that the tearing driver 311 and the caching volume 312 perform before issuing a cache block collection command. First, as a process indicated by (1) in FIG. 6, the tearing driver 311 transmits a head LBA and a tail LBA as a migration-sub-LUN and a timeout value to the caching volume 312.

ここで、図6では図示していないが、ティアリングドライバ311は、図6の(1)が示す処理の前に、マイグレーション予定のsub−LUNとなる先頭LBAおよび末尾LBAとを、ティアリングマネージャ301から受け付ける。ここで、ティアリングマネージャ301は、sub−LUN単位のアクセス数の時間変化に基づいて、マイグレーション予定のsub−LUNを決定する。例えば、現在時刻より4分前において、sub−LUN1〜Cのうち最もアクセス数が多かったのがsub−LUN5であり、現在時刻より2分前において、sub−LUN1〜Cのうち最もアクセス数が多かったのがsub−LUN7であるとする。この場合、高頻度のアクセスがあるsub−LUNが2分間で2つ移動したため、ティアリングマネージャ301は、現在時刻ではsub−LUN9が最もアクセスが多くなると判断して、マイグレーション予定のsub−LUNをsub−LUN9に決定する。   Here, although not shown in FIG. 6, the tearing driver 311 sends from the tearing manager 301 the head LBA and the tail LBA that are to be migrated sub-LUNs before the processing shown in FIG. Accept. Here, the tearing manager 301 determines a sub-LUN to be migrated based on a temporal change in the number of accesses in sub-LUN units. For example, sub-LUN5 has the highest number of accesses among sub-LUN1 to C4 minutes before the current time, and the most number of accesses among sub-LUN1 to C2 minutes before the current time. It is assumed that a large number is sub-LUN7. In this case, since two sub-LUNs with high-frequency access moved in two minutes, the tearing manager 301 determines that the sub-LUN 9 has the most access at the current time, and the sub-LUN scheduled for migration is sub -Determine LUN9.

先頭LBAおよび末尾LBAと、タイムアウト値とを受け付けたキャッシングボリューム312は、図6の(2)が示す処理として、テンポラリーリスト601を生成する。テンポラリーリスト601は、先頭LBAと、末尾LBAと、開始時刻と、タイムアウト値というフィールドを有する。   The caching volume 312 that has received the start LBA, the end LBA, and the timeout value generates a temporary list 601 as the process shown in (2) of FIG. The temporary list 601 includes fields for a head LBA, a tail LBA, a start time, and a timeout value.

先頭LBAフィールドには、ティアリングドライバ311から受け付けた先頭LBAであり、マイグレーション予定の先頭LBAが格納される。末尾LBAフィールドには、ティアリングドライバ311から受け付けた末尾LBAであり、マイグレーション予定の末尾LBAが格納される。開始時刻フィールドには、テンポラリーリスト601の生成時刻を示す値が格納される。タイムアウト値には、受け付けたタイムアウト値であり、テンポラリーリスト601の生成時刻からテンポラリーリスト601を維持するまでの時間を示す値が格納される。   The start LBA field is the start LBA received from the tearing driver 311 and stores the start LBA to be migrated. The tail LBA field is the tail LBA received from the tearing driver 311 and stores the tail LBA to be migrated. A value indicating the generation time of the temporary list 601 is stored in the start time field. The time-out value is a received time-out value, and a value indicating the time from the generation time of the temporary list 601 until the temporary list 601 is maintained is stored.

ここで、キャッシュメモリ読み出し処理とは関係なく、ティアリングドライバ311が、ユーザのアプリケーションからユーザIOリクエストを受け付けたとする。この場合、ティアリングドライバ311は、図6の(3)が示す処理として、キャッシングボリューム312に、ユーザIOリクエストを送信する。   Here, it is assumed that the tearing driver 311 receives a user IO request from a user application regardless of the cache memory read process. In this case, the tearing driver 311 transmits a user IO request to the caching volume 312 as the process indicated by (3) in FIG.

ユーザIOリクエストを受信したキャッシングボリューム312は、テンポラリーリスト601の生成時刻からタイムアウト値が示す時間が経過していないかを判断する。タイムアウト値が示す時間が経過していなければ、キャッシングボリューム312は、状態がalloc、またはdirtyであり、ユーザIOリクエストのLBAと一致する論理LBAを有する管理データが存在するかを検索する。存在する場合、さらに、キャッシングボリューム312は、ユーザIOリクエストのLBAがテンポラリーリスト601の先頭LBAから末尾LBAまでの範囲に入るかを判断する。   The caching volume 312 that has received the user IO request determines whether or not the time indicated by the timeout value has elapsed from the generation time of the temporary list 601. If the time indicated by the timeout value has not elapsed, the caching volume 312 searches whether there is management data having a logical LBA that matches the LBA of the user IO request with the state being alloc or dirty. If it exists, the caching volume 312 further determines whether the LBA of the user IO request falls within the range from the first LBA to the last LBA of the temporary list 601.

ユーザIOリクエストのLBAがテンポラリーリスト601の先頭LBAから末尾LBAまでの範囲に入る場合、キャッシングボリューム312は、図6の(4)が示す処理として、IO情報aを記憶する。IO情報aは、ユーザIOリクエストに含まれるアクセス先のLBAと一致する論理LBAを有する管理データを指し示す情報である。   When the LBA of the user IO request falls within the range from the first LBA to the last LBA of the temporary list 601, the caching volume 312 stores the IO information a as the process shown in (4) of FIG. The IO information a is information indicating management data having a logical LBA that matches the access destination LBA included in the user IO request.

図6の例では、テンポラリーリスト601の生成時刻からタイムアウト値が示す時間が経過する間に、3つのユーザIOリクエストが発生して、キャッシングボリューム312が3つのIO情報aを記憶した例を示す。図6の例では、キャッシングボリューム312は、管理データm4を指し示すIO情報a−1と、管理データm5を指し示すIO情報a−2と、管理データm6を指し示すIO情報a−3とを記憶する。   The example of FIG. 6 shows an example in which three user IO requests are generated and the caching volume 312 stores three pieces of IO information a while the time indicated by the timeout value elapses from the generation time of the temporary list 601. In the example of FIG. 6, the caching volume 312 stores IO information a-1 indicating the management data m4, IO information a-2 indicating the management data m5, and IO information a-3 indicating the management data m6.

そして、図6の(5)で示す処理として、ティアリングドライバ311は、キャッシュブロック回収命令をキャッシングボリューム312に通知する。キャッシュブロック回収命令には、移動対象となるsub−LUNの範囲として、先頭LBAと末尾LBAとが含まれる。   Then, as a process shown in (5) of FIG. 6, the tearing driver 311 notifies the caching volume 312 of a cache block collection command. The cache block collection command includes a head LBA and a tail LBA as a range of sub-LUNs to be moved.

キャッシュブロック回収命令を受信したキャッシングボリューム312は、図6の(6)で示す処理として、IO情報aと管理データmとを参照して、ユーザIOリクエストのアクセス先のキャッシュブロックの状態がdirtyかを判断する。具体的には、キャッシングボリューム312は、IO情報aが示す管理データmの状態フィールドがdirtyを示すかを判断する。図6の例では、IO情報a−1〜3が示す管理データmの状態フィールドが全てdirtyであるとする。   The caching volume 312 that has received the cache block recovery command refers to the IO information a and the management data m as the processing shown in (6) of FIG. 6 and determines whether the state of the cache block to which the user IO request is accessed is dirty. Judging. Specifically, the caching volume 312 determines whether the status field of the management data m indicated by the IO information a indicates dirty. In the example of FIG. 6, it is assumed that the status fields of the management data m indicated by the IO information a-1 to 3 are all dirty.

キャッシュブロックの状態がdirtyである場合、キャッシングボリューム312は、dirtyであったキャッシュブロックの論理LBAと、キャッシュSSD111から読み出したキャッシュブロックのデータとの組をティアリングドライバ311に送信する。図6の例では、キャッシングボリューム312は、キャッシュSSD111から、IO情報a−1〜3が指し示す管理データm4〜m6の物理LBAが示すキャッシュブロックのデータ621〜623を読み出す。そして、キャッシングボリューム312は、管理データm4の論理LBA0とデータ621との組と、管理データm5の論理LBA1とデータ622との組と、管理データm6の論理LBA2とデータ623との組とをティアリングドライバ311に送信する。   When the state of the cache block is dirty, the caching volume 312 transmits a set of the logical LBA of the cache block that is dirty and the data of the cache block read from the cache SSD 111 to the tearing driver 311. In the example of FIG. 6, the caching volume 312 reads the cache block data 621 to 623 indicated by the physical LBAs of the management data m4 to m6 indicated by the IO information a-1 to 3 from the cache SSD 111. The caching volume 312 tiers the set of the logical LBA0 and data 621 of the management data m4, the set of the logical LBA1 and data 622 of the management data m5, and the set of the logical LBA2 and data 623 of the management data m6. Transmit to the driver 311.

ここで、図6で示した方法では、図6の(1)が示す処理の前に、マイグレーション予定の先頭LBAから末尾LBAの範囲で、状態が既にdirtyであるキャッシュブロックがないことを前提とする。図6の(1)が示す処理の前にマイグレーション予定の先頭LBAから末尾LBAの範囲で状態が既にdirtyであるキャッシュブロックがある可能性があるならば、キャッシングボリューム312は、次に示す処理を行えばよい。   Here, in the method shown in FIG. 6, it is assumed that there is no cache block whose state is already dirty in the range from the start LBA to the end LBA to be migrated before the processing shown in (1) of FIG. To do. If there is a possibility that there is a cache block whose state is already dirty in the range from the start LBA to the end LBA to be migrated before the process indicated by (1) in FIG. 6, the caching volume 312 performs the following process. Just do it.

まず、キャッシングボリューム312は、図6の(1)が示す処理後、管理データmを参照して、マイグレーション予定の先頭LBAから末尾LBAの範囲で状態がdirtyであるキャッシュブロックを検索する。そして、状態がdirtyであるキャッシュブロックがあれば、キャッシングボリューム312は、dirtyであるキャッシュブロックに対応する管理データmを指し示すIO情報aを記憶する。これにより、キャッシングボリューム312は、図6の(6)で示す処理により、図6の(1)が示す処理の前にマイグレーション予定の先頭LBAから末尾LBAの範囲で状態が既にdirtyであるキャッシュブロックも回収することができる。   First, after the processing shown in FIG. 6 (1), the caching volume 312 refers to the management data m and searches for a cache block whose state is dirty in the range from the start LBA to the end LBA to be migrated. If there is a cache block whose state is dirty, the caching volume 312 stores IO information a indicating the management data m corresponding to the cache block having dirty. As a result, the caching volume 312 is cached by the process shown in (6) of FIG. 6 in which the state is already dirty in the range from the start LBA to the end LBA to be migrated before the process shown in (1) of FIG. Can also be recovered.

次に、階層ストレージ装置101が実行する各ソフトウェアにより実行されるフローチャートを、図7〜図13を用いて説明する。   Next, flowcharts executed by each software executed by the hierarchical storage apparatus 101 will be described with reference to FIGS.

図7は、マイグレーション処理手順の一例を示すフローチャートである。マイグレーション処理は、下位のストレージから上位のストレージにマイグレーションする処理である。ティアリングマネージャ301は、ティアリングSSD103への移動対象のsub−LUNを選択する(ステップS701)。そして、ティアリングマネージャ301は、選択したsub−LUN IDをティアリングドライバ311に通知する(ステップS702)。   FIG. 7 is a flowchart illustrating an example of the migration processing procedure. The migration process is a process for migrating from a lower storage to an upper storage. The tearing manager 301 selects a sub-LUN to be moved to the tearing SSD 103 (step S701). Then, the tearing manager 301 notifies the tearing driver 311 of the selected sub-LUN ID (step S702).

sub−LUN IDの通知を受けたティアリングドライバ311は、HDD読み出し処理を実行する(ステップS703)。また、ティアリングドライバ311は、キャッシュメモリ読み出し処理を実行する(ステップS704)。ここで、ティアリングドライバ311は、ステップS703の処理とステップS704の処理とを並列に実行してもよい。例えば、階層ストレージ装置101が複数のCPUを有する場合に、ティアリングドライバ311は、ステップS703の処理を実行するスレッドと、ステップS704の処理を実行するスレッドとを別々のCPUに割り当ててもよい。   Upon receiving the notification of the sub-LUN ID, the tearing driver 311 executes HDD read processing (step S703). In addition, the tearing driver 311 executes a cache memory read process (step S704). Here, the tearing driver 311 may execute the processing in step S703 and the processing in step S704 in parallel. For example, when the hierarchical storage apparatus 101 has a plurality of CPUs, the tearing driver 311 may assign a thread that executes the process of step S703 and a thread that executes the process of step S704 to different CPUs.

そして、ティアリングドライバ311は、sub−LUNデータ生成処理を実行する(ステップS705)。次に、ティアリングドライバ311は、生成したsub−LUNデータをティアリングSSD103に書き込む(ステップS706)。   Then, the tearing driver 311 executes a sub-LUN data generation process (step S705). Next, the tearing driver 311 writes the generated sub-LUN data to the tearing SSD 103 (step S706).

ステップS706の処理終了後、ティアリングドライバ311は、マイグレーション処理を終了する。マイグレーション処理を実行することにより、ティアリングドライバ311は、ランダムアクセスを発行せずに下位のストレージから上位のストレージにデータを移動することができる。   After completing the process in step S706, the tearing driver 311 ends the migration process. By executing the migration process, the tearing driver 311 can move data from the lower storage to the upper storage without issuing random access.

図8は、HDD読み出し処理手順の一例を示すフローチャートである。HDD読み出し処理は、HDD112からマイグレーション対象のsub−LUNのデータを読み出す処理である。ティアリングドライバ311は、RAM203から、sub−LUNと同じデータサイズとなるメモリ領域を確保する(ステップS801)。次に、ティアリングドライバ311は、マイグレーション対象のsub−LUN IDから、HDD112における先頭LBAを算出する(ステップS802)。そして、ティアリングドライバ311は、算出した先頭LBAから、sub−LUNデータサイズ分のデータを確保したメモリ領域に読み出す命令をHDD112に通知する(ステップS803)。命令発行後、HDD112からの読み出しが完了した場合、ティアリングドライバ311は、HDD読み出し処理を終了する。HDD読み出し処理を実行することにより、階層ストレージ装置101は、HDD112からマイグレーション対象のsub−LUNのデータを読み出すことができる。   FIG. 8 is a flowchart illustrating an example of the HDD read processing procedure. The HDD reading process is a process of reading migration target sub-LUN data from the HDD 112. The tearing driver 311 secures a memory area having the same data size as the sub-LUN from the RAM 203 (step S801). Next, the tearing driver 311 calculates the head LBA in the HDD 112 from the migration target sub-LUN ID (step S802). Then, the tearing driver 311 notifies the HDD 112 of an instruction to read data from the calculated leading LBA into a memory area in which data corresponding to the sub-LUN data size is secured (step S803). When the reading from the HDD 112 is completed after the command issuance, the tearing driver 311 ends the HDD reading process. By executing the HDD read process, the hierarchical storage apparatus 101 can read the migration target sub-LUN data from the HDD 112.

図9は、キャッシュメモリ読み出し処理の第一の例の手順を示すフローチャートである。キャッシュメモリ読み出し処理は、図5で説明した、キャッシュSSD111からsub−LUNの変更されたデータを読み出す処理である。   FIG. 9 is a flowchart showing the procedure of the first example of the cache memory reading process. The cache memory reading process is a process of reading the data in which the sub-LUN is changed from the cache SSD 111 described with reference to FIG.

ティアリングドライバ311は、マイグレーション対象のsub−LUN IDから、HDD112における先頭LBAを算出する(ステップS901)。次に、ティアリングドライバ311は、先頭LBAにsub−LUNのデータサイズを加算した値を末尾LBAに代入する(ステップS902)。そして、ティアリングドライバ311は、先頭LBAから末尾LBAまでのキャッシュブロック回収命令をキャッシングボリューム312に通知する(ステップS903)。   The tearing driver 311 calculates the head LBA in the HDD 112 from the migration-target sub-LUN ID (step S901). Next, the tearing driver 311 substitutes a value obtained by adding the data size of the sub-LUN to the head LBA to the tail LBA (step S902). Then, the tearing driver 311 notifies the caching volume 312 of a cache block collection command from the head LBA to the tail LBA (step S903).

キャッシュブロック回収命令を受け付けたキャッシングボリューム312は、全ての管理データmのうち、ステップS905以降の処理について処理していない管理データmがあるか否かを判断する(ステップS904)。ステップS905以降の処理について処理していない管理データmがある場合(ステップS904:Yes)、キャッシングボリューム312は、未処理の管理データmを選択する(ステップS905)。次に、キャッシングボリューム312は、選択した管理データmに対応するキャッシュブロックの状態がdirtyか否かを判断する(ステップS906)。選択した管理データmに対応するキャッシュブロックの状態がdirtyである場合(ステップS906:Yes)、キャッシングボリューム312は、選択した管理データmに対応するキャッシュブロックの論理LBAが先頭LBAから末尾LBAの範囲か否かを判断する(ステップS907)。   The caching volume 312 that has received the cache block collection command determines whether or not there is management data m that has not been processed for the processing from step S905 onward in all management data m (step S904). When there is management data m that has not been processed for the processing after step S905 (step S904: Yes), the caching volume 312 selects unprocessed management data m (step S905). Next, the caching volume 312 determines whether or not the state of the cache block corresponding to the selected management data m is dirty (step S906). When the state of the cache block corresponding to the selected management data m is dirty (step S906: Yes), the caching volume 312 indicates that the logical LBA of the cache block corresponding to the selected management data m is in the range from the head LBA to the tail LBA. Whether or not (step S907).

選択した管理データmに対応するキャッシュブロックの状態がdirtyでない場合(ステップS906:No)、キャッシングボリューム312は、ステップS904の処理に移行する。また、選択した管理データmに対応するキャッシュブロックの論理LBAが先頭LBAから末尾LBAの範囲でない場合(ステップS907:No)も、キャッシングボリューム312は、ステップS904の処理に移行する。ここで、キャッシングボリューム312は、ステップS907の処理を先に行った後、ステップS906の処理を行ってもよい。   When the state of the cache block corresponding to the selected management data m is not dirty (step S906: No), the caching volume 312 proceeds to the process of step S904. Further, also when the logical LBA of the cache block corresponding to the selected management data m is not in the range from the head LBA to the tail LBA (step S907: No), the caching volume 312 proceeds to the process of step S904. Here, the caching volume 312 may perform the process of step S906 after performing the process of step S907 first.

選択した管理データmに対応するキャッシュブロックの論理LBAが先頭LBAから末尾LBAの範囲である場合(ステップS907:Yes)、キャッシングボリューム312は、RAM203から、キャッシュブロックのデータを格納するデータ領域を確保する(ステップS908)。次に、キャッシングボリューム312は、キャッシュSSD111内にある、選択した管理データmに対応するキャッシュブロックのデータを、確保したデータ領域に書き込む(ステップS909)。そして、キャッシングボリューム312は、選択した管理データmの論理LBAと、確保したデータ領域との組を保存する(ステップS910)。次に、キャッシングボリューム312は、選択した管理データmの状態をfreeに設定する(ステップS911)。そして、キャッシングボリューム312は、ステップS904の処理に移行する。   When the logical LBA of the cache block corresponding to the selected management data m is in the range from the start LBA to the end LBA (step S907: Yes), the caching volume 312 secures a data area for storing the cache block data from the RAM 203. (Step S908). Next, the caching volume 312 writes the cache block data corresponding to the selected management data m in the cache SSD 111 into the secured data area (step S909). Then, the caching volume 312 stores a set of the logical LBA of the selected management data m and the secured data area (step S910). Next, the caching volume 312 sets the state of the selected management data m to “free” (step S911). Then, the caching volume 312 moves to the process of step S904.

一方、ステップS905以降の処理について全ての管理データmを処理した場合(ステップS904:No)、キャッシングボリューム312は、保存した論理LBAとデータ領域との組を、ティアリングドライバ311に通知する(ステップS912)。ステップS912の処理終了後、ティアリングドライバ311とキャッシングボリューム312とは、キャッシュメモリ読み出し処理を終了する。キャッシュメモリ読み出し処理を実行することにより、階層ストレージ装置101は、マイグレーション対象のsub−LUNに含まれており、状態がdirtyであるキャッシュブロックのデータを読み出すことができる。   On the other hand, when all the management data m has been processed for the processing after step S905 (step S904: No), the caching volume 312 notifies the tearing driver 311 of the combination of the stored logical LBA and data area (step S912). ). After the process of step S912 is completed, the tearing driver 311 and the caching volume 312 end the cache memory read process. By executing the cache memory read processing, the hierarchical storage apparatus 101 can read the data of the cache block that is included in the migration target sub-LUN and whose state is dirty.

図10は、sub−LUNデータ生成処理手順の一例を示すフローチャートである。sub−LUNデータ生成処理は、sub−LUNデータを生成する処理である。   FIG. 10 is a flowchart illustrating an example of a sub-LUN data generation processing procedure. The sub-LUN data generation process is a process for generating sub-LUN data.

ティアリングドライバ311は、取得した論理LBAとデータ領域との組のうち、ステップS1003の処理について処理していない組があるか否かを判断する(ステップS1001)。ステップS1003の処理について処理していない組がある場合(ステップS1001:Yes)、ティアリングドライバ311は、未処理の組を選択する(ステップS1002)。次に、ティアリングドライバ311は、sub−LUNデータサイズ分のデータを書き込んだデータ領域の選択した組の論理LBA相当の位置に、選択した組のデータ領域のデータを書き込む(ステップS1003)。そして、ティアリングドライバ311は、ステップS1001の処理に移行する。   The tearing driver 311 determines whether there is a set that has not been processed for the process of step S1003 among the obtained sets of logical LBAs and data areas (step S1001). When there is a pair that has not been processed for the process of step S1003 (step S1001: Yes), the tearing driver 311 selects an unprocessed pair (step S1002). Next, the tearing driver 311 writes data in the selected data area at a position corresponding to the logical LBA of the selected set in the data area in which data corresponding to the sub-LUN data size has been written (step S1003). Then, the tearing driver 311 proceeds to the process of step S1001.

一方、ステップS1003の処理について全ての組について処理した場合(ステップS1001:No)、ティアリングドライバ311は、sub−LUNデータ生成処理を終了する。sub−LUNデータ生成処理を実行することにより、階層ストレージ装置101は、状態がdirtyであるキャッシュブロックのデータと、HDD112から読み出したデータとをマージしたデータを作成することができる。   On the other hand, when all the sets are processed in step S1003 (step S1001: No), the tearing driver 311 ends the sub-LUN data generation process. By executing the sub-LUN data generation process, the hierarchical storage apparatus 101 can create data obtained by merging the data of the cache block whose state is dirty and the data read from the HDD 112.

図11は、テンポラリーリスト作成処理手順の一例を示すフローチャートである。テンポラリーリスト作成処理は、テンポラリーリスト601を作成する処理である。   FIG. 11 is a flowchart illustrating an example of a temporary list creation processing procedure. The temporary list creation process is a process for creating a temporary list 601.

ティアリングマネージャ301は、近い将来マイグレーションを行う予定のsub−LUN IDを決定する(ステップS1101)。次に、ティアリングマネージャ301は、決定したsub−LUN IDをティアリングドライバ311に通知する(ステップS1102)。ティアリングドライバ311は、通知されたsub−LUN IDから、HDD112における先頭LBAを算出する(ステップS1103)。次に、ティアリングドライバ311は、先頭LBAにsub−LUNのデータサイズを加えた値を末尾LBAに代入する(ステップS1104)。そして、ティアリングドライバ311は、近い将来マイグレーションを行う予定のLBAの範囲として先頭LBAおよび末尾LBAとタイムアウト値とを、キャッシングボリューム312に通知する(ステップS1105)。   The tearing manager 301 determines a sub-LUN ID scheduled to be migrated in the near future (step S1101). Next, the tearing manager 301 notifies the tearing driver 311 of the determined sub-LUN ID (step S1102). The tearing driver 311 calculates the head LBA in the HDD 112 from the notified sub-LUN ID (step S1103). Next, the tearing driver 311 substitutes a value obtained by adding the sub-LUN data size to the head LBA to the tail LBA (step S1104). Then, the tearing driver 311 notifies the caching volume 312 of the head LBA, tail LBA, and timeout value as the range of LBAs scheduled for migration in the near future (step S1105).

そして、キャッシングボリューム312は、先頭LBAと末尾LBAとタイムアウト値とをテンポラリーリスト601として、キャッシングボリューム312内部に保存する(ステップS1106)。ステップS1106の処理終了後、ティアリングマネージャ301とティアリングドライバ311とキャッシングボリューム312とは、テンポラリーリスト作成処理を終了する。テンポラリーリスト作成処理を実行することにより、階層ストレージ装置101は、ユーザIOリクエストが発生した際に用いるテンポラリーリスト601を作成しておくことができる。   Then, the caching volume 312 stores the head LBA, tail LBA, and timeout value in the caching volume 312 as a temporary list 601 (step S1106). After the process of step S1106 is completed, the tearing manager 301, the tearing driver 311 and the caching volume 312 end the temporary list creation process. By executing the temporary list creation process, the hierarchical storage apparatus 101 can create a temporary list 601 used when a user IO request is generated.

図12は、ユーザIOリクエスト発生時処理手順の一例を示すフローチャートである。ユーザIOリクエスト発生時処理は、ユーザIOリクエストが発生した時に行う処理である。   FIG. 12 is a flowchart illustrating an example of a processing procedure when a user IO request occurs. The process when a user IO request is generated is a process performed when a user IO request is generated.

キャッシングボリューム312は、ティアリングドライバ311よりユーザIOリクエストを受け付ける(ステップS1201)。そして、キャッシングボリューム312は、ステータスがallocまたはdirtyであり、ユーザIOリクエストのLBAと一致する論理LBAを有する管理データmが存在するか否かを判断する(ステップS1202)。ユーザIOリクエストのLBAと一致する論理LBAを有する管理データmが存在する場合(ステップS1202:Yes)、キャッシングボリューム312は、ユーザIOリクエストのLBAがテンポラリーリストのLBAの範囲に入っているか否かを判断する(ステップS1203)。ユーザIOリクエストのLBAがテンポラリーリストのLBAの範囲に入っている場合(ステップS1203:Yes)、キャッシングボリューム312は、ユーザIOリクエストのLBAと一致する論理LBAを有する管理データmを指し示すIO情報aを保存する(ステップS1204)。   The caching volume 312 receives a user IO request from the tearing driver 311 (step S1201). Then, the caching volume 312 determines whether or not there is management data m having a logical LBA that matches the LBA of the user IO request with the status being alloc or dirty (step S1202). When there is management data m having a logical LBA that matches the LBA of the user IO request (step S1202: Yes), the caching volume 312 determines whether or not the LBA of the user IO request is within the LBA range of the temporary list. Judgment is made (step S1203). When the LBA of the user IO request is within the range of the LBA of the temporary list (step S1203: Yes), the caching volume 312 stores the IO information a indicating the management data m having the logical LBA that matches the LBA of the user IO request. Save (step S1204).

そして、ステップS1204の処理終了後、キャッシングボリューム312は、通常のキャッシング処理を実行する(ステップS1205)。また、ユーザIOリクエストのLBAと一致する論理LBAを有する管理データmが存在しない場合(ステップS1202:No)も、キャッシングボリューム312は、ステップS1205の処理を実行する。同様に、ユーザIOリクエストのLBAがテンポラリーリストのLBAの範囲に入っていない場合(ステップS1203:No)も、キャッシングボリューム312は、ステップS1205の処理を実行する。ここで通常のキャッシング処理とは、キャッシュアルゴリズムに従って、キャッシュSSD111かHDD112かのいずれかにユーザIOリクエストを送信することである。   Then, after the processing of step S1204 is completed, the caching volume 312 executes normal caching processing (step S1205). Also, even when there is no management data m having a logical LBA that matches the LBA of the user IO request (step S1202: No), the caching volume 312 executes the process of step S1205. Similarly, also when the LBA of the user IO request is not within the range of the LBA of the temporary list (step S1203: No), the caching volume 312 executes the process of step S1205. Here, the normal caching process is to transmit a user IO request to either the cache SSD 111 or the HDD 112 according to a cache algorithm.

そして、ステップS1205の処理終了後、キャッシングボリューム312は、ユーザIOリクエスト発生時処理を終了する。ユーザIOリクエスト発生時処理を実行することにより、階層ストレージ装置101は、マイグレーション対象のsub−LUNに含まれるキャッシュブロックを特定することができる。   Then, after the process of step S1205 is completed, the caching volume 312 ends the process when the user IO request is generated. By executing the processing at the time of occurrence of the user IO request, the hierarchical storage apparatus 101 can specify the cache block included in the migration target sub-LUN.

図13は、キャッシュメモリ読み出し処理の第二の例の手順を示すフローチャートである。キャッシュメモリ読み出し処理は、図6で説明した、キャッシュSSD111からsub−LUNの変更されたデータを読み出す処理である。   FIG. 13 is a flowchart illustrating the procedure of the second example of the cache memory read process. The cache memory reading process is a process of reading the data in which the sub-LUN has been changed from the cache SSD 111 described with reference to FIG.

ティアリングドライバ311は、マイグレーション対象のsub−LUN IDから、HDD112における先頭LBAを算出する(ステップS1301)。次に、ティアリングドライバ311は、先頭LBAにsub−LUNのデータサイズを加算した値を末尾LBAに代入する(ステップS1302)。そして、ティアリングドライバ311は、先頭LBAから末尾LBAまでのキャッシュブロック回収命令をキャッシングボリューム312に通知する(ステップS1303)。   The tearing driver 311 calculates the head LBA in the HDD 112 from the migration-target sub-LUN ID (step S1301). Next, the tearing driver 311 substitutes the value obtained by adding the data size of the sub-LUN to the head LBA for the tail LBA (step S1302). Then, the tearing driver 311 notifies the caching volume 312 of a cache block collection command from the head LBA to the tail LBA (step S1303).

キャッシュブロック回収命令を受け付けたキャッシングボリューム312は、保存したIO情報aのうち、ステップS1305以降の処理について処理していないIO情報aがあるか否かを判断する(ステップS1304)。ステップS1305以降の処理について処理していないIO情報aがある場合(ステップS1304:Yes)、キャッシングボリューム312は、未処理のIO情報aを選択する(ステップS1305)。次に、キャッシングボリューム312は、選択したIO情報aが示すキャッシュブロックの状態がdirtyか否かを判断する(ステップS1306)。   The caching volume 312 that has received the cache block collection command determines whether or not there is IO information a that has not been processed for the processing after step S1305 in the stored IO information a (step S1304). When there is IO information a that has not been processed for the processing after step S1305 (step S1304: Yes), the caching volume 312 selects unprocessed IO information a (step S1305). Next, the caching volume 312 determines whether or not the state of the cache block indicated by the selected IO information a is dirty (step S1306).

選択したIO情報aが示すキャッシュブロックの状態がdirtyである場合(ステップS1306:Yes)、キャッシングボリューム312は、RAM203から、選択したIO情報aが示すキャッシュブロックのデータを格納するデータ領域を確保する(ステップS1307)。そして、キャッシングボリューム312は、選択したIO情報aが示すキャッシュブロックのデータを、確保したデータ領域に書き込む(ステップS1308)。次に、キャッシングボリューム312は、選択したIO情報aの論理LBAと、確保したデータ領域との組を保存する(ステップS1309)。そして、キャッシングボリューム312は、選択したIO情報aに対応する管理データmの状態をfreeに設定する(ステップS1310)。ステップS1310の処理終了後、または、選択したIO情報aが示すキャッシュブロックの状態がdirtyでない場合(ステップS1306:No)、キャッシングボリューム312は、ステップS1304の処理に移行する。   When the state of the cache block indicated by the selected IO information a is dirty (step S1306: Yes), the caching volume 312 secures a data area for storing the data of the cache block indicated by the selected IO information a from the RAM 203. (Step S1307). Then, the caching volume 312 writes the cache block data indicated by the selected IO information a in the secured data area (step S1308). Next, the caching volume 312 stores a set of the logical LBA of the selected IO information a and the secured data area (step S1309). Then, the caching volume 312 sets the state of the management data m corresponding to the selected IO information a to “free” (step S1310). After the process of step S1310 is completed, or when the state of the cache block indicated by the selected IO information a is not dirty (step S1306: No), the caching volume 312 proceeds to the process of step S1304.

一方、ステップS1305以降の処理について処理していないIO情報aがない場合(ステップS1304:No)、キャッシングボリューム312は、保存した論理LBAとデータ領域との組を、ティアリングドライバ311に通知する(ステップS1311)。ステップS1311の処理終了後、ティアリングドライバ311とキャッシングボリューム312とは、キャッシュメモリ読み出し処理を終了する。キャッシュメモリ読み出し処理を実行することにより、階層ストレージ装置101は、マイグレーション対象のsub−LUNに含まれており、状態がdirtyであるキャッシュブロックのデータを読み出すことができる。さらに、図13で示すキャッシュメモリ読み出し処理は、図9で示したキャッシュメモリ読み出し処理に比べて、IO情報aによりマイグレーション対象のsub−LUNに含まれるキャッシュブロックを特定してある分、検索にかかる負荷を減らすことができる。   On the other hand, if there is no IO information a that has not been processed for the processing from step S1305 (step S1304: No), the caching volume 312 notifies the tearing driver 311 of the stored logical LBA and data area pair (step S1304: No). S1311). After the process of step S1311, the tearing driver 311 and the caching volume 312 end the cache memory read process. By executing the cache memory read processing, the hierarchical storage apparatus 101 can read the data of the cache block that is included in the migration target sub-LUN and whose state is dirty. Further, the cache memory read process shown in FIG. 13 is required to be searched in comparison with the cache memory read process shown in FIG. 9 because the cache block included in the migration target sub-LUN is specified by the IO information a. The load can be reduced.

以上説明したように、階層ストレージ装置101によれば、HDD112からシーケンシャルに読み出したデータとキャッシュブロックとをマージして、ティアリングSSD103に書き込む。これにより、階層ストレージ装置101は、HDD112へのランダム読出を抑えてマイグレーションにかかる時間を短縮することができる。例えば、階層ストレージシステム100が、ログ蓄積というような、読み出しより書き込みが主に行われるサービスに利用されるとする。この場合、キャッシュSSD111のキャッシュブロックは変更されたものがほとんどとなる。従って、この場合、階層ストレージ装置101は、キャッシュSSD111のキャッシュブロックのうち、マイグレーション対象のsub−LUNに対応する全てを、変更されたキャッシュブロックとして読み出してもよい。   As described above, according to the hierarchical storage apparatus 101, the data sequentially read from the HDD 112 and the cache block are merged and written to the tearing SSD 103. As a result, the hierarchical storage apparatus 101 can reduce random reading to the HDD 112 and reduce the time required for migration. For example, it is assumed that the hierarchical storage system 100 is used for a service in which writing is mainly performed from reading such as log accumulation. In this case, most of the cache blocks of the cache SSD 111 are changed. Therefore, in this case, the hierarchical storage apparatus 101 may read all the cache blocks of the cache SSD 111 corresponding to the migration target sub-LUNs as changed cache blocks.

また、階層ストレージ装置101によれば、管理データmを参照して、マイグレーション対象のsub−LUNのうちの変更されたデータをキャッシュSSD111から読み出してもよい。これにより、階層ストレージ装置101は、マイグレーション対象のsub−LUNのうちの変更されていないキャッシュブロック、すなわち、状態がallocであるキャッシュブロックを読み出さなくなる。従って、階層ストレージ装置101は、マイグレーション対象のsub−LUNに対応する全てのキャッシュブロックを読み出す場合に比べて、マージの処理にかかる負荷を抑制することができる。   Further, according to the hierarchical storage apparatus 101, the management data m may be referred to and changed data in the migration target sub-LUN may be read from the cache SSD 111. As a result, the hierarchical storage apparatus 101 does not read a cache block that has not been changed in the migration target sub-LUNs, that is, a cache block whose state is alloc. Therefore, the hierarchical storage apparatus 101 can suppress the load on the merge process compared to the case of reading all the cache blocks corresponding to the migration target sub-LUN.

また、階層ストレージ装置101は、マイグレーション予定のsub−LUN IDの先頭LBAから末尾LBAに対するユーザIOリクエストのアクセス先を示すIO情報aを記憶する。そして、また、階層ストレージ装置101によれば、マイグレーション時にIO情報aを参照して、マイグレーション対象のsub−LUNのうちの変更されたデータをキャッシュSSD111から読み出してもよい。これにより、マイグレーション時には、キャッシュSSD111の全てのキャッシュブロックから、マイグレーション対象のsub−LUNのキャッシュブロックを検索しなくてよく、キャッシュSSD111からの読み出しにかかる負荷を抑制することができる。   The hierarchical storage apparatus 101 also stores IO information a indicating the access destination of the user IO request from the first LBA to the last LBA of the sub-LUN ID to be migrated. Further, according to the hierarchical storage apparatus 101, the changed data of the migration target sub-LUNs may be read from the cache SSD 111 by referring to the IO information a at the time of migration. As a result, during migration, it is not necessary to search the cache block of the migration-target sub-LUN from all the cache blocks of the cache SSD 111, and the load on reading from the cache SSD 111 can be suppressed.

また、階層ストレージ装置101は、第1のストレージの記憶装置が磁気ディスクを記憶媒体とするものであり、第2のストレージが半導体メモリを記憶媒体とするものでもよい。これにより、磁気ディスクという、ランダム読み出しがシーケンシャル読み出しより低速な記憶媒体を用いる場合に、階層ストレージ装置101は、第1のストレージの記憶装置に、ランダム読み出しを抑えてマイグレーションにかかる時間を短縮することができる。   In the hierarchical storage apparatus 101, the storage device of the first storage may use a magnetic disk as a storage medium, and the second storage may use a semiconductor memory as a storage medium. As a result, when a storage medium called a magnetic disk, which uses a slower random read than sequential read, the hierarchical storage apparatus 101 reduces the time required for migration by suppressing random read to the storage device of the first storage. Can do.

また、sub−LUNのマイグレーションの高速化は、キャッシュボリュームと階層化とを組み合わせたストレージシステムを、重複除去など他のストレージコンポーネントとの連携効果を上げるうえでも有効である。具体的には、マイグレーションが短時間で終了する分、他のストレージコンポーネントの効果を、ストレージシステムの運用で引き出すことが可能になるためである。   Further, the high-speed sub-LUN migration is also effective in improving the cooperation effect of a storage system that combines a cache volume and tiering with other storage components such as deduplication. Specifically, as the migration is completed in a short time, the effect of other storage components can be extracted by the operation of the storage system.

なお、本実施の形態で説明した階層ストレージ方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本階層ストレージプログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本階層ストレージプログラムは、インターネット等のネットワークを介して配布してもよい。   The hierarchical storage method described in this embodiment can be realized by executing a program prepared in advance on a computer such as a personal computer or a workstation. This hierarchical storage program is recorded on a computer-readable recording medium such as a hard disk, a flexible disk, a CD-ROM (Compact Disc-Read Only Memory), a DVD (Digital Versatile Disk), etc., and read from the recording medium by the computer. Executed by. The hierarchical storage program may be distributed through a network such as the Internet.

上述した実施の形態に関し、さらに以下の付記を開示する。   The following additional notes are disclosed with respect to the embodiment described above.

(付記1)記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから前記第1のストレージより高速にアクセス可能な第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
制御部を有することを特徴とする階層ストレージ装置。
(Supplementary Note 1) When moving data from a first storage having a storage device and a cache memory that caches data of the storage device in a write-back manner to a second storage accessible at a higher speed than the first storage In addition, the data in the storage area to be moved is sequentially read from the storage device,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage apparatus comprising a control unit.

(付記2)前記制御部は、
前記キャッシュメモリが記憶するデータに応じて前記記憶装置の記憶領域における当該データに対応するアドレスと当該データが変更されたものか否かを示す情報とを対応付けた情報を参照して、前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出すことを特徴とする付記1に記載の階層ストレージ装置。
(Appendix 2) The control unit
The migration is performed by referring to information in which an address corresponding to the data in the storage area of the storage device is associated with information indicating whether or not the data has been changed according to data stored in the cache memory. The hierarchical storage apparatus according to appendix 1, wherein changed data among data in a target storage area is read from the cache memory.

(付記3)前記制御部は、
移動対象予定の記憶領域を示す情報を受け付け、
前記第1のストレージへのアクセスが発生したことに応じて、受け付けた前記移動対象予定の記憶領域に前記アクセスのアクセス先のアドレスが含まれる場合、前記アクセス先のアドレスを示す情報を記憶し、
前記移動対象予定の記憶領域が前記移動対象の記憶領域となる際に、記憶した前記アクセス先のアドレスを示す情報と前記キャッシュメモリが記憶するデータに応じて前記記憶装置の記憶領域における当該データに対応するアドレスと当該データが変更されたものか否かを示す情報とを対応付けた情報とを参照して、前記アクセス先の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出すことを特徴とする付記1または2に記載の階層ストレージ装置。
(Appendix 3) The control unit
Accepts information indicating the storage area scheduled for movement,
In response to the occurrence of access to the first storage, when the address of the access destination of the access is included in the received storage area scheduled to be moved, information indicating the address of the access destination is stored;
When the storage area to be moved becomes the storage area to be moved, the data in the storage area of the storage device is stored in accordance with the information indicating the stored address of the access destination and the data stored in the cache memory. Reading changed data from the cache memory with reference to information that associates the corresponding address with information indicating whether or not the data has been changed, from the cache memory The hierarchical storage apparatus according to appendix 1 or 2, characterized by:

(付記4)前記記憶装置が磁気ディスクを記憶媒体とし、前記第2のストレージが半導体メモリを記憶媒体とすることを特徴とする付記1〜3のいずれか一つに記載の階層ストレージ装置。 (Supplementary note 4) The hierarchical storage device according to any one of Supplementary notes 1 to 3, wherein the storage device uses a magnetic disk as a storage medium, and the second storage uses a semiconductor memory as a storage medium.

(付記5)記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージと、前記第1のストレージより高速にアクセス可能な第2のストレージと、前記第1のストレージと前記第2のストレージとにアクセス可能な階層ストレージ装置とを有する階層ストレージシステムであって、
前記階層ストレージ装置は、
前記第1のストレージから前記第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
ことを特徴とする階層ストレージシステム。
(Supplementary Note 5) A first storage having a storage device and a cache memory that caches data of the storage device by a write-back method, a second storage accessible at a higher speed than the first storage, and the first storage A tiered storage system having a tiered storage device accessible to the second storage and the second storage,
The hierarchical storage device
When moving data from the first storage to the second storage, data in the storage area to be moved is sequentially read from the storage device,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage system characterized by that.

(付記6)コンピュータが、
記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから前記第1のストレージより高速にアクセス可能な第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
処理を実行することを特徴とする階層ストレージ方法。
(Appendix 6)
When moving data from a first storage having a storage device and a cache memory that caches data of the storage device in a write-back manner to a second storage accessible at a higher speed than the first storage, the storage From the device, sequentially read the data of the storage area to be moved,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage method characterized by executing processing.

(付記7)コンピュータに、
記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから前記第1のストレージより高速にアクセス可能な第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
処理を実行させることを特徴とする階層ストレージプログラム。
(Appendix 7)
When moving data from a first storage having a storage device and a cache memory that caches data of the storage device in a write-back manner to a second storage accessible at a higher speed than the first storage, the storage From the device, sequentially read the data of the storage area to be moved,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage program characterized by causing processing to be executed.

a IO情報
m 管理データ
100 階層ストレージシステム
101 階層ストレージ装置
102 ティアリングHDD
103 ティアリングSSD
111 キャッシュSSD
112 HDD
401 第1の読み出し部
402 第2の読み出し部
403 マージ部
404 書き込み部
405 受け付け部
406 検索部
407 記憶部
a IO information m Management data 100 Tier storage system 101 Tier storage device 102 Tiering HDD
103 tearing SSD
111 cache SSD
112 HDD
401 First Reading Unit 402 Second Reading Unit 403 Merging Unit 404 Writing Unit 405 Accepting Unit 406 Searching Unit 407 Storage Unit

Claims (6)

記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから前記第1のストレージより高速にアクセス可能な第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
制御部を有することを特徴とする階層ストレージ装置。
When moving data from a first storage having a storage device and a cache memory that caches data of the storage device in a write-back manner to a second storage accessible at a higher speed than the first storage, the storage From the device, sequentially read the data of the storage area to be moved,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage apparatus comprising a control unit.
前記制御部は、
前記キャッシュメモリが記憶するデータに応じて前記記憶装置の記憶領域における当該データに対応するアドレスと当該データが変更されたものか否かを示す情報とを対応付けた情報を参照して、前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出すことを特徴とする請求項1に記載の階層ストレージ装置。
The controller is
The migration is performed by referring to information in which an address corresponding to the data in the storage area of the storage device is associated with information indicating whether or not the data has been changed according to data stored in the cache memory. 2. The hierarchical storage apparatus according to claim 1, wherein changed data among data in a target storage area is read from the cache memory.
前記制御部は、
移動対象予定の記憶領域を示す情報を受け付け、
前記第1のストレージへのアクセスが発生したことに応じて、受け付けた前記移動対象予定の記憶領域に前記アクセスのアクセス先のアドレスが含まれる場合、前記アクセス先のアドレスを示す情報を記憶し、
前記移動対象予定の記憶領域が前記移動対象の記憶領域となる際に、記憶した前記アクセス先のアドレスを示す情報と前記キャッシュメモリが記憶するデータに応じて前記記憶装置の記憶領域における当該データに対応するアドレスと当該データが変更されたものか否かを示す情報とを対応付けた情報とを参照して、前記アクセス先の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出すことを特徴とする請求項1または2に記載の階層ストレージ装置。
The controller is
Accepts information indicating the storage area scheduled for movement,
In response to the occurrence of access to the first storage, when the address of the access destination of the access is included in the received storage area scheduled to be moved, information indicating the address of the access destination is stored;
When the storage area to be moved becomes the storage area to be moved, the data in the storage area of the storage device is stored in accordance with the information indicating the stored address of the access destination and the data stored in the cache memory. Reading changed data from the cache memory with reference to information that associates the corresponding address with information indicating whether or not the data has been changed, from the cache memory The hierarchical storage apparatus according to claim 1 or 2, characterized in that:
記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージと、前記第1のストレージより高速にアクセス可能な第2のストレージと、前記第1のストレージと前記第2のストレージとにアクセス可能な階層ストレージ装置とを有する階層ストレージシステムであって、
前記階層ストレージ装置は、
前記第1のストレージから前記第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
ことを特徴とする階層ストレージシステム。
A first storage having a storage device and a cache memory that caches data of the storage device in a write-back manner; a second storage accessible at a higher speed than the first storage; the first storage; A hierarchical storage system having a hierarchical storage device accessible to a second storage,
The hierarchical storage device
When moving data from the first storage to the second storage, data in the storage area to be moved is sequentially read from the storage device,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage system characterized by that.
コンピュータが、
記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから前記第1のストレージより高速にアクセス可能な第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
処理を実行することを特徴とする階層ストレージ方法。
Computer
When moving data from a first storage having a storage device and a cache memory that caches data of the storage device in a write-back manner to a second storage accessible at a higher speed than the first storage, the storage From the device, sequentially read the data of the storage area to be moved,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage method characterized by executing processing.
コンピュータに、
記憶装置と前記記憶装置のデータをライトバック方式でキャッシュするキャッシュメモリとを有する第1のストレージから前記第1のストレージより高速にアクセス可能な第2のストレージにデータを移動させる際に、前記記憶装置から、移動対象の記憶領域のデータをシーケンシャルに読み出し、
前記移動対象の記憶領域のデータのうち変更されたデータを前記キャッシュメモリから読み出し、
読み出した前記移動対象の記憶領域のデータと、読み出した前記変更されたデータとをマージし、
マージしたデータを、前記第2のストレージに書き込む、
処理を実行させることを特徴とする階層ストレージプログラム。
On the computer,
When moving data from a first storage having a storage device and a cache memory that caches data of the storage device in a write-back manner to a second storage accessible at a higher speed than the first storage, the storage From the device, sequentially read the data of the storage area to be moved,
Read changed data from the storage area to be moved from the cache memory,
Merge the read data of the storage area to be moved and the read changed data,
Write the merged data to the second storage,
A hierarchical storage program characterized by causing processing to be executed.
JP2015090895A 2015-04-27 2015-04-27 Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program Pending JP2016207096A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015090895A JP2016207096A (en) 2015-04-27 2015-04-27 Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program
US15/073,010 US10007437B2 (en) 2015-04-27 2016-03-17 Management apparatus, storage system, method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015090895A JP2016207096A (en) 2015-04-27 2015-04-27 Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program

Publications (1)

Publication Number Publication Date
JP2016207096A true JP2016207096A (en) 2016-12-08

Family

ID=57147643

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015090895A Pending JP2016207096A (en) 2015-04-27 2015-04-27 Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program

Country Status (2)

Country Link
US (1) US10007437B2 (en)
JP (1) JP2016207096A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11210018B2 (en) * 2019-05-20 2021-12-28 Honeywell International Inc. Holistic linking of data across data sources
CN110543367B (en) * 2019-08-30 2022-07-26 联想(北京)有限公司 Resource processing method and device, electronic device and medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257610A (en) * 1992-03-12 1993-10-08 Fujitsu Ltd Device and method for reading file
JP2013065060A (en) * 2011-08-05 2013-04-11 Toshiba Corp Information processor and cache method
JP2013077161A (en) * 2011-09-30 2013-04-25 Toshiba Corp Information processor, hybrid storage device and cache method
JP2014164510A (en) * 2013-02-25 2014-09-08 Fujitsu Ltd Storage control program, storage control device, storage system and storage control method

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8825685B2 (en) 2009-11-16 2014-09-02 Symantec Corporation Selective file system caching based upon a configurable cache map
US9003104B2 (en) * 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US20120215970A1 (en) * 2011-02-22 2012-08-23 Serge Shats Storage Management and Acceleration of Storage Media in Clusters
US20120311271A1 (en) * 2011-06-06 2012-12-06 Sanrad, Ltd. Read Cache Device and Methods Thereof for Accelerating Access to Data in a Storage Area Network
US9430386B2 (en) * 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
JP5944587B2 (en) * 2013-07-29 2016-07-05 株式会社日立製作所 Computer system and control method
US20150074355A1 (en) * 2013-09-12 2015-03-12 Lsi Corporation Efficient caching of file system journals

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05257610A (en) * 1992-03-12 1993-10-08 Fujitsu Ltd Device and method for reading file
JP2013065060A (en) * 2011-08-05 2013-04-11 Toshiba Corp Information processor and cache method
JP2013077161A (en) * 2011-09-30 2013-04-25 Toshiba Corp Information processor, hybrid storage device and cache method
JP2014164510A (en) * 2013-02-25 2014-09-08 Fujitsu Ltd Storage control program, storage control device, storage system and storage control method

Also Published As

Publication number Publication date
US20160313915A1 (en) 2016-10-27
US10007437B2 (en) 2018-06-26

Similar Documents

Publication Publication Date Title
JP6355650B2 (en) Memory redressing for non-volatile storage devices
KR100965051B1 (en) Variable space page mapping method and apparatus for flash memory device
JP5685676B2 (en) Computer system and data management method
JP5593577B2 (en) Storage system and control method thereof
JP5944587B2 (en) Computer system and control method
US8782335B2 (en) Latency reduction associated with a response to a request in a storage system
JP6270827B2 (en) Method, system, and computer program for data migration
JP6131170B2 (en) Computer system and data arrangement control method
JP5309259B2 (en) Storage apparatus and control method thereof
JP2003345514A (en) Computer system
WO2017149592A1 (en) Storage device
JPWO2011092738A1 (en) Storage system management system and method having a pool composed of real areas with different performance
US20150363134A1 (en) Storage apparatus and data management
JP6724534B2 (en) Information processing apparatus, duplicate elimination program, and duplicate elimination method
JPWO2017006674A1 (en) Information processing system, storage control device, storage control method, and storage control program
US9483186B1 (en) Selectable policies for identifiable storage command streams
KR101017067B1 (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
JP6995728B2 (en) Storage equipment, management methods and programs
WO2017006675A1 (en) Information processing system, storage control device, storage control method, and storage control program
US11474750B2 (en) Storage control apparatus and storage medium
WO2016002325A1 (en) Information processing system, information processing method, storage control device, and control method and control program for storage control device
JP2016207096A (en) Hierarchical storage device, hierarchical storage system, hierarchical storage method, and hierarchical storage program
WO2018008676A1 (en) Information processing system, cache allocation method, memory control device, memory control method, and recording medium
JP6521694B2 (en) Storage control system and storage control device
JP6112193B2 (en) Access control program, disk device, and access control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190122