JPWO2014174653A1 - ストレージシステム - Google Patents
ストレージシステム Download PDFInfo
- Publication number
- JPWO2014174653A1 JPWO2014174653A1 JP2015513448A JP2015513448A JPWO2014174653A1 JP WO2014174653 A1 JPWO2014174653 A1 JP WO2014174653A1 JP 2015513448 A JP2015513448 A JP 2015513448A JP 2015513448 A JP2015513448 A JP 2015513448A JP WO2014174653 A1 JPWO2014174653 A1 JP WO2014174653A1
- Authority
- JP
- Japan
- Prior art keywords
- page
- storage device
- access frequency
- tier
- storage
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
突発的な短周期負荷の増減も考慮した上でデータの階層間配置を実現し、高階層でのデータヒット率を向上させるためのストレージシステムを開示する。本発明のストレージシステムは第1の期間中のホスト装置からのアクセス頻度である第1のアクセス頻度と、第1の期間より短い第2の期間中のホスト装置からのアクセス頻度である第2アクセス頻度とを管理する。階層間のデータ再配置は、第1のアクセス頻度に基づいて第1の期間周期で行うとともに、第1のアクセス頻度と第2のアクセス頻度に基づいた第2の再配置の要否判定を前記ホスト装置からのアクセスに同期して行う。ここで、第1の再配置の要否判定に用いる閾値と、第2の再配置の要否判定に用いる閾値とは異なるものとする。
Description
本発明は、複数の階層を持つストレージシステムの自動階層制御に関する。
データ量の増大化、データ種類の多様化と、HDD(Hard Disk Drive)より高速なSSD(Solid State Drive)の普及によるストレージ内の記憶媒体の多様化により、適切な記憶媒体階層へのデータ配置が困難となってきている。この課題に応える一手段として,データのアクセス頻度に応じてデータを適切な記憶媒体に自動的に格納する,ストレージ自動階層配置機能の普及が進んでいる。
一般的に自動階層管理機能は、一定の周期内(負荷モニタリングの計測期間)で、ページのI/O頻度が高い場合に、ページを上位階層へ移動(プロモーションと呼ぶ)し、ページのI/O頻度が低い場合に、ページを下位階層に移動(デモーションと呼ぶ)する。また、前記の周期の間隔で更新される、指数移動平均値を2種類(少ない周期数で増加/減衰する値と、多い周期数で増加/減衰する値)採取し、その2種類の値を組み合わせて、1個の指標値、つまり前記のI/O頻度(負荷指標)とすることで短い周期のI/O変動も考慮する技術もある(例えば、特許文献1参照)。
しかし上記特許文献1記載の技術では、所定周期ごとにモニタを採取して再配置を実行しているため、周期よりも短い、突発的な短周期の負荷に追従することが困難である。しかし、単純に数秒から数分オーダーの短い周期とすると、短期間で負荷が減衰するページが大量に再配置されるととなり、長周期の安定的なTier1ヒット率を損ねることとなる。さらに、モニタの周期毎の集計にかかるコントローラの計算量増大化や、ページ移動量増加によるキャッシュやドライブへの負荷影響(性能低下・SSD寿命低下)が大きくなる。
上記課題を解決するために、本発明は、基本配置を長周期負荷で決定し、長周期とは異なる閾値で、短周期負荷のページの移動判定を実施するストレージシステムを提供する。具体的には、本願の開示するストレージシステムは、第1の記憶デバイスと、第1の記憶デバイスより性能のよい第2記憶デバイスとを有する。コントローラは、複数の論理領域を有する仮想ボリュームをホスト装置に提供し、ライト要求を受信した後に第1又は第2の記憶デバイスの記憶領域を、ライト要求を受信した論理領域に割り当て、又、割り当てられた記憶領域に格納されるデータを第1の記憶デバイスと第2の記憶デバイス間で再配置して前記論理領域への割り当てを再配置先の記憶領域に変更する。特に、コントローラは、第1の期間中のホスト装置からのアクセス頻度である第1のアクセス頻度と、第1の期間より短い第2の期間中のホスト装置からのアクセス頻度である第2アクセス頻度とを管理し、第1のアクセス頻度に基づいて第1の期間周期で第1の再配置を行うとともに、第1のアクセス頻度と第2のアクセス頻度に基づいた第2の再配置の要否判定を前記ホスト装置からのアクセスに同期して行うことを特徴とする。ここで、第1の再配置の要否判定に用いる閾値と、第2の再配置の要否判定に用いる閾値とは異なる。
本願によれば、突発的な短周期負荷の増減も考慮した上でデータの階層間配置を実現することができ、高階層でのデータヒット率を向上することができる。
以下、図面に基づいて、本発明の実施の形態を説明する。添付図面では、機能的に同じ要素を同じ番号で表示する場合がある。添付図面は、本発明の原理に則った具体的な実施形態と実施例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
さらに、本発明の実施形態は、後述するように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし、専用ハードウェアで実装してもよいし、またはソフトウェアとハードウェアの組み合わせで実装しても良い。
以後の説明では、管理用の情報をテーブル形式で説明するが、管理用の情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やディレクトリ構造等その他の方法で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行う場合がある。プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
図1は、本発明の第一実施形態に係る計算機システムの構成例を示す図である。ホスト101は、例えば一般的なサーバにより構成され、ネットワーク103を介してストレージシステム104のポート106に接続する。ホスト101は、ストレージシステム104に対してデータのリードやライト命令を発行し、ストレージシステム104がその命令に応じてデータの読み込みや書き込みを実行する。ネットワーク103は、例えばSAN(Storage Area Network)や、イーサネット(登録商標)などにより構成する。また、管理サーバ102は、ネットワーク103を介して、ストレージシステム104の保守I/F107またはポート108に接続する。ストレージ管理者が、管理サーバ102を用いて、ストレージシステム104に対して、ストレージシステムを運用する上で必要な各種設定や管理のための命令を送信する。外部ストレージ105が接続されている場合には、ストレージシステム104のポート108に接続される。この外部ストレージ105接続の際に、ネットワーク103を経由してストレージシステム104のポート108に接続してもよい。外部ストレージ105の提供するボリュームはストレージシステム104にてストレージシステム104内部のボリュームと同様に扱うことができる。この具体的な方法については、特許文献2に記載されているため、詳細は割愛する。
次にストレージシステム104の内部構成について説明する。ストレージシステム104の内部では、内部ネットワーク112を介してポート106、保守I/F107、プロセッサパッケージ109、キャッシュメモリ110、共有メモリ111、ポート108、ドライブ113、ドライブ114を接続する。キャッシュメモリ110は、ストレージシステム104のI/O処理のスループットやレスポンスを向上させるために、データを一時的なキャッシュとして格納するための高速アクセスが可能なメモリである。プロセッサパッケージ109は、ローカルメモリ118とプロセッサ119により構成し、複数あってもよい。プロセッサ119はホスト101からのリードやライト命令を処理するために、ドライブ115、116、外部ストレージ105とキャッシュメモリ110間のデータの転送処理などを実行する。共有メモリ111は、プロセッサ119がリードやライト命令を処理し、またストレージの機能(ボリュームのコピー機能など)を実行する上で、必要な制御用の情報を格納するメモリであり、複数のプロセッサパッケージ109A,B間のプロセッサ119で共有している情報を格納するメモリである。ローカルメモリ118は、プロセッサ119がリードやライト命令を処理し、またストレージの機能を実行する上で、必要な制御用の情報を格納するメモリであり、プロセッサ119が占有して使用できる領域である。ローカルメモリ118には、例えばプロセッサ119により実行するプログラムなどを格納する。
ドライブ113、114は性能の異なる複数種類のドライブを含む。例えばFC(Fibre Channel),SAS(Serial Attached SCSI),SATA(Serial Advanced Technology Attachment)などのインターフェイスを持つハードディスクドライブ。ハードディスクドライブと比較し、I/Oスループット性能、I/Oレスポンス性能が高いSSD(Solid State Drive)などにより構成される。これらの複数の種類のドライブを、近い性能を持つドライブに分類したものが階層(Tier)115、116、117である。階層間の関係は性能の上下関係により定義される。通常は性能の高いドライブ(SSDなど)順に、Tier1からTier2、3と構成する。又、外部ストレージ中のドライブは使わなくなった旧機種などを接続するケースを想定し、性能が低いことを前提として最下位Tierとして管理してもよいし、ユーザが管理I/Fを通して外部ストレージの性能に応じて階層を設定してもよい。
図2は、本発明の第一実施形態に係るストレージシステムの論理構成を示す図である。プロセッサ119がホストに提供する仮想ボリューム201は、ホスト101から認識される論理的な記憶領域であり、ホスト101からのリード又はライト命令が発行対象である。プール206は、1個以上のプールボリューム203により構成される。プールボリューム204はそれぞれドライブ113,114,外部ストレージ105のドライブの何れかの記憶領域から構成され、ドライブの所属する階層に応じて分類されている。本実施例では、SSDの階層115(プールボリューム203Aに対応)と、SASの階層116(プールボリューム203B,203Cに対応)と、外部接続の階層117(プールボリューム203D,203Eに対応)の3個の階層を持つ。
プロセッサ119は、ホスト101がWrite命令を発行した仮想ボリューム201中のWrite命令の対象となった記憶領域に、未使用の記憶領域をプール206から所定単位(ページ)で割り当てる(205A)。次回のホスト101からの同じページへのRead/Write命令に対しては、既に割り当てられているプールボリューム203の領域に対してI/O処理を実行することにより、あたかもホスト101が仮想ボリュームに対してI/O処理を実行しているように処理される。仮想ボリューム201を用いて、使用する部分のみプールボリューム203の領域を割り当てることにより、限られた記憶容量を効率的に使用できることが可能となる。
各仮想ボリュームを構成するページ202毎にホストからのI/O処理の特性が存在する(これをアクセスローカリティと呼ぶ)。例えば、I/Oの頻度が高いページと低いページが混在する場合、一般的にはI/Oの頻度が高いページを上位の階層に配置したほうが、システム全体の性能を向上することができる。例えば、SSDの階層(115)は100IOP、SASの階層(116)は10IOPS処理できるとする。ここで50IOPSの特性を持つページ202CにSAS階層が割り当たり、20IOPSの特性を持つページ202AにSSD階層が割りあたっている場合、ストレージシステム104は、基本的にホストからのページに対するIOPSの比率は一定であることが多いため、全体として10(SAS階層の上限)+25=35IOPSの性能しか発揮できない。この状態をネック状態と呼ぶ。ページ202CをSASから、SSDの階層へプロモーションすることができれば、ストレージシステム104は、全体として50+20=70IOPSの性能を発揮できる。
上述のプロモーションは、具体的には、ページ204Cのデータを未使用のページ204Bにコピーし、仮想ボリューム201Aのページ202Cとプールボリューム203Bのページ204Cとの対応づけ(205C)を、仮想ボリューム201Aのページ202Cとプールボリューム203Aのページ204Bとの対応づけ(205B)に変更することにより実行する(図16のS1604)。デモーションによるデータ再配置も同様の構成により実施可能である。
度数分布207は、各ページのI/O数の分布を表す。グラフ209は、左からI/O数の多い順番に全ページを並べたときの、各ページのI/O数を縦軸に表す。Tier割り当て閾値208(=T)は、どのI/O数のページをどの階層に割り当てるかを決める閾値である。I/O数の高いページには、例えば、Tier割り当て閾値208Aと度数分布のグラフ209の交点から、最も性能の高いページの、範囲210Aに属するページは、Tier1(本実施例ではSSD)の階層115に割り当てる。また、Tier割り当て閾値208Aと度数分布のグラフ209の交点から、Tier割り当て閾値208Bと度数分布のグラフ209の交点までの、範囲210Bに属するページは、Tier2(本実施例ではSAS)の階層116に割り当てる。また、Tier割り当て閾値208Bと度数分布のグラフ209の交点から、最小のI/O数のページまでを、Tier3(本実施例では外部ストレージ)の階層117に割り当てる。以上のようにして、I/O数の高い順番で上位階層から順番に割り当てることができる。
Tier割り当て閾値208はストレージ管理者が値を指定してもよいし、ストレージシステム104が算出してもよい。又、Tier割り当て閾値208の初期値(ストレージシステムを起動した後、度数分布を未作成の段階時)は、例えば0として、上位階層からつめて割り当てることにすることができる。
図3にて、本発明のページ配置の考え方を説明する。まず、本発明において、基本的なページ配置は、定められた周期(長周期)のモニタを元に決定する。具体的には図2で示したように、長周期のモニタを元に作成されたプールの度数分布207から、Tier割り当て閾値208(変数Tで表わす)を決定し、ページを振り分ける。図3の例では、T=2以上の長周期の負荷(長周期IOPS)のページをTier1に配置し、T=2を下回る長周期IOPSのページをTier2に配置する。以上のように、長周期に渡ってIO負荷量が大きいページは、長い周期で考えて安定したTier1ヒット性能が期待できることが多い。このため本発明においては、定常的なページ配置階層は、長周期IOPSを基に決定している。一方で、一般的なI/Oパターンを分析すると、短い間隔(秒〜数分)で非常に高い負荷の続くページがある場合がある。こうしたI/O変化に単純に再配置周期を短くして対応すると、短期間で負荷が減衰したページが大量に下位階層に再配置されるため、全体としての高階層データヒット率を損ねることとなる。
そこで、長周期を基準に基本配置を決めた上で、短周期の負荷(短周期IOPS)を考慮して先の基本配置用とは異なる基準にて行う階層間データ再配置とを組み合わせて実行する。つまり、長周期負荷を基準に決定した閾値(Tier割り当て閾値208)を元に、長周期/短周期負荷を判定して短周期でのデモーション対象のページを選択し、デモーション対象ページの長周期/短周期負荷よりも一定以上高い短周期IOPSのページを短周期でのプロモーション対象として選択し再配置する。さらに、前記の短周期のプロモーション/デモーションは、突発的な負荷であり、減衰が周期よりも早い可能性が高いことを考慮して予め定めた周期の長さに依存させるのではなく、I/Oに連動してTierの移動要否判定を実行することとする。本構成により、長周期の安定的なTier1ヒット率を考慮しつつ、突発的にI/Oの高いページもTier1に配置することで、全体のTier1ヒット率を向上させることが出来る。例えば、302で示したページは、長周期IOPSが3とTier1中ページで、最も長周期の負荷が低く、短周期I/Oも3IOPSである。また、301で示したページは短周期IOPSが5IOPSであり、前記デモーション対象の長周期IOPSの3IOPSよりも高いIOPSであるため、一時的にこれらのページを入れ替えることにより、長周期のみで配置した場合より高いTier1ヒット率を実現できる。
また、前記の短周期のプロモーション/デモーションは、基本的に、Tier1(最上位階層)へのプロモーションと、そのプロモーションを実行するために空きページ領域を確保するためのTier1からのデモーションを優先して実行すべきである。高負荷時等の特殊な場合を除いて、Tier1のドライブレスポンスは最も小さい。よって最上位階層であるTier1を単周期プロモーション実行の再配置先とすることが全体の平均レスポンス短縮に最も効果があるためである。
上記踏まえて、本実施例ではTier1を短周期再配置の対象とするが、Tier数が3以上の場合、Tier1より低い階層も含めて短周期再配置の対象としても良い。同様に、各Tierの平均ドライブレスポンスが小さい順に、動的に短周期再配置対象とする優先順位を決めてもよい。例えば各Tierのドライブ稼働率によって、レスポンスは異なる。したがって、Tier1の稼働率がきわめて高い場合に、Tier2〜のレスポンス時間を上回ってしまう場合がある。例えば、Tier1の平均ドライブレスポンスが10msで、Tier2の平均ドライブレスポンスが5msの場合は、本願で開示する短周期でのプロモーション、デモーションをTier2へのプロモーションとその空きページ領域確保のためのデモーションについて実行するようにしてもよい。
図5に共有メモリ111に配置するテーブル、図6にローカルメモリ118に格納されるプログラムを示す。これらのテーブル、プログラムの配置場所は例似する場所に限らず、各ローカルメモリ118の他、共有メモリ111ドライブ113等であってもよいし、これらの間で階層管理された空間でもよい。
ダイナミックマッピングテーブル501は、仮想ボリューム201の各ページと、割り当てられるプールボリューム203の領域と、当該ページのモニタ情報との対応関係とを管理するテーブルである。論理物理アドレス変換テーブル503は、パリティグループ(PG)と、プールボリュームと、プールボリュームのデータを格納する物理ディスクのアドレスとの対応関係を管理するテーブルである。ページ毎モニタテーブル502は、I/O数を含む、各ページのモニタ情報を管理するテーブルである。仮想ボリューム度数分布テーブル504は、仮想ボリュームに関する、I/O数範囲毎のページ数の分布を管理するテーブルである。プール度数分布テーブル505は、プールに関する、I/O数範囲毎のページ数の分布を管理するテーブルである。ページ再配置実行キュー506は、ページ再配置を実行する際の待ちキューである。設定情報テーブル507は、管理I/F等から設定される各種パラメータを管理するテーブルである。キャッシュ管理テーブル508は、キャッシュメモリ110にデータを格納する際にキャッシュメモリにあるデータのダーティ/クリーン状態管理を保持するテーブルである。仮想ボリュームへの書き込みデータをキャッシュする場合には、キャッシュメモリ110のアドレスと対応する仮想ボリューム201のページを特定するアドレスとも対応づけて管理される。
図6で説明するプログラムはプロセッサ119にて実行される。ホストI/O処理プログラム601は、ホスト101からのI/O受領時に、仮想ボリューム201に対するRead/Write要求を処理するプログラムである。デステージ処理プログラム604は、キャッシュメモリ上の物理ディスク未反映データを、物理ディスクに格納するプログラムであり、ホストI/Oとは非同期に実行される。度数分布作成処理プログラム602は、Tier割り当て閾値を計算するプログラムであって所定周期(具体的には前記長周期の間隔)で実行される。モニタ更新&Tier判定処理603はページ毎モニタテーブル502の各種情報の更新と、ページのTier移動の判定をホストI/O処理601に同期して実施する。本プログラムは、Tier1へのプロモーション又はTier1へのデモーションを実行する。非同期再配置判定処理プログラム606は、図14の度数分布作成が完了すると起動され、所定周期にてページ毎モニタテーブル502を参照し、ページ毎に適切なTierの判定を実行するプログラムである。本プログラムは、Tier1へのプロモーション以外の動作を実行する。ページ再配置処理プログラム605は、ページを再配置するプログラムであり周期的に実行される。
ページ毎モニタテーブル502や、プール度数分布テーブル505はホスト101や管理サーバ102上に配置されても良く、この場合は、度数分布作成処理プログラム602はホスト101や管理サーバ102上で動作する。
図7にて、ダイナミックマッピングテーブル501の構造を例示する。ダイナミックマッピングテーブルの1つのエントリは、仮想ボリューム中のページと当該ページに割り当てられるプールの領域を関連づける。仮想ボリューム中のページは仮想ボリューム番号702と、該仮想ボリューム内の該ページの開始論理アドレス703とで識別する。また、プールボリュームの各領域は、プール番号701とプールボリューム番号704と、プールボリューム内の該領域の開始論理アドレス705とで識別する。一方、モニタ情報は、モニタ情報インデックス番号706で識別する。該モニタ情報インデックス番号は、ページ毎モニタテーブル502の、モニタ情報インデックス番号901に対応するが、直接ダイナミックマッピングテーブル501の要素として格納してもよい。 又、ダイナミックマッピングテーブル501は、所定の初期値データ(例えば0データ)が格納されるデフォルト値ページを管理する。容量効率考慮して、デフォルト値ページはプールに少なくとも1つ以上あればよい。データの書き込みが一度もされていない仮想ボリュームの領域を特定する、仮想ボリューム702の論理アドレス703に対応するプールボリューム番号と論理アドレスには、デフォルト値ページのアドレスが格納する。
またダイナミックマッピングテーブル501は、プール206内で仮想ボリュームに未割当のページを特定するプールボリューム番号と論理アドレスを管理する。サーバから仮想ボリューム702の論理アドレス703にデータの書き込みが一度も無かった箇所に初めてデータの書き込みがあった場合は、前記空きページのプールボリューム番号と論理アドレスを書き込み先の論理アドレス703に対応づける。
図8にて、論理物理アドレス変換テーブル503の構造を示す。論理物理アドレス変換テーブルの1つのエントリは、プールボリューム204と、該プールボリュームのデータを格納するPG(パリティグループ)番号と物理ドライブ(113または114)の領域との対応関係を示す。プールボリュームは、プールボリューム番号801で識別する。プールボリュームは、PG上に複数定義される。プールボリュームに対応するPGはPG番号802で識別する。また、PGに対応する物理ドライブの領域は、物理ドライブの番号803と、該物理ドライブの開始アドレス804とで識別する。
このプールボリュームは、プールへの増設・減設の単位を表している。ただし、この増設単位は、PG上に定義された論理VOLではなく、PGそのものでもよい。その場合は、ダイナミックマッピングテーブルに格納するプールボリューム番号704と論理アドレス705を、PG上のアドレスとしてもよい。
図9にて、ページ毎モニタテーブル502の構造を示す。ページ毎モニタテーブルの1つのエントリは、モニタ情報インデックス番号901で識別される特定のページ202のモニタ情報を示す。I/Oカウンタ902は、一定の周期のI/O数を格納する。この周期は、前述した度数分布作成処理プログラム602の動作する周期と同じであり、度数分布作成処理プログラム602はこの一定の周期のI/O数を処理の対象とする。
本実施例では複数の長周期I/Oカウンタ(A面)902Aと長周期I/Oカウンタ(B面)902Bとを設ける。うち、一方をホストI/O処理プログラム601とデステージ処理プログラム604によるモニタ採取用のカウンタとし、他方を度数分布作成処理602とモニタ更新&Tier判定処理603と非同期再配置判定処理プログラム606用のカウンタとして切り替えて利用することで、モニタを採取しながら、前周期の確定したモニタデータを用いてTierを判定してページを再配置する処理を、並行に実行できる。
テンポラリカウンタ903は、短周期I/Oを測定するために用いられる。前回テンポラリカウンタ満了時刻904に示す時間から、現在までの間に、何回I/Oがカウントされたかを示す。テンポラリカウンタ903の値がN回(=テンポラリカウンタ満了値)にカウントアップされるときに、前回テンポラリカウンタ満了時刻904は現在時刻に更新され、再度テンポラリカウンタを0にする。テンポラリカウンタ903が0となる契機で、(前回テンポラリカウンタ満了時刻904−現在時刻)÷Nにより、長周期とは別の周期のIOPSが計測される。以上のように負荷をカウントすることにより、Tier閾値設定のために設定された所定周期に依存せずに、N回到着する期間が短ければ短いほど(IOPSが高ければ高いほど)短周期の負荷を計測することが出来る。
テンポラリカウンタ903を、差分のN回を表現する情報量分のカウンタのみをアクセスレイテンシの短く容量の小さいローカルメモリに配置し、前回テンポラリカウンタ満了時刻のみを大容量の共有メモリに配置することもできる。これにより、一般的にアクセスレイテンシの長い共有メモリへのアクセスを1/N回に1回とすることが出来、テンポラリカウンタ満了時刻のためにローカルメモリを大量に使わなくとも、I/O処理に対するプロセッサ処理増加影響を小さくすることが出来る。
また、ページ毎モニタテーブル502に、リードライト比率(又はリード量/ライト量)やシーケンシャル比率(又は平均I/O長、又は一般的なシーケンシャル性の判定方法(I/Oの連続性などを判定する))を持って、Tier判定時にこれらの情報を用いてもよい。例えば、ライト率の高いページはキャッシュメモリにキャッシュヒットするため、リード率の高いページを優先してTier1に配置した方が望ましい。また、Tier1がSSDであった場合、SSD寿命維持を目的として、リード率の高いページを優先してTier1に配置することなどが考えられる。
また、ページ毎モニタテーブル502に、移動平均用カウンタを保持し、複数周期の移動平均(指数移動平均、単純移動平均等)で算出した値を長周期のカウンタとすることにより、従来技術1に示した技術と本発明の内容を組み合わせて、例えば週末等の周期的な負荷低下による不要デモーションを効率的に回避してもよい。
図10にて、プール度数分布テーブル505と、仮想ボリューム度数分布テーブル504の構造を示す。プール度数分布テーブル505は、プール206に関する、I/O数範囲毎のページ数の分布を管理している。プール度数分布テーブルの1つのエントリは、あるプールに関するI/O数の範囲と、該I/O数の範囲に含まれるページ数を示す。負荷レベル1002は、負荷の度合いをレベル分けしたものであり、負荷レベル1002のカッコ内の値は、それぞれのレベルで定義したIOPS開始値を示している。該負荷レベル範囲の終了値は、(次のエントリのIOPS数範囲の開始値−1)となる(IOPSが正の整数の場合)。ページ数1003は、該負荷レベル1002の範囲に含まれるページ数に対応する。また、本テーブルでは、Tier割り当て閾値208も管理する。Tier割り当て閾値は0IOPS以上の値であればよく、必ずしも各範囲の境界値である必要はない。また、Tier割り当て閾値は負荷レベルを値としてもよい。
仮想ボリューム度数分布テーブル504は、仮想ボリューム201に関する、I/O数範囲1005毎のページ数1006の分布を管理している。テーブル構造は、プール度数分布テーブル505と同じである。
図11にて、ページ再配置キュー506の構造を示す。ページ再配置キュー506は、プロモーション用キュー1101と、デモーション用キュー1102に分類される。これらのキューは、ストレージシステム単位に持ってもよいし、プール単位又はPG単位、プールボリューム単位に持ってもよい。
モニタ更新&Tier判定処理603又は、非同期再配置判定処理プログラム606は、各種閾値を用いたTier判定の結果、ページ移動を必要と判断した場合は、移動パターン(プロモーション又はデモーション)に応じて、各キューにエントリ1103をエンキューする。エントリには、移動先ページへの参照(プールボリューム番号704、論理アドレス705に相当)と移動元ページへの参照(プールボリューム番号704、論理アドレス705に相当)が含まれる。参照とは、ページ毎モニタテーブル、ダイナミックマッピングテーブルの情報への参照を表す。
本キューにエンキューされたエントリを元に、ページ再配置処理プログラムはページの再配置(仮想ボリュームのページ(仮想ページ)に対応するプールボリュームのページ(物理ページ)の、移動元物理ページから移動先物理ページへのデータコピーと参照の張り替え処理)を実行する。通常の環境では、ホストI/Oによるドライブ側の負荷量によって、再配置の最大性能は変化するが、本キューを用いることにより、再配置の最大性能が変化する場合でも、安定した再配置の実行を実現できる。
図12は、仮想ボリューム201に対するデータの読み書きの処理を示したフローチャートである。ホスト101からI/O処理要求を受けると、ホストI/O処理プログラム601が実行され本フローが実行される。
仮想ボリューム201へのデータのリード要求かデータのライト要求かを判定する(S1201)。I/O処理要求がライトの場合、ダイナミックマッピングテーブル501を参照して当該仮想ページがプールページを割り当て済みかどうか判断する。未割り当ての場合、未使用のページをプールから割り当てる(S1209)。
キャッシュメモリ110にI/O処理要求に対応する仮想ボリューム上のアドレスに対応した領域が確保されているか否かを確認し、確保されている場合もしくは確保されていなければキャッシュメモリ110の領域を確保する(S1210)。次に、ホストにライトデータの転送可能であることを応答し、ホストから転送されてくるライトデータを前記確保されているキャッシュメモリ領域に書き込み、キャッシュ管理テーブル508にまだディスクに書き込んでいない領域であるとしてダーティフラグを立てる(S1211)。ダーティフラグは、キャッシュメモリ上のデータがディスクに反映されていない状態を示す情報で、キャッシュメモリの領域を管理するキャッシュ管理テーブル508に保持される。ホストにライトI/O処理が完了したことを応答(S1212)してI/O処理プログラムは終了する。
一方S1201で、I/O処理要求がリードであった場合、I/O処理要求に対応する仮想ボリューム上のアドレスに対応したデータがキャッシュメモリ上に存在(キャッシュヒット)するか否かを確認する(S1202)。前記キャッシュヒットの場合、キャッシュメモリ上のデータをホストに転送する(S1208)。ホストが要求したデータを全てホストに転送した後リード処理完了応答をホストに転送して、I/O処理プログラムは終了する。
S1202でキャッシュミスした場合、リード要求先仮想ボリュームのアドレスに対応下データを格納するための領域をキャッシュメモリに確保する(S1203)。次に、ホストのリード要求先仮想ボリュームアドレスに、プールからページ202を割当てられているか否かを、ダイナミックマッピングテーブル501を用いて確認する。割り当てられていなかった場合は、ダイナミックマッピングテーブル301を用いてデフォルト値の格納ページのドライブのアドレスを算出し(S1204)、ドライブからデフォルト値を前記確保したキャッシュメモリの領域に転送する(S1205)。
リード要求先仮想ボリュームアドレスに、ページ202が割り当てられていた場合は、ダイナミックマッピングテーブル501を用いて割り当てられたプールボリューム番号と論理アドレスを求め、更に論理物理アドレス変換テーブル503を用いて物理ドライブ番号、物理開始アドレスを求める(S1204)。次に算出したドライブアドレスからデータを前記確保したキャッシュメモリの領域に転送する(S1205)。
前記キャッシュメモリへのデータ転送時にダイナミックマッピングテーブル501のモニタ情報インデックス番号に対応するページ毎モニタテーブル502の各種情報を更新し、Tier判定処理を実行する(S1206)。続いて、前記ドライブからキャッシュメモリ上に格納したデータを当該キャッシュメモリからホストに対してデータを送信する(S1207)。ホストが要求したデータを全てホストに転送した後リード処理完了応答をホストに転送して、I/O処理プログラムは終了する。
図13は、デステージ処理プログラム604のフローチャートである。図12に記したように、I/O処理プログラムは、ホストからのデータの書き込み要求に応じてキャッシュメモリにホストのライトデータを書き込んだ後、ダーティフラグを立てる。
キャッシュ管理テーブル508を参照し、S1211にて立てられたキャッシュメモリ上にダーティフラグがあるか定期的に確認する(S1301)。もしダーティフラグが立っているキャッシュ領域があれば、キャッシュ管理テーブル508の仮想ボリューム番号と論理アドレスに基づき、ダイナミックマッピングテーブル501から割り当っているプールボリューム番号と論理アドレスを求める。
このとき、プールボリューム番号論理アドレスがデフォルトページのアドレスであった場合は、新規データを書き込むために、ダイナミックマッピングテーブル501から新規空きページを割当てる。そして新規割当てページのプールボリューム番号と論理アドレスをダイナミックマッピングテーブル501の本デステージ処理に対応する仮想ボリューム番号論理アドレスに対応させて格納する。プールボリューム番号と論理アドレスが求まった後、論理物理変換テーブルで、ドライブのアドレスを求める(S1302)。前記S1302で求めた、ドライブのアドレスに対して、キャッシュメモリ上のダーティデータを書き込む(S1303)。ここで当該データの、ダーティフラグはOFFとなりクリーン状態になる。
そして、ダイナミックマッピングテーブル501のモニタ情報インデックス番号に対応するページ毎モニタテーブル502のI/Oカウンタ値を更新し、Tier判定処理を実行する(S1304)。更にキャッシュメモリ上にあるかチェックする(S1301)。もし未反映データがなければ、終了し、未反映データがあれば、再度S1302から実施する。
図14は、度数分布作成処理プログラム602のフローチャートである。度数分布を未作成の仮想ボリュームがあるか否かを確認する(S1401)。もしあれば、当該仮想ボリューム内で度数分布作成のために未処理ページがあるか否かをボリュームの先頭から確認していく(S1402)。未処理ページがあれば、長周期のIOPSを算出し、対応する度数分布の負荷レベルのページ数を加算する(S1403)。長周期のIOPSは、例えば直前の周期で採取した面の長周期I/Oカウンタ902の値÷周期(秒)により算出が出来る。よって、IOPS採取周期と本度数分布作成処理実行の周期は同じであることが望ましい。図9で述べたように、移動平均値を長周期のIOPSとして算出してもよい。
S1402に戻ってボリュームの後端まで実施もしくは処理している仮想ボリュームに関し未処理ページが無いことがわかったら、他の仮想ボリュームが無いか確認するために、S1401に戻る。次に、プールの度数分布を作成する(S1404)。プールの度数分布は、仮想ボリュームの度数分布の合計値を計算することにより算出する。具体的には、仮想ボリューム度数分布テーブル504において、対象プールに属する各仮想ボリューム番号1004のI/O数1005に対応するページ数1003の総和を求めて、プール度数分布テーブル505のI/O数1005に対応するページ数1005として格納する。
続いてTier割り当て閾値208を計算して決定する(S1405)。Tier割り当て閾値208は、各Tierについて、Tierのポテンシャル(処理できる最大のI/O数)又はTierの容量何れかを超える限界点から、最大のページ割り当て量の範囲210を決定し、範囲210と度数分布のグラフ209の交点から、Tier割り当て閾値208を算出する方法がある。または、管理端末などからユーザが指定した閾値を使用する方法でもよい。
図15は、非同期再配置判定処理プログラム606のフローチャートである。非同期再配置判定処理プログラム606の主な役割は、Tier1へのプロモーション以外のデータ移動と、短周期のIOPSでプロモーションしたページのIOPSが低くなった場合の回収(Tier2又は3へのデモーション)である。Tier1へのプロモーションは、モニタ更新&Tier判定処理によって、別途優先して実施されるため、非同期再配置判定処理プログラム606で実行しなくてもよい。ただし、Tier1へ短周期のIOPSでプロモーションしたページは、仮にその後ホストI/Oが来なかった場合、モニタ更新&Tier判定処理によるページ移動判定が実行されないため、Tier1に滞留してしまう可能性がある。したがって、回収(Tier1からTier2又は3へのデモーション)のために非同期再配置判定処理プログラム606を実行すると効率的にTier1の容量を使うことが出来る。
まず、ページ再配置未処理の仮想ボリュームの有無を確認する(S1501)。もしページ再配置未処理の仮想ボリュームが有れば、対象仮想ボリュームを先頭から後端に向かって順次、割当たったページ毎に再配置要否を確認する(S1502,S1503)。再配置要否を確認とは、当該ページの長周期IOPSと短周期IOPSと、対象のプールのプール度数分布テーブル505のTier割り当て閾値208から、現在いるTierのままでよいか異なるTierに移動すべきかを判定することである。例えば、Tier1とTier2のTier割り当て閾値208Aと、Tier2とTier3のTier割り当て閾値208Bについて、対象のページのI/Oカウンタ702のI/O数と比較する。ここで、長周期IOPSの値が、Tier割り当て閾値208Aよりも小さく、かつTier割り当て閾値208Bよりも大きく、かつ対象のページの現在のTierがTier1だった場合、対象のページはTier2にデモーションするべきなので、再配置は“要”となる。ただし、先ほど述べたように、本ページが短周期IOPSが高くなったことにより再配置されている、つまりモニタ更新&Tier判定処理によるページ移動によってTier1にプロモーションされている場合で、短周期IOPSの値が、低下していない場合(Tier割り当て閾値208Aの値よりも一定量以上多い場合)には、再配置は“不要”としてもよい。また、対象のページの現在のTierがTier2だった場合は、既に対象のページはTier2に配置されているため、再配置は“不要”となる。対象のページの現在のTierは、ダイナミックマッピングテーブル501の仮想ボリューム702の論理アドレス703とプールボリューム番号704との関係から、プールボリューム番号704により、現在どのTierに属しているかを判断できる。
再配置要の場合、対象ページを再配置するために、ページ再配置キューにエンキューする(S1504)。再配置否の場合と対象ページを再配置した後は、仮想ボリューム内の次ページが再配置対象ページか否かを確認する(S1502,S1503)。仮想ボリューム全体に渡って再配置処理を行った後は、別の再配置未処理の仮想ボリュームをチェックし、ページ再配置未処理の仮想ボリュームが無くなるまで行う(S1501)。尚、周期処理であった場合は、周期処理の終わりで一度ページ再配置プログラムは終了し、次の周期処理で改めてページ再配置プログラムによってページ再配置処理は継続されていく。また周期の後端までに再配置処理が終了していた場合は、その時点で一度ページ再配置処理終了し、次の周期で改めて仮想ボリューム毎に再配置処理が行われる。
図16は、ページ再配置処理プログラムの動作を表したフローチャートである。本処理は、ページ単位に再配置を実行する処理であり、システム全体で多重に動作する。本処理は、ページ再配置実行キュー506からエントリ1103をデキューした契機で実行される。本処理は、エントリ1103のデキュー時に、図11で説明したエントリに含まれる、仮想ページ201の識別子と、移動元の物理ページの識別子、移動先の物理ページの識別子を入力として実行される。まず、仮想ページの識別子の領域がキャッシュ上にあるかどうかを、キャッシュ管理テーブルを参照して判定する(S1601)。キャッシュ上にある場合は、ステップ1604に進む。また、ステップ1601でキャッシュ上にない場合は、キャッシュメモリを確保し、キャッシュ管理テーブルを更新して(S1602)、対象データのステージング処理を実行する(S1603)。本ステップでは、移動元の物理ページのデータをキャッシュメモリ上にステージングする。
その後、ページマッピングを切り替える(S1604)。具体的には、ダイナミックマッピングテーブル501上の仮想ページに対応する物理ページの識別子を、移動先の物理ページの識別子に更新することにより、実行する。その際に、移動元のページは、未使用ページとなる。その後、キャッシュ管理テーブル上の当該キャッシュ領域のダーティビットをONに更新して(S1605)、処理を終了する。ダーティビットをONとすることで、デステージ処理プログラム604によって、移動先の物理ページにデータが非同期にデステージされる。
図17は、モニタ更新&Tier判定処理の動作を表したフローチャートである。本処理は、リード時にはI/O処理プログラムS1206でリードコマンドに同期して実行され、ライト時にはまとめ書きプログラムS1304でライトコマンドとは非同期に実行される。モニタ採取は、ドライブへのコマンド発行タイミングで実行する他に、ホストI/Oの受領契機でキャッシュヒット分も含めてモニタするという考え方もある。本発明では、以降で説明するように、モニタの更新の契機で、Tier判定処理を実行する。
まず本処理が開始されると、モニタのカウントアップ処理を実行する(S1701)。具体的には、当該ページに対応するページ毎モニタテーブルのエントリについて、現在の周期における採取中の面の長周期I/Oカウンタ902をカウントアップし、テンポラリカウンタ903をカウントアップする。初回I/O時は、前回テンポラリカウンタ満了時刻に現在時刻を格納する。モニタのカウントアップ後、テンポラリカウンタ903がNになる場合は、(現在時刻−前回テンポラリカウンタ満了時刻)÷Nから、短周期IOPSを算出する。その後、Tier判定処理へと進む(S1703)。テンポラリカウンタがN以上とならない場合は、処理を終了する。この短周期IOPSの算出方法は、(現在時刻−前回テンポラリカウンタ満了時刻)が所定の周期を超える場合には、所定の周期に対して短周期ではなくなる。よって、(現在時刻−前回テンポラリカウンタ満了時刻)が所定の時間以上となる場合に、計測中断しカウントをデフォルト値に戻すことにしてもよい。また、以上で述べた短周期IOPSの算出方法は、一例を示したものであり、所定の周期よりも短い間隔でのIOPSを計測する手段であれば他の手法を採用することも可能である。例えば例えば、実施例4に記載の、分散値を用いた短周期負荷量の見積もり方法を用いてもよい。
Tier判定処理(S1703)は、各種閾値(Tier割り当て閾値208、プロモーション閾値、デモーション閾値)により判定を実施するが、詳細については実施例2及び3に記載する。Tier判定処理(S1703)の結果、ページの移動が必要(S1704のY)であれば、再配置の実行ページをページ再配置実行キュー506にエンキューして(S1705)、処理を終了する。ページの移動が不要(S1704のN)であれば、処理をそのまま終了する。
図18は、プール単位のパラメータの設定を行う画面の例を示す図である。プール単位のGUI画面1801は、設定対象のプールを特定できるプール番号を表示する領域1802と、短周期再配置のON/OFFを設定する領域1803と、短周期再配置をONと選択した場合の詳細設定のON/OFFを設定する領域1804と、詳細設定の内容を設定する領域1805にて構成される。本画面で設定した情報は、設定情報テーブル507に保存する。
短周期再配置の設定1803をOFFとした場合は、短周期モニタによる判定処理を実行せずに、Tier判定を非同期再配置判定処理プログラム606でTier1へのプロモーション含めて再配置を実施する。具体的には、モニタ更新&Tier判定処理において長周期のモニタカウントアップのみを実行し、ステップS1702以降の処理は実行しない。一方、短周期再配置の設定1803をONとした場合は、本実施例で述べたとおりの動作となる。
短周期再配置の設定1803をONとした場合は、短周期詳細設定1804を設定可能となり、1805の各項目の入力が可能となる。短周期詳細設定1804をOFFとした場合は、各種パラメータはデフォルト値またはストレージシステム内で自動的に算出した値によって動作する。
短周期閾値1806は、ページの短周期IOPSのプロモーション判定に用いる閾値であり、Tier割り当て閾値208などからストレージシステム内で自動的に算出する。算出の具体的な方法は、実施例2、3、4でその例を説明する。短周期用SSD容量1807は、短周期再配置に用いるSSD(Tier1)の記憶容量を指定するための設定である。短周期詳細設定1804をOFFとした場合は、対象となる容量は動的に決定される。詳細は実施例3で説明する。
キュー方式1808は、図11で説明したキューの処理順序を指定するためのものであり、選択肢としては「リオーダリング(実施例4にて説明)」又は「先着順(FIFO)」が考えられる。またその他の、一般的に知られたスケジューリングアルゴリズム(HOL、LIFOなど)を指定するようにして、ページ再配置実行キュー506のエンキュー又はデキュー方法をその設定に対応した動作とさせてもよい。短周期詳細設定1804をOFFとした場合は、設定情報テーブル507に保存したデフォルトの方式(例えば、「リオーダリング」でもよい)を用いることにする。短周期負荷継続時間(St)1809は、短周期の負荷が継続する時間のパラメータ設定のための項目である。この継続時間は、ホストI/O負荷のパターンや特性に依存するため、本実施例のようにユーザの設定可能とすることができる。短周期詳細設定1804をOFFとした場合は、Stは設定情報テーブル507に保存したデフォルトの値(例えば1分)、又は実施例4で例示する方法にて算出される値を用いる方法がある。
短周期カウンタ満了回数(N)1810は、短周期IOPSを算出するカウンタの満了値である。短周期詳細設定1804をONとして、この回数をユーザが指定することで、突発的な負荷上昇に対する敏感度(検出時間の長さ)をユーザが設定することが出来る。短周期詳細設定1804をOFFとした場合は、Nはデフォルトの値(例えば、64回)または実施例4にて例示される方法で算出された値を用いることができる。
短周期補正係数(M)1811は、短周期IOPSを長周期IOPSと比較してどの程度プロモーションされにくくするかを設定するための情報である。例えば、長周期IOPSが5以上の場合にプロモーションすると仮定すると、短周期IOPSは、M×5以上の場合にプロモーションするように動作させてもよい。この値は、後程説明する方法等により動的に決定してもよいし、あらかじめ決められたデフォルト値を用いてもよいし、本設定画面でユーザが指定した値としてもよい。
なお、上記で述べた詳細設定の項目は、一部のみを詳細設定としてそれ以外を自動設定とするようにしてもよい。又、上記で述べた詳細設定の設定値を「preSet1」のようなラベルで保存しておき、領域1805で簡便に設定できるようにしてもよい。なお、上記で述べた各種設定項目は、上記の例ではプール毎で説明したが、プール毎だけでなく、仮想ボリューム毎/物理ボリューム毎/ページ毎に指定してもよい。その場合は、設定情報テーブル507は対象リソース(仮想ボリューム毎/物理ボリューム毎/ページ毎)ごとにパラメータを保存するためのテーブルを持つ。
次に、実施例2としてTier判定方法の一例を開示する。
図19は、図17のS1703で実施例される、本実施例のTier判定処理の動作を表したフローチャートである。
図19は、図17のS1703で実施例される、本実施例のTier判定処理の動作を表したフローチャートである。
まず本処理が開始されると、(A)デモーション判定を実行する(S1901)。本判定処理は、当該ページがデモーション対象かどうかを判定する。詳細については、図20で説明する。その結果、デモーション要と判定された場合(S1902のY)は、ページ移動要を返却(S1905)して終了する。デモーション不要と判定された場合(S1902のN)は、(B)プロモーション判定を実行する(S1903)。本判定処理は、当該ページがプロモーション対象かどうかを判定する。詳細については、図21で説明する。その結果、プロモーション要と判定された場合(S1904のY)は、ページ移動要を返却(S1905)して終了する。プロモーション不要と判定された場合(S1904のN)は、そのまま終了(ページ移動不要)する。上述の様に、Tier1の記憶容量の空きを確保するために、プロモーションが実行前にデモーションを実施する。
図20は、デモーション判定処理の動作を表したフローチャートである。まず、Tier1の使用記憶容量が一定以上であるか判定する(S2001)。本ステップは必須ではないが、本判断をいれることで、Tier1の空き記憶容量を確保のために必要な場合にデモーションが行なわれ、予めTier1に空き容量を確保しておくことで突発的なプロモーションに要する時間を短縮出来る。使用記憶容量が閾値を超えていない場合(S2001のN)は、処理を終了する。また、処理を終了する前に、デモーション閾値を最小値にリセットして(S2006)もよい。DT(デモーション用閾値)の初期値は、例えば0とする。使用容量の他に、Tier1の性能稼働率が一定以上を超えているかの判断によってS2002に行くか分岐しても良い。性能稼働率が高いとTier1のレスポンス悪化を引き起こしてしまうため、一部データをデモーションすることで負荷を退避させることができる。
使用記憶容量が閾値を超えている場合(S2001のY)は、デモーション閾値によるページのTier判定を実施する(S2002)。具体的には、長周期IOPSが、DT以下であり、且つ短周期IOPSがDT×M以下である場合に(S2002のY)、“デモーション要”を返却(S2004)し、処理を終了する。この“M”は、1より大きい数であって、設定情報テーブル507に格納している値を使用する。Mの値は、短周期のほうが長周期と比較して多くのIOPSを必要とするように調整している。これは、短周期IOPSは、負荷が続くかどうかの確度の低いためにページ再配置回数が多くなる傾向にある点を考慮し、短周期IOPSに基づいての再配置を抑制するために短周期IOPSの閾値を高くするためのものである。Mの値は、Tier1へのヒット率などを評価関数として、一般的に知られたフィードバック制御などの手法を用いて、Tier1へのヒット率が最適となるように、動的に調整してもよい。
必須ではないが、次にDTの値を削減(S2003)してもよい。DTの値がレベルである場合は、レベルを固定量下げることにより実現し、DTの値がIOPSである場合は、1より小さい値(固定量)の乗算又は、固定量の減算などにより実現してもよい。閾値を下げることで、次のフローにおいて、よりIOPSの低いTier1中のページのみがデモーション対象となる。
また、S2002でNの場合、DTの値を増加(S2005)させ(但し、PTを超えないようにする。PTを超えると、デモーション対象がプロモーション対象よりもIOPSが多くなるため、Tier1へのIO量が減ってしまうためである)、処理を終了する。
以上のように、T1容量が足りない場合でかつデモーション対象のページがある場合に、DTの値を減少させ、T1容量が足りない場合でデモーション対象のページがない場合にDTの値を増加させる。本構成により、プロモーション対象とすべきページを格納するための空き容量を、できるだけ適切なデモーション(つまり、IOPSの低いページのデモーション)の実行で確保すべく、デモーション閾値を動的に制御して出来るだけI/O数の低いページを移動対象とすることが出来る。
尚、ステップ2003の前に、ドライブ負荷や、再配置実行中のページ数の量などが一定以上である場合に、ページを移動不可と判定し、ステップ2004へ行かずに処理を終了させてもよい。以上により、その時のドライブ負荷によって変動する単位時間あたりのページ移動可能量を考慮した再配置を可能とすることが出来る。
尚、デモーション閾値は、パリティグループごとに持ってもよい。また、Tier1がSSDの場合に、ホストI/OによるWriteが集中して規定のSSD寿命を維持するのが困難かを判定するステップを追加しても良い。寿命維持が困難との場合にはWrite負荷の高いページをデモーション対象とするステップを設ける。この場合、デモーション対象はPG単位であることが望ましい。
図21は、プロモーション判定処理の動作を表したフローチャートである。プロモーション判定処理は、プロモーション閾値(PT)を、限られた制約条件(NF寿命、移動スループット)の中で、短周期IOPSが出来るだけ高いページをプロモーションするように、動的に制御(PTを増減させる)する。PTの初期値は、例えばTとすることができる。
まず、Tier1使用容量が空きなしの場合(S2101がY)の場合は、Tier1へのページ移動が出来ないため、処理を終了する。Tier1使用容量が空きありの場合(S2101がN)の場合は、長周期IOPSがPTを超えているか、又は短周期IOPSがPT×Mを超えているかを判定する。この“M”は、図20で説明したものと同趣旨であり、同構成である。デモーション用Mとは別の値を設定してもよい。
S2102でYの場合は、“プロモーション要”を返却(S2105)し、処理を終了する。S2102でNの場合は、そのまま処理を終了する。ここで、Tier1がSSDの場合(特に消去回数の限界値が低いMLC)などに、フローに示すように、プロモーション回数が寿命ペース越えかどうかを判定してもよい(S2103、S2107)。
図4に示したグラフは、SSDの寿命維持のためのプロモーション速度の調整の考え方を表している。SSDでは書込み回数の制限があり、ライトが頻繁におきると寿命が短くなる。よって、SSDに対するWriteが発生するプロモーション処理をあまりに高頻度に行うとSSDの寿命が短くなってしまう(デモーションはSSDからリードするのみであるため、基本的にこのような課題はない)。グラフの縦軸401は、プロモーションによるSSD累積消去回数を表す。横軸402は、ストレージシステムの使用年数の経過を表す。Wlimit403は、プロモーションによる最大限界のSSDの消去回数を表す。例えば、Wlimit403は、SSDの限界消去回数(一般に、SLC(Single Level Cell)の場合約10万回、MLC(Multi Level Cell)の場合約1万回の消去回数である)に対して所定%程度を設定することができる。例えば、ストレージ製品の寿命は5年程度に設定されていることが多い。プロモーションによる、消去回数の推移を例示したグラフが404である。また、それに対して目標とするプロモーションによる消去回数のペースを使用年数に従って累積値で表したグラフが405である。突発的にI/Oが多くなり負荷が高くなるとプロモーションによる移動量が多くなる。よって、本実施例では消去回数がペース405を超過しないように、短周期プロモーションの閾値を上げて制御する。本構成により、移動するページを効率的に絞込み(より高いIOPSのページに限定し)、SSDへのヒット率を維持しつつプロモーションによるSSD消去回数を一定の範囲に抑えて長寿命化を可能にする。また、突発的な負荷が来ない場合は、ページの移動量が少なくなるため余剰の消去回数を貯めておくことが出来る。この短周期プロモーションの閾値の調整は、パリティグループごとに実施するのが効率的である。ただし、プール単位やストレージシステム単位で持ってもよい。
以上のような制御を実現する方法として、例えば、ストレージシステムが、各パリティグループごとに累積のプロモーション回数と使用年数(Uy)の情報を保持する方法が考えられる。累積のプロモーション回数から、プロモーションによるSSDパリティグループの累積消去回数を算出するには、例えば以下の式を用いる。
プロモーションによるSSDパリティグループの累積消去回数(Wc) = (パリティグループに対するプロモーション回数×ページサイズ/SSDパリティグループ容量)×補正係数(RAIDレベルやSSDの特性(SSD内のページサイズやWriteAmplificationなど)に応じて決定)
以上により算出したWcから、例えば以下の式により、S2103、S2107ペースの判定を実施する。
(Wlimit÷ターゲットの使用年数(例:5年)) ≧ (Wc÷Uy)?
上記の式が真である場合、プロモーションを実行しても寿命のペースを維持していると判定できる。また、上記の式が偽である場合、プロモーションを実行した場合、寿命のペースを上回っていると判定できる。また、必要な情報(累積のプロモーション回数、使用年数)または、それらを類推するための情報(ライト可能量、寿命率、ページサイズ、WriteAmplification効率など)はSSDデバイスからSCSIコマンド等により取得してもよく、前記の情報をローカルメモリ118又は共有メモリ111に保持しておいてもよい。
以上により算出したWcから、例えば以下の式により、S2103、S2107ペースの判定を実施する。
(Wlimit÷ターゲットの使用年数(例:5年)) ≧ (Wc÷Uy)?
上記の式が真である場合、プロモーションを実行しても寿命のペースを維持していると判定できる。また、上記の式が偽である場合、プロモーションを実行した場合、寿命のペースを上回っていると判定できる。また、必要な情報(累積のプロモーション回数、使用年数)または、それらを類推するための情報(ライト可能量、寿命率、ページサイズ、WriteAmplification効率など)はSSDデバイスからSCSIコマンド等により取得してもよく、前記の情報をローカルメモリ118又は共有メモリ111に保持しておいてもよい。
また、ペースの判定は、SSDの使用容量率に応じて動的に変更してもよい。例えば、システム稼働の初期段階では、SSDの使用容量率が低く、SSDのヒット率が低い。しかし、このような状態(大量のページ移動を必要とする状態)は、システムの初期段階の一時期のみであることが多いため、一時的にペースを超えることを許したほうが効率的な場合がある。つまり、SSDの使用容量率が所定値以下の場合は、S2103の判定を実施せずに全てについてプロモーションを実行することで、一時的な(SSDの使用容量率が所定以上となる迄)ライト量の増大化を許しつつ、後のフェースで全体的にWrite量を削減することで、全体としての性能向上を実現する。また、ページ移動の加速度を段階的に調整して目標のペースに段階的に合わせるようにしてもよい。
プロモーション回数が寿命ペースを超えている場合は、PTの値を増加(S2106)し、超えていない場合はPTの値を減少(S2104,S2108)させることもできる。(ただし、Tier割り当て閾値208A(T)以下に設定しないようにする)PTの値の増加については、図21ではS2103の判断に基づく場合にのみ実行するフローを例示する。PTの値がレベルである場合は、レベルを固定量下げることにより実現し、PTの値がIOPSである場合は、1より小さい値(固定量)の乗算又は、固定量の減算などにより実現してもよい。以上により、限られたプロモーションによる消去回数(Wlimit)のペースを満たしながら、出来るだけI/O数の高いページを移動対象とすることが出来る。
また、ページ再配置実行キューが埋まっている場合や、ドライブの負荷が高い場合に、PTの値を増加させ、その逆の場合に、PTの値を減少させてもよい。本処理によって、限られた単位時間あたりのページ移動可能量とのバランスを取りながら、出来るだけI/O数の高いページを移動対象とすることが出来る。
また、プロモーション閾値をパリティグループごと設定してもよい。パリティグループ単位に保持すれば、パリティグループ単位で寿命判断が可能となり必要最小限のページ移動量の削減で済ますことが出来る。また、ページ毎にリードライト比率、シーケンシャル比率などを取って、ライト量が所定位置以上に高いページ(ライト比率が多く、シーケンシャル比率が高い)をプロモーションしないようにしてもよい。
また、上記実施例では寿命ペースはプロモーションによるWriteを対象に判断したが、ホストI/OによるWriteも含めて寿命判断するものであってもいい。例えばホストI/OによるWrite量が少ないI/Oパターンだった場合であれば、プロモーション量を相対的に増やすことができ、よりTier1ヒット率を向上させることができる。
次に、実施例3として別のTier判定方法の一例を開示する。実施例2との違いは、短周期の負荷が一定期間(St)続くものと仮定し、短周期で再配置されたページを一定期間再配置先のTierに固定化(ページ毎の固定化マークにより実現)する点である。また、短周期IOPSによるプロモーション量をデモーション量管理テーブル2201により厳密にコントロールするため、短周期プロモーション量を一定量に制限でき、また、短周期プロモーション量に応じて、長周期の追い出す負荷量を最小化することが出来る。
図22は、デモーション量管理テーブルと拡張ページ毎モニタテーブル(1)のテーブル構造を示している。デモーション量管理テーブル2201は、長周期IOPSによる負荷レベル2202ごとに応じたページ量2203のエントリを持つ点は、プール毎度数分布と同様である。さらに、負荷レベル毎2202毎のデモーション計画数2204と、デモーション実施数2205を持つ。Tier割り当て閾値208A(=T)は、既に度数分布の算出処理の時に算出済みである。デモーション計画数2204は、短周期のプロモーションに対応してデモーションしたい負荷レベル毎のページ数に相当する。したがって、短周期のプロモーション判定時に、加算し、短周期プロモーション後のページの負荷が下がった際に減算する。一方、デモーション実施数2205は、実際にデモーションを実施した負荷レベル毎のページ数を表す。したがって、置き換え対象となったページ(長周期の負荷が出来るだけ低いページ)のデモーション実行時に加算し、短周期プロモーションの負荷が下がってデモーション計画数2204を減算した際に、下位Tierに固定化していたページをプロモーションして元に戻す際に減算する。本実施例においては、デモーション計画数と実行数とを管理することで、短周期でI/O回数が増加しているページのプロモーションに必要なページ数を考慮してデモーション数もしくはデモーション閾値を制御できるようになる。
長周期の負荷が出来るだけ低いページをデモーションしたいため、デモーション計画数2204は、長周期閾値相当の負荷レベルのページ(本図ではLV2に相当)から順にページ数2203を超えない範囲で、加算していく。その際に、図に示すようにデモーション計画数>デモーション実施数となる最小の負荷レベルがデモーション閾値2206(=Dt)となる。
以上で述べたデモーション量管理テーブル2201はプールVOL毎、又はPG毎に持って、プールVOL毎、又はPG毎にデモーション閾値を決めてもよい。その場合は、プールVOL毎又はPG毎の度数分布を図14の度数分布作成処理プログラムの実行の際に作成し、その情報を元に負荷レベル2202毎のページ数2203を算出することが出来る。
また、拡張ページ毎モニタテーブル(1)2207は、ページ毎モニタテーブル502のカラムを拡張したテーブルであり、モニタ情報インデックス番号901はページ毎モニタテーブルの構造と同様である。短周期再配置ページ固定化マーク2208は、ONの場合に、ページを現在のTierに固定化している状態を表している。また、短周期プロモーション実行時刻2209は、当該ページが短周期プロモーションされた場合に、その実行時刻を格納する。これらの情報により、短周期プロモーションしたページを一定期間(St)デモーション判定されるのを防ぐことが出来る。また、一時的な置き換え対象の長周期の負荷が少ないデモーションしたページも、マークをONすることにより、プロモーション判定されるのを防ぐことが出来る。
図23は、デモーション判定処理(2)の動作を表したフローチャートである。本処理は、図19のTier判定処理の(A)デモーション判定(S1901)に相当する処理である。図20で説明したデモーション判定処理フローと異なる点のみを説明する。
ステップ2301で、当該ページに対応する拡張ページモニタテーブル(1)2207のエントリの短周期再配置ページ固定化マーク2208を参照し、当該ページがマークONかどうかを判定する。マークONであれば(S2301でY)、(現在時刻−短周期プロモーション実行時刻)>Stが成立するかどうかを判定する(S2302)。Stは予め設定される所定値である。成立しない場合(S2302でN)、処理を終了する。成立する場合(S2302でY)、短周期IOPS>PTを判定する(S2303)。成立する場合(S2303でN)、当該ページはまだ高負荷状態でありデモーションする必要がないため、そのまま処理を終了する。成立しない場合(S2303でN)、マークをOFFにして、デモーション計画数を1(所定値)減算し、DTを必要に応じて更新して(S2304)、ステップ2305へ進む。DTは、デモーション計画数>デモーション実施数となる最小の負荷レベルがデモーション閾値2206(=Dt)となるように更新する。
その後、長周期IOPS≧T且つ長周期IOPS≦DTが成立するかどうかを判定する(S2305)。本条件が成立するということは、短周期プロモーション実行時の置き換え対象としてのデモーション対象ページであることを意味する。条件が成立する場合(S2305でY)、当該ページの長周期の負荷レベルにおいて、デモーション計画数2204>デモーション実施数が成立するかどうかを判定する(S2307)。本条件が成立しデモーションが必要とされている場合(S2307でY)、当該ページのマークをONにして、デモーション実施数を1増加し(S2308)、デモーション要を返却(S2204)して処理を終了する。本条件が成立しない場合(S2307でN)、処理を終了する。
また、S2305でNの場合、長周期IOPS<Tが成立するかどうかを判定する(S2306)。本条件が成立する場合、そもそも長周期負荷が低いため、基本的な配置をTier2とすべきページである。したがって、デモーション要を返却(S2204)して処理を終了する。
図24は、プロモーション判定処理(2)の動作を表したフローチャートである。本処理は、図19のTier判定処理の(B)プロモーション判定(S1903)に相当する処理である。図21と異なる点のみを説明する。
ステップ2401はステップ2301と同様である。マークONであれば(S2401でY)、ステップ2402に進む。ステップ2402では、(デモーション計画数<デモーション実施数)、又は(短周期IOPS>PT)が成立するかどうかを判定する。判定(デモーション計画数<デモーション実施数)については、デモーション判定で短周期プロモーションしたページの負荷が低下した場合に成立する。判定(短周期IOPS>PT)については、短周期プロモーションのための一時的な入れ替えのためのデモーションを実施したページの短周期の負荷が、突発的に上昇した場合に相当する。ステップ2402でNの場合は、処理を終了する。ステップ2402でYの場合は、当該ページのマークをOFFにして、デモーション実施数を1削減し(S2403)、その後ステップ2404に進む。
ステップ2404では、(長周期IOPS>T)又は(短周期IOPS>PT)が成立し、プロモーションが必要かどうかを判定する。ステップ2404でYの場合は、当該ページが短周期プロモーションで、且つ短周期用SSD容量未達かどうかをチェックする(ステップ2408)。ステップ2404の判定時に、条件(長周期IOPS>T)が成立せず、条件(短周期IOPS>PT)が成立していた場合に、当該ページが短周期プロモーションと判定できる。また、GUI1801の設定項目の1807などにより設定した、設定情報テーブル507に格納された情報と、全体のTier1容量から短周期プロモーションに使用してよいページ数を算出し、デモーション量管理テーブル2201の、各負荷レベル2202のデモーション計画数2204の累計値とを比較し、その累計値が短周期プロモーションに使用してよいページ数を超えていない場合は、短周期用SSD容量未達と判定できる。
ステップ2408でNの場合は、処理を終了する。ステップ2408でYの場合は、当該ページのマークをONにして、デモーション量管理テーブル2201の当該ページの属する負荷レベルのデモーション計画数を1増加し、DTを必要に応じて更新する(ステップ2409)。DTは、デモーション計画数>デモーション実施数となる最小の負荷レベルがデモーション閾値2206(=Dt)となるように更新する。その後、デモーション要を返却して(S2204)、処理を終了する。ステップ2404でNの場合は、処理を終了する。
また、図21で示した方法と同様の本処理の拡張案が考えられる。例えば、Tier1がSSDの場合(特に消去回数の限界値が低いMLC)などに、フローに示すように、プロモーション回数が寿命ペース越えかどうかを判定してもよい(S2103、S2107)。プロモーション回数が寿命ペースを超えている場合は、PTの値を増加(S2406)し、超えていない場合はPTの値を減少(S2405,S2407)させる(ただし、DT×Mを超えないように設定する)。以上により、限られたプロモーションによる消去回数(Wlimit)のペースを満たしながら、出来るだけI/O数の高いページを移動対象とすることが出来る。
次に、実施例4について説明する。実施例4は、実施例1〜3で説明した方法において、各種パラメータの自動調整や短周期負荷量の見積もりを行うための一手段である。
図25は、処理の効率化の考え方を示した図である。図2501は、あるページの負荷量の変化のグラフにおける各種パラメータの意味を表している。グラフの縦軸2502は、ページの単位時間あたりの負荷量(IOPS)を示している。また横軸は、時間経過2503を表している。グラフ2506は、あるページの負荷量の時間経過に対する変化を表している。このページは、短周期の負荷が上昇してから落ちるまでの時間が、St(2508)である。負荷が上昇してから、Tier判定してページ再配置キューにエンキューされる迄の時間は、Sd(2507)である。この時間を、検出遅延時間と呼ぶ。検出遅延時間は、Nの値と単位時間あたりの短周期の負荷量(IOPS)の値によって決まる(Sd=テンポラリカウンタ満了値(=N)÷短周期IOPS)。エンキュー時刻(Et)(2512)にページ再配置キューにエンキューされても、ページ再配置のタスクの実行中(ページ再配置のタスクの空きがない)などの理由で、直ちに実行されるわけではない。これから再配置の処理(タスク)に割り付けて、再配置を実行しようとしている時間(現在時間)をt(2513)とする。また、ページをプロモーションして、その後デモーションするまで(2514)の期間をDtとする。前記と同様の理由で、他のページの移動(プロモーション又はデモーション)があるため、ページをプロモーション後に、直ちにデモーションを開始できるわけではない。その影響を考慮するため、Dtという値を用いる。すると、ページをプロモーションしてからデモーションするまでの間(Dt2509)の平均負荷を、当該ページを再配置(短周期で)した場合の基準値(2511)とする。この基準値が高いページを選択すれば、効率的にTier1のヒット率を向上できる。
図27で各パラメータの管理テーブルを例示する。拡張ページ毎モニタテーブル(2)(2701)は、ページ毎モニタテーブル502のカラムを拡張したテーブルであり、モニタ情報インデックス番号901はページ毎モニタテーブルの構造と同様である。拡張ページ毎モニタテーブル(2)(2701)は、少なくとも、短周期負荷継続時間(St)(2702)と、カウンタ満了値(N)(2703)と、I/O発生間隔の2乗累積値の欄(2704、2705)の何れかを有する。たとえば周期毎に、採取中のデータと、前回の周期の確定されたデータとを管理するために本実施例では2つの欄2704,2705を設けている。
I/O発生間隔の2乗累積値(採取中)(2704)は、S1701のモニタカウントアップ処理の契機で、前回のI/O発生時刻と、現在時刻との差分(=I/O発生間隔)を2乗した値を、当該カウンタに加算する。また、Nが2以上の場合は、S1702のテンポラリカウンタ満了の契機で、N回分のI/Oが、均等な時間間隔で発生するという仮定を置いて、I/O発生間隔の2乗累積値を算出する方法を用いてもよい。
以上で説明した情報から、各種パラメータを見積もる一手法を以下に説明する。
<Stの見積もり方法>
前提として、短周期の負荷が継続する時間は、ページ毎に一定である特性を持つ(短周期負荷パターンの継続性)傾向にあるとページ毎の短周期負荷継続時間(St)(2702)を何れかのタイミングで一度記録し、その値をStの値とする。
<Stの見積もり方法>
前提として、短周期の負荷が継続する時間は、ページ毎に一定である特性を持つ(短周期負荷パターンの継続性)傾向にあるとページ毎の短周期負荷継続時間(St)(2702)を何れかのタイミングで一度記録し、その値をStの値とする。
また、より精度を高めるためにページ毎の短周期負荷継続時間をページ毎に複数個保持し、過去の履歴から負荷の継続時間を、一般的に知られた予測方法(例えば、線形近似法など)を用いて予測してもよい。又、上記の仮定(短周期負荷パターンの継続性)を満たしているかどうかを、ページ毎モニタ情報から適宜判断し、本見積もり方法を用いた短周期の再配置の実行可否を切り替えてもよい。
<分散値を用いた短周期負荷量の見積もり方法>
上述したStは、ページ毎に一定であるという仮定に基づいているが、実際のI/Oにおいては一定でない、つまりバラつきがある場合がある。以下に説明する短周期負荷量の見積もり方法は、このバラつきの特性がある場合においても、効率的にページを配置することを可能とする方法である。前提として長期的(かつ周期的に)に採取した、I/O発生間隔の平均値(E(f)=I/Oカウント902÷周期時間)及び、I/O発生間隔の2乗平均値(E(f^2))は、その後の周期も同等となる(長期的負荷パターンの継続性)と想定する。
<分散値を用いた短周期負荷量の見積もり方法>
上述したStは、ページ毎に一定であるという仮定に基づいているが、実際のI/Oにおいては一定でない、つまりバラつきがある場合がある。以下に説明する短周期負荷量の見積もり方法は、このバラつきの特性がある場合においても、効率的にページを配置することを可能とする方法である。前提として長期的(かつ周期的に)に採取した、I/O発生間隔の平均値(E(f)=I/Oカウント902÷周期時間)及び、I/O発生間隔の2乗平均値(E(f^2))は、その後の周期も同等となる(長期的負荷パターンの継続性)と想定する。
突発的な負荷が多いページはI/O発生間隔の分散値V(f)が大きくなる(V(f)=E(f^2)−E(f)^2)という特性を持つ。さらに、同じ平均値E(f)を持つページでも、分散値V(f)が大きいほど、一定期間Qtの間に受けるI/O数が多くなる確率が高くなる特性を持つ。さらに、V(f)とE(f)を一定とすると、Qtが長いほど期待値のI/O到着数(期間Qtの間に受けるI/O数の平均値)はQt/E(f)に近づくという特性を持つ(これは長周期の負荷量と一致する)。
以上の特性を元に、短周期(Qt)の負荷量を予測する一手法を以降に述べる。まず、短周期プロモーションでTier1に配置する時間間隔(Qt)を仮定する。QtとV(f)とE(f)から、短周期St(=Qt)における期待値のI/O到着数を算出し、短周期の負荷量(IOPS)(λs2505)を算出する(期待値のI/O到着数÷Qt)。例えば、期待値のI/O到着数は、近似式(期待値のI/O到着数=(Qt+((V(f)/(E(f)^2))/2))/E(f)で算出してもよい。その他、一般的に知られた確率的理論に基づき、QtとV(f)とE(f)の一部又は全部をパラメータとする式を用いてもよい。
以上のように、ストレージがI/O発生間隔の2乗平均値(E(f^2))の情報を保持し、I/O発生間隔の分散値V(f)の特性を元に、短周期(Qt)の負荷量を予測することで、バラつきの特性がある場合においても、効率的にページを配置することが可能となる。また、短周期の負荷量の履歴情報を持つ必要が無いため、メモリ使用効率が良いという効果もある。
また、採取中のI/Oカウント902及び、採取中のI/O発生間隔の2乗累計値2704を用いることで、短周期負荷量の算出の精度を向上できる。長期的負荷パターンの継続性の仮定に基づき、前回の周期のカウント値から、現在までの採取したカウント値を引いた値が、現在から今回の周期が終わるまでの値の予測値と出来る。したがって、この差し引いた値でV(f)とE(f)を算出して上記の方法により短周期の負荷量を見積もることで、より予測の精度を向上できる。
また、本見積もりにおいて仮定したQtは、移動可能なページ量(寿命やドライブの余剰稼働率などから算出)から算出した値を仮定してもよい。つまり、移動可能なページ量が少なければ、Qtは長くなり、移動可能なページ量が多ければ、Qtは短くなる。また、非同期デモーションの実行周期(例えば30分)と仮定してもよい。つまり、I/Oに同期的なTier判定はI/Oが来ないと実行されないため、回収までの最長の所要時間(=非同期デモーションの実行周期)をQtと仮定してもよい。
尚、上記の仮定(長期的負荷パターンの継続性)を満たしているかどうかを、ページ毎モニタ情報から判断し、本見積もり方法を用いた短周期再配置を実行するかどうかを切り替えてもよい。
<Nの見積もり方法>
前述した短周期負荷の継続時間Stと、短周期負荷量λsから、短周期のIO数を算出できる。もし短周期のIO数がNに対して一定量以上多くない場合、図25で説明したSdとStの差が縮まってしまい、ページをプロモーションしてもTier1ヒット率向上効果を得られにくくなる。但し、Nを小さくしすぎると、短周期負荷の精度が悪くなる可能性があるため、これらのトレードオフを鑑み、Nの最適な値に調整してもよい(Nの値は、2703に格納する)。具体的には、例えば、短周期のIO数に対して一定の係数を掛けた値をNとするなどの方法が考えられる。
<Nの見積もり方法>
前述した短周期負荷の継続時間Stと、短周期負荷量λsから、短周期のIO数を算出できる。もし短周期のIO数がNに対して一定量以上多くない場合、図25で説明したSdとStの差が縮まってしまい、ページをプロモーションしてもTier1ヒット率向上効果を得られにくくなる。但し、Nを小さくしすぎると、短周期負荷の精度が悪くなる可能性があるため、これらのトレードオフを鑑み、Nの最適な値に調整してもよい(Nの値は、2703に格納する)。具体的には、例えば、短周期のIO数に対して一定の係数を掛けた値をNとするなどの方法が考えられる。
また、一般にNを小さくするとページ移動要と判定される頻度が増え、Nを大きくすると、ページ移動要と判定される頻度が減る。したがって、Nは、移動可能なページ量(寿命やドライブの余剰稼働率などから算出)から、算出してもよい。
上述した各種見積もり方法は、組み合わせてもよいし、一部の方法のみを使用してもよい。また、上述した各種見積もり方法は、ページ毎ではなく、プール毎やプールVOL毎、PG毎でパラメータを持ち、又は算出してもよい。
図26は、キューのリオーダリングの動作を示した図である。本実施例ではページ再配置実行キュー(506)にエンキューされたエントリについて、図25で説明した基準値2511の値によって、再配置タスク2603に優先的に割り当てるエントリを決める。例えば、プロモーション用のキューの場合は、基準値の高いものから優先的に再配置タスクに割り当て、デモーション用のキューの場合は、基準値の低いものから優先的に再配置タスクに割り当てるようにする。本構成により、よりTier間データ再配置を効率化できる。
また、上記の基準値2511は、具体的には、以下の式によって算出してもよい。
基準値(IOPS)= (Ct×λs +(Dt−Ct)×λl )/ St − α
αは、長周期の低負荷ページを追い出すペナルティ分を表す。αは、定数でもよいが、デモーション閾値(DT)などから動的に決定してもよい。また、Ct2510は、現在時刻(t)から短周期の負荷上昇が落ち着くまでの時間(Ct=St−Sd−(t−Et))を表している。
基準値(IOPS)= (Ct×λs +(Dt−Ct)×λl )/ St − α
αは、長周期の低負荷ページを追い出すペナルティ分を表す。αは、定数でもよいが、デモーション閾値(DT)などから動的に決定してもよい。また、Ct2510は、現在時刻(t)から短周期の負荷上昇が落ち着くまでの時間(Ct=St−Sd−(t−Et))を表している。
また、Dtは、具体的には、以下の式によって算出してもよい。
Dt = Sr×デモーションのキュー長 + Sr/2 + Ct
Srは、デモーション処理の平均処理時間を表す。また、再配置タスク2603の多重度(スループット)に応じて、Srを短くしてもよい。また、その他一般的に知られた待ち行列理論などをベースとした式に変えてもよい。
Dt = Sr×デモーションのキュー長 + Sr/2 + Ct
Srは、デモーション処理の平均処理時間を表す。また、再配置タスク2603の多重度(スループット)に応じて、Srを短くしてもよい。また、その他一般的に知られた待ち行列理論などをベースとした式に変えてもよい。
また、エンキューされた時刻Etから所定期間経過したキューについては、基準値を無視して、優先的に実行するようにしてもよい。また、キューのエントリ数が予め定めた上限に達している場合に、基準値が小さいものからキューから削除するようにして、キューの空きを作るようにしてもよい。
尚、本発明は、上述した実施例に限定されず、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。
尚、本発明は、上述した実施例に限定されず、当業者であれば本発明の範囲内で様々な追加や変更等を行うことができる。
101:ホスト、102:管理サーバ、103:ネットワーク、104:ストレージシステム、105:外部ストレージ、106:ポート、107:保守I/F、108:ポート、109:プロセッサパッケージ、110:キャッシュメモリ、111:共有メモリ、112:内部ネットワーク、113:ドライブ、114:ドライブ、115:Tier(階層)1、116:Tier(階層)2、117:Tier(階層)3
各仮想ボリュームを構成するページ202毎にホストからのI/O処理の特性が存在する(これをアクセスローカリティと呼ぶ)。例えば、I/Oの頻度が高いページと低いページが混在する場合、一般的にはI/Oの頻度が高いページを上位の階層に配置したほうが、システム全体の性能を向上することができる。例えば、SSDの階層(115)は100IOP、SASの階層(116)は10IOPS処理できるとする。ここで50IOPSの特性を持つページ202CにSAS階層が割り当たり、20IOPSの特性を持つページ202AにSSD階層が割りあたっている場合、ストレージシステム104は、基本的にホストからのページに対するIOPSの比率は一定であることが多いため、全体として10(SAS階層の上限)+4=14IOPSの性能しか発揮できない。この状態をネック状態と呼ぶ。ページ202CをSASから、SSDの階層へプロモーションすることができれば、ストレージシステム104は、全体として50+20=70IOPSの性能を発揮できる。
Claims (15)
- 第1の記憶デバイスと、
前記第1の記憶デバイスより性能のよい第2記憶デバイスと、
複数の論理領域を有する仮想ボリュームをホスト装置に提供し、ライト要求を受領した後に前記第1の記憶デバイス又は前記第2の記憶デバイスの記憶領域を前記ライト要求を受領した前記論理領域に割り当てて前記ライト要求のデータを格納し、前記割り当てられた記憶領域に格納される前記データを前記第1の記憶デバイスと前記第2に記憶デバイス間で再配置して前記論理領域への割り当てを前記再配置先の記憶領域に変更するコントローラと、
を有し、
前記コントローラは、
第1の期間中の前記ホスト装置からのアクセス頻度である第1のアクセス頻度と、前記第1の期間より短い第2の期間中の前記ホスト装置からのアクセス頻度である第2アクセス頻度とを管理し、
前記第1のアクセス頻度に基づいて前記第1の期間周期で第1の前記再配置を行うとともに、前記第1のアクセス頻度と前記第2のアクセス頻度に基づいた第2の前記再配置の要否判定を前記ホスト装置からのアクセスに同期して行い、
前記第1の再配置の要否判定に用いる閾値と、前記第2の再配置の要否判定に用いる閾値とは異なるストレージシステム。 - 前記第2の再配置の要否判定は、前記ホスト装置からのリード要求の処理に同期して行われることを特徴とする請求項1記載のストレージシステム。
- 前記第2の再配置の要否判定は、前記ホスト装置からのライト要求を前記記憶デバイスに記録する処理に同期して行われることを特徴とする請求項1記載のストレージシステム。
- 前記第2の再配置の要否判定に用いる閾値は、前記第1のアクセス頻度についての閾値と前記第2のアクセス頻度についての閾値とを有し、
前記第2のアクセス頻度についての閾値は、前記第1のアクセス頻度の閾値に比して、前記第2の記憶デバイスから前記第1の記憶デバイスに再配置されにくいように設定されることを特徴とする請求項1記載のストレージシステム。 - 前記コントローラは、
前記第2のアクセス頻度についての閾値を、前記再配置対象の論理領域の有無に応じて変更することを特徴とする請求項4記載のストレージシステム。 - 前記第1の記憶デバイスはフラッシュメモリであって、
前記第2の記憶デバイスから前記第1の記憶デバイスからの再配置回数が閾値を超えている場合には、前記第2の記憶デバイスから前記第1の記憶デバイスからの再配置は行わないことを特徴とする請求項1記載のストレージシステム。 - 前記第2のアクセス頻度は、前記ホスト装置からのアクセス要求が所定回数分受信されるのに要した時間から求めることを特徴とする請求項1記載のストレージシステム。
- 前記コントローラは、
前記第2の記憶デバイスから前記第1の記憶デバイスに前記第2の再配置がなされた前記論理領域に格納されるデータについては、所定期間、前記第1の記憶デバイスから前記第2の記憶デバイスへの前記第2の再配置を行わないことを特徴とする請求項1記載のストレージシステム。 - 前記コントローラは、
前記第1記憶デバイスから前記第2の記憶デバイスへの前記第2の再配置対象の前記論理領域の数と、前記第2記憶デバイスから前記第1の記憶デバイスへの前記第2の再配置対象の前記論理領域の数の関係を考慮して、前記第2の再配置の実施要否を判断することを特徴とする請求項1記載のストレージシステム。 - 前記コントローラは、
前記ホスト装置からの一定量のアクセス要求の時間間隔を2乗した合計値を管理し、前記第2アクセス頻度として、前記合計値を元にした予測値を用いることを特徴とする請求項1記載のストレージシステム。 - 前記コントローラは、
前記第2の再配置対象となった複数の前記論理領域の前記第2再配置の実行順序を、当該論理領域の負荷量に基づいて決定することを特徴とする請求項1記載のストレージシステム。 - ストレージシステムにおいて実行されるデータ処理方法であって、
前記ストレージシステムは、
第1の記憶デバイスと、
前記第1の記憶デバイスより性能のよい第2記憶デバイスと、
コントローラを有し、
複数の論理領域を有する仮想ボリュームをホスト装置に提供し、
ライト要求を受領した後に、前記第1の記憶デバイス又は前記第2の記憶デバイスの記憶領域を前記ライト要求を受領した前記論理領域に割り当てて、前記ライト要求のデータを格納し、
前記割り当てられた記憶領域に格納される前記データを前記第1の記憶デバイスと前記第2に記憶デバイス間で再配置して前記論理領域への割り当てを前記再配置先の記憶領域に変更するステップを有し、
第1の期間中の前記ホスト装置からのアクセス頻度である第1のアクセス頻度と、前記第1の期間より短い第2の期間中の前記ホスト装置からのアクセス頻度である第2アクセス頻度とを管理し、
前記第1のアクセス頻度に基づいて前記第1の期間周期で第1の前記再配置を行うとともに、前記第1のアクセス頻度と前記第2のアクセス頻度に基づいた第2の前記再配置の要否判定を前記ホスト装置からのアクセスに同期して行い、
前記第1の再配置の要否判定に用いる閾値と、前記第2の再配置の要否判定に用いる閾値とは異なることを特徴とするデータ処理方法。 - 前記第2の再配置の要否判定は、前記ホスト装置からのリード要求の処理に同期して行われることを特徴とする請求項12記載のデータの処理方法。
- 前記第2の再配置の要否判定は、前記ホスト装置からのライト要求を前記記憶デバイスに記録する処理に同期して行われることを特徴とする請求項12記載のデータの処理方法。
- 前記第2の再配置の要否判定に用いる閾値は、前記第1のアクセス頻度についての閾値と前記第2のアクセス頻度についての閾値とを有し、
前記第2のアクセス頻度についての閾値は、前記第1のアクセス頻度の閾値に比して、前記第2の記憶デバイスから前記第1の記憶デバイスに再配置されにくいように設定されることを特徴とする請求項12記載のデータ処理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/062317 WO2014174653A1 (ja) | 2013-04-26 | 2013-04-26 | ストレージシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6084685B2 JP6084685B2 (ja) | 2017-02-22 |
JPWO2014174653A1 true JPWO2014174653A1 (ja) | 2017-02-23 |
Family
ID=51791259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015513448A Active JP6084685B2 (ja) | 2013-04-26 | 2013-04-26 | ストレージシステム |
Country Status (6)
Country | Link |
---|---|
US (5) | US8880830B1 (ja) |
JP (1) | JP6084685B2 (ja) |
CN (3) | CN110333825A (ja) |
DE (1) | DE112013006656B4 (ja) |
GB (1) | GB2527951B (ja) |
WO (1) | WO2014174653A1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5941996B2 (ja) * | 2012-11-27 | 2016-06-29 | 株式会社日立製作所 | ストレージ装置及び階層制御方法 |
US9753987B1 (en) * | 2013-04-25 | 2017-09-05 | EMC IP Holding Company LLC | Identifying groups of similar data portions |
CN110825324B (zh) * | 2013-11-27 | 2023-05-30 | 北京奥星贝斯科技有限公司 | 混合存储的控制方法及混合存储系统 |
US10120601B2 (en) | 2014-03-24 | 2018-11-06 | Hitachi, Ltd. | Storage system and data processing method |
US9940167B2 (en) * | 2014-05-20 | 2018-04-10 | Red Hat Israel, Ltd. | Identifying memory devices for swapping virtual machine memory pages |
US9880786B1 (en) * | 2014-05-30 | 2018-01-30 | Amazon Technologies, Inc. | Multi-tiered elastic block device performance |
WO2016016989A1 (ja) * | 2014-07-31 | 2016-02-04 | 株式会社 東芝 | 階層化ストレージシステム、ストレージコントローラ及びプログラム |
US10061915B1 (en) | 2014-09-03 | 2018-08-28 | Amazon Technologies, Inc. | Posture assessment in a secure execution environment |
US10078663B2 (en) | 2014-10-29 | 2018-09-18 | Red Hat, Inc. | Dual overlay query processing |
JP6511795B2 (ja) * | 2014-12-18 | 2019-05-15 | 富士通株式会社 | ストレージ管理装置、ストレージ管理方法、ストレージ管理プログラムおよびストレージシステム |
WO2016147279A1 (ja) * | 2015-03-13 | 2016-09-22 | 富士通株式会社 | データ管理制御プログラム、データ管理制御装置、及びデータ管理制御方法 |
US10452302B2 (en) * | 2015-04-09 | 2019-10-22 | Hitachi, Ltd. | Storage system and data control method |
JP6497233B2 (ja) * | 2015-06-19 | 2019-04-10 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム、及びストレージ制御方法 |
WO2017046902A1 (ja) * | 2015-09-16 | 2017-03-23 | 株式会社日立製作所 | 管理システム、管理計算機、及び、ストレージ装置の管理方法 |
CN105260138A (zh) * | 2015-09-30 | 2016-01-20 | 福州瑞芯微电子股份有限公司 | 读写控制系统及方法 |
CN105487823B (zh) * | 2015-12-04 | 2018-06-05 | 华为技术有限公司 | 一种数据迁移的方法及装置 |
CN106933493B (zh) * | 2015-12-30 | 2020-04-24 | 伊姆西Ip控股有限责任公司 | 用于缓存盘阵列扩容的方法及设备 |
US10579540B2 (en) * | 2016-01-29 | 2020-03-03 | Netapp, Inc. | Raid data migration through stripe swapping |
JP6680069B2 (ja) * | 2016-05-10 | 2020-04-15 | 富士通株式会社 | ストレージ制御装置、ストレージシステム及びストレージ装置制御プログラム |
US10809931B1 (en) * | 2016-06-24 | 2020-10-20 | EMC IP Holding Company LLC | Techniques for use with physical media types having varying allowable write quotas |
JP6708928B2 (ja) * | 2016-07-08 | 2020-06-10 | 富士通株式会社 | ストレージ管理装置、ストレージ管理プログラム、およびストレージシステム |
US10452273B2 (en) | 2016-09-24 | 2019-10-22 | International Business Machines Corporation | Preemptive event-based data migration |
KR102227643B1 (ko) * | 2016-09-28 | 2021-03-15 | 한국전자기술연구원 | 오케스트레이션 기반 최적 스토리지 할당을 위한 예측형 후보군 선정 방법 |
US11755224B2 (en) * | 2017-07-27 | 2023-09-12 | EMC IP Holding Company LLC | Storing data in slices of different sizes within different storage tiers |
US10769074B2 (en) * | 2017-11-09 | 2020-09-08 | Microsoft Technology Licensing, Llc | Computer memory content movement |
CN110737399B (zh) * | 2018-07-20 | 2023-09-05 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN112306372A (zh) | 2019-07-31 | 2021-02-02 | 伊姆西Ip控股有限责任公司 | 用于处理数据的方法、设备和程序产品 |
JP7405608B2 (ja) * | 2019-12-26 | 2023-12-26 | 株式会社日立製作所 | ストレージシステム |
CN114610232A (zh) * | 2020-04-28 | 2022-06-10 | 华为技术有限公司 | 一种存储系统、内存管理方法和管理节点 |
JP2022032710A (ja) | 2020-08-13 | 2022-02-25 | 富士通株式会社 | 管理装置およびプログラム |
US20220197537A1 (en) * | 2020-12-18 | 2022-06-23 | Micron Technology, Inc. | Object management in tiered memory systems |
JP7319326B2 (ja) | 2021-06-24 | 2023-08-01 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのファイル配置方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004272324A (ja) * | 2003-03-05 | 2004-09-30 | Nec Corp | ディスクアレイ装置 |
US20050216591A1 (en) * | 2004-03-26 | 2005-09-29 | Eiichi Sato | Storage system |
JP2007272721A (ja) * | 2006-03-31 | 2007-10-18 | Nec Corp | ストレージ装置及びその制御方法 |
US20080059718A1 (en) * | 2006-09-01 | 2008-03-06 | Sachie Tajima | Storage system, data relocation method thereof, and recording medium that records data relocation program |
JP2008269344A (ja) * | 2007-04-20 | 2008-11-06 | Toshiba Corp | 論理ディスク管理方法及び装置 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0944381A (ja) * | 1995-07-31 | 1997-02-14 | Toshiba Corp | データ格納方法およびデータ格納装置 |
JP2003216460A (ja) * | 2002-01-21 | 2003-07-31 | Hitachi Ltd | 階層ストレージ装置及びその制御装置 |
JP4462852B2 (ja) | 2003-06-23 | 2010-05-12 | 株式会社日立製作所 | ストレージシステム及びストレージシステムの接続方法 |
US7568075B2 (en) * | 2005-09-22 | 2009-07-28 | Hitachi, Ltd. | Apparatus, system and method for making endurance of storage media |
US8006061B1 (en) * | 2007-04-13 | 2011-08-23 | American Megatrends, Inc. | Data migration between multiple tiers in a storage system using pivot tables |
US8195617B2 (en) * | 2008-12-30 | 2012-06-05 | International Business Machines Corporation | Managing data across a plurality of data storage devices based upon collaboration relevance |
US8639877B2 (en) * | 2009-06-30 | 2014-01-28 | International Business Machines Corporation | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks |
JP4930553B2 (ja) * | 2009-06-30 | 2012-05-16 | 富士通株式会社 | データ移行機能を有した装置及びデータ移行方法 |
US8230131B2 (en) * | 2009-09-14 | 2012-07-24 | International Business Machines Corporation | Data migration to high speed storage in accordance with I/O activity over time |
CN102483684B (zh) * | 2009-12-24 | 2015-05-20 | 株式会社日立制作所 | 提供虚拟卷的存储系统 |
WO2011135635A1 (ja) * | 2010-04-30 | 2011-11-03 | 株式会社日立製作所 | 計算機システム及びその記憶制御方法 |
US8799747B2 (en) | 2010-06-03 | 2014-08-05 | Seagate Technology Llc | Data hardening to compensate for loss of data retention characteristics in a non-volatile memory |
US9058280B1 (en) * | 2010-08-13 | 2015-06-16 | Western Digital Technologies, Inc. | Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time |
CN103299265B (zh) | 2011-03-25 | 2016-05-18 | 株式会社日立制作所 | 存储系统和存储区域分配方法 |
WO2012131780A1 (en) * | 2011-03-31 | 2012-10-04 | Hitachi, Ltd. | Storage control system providing virtual logical volumes complying with thin provisioning |
US8639899B2 (en) * | 2011-04-26 | 2014-01-28 | Hitachi, Ltd. | Storage apparatus and control method for redundant data management within tiers |
US8838895B2 (en) * | 2011-06-09 | 2014-09-16 | 21Vianet Group, Inc. | Solid-state disk caching the top-K hard-disk blocks selected as a function of access frequency and a logarithmic system time |
US8645654B1 (en) * | 2011-06-29 | 2014-02-04 | Emc Corporation | Selecting physical storage in data storage systems |
JP2013164822A (ja) * | 2012-02-13 | 2013-08-22 | Fujitsu Ltd | 負荷閾値算出プログラム、負荷閾値算出装置および負荷閾値算出方法 |
US11347443B2 (en) * | 2012-04-13 | 2022-05-31 | Veritas Technologies Llc | Multi-tier storage using multiple file sets |
US9703500B2 (en) * | 2012-04-25 | 2017-07-11 | International Business Machines Corporation | Reducing power consumption by migration of data within a tiered storage system |
WO2014016866A1 (en) * | 2012-07-24 | 2014-01-30 | Hitachi, Ltd. | Storage system, storage control method and storage control program |
CN102831088A (zh) * | 2012-07-27 | 2012-12-19 | 国家超级计算深圳中心(深圳云计算中心) | 基于混合存储器的数据迁移方法和装置 |
US9026765B1 (en) * | 2012-09-11 | 2015-05-05 | Emc Corporation | Performing write operations in a multi-tiered storage environment |
US9898224B1 (en) * | 2012-09-12 | 2018-02-20 | EMC IP Holding Company LLC | Automatic adjustment of capacity usage by data storage optimizer for data migration |
CN102929566B (zh) * | 2012-10-24 | 2015-07-08 | 中国资源卫星应用中心 | 一种多级自适应存储方法 |
-
2013
- 2013-04-26 CN CN201910525717.0A patent/CN110333825A/zh active Pending
- 2013-04-26 JP JP2015513448A patent/JP6084685B2/ja active Active
- 2013-04-26 CN CN202310311449.9A patent/CN116301649A/zh active Pending
- 2013-04-26 GB GB1514119.5A patent/GB2527951B/en active Active
- 2013-04-26 CN CN201380073705.XA patent/CN105009092A/zh active Pending
- 2013-04-26 WO PCT/JP2013/062317 patent/WO2014174653A1/ja active Application Filing
- 2013-04-26 DE DE112013006656.4T patent/DE112013006656B4/de active Active
-
2014
- 2014-03-12 US US14/206,096 patent/US8880830B1/en active Active
- 2014-09-18 US US14/489,598 patent/US9830258B2/en active Active
-
2017
- 2017-11-08 US US15/806,644 patent/US10733092B2/en active Active
-
2020
- 2020-07-17 US US16/931,640 patent/US11372755B2/en active Active
-
2022
- 2022-06-24 US US17/848,577 patent/US11698857B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004272324A (ja) * | 2003-03-05 | 2004-09-30 | Nec Corp | ディスクアレイ装置 |
US20050216591A1 (en) * | 2004-03-26 | 2005-09-29 | Eiichi Sato | Storage system |
JP2005276017A (ja) * | 2004-03-26 | 2005-10-06 | Hitachi Ltd | ストレージシステム |
JP2007272721A (ja) * | 2006-03-31 | 2007-10-18 | Nec Corp | ストレージ装置及びその制御方法 |
US20080059718A1 (en) * | 2006-09-01 | 2008-03-06 | Sachie Tajima | Storage system, data relocation method thereof, and recording medium that records data relocation program |
JP2008059438A (ja) * | 2006-09-01 | 2008-03-13 | Hitachi Ltd | 記憶システム、そのデータ再配置方法、データ再配置プログラム |
JP2008269344A (ja) * | 2007-04-20 | 2008-11-06 | Toshiba Corp | 論理ディスク管理方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116301649A (zh) | 2023-06-23 |
JP6084685B2 (ja) | 2017-02-22 |
US20160011967A9 (en) | 2016-01-14 |
US20140325121A1 (en) | 2014-10-30 |
CN110333825A (zh) | 2019-10-15 |
GB2527951B (en) | 2021-05-12 |
DE112013006656T5 (de) | 2015-11-19 |
GB201514119D0 (en) | 2015-09-23 |
GB2527951A (en) | 2016-01-06 |
US9830258B2 (en) | 2017-11-28 |
US10733092B2 (en) | 2020-08-04 |
US8880830B1 (en) | 2014-11-04 |
DE112013006656B4 (de) | 2023-01-26 |
WO2014174653A1 (ja) | 2014-10-30 |
US20180067851A1 (en) | 2018-03-08 |
CN105009092A (zh) | 2015-10-28 |
US20220318134A1 (en) | 2022-10-06 |
US20200356471A1 (en) | 2020-11-12 |
US11372755B2 (en) | 2022-06-28 |
US11698857B2 (en) | 2023-07-11 |
US20150006801A1 (en) | 2015-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6084685B2 (ja) | ストレージシステム | |
JP5543668B2 (ja) | ストレージシステム及び記憶領域の割当方法 | |
WO2015145532A1 (ja) | ストレージシステム及びデータ処理方法 | |
US10754573B2 (en) | Optimized auto-tiering, wherein subset of data movements are selected, utilizing workload skew point, from a list that ranks data movements based on criteria other than I/O workload | |
US9940024B1 (en) | Techniques for determining workload skew | |
US9952803B1 (en) | Techniques for automated evaluation and moment of data between storage tiers | |
US9026765B1 (en) | Performing write operations in a multi-tiered storage environment | |
US9785353B1 (en) | Techniques for automated evaluation and movement of data between storage tiers for thin devices | |
US10095425B1 (en) | Techniques for storing data | |
US9507887B1 (en) | Adaptive techniques for workload distribution across multiple storage tiers | |
US9898224B1 (en) | Automatic adjustment of capacity usage by data storage optimizer for data migration | |
US8583838B1 (en) | Techniques for statistics collection in connection with data storage performance | |
US9244618B1 (en) | Techniques for storing data on disk drives partitioned into two regions | |
US8954381B1 (en) | Determining data movements in a multi-tiered storage environment | |
US8862837B1 (en) | Techniques for automated data compression and decompression | |
JP2010097526A (ja) | キャッシュ構成管理システム、管理サーバおよびキャッシュ構成管理方法 | |
JP6283770B2 (ja) | ストレージシステム | |
WO2014002126A1 (en) | Computer system and method of controlling i/o with respect to storage apparatus | |
JP6118380B2 (ja) | ストレージシステム及び記憶領域の割当方法 | |
JP5815791B2 (ja) | ストレージシステム及び記憶領域の割当方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161227 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170125 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6084685 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |