実施形態1では、第一のストレージシステムと第二のストレージシステムで構成されたシステムがある。第一のストレージシステムが、複数の物理ポートを有する第一のスイッチデバイスと、前記複数の物理ポートのうちの一以上の第一の物理ポートに物理的に接続された第一の記憶装置と、複数の物理ポートのうちの一以上の第二の物理ポートに物理的に接続された第一のコントローラとを備える。第二のストレージシステムが、複数の物理ポートを有する第二のスイッチデバイスと、複数の物理ポートのうちの一以上の第四の物理ポートに物理的に接続された第二の記憶装置と、複数の物理ポートのうちの一以上の第五の物理ポートに物理的に接続された第二のコントローラとを備える。第一のスイッチデバイスが備える複数の物理ポートのうちの一以上の第三の物理ポートと、第二のスイッチデバイスが備える複数の物理ポートのうちの一以上の第六の物理ポートとが互いにホスト非経由で物理的に接続される。第一のコントローラが、第一のスイッチデバイスにおける一以上の第三の物理ポートと第二のスイッチデバイスにおける一以上の第六の物理ポートを介して、第二の記憶装置にアクセスする。
下記に詳述する第一及び第二の実施形態では、第一のスイッチデバイスにおける一以上の第三の物理ポートと第二のスイッチデバイスにおける一以上の第六の物理ポートとを介してデータの移行が行われるが、上記の実施形態では、それに限らず、第二のストレージシステムが第一のストレージシステムの単なる増設システムとして使用されても良い。例えば、第一のコントローラが、第二の記憶装置を基に形成された論理ボリュームをホストに提供し、ホストからその論理ボリュームを指定したIOコマンドを受けた場合には、そのIOコマンドに応答して、第二の記憶装置にアクセスしても良い。
実施形態2では、実施形態1において、第二のコントローラ及び/又は第二のスイッチデバイスが、所定の入力を契機に、一以上の第五の物理ポートと第二のコントローラとの接続を切断する。
実施形態3では、実施形態1乃至2のうちの少なくとも一つにおいて、互いに物理的に接続された双方の物理ポートの状態が有効である場合に、双方の物理ポート間を論理的に接続することが可能である。前記一以上の第六の物理ポートの状態が無効である。第二のスイッチデバイスが、所定の入力を契機に、一以上の第六の物理ポートの状態を無効から有効に変更する。
実施形態4では、実施形態3において、第二のスイッチデバイスが、所定の入力のキャンセルを契機に、一以上の第六の物理ポートの状態を有効から無効に変更する。
実施形態5では、実施形態1乃至4のうちの少なくとも一つにおいて、初期的には、一以上の第三の物理ポートの状態が無効であり、第一のスイッチデバイスが、所定の入力が無い状態において、所定の指示を受けた場合に、一以上の第三の物理ポートの状態を無効から有効に変更する。
実施形態6では、実施形態1乃至5のうちの少なくとも一つにおいて、第二のスイッチデバイスのアドレスが、所定の規則で定められたデフォルトアドレスである。第二のスイッチデバイスが、所定の入力を契機に、第二のスイッチデバイスのアドレスを、デフォルトアドレスから別のアドレスに変更する。
実施形態7では、実施形態6において、第二のスイッチデバイスが、所定の入力のキャンセルを契機に、第二のスイッチデバイスのアドレスを、前記別のアドレスからデフォルトアドレスに戻す。
実施形態8では、実施形態1乃至7のうちの少なくとも一つにおいて、物理ポートの属性として、第一の属性と第二の属性とがあり、物理的に互いに接続されている物理ポートがそれぞれ第一の属性である場合には、それらの物理ポート間の論理的な接続は不可であるが、上流側の物理ポートが第一の属性であり下流側の物理ポートの属性が第二の属性である場合には、それらの物理ポート間の論理的な接続は可能である。第二のスイッチデバイスが、所定の入力を契機に、一以上の第三の物理ポートの属性を第二の属性に変更する。
実施形態9では、実施形態5において、所定の指示は、第一のコントローラが移行指示を受けたことに応答して第一のコントローラから発行される指示である。第一のコントローラが、第一の記憶装置に記憶されているデータを、第一のスイッチデバイスにおける前記一以上の第三の物理ポートと第二のスイッチデバイスにおける一以上の第六の物理ポートを介して、第二の記憶装置に移行する。
実施形態10では、実施形態1乃至9のうちの少なくとも一つにおいて、第二のストレージシステムが、第二のストレージシステムのモードをユーザが指定するユーザインタフェースであるモード指定部を更に備える。上記の所定の入力とは、第二のストレージシステムが第一のストレージシステムの増設システムとして機能することを意味する増設モードの指定である。所定の入力のキャンセルとは、増設モード以外のモードの指定である。
実施形態11では、第一の記憶装置と第一のコントローラとを有する第一のストレージシステムと、第二の記憶装置と第二のコントローラとを有する第二のストレージシステムとが備えられる。第一の記憶装置は、ホストからアクセス可能な記憶領域でありホストからアクセスされるデータが記憶される第一のユーザ領域と、ホストからアクセス不可能な記憶領域であり前記第一のストレージシステムの構成及び制御に関する情報である第一のシステム情報が記憶される第一のシステム領域とを含む。第二の記憶装置は、ホストからアクセス可能な記憶領域でありホストからアクセスされるユーザデータが記憶される第二のユーザ領域と、ホストからアクセス不可能な記憶領域であり第二のストレージシステムの構成及び制御に関する情報である第二のシステム情報が記憶される第二のシステム領域とを含む。第一のコントローラ及び/又は第二のコントローラは、第一のシステム情報におけるシステム情報要素を第一のシステム領域から読出し、そのシステム情報要素又はそれの変更後のシステム情報要素を、(A)計算機(例えば管理計算機或いはホスト計算機)に送信する、(B)計算機非経由で(例えば上記の第一のインタフェース装置及び第二のインタフェース装置を介して)第二のストレージシステムに送信する、又は、(C)第二のシステム領域に書込む。
(A)の場合、例えば、計算機は、受信したシステム情報要素又はそれの変更後のシステム情報要素を、第二のストレージシステムに送信する。第二のコントローラが、第二のシステム領域を特定し、そのシステム情報要素又はそれの変更後のシステム情報要素を、第二のシステム領域に書込む。つまり、(A)の場合、システム情報要素又はそれの変更後のシステム情報要素が、計算機経由で、第一のストレージシステムの第一の記憶装置から第二のストレージシステムの第二の記憶装置に移行される。(A)の場合、第一のコントローラ、第二のコントローラ及び計算機のうちの少なくとも一つが、第二のストレージシステムの状態、及び/又は、第二のシステム領域に記憶されている第二のシステム情報を基に、第一のシステム領域から読み出されたシステム情報要素を変更する必要があるかやそのシステム情報要素をどのようなシステム情報要素に変更するかを決定することができる。
(B)の場合、第二のコントローラが、第二のシステム領域を特定し、そのシステム情報要素又はそれの変更後のシステム情報要素を、第二のシステム領域に書込む。
(B)及び(C)の場合、第一のコントローラ及び第二のコントローラのうちの一方が、第二のストレージシステムの状態、及び/又は、第二のシステム領域に記憶されている第二のシステム情報を基に、第一のシステム領域から読み出されたシステム情報要素を変更する必要があるかやそのシステム情報要素をどのようなシステム情報要素に変更するかを決定することができる。
この実施形態では、実施形態1乃至10の少なくとも一つにおける一以上の第三の物理ポートを、第一のインタフェース装置と言うことができ、実施形態1乃至10の少なくとも一つにおける一以上の第六の物理ポートを、第二のインタフェース装置と言うことができる。また、第一のストレージシステムを、移行元ストレージシステムとし、第二のストレージシステムを、移行先ストレージシステムとすることができる。また、この実施形態では、後述の第二の実施形態におけるシステムI/F115を、第一のインタフェース装置と言うことができ、後述の第二の実施形態におけるシステムI/F215を、第二のインタフェース装置と言うことができる。
実施形態12では、実施形態1乃至11のうちの少なくとも一つにおいて、第一のコントローラ、第二のコントローラ及び計算機のうちのいずれかが、第二のストレージシステムの状態、及び/又は、第二のシステム領域に記憶されている第二のシステム情報を基に、読み出したシステム情報要素を変更する必要があるかやそのシステム情報要素をどのようなシステム情報要素に変更するかを決定し、その決定に従うシステム情報要素を、第二のストレージシステムに移行する(例えば第一のインタフェース装置と第二のインタフェース装置を経由して移行する)。
実施形態13では、実施形態1乃至12のうちの少なくとも一つにおいて、第一のコントローラ、第二のコントローラ及び計算機のうちのいずれかが、第一のシステム情報を基に第一のユーザ領域からユーザデータを読出し、移行されたシステム情報要素を含んだ第二のシステム情報を基に、ユーザデータを第一のインタフェース装置を介して第二のストレージシステムに移行する。
実施形態14では、実施形態13において、第一のシステム情報に含まれるシステム情報要素として、第一のストレージシステムに関する第一の識別情報がある。第二のシステム情報に含まれるシステム情報要素として、第二のストレージシステムに関する第二の識別情報がある。第一のコントローラ、第二のコントローラ及び計算機のうちのいずれかが、読み出されたシステム情報要素が第一の識別情報である場合、第一のインタフェース装置を介して、第二の識別情報を第一の識別情報と交換する。
実施形態15では、実施形態13乃至14のうちの少なくとも一つにおいて、第一のコントローラ、第二のコントローラ及び計算機のうちのいずれかが、読み出された所定種類のシステム情報要素が、第二のシステム情報における所定種類のシステム情報よりも新しいならば、読み出された所定種類のシステム情報要素を第二のストレージシステムに送信する。
実施形態16では、実施形態13乃至15のうちの少なくとも一つにおいて、第一のコントローラ、第二のコントローラ及び計算機のうちのいずれかが、読み出されたシステム情報要素と一致するシステム情報要素が既に第二のシステム情報に含まれている場合には、読み出されたシステム情報要素を、その既存のシステム情報要素と重複しない内容に変更し、変更後のシステム情報要素を第二のストレージシステムに送信する。
実施形態17では、実施形態16において、第一の記憶装置は、複数の第一のメディアドライブで構成されており、第二の記憶装置は、複数の第二のメディアドライブで構成されている。第一のシステム情報に含まれるシステム情報要素として、第一のメディアドライブに関する第一ドライブ情報要素を第一のメディアドライブ毎に有する第一ドライブ情報と、どの二以上の第一のメディアドライブを基に構成された第一のRAIDグループであるかに関する第一RAIDグループ情報要素を第一のRAIDグループ毎に有する第一RAIDグループ情報、及び/又は、前記複数の第一のメディアドライブを基に形成された第一の論理ユニット(LU)に関する第一LU情報要素を第一のLU毎に有する第一LU情報とがある。第二のシステム情報に含まれるシステム情報要素として、第二のメディアドライブに関する第二ドライブ情報要素を第二のメディアドライブ毎に有する第二ドライブ情報と、どの二以上の第二のメディアドライブを基に構成された第二のRAIDグループであるかに関する第二RAIDグループ情報要素を第二のRAIDグループ毎に有する第二のRAIDグループ情報、及び/又は、複数の第二のメディアドライブを基に形成された第二のLUに関する第二LU情報要素を第二のLU毎に有する第二LU情報とがある。第一ドライブ情報が非移行の対象である。第一のコントローラ、第二のコントローラ及び計算機のうちのいずれかが、第二ドライブ情報を基に、読み出された第一RAIDグループ情報及び/又は第一LU情報を変更し、変更後の第一RAIDグループ情報及び/又は第一LU情報を、第二のストレージシステムに送信する。
実施形態18では、第二のコントローラが、第一のストレージシステムからシステム情報要素を第二のインタフェース装置を介して受信し、受信したシステム情報要素又はそれの変更後のシステム情報要素を、第二のシステム領域に書込む。この実施形態では、実施形態1乃至10の少なくとも一つにおける一以上の第三の物理ポートを、第一のインタフェース装置と言うことができ、実施形態1乃至10の少なくとも一つにおける一以上の第六の物理ポートを、第二のインタフェース装置と言うことができる。また、第一のストレージシステムを、移行元ストレージシステムとし、第二のストレージシステムを、移行先ストレージシステムとすることができる。また、この実施形態では、後述の第二の実施形態におけるシステムI/F115を、第一のインタフェース装置と言うことができ、後述の第二の実施形態におけるシステムI/F215を、第二のインタフェース装置と言うことができる。
実施形態19では、実施形態1乃至10及び18のうちの少なくとも一つにおいて、第二のコントローラが、第二のストレージシステムの状態、及び/又は、第二のシステム領域に記憶されている第二のシステム情報を基に、受信したシステム情報要素を変更する必要があるかやそのシステム情報要素をどのようなシステム情報要素に変更するかを決定し、その決定に従うシステム情報要素を、第二のシステム領域に書込む。
実施形態20では、実施形態1乃至10及び実施形態18乃至19のうちの少なくとも一つにおいて、第二のコントローラが、第二のインタフェース装置を介してユーザデータを受信し、そのユーザデータを、書込まれたシステム情報要素を含んだ第二のシステム情報を基に、第二のユーザ領域に書込む。
実施形態21では、実施形態19乃至20のうちの少なくとも一つにおいて、第二のコントローラが、受信したシステム情報要素が第一の識別情報である場合、第二のインタフェース装置を介して、第二の識別情報を前記第一の識別情報と交換する、
請求項10記載のストレージシステム。
実施形態22では、実施形態19乃至21のうちの少なくとも一つにおいて、第二のコントローラが、受信した所定種類のシステム情報要素が、前記第二のシステム情報における所定種類のシステム情報よりも新しいならば、その受信した所定種類のシステム情報要素を第二のシステム領域に書込む。
実施形態23では、実施形態19乃至22のうちの少なくとも一つにおいて、第二のコントローラが、受信したシステム情報要素と一致するシステム情報要素が既に第二のシステム情報に含まれている場合には、受信したシステム情報要素を、その既存のシステム情報要素と重複しない内容に変更し、変更後のシステム情報要素を第二のシステム領域に書込む。
実施形態24では、実施形態19乃至23のうちの少なくとも一つにおいて、前述した第一ドライブ情報が非移行の対象であり、第二のコントローラが、第二ドライブ情報を基に、受信した第一RAIDグループ情報及び/又は第一LU情報を変更し、変更後の第一RAIDグループ情報及び/又は第一LU情報を、第二のシステム領域に書込む。
実施形態25では、実施形態1乃至24のうちの少なくとも一つにおいて、第一のストレージシステムと第二のストレージシステムとのうちのの少なくとも一方に接続された管理装置(例えば管理計算機)がある。管理装置が、記憶資源と、第一のシステム情報及び前記第二のシステム情報を収集し記憶資源に格納する情報収集部と、収集された第一及び第二のシステム情報を基に移行対象の指定をユーザから受け付ける画面である移行対象指定画面を表示する表示部と、ユーザから指定された移行対象を表す情報を含んだ移行指示を、少なくとも一方のストレージシステムに送信する移行指示部とを備える。その移行指示に応答して、第一のシステム領域からシステム情報要素が読み出される。
上述した複数の実施形態1乃至25のうちの任意の二以上の実施形態を組み合わせることが可能である。
以下、図面を参照しながら本発明の幾つかの実施形態について詳細に説明する。尚、これにより本発明が限定されるものではない。
大規模ストレージシステムや保守不要とするストレージシステム内のデータを新しいストレージシステムへ移行する際に、ホスト非経由で(いわゆるバックエンド)でデータ移行が行えるようにする。その際、データのみではなく、ストレージシステムの構成及び制御に関する情報であるシステム情報も移行できるようにする。
例えば、移行元ストレージシステムと移行先ストレージシステムにおいて、装備されているメディアドライブの個数や各メディアドライブに割り振られている識別子(例えばドライブ番号)などが異なる場合もある。このため、従来は、手作業で、システム情報に変更を加えて移行を行うことになるが、本実施形態では、下記に詳述する仕組みにより、移行先ストレージシステムの構成に応じたシステム情報が自動で設定される。
また、移行先ストレージシステムに既にデータ(ユーザデータ)が格納されている場合には、ユーザデータを上書きしないようにデータ保護をする機能や、移行元ストレージシステムから移行先ストレージシステムへ全てのデータを移行した後に移行元ストレージシステムからデータを消去する機能が設けられる。
このような機能を設けることで、ストレージシステム間のデータ移行の作業を、ストレージシステムのシステム情報の設定からデータ移行そして移行元ストレージシステムからデータ消去にいたるまでの一連の作業を、ユーザの負担少なく実行することが可能である。
<第一の実施形態>。
本実施形態では、ストレージシステムのリプレイスを行うために実施されるデータ移行を想定する。従って、データ移行を行う際、移行先のストレージシステム(新規のストレージシステム)は、非稼働中である。また、移行元のストレージシステム(今まで使用されていたストレージシステム)は、ストレージシステムのリプレイスが完了したらその稼働を停止する。つまり、本実施形態では、移行元のストレージシステムと移行先のストレージシステムとが並列して稼働することはないものとする。尚、ここでの「稼働」とは、ストレージシステムがホストから入出力要求を受けることができる状態で動作することをいう。以下では、移行元のストレージシステムを「移行元システム」と呼ぶこともある。同様に、移行先のストレージシステムを「移行先システム」と呼ぶこともある。また、これらを単に「ストレージシステム」と呼ぶ場合もある。
図1は、本実施形態に係るデータ移行の制御装置を備えたストレージシステム100,200の構成例を示す図である。
移行元システム100と移行先システム200とが、通信ケーブル500を介して接続される。詳細は後述するが、両システム100,200の接続は、それぞれが備えるエクスパンダ114,214同士が通信ケーブル500によって接続されることにより行われる。従って、通信ケーブル500には、例えば、エクスパンダ114,214に接続可能なSAS(Serial Attached SCSI)ケーブル等が用いられる。
移行元システム100には、管理用PC300が接続される。移行元システム100と管理用PC300との接続は、例えば、LAN(Local Area Network)等の通信ネットワークを介して行われる。
まず、管理用PC300から説明する。管理用PC300は、ストレージシステム100,200間のデータ移行を制御する装置であり、例えば、パーソナルコンピュータ等の計算機である。管理用PC300は、例えば、CPUと、メモリと、キーボードやマウスなどの入力部と、ディスプレイ等の出力部とを備える。また、管理用PC300のメモリには、データ移行の制御を行うプログラムである移行ツール310が記憶される。移行ツール310は、管理用PC300のCPUによって実行されることにより、移行元システム100及び移行先システム200の少なくとも一方を制御して、両システム100,200間のデータ移行を行わせることができる。また、移行ツール310は、データ移行に関する種々の設定を行えるようにするため、所定のGUI(Graphical User Interface)等をユーザへ提供して、所定の入力をユーザから受け付けることができる。設定可能な項目については後述するが、一例を挙げるとすると、どのユーザデータを移行するかや、移行したデータを移行元システム100から削除するか否か等がある。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサ(CPU)によって処理が行われるものとする。
次に、ストレージシステム100,200について説明する。紙面の都合上、移行先システム200の構成を一部省略しているが、移行先システム100と移行元システム200の構成は、基本的に同じである。ここでは、移行先システム100を代表例に採ってストレージシステム100,200の構成を説明する。
移行先システム100には、例えば、二重化されたコントローラデバイス(CTL)110と、二重化された電源130と、記憶装置と、移行用スイッチ(SW)120と、メインSW150とが搭載される。
記憶装置は、例えば、複数のハードディスクドライブ(HDD)140の集合体として構成される。HDD140は、例えば、SATA(Serial Attached SCSI)或いはSASのインタフェースを搭載する。また、記憶装置は、HDD140に限らず、他種のメディアドライブ(例えばフラッシュメモリドライブ)から構成されてもよし、複数種類のメディアドライブが混在してもよい。なお、HDD140が、SAS_HDDであれば、そのHDD自身がSASアドレスを有するが、HDD140が、SATA_HDDであれば、HDD自身はSASアドレスを有しない。SATA_HDDは、例えば、インタフェース変換器(ドングル)を介してエクスパンダ114のphy(物理ポート)に接続されるが、phyに接続されるデバイスのSASアドレスとしては、そのphyに接続されるインタフェース変換器に対してSASアドレスが割り振られる。このため、エクスパンダ114のphyに接続されているSAS_HDDが別のSAS_HDDに交換された場合、そのphyに接続されているデバイスのSASアドレスも変更されるが、phyに接続されているSATA_HDDが別のSATA_HDDに交換されても、そのphyに接続されているデバイスのSASアドレスは変更されない。_
CTL110は、例えばハードウェア回路である。CTL110には、上位I/F(インタフェース)111と、RAID制御部112と、SASコントローラ113と、SASエクスパンダ(以下、単に「エクスパンダ」と言う)114とが備えられる。上位から下位にかけて、上位I/F111、RAID制御部112、SASコントローラ113及びエクスパンダ114が直列に接続されている。
上位I/F111は、上位装置(例えば、ホスト400、管理用PC300、或いは他のストレージシステム)と接続するためのインタフェースである。上位I/F111は、上位装置から種々のコマンド(データの書込みや読出しを要求するコマンドやデータ移行を要求するコマンド等)を受け付けることができる。コマンドを受け付けた上位I/F111は、そのコマンドをRAID制御部112に伝達する。
RAID制御部112は、例えば、コンピュータプログラムを実行するCPUやそのコンピュータプログラム等を格納するメモリを含んだモジュールであり、コマンドの処理を実行する。具体的には、例えば、データの書込みを要求するコマンド(ライトコマンド)を受信したときは、RAID制御部112は、そのライトコマンドとともに受信したデータ(ライトデータ)を、ライトコマンドを基に特定されたHDD140とそれの領域に書き込むように、SASコントローラ113に指示を出す。これをより詳細に説明すると、まず、RAID制御部112は、起動時にシステム情報を記憶装置から読み出してメモリに格納しておく。RAID制御部112は、システム情報を参照することで、ライトコマンドで指定されているアドレス(例えば、LUN(Logical Unit Number)やLBA(Logical Block Address))から、アクセス先とするHDD140とその領域を特定する。RAID制御部112は、特定したHDD140の領域にアクセスすることの指示をSASコントローラ113に出す。尚、ライトデータは、RAID制御部112が受信した後、HDD140への書込みが行われるまでの間、RAID制御部112のメモリ(例えば、キャッシュメモリ)に一時格納される。また、データの読出しを要求するコマンド(リードコマンド)を受信したときは、RAID制御部112は、指定されたデータ(リードデータ)を所定のHDD140から読み出すように、SASコントローラ113に指示を出す。そして、RAID制御部112は、SASコントローラ113を制御してHDD140から読み出したリードデータをホスト400へ送信する。尚、リードデータは、RAID制御部112がHDD140から読み出した後、ホスト400へ送信されるまでの間、RAID制御部112のメモリ(例えば、キャッシュメモリ)に一時格納される。更に、データ移行を要求するコマンドを受信したときは、移行元システム100から移行先システム200へのデータ移行の処理(以下「移行処理」とも呼ぶ)を実施する。移行処理の詳細については、後述する。
SASコントローラ113は、例えば、ハードウェア回路(例えばICチップ)である。SASコントローラ113は、RAID制御部112からの指示に応答して、HDD140に対してデータの書込みや読出しを行う。
エクスパンダ114は、一種のスイッチデバイスである。エクスパンダ114には、複数のHDD140が接続される。SASコントローラ113が行うデータの書込みや読出しは、エクスパンダ114を経由して行われる。また、上述したように、移行元システム100のエクスパンダ114に対して移行先システム200のエクスパンダ214が接続されることにより、両システム100,200が接続される。
メインSW150は、CTL110における上位I/F、RAID制御部112及びSASコントローラ13の電源のオンとオフを切替えるためのスイッチである(メインSW150の状態に関わらず、エクスパンダ114やHDD140には通電される)。移行用SW120は、移行元システム100と移行先システム200との接続を制御するためのスイッチである。メインSW150及び移行用SW120の少なくとも一方は、スイッチ操作の結果(オンとオフ)が保持されるオルタネートタイプのスイッチ、具体的には、例えば、トグルスイッチ、シーソースイッチ等である。メインSW150のオン/オフの状態と、移行用SW120のオン/オフの状態の組合せにより、ストレージシステム100のモードが定義される。詳細は、後述する。
以上が、ストレージシステムについての説明である。ちなみに、本実施形態に係るストレージシステムは、予め搭載されているHDD140の挿抜が不可能でありユーザによる保守が不要であるストレージシステムである。例えば、図29に移行元システム100の外観の斜視図を示す。移行元システム100は、例えば、筐体2と、筐体2の前面側を施蓋するようにして設けられるフロントベゼル3と、筐体2の前面側にマトリクス状に配置された複数のHDD140とを備える。HDD140が、図示しないバックボード(回路基板)に接続される。筐体2内の背面側には、バックボードに接続されたCTL110や、電源130や、バッテリ(図示せず)や、冷却ファン(図示せず)が接続される。フロントベゼル3は、例えばユーザによる取り外しが不可能である。また、HDD140は、例えばユーザによる取り外しが不可能である。具体的には、例えば、人間の指が入らないぐらいのピッチでHDD140が配列されている、HDD140にキャニスタにあるような取っ手が設けられていない等の工夫により、取り外しが不可能とされている。なお、移行元システム100には、例えば、所定個数(例えば2個)の拡張スロットが設けられており、その拡張スロットを介して、リムーバブルのHDDを挿抜することができる。これにより、移行先システム100に搭載されるHDDの数を増やしたり減らしたりすることが可能である。
さて、次に、エクスパンダ114、214の構成を詳細に説明する。なお、それらのエクスパンダ114、214の構成は実質的に同じであるため、ここでは、移行先システムのエクスパンダ214を代表的に例に採り説明する。
図23は、移行先システムのエクスパンダ214の構成例を示す。
エクスパンダ214は、例えばLSI(Large Scale Integration)である。エクスパンダ214には、複数のphy2142と、エクスパンダスイッチ制御部2141と、プロセッサ(例えばCPU)2143と、メモリ2147とが備えられる。また、エクスパンダ214には、外部メモリ2144が接続されている。
外部メモリ2144には、プロセッサ2143にロードされて実行されるコンピュータプログラムが記憶される。そのコンピュータプログラムは、例えばファームウェア2145である。
phy2142は、物理ポートである。phy2142には、種々のデバイスを物理的に接続することが可能である。
例えば、本実施形態では、複数のphy2142のうちの或る一以上(例えば15個)のphy2142(Phy#0〜Phy#14)に、それぞれ、HDD240(例えば、所定個数(例えば2個)が、図示しない拡張スロットを介してユーザが挿抜可能なリムーバブルのHDDであっても良い)が接続される。
また、例えば、複数のphy2142のうちの或る一以上(例えば4個)のphy2142(Phy#15〜Phy#18)に、移行先システム200におけるSASコントローラ213が例えばワイドリンクで接続される。以下、それら4個のphy2142(Phy#15〜Phy#18)のことを「SASコントローラ接続ポート」と呼ぶことがある。
また、例えば、複数のphy2142のうちの或る別の一以上(例えば4個)のphy2142(Phy#19〜Phy#22)に、他のストレージシステム(移行元システム200)におけるエクスパンダ114が例えばワイドリンクで接続される。それら4個のphy2142(Phy#19〜Phy#22)が、システム情報やユーザデータの移行の際に、システム情報やユーザデータが経由する物理ポートである。以下、それら4個のphy2142(Phy#19〜Phy#22)のことを「データ移行専用ポート」と呼ぶことがある。
エクスパンダスイッチ制御部2141は、SASのI/F制御やスイッチ制御を行うハードウェア回路である。エクスパンダスイッチ制御部2141には、複数のphy2142とプロセッサ2143とが接続されている。エクスパンダスイッチ制御部2141によるスイッチ制御は、ルーティングテーブル2146を基に行われる。
メモリ2147には、このエクスパンダ214のSASアドレス(SASの規格に従うアドレス)と、ルーティングテーブル2146とが記憶される。ルーティングテーブル2146には、そのテーブル2146を有するエクスパンダ214より下位に存在する各デバイスとそのエクスパンダ214のphy2142に直接接続されている各デバイスとについて、行き先を表す情報要素(行き先情報要素)が記録される。
具体的には、例えば、ルーティングテーブル2146には、図24に例示するように、phy2142毎に、phyの番号と、phyの状態と、phyの属性と、SASアドレスとが記録される。
phy状態としては、例えば、有効(enable)と無効(disable)とがある。互いに物理的に接続されている両方の物理ポートについて、phy状態が両方とも有効であれば、互いの物理ポート間は論理的に接続されるが、少なくとも一方の物理ポートのphy状態が無効であれば、互いの物理ポート間は論理的には接続されない。また、他のphyとは異なるデバイスが接続されているphyについては、phy状態が有効であれば、そのphyとデバイス間の論理的な接続が可能であるし、phy状態が無効であれば、そのphyとデバイス間の論理的な接続は不可能である。
phy属性としては、例えば、“Table”と“Subtractive”との2種類がある。図27Cに示すように、上流側のエクスパンダにおけるデータ移行専用ポートのphy属性と下流側のエクスパンダにおけるデータ移行専用ポートのphy属性との関係によって、上流から下流へのアクセスが可能であったり不可能であったりする。具体的には、例えば、両方のデータ移行専用ポートのphy属性が“Table”である、或いは、下流側のエクスパンダにおけるデータ移行専用ポートのphy属性が“Table”であって、上流側のエクスパンダにおけるデータ移行専用ポートのphy属性が“Subtractive”である場合には、上流から下流へのアクセスが不可能であるが、下流側のエクスパンダにおけるデータ移行専用ポートのphy属性が“Subtractive”であって、上流側のエクスパンダにおけるデータ移行専用ポートのphy属性が“Table”である場合や、両方のphy属性が“Subtractive”である場合には、上流から下流へのアクセスが可能である。
次に、移行先システム200を例に採り、図27A及び図27Bを参照して、ストレージシステムのモードについて説明する。
図27Aに示すように、移行先システムが実行可能な複数のモードとして、通常モード(CTL_ONモード)と、CTL_OFFモードと、筐体拡張モードの3種類がある。
通常モードは、メインSW250がオンで移行用SW220がオフであることにより定義されるモードである。通常モードでは、図22Bに示すように、上位I/F211、RAID制御部212及びSASコントローラ213の電源がオンである。また、通常モードでは、エクスパンダ214のファームウェア2145により、データ移行専用ポートのphy状態が無効(disable)であり、SASコントローラ接続ポートのphy状態が有効(enable)であり、エクスパンダ214のSASアドレスがデフォルトアドレス(所定の規則に従って設定されたアドレス)であり、データ移行専用ポートのphy属性が“table”である。
CTL_OFFモードは、移行用SW220の状態に関わらず、メインSW250がオフであることにより定義されるモードである。CTL_OFFモードでは、メインSW250がオフであるため、図22Aに示すように、上位I/F211、RAID制御部212及びSASコントローラ213の電源がオフである。また、図示しないが、CTL_OFFモードでは、エクスパンダ214のSASアドレスがデフォルトアドレスである。
筐体拡張モードは、メインSW250がオンで移行用SW220がオンであることにより定義されるモードである。筐体拡張モードでは、メインSW250がオンであるため、上位I/F211、RAID制御部212及びSASコントローラ213の電源がオンである。また、筐体拡張モードでは、エクスパンダ214のファームウェア2145により、データ移行専用ポートのphy状態が有効であり、SASコントローラ接続ポートのphy状態が無効であり、エクスパンダ214のSASアドレスがデフォルトアドレスと異なるアドレスであり、データ移行専用ポートのphy属性が“subtractive”である。
図25は、ファームウェア2145が行う処理の流れを示す。
例えば、移行用SW220やメインSW250のオン/オフが切替えられたことに応答して、この処理が開始される。
ファームウェア2145は、メインSW250がオフである場合(S21:NO)、言い換えれば、CTL_OFFモードである場合、エクスパンダ214のSASアドレスをデフォルトアドレスとする(S32)。
ファームウェア2145は、メインSW250がオンであり移行用SW220がオフである場合(S21:YES、S22:NO)、言い換えれば、通常モードである場合、以下の処理を行う。すなわち、ファームウェア2145は、エクスパンダ214のSASアドレスをデフォルトアドレスとし(S27)、データ移行専用ポートのphy属性を“table”とし(S28)、データ移行専用ポートのphy状態を無効とし、SASコントローラ接続ポートのphy状態を有効とする(S29)。その後、ファームウェア2145は、所定の指示を受けた場合には(S30:YES)、データ移行専用ポートのphy状態を無効から有効に変更する(S31)。所定の指示としては、例えば、データ移行のための移行指示であっても良いし、筐体拡張モードにおけるストレージシステム内のHDDを認識することの認識指示であっても良い。
ファームウェア2145は、メインSW250がオンであり移行用SW220がオンである場合(S21:YES、S22:YES)、言い換えれば、筐体拡張モードである場合、以下の処理を行う。すなわち、ファームウェア2145は、エクスパンダ214に接続されているエクスパンダ214のSASアドレスをデフォルトアドレスと異なるアドレスに変更し(S24)、データ移行専用ポートのphy属性を“subtractive”とし(S25)、データ移行専用ポートのphy状態を有効とし、SASコントローラ接続ポートのphy状態を無効とする(S26)。
S24でアドレス変更を行う理由は、以下の通りである。
各ストレージシステム100、200では、それぞれ、例えば、所定の規則に従って、エクスパンダ114、214にSASアドレスが割り振られることがある。また、エクスパンダ114、214に接続されているHDD140、240がSATA_HDDである場合には、前述したように、SATA_HDDそれ自身がSASアドレスを有するわけではないため、所定の規則に従って、SATA_HDDが接続されているphyについてSASアドレスが割り振られることがある。このため、移行元システム100におけるエクスパンダ114やそれのphyについてのSASアドレスと、移行先システム200におけるエクスパンダ2140やそれのphyについてのSASアドレスとが競合しているおそれがある。このようなストレージシステム100、200同士を接続し、例えば移行先システム200を筐体拡張モードとした場合、移行元システム100におけるSASコントローラ113が、移行元システム100におけるエクスパンダ114やHDD140のSASアドレスに加えて、移行先システム200におけるエクスパンダ214やHDD240のSASアドレスを取得するが、上記のように競合しているSASアドレスがある場合には、アドレス競合によるエラーが生じてしまう。これを回避するために、S24のようなアドレス変更が行われる。なお、S24において、ファームウェア2145は、エクスパンダ214に接続されているHDD240にSATA_HDDがあれば(例えばそれがルーティングテーブル2146を参照することにより検出されたならば)、そのSATA_HDDが接続されているphyについてのSASアドレスも、別のSASアドレスに変更する。
図2は、移行元システム100から移行先システム200へのデータ移行の手順の概要を示す。
通常、エクスパンダ114,214は、その上位に位置する一つのSASコントローラ113,213によって認識される。通信ケーブル500によって接続されていない場合は、移行元システム100のエクスパンダ114は、SASコントローラ113によって認識され、移行先システム200のエクスパンダ214は、SASコントローラ213によって認識される。SASコントローラ113,213は、認識できたエクスパンダ114,214を経由して、そこに接続されているHDD140,240にアクセスできる。
ここで、両システム100,200間の接続は、上述したように、エクスパンダ114,214同士が通信ケーブル500によって接続されることにより行われる(S1)。従って、両システム100,200が接続されると、それぞれのエクスパンダ114,214の上位には、二つのSASコントローラ113,213が位置することになる。このような状態では、一のエクスパンダ114,214に対して二つのSASコントローラ113,213の制御が競合してしまうので、ストレージシステム100,200は、正常に動作しない。
そこで、メインSW150、250と移行用SW120,220とが利用される。具体的には、移行元システム100と移行先システム200の一方を通常モードとし他方を筐体拡張モードとすることで、移行元システム100から移行先システム200へのデータ移行が可能となる。両方のストレージシステムのRAID制御部112、212やSASコントローラ113、213が稼働しているままでは、データ移行のための処理が複雑になるおそれがあるが(例えば、RAID制御部112、212間のやり取りが必要になってしまう等)、本実施形態によれば、筐体拡張モードの場合、エクスパンダ214とSASコントローラ213との間の論理的な接続が切れるので、そのような問題を解消することができる。
具体的には、例えば、移行元システム100を通常モードとし、移行先システム200を筐体拡張モードとする場合、図示のように、移行元システム100では、メインSW150はオンであるが移行用SW120はオフであり(S2B)、一方、移行先システム200では、メインSW250及び移行用SW220がオンにされる(S2A)。なお、S1、S2A及びS2Bは、どのような順番でも良い。
移行先システム200のエクスパンダ214(ファームウェア2145)は、筐体拡張モード(メインSW250:ON、移行用SW220:ON)を検出すると、SASコントローラ接続ポートのphy状態を無効とすることで(S3A)、SASコントローラ213とエクスパンダ214との間の論理的な接続を切断する。また、エクスパンダ214は、データ移行専用ポートのphy状態を有効とし、それのphy属性を“subtractive”とする(S3B)。更に、エクスパンダ214は、エクスパンダ214のSASアドレスをデフォルトアドレスと異なるアドレスに変換する(SATA_HDDがあればそのアドレスも変換する)(S3C)。上記の流れにおいて、S3A、S3B及びS3Cは、どのような順番でも良い。
移行ツール310が、移行元システム100に所定の指示を送信する(S4)。RAID制御部112が、その所定の指示を受けて、SASコントローラ113を通じて、所定の指示をエクスパンダ114に送信する。エクスパンダ114は、その所定の指示に応答して、エクスパンダ114のデータ移行専用ポートのphy状態を有効とする(S5)。通常モードでは、エクスパンダ114のデータ移行専用ポートのphy属性は“table”である。従って、以上の一連の流れにより、エクスパンダ114のデータ移行専用ポートとエクスパンダ214のデータ移行専用ポート間の論理的な接続が可能となる。
この場合、SASコントローラ113は、エクスパンダ114、それに接続されている全てのHDD140、エクスパンダ214、及びそれに接続されている全てのHDD240のそれぞれのSASアドレスを取得して、例えば図30に例示するアドレスマップ(例えばSASコントローラ113における図示しないメモリに保存される情報)1141に、取得したSASアドレスやそのSASアドレスに対応したデバイスに関するデバイス情報などを登録することができる。その後、SASコントローラ113は、そのアドレスマップ1141を基に、移行先ストレージシステム200内のHDD240にアクセスすることができる。
RAID制御部112は、移行ツール310からの移行指示に応答して、ユーザデータやシステム情報のデータ移行を行う(S6)。具体的には、RAID制御部112は、ユーザデータやシステム情報をHDD140から読出し、読み出したユーザデータやシステム情報を、エクスパンダ114のデータ移行専用ポートとエクスパンダ214のデータ移行専用ポートとを介して、移行先システム200のHDD240に書き込む。
以上のように、両システム100,200間の接続がエクスパンダ114,214同士の接続によって行われることにより、移行元システム100におけるRAID制御部112は、HDD140にアクセスするのと同じ要領で、移行先システム200のHDD240へアクセスできる。従って、ホスト400を経由してデータ移行を行う場合に比べて、高速にデータ移行を行えるようになる。
なお、本実施形態では、図26に示すように、移行元システム100を筐体拡張モードとし、移行先システム200を通常モードとしたデータ移行も可能である。具体的には、データ移行専用ポート間をケーブル500で接続し(S11)、移行元システム100では、メインSW150及び移行用SW120がオンであり(S12B)、一方、移行先システム200では、メインSW250はオンであるが移行用SW220がオフにされる(S12A)。なお、S11、S12A及びS12Bは、どのような順番でも良い。
移行元システム100のエクスパンダ114は、筐体拡張モード(メインSW150:ON、移行用SW120:ON)を検出すると、SASコントローラ接続ポートのphy状態を無効とすることで(S13A)、SASコントローラ113とエクスパンダ114との間の論理的な接続を切断する。また、エクスパンダ114は、データ移行専用ポートのphy状態を有効とし、それのphy属性を“subtractive”とする(S13B)。更に、エクスパンダ114は、エクスパンダ114のSASアドレスをデフォルトアドレスと異なるアドレスに変換する(SATA_HDDがあればそのアドレスも変換する)(S13C)。S13A、S13B及びS13Cは、どのような順番で行われても良い。
移行ツール310が、移行先システム200に所定の指示を送信する(S14)。RAID制御部212が、その所定の指示を受けて、SASコントローラ213を通じて、移行指示をエクスパンダ214に送信する。エクスパンダ214は、その所定の指示に応答して、エクスパンダ214のデータ移行専用ポートのphy状態を有効とする(S15)。
RAID制御部212は、移行ツール310からの移行指示に応答して、ユーザデータやシステム情報のデータ移行を行う(S16)。具体的には、RAID制御部212は、エクスパンダ114のデータ移行専用ポートとエクスパンダ214のデータ移行専用ポートとを介して、ユーザデータやシステム情報を移行元システム100におけるHDD140から読出し、読み出したユーザデータやシステム情報を、HDD240に書き込む。
以上のように、データ移行は、移行元システム100と移行先システム200のどちらが主体となって行うこともできる。以下の説明では、移行元システム100が主体となってデータ移行を行うことを例に採って説明する。
また、前述したように、移行元システム100と移行先システム200の両方のデータ移行専用ポートが、初期的には無効であり、通常モードであっても、所定の指示を受けない限り、有効にはならない。これにより、一方のストレージシステムに対して行われた誤操作によって他方のストレージシステムに影響が及んでしまう危険性を低減することができる。なお、誤った移行操作により移行先システム200に既存のユーザデータが消失してしまう危険性は、後述する工夫により低減することができる。簡単に述べると、例えば、移行先システム200或いは移行先LUに一度でもアクセスが発生したというログが移行先システム200に残っている場合には、移行先LUのフォーマットが行われない限り、データ移行が行われない。或いは、例えば、移行ツール310が、定義済みの移行先LUをユーザに選択させない。
また、この実施形態によれば、両方のストレージシステム100、200が通常モード或いはCTL_OFFモードの場合、両方のストレージシステム100、200におけるエクスパンダ114、214のSASアドレスはデフォルトアドレスとなる。例えば、一方のストレージシステム200が筐体拡張モードである場合に、間違って通常モードに変更された場合、エクスパンダ214のSASアドレスはデフォルトアドレスとなる。このため、図28に示すように、エクスパンダ114、214のそれぞれのSASアドレスが同じというアドレス競合エラーが生じ、データ移行が行われなくなる。
また、この実施形態では、リンクアップの時に(データ移行の途中で)、筐体拡張モードであるストレージシステムが通常モードへ戻る指示を受けた場合(例えば、データ移行中に移行用SWがオンからオフに切替えられた場合)、通常モードとなるため、そのストレージシステム内のエクスパンダが、そのエクスパンダのアドレスをデフォルトアドレスに戻す。これにより、図28に例示したように、エクスパンダ間でのSASアドレスの競合が発生するため、データ移行失敗となる。
さて、以下、移行元システム100が備える記憶装置を例に採り、ストレージシステムの記憶装置の構成について説明する。
図3は、本実施形態に係る移行元システム100が備える記憶装置の構成図である。尚、移行先システム200も、基本的にこれと同じ構成である。
本実施形態では、同図に示すように、記憶装置が、複数のHDD140によって構成される。いくつかのHDD140の一部の領域には、システム情報600が記憶される。ここで、システム情報600とは、ストレージシステム100,200の構成又は制御に関する情報をいう。例えば、システム情報600には、ストレージシステム100,200の物理的又は論理的な構成、ストレージシステムに割り当てられる固有の設定値、ストレージシステムが実行可能な固有の機能、或いはアクセスされるホスト等を示す情報が含まれる。システム情報600は、ホスト400に提供される領域(ユーザ領域)以外の領域に記憶される。システム情報600の詳細については、後述する。一方、前述のユーザ領域には、ホスト400からアクセスされるデータであるユーザデータが記憶される。
また、複数のHDD140によりRAIDグループ(「RG」と略すこともある)150が構成される。図示してはいないが、ホスト400によって認識されるLUは、RAIDグループ150に含まれる所定の領域が割り当てられることによって形成される。
図4は、本実施形態に係るシステム情報600の構成例を示す図である。
システム情報600は、同図に示すように、例えば、二つの情報要素パッケージから構成され、それぞれの情報要素パッケージには、同一の情報が含まれる。このように二つの情報要素パッケージにより構成される場合は、後述する有効フラグ610等によりどちらか一方の情報要素パッケージが有効なものとして設定され、その有効な情報要素パッケージのみが参照される。
システム情報400のそれぞれの情報要素パッケージには、例えば、有効フラグ610や、マイクロプログラム620や、ストレージ固有情報630や、構成情報640や、トレース650等が含まれる。
有効フラグ610は、システム情報600をどの情報要素パッケージから読み出せばよいかを示す情報である。例えば、第一の情報要素パッケージの有効フラグ610が「ON」に設定されており、第二の情報要素パッケージの有効フラグ610が「OFF」に設定されている場合は、システム情報600は、第一の情報要素パッケージから読み出されることになる。
マイクロプログラム620は、ストレージシステム100,200の動作を制御するプログラムである。マイクロプログラム620には、そのサブプログラムとして移行プログラム621が含まれる。移行プログラム621が、RAID制御部112のメモリにロードされ、RAID制御部112のCPUによって実行されることにより、移行処理が行われる。また、マイクロプログラム621には、そのバージョンを示すバージョン情報622が含まれる。
ストレージ固有情報630には、シリアルナンバー631や、IPアドレス632や、有償機能情報633等が含まれる。シリアルナンバー631は、ストレージシステム100,200自体に割り当てられる製品番号である。IPアドレス632は、ストレージシステム100,200に割り当てられたIPアドレスである。IPアドレス632は、ホスト400等との接続のために利用される。有償機能情報633は、ストレージシステム100,200において利用可能な有償機能(即ち、使用料金を支払ったユーザのみが利用できる機能)を示す情報である。例えば、利用可能か否かは別として幾つかの有償機能がプリインストールされている場合は、有償機能情報633は、プリインストールされている有償機能の全てについて利用可能か否かを示すフラグとすることができる。また、利用可能となった有償機能のみがインストールされる場合は、有償機能情報633は、インストールされている有償機能が何であるかを示す情報とすることができる。本実施形態では、後者の場合を想定する。
構成情報640は、ストレージシステム100,200の物理的又は論理的な構成やアクセスされるホスト等について定義した情報である。構成情報640については、図5及び図6を参照して説明する。
トレース650は、ストレージシステム100,200に障害が発生したときの障害情報である。トレース650は、発生した障害の原因解析のために使用される。
図5は、本実施形態に係る構成情報640の一例を示す図である。
構成情報640には、例えば、HDD情報641や、RAIDグループ情報642や、LU情報643や、パラメータ情報644等が含まれる。
HDD情報641は、ストレージシステム100,200の記憶装置の物理的な構成(以下「記憶装置構成」とも呼ぶ)を示した情報である。記憶装置の物理的な構成としては、例えば、記憶装置がHDD140であれば、HDD140の個数や配置や容量等が考えられる。同図の場合は、HDD140が3つ備えられており、そのうちの一つ、例えばHDD番号が「0」のHDD140は、筐体番号が「0」の筐体におけるスロット番号が「0」のスロットに搭載されており、そのインタフェースが「SAS」であり、その容量が「256GB」であることがわかる。
RAIDグループ情報642は、RAIDグループ150の構成を定義した情報である。RAIDグループ情報642には、RAIDグループ150を構成するHDD140を示すHDD番号や、RAIDグループ150が提供するユーザ領域の総容量等や含まれる。ユーザ領域の総容量は、次のようにして求めることができる。即ち、同図においてRG番号が「0」のRAIDグループ150は、HDD番号が「0,1,2,3,4」の5つのHDD140から構成されている。そして、それぞれのHDD140の容量は、HDD情報641からわかるように、「256GB」である。また、そのRAIDグループ150は、その一つのストライプ領域に書かれるデータの組み合わせ(図示の「パリティ」)が「4D+1P」であるから、4つ分のHDD140に相当する容量がユーザ領域として割り当てられる。従って、256GBの4倍である「1000GB」(実際は「1024GB」)が、このRAIDグループ150におけるユーザ領域の総容量となる。尚、RAIDグループ150を構成するHDD140にシステム情報600が記憶される場合は、そのシステム情報のサイズ分が差し引かれる。また、このRAIDグループ150の空容量が「800GB」となっていることから、1000GBから800GBを差し引いた200GB分の領域が使用中であることがわかる。以下では、使用中である領域の容量を「使用容量」ともいう。
LU情報643は、LUの構成を定義した情報である。LU情報643には、そのLUが形成されたRAIDグループ150を示すRG番号等が含まれる。
パラメータ情報644は、ストレージシステム100,200に接続されるホスト400に関する情報である。パラメータ情報644については、図6を参照して説明する。
図6は、本実施形態に係るパラメータ情報644の一例を示す図である。
同図に示すように、パラメータ情報644には、上位I/F111に備えられる各ポートごとに、そのポートに関連付けられたホストグループを定義した情報が含まれる。例えば、同図では、ストレージシステム100,200には、ポート番号が「0」のポートとポート番号が「1」のポートとが備えられており、また、ポート番号が「0」のポートには、ホストグループ番号が「0」のホストグループとホストグループ番号が「1」のホストグループとが定義されていることがわかる。そして、ホストグループ番号が「0」のホストグループは、そのニックネームが「x1」であり、接続されるHBAが「y1」であること等もわかる。
以上が、本実施形態に係るストレージシステム100,200の構成の説明である。本実施形態におけるデータ移行では、ユーザデータのみならず、システム情報600も移行される。ユーザデータの移行は、移行元システム100のHDD140に記憶されているユーザデータを、移行先システム200の所定のHDD240にコピーすることにより行われる。一方、システム情報600の移行の場合は、移行元システム100のシステム情報600を移行先システム200へ単純にコピーしただけでは、移行先システム200が正常に動作しない場合もある。以下、システム情報600の移行方法について説明する。
図7は、本実施形態に係るシステム情報600の移行に関する説明図である。以下の説明を分かりやすくするために、同図のように、各情報の符号に「A」又は「B」を付与して、移行元システム100のシステム情報600と移行先システム200のシステム情報600とを区別する。
システム情報600に含まれる各要素(以下「システム情報要素」ともいう)は、その種別ごとに異なった性質を有するので、システム情報600の移行には、各システム情報要素ごとにその種別に応じて異なった方法が採用される。異なった性質として一例を挙げると、次のようなものがある。即ち、本実施形態では、新規なストレージシステム(非稼働中のストレージシステム)200へのデータ移行を想定する。従って、システム情報要素の種別によっては、データ移行を実施する際に、移行先システム200に存在するものと存在しないものとがある。例えば、同図において、実線で記載したシステム情報要素は、データ移行を実施する際に存在するものである。一方、破線で記載したシステム情報要素は、データ移行を実施する際に存在しない。
以下では、本実施形態にて例示した各種のシステム情報要素ごとに、それぞれの性質を考慮した移行方法について具体的に説明する。
まず、有効フラグ610について説明する。有効フラグ610は、同図に示すように、移行先システム200に存在している。そして、上述したように、有効フラグは、単にどの情報要素パッケージから読み出せばよいかを示す情報であり、移行元システム100からその内容を引き継ぐことを要しないから、移行されなくともよい。本実施形態では、有効フラグ610のコピーは、特に行われない。
マイクロプログラム620も、有効フラグ610と同様に、移行先システム200に存在する。そして、両システム100,200のそれぞれのマイクロプログラム620A,620Bは、どちらもストレージシステム100,200を制御するプログラムであって同じものである。従って、マイクロプログラム620は、原則、移行されなくともよい。但し、両システム100,200のそれぞれのマイクロプログラム620A,620Bのバージョンが異なる場合、特に、移行元システム100のバージョンの方が新しい場合には、移行先システム200のマイクロプログラム620Bのバージョンを最新のものにするためにも、マイクロプログラム620を移行することができる。移行の方法としては、移行先システム200のマイクロプログラム620Bを移行元システム100のものに置き換えればよいので、移行元システム100のマイクロプログラム620Aがそのままコピー(上書き)される。
次に、ストレージ固有情報630について説明する。その一つであるシリアルナンバー631は、ストレージシステム100,200自体に割り当てられる番号であるから、移行元システム100と移行先システム200とでは、それぞれ異なった値となっている。シリアルナンバー631は、例えば、ストレージシステム100,200の販売者が、その製品を購入したユーザをサポートする上で、その製品やユーザを識別するために用いられる。そして、データ移行を実施して移行先システム200への引継ぎを行ったユーザは、それまでと同様のサポートを継続して受けることを希望するものと予想される。従って、同様のサポートを継続して受けられるようにするためにも、移行元システム100のシリアルナンバー631Aが移行先システム200へ引き継がれる。即ち、移行元システム100のシリアルナンバー631Aが移行先システム200へコピーされる。一方、移行元システム100のシリアルナンバー631Aを移行先システム200にコピーしただけでは、両システム100,200のシリアルナンバー631が同一になってしまう。同一のシリアルナンバー631が複数のストレージシステム100,200に割り当てられることは、本情報の性質上、好ましくない。そこで、シリアルナンバー631については、移行元システム100のシリアルナンバー631Aが移行先システム200にコピーされると同時に、移行先システム200のシリアルナンバー631Bが移行元システム100にコピーされる。つまり、移行元システム100と移行先システム200のそれぞれのシリアルナンバー631が、互いにリプレイスされる。
ストレージ固有情報630の一つであるIPアドレス632は、移行先システム200には存在しない。これは、移行先システム200は稼働前の状態であり、未だネットワークの設定が行われていないためである。IPアドレス632は、ホスト400等との接続のために利用されるので、データ移行によってIPアドレス632が変更されれば、ホスト400等の設定変更が必要となってしまう。そのため、IPアドレス632は、変更されずにそのまま移行されることが望まれる。尚、本実施形態では、移行元システム100から移行先システム200へのリプレイスを行うのであるから(データ移行後は、移行元システム100の稼働は停止され、移行先システム200だけが稼働する)、移行元システム100と同じIPアドレス632を移行先システム200に割り当てても問題とならない。そこで、IPアドレス632については、移行元システム100のものが移行先システム200へそのままコピーされる。
ストレージ固有情報630の一つである有償機能情報633は、IPアドレス632と同様にそのまま引き継がれる。本実施形態では、ストレージシステム100,200のリプレイスを行うのであるから、移行元システム100において利用可能であった有償機能を移行先システム200においても利用可能とする必要があるからである。従って、移行元システム100の有償機能情報633Aは、移行先システム200へそのままコピーされる。尚、有償機能は、そのライセンスが一つであれば、一のストレージシステム100,200においてのみ利用できる機能である。データ移行後は、移行元システム100の稼働が停止されるので、両システム100,200で同じ有償機能が利用されることはないが、念のため、移行元システム100の有償機能が無効化される。例えば、移行された有償機能を示す情報が、移行元システム100の有償機能情報633Aから削除される。
次に、構成情報640について説明する。HDD情報641は、上述したように、ストレージシステム100,200の記憶装置構成を示した情報である。つまり、HDD情報641は、そのストレージシステム100,200に特化した情報であり、データ移行によって変更されるものではない。従って、HDD情報641の移行は、行われない。
RAIDグループ情報642は、RAIDグループ150の構成を定義した情報である。また、LU情報643は、LUの構成を定義した情報である。本実施形態では、移行元システム100におけるRAIDグループ150やLU等の論理的な構成をそのまま引き継いで移行先システム200へリプレイスする。そのため、これらの情報642,643は、RAIDグループ150やLUの構成が変更されないように移行される。従って、LU情報643については、移行元システム100のものが移行先システム200へそのままコピーされる。一方、RAIDグループ情報642については、両システム100,200間の記憶装置構成が異なる場合は、そのままコピーしても、移行先システム200が正常に動作するとは限らない。何故ならば、RAIDグループ情報642には、記憶装置構成に依存して決定される、HDD番号やRAIDグループ150の総容量等が含まれるからである。そこで、通常、RAIDグループ情報642については、移行先システム200の記憶装置構成に適合するように修正されてからコピーされる。具体的な処理を考慮すると、例えば、修正された新たなRAIDグループ情報642Bが移行元システム100において生成されて、その生成されたRAIDグループ情報642Bが移行先システム200へコピーされる。尚、記憶装置構成が同じ場合は、移行先システム100のRAIDグループ情報642Aは、移行先システム200へそのままコピーされる。
パラメータ情報644は、上述したように、ストレージシステム100,200に接続されるホスト400に関する情報である。データ移行後も、接続されるホスト400との関係には変更がないので、パラメータ情報644は、移行元システム100のものが移行先システム200へそのままコピーされる。
トレース650は、上述したように、ストレージシステム100,200に障害が発生したときの障害情報である。つまり、トレース650は、そのストレージシステム100,200に特化した情報であるので、移行されない。
以上が、システム情報600の移行方法の説明である。次に、図5に示す構成情報640が移行された場合に、その構成情報640がどのように修正されるかについて、図8を参照して具体的に説明する。
図8は、データ移行後の移行先システム200の構成情報640Bの一例を示す図である。ここでは、図5に示す構成情報640を移行元システム100の構成情報640として、その符号に「A」を付与して説明する。
図5のHDD情報641Aと図8のHDD情報641Bとを比較すると、移行元システム100と移行先システム200の記憶装置構成が異なっていることがわかる。特に、本例では、両HDD140,240の容量が異なっている。このような場合は、上述したように、RAIDグループ情報642Aが修正されてからコピーされる。
具体的には、RAIDグループ150の総容量と空容量が修正されることになる。上述したように、RAIDグループ150の総容量は、HDD140の容量とそのRAIDグループ150のパリティの構成とから求められるからである。また、空容量は、総容量と使用容量とから求められるからである。RG番号が「0」のRAIDグループ150について見ると、移行元システム100のHDD140の容量が「250GB」であるため、その総容量が「1000GB」であった。これに対し、移行先システム200のHDD240の容量が「500GB」であるため、その総容量が「2000GB」に修正される。また、上述したように、RG番号が「0」のRAIDグループ150の使用容量は、「200GB」である。従って、総容量が「1000GB」から「2000GB」に修正されたことにより、空容量は、「800GB」から「1800GB」(総容量から使用容量を差し引いた値)に修正される。
以下、図9乃至図14を参照して、本実施形態に係るデータ移行の手順及び移行処理の説明を行う。
図9は、本実施形態に係るデータ移行の手順を示すフローチャートである。
まず、移行元システム100が、通常モード(移行用SW120:OFF、メインSW150:ON)に設定されて、起動される(S101)。また、移行先システム200が、筐体拡張モード(移行用SW220:ON、メインSW250:ON)に設定されて、起動される(S102)。そして、両システム100,200が起動された後、両システム100,200は、SASケーブル等の通信ケーブル500を介して相互に接続される(S103、S104)。
管理用PC300の移行ツール310が、所定の指示を、移行元システム100のCTL110に送信する(S105)。そのCTL110におけるエクスパンダ114が、その指示に応答して、そのエクスパンダ114におけるデータ移行専用ポートのphy状態を有効とする。これにより、RAID制御部112が、SASコントローラ113を介して、移行先システム200のHDD240を認識することができ、以って、HDD240へのデータの読み書きが可能な状態となる(S106)。
ここまでが、データ移行処理を行うために必要とされる準備操作であり、この準備操作が完了した後に、データ移行が可能となる。
移行ツール310は、移行元システム100からRAIDグループ情報642A及びLU情報643Aを取得する(S107)。具体的には、まず、移行ツール310が、移行元システム100のCTL110に対してRAIDグループ情報642A及びLU情報643Aの取得を要求する。要求を受けたCTL110(RAID制御部112)は、移行元システム100のHDD140からRAIDグループ情報642A及びLU情報643Aを読み出して、読み出した情報642A,643Aを移行ツール310へ送信する。
次に、移行ツール310は、所定のユーザ選択画面を表示し、ユーザからの選択を受け付ける(S108)。ユーザ選択画面には、例えば、移行対象のユーザデータ(以下「移行対象データ」とも呼ぶ)を選択するための項目等が設けられる。移行対象データの選択は、例えば、RAIDグループ150やLUごとに行うことができる。つまり、RAIDグループ150やLUごとにそれらに属するユーザデータを移行するか否かを決定することができる。具体的には、例えば、移行対象データを選択する項目には、移行元システム100が有するRAIDグループ150やLUの名称やID等の一覧が表示される。ユーザは、その一覧の中から移行したいユーザデータが属するRAIDグループ150やLUを選択する。尚、移行元システム100が有するRAIDグループ150やLUは、S107にて得られたRAIDグループ情報642AやLU情報643Aから知ることができる。また、このような移行対象データを選択するための項目を設けずに、無条件に全てのユーザデータが移行されるようにしてもよい。
その後、ユーザからの指示に応じて、移行ツール310は、移行元システム100のCTL110に対してデータ移行を指示する(S109)。この際、CTL110には、移行対象データを示す情報として、S108にて選択されたRAIDグループ150やLUを示す情報(ID等)が併せて通知される。
データ移行の指示を受けたCTL110は、移行処理を実施する(S110)。移行処理は、RAID制御部112のCPUが、HDD140に記憶された移行プログラム621Aをメモリにロードして、ロードしたプログラム621を実行することで実施される。移行処理の詳細については、後述する。移行処理が完了すると、CTL110は、移行ツール310へ移行の完了を通知する(S111)。
移行の完了の通知を受けた移行ツール310は、その旨を表示してユーザに通知する(S112)。
その後、通信ケーブル500が外されて、両システム100,200が切り離される(S113)。
その後、両システム100,200が再起動される(S114、S115)。このとき、移行先システム200の移行用SWはOFFに設定される。
以上の手順に従って、ユーザ操作と管理用PC及び両システム100,200の処理とが実施されることにより、移行元システム100から移行先システム200へのデータ移行が完了する。
尚、移行ツール310が移行を指示した後、移行の完了の通知を受けるまでの間(S109からS112までの間)、移行元システム100が、定期的又は不定期的に、移行ツール310へ移行処理の進捗状況を報告するようにしてもよい。そして、報告を受けた移行ツール310は、移行処理の進捗状況を、GUIを介してユーザに報告することができる。これにより、ユーザは、管理用PC300上で、移行の指示に加えて、その移行処理の進捗状況を把握できるようになる。進捗状況を示す情報(以下「進捗情報」ともいう)としては、例えば、移行対象データの総容量とそのうち移行が完了したものの容量との関係や、移行対象の全LUとそのうち移行が完了したLUとの関係や、移行を開始してからの経過時間や、移行が完了するまでにかかると予想される時間等が考えられる。
また、移行ツール310が、移行元システム100から受信した進捗情報を、ファイル等に保存するようにしてもよい。こうすることで、移行処理が行われている最中に移行ツール310が中断された場合でも、ユーザは、その中断時点での移行処理の進捗状況を知ることができるようになる。この進捗情報が記録されるファイルの一例として、図21に示すものが考えられる。同図のように、このファイル900には、例えば、移行先システム100及び移行元システム200を示す情報や、移行元システム100が取得したシステム情報600(移行元システム100のシステム情報600A又は/及び移行先システム200のシステム情報600B)や、S108にてユーザが選択した指示内容を示す情報や、進捗情報等が含まれる。
図10は、本実施形態に係る移行処理を示すフローチャートである。本処理は、図8におけるS110に相当する。
データ移行の指示を受けた移行元システム100のCTL110は(S201)、移行先システム200からシステム情報600Bを取得する(S202)。具体的には、RAID制御部112が、移行先システム200のエクスパンダ214を介してHDD240にアクセスし、HDD240から移行先システム200のシステム情報600Bを読み出す。ここで読み出されるシステム情報600Bには、有効フラグ610Bと、マイクロプログラム620Bのバージョン情報622Bと、シリアルナンバー631Bと、HDD情報641Bとが含まれる(必要に応じて他種のシステム情報要素が含まれてもよい)。読み出されたシステム情報600Bは、RAID制御部112が備えるメモリに格納される。
次に、CTL110は、自ストレージシステム(即ち、移行元システム)100のシステム情報600AをHDD140から取得する(S203)。具体的には、RAID制御部112は、自ストレージシステム100のHDD140にアクセスし、HDD140からシステム情報600Aを読み出して、読み出した情報600を自己が備えるメモリに格納する。ここでは、システム情報600Aに含まれる全てのシステム情報要素が取得されてもよいし、コピーされないシステム情報要素(有効フラグ610やトレース650等)を除いたものだけが取得されてもよい。
その後、システム情報600の移行処理が行われる(S204)。システム情報600の移行処理については、後述する。
その後、ユーザデータの移行処理が行われる(S205)。即ち、CTL110は、移行ツール310から通知された移行対象データを示す情報(例えば、LUNやRAIDグループ150のID)を参照して、その情報から特定されるHDD140の移行対象データを移行先システム200へ移行する。具体的には、RAID制御部112は、移行対象データをHDD140から自己のメモリに読み出した後、読み出したデータを、通信ケーブル500を経由して移行先システム200へ転送し、所定のHDD240の所定の領域へコピーする。移行対象データがコピーされるHDD240及びその領域は、S204にてコピーされた移行後のシステム情報600Bに適合するように決定される。
システム情報600及びユーザデータの移行処理が完了した後、CTL110は、移行元システム100のHDD140に記憶されている全てのデータ(システム情報600Aとユーザデータ)を削除する(S206)。尚、移行ツール310の選択画面において、このような削除を行うか否かを選択できるようにし、ユーザが削除しないことを選択した場合は、S206の処理を行わないようにすることもできる。
尚、本実施形態の変形例として、次のような処理も行うことができる。即ち、システム情報600には、記憶装置がホスト400から一度でもアクセスされた場合に「ON」となるフラグ(以下「アクセスフラグ」ともいう)が含まれるようにし、S202において移行先システム200のアクセスフラグが取得される。その後、そのアクセスフラグが判定され、「ON」であった場合は、既に移行先システム200が利用されている旨が移行ツール310及びユーザに通知され、移行処理が中止される。一方、「OFF」であった場合は、S203〜S205に従って移行処理が行われる。
このような処理が行われることにより、誤って新規でない(何らかのデータが記憶されている)ストレージシステム100,200を移行先システム200とした場合でも、移行先システム200に記憶されているデータの消滅や破壊を避けることができるようになる。尚、アクセスフラグは、HDD140,240ごとやRAIDグループ150ごとやLUごとにアクセスされたか否かを示すものであってもよい。
以上が、本実施形態に係る移行処理の説明である。以下、図11乃至図14を参照してシステム情報600の移行処理の説明を行う。
図11は、本実施形態に係るシステム情報600の移行処理を示すフローチャートである。本処理は、図10におけるS204に相当する。
システム情報600の移行処理が開始されると、移行元システム100のCTL110は、S203で取得した、自ストレージシステム100のシステム情報600Aの中から、一のシステム情報要素を選択する(S301)。
次に、選択されたシステム情報要素について、その種別が判定される(S302)。即ち、選択されたシステム情報要素が、有効フラグ610やマイクロプログラム620やストレージ固有情報630や構成情報640やトレース650等のうちのどの情報要素に当たるかを判定する。尚、選択されたシステム情報要素がストレージ固有情報630である場合は、それがシリアルナンバー631であるかIPアドレス632であるか有償機能633であるかについても判定される。また、構成情報640である場合は、それがHDD情報641であるかRAIDグループ情報642であるかLU情報643であるかパラメータ情報644であるかについても判定される。
その後、CTL110は、選択されたシステム情報要素について、その種別に応じて、その情報要素に対応する移行後のシステム情報要素を生成し、生成した移行後のシステム情報要素を移行先システム200のHDD240へ書き込む(S303)。本処理は、選択されたシステム情報要素の種別に応じて異なるので、本処理の詳細については、その種別ごとに図12乃至図14を参照して説明する。
自ストレージシステム100のシステム情報要素の全てについて、S301〜S303の処理が繰返された後(S304)、本処理は、終了する。なお、S304の後、移行先システムにおいて、二つの情報要素パッケージの内容が同じであれば、任意に選択された情報要素パッケージにおける有効フラグが有効に設定され、他方の情報要素パッケージにおける有効フラグが無効に設定されて良い。また、それら二つの情報要素パッケージにおいて、少なくとも一つのシステム情報要素に新旧があれば、新しいシステム情報要素が存在する情報要素パッケージにおける有効フラグが有効に設定され、旧いシステム情報要素が存在する情報要素パッケージにおける有効フラグが無効に設定されて良い。
図12は、マイクロプログラム620に関する移行処理を示すフローチャートである。
S302にて判定された結果、選択されたシステム情報要素がマイクロプログラム620であった場合は、S303において本処理が実施される。
まず、CTL110は、移行元システム100のマイクロプログラム620Aのバージョン情報622Aと、移行先システム200のマイクロプログラム620Bのバージョン情報622Bとを比較する(S401)。それぞれの情報は、S202及びS203において取得され、RAID制御部112が備えるメモリに格納されている。
S401における比較の結果、移行先システム200のマイクロプログラム620Bのバージョンが、移行元システム100のマイクロプログラム620Aのバージョンよりも古い場合は(S401:YES)、移行元システム100のマイクロプログラム620Aが、移行先システム200にコピーされる。具体的には、RAID制御部112が、そのメモリに格納されている移行元システム100のマイクロプログラム620Aを、SASコントローラ113及びエクスパンダ114,214を経由して移行先システム200へ転送し、移行先システム200のHDD240のマイクロプログラム620Bが記憶されている領域に上書きする。本実施形態では、システム情報600が二つの情報要素パッケージから構成されているので、有効となっている情報要素パッケージには古いバージョンのマイクロプログラム620Bをそのまま残して、無効となっている情報要素パッケージにのみ新しいパージョンのマイクロプログラム620Aを上書きすることができる。
次に、移行先システム200の有効フラグ610Bが書き換えられる(S403)。即ち、S402にてコピーされた新しいバージョンのマイクロプログラム620Bが有効となるように、新しいバージョンのマイクロプログラム620Bが含まれた情報要素パッケージにおける有効フラグ610Bが変更される。
一方、S401における比較の結果、移行先システム200のマイクロプログラム620Bのバージョンが、移行元システム100のマイクロプログラム620Aのバージョンよりも新しい場合、又はそれらが同じである場合は(S401:NO)、マイクロプログラム620の移行は行われない。
図13は、ストレージ固有情報630に関する移行処理を示すフローチャートである。
S302にて判定された結果、選択されたシステム情報要素がストレージ固有情報630であった場合は、S303において本処理が実施される。
選択されたシステム情報要素が、有償機能情報633であった場合は(S501:YES)、移行元システム100の有償機能情報633Aが、移行先システム200にコピーされる(S502)。
その後、移行元システム100の有償機能が無効化される(S503)。本実施形態では、有償機能情報633は、インストールされている有償機能(利用可能な有償機能)が何であるかを示す情報であるから、その情報を削除することにより、有償機能が無効化される。尚、有償機能情報633が、プリインストールされている有償機能の全てについて利用可能か否かを示すフラグである場合は、そのフラグの全てを「OFF」に変更することで、有償機能が無効化される。
また、選択されたシステム情報要素が、シリアルナンバー631であった場合は(S504:YES)、移行元システム100のシリアルナンバー631Aと移行先システム200のシリアルナンバー631Bとがリプレイスされる(S505)。即ち、RAID制御部112は、そのメモリに格納されている移行元システム100のシリアルナンバー631Aを、移行先システム200のHDD240のシリアルナンバー631Bが記憶されている領域に上書きする。また、RAID制御部112は、そのメモリに格納されている移行先システム200のシリアルナンバー631Bを自ストレージシステム100のHDD140のシリアルナンバー631Aが記憶されている領域に上書きする。
更に、選択されたシステム情報要素が、IPアドレス632であった場合は(S506:YES)、移行元システム100のIPアドレス632Aが移行先システム200にコピーされる(S507)。
図14は、構成情報640に関する移行処理を示すフローチャートである。
S302にて判定された結果、選択されたシステム情報要素が構成情報640であった場合は、S303において本処理が実施される。
選択されたシステム情報要素が、RAIDグループ情報642又はLU情報643であった場合は(S601:YES)、両システム100,200の記憶装置構成の違いを考慮して、移行元システム100のRAIDグループ情報642A又はLU情報643Aが修正される(S602)。
その後、修正されたRAIDグループ情報642又はLU情報643が、移行先システム200へコピーされる(S603)。
また、選択されたシステム情報要素が、パラメータ情報644であった場合は(S604:YES)、移行元システム100のパラメータ情報644Bが、移行先システム200にコピーされる(S604)。
更に、選択されたシステム情報要素が、ディスク情報641であった場合は(S606:YES)、移行処理は行われない。
以上が、本実施形態に係るデータ移行の手順及び移行処理の説明である。
本実施形態によれば、バックエンドでSASアドレスの重複無くストレージシステム同士を接続し、バックエンドでのデータ移行が可能となる。
また、本実施形態によれば、データ移行において、ユーザデータだけでなく、システム情報600も移行できるようになる。従って、移行後のストレージシステムの環境を移行前のものと同じ環境にするために、ユーザが、データ移行後に、システム情報を設定し直さなくともよくなる。
<第二の実施形態>。
本実施形態では、非稼働中のストレージシステム100,200へのデータ移行に加えて、稼働中のストレージシステム100,200へのデータ移行も考慮される。また、データ移行後に、両システム100,200が並列して稼働されることも考慮される。即ち、本実施形態では、第一の実施形態にて想定したようなストレージシステム100,200のリプレイスに限らず、並列に稼働している両システム100,200間における全部又は一部のユーザデータのデータ移行をも想定する。本実施形態を実現するストレージシステム100,200の構成、及び、移行先システム200が稼働中の場合のシステム情報600の移行方法は、第一の実施形態と一部異なる。以下では、主に、第一実施形態との相違点について説明する。
図15は、本実施形態に係るデータ移行の制御装置を備えたストレージシステム100,200の構成例を示す図である。
第一の実施形態と同様、移行先システム100と移行元システム200とが、通信ケーブル500を介して接続される。通信ケーブル500は、システムI/F115,215が備えるインタフェースに合わせて、例えば、FC(Fibre Channel)ケーブルやLANケーブル等とすることができる。また、移行元システム100には、管理用PC300がLAN等の通信ネットワークを介して接続される。
管理用PC300とホスト400は、第一の実施形態のものと同じである。また、本実施形態においても、移行先システム100と移行元システム200の構成は、基本的に同じなので、移行先システム100を代表例に採ってストレージシステム100,200の構成を説明する。尚、第一の実施形態における符号と同一符号が付されている各部は、第一の実施形態におけるものと同じである。ここでは、新たな部について説明する。
本実施形態に係るストレージシステム100には、例えば、二重化されたCTL110’と、記憶装置とが搭載される。記憶装置の構成は、第一の実施形態と同じである。
CTL110’には、例えば、上位I/F111と、システムI/F115と、CPU116と、メモリ117と、データ転送制御部118と、ディスクI/F118とが備えられる。
データ転送制御部118は、第一の実施形態におけるRAID制御部112に相当し、CPU116及びメモリ117と連携して、コマンドの処理を実行する。
ディスクI/F118は、第一の実施形態におけるSASコントローラ113及びエクスパンダ114に相当し、データ転送制御部118からの指示に応答して、HDD140に対してデータの書込みや読出しを行う。
システムI/F115は、外部の装置と接続するためのインタフェースである。両システム100,200は、それぞれのシステムI/F115,215を介して接続される。
図16は、移行先システム200が稼働中の場合のシステム情報600の移行に関する説明図である。本実施形態では、データ移行後も、両システム100,200が並列して稼働されるものとする。
有効フラグ610とHDD情報641とトレース650が移行されないこと、及び、マイクロプログラム620がそのバージョンに依存して移行されたり移行されなかったりすることは、第一の実施形態と同じである。以下では、これら以外のシステム情報要素の移行方法について具体的に説明する。
まず、シリアルナンバー631とIPアドレス632について説明する。移行先システム200が稼働中であるから、これらのシステム情報要素631,632は、移行先システム200にも存在している。また、データ移行後も両システム100,200が並列して稼働するのであるから、これらのシステム情報要素631,631がリプレイスされる必要もない。従って、シリアルナンバー631とIPアドレス632は、特に移行されない。但し、移行元システム100と移行先システム200との間で、これらのシステム情報要素631,632を交換したい場合もあるかもしれない。そのような場合は、移行元システム100と移行先システム200のそれぞれのシリアルナンバー631又はIPアドレス632が、互いにリプレイスされる。これらのシステム情報要素631,632のリプレイスを行うか否かは、例えば、ユーザが、移行ツール310が提供する選択画面を介して選択することができる。
有償機能情報633は、移行元システム100において利用可能であった有償機能をどちらのシステム100,200で利用するかによって、その移行方法が変わる。即ち、移行元システム100において利用可能であった有償機能を、移行元システム100で継続して利用する場合は、有償機能情報633の移行は行われない。一方、移行元システム100において利用可能であった有償機能の全部又は一部を、移行元システム200で利用する場合は、移行対象の有償機能が、移行先システム200の有償機能情報633Bに追加される。そして、その移行対象の有料機能が、移行元システム100の有償機能情報633Aから削除される。尚、データ移行後に、どの有償機能をどのシステム100,200で利用するかについては、IPアドレス632に関する選択の場合と同様、移行ツール310が提供する選択画面を介して選択することができる。
RAIDグループ情報642、LU情報643及びパラメータ情報644のそれぞれの移行方法は、基本的に同じである。RAIDグループ情報642であれば、移行対象のRAIDグループ150(移行元システム100のRAIDグループ情報642Aに含まれているRAIDグループ150の全部又は一部)を定義する情報が、移行先システム200のRAIDグループ情報642Bに追加される。そして、その移行対象のRAIDグループ150を定義する情報が、移行元システム100のRAIDグループ情報642Aから削除される。一方、LU情報643であれば、移行対象のLU(移行元システム100のLU情報643Aに含まれているLUの全部又は一部)を定義する情報が、移行先システム200のLU643Bに追加される。そして、その移行対象のLUを定義する情報が、移行元システム100のLU情報643Aから削除される。更に、パラメータ情報644であれば、移行対象のホストグループ(移行元システム100のパラメータ情報644Aに含まれているホストグループの全部又は一部)を定義する情報が、移行先システム200のパラメータ情報644Bに追加される。そして、その移行対象のホストグループを定義する情報が、移行元システム100のパラメータ情報644Aから削除される。尚、どのRAIDグループ150、LU又はホストグループを移行するかについては、上記同様、移行ツール310が提供する選択画面を介して選択することができる。
以上が、移行先システム200が稼働中の場合のシステム情報600の移行方法の説明である。次に、この移行方法に従って、図5に示す構成情報640が移行された場合及び図6に示すパラメータ情報644が移行された場合のそれぞれについて、図17及び図18を参照して具体的に説明する。
図17は、移行先システム200が稼働中の場合のデータ移行後の移行先システム200の構成情報640B’の一例を示す図である。
移行先システム200が稼働中の場合は、非稼働中の場合(図8)と異なり、通常、移行先システム200には、RAIDグループ150やLUが既に定義されている。そして、それらを定義する情報が、移行先システム200のRAIDグループ情報642BやLU情報643Bに含まれている。図17の場合は、破線で囲まれた情報が、既に定義されているRAIDグループ150やLUを定義する情報である。即ち、図17の場合、RG番号が「0」のRAIDグループ150とLU番号が「0」のLUとが、既に定義されていることになる。以下では、RAIDグループ150を例に採って、詳しく説明する。
上述したように、RAIDグループ150が移行されると、移行対象のRAIDグループ150を定義する情報が、移行先システム200のRAIDグループ情報642B’に追加される。従って、移行後の移行先システム200の構成情報640B’は、図17に示すように、既に定義されているRAIDグループ150及びLUを定義する情報(破線部分)に、移行対象のRAIDグループ150及びLUを定義する情報(破線以外の部分)が追加された形となる。尚、第一の実施形態と同様、総容量や空容量が修正されることに加えて、本実施形態では、移行対象のRAIDグループ150に割り当てられる、RG番号やHDD240に合うように、RG番号やHDD番号等も修正されることになる。本例では、RG番号が「0」のRAIDグループ150が既に定義されており、そのRAIDグループ150には、HDD番号が「0,1,2,3,4」の5つのHDD240が割り当てられている。従って、移行対象のRAIDグループ150には、HDD番号が「0,1,2,3,4」のHDD240以外の未使用のHDD240が割り当てられることになる。そのため、RG番号が「1」のRAIDグループ150には、HDD番号が「5,6,7,8,9」の5つのHDD240が割り当てられている。尚、図14におけるRG番号が「1」のRAIDグループ150は、図5(移行前)におけるRG番号が「0」のRAIDグループ150に相当する。
図18は、移行先システム200が稼働中の場合のデータ移行後の移行先システム200のパラメータ情報644B’の一例を示す図である。
上述したように、パラメータ情報644の移行方法は、RAIDグループ情報642やLU情報643の移行方法と基本的に同じである。即ち、ホストグループが移行されると、移行対象のホストグループを定義する情報が、移行先システム200のパラメータ情報644B’に追加される。従って、移行後の移行先システム200のパラメータ情報644B’は、図18に示すように、既に定義されているホストグループ(破線部分)に、移行対象のホストグループを定義する情報(破線以外の部分)が追加された形となる。ここで、「ホストグループ」とは、ホストモードが関連付けられた一以上の論理ユニット(LU)のことである。「ホストモード」とは、ホスト400のOS(オペレーティングシステム)の種類によって異なるI/Oの形式(つまり入出力形式)のことである。ストレージシステムは、ホスト計算機400に認識させても良い一以上のLUに対し、ホストモードを関連付けることができる。
以下、本実施形態に係るデータ移行の手順の説明を行う。
図19は、本実施形態に係るデータ移行の手順を示すフローチャートである。
まず、管理用PC300と移行元システム100、移行先システム100と移行元システム200がそれぞれ接続される(S701、S702)。これにより、移行元システム100のCTL110’と移行先システム200のCTL210’との間で、リンクが確立する(S703)。
次に、移行ツール310が起動される(S704)。移行ツール310が起動されると、移行ツール310は、移行元システム100からRAIDグループ情報642A、LU情報643A及びパラメータ情報644Aを取得する(S705)。
次に、移行ツール310は、所定のユーザ選択画面を表示し、ユーザからの選択を受け付ける(S706)。ここでは、例えば、上述したような、シリアルナンバー631やIPアドレス632のリプレイスを行うか否かや、どの有償機能をどのシステム100,200で利用するかや、どのRAIDグループ150、LU又はホストグループを移行するか等が選択される。
その後、ユーザからの指示に応じて、移行ツール310は、移行元システム100のCTL110’に対してデータ移行を指示する(S707)。この際、CTL110’には、S706にて選択された各種の情報が併せて通知される。
データ移行の指示を受けたCTL110’は、移行処理を実施する(S708)。移行処理は、CPU116が、HDD140に記憶された移行プログラム621Aをメモリ117にロードして、ロードしたプログラム621を実行することで実施される。移行処理は、システム情報600の移行方法が変わるだけで、第一の実施形態と基本的に同じである。移行処理が完了すると、CTL110’は、移行ツール310へ移行の完了を通知する(S709)。
移行の完了の通知を受けた移行ツール310は、その旨を表示してユーザに通知する(S710)。
その後、通信ケーブル500が外されて、両システム100,200が切り離される(S711)。
その後、両システム100,200が再起動される(S712、S713)。
ここで、S108やS706にて表示されるユーザ選択画面について、移行対象のLUを選択する場合を例に挙げて、詳しく説明する。
図20は、移行対象のLUを選択するためのユーザ選択画面700,800の一例を示す図である。
画面700には、例えば、移行元システム100が有する全てのLUを移行対象のLUとするか、それとも一部のLUを移行対象のLUとするかを選択できるチェックボックスが設けられる。同図のように、「全て」が選択されると、全てのLUが移行対象のLUとされることになる。一方、「一部のLU」が選択されると、具体的にどのLUを移行対象とするかを選択するための画面800が表示される。
画面800には、例えば、移行元システム100が有する全部又は一部のLUに関する選択エリア810,820,830が設けられる。各選択エリア810,820,830には、そのLUをコピーするか否かを選択できる第一のチェックボックス811,821,831が設けられる。また、それぞれの第一のチェックボックス811,821,831の横には、移行先システム200においてそのLUを自動的に生成するか、それとも、LUを自動的に生成しないで既存のLUにそのLUのデータを移行するかのどちらかを選択できる第二のチェックボックス812,822,832が設けられる。同図における「LU00」や「LU01」のように、第一のチェックボックス811,821において「コピーする」が選択されると、それに対応する第二のチェックボックス812,822が有効になる。一方、「LU02」のように、第一のチェックボックス831において「コピーしない」が選択されると、それに対応する第二のチェックボックス832が無効になる。また、「LU00」のように、第二のチェックボックス812において「自動生成」が選択されると、「LU00」に相当するLUが移行先システム200に自動的に生成されることになる。一方、「LU01」のように、第二のチェックボックス822において「定義済みLUから選択」が選択されると、移行先システム200が有するLUのうちのいずれかを選択できるリストボックス823が表示され、既存のLUを選択できるようになる。同図の場合は、「LU10」が選択されているので、移行元システム100の「LU02」のデータが移行先システム200の「LU10」に移行されることになる。
尚、画面700,800の構成は、これらに限られるものではない。選択エリア810,820,830やチェックボックス811,812,813,821,822,832やリストボックス823等の画面の構成要素は、様々な位置に配置されてもよいし、他の構成要素が追加されてもよい。また、チェックボックスやリストボックスの代わりに他のユーザインタフェースが用いられてもよい。
以上が、本実施形態に係るデータ移行の手順の説明である。本実施形態によれば、ストレージシステム100,200間のリプレイスに限らず、並列に稼働しているストレージシステム100,200間においてユーザデータの全部又は一部を移行する際にも、ユーザデータに加えてシステム情報600も移行できるようになる。
上述した本発明の幾つかの実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
例えば、本実施形態では、移行元システム100と移行先システム200とが一対一に接続される場合を想定したが、一つの移行元システム100に対して複数の移行先システム200が接続されてもよい。そして、同一のデータを同時に、一つの移行元システム100から複数の移行先システム200へ移行できるようにすることもできる。
100…移行元システム、113,213…SASコントローラ、114,214…エクスパンダ、120…移行用スイッチ、150…メインスイッチ、200…移行先システム、300…移行ツール、400…ホスト、500…通信ケーブル、600…システム情報