Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4684864B2 - 記憶装置システム及び記憶制御方法 - Google Patents
[go: Go Back, main page]

JP4684864B2 - 記憶装置システム及び記憶制御方法 - Google Patents

記憶装置システム及び記憶制御方法 Download PDF

Info

Publication number
JP4684864B2
JP4684864B2 JP2005331158A JP2005331158A JP4684864B2 JP 4684864 B2 JP4684864 B2 JP 4684864B2 JP 2005331158 A JP2005331158 A JP 2005331158A JP 2005331158 A JP2005331158 A JP 2005331158A JP 4684864 B2 JP4684864 B2 JP 4684864B2
Authority
JP
Japan
Prior art keywords
storage area
pool
storage
overlapping
logical volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005331158A
Other languages
English (en)
Other versions
JP2007140728A (ja
Inventor
耕一 村山
幸徳 坂下
雅英 佐藤
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005331158A priority Critical patent/JP4684864B2/ja
Priority to US11/337,679 priority patent/US7415573B2/en
Publication of JP2007140728A publication Critical patent/JP2007140728A/ja
Application granted granted Critical
Publication of JP4684864B2 publication Critical patent/JP4684864B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

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

Description

本発明は、記憶制御技術に関する。
例えば、特開2003−015915号公報に開示されている記憶装置システムが知られている。この記憶装置システムは、ホスト計算機から受けたI/O要求に応じて、記憶装置システムの未使用の記憶領域を動的に論理ボリュームに割り当てることで、論理ボリュームの記憶容量を拡張することができる。
特開2003−015915号公報
論理ボリュームに割り当てられる記憶領域は、物理的な記憶デバイスが有する記憶資源のうちの一つである。記憶領域には、種々の属性がある。例えば、物理的な記憶デバイスがハードディスクドライブ(以下、HDD)であれば、記憶領域の属性として、FC(Fibre Channel)、SATA(Serial ATA)、或いはSAS(Serial Attached SCSI)といったものがある。また、複数の物理的な記憶デバイスが一つのグループであり、そのグループが、RAID(Redundant Array of Independent Inexpensive Disks)の或るレベル(例えば、レベル1〜5のいずれかのレベル)を持ったRAIDグループである場合には、記憶領域の属性として、RAIDレベルがある。
上述した記憶装置システムでは、論理ボリュームに記憶領域を割り当てる際に、記憶領域の属性の違いが考慮されず、無作為に、論理ボリュームに未使用の記憶領域が割り当てられる。
本発明の一つの目的は、論理ボリュームに対して動的に記憶領域を割り当てる記憶制御技術を提供することにある。
本発明の他の目的は、後の説明から明らかになるであろう。
本発明の第一の側面に従う記憶装置システムは、複数の記憶領域と、二以上の記憶領域から構成された複数の記憶領域プールと、前記複数の記憶領域プールにそれぞれ関連付けられた複数の論理ボリュームと、前記ホスト計算機から論理ボリュームに対する書込み要求を受け、前記論理ボリュームに関連付けられている記憶領域プール内の一以上の記憶領域を前記論理ボリュームに割り当て、前記割り当てた一以上の記憶領域に、前記受けた書込み要求に従うデータを書き込むコントローラとを備える。前記複数の記憶領域には、一以上の属性を有する記憶領域と複数の属性を有する記憶領域とが含まれている。前記複数の記憶領域プールの各々には、所定の属性が割り当てられており、互いに重複する重複部分と、互いに重複しない非重複部分とがある。前記重複部分は、複数の記憶領域プールにそれぞれ割り当てられている複数の属性と同一の複数の属性を有するが故に、前記複数の記憶領域プールのどの構成要素にもなっている重複記憶領域の集合である。各記憶領域プールの非重複部分は、前記各記憶領域プールに割り当てられている属性を有するが、他の記憶領域プールに割り当てられている属性を有しないが故に、前記各記憶領域プールのみを構成する非重複記憶領域の集合である。前記コントローラが、或る論理ボリュームに関連付けられている或る記憶領域プールの中から、前記或る論理ボリュームに割り当てられていない非重複記憶領域を選択し、前記選択された非重複記憶領域を前記或る論理ボリュームに割り当て、前記選択された非重複記憶領域に、前記或る論理ボリュームに割り当てられている前記重複記憶領域内のデータを移行し、前記或る論理ボリュームから前記移行元の重複記憶領域の割り当てを外す。
第一の態様では、前記コントローラ(又は計算機)が、前記ホスト計算機のユーザ又は他の計算機のユーザから、空きを確保すべき記憶領域プールの指定を受けることができる。前記コントローラが、その指定を受けたことに応答して(又はその指定を受けた計算機からのデータ移行命令に応答して)、前記データの移行を実行することができる。この場合、前記或る記憶領域プールは、前記指定された記憶領域プールとの前記重複部分を有する記憶領域プールとすることができる。
第二の態様では、前記コントローラ(又は計算機)は、記憶領域プールにおいて、未割り当ての記憶領域の数が所定数以下になったか否かを判断することができる。前記コントローラが、肯定的な判断結果が得られた場合に(又は肯定的な判断結果を得た計算機からのデータ移行命令に応答して)、前記データの移行を実行することができる。この場合、前記或る記憶領域プールは、前記肯定的な判断結果が得られた前記記憶領域プールとの重複部分を有する記憶領域プールであるとすることができる。
第三の態様では、前記コントローラ(又は計算機)は、非重複記憶領域の数が増えた記憶領域プールを検知することができる。前記コントローラは、その記憶領域プールが検知された場合に(又はそれを検知した計算機からのデータ移行命令に応答して)、前記データの移行を実行することができる。この場合、前記或る記憶領域プールは、前記検知された記憶領域プールであるとすることができる。
また、この第三の態様では、例えば、前記複数の記憶領域は、複数の物理的な記憶装置に備えられているものであってもよい。各記憶領域の属性は、その記憶領域を備える物理的な記憶装置の属性と同一であってもよい。前記コントローラ(又は計算機)は、新たに物理的な記憶装置が搭載された場合に、前記搭載された物理的な記憶装置の属性に基づいて、非重複記憶領域の数が増えた記憶領域プールを検知することができる。
また、この第三の態様では、例えば、前記コントローラが非重複記憶領域に格納されているデータを削除した場合に、前記コントローラ(又は計算機)が、削除されたデータを格納していた非重複記憶領域を備える記憶領域プールを、非重複記憶領域の数が増えた記憶領域プールとして検知することができる。
第四の態様では、前記コントローラ(又は計算機)は、互いの重複部分を備える第一と第二の記憶領域プールにおけるトレンドの高さを判別することができる。この場合、前記或る記憶領域プールは、前記第一と第二の記憶領域プールのうち、トレンドが低いと判別された方の記憶領域プールであるとすることができる。
なお、この第四の態様では、前記第一の記憶領域プールよりも前記第二の記憶領域プールの方がトレンドが高い場合とは、以下の(1)又は(2)の場合、
(1)前記第二の記憶領域プールを構成する記憶領域群に対する割り当てられている記憶領域の割合である使用率が、前記第一の記憶領域プールの使用率よりも上昇傾向にある場合、
(2)前記第二の記憶領域プールに関連付けられている第二の論理ボリュームに対するアクセス頻度が、前記第一の記憶領域プールに関連付けられている第一の論理ボリュームに対するアクセス頻度よりも上昇傾向にある場合、
であるとすることができる。
第五の態様では、前記コントローラは、前記論理ボリュームに関連付けられている記憶領域プールのうち、重複記憶領域よりも非重複記憶領域を優先的に前記論理ボリュームに割り当てることができる。
第六の態様では、前記コントローラが、前記ホスト計算機から論理ボリュームに対する書込み要求を受け、前記論理ボリュームに関連付けられている記憶領域プールの中から、重複記憶領域よりも非重複記憶領域を優先的に前記論理ボリュームに割り当て、前記割り当てた記憶領域に、前記受けた書込み要求に従うデータを書き込むことができる。
本発明の第二の側面に従う記憶制御方法は、複数の論理ボリュームのうちのいずれかに対する書込み要求をホスト計算機から受け、前記書込み要求に従うデータの書込み先となる論理ボリュームに関連付けられている記憶領域プールから一以上の記憶領域を選択し、前記選択された一以上の記憶領域を、前記データの書込み先となる論理ボリュームに割り当て、前記割り当てた一以上の記憶領域に前記データを書き込み、或る論理ボリュームに関連付けられている或る記憶領域プールの中から、前記或る論理ボリュームに割り当てられていない非重複記憶領域を選択し、前記選択された非重複記憶領域を前記或る論理ボリュームに割り当て、前記選択された非重複記憶領域に、前記或る論理ボリュームに割り当てられている前記重複記憶領域内のデータを移行し、前記或る論理ボリュームから前記移行元の重複記憶領域の割り当てを外す。この記憶制御方法は、一又は複数の記憶装置システムにより実現することができる。つまり、複数の記憶領域が、一つの記憶装置システム内に備えられていてもよいし、複数の記憶装置システムに分散して備えられていても良い。
上述した記憶装置システムが備えるコントローラが行う各処理は、各処理を行うための各手段又は各ユニットによって実行することができる。各手段又は各ユニットは、ハードウェア回路、コンピュータプログラム又はそれらの組み合わせ(例えば、複数のコンピュータプログラムを読み込んだ一又は複数のCPU)によって実現することができる。各コンピュータプログラムは、所定の記憶資源(例えばメモリ)から読み込むことができる。その記憶資源には、CD−ROM等の記録媒体を介してインストールすることもできるし、インターネット等の通信ネットワークを介してダウンロードすることもできる。
本発明のいずれか一の態様によれば、論理ボリュームに対して動的に記憶領域を割り当てる記憶制御技術を提供することができる。
以下、図面を参照して、本発明の幾つかの実施例を説明する。なお、各実施例では、論理ボリュームに動的に割り当てられたり論理ボリュームから動的に解放されたりすることのできる記憶領域を、ディスク型の記憶メディアを構成する記憶資源要素である「セグメント」とする。
図1は、本発明の第一実施例に係る計算機システムの概略構成を示す。
本計算機システムは、管理計算機10、ホスト計算機50及び記憶装置システム20を有している。図1の例では、ホスト計算機50が2台、記憶装置システム20が2台となっているが、それぞれ、一台或いは三台以上であってもよい。管理計算機10、記憶装置システム20及びホスト計算機50は管理ネットワーク(例えば、LAN(Local Area Network))40に接続されている。ホスト計算機50は、データネットワーク、例えばSAN(Storage Area Network)41を介して、記憶装置システム20に接続される。SAN41では、ファイバチャネル或いはiSCSIといった通信プロトコルを用いることができる。
管理計算機10は、記憶装置システム20又はホスト計算機50に対して種々の命令を発行することで、記憶装置システム20又はホスト計算機50に所定の処理を実行させることができる。具体的には、例えば、管理計算機10は、記憶装置システム20に論理ボリュームを作成させたり、記憶装置システム20内の論理ボリューム(以下、「VOL」と略記することがある)をホスト計算機50に割り当てたり、記憶装置システム20にデータのマイグレーションを実行させたりすることができる。管理計算機10は、CPU11、メモリ12、フロントエンドI/O(入力/出力)インタフェース13及びリアエンドI/Oインタフェース14を備えることができる。CPU11、メモリ12、フロントエンドI/Oインタフェース13及びリアエンドI/Oインタフェース14は、相互に、バスを介して接続されている。CPU11は、メモリ12に格納されているコンピュータプログラムを実行することができる演算処理装置である。メモリ12は、いわゆる内部記憶装置であり、例えば、コンピュータプログラムやデータを記憶する不揮発性メモリと、CPU11の演算処理結果を一時的に格納する揮発性メモリとを含んだものとすることができる。メモリ12は、例えば、データ移行プログラムPa1及びプール履歴管理テーブルTa1を記憶することができる。フロントエンドI/Oインタフェース13は、管理ネットワーク13を介してホスト計算機50に通信可能に接続される。リアエンドI/Oインタフェース14は、記憶装置システム20に通信可能に接続される。
ホスト計算機50は、データベース管理システム(DBMS)などのコンピュータプログラムを実行し、その実行結果を記憶装置システム20に対して書き込んだり、或いは、記憶装置システム20からデータを読み出したりすることができる。ホスト計算機50のハードウェア構成は、管理計算機10と実質的に同様の構成とすることができるため、ここでは図示及び説明を省略する。
記憶装置システム20は、例えば、配列された複数のディスク装置241を備えるディスクアレイ装置である。記憶装置システム20は、ディスクアレイコントローラ21、キャッシュメモリ22、I/Oインタフェース24、25及び複数のディスク装置241を備えることができる。
ディスクアレイコントローラ21は、記憶装置システム20の動作を制御する装置であり、例えば、一又は複数枚の回路基板で構成することができる。ディスクアレイコントローラ21は、CPU211、メモリ212及びI/Oポート(図示せず)を備えることができる。メモリ212は、例えば、制御プログラムPb1、セグメント管理テーブルTb1、プール管理テーブルTb2及びVOL管理テーブルTb3を記憶することができる。
キャッシュメモリ22は、ディスク装置24に対して書き込まれるデータ、或いは、ディスク装置24から読み出されたデータを一時的に記憶することができる。
I/Oインタフェース24は、SAN41を介してホスト計算機50に通信可能に接続される。I/Oインタフェース25は、管理計算機10に通信可能に接続される。
各ディスク装置241は、例えば、HDDであるが、DVD(Digital Versatile Disk)等の他種の記憶メディアのドライブであっても良い。複数のHDD241によって、1又は複数の論理的な記憶デバイスである論理ボリューム(或いは論理ユニット(LU)とも呼ばれる)を提供することができる。
以上が、計算機システムの概略構成についての説明である。次に、管理計算機10のメモリ12に格納されるプログラム及びテーブルについて説明する。
図2Aは、データ移行プログラムPa1の構成例を示す。
データ移行プログラムPa1を読み込んで実行するCPU11は(以下、便宜上、「データ移行プログラムPa1は」と言う)、移行するデータ(マイグレーション対象のデータ)と移行先のセグメントを決定し、そのデータをそのセグメントにマイグレーションさせることの命令であるデータ移行命令を、記憶装置システム20に送ることのできるプログラムである。データ移行プログラムPa1は、要求受信モジュールMa1、セグメント取得モジュールMa2及び移行実行モジュールMa3を備える。
要求受信モジュールMa1は、ユーザ(例えば、管理計算機10或いはホスト計算機50のオペレータ)から移行要求を受け、その要求を移行実行モジュールMa3に通知する。ここで言う「移行要求」とは、或るプールに属するセグメントの空き容量を確保することの要求である。また、「プール」とは、論理ボリュームに動的に割り当てられたり解放されたりする多数のセグメントから構成される記憶資源である。プールについての詳細な説明は後に行う。
セグメント取得モジュールMa2は、記憶装置システム20と通信し、記憶装置システム20のセグメントに関する情報と論理ボリュームに関する情報とを取得する。
移行実行モジュールMa3は、要求受信モジュールMa1から通知された移行要求に応答し、セグメント取得モジュールMa2によって取得された情報群を基に、移行するデータと移行先のセグメントとを決定し、そのデータをそのセグメントに移行することのデータ移行命令を生成して、そのデータ移行命令を記憶装置システム20に送信する。
図2Bは、プール履歴管理テーブルTa1の構成例を示す。
プール履歴管理テーブルTa1は、記憶装置システム20が管理するプールに関する履歴情報を管理するテーブルである。プール履歴管理テーブルTa1には、例えば、各プール毎に、「プール番号」及び「前回使用率」が記録される。「プール番号」は、プールを一意に識別するために記憶装置システム20で付与されるIDである。「前回使用率」は、データ移行プログラムTa1が記憶装置システム20から前回取得した、プールの使用率を表す値である。この使用率とは、プールを構成するセグメントの全体数に対する、論理ボリュームに割り当てられているセグメントの数の割合を示す。この実施例では、セグメントのサイズは、固定であって、どのセグメントも同じサイズであるとする。
以上が、管理計算機10のメモリ12に格納されるプログラム及びテーブルについての説明である。次に、ディスクアレイコントローラ21のメモリ212に格納されるプログラム及びテーブルについて説明する。
図3Aは、制御プログラムPb1の構成例を示す。
制御プログラムPb1を読み込んで実行するCPU211は(以下、便宜上、「データ移行プログラムPa1は」と言う)、記憶装置システム20の動作を制御するプログラムである。制御プログラムPb1は、例えば、論理ボリュームの割り当てや、データのマイグレーションを実行することができる。制御プログラムPb1は、セグメント割り当てモジュールMb1、プール管理モジュールMb2、ボリューム管理モジュールMb3及びデータ移行モジュールMb4を備える。
セグメント割り当てモジュールMb1は、論理ボリュームを作成したり、セグメントを論理ボリュームに動的に割り当てたりすることができる。また、セグメント割り当てモジュールMb1は、プール管理モジュールMb2とボリューム管理モジュールMb3に、論理ボリュームに関する情報を通知することができる。
プール管理モジュールMb2は、セグメントを、指定された属性毎にグルーピングしプールとして管理することができる。プールに関する情報は、プール管理テーブルTb2に登録される。プールの作成時に指定することのできるセグメントの属性としては、例えば、FC、SATAのようなディスク種別、RAIDレベル、ベンダーなどがある。プールを作成する際は、一つの属性を指定しても良いし、複数の属性を指定しても良い。この属性の指定は、ユーザが行っても良いし、ディスク装置241に関する情報(例えば、ベンダ或いはディスク種別)をプール管理モジュールMb2がディスク装置241から取得して行っても良い。
ボリューム管理モジュールMb3は、セグメントと論理ボリュームとプールの関連を管理することができる。
データ移行モジュールMb4は、指定されたデータを指定されたセグメントに移行することができる。
図3Bは、プール管理テーブルTb2の構成例を示す。
プール管理テーブルTb2は、プールを管理するためのテーブルであり、具体的には、例えば、各プール毎に、「プール番号」、「属性」及び「使用率」が記録される。「プール番号」は、プールを一意に識別するためにプール管理モジュールにMb2によって付与されるIDである。「属性」は、プールに属するセグメントの属性を示す。「使用率」は、上記の「前回使用率」とは異なり、最近取得された使用率を表す。
図3Cは、VOL管理テーブルTb3の構成例を示す。
VOL管理テーブルTb3は、VOLを管理するためのテーブルであり、具体的には、例えば、各VOL毎に、「LUN」及び「属性」が記録される。この属性と、プール管理テーブルTb2に登録されている属性とにより、どのプールに属するセグメントをどの論理ボリュームに割り当てれば良いかを判別することが可能となる。
図4は、セグメント管理テーブルTb1の構成例を示す。
セグメント管理テーブルTb1は、セグメントを管理するためのテーブルである。具体的には、例えば、セグメント管理テーブルTb1には、各ディスク装置241毎に、ディスク装置241を記憶装置システム20において一意に識別するための「ディスクID」と、ディスク装置241の種別である「ディスク種別」と、ディスク装置241が構成要素となっているRAIDグループの「RAIDレベル」とが記録される。また、各ディスク装置241のディスクには、多数のセグメントが存在するが、各セグメントについて、そのセグメントを識別するための「セグメント番号」と、そのセグメントの範囲を表す「開始アドレス」及び「終了アドレス」と、そのセグメントが割り当てられている論理ボリュームを一意に識別するためのIDである「LUN」(論理ユニット番号)と、そのセグメントが属するプールの「プール番号」とが記録される。セグメントが論理ボリュームに割り当てられている場合には、そのセグメントに対応する「LUN」及び「プール番号」がそれぞれ記録されるが、そのセグメントが論理ボリュームに割り当てられていない場合には、そのセグメントに対応する「LUN」及び「プール番号」には、そのセグメントが割り当てられていないことを意味する情報(例えば図示のように"未割り当て")が記録される。
この図4によれば、例えば、セグメント番号が[0]であるセグメントは、属性として、SATA及びRAID5の両方を有しており、LUNが[0]である論理ボリュームに、プール番号が[1]のプールに属するセグメントとして割り当てられていることがわかる。なお、この実施例では、セグメントが割り当てられているということは、そのセグメントにデータが記憶されていることを意味し、逆に、セグメントが割り当てられていないということは、そのセグメントにはデータが格納されておらず空きになっていることを意味する。
以上が、ディスクアレイコントローラ21のメモリ212に格納されるプログラム及びテーブルについての説明である。
ところで、この第一実施例では、適宜、データの移行が行われる。以下、そのデータ移行の幾つかの例の概要を説明する。
図5Aは、本発明の第一実施例で行われるデータ移行の概要の一例を示す。
データ移行について説明する前に、この図5Aを参照して、記憶装置システム20における論理ボリュームとプールとの関係を説明する。
記憶装置システム20には、複数の論理ボリュームと、複数のプールが存在する。論理ボリュームは、ホスト計算機50に提供される論理的な記憶デバイスであり、一又は複数のディスク装置241上に設けることができるものである。論理ボリュームに対して書き込み要求が発行されて、その論理ボリュームに新たにデータを格納する必要が生じたときに、その論理ボリュームに割り当てられている属性と同一の属性を有するプールから、セグメントが選択されてその論理ボリュームに割り当てられ、その割り当てられたセグメントに、そのデータが格納される。
各論理ボリュームには、属性が割り当てられている。具体的には、例えば、LUNが[0]の論理ボリューム(以下、VOL0)には、属性として[RAID5]が割り当てられており、LUNが[1]の論理ボリューム(以下、VOL1)には、属性として[FC]が割り当てられているものとする。これにより、VOL0には、属性[RAID5]を有するセグメントが割り当てられ、VOL1には、属性[FC]を有するセグメントが割り当てられる。
各プールには、プール管理テーブルTb2(図3B参照)に設定されている属性が与えられている。具体的には、例えば、プール番号が[1]であるプール(以下、プール1)には、属性[RAID5]が設定されている。これは、RAID5という属性を持っているセグメントであれば、そのセグメントが他にどんな属性を有していても、プール1に属することができることを意味する。また、プール番号が[2]である(以下、プール2)には、属性[FC]が設定されている。これは、FCという属性を持っているセグメントであれば、そのセグメントが他にどんな属性を有していても、プール1に属することができることを意味する。
プール1とプール2との各々には、一部が互いに重複することになる重複部分と、互いに重複することのない非重複部分とがある。具体的に言えば、記憶装置システム20内の多数のセグメントの中には、プール1及びプール2のいずれか一方にしか属することのできないセグメント(以下、非重複セグメント)と、プール1及びプール2にどちらにも属することのできるセグメント(以下、重複セグメント)とが混在することになる。より具体的に言えば、例えば、[SATA]及び[RAID5]という属性を持ったセグメントは、プール1における非共有セグメントであり、[FC]及び[RAID1]という属性を持ったセグメントは、プール2における非共有セグメントであり、[FC]及び[RAID5]という属性を持ったセグメントは、プール1及びプール2の両方に割り当てられている属性を持った重複セグメントである。
このように、非重複セグメントと重複セグメントとが混在し、且つ、重複セグメントが、非重複セグメントよりも多くの数の論理ボリュームに割り当て可能になっている環境下では、セグメントの属性を何ら考慮せずにセグメントの動的な割り当てや解放を行うようにすると、複数の重複セグメントから構成される重複部分の方が、複数の非重複セグメントから構成される非重複部分よりも、減りが早いと考えられる。重複部分が減るということは、その重複部分を有する複数のプールの記憶容量が同時に消費されてしまうことになる。
これを解決するための方法として、各論理ボリュームに、非重複セグメントを優先的に割り当て、非重複セグメントの数が僅少或いはゼロになった場合に、重複セグメントを割り当てるといった方法が考えられる。しかし、そうしたとしても、例えば、ディスク装置241が新たに追加されたことにより、或るプールの容量が増えた場合や、論理ボリュームの非重複セグメントに対応した場所からデータが削除された場合には、非重複セグメントが余って重複セグメントが枯渇することが生じ得る。
そこで、この実施例では、図5Aに例示しているように、適宜、重複セグメント内のデータを非重複セグメントに移行し、重複セグメントを空けるようにする処理が行われる。
具体的には、例えば、属性[RAID5]に対応したVOL0に割り当て可能なセグメントの数が所定数以下になった場合に、管理計算機10のデータ移行プログラムPa1が、プール1に空き領域を生成することの命令を、記憶装置システム20の制御プログラムPb1に対して発行する。すると、制御プログラムPb1は、プール1とプール2に属する重複セグメントのうち、プール2と同じ属性[FC]のVOL1に割り当てられている重複セグメントを探し、その重複セグメント内のデータを、プール2における非重複セグメントに移行させる。これにより、重複セグメントに空きが生じ、その結果、VOL0に割り当て可能なセグメントが増えることになる。
図5Bは、本発明の第一実施例で行われるデータ移行の概要の別の一例を示す。
プールの非重複セグメントの数が増えた場合にも、データ移行を行うことができる。プールの非重複セグメントの数が増える場合としては、例えば、既に記憶装置システム20内に存在し、どのプールにも属さない一以上のセグメントが、或るプールに追加された場合、或いは、ディスク装置241が新たに追加された場合が考えられる。
具体的には、例えば、RAID1のRAIDグループを構成するFCのディスク装置241が、記憶装置システム20に新たに追加されたとする。そうすると、属性[FC]のプール2の非重複セグメントの数が増えることになる。具体的には、例えば、セグメント管理テーブルTb1に、新たに追加されたディスク装置241に関する情報が追記されることになる。
記憶装置システム20の制御プログラムPb1は、所定のタイミングで(例えば、ディスク装置241が追加されたことを検出したときに)、各プールで非重複セグメントが増えたか否かを判断し、増えたと判断した場合に、重複セグメント内のデータを、増やされた非重複セグメントに移行させることができる。
以下、この第一実施例で行われる処理について、より詳細に説明する。
本実施例では、ユーザが指定した条件に基づいて拡張する論理ボリュームにセグメントを割り当て、記憶装置システム20のセグメントの消費を抑えて効率的にセグメントを使用するために、論理ボリューム作成処理、セグメント割り当て処理、指定したプールの空き領域を増やすためのデータ移行処理、他のプールと重複しない領域に空き領域が生じた場合のデータ移行処理、の各処理を実行することができる。各処理は、依存関係を持たず各々独立して動作することができる。
図6を参照して、論理ボリューム作成処理におけるモジュール間のシーケンスについて説明する。
論理ボリューム作成処理では、ユーザが指定した条件に応じた論理ボリュームが新規に作成される。
ホスト計算機50は、ユーザによる操作に従い、制御プログラムPb1に対して、論理ボリューム作成の要求をする(ステップS10)。論理ボリューム作成要求には、論理ボリュームに割り当て可能なセグメントの属性が含まれる。
要求を受け取った制御プログラムPb1は、プール管理モジュールMb2を実行して、ユーザが指定した属性を持つプールをプール管理テーブルTb2に登録する(ステップS11)。次に、制御プログラムPb1は、セグメント割り当てモジュールMb1を実行して、ユーザから指定された属性を持った論理ボリュームを作成する(ステップS12)。また、制御プログラムPb1は、ボリューム管理モジュールMb3を実行して、論理ボリュームに関する情報を、VOL管理テーブルTb3に登録する(ステップS13)。以上の処理が終了すると、制御プログラムPb1は、ホスト計算機50に処理結果を通知する(ステップS14)。
次に、図7を参照して、論理ボリューム作成時の詳細な処理フローについて説明する。
制御プログラムPb1は、ホスト計算機50から論理ボリュームの作成要求を受信した場合、その作成要求から、論理ボリュームにセグメントを割り当てる際の属性を取得する(ステップS100)。
次に、制御プログラムPb1は、プール管理モジュールMb2を実行して、プール管理テーブルTb2からプール番号及び属性を取得し(ステップS105)、上記作成要求から取得された属性と同一の属性を有するプールが存在するか否かを判断する(ステップS110)。
合致するプールが見つかった場合(ステップS110:Yes)には、制御プログラムPb1は、論理ボリューム作成処理に移る。一方、合致するプールが見つからない場合(ステップS110:No)には、制御プログラムPb1は、プール管理モジュールMb2を実行し、上記作成要求から取得された属性を持つプールを新規に登録する(ステップS120)。
その後、制御プログラムPb1は、セグメント割り当てモジュールMb1を実行して、論理ボリュームを作成し(ステップS130)、論理ボリュームに関する情報をVOL管理テーブルTb3に登録する(ステップ140)。以上の処理が終了すると、制御プログラムPb1は、ユーザに処理結果を通知する(ステップS150)。
以上が、論理ボリューム作成処理の流れの一例である。なお、本処理では、論理ボリューム作成の前に、ユーザの要求に応じて制御プログラムPb1がプールを作成し、論理ボリューム作成時には、ユーザが、予め作成されているプールの中から、論理ボリュームに関連付けるプールを選択するようにしても良い。
さて、次に、図8を参照して、セグメント割り当て処理を説明する。
制御プログラムPb1は、ホスト計算機50からのI/O要求(特に書き込み要求)に応じ、論理ボリュームに動的にセグメントを割り当て、論理ボリュームの容量を拡張することができる。
制御プログラムPb1は、ホスト計算機50からI/O要求を受信し(ステップS20)、論理ボリュームの拡張が必要かどうか判定する(ステップS21)。具体的には、例えば、制御プログラムPb1は、I/O要求によってアクセスされる論理ボリューム上のアドレスが、論理ボリュームに割り当てられているセグメントのアドレスの範囲を超えるアドレスを指定されていた場合、論理ボリュームの拡張を実行すると判定する。
拡張が決定されると、制御プログラムPb1は、セグメント割り当てモジュールMb1を実行し、論理ボリュームを拡張する(ステップS22)。論理ボリュームの拡張に伴い、セグメント管理テーブルTb1の情報が更新され(ステップS23)、処理結果がホスト計算機に通知される(ステップS24)。
次に、図9を参照して、論理ボリューム拡張時におけるセグメント割り当て処理の詳細を説明する。
制御プログラムPb1は、ボリューム管理モジュールMb3を実行し、容量を拡張すべき論理ボリュームのLUNに対応したプール番号をセグメント管理テーブルTb1から取得することで、その論理ボリュームに関連付けられているプールを特定する(ステップS210)。
次に、制御プログラムPb1は、上記プールに該当するセグメントのうち、上記プールにのみ含まれる未割り当てのセグメント(つまり、未割り当ての非重複セグメント)を取得する(ステップS220)。具体的には、例えば、制御プログラムPb1は、プール管理モジュールMb2を実行し、プール管理テーブルTb2から、ステップS210で取得されたプール番号に対応した属性を取得し、セグメント管理モジュールMb1を実行して、その属性を満たすセグメント番号の一覧を、セグメント管理テーブルTb1から取得する。次に、制御プログラムPb1は、そのプール番号以外のプールについても同様の処理を行い、上記取得されたセグメント番号一覧から、上記プール番号によって特定されるプール以外のプールに属するセグメント番号を削除する。この結果残ったセグメント番号の一覧が、ステップS210で取得されたプール番号によって特定されるプールにのみ属するセグメントである。図3B及び図4に示した各テーブルTb2及びTb1をもとに説明すると、拡張の対象となる論理ボリュームのLUNが[0]だった場合、プール1にのみ含まれるセグメントは、属性[RAID5]であり、かつ、属性[FC]ではないセグメントとなる。この場合、該当する未割り当てのセグメントは、セグメント番号[2]のセグメントとなる。
以上の処理により、対象となるセグメントが存在する場合、すなわち、セグメント番号一覧が一つ以上のセグメント番号を持つ場合(ステップS230:Yes)、制御プログラムPb1は、そのセグメントを論理ボリュームに割り当てる(S250)。一方、対象となるセグメントが存在しなかった場合(ステップS230:No)には、制御プログラムPb1は、該当するプールに属する任意のセグメントを取得して論理ボリュームに割り当てる(ステップS240、ステップS250)。
その後、制御プログラムPb1は、ホスト計算機に結果を通知する(ステップS260)。
以上が、セグメント割り当て時の処理の流れの一例である。なお、例えば、ステップS240では、任意のセグメントを割り当てているが、何か他のアルゴリズムによってセグメントを割り当てても良い。
さて、次に、図10を参照して、データ移行処理のシーケンスを説明する。本処理は、或るプールの容量が不足しているが、他のプールの容量が余っている場合に実行される処理である。
ユーザ(例えば、ホスト計算機或いは管理計算機10のオペレータ)が、管理計算機10のデータ移行プログラムPa1に対してプールの空き領域生成を要求すると(ステップS30)、データ移行プログラムPa1は、記憶装置システム20の制御プログラムPb1から、セグメント管理テーブルTb1とプール管理テーブルTb2とに記録されている種々の情報を取得する(ステップS31、ステップ32)。
次に、データ移行プログラムPa1は、取得した種々の情報を基に、移行するデータとデータの移行先セグメントを決定し(ステップS33)、記憶装置システム20上の制御プログラムPb1に対して、データ移行を要求する(ステップ34)。
要求を受け取った制御プログラムPb2は、その要求に応答してデータ移行を実行し(ステップS35)、処理結果を返す。それにより、データ移行プログラムPa1からユーザに処理結果が通知される(ステップS36)。
データ移行処理は、制御プログラムPb1のデータ移行モジュールMb4によって実行される。データ移行モジュールMb4は、呼び出し元のプログラムまたはモジュールから、移行対象のデータが格納されているセグメントのセグメント番号と、データの移行先となるセグメントのセグメント番号とを取得する。そして、データ移行モジュールMb4は、移行元のセグメントに格納されているデータを移行先のセグメントにコピーし、コピーが正常終了した後、移行元のセグメントを初期化又は解放し、処理結果を呼び出し元のプログラムまたはモジュールに通知することができる。
次に、図11を参照して、データ移行処理について詳細に説明する。
データ移行プログラムPa1が、ユーザからあるプールの空き領域を生成する要求を取得すると(ステップS300)、記憶装置システム20から、セグメント管理情報とプール管理情報を取得する(ステップ310)。なお、セグメント管理情報は、セグメント管理テーブルTb1に格納されている情報であり、プール管理情報は、プール管理テーブルTb2に格納されている情報である。
データ移行プログラムPa1は、セグメント管理情報とプール管理情報から、ユーザが空き領域を生成するように指定したプールに属するセグメントのうち、そのプールとは異なるプール(以後、「他プール」と呼ぶ)と重複するセグメントの一覧を取得する(ステップS320)。他プールが複数存在する場合には、各他プールにおいてそれぞれ同様の処理を行うことができる。具体的には、例えば、ステップ320の処理を各他プールに適用することができる。
データ移行プログラムPa1は、他プールと重複するセグメントの一覧を取得したならば、セグメント管理情報及びプール管理情報を参照して、取得したセグメント一覧の中に、他プールに対応した論理ボリュームに割り当てられているセグメントを判定する(ステップS330)。データ移行プログラムPa1は、そのようなセグメントがある場合には(ステップS330:Yes)、そのセグメント内のデータを、移行対象のデータとして決定する(ステップ350)。一方、そのようなセグメントがない場合には(ステップS330:No)、指定されたプールに空きを作ることができないということなので、データ移行プログラムPa1は、セグメントの追加(具体的には、例えば、ディスク装置の追加、或いは、どのプールにも属していない既存のセグメントの追加)が必要である旨をユーザに通知する(ステップ340)。
次に、データ移行プログラムPa1は、セグメント管理情報とプール管理情報から、他プールにのみ含まれるセグメントの一覧を取得する(ステップS360)。データ移行プログラムPa1は、そのセグメント一覧に、論理ボリュームに未割り当てのセグメントがある場合に、未割り当てのセグメントを移行先のセグメントとして決定し(ステップS370:Yes)、移行実行モジュールMa3を実行することにより、制御プログラムPb1のデータ移行モジュールMb3に対して、上記処理で決定したデータを、未割り当てのセグメントに移行するよう指示し、データを移行させることができる(ステップS380)。未割り当てのセグメントがない場合(ステップS370:No)には、移行先セグメントが無く移行ができないため、S340が行われる。
以上が、データ移行処理の流れの一例についての説明である。なお、制御プログラムPb1は、データを移行した場合、セグメント管理テーブルTb1において、移行元の重複セグメントの状態を未割り当てとし、移行先の非重複セグメントの状態を割り当て済みに更新することができる(例えば、その非重複セグメントが割り当てられた論理ボリュームのLUNと、その非重複セグメントが構成要素の一つとなっているプールの番号とを、セグメント管理テーブルTb1に記録することができる)。また、上記の例では、ユーザが、空きを確保するプールを指定しているが、プールの使用率が所定の閾値を超えた場合にデータ移行処理を開始するなど、種々のタイミングで、データ移行処理を実行することができる。
図12を参照して、他プールと重複しない領域に空き領域が生じた場合のデータ移行処理について説明する。本処理は、例えば、ユーザがディスク装置を増設して空き領域が生じた場合や、論理ボリュームに割り当てられていたセグメントが開放されて空き領域が生じた場合に、実行することができる。
データ移行プログラムPa1は、記憶装置システム20上の制御プログラムPb1に要求して、セグメント管理情報とプール管理情報を取得する(ステップS41、S42)。
次に、データ移行プログラムPa1は、プール管理情報から各プールの使用率を取得し、その使用率と、管理計算機10のメモリ12に格納されているプール履歴管理テーブルTb1の前回使用率とを比較する。その結果、前回使用率の方が高い場合に、データ移行プログラムPa1は、空き領域が発生したと判定することができる(ステップS33)。
空き領域が発生した場合には、上記ステップS33〜ステップS35と同様の処理を行うことができる(ステップS44〜ステップS46)。
次に、図13を参照して、図12を参照して説明したデータ移行処理についてより詳細に説明する。
上記処理において、データ移行プログラムPa1が、空き領域を検知した場合(ステップS400:Yes)、空き領域が他プールと重複されないセグメントかどうか判定する(ステップS410)。空き領域が検知されなかった場合は、そのまま処理が終了する(ステップS400:No)。
空き領域が、他プールと重複されない領域(セグメント)の場合(ステップS410:Yes)、データ移行プログラムPa1は、空き領域が生じたプールにおいて、他プールと重複するセグメントの一覧を取得する(ステップS420)。データ移行プログラムPa1は、空き領域が他プールと重複される場合(ステップS410:No)は、複数のプールで重複する領域に空き領域が発生したことになるため、データ移行はせず、そのまま処理を終了する。
データ移行プログラムPa1は、他プールと重複するセグメントの一覧に、空き領域が発生したプールに関連付けられている論理ボリュームのデータがあるか判断し(ステップS430)、データがある場合には、移行実行モジュールMa3を実行して、制御プログラムPb1のデータ移行モジュールMb3に対して、データを空き領域に移行するよう指示し、データを移行させる(ステップS440)。データが無い場合には、移行対象となるデータが無いため、データ移行プログラムPa1は、そのまま処理を終了する(ステップS430:No)
以上が、空き領域が発生したことが検知された場合に行われるデータ移行処理である。なお、複数のプールにおいて、空き領域が生じたことを検知した場合には、本処理を各プールに繰り返し適用することができる。また、前回使用率よりも使用率が減ったことにより空き領域の発生を検知するようになっている場合には、制御プログラムPb1は、例えば以下の処理を実行することができる。すなわち、例えば、制御プログラムPb1は、ディスク装置241が追加された場合に、追加されたディスク装置241のセグメントがどのプールに属するかを判別し、判別されたプールの使用率を、そのプールに対して追加された複数のセグメントの総サイズに基づいて更新することができる。また、例えば、制御プログラムPb1は、論理ボリュームからデータを削除した場合に、そのデータを記憶していたセグメントがどのプールに属するかを判別して、判別されたプールの使用率を、そのセグメントのサイズに応じて更新することができる。
以上、上述した第一実施例によれば、或るプールに含まれるデータのうち、他のプールと重複するセグメントに格納されているデータの一部または全てを、他のプールにのみ含まれるセグメント(つまり非重複セグメント)に移行することができる。これにより、重複セグメントが枯渇する可能性を低減することができる。
以下、本発明の第二実施例について説明する。なお、以下、第一実施例との相違点を主に説明し、第一実施例との共通点については説明を省略或いは簡略する。
第二実施例では、各プールと他のプールのトレンドの高低に基づいて、どのプールとどのプールにおける重複セグメント内のデータを、どの他のプールの非重複セグメントに移行するかを決定することができる。
図14は、本発明の第二実施例で行われるデータ移行処理の流れの一例を示す。
データ移行プログラムPa1は、トレンド情報とトレンド判定情報とを取得する(ステップS500)。トレンド情報とは、重複部分を有するプール間でのトレンドの高さを表す情報である。トレンド判定情報とは、トレンドの高さに変更があったか否かを判定するために用いられる情報である。トレンド判定情報に記録される各プール毎の情報としては、例えば、プールの使用率の増減に関する情報、又は、I/O頻度が考えられる。
データ移行プログラムPa1は、トレンド判定情報を参照し、トレンドの高さに変更があったか否かを判定する(ステップS510)。ここでは、例えば、プール1よりもプール2のトレンドが高いことがトレンド情報に記録されている場合に、トレンド判定情報から、プール2よりもプール1の使用率が増加していることが特定されたときは、プール1とプール2間のトレンドの高さに変更があったと判定することができる。データ移行プログラムPa1は、トレンドの高さに変更があったと判定された場合(ステップS510:Yes)、変更後のトレンドをトレンド情報に反映することができる(ステップS520)。
データ移行プログラムPa1は、トレンド情報からプール間のトレンドの高低の傾向を判別する(ステップS530)。また、データ移行プログラムPa1は、セグメント管理情報とプール管理情報とを取得する(S540)。
データ移行プログラムPa1は、ステップS530の判別結果と、取得された種々の情報を基に、トレンドの高い傾向にあるプールと低い傾向にあるプールとにおける重複セグメントを特定し、特定された重複セグメントに格納されているデータを、トレンドの低い傾向にあるプールに属する非重複セグメントに移行することができる(ステップS550〜S600)。
以上、この第二実施例によれば、重複セグメントに格納されているデータを、トレンドの低いプールの非重複セグメントに移行することができるので、トレンドの高い傾向にあるプールの空きを優先的に確保することができる。
なお、この第二実施例では、例えば、データ移行プログラムPa1は、定期的に、プール管理テーブルTb2に登録されている使用率を取得し、各プール毎に、取得した時刻と取得された使用率とを、トレンド判定情報に記録することができる。この場合、使用率がより上昇しているものを、トレンドの高い傾向にあるプールと判定することができる。また、例えば、データ移行プログラムPa1は、各論理ボリューム毎のI/O頻度を取得し、論理ボリュームの属性に対応するプールを特定し、特定されたプールについて、取得した時刻と取得されたI/O頻度とを、トレンド判定情報に記録することができる。この場合、I/O頻度がより上昇している論理ボリュームに関連付けられているプールを、トレンドの高い傾向にあるプールと判定することができる。
以上、本発明の好適な幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、上記説明では、データ移行の単位としてセグメント単位にデータを移行しているが別の単位でも良い。
また、例えば、管理計算機10が無くても良い。その場合、管理計算機10のメモリ12に格納されているプログラムやテーブルは、記憶装置システム20又はホスト計算機50に備えることができる。
また、例えば、データ移行プログラムPa1は、非重複セグメントの数が所定数以下の場合には、重複セグメント内のデータを移行しないように制御することもできる。
また、例えば、図15に例示するように、三以上のプールが存在する場合、三以上のプールによって重複するセグメント(図15で斜線で示した領域)が存在してもよい。この場合、例えば、プール1における最重複部分(最も多くのプールに属することができるセグメントの集合)を空けたい場合には、データ移行プログラムPa1は、プール2の非重複部分の空き具合を調べ、最重複部分内のデータを、プール2の非重複部分に移行させることができる。また、データ移行プログラムPa1は、プール3の非重複部分の空き具合を調べ、最重複部分内のデータを、プール3の非重複部分に移行させることもできる。なお、この場合、データ移行プログラムPa1は、プール2の非重複部分のサイズと、プール3の非重複部分のサイズとに基づいて、それぞれに移行するデータのサイズを制御することができる。例えば、プール2の非重複部分のサイズの方がプール3の非重複部分のサイズよりも大きい場合には、プール2の非重複部分により大量のデータを移行させることができる。
図1は、本発明の第一実施例に係る計算機システムの概略構成を示す。 図2Aは、データ移行プログラムPa1の構成例を示す。図2Bは、プール履歴管理テーブルTa1の構成例を示す。 図3Aは、制御プログラムPb1の構成例を示す。図3Bは、プール管理テーブルTb2の構成例を示す。図3Cは、VOL管理テーブルTb3の構成例を示す。 図4は、セグメント管理テーブルTb1の構成例を示す。 図5Aは、本発明の第一実施例で行われるデータ移行の概要の一例を示す。図5Bは、本発明の第一実施例で行われるデータ移行の概要の別の一例を示す。 図6は、論理ボリューム作成時のシーケンス概要の一例を示す。 図7は、論理ボリューム作成時の処理フローの一例を示す。 図8は、セグメント割り当て処理のシーケンス概要の一例を示す。 図9は、セグメント割り当て処理のフローの一例を示す。 図10は、データ移行処理のシーケンス概要の一例を示す。 図11は、データ移行処理のフローの一例を示す。 図12は、他プールと重複しない領域に空き領域が生じた場合に行われるデータ移行処理のシーケンス概要の一例を示す。 図13は、図12のデータ移行処理のフローの一例を示す。 図14は、本発明の第二実施例で行われるデータ移行処理の流れの一例を示す。 図15は、三以上のプールが重複する領域が存在する場合の一例の説明図である。
符号の説明
10…管理計算機 11…CPU(中央演算装置) 12…メモリ 13…フロントエンドI/Oインタフェース 14…リアエンドI/Oインタフェース 20…記憶装置システム 21…ディスクアレイコントローラ 211…CPU 212…メモリ 22…キャッシュメモリ 24、25…I/Oインタフェース 241…ディスク装置 50…ホスト計算機 Pa1…データ移行プログラム Ma1…要求受信モジュール Ma2…セグメント取得モジュール Ma3…移行実行モジュール Pb1…制御プログラム Mb1…セグメント割り当てモジュール Mb2…プール管理モジュール Mb3…ボリューム管理モジュール Mb4…データ移行モジュール Ta1…プール履歴管理テーブル Tb1…セグメント管理テーブル Tb2…プール管理テーブル Tb3…VOL管理テーブル

Claims (20)

  1. 書込み要求を発行するホスト計算機と通信することができる記憶装置システムにおいて、
    複数の記憶領域から構成された複数の記憶領域プールと、
    前記複数の記憶領域プールに関連付けられた複数の論理ボリュームと、
    前記ホスト計算機から論理ボリュームに対する書込み要求を受け、前記論理ボリュームに関連付けられている記憶領域プール内の一以上の記憶領域を前記論理ボリュームに割り当て、前記割り当てた一以上の記憶領域に、前記受けた書込み要求に従うデータを書き込むコントローラと
    を備え、
    前記複数の記憶領域には、一以上の属性を有する記憶領域と複数の属性を有する記憶領域とが含まれており、
    記憶領域プールには、その記憶領域プールを構成する二以上の記憶領域に共通する少なくとも一つの属性が割り当てられており、重複部分と、非重複部分とがあり、
    各記憶領域プールの前記重複部分は、その記憶領域プールに割り当てられている属性の他に、他の記憶領域プールに割り当てられている属性を有するが故に、その記憶領域プールと前記他の記憶領域プールの構成要素になっている重複記憶領域の集合であり、
    各記憶領域プールの前記非重複部分は、その記憶領域プールに割り当てられている属性を有するが、他の記憶領域プールに割り当てられている属性を有しないが故に、その記憶領域プールのみを構成する非重複記憶領域の集合であり、
    前記コントローラが、或る論理ボリュームに関連付けられている或る記憶領域プールの中から、前記或る論理ボリュームに割り当てられていない非重複記憶領域を選択し、前記選択された非重複記憶領域を前記或る論理ボリュームに割り当て、前記選択された非重複記憶領域に、前記或る論理ボリュームに割り当てられている前記重複記憶領域内のデータを移行し、前記或る論理ボリュームから前記移行元の重複記憶領域の割り当てを外す、
    記憶装置システム。
  2. 前記或る記憶領域プールは、前記ホスト計算機のユーザ又は他の計算機のユーザから指定された空きを確保すべき記憶領域プールとの前記重複部分を有する別の記憶領域プールである、
    請求項1記載の記憶装置システム。
  3. 前記或る記憶領域プールは、未割り当ての記憶領域の数が所定数以下になった記憶領域プールとの重複部分を有する別の記憶領域プールである、
    請求項1記載の記憶装置システム。
  4. 前記或る記憶領域プールは、非重複記憶領域の数が増えた記憶領域プールである、
    請求項1記載の記憶装置システム。
  5. 前記複数の記憶領域は、複数の物理的な記憶装置に備えられているものであり、
    各記憶領域の属性は、その記憶領域を備える物理的な記憶装置の属性と同一であり、
    新たに物理的な記憶装置が搭載された場合に、前記搭載された物理的な記憶装置の属性に基づいて、前記非重複記憶領域の数が増えた記憶領域プールが検知される、
    請求項4記載の記憶装置システム。
  6. 前記物理的な記憶装置は、ハードディスクドライブであり、
    前記物理的な記憶装置の属性とは、前記ハードディスクドライブの種類である、
    請求項5記載の記憶装置システム。
  7. 二以上のRAIDグループが構成されており、
    各RAIDグループは、前記複数の物理的な記憶装置のうちの二以上の物理的な記憶装置によって構成されており、
    前記各RAIDグループには、或るRAIDレベルが割り当てられており、
    前記物理的な記憶装置の属性とは、その物理的な記憶装置が構成要素となっているRAIDグループのRAIDレベルである、
    請求項5記載の記憶装置システム。
  8. 前記コントローラが非重複記憶領域に格納されているデータを削除した場合に、削除されたデータを格納していた非重複記憶領域を備える記憶領域プールが、非重複記憶領域の数が増えた記憶領域プールとして検知される、
    請求項4記載の記憶装置システム。
  9. 前記或る記憶領域プールは、互いの重複部分を備える第一と第二の記憶領域プールのうち、トレンドが低いと判別された方の記憶領域プールである、
    請求項1記載の記憶装置システム。
  10. 前記第一の記憶領域プールよりも前記第二の記憶領域プールの方がトレンドが高い場合とは、以下の(1)又は(2)の場合、
    (1)前記第二の記憶領域プールを構成する記憶領域群に対する割り当てられている記憶領域の割合である使用率が、前記第一の記憶領域プールの使用率よりも上昇傾向にある場合、
    (2)前記第二の記憶領域プールに関連付けられている第二の論理ボリュームに対するアクセス頻度が、前記第一の記憶領域プールに関連付けられている第一の論理ボリュームに対するアクセス頻度よりも上昇傾向にある場合、
    である、
    請求項9記載の記憶装置システム。
  11. 前記コントローラは、前記論理ボリュームに関連付けられている記憶領域プールのうち、重複記憶領域よりも非重複記憶領域を優先的に前記論理ボリュームに割り当てる、
    請求項1記載の記憶装置システム。
  12. 前記コントローラが、
    前記ホスト計算機から論理ボリュームに対する書込み要求を受け、
    前記論理ボリュームに関連付けられている記憶領域プールの中から、重複記憶領域よりも非重複記憶領域を優先的に前記論理ボリュームに割り当て、
    前記割り当てた記憶領域に、前記受けた書込み要求に従うデータを書き込む、
    請求項1記載の記憶装置システム。
  13. 一以上の属性を有する記憶領域と複数の属性を有する記憶領域とが含まれた複数の記憶領域があり、
    二以上の記憶領域から構成された複数の記憶領域プールがあり、
    記憶領域プールには、その記憶領域プールを構成する二以上の記憶領域に共通する少なくとも一つの属性が割り当てられており、重複部分と、非重複部分とがあり、
    各記憶領域プールの前記重複部分は、その記憶領域プールに割り当てられている属性の他に、他の記憶領域プールに割り当てられている属性を有するが故に、その記憶領域プールと前記他の記憶領域プールの構成要素にもなっている重複記憶領域の集合であり、
    各記憶領域プールの前記非重複部分は、その記憶領域プールに割り当てられている属性を有するが、他の記憶領域プールに割り当てられている属性を有しないが故に、その記憶領域プールのみを構成する非重複記憶領域の集合であり、
    複数の論理ボリュームのうちのいずれかに対する書込み要求をホスト計算機から受け、
    前記書込み要求に従うデータの書込み先となる論理ボリュームに関連付けられている記憶領域プールから一以上の記憶領域を選択し、
    前記選択された一以上の記憶領域を、前記データの書込み先となる論理ボリュームに割り当て、
    前記割り当てた一以上の記憶領域に、前記データを書き込み、
    或る論理ボリュームに関連付けられている或る記憶領域プールの中から、前記或る論理ボリュームに割り当てられていない非重複記憶領域を選択し、
    前記選択された非重複記憶領域を前記或る論理ボリュームに割り当て、
    前記選択された非重複記憶領域に、前記或る論理ボリュームに割り当てられている前記重複記憶領域内のデータを移行し、
    前記或る論理ボリュームから前記移行元の重複記憶領域の割り当てを外す、
    記憶制御方法。
  14. 前記或る記憶領域プールは、前記ホスト計算機又は他の計算機のユーザから指定された空きを確保すべき記憶領域プールとの前記重複部分を有する別の記憶領域プールである、
    請求項13記載の記憶制御方法。
  15. 前記或る記憶領域プールは、未割り当ての記憶領域の数が所定数以下になった記憶領域プールとの重複部分を有する別の記憶領域プールである、
    請求項13記載の記憶制御方法。
  16. 前記或る記憶領域プールは、非重複記憶領域の数が増えた記憶領域プールである、
    請求項13記載の記憶制御方法。
  17. 前記複数の記憶領域は、複数の物理的な記憶装置に備えられているものであり、
    各記憶領域の属性は、その記憶領域を備える物理的な記憶装置の属性と同一であり、
    新たに物理的な記憶装置が搭載された場合に、前記搭載された物理的な記憶装置の属性に基づいて、前記非重複記憶領域の数が増えた記憶領域プールが検知される、
    請求項16記載の記憶制御方法。
  18. 前記非重複記憶領域に格納されているデータを削除した場合に、削除されたデータを格納していた非重複記憶領域を備える記憶領域プールが、非重複記憶領域の数が増えた記憶領域プールとして検知される、
    請求項16記載の記憶制御方法。
  19. 前記ホスト計算機から論理ボリュームに対する書込み要求を受け、
    前記論理ボリュームに関連付けられている記憶領域プールの中から、重複記憶領域よりも非重複記憶領域を優先的に前記論理ボリュームに割り当て、
    前記割り当てた記憶領域に、前記受けた書込み要求に従うデータを書き込む、
    請求項13記載の記憶制御方法。
  20. 書込み要求を発行するホスト計算機と通信することができる記憶装置システムにおいて、
    複数の物理的な記憶装置に備えられる複数の記憶領域と、
    二以上の記憶領域から構成された複数の記憶領域プールと、
    前記複数の記憶領域プールにそれぞれ関連付けられた複数の論理ボリュームと、
    コントローラと
    を備え、
    前記複数の記憶領域には、一以上の属性を有する記憶領域と複数の属性を有する記憶領域とが含まれており、
    各記憶領域の属性は、その記憶領域を備える物理的な記憶装置の属性と同一であり、
    記憶領域プールには、その記憶領域プールを構成する二以上の記憶領域に共通する少なくとも一つの属性が割り当てられており、重複部分と、非重複部分とがあり、
    各記憶領域プールの前記重複部分は、その記憶領域プールに割り当てられている属性の他に、他の記憶領域プールに割り当てられている属性を有するが故に、その記憶領域プールと前記他の記憶領域プールの構成要素にもなっている重複記憶領域の集合であり、
    各記憶領域プールの前記非重複部分は、その記憶領域プールに割り当てられている属性を有するが、他の記憶領域プールに割り当てられている属性を有しないが故に、その記憶領域プールのみを構成する非重複記憶領域の集合であり、
    前記コントローラが、
    前記ホスト計算機から論理ボリュームに対する書込み要求を受け、
    前記論理ボリュームに関連付けられている記憶領域プールの中から、重複記憶領域よりも非重複記憶領域を優先的に前記論理ボリュームに割り当て、前記割り当てた記憶領域に、前記受けた書込み要求に従うデータを書き込み、
    以下の(A)〜(C)、
    (A)前記ホスト計算機又は他の計算機のユーザから、空きを確保すべき記憶領域プールが指定されたとき、
    (B)未割り当ての記憶領域の数が所定数以下になった記憶領域プールが検知されたとき、
    (C)新たに物理的な記憶装置が搭載されたこと、又は、非重複記憶領域に格納されているデータを削除したことに起因して、非重複記憶領域の数が増えた記憶領域プールが検知されたとき、
    のうちの少なくとも一つのときに、或る論理ボリュームに関連付けられている或る記憶領域プールの中から、前記或る論理ボリュームに割り当てられていない非重複記憶領域を選択し、
    前記選択された非重複記憶領域を前記或る論理ボリュームに割り当て、
    前記選択された非重複記憶領域に、前記或る論理ボリュームに割り当てられている前記重複記憶領域内のデータを移行し、
    前記或る論理ボリュームから前記移行元の重複記憶領域の割り当てを外し、
    前記或る記憶領域プールは、
    (a)前記指定された記憶領域プールとの前記重複部分を有する別の記憶領域プールである、
    (b)未割り当ての記憶領域の数が所定数以下になった記憶領域プールとの重複部分を有する別の記憶領域プールである、
    (c)非重複記憶領域の数が増えた記憶領域プールである、
    のうちの少なくとも一つである、
    記憶装置システム。

JP2005331158A 2005-11-16 2005-11-16 記憶装置システム及び記憶制御方法 Expired - Fee Related JP4684864B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005331158A JP4684864B2 (ja) 2005-11-16 2005-11-16 記憶装置システム及び記憶制御方法
US11/337,679 US7415573B2 (en) 2005-11-16 2006-01-24 Storage system and storage control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005331158A JP4684864B2 (ja) 2005-11-16 2005-11-16 記憶装置システム及び記憶制御方法

Publications (2)

Publication Number Publication Date
JP2007140728A JP2007140728A (ja) 2007-06-07
JP4684864B2 true JP4684864B2 (ja) 2011-05-18

Family

ID=38042280

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005331158A Expired - Fee Related JP4684864B2 (ja) 2005-11-16 2005-11-16 記憶装置システム及び記憶制御方法

Country Status (2)

Country Link
US (1) US7415573B2 (ja)
JP (1) JP4684864B2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4723921B2 (ja) * 2005-06-13 2011-07-13 株式会社日立製作所 記憶制御装置及びその制御方法
JP5117120B2 (ja) * 2007-06-18 2013-01-09 株式会社日立製作所 ストレージ装置のボリュームを管理する計算機システム、方法及びプログラム
JP5234342B2 (ja) * 2008-09-22 2013-07-10 株式会社日立製作所 計算機システム及びその制御方法
JP2010113509A (ja) * 2008-11-06 2010-05-20 Hitachi Ltd 記憶領域の割当方法および管理サーバ
JP2010170411A (ja) * 2009-01-23 2010-08-05 Hitachi Ltd 計算機システム、ストレージプール管理方法
WO2010113207A1 (en) * 2009-03-31 2010-10-07 Hitachi, Ltd. Storage system and method of operating the same
JP5080611B2 (ja) * 2010-05-14 2012-11-21 株式会社日立製作所 ThinProvisioningが適用されたストレージ装置
JP5527419B2 (ja) * 2010-10-04 2014-06-18 富士通株式会社 ストレージシステム
US9348515B2 (en) * 2011-01-17 2016-05-24 Hitachi, Ltd. Computer system, management computer and storage management method for managing data configuration based on statistical information
US20120265932A1 (en) * 2011-04-13 2012-10-18 Jibbe Mahmoud K Method to increase the flexibility of configuration and/or i/o performance on a drive array by creation of raid volume in a heterogeneous mode
US9588978B2 (en) 2013-09-30 2017-03-07 International Business Machines Corporation Merging metadata for database storage regions based on overlapping range values
US9916096B2 (en) * 2014-02-05 2018-03-13 International Business Machines Corporation Increasing data storage capacity
WO2015123225A1 (en) * 2014-02-11 2015-08-20 Atlantis Computing, Inc. Aggregating memory to create a network addressible storage volume for storing virtual machine files
US9519687B2 (en) 2014-06-16 2016-12-13 International Business Machines Corporation Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices
US10042887B2 (en) 2014-12-05 2018-08-07 International Business Machines Corporation Query optimization with zone map selectivity modeling
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10191662B2 (en) * 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002182859A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
JP2002222061A (ja) * 2001-01-25 2002-08-09 Hitachi Ltd 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体
JP4175788B2 (ja) 2001-07-05 2008-11-05 株式会社日立製作所 ボリューム制御装置
US7143259B2 (en) * 2002-12-20 2006-11-28 Veritas Operating Corporation Preservation of intent of a volume creator with a logical volume
JP4322031B2 (ja) * 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
WO2004109517A1 (ja) * 2003-06-09 2004-12-16 Fujitsu Limited ストレージ管理装置、ストレージ装置、ファイル処理システム、ファイル管理システム、並びにこれらの方法およびプログラム
JP4681247B2 (ja) * 2004-04-08 2011-05-11 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法

Also Published As

Publication number Publication date
JP2007140728A (ja) 2007-06-07
US7415573B2 (en) 2008-08-19
US20070113007A1 (en) 2007-05-17

Similar Documents

Publication Publication Date Title
JP4684864B2 (ja) 記憶装置システム及び記憶制御方法
JP4890033B2 (ja) 記憶装置システム及び記憶制御方法
US8447946B2 (en) Storage apparatus and hierarchical data management method for storage apparatus
JP5439581B2 (ja) ストレージシステム、ストレージ装置、ストレージシステムの記憶領域の最適化方法
US20100082900A1 (en) Management device for storage device
JP5250869B2 (ja) ストレージシステム、論理記憶領域割り当て方法及び計算機システム
WO2012049711A1 (en) Data migration system and data migration method
US20070245116A1 (en) Storage area dynamic assignment method
JP2007066259A (ja) 計算機システムとストレージシステム並びにボリューム容量拡張方法
US8001324B2 (en) Information processing apparatus and informaiton processing method
JP5080611B2 (ja) ThinProvisioningが適用されたストレージ装置
JP6340439B2 (ja) ストレージシステム
JP5531091B2 (ja) 計算機システム及びその負荷均等化制御方法
JP2005038071A (ja) ストレージの容量を最適化する管理方法
JPWO2015087442A1 (ja) ストレージシステムの移行方式および移行方法
CN103077117B (zh) 用于改变虚拟卷中的存储区域的层的系统和方法
JP5073259B2 (ja) 仮想化システム及び領域割当て制御方法
JP4893716B2 (ja) バックアップ装置、バックアップ方法およびバックアッププログラム
JP2009053921A (ja) ストレージシステム、計算機及び計算機システム
JPWO2018235149A1 (ja) ストレージ装置及び記憶領域管理方法
CN112306390B (zh) 存储控制系统以及方法
US20080109630A1 (en) Storage system, storage unit, and storage management system
JP2017037501A (ja) ストレージ制御装置およびストレージ制御プログラム
JP5768118B2 (ja) 複数のフラッシュパッケージを有するストレージシステム
JP7783227B2 (ja) ストレージ制御装置、ストレージ管理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080404

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110117

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: 20110208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110209

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees