(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-22
(45)【発行日】2022-10-03
(54)【発明の名称】ストレージシステム及びその制御方法
(51)【国際特許分類】
G06F 3/06 20060101AFI20220926BHJP
G06F 13/10 20060101ALI20220926BHJP
【FI】
G06F3/06 301Z
G06F3/06 301X
G06F3/06 304F
G06F13/10 340A
(21)【出願番号】P 2020036790
(22)【出願日】2020-03-04
【審査請求日】2020-11-19
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】松上 一樹
(72)【発明者】
【氏名】川口 智大
(72)【発明者】
【氏名】山本 彰
【審査官】田名網 忠雄
(56)【参考文献】
【文献】特開2002-358210(JP,A)
【文献】特開2009-205233(JP,A)
【文献】米国特許出願公開第2017/0046268(US,A1)
【文献】特開2006-127398(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06-3/08
G06F 13/10-13/14
(57)【特許請求の範囲】
【請求項1】
プロセッサとメモリとを有するストレージ制御部と、データを格納する記憶媒体を有するストレージドライブと、を備えたストレージシステムにおいて、
前記ストレージ制御部として、第1のストレージ制御部と、第2のストレージ制御部と、を有しており、
前記第1のストレージ制御部は、前記ストレージドライブに格納されたデータへアクセスするためのデータ管理情報を有しており、
前記第1のストレージ制御部と、前記第2のストレージ制御部とは、ホスト及び前記ストレージドライブに接続されており、
前記第1のストレージ制御部は、前記ストレージドライブに格納されたデータについての前記データ管理情報を、前記第1のストレージ制御部から前記第2のストレージ制御部にコピーし、
前記データ管理情報のコピー開始後に前記ストレージ制御部が前記ホストからライト要求を受けた場合、前記第1のストレージ制御部と、前記第2のストレージ制御部とが、それぞれ、前記ライト要求にかかるライトデータを前記ストレージドライブの
記憶領域に格納する
ことを特徴とするストレージシステム。
【請求項2】
請求項1において、
前記第1のストレージ制御部は、コピー中にライトする場合に、データ管理情報を更新し、
前記第2のストレージ制御部は、コピー中にライトする場合に、データ管理情報に含まれるデータの論理アドレスと物理アドレスとのマッピング情報に対しての更新差分情報を作成する、
ことを特徴とするストレージシステム。
【請求項3】
請求項2において、
前記第1のストレージ制御部は、前記コピー後にライトされたデータに、前記更新後のデータ管理情報を用いてアクセスし、
前記第2のストレージ制御部は、前記コピー後にライトされたデータに、前記コピーされたデータ管理情報と、前記更新差分情報と、を用いて物理アドレスを算出してアクセスする
ことを特徴とするストレージシステム。
【請求項4】
請求項1において、
前記第1のストレージ制御部は、第1のデータフォーマットを用いており、
前記第2のストレージ制御部は、第2のデータフォーマットを用いており、
前記第2のストレージ制御部は、第2のデータフォーマットを用いる前記第2のストレージ制御部が、前記第1のデータフォーマットで前記ストレージドライブに格納されたデータにアクセスできるように、前記第1のストレージ制御部からコピーされたデータ管理情報を変換する
ことを特徴とするストレージシステム。
【請求項5】
請求項4において、
前記コピー開始後は、前記第1のストレージ制御部は前記第1のデータフォーマットを用いてライトデータを格納し、前記第2のストレージ制御部は前記第2のデータフォーマットを用いてライトデータを格納する
ことを特徴とするストレージシステム。
【請求項6】
請求項5において、
前記コピーの開始前は、前記第1のストレージ制御部にホストパスが設定されており、
前記コピーの完了後は、前記第2のストレージ制御部にホストパスを変更し、
前記ホストパスの変更後に、前記第2のストレージ制御部は、前記第1のデータフォーマットにて前記ストレージドライブに格納したデータを、前記第2のデータフォーマットに変換して前記ストレージドライブに格納する
ことを特徴とするストレージシステム。
【請求項7】
請求項6において、
前記第2のストレージ制御部は、前記ホストからリード要求を受けたデータであり前記第1のデータフォーマットで格納されたデータについて、読み出して前記ホストに転送するとともに、前記第2のデータフォーマットに変換して前記ストレージドライブに格納する
ことを特徴とするストレージシステム。
【請求項8】
請求項1において、
前記コピーの開始前は、前記第1のストレージ制御部にホストパスが設定されており、
前記コピーの完了後は、前記第2のストレージ制御部にホストパスを変更する
ことを特徴とするストレージシステム。
【請求項9】
請求項8において、
前記コピーの前に、前記第2のストレージ制御部を増設し、
前記ホストパス変更後に、前記第1のストレージ制御部を減設する
ことを特徴とするストレージシステム。
【請求項10】
プロセッサとメモリとを有するストレージ制御部と、データを格納する記憶媒体を有するストレージドライブと、を備えたストレージシステムにおいて、
前記ストレージ制御部は、前記ストレージドライブに格納されたデータへアクセスするためのデータ管理情報を有しており、
前記ストレージ制御部として、第1のストレージ制御部と、第2のストレージ制御部と、を有しており、
前記第1のストレージ制御部と、前記第2のストレージ制御部とは、ホスト及び前記ストレージドライブに接続されており、
前記第1のストレージ制御部は、第1のデータフォーマットを用いており、
前記第2のストレージ制御部は、第2のデータフォーマットを用いており、
前記第1のストレージ制御部は、前記ストレージドライブに格納されたデータについての前記データ管理情報を、前記第1のストレージ制御部から前記第2のストレージ制御部にコピーし、
前記第2のストレージ制御部は、第2のデータフォーマットを用いる前記第2のストレージ制御部が、前記第1のデータフォーマットで前記ストレージドライブに格納されたデータにアクセスできるように、前記第1のストレージ制御部からコピーされたデータ管理情報を変換する
ことを特徴とするストレージシステム。
【請求項11】
プロセッサとメモリとを有するストレージ制御部と、データを格納する記憶媒体を有するストレージドライブと、を備えたストレージシステムの制御方法において、
前記ストレージ制御部として、第1のストレージ制御部と、第2のストレージ制御部と、を有しており、
前記第1のストレージ制御部は、前記ストレージドライブに格納されたデータへアクセスするためのデータ管理情報を有しており、
前記第1のストレージ制御部と、前記第2のストレージ制御部とは、ホスト及び前記ストレージドライブに接続されており、
前記制御方法は、
前記第1のストレージ制御部が、前記ストレージドライブに格納されたデータについての前記データ管理情報を、前記第1のストレージ制御部から前記第2のストレージ制御部にコピーする手順と、
前記データ管理情報のコピー開始後に前記ストレージ制御部が前記ホストからライト要求を受けた場合、前記第1のストレージ制御部と、前記第2のストレージ制御部とが、それぞれ、前記ライト要求にかかるライトデータを前記ストレージドライブの記憶領域に格納する手順と、を含む
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステムに関する。
【背景技術】
【0002】
ストレージシステムは、一般的に1以上のストレージ装置を備える。1以上のストレージ装置の各々は、一般的に記憶媒体として例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)を備える。ストレージシステムが、SAN(Storage Area Network)又はLAN(Local Area Network)といったネットワーク経由で、1又は複数の上位装置(例えば、ホスト計算機)からアクセスされる。一般的にストレージ装置は、RAID(Redundant Array of Independent (or Inexpensive) Disks)技術に従う高信頼化方法を用いることで信頼性を向上している。
【0003】
ストレージシステムを構成するストレージ装置は、部品の耐久年数の問題から一般に装置寿命が定義され、寿命に応じた周期でリプレースが必要となる。ストレージ装置のリプレースでは、既存のストレージ装置に格納されたデータを交換する新しいストレージ装置に移行している。ストレージ装置間でデータ移行を行う方法として、上位装置からのアクセスを止めない無停止移行(Non-disruptive Migration)技術が普及している。特許文献1には、ホスト計算機とストレージシステム間のアクセスを停止することなく、移行元のストレージ装置と移行先のストレージ装置の間でデータを移行することが出来るデータ移行方式が開示されている。特許文献1によれば、ホスト計算機と移行先のストレージ装置との間でアクセスパスが設定された後、アクセスパスの状態が使用可能に設定される。ホスト計算機と移行先のストレージ装置の間のアクセスパスが使用可能になると、移行元のストレージ装置から移行先のストレージ装置へデータが移行される。しかし、リプレース中の障害に対応できるよう、リプレース中はホストI/Oなどの更新を移行元と移行先の両方に反映させる必要があるため、移行するデータ量が多くなると長時間にわたって性能影響が生じることが問題となる。また、交換するストレージ装置間で同等容量の記憶媒体を必要とするため、移行元に増設等で後から追加して部品寿命が残った記憶媒体を再利用することが出来ない。
【0004】
上記のストレージシステムがストレージ装置それぞれに記憶媒体を有するのに対して、特許文献2には、複数のストレージ装置それぞれが有する記憶媒体に加えて、外部に設けられた1以上の外部記憶媒体に接続されることで構成されたストレージシステムにおいて、ストレージ装置間で外部記憶媒体を共有するデータ格納方式が開示されている。特許文献2によれば、ストレージ装置内に定義された論理ボリュームが別のストレージ装置内の論理ボリュームとペア状態にある構成において、ペア状態の論理ボリュームで管理するそれぞれのデータを外部記憶媒体に単一のデータとして格納する方法が、データ格納領域の割当て情報をストレージ装置間で共有することによって実現される。
【先行技術文献】
【特許文献】
【0005】
【文献】米国特許第8495325号明細書
【文献】特開2009-230742号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
前述した無停止移行技術と、外部記憶媒体をストレージ装置間で共有する技術を組み合わせることで、ストレージ装置を構成するストレージコントローラと記憶媒体それぞれに適した周期でのリプレースを可能とするとともに、ストレージ装置間で移行するデータ量を削減してリプレースに伴う性能影響が生じる時間を短縮することが期待できる。
【0007】
しかし、一般にストレージアレイは2つ以上のストレージコントローラを持ち、ストレージコントローラ間でデータの冗長化を行っている。そのため、交換するストレージ装置が同じハードウェア構成、同じデータ管理形態を有するならば、構成情報及び論物マッピング情報などの移行元の情報を交換するストレージ装置にコピーすることでリプレースが可能である。ただし、これは交換するストレージ装置が同一ハードウェア構成かつ同一データ管理形態であるといった場合に限る。ストレージ装置をリプレースする場合、一般に交換するストレージ装置のハードウェア構成及びデータ管理形態は交換前のものとは異なる。そのため、移行元となるストレージ装置が持つボリュームなどの構成を移行先のストレージ装置のフォーマットに合わせて再度構築する必要がある。
【0008】
また、記憶媒体をストレージ装置間で共有するには、論理アドレスに対応するデータ格納位置を示す物理アドレスの対応情報である論物マッピングを移行先のストレージ装置に伝え、移行先のストレージは受け取った情報を処理可能なフォーマットに変換する必要がある。また、リプレース中、移行元又は移行先に対して上位装置からのI/O又は構成変更が生じると、移行元と移行先の両方へ状態を反映しなければならない。本発明は、ストレージ装置間で無停止移行を実現する方法に関する。
【課題を解決するための手段】
【0009】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、
プロセッサとメモリとを有するストレージ制御部と、データを格納する記憶媒体を有するストレージドライブと、を備えたストレージシステムにおいて、前記ストレージ制御部として、第1のストレージ制御部と、第2のストレージ制御部と、を有しており、前記第1のストレージ制御部は、前記ストレージドライブに格納されたデータへアクセスするためのデータ管理情報を有しており、前記第1のストレージ制御部と、前記第2のストレージ制御部とは、ホスト及び前記ストレージドライブに接続されており、前記第1のストレージ制御部は、前記ストレージドライブに格納されたデータについての前記データ管理情報を、前記第1のストレージ制御部から前記第2のストレージ制御部にコピーし、前記データ管理情報のコピー開始後に前記ストレージ制御部が前記ホストからライト要求を受けた場合、前記第1のストレージ制御部と、前記第2のストレージ制御部とが、それぞれ、前記ライト要求にかかるライトデータを前記ストレージドライブの記憶領域に格納することを特徴とする。
【発明の効果】
【0010】
本発明の一態様によれば、ストレージ間で、外部記憶媒体をストレージ装置間で共有しながら無停止移行が可能となり、ストレージ装置を構成するストレージコントローラと記憶媒体それぞれに適した周期でのリプレースを可能とするとともに、リプレースに伴う性能影響を抑えることができる。前述した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施例1のストレージシステムが実行する、データ管理形態の異なるストレージ装置間のリプレース手順を示す説明図である。
【
図2】本発明の実施例1のストレージ装置の構成を示すブロック図である。
【
図3】本発明の実施例1のストレージ装置が保持するメモリ上のテーブル管理領域及びキャッシュ領域の構成例を示す説明図である。
【
図4】本発明の実施例1のストレージ装置が保持する管理情報配置テーブルの構成例を示す説明図である。
【
図5】本発明の実施例1のストレージ装置が保持する管理情報配置変換テーブルの構成例を示す説明図である。
【
図6】本発明の実施例1のストレージ装置が保持する管理情報変換テーブルの構成例を示す説明図である。
【
図7】本発明の実施例1のストレージ装置が保持する論物変換テーブルの構成例を示す説明図である。
【
図8】本発明の実施例1のストレージ装置が保持する論理ボリューム管理テーブルの構成例を示す説明図である。
【
図9】本発明の実施例1のストレージ装置が保持するキャッシュ管理テーブルの構成例を示す説明図である。
【
図10】本発明の実施例1のストレージ装置が保持するプール割り当て管理テーブルの構成例を示す説明図である。
【
図11】本発明の実施例1のストレージ装置が保持するドライブ割り当て管理テーブルの構成例を示す説明図である。
【
図12】本発明の実施例1のストレージ装置が保持する階層論物変換テーブルの構成例を示す説明図である。
【
図13】本発明の実施例1のストレージ装置が保持するのリプレース進捗管理ポインタテーブルの構成例を示す説明図である。
【
図14】本発明の実施例1のストレージ装置によって管理される論理記憶階層の構成例を示す説明図である。
【
図15】本発明の実施例1のストレージシステムにおいて、ストレージ装置からストレージ装置へ、リプレース処理を行う場合の移行元ストレージコントローラのリプレース処理を示すフローチャートである。
【
図16】本発明の実施例1のストレージシステムにおいて、ストレージ装置からストレージ装置へ、リプレース処理を行う場合の移行先ストレージコントローラのリプレース処理を示すフローチャートである。
【
図17】本発明の実施例1のストレージシステムにおいて、ストレージ装置に対するホスト計算機からのリードI/O処理を示すフローチャートである。
【
図18】本発明の実施例1のストレージシステムにおいて、ストレージ装置に対するホスト計算機からのライトI/O処理を示すフローチャートである。
【
図19】本発明の実施例1のストレージシステムにおいて、ストレージ装置に対するホスト計算機からのリードI/O処理を示すフローチャートである。
【
図20】本発明の実施例1のストレージシステムにおいて、ストレージ装置に対するホスト計算機からのライトI/O処理を示すフローチャートである。
【
図21】本発明の実施例2のストレージシステムが実行する、データ管理形態の異なるストレージ装置間のリプレース手順を示す説明図である。
【
図22】本発明の実施例3のストレージシステムが実行する、データ管理形態の異なるストレージ装置間のリプレース手順を示す説明図である。
【発明を実施するための形態】
【0012】
以下、図面に基づいて、本発明の実施例を説明する。添付図面では、機能的に同じ要素を同じ番号で表示する場合がある。添付図面は、本発明の原理に則った具体的な実施形態と実施例とを示している。それらの実施形態及び実施例は、本発明の理解のためのものであり、本発明を限定的に解釈するために用いてはならない。
【0013】
さらに、本発明の実施形態は、後述するように、汎用コンピュータ上で稼動するソフトウェアで実装してもよいし、専用ハードウェアで実装してもよいし、又はソフトウェアとハードウェアの組み合わせで実装してもよい。
【0014】
以下では「プログラム」を主語(動作主体)として本発明の実施形態における各処理について説明を行う場合がある。プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを主語とした説明としてもよい。プログラムの一部又は全ては専用ハードウェアで実現してもよく、また、モジュール化されていてもよい。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【0015】
以下の説明では、「インターフェース部」は、ユーザインターフェース部と、通信インターフェース部とのうちの少なくとも1つを含んでよい。ユーザインターフェース部は、1以上のI/Oデバイス(例えば入力デバイス(例えばキーボード及びポインティングデバイス)と出力デバイス(例えば表示デバイス))と表示用計算機とのうちの少なくとも1つのI/Oデバイスを含んでよい。通信インターフェース部は、1以上の通信インターフェースデバイスを含んでよい。1以上の通信インターフェースデバイスは、1以上の同種の通信インターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
【0016】
また、以下の説明では、「メモリ部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。メモリ部は、主に、プロセッサ部による処理の際に使用される。
【0017】
また、以下の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的にはCPU(Central Processing Unit)である。
【0018】
また、以下の説明では、「xxxテーブル」といった表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と言うことができる。また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
【0019】
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号(又は要素のID(例えば識別番号)を使用することがある。例えば、複数のストレージコントローラを区別しない場合には、「ストレージコントローラ22」と記載し、各ストレージコントローラを区別する場合には、「ストレージコントローラ1_22A」、「ストレージコントローラ2_22B」のように記載する。他の要素(例えばキャッシュ領域203、バッファ領域202、アドレス1100等)も同様である。
【0020】
また、以下の説明では、「ストレージシステム」は、1以上のストレージ装置を含む。少なくとも1つのストレージ装置は、汎用的な物理計算機であってもよい。また、少なくとも1つのストレージ装置が、仮想的なストレージ装置であってもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)又はSDDC(Software-defined Datacenter)を採用することができる。
【0021】
以下、本発明の実施例を図面に基づいて説明する。
【実施例1】
【0022】
以下、本発明の実施例1を説明する。
【0023】
<データ管理形態の異なるストレージ装置間のリプレース手順>
図1は、本発明の実施例1のストレージシステム100が実行する、データ管理形態の異なるストレージ装置間のリプレース手順を示す説明図である。
【0024】
ストレージシステム100は、ホスト計算機30及びストレージ装置11、ドライブ29によって構成される。ホスト計算機30は、ネットワーク31を介してストレージ装置11に接続され、管理計算機(図示せず)によって管理される。ストレージ装置11は、内部に2つ以上のストレージコントローラ22を有し、ストレージコントローラ22は内部に1つ以上のメモリ25を有する。メモリ25は複数の論理的な記憶領域を持つ1つ以上の論理ユニットに関する共有管理情報X2222Xを記録しており、ホスト計算機30に論理ユニットを提供している。共有管理情報X2222Xは、後述のセキュリティ設定情報、バックアップ制御情報、課金情報、論物変換テーブル、階層論物変換テーブルを含んでいる。ホスト計算機30は、物理的な計算機でもよいし、物理的な計算機で実行される仮想的な計算機でもよい。ホスト計算機30は、ストレージシステム100において実行される仮想的な計算機でもよい。また、ホスト計算機30を、ストレージシステムに含まず外部システムとする場合もある。
【0025】
本実施例では、ストレージシステム100において、ストレージ装置11Aからストレージ装置11Bへ、論理ユニットに関する共有管理情報X2222Xを移行する場合について示す。
【0026】
具体例は、下記に示す通りである。
【0027】
(S1)ストレージシステム100において、移行先となるストレージ装置11Bを、ネットワーク31を介して移行元であるストレージコントローラ1_22A、ホスト計算機30、及びドライブ29に接続する。なお、接続した時点では各接続パスは有効化しない。
【0028】
(S2)ストレージコントローラ1_22A及びストレージコントローラ2_22Bは、お互いに接続したことをストレージI/F28を通じて確認し、両ストレージコントローラ22へ対して管理計算機からストレージコントローラ22間及びドライブ29へのパスを有効化すると共に、移行対象となる論理ユニットを指定することで、ストレージコントローラ22間で論理ユニットの管理情報である共有管理情報X2222Xを転送する。転送の際、ストレージコントローラ1_22Aからストレージコントローラ2_22Bに転送された共有管理情報X2222Xは、ストレージコントローラ2_22Bのプロセッサ24を介して共有管理情報Y2222Yへと変換されてメモリ25へ記録される。なお、構成変更又はホスト計算機30からのホストI/Oによって共有管理情報X2222Xに変更が生じた場合、変更差分に先述の変換を行った上でストレージコントローラ2_22Bの共有管理情報Y2222Yに反映する必要がある。
【0029】
(S3)リプレースにかかるデータに加え、リプレース中のホストI/Oで書き込まれたデータは、障害などでリプレースが中断されることを想定して、移行元と移行先の両方から参照可能である必要がある。ストレージコントローラ1_22Aは、ホスト計算機30からのホストI/Oによって書き込まれたデータをメモリ25内にキャッシュ情報Aとして一時的に格納している。キャッシュ情報Aをストレージコントローラ2_22Bから参照するには、ストレージコントローラ1_22Aのメモリ25に格納された全てのキャッシュ情報Aの割当て情報をストレージコントローラ2_22Bが共有する必要がある。実施例1ではキャッシュ情報AをホストI/Oと同期してドライブ29に格納することによって、キャッシュ情報Aを共有することなくストレージコントローラ1_22Aとストレージコントローラ2_22Bの両方からドライブ29内で参照可能としている。
【0030】
(S4)ストレージコントローラ2_22Bに共有管理情報Y2222Yが記録されることで、ストレージコントローラ2_22Bがホスト計算機30から論理ユニットに対するホストI/Oを受けることが出来るようになる。そこで、ネットワーク31を介して接続されているホスト計算機30へのパスを有効化して、ホストI/Oのターゲットをストレージコントローラ2_22Bに切り替える。なお、共有管理情報Y2222Yの記録が完了している場合、ホストI/Oによって書き込まれたデータをストレージコントローラ1_22Aがドライブ29に格納する処理を、ストレージコントローラ1_22A及びストレージコントローラ2_22Bのそれぞれのキャッシュ情報A及びキャッシュ情報Bとして冗長化し、ドライブ29への書き込みをホストI/Oと非同期で行う処理に切り替えることでレスポンス性能が向上する。
【0031】
(S5)ホストI/Oのターゲットがストレージコントローラ1_22Aから切り替わった後、共有管理情報X2222X及びキャッシュ情報Aにストレージコントローラ2_22Bやドライブ29に未反映の差分が無いか確認する。差分が無いことを確認した後、論理ユニットに関する管理情報である共有管理情報X2222X及びキャッシュ情報Aを削除する。これによって、ストレージコントローラ1_22Aからストレージコントローラ2_22Bへの論理ユニットの移行が完了する。ストレージコントローラ22の増設及び論理ユニットの移動は(S5)までの手順で実現できる。
【0032】
(S6)移行元のストレージコントローラ1_22Aをストレージシステム100から減設し、ストレージコントローラ1_22Aからストレージコントローラ2_22Bへのリプレースが完了する。
【0033】
なお、移行元のストレージ装置11A及び移行先のストレージ装置11Bは、それぞれ、複数のストレージコントローラ22を有してもよい。以下の説明において、例えば移行元のストレージ装置11Aに含まれる複数のストレージコントローラ1_22Aをそれぞれストレージコントローラ1_22A1及びストレージコントローラ1_22A2のように記載する場合がある。この場合、それらの複数のストレージコントローラ22のメモリ25においてキャッシュ情報の二重化が行われてもよい。また、例えば移行元のストレージコントローラ1_22A1のプロセッサ24をプロセッサ24A1のように記載する場合がある(
図18参照)。
【0034】
<ストレージ装置>
図2は、本発明の実施例1のストレージ装置11の構成を示すブロック図である。
【0035】
ストレージ装置11は、1以上のストレージコントローラ22と、1以上のストレージコントローラ22に接続された種々のドライブ29とを有する。
【0036】
ストレージコントローラ22は、ホスト計算機30との通信を行うFE_I/F(フロントエンドインターフェースデバイス)23、ストレージ装置間での通信を行うためのストレージI/F(ストレージインターフェースデバイス)28、装置全体を制御するプロセッサ24、プロセッサ24で使用されるプログラム及び情報を格納するメモリ25、ドライブ29との通信を行うBE_I/F(バックエンドインターフェースデバイス)27、及びそれらをつなぐ内部ネットワーク26を備える。
【0037】
メモリ25は、プログラムを管理するプログラム領域201、データの転送及びコピーの時の一時的な保存領域であるバッファ領域202、ホスト計算機30からのライトデータ(ライト命令に応答して書き込まれるデータ)及びドライブ29からのリードデータ(リード命令に応答して読み出されたデータ)を一時的に格納するキャッシュ領域203、及び、種々のテーブルを格納するテーブル管理領域206を有する。
【0038】
ドライブ29は、不揮発性のデータ記憶媒体を有する装置であり、性能の異なる複数種類のドライブを含んでもよい。ドライブ29は、例えば、FC(Fibre Channel)、NVMe(Non-Volatile Memory Express)、SAS(Serial Attached SCSI)、SATA(Serial Advanced Technology Attachment)などのインターフェースを持つハードディスクドライブ、又は、I/Oスループット性能及びI/Oレスポンス性能がハードディスクドライブより高いSSD(Solid State Drive)などによって構成される。
【0039】
SSDは、複数のフラッシュメモリと、それらを制御するSSDコントローラとを有する半導体記憶媒体であり、その外観形状等はフォームファクタに限定されない。また、フラッシュメモリには、NOR又はNAND等の不揮発性の半導体メモリを使用してよい。また、フラッシュメモリに代えて、磁気抵抗メモリであるMRAM(Magnetoresistive random access memory)、抵抗変化型メモリであるReRAM(Resistance random access memory)、又は強誘電体メモリであるFeRAM(Ferroelectric random access memory)等の各種半導体メモリを使用してもよい。
【0040】
FE_I/F23、BE_I/F27及びストレージI/F28が、インターフェース部の一例である。メモリ25が、メモリ部の一例である。プロセッサ24が、プロセッサ部の一例である。
【0041】
なお、
図2には移行元と移行先に共通する構成を示したが、例えば
図1のように移行元をストレージコントローラ1_22A、移行先をストレージコントローラ2_22Bのように記載する場合、それらに属する構成要素を同様に「A」「B」等によって区別する場合がある。例えば、移行元ストレージコントローラ1_22Aのキャッシュ領域203をキャッシュ領域203A、移行先ストレージコントローラ2_22Bのキャッシュ領域203をキャッシュ領域203Bのように記載する場合がある(
図21、
図22参照)。
【0042】
<メモリ>
図3は、本発明の実施例1のストレージ装置11が保持するメモリ25上のテーブル管理領域206及びキャッシュ領域203の構成例を示す説明図である。
【0043】
メモリ25上のキャッシュ領域203は、ホスト計算機30からのライトデータを一時的に格納するデータ格納領域204及びデータの格納位置を管理する階層論物(論理-物理)変換テーブル205を有する。テーブル管理領域206は、管理情報のメモリ情報配置を管理する管理情報配置テーブル207、移行先での管理情報配置の変換のための管理情報配置変換テーブル208、管理情報の変換のための管理情報変換テーブル209、論理アドレスに対する物理アドレスを管理する論物変換テーブル210、論理ボリューム(VOL)に関する情報を保持する論理ボリューム管理テーブル211、メモリ25上のキャッシュ情報を管理するキャッシュ管理テーブル212、プールに関する情報を保持するプール割り当て管理テーブル213、ドライブ割当てに関する情報を保持するドライブ割り当て管理テーブル214、及び、リプレースにおける管理情報の移行の進捗を管理するリプレース進捗管理ポインタテーブル215を格納する。
【0044】
<管理情報配置テーブル>
図4は、本発明の実施例1のストレージ装置11が保持する管理情報配置テーブル207の構成例を示す説明図である。
【0045】
管理情報配置テーブル207は、管理情報の種別毎にエントリを有する。各エントリは、管理情報名41、論理メモリID42、論理アドレス43、及びサイズ44といった情報を格納する。以下、1つの管理情報(
図4の説明において「対象管理情報」)を例に取って説明する。
【0046】
管理情報名41は、ストレージ装置11の管理状態に関する情報の名前を示す。ストレージ装置11の管理状態に関する情報とは、上記の管理情報(例えば
図1に示した共有管理情報X2222X)を構成するものであり、例えば、対象のストレージ装置11で管理されるデータのセキュリティ設定に関するセキュリティ設定情報、対象のストレージ装置11で管理されるデータのバックアップの制御に関するバックアップ制御情報、対象のストレージ装置11で管理可能なデータ実効容量の契約状態に関する課金情報、及びデータの格納位置を管理する論物変換情報等を含んでもよい。論物変換情報については後述する(
図7の論物変換テーブル210及び
図12の階層論物変換テーブル205参照)。論理メモリID42は、管理情報が記録されたメモリ25のIDを示す。論理アドレス43及びサイズ44は、管理情報がメモリ25のアドレスにどれだけの大きさで記録されているかを示す。
【0047】
<管理情報配置変換テーブル>
図5は、本発明の実施例1のストレージ装置11が保持する管理情報配置変換テーブル208の構成例を示す説明図である。
【0048】
管理情報配置変換テーブル208は、移行元ストレージコントローラ1_22Aと移行先ストレージコントローラ2_22Bの管理情報がメモリ25上のどこに対応して格納されているかに関して、格納位置の変換情報を有する。管理情報配置変換テーブル208は、管理情報の種別毎にエントリを有する。各エントリは、移行元の管理情報に関する論理メモリID(A)51、論理アドレス(A)52、サイズ(A)53と、移行先の管理情報に関する論理メモリID(B)54、論理アドレス(B)55、サイズ(B)56といった情報を格納する。
【0049】
<管理情報変換テーブル>
図6は、本発明の実施例1のストレージ装置11が保持する管理情報変換テーブル209の構成例を示す説明図である。
【0050】
管理情報変換テーブル209は、移行元ストレージコントローラ1_22Aと移行先ストレージコントローラ2_22Bとの管理情報の対応についての情報を有する。
【0051】
管理情報変換テーブル209は、管理情報の種別毎にエントリを有する。各エントリは、移行元の管理情報に対する移行先の管理情報の対応関係について、移行元の情報としてエントリサイズ(A)62、エントリ情報(A)63、移行先の変換後情報としてエントリサイズ(B)64、エントリ情報(B)65といった情報を格納する。
【0052】
プロセッサ24は、エントリ情報(A)63をエントリ情報(B)65に変換することによって、移行元ストレージコントローラ1_22Aと移行先ストレージコントローラ2_22Bとの間で管理情報を共有する。
【0053】
<論物変換テーブル>
図7は、本発明の実施例1のストレージ装置11が保持する論物変換テーブル210の構成例を示す説明図である。
【0054】
論物変換テーブル210は、ホスト計算機30が指定するアドレスに対応する論理メモリID71及び論理アドレス72と、論理アドレス72に対して書き込まれたデータの物理的な格納位置を示すストレージID73、物理メモリID74及び物理アドレス75との対応を管理する。
【0055】
<論理ボリューム管理テーブル>
図8は、本発明の実施例1のストレージ装置11が保持する論理ボリューム管理テーブル211の構成例を示す説明図である。
【0056】
論理ボリューム管理テーブル211は、論理ユニットに対応する論理ボリュームID81、論理ボリュームに割り当て可能なキャッシュ割当て量82、論理ボリュームの論理的な格納位置を示す論理ボリュームアドレス83、論理ボリュームに対応する移行元ストレージコントローラ1_22Aのキャッシュを識別するキャッシュID(A)84、論理ボリュームに対応する移行先ストレージコントローラ2_22Bのキャッシュを識別するキャッシュID(B)85、及び論理ボリュームが格納される物理的なドライブを識別するドライブID86、及び、そのドライブ上で論理ボリュームが格納される領域のアドレスを示すドライブアドレス87を管理する。
【0057】
<キャッシュ管理テーブル>
図9は、本発明の実施例1のストレージ装置11が保持するキャッシュ管理テーブル212の構成例を示す説明図である。
【0058】
キャッシュ管理テーブル212は、キャッシュ上にデータを一時的に格納するための管理テーブルであり、キャッシュを識別するキャッシュID91、キャッシュしたデータを格納する物理メモリを識別する物理メモリID92、そのメモリ上の領域を示す物理アドレス93、使用中フラグ94、その領域の使用開始時刻95、最終アクセス時刻96、ドライブへの書き込み有無を示すダーティデータフラグ97、及び、その領域のキャッシュヒット回数98などを管理する。
【0059】
<プール割り当て管理テーブル>
図10は、本発明の実施例1のストレージ装置11が保持するプール割り当て管理テーブル213の構成例を示す説明図である。
【0060】
プール割り当て管理テーブル213は、論理ボリュームを識別するVOL_ID101、論理ボリュームの属性を示すVOL属性102、論理ボリュームの容量を示すVOL容量103、論理ボリュームに割り当てられたプールを識別するプールID104、及び、プールに割り当てられたRAIDグループを識別するRAIDグループID105などを管理する。
【0061】
<ドライブ割り当て管理テーブル>
図11は、本発明の実施例1のストレージ装置11が保持するドライブ割り当て管理テーブル214の構成例を示す説明図である。
【0062】
ドライブ割り当て管理テーブル214は、RAIDグループ毎にエントリを有する。各エントリは、RAIDグループID111、RAIDレベル112、ドライブID113、ドライブ種別114、容量115及び使用容量116といった情報を格納する。
【0063】
RAIDグループID111は、RAIDグループを識別するIDである。RAIDレベル112は、RAIDグループに適用されるRAIDアルゴリズムの種別を示す。ドライブID113は、RAIDグループを構成する1以上のドライブの各々を識別するIDである。ドライブ種別114は、RAIDグループを構成するドライブの種別(例えばHDDかSSDか)を示す。容量115は、RAIDグループの容量を示す。使用容量116は、RAIDグループの容量のうちの使用されている容量を示す。
【0064】
<階層論物変換テーブル>
図12は、本発明の実施例1のストレージ装置11が保持する階層論物変換テーブル205の構成例を示す説明図である。
【0065】
階層論物変換テーブル205は、論物変換テーブル210と機能的には同じ役割を持つ。テーブル管理領域206に格納される論物変換テーブル210に対し、テーブル自体の情報を容量の大きいキャッシュ領域又はドライブ上に格納できることから、大きなテーブルを管理することが出来るという特徴を持つ。実施例1では圧縮有効なVOLの論物マッピング情報を管理する。
【0066】
具体的には、階層論物変換テーブル205は、論理メモリID121、論理アドレス122、差分ビット123、物理メモリID124、物理アドレス125及びサイズ126を管理する。これらのうち、論理メモリID121、論理アドレス122、物理メモリID124及び物理アドレス125は、それぞれ、論物変換テーブル210の論理メモリID71、論理アドレス72、物理メモリID74及び物理アドレス75と同様である。
【0067】
差分ビット123は、ストレージコントローラ2_22Bに対するライトI/Oによってデータが更新されたことを示すフラグに利用されるビットである。サイズ126は、物理メモリID74及び物理アドレス75によって特定される領域に書きこまれるデータのサイズ(例えばそのデータが圧縮されている場合には圧縮後の実際のサイズ)を示す。
【0068】
<リプレース進捗管理ポインタテーブル>
図13は、本発明の実施例1のストレージ装置11が保持するのリプレース進捗管理ポインタテーブル215の構成例を示す説明図である。
【0069】
リプレース進捗管理ポインタテーブル215は、リプレースにおいてストレージコントローラ22間で移行する管理情報について、移行の進捗を管理する。進捗情報として、管理情報名151、管理情報の論理アドレス先頭152、サイズ153、及び進捗ポインタ154といった情報を管理する。これらの情報は、管理情報名151によって識別される管理情報ごとに、論理アドレス先頭152及びサイズ153によって特定される範囲の情報のうち、進捗ポインタ154が示すアドレスまでの範囲の情報の移行が終了したことを示している。
【0070】
リプレース処理では移行元と移行先それぞれがリプレース進捗管理ポインタテーブル215を管理し、その進捗に応じて処理を切り替える。
【0071】
<論理記憶階層>
図14は、本発明の実施例1のストレージ装置11によって管理される論理記憶階層の構成例を示す説明図である。
【0072】
VOL1000は、ホスト計算機30に提供される。なお、VOL1000からプール1001への割当ては、プール割り当て管理テーブル213を基に管理される。また、プール1001からドライブアドレス空間1003(すなわちRAIDグループ1002を構成する複数のドライブ29が提供する複数のドライブアドレス空間)への割当ては、ドライブ割り当て管理テーブル214を基に管理される。
【0073】
コピー処理又は重複排除処理によって、VOL_1000内の複数の論理データの管理単位(スロット)から1つのプールアドレスを指すことがあり、複数のVOLのスロットから一つのプールアドレスを指すこともある。また、格納されるデータは圧縮処理によって圧縮率に応じたサイズに縮小されることがあり、
図14の例では圧縮後のデータを追記する追記領域1202-2を示す。これらVOL1000内の記憶領域1201とPool1001内の記憶領域1202-1および追記領域1202-2との対応は、論物変換テーブル210又は階層論物変換テーブル205を基に管理される。
【0074】
以下、本実施例で行われる処理の例を説明する。
【0075】
<リプレース処理(移行元)>
図15は、本発明の実施例1のストレージシステム100において、ストレージ装置11Aからストレージ装置11Bへ、リプレース処理を行う場合の移行元ストレージコントローラ1_22Aのリプレース処理を示すフローチャートである。
【0076】
リプレース処理の一連の流れをS1501~S1511に示す。
【0077】
ここでは、
図1に示すように、ストレージコントローラ1_22Aをストレージコントローラ2_22Bにリプレースする場合、すなわち、ストレージコントローラ1_22Aが移行元、ストレージコントローラ2_22Bが移行先である場合について説明する。
図16~
図20も同様である。
【0078】
図15の処理は、移行元ストレージコントローラ1_22Aのプロセッサ24によって実行される。ユーザからのリプレースの指示を受信したら、S1501において、プロセッサ24は、リプレース先のストレージコントローラ22(すなわち移行先ストレージコントローラ2_22B)が接続されているかを判定する。例えば、
図1のS1に示すように、移行先ストレージコントローラ2_22Bを含むストレージ装置11Bが、ネットワーク31を介して移行元であるストレージコントローラ1_22A、ホスト計算機30、及びドライブ29に接続されていれば、S1501においてリプレース先のストレージコントローラ2_22Bが接続されていると判定され、処理はS1502に進む。
【0079】
プロセッサ24は、S1502において論理ユニットを選択し、S1503において選択した論理ユニットにかかる共有管理情報X2222Xを、移行先ストレージコントローラ2_22Bにコピーするための移行を開始する。
【0080】
S1504において、プロセッサ24は、ストレージコントローラ1_22Aが保持しているリプレース進捗管理ポインタテーブル215の進捗ポインタ154を参照して、移行対象の有無を判定する。例えば、進捗ポインタ154に基づいて、いずれかの管理情報の転送が終了していない場合に、S1504において移行対象ありと判定され、処理はS1505に進む。
【0081】
S1505において、プロセッサ24は、移行対象のエントリを選択する。例えば、論物変換テーブル210の移行が終了していない場合、プロセッサ24は、論物変換テーブル210に対応する進捗ポインタ154を参照して、まだ移行していない論理アドレスの値を特定し、その値を論理アドレス72として有する論物変換テーブル210のエントリを移行対象として選択してもよい。
【0082】
S1506において、プロセッサ24は、移行対象として選択したエントリを移行先ストレージコントローラ2_22Bに転送する。そして、S1507において、プロセッサ24は、上記の転送が反映されるように、進捗ポインタ154を更新する。その後、処理はS1504に戻る。
【0083】
全ての管理情報(例えば共有管理情報X2222Xの全て)の転送が終了した場合、S1504において移行対象なしと判定され、処理はS1508に進む。S1508において、プロセッサ24は、移行先の状態を判定する。例えば、移行先ストレージコントローラ2_22Bは、S1506で転送されたエントリに基づく情報更新に失敗した場合に処理エラーを通知する(
図16参照)。ストレージコントローラ1_22Aのプロセッサ24は、このような処理エラーを受信した場合に、移行失敗と判定し、受信しなかった場合に移行完了と判定してもよい。
【0084】
S1508において移行完了と判定された場合、プロセッサ24は、S1509において移行完了通知を移行先ストレージコントローラ2_22Bに送信して、S1510において移行元ストレージコントローラ1_22AのFE_I/F23Aを無効化(ホストパス無効化)する。
【0085】
S1501においてリプレース先のストレージコントローラ2_22Bが接続されていないと判定されたか、又は、S1508において移行失敗と判定された場合、プロセッサ24は、S1511において処理エラー通知を移行先ストレージコントローラ2_22Bに送信して、処理を終了する。
【0086】
<リプレース処理(移行先)>
図16は、本発明の実施例1のストレージシステム100において、ストレージ装置11Aからストレージ装置11Bへ、リプレース処理を行う場合の移行先ストレージコントローラ
2_22Bのリプレース処理を示すフローチャートである。
【0087】
リプレース処理の一連の流れをS1601~S1611に示す。
【0088】
図16の処理は、移行先ストレージコントローラ2_22Bのプロセッサ24によって実行される。S1601において、ストレージコントローラ2_22Bのプロセッサ24は、リプレース元のストレージコントローラ22(本実施例では移行元ストレージコントローラ1_22A)が接続されているかを判定する。移行元ストレージコントローラ1_22Aが接続されていると判定された場合、処理はS1602に進む。
【0089】
S1602において、プロセッサ24は、移行対象の論理ユニットにかかる共有管理情報を受領する。これは、移行元ストレージコントローラ1_22Aから
図15のS1503において送信されたものである。
【0090】
S1603において、プロセッサ24は、ストレージコントローラ2_22Bが保持しているリプレース進捗管理ポインタテーブル215の進捗ポインタ154を更新する。
【0091】
S1604において、プロセッサ24は、進捗ポインタ154を参照して、移行対象の有無を判定する。この判定は、例えばリプレース進捗管理ポインタテーブルをストレージコントローラ
1_22Aから受け取って、管理情報を受け取ったら進捗ポインタ154を進めるように、
図15のS1504と同様に行われてもよい。
【0092】
S1604において移行対象ありと判定された場合、プロセッサ24は、S1605においてエントリ情報を受領する。これは、移行元ストレージコントローラ1_22Aから
図15のS1506において転送されたものである。
【0093】
S1605において、プロセッサ24は、受領したエントリ情報を変換する。具体的には、プロセッサ24は、管理情報配置変換テーブル208及び管理情報変換テーブル209を参照して、受領したエントリ情報に含まれる管理情報でのストレージコントローラ1_22Aにおける配置及び内容を、ストレージコントローラ2_22Bにおける配置及び内容に変換する。
【0094】
S1606において、プロセッサ24は、変換された配置及び内容に従ってエントリ情報(例えば共有管理情報Y2222Yの当該エントリに対応する情報)を更新する。その後、処理はS1603に戻る。S1603では、エントリ情報の更新が反映されるように、進捗ポインタ154が更新される。
【0095】
S1604において移行対象なしと判定された場合、プロセッサ24は、S1608において移行元状態を判定する。例えば、プロセッサ24は、移行元ストレージコントローラ1_22Aから
図15のS1511において送信された処理エラー通知を受信した場合、移行失敗と判定し、受信しなかった場合に移行完了と判定してもよい。
【0096】
S1608において移行完了と判定された場合、プロセッサ24は、S1609において移行完了通知を移行元ストレージコントローラ1_22Aに送信して、S1610において移行先ストレージコントローラ2_22BのFE_I/F23Bを有効化することでホストパスを切り替えて、処理を終了する。
【0097】
S1601においてリプレース元のストレージコントローラ1_22Aが接続されていないと判定されたか、又は、S1608において移行失敗と判定された場合、プロセッサ24は、S1611において処理エラー通知を移行元ストレージコントローラ1_22Aに送信して、処理を終了する。
【0098】
<リード処理(移行元)>
図17は、本発明の実施例1のストレージシステム100において、ストレージ装置11Aに対するホスト計算機30からのリードI/O処理を示すフローチャートである。
【0099】
リード処理の一連の流れをS1701~S1707に示す。
【0100】
リード処理は、ホスト計算機30からネットワーク31を介してストレージ装置11Aがリード命令を受けた場合に開始する。リード命令では、例えば、仮想ID(例えば、仮想VOL_ID)、アドレス、及びデータサイズが指定される。
【0101】
図17の処理は、移行元ストレージコントローラ1_22Aのプロセッサ24によって実行される。S1701で、プロセッサ24は、リード命令から特定されるスロットの排他を確保する。なお、スロット排他確保時に他の処理がスロットの排他を確保している場合、プロセッサ24は、一定の時間待ってから、S1701を行う。
【0102】
S1702で、プロセッサ24は、リードデータがキャッシュ領域203に存在するか否かを判定する。S1702の判定結果が真の場合、S1704に進む。S1702の判定結果が偽の場合、プロセッサ24は、S1703で、RAIDグループからリードデータをバッファ領域202に転送する。なお、この際、プロセッサ24は、ホスト計算機30が指定したVOL_IDと論理アドレスから、プール割り当て管理テーブル213を参照することでVOL属性102を特定し、VOL属性が圧縮有効であれば圧縮データを管理する階層論物変換テーブル205の論理アドレス122からホスト計算機30が指定した論理アドレスを引き、論理アドレス122に対応する物理アドレス125からサイズ126のデータを読み出す。なお、VOL属性が通常VOLなどである場合は、対応する論物変換テーブル210の論理アドレス72からデータの格納場所を示す物理アドレス75を特定し、固定長のデータを読み出す。
【0103】
S1704で、プロセッサ24はバッファ領域202上のリードデータが圧縮されているか否かを、前記VOL属性102から判断する。そして、プロセッサ24は、圧縮済みのデータであればS1705において伸長し、圧縮データで無い場合はS1705をスキップする。
【0104】
S1706で、プロセッサ24はバッファ領域202上のリードデータをホスト計算機30に転送する。ホスト計算機30は、S1706のデータ転送が完了した時点でリード処理が終了したと認識する。
【0105】
その後、プロセッサ24は、S1707で、確保していたスロット排他を解除する。S1707の完了後、プロセッサ24はリード処理を終了する。
【0106】
<ライト処理(移行元)>
図18は、本発明の実施例1のストレージシステム100において、ストレージ装置11Aに対するホスト計算機30からのライトI/O処理を示すフローチャートである。
【0107】
ライト処理の一連の流れをS1801~S1812に示す。
【0108】
ライト処理は、ホスト計算機30からストレージ装置11Aがライト命令を受信した場合に開始する。なお、以下の
図18の説明では、例えば、ストレージ装置11Aに属する複数のストレージコントローラ22を区別するためにストレージコントローラ1_22A1、ストレージコントローラ1_22A2の様に記載し、それぞれに属するプロセッサ24をプロセッサ24A1及びプロセッサ24A2と記載するなど、ストレージコントローラ1_22A1及びストレージコントローラ1_22A2に属するものをそれぞれ参照符号に付した「A1」及び「A2」によって区別する。
【0109】
ホスト計算機30からのライト命令には、割当て先アドレスが付随している。ストレージ装置11Aは、S1801において割当て先アドレスが示すスロットの排他を確保する。なお、スロット排他確保と同時に、プロセッサ24A1は、データのライト先とするキャッシュ領域203Aのスロット領域を割当てる。
【0110】
S1802で、プロセッサ24A1は、ホスト計算機30に対してライト処理の準備ができたことを示す「Ready」を応答する。プロセッサ24A1は、「Ready」を受け取ったホスト計算機30から、ライトデータを受ける。
【0111】
プロセッサ24A1は、S1803において受け取ったライトデータの割当て先が圧縮有効であるかを判定する。この判定は、論理ボリューム管理テーブル211の論理ボリュームアドレス83を参照し、対応する論理ボリュームID81から、プール割り当て管理テーブル213のVOL_ID101に対応するVOL属性102を参照することで行われる。プロセッサ24A1は、圧縮有効であればS1804においてライトデータをバッファ領域202に格納し、S1805において圧縮する。プロセッサ24A1は、圧縮データ又は非圧縮のライトデータをS1806においてキャッシュ領域203に格納する。
【0112】
次にS1807において、プロセッサ24A1は、先述のリプレース処理が実行中かをリプレース進捗管理ポインタテーブル215の進捗ポインタ154を参照することで判断する。リプレース処理を実行中の場合、移行先へライトデータを反映することができないため、プロセッサ24A1は、S1808において、デステージ処理を実施してドライブ29へライトデータを書き込む。リプレース処理が完了している(すなわち管理情報の移行が完了している)場合、プロセッサ24A1は、S1809において、ストレージ装置11A内のストレージコントローラ1_22A1とストレージコントローラ1_22A2のデータを二重化することに加えて、移行先であるストレージ装置11Bのストレージコントローラ上のキャッシュに対してもデータを転送する。
【0113】
データのドライブ29への書き込み(S1808)又は移行元のストレージ装置11A内の二つのストレージコントローラ22間のキャッシュ二重化とストレージ装置11Bへのデータを転送(S1809)が完了すると、プロセッサ24A1は、S1810においてデータのマッピング情報を更新する。なお、圧縮したデータは、階層論物変換テーブル205の論理アドレス122にホスト計算機30が指定した割当先アドレスが登録され、さらに、圧縮後のサイズ126および格納先物理アドレス125が登録される。非圧縮のデータは、論物変換テーブル210の論理アドレス72に対応する物理アドレス75が登録される。
【0114】
S1810でマッピング情報の更新が完了すると、プロセッサ24A1は、S1811においてホスト計算機30に対してライトI/O完了を応答する。最後にS1812においてS1801において確保したスロットの排他を解除する。なお、リプレース処理を実行中の場合、更新したマッピング情報は移行先ストレージコントローラ2_22Bに転送する必要がある。そのため、マッピング情報の更新部分が転送済みの場合、更新の差分を転送し、転送前の場合、更新後のマッピング情報を転送する。その後、キャッシュをデステージ処理してドライブ29へライトデータを書き込み、処理を終了する。
【0115】
<リード処理(移行先)>
図19は、本発明の実施例1のストレージシステム100において、ストレージ装置11Bに対するホスト計算機30からのリードI/O処理を示すフローチャートである。
【0116】
リード処理の一連の流れをS1901~S1910に示す。
【0117】
移行先のリード処理ではプール割り当て管理テーブル213のVOL属性102に応じて、データを読み出す処理を変える。
図19ではVOL属性102が圧縮有効(差分管理)である場合についての動作を示している。
【0118】
S1901において、移行先のストレージ装置11Bのストレージコントローラ2_22Bのプロセッサ24は、階層論物変換テーブル205の差分ビット123を参照する。差分ビット123が0の時、物理アドレス125は移行元のストレージ装置11Aと共有するデータを指しており、差分ビット123が1の時には、物理アドレス125はストレージ装置11Bで固有で管理するデータを指す。なお、固有データとして管理するのはストレージ装置11Bのデータフォーマットが移行元と異なる場合である。
【0119】
図12の階層論物変換テーブル205の例において、先頭のエントリの差分ビット123の値は「0」である。これは、論理メモリ「1」の論理アドレス「0xF0001000」に対応する物理メモリ「3」の物理アドレス「0x5000」を先頭とする領域に書きこまれた8KBのデータが、移行先のストレージ装置11Bにおいて更新されていないことを示している。一方、3番目のエントリの差分ビット123の値は「1」である。これは、論理メモリ「1」の論理アドレス「0xF0008000」に対応する物理メモリ「2」の物理アドレス「0x8000」を先頭とする領域に書きこまれた1KBのデータが、移行先のストレージ装置11Bにおいて更新されたことを示している。
【0120】
S1902において、プロセッサ24は、差分ビット123が有効(
図12の例では「1」)であるかを判定する。差分ビット123が有効である場合、S1903において、プロセッサ24は、S1904~S1910の処理を移行先のストレージ装置11Bのデータフォーマットに従った処理に切り替える。一方、差分ビット123が有効でない場合、プロセッサ24はS1903をスキップし、移行元のストレージ装置11Aのデータフォーマットに従った処理でリードを行う。
【0121】
続くS1904からS1909までの処理は、
図17に示したS1701からS1706までの処理を移行先ストレージコントローラ2_22Bのプロセッサ24が実行するものであるため、説明を省略する。
【0122】
S1910において、プロセッサ24は、差分ビット123の値が0であるデータのダーティ化要否を「要」、差分ビット123の値が1であるデータのダーティ化要否を「否」と判定する。差分ビット123の値が1であるデータは、コントローラ2_22Bが、ストレージ装置11Bのデータフォーマットで格納しているが、差分ビット123の値が0であるデータは、コントローラ1_22Aが、ストレージ装置11Aのデータフォーマットで格納していたデータを引き継いでいるからである。ダーティ化要否が「要」の場合、プロセッサ24は、S1910においてバッファ領域202上のリードデータをストレージ装置11B内のストレージコントローラ2_22B1のキャッシュ領域203とストレージコントローラ2_22B2のキャッシュ領域203へ二重化して格納し、キャッシュ管理テーブル212のダーティデータフラグ97を「ON」に更新する。なお、ダーティデータフラグ97が「ON」になったデータは、I/O処理と非同期に、プロセッサ24によってストレージ装置11Bのデータフォーマットでストレージ装置11Bの固有の領域に格納され、差分ビット123の値が1に更新される。なお、この固有領域はストレージ装置11Aとストレージ装置11Bとの間で決めた格納位置であっても良いし、ストレージ装置11Bだけがアクセスできる固有のドライブ29であっても良い。
【0123】
その後、プロセッサ24は、S1912で、確保していたスロット排他を解除する。S1912の完了後、プロセッサ24はリード処理を終了する。
【0124】
<ライト処理(移行先)>
図20は、本発明の実施例1のストレージシステム100において、ストレージ装置11Bに対するホスト計算機30からのライトI/O処理を示すフローチャートである。
【0125】
ライト処理の一連の流れをS2001~S2013に示す。これらの処理は、移行先のストレージ装置11Bのストレージコントローラ2_22Bのプロセッサ24が実行するものであり、以下に説明する相違点を除いて、移行元のストレージ装置11Aのストレージコントローラ1_22Aのプロセッサ24が実行する
図18の処理と同様である。具体的には、S1801がS2001に置き換えられている。S2202~S2010がS1802~S1810に、S2012~S2013がS1811~S1812に、それぞれ対応する。S2010とS2012との間にS2011が挿入されている。
【0126】
図20は、
図19に示したリード処理(移行先)と同じく、VOL属性102が圧縮有効(差分管理)である場合についての動作を示している。差分管理が有効である場合、ストレージ装置11Bに対するライト処理では、ライトデータはストレージ装置11Bの固有の領域に格納される。なお、この固有領域はストレージ装置11Aとストレージ装置11Bとの間で決めた格納位置であっても良いし、ストレージ装置11Bだけがアクセスできる固有のドライブ29であっても良い。
【0127】
S2001において、プロセッサ24は、S1801と同様の排他に加えて、差分管理領域(すなわち上記の固有領域)の排他も行う。
【0128】
S2007において、プロセッサ24はリプレース進捗管理ポインタテーブル215の進捗ポインタ154から、管理情報の移行が完了しているか判断する。移行が完了していれば、プロセッサ24はS2009に進みストレージ装置11B内のストレージコントローラ2_22B1とストレージコントローラ12_22B2での二重化キャッシュ格納を行う。移行が完了していない場合、プロセッサ24はS2008においてドライブ書き込みを行う。
【0129】
プロセッサ24B1は、S2010においてデータのマッピング情報を更新する。更新にかかる情報は、固有領域用の管理情報として、更新前のマッピング情報に対する更新差分情報が作成される。後で、固有領域にライトしたデータにアクセス(リード要求や更新ライト要求による読み出し)する場合、コピーされた管理情報と、固有領域用の管理情報としての更新差分情報を用いて、物理アドレスを算出してアクセスする。
【0130】
なお、圧縮したデータは、階層論物変換テーブル205の論理アドレス122にホスト計算機30が指定した割当先アドレスが登録され、さらに、圧縮後のサイズ126および格納先物理アドレス125が登録される。非圧縮のデータは、論物変換テーブル210の論理アドレス72に対応する物理アドレス75が登録される。
【0131】
S2010でマッピング情報の更新が完了すると、S2011において、プロセッサ24は、上記のライト処理によるストレージ装置11Bのデータフォーマットで格納したことを示すように、差分ビット123を「1」に更新する。差分ビット123は、初期値は0である。
【0132】
プロセッサ24B1は、S2012においてホスト計算機30に対してライトI/O完了を応答する。最後にS2013においてS2001において確保したスロットの排他を解除する。その後、キャッシュをデステージ処理してドライブ29へライトデータを書き込み、処理を終了する。
【0133】
以上の処理によって、異なるデータ管理形態を持つストレージ間で、外部記憶媒体をストレージ装置間で共有しながら無停止移行が可能となり、ストレージ装置を構成するストレージコントローラと記憶媒体それぞれに適した周期でのリプレースを可能とするとともに、リプレースに伴う性能影響が生じる時間を短縮できる。
【実施例2】
【0134】
以下、本発明の実施例2を説明する。以下に説明する相違点を除き、実施例2のシステムの各部は、実施例1の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【0135】
<ライトスルー>
図21は、本発明の実施例2のストレージシステム100が実行する、データ管理形態の異なるストレージ装置間のリプレース手順を示す説明図である。
【0136】
実施例2は、本発明の実施例1のドライブ29への書き込みとストレージコントローラ22間のデータの二重化を切り替える方法と異なり、データや管理情報、排他情報などすべてをドライブ29にI/O同期で反映することを特徴とする。データや管理情報、排他情報がすべてドライブ29上を参照することで共有できることから、ドライブ29を共有するストレージコントローラ22はドライブ29から読み出した管理情報を個々のデータ管理形態に変換して動作する。
【0137】
例えば、実施例1と同様にストレージコントローラ1_22Aをストレージコントローラ2_22Bにリプレースする場合について説明する。移行元ストレージコントローラ1_22Aのプロセッサ24は、共有管理情報のうち、少なくとも論物マッピング1200A(例えば、階層論物変換テーブル205)をキャッシュ領域203A内に格納するとともに、ドライブ29にも格納する。プロセッサ24は、キャッシュ領域203A内の論物マッピング1200A等を更新した場合、その更新をドライブ29内の論物マッピング1200A等にも反映させる。
【0138】
その後、ストレージコントローラ1_22Aからストレージコントローラ2_22Bへのリプレース処理(
図15、
図16)が開始されると、移行元ストレージコントローラ1_22Aのプロセッサ24は、
図15のS1504~S1507において、共有管理情報のうち、ドライブ29に格納していないものを移行先ストレージコントローラ2_22Bに転送する。例えば共有管理情報のうち階層論物変換テーブル205のみがドライブ29に格納された場合、それ以外の情報が移行先ストレージコントローラ2_22Bに転送される。
【0139】
移行先ストレージコントローラ2_22Bのプロセッサ24は、
図16のS1602~S1607において、移行元ストレージコントローラ1_22Aから転送された共有管理情報を、管理情報配置変換テーブル208及び管理情報変換テーブル209に従って変換してキャッシュ領域203B内に格納する。一方、ドライブ29に格納された共有管理情報については、移行先ストレージコントローラ2_22Bのプロセッサ24は、ドライブ29から読み出して、管理情報配置変換テーブル208及び管理情報変換テーブル209に従って変換してキャッシュ領域203B内に格納する。例えば論物マッピング1200Aがドライブ29から読みだされた場合、変換されて論物マッピング1200Bとしてキャッシュ領域203Bとして格納される。
【0140】
これによって、リプレース処理が開始された後に移行元ストレージコントローラ1_22Aから移行先ストレージコントローラ2_22Bに少なくとも論物マッピング1200Aを転送する必要がなくなる。一般に共有管理情報のデータ量のほとんどを論物マッピング(例えば階層論物変換テーブル205)のデータ量が占めていることから、実施例2によれば、リプレース処理に要する時間が大幅に短縮される。
【実施例3】
【0141】
以下、本発明の実施例3を説明する。以下に説明する相違点を除き、実施例3のシステムの各部は、実施例1又は2の同一の符号を付された各部と同一の機能を有するため、それらの説明は省略する。
【0142】
<外接ストレージからの管理情報移行>
図22は、本発明の実施例3のストレージシステム100が実行する、データ管理形態の異なるストレージ装置間のリプレース手順を示す説明図である。
【0143】
実施例3では、特許文献1に記載されたものと同様の外部接続ストレージが利用される。移行先ストレージコントローラ内でデータ移行先となるVOL1000-3と移行元のVOL1000-1との間で実施例2と同じライトスルーによる管理情報の共有によって移行を実現する。
【0144】
例えば、実施例1と同様にストレージコントローラ1_22Aをストレージコントローラ2_22Bにリプレースする場合について説明する。
【0145】
移行先ストレージコントローラ2_22Bがホスト計算機30及びドライブ29に接続されると、実施例1と同様に共有管理情報の移行が行われる(
図15、
図16)。しかし、実施例1とは異なり、実施例3では、共有管理情報を変換して移行先ストレージコントローラ2_22Bに格納する処理が終了するのを待たずに、ホストI/Oのターゲットが移行元ストレージコントローラ1_22Aから移行先ストレージコントローラ2_22Bに切り替えられる。その後、ホスト計算機30からのI/O(リード及びライト)は、移行先ストレージコントローラ2_22Bに対して行われる。
【0146】
移行先ストレージコントローラ2_22Bのプロセッサ24は、ターゲットが切りかえられてから共有管理情報の移行が完了するまでの間にホスト計算機30からのI/Oを受けると、それを移行元ストレージコントローラ1_22Aに転送する。移行元ストレージコントローラ1_22Aのプロセッサ24は、移行先ストレージコントローラ2_22Bから受信したI/Oを処理して、応答を移行先ストレージコントローラ2_22Bに返す。例えばライトが行われた場合はライトの結果が、リードが行われた場合は読み出されたデータが、移行先ストレージコントローラ2_22Bに返される。移行先ストレージコントローラ2_22Bのプロセッサ24は、受信した応答をホスト計算機30に転送する。
【0147】
これによって、移行先ストレージコントローラ2_22Bがホスト計算機30に接続されたら直ちにI/Oのターゲットを切り替えることが可能になる。
【0148】
上記の本発明の実施形態は、次のような例を含んでもよい。すなわち、記憶媒体と、前記記憶媒体に接続された1つ以上のストレージコントローラを有し、前記ストレージコントローラに接続された1つ以上のホスト計算機から構成されたストレージシステムおいて、1つ以上のストレージコントローラに対して、ハードウェア構成およびデータ管理形態の異なる新規のストレージコントローラを接続する。新規ストレージコントローラは、前記ストレージコントローラの他に、前記記憶媒体と前期ホスト計算機に接続される。前記新規ストレージコントローラと前記ストレージコントローラが接続されると、管理操作によってリプレースの対象となる前記ストレージコントローラが管理する1つ以上の論理ユニット(Logical Unit)もしくはその全てを指定する。前記管理操作によって指定したリプレース対象が有するデータ管理情報を、前記ストレージコントローラから前記新規ストレージコントローラに対して送信する。データ管理情報を受け取った前記新規ストレージコントローラは前記データ管理情報のデータ管理形態を変換することで、リプレース対象となった前記論理ユニットが有するデータに対してのアクセスを可能とする。前記新規ストレージコントローラは、データ管理形態を変換した後、前記記憶媒体と前記ホスト計算機とのパスを有効化し、ホストI/Oや構成変更などのデータに対するアクセスを行う。前記論理ユニットのデータ管理情報を送信した前記ストレージコントローラは、前記新規ストレージコントローラの前記パスが有効化した後、任意のタイミングで減設することによってストレージコントローラのリプレースを行う。なお、データ管理情報を前記新規ストレージコントローラに移行する進捗に応じて、ホストI/Oと同期してドライブへデータを書き込む処理と、前記ストレージコントローラと前記新規ストレージコントローラのキャッシュ領域にデータを二重化する処理を切り替えることによって、データを保護しながらリプレース処理中のI/O性能を維持する。
【0149】
また、本発明の実施形態はさらに次のような例を含んでもよい。
【0150】
(1)プロセッサ(例えばプロセッサ24)とメモリ(例えばメモリ25)とを有するストレージ制御部と、データを格納する記憶媒体を有するストレージドライブ(例えばドライブ29)と、を備えたストレージシステムにおいて、ストレージ制御部は、ストレージドライブに格納されたデータへアクセスするためのデータ管理情報(例えば共有管理情報X2222X及びY2222Y)を有しており、ストレージ制御部として、第1のストレージ制御部(例えばストレージコントローラ1_22A)と、第2のストレージ制御部(例えばストレージコントローラ2_22B)と、を有しており、第1のストレージ制御部と、第2のストレージ制御部とは、ホスト(例えばホスト計算機30)及びストレージドライブに接続されており、第1のストレージ制御部は、ストレージドライブに格納されたデータについてのデータ管理情報を、第1のストレージ制御部から第2のストレージ制御部にコピーし(例えばS1506、S1607)、データ管理情報のコピー開始後にストレージ制御部がホストからライト要求を受けた場合、第1のストレージ制御部と、第2のストレージ制御部とが、それぞれ、ライト要求にかかるライトデータをストレージドライブの別々の記憶領域に格納する(例えばS1808、S2008)。
【0151】
これによって、ストレージ装置間で、外部記憶媒体をストレージ装置間で共有しながら無停止移行が可能となり、ストレージ装置を構成するストレージコントローラと記憶媒体それぞれに適した周期でのリプレースを可能とするとともに、リプレースに伴う性能影響を抑えることができる。また、リプレース処理の途中でデータの更新が行われた場合にも、その更新をドライブに反映させることが可能になる。
【0152】
(2)上記(1)において、第1のストレージ制御部と、第2のストレージ制御部とが、それぞれ、格納するデータへアクセスするためのデータ管理情報を作成する。
【0153】
(3)上記(2)において、第1のストレージ制御部は、コピー中にライトする場合に、データ管理情報を更新し、第2のストレージ制御部は、コピー中にライトする場合に、データ管理情報に対しての更新差分情報を作成する。
【0154】
(4)上記(3)において、第1のストレージ制御部は、コピー後にライトされたデータに、更新後のデータ管理情報を用いてアクセスし、第2のストレージ制御部は、コピー後にライトされたデータに、コピーされたデータ管理情報と、更新差分情報と、を用いてアクセスする。
【0155】
(5)上記(1)において、第1のストレージ制御部は、第1のデータフォーマットを用いており、第2のストレージ制御部は、第2のデータフォーマットを用いており、第2のストレージ制御部は、第2のデータフォーマットを用いる第2のストレージ制御部が、第1のデータフォーマットでストレージドライブに格納されたデータにアクセスできるように、コピーするデータ管理情報を変換する(例えばS1606)。
【0156】
(6)上記(5)において、コピー開始後は、第1のストレージ制御部は第1のデータフォーマットを用いてライトデータを格納し、第2のストレージ制御部は第2のデータフォーマットを用いてライトデータを格納する。
【0157】
(7)上記(6)において、第2のストレージ制御部は、第1のデータフォーマットにてストレージドライブに格納したデータを、第2のデータフォーマットに変換してストレージドライブに格納する。
【0158】
(8)上記(7)において、コピーの開始前は、第1のストレージ制御部にホストパスが設定されており、コピーの完了後は、第2のストレージ制御部にホストパスを変更し(例えばS1510、S1610)、データフォーマットの変換は、ホストパスの変更後に行う。
【0159】
(9)上記(8)において、第2のストレージ制御部は、リード要求を受けたデータであり第1のデータフォーマットで格納されたデータについて、読み出して転送するとともに(例えばS1909)、第2のデータフォーマットに変換して格納する(例えばS1910の後に非同期に行われる格納)。
【0160】
(10)上記(1)において、コピーの開始前は、第1のストレージ制御部にホストパスが設定されており、コピーの完了後は、第2のストレージ制御部にホストパスを変更する(例えばS1510、S1610)。
【0161】
(11)上記(10)において、コピーの前に、第2のストレージ制御部を増設し、ホストパス変更後に、第1のストレージ制御部を減設する。
【0162】
(12)プロセッサ(例えばプロセッサ24)とメモリ(例えばメモリ25)とを有するストレージ制御部と、データを格納する記憶媒体を有するストレージドライブ(例えばドライブ29)と、を備えたストレージシステムにおいて、ストレージ制御部は、ストレージドライブに格納されたデータへアクセスするためのデータ管理情報(例えば共有管理情報X2222X及びY2222Y)を有しており、ストレージ制御部として、第1のストレージ制御部(例えばストレージコントローラ1_22A)と、第2のストレージ制御部(例えばストレージコントローラ2_22B)と、を有しており、第1のストレージ制御部と、第2のストレージ制御部とは、ホスト(例えばホスト計算機30)及びストレージドライブに接続されており、第1のストレージ制御部は、第1のデータフォーマットを用いており、第2のストレージ制御部は、第2のデータフォーマットを用いており、第1のストレージ制御部は、ストレージドライブに格納されたデータについてのデータ管理情報を、第1のストレージ制御部から第2のストレージ制御部にコピーし(例えばS1506、S1607)、第2のストレージ制御部は、第2のデータフォーマットを用いる第2のストレージ制御部が、第1のデータフォーマットでストレージドライブに格納されたデータにアクセスできるように、コピーするデータ管理情報を変換する(例えばS1606)。
【0163】
これによって、ストレージ装置間で、外部記憶媒体をストレージ装置間で共有しながら無停止移行が可能となり、ストレージ装置を構成するストレージコントローラと記憶媒体それぞれに適した周期でのリプレースを可能とするとともに、リプレースに伴う性能影響を抑えることができる。また、第2のデータフォーマットを用いる第2のストレージ制御部が、第1のデータフォーマットでストレージドライブに格納されたデータにアクセスすることが可能になる。
【0164】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。リプレースを例に説明したが、ストレージ装置間で記憶媒体を共有しながら移行すれば、2つのストレージ装置が共存しているストレージシステムでもよい。例えば、上記した実施例は本発明のより良い理解のために詳細に説明したのであり、必ずしも説明の全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることが可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0165】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
【0166】
また、制御線及び情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線及び情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0167】
100 ストレージシステム
11 ストレージ装置
22 ストレージコントローラ
202 バッファ領域
203 キャッシュ領域
29 ドライブ
30 ホスト計算機
31 ネットワーク