以下、本発明の実施の形態を、図面を参照しながら説明する。なお、これにより本発明
が限定されるものではない
<<第一の実施形態>>
『全体の構成』
図1は本発明の第一の実施形態における、計算機システムの構成の一例を説明するための図である。
本図に示すように、計算機システムは少なくとも1つのホスト計算機1a、1b、・・・1n(ホスト計算機の台数は問わない。以降、ホスト計算機1で代表する。)と、ストレージサブシステム20a、20b、・・・・20n(ストレージサブシステムの台数は問わない。以降、ストレージサブシステム20で代表する。)と、ストレージサブシステム20の保守管理等を行うために用いるサブシステム管理装置5と、ホスト計算機1およびストレージサブシステム20のI/O処理に用いられる第一のI/O経路61と、ホスト計算機1、ストレージサブシステム20およびストレージサブシステム管理装置5を接続するネットワーク7と、ホスト計算機1、I/Oネットワークおよびストレージサブシステム20によって構成されるストレージエリアネットワークの構成管理を行うSAN管理端末9と、ストレージサブシステム20に接続されるストレージサブシステム21a、21b、・・・・21n(本ストレージサブシステムの台数は問わない。以後、ホスト計算機1が直接入出力処理を行うストレージサブシステム20と区別するため、外部ストレージサブシステムと呼び、外部ストレージサブシステム21で代表する。)と、ストレージサブシステム20と外部ストレージサブシステム21とを接続する第二のI/O経路62とを備える。
ホスト計算機1は、パーソナルコンピュータ(PC)、ワークステーション(WS)、メインフレーム(MF)等の計算機である。ホスト計算機1では、その計算機の種類に応じたオペレーティングシステム(以下「OS」)とそのOSで動作可能な様々な業務、用途に対応したアプリケーションプログラム(AP)、たとえばデータベースマネージメントシステム(DBMS)等、が動作する。本実施形態では、簡単のため、ホスト計算機1を2つ記載しているが、ホスト計算機1は幾つあってもよい。
ストレージサブシステム20、外部ストレージサブシステム21は、複数の物理記憶装置をアレイ状に配したディスクアレイ構成の記憶装置システムで、ホスト計算機1にデータの入出力対象領域として、論理記憶装置8を提供する。また、本実施形態におけるストレージサブシステム20aは外部ストレージサブシステム21に対して、ホスト計算機1と同様にI/O処理要求を出すことが出来る機能を有する。
なお、外部ストレージサブシステム21は、ホスト計算機1が入出力処理に用いる第1のI/O経路61には接続されず、ストレージサブシステム20が入出力処理に用いる第二のI/O経路62に接続される。このため、外部ストレージサブシステム21は、ホスト計算機1から直接I/O処理要求を受けず、第一のI/O経路61を介してホストからのI/O要求処理を受けたストレージサブシステム20から、第二のI/O経路62を介してI/O処理を受ける。
サブシステム管理装置5a、5bは夫々、ストレージサブシステム20、外部ストレージサブシステム21の障害、保守、構成、性能情報等を該ストレージサブシステムから取得、保持し、ストレージサブシステム20および外部ストレージサブシステム21の管理のためのユーザインタフェースを提供する。
ここで、本実施形態における管理とは、例えば、障害や性能の監視、構成定義、ストレージサブシステム上で動作するプログラムのインストール等などのことである。サブシステム管理装置5aやサブシステム管理装置5bは、例えば、ストレージサブシステム20や外部ストレージサブシステム21に論理記憶装置8を設定する場合、データをバックアップするための記憶領域を設定する場合、または、データを複製する際の記憶領域の対を設定する場合など、ユーザからの指示を受け付け、ストレージサブシステム20や、外部ストレージサブシステム21に対して設定指示及び設定情報を送信する。
第一のI/O経路61は、ホスト計算機1がストレージサブシステム20に対して、種々のコマンド及びデータのI/O処理を行うために用いられる。第二のI/O経路62は、ストレージサブシステム20が外部ストレージサブシステム21に対して、種々のコマンド及びデータのI/O処理を行うために使用される。
ホスト計算機1からストレージサブシステム20へのI/O処理要求に係るコマンドおよびデータは、第一のI/O経路61を介して伝送され、ホスト計算機1から外部ストレージサブシステム21へのI/O処理要求に係るコマンドおよびデータは、第1のI/O経路61を介してストレージサブシステム20へ伝送され、そこから第二のI/O経路62を介して外部ストレージサブシステム21へ伝送される。
第一のI/O経路61及び第二のI/O経路62は、光ケーブルまたは銅線が用いられ、第一のI/O経路61及び第二のI/O経路62で使用される通信プロトコルには、イーサネット(登録商標)、FDDI、ファイバチャネル(FC)、SCSI、Infiniband、TCP/IP、iSCSI、などが用いられる。
ネットワーク7は、ストレージサブシステム20、21の障害、保守、構成、性能等に関する管理情報をストレージサブシステム20、21からサブシステム管理装置5に送信したり、サブシステム管理装置5からの設定情報をストレージサブシステム20、21に送信したり、前記障害、保守、構成、性能等の管理情報をサブシステム管理装置5からSAN管理端末9やホスト計算機1に送信したりする際に使用される。ネットワーク7に使用されるケーブル、通信プロトコルは第一のI/O経路61や第二のI/O経路62と同一でも異なっていてもよい。
なお、第二のI/O経路62と第一のI/O経路61は、ネットワークの処理論理上分けられていればよい。すなわち、第二のI/O経路62と第一のI/O経路61との伝送路は、物理的に独立していても良いし、また、第一のI/O経路61と第二のI/O経路62とは、共通のI/Oネットワークスイッチに接続され論理的に伝送路が分離されていても良い。例えば、両経路は、ファイバチャネルにおいてFCスイッチに接続され、FCスイッチにおけるゾーニング技術を用いてスイッチで論理的に異なるネットワークを構成してもよい。この場合、第二のI/O経路62にのみ接続された外部ストレージサブシステム21のポート配下にパス定義された論理記憶装置8は、ホスト計算機1からは検出できず、直接I/O対象にはできないように構成される。
『ストレージサブシステム20、外部ストレージサブシステム21の構成』
図2は、ストレージサブシステム20および外部ストレージサブシステム21のハードウエア構成とそれらの接続状態とを説明するための図である。ここでは、第一のI/O経路61及び第二のI/O経路62上にI/Oネットワークスイッチ130を用いた場合を例にあげて説明する。
図1に示すように、ストレージサブシステム20は、第一のI/O経路61を介してホスト計算機1に接続され、外部ストレージサブシステム21は、第二のI/O経路62を介してストレージサブシステム20に接続される。
ストレージサブシステム20は、少なくとも1つのストレージサブシステム制御装置112と、共有メモリ107と、ディスクキャッシュ108と、論理記憶装置8を構成する物理記憶装置110と、ストレージサブシステム制御装置112と共有メモリ107とディスクキャッシュ108と記憶装置110とをつなぐ内部ネットワーク109と、を備える。
ストレージサブシステム制御装置112は、少なくとも1つの第一のI/O経路用のポート104aおよび少なくとも1つの第二のI/O経路用のポート104bを有するI/Oアダプタ102と、ネットワーク7用のポート105を有するネットワークアダプタ103と、制御プロセッサ100と、ローカルメモリ101と、ディスクアダプタ106と、を備え、I/Oアダプタ102と、ネットワークアダプタ103と、制御プロセッサ100と、ローカルメモリ101と、ディスクアダプタ106とは、内部バスで接続する。
ポート104aは、I/Oネットワークスイッチ130を介して第一のI/O経路61によりホスト計算機1に接続され、ホスト計算機1からのI/O処理要求を受信するターゲットポートである。
ポート104bは、I/Oネットワークスイッチ130を介して第二のI/O経路62により外部ストレージサブシステム21に接続され、外部ストレージサブシステム21にI/O処理要求を送信するイニシエータポートである。
ポート105は、サブシステム管理端末5aとネットワーク7とを介して接続され、先に述べたように、サブシステム管理端末5aからの要求指示や情報を受領し、必要に応じて情報を送信するために使用される。例えばストレージサブシステム20の構成情報や障害情報、性能情報をサブシステム管理端末5aに対して送信する際等に用いられる。
ホスト計算機1から外部ストレージサブシステム21へのI/O処理要求は、第一のI/O経路61を介してポート104aにおいて受領され、ポート104bから第二のI/O経路62を介して外部ストレージサブシステムに送信される。
ここで、ポート104aとポート104bとを物理的に別個のものとせず、一つのポートにイニシエータポートおよびターゲットポート双方の機能を持たせてもよい。
制御プロセッサ100は、ストレージサブシステム20を制御するためのプログラムを実行する。本実施形態では、制御プロセッサ100は複数備えるものとする。そして、処理するプログラムの制御対象に応じて、状態が設定される。状態は、後述するとおり、ホスト計算機1からのI/Oを処理するものをターゲットプロセッサ、外部ストレージサブシステム21とのI/Oを処理するものをイニシエータプロセッサと設定する。
共有メモリ107とローカルメモリ101にはストレージサブシステム20を動作させるために必要なプログラムおよびデータが格納される。
ディスクアダプタ106は、ストレージサブシステム制御装置112と内部ネットワーク109とを接続し、物理記憶装置110と入出力処理を行うためのインタフェースを提供するためのものである。
外部ストレージサブシステム21は、基本的にストレージサブシステム20と同様の構成を備える。例えば、外部ストレージサブシステム21の全体を制御するストレージサブシステム制御装置120、ポート122とストレージサブシステム制御装置120の内部バスとをつなぐI/Oアダプタ123、ネットワーク7用のポート121、論理記憶装置8を構成する物理記憶装置124などを備える。
また、ポート122は、I/Oネットワークスイッチ130を介して第二のI/O経路62によりストレージサブシステム21のI/Oアダプタ102にあるポート104bと接続される。
『ストレージサブシステム20の機能構成』
次に、ストレージサブシステム20の機能について説明する。これらは、上述したように、共有メモリ107およびローカルメモリ101に格納されているプログラムを制御プロセッサ100が実行することにより実現される。また、これらの機能を実現するために用いられるデータ等についても併せて説明する。
図3は、ストレージサブシステム制御部112の機能を説明するための図である。
ストレージサブシステム制御部112は、I/Oネットワーク処理部200と、ネットワーク処理部201と、コマンド処理部202と、論理記憶装置稼動情報処理部206と、物理記憶装置稼動情報処理部207と、外部ストレージ領域稼動情報取得処理部208と、キャッシュHit/Miss判定処理部210と、キャッシュ量管理処理部212と、ポート制御処理部213と、プロセッサ稼動情報取得処理部214と、物理記憶装置I/O処理部215と、外部ストレージI/O処理部216と、構成定義処理部217と、構成変更計画立案処理部218と、構成変更計画実行処理部219と、外部ストレージ記憶装置属性情報取得処理部221と、マネージャ223とを備える。これらは、プログラムとしてローカルメモリ101に格納される。
これらの各処理部で処理されたデータ、または、処理に必要なデータは、それぞれ、論理/物理対応情報203、論理記憶装置属性情報204、物理記憶装置属性情報205、外部ストレージ稼動情報209、キャッシュ量カウンタ211、外部ストレージ記憶装置属性情報220、スケジュール情報222、論理記憶装置稼動情報224、物理記憶装置稼動情報225、プロセッサ稼動情報226、構成変更計画立案情報227、ポート設定情報228、ポート稼動情報229として、ストレージサブシステム制御装置112のローカルメモリ101または共有メモリ107に格納される。
また、ローカルメモリ101上には、図示しないが、ストレージサブシステムの時刻情報を持つタイマプログラムがある。なお、ストレージサブシステムがストレージサブシステム制御部112を複数持つ場合がある。このような場合は、サブシステム管理装置5を介して予め1の代表のストレージサブシステム制御部112を設定する。そして、設定された代表のストレージサブシステム制御部112のタイマプログラムが保持する時刻情報を、共通の時刻情報として、共有メモリに格納する。代表のストレージサブシステム制御部112以外のストレージサブシステム制御部112は、共有メモリ107に格納されている時刻情報を参照する。このような構成により、全ストレージサブシステム制御部112間で共通の時刻情報を得る。
以下、ストレージサブシステム制御部112の、各処理部、保持情報の詳細について説明する。
『I/Oネットワーク処理部200』
I/Oネットワーク処理部200は、ポート104a、104bとI/Oアダプタ102とを制御する。ストレージ管理装置5を介して受け付けたストレージ管理者からの指示に従い、ポート104a、104bを、イニシエータポート、ターゲットポート、もしくは、混在モードの3つの設定状態のいずれかの状態に設定する。
『ネットワーク処理部201』
ネットワーク処理部201は、ネットワークポート105とネットワークアダプタ103とを制御する。
『構成定義処理部217』
構成定義処理部217は、論理記憶装置8と物理記憶装置110または124との対応関係を定義し、論理物理対応情報203として共有メモリ107に格納する。
一般的に計算機システムでは、ホスト計算機1の起動直後に、例えばSCSIの場合、ホスト計算機1がInquiryコマンドを送信しデバイスを検出することにより、接続するストレージサブシステムの論理記憶装置の検出を行う。
本実施形態では、同様に、ホスト計算機1の起動直後に、ホスト計算機1が、ストレージサブシステム20の、ターゲットポート104a及び該ターゲットポート104aを用いて入出力処理可能な論理記憶装置8の検出を行う。そして、構成定義処理部217は、論理記憶装置8と物理記憶装置110との対応関係をユーザの指示により論理記憶装置8を定義する際に設定する。論理記憶装置8と物理記憶装置110との対応関係は、論理物理対応情報203として共有メモリ107に格納される。
また、システムの開始直後、または、管理者からの指示に従って、構成定義処理部217は、所定のコマンドを外部ストレージサブシステム21に送出し、外部ストレージサブシステム21の論理記憶装置8を、ストレージサブシステム20の論理記憶装置8として定義する。そして、定義情報を論理/物理対応情報203として共有メモリ107に格納する。
本実施形態では、構成定義処理部217は、イニシエータポート104bを介して、外部ストレージサブシステム21の、ターゲットポート122及び該ターゲットポート122を用いて入出力処理可能な論理記憶装置8を検出する。ストレージサブシステム管理端末5aにおいて、ストレージサブシステム20の管理者から、検出した論理記憶装置8をストレージサブシステム20の論理記憶装置8として設定する旨の指示を受け付け、ストレージサブシステム管理端末5aは、受け付けた指示をストレージサブシステム20に送信する。該指示を受領したストレージサブシステム20の構成定義処理部217は、検出した論理記憶装置8を、ストレージサブシステム20の論理記憶装置8として定義する。
ここで、ストレージサブシステム20が、外部ストレージサブシステム21の入出力処理可能な論理記憶装置8を検出した際、構成定義処理部217が自動的にストレージサブシステム20の論理記憶装置8として定義するよう構成してもよい。
なお、論理記憶装置8の定義は、ホスト計算機1の起動直後に限られない。システム運用中に、構成定義処理部217が、ストレージサブシステム管理者からの指示を受け付け、論理記憶装置8の定義を行ってもよい。
『論理物理対応情報203』
次に、構成定義処理部217が、共有メモリ107に格納する論理物理対応情報203を説明する。この論理物理対応情報203は、上述のように構成定義処理部217によって生成および更新される。また、後述するように、性能チューニング処理において最適化が行われ、論理記憶装置8と、物理記憶装置110および124との対応関係に変更があった場合は、構成変更実行処理部219によっても、更新される。
論理物理対応情報203には、ホスト計算機1がストレージサブシステム20の記憶装置110にアクセスするために用いる論理アドレスと、ストレージサブシステム20および外部ストレージサブシステム21の記憶装置110および記憶装置124の物理アドレスとの対応関係を示す情報が格納される。
図4に、論理物理対応情報203の一例を示す。本図に示すように、論理物理対応情報203は、論理記憶装置8のアドレスを格納する論理アドレス格納部600と、実際にデータが格納される物理記憶装置110のアドレスが格納される物理アドレス格納部601とを備える。なお、論理物理対応情報203は、ポート104a毎に作成される。
論理アドレス格納部600は、ストレージサブシステム20のポート104aにアクセスすることによって検出される論理記憶装置8(例えば、SCSIにおけるLU(Logical Unit)、以下ターゲット論理記憶装置と呼ぶ。)の論理記憶装置番号(例えばSCSIであればLU番号)が格納されるターゲット論理記憶装置番号格納部602と、そのターゲット論理記憶装置内のアドレスが格納されるターゲット論理記憶装置アドレス格納部603と、ストレージサブシステム20全体に内部的に付与される論理記憶装置番号(以下、LDEV(Logical Device)番号と呼ぶ。)が格納されるLDEV格納部604と、そのアドレス(以下、LDEVアドレスと呼ぶ。)が格納されるLEDVアドレス格納部605とを備える。
ターゲット論理記憶装置番号は、ホスト計算機1からみて、入出力対象となるターゲットポート104aごとに一意に定まるものであり、ホスト計算機1は、このLU番号を用いて、データのリードライトを、ストレージサブシステム20に対して行う。
ターゲット論理記憶装置は、LDEVをターゲットポートに関連づけることで定義される。LDEVを複数連結して1つのターゲット論理記憶装置を定義してもよい。また、ホスト計算機1毎にターゲット論理記憶装置番号に割り当てられているLDEVは異なっていても良く、同じであってもよい。
また、物理アドレス格納部601には、論理記憶装置番号格納部602に格納されているターゲット論理記憶装置番号に対応する物理アドレスが格納される。
物理アドレス格納部601は、パリティグループの番号が格納されるパリティグループ番号格納部606と、データが格納されるディスク装置の情報が格納されるデータ格納部607と、パリティに関する情報が格納されるパリティ格納部608と、外部ストレージサブシステムに関するデータが格納される外部ストレージ格納部609とを備える。
また、データ格納部607は、物理記憶装置(ディスク装置)の番号を格納するディスク装置格納部610とディスク装置内のアドレスを格納するディスク装置内アドレス格納部611とを備え、パリティ格納部608は、ディスク装置格納部612とディスク装置内のアドレスを格納するディスク装置アドレス格納部613とを備える。外部ストレージ格納部609は、外部ストレージサブシステム内の物理記憶装置へアクセス用のポート番号と物理記憶装置の番号とを格納するポート番号ディスク装置番号格納部614と、ディスク装置内のアドレスを格納する論理装置内アドレス格納部615とを備える。
ディスク装置番号格納部612とディスク装置内アドレス格納部613には、パリティグループのレベルに応じた冗長データが格納されるディスク装置とそのアドレスとが格納される。
パリティグループ番号格納部606とディスク装置番号格納部610とアドレス格納部611とには、LDEV番号格納部604に格納されているLDEV番号とそのLDEVアドレス格納部605に格納されているLDEVアドレスとで定まる論理記憶装置のデータ格納アドレスに対応する物理アドレスを一意に示す、パリティグループ番号、ディスク装置番号、アドレスが格納される。
本実施形態では、ターゲット論理記憶装置が、ストレージサブシステム20内の物理記憶装置で構成するパリティグループ内の記憶装置アドレスに対応する場合、パリティグループ番号格納部606とデータ格納部607とパリティ格納部608とに有効な値が格納される。そして、外部ストレージ格納部609には無効値(例えば、図4では、−1)が格納される。
また、論理記憶装置番号格納部602に示すターゲット論理記憶装置番号に対応する物理アドレス601が、外部ストレージサブシステム21の論理記憶装置である場合(例えば、論理記憶装置番号602がF3のエントリの場合)は、外部ストレージ格納部609に有効な値が格納され、データ格納部607およびパリティ格納部608には、無効な値(例えば、図4では−1)が格納される。
『コマンド処理部202』
次に、ホスト計算機1から受信したI/O処理要求に従って、処理を行うコマンド処理部202について説明する。I/O処理要求は、リード要求とライト要求とストレージサブシステムの状態情報(例えば、構成情報、障害情報等)の取得要求(例えば、SCSIにおけるInquiryコマンド)とがある。コマンド処理部202は、ホスト計算機1から受信したI/O処理要求から処理対象の論理アドレスを抽出し、論理物理対応情報203を参照して、対応する物理アドレスを読み出し、データの入出力処理を行ったり対応するターゲット論理記憶装置の状態をホストコンピュータ計算機1に通知したりする。なお、データの入出力処理(データのリードライト処理)の詳細は後述する。
『論理記憶装置属性情報204』
論理記憶装置属性情報204には、予めサブシステム管理装置5などを介して入力された論理記憶装置8の属性情報、例えば、サイズ、エミュレーションタイプ、リザーブ情報、パス定義情報、I/O対象ホスト計算機1の情報(ホストのI/Oポートの識別子、たとえばファイバチャネル(FC)におけるWorld Wide Name(WWN)等が保持される。
図5に、論理記憶装置属性情報204に保持されているデータの一例を示す。本図に示すように、論理記憶装置属性情報204は、ホスト計算機1が入出力処理対象としてアクセス可能なターゲットポート識別子(番号)と該ターゲットポートから入力可能なターゲット論理記憶装置の識別子(番号)および該ターゲット論理記憶装置のアドレスに対応したマッピング先のパリティグループ(物理記憶装置)を示す情報である。
論理記憶装置属性情報204は、ターゲットポート104aの識別子(ID)を格納するID格納部1101とターゲット論理記憶装置8の識別子とを格納するターゲット論理記憶装置番号格納部1102とを備える。
また、論理記憶装置属性情報204は、図4に示す論理物理対応情報203に従って、ターゲット論理記憶装置番号格納部1102に格納されているターゲット論理記憶装置を構成するLDEVの識別子(LDEV番号)を格納するLDEV番号格納部1103と、該LDEVが存在するパリティグループ(PG)の識別子を格納するPG番号格納部1104とを備える。
さらに、論理記憶装置属性情報204は、それぞれの論理記憶装置8が、ストレージサブシステム20のようにホスト計算機1から第一のI/O経路61を介して直接アクセス可能なストレージサブシステムであるか、ストレージサブシステム20および第二のI/O経路62を介してアクセスしなければならない外部ストレージサブシステムであるかを示すストレージ種類格納部1105を備える。
ストレージ種類格納部1105には、外部ストレージサブシステム21であることを示す情報が格納される場合は、当該外部ストレージサブシステム21へのアクセスに必要なアドレス、例えば、ファイバチャネル(FC)におけるWorld Wide Name(WWN)と論理記憶装置番号(LUN)等も格納される。
その他、論理記憶装置属性情報204は、エミュレーションタイプおよび容量に関する情報が格納されるエミュレーションタイプおよび容量格納部1106とパス定義情報格納部1107と論理記憶装置の状態情報を格納する状態情報格納部1108とを備える。
ここで、エミュレーションタイプとは種々のメインフレーム用それぞれの論理記憶装置かオープン系ホスト計算機アクセス対照用論理記憶装置か双方からアクセス可能な論理記憶装置か等の論理記憶装置のエミュレーション情報であり、容量は論理記憶装置の記憶容量のことである。
論理記憶装置の状態とは、ホスト計算機1からI/O処理要求を受けるオンライン状態、ある論理記憶装置のある時点のコピー(スナップショットデータ)の格納先や遠隔バックアップ用やディザスタリカバリ用の遠隔コピー先等のための予約状態であるリザーブ状態、論理記憶装置障害による閉塞状態等のことである。
また、パス定義とは、ターゲットポート番号と論理記憶装置番号との組を指定することで、ホスト計算機1から入出力処理対象となる論理記憶装置8にアクセスできるように、論理記憶装置8に、ストレージサブシステムのI/Oポートに関連付けてその配下の論理装置の番号を定義する処理である。
『パリティグループ(物理記憶装置)属性情報205』
次に、ストレージサブシステム20および外部ストレージサブシステム21内の各パリティグループを構成するハードディスク等の物理記憶装置の属性情報205について説明する。
物理記憶装置の属性情報205は、ストレージサブシステム20の管理者によって、予め、サブシステム管理装置5などを介して設定され、共有メモリ107もしくはローカルメモリ101に格納される。物理記憶装置属性情報205として格納される属性情報は、例えば、物理記憶装置110の使用している型や反応速度や回転数、サステイン性能、回転待ち時間、コマンドオーバヘッド、物理記憶装置のRAID構成情報等である。なお、RAID構成情報は、パリティグループの構成低後を行う際に設定する情報なので、その情報を用いても良い。
図6に物理記憶装置属性情報205に格納されているデータの一例を示す。本図に示すように、物理記憶装置属性情報205は、その物理記憶装置が属するパリティグループの番号を格納するパリティグループ番号格納部801と、各パリティグループに属するディスクの性能指標情報を格納するディスク性能指標格納部802と、各パリティグループのRAID構成を格納するRAIDレベル格納部803と、RAID構成の詳細を格納する詳細構成格納部804と、各パリティグループの運用上の属性情報を格納するシーケンシャルボリューム格納部805と、リードライトに関する特性を示す属性情報806を備える。
ディスク性能指標格納部802には、各パリティグループで使用されているディスクのコマンドオーバヘッドとシーク時間と平均待ち時間とメディア転送時間等の情報が保持される。また、シーケンシャルボリューム格納部805に格納されている情報は、後述の性能チューニングを行う際に利用される。例えば、RAID構成やディスクストライプサイズ上、シーケンシャルアクセスに適していると考えられるパリティグループをシーケンシャルボリュームとして定義し、サブシステム内のある論理デバイス(LDEV)へのアクセス比率でシーケンシャルが高いものを当該パリティグループに移動する。また、ランダムアクセス比率の高いLDEVのデータを、当該シーケンシャルボリュームに定義したパリティグループに移動させない、もしくは、追い出すようにする。
なお、後述する性能チューニングは、構成変更計画立案処理部218によって、性能上必要がある場合に行われる。
RAIDレベル格納部803と詳細構成格納部804とに格納される情報により、例えば、本図の第1行目に格納されているパリティグループ番号0000のパリティグループは、そのRAID構成がRAID5であり、3D1P(4台のディスクでRAID構成(RAID5)を組み、3つのディスクにデータを格納し、残りの1つのディスクにパリティデータを格納する構成)であることが分かる。
属性情報806には、リード処理のみを受け付け、ライト更新処理を拒否するボリュームであるか否かを示す属性情報が格納される。
『論理記憶装置稼動情報取得処理部206、論理記憶装置稼動情報224』
論理記憶装置稼動情報取得処理部206は、ストレージサブシステム20内の論理記憶装置8に対するI/O処理に関して入出力に係る稼動情報を取得し、論理記憶装置稼動情報224として共有メモリ107またはローカルメモリ101に保持する。
論理記憶装置稼動情報取得処理部206は、論理記憶装置8を構成するLDEVごともしくは論理記憶装置8ごとに、ある一定時間を単位(例えば、1秒、1分、10分等)として、例えば、ストレージサブシステム20の単位時間当たりの該論理記憶装置に対する全I/O処理に係る時間をカウントし、単位時間当たりの平均I/O処理時間を算出するとともに、該単位時間内の最大I/O処理時間を随時求める。また、該単位時間内の該論理記憶装置に対する全I/O数や単位時間当たりの平均I/Oカウント数、単位時間内での最大I/Oカウント数、単位時間当たりの平均データ転送量、単位時間当たりの最大データ転送量等を算出する。
また、論理記憶装置稼動情報取得処理部206は、論理記憶装置8を構成するLDEVごともしくは論理記憶装置8ごとに、キャッシュHit/Miss判定処理がカウントしたキャッシュ量カウンタ値を元に、単位時間当たりのキャッシュヒット率を算出する。さらに、リードアクセス時間、ライトアクセス時間、シーケンシャルアクセス時間、総占有時間等をモニタし、シーケンシャル比率、リードライト比率、平均ディスク占有率、最大ディスク占有率などを、算出する。
本実施形態では、以上の取得した情報と算出した情報とは、論理記憶装置稼動情報224として共有メモリ107またはローカルメモリ101に保持される。
図7および図8に論理記憶装置稼動情報取得処理部206が計測し、取得、算出した論理記憶装置8の、それぞれ、LU番号およびLDEV番号ごとの論理記憶装置稼動情報224a、224bの一例を示す。
図7はポート104aに関連付けされてパス定義されたLUの稼動情報を格納する論理記憶装置稼動情報224aに格納されているデータの一例を説明するための図である。論理記憶装置稼動情報224aは、ここで、列901には、取得時間がサンプリング時間間隔ごとに記録されている。列902には、ポート104aごとに論理記憶装置8の番号がサンプリング時間ごと記録され、列904には当該時間の当該論理記憶装置の一秒あたりの平均I/Oカウント数(IOPS)、列905には当該時間の一秒あたりの最大I/Oカウント数(IOPS)、列906には当該時間の当該論理記憶装置の一秒あたりの平均データ転送量(MBPS)、列907には当該時間の一秒あたりの最大データ転送量(MBPS)、列908には当該時間の当該論理記憶装置の一秒あたりの平均IO処理時間(μs)、列909には当該時間の一秒あたりの最大IO処理時間(μs)がそれぞれ記録される。
図8は、LDEVの稼動情報を格納する論理記憶装置稼動情報テーブル224bに格納されているデータの一例を説明するための図である。本図に示すように、論理記憶装置稼動情報テーブル224bは、シーケンシャルリード1004と、シーケンシャルライド(データ)1005と、シーケンシャルライト(パリティ)1006と、ランダムリード1007と、ランダムライト(データ)1009と、総占有時間1010と、リードライト比率1011と、シーケンシャル比率1012とを備える。
ここで、シーケンシャルリード1004と、シーケンシャルライド(データ)1005と、シーケンシャルライト(パリティ)1006と、ランダムリード1007と、ランダムライト(データ)1009と、総占有時間1010とには、それぞれの処理の、所定の時刻ごとのLDEVごとの、ディスクアクセスの占有時間が格納される。また、リードライト比率1011には、所定の時刻ごとのLDEVごとの、ライトアクセス時間に対するリードアクセス時間の割合が格納される。そして、シーケンシャル比率1012には、所定の時刻ごとのLDEVごとの、総占有時間に占めるシーケンシャルアクセスの時間の割合が格納される。
『物理記憶装置稼動情報取得処理部207、物理記憶装置稼動情報225』
物理記憶装置稼動情報取得処理部207は、物理記憶装置110に対するI/O処理による稼動情報(物理稼動情報)を取得し、物理記憶装置稼動情報225として保持する。
物理記憶装置稼動情報処理部207は、物理記憶装置110ごとに、ある一定時間を単位として、平均I/O処理時間、最大I/O処理時間、平均I/Oカウント数、最大I/Oカウント数、平均データ転送量、最大データ転送量、キャッシュヒット率、シーケンシャル比率、リードライト比率、平均ディスク占有率、最大ディスク占有率等の情報を取得し、物理記憶装置稼動情報225として共有メモリ107またはローカルメモリ101に保持する。このように、物理記憶装置稼動情報225には、ホスト計算機1の記憶装置へのI/O処理に必要な時間を計測した結果が記録される。
図9は、物理記憶装置稼動情報225の一例を示す図である。
本図に示すように、物理記憶装置稼動情報225は、シーケンシャルリード1304と、シーケンシャルライト(データ)1305と、シーケンシャルライト(パリティ)1306と、ランダムリード1307と、ランダムライト(データ)1308と、ランダムライト(パリティ)1309と、総占有時間1310と、リードライト比率1311と、シーケンシャル比率1312とを備える。
ここで、シーケンシャルリード1304と、シーケンシャルライト(データ)1305と、シーケンシャルライト(パリティ)1306と、ランダムリード1307と、ランダムライト(データ)1308と、ランダムライト(パリティ)1309と、総占有時間1310とには、所定の時刻ごとのパリティグループごとの、それぞれの処理がディスクアクセスを占有する時間が格納される。リードライト比率1311には、所定の時刻ごとのパリティグループごとの、ライトアクセス時間に対するリードアクセス時間の割合が格納される。そして、シーケンシャル比率1312には、所定の時刻ごとのパリティグループごとの、総占有時間に占めるシーケンシャルアクセスの時間の割合が格納される。
なお、論理記憶装置稼動情報取得処理部206および論理記憶装置稼動情報224と、物理記憶装置稼動情報取得処理部207および物理記憶装置稼動情報225とは、どちらか一方があれば、論理/物理対応情報203に格納されているデータから作成可能であるため、どちらか一方が保持されていれば良い。
『外部ストレージ稼動情報取得処理部208、ストレージ稼動情報209』
外部ストレージ稼動情報取得処理部208は、外部ストレージの稼動情報を取得して、外部ストレージ稼動情報209として共有メモリ107またはローカルメモリ101に保持する。
外部ストレージ稼動情報取得処理部208は、外部ストレージサブシステム21が提供する論理記憶装置8へのストレージサブシステム20からのI/O処理要求に対するレスポンスやスループットを稼動情報として計測して取得し、外部ストレージ稼動情報209として保持する。
図10は外部ストレージ稼動情報209を説明するための図である。
本図に示すように、外部ストレージ稼動情報209は、時間1801と、イニシエータポート番号1901と、汎用ストレージサブシステムWWN1902と、汎用ストレージLUN1903と、IOPS1904と、MBPS1905と、レスポンス1906と、リンク状態1907とを備える。
『キャッシュHit/Miss判定処理部210、キャッシュ量カウンタ211』
キャッシュHit/Miss判定処理部210は、コマンド処理部202に呼び出され、コマンド処理部202において処理するコマンドの対象アドレスのデータがディスクキャッシュ108上にあるか無いかを判定する。図11は、キャッシュ量カウンタ211を説明するための図である。
キャッシュHit/Miss判定処理部210は、処理するコマンドの対象アドレスのデータが、ディスクキャッシュ108上にあれば、コマンド処理部202に、対象アドレスのデータがディスクキャッシュ108上に存在することと、その存在領域のアドレスとを通知する。そのとき、ディスクキャッシュ108上の所定の領域情報と該当する論理記憶装置8のキャッシュ量カウンタ211の図示しないヒット情報カウンタを一つ増加させる。
なお、キャッシュ量カウンタ211は、上記のヒット情報の他に、論理記憶装置8毎の、ディスクキャッシュ108上にあって物理記憶装置110に書き込まれていないダーティ状態のデータの量(これをダーティ量と以下する)と、ディスクキャッシュ108上と物理記憶装置110との双方にあるクリーン状態のデータ量(これをクリーン量と以下する)と、キャッシュ全体のダーティ量、クリーン量、空き容量であるフリー量、および、キャッシュの総量とを保持する。
『キャッシュ量管理部212』
キャッシュ量管理部212は、ディスクキャッシュ108に格納されているデータ量を管理する。
キャッシュ量管理部212は、キャッシュのクリーン量またはダーティ量の変動に応じてコマンド処理部202の起動間隔を制御する。具体的には、キャッシュ量カウンタ211のキャッシュ全体のダーティ量とクリーン量とを示すカウンタを常に参照し、両者の合計がある一定の割合以上になったら、コマンド処理部202の起動間隔を通常より長くし、ある一定の割合以下になれば、通常の起動間隔に戻すといった制御を行なう。
ホスト計算機1からのライト処理が頻繁に行なわれると、ディスクキャッシュ108上にダーティ状態のデータがたまる。例えば主電源が落ちて、自己の内臓電池でサブシステムを動作させなければならなくなった場合、ディスクキャッシュ108上のダーティ状態のデータを所定の物理記憶装置に書き込む必要があるが、ダーティ量が大きいと、書き込みに時間を要して、物理記憶装置上にデータが反映されずに失う危険性が増える。
また、RAID構成をとる場合、パリティを生成するための領域がキャッシュ上に必要なため、ホスト計算機1から送信されたライトデータは、キャッシュ容量全体のある一定量以下に抑える必要がある。
これらの事情から、キャッシュ量管理部212は、キャッシュ量を監視し、その量を常に一定以下にするようシステムの動作を制御する。
『ポート流量管理処理部213、ポート設定情報228、ポート稼動情報229』
ポート流量管理処理部213は、ストレージサブシステム20のポート104a、104bごとのデータ流量を管理する。
ポート流量管理処理部213は、I/Oポート104a、104bにおいてI/O処理要求を受領するごとに、ホスト計算機1のWWN毎に、データ転送量、I/O数を計測し、それらをポート稼動情報229として共有メモリ107またはローカルメモリ101に格納する。
図12は、ポート稼動情報229の一例を説明するための図である。本図に示すように、ポート稼動情報229は、時間1201と、ポート番号1201aと、平均レスポンス時間および最大のレスポンス時間とをそれぞれ保持する、平均IOPS1204および最大IOPS1205と、平均のスループット時間と最大のスループット時間とをそれぞれ保持する平均MBPS1206および最大MBPS1207と、平均I/O処理時間と最大I/O処理時間とをそれぞれ保持する平均I/O処理時間1208および最大I/O処理時間1209と、シーケンシャル比率1210とリードライト比率1211とを備える。
また、ポート流量管理処理部213は、ポート稼動情報229として保持されている情報を用い、ポートでのI/O処理制御を行う。
なお、ホスト計算機1のWWN毎の、I/O数(IOPS)、データ転送量(MBPS)などの上限値の設定情報は、ストレージサブシステム管理者からストレージサブシステム管理装置5を介して予め入力され、ネットワーク7を介してストレージサブシステム20に送信され、ポート設定情報228として共有メモリ107またはローカルメモリ101に格納される。
ポート設定情報228は、ポート104a、104bごとの、ホスト計算機1とのI/O処理に係る稼動情報、例えばスループット(単位時間当たりのIO数(IOPS)やデータ転送量(MBPS))やレスポンス(I/O処理応答時間)の最悪値、平均値、最良値等を基に、上限値、下限値、目標値が格納される。
これらは、例えば、テストI/Oをストレージサブシステム20から外部ストレージサブシステム21に出し、その際の応答時間などを見て、ストレージサブシステム管理装置5を介して設定される。なお、元々ホスト計算機1とI/O処理を行っていた外部ストレージサブシステム21であれば、そのときに得られた情報を利用する。
図13は、ポート設定情報228の一例を示す図である。
本図に示すように、ポート設定情報228は、ポート番号1400と、状態1401と、接続WWN1402と、最大IOPS1403と、最大MBPS1404と、最小IOPS1405と、最小MBPS1406と、目標IOPS1407と、目標MBPS1408と、帯域1409と、プロトコル1410とを備える。
『プロセッサ稼動情報取得処理部214、プロセッサ稼動情報226』
プロセッサ稼動情報取得処理部214は、制御プロセッサ100が各処理を実行する時間を計測し、プロセッサ稼動情報226として記録する。
図14にプロセッサ稼動情報226の一例を示す。本図に示すように、プロセッサ稼動情報226は、プロセッサ番号1451と、状態1452と、稼動率1453とを備える。ここで、状態1452には、当該プロセッサが、ホスト計算機1からのI/Oを処理するターゲットプロセッサであるか、外部ストレージサブシステム21とのI/O処理を制御するイニシエータプロセッサであるかを示す情報が格納される。各プロセッサの状態は、予め管理者などによって定められる。
『物理記憶装置I/O処理部215』
物理記憶装置I/O処理部215は、ホスト計算機1のI/O処理要求に従い、物理記憶装置110からディスクキャッシュ108へ、または、ディスクキャッシュ108から物理記憶装置110に、データを書き込む。
ホスト計算機1からライト処理要求があった場合、コマンド処理部202においてその処理要求の相手先を解析する。その結果、その処理要求の相手先がストレージサブシステム20内の物理記憶装置110であった場合、物理記憶装置I/O処理部215は、コマンド処理部202がディスクキャッシュ108にライト処理を行った後、コマンド処理部202からの指示に従い、ダーティデータを、該当する物理記憶装置110に書き込む。以下、物理記憶装置I/O処理部215がディスクキャッシュ108から物理記憶装置110にデータを書き込む処理をライトアフタ処理と呼ぶ。
また、ホスト計算機1からリード処理要求があり、その相手先が、ディスクキャッシュ108上になく、かつ、ストレージサブシステム20内の物理記憶装置110であった場合、物理記憶装置I/O処理部215は、コマンド処理部202からの指示に従い、当該物理記憶装置110の所定のアドレスに読み出しに行く。
『外部ストレージI/O処理部216』
外部ストレージI/O処理部216は、ホスト計算機1のI/O処理要求に従い、外部ストレージサブシステムの物理記憶装置124からディスクキャッシュ108へ、または、ディスクキャッシュ108から物理記憶装置124に、データを書き込む。
コマンド処理部202が解析したライト処理要求の相手先が外部ストレージサブシステム21内の物理記憶装置124であった場合、コマンド処理部202の指示に従い、外部ストレージI/O処理部216は、ライトアフタ時に、ダーティデータを、ディスクキャッシュ108から該当する物理記憶装置124に書き込む。
また、コマンド処理部202が解析したリード処理要求の相手先が、ディスクキャッシュ108上になく、かつ、外部ストレージサブシステム21内の物理記憶装置124であった場合、外部ストレージI/O処理部216は、コマンド処理部202の指示に従い、当該物理記憶装置124の所定のアドレスに読み出しに行く。
『構成変更計画立案処理部218、構成変更計画立案情報227』
構成変更計画立案処理部218は、物理記憶装置稼動情報225、ポート稼動情報229、論理記憶装置稼動情報224、プロセッサ稼動情報226、キャッシュ量カウンタ211などを参照して、性能上の要求に応じて構成変更計画を立てる。
構成変更計画立案処理部218は、マネージャ223により、所定の時間間隔で起動され、ストレージサブシステム20または外部ストレージサブシステム21のホストI/O処理性能が当初想定より所定以上低下している場合に、データの再配置、イニシエータポート104b数の増減等を計画し、構成変更計画立案情報227として共有メモリ107またはローカルメモリ101に保持する。構成変更計画が必要な理由は、ストレージサブシステム20のホストI/O処理性能が、システムの運用経過に従い時間とともに変化するためである。
計画立案した情報は、後述する構成変更計画実行処理部219によって実行されるか、または、ストレージ管理者などからキャンセルの指示を受け付けるまで保持される。
なお、I/O処理性能として、例えば、スループットやレスポンス時間などで判断する。
『構成変更計画実行処理部219』
構成変更計画実行処理部219は、マネージャ223の指示により、構成変更計画立案情報227に従って構成変更を行う。本処理の実行により、ストレージサブシステム20および外部ストレージサブシステム21の性能が改善される。
『スケジュール情報222』
スケジュール情報222は、性能チューニングに係る各種処理を行なうスケジュールを示す情報であり、共有メモリ107またはローカルメモリ101に格納される。スケジュール情報222は、例えば、構成変更計画を立案するタイミング、立案した計画を実行するタイミングなどである。
『マネージャ223』
マネージャ223はスケジュール情報222に従い、構成変更計画立案処理部218および構成変更計画実行処理部219を実行する。
『外部ストレージ記憶装置属性情報取得処理部221、外部ストレージ記憶装置属性情報220』
外部ストレージ記憶装置属性情報取得処理部221は、サブシステム管理装置5から外部ストレージサブシステム21の記憶装置属性情報を取得し、外部ストレージ記憶装置属性情報220として共有メモリ107またはローカルメモリ101に格納する。なお、本処理部は、ネットワーク7を介し外部ストレージサブシステム21の管理装置5から外部ストレージサブシステム21のRAID構成や使用しているHDDの種類等が取得できるI/Fが用意されている場合に処理が行なわれる。
『サブシステム管理装置5』
図15に、本実施形態のサブシステム管理装置5のハードウエア構成の一例を示す。
本図に示すように、サブシステム管理装置5は、それぞれ、伝送路である内部バス308で接続された、制御プロセッサ301と、電気的に不揮発な記憶部であるメモリ302と、ネットワークI/F304と、入力部306と、表示部305とを備える。
ストレージサブシステム制御プロセッサ301は、サブシステム管理装置5の機能を実現するためのプログラムを実行する。
メモリ302には、制御プロセッサ301が実行するプログラムおよびそのプログラムが使用する情報等が格納される。
ネットワークI/F304は、ネットワーク7とのインタフェースである。ストレージサブシステム管理装置5は、ネットワーク7を介してストレージサブシステム20、21のシステム構成に関する情報を取得し、また、管理者から受け付けた構成定義(例えば、RAIDの構成定義や論理記憶装置の定義とそのパス定義処理、スナップショットペア定義など)、をストレージサブシステム20、21に送信する。
入力部306および表示部305は、ストレージサブシステム20、21の管理者とのインタフェースである。入力部306は、ストレージサブシステム20、21の保守/管理やりストア処理の指示や構成変更計画立案のための情報、例えば参照するリソースの稼動情報の期間や閾値、構成変更計画立案を実行する時刻などの入力を受け付け、また、表示部305に必要な情報を表示する。
『ホスト計算機1』
図16に、本実施形態のホスト計算機1のハードウエア構成の一例を示す。
本図に示すように、ホスト計算機1は、所定のプログラムを実行するCPU401と、CPU401が実行するOS、アプリケーションプログラム(以下、APと呼ぶ。)、および、APが使用するデータなどを格納メモリ402と、OS、AP、および、APが使用するデータが格納されるローカルディスク装置403と、第一のI/O経路61とホスト計算機1とを接続するホストバスアダプタ404と、ネットワーク7とホスト計算機1とを接続するためのネットワークアダプタ405と、フレキシブルディスク等の可搬記憶メディアからのデータの読み出し等を制御するリムーバブル記憶ドライブ装置407と、これらの構成要素間を接続し、OS、AP、データ、制御データなどの転送に用いられる内部バスであるローカルI/Oネットワーク409とを備える。
可搬記憶媒体としては、CD−ROM、CD−R、CD−RW、DVDやMO等の光ディスク、光磁気ディスクや、ハードディスクやフレキシブルディスク等の磁気ディスク等が使用可能である。
なお、以下に説明する各処理部は、可搬記憶媒体に格納されたプログラムをリムーバブル記憶ドライブ装置407を介して読み出す、または、外部のネットワークなどを経由してホスト計算機1にインストールされる。
また、ホス計算機1は、CPU401、ローカルディスク403、メモリ402、ホストバスアダプタ404、ネットワークアダプタ408を複数備えてもよい。
『SAN管理端末9』
図17に、本実施形態のSAN管理端末9のハードウエア構成の一例を示す。
本図に示すように、SAN管理端末9は、制御プロセッサ501と、電気的に不揮発な記憶部であるメモリ502と、ネットワークI/F504と、入力部506と、表示部505と、各々の構成要素を接続してデータや制御命令等を伝送するする内部バスである伝送路508とを備える。
メモリ502には、制御プロセッサ501が実行するプログラムおよびそのプログラムが使用する情報等が格納され、制御プロセッサ501は、SAN管理端末9そのプログラムを実行する。
ネットワークI/F304は、ネットワーク7とのインタフェースである。
『外部ストレージサブシステム21へのI/O処理』
次に、外部ストレージサブシステム21へのI/O処理の流れを説明する。図18、図19は、外部ストレージサブシステム21へのI/O処理の流れを説明するための図である。
ホスト計算機1からのI/O処理要求は、ストレージサブシステム20が受領し、外部ストレージサブシステム21へ転送する。この場合、外部ストレージサブシステム21へのI/O処理要求であっても、ディスクキャッシュ108は使用される。
まず、リード要求があった場合の処理について図18を用いて説明する。
コマンド処理部202は、ホスト計算機1からリード処理要求を受領すると、受領した要求を解析し(ステップ1601)、対象となるリードデータのアドレスおよびホスト計算機1の入出力対象であるターゲット論理アドレスである該アドレスを、対応するLDEV番号とLDEVアドレスとに変換する(ステップ1602)。
次に、キャッシュHit/Miss判定処理部210は、前記LDEVアドレスのデータがディスクキャッシュ108に存在するか否かを判定する。(ステップ1603)。
ここで、ディスクキャッシュ108に存在すると判定された場合(キャッシュヒット時)、コマンド処理部202は、そのデータをディスクキャッシュ108から読み出し、該データをホスト計算機1に送信した後、完了報告をホスト計算機1に送信する(ステップ1604、1605)。
ステップ1603において、存在しないと判定された場合(キャッシュミス時)は、コマンド処理部202は、論理/物理対応情報203にアクセスし、ステップ1602において割り出したLDEVアドレスが、ストレージサブシステム20か外部ストレージサブシステム21に存在するか、判断する(ステップ1612)。
ここで、ストレージサブシステム20に存在する場合は、コマンド処理部202は、物理記憶装置I/O処理部215にI/O処理対象アドレス、データ長等とともに、データのリード要求を送信し(ステップ1618)、物理記憶装置I/O処理部215は、I/O処理を行う(ステップ1619)。
ステップ1612において、外部ストレージサブシステム21に存在すると判断された場合は、コマンド処理部202は、外部ストレージI/O処理部216に、受領したI/O処理要求を送信する(ステップ1615)。
I/O処理を受領した外部ストレージI/O処理部216は、I/O処理要求内のアドレスに従って、外部ストレージサブシステム21にアクセスし、指定されたデータを読み出し(ステップ1616)、ディスクキャッシュ108に格納し(ステップ1616)、格納したことを、コマンド処理部202に通知する(ステップ1617)。
通知を受け取ったコマンド処理部202は、ディスクキャッシュ108から通知を受けたデータを読み出し、該データをホスト計算機1に送信し(ステップ1621)、その後、完了報告をホスト計算機1に送信する(ステップ1622)。
次にライト処理要求があった場合の処理について図19を用いて説明する。
ホスト計算機1からライト処理要求を受信したコマンド処理部202は、リード時と同様、受領した要求を解析し(ステップ1701)、ライト処理準備ができていることをホスト計算機1に通知し、その後送信されてくるライトデータのアドレス、ホスト計算機1の入出力対象であるターゲット論理アドレスである該アドレス、を対応するLDEV番号とLDEVのアドレスとに変換する(ステップ1702)。
そして、キャッシュHit/Miss判定処理部210は、そのアドレスを基にディスクキャッシュ108上のデータのHit/Miss判定を行う(ステップ1703)。
ステップ1703において、キャッシュヒット時は、コマンド処理部202は、ヒットしたキャッシュの領域に受領したライトデータを上書きする。そして、キャッシュミス時は、ディスクキャッシュ108内に新たな領域を確保し、受領したライトデータをそこに格納し(ステップ1704)、完了報告をホスト計算機1に通知する(ステップ1705)。
なお、ライトデータをキャッシュに格納した場合、キャッシュ上のアドレス情報や格納されるべき物理記憶装置のアドレス情報などを処理要求情報として、ダーティキューに登録する。
次に、一旦ディスクキャッシュ108に格納したデータを物理記憶装置110、124に実際に書き込むライトアフタ時の処理について説明する。
物理記憶装置I/O処理部215または外部ストレージI/O処理216は、前記ダーティキューを参照し、処理すべきキューが存在した場合(ステップ1711)、キャッシュ上に存在する転送データ(ダーティデータ)を確定して(ステップ1712)ダーティデータをリード(ステップ1713)し、それぞれの物理記憶装置110、124にライト処理を行う(ステップ1714)。それぞれの物理記憶装置110、124からライト完了の報告を受領すると(ステップ1715)、前記ダーティキューをクリーンキューにつなぎ変える。
『性能劣化について』
上記機能、情報を用いて、性能チューニングを行なう処理を説明する前に、本実施形態のストレージサブシステムにおいて、性能チューニングを要する性能の劣化について説明する。
ホスト計算機1に直接接続されているストレージサブシステム20の場合は、アクセス衝突などにより、性能が劣化する。
すなわち、ストレージサブシステム20がホスト計算機1に提供する論理記憶装置8は、複数の物理記憶装置110からなるパリティグループによって提供される。このため、ホスト計算機1からみて、異なる論理記憶装置8へのアクセスであっても、それが、同一パリティグループを構成する物理記憶装置110へのアクセスとなることがあり、アクセス衝突が発生し、処理が遅延する。
また、外部ストレージサブシステム21を含めたシステム全体の性能劣化は、I/O付加の上昇などによっても発生する。
本実施形態のように、外部ストレージサブシステム21へのI/O処理を、ストレージサブシステム20を介して行なう状況で、システム全体の性能を劣化させる要因となる、I/O負荷の上昇について、説明する。
外部ストレージサブシステム21へのI/O負荷は、外部ストレージサブシステム21へのI/O処理要求の回数とI/O処理応答時間との積で得られる。また、負荷が大きくなればなるほど、I/O処理応答時間はさらに長くなる。このような負荷上昇に伴うI/O処理応答の時間の遅延は様々な要因が考えられる。
例えば、ポート104bの競合がある。外部ストレージサブシステム21へのI/O処理はストレージサブシステム20を介して行なわれる。このストレージサブシステム20は、外部ストレージサブシステム21が複数ある場合であっても、それぞれの外部ストレージサブシステム21に対して別個のイニシエータポート104bを備えず、ポート104bを共用することがある。このような場合、ストレージサブシステム20側のポート104bという共有リソースでの処理が競合することによりI/O処理の遅延が発生し、それがI/O処理応答時間の遅延となって表面化する。
また、制御プロセッサ100の競合も考えられる。外部ストレージサブシステム21に対するI/O処理要求を処理する外部ストレージI/O処理部216が処理を行なうにあたり、ストレージサブシステム20内部のI/O処理等と競合し、制御プロセッサ100のリソースが十分に割り振れないことがある。このような要因で、I/O処理応答の時間的な遅延が発生する。
このように、外部ストレージサブシステム21を接続した構成の場合、現象として現れている性能劣化が、単に同じパリティグループを構成する物理記憶装置へのアクセス衝突によるものだけでなく、ポート104bの競合、制御プロセッサ100の競合によるものである場合も考えられる。従って、性能チューニングにあたっても、これらの要因を考慮する必要がある。
『性能チューニング処理の流れ』
次に、上記の各機能を用い、外部ストレージサブシステム21を含めた性能チューニング処理の流れを以下に説明する。本実施形態においては、まず、所定の時間間隔ごとに自動で性能チューニングを行う、すなわち、性能スケジュール情報222に従って、構成変更を行うための種々の処理を自動的に進めることを指示する性能改善機能がONであるか否かを判断し、当該機能がONの場合、処理を進める。ここでの処理は、構成変更計画の立案、ストレージサブシステム20の性能チューニング、外部ストレージサブシステム21の性能チューニングの順に行われる。そして、外部ストレージサブシステム21の性能チューニングを行う場合は、前もって、管理端末を介して、管理者の承認を得る。
図20に、ストレージサブシステム20の性能チューニング時の処理フローを示す。
マネージャ223は、一定時間間隔ごとにスケジュール情報222を参照し、ストレージサブシステム20の、性能改善機能がON、すなわち、性能チューニングを行う状態になっているかを確認する(ステップ2001)。なお、参照時間間隔や性能改善機能の指示は、ストレージサブシステム管理装置5を介して、管理者より入力される。
ストレージサブシステム20の性能改善機能がONである場合、マネージャ223は、性能スケジュール情報222を参照し、構成変更計画立案情報227の更新を行う時刻であるかを確認する(ステップ2002)。
構成変更計画立案情報227の更新時刻であれば、マネージャ223は、構成変更計画立案処理部218に構成変更計画立案情報を作成させる(ステップ2031)。本ステップ2031の詳細な処理フローは図21に従って後述する。
ステップ2002において、構成変更計画立案情報227の更新時刻でなければ、マネージャ223は、スケジュール情報222を参照し、構成変更計画の実行時刻であるかを確認する(ステップ2003)。
ステップ2003において、実行時刻でない場合は、処理を終了する。実行時刻である場合は、マネージャ223は、構成変更計画立案情報227を参照し、構成変更計画が格納されているか否かを確認する(ステップ2004)。
ステップ2004において、構成変更計画が格納されていない場合は終了する。格納されている場合は、マネージャ223は、その構成変更計画情報227を参照し、構成変更計画に、ストレージサブシステム20内に関するものがあるかを確認する(ステップ2005)。
ステップ2005において、ストレージサブシステム20に関する変更計画が格納されていた場合は、マネージャ223は、構成変更計画実行処理部219に、その変更計画に従い構成変更を実行させ(ステップ2011)、ステップ2006に進む。
ステップ2005において、ストレージサブシステム20に関する変更計画がなかった場合は、マネージャ223は、構成変更計画情報227に、外部ストレージサブシステム21に関するものが格納されているか否かを確認する(ステップ2006)。
ステップ2006において、外部ストレージサブシステムに関する構成変更計画が格納されていない場合は、処理を終了する。格納されている場合は、マネージャ223は、ストレージサブシステム管理装置5をの表示部に外部ストレージサブシステム21に関する構成変更計画があることと、構成変更計画情報227から抽出したその変更計画を表示し、管理者に提示する(ステップ2007)。
サブシステム管理者による前記推奨構成変更の実行指示を受け付けると、マネージャ223は、構成変更計画実行処理部219は、構成変更を実行し(ステップ2021)終了し、指示がなければ、そのまま終了する。
なお、サブシステム管理装置5を介して、構成変更計画を提示された利用者は、その構成変更計画が必要でないものと判断すれば、変更計画のキャンセルをサブシステム管理装置5指示することもできる。
次に、上記のステップ2031において、構成変更計画立案情報227を作成する処理を、以下に説明する。本実施形態では、パリティグループの負荷をモニタし、高負荷のものがあった場合、必要に応じて構成変更計画を立案する。高負荷のパリティグループがストレージサブシステム20のものであった場合は、特許文献2に開示されている方法を用いて立案する。
ここで、高負荷のパリティグループが、外部ストレージサブシステム21のものであった場合、上述のように、性能劣化の要因は、単に同じパリティグループを構成する物理記憶装置へのアクセス衝突によるものだけでなく、イニシエータポート104bの競合、制御プロセッサ100の競合によるものである場合も考えられる。このため、本実施形態では、まず、イニシエータポート104bの競合、制御プロセッサ100の競合によるものかどうか、確認する。そして、これらが要因でない場合、アクセス衝突によるものと判断し、データの再配置を検討する。本実施形態では、データの再配置として、外部ストレージサブシステム21からストレージサブシステム20へデータを移行する案を立案する。また、本実施形態では、イニシエータポートの競合104bや制御プロセッサ100の競合などの場合の対処も、それぞれ、構成変更計画案の1つとしてステップ2031で立案し、実行前に管理者の許可を得る。
ここでは、アクセス衝突以外の要因であるか否かの判断として、スループットなどの稼動情報、キャッシュの格納状態、イニシエータポート、プロセッサの負荷状況等の、ストレージサブシステム20において収集している外部ストレージサブシステム21の状態を示す各種情報をチェックする。
図21は、構成変更計画立案情報227作成時の構成変更計画立案処理部218の処理フローである。
構成変更計画立案処理部218は、スケジュール情報222に従い、物理記憶装置稼動情報225を参照し、I/O処理性能を示す、例えば、総占有時間1310が、予め設定されている閾値よりも大きいものを、高負荷のパリティグループをとして抽出する(ステップ1501)。
構成変更計画立案処理部218は、ステップ1501において抽出したパリティグループがストレージサブシステム20のものか、外部ストレージサブシステム21のものかを、物理記憶装置稼動情報225のP.G.番号1302によって判別する(ステップ1502)。
ステップ1502において、ストレージサブシステム20内のパリティグループと判断された場合、構成変更計画立案処理部218は、特許文献2に開示されている方法などを用い、構成変更計画を立案する(ステップ1521)。
ステップ1502において、外部ストレージサブシステム21内のデバイスと判断された場合、構成変更計画立案処理部218は、当該外部ストレージサブシステム21に対してI/O処理を行うイニシエータポート104bのレスポンス時間およびスループットを、稼動情報229およびポート設定情報228を参照して確認する(ステップ1503)。
ここでは、レスポンス時間を確認するために、稼動情報229の平均IOPS1204とポート設定情報228の目標IOPS1407とを比較し、スループット性能を確認するために、稼動情報229の平均MBPS1206とポート設定情報228の目標MBPS1408とを比較する。
構成変更計画立案処理部218は、平均MBPS1206および平均IOPS1204によって示される性能がともに目標としてポート設定情報228に設定されている値により示される性能を上回る場合、特に問題なしと判断し、処理を終える。
ここで、平均MBPS1206または平均IOPS1204のどちらか一方の値によって示される性能のみが、目標としてポート設定情報228に設定されている値により示される性能を下回っている場合(ステップ1504)、まず、P.G.稼動情報225のシーケンシャル比率1312を確認し、その時に送信されているデータの種別がシーケンシャルデータかランダムデータかを判別する。シーケンシャル比率1312の値が所定の閾値より大きい、すなわち、シーケンシャルデータが送信されている場合は(ステップ1511)、レスポンス時間が大きい、または、スループット性能が悪化していても問題がないものと判断し、処理を終える。
一方、稼動情報225として与えられるレスポンス時間およびスループット性能が、ともに、目標としてポート設定情報228に与えられている性能を下回っている場合(ステップ1504)、または、どちらか一方が下回り、かつ、シーケンシャル比率が所定の閾値より小さい場合(ステップ1511)は、ストレージサブシステム20側にボトルネックがある場合が考えられる。すなわち、ストレージサブシステム20と外部ストレージサブシステム21との間の物理的な接続に問題がある可能性がある。
その場合、構成変更計画立案処理部218は、当該デバイスに関するキャッシュのダーティ量が増加しているか否かを確認する(ステップ1505)。ここでは、キャッシュ管理情報211を参照し、まず、全体のキャッシュ量にダーティ量が占める割合を、クリーンカウンタ1804、ダーティカウンタ1805、フリーカウンタ1806とを用いて算出する。
ここで、ダーティ量が占める割合が所定の値以上の場合、その原因となっている論理記憶装置を抽出する。すなわち、キャッシュ管理情報211に格納されている個々の論理記憶装置毎のダーティカウンタ1805に着目し、大きい値を示す論理記憶装置番号を抽出する。抽出にあたっては、値の大きいものから上位いくつかを抽出してもよいし、予め定められた閾値以上のものを抽出してもよい。
抽出したものの中に、外部ストレージサブシステム21の論理記憶装置があった場合、物理的な接続に関して何らかの問題が発生し、データが送出できない事態が考えられるため、接続状態を確認する(ステップ1512)。接続状態に問題があった場合は、構成変更計画立案処理部218は、その旨を示すアラートを表示し(ステップ1522)、処理を終了する。
ステップ1522において、ダーティ量が所定の割合以下であった場合、ストレージサブシステム20の論理記憶装置が原因でダーティ量が増えていた場合、または、ステップ1523で接続状態に問題がなかった場合は、構成変更計画立案処理部218は、イニシエータポート104bの負荷の状況を確認する(ステップ1506)。
ここで、構成変更計画立案処理部218は、ステップ1501で高負荷パリティグループと判断されたデバイスに対するイニシエータポート104bについて、処理能力の限界であるか否か判別する。すなわち、ポート稼動情報229の平均データ転送量1206および平均レスポンス時間1204とポート設定情報228の目標データ転送量1408および目標レスポンス時間1407とをそれぞれ比較し、平均データ転送量1206が目標データ転送量1408を下回っている場合、または、平均レスポンス時間1204が目標レスポンス時間1407を超えている場合は、高負荷と判断する。
ステップ1506において、イニシエータポート104bが高負荷と判断された場合、構成変更計画立案処理部218は、代替可能な余裕のあるイニシエータポート104bがあるか否か判断する(ステップ1513)。本実施形態では、ポート設定情報228の目標データ転送量1408とポート稼動情報229の平均データ転送量1206とを比較し、上記高負荷と判断されたイニシエータポート104bの負荷分を加えても目標データ転送量1408を超えないイニシエータポート104bがあれば、当該イニシエータポート104bを代替可能なイニシエータポート104bと判断し、抽出する。
そして、代替可能なイニシエータポート104bを使用して外部ストレージサブシステム21とのI/O処理を行うよう構成を変更する案を構成変更計画として作成して構成変更計画立案情報227に格納し(ステップ1523)、処理を終える。
また、ステップ1513で、代替可能なイニシエータポート104bがない場合は、複数のイニシエータポート104bに、前記高負荷と判断されたイニシエータポート104bの負荷分を分散可能か確認する(ステップ1514)。
複数のイニシエータポート104bであって、分散して負荷を負担することが可能なイニシエータポート104bがある場合、それらのイニシエータポート104bを使用して外部ストレージサブシステム21とのI/O処理を行うよう構成を変更する案を構成変更計画として作成して構成変更計画立案情報227に格納し(ステップ1524)、処理を終える。
ステップ1514において、交替可能なイニシエータポート104bがない場合、外部ストレージサブシステム21からストレージサブシステム20へのデータの移動を考えるため、ステップ1508の処理に進む。
ステップ1505において、イニシエータポート104bの負荷が限界でないと判断した場合、構成変更計画立案処理部218は、プロセッサ稼働情報226を参照し、制御プロセッサ100の稼動状態を確認する(ステップ1507)。
ステップ1507において、プロセッサ稼働率が予め定められた閾値と比較して高いと判断した場合は、構成変更計画立案処理部218は、上記のイニシエータポート104bの場合の処理と同様の手順で、プロセッサ稼動情報226の、状態1452がイニシエータである他のプロセッサの中から、代替可能な制御プロセッサ100があるか否か(ステップ1515)、または、複数の制御プロセッサ100によって処理負荷を分担可能か(ステップ1516)を判断する。
代替可能な制御プロセッサ100がある場合、構成変更計画立案処理部218は、当該制御プロセッサ100を使用して外部ストレージサブシステム21とのI/O処理を行うよう構成を変更する案を、構成変更計画として作成して構成変更計画立案情報227に格納し(ステップ1525)、処理を終える。
また、分散可能な複数の制御プロセッサ100がある場合、構成変更計画立案処理部218は、それらの複数の制御プロセッサ100を使用して外部ストレージサブシステム21とのI/O処理を行うよう構成を変更する案を、構成変更計画として作成して構成変更計画立案情報227に格納し(ステップ1526)、処理を終える。
ステップ1516において、交替可能な制御プロセッサ100がない場合、外部ストレージサブシステム21からストレージサブシステム20へのデータの移動を考えるため、ステップ1508の処理に進む。
また、ステップ1507において、制御プロセッサ100の稼動率が予め定めた閾値よりを超えていなかった場合も、同様に、ステップ1508に進む。
ステップ1508において、構成変更計画立案処理部218は、外部ストレージサブシステム21からストレージサブシステム20へのデータの移動を考える。
構成変更計画立案処理部218は、ストレージサブシステム20内に外部ストレージサブシステム21のデータを移行可能なだけの空き容量があるかを判断するため、物理記憶装置稼動情報225および図示しない空き容量管理情報を参照する(ステップ1509)。ここで、空き容量管理情報は、各パリティグループごとの容量および利用率を管理するデータベースである。
ステップ1509において、物理記憶装置稼動情報225と空き容量管理情報とに従って、ストレージサブシステム20内に、外部ストレージサブシステム21パリティグループであって、ステップ1501で高負荷と判断されたパリティグループの容量分の余裕のあるパリティグループがある場合(ステップ1510)、構成変更計画立案処理部218は、ステップ1501で高負荷と判断された外部ストレージサブシステム21のパリティグループを、ステップ1510で余裕があると判断されたストレージサブシステム20のパリティグループに移動する構成変更計画を作成して構成変更計画立案情報227に登録し(ステップ1511)、処理を終了する。
ステップ1510において、移動可能なパリティグループを見つけることができない場合は、外部ストレージサブシステム21へのI/O処理に問題があることをAlert情報としてサブシステム管理装置5へ通知することでユーザに提示し(ステップ1527)、処理を終了する。
以上の処理により、構成変更計画は立案され、構成変更計画立案情報227に格納される。
なお、外部ストレージサブシステム21の論理記憶装置8内にあるデータをディザスタリカバリ用に遠隔地にあるストレージサブシステム20にコピーする場合、ストレージサブシステム20にはあるが外部ストレージサブシステム21には無い機能を用いる場合、または、ストレージサブシステム20から外部ストレージサブシステム21へのI/Oネットワークの帯域が狭くかつ外部ストレージサブシステム21の論理記憶装置へのI/O処理が頻繁である場合などに、外部ストレージサブシステム21からストレージサブシステム20へのデータの移行は、性能改善のために特に有効である。
また、ストレージサブシステム20のディスクキャッシュ108にデータを常駐させると更に性能向上が望める。
なお、上記のステップ1523、1524におけるイニシエータポート104bの変更、および、ステップ12525、1526における制御プロセッサ100の変更は、構成変更計画として提示せず、上記のステップにおいて、処理可能なイニシエータポート104bおよび制御プロセッサ100が確定した時点で、実行するよう構成してもよい。
本実施形態において、上記の性能チューニングにおいては、外部ストレージサブシステム21の属性情報である外部ストレージ記憶装置属性情報220を予め保持していることを前提としている。
外部ストレージサブシステム21の物理記憶装置124の性能がストレージサブシステム20内部の物理記憶装置110と同様には評価できない場合がある。例えば、第二のI/O経路62上を介して行われるストレージサブシステム20からのI/O処理は、外部ストレージサブシステム21の当該論理記憶装置8へのI/O以外に、他の外部ストレージサブシステムの論理記憶装置8に対するI/Oもある。注目する外部ストレージサブシステム21の論理記憶装置8に対するI/O性能は、それらの各処理の干渉によるネットワークへの負荷や、スイッチ130への負荷の影響を受ける。しかし、これらの負荷がどの程度かが把握できない。また、外部ストレージサブシステム21にもディスクキャッシュ108を有する場合もある。外部ストレージサブシステム21内でキャッシュヒットしたか否かはストレージサブシステム20からは把握できない。
このように、不確定な要素があり、ディスクの性能が評価できない場合は、性能改善のための構成変更には、外部ストレージサブシステム21を接続する機能をもつストレージサブシステム20のストレージ管理者による判断があるほうが望ましい。
『ホスト計算機1に透過的にデバイスの移動を行う方法』
次に、ホストに透過的にデバイスの移動を行う方法を、図を用いて説明する。
図22は、第1の論理記憶装置から第2の論理記憶装置にデータをコピーする場合の処理を説明するための図である。
ここでは、構成変更計画立案処理部218において立案された計画が、第1の内部論理記憶装置(LDEV1)2104内のデータを第2の内部論理記憶装置(LDEV2)2105にコピーするものである場合を例にあげ、説明する。
コマンド処理部202は、論理/物理対応情報203を参照して、ホスト計算機1のI/O処理対象である論理アドレスに対応する物理アドレスに対して、キャッシュHit/Miss判定処理部210に、ディスクキャッシュ108のメモリ領域を割り当てさせる。
物理記憶装置I/O処理部215は、ライト処理要求の場合は、割り当てられたメモリ領域のデータを物理記憶装置110に書き込み、リード処理要求の場合は、割り当てられたメモリ領域上に格納されたデータを物理記憶装置110から読み込む。コマンド処理部202は、割り当てられたメモリ領域上に格納されたデータを、リードデータとしてホスト計算機1に転送する。
ここで、ホスト計算機1は、ストレージサブシステム20の、I/Oポートアドレスx、論理記憶装置番号yで識別される論理記憶装置2101に対してI/O処理を行うものとする。
また、ストレージサブシステム20の第1の内部論理記憶装置(LDEV1)2104と第2の内部論理記憶装置(LDEV2)2105とのデータは、それぞれ、第1のパリティグループ(PG1)2108と第2のパリティグループ(PG2)2109とを構成する物理記憶装置110上に格納されているものとする。そして、第1のパリティグループ2108は、第1の内部論理記憶装置2104の他に第3の内部論理記憶装置(LDEV3)2106を備える。また、第2のパリティグループ2109は、第2の内部論理記憶装置2105の他に第4の内部論理記憶装置2107を備える。
ただし、第2内部論理記憶装置(LDEV2)2105はリザーブ状態とし、ホスト計算機1からのデータの入出力対象にはならないようにガードがかけてあるものとする。また、第2の内部論理記憶装置(LDEV2)2105は第1の内部論理記憶装置(LDEV1)2104と同じエミュレーションタイプとする。
構成変更実行処理部219は、第1の内部論理記憶装置(LDEV1)2104内のデータを第2の内部論理記憶装置(LDEV2)2105にコピーする。
このとき、コピー処理中も第1の内部論理記憶装置(LDEV1)2104へのホスト計算機1からのリード/ライト処理要求は受け付ける。例えば、ライト処理要求を受け付けた場合、コマンド処理部202は、第1の内部論理記憶装置2104のライト更新が指示されたデータが、既に第2の内部論理記憶装置2105へコピー済みであるか否か判断する。コピー先にコピーされていなければ、コピー元にそのままライトし、コピー済みであれば、そのつどコピー先にコピーを行う。
ある時刻T1(ステップ2111)において、コピー元の第1の内部論理記憶装置(LDEV1)2104からコピー先の第2の内部論理記憶装置(LDEV2)2105に対するコピー処理が、コマンド処理がキャッシュメモリ108にライト領域を確保して書き込むデータ(しかかり中のライトデータ)、および、ディスクキャッシュ108上にあってまだ物理記憶装置110にライトされていないデータを除いて、すべて終了したら、コマンド処理部202は、その瞬間から第1の内部論理記憶装置2104に対するコマンド処理およびライトデータ受領を、I/Oアダプタ102上のバッファメモリにキューイングして、しかかり中のライトデータおよびキャッシュメモリ108上のデータをコピー先にコピーする。また、構成変更実行処理部219は、論理/物理対応情報203のコピー元の第1の内部論理記憶装置2104とコピー先の第2の内部論理記憶装置2105との物理記憶装置のアドレス対応情報を入れ替える。
時刻T以降のある時刻T2(ステップ2112)では、コマンド処理部202は、キューイングしていたコマンドおよびライトデータの処理を、対応情報が入れ替えられた論理/物理対応情報203を用いて行ない、その応答をホスト計算機1に返す。
これによって、ストレージサブシステム20に対してI/O処理を行うホスト計算機1は、常にI/Oポートアドレスがx、論理記憶装置番号がyで識別される論理記憶装置2101に対してI/O処理を実行することとなる。従って、ホスト計算機1は、データの物理的位置が変更されたにもかかわらず、それを意識せずに、I/O処理を続けることができる。
本実施形態では、上述のように、接続されている外部ストレージサブシステム21も含めて性能チューニングが行なわれる。このため、外部ストレージサブシステム21に対するI/O処理負荷が上昇し、必要な性能が得られなくなった場合に、外部ストレージサブシステム21から内部ストレージサブシステム20へデータを移動するといった構成変更計画が立案されることがある。
この場合も、移動元の外部ストレージサブシステム21の論理記憶装置8を上記の説明における第1の内部論理記憶装置、移動先のストレージサブシステム20の論理記憶装置8を、上記の第2の内部論理記憶装置とし、同様に、コピー処理と論理/物理対応情報203の書き換えによって、ホスト透過的に移動を実現することができる。
以上説明したホスト透過的に移動する際の、構成変更実行処理部219による一連の処理の流れを図23に示す。
LDEV1からLDEV2にデータの移動を行う場合、コピーポインタ(CP)をLDEV1の先頭アドレスに設定する(ステップ2201)。
次に、LDEV1内のデータをアドレスCPからN(Byte)コピーする(ステップ2202)。そして、コピーポインタCPをコピーデータ量分(N(Byte))進める(ステップ2203)。
CPの値とLDEV1の容量を比較して(ステップ2204)、小さければCPに更に次にLDEV1からLDEV2にコピーするデータ量N(Byte)分を足したCP+NとLDEV1の容量を比較して(ステップ2205)、小さければ、次にコピーするデータ量N(Byte)の値を(LDEV1の容量)−CPに設定する(ステップ2206)。
ステップ2202からステップ2206までの流れをステップ2204での評価がNOになるまで行い、LDEV1からLDEV2へのコピー量がLDEV1の容量分実施されたら、次にLDEV1へのライトデータでディスクキャッシュ108上にあって物理記憶措置110に反映されていないものがあるかを確認する(ステップ2207)。
あればLDEV1のあるPG1上のディスクに優先的にデータをライトする(ステップ2210)。
ステップ2210のライト処理終了後、ステップ2207での評価を再度行い、LDEV1へのライトデータでディスクキャッシュ108上にあって物理記憶措置110に反映されていないものがなくなるまで、ステップ2207および2210の処理を繰り返す。
次に、コマンド処理部202がLDEV1に関してディスクキャッシュ108を確保してディスクキャッシュ108に書き込む処理を行っているかを確認し(しかかり中のライト処理)(ステップ2208)、しかかり中のライト処理がある場合、ディスクキャッシュ108へのそのライト処理を行わせ、優先的にLDEV1のあるPG1上のディスクに優先的にデータをライトする(ステップ2211)。
ライト処理終了後、ステップ2208の評価を再度行い、しかかり中のライト処理が無いかを確認し、しかかり中のライト処理がない場合、キューイングしたI/O処理のうち、LDEV1に対するものを、コマンド処理部202による処理を待ち状態にする(ステップ2209)。
その後LDEVとP.G.のアドレスマップを入れ替える(ステップ2212)。すなわち、論理物理対応情報203の、対応情報を入れ替える。
また、ステップ2202から2206までのコピー処理とは独立に、当該コピー処理中またはステップ2209の前までに、ライトデータが新たに処理された場合の処理について、図を用いて、説明する。
図24は、ライトデータが新たに処理された場合の処理フローである。
上記のタイミングでライトデータが新たに処理された場合、LDEV1のライトデータかどうかを評価する(ステップ2221)。
LDEV1のライトデータであれば、ライト処理アドレスを抽出し(ステップ2222)、ライトアドレスとコピーポインタを評価する(ステップ2223)。
ステップ2223において、ライトアドレスがコピーポインタよりも先のアドレスであれば、当該アドレスにデータをライトし(ステップ2224)処理を終了する。
一方、ステップ2223において、ライトアドレスがコピーポインタよりも後のアドレスであれば、LDEV1のアドレスWAにデータをライトするとともに、移動先のLDEV2の該当するアドレスにもデータをライト(ステップ2225)し、処理を終了する。
また、ステップ2221において、LDEV1へのライト処理以外の場合は、当該要求処理を実行して終了する。
以上説明したように、本実施形態によれば、ホスト計算機1から直接アクセスできない外部ストレージサブシステム21を接続したシステムであっても、その外部ストレージサブシステム21を含めて性能チューニングを行なうことができる。
『外部ストレージサブシステム21と第2の外部ストレージサブシステム22との間のデータの移行』
次に、第二のI/O経路9を介してストレージサブシステム20に接続される、外部ストレージサブシステム21と第2の外部ストレージサブシステム22との間でのデータ移行について説明する。
ここで、外部ストレージサブシステム22は、第二のI/O経路62を介してストレージサブシステム20に接続される。また、他の外部ストレージサブシステム21などと同様にサブシステム管理装置5を接続し、そのサブシステム管理装置5を介して、ネットワ ーク7に接続されている。
以下、図25を参照し、外部ストレージサブシステム間での移動の手順を説明する。
構成定義処理217は、第二のI/O経路62を介して、第二のI/O経路62上にある外部ストレージサブシステム22を定義する。この定義方法は、I/O処理に用いるプロトコルによって方法が異なるが、ここでは発明に直接関係しないので詳細は述べない。そして、外部ストレージサブシステム22の論理記憶装置を、I/O処理対象論理記憶装置としてストレージサブシステム20の論理/物理記憶装置対応情報203に登録する。
ここで、外部ストレージサブシステム22のI/Oポートに対し、すでに、ホスト計算機1の識別子によるアクセス制御の設定が行なわれていた場合は、そのアクセス制限を外す。具体的には、外部ストレージサブシステム22に接続されるサブシステム管理装置5を介して、利用者からの指示により、そのアクセス制限を外すか、または、ストレージサブシステム20のI/O処理要求ネットワーク処理部200により、外部ストレージサブシステム22に第二のI/O経路を用いてI/O処理を行うポートの識別子を、アクセス許可対照に設定する。
アクセスの制限を外した後、ストレージサブシステム20のストレージサブシステム制御装置112により、外部ストレージサブシステム22の論理記憶装置をストレージサブシステム20の物理記憶装置として定義し、ストレージサブシステム20の論理記憶装置を定義する。そして、構成定義処理部217により、論理/物理対応情報203を更新/作成する(ステップ2801)。
次に、ダミーデータを用いて外部ストレージサブシステム22のI/O処理の性能を計測する(ステップ2802)。
外部ストレージサブシステム22のI/O処理性能が予め定められた期待値を満たさない場合は(ステップ2803)、ストレージサブシステム制御装置112は、異なる外部ストレージサブシステムを採用するか(ステップ2804)、または、ストレージサブシステム20内の物理記憶装置へデータの移行を行う(ステップ2805)。
外部ストレージサブシステム22に対するI/O処理性能が、予め定められた期待値を満たす場合、または、I/O処理性能に対する期待値が必要ない場合は、外部ストレージサブシステム22に対してのデータの移行を行う(ステップ2806)。
データの移行は、ストレージサブシステム20上で定義された外部ストレージサブシステム21の論理記憶装置を物理記憶装置としてマッピングするストレージサブシステム20の第1の論理記憶装置と、外部ストレージサブシステム22の論理記憶装置を物理記憶装置としてマッピングするストレージサブシステム20の第2の論理記憶装置との間のデータの移行方法と同様の方法で行なう。これは既に図23に示しているので、ここでは、再度説明しない。
『外部ストレージサブシステム21内でのデータの移動』
次に、外部ストレージサブシステム21内でのデータの移動に関して説明する。外部ストレージサブシステム21内でのデータ移動時のストレージサブシステム制御装置112の処理フローを図26に示す。
ストレージサブシステム20がI/O処理対象とする外部ストレージサブシステム21内の第1の論理記憶装置と第2の論理記憶装置との稼動情報は、既に述べたように、ストレージサブシステム20からみたI/O処理性能およびその履歴としてストレージサブシステム20で保持している。
外部ストレージサブシステム21の第1の論理記憶装置に比べ第2の論理記憶装置のレスポンス性能がある時期を境に悪化した場合、何らかの性能問題があると考えられる。このような場合に、ストレージサブシステム制御装置112は、ストレージサブシステム20において外部ストレージサブシステム21の論理記憶装置に対するアクセスパタン(シーケンシャル比率とリードライト比率)を論理記憶装置稼動情報224を参照することにより取得する(ステップ2701)
次に、ストレージサブシステム制御装置112は、論理記憶装置へのI/O処理アドレスと第2の論理記憶装置へのI/O処理アドレスの偏りをI/O対象アドレスの重なり具合から把握する(ステップ2702)。
ここで、第1の論理記憶装置に比べ第2の論理記憶装置へのホスト計算機1のI/O処理のアクセスローカリティが低い場合は、外部ストレージサブシステム21内でのディスクキャッシュ108にI/O対象データが無い場合が多い可能性が高いため、レスポンス性能が悪いと判断する。
さほどI/Oアクセス範囲のローカリティが変わらない場合は、ストレージサブシステム制御部112は、I/O処理のデータ長を見る。データ長が長ければシーケンシャルアクセスなので、キャッシュ上にデータを残さないように外部ストレージサブシステム21側のキャッシュ制御が実行されていると判断し、スループットの値を参照し、予め定めた期待値が出ていれば問題ないと判断する(ステップ2703)。
データ長が短い場合、リードライト比率をみる。そして、第2の論理記憶装置へのI/O処理におけるリード比率が第1の論理記憶装置へのI/O処理のリード比率に比べて高い場合、ストレージサブシステム制御部112は、ディスクキャッシュからではなく物理記憶装置にデータを読みに行っているためにレスポンス性能が悪いと判断し、スループットの値を参照し、予め定めた期待値が出ていれば良いと判断する(ステップ2704)。
第2の論理記憶装置へのリード比率が第1の論理記憶装置へのリード比率以下の場合、ストレージサブシステム制御部112は、第2の論理記憶装置の配置されている物理記憶装置でのアクセスに衝突が起こっている、または、第2の論理記憶装置に何らかの障害が内在しているため外部ストレージサブシステム21内部で物理記憶装置へのアクセスに対してリトライがかかっている、等の理由によりアクセス性能が出ていないと判断し、データを移動するための処理を行う(ステップ2707)。
予め保持する空き領域情報を参照し、ストレージサブシステム制御部112は、外部ストレージサブシステム21内の空き領域を抽出する。例えば、外部ストレージサブシステム21が旧機種で、外部ストレージサブシステム21内のいくつかの論理記憶装置内のデータをストレージサブシステム20の論理記憶装置へ移行していた場合は、ストレージサブシステム20の論理記憶装置へ移行して空きとなっている論理記憶装置を、移行先候補として抽出する(ステップ2708)。
次に、ストレージサブシステム制御部112は、上述の手法を用いて、移行先の論理記憶装置に対してダミーデータを用いてI/O処理を行い、I/O性能を計測する(ステップ2709)。
ステップ2709の計測の結果、ストレージサブシステム制御部112は、I/O性能が所定の基準を満たしている論理記憶装置(第3の論理記憶装置と呼ぶ)を選択し(ステップ2710)、第2の論理記憶装置のデータを第3の論理記憶装置に移行する(ステップ2711)。
移行の方法は様々で、外部ストレージサブシステム21にストレージサブシステム20と同様のホストに透過的に論理記憶装置の移動を行う機能があればそれを使用する。また、外部ストレージサブシステム21にストレージサブシステム20と同様のホストに透過的に論理記憶装置の移動を行う機能が無い場合でも、ミラーを作成する機能があれば、外部ストレージサブシステム21で第2の論理記憶装置と第3の論理記憶装置とでミラーを作成し、第1の論理記憶装置で保持する論理/物理対応情報203のP.G.番号605と汎用ストレージの論理記憶装置を識別する(Portアドレス、論理記憶装置番号)情報614との対応を変更する。
外部ストレージサブシステム21に対して制御が何もできない場合、ストレージサブシステム制御部112は、第2の論理記憶装置と第3の論理記憶装置とに対してデータのリードライト処理を行い、第2の論理記憶措置から作成されていたP.G.上にマッピングされていたLDEVを第3の論理記憶装置から作成されていたP.G.上にマッピングされるように論理/物理対応情報203を変更する(ステップ2711)。
以上、説明してきたように、本実施形態では、外部ストレージサブシステム21のホスト計算機1のI/Oを制御するストレージサブシステム20において、外部ストレージサブシステム21へのI/Oを制御するために外部ストレージサブシステム21のLUをストレージサブシステム20のLUにマッピングしてホスト計算機1に提供し、その構成情報を保持する。また、外部ストレージサブシステム21へのI/O処理に要した時間を計測し、ネットワークの性能や外部ストレージサブシステム21のI/O処理性能を属性情報として保持する。これらの情報を元に、性能チューニングを実行する。
このように、本実施形態では、外部ストレージサブシステム21も含めたストレージサブシステムの、負荷状況に従って、外部ストレージサブシステム21を接続するストレージサブシステム20において、外部ストレージサブシステム21まで含めた性能チューニングを実現している。
本実施形態によれば、外部ストレージサブシステムを複数接続し、その外部ストレージサブシステムに対するホスト計算機からのI/O処理要求を受領して、その外部ストレージサブシステムにI/O処理要求を中継する機能を有するストレージサブシステムにおいて、そのストレージサブシステム自身のリソースの性能管理だけでなく、接続する外部ストレージサブシステムも含めたストレージサブシステムの性能情報を管理し、かつ、管理した性能情報を用いて、ホストに透過的に性能チューニングが可能となる。
『階層管理記憶機能の導入』
次に、外部ストレージサブシステム21を接続する際に、ストレージサブシステム20において、階層記憶管理機能を用いて、データの配置を決める方法を述べる。本処理は、図示しない、再配置計画立案処理部によって行われる。
再配置計画立案処理部は、外部ストレージサブシステム21とホスト計算機1との間の運用状況をホスト計算機1、SAN管理端末9、または、外部ストレージサブシステム21に接続されているストレージサブシステム管理装置5から取得する。
運用状況として取得する情報は、ホスト計算機1と外部ストレージサブシステム21との間のI/Oネットワークの帯域と平均I/O処理数と最大I/O処理数と平均データ転送量と最大データ転送量とシーケンシャル比率とリードライト比率の履歴である。なるべく長期に渡って取得することが望ましい。
再配置計画立案処理部は、取得した情報のI/O処理量から外部ストレージサブシステム21のLUのデータをストレージサブシステム20内の記憶装置に移行するほうが良いか、外部ストレージサブシステム21内に置き、ストレージサブシステム20に接続しストレージサブシステム20のLUとして提供するか、外部ストレージサブシステム21内に置き、従来通りホスト計算機1と直接I/O処理を行うかを決め、ユーザに推奨案を提示する。
ストレージサブシステム20と外部ストレージサブシステム21との間の第二のI/O経路62の構築はホスト計算機1と外部ストレージサブシステム21との間のI/Oネットワークの帯域と同等以上に構築する方が望ましいが、それが何らかの理由、例えば、スイッチとストレージサブシステム20との間の帯域が狭いなどの理由でできない場合でも、最大I/O処理数と最大データ転送量の履歴とからI/Oネットワークが処理できる場合は、外部ストレージサブシステム21内に置いておいてストレージサブシステム20に接続し、ストレージサブシステム20のLUとして提供することを推奨する。
サブシステム管理装置5等を介して、ユーザから推奨案に従う旨の指示を受け付けると、再配置計画立案処理部は、示された推奨案に従ってデータのコピーを行う。
以上により、ストレージサブシステム20に外部ストレージサブシステム21を接続する際に、階層記憶管理機能を使ったデータ配置が完了する。
なお、本実施形態では、ストレージサブシステム20が外部ストレージサブシステム21のI/O処理状況を監視し、レスポンス等により、その性能の変化を解析していたが、外部ストレージサブシステム21の性能の推移の監視方法はこれに限られない。
例えば、ストレージサブシステム20のストレージサブシステム制御装置112が、第二のI/O経路62を介して外部ストレージサブシステム21のI/O稼動情報と構成情報とを取得できる場合、外部ストレージサブシステム21に対して、前記I/O稼動情報と構成情報との取得要求コマンドを送信し、前記I/O稼動情報と構成情報を取得する。
この場合、外部ストレージサブシステム21の論理記憶装置8と物理記憶装置124との 対応情報、論理記憶装置稼動情報、ポート稼動情報などが、ストレージサブシステム単位に論理/物理対応情報203、論理記憶装置稼動情報224、物理記憶装置稼動情報225などとしてストレージサブシステム制御装置112に保持される。
構成変更計画立案処理部218は、上記情報に従い、外部ストレージサブシステム21の性能劣化を判別し、性能チューニングのための構成変更計画を立案する。
<<第二の実施形態>>
次に、第二のI/O経路62を介して、ストレージサブシステム20から外部ストレージサブシステム21へ性能情報解析のためのI/O要求を発行し、外部ストレージサブシステム21の性能情報を取得する技術を、第二の実施形態として説明する。
本実施形態のシステム構成は、基本的に第一の実施形態と同様である。本実施形態のストレージサブシステム20は、第一の実施形態の構成に加え、性能情報解析のためのI/O要求としてダミーデータを生成し、送出するダミーデータ生成送出機能を備える。以下において、第一の実施形態と異なる構成についてのみ、主として説明する。
例えば、特定のデータサイズのデータを連続してある特定のアドレスに対して送信することで、外部ストレージサブシステム21のI/O処理性能が計測できる。
ダミーデータ生成送出機能による外部ストレージサブシステム21のI/O処理性能の予測の手順について説明する。
ダミーデータ生成送出機能で生成されるダミーデータは、特定のデータサイズの1つ以上のデータであり、生成されると、第二のI/O経路62のプロトコルに応じた形式で送出される。
図27に、ダミーデータ生成送出機能によるストレージサブシステム20から外部ストレージサブシステム21へのI/O処理性能の測定時の処理のイメージを示す。また、図28に、ダミーデータ生成送出機能が送出したダミーデータによる性能測定結果3000の一例を示す。
サブシステム管理装置5もしくはSAN管理端末9は、管理者から受け付けた入力に従い、ダミーデータ生成送出機能に対して、外部ストレージサブシステム21のI/Oポートのアドレス、論理記憶装置番号、ダミーデータ長、ダミーデータの目標IOPS、前記論理記憶装置のI/O対象アドレスの偏り、リード処理かライト処理か等を指定して計測指示を出す。ダミーデータ生成送出機能は、上記計測指示に従って、ダミーデータを生成し、指示された外部ストレージサブシステムのI/Oポートに当該データを送出する。
性能測定結果3000は、図28に示すように、送出したダミーデータのサイズごとに、目標IOPSと、ローカリティと、リードライト比率と、実測IOPSと、実測MBPSと、レスポンスと、を備える。
目標IOPSは1秒間に出すI/O処理コマンド数の目標値であり、外部ストレージサブシステム21もしくは第二のI/O経路62が当該目標値を十分に出す処理性能または帯域があれば、ほぼ目標値通りにストレージサブシステム20はコマンドを発行できる。この目標値を上げていくことで、ストレージサブシステム20と第2のストレージサブシステム間のI/O処理性能が分かる。
また、ダミーデータ長を変えることで、ランダムアクセスやシーケンシャルアクセスに対するストレージサブシステム20と外部ストレージサブシステム21との間のI/O処理性能が分かる。
I/O対象アドレスの偏りを指定することで、たとえば偏りが大きければ外部ストレージサブシステム21がディスクキャッシュ108にヒットする確率が高くなるため、キャッシュヒット性能とキャッシュミス性能との違いが、ストレージサブシステム20と外部ストレージサブシステム21との間のI/O処理性能として分かる。
さらに、ある小さな一定のアドレス範囲にI/O処理を行っても、偏りを全くなくしても、処理性能に違いが無ければ、ディスクキャッシュ108が無い、または、その容量がきわめて小さい、などの障害が潜んでいる可能性があると考えられる。
ストレージサブシステム制御装置112は、計測後、計測指示を送信してきた外部ストレージサブシステム21に対し、終了報告を送信する。終了報告を受信すると、ストレージサブシステム管理装置5もしくはSAN管理装置9は、表示部に終了報告を表示させ、管理者からの指示を待つ。計測結果を読み出す指示を受け付けると、これらの装置は、ストレージサブシステム制御装置112から計測結果情報をネットワーク7経由で読み出し、表示部に表示する。管理者は、この表示を見ることにより、第二のI/O経路62を介した外部ストレージサブシステム21へのI/O処理性能を知ることができる。
なお、本ダミーデータ生成送出機能は、稼動中にストレージサブシステム20から外部ストレージサブシステム21のI/O処理性能を得る目的以外に、外部ストレージサブシステム21を接続した情報処理システムの設計時にも用いることができる。設計時には、外部ストレージサブシステム21のI/O処理性能を見積もる必要がある。
新規にストレージサブシステム20を導入するにあたり、導入コストを抑えるため、従来用いていたストレージサブシステムから全てのデータを移行せず、一部を従来のストレージサブシステムに残す場合がある。
このような場合に、残された従来のストレージサブシステムを、上記の実施形態でいう、外部ストレージサブシステム21として情報処理システムを設計する。しかし、この場合、外部ストレージサブシステム21として、ホスト計算機1から、ストレージサブシステム20および第二のI/O経路62を介してアクセスすることになるため、従来からのホスト計算機1とのI/O処理性能は、そのまま採用できない。
そこで、本実施形態では、外部ストレージサブシステム21のI/O処理性能の見積もりを、ストレージサブシステム20から外部ストレージサブシステム21へダミーデータを送出することによって行なう。
例えば、特定のデータサイズのデータを連続してある特定のアドレスに対して送信することで、外部ストレージサブシステム21のI/O処理性能が計測でき、これにより、ストレージサブシステム20を介したホスト計算機1とのI/O処理性能を見積もることができる。
ストレージサブシステム20の上記ダミーデータ生成および送出機能による、外部ストレージサブシステム21の性能を見積もる際の具体的な手順は、以下のとおりである。
ストレージサブシステム20を新規に導入する前に、外部ストレージサブシステム21となるストレージサブシステムとホスト計算機1とのI/O処理性能は予め取得されているものとする。まず、ストレージサブシステム20のストレージサブシステム制御装置112は、第二のI/O経路62を介してアクセス可能な外部ストレージサブシステム21のポートからアクセス可能な論理記憶装置を探し出す。見つけた論理記憶装置に対し、ダミーデータ生成および送出機能は、以下の手順でダミーデータを送出することにより、第二のI/O経路62を介した外部ストレージサブシステム21のI/O処理性能の測定を行う。
外部ストレージサブシステム21のI/O処理性能が、所望の性能を満たしていた場合、ストレージサブシステム制御装置112は、第二のI/O経路62上にある外部ストレージサブシステム21の論理記憶装置をストレージサブシステム20の論理記憶装置として論理/物理対応情報203に定義する。
<<第三の実施形態>>
『データのアクセス頻度に従った性能チューニング』
次に、データへのアクセス頻度に従い、外部ストレージサブシステム21を含めたシステムの性能チューニングを実現する実施形態を第三の実施形態として説明する。以下、本実施形態について、第一の実施形態と異なる構成を主として説明する。
図29に、ストレージサブシステム20がNAS(Network Attached Storage)として機能するI/Fを備える場合のストレージサブシステム20および外部ストレージサブシステム21の機能構成を示す。
NASはネットワークに直結してファイル共有サービスなどをネットワーク・クライアントに提供するストレージ機器であり、ネットワークを介してファイルを共用できる独立したファイルサーバとして機能することを特徴としている。
NASを導入することにより、ファイルサーバと記憶装置とを一台の装置で管理できるため、管理対象が減り、ファイルサーバと記憶装置との2台の装置をそれぞれ別個に管理する場合と比べ、管理コストを低く抑えられるというメリットがある。
本実施形態は、基本的には、第一の実施形態と同様の機能構成を有する。以下に説明されていない構成は、第一の実施形態と基本的に同様である。
さらに、ストレージサブシステム制御装置112は、NASを実現するネットワークファイルシステム制御部2401を備え、ネットワーク7を経由して、ホスト計算機1やホスト計算機1がサービスを行う情報処理システムのクライアント計算機と接続されている。クライアント計算機は、ネットワークファイルシステム制御部2401が提供するNASを介して、ストレージサブシステム20にアクセスできる。
また、ネットワークファイルシステム制御部2401は、ポートやアダプタなどを制御するネットワークファイルI/O処理部2402と、ファイル処理を行うファイルシステム処理部2403と、ファイルの再配置を計画し、実行する再配置処理部2404と、ファイルの管理情報を格納するファイル管理情報2410とを備える。本処理部は、第一の実施形態の構成変更計画立案処理部218と構成変更計画実行処理部219とに代わるものである。
ストレージサブシステム制御装置112は、NASを実現するネットワークファイルシステム制御部2401を持つことにより、後述するように、ファイル単位に、ファイルを作成した日時、最新のアクセス時間、アクセス頻度を管理することが可能となる。
まず、ネットワークファイルシステム制御部2401による、ファイルとそれを格納する記憶装置のアドレスとの管理を、図を用いて説明する。
図30は、ネットワークファイルシステム制御部2401によるファイル管理のイメージ図である。
ネットワークファイルシステム制御部2401は、ストレージサブシステム制御装置112から論理記憶装置もしくは内部論理記憶装置の提供を受け、これらをボリュームとして管理する。
図30に示すように、本実施形態におけるファイルシステムは、論理記憶装置2501をいくつかの区画2502に区切り、ファイルの管理を容易にし、障害の局所化を行うことができるよう構成される。
ネットワークファイルシステム制御部2401は、区画2502に、ブートブロック2503、スーパーブロック2504、シリンダブロック2505、iノードリスト2506、データ領域2507を作成する。
スーパーブロック2504には、区画2502の管理情報が格納され、スーパーブロック2504内にあるファイルはiノードで管理される。
iノードは、iノードリスト2512として保持され、管理される。また、各iノードはiノード番号2511によって指定される。各iノードの内容はディレクトリ情報やファイル情報である。
iノードがディレクトリ情報である場合、本図に示すように、そのディレクトリにあるディレクトリおよびファイルがエントリされ、例えばルートディレクトリ2513にはdirAというディレクトリがエントリされておりdirAのiノード番号は4であることがわかる。
階層的なアクセス方法により、例えば、ディレクトリdirA/subdirB/2514にファイルFileCがあり、そのiノード番号が8であることがわかる。そして、iノード番号8で指定されるFileCのiノードは、そのファイルの所有者2515、所有者のグループ名2516、ファイルの種類2517(例えば、テキストファイル、バイナリファイル等)、最終アクセス時刻2518、最終更新時刻2519、iノード採取更新時刻2520、ファイルのサイズ2521、ディスクのアドレス情報2522、等を保持している。
ディスクのアドレス情報2522として、ファイル2526が格納されているディレクトリ2524とその中の位置2525とを保持する。また、ファイル2526が配置されているディスクとブロックと次の読み出しデータのブロックのアドレスとを保持する。次の読み出しデータのブロックのアドレスは、そのファイルが複数のデータブロッ2527クに分散されて配置されていても読み出せるようにするために保持されているものである。
ネットワークファイルシステム制御部2401は、ファイル管理情報2410に、ファイル管理情報2410を備える。図31に、ファイル管理情報2410の一例を示す。
本図に示すように、ファイル管理情報2410は、各ファイルごとに、それぞれのファイル名2411、インデックス2412、ファイルサイズ2413、ファイルの種類2414、作成時間2415、最終アクセス時間2416、最終更新時間2417、一定時間内のアクセス頻度2418、設定が可能であればファイルの重要度2419などの情報を保持する。
ファイル管理情報2410を用いることにより、再配置処理部2404は、作成日時からの時間経過に応じて、ファイル移動の要否を判断し、必要に応じて性能チューニングを行う。
次に、再配置処理部2404による、アクセス頻度に応じて構成を変更する、本実施形態の一連の処理を図に従って説明する。図32は、再配置処理部2404による処理フローである。
再配置処理部2404は、ファイル管理情報2410を参照し(ステップ2601)、ファイルの最新参照日時2416の項目でソートし(ステップ2602)、最新参照日時が予め定めた時間以上経っているものがあるか否か判断する(ステップ2603)。
ステップ2603において、再配置処理部2404は、予め定めた時間以上経ているものがあれば、該当するファイルを抽出し(ステップ2610)、移動対象ファイルとして管理する。
ステップ2603において、予め定めた時間以上経ているものがなければ、再配置処理部2404は、ファイル管理情報2410を参照頻度でソートし(ステップ2604)、ファイル参照頻度が0のものがあるか判断する(ステップ2605)。
ステップ2605において、ファイル参照頻度0のものがあれば、再配置処理部2404は、該当するファイルを抽出して(ステップ2611)、移動対象ファイルとして管理する。
ステップ2605において、ファイル参照頻度0のものがなければ、再配置処理部2404は、ファイルの参照頻度が予め定めた値未満のものがあるかを判断する(ステップ2606)。
ステップ2606において、所定値未満のものがあれば、再配置処理部2404は、該当するファイルを抽出し(ステップ2607)、抽出したファイルをファイル管理情報2410を作成日時でソートし(ステップ2608)、抽出したファイルに作成日時から予め定めた時間以上たっているファイルがあるかどうか判断する(ステップ2609)。
ステップ2609において、所定時間以上経たファイルがあれば、再配置処理部2404は、該当するファイルを抽出し(ステップ2612)、移動対象ファイルとして管理する。
その後、再配置処理部2404は、外部ストレージサブシステム21の論理記憶装置に、抽出した移動対象全ファイルを移動する(ステップ2613)。移動した後、再配置処理部2404は、iノードを書き換え(ステップ2614)、処理を終了する。
なお、ステップ2606、および、ステップ2809において、条件を満たすファイルがない場合は、処理を終了する。
以上、アクセス頻度に応じて、構成を変更する手順を説明した。
本実施形態によれば、例えば、作成日時から1週間、または、1ヶ月アクセスが無いファイルは外部ストレージサブシステム21の論理記憶装置上にデータ領域を移動し、頻繁にアクセスするファイルはストレージサブシステム20の物理記憶装置110にデータを格納するといった性能チューニングが可能となる。
また、参照頻度2418を直接参照し、この値が予め定めた値より低いファイルを外部ストレージサブシステム21の論理記憶装置に移動し、参照頻度が上がった場合は、ストレージサブシステム20の物理記憶装置110にファイルの格納箇所を移動するといった性能チューニングも可能である。
本実施形態は、ウェブのデータ等のように作成された直後は参照頻度が高く、10日もすると殆ど参照されないといったデータを格納するストレージサブシステムに対し、有効である。
なお、第一の実施形態では、マネージャ223の指示に従い、構成変更計画立案処理部218が立案した変更計画を、利用者に提示し、指示を受け付けてから構成変更計画実行処理部219が実行していた。本実施形態においても、上記の手順において、ステップ2613を実行する前に、利用者に提示し、許可を得るよう構成してもよい。
このように、本実施形態によれば、外部ストレージサブシステムを接続したストレージサブシステムにおいて、性能チューニングを行なうにあたり、各ファイルのアクセス頻度に応じて最適にファイルを配置できる。このため、さらに、ストレージサブシステム全体としての性能を高めることができる。
第一の実施形態および第二の実施形態では負荷を基準に、第三の実施形態では、アクセス頻度を基準に、性能チューニングの要否を判断し、実行している。しかしながら、性能チューニングの判断基準はこれらに限られない。例えば、ストレージサブシステム自体の障害兆候を予め検知して、データの移行を行なうといった性能チューニングも可能である。
例えば、規制によって、企業では、帳簿やメール、患者のカルテや新薬開発におけるデータ等を予め定められた期間保持しなければならない場合がある。しかも、このようなデータは、要求に応じて所定の時間内に提示できる必要がある。従って、このようなデータを扱うシステムはそのような要求を満たす必要がある。
ここで、上記システムが、第一の実施形態と同様に、第一のI/O経路61を介しホスト計算機1とのI/O処理を行い、第二のI/O経路62を介して外部ストレージサブシステム21とI/O処理を行うストレージサブシステムであって、外部ストレージサブシステム21が旧機種でありストレージサブシステム20が新機種である場合を考える。
通常業務のデータはストレージサブシステム20に格納し、前記の規制で保存を義務付けられている帳簿、メール、患者のカルテ、新薬開発におけるデータ等は、外部ストレージサブシステム21に格納すれば、外部ストレージサブシステム21である旧機種内のデータをすべて新機種に移行して廃棄するより資産の有効活用になる可能性がある。しかし、旧機種は新機種に比べ使用時間が長い分装置寿命が早く訪れてしまう可能性が高い。
このような場合、ストレージサブシステム20から、外部ストレージサブシステム21に対し、予め定められた一定の間隔でI/O処理要求を出し、外部ストレージサブシステム21の処理性能を計測することにより、外部ストレージサブシステム21に内在する障害兆候を検出して、他のストレージサブシステムへデータを移行する。
ここで、移行する他のストレージサブシステムはストレージサブシステム20であってもよいし、ストレージサブシステム20でも外部ストレージサブシステム21でもどちらでもない、第3のストレージサブシステムであってもよい。
なお、移行先のストレージサブシステムを、例えば、外部ストレージサブシステム21と同様に、ストレージサブシステム20に比べて旧機種であるもの、または、導入コストが比較的安価なものとすると、さほどアクセス頻度の高くないデータを格納する記憶装置のコストを抑えることができる。
1・・・ホスト計算機、1a・・・ホスト計算機、1n・・・ホスト計算機、20n・・・ストレージサブシステム、20a・・・ストレージサブシステム、21・・・外部ストレージサブシステム、5n・・・サブシステム管理装置、5a・・・サブシステム管理装置、5b・・・サブシステム管理装置、61・・・第一のI/O経路、62・・・第二のI/O経路、7・・・ネットワーク、8・・・論理記憶装置、100・・・制御用プロセッサ、101・・・ローカルメモリ、103・・・ネットワークアダプタ、104a・・・ポート、104b・・・ポート、105・・・ポート、106・・・ディスクアダプタ、107・・・共有メモリ、108・・・ディスクキャッシュ、109・・・内部ネットワーク、110・・・記憶装置、112・・・ストレージサブシステム制御装置、120・・・ストレージサブシステム制御装置、121・・・ポート、122・・・ポート、123・・・I/Oアダプタ、124・・・物理記憶装置、130・・・I/Oネットワークスイッ