JP2008117094A - ストレージシステム、ストレージ装置及びストレージ管理方法 - Google Patents
ストレージシステム、ストレージ装置及びストレージ管理方法 Download PDFInfo
- Publication number
- JP2008117094A JP2008117094A JP2006298408A JP2006298408A JP2008117094A JP 2008117094 A JP2008117094 A JP 2008117094A JP 2006298408 A JP2006298408 A JP 2006298408A JP 2006298408 A JP2006298408 A JP 2006298408A JP 2008117094 A JP2008117094 A JP 2008117094A
- Authority
- JP
- Japan
- Prior art keywords
- storage area
- size
- area
- storage
- virtual
- 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.)
- Withdrawn
Links
Images
Classifications
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0661—Format or protocol conversion arrangements
-
- 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/0608—Saving storage space on storage 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Abstract
【課題】
リソースを効率良く利用するストレージ装置を提供する。
【解決手段】
新たなライト要求がされた場合に、物理的な記憶領域の割当を行うストレージ装置に対して、過去のライト要求から適切な割当サイズを求める。また、求めた割当サイズがストレージ装置に定義されている場合に、このサイズの物理的な記憶領域を割当てるようストレージ装置の設定情報を変更する。
【選択図】 図2
リソースを効率良く利用するストレージ装置を提供する。
【解決手段】
新たなライト要求がされた場合に、物理的な記憶領域の割当を行うストレージ装置に対して、過去のライト要求から適切な割当サイズを求める。また、求めた割当サイズがストレージ装置に定義されている場合に、このサイズの物理的な記憶領域を割当てるようストレージ装置の設定情報を変更する。
【選択図】 図2
Description
本発明は、ストレージ装置及びそのストレージを管理する方法に係り、特に論理的な記憶領域に対する物理的な記憶領域の割当に関する。
ストレージ装置と、ホストコンピュータとをネットワークで接続したシステムが年々増加している。ホストコンピュータには、業務を行う様々なアプリケーションを有しており、実際に業務を行う場合には、アプリケーション毎に、ストレージ装置で利用する記憶領域を割り当てる必要がある。
しかしながら、アプリケーションが必要とする記憶領域の容量は予測することが困難であり、適切な容量を割り当てることができない。そのため、一旦記憶領域を割り当てても、アプリケーションの稼動状況によっては、あまりデータの書込みが発生せず、空き領域が多くなってしまったり、あるいは大量のデータの書込みが発生し、容量が不足したりする場合がある。
しかしながら、アプリケーションが必要とする記憶領域の容量は予測することが困難であり、適切な容量を割り当てることができない。そのため、一旦記憶領域を割り当てても、アプリケーションの稼動状況によっては、あまりデータの書込みが発生せず、空き領域が多くなってしまったり、あるいは大量のデータの書込みが発生し、容量が不足したりする場合がある。
このような問題を解決する方法として、例えば、特許文献1に記載されているように、仮想化という技術を利用して、アプリケーションに対して論理的な記憶領域を提供し、この論理的な記憶領域に対してデータの書込みが発生した際に、固定サイズの物理的な記憶領域を割り当てる技術がある。
このように、仮想化の技術を利用して、論理的な記憶領域に対して固定サイズの物理的な記憶領域を割り当てる構成とすることにより、ディスク装置等の記憶媒体のリソースを効率良く利用できる。
しかしながら、ストレージ装置には、複数のホストコンピュータが接続され、複数のアプリケーションが実行される。アプリケーションによって、書込み又は読み出しの対象となるデータのサイズは様々であり、またアクセス頻度も異なる。
しかしながら、ストレージ装置には、複数のホストコンピュータが接続され、複数のアプリケーションが実行される。アプリケーションによって、書込み又は読み出しの対象となるデータのサイズは様々であり、またアクセス頻度も異なる。
そのため、物理的な記憶領域のサイズが対象となるデータのサイズより小さい場合、書込み又は読み出し要求に対して複数の物理的な記憶領域を選択することになり、効率が悪い。一方で、物理的な記憶領域のサイズが対象となるデータのサイズより大きい場合、書込み要求がランダムに発生すると、空き領域の増加につながってしまう。
本発明の目的は、ストレージ装置の物理的な記憶領域の利用率の向上および効率的な領域確保を可能とするストレージ装置又はストレージシステムを提供することにある。
ストレージ装置は、ホストコンピュータから仮想的な記憶領域に対する書込み要求に対して、物理的な記憶領域を割り当てるものである。
このようなストレージ装置に、異なる割り当てサイズの物理的な記憶領域を設け、ストレージ装置を管理する管理サーバは、仮想的な記憶領域に対するアクセス情報を収集する。管理サーバは、更に、この収集したアクセス情報から、適切な割り当てサイズの物理的な記憶領域を決定し、ストレージ装置において決定されたサイズの物理的な記憶領域を割り当てるようにする。
物理的な記憶領域の利用率を向上させるストレージ装置又はストレージシステムを提供することができる。
以下、図面を用いて説明する。
図1は、ストレージシステムの構成を示したものである。
本システムは、複数のホストコンピュータ110、複数のストレージ装置120、管理サーバ140、管理端末160を含んで構成される。ホストコンピュータ110とストレージ装置120は第1のネットワーク170で接続され、また、ホストコンピュータ110、ストレージ装置120、管理サーバ140、管理端末160は第2のネットワーク180で接続されている。ここで、第1のネットワーク170、第2のネットワーク180は、どのような種類のネットワークであってもよい。例えば、第1のネットワークにSAN(Storage Area Network)を利用し、第2のネットワークにLAN(Local Area Network)を利用した構成としてもよい。
図1は、ストレージシステムの構成を示したものである。
本システムは、複数のホストコンピュータ110、複数のストレージ装置120、管理サーバ140、管理端末160を含んで構成される。ホストコンピュータ110とストレージ装置120は第1のネットワーク170で接続され、また、ホストコンピュータ110、ストレージ装置120、管理サーバ140、管理端末160は第2のネットワーク180で接続されている。ここで、第1のネットワーク170、第2のネットワーク180は、どのような種類のネットワークであってもよい。例えば、第1のネットワークにSAN(Storage Area Network)を利用し、第2のネットワークにLAN(Local Area Network)を利用した構成としてもよい。
ホストコンピュータ110は、プログラムやデータを格納するメモリ112、メモリ112に格納されたプログラムを実行するCPU等のプロセッサ111を備えている。また、ホストコンピュータ110のメモリ112は、業務を行うアプリケーションプログラム113、アプリケーションプログラム113のアクセス情報を収集する収集プログラム114、オペレーティングシステム(OS)115、アクセス情報114が格納されている。
ストレージ装置120は、制御部121、複数のディスク装置122とを有している。ここでは、物理的な記憶媒体としてディスク装置を示しているが、これはフラッシュメモリ等の半導体記憶装置であってもよいし、ディスク装置と半導体記憶装置とが混在するものであってもよい。従って、以下の説明における「ディスク装置」を「半導体記憶装置」と読み替えても、実現する上で、何ら問題はない。
制御部121は、プログラムやデータを格納するメモリ124、メモリ124に格納されたプログラムを実行し、ホストコンピュータ110と、ディスク装置122との間のデータ転送を制御するプロセッサ123とを有している。制御部121のメモリ124には、仮想ボリューム定義プログラム125、プール定義プログラム126、アクセス処理プログラム127、データ移行プログラム128、プールマッピング管理テーブル129、プール定義管理テーブル130、アドレスマッピング管理テーブル131が格納されている。各プログラムの処理については、後に詳しく説明する。
制御部121は、プログラムやデータを格納するメモリ124、メモリ124に格納されたプログラムを実行し、ホストコンピュータ110と、ディスク装置122との間のデータ転送を制御するプロセッサ123とを有している。制御部121のメモリ124には、仮想ボリューム定義プログラム125、プール定義プログラム126、アクセス処理プログラム127、データ移行プログラム128、プールマッピング管理テーブル129、プール定義管理テーブル130、アドレスマッピング管理テーブル131が格納されている。各プログラムの処理については、後に詳しく説明する。
なお、制御装置121は、ここに示した以外の構成であってもよく、例えば、複数のプロセッサ、キャッシュメモリ等を備えていても良い。また、ストレージ装置120a、120bのハードウェアの構成は、同じものでも、異なるものであってもよい。
管理サーバ140は、プログラムやデータを格納するメモリ142、メモリ142に格納されたプログラムを実行するプロセッサ141とを有している。メモリ142には、仮想ボリューム定義プログラム143、セグメント決定プログラム144、移行判定プログラム145、セグメント生成プログラム146、データ移行管理プログラム147、アプリケーション管理テーブル148、アクセス履歴管理テーブル149、プール管理テーブル150、仮想ボリューム管理テーブル151、LDEV管理テーブル152、記憶領域管理テーブル153、適合度判定対象管理テーブル154、割当情報管理テーブル155、データ移行管理テーブル156が格納されている。
管理端末160は、プロセッサ、メモリ等を備え、またキーボードやマウスのような入力装置、表示装置とを有している。管理端末160と管理サーバ140とは第2のネットワーク180で接続され、管理端末160からの入力情報は管理サーバ140へ送信され、管理サーバ140が備える各種プログラムの実行結果は、管理端末160の表示装置に表示される。
図2は、ストレージシステムの記憶構造を示したものである。
ホストコンピュータ110は、論理的な記憶領域である仮想ボリューム(仮想Vol)200がOSによって提供される。ホストコンピュータ110のアプリケーション113は、この仮想ボリューム200に対して、データのライト又はリードを行う。
ストレージ装置120は、例えば、4個1組(3D+1P)、8個1組(7D+1P)等のような所定数のディスク装置をグループ化したRAID構成とすることができる。このグループ化された記憶領域を論理的な記憶領域であるLDEV(Logical Device)211に分割し、それぞれプール222に割り当てる。各プール222では、LDEV211によって与えられる論理的な記憶領域を更に細分化した記憶領域(セグメント)223で管理する。セグメント223のサイズは、プール毎に設定することができる。例えば、プールA222aのセグメントを25MB、プールB222bのセグメントを50MBといったサイズに設定することができる。なお、ここでは、ストレージ装置内のLDEVをプールに割り当てる場合を示しているが、他のストレージ装置内のLDEVをプールに割り当てても良い。
このような構成において、仮想ボリューム200bは、初期状態において、セグメントが割り当てられていない。つまり、仮想ボリューム200bに対する物理的な記憶領域が割り当てられていない。そのため、ストレージ装置120の制御部121は、仮想ボリューム200bに対するアクセス要求を受けると、セグメントの割り当てを行い、割り当てられたセグメントに対してデータを格納する。具体的に制御部21は、仮想ボリューム200bに対するライト要求を受けると、アドレスマッピング管理テーブル131を参照し、仮想ボリューム200bのアドレスに対してセグメントが割り当てられていない場合には、プールマッピング管理テーブル129を参照して、仮想ボリュームに対して定義されているプールのセグメントを割り当て、割り当てたセグメントに対して、データのライト処理を行う。このように仮想ボリューム200bは、セグメントの割り当てを行うことによって、仮想ボリュームに対する物理的な記憶領域を追加していく。これにより、物理的な記憶領域を有効に利用することができる。以下の説明において、追加型仮想ボリューム又は追加型の仮想ボリュームとは、このような仮想ボリュームを意味する。
また、ストレージ装置120は、物理的な記憶領域を追加するのではなく、はじめから仮想ボリュームと同じサイズの物理的な記憶領域を割り当てた、仮想ボリュームを定義することができる。仮想ボリューム200aは、この一例であり、割り当てたLDEVのサイズと同じサイズの仮想ボリュームとなっている。なお、一つの仮想ボリュームに対して複数のLDEVを割り当ててもよい。以下の説明において、固定型仮想ボリューム又は固定型の仮想ボリュームとは、このような仮想ボリュームを意味する。
なお、追加型仮想ボリュームの一部の領域に初めからいくつかのセグメント或いは、LDEVを割り当てるようにしても良い。
管理サーバ140は、ホストコンピュータ110のアクセス情報を収集して、追記型仮想ボリュームに割り当てるのに適したサイズのセグメントを決定する。そして決定したサイズのセグメントが割り当てられるように、ストレージ装置120のプールマッピング管理テーブル129を変更する。例えば、図2に示すように仮想ボリューム200bにプールAのセグメントを割り当てていたが、ライトデータのサイズが大きいために、プールBのセグメントを割り当てるように、管理サーバ140からの指示により、プールマッピング管理テーブル129を変更する。これにより、ライト要求に対する割り当て回数が少なくなるので、性能が向上する。一方、データのサイズが小さい場合、プールBからプールAに変更することで、リソースを効率よく利用することができる。
以下、図2で説明した処理を実現する各処理について説明する。
まず、ホストコンピュータ110の処理について説明する。
図3は、アクセス情報を収集する処理を示したものである。
この処理は、ホストコンピュータ110の収集プログラム114によって行われる処理であり、いずれかのアプリケーション113の実行とともに起動される。
収集プログラム114は、アプリケーション113からのアクセス要求又は管理サーバ140からの取得要求を待つ(S301で「処理なし」)。アプリケーションプログラム113からアクセス要求があった場合(S301で「アクセス要求」)、アクセス要求に含まれる仮想ボリュームの識別子(仮想vol−ID)、リード要求又はライト要求の種別、アドレス、データのサイズをアプリケーション名、時刻情報とともに、アクセス情報としてメモリ112に格納する(S302)。なお、アクセス要求がリード要求の場合には、リード要求に対する応答からデータのサイズを求める。その後、アクセス要求をストレージ装置120に送信し(S303)、S301へ戻る。また、管理サーバ140から取得要求があった場合(S301で「アクセス情報取得要求」)、メモリ12に格納されたアクセス情報を管理サーバ140に送信する(S304)。
なお、この収集プログラム114は、ホストコンピュータ110のOS115に組み込まれていても良い。
図10は、管理サーバ140によって収集されたアクセス情報を示したものである。ここで、ホスト識別子(ホストID)以外は、収集プログラム114によって収集されたアクセス情報である。
次に、ストレージ装置について説明する。
まず、ストレージ装置120が管理している情報を説明する。
図4は、プールマッピング管理テーブルを示したものである。
プールマッピング管理テーブル129は、仮想Vol−ID401、仮想ボリュームの容量402、仮想ボリュームのアドレス(先頭アドレスから末尾アドレス)403、プールの識別子(プールID)404とが対応付けられている。制御装置121は、ライト要求があった仮想ボリュームにセグメントが割り当てられていない場合、このテーブルからプールを特定する。
図5は、プール定義管理テーブルを示したものである。
プール定義管理テーブル130は、プールID501、LDEVの識別子(LDEV−ID)502、セグメント番号503、セグメントサイズ504、LDEVのアドレス(LDEVアドレス)505、物理アドレス506、割当状況507が対応付けられている。セグメント番号503は、セグメントを識別するためのもので、ストレージ装置内で一意の番号が付されている。LDEVアドレス505は、LDEVをセグメントに分割した際の先頭アドレスから末尾アドレスを示している。物理アドレス506は、ディスク装置のアドレスを示したものである。割当状況507の「1」は仮想ボリュームに対して割り当てられた場合、「0」は割り当てられていない場合を示している。LDEV−ID502に、他のストレージ装置のLDEVを設定することにより、他のストレージ装置の物理的な記憶領域が仮想ボリュームに割り当てられることになる。
図6は、アドレスマッピング管理テーブルを示したものである。
アドレスマッピング管理テーブル131は、仮想Vol-ID601、仮想ボリュームのアドレス602、セグメント番号603、LDEV−ID604、LDEVアドレス605、物理アドレス606が対応付けられている。Vol1からVol3は、仮想ボリュームの一部にセグメント及び物理アドレスが設定されているので、追加型の仮想ボリュームである。Vol4は、仮想ボリュームの全てにLDEV及び物理アドレスが設定されているので固定型の仮想ボリュームである。
次に、ストレージ装置の処理について説明する。
ストレージ装置のボリューム定義プログラム125は、管理サーバ140からの要求により、プールマッピングテーブル129、アドレスマッピング管理テーブル131の設定、変更を行うものである。管理サーバ140は、仮想ボリューム定義情報として、追加型仮想ボリュームの場合は、仮想Vol−ID、容量、プールIDを送る。これにより、ボリューム定義プログラム125は、プールマッピング管理テーブルに、仮想Vol−ID、容量、プールIDを設定する。また、アドレスは、容量から求めたものを格納する。更に、アドレスマッピング管理テーブル131に、仮想Vol−IDを設定する。一方、固定型仮想ボリュームの場合は、仮想Vol−ID、容量、LDEV−IDが送られてくる。これにより、ボリューム定義プログラム125は、仮想Vol−ID、容量、容量から求めたアドレスをプールマッピング管理テーブル129に設定し、更に仮想Vol−ID、アドレス、LDEV−ID、LDEVアドレス、物理アドレスを、アドレスマッピング管理テーブル131に設定する。これにより、追加型仮想ボリューム、固定型仮想ボリュームが定義される。
また、ボリューム定義プログラム125は、管理サーバ140からプール割当変更情報を受ける。プール割当変更情報は、仮想Vol−IDと、プールIDが含まれている。ボリューム定義プログラム125は、既に設定されている仮想ボリュームに対するプールIDを、プール割当変更情報に含まれるプールIDに変更する。既にセグメントが割り当てられている追加型仮想ボリュームに対するプール割当変更情報を受けると、この時点から別のセグメントが割当られることになる。つまり、1つの追加型仮想ボリュームに対して異なるサイズのセグメントが割り当てられる。
プール定義プログラム126は、管理サーバ140から送られてくるプール定義情報により、プールを定義する。管理サーバ140は、新たなプールを定義する場合、プール定義情報として、プールID、セグメントサイズ、LDEV−IDを送る。これを受けたプール定義プログラム126は、指定されたLDEVをセグメントサイズで分割し、プール定義管理テーブル130に、プールID、LDEV−ID、セグメント番号、セグメントサイズ、LDEVアドレス、物理アドレスを設定する。また、プール定義プログラム126は、管理サーバからプール追加情報として、プールID、LDEV−IDを受けると、プールIDから特定したセグメントサイズで、指定されたLDEVを分割し、プール管理テーブル130に、LDEV−ID、セグメント番号、セグメントサイズ、LDEVアドレス、物理アドレスを設定する。
図7は、ストレージ装置におけるアクセス要求の処理を示したものである。
これは、アクセス処理プログラムによって実行される。
アクセス要求がライト要求である場合(S701で「W」)、アドレスマッピング管理テーブル131から記憶領域(セグメント又はLDEV)が割り当てられているか判断する(S702)。記憶領域が割り当てられている場合(S702で「Y」)、割り当てられている記憶領域に対してデータのライト処理を行う(S703)。一方、記憶領域が割り当てられていない場合(S702で「N」)、プールマッピング管理テーブル129から仮想ボリュームに対応付けられているプールIDを特定する(S704)。次に、プール定義管理テーブル130から、特定されたプールIDで未割当のセグメントを特定し、特定したセグメントの割当状況に「1」を設定するとともに、アドレスマッピング管理テーブル131に仮想ボリュームのアドレス、セグメント番号、LDEV−ID、LDEVアドレス、物理アドレスを設定する(S705)。その後、データのライト処理を行う(S703)。
アクセス要求がリード要求である場合(S701で「R」)、アドレスマッピング管理テーブル131から記憶領域が割り当てられているか判断する(S706)。この判断は、S702と同じ判断である。記憶領域が割り当てられていると判断した場合(S706で「Y」)、データのリード処理を行い(S707)、記憶領域が割り当てられていないと判断した場合(S706で「N」)、エラーとする(S708)。
図8は、仮想ボリューム間で行うデータの移行処理を示したものである。
これは、管理サーバ140からのデータ移行指示により、データ移行プログラム128が行う処理である。このデータ移行処理は、移行元として指定された仮想ボリュームに対して最初のアドレスから最後のアドレスまで、データのリードを行い、移行先として指定された仮想ボリュームに対して、同じアドレスを指定してライトを行うものである。
管理サーバ140からは、移行元と、移行先の仮想ボリューム及び移行指示が送られてくる。
まず、管理サーバ140から送られてきた移行元、移行先の仮想ボリュームを特定する(S801)。次に、アドレスマッピング管理テーブル131から、移行元として指定された仮想ボリュームの先頭アドレスを特定する(S802)。次に特定したアドレスでデータのリードを行う(S803)。このリードは、図7に示した処理により行う。リードした結果を判断し(S804)、エラーであれば(S804で「Y」)、最終アドレスか判断し(S805)、最終アドレスでなければ、次のアドレスを特定し(S807)、S803から処理を続ける。リードした結果がエラーでない場合(S804で「N」)、リードしたアドレスで移行先の仮想ボリュームに対してデータのライトを行う(S808)。このデータのライトも図8に示した処理により行う。その後、最終アドレスか判断し(S805)、最終アドレスでなければ(S805で「N」)、次のアドレスを特定し(S807)、再びS803から処理を行う。最終アドレスである場合(S805で「Y」)、移行元の仮想vol−IDと移行先の仮想vol−IDとを変更し(S806)、処理を終了する。S806の移行元と移行先の仮想vol−IDの変更とは、移行元のVol−IDを移行先のVol−IDに、移行先のVol−IDを移行元のVol−IDに変更することである。これにより、ホストコンピュータからは、同じ仮想ボリュームに対してアクセス要求を続けることが可能となる。
このように、本処理では図7に示したアクセス要求の処理によってデータの移行をさせるようにして、移行先の仮想ボリュームの全領域にセグメントの割当が起こらないようにしている。
なお、図8に示した処理では、一つのアドレス毎にデータのリード、ライトを行っているが、プロセッサの性能、あるいはキャッシュメモリを利用することで、複数のアドレス単位でデータのリード、ライトを行うようにしてもよい。また、データのリードと、ライトとを別々のプロセッサで行うようにすれば、プロセッサの負荷を分散することができるとともに、処理速度も速くなる。
また、データの移行には、移行元のデータを消去する場合、消去しない場合を含んでいる。
移行元のデータを消去する場合には、アドレスマッピング管理テーブル131を参照し、移行元の仮想ボリュームに割り当てられているセグメントのデータを消去し、その後、アドレスマッピング管理テーブル131からデータを消去したセグメント番号を削除する。更に、プール定義管理テーブル130の削除されたセグメントの割当状況に「0」を設定する。これにより、セグメントを再利用することができる。
以上が、ストレージ装置の処理である。次に、管理サーバの処理について説明する。
まず、各テーブルについて説明する。
図9は、アプリケーション管理テーブルを示したものである。
アプリケーション管理テーブル148は、ホストの識別子(ホストID)901、アプリケーション902、データ特性903、仮想vol−ID904、仮想ボリュームの容量905が対応付けられている。これは、アプリケーションと仮想ボリュームとの対応関係を示すものであり、後述するように仮想ボリュームを定義する際に利用する。
図10は、アクセス履歴管理テーブルを示したものである。
アクセス履歴管理テーブル149は、ホストID1001、アプリケーション1002、仮想Vol−ID1003、アクセス要求の種別1004、仮想ボリュームのアドレス1005、データのサイズ1006、アクセス要求が発生した時刻1007が対応付けられている。アクセス履歴管理テーブルは、各ホストコンピュータから収集したアクセス情報が設定される。
図11は、プール管理テーブルを示したものである。
プール管理テーブル150は、プールID1101、プール全体の容量1102、セグメントサイズ1103、セグメントが属するLDEVを示すLDEV−ID1104、プールの残容量1105が対応付けられている。
図12は、仮想ボリューム管理テーブルを示したものである。
仮想ボリューム管理テーブル151は、仮想Vol−ID1201、LDEV−ID1202、プールID1203、仮想ボリュームが追加型か固定型かを示す仮想Vol形式1204が対応付けられている。追加型の仮想ボリュームに対してはプールIDが、固定型の仮想ボリュームに対してはLDEV−IDが設定される。
図13はLDEV管理テーブルを示したものである。
LDEV管理テーブル152は、LDEV−ID1301、装置ID1302、LDEVの容量1303、LDEV設定されているディスク装置の回転数1304、LDEVが設定されているディスク装置によって形成されているRAIDレベル1305、ディスク装置のタイプ(ディスクタイプ)1306、割当状況1307が対応付けられている。ここで、ディスクタイプに設定されているFMとはフラッシュメモリを意味し、FCはファイバーチャネルプロトコル対応のディスク、SATAはATAプロトコル対応のディスクを意味している。また、割当状況1307の「1」は、プール又は仮想ボリュームに割当されている場合を示している。LDEV−ID、容量、回転数、RAIDレベル、ディスクタイプの情報は、各ストレージ装置から収集した情報である。
図14は、記憶領域管理テーブルを示したものである。
記憶領域管理テーブル153は、仮想ボリュームに対してデータがライトされた領域を管理するもので、仮想Vol−ID、先頭アドレス、末尾アドレスが設定される。先頭アドレスと末尾アドレスは、データがライトされた領域であり、一つの仮想ボリュームに対してランダムにデータのライトがあると、複数の先頭アドレスと末尾アドレスが設定される。
図15は、適合度判定対象管理テーブルを示したものである。
適合度判定対象管理テーブル154は、セグメントサイズ1501と、設定状況1502が設定される。設定状況1502は、セグメントサイズがストレージ装置に設定されている場合に「1」となり、設定されていない場合に「0」を設定される。ストレージ装置に設定されていないセグメントサイズは、管理者により設定されたものである。このテーブルに設定されているサイズの中で、適切なサイズのセグメントを求める。なお、ストレージ装置に設定されていないセグメントサイズについは、管理サーバで自動的に設定するようにしてもよい。例えば、ストレージ装置に2つのセグメントサイズが設定されている場合には、その2つのセグメントサイズの中間の値となるセグメントサイズを管理サーバのCPUで求め、設定するようにしてもよい。あるいは、収集情報からライトされるデータのサイズの最大値、最小値をセグメントサイズとして設定しても良いし、更に最大値と最小値の中間値をセグメントサイズと設定しても良い。
図16は、割当情報管理テーブルを示したものである。
割当情報管理テーブル155は、仮想Vol−ID1601、セグメントサイズ1602、アクセス回数1603、セグメントの割当回数1604、ライトデータのサイズ1605、割り当てられたセグメントの総容量1606、最終集計時刻1607、割当対象1608、候補1609が対応付けられている。この割当情報管理テーブル155は、アクセス情報を利用して適合度判定対象管理テーブル155に設定された各セグメントサイズで割当を行った場合の状態を示したものである。最終集計時刻1607は、最後に利用したアクセス情報の時刻情報が設定されている。また、割当対象1608の「1」は、仮想ボリュームに対して現在割当対象となっているセグメントサイズを示している。また、候補1609は、適切なセグメントサイズと判断された場合に「1」が設定される。
図17は、データ移行管理テーブルを示したものである。
データ移行管理テーブル156は、データの移行を行う移行元の仮想Vol−ID1701、移行先の仮想Vol−IDが対応付けられている。
次に、管理サーバの処理について説明する。
図18Aおよび図18Bは、仮想ボリュームを定義する処理を示したものである。
この処理は、管理端末160から管理者が仮想ボリューム定義プログラムを実行することにより行われる処理である。
まず、管理端末の表示装置に仮想ボリュームを定義する画面を表示する(S1801)。
図19は、仮想ボリュームを定義する画面の一例を示したものである。
画面には、ホストID1901、アプリケーション名1902、仮想ボリュームの容量1903、仮想ボリュームの形式1904、データの特性1905、セグメントサイズ1906、終了ボタンが指定できるようになっている。ホストID1901、アプリケーション名1902には、仮想ボリュームを利用するホストIDと、アプリケーション名とを入力する。仮想ボリュームの容量1903には、仮想ボリュームの容量を入力する。仮想ボリュームの形式1904は、追加型仮想ボリュームか、固定型仮想ボリュームかを指定する。既に説明しているように、追加型仮想ボリュームの場合、書込要求に応じて物理的な記憶領域が割り当てられるので、管理者は比較的大きな容量を入力することができる。追加型仮想ボリュームを指定した場合、セグメントのサイズを決定するためデータの特性1905又はセグメントサイズ1906を指定することができる。データの特性1905は、アプリケーションが利用するデータサイズ、アプリケーションのアクセス頻度とを選択できるようにし、この特性からセグメントのサイズを特定する。また、セグメントサイズ1906は、プール管理テーブル150に設定されているセグメントサイズが表示され、その中から選択できるようになっている。
再び、図18Aおよび図18Bに戻り、処理を説明する。
管理者からの入力を待ち、終了ボタンが指定されると(S1802で「Y」)、追加型仮想ボリュームの指定かを判断する(S1803)。追加型仮想ボリュームの指定である場合、アプリケーション管理テーブル148から、入力されたアプリケーションと同じ名称のアプリケーションが設定されているかを判断する(S1804)。同じ名称のアプリケーションが設定されている場合(S1804で「Y」)、アプリケーション管理テーブル148と仮想ボリューム管理テーブル151を用いてこのアプリケーションに対応付けられているプールを特定する(S1805)。一方、同じ名称のアプリケーションが設定されていない場合(S1604で「N」)、データ特性が指定されているかを判断する(S1806)。データ特性が指定されている場合(S1806で「Y」)、アプリケーション管理テーブル148から指定されたデータ特性情報が設定されているか判断し(S1807)、設定されている場合には、プールを特定する(S1805)。同じデータ特性が設定されていない場合(S1806で「N」)、または、指定されたデータ特性がない場合(S1807で「N」)、セグメントサイズが指定されているかを判断する(S1808)。セグメントサイズが指定されている場合(S1808で「Y」)、指定されたセグメントサイズからプール管理テーブル150を用いてプールを特定する(S1805)。セグメントサイズが指定されていない場合(S1808で「N」)、残容量が大きいプールを特定する(S1809)。なお、S1809のプールの特定は、セグメントサイズが最小のもの、あるいは最大のものとしてもよい。
プールが特定されたら、特定されたプールの残容量が閾値以上であるかを判断し、閾値以上である場合(S1810で「Y」)、アプリケーション管理テーブル148、仮想ボリューム管理テーブル151の設定を行う(S1811)。具体的には、新たな仮想Vol−IDを生成し、アプリケーション管理テーブル148にホストID、アプリケーション、データ特性(指定されている場合)、仮想Vol−ID、容量を設定する。また仮想ボリューム管理テーブルに仮想Vol−ID、プールID、仮想Vol形式を設定する。次に、ストレージ装置に仮想ボリューム定義情報として、仮想Vol−ID、ホストID、プールID、仮想ボリュームの容量を送り(S1812)、処理を終了する。
一方、プールの残容量が閾値より小さい場合(S1810で「N」)、プールを追加するか管理者に問合せを行い、プールを追加の指示があった場合(S1813で「Y」)、既にプールに設定されているLDEVと同じ特性を持つLDEVをLDEV管理テーブル152から特定する(S1814)。特定されたLDEV、容量をプール管理テーブル150に設定し、残容量を更新し(S1815)、ストレージ装置にプール追加情報として追加対象となるプールIDと、特定したLDEV―IDとを送り(S1816)、S1811の処理に移る。
プールの追加が不要である場合(S1813で「N」)、プールを追加せずに、S1811の処理に移る。
一方、固定型仮想ボリュームの指定である場合(S1803で「N」)、LDEV管理テーブル152から入力された仮想ボリュームの容量以上の容量を持つLDEVを特定し(S1817)、アプリケーション管理テーブル148、仮想ボリューム管理テーブル151の設定を行う(S1818)。次に、ストレージ装置に仮想ボリューム定義情報として、仮想Vol−ID、容量、LDEV―ID、ホストIDを送り(S1819)、処理を終了する。
管理サーバ140からホストID、プールID、仮想ボリュームの容量を受けたストレージ装置は、プールマッピング管理テーブル129、アドレスマッピング管理テーブル131に仮想Vol−ID等の設定を行う。
ストレージ装置で、仮想ボリュームの定義が設定された後、ホストコンピュータからストレージ装置に対して設定された仮想ボリュームの情報を読み出すコマンドを送る。ホストコンピュータのOSは、ストレージ装置から送られてくる仮想ボリュームの情報(例えば、仮想ボリューム開始アドレス及び終了アドレス、あるいは仮想ボリュームの容量)を受取ると、アプリケーションに対して提供する仮想ボリュームを生成する。その後、アプリケーションと、仮想ボリュームとをマッピングする。これにより、アプリケーションは、仮想ボリュームに対して、アクセスすることができる。
以上説明した処理により、アプリケーションが利用する仮想ボリュームの定義、及び仮想ボリュームに対して割り当てるセグメントを定義することができる。
次に、仮想ボリュームに対して定義したセグメントを実際のアプリケーションの運用によって変更する場合の処理を説明する。
管理サーバ140のアクセス情報収集プログラム157は、一定の周期で各ホストコンピュータのアクセス情報を収集し、アクセス履歴管理テーブル149に設定する。アクセス情報を収集する周期は、管理者により設定することができる。
次に、収集したアクセス情報から適切なサイズのセグメントを決定する処理について説明する。
図20は、セグメントサイズを決定する処理を示したものである。
この処理は、セグメント決定プログラム144が一定の周期で実行することにより行われる処理である。
まず、仮想ボリューム管理テーブル151から一つの追加型の仮想ボリュームを特定する(S2001)。次に、割当情報管理テーブル155から特定された仮想ボリュームの最終集計時刻を特定し(S2002)、この集計最終時刻以降に発生したアクセス情報をアクセス履歴管理テーブル149から読み出す(S2003)。その後、記憶領域管理テーブル153から特定された仮想ボリュームの利用情報情報(先頭アドレス及び末尾アドレス)を読み出し(S2004)、読み出した利用情報と、S2003で読み出されたアクセス情報から、新規のライト要求となるアクセス情報を特定する(S2005)。新規のライト要求となるアクセス情報とは、仮想ボリュームの新たな領域に対して発生したアクセス情報である。
図21は、新規のライト要求となるアクセス情報を特定する処理の概要を示したものである。
アクセス情報2101は、Vol1に対するアクセス情報の一部を示したものである。また、利用情報2105は、Vol1に対する利用情報を示している。既に、Vol1に対してデータのライトがあった領域については、先頭アドレスと末尾アドレスが設定されている。この利用情報2105と、アクセス情報2101とを比較して、先頭アドレスと末尾アドレスに含まれないライト要求のアクセス情報を残す。例えば、ライトアドレス0X2025、データサイズ10MBのライト要求は、利用情報に設定されている先頭アドレスと末尾アドレスの範囲に含まれないので、このアクセス情報は残し、ディスク利用管理テーブルに先頭アドレス0x2025、末尾アドレス0x2035を設定する(S2006)。また、ライトアドレス0X2500、データサイズ20MBのライト要求は、ディスク利用情報に既に設定されている先頭アドレス(0X2500)と末尾アドレス(0x2600)で指定される記憶領域に含まれるので、削除する。
この結果、図21(b)に示す結果となる。
次に、適合度判定対象管理テーブル154に設定されている各セグメントのサイズで仮想ボリュームへ割当てた場合の割当情報を求め、割当情報管理テーブルへ設定する(S2007)。
図22は、各セグメントのサイズで仮想ボリュームへ割当を行った場合の割当情報の概要を示したものである。
図22(a)に示したアクセス情報2201は、S2005の結果で、新規のライト要求となるアクセス情報である。図15に示した適合度判定対象管理テーブル154には、5MB、10MB、25MB、50MB、75MB、100MBのサイズが設定されているが、ここでは、10MB、50MB、100MBの場合について説明する。図22(b)は、アクセス情報2201のライトアドレス0x2025、データサイズ10MBを割り当てた結果を示したものである。ここで、黒く塗りつぶされているところは、ライトされたデータを示している。セグメントサイズが10MBの場合、2つのセグメントが割り当てられる。その結果、割当情報2210は、アクセス回数1回、割当回数2回、データサイズ10MB、割当サイズ20MBとなる。セグメントサイズが50MB、100MBも同様にライトアクセスを行うとすると、割当情報2211、2212のようになる。このようにして、適合度判断対象管理テーブルに設定されたセグメントのサイズ毎に割当情報を求める。
再び、図20の処理の説明に戻る。
求めた割当情報からセグメントサイズ毎に適合度を求める(S2008)。ここでは、適合度を次のようにして求める。
ボリューム利用率=書込みデータサイズ/割当仮想ボリュームサイズ
割当性能=アクセス回数/(アクセス回数+割当回数)
適合度=ボリューム利用率×割当性能
このようにして求めた適合度の中から最も高い適合度のセグメントサイズを特定する(S2009)。次に、適合度判定対象管理テーブル154の設定状況から、最も高いと判断されたサイズのセグメントがストレージ装置に定義されているかを判断し、ストレージ装置に定義されている場合(S2010で「Y」)、このセグメントサイズが既に仮想ボリュームに割り当てられているか割当情報管理テーブル155の割当対象で判断する(S2011)。割当対象に「1」が設定されている場合(S2011で「Y」)、仮想ボリューム管理テーブル151から他の追加型仮想ボリュームがあるかを判断し(S2012)、あれば次の追加型仮想ボリュームを特定し(S2013)、S2002の処理に移る。次の追加型仮想ボリュームがなければ(S2012で「N」)、処理を終了する。
割当性能=アクセス回数/(アクセス回数+割当回数)
適合度=ボリューム利用率×割当性能
このようにして求めた適合度の中から最も高い適合度のセグメントサイズを特定する(S2009)。次に、適合度判定対象管理テーブル154の設定状況から、最も高いと判断されたサイズのセグメントがストレージ装置に定義されているかを判断し、ストレージ装置に定義されている場合(S2010で「Y」)、このセグメントサイズが既に仮想ボリュームに割り当てられているか割当情報管理テーブル155の割当対象で判断する(S2011)。割当対象に「1」が設定されている場合(S2011で「Y」)、仮想ボリューム管理テーブル151から他の追加型仮想ボリュームがあるかを判断し(S2012)、あれば次の追加型仮想ボリュームを特定し(S2013)、S2002の処理に移る。次の追加型仮想ボリュームがなければ(S2012で「N」)、処理を終了する。
一方、最も適合度が高いと判断されたサイズのセグメントが、仮想ボリュームに割当られていない場合(S2011で「N」)、このサイズのセグメントを候補するために、割当情報管理テーブル155の候補に「1」を設定し(S2015)、S2012へ移る。
また、最も適合度が高いと判断されたサイズのセグメントがストレージ装置に定義されていない場合(S2010で「N」)、割当情報管理テーブルの候補に「2」を設定し(S2014)、S2012へ移る。候補に「2」と設定された場合、後述するようにセグメントの生成、つまりプールの生成を行う。
なお、S2008ではボリューム稼動率と、割当性能の積を適合度としているが、ボリューム稼働率を適合度としても、割当性能を適合度としてもよい。ボリューム稼働率を適合度とした場合、空き領域が最小となるセグメントのサイズが決定され、割当性能を適合度とした場合、割当回数が最小となるセグメントのサイズが決定される。
また、図20に示した処理は、過去割当情報も含めて適合度を求めているが、特定の期間における適合度を求めるようにしてもよい。一つのアプリケーションでも、時間帯によって利用するデータのサイズ、アクセス頻度が変わる場合がある。従って、時間帯で適合度を求めるようにし、時間帯で割当てるセグメントのサイズを変えることも有効である。これを行うために、S2003で開始時刻と終了時刻を管理者に入力させ、S2004で入力された開始時刻と終了時刻の間のアクセス情報を読み出すように処理を変更すればよい。この場合、過去の割当情報は必要ないので、利用情報上を読み出す必要がない。これにより、指定された期間における各セグメントに対する適合度、及び候補となるセグメントを求めることができる。
図23は、決定されたサイズのセグメントに変更できるかを判断する移行判定処理を示したものである。
これは、移行判定プログラム145により実行される。
まず、割当情報管理テーブルの候補に「1」が設定されている仮想ボリュームを特定し(S2301)、「1」が設定されているセグメントサイズの総割当サイズを割当情報管理テーブル155から読み出す(S2302)。そして、特定された仮想ボリュームのデータを候補となっているセグメントサイズのプールに格納できるか、つまりデータ移行できるかを判断する(S2203)。これは、候補となっているセグメントサイズのプールに、特定された仮想ボリュームに格納されているデータを全て移行しても、プールに十分な空き容量が確保できるかを判断する。例えば、プールの残容量から総割当サイズを引いた結果が閾値(例えば、50GB)以上であるかを判断し、閾値以上であれば移行可、閾値より小さければ移行不可とする。
データを移行できると判断した場合(S2303で「Y」)、特定された仮想ボリュームと容量が同じ新たな仮想ボリュームの仮想Vol-IDを生成し、この仮想Vol−IDと、候補となっているセグメントサイズを有するプールIDとを仮想ボリューム管理テーブル151に設定する(S2304)。次に、ストレージ装置に仮想ボリューム定義情報として仮想Vol−ID、容量、プールIDを送信する(S2305)。次に、データ移行管理テーブル156に、特定された仮想ボリュームを移行元、新たに生成した仮想ボリュームを移行先として設定し(S2306)、再びS2301の処理へ戻る。
図23は、決定されたサイズのセグメントに変更できるかを判断する移行判定処理を示したものである。
これは、移行判定プログラム145により実行される。
まず、割当情報管理テーブルの候補に「1」が設定されている仮想ボリュームを特定し(S2301)、「1」が設定されているセグメントサイズの総割当サイズを割当情報管理テーブル155から読み出す(S2302)。そして、特定された仮想ボリュームのデータを候補となっているセグメントサイズのプールに格納できるか、つまりデータ移行できるかを判断する(S2203)。これは、候補となっているセグメントサイズのプールに、特定された仮想ボリュームに格納されているデータを全て移行しても、プールに十分な空き容量が確保できるかを判断する。例えば、プールの残容量から総割当サイズを引いた結果が閾値(例えば、50GB)以上であるかを判断し、閾値以上であれば移行可、閾値より小さければ移行不可とする。
データを移行できると判断した場合(S2303で「Y」)、特定された仮想ボリュームと容量が同じ新たな仮想ボリュームの仮想Vol-IDを生成し、この仮想Vol−IDと、候補となっているセグメントサイズを有するプールIDとを仮想ボリューム管理テーブル151に設定する(S2304)。次に、ストレージ装置に仮想ボリューム定義情報として仮想Vol−ID、容量、プールIDを送信する(S2305)。次に、データ移行管理テーブル156に、特定された仮想ボリュームを移行元、新たに生成した仮想ボリュームを移行先として設定し(S2306)、再びS2301の処理へ戻る。
一方、データの移行ができないと判断した場合(S2303で「N」)、候補とされているプールに追加可能なLDEVがあるかを判断する(S2307)。追加できるLDEVがある場合(S2307で「Y」)、LDEV管理テーブル152の割当状況に「1」を設定し(S2308)、プール追加情報として、プールID、LDEV−IDをストレージ装置へ送り(S2309)、S2303へ戻る。追加可能なLDEVがない場合(S2307で「N」)、現在利用しているプールの残容量と候補とされているプールの残容量とを比較し(S2310)、候補とされているプールの残容量が大きい場合に、(特定された追加型仮想ボリュームのセグメントのサイズ)/(候補であるプールのセグメントのサイズ)を計算し、その結果が整数であるかを判断する(S2311)。整数である場合(S2311で「Y」)、候補とされているセグメントが割当られるように、仮想ボリューム管理テーブルを変更し(S2312)、プール割当変更情報をストレージ装置に送り(S2313)、S2301の処理に移る。このようにS2309からS2313では、既に仮想ボリュームに対して格納されているデータを移行せずに、新たに格納されるデータを候補となるセグメントになるようにしている。この結果、一つの仮想ボリュームに異なるサイズのセグメントが割り当てられるようになる。
以上説明した処理は、一定の周期で実行されることを前提としているが、これは管理者の指示により実行されるようにしてもよい。
図24は、まだストレージ装置に定義されていないサイズのセグメントが候補とされた場合の処理を示したものである。
図24は、まだストレージ装置に定義されていないサイズのセグメントが候補とされた場合の処理を示したものである。
これは、セグメント生成プログラム146により行われる処理である。
まず、割当情報管理テーブルの候補に「2」が設定されている仮想ボリュームを特定し(S2401)、この仮想ボリュームに格納されたデータ量を求める(S2402)。ここでは、割当情報管理テーブルのライトデータサイズを仮想ボリュームに格納されたデータ量としている。次に、データ量と閾値を比較し、データ量が閾値より大きければ、データ量より大きい未割当のLDEVがあるか、LDEV管理テーブル152から判断する(S2404)。
LDEVがある場合(S2404で「Y」)、プールIDを生成し(S2405)、プール設定情報として、生成したプールID、セグメントサイズ、LDEV−IDをストレージ装置に送信する(S2406)。なお、このときに、プール管理テーブル150に、プールID、容量、セグメントサイズ、LDEV−IDを設定する。次に、移行先となる仮想ボリュームの仮想Vol−IDを生成し、生成した仮想Vol−IDと生成したプールIDを仮想ボリューム管理テーブル151に設定する(S2407)。また、移行先の仮想ボリュームを定義するために仮想ボリューム定義情報(仮想Vol−ID、プールID、容量)をストレージ装置へ送信する(S2408)。その後、S2401で特定された仮想ボリュームを移行元、新たに定義した仮想ボリュームを移行先としてデータ移行管理テーブルに設定し(S2409)、S2401に戻り、割当情報管理テーブルの候補に「2」が設定されている仮想ボリュームを特定し、同じ処理を繰り返す。
LDEVがある場合(S2404で「Y」)、プールIDを生成し(S2405)、プール設定情報として、生成したプールID、セグメントサイズ、LDEV−IDをストレージ装置に送信する(S2406)。なお、このときに、プール管理テーブル150に、プールID、容量、セグメントサイズ、LDEV−IDを設定する。次に、移行先となる仮想ボリュームの仮想Vol−IDを生成し、生成した仮想Vol−IDと生成したプールIDを仮想ボリューム管理テーブル151に設定する(S2407)。また、移行先の仮想ボリュームを定義するために仮想ボリューム定義情報(仮想Vol−ID、プールID、容量)をストレージ装置へ送信する(S2408)。その後、S2401で特定された仮想ボリュームを移行元、新たに定義した仮想ボリュームを移行先としてデータ移行管理テーブルに設定し(S2409)、S2401に戻り、割当情報管理テーブルの候補に「2」が設定されている仮想ボリュームを特定し、同じ処理を繰り返す。
なお、S2403の処理を行っているのは、あまり利用されないプールを生成することを避けるためである。従って、S2401において、同じセグメントサイズの複数の仮想ボリュームを特定するようにしても良い。
図25は、データの移行処理を示したものである。
これは、データ移行管理プログラム147が行う処理である。
処理を開始すると、データ移行管理テーブル156を参照し、移行元、移行先の仮想ボリュームが設定されているかを判断する(S2501)。設定されている場合、データ移行情報として、移行元の仮想Vol―ID、移行先の仮想Vol−IDをストレージ装置に送る(S2502)。ストレージ装置からのデータ移行完了の応答を待って(S2503)、データ移行が完了したら(S2503で「Y」)、データ移行管理テーブル156から、移行元、移行先の仮想Vol−IDを削除する(S2504)。
以上説明したように、追加型仮想ボリュームを利用する上で、ストレージ装置に異なるサイズのセグメントが定義されている場合、追加型仮想ボリュームに対するアクセス情報に基づいて、追加型仮想ボリュームに割り当てるセグメントのサイズを決定する。これにより、ストレージ装置の記憶領域を有効に利用することが可能となる。
これまでの説明から、追加型の仮想ボリュームに対するライト要求により、割当てるセグメントのサイズを決定できることが明らかである。より速くデータを回復するために、ストレージ装置内に仮想ボリュームに対するライトデータと更新情報を格納し、データ障害が発生した場合、ジャーナルを利用して、ある時点のデータを復元する技術がある。そこで、このジャーナルを利用して、追加型仮想ボリュームに割当てるセグメントのサイズを決定する構成について説明する。
図26は、ストレージシステムの構成を示したものである。
図26に示した構成で、図1と同じものは同じ符号を付している。図1と相違するのは、ホストコンピュータ110で、セグメントサイズを決定できるようにした点である。そのため、ホストコンピュータ110には、仮想ボリューム定義プログラム143、セグメント決定プログラム144、移行判定プログラム145、セグメント生成プログラム146、データ移行管理プログラム147に加えて、ジャーナル収集プログラム2601が格納されている。また、各プログラムで利用する情報を格納したテーブル群2602が格納されている。
ストレージ装置120aは、制御装置121a、データを格納するボリューム2603を有している。ここで、ボリューム2603は、アプリケーションのデータを格納するデータボリューム2603b、2603c、2603d(仮想型仮想ボリューム)と、データボリュームに対するジャーナルを格納するジャーナルボリューム2603a(固定型仮想ボリューム)とがある。ジャーナルは、仮想ボリュームに対するライトデータと更新情報とを有している。更新情報は、仮想ボリュームに対するライトデータを管理するための情報で、ライト要求を受信した時刻、ライト要求の対象となるボリューム、ライト要求の対象となるボリュームの論理アドレス、ライトデータのデータサイズ等を含んでいる。ジャーナルボリューム2603aへジャーナルを格納するのは、図7のS703により行われる。つまりS703でデータボリュームにデータを格納するとともに、ジャーナルボリュームへジャーナルを格納する。
ストレージ装置120aは、制御装置121a、データを格納するボリューム2603を有している。ここで、ボリューム2603は、アプリケーションのデータを格納するデータボリューム2603b、2603c、2603d(仮想型仮想ボリューム)と、データボリュームに対するジャーナルを格納するジャーナルボリューム2603a(固定型仮想ボリューム)とがある。ジャーナルは、仮想ボリュームに対するライトデータと更新情報とを有している。更新情報は、仮想ボリュームに対するライトデータを管理するための情報で、ライト要求を受信した時刻、ライト要求の対象となるボリューム、ライト要求の対象となるボリュームの論理アドレス、ライトデータのデータサイズ等を含んでいる。ジャーナルボリューム2603aへジャーナルを格納するのは、図7のS703により行われる。つまりS703でデータボリュームにデータを格納するとともに、ジャーナルボリュームへジャーナルを格納する。
ストレージ装置120bは、制御部121b、ストレージ装置120aのジャーナルボリュームに格納されたジャーナルデータ複製が格納されるジャーナルボリューム2604aを有している。
このような構成において、ホストコンピュータ110aは、ジャーナル収集プログラム2601により、ジャーナルボリュームからジャーナルを読み出す。ジャーナルボリューム2603aからのジャーナルのリードは、データボリューム2603b、2603c、2603dに格納されたデータを読み出すのと同じである。このように読み出したジャーナルの更新情報を、アクセス情報としてホストコンピュータ110内のアクセス履歴管理テーブルに格納する。これにより、既に説明したセグメント決定プログラム144、移行判定プログラム145、セグメント生成プログラム146、データ移行管理プログラム147により、割り当てるセグメントのサイズを決定したり、データを移行させたり、また、新たなサイズのセグメントをストレージ装置に定義することが可能となる。
110…ホストコンピュータ
120…ストレージ装置
140…管理サーバ
160…管理端末
200…仮想ボリューム
223…セグメント
129…プールマッピング管理テーブル
131…アドレスマッピング管理テーブル
120…ストレージ装置
140…管理サーバ
160…管理端末
200…仮想ボリューム
223…セグメント
129…プールマッピング管理テーブル
131…アドレスマッピング管理テーブル
Claims (15)
- 複数の異なるサイズの記憶領域と、
仮想記憶領域と前記仮想記憶領域に割当てる前記記憶領域のサイズとの対応を示す対応情報を有し、前記仮想記憶領域へのライト要求に対して、前記対応情報を参照して、前記記憶領域を前記仮想記憶領域に割当て、割当てられた前記記憶領域に前記ライト要求のデータを格納する制御部と、を有するストレージ装置と、
前記仮想記憶領域に対してある期間に発生したライト要求をホストコンピュータから収集し、収集した前記ライト要求に含まれるデータのサイズを用いて、前記複数の異なるサイズの記憶領域のサイズの中から前記仮想記憶領域に割当てる前記記憶領域のサイズを選択し、前記選択されたサイズの前記記憶領域が前記仮想記憶領域に割当てられるよう前記対応情報を変更する要求を前記ストレージ装置に送信する管理サーバと
を有することを特徴とするストレージシステム。 - 請求項1記載のストレージシステムであって、
前記記憶領域のサイズは、前記仮想記憶領域のサイズよりも小さい
ことを特徴とするストレージシステム。 - 請求項1に記載のストレージシステムであって、
前記管理サーバは、前記対応情報の変更があった場合に、前記対応情報の変更前に前記仮想記憶領域に割当てられた前記記憶領域に格納されたデータを、前記対応情報の変更後に前記対応情報で前記仮想記憶領域と対応付けられるサイズの前記記憶領域に移動する要求を前記ストレージ装置に送信する
ことを特徴とするストレージシステム。 - データを格納する複数の記憶領域と、
少なくとも一つの前記記憶領域を異なるサイズで区分した複数の区分領域を生成し、仮想記憶領域と前記仮想記憶領域に割当てる前記区分領域のサイズとの対応を示す対応情報を有し、前記対応情報を参照して、前記仮想記憶領域へのライト要求に対し仮想記憶領域に区分領域を割当て、割当てられた前記区分領域に前記ライト要求のデータを格納する制御部と
を有するストレージ装置。 - 請求項4記載のストレージ装置であって、
前記制御部は、前記複数の記憶領域の中で前記区分領域が生成されていない一つの記憶領域に前記ライト要求を格納する
ことを特徴とするストレージ装置。 - 請求項5記載のストレージ装置であって、
前記制御部は、前記複数の記憶領域の一つに格納されたある期間のライト要求に含まれるデータのサイズを用いて、前記異なるサイズの複数の区分領域のサイズの中から前記仮想記憶領域に割当てる区分領域のサイズを選択し、前記選択されたサイズの区分領域が前記仮想記憶領域に割当てられるよう前記対応情報を変更する
ことを特徴とするストレージ装置。 - 請求項6記載のストレージ装置であって、
前記制御部は、前記複数の区分領域のうち、前記選択されたサイズの区分領域のうち前記仮想記憶領域に未割当ての前記区分領域の総容量が閾値以下となった場合に、前記複数の記憶領域の一つから新たな区分領域を生成することを特徴とするストレージ装置。 - 請求項5記載のストレージ装置であって、
前記制御部は、前記仮想記憶領域へのリード要求に対して、前記リード要求で指定される前記仮想記憶領域のアドレスに割当てられている前記区分領域からデータをリードし、前記リード要求で指定される前記仮想記憶領域のアドレスに前記区分領域が割当てられていない場合、前記リード要求に対してエラーを返すことを特徴とするストレージ装置。 - 請求項5記載のストレージ装置であって、
前記制御部は、前記仮想記憶領域に対してリード要求を行い、リード要求に応じてデータがリードされた場合、前記リードされたデータのライト要求を他の仮想記憶領域に行うことを特徴とするストレージ装置。 - ある期間に発生した仮想記憶領域に対するライト要求を収集し、
収集した前記ライト要求に含まれるデータのサイズを用い、ストレージ装置が有する複数の異なるサイズの記憶領域の中から前記仮想記憶領域に割当てる記憶領域のサイズを選択し、
前記選択されたサイズの記憶領域を前記仮想記憶領域に割当てる要求を前記ストレージ装置に送信することを特徴とする記憶領域の割当制御方法。 - 請求項10記載の割当制御方法であって、
前記収集した前記ライト要求に、前記選択されたサイズの記憶領域を前記仮想記憶領域に割当てた場合に、前記仮想記憶領域に前記記憶領域を割当てる回数がより少なくなるようなサイズの前記記憶領域を選択することを特徴とする割当制御方法。 - 請求項10記載の割当制御方法であって、
前記収集した前記ライト要求に、前記選択されたサイズの記憶領域を前記仮想記憶領域に割当てた場合に、前記仮想記憶領域に割当てた前記記憶領域の空き容量がより小さくなるようなサイズの前記記憶領域を選択することを特徴とする割当制御方法。 - データを格納する複数の記憶領域と
少なくとも一つの前記記憶領域を区分して第1のサイズの複数の区分領域と第2のサイズの複数の区分領域とを定義し、仮想記憶領域と前記仮想記憶領域に割当てる前記区分領域のサイズとの対応を示す対応情報を有し、前記仮想記憶領域へのライト要求に対して、前記対応情報を参照して、前記区分領域を前記仮想記憶領域に割当て、割当てられた前記区分領域に前記ライト要求のデータを格納する制御部と、を有するストレージ装置と、
前記仮想記憶領域に対してある期間に発生したライト要求をホストコンピュータから収集し、収集した前記ライト要求に含まれるデータのサイズを用いて、前記第1のサイズの区分領域と前記第2のサイズ区分領域の中から前記仮想記憶領域に割当てる区分領域を選択し、前記選択された区分領域が前記仮想記憶領域に割当てられるよう前記対応情報を変更する要求を前記ストレージ装置に送信する管理サーバと、を有することを特徴とするストレージシステム。 - 請求項13記載のストレージシステムであって、
前記区分領域のサイズは、前記仮想記憶領域のサイズよりも小さい
ことを特徴とするストレージシステム。 - 請求項13記載のストレージシステムであって、
前記管理サーバは、前記対応情報の変更があった場合に、前記対応情報の変更前に前記仮想記憶領域に割当てられた前記区分領域に格納されたデータを、前記対応情報の変更後に前記対応情報で前記仮想記憶領域と対応付けられるサイズの前記区分領域に移動する要求を前記ストレージ装置に送信する
ことを特徴とするストレージシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006298408A JP2008117094A (ja) | 2006-11-02 | 2006-11-02 | ストレージシステム、ストレージ装置及びストレージ管理方法 |
US11/639,145 US20080109630A1 (en) | 2006-11-02 | 2006-12-15 | Storage system, storage unit, and storage management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006298408A JP2008117094A (ja) | 2006-11-02 | 2006-11-02 | ストレージシステム、ストレージ装置及びストレージ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008117094A true JP2008117094A (ja) | 2008-05-22 |
Family
ID=39361020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006298408A Withdrawn JP2008117094A (ja) | 2006-11-02 | 2006-11-02 | ストレージシステム、ストレージ装置及びストレージ管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080109630A1 (ja) |
JP (1) | JP2008117094A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010026919A (ja) * | 2008-07-23 | 2010-02-04 | Hitachi Ltd | ストレージシステム内の論理ユニットを論理ボリュームに割り当てる方法及び記憶制御装置 |
JP2013196447A (ja) * | 2012-03-21 | 2013-09-30 | Fujitsu Ltd | 管理装置の制御プログラム、制御方法及び管理装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7991972B2 (en) * | 2007-12-06 | 2011-08-02 | International Business Machines Corporation | Determining whether to use a full volume or repository for a logical copy backup space |
US8909896B2 (en) * | 2011-03-01 | 2014-12-09 | Hitachi, Ltd. | Network efficiency for continuous remote copy |
US10095413B2 (en) * | 2016-01-28 | 2018-10-09 | Toshiba Memory Corporation | Memory system with address translation between a logical address and a physical address |
US10235299B2 (en) * | 2016-11-07 | 2019-03-19 | Samsung Electronics Co., Ltd. | Method and device for processing data |
CN110737397B (zh) * | 2018-07-20 | 2023-08-11 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
KR20200072639A (ko) * | 2018-12-12 | 2020-06-23 | 삼성전자주식회사 | 저장 장치 및 그것의 동작 방법 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766430B2 (en) * | 2000-07-06 | 2004-07-20 | Hitachi, Ltd. | Data reallocation among storage systems |
JP2002222061A (ja) * | 2001-01-25 | 2002-08-09 | Hitachi Ltd | 記憶領域を設定する方法、記憶装置およびプログラム記憶媒体 |
TW487177U (en) * | 2001-10-31 | 2002-05-11 | Coretronic Corp | Anti-dust lid of connecting slot |
US6954839B2 (en) * | 2002-03-13 | 2005-10-11 | Hitachi, Ltd. | Computer system |
JP2003316522A (ja) * | 2002-04-26 | 2003-11-07 | Hitachi Ltd | 計算機システムおよび計算機システムの制御方法 |
JP4612269B2 (ja) * | 2002-08-13 | 2011-01-12 | 日本電気株式会社 | 仮想ボリューム管理方式 |
US7263593B2 (en) * | 2002-11-25 | 2007-08-28 | Hitachi, Ltd. | Virtualization controller and data transfer control method |
JP2004334574A (ja) * | 2003-05-08 | 2004-11-25 | Hitachi Ltd | ストレージの運用管理プログラム、運用管理方法及び管理計算機 |
JP4492084B2 (ja) * | 2003-10-07 | 2010-06-30 | 株式会社日立製作所 | ストレージパス制御方法 |
JP4400913B2 (ja) * | 2003-11-26 | 2010-01-20 | 株式会社日立製作所 | ディスクアレイ装置 |
-
2006
- 2006-11-02 JP JP2006298408A patent/JP2008117094A/ja not_active Withdrawn
- 2006-12-15 US US11/639,145 patent/US20080109630A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010026919A (ja) * | 2008-07-23 | 2010-02-04 | Hitachi Ltd | ストレージシステム内の論理ユニットを論理ボリュームに割り当てる方法及び記憶制御装置 |
JP2013196447A (ja) * | 2012-03-21 | 2013-09-30 | Fujitsu Ltd | 管理装置の制御プログラム、制御方法及び管理装置 |
Also Published As
Publication number | Publication date |
---|---|
US20080109630A1 (en) | 2008-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008117094A (ja) | ストレージシステム、ストレージ装置及びストレージ管理方法 | |
JP6544386B2 (ja) | ストレージ制御装置、ストレージ制御プログラムおよびストレージシステム | |
CN111344683B (zh) | 非易失性存储器装置中的命名空间分配 | |
JP5685676B2 (ja) | 計算機システム及びデータ管理方法 | |
JP5406363B2 (ja) | プール領域の一部の領域を動的にデータ格納領域として割り当てる記憶制御装置及び記憶制御方法 | |
WO2016147281A1 (ja) | 分散型ストレージシステム及び分散型ストレージシステムの制御方法 | |
US20200175074A1 (en) | Tree structure aware cache eviction policy | |
US8650381B2 (en) | Storage system using real data storage area dynamic allocation method | |
CN107615261B (zh) | 多个云环境之间的共享存储的方法和装置 | |
JP5073259B2 (ja) | 仮想化システム及び領域割当て制御方法 | |
US20100174865A1 (en) | Dynamic data security erasure | |
CA2953657A1 (en) | Storage device, program, and information processing method | |
JP6569477B2 (ja) | ストレージ制御装置、および制御プログラム | |
CN103761053A (zh) | 一种数据处理方法和装置 | |
JP2009301525A (ja) | フラッシュメモリを用いたストレージ装置 | |
JP2006293981A (ja) | データベース格納方法、および、データベース格納システム | |
CN109753231A (zh) | 键值存储设备及操作其的方法 | |
US10976946B2 (en) | Method and computer system for managing blocks | |
WO2014013527A1 (en) | Storage system including multiple storage apparatuses and pool virtualization method | |
US10620844B2 (en) | System and method to read cache data on hybrid aggregates based on physical context of the data | |
WO2016046880A1 (ja) | ストレージ装置、半導体記憶装置及びその制御方法 | |
JP2017162355A (ja) | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム | |
CN110214305A (zh) | 一种数据访问方法及存储阵列 | |
US20180150250A1 (en) | Tiered storage system, storage controller and tiering control method | |
US11340900B2 (en) | Flushing dirty pages from page buffers indicated by non-sequential page descriptors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090811 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110627 |