(57)【要約】【課題】ディスクアレイ装置の可用性と読み出し性能を向上する制御装置を提供する。【解決手段】制御装置は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む書込部と、複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行う読出部と、を備え、前記データを読み出す場合、前記読出部は、書き込み前の前記データの並びにおいて隣り合う前記単位データを、それぞれ異なる前記ハードディスクから同時に読み出す。【選択図】図１
2020086598.tif 000002
【特許請求の範囲】
【請求項１】
単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む書込部と、
複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行う読出部と、を備え、
前記データを読み出す場合、前記読出部は、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクから同時に読み出す、
制御装置。
【請求項２】
前記書込部は、前記データの並びを変更せずに前記ハードディスクの各々に書き込み、
前記読出部は、複数の前記ハードディスクの１ずつ異なるセクタ位置から、前記単位データを同時に読み出す、
請求項１に記載の制御装置。
【請求項３】
前記読出部は、一の前記ハードディスクの第１セクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、読み出し対象セクタを前記第１セクタ位置に設定し、当該ハードディスク以外の前記ハードディスクについては、前記第１セクタ位置を基準に１ずつ異なるセクタ位置を、新たな読み出し対象セクタとして設定する、
請求項２に記載の制御装置。
【請求項４】
前記書込部は、前記読出部が複数の前記ハードディスクのそれぞれにおける同じセクタ位置を始点としてセクタ順に読み出しを行った場合に、書き込み前の前記データの並びにおいて連続する前記単位データを同時に読み出すことができるように前記単位データの並びを変更して、複数の前記ハードディスクの各々に書き込み、
前記読出部は、セクタ順に読み出しを行う、
請求項１に記載の制御装置。
【請求項５】
前記読出部は、一の前記ハードディスクの一のセクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、前記異常が検出されたセクタ位置に書き込まれたものと同じ前記単位データが書き込まれたセクタ位置を、新たな読み出し対象セクタとして設定する、
請求項４に記載の制御装置。
【請求項６】
一の前記ハードディスクが故障した場合、当該ハードディスクを閉塞し、
前記書込部は、他の前記ハードディスクへ閉塞前と同様の並び順で、前記単位データの書き込みを行う、
請求項４または請求項５に記載の制御装置。
【請求項７】
複数のハードディスクと、
請求項１から請求項６の何れか１項に記載の制御装置と、
を備えるディスクアレイシステム。
【請求項８】
単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込むステップと、
複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行うステップと、を有し、
前記データを読み出す場合、前記読み出しを行うステップにて、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクから同時に読み出す、
データ入出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ディスクアレイシステム及びデータ入出力方法に関する。
【背景技術】
【０００２】
ＨＤＤ（Hard Disk Drive）の可用性や入出力性能の向上のための技術にＲＡＩＤ（Redundant Array of Inexpensive Disks）がある。例えば、ストライピング方式のＲＡＩＤシステム（ＲＡＩＤ０）では、複数のディスクに分散してデータを書き込むことにより、書き込み速度を向上することができる。また、ミラー方式のＲＡＩＤシステム（ＲＡＩＤ１）では、複数のディスクに同じデータを書き込むことにより可用性が向上する。
【０００３】
関連する技術として、特許文献１には、ＲＡＩＤ１で構成された２つのＨＤＤから所定サイズより大きなデータを読み出す際に、前半のデータを一方のＨＤＤから、後半のデータを他方のＨＤＤから同時に読み出すことにより、読み出し速度を向上させる技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１６５７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＲＡＩＤ１では、読み出し時に一方のＨＤＤから読み出すだけの為、可用性は向上するものの読み出し性能は向上しない。ＲＡＩＤ０では、複数のＨＤＤに別々のデータを書き込むため、読み出し性能は向上するが可用性は向上しない。
【０００６】
そこでこの発明は、上述の課題を解決する制御装置、ディスクアレイシステム及びデータ入出力方法を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、制御装置は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む書込部と、複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行う読出部と、を備え、前記データを読み出す場合、前記読出部は、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクから同時に読み出す。
【０００８】
また、本発明の一態様によれば、ディスクアレイシステムは、複数のハードディスクと、上記の制御装置と、を備える。
【０００９】
また、本発明の他の一態様によれば、データ入出力方法は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込むステップと、複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行うステップと、を有し、前記データを読み出す場合、前記読み出しを行うステップにて、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクから同時に読み出す。
【発明の効果】
【００１０】
本発明によれば、ディスクアレイシステムの可用性や読み出し性能を向上することができるという効果が得られる。
【図面の簡単な説明】
【００１１】
【図１】本発明の各実施形態に係る情報処理システムの一例を示す図である。
【図２】本発明の第一実施形態によるデータ入出力方法を説明する第１の図である。
【図３】本発明の第一実施形態によるデータ入出力方法を説明する第２の図である。
【図４】本発明の第一実施形態によるデータ入出力方法を説明する第３の図である。
【図５】本発明の第一実施形態によるリビルド処理を説明する図である。
【図６】本発明の第二実施形態によるデータ入出力方法を説明する第１の図である。
【図７】本発明の第二実施形態によるデータ格納順の一例を示す図である。
【図８】本発明の第二実施形態によるデータ入出力方法を説明する第２の図である。
【図９】本発明の第二実施形態によるデータ入出力方法を説明する第３の図である。
【図１０】本発明の第二実施形態によるリビルド処理を説明する図である。
【図１１】本発明の第二実施形態によるデータ格納順の他の例を示す図である。
【図１２】本発明の各実施形態における制御装置の最小構成を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の各実施形態に係るディスクアレイシステムについて図面を参照して説明する。図１は、本発明の各実施形態に係る情報処理システムの一例を示す図である。
図示するように情報処理システム１００は、ホスト装置１、ＲＡＩＤコントローラ２、ディスクアレイ装置３を備える。
ホスト装置１は、ＯＳ（operating system）１１と、ドライバ１２と、ＣＰＵ（central processing unit）１３と、を備えている。ＯＳ１１は、ホスト装置１で実行されるアプリケーション等の発行するＩＯ命令を実行し、ＨＤＤ（hard disk drive）＃０，＃１で構成されるディスクアレイ装置３への書き込みや読み出しを指示する。ドライバ１２は、ＲＡＩＤコントローラ２のデバイスドライバである。ＯＳ１１およびドライバ１２はソフトウェアである。ＯＳ１１およびドライバ１２は、ＣＰＵ１３が、例えば、ディスクアレイ装置３が記憶するＯＳ１１、ドライバ１２のプログラムを読み出して実行することにより、その機能を発揮する。
【００１３】
ＲＡＩＤコントローラ２は、書き込みコントローラ２１と読み出しコントローラ２２を備える。書き込みコントローラ２１および読み出しコントローラ２２は、ＲＡＩＤ１（ミラー方式）に必要な機能を有したソフトウェア（ファームウェア）である。後述するように書き込みコントローラ２１と読み出しコントローラ２２は、ＲＡＩＤ１によるデータの冗長化機能に加え、読み出し処理を高速化する機能を備えている。ＲＡＩＤコントローラ２は、ディスクアレイ装置３に接続されている。書き込みコントローラ２１および読み出しコントローラ２２は、ＨＤＤ＃０およびＨＤＤ＃１へのＩＯ処理を実行する。
【００１４】
ディスクアレイ装置３は、ＨＤＤ＃０およびＨＤＤ＃１を備える。ＨＤＤ＃０およびＨＤＤ＃１は、データの冗長性を保証する１つの論理ディスクを構成している。
【００１５】
次に情報処理システム１００におけるＩＯ処理の流れについて説明する。ホスト装置１にてＯＳ１１がＩＯ命令を発行すると、ドライバ１２がそのＩＯ命令を受け取る。ドライバ１２は当該ＩＯ命令を、ＲＡＩＤコントローラ２に出力してＩＯの実行を要求する。ＩＯ命令がＷＲＩＴＥ処理の場合、書き込みコントローラ２１が、ＨＤＤ＃０およびＨＤＤ＃１へ同じデータを書き込む。これにより、ＲＡＩＤ１と同様、データの冗長性が確保される。ＩＯ命令がＲＥＡＤ処理の場合、読み出しコントローラ２２は、ＨＤＤ＃０およびＨＤＤ＃１の各々から読み出し対象データの一部ずつを同時に並行して読み出す。ＲＡＩＤ１の場合、一方のＨＤＤから読み出し対象データの全てを読み出すため、読み出しコントローラ２２は、ＲＡＩＤ１の場合の２倍の速度でデータを読み出すことができる。
【００１６】
＜第一実施形態＞
次に第一実施形態におけるＲＡＩＤコントローラ２の処理について詳細に説明する。
図２は、本発明の第一実施形態によるデータ入出力方法を説明する第１の図である。
図２において矢印やＨＤＤ＃０、ＨＤＤ＃１とともに示す数字列は、書き込みデータまたは読み込みデータのデータ構成を示している。例えば、書き込みコントローラ２１へ入力されるデータ「０１２３４５６７」は、この書き込み対象データが、「データ０」、「データ１」、「データ２」、「データ３」、「データ４」、「データ５」、「データ６」、「データ７」によって構成されていることを示している。データ０〜データ７の各々を便宜的に単位データと呼ぶ。図２に例示する書き込み対象データでは、単位データは、データ０〜データ７の順に並んでいる。
【００１７】
（データの書き込み）
ディスクアレイ装置３への８セクタ長（データ０〜データ７）の書き込み要求があった場合、書き込みコントローラ２１は、ＨＤＤ＃０およびＨＤＤ＃１の両方に、８セクタ分のデータの書き込みを実施する。書き込みコントローラ２１は、書き込み対象データ（データ０〜データ７）を取得すると、この並びのまま、ＨＤＤ＃０とＨＤＤ＃１にそれぞれ書き込む。このとき、書き込みコントローラ２１は、ＨＤＤ＃０とＨＤＤ＃１の同じセクタ位置にそれぞれの単位データを順に書き込む。図２の下表にＨＤＤ＃０とＨＤＤ＃１におけるセクタ位置と、書き込みコントローラ２１が書き込む単位データの関係を示す。この表に例示するように、ＨＤＤ＃０およびＨＤＤ＃１ともに、セクタ０には「データ０」が格納され、セクタ１には「データ１」が格納される。以降も同様にセクタＮに「データＮ」（Ｎ＝２〜７）が格納される。第一実施形態では、書き込みコントローラ２１の動作は、ＲＡＩＤ１と同じである。
【００１８】
（通常時の読み出し）
次に読み出し処理について説明する。まず、通常時（非障害時）の動作について説明する。ホスト装置１から上記の８セクタ長のデータの読み出し指示を受けると、読み出しコントローラ２２は、ＨＤＤ＃０とＨＤＤ＃１の異なるセクタから並行して単位データの読み出しを行う。例えば、読み出しコントローラ２２は、ＨＤＤ＃０の偶数セクタ（図２の表のセクタ０，２，４，６）から上記の並びにおける偶数が付された単位データ（データ０，２，４，６）を、ＨＤＤ＃１の奇数セクタ（図２の表のセクタ１，３，５，７）から奇数が付された単位データ（データ１，３，５，７）を同時に読み出す。より具体的には、読み出しコントローラ２２は、ＨＤＤ＃０から、セクタ０、セクタ２、セクタ４、セクタ６の順に読み出し、ＨＤＤ＃１から、セクタ１、セクタ３、セクタ５、セクタ７の順に読み出す。このとき読み出しコントローラ２２は、書き込み時のデータにおける単位データの並びにおいて隣り合う（連続する）単位データを同時に読み出す。具体的には、読み出しコントローラ２２は、ＨＤＤ＃０のセクタ０とＨＤＤ＃１のセクタ１の各々から単位データ（それぞれデータ０とデータ１）を同時に読み出す。そして、読み出しコントローラ２２は、読み出した単位データ（データ０とデータ１）を同時に要求元（ホスト装置１）へ送付する。
【００１９】
次に読み出しコントローラ２２は、ＨＤＤ＃０のセクタ２からデータ２を、ＨＤＤ＃１のセクタ３からデータ３を同時に読み出し、それらを同時に要求元へ送付する。以降も同様にして、読み出しコントローラ２２は、ＨＤＤ＃０のセクタ４およびＨＤＤ＃１のセクタ５から同時に単位データ（データ４とデータ５）を読み出し、それらを同時に要求元へ送付する。最後に読み出しコントローラ２２は、ＨＤＤ＃０のセクタ６およびＨＤＤ＃１のセクタ７から同時に単位データ（データ６とデータ７）を読み出し、それらを要求元へ同時に送付する。このようにして８セクタ分のデータを読み出す。
このような処理により、データの冗長性を確保しつつ、片方のＨＤＤからのみデータを読み出す場合に比べ、２倍の速度で読み出すことができる。
【００２０】
また、情報処理におけるデータには、空間的局所性（必要とするデータはより近いアドレス近辺にまとまっている）という性質が認められ、意味のある順番で単位データが並べられ、書き込み、読み出しが行われることが多い。読み出しコントローラ２２による読み出し処理であれば、隣り合う単位データ（例えば、データ０とデータ１、データ２とデータ３など）を同時に取得することができるので、読み出し後のＯＳ１１における処理においても高速化が期待できる。例えば、８セクタ長のデータのうち前半（データ０〜３）と後半（データ４〜７）に分けて前半データと後半データを１セクタずつ同時に並行して読み出す方法が提案されている（特許文献１）。この方法の場合、前半先頭のデータ０と後半先頭のデータ４を同時に読み出して要求元へ送信し、次にデータ１とデータ５を読み出して要求元へ送信するといった処理を繰り返す。このような読み出し方法の場合、要求元の処理でデータ０とデータ１が必要な場合、次の１セクタを読み出すまでの待ちが発生する。この点、本実施形態によれば、連続する単位データを高速に読むことができる。これにより、待ちの発生を低減し、処理を高速化することができる。
【００２１】
（データ異常検出時の読み出し）
次に、ある単位データ（以下の例では、ＨＤＤ＃０のセクタ２に格納されているデータ２）が壊れ、正常に読み出すことができなかった場合の動作を例に説明を行う。
図３は、本発明の第一実施形態によるデータ入出力方法を説明する第２の図である。
要求元から８セクタ分のデータに対する読み出し要求があったとする。通常時の場合で説明したように、読み出しコントローラ２２は、まず、ＨＤＤ＃０のセクタ０からデータ０、ＨＤＤ＃１のセクタ１からデータ１を同時に読み出し、データ０とデータ１を同時に要求元に送付する。次に読み出しコントローラ２２がＨＤＤ＃０のセクタ２からデータ２、ＨＤＤ＃１のセクタ３からデータ３を同時に読み出そうとした際、データ２が壊れていることを検出したとする。すると、読み出しコントローラ２２は、一旦、データ２とデータ３のデータを破棄する。そして今度は、読み出しコントローラ２２は、異常が検出されたＨＤＤ＃０のセクタ２に格納された単位データの読み出し先をＨＤＤ＃１のセクタ２に切り替えて、ＨＤＤ＃０の読み出し対象セクタをセクタ２から１つ先へずらしたセクタ３に設定する。つまり、読み出しコントローラ２２は、ＨＤＤ＃１のセクタ２を始点として、ＨＤＤ＃０の奇数セクタおよびＨＤＤ＃１の偶数セクタからそれ以降の単位データをそれぞれ同時に読み出すよう制御を変更する。例えば、読み出しコントローラ２２は、まず、ＨＤＤ＃１のセクタ２からデータ２、ＨＤＤ＃０のセクタ３からデータ３を同時に読み出し、データ２とデータ３を同時に要求元に送付する。次に読み出しコントローラ２２は、ＨＤＤ＃１のセクタ４からデータ４、ＨＤＤ＃０のセクタ５からデータ５を同時に読み出し、それらを要求元に送付する。以降の単位データについても同様である。
【００２２】
このような読出し制御により、データ２とデータ３を一度破棄し読み出し直すことによる１セクタのデータ読み出し分の遅れは生じるものの、ＨＤＤ＃０およびＨＤＤ＃１から同時に連続する単位データを読み出すことができるため、通常時と同様に高速なデータ読み出しを継続することができる。
【００２３】
（ＨＤＤ障害時）
次に、あるＨＤＤ全体（以下の例では、ＨＤＤ＃０）が固定的に故障した場合の動作を説明する。
図４は、本発明の第一実施形態によるデータ入出力方法を説明する第３の図である。
ＨＤＤ＃０が故障している場合、ＲＡＩＤコントローラ２は、通常のＲＡＩＤ１と同様、ＨＤＤ＃０を閉塞する。そして、要求元から８セクタ分のデータに対する読み出し要求があると、読み出しコントローラ２２は、ＨＤＤ＃１からのみデータの読み出しを行う。読み出しコントローラ２２は、セクタ０からセクタ７まで１セクタずつ順に単位データを読み出し、その都度、ホスト装置１へデータ０〜データ７を送付する。
なお、書き込みについては、書き込みコントローラ２２が、閉塞されていないＨＤＤ＃１に対して、図２の下表で例示したように書き込みを行う。
ＨＤＤ障害時の読み出しおよび書き込み処理は、ＲＡＩＤ１と同じである。
【００２４】
（リビルド処理）
図５は、本発明の第一実施形態によるリビルド処理を説明する図である。
ＨＤＤ＃０が故障した場合、ＨＤＤ＃０を交換して、新たなＨＤＤ＃０にＨＤＤ＃１に書き込まれたデータと同じデータを書き込む。ＨＤＤ＃０にデータを書き込んでＨＤＤ＃０とＨＤＤ＃１の２台構成（ＲＡＩＤ１）の状態に再構成する処理をリビルド処理という。具体的には、例えば、読み出しコントローラ２２が、ＨＤＤ＃１からセクタ順に単位データを読み出し、書き込みコントローラ２１へ送る。書き込みコントローラ２１は、何もデータが書き込まれていないＨＤＤ＃０の各セクタへＨＤＤ＃１の同じセクタ位置に書き込まれたものと同じ単位データを書き込む。リビルト処理が終了すると、ＨＤＤ＃０とＨＤＤ＃１に書き込まれたデータは一致する。従って、リビルト処理後は、図２を用いて説明したように、書き込み時には、ＨＤＤ＃０とＨＤＤ＃１の同じセクタ位置に同じ単位データを書き込み、読み出し時には、ＨＤＤ＃０の偶数セクタおよびＨＤＤ＃１の奇数セクタから同時に単位データを読み出すという制御を行うことができる。これにより、本実施形態による冗長性の確保、および高速読み出しを実現することができる。
【００２５】
上記説明したように、本実施形態によれば、複数のＨＤＤに同一のデータを書き込むことで冗長性を保ちつつ、複数のＨＤＤから同時に別の単位データを読み出すことで、読み出し性能の高速化を図ることができる。特に連続する単位データを同時に読み出すことができるので、データ読み出し後の処理の高速化にも貢献することができる。
なお、ディスクアレイ装置を２つのＨＤＤで構成する例を示したが、ＨＤＤの数は３台以上であってもよい。その場合、読み出しコントローラ２２は、複数のＨＤＤの１ずつずらしたセクタ位置から、同時に単位データを読み出す制御を行う。
【００２６】
＜第二実施形態＞
第一実施形態では、ＨＤＤ＃０の偶数セクタおよびＨＤＤ＃１の奇数セクタから同時に単位データを読み出す制御を説明した。第二実施例では、ＨＤＤ＃０とＨＤＤ＃１の同じセクタ位置から同時に単位データを読み出す制御を説明する。
図６は、本発明の第二実施形態によるデータ入出力方法を説明する第１の図である。
図７は、本発明の第二実施形態によるデータ格納順の一例を示す図である。
第二実施形態においても図１で例示した情報処理システム１００の構成を前提に説明を行う。但し、書き込みコントローラと読み込みコントローラの機能が第一実施形態と異なるため、書き込みコントローラ２１ａ、読み込みコントローラ２２ａと記載する。
【００２７】
（データの書き込み）
ディスクアレイ装置３への８セクタ長（データ０〜データ７）の書き込み要求があった場合、書き込みコントローラ２１ａは、ＨＤＤ＃０およびＨＤＤ＃１の両方に８セクタ分のデータの書き込みを実施する。第二実施形態では、書き込みコントローラ２１ａは、ＨＤＤ＃０およびＨＤＤ＃１に書き込む単位データの順序をあらかじめ入れ替える。どのように並べるかについては、読み出しコントローラ２２ａが、ＨＤＤ＃０およびＨＤＤ＃１におけるある同じセクタ位置を始点としてセクタ順に読み出しを行った場合に、書き込み前のデータ（データ０〜データ７）の並びにおいて隣り合う単位データを同時に読み出すことができるように並び替えを行う。例えば、書き込みコントローラ２１ａは、ＨＤＤ＃０については、書き込み前データのうち、偶数が付された単位データを抽出してそれらの並び順を維持したまま前半に並べ、その後に奇数が付された単位データの並び順を変えることなく連続して並べ、その並びのままＨＤＤ＃０へ書き込む。具体的には、書き込みコントローラ２１ａは、データ０〜データ７という並びを、データ０、データ２、データ４、データ６、データ１、データ３、データ５、データ７の順に並び替えて、この順のままセクタ順に格納していく。
【００２８】
同様に、書き込みコントローラ２１ａは、ＨＤＤ＃１については、奇数が付された単位データを抽出してそれらの並び順を維持したまま前半に並べ、その後ろに偶数が付された単位データの並び順を変えることなく並べる。具体的には、書き込みコントローラ２１ａは、データ０〜データ７という並びを、データ１、データ３、データ５、データ７、データ０、データ２、データ４、データ６の順に並び替えて、この順のまま、ＨＤＤ＃１におけるＨＤＤ＃０と同じセクタ位置に格納していく。書き込み後の様子を図６、図７（ａ）に示す。図７（ａ）の表に例示するように、ＨＤＤ＃０のセクタ０にはデータ０が、ＨＤＤ＃１のセクタ０にはデータ１が格納され、ＨＤＤ＃０のセクタ１にはデータ２が、ＨＤＤ＃１のセクタ１にはデータ３が格納される。以降のセクタについても同様である。つまり、ＨＤＤ＃０とＨＤＤ＃１の同じ位置のセクタから同時に単位データを読み取ると、元のデータ（データ０〜データ７）の並びにおいて連続する単位データを取得することができる。このように第二実施形態では、読み出しコントローラ２２ａが、ＨＤＤ＃０およびＨＤＤ＃１の例えばセクタ０から順に１つずつ次のセクタ位置を読み出したときに、同時に連続する単位データが得られるように並び替えを行って、書き込みを行う。また、書き込むセクタ長により書き込みセクタ位置は異なるため、読み出しコントローラ２２ａは、セクタ長の情報についても同時に（例えば、書き込み開始セクタ位置と対応付けて）ＨＤＤ＃０、ＨＤＤ＃１に書き込んで保持しておく。図７（ｂ）に書き込み対象データの長さが４セクタ長の場合の書き込みセクタ位置を示す。
【００２９】
（通常時の読み出し）
次に第二実施形態の読み出し処理について説明する。まず、通常時（非障害時）の動作について説明する。ホスト装置１から８セクタ長のデータの読み出し指示を受けると、読み出しコントローラ２２ａは、ＨＤＤ＃０とＨＤＤ＃１の同じセクタ位置から並行して同時に単位データの読み出しを行う。図７（ａ）の例では、読み出しコントローラ２２ａは、まず、ＨＤＤ＃０のセクタ０とＨＤＤ＃１のセクタ０から同時に単位データの読み出しを行う。読み出しコントローラ２２ａは、読み出した単位データ（データ０とデータ１）を同時に要求元（ホスト装置１）へ送付する。
【００３０】
次に読み出しコントローラ２２ａは、ＨＤＤ＃０のセクタ１からデータ２を、ＨＤＤ＃１のセクタ１からデータ３を同時に読み出し、それらを同時に要求元へ送付する。以降も同様にして、読み出しコントローラ２２ａは、ＨＤＤ＃０のセクタ２およびＨＤＤ＃１のセクタ２から同時に単位データ（データ４とデータ５）を読み出し、それらを同時に要求元へ送付する。最後に読み出しコントローラ２２ａは、ＨＤＤ＃０のセクタ３およびＨＤＤ＃１のセクタ３から同時に単位データ（データ６とデータ７）を読み出し、それらを要求元へ同時に送付する。このようにして８セクタ分のデータを読み出す。
このような処理により、第一実施形態と同様に、データの冗長性を確保しつつ、片方のＨＤＤからのみデータを読み出す場合に比べ、２倍の速度で読み出すことができる。
【００３１】
ここで、第一実施形態の読み出し処理と比較する。第一実施形態では、ＨＤＤ＃０の偶数セクタおよびＨＤＤ＃１の奇数セクタから同時に単位データを読み出すこととしている。１つのＨＤＤに着目すると、セクタを１つ飛ばしでデータを読み込むことになる。ＨＤＤの性質として、連続しないセクタからデータを読み出す場合には、セクタを再サーチする処理が行われる。その観点からは、第一実施形態の読み出し処理には、再サーチによる若干の速度低下が発生する。これに対し、第二実施形態では、読み出しコントローラ２２ａは、ＨＤＤ＃０およびＨＤＤ＃１における連続するセクタから次々と読み出しを行う。その為、セクタの再サーチが実行されることが無く、より高速な読み出しが可能となる。
【００３２】
（データ異常検出時の読み出し）
次に、ある単位データ（以下の例では、ＨＤＤ＃０のセクタ１に格納されているデータ２）が壊れ、正常に読み出すことができなかった場合の動作を例に説明を行う。
図８は、本発明の第二実施形態によるデータ入出力方法を説明する第２の図である。
要求元から８セクタ分のデータに対する読み出し要求があったとする。通常時の場合で説明したように、読み出しコントローラ２２ａは、まず、ＨＤＤ＃０のセクタ０からデータ０、ＨＤＤ＃１のセクタ０からデータ１を同時に読み出し、データ０とデータ１を同時に要求元に送付する。次に読み出しコントローラ２２ａがＨＤＤ＃０のセクタ１からデータ２、ＨＤＤ＃１のセクタ１からデータ３を同時に読み出そうとした際、データ２が壊れていることを検出したとする。すると、読み出しコントローラ２２ａは、一旦、データ２とデータ３のデータを破棄する。そして今度は、読み出しコントローラ２２ａは、異常が検出されたＨＤＤ＃０のセクタ１が格納する単位データの読み出し先をＨＤＤ＃１に切り替えて、ＨＤＤ＃１においてデータ２が格納されたセクタ５を、ＨＤＤ＃０およびＨＤＤ＃１の読み出し対象のセクタ位置に設定する。そして、読み出しコントローラ２２ａは、ＨＤＤ＃０のセクタ５からデータ３、ＨＤＤ＃１のセクタ５からデータ２を同時に読み出し、データ３とデータ２を同時に要求元に送付する。次に読み出しコントローラ２２ａは、ＨＤＤ＃０のセクタ６からデータ５、ＨＤＤ＃１のセクタ６からデータ４を同時に読み出し、それらの単位データを同時に要求元に送付する。最後に読み出しコントローラ２２ａは、ＨＤＤ＃０のセクタ７からデータ７、ＨＤＤ＃１のセクタ７からデータ６を同時に読み出し、それらの単位データを同時に要求元に送付する。
【００３３】
この例に示すように読み出しコントローラ２２ａは、異常データの検出前は、偶数が付された単位データをＨＤＤ＃０から、奇数が付された単位データをＨＤＤ＃１から同時に読み出すよう動作する。そして、異常データの検出後は、読み出しコントローラ２２ａは、奇数が付された単位データをＨＤＤ＃０から、偶数が付された単位データをＨＤＤ＃１から同時に読み出すよう制御を変更する。
【００３４】
これにより、データ２とデータ３を一度破棄し読み出し直すことによる１セクタのデータ読み出し分の遅れは生じるものの、以降はＨＤＤ＃０およびＨＤＤ＃１から同時に連続する単位データを読み出すことができるため、通常時と同様に高速なデータ読み出しを継続することができる。
【００３５】
（ＨＤＤ障害時）
次に、あるＨＤＤ全体（以下の例では、ＨＤＤ＃０）が固定的に故障した場合の動作を説明する。
図９は、本発明の第二実施形態によるデータ入出力方法を説明する第３の図である。
ＨＤＤ＃０が故障している場合、ＲＡＩＤコントローラ２は、通常のＲＡＩＤ１と同様にＨＤＤ＃０を閉塞する。そして、要求元から８セクタ分のデータ書き出し要求があると、書き込みコントローラ２２ａは、閉塞されていないＨＤＤ＃１にのみ書き込みを行う。このとき、書き込みコントローラ２２ａは、上記で説明したようにセクタ長に応じた並べ替えを行ってデータの書き込みとセクタ長情報の書き込みを行う。例えば、書き込みコントローラ２２ａは、データ０〜データ７を、データ１、データ３、データ５、データ７、データ０、データ２、データ４、データ６の順に並び変えて、ＨＤＤ＃１に書き込む。次に説明するように通常時と同様に並べ替えを行って書き込むことにより、リビルド処理後に図６、図７（ａ）で例示したディスク構成を再現することができる。
【００３６】
そして、要求元から８セクタ分のデータに対する読み出し要求があると、読み出しコントローラ２２ａは、ＨＤＤ＃１からのみデータの読み出しを行う。読み出しコントローラ２２ａは、書き込み前データの並び順に単位データを読み出し、ホスト装置１へ読み出した単位データを送付する。例えば、読み出しコントローラ２２ａは、セクタ４、セクタ０、セクタ５、セクタ１、セクタ６、セクタ２、セクタ７、セクタ３の順に単位データを読み出して、その都度、ホスト装置１へ送付する。
【００３７】
（リビルド処理）
図１０は、本発明の第二実施形態によるリビルド処理を説明する図である。
ＨＤＤ＃０が故障した場合、ＨＤＤ＃０を交換してリビルド処理を行う。具体的には、読み出しコントローラ２２ａが、上記の「ＨＤＤ障害時」で説明したように、読み出し後の単位データの並びが元の並び順（データ０〜データ７）となるよう、ＨＤＤ＃１の適切なセクタ位置から単位データを読み出し、セクタ長さ（この例では８）の情報とともに書き込みコントローラ２１ａへ送る。書き込みコントローラ２１ａは、上記の「データの書き込み」で説明したように、セクタ長に応じたＨＤＤ＃０向けの並び替えを行って、ＨＤＤ＃０への書き込みを行う。リビルト処理が終了すると、ＨＤＤ＃０とＨＤＤ＃１に書き込まれたデータは、図６および図７（ａ）で例示したものになる。リビルド処理後は、図６を用いて説明したように、書き込みコントローラ２１ａが、セクタ長に応じた並べ替えを行って、連続するセクタに順に書き込む。そして、読み出しコントローラ２２ａは、同時にＨＤＤ＃０とＨＤＤ＃１の同じセクタ位置の単位データをセクタ順に読み出していく。これにより、本実施形態による冗長性の確保、および高速読み出しを実現することができる。
【００３８】
本実施形態によれば、第一実施形態と同様、ディスクアレイ装置３の可用性および読み出し性能の向上を実現することができる。また、第一実施形態に比べ、読み出し速度をより高速化することができる。
なお、ディスクアレイ装置３を２つのＨＤＤ（ＨＤＤ＃０、ＨＤＤ＃１）で構成する例を示したが、ＨＤＤの数は３台以上であっても同様の書き込み制御および読み出し制御を適用することができる。例えば、ＨＤＤの数が３台（ＨＤＤ＃０、ＨＤＤ＃１、ＨＤＤ＃２）で、書き込む単位データの並びがデータ０〜データ７のデータの場合、図１１に示すように並び替えて各ＨＤＤへ書き込んでもよい。具体的には、書き込みコントローラ２１ａは、ＨＤＤ＃０について、データ０、データ３、データ６、データ２、データ５、（空き）、データ１、データ４、データ７の順に並び替えて、この順のままセクタ順に格納していく。また、書き込みコントローラ２１ａは、ＨＤＤ＃１について、データ１、データ４、データ７、データ０、データ３、データ６、データ２、データ５、（空き）の順に並び替えて、この順のままセクタ順に格納していく。また、書き込みコントローラ２１ａは、ＨＤＤ＃２について、データ２、データ５、（空き）、データ１、データ４、データ７、データ０、データ３、データ６の順に並び替えて、この順のままセクタ順に格納していく。
【００３９】
図１２は、本発明の各実施形態における制御装置の最小構成を示す図である。
図１２に示すように制御装置２００は、少なくとも書込部２１０と、読出部２２０と、を備える。
書込部２１０は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む。
読出部２２０は、複数のハードディスクの各々から並行して単位データごとに読み出しを行う。読出部２２０は、あるデータを読み出す場合、書き込み前の当該データの並びにおいて隣り合う単位データを異なるハードディスクから同時に読み出す。
一つの実施形態では、読出部２２０は、複数のハードディスクの１ずつ異なるセクタ位置から単位データを同時に読み出してもよい。
一つの実施形態では、書込部２１０は、読出部２２０が複数のハードディスクのそれぞれにおける同じセクタを始点としてセクタ順に読み出しを行った場合に、書き込み前のデータの並びにおいて隣り合う単位データを同時に読み出すことができるように単位データの並びを変更して、複数のハードディスクの各々に書き込んでもよい。
制御装置２００は、上記の各実施形態におけるＲＡＩＤコントローラ２に対応する。書込部２１０は、書き込みコントローラ２１，２１ａに対応する。読出部２２０は、読み出しコントローラ２２，２２ａに対応する。
【００４０】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【符号の説明】
【００４１】
１００・・・情報処理システム
１・・・ホスト装置
２・・・ＲＡＩＤコントローラ
３・・・ディスクアレイ装置
１１・・・ＯＳ
１２・・・ドライバ
１３・・・ＣＰＵ
２１、２１ａ・・・書き込みコントローラ
２２、２２ａ・・・読み出しコントローラ
３・・・ディスクアレイ装置
＃０、＃１・・・ＨＤＤ
２００・・・制御装置
２１０・・・書込部
２２０・・・読出部
【図１】
2020086598.tif 000003
【図２】
2020086598.tif 000004
【図３】
2020086598.tif 000005
【図４】
2020086598.tif 000006
【図５】
2020086598.tif 000007
【図６】
2020086598.tif 000008
【図７】
2020086598.tif 000009
【図８】
2020086598.tif 000010
【図９】
2020086598.tif 000011
【図１０】
2020086598.tif 000012
【図１１】
2020086598.tif 000013
【図１２】
2020086598.tif 000014
【手続補正書】
【提出日】令和1年10月7日(2019.10.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む書込部と、
複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行う読出部と、を備え、
前記書込部は、前記データの並びを変更せずに前記ハードディスクの各々に書き込み、
前記データを読み出す場合、前記読出部は、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、複数の前記ハードディスクの１ずつ異なるセクタ位置から同時に読み出し、
前記読出部は、一の前記ハードディスクの第１セクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、読み出し対象セクタを前記第１セクタ位置に設定し、当該ハードディスク以外の前記ハードディスクについては、前記第１セクタ位置を基準に１ずつ異なるセクタ位置を、新たな読み出し対象セクタとして設定する、
制御装置。
【請求項２】
単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む書込部と、
複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行う読出部と、を備え、
前記書込部は、前記読出部が複数の前記ハードディスクのそれぞれにおける同じセクタ位置を始点としてセクタ順に読み出しを行った場合に、書き込み前の前記データの並びにおいて連続する前記単位データを同時に読み出すことができるように前記単位データの並びを変更して、複数の前記ハードディスクの各々に書き込み、
前記データを読み出す場合、前記読出部は、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクからセクタ順に同時に読み出し、
前記読出部は、一の前記ハードディスクの一のセクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、前記異常が検出されたセクタ位置に書き込まれたものと同じ前記単位データが書き込まれたセクタ位置を、新たな読み出し対象セクタとして設定する、
制御装置。
【請求項３】
一の前記ハードディスクが故障した場合、当該ハードディスクを閉塞し、
前記書込部は、他の前記ハードディスクへ閉塞前と同様の並び順で、前記単位データの書き込みを行う、
請求項２に記載の制御装置。
【請求項４】
複数のハードディスクと、
請求項１から請求項３の何れか１項に記載の制御装置と、
を備えるディスクアレイシステム。
【請求項５】
単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込むステップと、
複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行うステップと、を有し、
前記書き込むステップでは、前記データの並びを変更せずに前記ハードディスクの各々に書き込み、
前記データを読み出す場合、前記読み出しを行うステップにて、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、複数の前記ハードディスクの１ずつ異なるセクタ位置から同時に読み出し、
前記読み出しを行うステップにて、一の前記ハードディスクの第１セクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、読み出し対象セクタを前記第１セクタ位置に設定し、当該ハードディスク以外の前記ハードディスクについては、前記第１セクタ位置を基準に１ずつ異なるセクタ位置を、新たな読み出し対象セクタとして設定する、
データ入出力方法。
【請求項６】
単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込むステップと、
複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行うステップと、を有し、
前記書き込むステップでは、前記読み出しを行うステップにて複数の前記ハードディスクのそれぞれにおける同じセクタ位置を始点としてセクタ順に読み出しを行った場合に、書き込み前の前記データの並びにおいて連続する前記単位データを同時に読み出すことができるように前記単位データの並びを変更して、複数の前記ハードディスクの各々に書き込み、
前記データを読み出す場合、前記読み出しを行うステップにて、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクからセクタ順に同時に読み出し、
前記読み出しを行うステップにて、一の前記ハードディスクの一のセクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、前記異常が検出されたセクタ位置に書き込まれたものと同じ前記単位データが書き込まれたセクタ位置を、新たな読み出し対象セクタとして設定する、
データ入出力方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の一態様によれば、制御装置は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む書込部と、複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行う読出部と、を備え、前記書込部は、前記データの並びを変更せずに前記ハードディスクの各々に書き込み、前記データを読み出す場合、前記読出部は、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、複数の前記ハードディスクの１ずつ異なるセクタ位置から同時に読み出し、前記読出部は、一の前記ハードディスクの第１セクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、読み出し対象セクタを前記第１セクタ位置に設定し、当該ハードディスク以外の前記ハードディスクについては、前記第１セクタ位置を基準に１ずつ異なるセクタ位置を、新たな読み出し対象セクタとして設定する。
また、本発明の他の一態様によれば、制御装置は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込む書込部と、複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行う読出部と、を備え、前記書込部は、前記読出部が複数の前記ハードディスクのそれぞれにおける同じセクタ位置を始点としてセクタ順に読み出しを行った場合に、書き込み前の前記データの並びにおいて連続する前記単位データを同時に読み出すことができるように前記単位データの並びを変更して、複数の前記ハードディスクの各々に書き込み、前記データを読み出す場合、前記読出部は、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクからセクタ順に同時に読み出し、前記読出部は、一の前記ハードディスクの一のセクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、前記異常が検出されたセクタ位置に書き込まれたものと同じ前記単位データが書き込まれたセクタ位置を、新たな読み出し対象セクタとして設定する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
また、本発明の他の一態様によれば、データ入出力方法は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込むステップと、複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行うステップと、を有し、前記書き込むステップでは、前記データの並びを変更せずに前記ハードディスクの各々に書き込み、前記データを読み出す場合、前記読み出しを行うステップにて、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、複数の前記ハードディスクの１ずつ異なるセクタ位置から同時に読み出し、前記読み出しを行うステップにて、一の前記ハードディスクの第１セクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、読み出し対象セクタを前記第１セクタ位置に設定し、当該ハードディスク以外の前記ハードディスクについては、前記第１セクタ位置を基準に１ずつ異なるセクタ位置を、新たな読み出し対象セクタとして設定する。
また、本発明の他の一態様によれば、データ入出力方法は、単位データが複数並んで構成される書き込み対象のデータを、複数のハードディスクの各々に書き込むステップと、複数の前記ハードディスクの各々から並行して単位データごとに読み出しを行うステップと、を有し、前記書き込むステップでは、前記読み出しを行うステップにて複数の前記ハードディスクのそれぞれにおける同じセクタ位置を始点としてセクタ順に読み出しを行った場合に、書き込み前の前記データの並びにおいて連続する前記単位データを同時に読み出すことができるように前記単位データの並びを変更して、複数の前記ハードディスクの各々に書き込み、前記データを読み出す場合、前記読み出しを行うステップにて、書き込み前の前記データの並びにおいて連続する前記単位データの各々を、異なる前記ハードディスクからセクタ順に同時に読み出し、前記読み出しを行うステップにて、一の前記ハードディスクの一のセクタ位置で異常を検出すると、残りの前記ハードディスクのうちの何れかにおいて、前記異常が検出されたセクタ位置に書き込まれたものと同じ前記単位データが書き込まれたセクタ位置を、新たな読み出し対象セクタとして設定する。