JP4326552B2 - バックエンドで他のストレージシステムと通信するストレージシステム - Google Patents

バックエンドで他のストレージシステムと通信するストレージシステム Download PDF

Info

Publication number
JP4326552B2
JP4326552B2 JP2006278566A JP2006278566A JP4326552B2 JP 4326552 B2 JP4326552 B2 JP 4326552B2 JP 2006278566 A JP2006278566 A JP 2006278566A JP 2006278566 A JP2006278566 A JP 2006278566A JP 4326552 B2 JP4326552 B2 JP 4326552B2
Authority
JP
Japan
Prior art keywords
controller
storage system
configuration information
data
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006278566A
Other languages
English (en)
Other versions
JP2008097331A (ja
Inventor
裕介 野中
哲 西本
東 加納
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006278566A priority Critical patent/JP4326552B2/ja
Priority to US11/613,400 priority patent/US7650446B2/en
Priority to EP07251611A priority patent/EP1912115A3/en
Publication of JP2008097331A publication Critical patent/JP2008097331A/ja
Application granted granted Critical
Publication of JP4326552B2 publication Critical patent/JP4326552B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Description

本発明は、他のストレージシステムに接続されるストレージシステムに関する。
第一のストレージシステムに第二のストレージシステムを接続するケースとして、例えば、第一のストレージシステムに記憶されているデータを第二のストレージシステムに移行するケースがある。データ移行の技術として、例えば、文献1(特開2004−102374号公報)に開示の技術がある。
特開2004−102374号公報
例えば、第一のストレージシステムとして、第一のコントローラと、第一の記憶装置と、第一のコントローラと第一の記憶装置との間に介在する第一のスイッチ装置とを備えたストレージシステムが考えられる。この場合、第一のコントローラは、第一の上位装置(例えばホスト計算機)から送信された入出力要求(ライト要求/リード要求)を受信し、その受信した入出力要求に従って、第一のスイッチ装置を介して、前記複数の第一の記憶装置のうちのいずれかに対してデータの書込み及び/又は読出しを行うように構成されていることが考えられる。また、第二のストレージシステムとして、第一のストレージシステムと同様の構成になっていることが考えられる(第一のストレージシステムと同種の構成要素については、「第一」という言葉を「第二」と読み替えることにする)。
ストレージシステム間の通信技術の一つとして、例えば、第一及び第二のコントローラ間を専用線で直結しコントローラ間で通信する技術が考えられる。それとは異なる別の通信技術が望ましい場合がある。また、ストレージシステム間を接続するケースは、データ移行に限らず、他種のケースも有り得る。
従って、本発明の目的は、ストレージシステム間の新規の通信技術を提供することにある。
本発明の更なる目的は、後の説明から明らかになるであろう。
第一及び第二のスイッチ装置の少なくとも一方に、共有記憶域を備える。第一及び第二のコントローラを、該共有記憶域を介して互いに通信するよう構成する。
具体的には、例えば、該共有記憶域を備えるスイッチ装置に、複数のコマンド発行部(例えばSCSI規格で言うイニシエータ)から該共有記憶域を更新及び/又は参照するための更新コマンド及び/又は参照コマンドを受け付けるスイッチ制御部(例えばマイクロプロセッサ)を備える。各コントローラが、相手のコントローラにメッセージを送る場合には、該メッセージと共に更新コマンドを該スイッチ制御部に送信し、それにより、該メッセージを共有記憶域に書込むことができる。同様に、各コントローラは、相手のコントローラからのメッセージを受ける場合には、参照コマンドをスイッチ制御部に送信し、それにより、該メッセージを共有記憶域から読むことができる。
本発明によれば、ストレージシステム間の新規の通信技術が提供される。
本発明の一実施形態の概念を説明する。
第一及び第二のストレージシステムに、第一及び第二のコントローラと記憶装置との間に、第一及び第二のスイッチ装置が介在する。第一及び第二のスイッチ装置の少なくとも一方に、共有記憶域を備える。第一及び第二のコントローラを、該共有記憶域を介して互いに通信するよう構成する。
具体例を図20Aに示す。スイッチ装置は、例えば、SAS(Serial Attached SCSI)のExpanderである。Expanderに、共有記憶域が設けられる。Expanderは、SESターゲットを持ち、SCSI規格に従うSES(SCSI Enclosure Services)コマンドを複数のイニシエータA及びB(例えば第一及び第二のコントローラ)から受け付けることができるように構成されている。SESコマンドとしては、SESターゲットの内部状態を参照するためのコマンドや該内部状態を更新するためのコマンドがある。この内部状態を共有記憶域として使用することで、これを介して、複数のイニシエータA及びB間でメッセージを送受信することができる。
また、図20Bに示すように、各ストレージシステムのスイッチ装置に、ホスト接続用ポート(ホスト計算機が接続されるポート)とは別のデータ移行専用ポートが設けられる。データ移行専用ポートは専用線で接続され、該専用線を介してデータ移行が実行される。また、該データ移行中は、移行先のコントローラがホスト計算機からの入出力要求を処理することで、第一のストレージシステムのLUから専用線を介してデータを読出しホスト計算機に提供したり、該専用線を介してデータを該LUに書くことができる。
以下、図面を参照して、本発明の幾つかの実施例を説明する。その際、ストレージシステムに搭載される記憶装置は、例えば、ハードディスクドライブ(以下HDDという)とすることができるが、それに代えて、DVD(Digital Versatile Disks)ドライブ、磁気テープドライブ、フラッシュメモリなど種々の記憶装置を採用することができる。
図1は、本発明の第一実施例に係る計算機システムの構成例を示す。なお、図1では、第一と第二のストレージシステムがあるが、それらの同種の要素については同一の親番号と異なる子符号を付している。その際、第一のストレージシステムには、子符号として"A"を付し、第二のストレージシステムには、子符号として"B"を付している。以下、同種の要素を格別区別しない場合には親番号のみを用いて説明し、区別する場合には親番号と子符合との組み合わせを用いることにする。
SAN(Storage Area Network)190に、複数(又は一つ)のホスト計算機192と、第一及び第二のストレージシステム920A及び920Bとが接続されている。SAN190に代えて、他種の通信ネットワークが採用されても良い。
LAN(Local Area Network)191に、管理端末198と、第一及び第二のストレージシステム920A及び920Bとが接続されている。LAN191に代えて、他種の通信ネットワークが採用されても良い。
ホスト計算機192は、ストレージシステム920に、入出力要求(ライト要求/リード要求)を送信することにより、ストレージシステム920Aにデータを書込む又は読み出す。
管理端末198は、第一及び第二のストレージシステム920A及び920Bを管理するための計算機である。管理端末198は、例えば、論理ユニット(論理ボリュームと呼ばれることもある)の作成やセキュリティの設定など、後述する構成情報の変更に関わる作業に必要なGUI(Graphical User Interface)やCLI(Common Line Interface)等のユーザインタフェースを提供することができる。管理端末198が行う処理については後に詳述する。
第一及び第二のストレージシステム920A及び920Bは、ハードウェア構成としては略同様なので、第一のストレージシステム920Aを代表的に例に採り説明する。
第一のストレージシステム920Aには、コントローラ120Aと、一又は複数のドライブ部160Aとが備えられる。該サブシステム920A内では、コントローラ120Aと一又は複数のドライブ部160Aがカスケード状に接続されている。この接続構成は、ホスト計算機192からHDD12Aへのデータ書込みの際のデータの流れを例に採って言えば、コントローラ120Aが最上流となり、そこから、ドライブ部1、ドライブ部2、…ドライブ部p(pは1以上の整数(ここでは3以上の整数))のように下流へと続く構成になっている。以下、本実施例において、このような接続構成を指す場合には、「カスケード接続構成」と言うことにする。カスケード接続構成は、例えば、図示のような直列に限らず、例えば、ツリー状の構成になっていても良い。
コントローラ120Aは、第一のストレージシステム920Aの動作を制御する装置であり、ドライブ部160Aに備えられる第一のドライブ部コントローラ303Aのようなスイッチ装置とは異なる。コントローラ120Aは、例えば、冗長化(例えば二重化)されており、各コントローラ120Aが、他のコントローラ120Aと、コントローラ間通信インタフェース装置(以下、インタフェース装置を「I/F」と略記する)118Aを介して接続されている。これにより、一つのコントローラ120Aに障害が発生したことを他のコントローラ120Aが検出し、他のコントローラ120Aによる縮退運転が可能である。また、本実施例では、各HDD12Aに対するアクセス経路も冗長化されていて、一つのアクセス経路に障害が生じても他のアクセス経路を介してコントローラ120AからHDD12Aにアクセスすることができるように構成されている。
コントローラ120Aには、一又は複数のホストI/F114A、管理I/F119A、プロセッサ112A、メモリ105A、及びドライブI/F115Aが備えられる。
各ホストI/F114Aは、例えば通信ポートであり、ホスト計算機192から入出力要求を受け付ける。
管理I/F119Aは、例えば通信ポートであり、管理端末198からの命令を受け付ける。
メモリ105Aには、複数のコンピュータプログラムやデータが記憶される。複数のコンピュータプログラムとしては、例えば、入出力処理プログラム132A、構成管理プログラム134A及びデータ移行プログラム136Aがある。また、メモリ105Aには、キャッシュ領域150Aが設けられ、該キャッシュ領域150Aに、ホスト計算機192からHDD12Aに対して書込みまれる及び読み出されるデータが一時記憶される。
ドライブI/F115Aは、ドライブ部160Aの第一のドライブ部コントローラ303Aを介してHDD12Aと通信するためのインタフェース装置である。
プロセッサ112Aは、例えばCPU(Central Processing Unit)であり、メモリ105Aに記憶されているコンピュータプログラムを読み込んで実行する。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するプロセッサによって処理が行われるものとする。
入出力処理プログラム132Aは、ホストI/F114Aが受信した入出力要求を処理する。入出力要求がライト要求の場合、入出力処理プログラム132Aは、該ライト要求に従うデータをキャッシュ領域150Aに一時書き、該データを、キャッシュ領域150Aから読み出し、HDD12Aに書く。一方、入出力要求がリード要求の場合、入出力処理プログラム132Aは、HDD12Aからデータを読み出し、該データをキャッシュ領域150Aに一時書き、該データを、キャッシュ領域150Aから読み出し、該リード要求の送信元のホスト計算機192に送信する。
構成管理プログラム134Aは、後述する構成情報の管理を行うプログラムである。構成管理プログラム134Aは、例えば、管理端末198からの命令に応答して、構成情報を更新することができる。
データ移行プログラム136Aは、論理ユニット(LU)間のデータ移行を実行する。データ移行プログラム136Aが行う処理については、後に詳述する。
ドライブ部160Aには、冗長化された第一のドライブ部コントローラ303A及びデータ移行用ポート601Aが備えられる。各第一のドライブ部コントローラ303Aには、一又は複数のHDD12Aが接続される。データ移行用ポート601Aは、第一のドライブ部コントローラ303Aに接続されており、コントローラ120Aには接続されていない。データ移行用ポート601Aは、専用線(以下、データ移行用ケーブル)930を介して、第二のストレージシステム920Bのデータ移行用ポート601Bに接続される。データ移行用ケーブル930に代えて、通信ネットワークが採用されても良い。いずれの場合であっても、本実施例では、第一のドライブ部コントローラ303A及び303B間の通信、換言すれば、ストレージシステム920A及び920B間の通信は、バックエンドに備えられたそのデータ移行用ケーブル930を介して行われ、コントローラ120A及び120Bが接続されるSAN190を介して行われない。但し、例えば、そのバックエンドでの通信が不能になった場合には、SAN190を介してコントローラ120A及び120B間で通信が行われても良い。
以上が、本実施例に係る計算機システムの概要である。なお、データ移行用ケーブル930は、冗長化されているが、1本であっても良い。また、一つの回路基盤に、コントローラ120A、第一のドライブ部コントローラ303A、データ移行用ポート601Aが実行されても良い。具体的には、例えば、メモリ105A及び後述のメモリ185A(第一のドライブ部コントローラ303Aにあるメモリ185A)が一つのメモリであっても良いが、プロセッサ301Aは、ホスト計算機192からの入出力要求を処理するプロセッサ112Aから独立したプロセッサにする。該独立したプロセッサ301Aが、プロセッサ112A、112B間のメッセージを、メモリに書いたり、メモリから読み出して提供したりすることができる。
次に、第一のドライブ部コントローラ303Aについて詳述する。
図2は、第一のドライブ部コントローラ303Aの構成例を示す。
第一のドライブ部コントローラ303Aは、スイッチ装置である。該スイッチ装置は、例えば、SAS(Serial Attached SCSI)でのExpanderであっても良いし、Fibre Channelのスイッチ装置であっても良い。ドライブ部コントローラ303は、装置管理部300A、メモリ185A、プロセッサ301A、クロスバスイッチ311A、複数のI/F309A、315A、313A及び317Aを備える。
装置管理部300Aは、第一のストレージシステム920A内の所定の構成要素から情報を取得する装置である。例えば、装置管理部300Aは、ファン(例えばHDD12Aを冷却するファン)や温度計等から、第一のストレージシステム920Aの管理のために必要な情報(例えば温度計であれば測定された温度)を取得することができる。
プロセッサ301Aは、例えばCPUであり、メモリ185Aからコンピュータプログラムを読み出して実行することができる。
メモリ185Aには、装置管理プログラム304A及びストレージ間通信プログラム305Aが記憶される。装置管理プログラム304Aは、第一のストレージシステム920Aの所定の構成要素を管理するためのプログラムであり、例えば、装置管理部300Aが取得した情報を基に、HDD12Aの閉塞処理、電源ユニット及びファンの制御などを行うことができる。ストレージ間通信プログラム305Aは、バックエンドでストレージシステム920A及び920B間の通信を行なうためのプログラムである。ストレージ間通信プログラム305Aは、データ移行用ポート601Aを介して相手のストレージ間通信プログラム305Bと通信することができる。
また、メモリ185Aには、複数のイニシエータ間の通信用の記憶領域である通信用領域307Aが設けられる。この通信用領域307Aは、複数のイニシエータに共有される記憶領域である。なお、ここで言う「イニシエータ」とは、本実施例ではコントローラ120A及び120B、厳密には、コントローラ120A及び120Bのコマンド発行部となるプロセッサである。
クロスバスイッチ311Aは、プロセッサ112Aと複数のI/F309A、315A、313A及び317Aとの相互の接続を切替える装置である。クロスバスイッチに代えて、他種のスイッチ部(例えばLSI(Large Scale Integration)の一種としてのデータ転送回路)が採用されても良い。
複数のI/F309A、315A、313A及び317Aの各々は、例えば通信ポート(具体例としては、SASのExpanderで言う「Phy」)である。複数のI/F309A、315A、313A及び317Aうち、I/F315Aが、他のI/F309A、313A、317Aと異なる種類のI/Fであっても良い。これらのI/Fは、スイッチ型(スター型)のトポロジをとることができ、SASやFibre Channel等が適用可能である。
本実施例では、例えば、コントローラ120A、ドライブ部1の第一のドライブ部コントローラ303A、ドライブ部2の第一のドライブ部コントローラ303A、…、ドライブ部pの第一のドライブ部コントローラ303Aのような上記カスケード接続構成となっている。I/F309Aには、上流側のI/F(コントローラ120AのドライブI/F115A、又は、上流の第一のドライブ部コントローラ303AのI/F313A)が接続される。I/F313Aには、下流側のI/F(下流の第一のドライブ部コントローラ303AのI/F309A、この第一のドライブ部コントローラ303Aが最下流の場合には何も接続されないか或いはHDD12Aが接続されても良い)が接続される。I/F317Aは、HDD12Aが接続される。
図3は、複数のHDDの記憶空間の領域割当ての一例の説明図である。
複数のHDD12Aの記憶空間は、ユーザボリューム領域501Aとシステム領域190Aとに大別することができる。
ユーザボリューム領域501Aは、ホスト計算機192で実行されるアプリケーションプログラムが使用するデータ(ユーザデータ)が格納される領域である。具体的には、例えば、二以上のHDD12Aにより構成されたRAID(Redundant Array of Independent (or Inexpensive) Disks)グループの記憶空間を利用して生成されたLUの集合である。
システム領域190Aは、一以上のHDD12Aの記憶空間の一部又は全部の領域であり、第一のストレージシステム920Aの構成に関する情報(以下、構成情報)172Aが記憶される領域である。構成情報172Aには、例えば、LU構成管理テーブル1100A、ポート管理テーブル1200A、及びRAIDグループ管理テーブル1300Aが含まれる。構成情報172Aは、例えば、データ移行用ポート601Aに接続された第二のストレージシステムAからアクセス可能なように、所定のHDD12Aの所定のアドレスに所定のフォーマットで格納されて良い。或いは、例えば、ドライブ部コントローラ303の通信用領域307を介したメッセージ送受信により、構成情報172が格納されている場所を示す情報がやり取りされることにより、構成情報172A、172Bの場所が互いのコントローラ120A、120Bで認識されても良い。
図7Aは、LU構成管理テーブル1100Aの構成例を示す。
LU構成管理テーブル1100Aは、LUを管理するためのテーブルであり、例えば、このテーブル1100Aには、各LU毎に、内部LUN、割当てホストID、ホストLUN、容量、物理位置、RAIDグループID、ペア状態が記録される。内部LUNとは、第一のストレージシステム920AがLU(以下、対象LU)を識別するためのLUNである。それに対し、ホストLUNとは、ホスト計算機192が対象LUを識別するためのLUNである。割当てホストIDとは、対象LUの割当て先のホスト計算機の識別子である。入出力処理プログラム132Aは、割当てホストIDが「1」のホストには、内部LUN0及び1のLUにアクセスを許可するが、それ以外の内部LUNのLUにアクセスすることを禁止する。容量とは、対象LUの容量である。物理位置とは、対象LUが存在する位置を表し、例えば、ストレージシステムの識別子である。この物理位置というカラムが、ポイントの一つであり、物理位置を記録できるようになっていることにより、第一のストレージシステム920Aは、第二のストレージシステム920BのHDD12B上にあるLUを持つことができる。RAIDグループIDとは、対象LUを有するRAIDグループの識別子である。ペア状態とは、対象LUを含むLUペアの状態である。ペア状態"シンプル"とは、対象LUとLUペアを構成する相手LUが存在しないことを意味する。
図7Bは、ポート管理テーブル1200Aの構成例を示す。
ポート管理テーブル1200Aは、各ホストI/F114Aに関する情報を管理するためのテーブルである。例えば、このテーブル1200Aには、各ホストI/F114A毎に、ホストI/F番号(ホストI/F114Aの識別番号)、IPアドレス、サブネットマスク、デフォルトゲートウェイ、割り当て内部LUNが記録される。割当て内部LUNとは、ホストI/Fに割り当てられているLU(該ホストI/Fを介してアクセス可能なLU)の内部LUNである。この実施例では、ホストI/F114Aは、iSCSIポートであるとしている。従って、このポート管理テーブル1200Aには、iSCSIがベースとするIPに必要な設定が記録される。
図7Cは、RAIDグループ管理テーブル1300Aの構成例を示す。
RAIDグループ管理テーブル1300Aは、各RAIDグループに関する情報を管理するためのテーブルである。例えば、このテーブル1300Aには、各RAIDグループ毎に、RAIDグループID、RAIDレベル、HDD構成及びLU割当て済み領域が記録される。RAIDグループIDは、RAIDグループの識別子である。HDD構成は、RAIDグループを構成する各HDD12Aの識別番号である。LU割当て済み領域とは、RAIDグループが提供する記憶空間のうちのどの部分がLUとして割当て済みかを表す。このLU割当て済み領域から、空き(未割当ての)の記憶空間部分を特定し、その記憶空間部分を利用してLUを新たに生成することができる。
図4は、通信用領域307Aの構成例を示す。
通信用領域307Aには、第一のチャネル領域951A、第二のチャネル領域953A及びロック情報領域955Aが含まれる。本実施例では、2チャネルが用意されているが、3チャネル以上用意されても良い。また、ロック情報領域も複数個用意されても良い。
各チャネル領域951は、メッセージ送信用のチャネルとしての領域である。第一のチャネル領域951Aは、第一のストレージシステム920Aから第二のストレージシステム920B方向のチャネルの領域である。第二のチャネル領域953Aは、第二のストレージシステム920Bから第一のストレージシステム920A方向のチャネルの領域である。
各チャネル領域951には、以下の情報領域がある。すなわち、有効フラグが書かれる領域、シーケンス番号が書かれる領域、メッセージサイズが書かれる領域、及びメッセージ本体が書かれる領域である。有効フラグとは、意図した通信相手に向けたメッセージであるかどうかを示すフラグである。シーケンス番号とは、受信元が前回のチェック時と異なる新しいメッセージが書かれているかどうかをチェックするために用いる(前回と違った番号になっていれば新しいメッセージであると判断することができる)。シーケンス番号は、メッセージの送信元がインクリメントすることができる。メッセージサイズとは、メッセージ本体のデータサイズである。メッセージ本体とは、メッセージそれ自体である。
ロック情報領域955Aは、構成情報172Aに対する更新の排他制御に使用される領域である。具体的には、例えば、ロック情報領域955Aには、1又は0の1ビットで構成することのできるロック変数が書かれる。ロック変数が1の場合はロック取得済みを表し、ロック変数が0の場合はロック未取得であることを表す。ここでロックが取得された場合には、第一のストレージシステム920A内の構成情報172Aの更新が禁止(つまり排他制御)される。なお、排他制御の及ぶ範囲は、変更されても良いし、排他制御対象毎(例えばLU、構成情報172A)にロック変数が用意されても良い。
以下、本実施例で行われる種々の処理の流れを説明する。
図5Aは、第一のストレージシステム920Aから第二のストレージシステム920Bにメッセージを送信する場合のコントローラ120A(プロセッサ112A)の処理のフローチャートを示す。図5Bは、その場合のコントローラ120B(プロセッサ112B)の処理のフローチャートを示す。図5Cは、その場合のドライブ部コントローラ303(プロセッサ301)の処理のフローチャートを示す。なお、各図では、ステップを「S」と略記している。
ストレージシステム920A及び920B間の通信に利用されるドライブ部コントローラ303がどれであるかは、例えば、予め、コントローラ120A、120B及びドライブ部コントローラ303に設定されており、その設定に従がって、以下の処理が行われるようになっている。この設定は、例えば、コントローラ120A、120B及びドライブ部コントローラ303におけるそれぞれのメモリ105A、105B、304に記録することができる。以下の処理では、該通信に利用されるドライブ部コントローラ303を303Aとする。
図5Aに示すように、コントローラ120A(プロセッサ112A)が、通信用領域307Aを更新するための更新コマンドを第一のドライブ部コントローラ303Aに送信する(S101)。
この処理は、専用のプログラム(図示せず)により実行されても良いし、前述したプログラム132A、134A及び136Aのいずれもが実行できるようになっていても良いし、それらのうちの所定のプログラム(例えばデータ移行プログラム136A)が実行するようになっていても良い。
図5Bに示すように、コントローラ120B(プロセッサ112B)が、タイムアウト時間を設定し、タイマ動作(計時動作)を開始する(S111)。タイムアウト時間は、状況に応じた値に設定されても良いし、予め決められた固定の値であっても良い。また、タイムアウト時間に代えて、S112以降をループする回数(ポーリング回数)が設定され、タイマ動作に代えて、ポーリング回数がカウントされるようになっていてもよい。
プロセッサ112Bは、一定時間待機した後(S112)、通信用領域307Aを参照するための参照コマンドを第一のドライブ部コントローラ303Aに送信し(S113)、それに応答して、第一のチャネル領域951Aに記録されている種々の情報を受ける(S114)。
プロセッサ112Bは、その情報を解析し、有効フラグが立っていて(有効フラグ=1)で且つシーケンス番号が前回の参照時と異なっているかどうかを判断する(S114)。プロセッサ112Bは、異なっていれば(S114でyes)、メッセージの受信成功として終了し、異なっていなければ(S114でno)、タイマ動作開始後タイムアウト時間経過しているかチェックし(S115)、経過していなければ(S115でno)、S112に戻り、経過していれば(S115でyes)、タイムアウトとなる。
以上の処理は、専用のプログラム(図示せず)により実行されても良いし、前述したプログラム132B、134B及び136Bのいずれもが実行できるようになっていても良いし、それらのうちの所定のプログラム(例えばデータ移行プログラム136B)が実行するようになっていても良い。
図5Cに示す各ステップは、例えば、第一のドライブ部コントローラ303Aのストレージ間通信プログラム305Aが実行することができる。ストレージ間通信プログラム305Aは、コマンド受信待ちにおいて(S121)、コマンドを受信した場合、コマンド種別を判定する(S122)。
S122において、通信用領域307Aを更新するための更新コマンドであれば、ストレージ間通信プログラム305Aは、該更新コマンドに従って第一のチャネル領域951Aを更新し(S124)、該更新コマンドに対する応答(例えば更新完了)を、プロセッサ112Aに送信する(S126)。更新コマンドでは、更新すべきチャネル領域(第一のチャネル領域951A)が指定されていて、ストレージ間通信プログラム305Aが、その指定されているチャネル領域の情報を更新するようになっていても良いし、或いは、更新コマンドではチャネル領域の指定はされておらず、ストレージ間通信プログラム305Aが、更新コマンドの送信元に対応したチャネル領域を選択し、選択したチャネル領域に記録されている情報を更新するようにしても良い。これは、参照コマンドに従う参照の場合についても同様とすることができる。
S122において、通信用領域307Aを参照するための参照コマンドであれば、ストレージ間通信プログラム305Aは、該参照コマンドに従って、第一のチャネル領域951Aから情報を取得し、該情報をコマンド発行元(プロセッサ112B)に送信する(S125)。そして、ストレージ間通信プログラム305Aは、該参照コマンドに対する応答(例えば参照完了)を、プロセッサ112Bに送信する(S126)。
S122において、通信用領域307Aを更新/参照するための更新コマンド及び参照コマンド以外の他のコマンドであれば、プロセッサ301Aは、受信したコマンドに従う処理を実行し(S123)、該コマンドに対する応答をコマンド送信元に返す(S126)。該他のコマンドとしては、例えば、筐体内の温度の取得コマンド、後述するロック獲得コマンド、ロック解放コマンドなどがある。
以上の図5A、図5B及び図5Cの処理により、コントローラ120A及び120B間が互いにメッセージを送受信することができる。なお、この送受信では、コントローラ120Bからのメッセージ、参照コマンド及びコントローラ120Bに提供されるメッセージは、所定のドライブ部コントローラ303B、データ移行用ポート601B、データ移行用ケーブル930及びデータ移行用ポート601Aを経由する。具体的には、例えば、所定のドライブ部コントローラ303Bのメモリ185Bには、メッセージの送受信に利用されるドライブ部コントローラ303Bは自分ではなく303Aである旨を表す情報が設定されており、該ドライブ部コントローラ303Bのストレージ間通信プログラム305Bが、その情報を認識する。コントローラ120Bが、通信用領域307Aの参照コマンドを所定のドライブ部コントローラ303Bに送信する。この場合、ストレージ間通信プログラム305Bが、その参照コマンドを、上記認識をしているので、データ移行用ポート601B及びデータ移行用ケーブル930を通じて第一のドライブ部コントローラ303Aに転送する。これにより、第一のドライブ部コントローラ303Aが、コントローラ120Bが送信した参照コマンドを受信することができる。該参照コマンドに応答して、ストレージ間通信プログラム305Aが、第一のチャネル領域951Aに記録されているメッセージを、データ移行用ポート601A及びデータ移行用ケーブル930を通じてドライブ部コントローラ303Bに送信することができる。ストレージ間通信プログラム305Bは、その受信したメッセージを、コントローラ120Bに転送することができる。または、メッセージの送受信に利用されるドライブ部コントローラは303Aであるという情報に基づいて、コントローラ120Bが直接ドライブ部コントローラ303Aと通信しても良い(具体的には、コントローラ120Bは、ドライブ部コントローラ303Bを経由してドライブ部コントローラ303Aに対して参照コマンド等のコマンドを発行しても良い)。
また、以上の図5A、図5B及び図5Cの処理により、コントローラ120A及び120B間で同期をとることができる。すなわち、例えば、コントローラ120Aからシーケンス番号1のメッセージを送信した場合、コントローラ120Bは、そのシーケンス番号1のメッセージを複数回処理することなく動作することができる。また、同期をとるための更なる方法として、例えば、メッセージの受信側が、メッセージを参照したか否かを表すフラグを、該メッセージが記録されているチャネル領域に設定し、メッセージ送信側は、そのフラグが倒れていれば(例えばフラグ=0であれば)、次のメッセージを書かず、そのフラグが立っていれば(例えばフラグ=1であれば)、次のメッセージを書いても良い。
コントローラ120A、120Bとドライブ部コントローラ間303Aでのコマンドについては、例えば、SCSI規格のMode Select(更新コマンド)/Mode Sense(参照コマンド)を用いる方法がある(具体的には、例えば、SESに従うコマンドを用いる方法がある)。通信用領域307の各チャネル領域951、953に対応するmode pageを定義することにより、これらのコマンドのmode parametersとして、チャネル領域951,953の内容を送受信することができる。この方法は、SCSI規格と互換性のある規格(例えばFibre Channel,SAS,iSCSI等)をドライブ部160のI/Fとして用いたときに適用することが可能である。
前述の例では、第一のストレージシステム920Aから第二のストレージシステム920Bにメッセージを送信する場合を例に採り説明したが、第二のストレージシステム920Bから第一のストレージシステム920Aにメッセージを送信する場合には、第二のチャネル領域953Aが利用されることになる。
ドライブ部コントローラ303は、各ストレージシステム920A、920B内に複数個あるが、ストレージシステム920A及び920B間の通信に用いるドライブ部コントローラは、前述したように予め設定しておくことができる。また、通信用領域307は、全てのドライブ部コントローラ303に備えられていなくても良く、少なくとも一つのドライブ部コントローラ303に備えられていれば良い。通信用領域307は、どこのドライブ部コントローラ303に備えられていても良い(例えば、複数のドライブ部のうちの最上流のドライブ部のドライブ部コントローラにあっても良い)。以上のことは、データ移行用ポート601についても同様である。
以下、第一のドライブ部コントローラ303A(プロセッサ301A)がロック獲得コマンド及びロック解放コマンドをそれぞれ受信した場合に実行する処理を図6A及び図6Bを参照して説明する。その説明では、コントローラ120Bがコントローラ120Aによる構成情報172Aの更新を禁止或いは該禁止の解除をするためにロック獲得コマンド及びロック解放コマンドを送信するとする。
図6Aは、第一のドライブ部コントローラ303A(プロセッサ301A)がロック獲得コマンドを受信した場合に図5CのS123で実行する処理のフローチャートを示す。
プロセッサ301Aは、コントローラ120Aからロック獲得コマンドを受信した場合、第一のチャネル領域951Aを参照し、ロック変数をチェックする(S131)。その結果、ロック変数=1であれば、プロセッサ301Aは、ロック獲得失敗をコントローラ120Aに応答する(S132)。一方、ロック変数=0であれば、プロセッサ301Aは、そのロック変数に1を代入し、ロック獲得成功をコントローラ120Aに応答する(S133)。
図6Bは、第一のドライブ部コントローラ303A(プロセッサ301A)がロック解放コマンドを受信した場合に図5CのS123で実行する処理のフローチャートを示す。
プロセッサ301Aは、コントローラ120Aからロック解放コマンドを受信した場合、第一のチャネル領域951Aを参照し、ロック変数をチェックする(S141)。その結果、ロック変数=1であれば、プロセッサ301Aは、そのロック変数に0を代入し、ロック解放成功をコントローラ120Aに応答する(S142)。一方、ロック変数=0であれば、プロセッサ301Aは、ロック解放失敗をコントローラ120Aに応答する(S143)。
図6A、図6Bにおける条件判定(S131とS141)と、ロック変数への代入(S133とS143)は、ロックが2個のコントローラ120によって同時に取得されるような矛盾を防ぐために、アトミック(不可分)に実行されなければならない。
さて、本実施例では、例えば、ストレージシステムのリプレースを行うために、旧型(既存)の第一のストレージシステム920Aのデータを新型(未使用)の第二のストレージシステム920Bに移行することがある。そのこと等を目的として、第一のストレージシステム920Aに第二のストレージシステム920Bが接続される。
図8は、第一のドライブ部コントローラ303A及び303Bがデータ移行用ケーブル930を介して接続された場合に実行される処理のフローチャートを示す。
稼動中の第一のストレージシステム920Aでは、何らかのイベントが発生するのを待っている状態にある(S151)。
S152では、第二のストレージシステム920Bのデータ移行用ポート601Bに、第一のストレージシステム920Aのデータ移行用ポート601Aに接続されたデータ移行用ケーブル930が人間(例えば保守員)によって接続され、その後、第二のストレージシステム920Bの電源が投入される。その後、通知受信待ちとなる(S153)。具体的には、例えば、コントローラ120Bが、通信用領域307の第一のチャネル領域951Aをポーリングする(定期的に参照コマンドを発行する)。
S152により、例えば、データ移行用ポート601Aから所定の電気信号が装置管理部300Aに入力され、装置管理部300Aによって、第二のストレージシステム920Bがデータ移行用ポート601Aを介して接続されたことが検出される。装置管理部300Aによってそのような検出がされたこと(すなわち、第二のストレージシステム920Bが接続されたこと)を、装置管理プログラム304Aが、コントローラ120Aに報告する。
S154では、コントローラ120Aが、その報告に応答して、第二のストレージシステム920Bに、状態を表すメッセージ(以下、状態メッセージ)を通知する。その際、コントローラ120Aは、通信用領域307Aの第一のチャネル領域951Aに、状態を表すメッセージを書くことができる。
S155において、コントローラ120Bが、第一のストレージシステム920Aが正常動作中か否かを判断する。ここでは、例えば、状態メッセージを取得し、該状態メッセージが正常を表している場合には、正常動作中と判断することができる(S155でyes)。一方、状態メッセージが正常を表していない場合、或いは、状態メッセージを参照できないままタイムアウトになってしまった場合、正常動作中ではないと判断することができる(S155でno)。S155でyesの場合、終了となり、S155でnoの場合、S156に進む。
S156では、コントローラ120Bは、第一のストレージシステム920AのHDDディスカバリを実行する。具体的には、例えば、第一のストレージシステム920Aに存在するHDD12Aを調べるための所定の照会コマンドを第一のドライブ部コントローラ303Aに送信する。これにより、第一のストレージシステム920Aの配下にある全HDD12Aが、第二のストレージシステム920Bの配下になる。言い換えれば、全HDD12Aの制御権が、第一のストレージシステム920Aから第二のストレージシステム920Aに移る。
S157では、構成情報172Aがシステム領域190A(図3参照)から読み出され、構成情報172Bにマージ(追加)される。具体的には、例えば、コントローラ120Bの構成管理プログラム134Bが、構成情報172Aを参照するためのリードコマンドを第一のドライブ部コントローラ303Aに送信する。該リードコマンドでは、例えば、構成情報172Aが存在する場所(例えばS156のHDDディスカバリで特定された場所)が指定されている。第一のドライブ部コントローラ303Aのストレージ間通信プログラム305Aが、該リードコマンドに応答して、構成情報172AをHDD12Aから取得し、取得した構成情報172Aを、コントローラ120Bに送信する。構成管理プログラム134Bが、構成情報172Aに記録されている情報を、構成情報172Bに追加する。その際、構成情報172Aをシステム領域190Aから消去しても良い。
以上の処理により、バックエンドでデータ移行用ケーブル930を介して第一のドライブ部コントローラ303A及び303B間を接続した場合、コントローラ120Bが、コントローラ120Aの状態を判断し、コントローラ120Aが正常ではないと判断した場合には、第一のストレージシステム920AのHDD及びLUの制御権を自動的に取得することができる。
図9は、LUの制御権を第一のストレージシステム920Aから第二のストレージシステム920Bに移すための処理のフローチャートである。
この処理は、例えば、コントローラ120Aは正常であるが、第一のストレージシステム920Aに存在する複数のLUのうちの一部のLUの制御権を移す場合に実行される。この処理の利点としては、例えば、コントローラ120Aの負荷をコントローラ120Bに分散することが挙げられる。また、この処理は、対象LUのデータ移行の際にも利用することができる。この処理では、第一のストレージシステム920Aにおいて内部LUN4のLUの制御権が移るものとする。内部LUN4のLUを対象とすることは、例えば、管理端末198から指定することができる。
コントローラ120Bが、ロック獲得コマンドを第一のドライブ部コントローラ303Aに送信する(S161)。ストレージ間通信プログラム305Aが、ロックを獲得する(ロック変数=1とする)ことで(S162)、構成情報172Aの更新が禁止される状態となる。具体的には、コントローラ120Aから構成情報172Aの更新が要求されても、ストレージ間通信プログラム305Aが、その要求に対して排他制御中を表すメッセージをコントローラ120Aに返すことで、構成情報172Aが更新されないようにすることができる。S162の後、コントローラ120Aは通知受信待ち、例えば通信用領域307Aに参照コマンドを定期的に送信する状態となる(S163)。
コントローラ120Bは、構成情報172AのHDD12Aへの書き出しを依頼し対象LU(LU制御権移行の対象である内部LUN4のLU)を通知するメッセージを通信用領域307Aに書く(S164)。ここで、構成情報172AをHDD12Aへの書き出しを依頼するのは、構成情報172Aが、コントローラ120Aのメモリ105Aに読み出され、該メモリ105A上で、参照や更新が行われていることがあるためである。そのため、構成情報172Aがメモリ105A上で更新されるようになっていない場合には、このような依頼は無くて良い。S164の後、コントローラ120Bは通知受信待ち、例えば通信用領域307Aに参照コマンドを定期的に送信する状態となる(S165)。
S166で、コントローラ120Aは、S164で書かれたメッセージに応答して、構成情報172AをHDD12Aへ書き出し(システム領域190Aに書き出し)、対象LUのデステージ及びオフライン化を実行する。ここでのデステージとは、キャッシュ領域150Aに存在するデータのうち対象LUに未反映のデータをキャッシュ領域150Aから対象LUに書き出すことである。また、ここでのオフライン化とは、対象LUと該対象LUにアクセスすることが許可されているホスト計算機(割当てホストIDから識別されるホスト計算機、以下、対象ホスト)との接続を切断することである。コントローラ120Aは、構成情報172AをHDD12Aへ書き出すことが完了したならば、その完了を表すメッセージを、通信用領域307Aに書く(S167)。
S168で、コントローラ120Bは、S167で書かれたメッセージに応答して、構成情報172Aを読むためのリードコマンドをHDD12Aに送信する。
S169では、コントローラ120Bは、構成情報172A及び172Bを更新することにより、対象LUの制御権を移動する。具体的には、コントローラ120Bは、図10Aに示すように、LU構成管理テーブル1100Aから、内部LUN4を含んだ行を削除し、図10Bに示すように、該削除した行を、LU構成管理テーブル1100Bに追加する。
S170では、コントローラ120Bは、パス切替、対象LUのオンライン化を実行する。具体的には、例えば、コントローラ120Bは、内部LUN4が割り当たっているホストI/F114AのIPアドレス等を、IPアドレス等が未設定でオフライン状態のホストI/F114Bに設定し、該ホストI/F114Bをオンラインにする。対象LUのパス切替の方法としては、IPアドレスの引継ぎ以外にも、iSNS(Internet Storage Name Server)の更新やホスト192内の設定変更によって、対象LUにアクセスするためのIPアドレスを変更する方法もある。
S171では、コントローラ120Bが、ロック解放コマンドを第一のドライブ部コントローラ303Aに送信する。ストレージ間通信プログラム305Aが、ロックを解放する(ロック変数=0とする)ことで(S172)、構成情報172Aの更新禁止が解除される。
以上が、LU制御権の移行のための処理である。S170が行われる前までは、対象ホストが対象LUにアクセスするためのIPアドレスを指定して入出力要求を送信した場合、コントローラ120Aが該入出力要求は受信するが、S170が行われた後は、該入出力要求は、コントローラ120Bが受けることになる。これにより、対象ホストからの入出力要求を止めずに、対象LUに対する入出力要求の送信先を第一のストレージシステム920Aから第二のストレージシステム920Bに変更することができる。なお、ホストI/F114A及び114Bが、Fibre Channelの場合、IPアドレス引継ぎを行わず、代わりに、コントローラ120Aが対象LUに対する入出力要求受け付け停止を行い、コントローラ120Bが、対象LUに対する入出力要求受付開始を行うことができる。
また、S170が行われた後、コントローラ120Bが、第一のストレージシステム920A内の対象LUに対する入出力要求を受けた場合、例えば以下の処理により、その入出力要求を第一のストレージシステム920Aに転送することができる。すなわち、コントローラ120Bは、入出力要求から特定されるホストLUNに対応した内部LUN4を特定し、該内部LUN4に対応した物理位置を参照する。該物理位置が、サブシステム1を表している場合には、該内部LUN4に対応したHDD12Aに対するライトコマンド/リードコマンドを、第一のドライブ部コントローラ303Aを経由して該HDD12Aに送信する。これにより、コントローラ120Bが、第一のストレージシステム920Aの対象LUに対し、該入出力要求に従うデータの書込みや読出しを行うことができる。
図11は、第二のストレージシステム920Bが第一のストレージシステム920Aのユーザボリューム領域501Aの空き部分に自分の配下のLUを設定するための処理のフローチャートである。
この処理は、例えば、管理端末198がコントローラ120Bに新規LU作成を指示することにより開始することができる。新規LU作成指示では、既存RAIDグループ(RG)にLUを作成するか否かや、どんなRAIDレベルのRAIDグループに作るか等、必要な情報を設定することができる。
S161〜S167と略同様の処理が行われる(S181〜S187)。その際、LU制御権の移行と違って、対象LUの通知や、対象LUのデステージ及びオフライン化は行う必要は無い。
S188では、コントローラ120Bが、構成情報172Aを読み出すためのリードコマンドを第一のドライブ部コントローラ303Aを経由してHDD12Aに送信し、それにより、構成情報172Aを取得する。
コントローラ120Bは、既存RAIDグループ(RG)にLUを作成する場合には、S190にすすみ、新規RAIDグループを作成してLUを作成する場合には、S191にすすむ。
S190では、構成情報172A及び172Bを更新することで、第一のストレージシステム920A内の既存RAIDグループにLUを作成し、該LUの制御権を第二のストレージシステム920Bに設定する。具体的には、図12Aに示すように、RAIDグループ2を選択し、該RAIDグループ2に内部LUN0のLUを作成し、該LUに関する情報を、LU構成管理テーブル1100Bに追加する。なお、RAIDグループ2を選択したのは、例えば、上記新規LU作成指示で指定されたRAIDレベルであり、且つ、該新規LU作成指示で指定された容量以上の空き容量があるためである。各RAIDグループの空き容量は、LU割り当て済み領域を参照することにより特定することができる。また、この処理に伴い、構成情報172Aの必要箇所が更新される。具体的には、例えば、RAIDグループ管理テーブル1300AのRAIDグループID2に対応したLU割当て済み領域が更新される。
S191では、構成情報172A及び172Bを更新することで、第一のストレージシステム920Aに新規RAIDグループ及びLUを作成し、該LUの制御権を第二のストレージシステム920Bに設定する。具体的には、図12Bに示すように、RAIDグループ5を新規に作成し、該RAIDグループ5に内部LUN0のLUを作成し、該LUに関する情報を、LU構成管理テーブル1100Bに追加する。なお、RAIDグループ5は、例えば、指定されたRAIDレベルに対応した台数の未使用HDD12Aがある場合に作成可能である。未使用HDD12Aは、例えば、RAIDグループ管理テーブル1300AのHDD構成から特定することができる。例えば、所定のHDD番号範囲において抜けのHDD番号があった場合にはそのHDD番号を未使用と判断することができる。このS191では、更に、構成情報172Aの必要箇所が更新される。具体的には、例えば、RAIDグループ管理テーブル1300Aに、RAIDグループID5に対応した新たな行が追加される。
S190やS191の終了後、図10のS171及びS172と同様の処理が行われる(S192及びS193)。
図13は、第一のストレージシステム920A内の全データを第二のストレージシステム920Bに移行する場合に実行される処理のフローチャートである。
この処理は、例えば、バックエンドでの第一のドライブ部コントローラ303A及び303B間の接続後自動的に行われても良いし、管理端末198からの指示により行われても良い。管理端末198は、コントローラ120A及び120Bの両方に全データ移行指示を送ることができる。
S201では、コントローラ120Aが、ユーザからデータ移行許可あるか否かを判断する。許可ありの場合、S204に進む。なお、「ユーザのデータ移行許可」は、管理端末198から行うことができる。このステップを行う目的は、例えば、セキュリティ対策の一つとして、不正なデータ移行による情報漏洩を防止することにある。もし、セキュリティが問題にならない場合は、このステップは無くても良い。
S204では、コントローラ120Aは、データ移行許可を通知するメッセージ(以下、移行許可メッセージ)を、通信用領域307Aに書く。その後、全LU引継ぎ要求の待ちとなる(S205)。
以上のS201及びS204は、コントローラ120Aが正常ではない場合には実行されなくて良い。
S202では、コントローラ120Bは、コントローラ920Aの状態を判断する。具体的には、例えば、コントローラ120Bが、コントローラ120Aの状態を問い合わせるメッセージを通信用領域307Aに書き、その後、通信用領域307Aをポーリングする(状態メッセージを待つ)。状態メッセージを取得した場合、該状態メッセージからコントローラ120Aの状態を判別する。正常と判断した場合は(S202でyes)、S203(移行許可メッセージを待つためのポーリングの実行)に進み、S203で、移行許可メッセージを取得したならば、S206に進む。正常ではないと判断した場合、或いはタイムアウトとなった場合は(S202でno)、S206に進む。
S206では、コントローラ120Bは、データ移行に必要なHDD容量があるか否かを判断する。具体的には、例えば、コントローラ120Bは、構成情報172Aを取得し、該構成情報172Aから、第一のストレージシステム920Aに存在する全LUのトータル容量以上の記憶容量が、第二のストレージシステム920Bの未使用記憶容量(構成情報172Bから特定することができる記憶容量)以上あるかどうかを判断する。なければ、S207に進んでデータ移行中止となり、あれば、S206Aにすすむ。
S206Aでは、コントローラ120Bは、コントローラ120Aが正常か否かを判断する。ここでは、再度S202と同様の処理が行われても良いし、S202の判断結果が引き継がれても良い。S206Aでyesとなれば、S208にすすみ、S206Aでnoとなれば、S212にすすむ。
S208では、コントローラ120Bは、全LU引継ぎ要求のメッセージを通信用領域307Aに書く。そして、通知受信待ち(例えば通信用領域307Aのポーリング実行状態)となる(S209)。
S210では、コントローラ120Aが、例えばS205でポーリングを行っていることにより、全LU引継ぎ要求のメッセージを通信用領域307Aから取得する。これに応答して、コントローラ120Aは、全ホストI/F114Aをオフライン化(例えば切断)し、全LUのデステージ・オフライン化(例えば全LUを非公開にする)し、構成情報172AのHDD12Aへの書き出しを実行し、その処理の完了を表すメッセージ(以下、S210完了メッセージ)を通信用領域307Aに書く。
S211では、S210の後自動的に、或いは、S212での後述する停止処理により、コントローラ120Aの稼動が停止となる。
S212では、コントローラ120Bが、例えばS209でのポーリングによりS210完了メッセージを取得したことを契機に、或いは、S206Aでnoとなったことを契機に、以下の処理が実行される。すなわち、構成情報172A中のポート管理テーブル1200Aから、各ホストI/F114AのIPアドレスを特定し、各IPアドレスを、ホストI/F114Bに設定する。つまり、各ホストI/F114AのIPアドレスを各ホストI/F114Bに引き継ぐ。なお、このS212では、例えば、S206Aでnoの場合、コントローラ120Aを完全に停止させるための処理(停止処理)を実行して良い。例えば、コントローラ120Bが、コントローラ120Aを停止させるための停止コマンドを第一のドライブ部コントローラ303Aに送信し、第一のドライブ部コントローラ303Aのプロセッサ301Aが、割り込みで、コントローラ120Aのプロセッサ112Aを停止させてよい。
S213では、コントローラ120Bが、各ホストI/F114BのIPアドレスをホスト計算機192に通知する。
S214では、コントローラ120Bが、第一のストレージシステム920Aにある全移行元LUに対するホスト計算機192からの入出力要求の受け付けを開始する。その後、S220でデータコピーが実行される。
図14は、図13のS220のデータコピーのフローチャートである。
S221では、コントローラ120Bが、構成情報172Aに基づいて、第一のストレージシステム920Aのユーザボリューム領域501Aと同じ構成のユーザボリューム領域501Bを作成する。
具体的には、例えば、図15に例示するように、LU構成管理テーブル1100Aを構成する全行をLU構成管理テーブル1100Bにコピーする。これにより、内部LUN0〜4(移行元LU0〜4)のLU制御権が、第二のストレージシステム920Bに移る。このため、移行元LU0〜4に対する入出力要求を、コントローラ120Bが受け、処理することができる。
更に、コントローラ120Bは、コピーした各行に対応する各行を、LU構成管理テーブル1100Bに追加する。より具体的には、内部LUN0〜4にそれぞれ対応した内部LUN5〜9(移行先LU0〜9)をそれぞれ含んだ行が追加される。追加された各行では、容量、RAIDグループIDが、それぞれコピーされている。これにより、第一のストレージシステム920Aに存在する全移行元LU0〜4にそれぞれ対応した移行先LU5〜9が、第二のストレージシステム920Bに作成される。なお、データ移行の際のLU構成管理テーブル1100Bには、移行元LUN及び移行状態というカラムが追加される(予め用意されていても良い)。移行元LUNとは、移行元LUの内部LUNである。内部LUN5〜9にそれぞれ対応した移行元LUNが0〜4になっていることにより、移行先LUN5〜9にそれぞれ対応した移行元LUは0〜4であることがわかる。また、移行状態とは、移行に関する状態を表す。該状態としては、"未完"(移行が未だ行われていない)、"移行中"(データコピー中である)、"完"(データコピーが済んでいる)の3種類がある。
再び図14を参照する。S222では、コントローラ120Bは、全LUのコピーが完了したか否かを判断する。これは、例えば、LU構成管理テーブル1100Bの移行状態が全て"完"になっているか否かの判断とすることができる。完了していれば、S223にすすみ、完了していなければ、S224にすすむ。
S223では、コントローラ120Bが、第一のストレージシステム920Aの全LU(移行元LU0〜4)のデータを破棄する。これにより、全データ移行の完了となる。すなわち、本実施例では、LU間のデータ移行(マイグレーション)は、LU間のデータコピーを行った後、移行元(コピー元)LU内のデータを破棄することで、データ移行を完了することができる。
S224では、コントローラ120Bが、コピー未完の移行元LU群から一つの移行元LUを選択し、該選択した移行元LUに対応する移行先LUへのコピーを開始する。具体的には、例えば、コントローラ120Bは、図16に例示するように、移行元LU2を選択し、該移行元LU2に対応した移行状態を"未完"から"移行中"に変更して、移行元LU2から移行先LU7へのデータコピーを実行する。該データコピーが終了したならば、該移行状態を"移行中"から"完"に変更する。
S225では、コントローラ120Bが、該コピーの完了後、ホストのアクセス先を、移行先LUに変更する。具体的には、例えば、図17に例示するように、移行元LU2に対応した割当てホストID及びホストLUNを、移行先LU7に対応付け、且つ、移行元LU2の行から、該割当てホストID及びホストLUNを削除する。また、移行先LU7に対応する移行元LUN2も削除する。ただし、ホストのアクセス先の移行先LUへの変更は、全LUのデータコピーの完了後(S222の後)としても良い。この場合、コピーが完了したLUへのホストからのライトは、全LUのデータコピーの完了前には、移行元・移行先の両方のLUに反映されるようにする。後者の方式とすることで、性能面では前者の方式より不利になるが、ストレージシステム920Aに最新のデータを残すことができ、移行中の障害等により移行が継続できなくなったときにストレージシステム920Aにアクセスパスを戻すことで、業務を継続することができる。
S224及びS225の繰返しにより、全移行元LUから全移行先LUへのデータコピーが完了し、LU構成管理テーブル1100Bが、図17に例示するようになる。
以上が、全データ移行処理についての説明である。なお、S224でのデータコピーは、例えば以下のような流れで行うことができる。例えば、データ移行プログラム136Bが、選択した移行元LUからデータを読出し、該データを、キャッシュ領域150Bに一時書込み、そして、キャッシュ領域150Bから該データを読出し、該データを移行先LUに書きこむ。この方法に代えて、例えば、データ移行プログラム136Bが、第一のドライブ部コントローラ303Aに移行元LUのデータが存在する物理的な移行元場所(例えばHDD番号及びアドレス範囲)を設定し、第一のドライブ部コントローラ303Aに移行先LUに対応した物理的な場所(例えばHDD番号及びアドレス範囲)し、第一のドライブ部コントローラ303Aが、移行元場所からデータを読み出してドライブ部コントローラ303Bに転送し、ドライブ部コントローラ303Bが、転送されて来たデータを移行先場所に格納することで、データコピーが行われても良い。つまり、データ移行では、移行対象のデータがコントローラ120Bのキャッシュ領域150に一旦書かれた後で移行先LUに書かれても良いし、そのキャッシュ領域150に書かれることなくデータ移行が行われても良い。
以上が、第一実施例についての説明である。なお、図13及び図14を参照して説明したコントローラ120Bの動作は、データ移行プログラム136Bによって行われる。また、上述した全データ移行処理では、コントローラ120Bによって、ロックが獲得された後に、データコピーが開始されても良い。また、バックエンド接続(データ移行用ポート601A及び601間の接続)、バックエンドでのデータ移行、ホストアクセスパス切替などは、例えば、特願2006−278237号(本願出願時点では未公開)に記載の処理を適宜に援用することができる。
この第一実施例によれば、第一のドライブ部コントローラ303A及び303Bに、それぞれ、データ移行用ポート601A及び601Bが接続され、該データ移行用ポート601A及び601B間が、データ移行用ケーブル930で接続される。データ移行では、移行元のストレージシステム920Aのコントローラ120Aを経由することなく、移行元LU、第一のドライブ部コントローラ303A、データ移行用ポート601A、データ移行用ケーブル930、データ移行用ポート601B、ドライブ部コントローラ303B及び移行先LUへのデータが流れる。これにより、コントローラ120Aが壊れていても、データの移行が可能である。
また、この第一実施例では、データ移行においてデータが経由することになるドライブ部コントローラ303に、共有記憶域である通信用領域307が用意され、ドライブ部コントローラ303にストレージ間通信プログラム305が搭載される。該ストレージ間通信プログラム305は、コントローラ120A及び120Bから該通信用領域307を参照及び更新するためのコマンドを受け付け処理することができるように構成されている。これにより、バックエンドにあるドライブ部コントローラ303の記憶資源を利用したコントローラ120A及び120B間のメッセージ送受信が可能となる。
また、この第一実施例では、通信用領域307Aに、排他制御ためのロック情報が記録され、ロックが獲得された場合には、第一のストレージシステム920A内の所定の資源(例えば構成情報172AやLU)の更新が禁止される。これにより、例えばオンライン(ホスト計算機192から入出力要求を受け付けながら)で、データ移行及び/又はLU制御権移行を実行する場合に、移行元の構成を破壊することなく安全に実行することが可能となる。この仕組みは、特に、コントローラ120Aが正常の場合に有効である。
また、この第一実施例では、各コントローラ120は、相手のコントローラ120が異常であっても、相手のストレージシステムにあるドライブ部コントローラ303と通信することが可能であるため、相手のストレージシステム920にある構成情報172を参照及び更新することができる。これにより、相手のコントローラ120が壊れていても、相手のストレージシステム920のLU制御権を獲得することができる。
以下、本発明の第二実施例について説明する。その際、第一実施例との相違点を主に説明し、第一実施例との共通点については、説明を省略或いは簡略する。
第一実施例では、データ移行中、ホストからのアクセスが移行先LUに切り替えられるまでは、コントローラ120Bが、入出力要求を受信し、該入出力要求に従うデータが、データ移行用ケーブル930を経由する。データ移行でも該ケーブル930をデータが経由するので、ケーブル930の帯域を圧迫することになる。
そこで、この第二実施例では、入出力要求は、コントローラ120Aが受けて処理するようにする。これにより、入出力要求に従うデータが、データ移行用ケーブル930を経由しないので、ケーブル930の通信負荷を緩和することができる。
具体的には、コントローラ120Aが正常であると判断された場合には、図13に代えて、図18の全データ移行処理が実行される。以下、詳述する。なお、第一実施例でもそうであるが、データ移行に関わるコントローラ120が実行する動作は、データ移行プログラム136が実行することができる。
コントローラ120Bが、要求受信待ち、例えば、通信用領域307Aをポーリングしている(S231)。
コントローラ120Aは、ユーザからデータ移行許可がある場合(S232でyes)、全空きHDDの制御権を要求するメッセージを通信用領域307Aに書く(S233)。そして、通知受信待ち、例えば、通信用領域307Aをポーリングする(S234)。
コントローラ120Bが、そのメッセージを取得した場合、該メッセージに応答して、構成情報172Bをシステム領域190B(HDD12B)に書き、それの完了を表すメッセージを、通信用領域307Aに書く(S235)。そして、通信受信待ちとなる(S236)。
コントローラ120Aは、S234での待ちによりそのメッセージを取得した場合、データコピーを実行する(S220)。S220の処理の詳細は、図14に示した通りである。この処理では、コントローラ120A及び120Bのいずれがデータ移行を行っても良い。
S220の終了後、図13のS210〜S214と同様の処理が実行される(S237〜S241)。
以上が、第二実施例についての説明である。
図19に、本発明の第三実施例にかかる計算機システムの構成例を示す。
各ストレージシステム920A及び920Bでは、コントローラ120A及び120Bが冗長化されていない。このため、コントローラ120Aに障害が発生すると、代わって動作する要素がないが、それであっても、第一のドライブ部コントローラ303A及び303Bやコントローラ120Bが正常であれば、前述したデータ移行が可能であるので、利便性は高い。
なお、この第三実施例では、データ移行用ケーブル930及びデータ移行用ポート601A及び601Bはそれぞれ冗長化されていないが、それらは冗長化されていても良い。これにより、一方のケーブル930、データ移行用ポート601A又は601Bに障害が発生しても、他方のケーブル930、データ移行用ポート601A又は601Bを介してデータ移行することが可能である。
以上、本発明の実施形態及び幾つかの実施例を説明したが、これらの実施形態及び実施例は本発明の説明のための例示にすぎず、本発明の範囲をそれらの実施形態及び実施例にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。
例えば、LU単位でデータコピーとLU制御権移行とが交互に実行されても良い。
また、どちらのストレージシステムを移行元としどちらを移行先とするかは、ユーザによって手動で決定されても良いし、自動で決定されても良い。自動で決定する方法としては、例えば以下の通りである。すなわち、ストレージシステム920Aは、初め、単独で稼動しているため、データ移行用ポート601Aの先には何も接続されておらず、故に、コントローラ120Aが、ドライブ部コントローラ303Aを検出できても、データ移行用ポート601Aの先のデバイスは何も検出されない。このように、一方のドライブ部コントローラ303Aしか検出できない場合には、コントローラ120Aは、このストレージシステム920Aを移行元のストレージシステムとして判断することができる。一方、ストレージシステム920Bが、データ移行用ポート601Bにデータ移行用ケーブルを介してドライブ部コントローラ303Aを接続した状態で、起動されるとする。すると、コントローラ120Bは、ドライブ部コントローラ303Bに加えて、ドライブ部コントローラ303Aを検出することができる。このように、両方のドライブ部コントローラ303A及び303Bを検出した場合、コントローラ120Bは、このストレージシステム920Bを、移行先のストレージシステムとして判断することができ、相手を、移行元のストレージシステムとして判断することができる。このように、ストレージシステム920A、920Bの起動時刻に差がある場合には、上記の流れで自動判断することが可能である。なお、起動時刻に差が無い場合には、管理端末から、それぞれのコントローラ120A、120Bに対し、移行元と移行先を指定してもよい。
また、例えば、通信に使用するドライブ部コントローラが自動的に切り替えられても良い。具体的には、例えば、"移行元のストレージシステム920Aのコントローラ(1)120Aが接続されているドライブ部コントローラAの303Aを使用する"という前もって決められた設定を、各コントローラ120A、120Bに対して行っておく。もし、予め決めておいたドライブ部コントローラAの303Aが障害を起こしている場合は、予め決めておいた探索候補順(例えば、移行元サブシステムのドライブ部コントローラA→移行先サブシステムのドライブ部コントローラA→移行元サブシステムのドライブ部コントローラB→移行先サブシステムのドライブ部コントローラB)に基づいて、次の候補となるドライブ部コントローラを用いて通信を試み、通信可能なドライブ部コントローラを検出したときに、そのドライブ部コントローラを介してコントローラ120A、120B間の通信を継続することが可能である。
図1は、本発明の第一実施例に係る計算機システムの構成例を示す。 図2は、第一のドライブ部コントローラ303Aの構成例を示す。 図3は、複数のHDDの記憶空間の領域割当ての一例の説明図である。 図4は、通信用領域307Aの構成例を示す。 図5Aは、第一のストレージシステム920Aから第二のストレージシステム920Bにメッセージを送信する場合のコントローラ120A(プロセッサ112A)の処理のフローチャートを示す。図5Bは、その場合のコントローラ120B(プロセッサ112B)の処理のフローチャートを示す。図5Cは、その場合のドライブ部コントローラ303(プロセッサ301)の処理のフローチャートを示す。 図6Aは、第一のドライブ部コントローラ303A(プロセッサ301A)がロック獲得コマンドを受信した場合に図5CのS123で実行する処理のフローチャートを示す。図6Bは、第一のドライブ部コントローラ303A(プロセッサ301A)がロック解放コマンドを受信した場合に図5CのS123で実行する処理のフローチャートを示す。 図7Aは、LU構成管理テーブル1100Aの構成例を示す。図7Bは、ポート管理テーブル1200Aの構成例を示す。図7Cは、RAIDグループ管理テーブル1300Aの構成例を示す。 図8は、第一のドライブ部コントローラ303A及び303Bがデータ移行用ケーブル930を介して接続された場合に実行される処理のフローチャートを示す。 図9は、LUの制御権を第一のストレージシステム920Aから第二のストレージシステム920Bに移すための処理のフローチャートである。 図10Aは、LU制御権移行後のLU構成管理テーブル1100Aの一例を示す。図10Bは、LU制御権移行後のLU構成管理テーブル1100Bの一例を示す。 図11は、第二のストレージシステム920Bが第一のストレージシステム920Aのユーザボリューム領域501Aの空き部分に自分の配下のLUを設定するための処理のフローチャートである。 図12Aは、図11のS190が実行された場合のLU構成管理テーブル1100Bの一例を示す。図12Bは、図11のS191が実行された場合のLU構成管理テーブル1100Bの一例を示す。 図13は、第一のストレージシステム920A内の全データを第二のストレージシステム920Bに移行する場合に実行される処理のフローチャートである。 図14は、図13のS220のデータコピーのフローチャートである。 図15は、図14のS221でのLU構成管理テーブル1100Bの一例を示す。 図16は、図14のS224及びS225でのLU構成管理テーブル1100Bの一例を示す。 図17は、図14のS223でのLU構成管理テーブル1100Bの一例を示す。 図18は、本発明の第二実施例で行われる全LUデータ移行処理の一例を示す。 図19は、本発明の第三実施例にかかる計算機システムの構成例を示す。 図20Aは、本発明の実施形態の概念の一例を示す。図20Bは、その実施形態の更なる工夫の概念の一例を示す。
符号の説明
920A…第一のストレージシステム、920B…第二のストレージシステム、120A、120B…コントローラ、303A、303B…ドライブ部コントローラ、136A、136B…データ移行プログラム

Claims (13)

  1. 第一のストレージシステムに接続される第二のストレージシステムであって、
    前記第一のストレージシステムが、
    第一の上位装置から入出力要求を受信する第一のフロントエンド通信ポートを有する第一のコントローラと、
    複数の第一の論理ボリュームの基になる複数の第一の記憶装置と、
    前記複数の第一の論理ボリュームの各々に関する情報を管理するための第一のボリューム構成情報を記憶する第一の構成情報記憶域と、
    前記第一のフロントエンド通信ポートと異なる第一のバックエンド通信ポートを有し、前記第一のコントローラと前記複数の第一の記憶装置との間に介在する第一のスイッチ装置と
    を備え、前記第一のコントローラが、第一の上位装置から送信された入出力要求を第一の通信ネットワークを介して前記第一のフロントエンド通信ポートで受信し、該受信した入出力要求に従って、前記第一のボリューム構成情報を用いて、前記第一のスイッチ装置を介して、前記複数の第一の記憶装置のうちのいずれかに対してデータの書込み及び/又は読出しを行うように構成されており、
    前記第二のストレージシステム
    前記第一及び/又は第二の上位装置から入出力要求を受信する第二のフロントエンド通信ポートを有する第二のコントローラと、
    複数の第二の論理ボリュームの基になる複数の第二の記憶装置と、
    第二のボリューム構成情報を記憶する第二の構成情報記憶域と、
    前記第二のフロントエンド通信ポートと異なる第二のバックエンド通信ポートを有し、前記第二のコントローラと前記複数の第二の記憶装置との間に介在する第二のスイッチ装置と
    を備え、前記第二のコントローラが、第一及び/又は第二の上位装置から送信された入出力要求を前記第一の通信ネットワークを介して前記第二のフロントエンド通信ポートで受信し、該受信した入出力要求に従って、前記第二のボリューム構成情報を用いて、前記第二のスイッチ装置を介して、前記複数の第二の記憶装置のうちのいずれかに対してデータの書込み及び/又は読出しを行うように構成されており、
    前記第一及び第二のボリューム構成情報のいずれにも、どの論理ボリュームがどのストレージシステムに存在するかを表す情報が含まれており、
    前記第二及び第一のバックエンド通信ポートが、前記第一の通信ネットワークとは異なる第二の通信ネットワーク、又は、専用線を介して、接続されており、故に、前記第二のスイッチ装置が、前記第二及び第一のバックエンド通信ポートを介して、前記第一の通信ネットワークを非経由に、前記第一のスイッチ装置に接続され、
    前記第二のコントローラが、前記第二の通信ネットワーク又は前記専用線を介して、データ移行要求を前記第一のコントローラに送り、
    前記第二のコントローラが、前記第二の通信ネットワーク又は前記専用線を介して、前記第一のボリューム構成情報を前記第二のボリューム構成情報にコピーし、
    前記コピー後の第二のボリューム構成情報を基に、コピー元の前記複数の第一の論理ボリュームにそれぞれ対応したコピー先の複数の第二の論理ボリュームを準備し、
    前記第二のコントローラが、前記第二の通信ネットワーク又は前記専用線を介して、コピー元の前記複数の第一の論理ボリュームに格納されているデータをそれぞれコピー先の前記複数の第二の論理ボリュームにコピーする、
    ストレージシステム。
  2. 前記第一のスイッチ装置が、第一の共有記憶領域を備え、
    前記第二のスイッチ装置が、第二の共有記憶領域を備え、
    前記第二のコントローラが、前記第二の通信ネットワーク又は前記専用線を経由し、前記第一及び第二の共有記憶域のいずれかを介して、前記第一のコントローラと互いに通信する、
    請求項1記載のストレージシステム。
  3. 前記第一及び/又は第二のスイッチ装置は、前記第一及び第二のコントローラから前記第二の共有記憶域を更新及び/又は参照するための更新コマンド及び/又は参照コマンドを受け付けるスイッチ制御部を備える、
    請求項記載のストレージシステム。
  4. 前記更新コマンドは、SCSI規格のMode Selectであり、前記参照コマンドは、SCSI規格のMode Senseであり、
    前記スイッチ制御部は、前記更新コマンド及び前記参照コマンドを、コマンドのmode parametersとして、前記第一及び/又は第二の共有記憶域に書き込まれる及び読み出される情報を、前記第一及び第二のコントローラと送受信する、
    請求項記載のストレージシステム。
  5. 前記第二のコントローラが、アクセスコマンドを前記第一のスイッチ装置に接続されている記憶装置に発行することにより、又は、前記第一のスイッチ装置を介して前記第一のコントローラに所定のコマンドを発行することにより、前記複数の第一の論理ボリュームのうちの一部又は全部の第一の論理ボリュームに関する情報を無効とし、且つ、該一部又は全部の第一の論理ボリュームに関する情報を、前記第二のボリューム構成情報で有効とすることにより、前記複数の第一の論理ボリュームのうちの一部又は全部に対するデータの入出力を実行することのアクセス制御権を、前記第一のストレージシステムから引き継ぐ、
    請求項1乃至4のうちのいずれか1項に記載のストレージシステム。
  6. 前記第一のコントローラは、前記第一の共有記憶域にロックが設定されている場合には、前記第一のボリューム構成情報を更新しないように構成されており、
    前記第二のコントローラは、前記アクセスコマンドを前記第一のスイッチ装置に発行する前に、前記第一の共有記憶域にロックを設定する、
    請求項記載のストレージシステム。
  7. 前記第二のコントローラは、前記第一のコントローラが正常か否かを判断し、正常ではないと判断した場合に、前記アクセス制御権の引継ぎを実行し、正常であると判断した場合には、前記アクセス制御権の引継ぎを実行しない、
    請求項記載のストレージシステム。
  8. 前記第二のコントローラは、前記コピーを開始する前に、前記アクセス制御権の引継ぎを実行する、
    請求項6又は7記載のストレージシステム。
  9. 前記第二のコントローラは、前記第一のコントローラが正常か否かを判断し、正常であると判断した場合、前記アクセス制御権の引継ぎを実行する前に、前記第一のコントローラと前記第一の上位装置との接続を切断するためのメッセージを、第一の共有記憶域に書く、
    請求項6乃至8のうちのいずれか1項に記載のストレージシステム。
  10. 前記第二のコントローラは、前記第一のコントローラが正常か否かを判断し、正常でないと判断した場合、前記アクセス制御権の引継ぎを実行する前に、前記第一のコントローラと前記第一の上位装置との接続を切断するための指示を第一のスイッチ装置に出す、
    請求項6乃至9のうちのいずれか1項に記載のストレージシステム。
  11. 前記第二のコントローラは、前記複数の第一の論理ボリュームから前記複数の第二の論理ボリュームへのデータコピーが終了した場合に、前記複数の第一の論理ボリューム内のデータを削除する、
    請求項1乃至10のうちのいずれか1項に記載のストレージシステム。
  12. 前記データコピー中に、前記第二のコントローラが、前記第一の論理ボリュームに対する入出力要求を受け付け、該入出力要求を受信した場合、該第一の論理ボリュームに対するデータの入出力が、前記第二のスイッチ装置、前記第二のバックエンド通信ポート、前記第二の通信ネットワーク又は前記専用線、前記第一のバックエンド通信ポート及び前記第一のスイッチ装置を経由して行われ、
    請求項1乃至11のうちのいずれか1項に記載のストレージシステム。
  13. 第一のストレージシステムと第二のストレージシステムとが互いに接続されたシステムであるストレージシステム群において、
    前記第一のストレージシステムが、
    第一の上位装置から入出力要求を受信する第一のフロントエンド通信ポートを有する第一のコントローラと、
    複数の第一の論理ボリュームの基になる複数の第一の記憶装置と、
    前記複数の第一の論理ボリュームの各々に関する情報を管理するための第一のボリューム構成情報を記憶する第一の構成情報記憶域と、
    前記第一のフロントエンド通信ポートと異なる第一のバックエンド通信ポートを有し、前記第一のコントローラと前記複数の第一の記憶装置との間に介在する第一のスイッチ装置と
    を備え、前記第一のコントローラが、第一の上位装置から送信された入出力要求を第一の通信ネットワークを介して前記第一のフロントエンド通信ポートで受信し、該受信した入出力要求に従って、前記第一のボリューム構成情報を用いて、前記第一のスイッチ装置を介して、前記複数の第一の記憶装置のうちのいずれかに対してデータの書込み及び/又は読出しを行うように構成されており、
    前記第二のストレージシステムが、
    前記第一及び/又は第二の上位装置から入出力要求を受信する第二のフロントエンド通信ポートを有する第二のコントローラと、
    複数の第二の論理ボリュームの基になる複数の第二の記憶装置と、
    第二のボリューム構成情報を記憶する第二の構成情報記憶域と、
    前記第二のフロントエンド通信ポートと異なる第二のバックエンド通信ポートを有し、前記第二のコントローラと前記複数の第二の記憶装置との間に介在する第二のスイッチ装置と
    を備え、前記第二のコントローラが、第一及び/又は第二の上位装置から送信された入出力要求を前記第一の通信ネットワークを介して前記第二のフロントエンド通信ポートで受信し、該受信した入出力要求に従って、前記第二のボリューム構成情報を用いて、前記第二のスイッチ装置を介して、前記複数の第二の記憶装置のうちのいずれかに対してデータの書込み及び/又は読出しを行うように構成されており、
    前記第一及び第二のボリューム構成情報のいずれにも、どの論理ボリュームがどのストレージシステムに存在するかを表す情報が含まれており、
    前記第二及び第一のバックエンド通信ポートが、前記第一の通信ネットワークとは異なる第二の通信ネットワーク、又は、専用線を介して、接続されており、故に、前記第二のスイッチ装置が、前記第二及び第一のバックエンド通信ポートを介して、前記第一の通信ネットワークを非経由に、前記第一のスイッチ装置に接続され、
    前記第二のコントローラが、前記第二の通信ネットワーク又は前記専用線を介して、データ移行要求を前記第一のコントローラに送り、
    前記第二のコントローラが、前記第二の通信ネットワーク又は前記専用線を介して、前記第一のボリューム構成情報を前記第二のボリューム構成情報にコピーし、
    前記コピー後の第二のボリューム構成情報を基に、コピー元の前記複数の第一の論理ボリュームにそれぞれ対応したコピー先の複数の第二の論理ボリュームを準備し、
    前記第二のコントローラが、前記第二の通信ネットワーク又は前記専用線を介して、コピー元の前記複数の第一の論理ボリュームに格納されているデータをそれぞれコピー先の前記複数の第二の論理ボリュームにコピーする、
    ストレージシステム群。
JP2006278566A 2006-10-12 2006-10-12 バックエンドで他のストレージシステムと通信するストレージシステム Expired - Fee Related JP4326552B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006278566A JP4326552B2 (ja) 2006-10-12 2006-10-12 バックエンドで他のストレージシステムと通信するストレージシステム
US11/613,400 US7650446B2 (en) 2006-10-12 2006-12-20 Storage system for back-end communications with other storage system
EP07251611A EP1912115A3 (en) 2006-10-12 2007-04-17 Storage system for back-end communications with other storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006278566A JP4326552B2 (ja) 2006-10-12 2006-10-12 バックエンドで他のストレージシステムと通信するストレージシステム

Publications (2)

Publication Number Publication Date
JP2008097331A JP2008097331A (ja) 2008-04-24
JP4326552B2 true JP4326552B2 (ja) 2009-09-09

Family

ID=38858999

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006278566A Expired - Fee Related JP4326552B2 (ja) 2006-10-12 2006-10-12 バックエンドで他のストレージシステムと通信するストレージシステム

Country Status (3)

Country Link
US (1) US7650446B2 (ja)
EP (1) EP1912115A3 (ja)
JP (1) JP4326552B2 (ja)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4961997B2 (ja) * 2006-12-22 2012-06-27 富士通株式会社 ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム
US9395771B1 (en) * 2007-10-26 2016-07-19 Pce, Inc. Plenum pressure control system
JP2010049637A (ja) 2008-08-25 2010-03-04 Hitachi Ltd 計算機システム、ストレージシステム及び構成管理方法
JP2010079678A (ja) 2008-09-26 2010-04-08 Hitachi Ltd ストレージシステムの切替えを制御する装置
JP5982826B2 (ja) * 2012-01-06 2016-08-31 富士通株式会社 環境構築装置、環境登録装置、環境切替装置、環境構築方法、環境登録方法、環境切替方法、環境構築プログラム、環境登録プログラム、及び環境切替プログラム
JP6028415B2 (ja) * 2012-06-28 2016-11-16 日本電気株式会社 仮想サーバ環境のデータ移行制御装置、方法、システム
US9244868B2 (en) * 2012-09-21 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Leased lock in active-active high availability DAS systems
US9009444B1 (en) * 2012-09-29 2015-04-14 Emc Corporation System and method for LUN control management
US8904119B2 (en) 2012-10-31 2014-12-02 Lsi Corporation Method and structures for performing a migration of a logical volume with a serial attached SCSI expander
US8904108B2 (en) 2012-10-31 2014-12-02 Lsi Corporation Methods and structure establishing nested Redundant Array of Independent Disks volumes with an expander
US9135198B2 (en) 2012-10-31 2015-09-15 Avago Technologies General Ip (Singapore) Pte Ltd Methods and structure for serial attached SCSI expanders that self-configure by setting routing attributes of their ports based on SMP requests
US8782292B2 (en) 2012-10-31 2014-07-15 Lsi Corporation Methods and structure for performing a rebuild of a logical volume with a serial attached SCSI expander
US8756345B2 (en) 2012-10-31 2014-06-17 Lsi Corporation Methods and structure for managing protection information with a serial attached SCSI expander
US9268493B2 (en) * 2012-11-28 2016-02-23 Dell Products L.P. Systems and methods for smart storage interconnection in a heterogeneous storage environment
KR101864813B1 (ko) 2013-08-31 2018-06-05 후아웨이 테크놀러지 컴퍼니 리미티드 저장 시스템에서 조작 요청을 처리하기 위한 방법 및 장치
US9274901B2 (en) * 2013-11-20 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. I/O request mirroring in a clustered storage system
US9344525B2 (en) * 2013-11-25 2016-05-17 Violin Memory Inc. Method and apparatus for data migration
JP2016143166A (ja) * 2015-01-30 2016-08-08 富士通株式会社 制御装置,ストレージシステム及び制御プログラム
JP6540204B2 (ja) * 2015-04-30 2019-07-10 富士通株式会社 中継装置
US11715025B2 (en) 2015-12-30 2023-08-01 Nutanix, Inc. Method for forecasting distributed resource utilization in a virtualization environment
US10168953B1 (en) 2016-05-20 2019-01-01 Nutanix, Inc. Dynamic scheduling of distributed storage management tasks using predicted system characteristics
US10902324B2 (en) 2016-06-13 2021-01-26 Nutanix, Inc. Dynamic data snapshot management using predictive modeling
US10361925B1 (en) 2016-06-23 2019-07-23 Nutanix, Inc. Storage infrastructure scenario planning
US10484301B1 (en) 2016-09-30 2019-11-19 Nutanix, Inc. Dynamic resource distribution using periodicity-aware predictive modeling
US10691491B2 (en) 2016-10-19 2020-06-23 Nutanix, Inc. Adapting a pre-trained distributed resource predictive model to a target distributed computing environment
US10402361B2 (en) 2017-04-28 2019-09-03 Hitachi, Ltd. Storage system
US10732903B2 (en) 2018-04-27 2020-08-04 Hewlett Packard Enterprise Development Lp Storage controller sub-LUN ownership mapping and alignment
CN110413217B (zh) * 2018-04-28 2023-08-11 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品
US11397695B2 (en) * 2019-10-22 2022-07-26 Micron Technology, Inc. Configurable memory termination
WO2022109770A1 (en) * 2020-11-24 2022-06-02 Intel Corporation Multi-port memory link expander to share data among hosts
JP2022163604A (ja) * 2021-04-14 2022-10-26 株式会社日立製作所 分散ストレージシステム及び記憶制御方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5398331A (en) * 1992-07-08 1995-03-14 International Business Machines Corporation Shared storage controller for dual copy shared data
US5890014A (en) * 1996-08-05 1999-03-30 Micronet Technology, Inc. System for transparently identifying and matching an input/output profile to optimal input/output device parameters
JP4014923B2 (ja) * 2002-04-30 2007-11-28 株式会社日立製作所 共有メモリ制御方法および制御システム
JP2004102374A (ja) 2002-09-05 2004-04-02 Hitachi Ltd データ移行装置を有する情報処理システム
JP4060235B2 (ja) 2003-05-22 2008-03-12 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
US7149859B2 (en) * 2004-03-01 2006-12-12 Hitachi, Ltd. Method and apparatus for data migration with the efficient use of old assets
JP2005267111A (ja) 2004-03-17 2005-09-29 Hitachi Ltd 記憶制御システム及び記憶制御システムの制御方法
JP4684605B2 (ja) 2004-09-17 2011-05-18 株式会社日立製作所 情報伝達方法及びホスト装置
JP2006146476A (ja) * 2004-11-18 2006-06-08 Hitachi Ltd ストレージシステム及びストレージシステムのデータ移行方法
US8180855B2 (en) * 2005-01-27 2012-05-15 Netapp, Inc. Coordinated shared storage architecture
JP2006278237A (ja) 2005-03-30 2006-10-12 Toyota Motor Corp 膜・電極接合体及びこれを備えた燃料電池並びに電解質膜の製造方法
US7328324B2 (en) * 2005-04-27 2008-02-05 Dot Hill Systems Corp. Multiple mode controller method and apparatus

Also Published As

Publication number Publication date
US20080147934A1 (en) 2008-06-19
JP2008097331A (ja) 2008-04-24
US7650446B2 (en) 2010-01-19
EP1912115A2 (en) 2008-04-16
EP1912115A3 (en) 2010-09-08

Similar Documents

Publication Publication Date Title
JP4326552B2 (ja) バックエンドで他のストレージシステムと通信するストレージシステム
JP5207637B2 (ja) 一以上のセカンダリストレージシステムで複数のバックアップを取得するバックアップ制御方法
US8595549B2 (en) Information system and I/O processing method
JP4963892B2 (ja) 仮想ストレージシステムの構成要素となることが可能なストレージシステムの制御装置
US9229645B2 (en) Storage management method and storage system in virtual volume having data arranged astride storage devices
JP5057656B2 (ja) ストレージシステム及びストレージシステムの運用方法
US8607230B2 (en) Virtual computer system and migration method of virtual computer
JP4790372B2 (ja) ストレージのアクセス負荷を分散する計算機システム及びその制御方法
US10114691B2 (en) Information storage system
US7865767B2 (en) Storage system and method for copying data to plurality of sites
US10296429B2 (en) Storage device
JP2007328611A (ja) ストレージ仮想化システム及び方法
JP2005326935A (ja) 仮想化ストレージを備える計算機システムの管理サーバおよび障害回避復旧方法
JP4857248B2 (ja) 第一の計算機システムで設定されたパスの冗長度の設定を第二の計算機システムに反映する計算機及び方法
US20090006863A1 (en) Storage system comprising encryption function and data guarantee method
JP2008269469A (ja) ストレージシステム及びその管理方法
US7886186B2 (en) Storage system and management method for the same
JP4969972B2 (ja) 論理的なパスの数を制御する装置及び方法
US11137935B2 (en) Storage system with plurality of storage controllers communicatively coupled for determination of storage controller indentifiers
US8275958B2 (en) Storage system with remote copy controllers
JP2008287405A (ja) パス管理方法、ホスト計算機及びパス管理プログラム
JP4796251B2 (ja) ネットワークストレージシステム及びその制御方法
US10025655B2 (en) Storage system
JP2017041181A (ja) ストレージシステム、ストレージ制御装置、及びストレージ制御方法
US10108363B2 (en) Storage system and notification control method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080811

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090225

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090609

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090609

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120619

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130619

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees