(57)【要約】      （修正有）【課題】ストレージシステムの性能を向上する方法と装置を提供する。【解決手段】セカンダリサブシステムにイニシャルコピーを作成するとき、あるいはプライマリストレージサブシステムに最初にデータを保存するときに、空白データを省略する。非空白データを順番に送付することにより、欠落しているアドレスが空白データであると識別する、あるいは空白データの存在する位置を指定する省略メッセージにより、データを省略することができる。【選択図】図５
2004280779.tif 000002
【特許請求の範囲】
【請求項１】
プライマリストレージシステムからセカンダリストレージシステムへ情報をコピーする方法において、
コピーされる情報をプライマリストレージシステムで解析し、情報がコピーされるべきデータで構成されているか、コピーする必要のない空白データで構成されているかを判断すること、
セカンダリストレージシステムへコピーするべきデータを転送し、空白データは転送しないこと、
セカンダリストレージシステムではコピーするべき情報をセカンダリストレージシステムのストレージ装置に書き込みを行うことを有することを特徴とする方法。
【請求項２】
請求項１に記載の方法において、
セカンダリストレージシステムがストレージ装置にコピーを行うステップの前に、ストレージ装置が空白データを有するようフォーマットするステップを有することを特徴とする方法。
【請求項３】
請求項１に記載の方法において、
空白データがプライマリストレージシステムに存在しセカンダリストレージシステムへは転送されないことを示す省略メッセージをセカンダリストレージシステムに送信することをさらに有することを特徴とする方法。
【請求項４】
請求項３に記載の方法において、
省略メッセージを受信後、セカンダリストレージシステムがストレージ装置に空白データを書き込むことを特徴とする方法。
【請求項５】
請求項１に記載の方法において、
転送ステップが、セカンダリストレージシステムへ空白データが転送されたならば前記空白データが保存されたはずのセカンダリストレージシステムの場所に書き込むべき空白データのパターンをセカンダリストレージシステムへ転送するステップを、さらに有していることを特徴とする方法。
【請求項６】
請求項３に記載の方法において、
省略メッセージが、セカンダリストレージシステムへ空白データが転送されたならば前記空白データが保存されたはずのセカンダリストレージシステムの場所に書き込むべき空白データのパターンを、さらに有していることを特徴とする方法。
【請求項７】
請求項１に記載の方法において、
プライマリストレージシステムがディスクコントローラを有し、前記ディスクコントローラがコピーする情報を解析して前記情報がコピーするべきデータから構成されているかあるいは空白データであるかを判断するステップを実行することを特徴とする方法。
【請求項８】
請求項１に記載の方法において、
コピーするべきデータがプライマリストレージからセカンダリストレージシステムへ順番に送られ、そして
セカンダリストレージシステムは前記順番にギャップがあった場合空白データを書き込むことを特徴とする方法。
【請求項９】
請求項１に記載の方法において、情報解析のステップが、前記情報がプライマリストレージシステムのバスを転送されている間に実行されることを特徴とする方法。
【請求項１０】
請求項９に記載の方法において、ＤＭＡコントローラがバスをチェックし情報を解析することを特徴とする方法。
【請求項１１】
ホストと前記ホストに接続するストレージシステムを有し、前記ストレージシステムは前記ホストに接続するチャネルコントローラとデータを保存する装置を有するシステムにおいて、前記装置にデータを書き込む方法であって、
ストレージシステムへデータが転送される際にモニターすること、
データブロックが空白データのみからなる場合、前記装置に省略メッセージを送って前記装置が空白データの書き込みを行うのを抑止すること、及び
データブロックが空白でないデータで構成されている場合、前記データを前記装置に送って前記データの書き込みを行うことを有することを特徴とする方法。
【請求項１２】
請求項１１に記載の方法において
非空白データを書き込む前に前記装置をフォーマットして空白データを保持させるステップが実行されることを特徴とする方法。
【請求項１３】
請求項１１に記載の方法において
省略メッセージが空白データのアドレスを示していることを特徴とする方法。
【請求項１４】
請求項１３に記載の方法において省略メッセージが空白データの量も示していることを特徴とする方法。
【請求項１５】
請求項１3に記載の方法において、省略メッセージを受信後、空白データのアドレスに前記装置が空白データを書き込むことを特徴とする方法。
【請求項１６】
請求項１１に記載の方法において、省略メッセージがさらに空白データのパターンと空白データのアドレスを有していることを特徴とする方法。
【請求項１７】
請求項１６に記載の方法において、省略メッセージを受信後、前記装置が空白データのパターンを空白データのアドレスに書き込むことを特徴とする方法。
【請求項１８】
請求項１１に記載の方法において、ストレージサブシステムはディスクコントローラを有しており、前記ディスクコントローラがコピーする情報を解析し空白データで構成されているか否かを判定するステップを実行することを特徴とする方法。
【請求項１９】
コンピュータの制御下で動作しており、保存する情報と、前記情報を保存する指定されたアドレスを受信するために接続しており、前記情報は空白データと非空白データを有している、ストレージシステムにおいて、受信したアドレスに欠落の有無を判定するため指定されたアドレスをモニターすること、及び、欠落しているアドレスには空白データを書き込むことを有する方法。
【請求項２０】
請求項１９に記載の方法において、指定されたアドレスには非空白データを書き込むことをさらに含むことを特徴とする方法。
【請求項２１】
プライマリストレージシステムにおいて、プライマリストレージシステムからセカンダリストレージシステムへ送るデータを保存されたデータから選択する方法において、
保存されているデータから選択された量のデータを読み取ること、
保存されているデータが空白データか非空白かを判定すること、
保存されているデータが非空白データであれば、前記データをセカンダリストレージシステムへコマンドとともに送付し、セカンダリストレージシステムで前記データを保存させること、
保存されているデータが空白データであれば、前記データはセカンダリストレージシステムへは送付しないこと、及び
保存されているデータが全てセカンダリストレージシステムへ送付されるかあるいは空白データと判定されるまで先行のステップを繰り返すことを有することを特徴とする方法。
【請求項２２】
請求項２１に記載の方法において、
保存されているデータが空白データであった場合に前記データをセカンダリストレージシステムへは送付しないステップが、セカンダリストレージシステムへ空白データが送付されなかったことを表示するメッセージを送ることを含むことを特徴とする方法。
【請求項２３】
請求項２２に記載の方法において、メッセージが空白データのアドレスと量を表示していることを特徴とする方法。
【請求項２４】
プライマリストレージシステムから送信されたデータを受信するために接続しているセカンダリストレージシステムにおいて、プライマリシステムから送信されたデータを保存する方法であって、
プライマリストレージシステムから送信されるデータを保存することを指示するコマンドをプライマリストレージシステムから受信すること、
プライマリストレージシステムから送信されたデータを受信すること、
送付された選択された量の各データの一連のアドレスを受信すること、
一連のアドレスを解析して、アドレスの順番にアドレスの欠落の有無を判定すること、
アドレスで指定された場所にデータを保存すること、
アドレスの順番にて欠落しているアドレスに空白データを保存すること、及び    送付されたデータが全て保存されるまで以上のステップを繰り返すことを有する方法。
【請求項２５】
請求項２４に記載の方法において、
アドレスの順番にて欠落しているアドレスに空白データを保存するステップが、アドレスに指定された場所にデータを保存するステップより以前にセカンダリストレージシステムをフォーマットすることで実行されることを特徴とする方法。
【請求項２６】
請求項２４に記載の方法において、
アドレスの順番にて欠落しているアドレスに空白データを保存するステップが、選択されたデータパターンをアドレスの順番にて欠落しているアドレスに書き込むことで実行されることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステムに関し特にリモートコピー処理に関する。
【背景技術】
【０００２】
[01]  最新のストレージシステムでは、膨大な量のデータをネットワーク上の多様なローカル及びリモートサイトに迅速に保存し、かつバックアップする機能をユーザーに提供する。このようなシステムでは、プライマリストレージサイトのディスクのイニシャルコピーはセカンダリストレージサイトのディスクに作成される。通常、ストレージシステムでは、ディスク全体のコピーを自動的に取るように設定されており、プライマリサイトとリモートサイトのディスクがリモートコピーのペアに設定されている。この処理を実行するにあたり、通常プライマリサイトのディスクのイニシャルコピーがセカンダリサイトの対応するディスクに作成される。プライマリサイトでの処理でデータが更新されると、更新されたデータがプライマリサイトからセカンダリサイトに転送されて、セカンダリサイトに“ミラー”される。
【０００３】
[02]  しかしながら、データ処理システムの顧客あるいはユーザーの多くは、設置しているハードディスクドライブの容量いっぱいを使用してはいない、ということは良く知られたことである。したがって、各ハードディスクドライブには、セカンダリドライブにバックアップあるいは転送するべきデータのみならず、大量の“空白”データが存在する。この空白データは、ハードディスクのその時点で顧客が使用していない部分の全てを意味する。例えば、空白データは、ディスクのフォーマットされたが使われていない部分から構成されている場合もある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
[03]  ハードディスクの容量が増大し続けており、プライマリサイトのハードディスク全体をセカンダリサイトのハードディスクへリモートコピー処理でコピーする場合、空白データの転送と保存にかなりの時間とネットワーク資源が消費される。空白データの大量コピーは、システムの資源とネットワークの処理能力を使い果たし、一般的に望ましくないことである。
【０００５】
[04]  データ圧縮技術により問題は若干緩和される。データ圧縮技術によりネットワーク上を送信されるデータを圧縮してネットワークのトラフィックを軽減し、処理能力の消費が軽減される。このストレージシステムの圧縮技術の例として、米国ミネソタ州のミネアポリスにあるCNTが販売しているUltraNet Edge Storage RouterTM、あるいはニュージャージ州ランバートンにあるInrange Technologies Corpが販売する9801SNS Storage Network SystemTMがあげられる。これらの製品により、送信されるデータ量が減る意味で、ネットワークの負荷は減少するが、送信及び受信する装置は圧縮及び復元する負荷が増大し、復元されたデータには依然として空白データが含まれており、ターゲットのストレージサブシステムに書きこまなければならない。
【０００６】
[05]  空白データの送信とコピーを排除して、ネットワークと送信及び受信システムの負荷を減らす手段と装置が求められている。
【課題を解決するための手段】
【０００７】
[06]  本発明は、ストレージネットワークにおいて、空白データをコピーする必要を排除する方法と装置を提供するものである。本発明により、コントローラのリモートコピー処理の負荷が減少し、空白データの送信の必要が排除され、ネットワークの負荷が減少する。本発明は多様な実現方法を有している。１つの実現方法では、プライマリストレージサブシステムのディスクコントローラが、ディスクからキャッシュメモリにデータを移動するときに空白データを検出する。コントローラはチャネルコントローラに空白データを報告し、空白データがネットワークを通って送られることはなくなる。他の実現方法では、ディスクコントローラがホ、ストチャネルからキャッシュメモリにデータを移動するときに空白データを検出し、空白データの存在をチャネルコントローラに報告し、これにより空白データが送信されることを排除する。
【０００８】
[07]  空白データが検出されれば、リモートコピーコマンドを処理する方法は多種存在する。１つの方法は、空白データを単純に受信側のストレージシステムに送信しないことで、イニシャルリモートコピーでは十分である。この方法では、リモートコピー処理が始まる前に、セカンダリストレージサブシステムのリモートペアを構成するディスクがフォーマットされる。次に、“良い”情報がセカンダリサブシステムのミラーディスクにネットワークを通して送られる。セカンダリシステムのディスクはフォーマットされているので、空白でないデータの記録された個所はすべて有効で、他の個所すべてには空白データが入る。リモートディスクへは、例えばオールゼロでもオール１でも他のどのような形式でも、当該ディスクのフォーマットされた形式にしたがって、空白データが記録される。
【０００９】
[08]  空白データを処理するもう１つの方法は、イニシャルリモートコピー処理時に、全ての良いデータのアドレスを順番通りに保持することである。良いデータをセカンダリストレージ装置に書きこむ際に、ストレージ装置が良いデータの間の省略された領域に自分で空白データの書きこみを行う。
【００１０】
[09]  第三の方法は、ホストの書き込みにもイニシャルコピーにも有効で、“省略”メッセージを発行する空白データの検出器を有している。プライマリストレージが空白データを検出すると、省略する空白データのアドレスと大きさとパターンを含む省略メッセージを発行する。ターゲットストレージがこれを受信すると、選択された領域へのデータの書き込みが停止されるか、あるいは所期の大きさとパターンのデータが書き込まれる。通常はディスクがフォーマット済であればデータは停止され、でなければ省略メッセージの指示があれば所期の空白データパターンが書き込まれる。
【００１１】
[10]  実施例では、プライマリストレージシステムからセカンダリストレージシステムへ情報をコピーする方法に、コピーする情報をプライマリストレージシステムにおいて分析して、コピーするべき情報で構成されているか、あるいはコピーする必要のない空白データで構成されているか判断し、セカンダリストレージシステムへ空白データは送信せず、コピーするべきデータのみを送信し、セカンダリストレージシステムではコピーするべき情報をセカンダリストレージシステムのストレージ装置に書き込む手順が含まれている。ある実施例では、データを書き込むステップを実行する前に、セカンダリストレージがフォーマットされる。他の実施例では、プライマリストレージ装置で空白データが検出されると、空白データのブロックがプライマリストレージシステムに存在し、セカンダリストレージシステムへは送信されないことを示す、省略メッセージがセカンダリストレージ装置へ送られる。他の実施例では、セカンダリストレージシステムはフォーマットされておらず、コピーするべき情報のみが送信され、セカンダリシステムのストレージコントローラが媒体上の他の位置全部に空白データの書き込みを行う。
【発明の効果】
【００１２】
【発明を実施するための最良の形態】
【００１３】
[28]  図１は代表的な従来技術のストレージシステムであり、プライマリストレージサブシステム102がセカンダリストレージサブシステム103とネットワーク105経由で結合している。一般的にネットワーク105は従来技術のネットワークで、例えばATM，sonet、dark fibreあるいはインタネットプロトコルの通信である。さらに、図１は1台のプライマリストレージサブシステムと１台のセカンダリストレージサブシステムを示しているが、多数でも少数でも好きなだけの数の互いに離れた場所にあるストレージシステムを使用することができる。従来これらのストレージシステムを使用するのは大企業でデータの共有を進める、あるいはバックアップコピーを用意して信頼性を向上するなどのためである。
【００１４】
[29]  プライマリストレージシステムは一般的にストレージサブシステム102とチャネル103で結合するホスト101の制御下で動作する。チャネル103はチャネルコントローラ111経由でストレージサブシステム102とインタフェース結合している。通常、別のチャネルコントローラ112がストレージサブシステム102をチャネル104経由でネットワーク105へインタフェース接続する。
【００１５】
[30]  セカンダリストレージシステム103は同様に構成され、ホスト106がセカンダリシステム103をチャネル108とチャネルコントローラ122経由で制御している。別のチャネルコントローラ121はネットワーク105に結合しているチャネル109とセカンダリストレージサブシステム103とのインタフェースとなっている。通常、チャネル103、104、108及び109はfibre channel、 ESCON、 SCSIあるいはGEが使用される。チャネル104と109はネットワーク105に結合しており、ネットワーク105は公衆回線でも専用線でも良い。
【００１６】
[31]  ストレージシステム102は説明済のチャネルコントローラに加えてコントロール表117の制御で動作するキャッシュメモリ110を有している。内部バス114によりキャッシュメモリ110はチャネルコントローラ111と112およびディスクコントローラ113と通信することができる。例えばfibre channel、 SCSIあるいは ATA busなどの別の内部バス115を介してディスクコントローラ113はストレージボリューム116と通信する。ストレージサブシステムは一般的に同様に構成されている。このようにして、一般的にセカンダリストレージサブシステム103の構成はプライマリストレージサブシステム102の構成と適合したものとなっている。
【００１７】
[32]  一般的にデータはチャネルコントローラとキャッシュメモリを経由してプライマリストレージサブシステムに入出力される。ストレージボリュームに書き込むデータが着信すると一時的にキャッシュメモリに記録され、次にディスクコントローラが読み出してボリュームに書き込む。同様にボリューム116からネットワーク経由で送信するデータが読み出されると、チャネルコントローラに大ブロックで送る前に一般的にキャッシュメモリに保存される。ストレージサブシステムは物理ディスクアドレスをホストから見える論理ディスクアドレスに変換する。
【００１８】
[33]  上記のように通常の動作ではプライマリストレージサブシステム102のボリューム116のデータをセカンダリストレージサブシステム103のボリューム126へ“ミラー”することが望ましい。同じく上記のように、図１などのシステムが通常有するかなりの記憶容量の故に、ボリューム116にはかなりの量の“空白”データがあり得る。この空白データはハードディスク上のフォーマットされ未書き込みの部分あるいはディレクトリ入力が無効の（消去表示されているなど）ファイルまたはファイルの一部の大きな部分を占めている。ストレージサブシステムの性能を改善し、チャネルコントローラとネットワークの負荷を減少させるには、この大量の空白データをプライマリストレージサブシステムからチャネル104、ネットワーク105を経由して、ディスクボリューム126へデータを書き込むチャネル109へ送信しないことが有利である。以下にこれを実現した方法を説明する。
【００１９】
[34]  図２は、例えば図１の111,112,121あるいは122のどれであっても良いが、チャネルコントローラのブロック構成図である。図２のチャネルコントローラ201は内部にチャネルインタフェース204、中央処理装置206、メモリ205、ダイレクトメモリアクセス回路207及び内部バス203へのインタフェース208を有している。インタフェース204は例えばネットワークあるいはホストのチャネルコントローラに対して高レベルの機能をもったインタフェースとして動作し、一方インタフェース208はチャネルコントローラ201に対してキャッシュメモリあるいはディスクコントローラなどのストレージサブシステムの内部機能へのインタフェースを実行する。ＣＰＵ206はバス209上での通信を介してチャネル201のコンポーネントを制御する。
【００２０】
チャネルインタフェース204はチャネルプロトコルを制御し、チャネルとＣＰＵ206及びＤＭＡ207のデータの送受信を制御し、メモリ205とチャネルインタフェース204との間のデータ転送を制御する。内部インタフェース208は内部バス203上での通信プロトコルを制御し、ＤＭＡコントローラ207とメモリ205の動作に対応して該ライン上のデータを制御する。
【００２１】
[35]  図３はディスクコントローラ301の構成を図示する概略図である。コントローラ301は図１のディスクコントローラ113または123の処理を実行するために使用することができる。ディスクコントローラは２種類のインタフェースを有している。インタフェースの１つ、内部インタフェース304は内部バス302（または図２の203）へのインタフェースである。他のインタフェース308はディスクバス303へのインタフェースで、ディスクバス303に結合しているストレージボリュームとの通信を可能にしている。内部インタフェース304とディスクインタフェース308はバス309を介して接続している。ディスクコントローラはＣＰＵ306とメモリ305及びDMAコントローラ307を有している。これらのコンポーネントは内部バス302とディスクバス303との間の情報の流れを調整している。内部インタフェース304は内部バスプロトコルを制御し、DMAコントローラ307と共に内部バスとメモリ305の間でデータを通信する。
【００２２】
同様にディスクインタフェース308はディスクバス303のプロトコルを制御し、CPU306、DMAコントローラ307の制御の下でメモリ305とディスクバス303の間でデータを通信する。上記のように、実施例ではディスクコントローラ301はストレージボリューム中の空白データをディスクバス303と接続するストレージボリューム中の空白データを検出することができる。DMAコントローラ307は公知の技術をバス309のチェックに適用している。DMAコントローラ307が空白データを検出するとバス309に接続する他の機器に警告の信号をバス309に発信する。これについてはさらに以下説明する。
【００２３】
[36]  図４乃至６で、各プライマリ及びセカンダリストレージサブシステムでのイニシャルコピー処理の概要を図示する。図４は、イニシャルコピーを作成するときのプライマリストレージサブシステム102を図示する。最初の動作はディスクコントローラ113がディスク116ｂからディスクデータを読み取りキャッシュメモリ110に送付することである。内蔵ＣＰＵ（図示せず）の制御の下で動作しているチャネルコントローラ112はトランザクションをモニターし、キャッシュメモリ110に適当な量のデータが保存され、あわせてディスクコントローラ113の関連エントリがコントロール表117に入力されると、転送を開始する。
【００２４】
所期の量のデータがキャッシュメモリ110に蓄積されると、チャネルコントローラ112は“書き込み”コマンド（あるいは以下に述べるある種のタイプのシステムの場合はベンダー固有のコマンド）を発行しイニシャルコピーの処理を開始する。チャネルコントローラ112は、イニシャルコピーデータをキャッシュメモリ110からチャネル104経由でネットワーク105へ送付する。データはネットワーク105に送られるとセカンダリストレージシステム（図示せず）へ送信される。
【００２５】
[37]  図５はリモートコピー処理時のプライマリストレージサブシステム102の動作を図示する。このプロセスはホスト101がシステム102に書き込みコマンドを発行することにより起動する。次にチャネルコントローラ111がコマンドを受信し解析する。このコマンドで、チャネルコントローラ111はホスト101から書き込みデータを受信しキャッシュメモリ110に保存する。コントローラ111はまた本リモートコピーに関する情報をコントロール表117に保存する。キャッシュメモリ110からのデータがリモートコピーペアの一方として最終的にディスクに保存されると、チャネルコントローラ112はリモートコピーコマンドをセカンダリストレージサブシステム（図示せず）に発行する。
【００２６】
[38]  図6はチャネル109経由でネットワークからイニシャルコピーまたはリモートコピーデータが着信した際のセカンダリストレージサブシステム103の動作を示す図である。このとき、チャネルコントローラ121は受信したコマンドを解析し、データをキャッシュメモリ120に保存し、コントロール表127に適切なエントリを作成する。ディスクコントローラ123は定期的にコントロール表127をチェックする。ディスクコントローラ123が、ディスクコントローラで実行すべき処理を発見すると、ディスクコントローラはキャッシュメモリ120からデータを読み取り、ターゲットディスク、この場合ディスク126ｂへデータを書き込む。
【００２７】
[39]   空白データを送る場合、図４の（２）、図５の（２）あるいは図６の（３）に示すステップでの負荷は、本発明の実施例では軽減されることに注目してください。言い換えると、図４乃至６に関する処理は、通常の（空白でない）データを処理する際の説明と同様に実行される。しかしながらこれらの処理は空白データを処理する際には必要のないものである。
【００２８】
[40]  図７は本発明による手段の実施例のフローチャートである。本フローチャートはプライマリストレージサブシステム102（図１参照）で実行されるイニシャルコピーの手順を示している。イニシャルコピー処理が開始する前にプライマリとセカンダリのシステムは同期されリモートコピーペア、すなわちプライマリストレージサブシステムとセカンダリストレージサブシステムのディスク間の対応、が形成される。本処理はシステムアドミニストレータが実行する。本公知の処理の後、図７のイニシャルコピー処理が実行される。
【００２９】
イニシャルコピー処理の実行の最初のステップはファイルシステム701のクリーニングである。本ステップではプライマリディスクの未使用部分とセカンダリディスクの全ては空白データで占められる。このステップは商用入手可能なソフトウェア、例えばフィンランドのタンペールのJeticoから入手可能なBC WipeTM を使用して実行される。クリーニングソフトウェアと空白データのコピーを省略することを合わせると、ここに述べるようにリモートコピー処理の負荷をかなり減少させることができる。以下の説明で明らかになるとおり、クリーニング処理は必須ではない。
【００３０】
[41]   クリーニングが完了すると、ステップ702でイニシャルコピーの作成が開始し、ターゲットディスクからデータが読み出される。本処理ではディスクコントローラ113はディスクからデータを読み出しキャッシュメモリ110に送付する。キャッシュの読み出しと書き込みでは、転送に際して通常大量のデータを、例えば１MBのデータが処理される。転送自体はDMA308の制御下で実行される。
【００３１】
[42]  図７に示すようにデータが読み出されると、ステップ703でデータをチェックして空白データの存在を判定する。本処理はデータパターンを判定するためバストラフィックを監視しているDMA307により実行される。この処理を通常“snooping”と呼んでいる。DMA307がデータパターンが空白データで構成されていることを検出すると、当該情報がCPU306へもたらされる。データが空白であるか否かの判定はクリーニング処理に使われたソフトウェアまたはイニシャルコピー処理を実行する前にハードディスクをフォーマットするのに使用されたソフトウェアで実行される。
【００３２】
通常、空白データはオールゼロか、オール１あるいはゼロと１の繰り返し、例えば010101で構成されている。このパターンが現れたら、CPU306はコントロール表117を用いて空白データのコピーを省略するようにシステムに指示する。一方、データが１とゼロのランダムなパターンであったときは、CPU306はコントロール表117にエントリを行って通常処理を可能にする。
【００３３】
[43]  データが転送されるとチャネルコントローラ112は定期的にコントロール表117をチェックする。チャネルコントローラが表117を用いて“正常な”データのコピー−イニシャルコピー−であると判断したらチャネルコントローラ112はデータ転送を行う。この転送でデータは最終的にプライマリストレージシステム102からセカンダリストレージシステム103にコピーされる。CPU206はDMA207にコマンドを送りキャッシュメモリ110からメモリ205へデータを移動させる。その後、CPU206はチャネルインタフェース装置112へコマンドを送り、イニシャルコピー（リモートコピー）コマンドをセカンダリストレージシステム103へネットワーク105を通して発行させる。リモートコピーコマンドの発行はステップ704に示されている。
【００３４】
[44]  空白データのコピーを省略要求のときはCPU206は省略メッセージを発行しデータ転送を行わない。省略メッセージ自体が１以上の量（１MBサイズ、上記参照）のデータがコピーされないことを示している。ディスクコントローラはディスク上のすべてのデータがセカンダリサブシステムに送られるか、空白データと判定されるまで、図７のステップ702−705を繰り返し続ける。これはステップ706に示されている。
【００３５】
[45]  ステップ707に示されるように、ディスク上の全てのデータが転送されるか空白データと判定されるとディスクコントローラは次のディスクまたはボリュームを選択して処理を繰り返す。最後にステップ708に示すように、プライマリサイトのストレージの全ボリュームがセカンダリサイトのストレージにイニシャルコピーされるかリモートコピーされる。この時点でプライマリストレージサイト102のイニシャルコピー処理は完了する。
【００３６】
[46]  図８はセカンダリストレージシステム103のイニシャルコピー処理を示すフローチャートである。上記のごとく、管理者の最初のステップの選択肢はステップ801に示すようにセカンダリストレージのボリュームをフォーマットすることである。セカンダリストレージサイトでのイニシャルコピーの実行を指示するコマンドがステップ802で受信されると処理が開始される。このとき、チャネルコントローラ121はイニシャル（リモート）コピーコマンドをネットワーク105を介して受信する。CPU206はチャネルインタフェース204で受信したコマンドを解析する。コマンドが通常データのコピーを指示するものであったときはCPU206はチャネルインタフェース204にプライマリストレージシステム102からネットワーク105経由でデータを受信するように指示する。データが着信するとチャネルインタフェース204はデータをメモリ205に保存する。
【００３７】
[47]  次にCPU206の制御の下に、DMA装置207はデータをメモリ205からキャッシュメモリ120へ移動するよう指示を受ける。CPU206からの本要求はコントロール表127に保存される。ディスクコントローラ123は定期的にコントロール表127をチェックする。ディスクコントローラ123が要求を発見すると、ディスクインタフェース308はCPU306の指示を受け、書き込みコマンドを発行しディスクにデータを書き込む。これはフローチャートにステップ803,804及び806として示されている。以上は正常（空白でない）データの処理である。
【００３８】
[48]  一方、チャネルコントローラ121が受信したコマンドが空白データを意味する省略メッセージの場合、CPU206は省略処理を開始する。このようにステップ803で空白データが検出され、ステップ805で空白データの省略処理が実行される。この場合、セカンダリストレージシステム103は事前にディスクがクリーニングまたはフォーマットされており、すでに空白データが指定された位置に書き込まれているので、データをディスクに書き込むことは行わない。省略メッセージによりある種のパターンのデータを書き込むことを求められ、ディスクがクリーニングまたはフォーマットされておらず、そのパターンがセカンダリストレージに書き込まれていない場合はディスクコントローラ123は省略要求を検出すると指定されたパターンをディスクに書き込む。
【００３９】
本処理はCPU306が所期のパターンをメモリ305に生成し、ディスクインタフェース装置308にそのデータをディスクに書き込むようコマンドを発行することにより達成される。上記のプロセスはステップ807に示すようにセカンダリストレージサイト103のイニシャルコピーが完了するまで繰り返し実行される。
【００４０】
[49]  前に説明したように、セカンダリストレージサイトで読み出しと書き込みを実行中に空白データを省略する手段はいくつか存在する。空白データを省略する方法のうち２つを、図9ｂと9ｃに示している。図9ａは空白データを省略しない場合の手順を示している。図９ａを最初に説明する。図９ａにてＤａｔａ0とＤａｔａ３は正常データで、Ｄａｔａ１とＤａｔａ２は空白データである。
【００４１】
図9ａに示すように、通常のイニシャルまたはリモートコピー処理では、プライマリストレージサブシステム102はデータセットＤａｔａ０、Ｄａｔａ１、Ｄａｔａ２、Ｄａｔａ３及びＤａｔａ４の各々に計４つのコピーコマンドを発行する。これらのコマンドによりデータはプライマリストレージシステム102のメモリからセカンダリストレージシステム103のメモリへ転送される。
【００４２】
セカンダリストレージシステムではさらに４つのコマンドが解読され実行され、Ｄａｔａ０、Ｄａｔａ１、Ｄａｔａ２及びＤａｔａ３がセカンダリストレージシステムのディスクに書き込まれる。上記の説明から明らかなように、Ｄａｔａ１及びＤａｔａ２をプライマリストレージシステムの中からネットワークを介して送信しセカンダリストレージシステムに再度書き込みを行うために使用される時間と通信資源は不必要であり、無駄である。
【００４３】
[50]  図9ｂと9ｃに空白データを省略する２つの技術を図示している。図9ｂはセカンダリストレージサブシステムのボリュームが、プライマリストレージシステムの空白データのフォーマットと一致するようにフォーマットされている場合の空白データを省略する処理を示す図である。図9ｂの場合、上記図7と8を用いて説明した技術により、プライマリストレージシステムがＤａｔａ１及びＤａｔａ２が空白データであり、これらをセカンダリストレージシステムに送信する必要がないことを検出する。
【００４４】
セカンダリストレージシステムは既に適切にフォーマットされているのが分かっているので、プライマリストレージシステムはＤａｔａ１またはＤａｔａ２を送信することも、あるいはＤａｔａ１またはＤａｔａ２の存在を通知する必要もない。Ｄａｔａ0及びＤａｔａ3がセカンダリストレージサブシステムボリュームにコピーされるとこれらのボリュームの内容はプライマリストレージシステム102の対応するボリュームの内容と一致（ミラー）する。
【００４５】
[51]  セカンダリストレージシステム103がフォーマットされていない場合、他の代替手段が実行される。この場合、プライマリストレージシステムがイニシャルコピーコマンドを順番に発行すると、セカンダリストレージシステムはＤａｔａ1とＤａｔａ2のアドレスが省略されたことが分かる。この場合、空白のＤａｔａ1とＤａｔａ2はネットワークを介して送信されることはないが、セカンダリストレージシステムはＤａｔａ1とＤａｔａ2の省略されたアドレスを検出できるので、ストレージボリュームに適切な形式で空白データの書き込みを行う。
【００４６】
[52]  図9ｃは本発明の他の実施例を示す。図9ｃでは空白データを省略したことが、プライマリストレージサブシステム102からセカンダリストレージシステム103へ空白データが省略されたことを示すメッセージの送信により連絡される。この場合、セカンダリストレージサブシステムのボリュームを前もってフォーマットしておく必要はない。図に示すようにＤａｔａ1とＤａｔａ2から構成される空白データの存在はプライマリストレージサブシステムにより、例えばＤＭＡ装置がデータの得られるバスをチェックしているなどにより検出される。データのあるものが、例えばＤａｔａ1とＤａｔａ2が、空白データであると判定されると、プライマリサブシステム102は１つのメッセージにそれらをまとめてセカンダリストレージサブシステム103へその情報を送る。セカンダリストレージサブシステムはプライマリストレージサブシステム102から送られてきた省略メッセージを解析して、ストレージボリュームの中の省略メッセージで指定されたＤａｔａ1とＤａｔａ2の位置に空白データの書き込みを実行する。
【００４７】
省略メッセージの送信によりセカンダリストレージシステムでの該当するデータの書き込みの必要性はなくならないが、ネットワークのトラフィックは軽減し、セカンダリサイトでの負荷が軽減し、“真の”データをプライマリとセカンダリのサブシステム間で送信することに資源をあてることが可能になる。
【００４８】
[53]  図９ｄは他の観点から空白データの省略処理を説明する図である。図の上側はデータ（空白および非空白）及びデータをセカンダリシステムに書き込みを行う通常コマンドが示されている。コマンド(Cmd)は指定されたサイズとアドレス(Adr)のデータブロックの書き込み指示する。例えば、最初のコマンドはサイズ0ｘ0010でアドレス0ｘ0030にデータの書き込みを行うものである。図の下側の部分は非空白データのみをセカンダリサブシステムに送る方法を示している。
【００４９】
[54]  図１０ａは省略メッセージを示す図である。図１０ａの左側の、プライマリとセカンダリストレージシステム間で空白データを転送するための、データ転送の数に注目して欲しい。図１０ａの右側は、指定されたデータの“塊”が省略されたことを示すために省略メッセージが使われている。データ(FCP_DATA)を送信するステップが全て削除されている。
【００５０】
[55]  図１０ｂは図１０ａと同様の図である。図１０ｂの左側に示すように、空白データが送信されると膨大な量の空白データがプライマリからセカンダリストレージシステムへ送信される。逆に図１０ｂの右側では本発明の方法が適用され両ストレージサブシステム間で全空白データの送信の必要がなくなっている。空白データの転送は図１０ａで説明したのと同じコマンドで示されている。
【００５１】
[56]  図11は省略メッセージの１例である。メッセージは９バイト（行で表す）で構成され、９バイトの各ビットの状態は列で表されている。オペレーションコードはコピーを省略することを示しており、バイト２−５に開始論理ブロックアドレスがバイト７−８に転送長が示されている。
【００５２】
[57]  図１２は省略メッセージの例で、セカンダリストレージサブシステムサイトで書き込むべきデータパターンが含まれている。省略メッセージは図11と同じフォーマットであるがストレージボリュームに書き込むべきデータパターンがメッセージのバイト6に表示されている。図11と図12に示すメッセージフォーマットは代表例である。メーカー固有のメッセージを使用することができ、特定のメッセージあるいはコマンドに基づいて、多様なサイズの空白データを省略することができる。例えば、次の１０バイト、次の１００バイトのコピーを省略するなど個々のメッセージを送ることができる。    
[58]  図13はチャネルコントローラを使用してプライマリストレージサブシステムにホストが書き込みを行う場合の手順を示すフローチャートである。この場合、書き込み処理で空白データが検出されるとプライマリシステムでの最初のデータ保存を加速することができる。チャネルコントローラ111のＣＰＵ206がホストの入出力動作を処理し、これはステップ1301及び1303に示されている。チャネルコントローラ112のＣＰＵ206はリモートコピーを処理し、これはステップ1303,1304及び1305に示されている。
【００５３】
[59]  ホスト101が“書き込み”コマンドを発行すると、チャネルインタフェース204がコマンドを受信しＣＰＵ206に報告し、場合によりメモリ205にコマンドを保存する。ＣＰＵ206はコマンドを解析し有効であれば実行を開始する。無効であればＣＰＵ206は“no good”ステータスをチャネルインタフェース204経由でホスト101に返す。これらの動作は例えばSCSI仕様に従って処理される。
【００５４】
[60]  コマンドが有効であると仮定して、ＣＰＵ206はホスト101からのデータ転送の開始をインタフェース装置204に指示する。インタフェース装置204はチャネル103からメモリ205へデータを転送する。ＣＰＵ206はメモリ205へ指定された量のデータが転送されるのを待ち、次いでＤＭＡ207にコマンドを発行する。ＤＭＡ207は内部インタフェース208と内部バス203を使用してメモリ205からキャッシュメモリ110へデータを転送するよう指示を受ける。ＣＰＵ206はインタフェース208を制御してチャネルインタフェース204を追い越すことを防止している。
【００５５】
すべてのデータがキャッシュメモリ110に転送されるとＣＰＵ206はチャネルインタフェース204とチャネル103を経由してホスト101に”good”ステータス報告を返す。これらの処理の実行にともないＣＰＵ206は定期的にコントロール表117を更新する。これらの動作すべては図13の書き込みコマンドステップ1301に含まれている。
【００５６】
[61]  上記のように転送が行われている間ＤＭＡ207はデータパターンをチェックしている。データが空白データであった場合、ＤＭＡ207はＣＰＵ206に省略メッセージをコントロール表117に書きこませる。ディスクコントローラ113のＣＰＵ306はデータ書き込み中に定期的にコントロール表117をチェックしている。ＣＰＵ306が、ディスクコントローラ113で処理される省略メッセージを検出すると、ＣＰＵ306はデータの書き込み処理を開始する。処理のために必要な情報はここに全てコントロール表117に含まれている。
【００５７】
ＤＭＡ307はＣＰＵ306の指示を受け、チャネルコントローラ111がコントロール表117をチェックする速度を追い越さない速度でデータをキャッシュメモリ110からメモリ305に転送する。データ転送の間ＤＭＡ307はまた空白データを検出することができる。ＣＰＵ306は指定された量のデータがメモリ305に転送されるまで待つ。データが空白データであった場合、ＣＰＵ306は省略メッセージをコントロール表117に入力する。ＣＰＵ306は次にディスクインタフェース装置308とディスクバス303経由でメモリ305からディスク115にデータの転送を開始する。
【００５８】
ＣＰＵ306はディスクインタフェース308を制御し、内部インタフェース304を追い越すことがないことを保証している。全てのデータがディスク115に書き込まれると、これもステップ1302に示すように、ＣＰＵ306はリモートコピー情報をコントロール表117に発行する。
【００５９】
[62]  チャネルコントローラ112は定期的にコントロール表117をチェックしている。チャネルコントローラ112がリモートコピー要求を検出するとリモートコピー処理を開始する。2件の連続したリモートコピー処理であれば、ＣＰＵ206は１つのリモートコピーコマンドに結合することができ、これは標準コマンドでもベンダー固有コマンドであっても良い。リモートコピーコマンドを発行する前にＣＰＵ206はコントロール表117をチェックする。省略メッセージがあれば、ＣＰＵ206はステップ1305に示すように省略メッセージを発行する。ＣＰＵ206が省略メッセージを発見しなかった場合、リモートコピーコマンドを発行しセカンダリストレージサブシステム103にデータを転送する。セカンダリストレージサブシステム103でのリモートコピー処理は図8のステップ802−806で説明したのと同様である。
【００６０】
[63]  図14は上記の方法と装置とは異なる処理の概要を示す図である。図14の第一列は個別のアプリケーションを、言い換えると空白データはセカンダリサイトでイニシャルコピーを作成中か、もっと前にプライマリストレージサイトで書き込み中に検出されるのかを示している。図14の次の列はプライマリストレージサイトで空白データを検出するコンポーネントを示している。プライマリストレージサブシステムからセカンダリストレージサブシステムへのイニシャルコピーの場合、空白データはディスクコントローラにより検出される。一方、プライマリストレージシステムにホストから初めてデータが書き込まれるときはチャネルコントローラが空白データを検出する。
【００６１】
[64]  図表の次の列に空白データの検出に対しての対処が要約されている。ディスクコントローラで検出された場合、すなわちイニシャルコピー処理の場合、省略メッセージが生成されるか、データが無視されるかである。これら２つの処理は図9ｂと9ｃを用いてそれぞれ説明されている。ホストから空白データが着信したことをチャネルコントローラが検出した場合、データの書き込みを省略するべきことを下流のディスクに伝えるため省略メッセージが使われる。本処理については図9ｃを用いて説明した。
【００６２】
[65]  図14の右側の列はターゲットサブシステムで生ずる事項を述べている。イニシャルコピー時の場合は、ターゲットサブシステムの対応は全てセカンダリシステムで発生する。省略メッセージの場合、ディスクがすでに適切にフォーマットしてあれば、セカンダリサブシステムでは対応する必要がない。前にフォーマットしてなければ、右側のブロックに示すようにデータの書き込みを行う必要がない。同様にイニシャルコピー処理で、空白データは単に省略する場合、ディスクが以前にフォーマットされていればセカンダリサブシステムでは対応する必要がない。
【００６３】
ディスクが以前にフォーマットされていないかクリーニングされていなければ空白データを書き込まなければならない。図14の最下段の行にホストの書き込み処理について示す。この場合は省略メッセージによりプライマリサブシステムに空白データが書き込まれる結果になる。
【００６４】
[66]  以上は発明の実施例の説明である。以下の請求項の範囲を逸脱することなく発明の実施において変更を加えることが可能であることは容易に分かることである。
【図面の簡単な説明】
【００６５】
【図１】図１は、ネットワーク経由で通信するプライマリストレージサブシステムとセカンダリストレージサブシステムを有するストレージシステムを示す図である。
【図２】図２は、図１にブロック形式で示すチャネルコントローラの構成を示す図である。
【図３】図３は、同じく図１のブロックに示すディスクコントローラの構成を示す図である。
【図４】図４は、プライマリストレージシステムのイニシャルコピー処理を示す図である。
【図５】図５は、この処理を詳細に示す図である。
【図６】図６は、プライマリストレージシステムからのコマンドに応じたセカンダリストレージシステムの動作を示す図である。
【図７】図７は、プライマリストレージシステムのイニシャルコピー処理の手順を示すフローチャートである。
【図８】図８は、セカンダリストレージサブシステムのイニシャルコピーの手順を図示する図である。
【図９ａ】図９ａは、空白データを省略することなくコピーする従来技術の処理を図示する図である。
【図９ｂ】図９ｂは、空白データを省略するリモートコピー処理を図示しする図である。
【図９ｃ】図９ｃは、空白データを省略するメッセージを使用して空白データを省略したリモートコピー処理を図示しする図である。
【図９ｄ】図９ｄは、空白データの送信とコピーの省略を行う処理を図示する図である。
【図１０ａ】図１０ａは、本発明の1実施例におけるプライマリストレージシステムとセカンダリストレージシステムの関係を図示する図である。
【図１０ｂ】図１０ｂは、本発明の1実施例におけるプライマリストレージシステムとセカンダリストレージシステムの関係を図示しする図である。
【図１１】図１１は、ベンダー固有のコマンドを使用した“省略”メッセージの例を示す図である。
【図１２】図１２は、省略メッセージの他の例であるがデータパターンを図示しする図である。
【図１３】図１３は、プライマリストレージシステムとダイレクトメモリアクセス装置の空白データを検出する動作のフローチャートである。
【図１４】図１４は、ストレージシステムの動作の多様な様式を示す図である。
【符号の説明】
【００６６】
101・・・ホスト、105・・・ネットワーク、106・・・ホスト、110…キャッシュメモリ、111・112・・・チャネルコントローラ、113・・・ディスクコントローラ、115・・・ボリューム、120・・・キャッシュメモリ、121・122・・・チャネルコントローラ、123・・・ディスクコントローラ、125・・・ボリューム、204・・・チャネルインタフェース、205・・・  メモリ、206・・・CPU、207・・・DMA、208・・・内部インタフェース、203・・・  内部バス、304・・・内部インタフェース、305・・・メモリ、306・・・CPU、307・・・DMA、308・・・ディスクインタフェース、303・・・ディスクバス
【図１】
2004280779.tif 000003
【図２】
2004280779.tif 000004
【図３】
2004280779.tif 000005
【図４】
2004280779.tif 000006
【図５】
2004280779.tif 000007
【図６】
2004280779.tif 000008
【図７】
2004280779.tif 000009
【図８】
2004280779.tif 000010
【図９ａ】
2004280779.tif 000011
【図９ｂ】
2004280779.tif 000012
【図９ｃ】
2004280779.tif 000013
【図９ｄ】
2004280779.tif 000014
【図１０ａ】
2004280779.tif 000015
【図１０ｂ】
2004280779.tif 000016
【図１１】
2004280779.tif 000017
【図１２】
2004280779.tif 000018
【図１３】
2004280779.tif 000019
【図１４】
2004280779.tif 000020
【外国語明細書】
2004280779.tif 000021
2004280779.tif 000022
2004280779.tif 000023
2004280779.tif 000024
2004280779.tif 000025
2004280779.tif 000026
2004280779.tif 000027
2004280779.tif 000028
2004280779.tif 000029
2004280779.tif 000030
2004280779.tif 000031
2004280779.tif 000032
2004280779.tif 000033
2004280779.tif 000034
2004280779.tif 000035
2004280779.tif 000036
2004280779.tif 000037
2004280779.tif 000038
2004280779.tif 000039
【図１】
2004280779.tif 000040
【図２】
2004280779.tif 000041
【図３】
2004280779.tif 000042
【図４】
2004280779.tif 000043
【図５】
2004280779.tif 000044
【図６】
2004280779.tif 000045
【図７】
2004280779.tif 000046
【図８】
2004280779.tif 000047
【図９Ａ】
2004280779.tif 000048
【図９Ｂ】
2004280779.tif 000049
【図９Ｃ】
2004280779.tif 000050
【図９Ｄ】
2004280779.tif 000051
【図１０Ａ】
2004280779.tif 000052
【図１０Ｂ】
2004280779.tif 000053
【図１１】
2004280779.tif 000054
【図１２】
2004280779.tif 000055
【図１３】
2004280779.tif 000056
【図１４】
2004280779.tif 000057