(57)【要約】  本明細書に記載する例示の実施例は、ホストコンピュータ上で稼動するアプリケーションが関与し、記憶インフラストラクチャを管理するように構成された、システムおよび方法を対象とする。アプリケーションは、既に割り当てられているリソースを管理するだけではなく、そのアプリケーションに対するリソースの割当ておよび割当て解除も管理する。リソースは、実行されているプロセスのタイプに基づいて割当ておよび割当て解除を行うことができ、一次ストレージシステムの障害が起こると、接続されたフェールオーバーストレージシステムノードに対して実行される優先順位の高いプロセスに優先順位が与えられ、かかるフェールオーバーストレージシステムノードにおける優先順位の低いプロセスは動作不能にされる。
2019528517.tif 000002
【特許請求の範囲】
【請求項１】
第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された１つまたは複数の第２のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第１のストレージシステムであって、
前記第２のストレージシステムの前記複数のボリュームの各ボリュームに関する空き領域情報と、前記第２のストレージシステムの前記複数のボリュームの各ボリュームに関するドライブタイプ情報と、前記第２のストレージシステムのフラッシュデバイスに関する空き領域情報とを含む管理情報を管理するように構成された、メモリと、
プロセッサであって、
前記第１のタイプのプロセスと関連付けられたデータに対する書込みコマンドを前記ホストから受信した場合、前記データの複製が前記第１のストレージシステムまたは前記第２のストレージシステムに対して行われるべきかを判定し、
前記データの複製が前記第２のストレージシステムに対して行われるべきである場合、
前記第２のストレージシステムの各ボリュームの前記空き領域情報、各ボリュームの前記ドライブタイプ情報、およびフラッシュデバイスの前記空き領域情報に基づいて、前記書込みコマンドに対して前記複数のボリュームからボリュームを選択し、
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がフラッシュであり、前記フラッシュデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記フラッシュデバイスの前記空き領域情報を更新し、
前記データの前記複製を前記第２のストレージシステムの前記フラッシュデバイスに書き込むように構成された、プロセッサとを備える、第１のストレージシステム。
【請求項２】
請求項１に記載のシステムであって、前記管理情報が、前記１つまたは複数の第２のストレージシステムのハードディスクドライブデバイスの空き領域情報と、前記１つまたは複数の第２のストレージシステムのメモリの空き領域情報とを更に含み、
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記１つまたは複数の第２のストレージシステムの前記メモリの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記１つまたは複数の第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報および前記メモリの前記空き領域情報を更新し、
前記データの前記複製を前記第２のストレージシステムの前記ハードディスクドライブデバイスに書き込むように、前記プロセッサが更に構成された、システム。
【請求項３】
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記１つまたは複数の第２のストレージシステムの前記メモリの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていない場合、ＣＰＵ負荷に基づいて判定される優先順位に基づいて、前記１つまたは複数の第２のストレージシステムから１つの第２のストレージシステムを選択し、
前記１つまたは複数の第２のストレージシステムからの前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記データの前記複製を前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスに書き込み、
前記１つまたは複数の第２のストレージシステムからの前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、優先順位に基づいて、前記１つまたは複数の第２のストレージシステムから別の第２のストレージシステムを選択するように、前記プロセッサが更に構成された、請求項２に記載のシステム。
【請求項４】
前記第１のストレージシステムの障害が起こると、前記１つまたは複数の第２のストレージシステムが、
前記第１のタイプのプロセスの記憶プロセスを前記第２のストレージシステムに対して実行し、
前記第２のストレージシステムがハードディスクドライブデバイスを有さない場合、前記第２のタイプのプロセスの前記実行を終了するように構成された、請求項１に記載のシステム。
【請求項５】
前記第１のストレージシステムの障害が起こると、前記第２のストレージシステムが、
前記第１のタイプのプロセスと関連付けられたデータを、前記ハードディスクドライブデバイスから前記第２のストレージシステムのメモリにロードし、
前記第２のストレージシステムのプロセッサの負荷が閾値未満である場合、前記第２のタイプのプロセスの前記実行を終了するように構成された、請求項４に記載のシステム。
【請求項６】
前記第１のタイプのプロセスが、前記第２のタイプのプロセスよりも待ち時間が短いことを要するオンライン取引処理（ＯＬＴＰ）であり、前記第２のタイプのプロセスが解析処理である、請求項１に記載のシステム。
【請求項７】
第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された１つまたは複数の第２のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第１のストレージシステムに対する命令を記憶する、非一時的コンピュータ可読媒体であって、前記第１のストレージシステムに対する前記命令が、
前記第２のストレージシステムの前記複数のボリュームの各ボリュームに関する空き領域情報と、前記第２のストレージシステムの前記複数のボリュームの各ボリュームに関するドライブタイプ情報と、前記第２のストレージシステムのフラッシュデバイスに関する空き領域情報とを含む管理情報を管理することと、
前記第１のタイプのプロセスと関連付けられたデータに対する書込みコマンドを前記ホストから受信した場合、前記データの複製が前記第１のストレージシステムまたは前記第２のストレージシステムに対して行われるべきかを判定することと、
前記データの複製が前記第２のストレージシステムに対して行われるべきである場合、
前記第２のストレージシステムの各ボリュームの前記空き領域情報、各ボリュームの前記ドライブタイプ情報、およびフラッシュデバイスの前記空き領域情報に基づいて、前記書込みコマンドに対して前記複数のボリュームからボリュームを選択することと、
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がフラッシュであり、前記フラッシュデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記フラッシュデバイスの前記空き領域情報を更新することと、
前記データの前記複製を前記第２のストレージシステムの前記フラッシュデバイスに書き込むこととを含む、非一時的コンピュータ可読媒体。
【請求項８】
請求項７に記載の非一時的コンピュータ可読媒体であって、前記管理情報が、前記１つまたは複数の第２のストレージシステムのハードディスクドライブデバイスの空き領域情報と、前記１つまたは複数の第２のストレージシステムのメモリの空き領域情報とを更に含み、
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記１つまたは複数の第２のストレージシステムの前記メモリの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記１つまたは複数の第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報および前記メモリの前記空き領域情報を更新することと、
前記データの前記複製を前記第２のストレージシステムの前記ハードディスクドライブデバイスに書き込むこととを、前記命令が更に含む、非一時的コンピュータ可読媒体。
【請求項９】
請求項８に記載の非一時的コンピュータ可読媒体であって、
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記１つまたは複数の第２のストレージシステムの前記メモリの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていない場合、ＣＰＵ負荷に基づいて判定される優先順位に基づいて、前記１つまたは複数の第２のストレージシステムから１つの第２のストレージシステムを選択することと、
前記１つまたは複数の第２のストレージシステムからの前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記データの前記複製を前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスに書き込むことと、
前記１つまたは複数の第２のストレージシステムからの前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、優先順位に基づいて、前記１つまたは複数の第２のストレージシステムから別の第２のストレージシステムを選択することとを、前記命令が更に含む、非一時的コンピュータ可読媒体。
【請求項１０】
前記第１のストレージシステムの障害が起こると、前記１つまたは複数の第２のストレージシステムが、
前記第１のタイプのプロセスの記憶プロセスを前記第２のストレージシステムに対して実行し、
前記第２のストレージシステムがハードディスクドライブデバイスを有さない場合、前記第２のタイプのプロセスの前記実行を終了するように構成された、請求項７に記載の非一時的コンピュータ可読媒体。
【請求項１１】
前記第１のストレージシステムの障害が起こると、前記第２のストレージシステムが、
前記第１のタイプのプロセスと関連付けられたデータを、前記ハードディスクドライブデバイスから前記第２のストレージシステムのメモリにロードし、
前記第２のストレージシステムのプロセッサの負荷が閾値未満である場合、前記第２のタイプのプロセスの前記実行を終了するように構成された、請求項１０に記載の非一時的コンピュータ可読媒体。
【請求項１２】
前記第１のタイプのプロセスが、前記第２のタイプのプロセスよりも待ち時間が短いことを要するオンライン取引処理（ＯＬＴＰ）であり、前記第２のタイプのプロセスが解析処理である、請求項７に記載の非一時的コンピュータ可読媒体。
【請求項１３】
第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された１つまたは複数の第２のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第１のストレージシステムに対する方法であって、
前記第２のストレージシステムの前記複数のボリュームの各ボリュームに関する空き領域情報と、前記第２のストレージシステムの前記複数のボリュームの各ボリュームに関するドライブタイプ情報と、前記第２のストレージシステムのフラッシュデバイスに関する空き領域情報とを含む管理情報を管理することと、
前記第１のタイプのプロセスと関連付けられたデータに対する書込みコマンドを前記ホストから受信した場合、前記データの複製が前記第１のストレージシステムまたは前記第２のストレージシステムに対して行われるべきかを判定することと、
前記データの複製が前記第２のストレージシステムに対して行われるべきである場合、
前記第２のストレージシステムの各ボリュームの前記空き領域情報、各ボリュームの前記ドライブタイプ情報、およびフラッシュデバイスの前記空き領域情報に基づいて、前記書込みコマンドに対して前記複数のボリュームからボリュームを選択することと、
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がフラッシュであり、前記フラッシュデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記フラッシュドライブの前記空き領域情報を更新することと、
前記データの前記複製を前記第２のストレージシステムの前記フラッシュデバイスに書き込むこととを含む、方法。
【請求項１４】
請求項１３に記載の方法であって、前記管理情報が、前記１つまたは複数の第２のストレージシステムの前記ハードディスクドライブデバイスの空き領域情報と、前記１つまたは複数の第２のストレージシステムのメモリの空き領域情報とを更に含み、前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記１つまたは複数の第２のストレージシステムの前記メモリの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記書込みコマンドと関連付けられた前記書込みサイズに基づいて、前記１つまたは複数の第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報および前記メモリの前記空き領域情報を更新することと、
前記データの前記複製を前記第２のストレージシステムの前記ハードディスクドライブデバイスに書き込むこととを更に含む、方法。
【請求項１５】
前記選択されたボリュームの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示しており、前記選択されたボリュームの前記ドライブタイプ情報がハードディスクドライブであり、前記ハードディスクドライブデバイスの前記空き領域情報が、空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、
前記１つまたは複数の第２のストレージシステムの前記メモリの前記空き領域情報が、前記書込みコマンドと関連付けられた前記書込みサイズを越えていない場合、ＣＰＵ負荷に基づいて判定される優先順位に基づいて、前記１つまたは複数の第２のストレージシステムから１つの第２のストレージシステムを選択することと、
前記１つまたは複数の第２のストレージシステムからの前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、前記データの前記複製を前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスに書き込むことと、
前記１つまたは複数の第２のストレージシステムからの前記選択された１つの第２のストレージシステムの前記ハードディスクドライブデバイスの前記空き領域情報が、前記ディスクドライブデバイスの空き領域が前記書込みコマンドと関連付けられた前記書込みサイズを越えていることを示している場合、優先順位に基づいて、前記１つまたは複数の第２のストレージシステムから別の第２のストレージシステムを選択することとを更に含む、請求項１４に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概して、ストレージシステムに関し、より具体的には、ストレージシステムの待ち時間の改善を容易にすることに関する。
【背景技術】
【０００２】
オンライン取引処理（ＯＬＴＰ）を容易にするため、ＯＬＴＰを容易にするストレージシステムは、取引処理システム（ＴＰＳ）よりも十分に短い待ち時間を有する。したがって、かかる関連技術の記憶装置の実現には、待ち時間のため、オールフラッシュアレイ（ＡＦＡ）の形態のフラッシュが必須である。かかるＡＦＡの実現は高価な傾向にある。更に、ＴＰＳの実現は、ダウン時間を最小限に抑えるとともに、システム障害インシデントの間の性能低下が最小である必要がある。したがって、関連技術のＴＰＳの実現には予備システムが必須であり、それによってハードウェア費用が増加する。
【０００３】
ＴＰＳの実現が、予備システムの代わりに解析処理システム（ＡＰＳ）のボリュームに複製データをコピーすることができる場合、予備システムのハードウェアコストを低減することができる。このように、関連技術の実施例では、ＡＰＳをＴＰＳとともに利用して、ＴＰＳに記憶されたデータを解析することができる。かかる関連技術の実施例では、ＯＬＴＰは、システム障害の間、経路を切り替え、ＡＰＳのボリュームから複製データにアクセスすることができる。
【０００４】
一例の関連技術の実施例では、第１のボリュームが第１のストレージシステムからのものであり、第２のボリュームが第２のストレージシステムからのものである、ストレージシステムがある。第１のボリュームおよび第２のボリュームは、高可用性ペアとして設定され、仮想ボリュームと関連付けられる。かかる仮想ボリュームは複数のボリュームを含むことができる。かかる関連技術の実施例では、経路を、実ボリュームとホストコンピュータとの間の代わりに、仮想ボリュームとホストコンピュータとの間で接続することができる。更に、経路切替えプログラムは、仮想ボリュームに割り当てられた経路の中から、アクセスされるべきボリュームへの経路を選択する。かかるストレージシステムの一例は、例えば、米国特許第８，９４３，２８６号に記載されており、その全体をあらゆる目的で参照により本明細書に援用する。
【発明の概要】
【０００５】
関連技術の実施例では、ＯＬＴＰがＡＰＳからの複製データにアクセスすると、ＯＬＴＰのアクセス待ち時間が悪化する。ＡＰＳは、ビッグデータ記憶装置の実装を容易にするＡＰＳのスケーラビリティ要件により、安価なディスクを有する汎用ハードウェア上の、ソフトウェアデファインドストレージ（ＳＤＳ）で構成されてもよい。
【０００６】
関連技術の実施例では、ＴＰＳとＡＰＳとの間でドライブの違いがある場合がある。ＡＰＳの実施例には、安価であるが、ビッグデータ解析などの解析処理の場合に、待ち時間が長く記憶速度が遅いディスクが必須のことがある。フラッシュデバイスを使用して、ＴＰＳの実装に関する短い待ち時間の要件を満たすことができる。
【０００７】
このように、ＴＰＳの障害の間に起こり得る、ＴＰＳからのボリュームからＡＰＳのボリュームへのアクセスターゲットの変更の際に、ＯＬＴＰのアクセス待ち時間を遅延させてもよい。例示の実施例は、スイッチオーバーによって起こることがある、起こり得るアクセス待ち時間の問題に対処することを対象とする。
【０００８】
例示の実施例では、ストレージシステムは、フラッシュまたはメモリに可能な限りデータを割り当てるのに、ディスクの種類とメモリサイズとを考慮することによって、ボリュームを選択する。かかる実施例は、ストレージシステムの障害の間に、ディスクにアクセスする頻度を低減することができる。ストレージシステムにおける障害が発生すると、フラッシュデバイスを有さないＳＤＳノードは、データをディスクからメモリにロードし、フラッシュデバイスを有するＳＤＳノードは、記憶プロセス以外のプロセスを終わらせるように構成される。
【０００９】
例示の実施例は、記憶インフラストラクチャを規定するアプリケーションを利用する。かかる実施例は、記憶装置の管理者と通信して記憶インフラストラクチャを変更する必要なく、アプリケーションを迅速に柔軟に開発するのに、アプリケーションプログラマによって使用されてもよい。
【００１０】
本開示の態様は、第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第２のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとに通信可能に連結された、第１のストレージシステムを含む。第１のストレージシステムは、第２のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第２のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第２のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理するように構成されたメモリと、データの書込みコマンドをホストから受信すると、データが第１のストレージシステムまたは第２のストレージシステムに書き込まれるべきかを判定するように構成されたプロセッサとを含むことができる。データが第２のストレージシステムに書き込まれるべきと判定された場合、プロセッサは、第２のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択するように構成される。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、プロセッサは、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新し、第２のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行するように構成される。
【００１１】
本開示の態様は、更に、第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第２のストレージシステムに、通信可能に連結された第１のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとの方法を含む。方法は、第２のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第２のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第２のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理することと、データの書込みコマンドをホストから受信すると、データが第１のストレージシステムまたは第２のストレージシステムに書き込まれるべきかを判定することとを含むことができる。データが第２のストレージシステムに書き込まれるべきと判定された場合、方法は更に、第２のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択することを含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、方法は更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新することと、第２のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行することとを含むことができる。
【００１２】
本開示の態様は、更に、第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第２のストレージシステムに、通信可能に連結された第１のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとのコンピュータプログラムを含む。コンピュータプログラムは、第２のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第２のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第２のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理し、データの書込みコマンドをホストから受信すると、データが第１のストレージシステムまたは第２のストレージシステムに書き込まれるべきかを判定する、命令を含むことができる。データが第２のストレージシステムに書き込まれるべきと判定された場合、命令は更に、第２のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択することを含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、命令は更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新することと、第２のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行することとを含むことができる。コンピュータプログラムの命令は、非一時的コンピュータ可読媒体に記憶され、１つまたは複数のプロセッサによって実行されるように構成されてもよい。
【００１３】
本開示の態様は、更に、第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第２のストレージシステムに、通信可能に連結された第１のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとのコンピュータプログラムを含む。コンピュータプログラムは、第２のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第２のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第２のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理し、データの書込みコマンドをホストから受信すると、データが第１のストレージシステムまたは第２のストレージシステムに書き込まれるべきかを判定する、命令を含むことができる。データが第２のストレージシステムに書き込まれるべきと判定された場合、命令は更に、第２のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択することを含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、命令は更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新することと、第２のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行することとを含むことができる。コンピュータプログラムの命令は、非一時的コンピュータ可読媒体に記憶され、１つまたは複数のプロセッサによって実行されるように構成されてもよい。
【００１４】
本開示の態様は、更に、第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成された第２のストレージシステムに、通信可能に連結された第１のストレージシステムと、第１のタイプのプロセスを実行するように構成されたホストとのシステムを含む。システムは、第２のストレージシステムの複数のボリュームのうち各ボリュームの空き領域情報、第２のストレージシステムの複数のボリュームのうち各ボリュームのドライブタイプ情報、および第２のストレージシステムのフラッシュデバイスの空き領域情報を含む管理情報を管理する手段と、データの書込みコマンドをホストから受信すると、データが第１のストレージシステムまたは第２のストレージシステムに書き込まれるべきかを判定する手段とを含むことができる。データが第２のストレージシステムに書き込まれるべきと判定された場合、システムは更に、第２のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択する手段を含むことができる。選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、システムは更に、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新する手段と、第２のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行する手段とを含むことができる。
【図面の簡単な説明】
【００１５】
【図１】図１Ａ〜１Ｃは、例示の実施例が適用されてもよいシステムの例示の物理的構成を示す図である。
【００１６】
【図２】例示の実施例による、ＳＤＳのボリューム、プール、および記憶デバイスの間の例示の関係を示す図である。
【００１７】
【図３】例示の実施例による、ホストコンピュータのメモリの論理的レイアウトを示す図である。
【００１８】
【図４】例示の実施例による、ストレージシステムのメモリの論理的レイアウトを示す図である。
【００１９】
【図５】例示の実施例による、ＳＤＳノードにおけるメモリの例示の論理的レイアウトを示す図である。
【００２０】
【図６】例示の実施例による、ノード管理テーブルの論理的レイアウトを示す図である。
【００２１】
【図７】例示の実施例による、ボリューム管理テーブルの論理的レイアウトを示す図である。
【００２２】
【図８】例示の実施例による、ＯＬＴＰビットマップの論理的レイアウトを示す図である。
【００２３】
【図９】例示の実施例による、Ｉ／Ｏプロセスの例示のフローを示す図である。
【００２４】
【図１０】例示の実施例による、ボリュームセレクタのフローチャートである。
【００２５】
【図１１】例示の実施例による、プロセスコントローラのフローチャートである。
【００２６】
【図１２】例示の実施例による、優先順位判定のフローを示す図である。
【発明を実施するための最良の形態】
【００２７】
以下の詳細な説明は、本出願の図面および例示の実施例の更なる詳細を提供する。図面間の冗長な要素の参照番号および説明は、明瞭にするために省略する。明細書全体を通して使用される用語は、例として提供されるものであり、限定を意図しない。例えば、「自動」という用語の使用には、本出願の実施例を実施する当業者の所望の実施例に応じて、ユーザまたは管理者が実施例の特定の態様を制御することを含む、全自動または半自動の実施例が関与することがある。選択は、ユーザインターフェースまたは他の入力手段を通してユーザが実践することができ、または所望のアルゴリズムを通して実現することができる。本明細書に記載されるような例示の実施例は、単独または組み合わせのどちらかで利用することができ、例示の実施例の機能性は、所望の実施例による任意の手段を通して実現することができる。
【００２８】
例示の実施例では、複製データをＳＤＳに記憶するように構成されたストレージシステム、ならびに重要なシステムで障害が起こったときにＳＤＳがプロセスを切り替えるシステムおよび方法がある。
【００２９】
図１Ａは、例示の実施例が適用されてもよいシステムの物理的構成を示している。図１Ａの例では、ホストコンピュータ１と、ストレージシステム２と、１つまたは複数のＳＤＳノード３とが、ネットワーク４を介して互いに接続されている。各ホストコンピュータ１は、メモリ１０と、記憶デバイス１１と、中央処理装置（ＣＰＵ）１２と、ネットワークポート１３とを含むことができる。ストレージシステム２は、メモリ２０と、記憶デバイス２１と、ＣＰＵ２２と、ネットワークポート２３とを含むことができる。各ノード３は、メモリ３０と、記憶デバイス３１と、ＣＰＵ３２と、ネットワークポート３３とを含むことができる。所望の実施例に応じて、ストレージシステム２はＳＤＳとして、またはＡＦＡとして実現することができる。
【００３０】
メモリ１０、２０、および３０は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など、所望の実施例に応じて任意のメモリの形態をとることができる。ネットワーク４は、インターネットプロトコル（ＩＰ）ネットワーク、またはストレージエリアネットワーク（ＳＡＮ）など、所望の実施例にしたがって、任意のタイプのネットワークとして実現することができる。
【００３１】
ストレージシステム２からの記憶デバイス２１は、フラッシュデバイスを含むことができ、ＳＤＳノード３の記憶デバイス３１は、フラッシュデバイス、またはハードディスクドライブ（ＨＤＤ）などのディスクのどちらかを含むことができる。フラッシュデバイスへのアクセスの待ち時間は、ディスクへのアクセスの待ち時間よりも短い。
【００３２】
図１Ａの入出力（Ｉ／Ｏ）の一例では、ストレージシステム２は、ホストコンピュータ１からＩ／Ｏコマンドを受信する。コマンドは、ストレージシステム２の主要ボリュームと、ＳＤＳノード３またはストレージシステム２の補助ボリュームとの論理ユニット番号（ＬＵＮ）を含む。データは、ＣＰＵ２２による複製プロセスをストレージシステム２に対して行うことによって、主要ボリュームに書き込まれ、補助ボリュームにコピーされる。ＬＵＮは、ボリューム群番号のボリューム番号に関連させることができる。ＬＵＮがボリューム群に関連する場合、ボリュームセレクタ２０３は、ボリューム群からボリュームを選択する。
【００３３】
図１Ａに示されるように、ストレージシステム２は、ネットワーク４を介して、ＳＤＳノード３などの他のストレージシステムに通信可能に連結される。ＳＤＳノード３は、第２のタイプのプロセスを実行し、複数のボリュームを管理するように構成されてもよい。ホストコンピュータ１は、第１のタイプのプロセスを実行するように構成されてもよい。ストレージシステム２は、ボリューム管理テーブル２０２によるフィールド２０２５によって記載されるような、ＳＤＳノード３の複数のボリュームの各ボリュームに関する空き領域情報を含む、管理情報を管理するように構成されたメモリ１０を含んでもよい。メモリ１０はまた、ボリューム管理テーブル２０２によるフィールド２０２１によって記載されるような、ＳＤＳノードの複数のボリュームの各ボリュームに関するドライブタイプ情報を記憶するように構成されてもよい。メモリ１０はまた、ノード管理テーブル２０１によるフィールド２０１３によって記載されるような、ＳＤＳノードのフラッシュデバイスの空き領域情報を記憶するように構成されてもよい。
【００３４】
ＣＰＵ２０は、ホストからデータに対する書込みコマンドを受信すると、図９に示されるように、複製データがストレージシステム２に、またはＳＤＳノード３などの他のストレージシステムに書き込まれるべきかを判定するように構成されてもよい。複製データがＳＤＳノード３などの他のストレージシステムに書き込まれるべきと判定された場合、ＣＰＵ１２は、図９および図１０に示されるように、他のストレージシステムの各ボリュームの空き領域情報、各ボリュームのドライブタイプ情報、およびフラッシュデバイスの空き領域情報に基づいて、書込みコマンドに対して複数のボリュームからボリュームを選択するように構成される。例示の実施例では、例えば、図１０のＳ２０１〜Ｓ２０４で示されるように、選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がフラッシュであり、フラッシュデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、ＣＰＵ１２は、書込みコマンドと関連付けられた書込みサイズに基づいて、フラッシュドライブの空き領域情報を更新し、ＳＤＳノード３などの他のストレージシステムのフラッシュデバイスに対して書込みコマンドを実行するように構成される。
【００３５】
管理情報はまた、例えば、図６の２０１６および２０１８で示されるように、ＳＤＳノード３などの他のストレージシステムのハードディスクドライブデバイスの空き領域情報、およびＳＤＳノード３などの他のストレージシステムのメモリの空き領域情報を含むことができる。ＣＰＵ１２は、例えば、図１０のＳ２０７、Ｓ２０８、およびＳ２１２で示されるように、選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書き込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がハードディスクドライブであり、ハードディスクドライブデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、他のストレージシステムのメモリの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、書込みコマンドと関連付けられた書込みサイズに基づいて、ハードディスクドライブデバイスの空き領域情報と、他のストレージシステムのメモリの空き領域情報とを更新し、他のストレージシステムのメモリおよびハードディスクドライブデバイスに対して書込みコマンドを実行するように構成することができる。ＣＰＵ１２は、例えば、図１０のＳ２０９〜Ｓ２１２に記載されるように、選択されたボリュームの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、選択されたボリュームのドライブタイプ情報がハードディスクドライブであり、ハードディスクドライブデバイスの空き領域情報が、空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示しており、他のストレージシステムのメモリの空き領域情報が、書込みコマンドと関連付けられた書込みサイズを越えていないことを示している場合、ＣＰＵ負荷に基づいて判定される優先順位に基づいて複数のＳＤＳノード３から別のストレージシステムを選択し、ＳＤＳノード３から選択されたストレージシステムのハードディスクドライブデバイスの空き領域情報が、ディスクドライブデバイスの空き領域が書込みコマンドと関連付けられた書込みサイズを越えていることを示している場合、選択されたストレージシステムのメモリおよびハードディスクドライブデバイスに対して書込みコマンドを実行し、ＳＤＳノード３から選択されたストレージシステムのハードディスクドライブデバイスの空き領域情報が、ディスクドライブデバイスの空き領域が書込みコマンドと関連付けられた書込みサイズを越えていないことを示している場合、優先順位に基づいてＳＤＳノード３から別のストレージシステムを選択するように構成することができる。
【００３６】
ストレージシステム２の障害が起こった場合、図１１のＳ３００およびＳ３０５に示されるように、ＳＤＳノード３からの他のストレージシステムは、第１のタイプのプロセスを他のストレージシステムに対して実行し、他のストレージシステムがハードディスクドライブデバイスを有さない場合、第２のタイプのプロセスの実行を終了するように構成される。更に、ストレージシステム２の障害が起こった場合、図１１のＳ３０４に示されるように、ＳＤＳノード３からの他のストレージシステムは、第１のタイプのプロセスと関連付けられたデータをストレージシステム２から他のストレージシステムにロードし、他のストレージシステムのプロセッサのロードが閾値未満でない場合、第２のタイプのプロセスの実行を終了するように構成される。
【００３７】
例示の実施例では、第１のタイプのプロセスは、第２のタイプのプロセスよりも待ち時間が短いことを要するＯＬＴＰであり、第２のタイプのプロセスは解析処理である。しかしながら、他のプロセスも利用することができ、本開示はそれらに限定されない。ＯＬＴＰは、ＳＤＳノード３によって実行されるプロセスよりも待ち時間が短いことを要する、他の任意のプロセスに置き換えることができる。第２のタイプのプロセスは、第１のタイプのプロセスの短い待ち時間レベルを要しない、任意のプロセスを含むことができる。
【００３８】
図１Ｂおよび１Ｃは、例示の実施例による、物理的構成のプロセスの例示の実行を示している。図１Ｂに示されるように、ストレージシステム２は、ＯＬＴＰ  １０００に対して記憶プロセス１００１を実施するＡＦＡの形態であることができる。ＳＤＳノード３は、短い待ち時間を要しないことがある補助プロセスである、データ解析１００２を実行するのに使用することができる。図１Ｂの例示のアーキテクチャでは、ストレージシステム２に対する要件は、ＯＬＴＰ  １０００の待ち時間が解析プロセス１００２よりも短く、ダウン時間が最小限に抑えられ、ストレージシステム２の障害の間の性能低下が最小限であることを含むことができる。例示の実施例では、ＳＤＳノード３は、フェールオーバーの場合のバックアップシステムとして利用され、ストレージシステム２はＳＤＳノード３に対してデータの複製を作成するように構成され、障害がストレージシステム２で起こると、記憶プロセス１００１をＳＤＳに対して実行してＯＬＴＰ  １０００を継続することができる。ストレージシステム２は、フラッシュデバイス（例えば、高速でディスクよりも高価）およびＳＤＳノード３を含むので、記憶プロセス１００１がストレージシステム２からＳＤＳモード３に切り替えられると、記憶応答時間が遅延することがある。
【００３９】
例示の実施例は、データをフラッシュまたはキャッシュメモリに割り当ててディスクへのアクセスを低減することによって、かかるスイッチオーバーにおける遅延に対処することを対象とする。このように、障害がストレージシステム２で起こった後、記憶プロセス１００１を解析プロセス１００２よりも高い優先順位で実行することができ、ＣＰＵ負荷が高い場合は解析プロセス１００２を遮断し、ＣＰＵ負荷が閾値よりも低い場合は維持することができる。
【００４０】
例示の実施例では、データは、ストレージシステム２の主要ボリュームに書き込まれ、ＳＤＳノード３の１つで補助ボリュームに複製される。補助ボリュームは、フラッシュまたはＨＤＤのどちらかであることができ、次に優先順位を割り当てられる。優先順位は、所望のＣＰＵ負荷関数にしたがって動的に変更して、低い負荷を有するＳＤＳノード３にデータを割り当てることができる。
【００４１】
図１Ｃは、例示の実施例による、ＳＤＳノードの例示の実施例を示している。記憶プロセス１００１は、フラッシュ記憶装置を有するノードで走らせて、ＯＴＬＰの待ち時間を短くすることができる。解析プロセス１００２は、ディスクのみを有するノードで走らせることができる。更に、ＣＰＵ負荷が閾値を上回る場合、解析プロセス１００２を停止することができる。
【００４２】
図２は、例示の実施例による、ＳＤＳのボリューム、プール、および記憶デバイスの間の例示の関係を示している。例示の実施例では、ボリュームは記憶デバイスの論理デバイスとして作成され、ボリューム群は複数のボリュームを含むことができる。例えば、ホストコンピュータ１が、ＬＵＮを介してボリューム＃０またはボリューム＃１を指定した場合、データはボリューム＃０またはボリューム＃１に書き込まれる。ホストコンピュータ１が、ＬＵＮを介してボリューム群＃０を指定した場合、ボリュームは、ボリュームセレクタ２０３によってボリューム群＃０（例えば、ボリューム＃２、３、４、および５）内の対応するボリュームの中から選択され、次にデータが選択されたボリュームに書き込まれる。
【００４３】
図３は、例示の実施例による、ホストコンピュータのメモリの論理的レイアウトを示している。図３の例では、ＯＬＴＰプロセス１００は、ストレージシステム２に書き込むプロセスを含むＯＬＴＰを実行する。経路コントローラ１０１は、ストレージシステム２の障害が起こったときに経路切替えを実行する。ホストコンピュータ１は、正常動作条件の間、ネットワーク４を解してＩ／Ｏコマンドをストレージシステム２に送信するが、ストレージシステム２に障害が起こった場合、経路コントローラ１０１は経路を切り替え、ＳＡＮ  ４を介してＩ／ＯコマンドをＳＤＳに送信する。
【００４４】
図４は、例示の実施例による、ストレージシステムのメモリの論理的レイアウトを示している。図４の例では、ユーザデータキャッシュ２００が中間エリアとして構成される。記憶デバイス２１がＲＥＡＤコマンドをホストコンピュータ１から受信すると、ＣＰＵ２２は、記憶デバイス２１から読み取ることによってデータをホストコンピュータ１に転送し、ユーザデータキャッシュ２００にデータを記憶する。かかる処理は、ＣＰＵが次のサイクルでユーザデータをユーザデータキャッシュ２００から読み取ることができるので、読取り待ち時間を改善することができる。ＣＰＵ２２は、ユーザデータを、記憶デバイス２１ではなくユーザデータキャッシュ２００に書き込む。ＣＰＵ２２は、ユーザデータが記憶デバイス２１に書き込まれる前にホストコンピュータに応答を返すことができるので、書込み待ち時間も速くなり得る。メモリ２０にアクセスすることによる待ち時間は、記憶デバイス２１にアクセスすることによる待ち時間よりも速い。
【００４５】
ノード管理テーブル２０１は、システムのノード３に関する管理情報を含む。ノード管理テーブル２０１の更なる詳細は、図６に関して提供される。ボリューム管理テーブル２０２は、システムのボリュームに関する管理情報を含む。ボリューム管理テーブル２０２の更なる詳細は、図７に関して提供される。ボリュームセレクタ２０３は、ＯＬＴＰプロセスからのデータを記憶するボリュームを選択するフローを提供する。ボリュームセレクタ２０３の更なる詳細は、図１０に関して提供される。記憶プロセス２０４は、ＲＥＡＤプロセスまたはＷＲＩＴＥプロセスなどのＩ／Ｏプロセスを実行する。
【００４６】
図５は、例示の実施例による、ＳＤＳノード３におけるメモリ３０の例示の論理的レイアウトを示している。ユーザデータキャッシュ３００は、ストレージシステム２のユーザデータキャッシュ２００と同様の動作を行う。ノード管理テーブルのコピー３０２は、ノード管理テーブル２０１と同じ情報を含む。このノード管理テーブル３０２は、ノード管理テーブル２０１が更新されるのと同時に、ストレージシステム２のＣＰＵ２２によって更新される。
【００４７】
ＯＬＴＰビットマップ３０１は、ＯＬＴＰプロセスに関する管理情報を含む管理テーブルである。ＯＬＴＰビットマップ３０１に関する更なる詳細は、図８に関して提供される。記憶プロセス３０３は、ストレージシステム２の記憶プロセス２０と動作的に類似している。記憶プロセス３０３は、ストレージシステム２に障害が起こると呼び出される。解析プロセス３０４は、データを記憶デバイス３１からロードすることによって解析を実行する。プロセスコントローラ３０５は、ノード３によって利用されるドライブのタイプにしたがって、プロセスの切替えを実行する。プロセスコントローラ３０５の更なる詳細は、図９に関して提供される。
【００４８】
図６は、例示の実施例による、ノード管理テーブルの論理的レイアウトを示している。ノード管理テーブル２０１は、ノードおよびそれらの相対的管理情報を管理するのに使用される。かかる管理情報としては、ノードの識別子（ＩＤ）または番号２０１０、フラッシュドライブの数２０１１、フラッシュドライブの合計サイズ２０１２、フラッシュドライブに利用可能な空き領域２０１３、ＨＤＤの数２０１４、ＨＤＤの合計サイズ２０１５、ＨＤＤに利用可能な空き領域２０１６、合計メモリサイズ２０１７、メモリに利用可能な空き領域２０１８、ノードの優先順位レベル２０１９、およびＣＰＵ負荷２０１Ａを挙げることができる。ボリュームセレクタ２０３がデータを書き込むボリュームを選択すると、このテーブルが、関連するノード情報（例えば、フラッシュドライブ、ＨＤＤ、およびメモリの合計サイズ、空きサイズ）を参照するのに使用される。ボリュームがボリュームセレクタ２０３によって選択された後、ノード管理テーブル２０１は、対応するドライブへの書込みのサイズを減算することによって、利用可能な空きサイズを更新する。
【００４９】
ノードの優先順位レベル２０１９に関して、このフィールドは、ボリュームセレクタ２０３が最も優先順位が高いノードを選択したときに参照される。ノードの優先順位レベル２０１９は、各ノード３のＣＰＵロードフィールド２０１Ａにしたがって、任意の所望の機能に基づいて設定される。図６の例では、値０が選択される最も優先順位が高いノードを示すが、本開示はかかる実施例に限定されず、優先順位の値は所望の機能にしたがって設定することができる。
【００５０】
図７は、例示の実施例による、ボリューム管理テーブルの論理的レイアウトを示している。具体的には、ボリューム管理テーブル２０２は、ボリュームおよびそれらの相対的管理情報を管理するのに使用される。かかる管理情報としては、ボリュームのＩＤまたは番号２０２０、ドライブタイプ２０２１、ボリューム群のＩＤまたは番号２０２２、ノードのＩＤまたは番号２０２３、ボリュームの合計サイズ２０２４、およびボリュームに利用可能な空き領域２０２５を挙げることができる。ボリュームセレクタ２０３がＩ／Ｏ動作に対してボリュームを選択すると、ボリューム管理テーブル２０２は、ドライブタイプ、ボリューム群＃、ノード＃、ならびにボリュームの合計サイズおよび空きサイズなどの情報を提供して、選択プロセスを支援する。
【００５１】
図８は、例示の実施例による、ＯＬＴＰビットマップの論理的レイアウトを示している。ＯＬＴＰビットマップ２０３は、どのページがＯＬＴＰデータを有するかに関する管理情報を提供する管理テーブルである。かかる管理情報としては、ページ２０３０、およびページに対応するビットマップ２０３１を挙げることができる。ページは、ボリュームに対するデータを管理する単位（例えば、６４ＫＢ）である。各ビットは各ページに対応する。図８に示される例では、１は、そのページがＯＬＴＰデータを有することを示し、０は、そのページにＯＬＴＰデータが関与しないことを示す。障害がＯＬＴＰシステムで起こった場合、プロセスコントローラ３０５は、ＯＬＴＰビットマップ２０３を利用して、ＯＬＴＰデータを記憶装置からメモリにロードする。
【００５２】
図９は、例示の実施例による、Ｉ／Ｏプロセスの例示のフローを示している。図９のフローは、ストレージシステム２がホストコンピュータ１からコマンドを受信すると、ＣＰＵ２２によって実行される。受信したコマンドは、ストレージシステム２内部における特定のボリュームのアドレスを示すのに使用されるＬＵＮを含む。この受信したコマンドはまた、ＲＥＡＤ／ＷＲＩＴＥなどの動作コード、複製を動作可能／動作不能にするか否かに関する動作および／または情報のデータサイズを含む。複製が動作可能にされた場合、受信したコマンドは、ストレージシステム２およびＳＤＳノード３の内部の主要および補助ボリュームのアドレスを示すのに使用される、ＬＵＮを含む。
【００５３】
Ｓ１００で、ＣＰＵ２２は、 Ｉ／ＯコマンドがＲＥＡＤまたはＷＲＩＴＥコマンドであるか否かを判定する。Ｉ／ＯコマンドがＲＥＡＤコマンドの場合、フローはＳ１０５に進んでＲＥＡＤ  Ｉ／Ｏプロセスを実行する。Ｉ／ＯコマンドがＷＲＩＴＥコマンドの場合、フローはＳ１０１に進んでＷＲＩＴＥコマンドを実行する。
【００５４】
Ｓ１０１で、ＣＰＵ２２は次に、複製データがＳＤＳノード３にコピーされるべきかを判定する。複製データがストレージシステム２（記憶装置）に書き込まれるべきである場合、フローはＳ１０４に進んでＷＲＩＴＥ  Ｉ／Ｏ動作を実行し、複製データをストレージシステム２にコピーする。複製データがＳＤＳノード３（ＳＤＳ）にコピーされるべきである場合、フローは進んで、ボリュームセレクタ機能Ｆ２００を実行する。
【００５５】
Ｓ１０２で、ＣＰＵ２２は、ボリュームセレクタ機能Ｆ２００からの戻りコードが、ボリュームが満杯であるかどうかを示すかを判定する。ボリュームが満杯の場合（はい）、フローは終了する。そうでない場合（いいえ）、フローはＳ１０３に進み、ＣＰＵ２２はＳＤＳノード３のＣＰＵ３２にＯＬＴＰビットマップ２０３を更新するように要求する。フローは次にＳ１０４に進んで、選択されたボリュームへのＷＲＩＴＥ  Ｉ／Ｏプロセスを実行する。
【００５６】
図１０は、例示の実施例による、ボリュームセレクタのフローチャートを示している。このフローは、Ｉ／Ｏプロセスがこの機能をＦ２００で呼び出すと、ＣＰＵ２２で実行される。Ｓ２００で、ボリュームセレクタは、ボリューム管理テーブル２０２およびノード管理テーブル２０１をロードすることによって、ボリュームおよびノードの管理情報を参照する。Ｓ２０１で、ボリュームセレクタは、受信したＩ／Ｏコマンドに含まれる補助ボリュームのＬＵＮに基づいて、ボリュームＩＤを判定する。ボリュームセレクタは、ボリューム管理テーブル２０２のボリュームフィールド２０２５における空き領域を参照することによって、ＳＤＳノード３からの判定されたボリュームの空きサイズが書込みサイズよりも大きいか否かを判定する。書込みサイズは、ストレージシステム２からＳＤＳノード３へと転送されるべきデータのサイズである。ボリュームの空きサイズが書込みサイズよりも大きい場合（＞０）、フローはＳ２０２に進み、そうでない場合（＜０）、フローはＳ２０５に進んで、Ｉ／Ｏプロセスに対して「満杯」の戻りコードを提供する。Ｓ２０２で、ボリュームセレクタは、ノード管理テーブル２０１のフィールド２０２１を参照することによって、ドライブタイプを判定する。ボリュームタイプがフラッシュであると判定された場合、フローはＳ２０３に進み、そうではなくディスクの場合、フローはＳ２０６に進む。
【００５７】
Ｓ２０３で、ボリュームセレクタは、ノード管理テーブル２０１の空きフラッシュサイズフィールド２０１３を参照することによって、ボリュームを提供するＳＤＳノード３におけるフラッシュの空き領域のサイズが、書込みサイズよりも大きいか否かを判定する。フラッシュの空きサイズが書込みサイズよりも大きい場合（＞０）、フローはＳ２０４に進み、そうでない場合（＜０）、フローはＳ２０５に進んで、Ｉ／Ｏプロセスに対して「満杯」の戻りコードを提供する。Ｓ２０４で、ボリュームセレクタは、ノード管理テーブル２０１の空きフラッシュサイズフィールド２０１３に関して、書込みサイズを空き領域のサイズから減算する。
【００５８】
Ｓ２０６で、ボリュームセレクタは、ノード管理テーブル２０１のディスクフィールド２０１６に利用可能な空き領域を参照することによって、１つまたは複数のＳＤＳノード３における、ボリュームを提供するディスクの最大空きサイズが、書込みサイズよりも大きいか否かを判定する。最大空き領域が書込みサイズよりも小さい場合（＜０）、フローはＳ２０５に進んで「満杯」の戻りコードを提供する。そうでなければ、最大空き領域が書込みサイズよりも大きい場合（＞０）、フローはＳ２０７に進む。ボリューム群番号が指定された場合、ボリュームセレクタは、ボリューム群内のノードＩＤまたは番号フィールド２０２３を参照する。ボリュームセレクタは、ノードＩＤまたは番号フィールド２０１０をノードＩＤまたは番号フィールド２０２３と比較することによって、ディスクフィールド２０１６の空き領域を参照する。最大サイズが書込みサイズよりも小さい場合、どのディスクも書込みデータを記憶する容量を有さないので、ボリュームセレクタは最大サイズを参照する。かかる状況では、ボリュームセレクタはＩ／Ｏプロセスに対して「満杯」の戻りコードを提供する。戻りコードは、書込み動作に十分な空き領域を含むノードがあるか否かを確認するのに利用される。
【００５９】
例えば、各ノードのディスクの空き領域が６４ＭＢの場合、最大空きサイズは６４ＭＢであり、６４ＭＢよりも大きい書込みデータをボリュームに書き込むことはできない。あるノードの空きサイズが２５６ＭＢであり、他のノードの空き領域が６４ＭＢである場合、最大空きサイズは２５６ＭＢである。したがって、２５６ＭＢ以下の書込みデータをボリュームに書き込むことができる。
【００６０】
Ｓ２０７で、ボリュームセレクタは、ノード管理テーブル２０１のメモリフィールド２０１８に利用可能な空き領域を参照することによって、１つまたは複数のＳＤＳノード３における、ボリュームを提供するメモリの最大空き領域が、書込みサイズよりも大きいか否かを判定する。メモリの空き領域が書込みサイズよりも大きい場合（＞０）、フローはＳ２０８に進む。そうでなければ、メモリの空き領域が書込みサイズよりも小さい場合（＜０）、フローはＳ２０９に進む。
【００６１】
Ｓ２０８で、ボリュームセレクタは、書き込みサイズをメモリフィールド２０１８の空き領域から減算し、ノード管理テーブル２０１のメモリフィールド２０１８の空き領域を更新する。
【００６２】
Ｓ２０９で、ボリュームセレクタは、ノード管理テーブル２０１のフィールド２０１９を参照することによって、ボリュームを提供する１つまたは複数のＳＤＳノード３の中で最も優先順位が高いノードを選択する。Ｓ２１０で、ボリュームセレクタは、ノード管理テーブル２０１のディスクフィールド２０１６の空き領域を参照することによって、選択されたノードのディスクの空きサイズが書込みサイズよりも大きいか否かを判定する。ディスクの空きサイズが書込みサイズよりも大きい場合（＞０）、フローはＳ２１２に進む。そうでなければ、ディスクの空きサイズが書き込みサイズよりも小さい場合（＜０）、
フローはＳ２１１に進む。
【００６３】
Ｓ２１１で、Ｓ２１０でフローから選択されたノードが書込みデータを記憶するのに十分な領域を有さない場合、フローは次に優先順位の高いノードに進み、現在のノードをキューに入れ直す。全てのノードを検討した場合、ボリュームセレクタはキューにおける第１の利用可能なノードを選択する。
【００６４】
Ｓ２１２で、ボリュームセレクタは、書込みサイズをディスクの空き領域から減算し、ディスクの空きを更新し、ノード管理テーブル２０１のディスクフィールド２０１５の合計サイズを更新する。
【００６５】
図１１は、例示の実施例による、プロセスコントローラ３０５のフローチャートを示している。具体的には、図１１のフローは、ストレージシステム２に障害が起こると、ＣＰＵ３２によってＳＤＳノードに対して実行される。
【００６６】
Ｓ３００で、ＯＬＴＰプロセスの記憶プロセス２０４が活性化される。Ｓ３０１で、プロセスコントローラは、ノード管理テーブルのコピー３０２におけるディスクフィールドの数２０１４を参照することによって、ＳＤＳノード３がディスクを有するかを判定する。ノードがディスクを有する場合（はい）、フローはＳ３０２に進み、そうでない場合（いいえ）、フローはＳ３０５に進んで、あらゆる補助プロセスまたは解析プロセスを終え、ＣＰＵ３２を利用してＯＬＴＰの記憶プロセスを実行する。
【００６７】
Ｓ３０２で、プロセスコントローラは、ノード管理テーブルのコピー３０２におけるＣＰＵロードフィールド２０１Ａを参照することによって、ＣＰＵ３２のロードが閾値を上回るかを判定する。ＣＰＵ３２のロードが閾値を下回る場合（はい）、フローはＳ３０３に進み、そうでない場合（いいえ）、フローはＳ３０４に進む。Ｓ３０３で、プロセスコントローラは、ＯＬＴＰビットマップ２０３を参照することによって、ＯＬＴＰデータを記憶デバイス３１（ディスク）からＳＤＳノード３のメモリ３０にロードする。
【００６８】
Ｓ３０４で、ＣＰＵ負荷が閾値を上回る場合、ＯＬＴＰの記憶プロセス以外の動作を終わらせて、ＣＰＵをできる限りＯＬＴＰの記憶プロセスに提供する。
【００６９】
図１２は、例示の実施例による、優先順位判定のフローを示している。フローは、ＳＤＳノードのＣＰＵ３２によって規則的に、例えば毎分１回実行される。優先順位は、ノードのディスクタイプおよびＣＰＵ負荷に基づいて判定される。ノードがディスクを有さない場合、ノードの優先順位は最低優先順位に設定される。ノードがディスクを有する場合、ノードの優先順位はＣＰＵ負荷に応じて設定される。例えば、ノードのＣＰＵ負荷が高いほど優先順位は低くなる。
【００７０】
Ｓ４００で、フローは、ノード管理テーブル３０２のＣＰＵ負荷フィールド２０１Ａを参照することによって開始される。Ｓ４０１で、フローは進んで、ノード管理テーブル２０１を参照する。Ｓ４０２で、ノード管理テーブル２０１は、優先順位フィールド２０１９の各ノードの優先順位を再計算することによって更新される。
【００７１】
詳細な説明のいくつかの部分は、コンピュータ内の動作のアルゴリズムおよび図式的表現に関して提示されている。これらのアルゴリズム的説明および図式的表現は、データ処理分野の当業者が技術革新の本質について他の当業者に伝達するのに使用される手段である。アルゴリズムは、所望の最終状態または結果につながる一連の規定のステップである。例示の実施例では、実施されるステップは、有形の結果を達成する有形の量の物理的操作を要する。
【００７２】
別段の具体的な説明がない限り、考察から明白であるように、本明細書全体を通して、「処理する」、「計算する」、「算出する」、「判定する」、「表示する」などの用語を利用した考察は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されるデータを操作し、同様にコンピュータシステムのメモリもしくはレジスタまたは他の情報記憶デバイス、送信デバイス、または表示デバイス内の物理量として表される他のデータへと変換する、コンピュータシステムまたは他の情報処理デバイスの動作およびプロセスを含み得ることが認識される。
【００７３】
例示の実施例はまた、本明細書の動作を実施する装置に関連することがある。この装置は、求められる目的のために特別に構築されてもよく、あるいは１つもしくは複数のコンピュータプログラムによって選択的に起動または再構成される、１つもしくは複数の汎用コンピュータを含んでもよい。かかるコンピュータプログラムは、コンピュータ可読記憶媒体またはコンピュータ可読信号媒体など、コンピュータ可読媒体に記憶されてもよい。コンピュータ可読記憶媒体には、光学ディスク、磁気ディスク、読出し専用メモリ、ランダムアクセスメモリ、固体素子およびドライブ、または電子情報を記憶するのに適した他の任意のタイプの有形もしくは非一時的媒体などであるがそれらに限定されない、有形媒体が関与してもよい。コンピュータ可読信号媒体は、搬送波などの媒体を含んでもよい。本明細書に提示されるアルゴリズムおよびディスプレイは、いずれかの特定のコンピュータまたは他の装置には本質的に関連しない。コンピュータプログラムには、所望の実施例の動作を実施する命令を含む、純粋なソフトウェア実装が関与し得る。
【００７４】
様々な汎用システムが、本明細書の例によるプログラムおよびモジュールとともに使用されてもよく、または所望の方法ステップを実施するのに、より専門的な装置を構築するのが便利であるとわかる。それに加えて、例示の実施例は、いかなる特定のプログラミング言語も参照せずに記載されている。本明細書に記載される例示の実現例の教示を実現するのに、様々なプログラミング言語が使用されてもよいことが認識されるであろう。プログラミング言語の命令は、１つまたは複数の処理デバイス、例えば中央処理装置（ＣＰＵ）、プロセッサ、またはコントローラによって実行されてもよい。
【００７５】
当該分野で知られているように、上述の動作は、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実施することができる。例示の実施例の様々な態様は、回路および論理デバイス（ハードウェア）を使用して実現されてもよく、他の態様は、機械可読媒体（ソフトウェア）に記憶された命令を使用して実現されてもよく、これはプロセッサによって実行された場合、プロセッサによって方法を実施させて、本出願の実施例を実施する。更に、本出願のいくつかの例示の実施例はハードウェアだけで実施されてもよく、他の例示の実施例はソフトウェアだけで実施されてもよい。更に、記載した様々な機能は、単一の単位体で実施することができ、または無数の手法で多数の構成要素にわたって分散させることができる。ソフトウェアによって実施される場合、方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行されてもよい。所望の場合、命令は、圧縮および／または暗号化形式で媒体に記憶することができる。
【００７６】
更に、本明細書を考察し、本出願の教示を実践することによって、本発明の他の実施例が当業者には明白となるであろう。記載された例示の実施例の様々な態様および／または構成要素は、単独でまたは任意の組み合わせで使用されてもよい。本明細書および例示の実施例は単なる例として考察されるものであって、本出願の真の範囲および趣旨は以下の特許請求の範囲によって示される。
【図１Ａ】
2019528517.tif 000003
【図１Ｂ】
2019528517.tif 000004
【図１Ｃ】
2019528517.tif 000005
【図２】
2019528517.tif 000006
【図３】
2019528517.tif 000007
【図４】
2019528517.tif 000008
【図５】
2019528517.tif 000009
【図６】
2019528517.tif 000010
【図７】
2019528517.tif 000011
【図８】
2019528517.tif 000012
【図９】
2019528517.tif 000013
【図１０】
2019528517.tif 000014
【図１１】
2019528517.tif 000015
【図１２】
2019528517.tif 000016
【国際調査報告】
2019528517.tif 000017