(57)【要約】【課題】複数のストレージ装置の一部の故障によるデータ損失を防止する。【解決手段】データミラーリング制御装置に、ホストから書込み要請されたデータに対する第１書込み命令をミラーリングが適用された複数のストレージ装置に伝送する命令分配部と、ホストメモリに保存されたデータの中でホストから書込み要請されたデータに対してメモリロック（ｌｏｃｋ）を設定し、メモリロック設定されたデータが複数のストレージ装置で書込み完了した場合、書込み完了したデータに対するメモリロックを解除するメモリロック設定部とを含むように構成する。【選択図】      図１
2015069651.tif 000002
【特許請求の範囲】
【請求項１】
ホストから書込み要請されたデータに対する第１書込み命令をミラーリングが適用された複数のストレージ装置に伝送する命令分配部と、
ホストメモリに保存されたデータの中で前記ホストから書込み要請されたデータに対してメモリロック（ｌｏｃｋ）を設定し、前記メモリロック設定されたデータが前記複数のストレージ装置で書込み完了した場合、書込み完了したデータに対するメモリロックを解除するメモリロック設定部とを含むことを特徴とする、データミラーリング制御装置。
【請求項２】
前記命令分配部は、
前記書込み要請されたデータが前記複数のストレージ装置の一つで書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送することを特徴とする、請求項１に記載のデータミラーリング制御装置。
【請求項３】
前記複数のストレージ装置の一つで書込み完了したデータに対する書込み情報に基づいて前記データに対する前記第１書込み命令が伝達されなかったストレージ装置にトリム命令を伝送するトリム命令の伝送部をさらに含むことを特徴とする、請求項１に記載のデータミラーリング制御装置。
【請求項４】
前記命令分配部は、
前記メモリロック設定されたデータに対する前記第１書込み命令の伝送を受けることができなかったストレージ装置に前記メモリロック設定されたデータに対する前記第１書込み命令を伝送することを特徴とする、請求項１に記載のデータミラーリング制御装置。
【請求項５】
ミラーリングが適用された前記複数のストレージ装置の中で少なくとも一つのストレージ装置を速いストレージ装置に設定する速いストレージ装置設定部をさらに含み、
前記命令分配部は、前記第１書込み命令を前記速いストレージ装置に伝送することを特徴とする、請求項１に記載のデータミラーリング制御装置。
【請求項６】
前記速いストレージ装置設定部は、
前記書込み命令に対する書込み完了速度に基づいて前記速いストレージ装置を設定することを特徴とする、請求項５に記載のデータミラーリング制御装置。
【請求項７】
前記命令分配部は、
前記書込み要請されたデータが前記速いストレージ装置で書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送することを特徴とする、請求項５に記載のデータミラーリング制御装置。
【請求項８】
前記速いストレージ装置設定部は、
周期的または非周期的に前記速いストレージ装置を変更することを特徴とする、請求項５に記載のデータミラーリング制御装置。
【請求項９】
前記命令分配部は、
前記速いストレージ装置が変更された場合、前記メモリロック設定されたデータに対する前記第１書込み命令を変更された前記速いストレージ装置に伝送することを特徴とする、請求項８に記載のデータミラーリング制御装置。
【請求項１０】
前記命令分配部は、
前記速いストレージ装置の変更が必要な場合、前記メモリロック設定されたデータに対する前記第１書込み命令を第１ストレージ装置に伝送し、
前記速いストレージ装置設定部は、
前記第１ストレージ装置で前記メモリロック設定されたデータに対する書込みが完了した場合、前記第１ストレージ装置を前記速いストレージ装置に変更することを特徴とする、請求項８に記載のデータミラーリング制御装置。
【請求項１１】
前記命令分配部は、
前記速いストレージ装置が故障した場合、前記メモリロック設定されたデータに対する前記第１書込み命令を故障しなかった他のストレージ装置に伝送することを特徴とする、請求項５に記載のデータミラーリング制御装置。
【請求項１２】
前記命令分配部は、
前記ホストに障害が発生した場合、前記複数のミラーリングストレージ装置のそれぞれに保存されたデータの一致可否を判断し、
一致しない場合、前記速いストレージ装置に保存されたデータに基づいて一つ以上の他のストレージ装置に書込み命令を伝送し、
前記一つ以上の他のストレージ装置は、前記速いストレージ装置に設定されなかった前記複数のミラーリングストレージ装置の中で設定されることを特徴とする、請求項５に記載のデータミラーリング制御装置。
【請求項１３】
前記複数のストレージ装置は、
少なくとも一つのＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）を含み、前記ＨＤＤはミラーリングストレージ装置で、前記速いストレージ装置設定部によって前記速いストレージ装置に設定され、
前記命令分配部は、
ランダム書込み命令を順次書込み命令に変換し、前記順次書込み命令を前記ＨＤＤに伝送し、前記ランダム書込み命令は前記ホストからランダム書込み要請され、前記順次書込み命令は前記ホストから順次に書込み要請されることを特徴とする、請求項５に記載のデータミラーリング制御装置。
【請求項１４】
ホストから書込み要請されたデータに対する書込み命令をミラーリングが適用された複数のストレージ装置に伝送し、前記書込み要請されたデータが前記複数のストレージ装置の一つで書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送する命令分配部と、
前記複数のストレージ装置の一つで書込み完了したデータに対する書込み情報に基づいて前記データに対する書込み命令が伝達されなかったストレージ装置にトリム命令を伝送するトリム命令伝送部とを含むことを特徴とする、データミラーリング制御装置。
【請求項１５】
前記ミラーリングが適用された複数のストレージ装置の中で少なくとも一つを速いストレージ装置に設定し、周期的または非周期的に前記速いストレージ装置を変更する速いストレージ装置設定部をさらに含み、
前記命令分配部は、前記速いストレージ装置に前記ホストから書込み要請されたデータに対する書込み命令を伝送することを特徴とする、請求項１４に記載のデータミラーリング制御装置。
【請求項１６】
前記トリム命令伝送部は、
前記速いストレージ装置が前記複数のミラーリングストレージ装置の一つから前記複数のミラーリングストレージ装置の他の一つに変更された場合、変更される前の速いストレージ装置で書込み完了したデータに対する書込み情報に基づき、速いストレージ装置に変更されたストレージ装置にトリム命令を伝送することを特徴とする、請求項１５に記載のデータミラーリング制御装置。
【請求項１７】
前記速いストレージ装置は、前記複数のミラーリングストレージ装置の一つから前記複数のミラーリングストレージ装置の他の一つに変更された場合、前記速いストレージ装置ではないものに変更されたストレージ装置にガーベジコレクション命令を伝送するガーベジコレクション命令の伝送部をさらに含むことを特徴とする、請求項１５に記載のデータミラーリング制御装置。
【請求項１８】
ホストから書込み要請に応答して第１書込み命令を複数のミラーリングストレージ装置に伝送し、前記第１書込み命令は前記複数のミラーリング記憶装置に要請データの保存を指示し、前記要請データは前記ホストに保存された第１データであり、前記書込み要請データは前記第１データが前記複数のミラーリング記憶装置の中で少なくとも一つに書込み完了するように要請する命令分配部と、
前記書込み要請に応答して前記ホストに前記第１データをメモリロック（ｌｏｃｋ）設定し、前記第１データが前記複数のミラーリングストレージ装置で書込み完了した場合、前記ホストに前記第１データのメモリロックを解除するメモリロック設定部を含むことを特徴とする、データミラーリング制御装置。
【請求項１９】
前記命令分配部は、
前記第１ミラーリングストレージ装置に前記第１データ書込みが完了した書込み完了メッセージを受信した後、第２書込み命令を前記複数のミラーリングストレージ装置の一つに伝送し、
前記第１ミラーリングストレージ装置は、前記複数のミラーリングストレージ装置の残りのものに比べて一番速い時点で前記第１データの書込みを完了したストレージ装置であることを特徴とする、請求項１８に記載のデータミラーリング制御装置。
【請求項２０】
前記メモリロック設定部は、
前記第１書込み命令を受信し、前記第１データを書込み完了するのに障害がない前記複数のミラーリングストレージ装置のすべての装置に対して決定された場合、前記ホストに前記第１データのメモリロックを解除することを特徴とする、請求項１８に記載のデータミラーリング制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータミラーリング（ｍｉｒｒｏｒｉｎｇ）技術に関する。
【背景技術】
【０００２】
数十年来、代表的な記憶装置として使われて来たＨＤＤ（ｈａｒｄ ｄｉｓｋ ｄｒｉｖｅ）は一定速度で回転するディスクのヘッド（ｈｅａｄ）を介して読取り／書込み演算を行う機械的な装置で、容量対比価格が相対的に安いという利点がある。しかし、ＨＤＤの読取り／書込み性能はディスクの回転速度に依存するから、半導体基盤の記憶装置に比べて読取り／書込み性能、特にランダム（ｒａｎｄｏｍ）読取り／書込み性能が制限的である。また、ＨＤＤは半導体基盤記憶装置に比べて故障の確率が高く、記憶装置の故障は使用者データの損失を引き起こすことから致命的である。
【０００３】
このようなＨＤＤの性能（ｐｅｒｆｏｒｍａｎｃｅ）と安全性（ｒｅｌｉａｂｉｌｉｔｙ）の限界を克服するために、多くのＨＤＤ装置を連結してＨＤＤアレイ（Ａｒｒａｙ）を構成し、読取り／書込み演算を適切に分配するＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ Ａｒｒａｙ ｏｆ Ｉｎｄｅｐｅｎｄｅｎｔ Ｄｉｓｋｓ）技術が幅広く活用されて来た。ＲＡＩＤ技術は多くのＨＤＤ装置間のデータ配列政策によっていくつかの細部技術に分類されるが、代表的な技術はＲＡＩＤ ０（ｓｔｒｉｐｉｎｇ）、ＲＡＩＤ １（ｍｉｒｒｏｒｉｎｇ）、ＲＡＩＤ ５（ｓｔｒｉｐｉｎｇ ｗｉｔｈ ｄｉｓｔｒｉｂｕｔｅｄ ｐａｒｉｔｙ）及びＲＡＩＤ １０（ｍｉｒｒｏｒｉｎｇ ａｎｄ ｓｔｒｉｐｉｎｇ）などがある。このうち、ミラーリング（ｍｉｒｒｏｒｉｎｇ）技術は二つ以上のＨＤＤに同一データを保存することにより、一つのＨＤＤが故障した場合にもデータ損失を防止し、故障しなかったＨＤＤによってデータサービスを持続することができるようにする技術である。
【０００４】
一方、ＨＤＤと互換可能でＨＤＤより性能及び安全性（ｒｅｌｉａｂｉｌｉｔｙ）に優れたＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）の活用がずっと増加している。ＳＳＤは、ＨＤＤと異なり、内部に機械的な装置がないので、ＨＤＤより故障率が低く、読取り／書込み性能、特にランダム（ｒａｎｄｏｍ）読取り／書込み性能がＨＤＤより優秀である。ＳＳＤは性能及び安全性の側面でＨＤＤより優れるが、追加的な性能向上の目的またはＳＳＤの故障によるデータ損失防止のための目的でＳＳＤアレイ（Ａｒｒａｙ）を構成してＲＡＩＤ技術を適用することが可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明はデータミラーリング制御装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のデータミラーリング制御装置は、ホストから書込み要請されたデータに対する第１書込み命令をミラーリングが適用された複数のストレージ装置に伝送する命令分配部と、ホストメモリに保存されたデータの中で前記ホストから書込み要請されたデータに対してメモリロック（ｌｏｃｋ）を設定し、前記メモリロック設定されたデータが前記複数のストレージ装置で書込み完了した場合、書込み完了したデータに対するメモリロックを解除するメモリロック設定部とを含むことを特徴とする。
【０００７】
本発明の前記命令分配部は、前記書込み要請されたデータが前記複数のストレージ装置の一つで書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送することを特徴とする。
本発明は、前記複数のストレージ装置の一つで書込み完了したデータに対する書込み情報に基づいて前記データに対する前記第１書込み命令が伝達されなかったストレージ装置にトリム命令を伝送するトリム命令の伝送部をさらに含むことを特徴とする。
また、本発明の前記命令分配部は、前記メモリロック設定されたデータに対する前記第１書込み命令の伝送を受けることができなかったストレージ装置に前記メモリロック設定されたデータに対する前記第１書込み命令を伝送することを特徴とする。
【０００８】
本発明は、ミラーリングが適用された前記複数のストレージ装置の中で少なくとも一つのストレージ装置を速いストレージ装置に設定する速いストレージ装置設定部をさらに含み、前記命令分配部は、前記第１書込み命令を前記速いストレージ装置に伝送することを特徴とする。
前記速いストレージ装置設定部は、前記書込み命令に対する書込み完了速度に基づいて前記速いストレージ装置を設定することを特徴とする。
【０００９】
前記命令分配部は、前記書込み要請されたデータが前記速いストレージ装置で書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送することを特徴とする。
前記速いストレージ装置設定部は、周期的または非周期的に前記速いストレージ装置を変更することを特徴とする。
前記命令分配部は、前記速いストレージ装置が変更された場合、前記メモリロック設定されたデータに対する前記第１書込み命令を変更された前記速いストレージ装置に伝送することを特徴とする。
【００１０】
また、前記命令分配部は、前記速いストレージ装置の変更が必要な場合、前記メモリロック設定されたデータに対する前記第１書込み命令を第１ストレージ装置に伝送し、前記速いストレージ装置設定部は、前記第１ストレージ装置で前記メモリロック設定されたデータに対する書込みが完了した場合、前記第１ストレージ装置を前記速いストレージ装置に変更することを特徴とする。
また、前記命令分配部は、前記速いストレージ装置が故障した場合、前記メモリロック設定されたデータに対する前記第１書込み命令を故障しなかった他のストレージ装置に伝送することを特徴とする。
【００１１】
さらに、前記命令分配部は、前記ホストに障害が発生した場合、前記複数のミラーリングストレージ装置のそれぞれに保存されたデータの一致可否を判断し、一致しない場合、前記速いストレージ装置に保存されたデータに基づいて一つ以上の他のストレージ装置に書込み命令を伝送し、前記一つ以上の他のストレージ装置は、前記速いストレージ装置に設定されなかった前記複数のミラーリングストレージ装置の中で設定されることを特徴とする。
【００１２】
本発明の前記複数のストレージ装置は、少なくとも一つのＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）を含み、前記ＨＤＤはミラーリングストレージ装置で、前記速いストレージ装置設定部によって前記速いストレージ装置に設定され、前記命令分配部は、ランダム書込み命令を順次書込み命令に変換し、前記順次書込み命令を前記ＨＤＤに伝送し、前記ランダム書込み命令は前記ホストからランダム書込み要請され、前記順次書込み命令は前記ホストから順次に書込み要請されることを特徴とする。
【００１３】
また、本発明のデータミラーリング制御装置は、ホストから書込み要請されたデータに対する書込み命令をミラーリングが適用された複数のストレージ装置に伝送し、前記書込み要請されたデータが前記複数のストレージ装置の一つで書込み完了した場合、前記データに対する書込み完了メッセージを前記ホストに伝送する命令分配部と、前記複数のストレージ装置の一つで書込み完了したデータに対する書込み情報に基づいて前記データに対する書込み命令が伝達されなかったストレージ装置にトリム命令を伝送するトリム命令伝送部とを含むことを特徴とする。
【００１４】
本発明は、前記ミラーリングが適用された複数のストレージ装置の中で少なくとも一つを速いストレージ装置に設定し、周期的または非周期的に前記速いストレージ装置を変更する速いストレージ装置設定部をさらに含み、前記命令分配部は、前記速いストレージ装置に前記ホストから書込み要請されたデータに対する書込み命令を伝送することを特徴とする。
【００１５】
前記トリム命令伝送部は、前記速いストレージ装置が前記複数のミラーリングストレージ装置の一つから前記複数のミラーリングストレージ装置の他の一つに変更された場合、変更される前の速いストレージ装置で書込み完了したデータに対する書込み情報に基づき、速いストレージ装置に変更されたストレージ装置にトリム命令を伝送することを特徴とする。
前記速いストレージ装置は、前記複数のミラーリングストレージ装置の一つから前記複数のミラーリングストレージ装置の他の一つに変更された場合、前記速いストレージ装置ではないものに変更されたストレージ装置にガーベジコレクション命令を伝送するガーベジコレクション命令の伝送部をさらに含むことを特徴とする。
【００１６】
さらに、本発明のデータミラーリング制御装置は、ホストから書込み要請に応答して第１書込み命令を複数のミラーリングストレージ装置に伝送し、前記第１書込み命令は前記複数のミラーリング記憶装置に要請データの保存を指示し、前記要請データは前記ホストに保存された第１データであり、前記書込み要請データは前記第１データが前記複数のミラーリング記憶装置の中で少なくとも一つに書込み完了するように要請する命令分配部と、前記書込み要請に応答して前記ホストに前記第１データをメモリロック（ｌｏｃｋ）設定し、前記第１データが前記複数のミラーリングストレージ装置で書込み完了した場合、前記ホストに前記第１データのメモリロックを解除するメモリロック設定部を含むことを特徴とする。
【００１７】
前記命令分配部は、前記第１ミラーリングストレージ装置に前記第１データ書込みが完了した書込み完了メッセージを受信した後、第２書込み命令を前記複数のミラーリングストレージ装置の一つに伝送し、前記第１ミラーリングストレージ装置は、前記複数のミラーリングストレージ装置の残りのものに比べて一番速い時点で前記第１データの書込みを完了したストレージ装置であることを特徴とする。
前記メモリロック設定部は、前記第１書込み命令を受信し、前記第１データを書込み完了するのに障害がない前記複数のミラーリングストレージ装置のすべての装置に対して決定された場合、前記ホストに前記第１データのメモリロックを解除することを特徴とする。
【発明の効果】
【００１８】
ホストから書込み要請されたデータがミラーリングの適用されるすべてのストレージ装置で書込み完了前までホストメモリ上に記憶できるようにし、複数のストレージ装置の一部の故障によるデータ損失を防止することができる。
また、ミラーリングが適用される複数のストレージ装置の一つのストレージ装置で書込み完了した場合、直ちに書込み完了メッセージを伝送するようにし、書込み性能を向上させることができる。
さらに、適切な時期にトリム命令及びガーベジコレクションが実行できるようにし、ＳＳＤの性能及び寿命を向上させることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施例によるデータミラーリングが適用されたストレージシステムの構成図。
【図２】本発明の一実施例によるデータミラーリング制御装置の構成図。
【図３ａ】メモリロックが適用されない場合、データ損失を説明するための例示図。
【図３ｂ】メモリロックが適用されない場合、データ損失を説明するための例示図。
【図３ｃ】メモリロックが適用されない場合、データ損失を説明するための例示図。
【図４ａ】メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。
【図４ｂ】メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。
【図５ａ】書込み命令がノンブロッキング方式で伝達される場合、メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。
【図５ｂ】書込み命令がノンブロッキング方式で伝達される場合、メモリロック設定及び書込み完了メッセージの伝達を説明するための例示図。
【図６ａ】トリム命令の伝達を説明するための例示図。
【図６ｂ】トリム命令の伝達を説明するための例示図。
【図７ａ】速いストレージ装置を説明するための例示図。
【図７ｂ】速いストレージ装置を説明するための例示図。
【図７ｃ】速いストレージ装置を説明するための例示図。
【図８】ホストに障害が発生した場合、データ復旧を説明するための例示図。
【図９】複数のストレージ装置がＳＳＤ及びＨＤＤを含む場合、データミラーリング制御を説明するための例示図。
【図１０】本発明の一実施例による、メモリロック設定過程を示すフローチャート。
【図１１】本発明の一実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャート。
【図１２】本発明の他の実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャート。
【図１３】本発明の一実施例による速いストレージ装置を変更する過程を示すフローチャート。
【図１４】本発明の他の実施例による速いストレージ装置を変更する過程を示すフローチャート。
【図１５】本発明のさらに他の実施例による速いストレージ装置変更過程を示すフローチャート。
【図１６】本発明の一実施例による速いストレージ装置に故障が発生した場合、データ復旧過程を示すフローチャート。
【図１７】本発明の一実施例によるホストに障害が発生した場合、データ復旧過程を示すフローチャート。
【発明を実施するための形態】
【００２０】
以下、添付図面に基づいて実施例を詳細に説明する。
図１は本発明の一実施例によるデータミラーリングが適用されたストレージシステムの構成図である。
図１を参照すれば、データミラーリングが適用されたストレージシステムは、データミラーリング制御装置１１０、ホスト１２０、及び複数のストレージ装置１３０を含むことができる。
複数のストレージ装置１３０は、一つのストレージ装置に故障が発生したとき、データが損失することを防止するために、データミラーリングによって同一データを重複して保存することになる。
【００２１】
本発明の一実施例によれば、複数のストレージ装置１３０はＳＳＤ（Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ）アレイからなることができる。ただ、これに限定されるものではなく、一つ以上のＳＳＤ及びＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）からなることができる。
ホスト１２０はホストメモリに保存されているデータに対する書込み要請をデータミラーリング装置１１０に伝送することができる。この際、ホスト１２０はブロッキング（ｂｌｏｃｋｉｎｇ）方式またはノンブロッキング（ｎｏｎ−ｂｌｏｃｋｉｎｇ）方式で書込み要請をデータミラーリング制御装置１１０に伝送することができる。具体的に、ノンブロッキング方式の場合、ホスト１２０は以前に書込み要請したデータに対して書込み完了メッセージが受信されたか否かにかかわらず他のデータに対する書込み要請をデータミラーリング制御装置１１０に伝送することができる。一方、ブロッキング方式の場合、ホスト１２０は以前に書込み要請したデータに対して書込み完了メッセージが受信されるまで他のデータに対する書込み要請をしない。
【００２２】
データミラーリング制御装置１１０は、ホストメモリに保存されたデータの中でホスト１２０から書込み要請されたデータに対するメモリロック（ｍｅｍｏｒｙ ｌｏｃｋ）を設定することができる。
また、データミラーリング制御装置１１０は、メモリロック設定されたデータがミラーリングの適用されたすべてのストレージ装置１３０で書込み完了した場合、書込み完了したデータに対するメモリロックを解除することができる。
このようなメモリロックにより、ホストメモリの特定アドレスに保存されたデータの中でホスト１２０から書込み要請されたデータが複数のストレージ装置１３０で書込み完了するまでホストメモリで削除または変更されないようにすることができる。
【００２３】
本発明の一実施例によれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対する書込み命令を複数のストレージ装置１３０に伝送することができる。
この際、書込み命令はブロッキング（ｂｌｏｃｋｉｎｇ）方式またはノンブロッキング（ｎｏｎ−ｂｌｏｃｋｉｎｇ）方式で複数のストレージ装置１３０のそれぞれに伝送できる。具体的に、ブロッキング方式の場合、データミラーリング制御装置１１０は、ストレージ装置１３０でデータ書込みが進行中の場合、書込みが完了するまで他のデータに対する書込み命令を伝送しない。
【００２４】
一方、ノンブロッキング方式の場合、データミラーリング制御装置１１０は、ストレージ装置１３０でデータ書込みが進行中であるか否かにかかわらず他のデータ書込み命令をそれぞれのストレージ装置１３０に伝送することができる。この際、それぞれのストレージ装置１３０は、伝送受けた書込み命令を命令キューに保存し、現在書込み進行中のデータに対する書込みを完了した後、命令キューに保存された書込み命令を行うことによって他のデータに対する書込みを遂行することができる。
一方、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対して複数のストレージ装置１３０の一つで書込み完了した場合、該当のデータに対する書込み完了メッセージをホストに伝送することができる。
【００２５】
本発明の他の実施例によれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対する書込み命令を複数のストレージ装置１３０の中で速いストレージ装置に設定されたストレージ装置に伝送することができる。具体的に、データミラーリング制御装置１１０は、複数のストレージ装置１３０のそれぞれに書込み命令を伝送した後、複数のストレージ装置の一つで該当の書込み命令の実行が完了した場合、ホスト１２０に書込み完了メッセージを伝送することができる。
【００２６】
本発明の他の実施例によれば、データミラーリング制御装置１１０は、複数のストレージ装置１３０の中で速いストレージ装置に書込み命令を伝送し、速いストレージ装置で該当の書込み命令の実行が完了した場合、ホスト１２０に書込み完了メッセージを伝送することができる。
一方、データミラーリング制御装置１１０は、ホスト１２０から分離された別途の装置で具現できるが、必ずしもこれに限定されるものではなく、ホスト１２０の一構成として含むことができる。
【００２７】
図２は本発明の一実施例によるデータミラーリング制御装置１１０の構成図である。
図２を参照すれば、メモリロック設定部１１２は、ホストメモリに保存されたデータの中でホスト１２０から書込み要請されたデータに対してメモリロック（ｍｅｍｏｒｙ ｌｏｃｋ）を設定することができる。
また、メモリロック設定部１１２は、メモリロック設定されたデータが複数のストレージ装置１３０の全てで書込み完了した場合、該当のデータに対するメモリロックを解除することができる。
言い換えれば、ホスト１２０から書込み要請されたデータに対して設定されたメモリロックはいずれか一つのストレージ装置への書込みが完了したか否かにかかわらず複数のストレージ装置１３０の全てで書込み完了したときに解除される。
【００２８】
本発明の一実施例によれば、命令分配部１１１は、ホスト１２０からデータ書込み要請が受信された場合、複数のストレージ装置１３０のそれぞれに書込み要請されたデータに対する書込み命令を伝送することができる。
この際、命令分配部１１１は、複数のストレージ装置１３０の一つで該当の書込み命令の実行が完了した場合、ホスト１２０に書込み完了メッセージを伝送することができる。
【００２９】
本発明の他の実施例によれば、命令分配部１１１は、ホスト１２０から書込み要請されたデータに対する書込み命令を複数のストレージ装置１３０の中で速いストレージ装置に設定されたストレージ装置に伝送することができる。
この際、命令分配部１１１は、速いストレージ装置でデータ書込みが完了した場合、該当のデータに対する書込み完了メッセージをホスト１２０に伝送することができる。
速いストレージ装置設定部１１３は、複数のストレージ装置１３０の中で少なくとも一つのストレージ装置を速いストレージ装置に設定することができる。この際、速いストレージ装置は、複数のストレージ装置１３０の中で最新のデータを保存しているストレージ装置を意味することができる。
【００３０】
本発明の一実施例によれば、速いストレージ装置設定部１１３は、複数のストレージ装置の中で書込み命令に対する書込み完了速度に基づいて速いストレージ装置を設定することができる。
具体的に、速いストレージ装置設定部１１３は、複数のストレージ装置の中で同一データに対する書込み完了速度が一番速いストレージ装置を速いストレージ装置に設定することができる。
また、速いストレージ装置設定部１１３は、同一データに対して一番先に書込み完了したストレージ装置が速いストレージ装置ではない場合、該当のストレージ装置を速いストレージ装置に変更することができる。
【００３１】
本発明の他の実施例によれば、速いストレージ装置設定部１１３は、複数のストレージ装置１３０の中でいずれかのストレージ装置を速いストレージ装置に設定した後、周期的または非周期的に速いストレージ装置を変更することができる。
例えば、速いストレージ装置設定部１１３は、複数のストレージ装置１３０のそれぞれから書込み加速因子（ＷＡＦ：Ｗｒｉｔｅ Ａｃｃｅｌｅｒａｔｉｏｎ Ｆａｃｔｏｒ）値を周期的に受け、書込み加速因子値が一番高いストレージ装置を速いストレージ装置に選定することができる。
【００３２】
本発明のさらに他の例として、速いストレージ装置設定部１１３は、速いストレージ装置で書込み遅延が発生する場合、速いストレージ装置を変更することができる。
本発明のさらに他の例として、速いストレージ装置設定部１１３は、速いストレージ装置で書込み命令の実行によって自由ブロック（ｆｒｅｅ ｂｌｏｃｋ）の量が一定量以下に減少した場合、速いストレージ装置を変更することができる。
【００３３】
一方、本発明の一実施例によれば、速いストレージ装置は、複数のストレージ装置１３０のそれぞれに保存された速いストレージ装置指示子によって設定できる。具体的に、早いストレージ装置設定部１１３は、複数のストレージ装置１３０のそれぞれに保存されている速いストレージ装置指示子の値を１または０に設定して速いストレージ装置を設定もしくは変更することができる。
【００３４】
一方、本発明の一実施例によれば、命令分配部１１１は、速いストレージ装置に故障が発生した場合、メモリロック設定されたデータに対する書込み命令を故障しなかった他のストレージ装置に伝送することができる。
特定のデータに対してメモリロック設定されているというのは少なくとも一つのストレージ装置で該当データに対する書込みが完了しなかったことを意味する。よって、速いストレージ装置に故障が発生してもメモリロック設定されたデータに対する書込み命令を他のストレージ装置に伝達することにより、速いストレージ装置の故障によるデータ損失を防止することができる。
【００３５】
本発明の一実施例によれば、命令分配部１１１は、ホスト１２０に故障が発生した場合、複数のストレージ装置に保存されたデータを一致させるための過程を遂行することができる。
具体的に、命令分配部１１１は、ホスト１２０が予想しなかった故障の発生によって再起動した場合、速いストレージ装置と他のストレージ装置に保存されたデータとを比較して一致可否を判断することができる。
この際、一致しないデータが存在する場合、速いストレージ装置に保存されたデータに基づいて他のストレージ装置に上書き保存命令を伝送し、複数のストレージ装置１３０に保存されたデータを一致させることができる。
【００３６】
トリム命令伝送部１１４は、複数のストレージ装置１３０の一つのストレージ装置で書込み完了したデータに対する書込み情報に基づき、該当のデータに対する書込み命令が伝達されなかったストレージ装置にトリム命令を伝送することができる。
具体的に、ＳＳＤの構成要素であるＮＡＮＤフラッシュはｉｎ−ｐｌａｃｅアップデートが不可能なので、ある位置で書込み演算を遂行するためには、その位置を含むブロック全体を消去する削除演算が先行されなければならない。この際、削除を行うブロックでそれ以上使わない無効データ（ｉｎｖａｌｉｄ ｄａｔａ）は消去し、有効データは他のブロックに書き写すようになる。
【００３７】
したがって、複数のストレージ装置１３０の一つのストレージ装置でデータ書込みが完了した場合、トリム命令によって該当のデータに対する書込み命令が伝達されなかったストレージ装置に無効データ領域を知らせることにより、性能向上及び摩耗節減の効果が得られる。
ガーベジコレクション命令の伝送部１１５は、速いストレージ装置に設定されたストレージ装置が遅いストレージ装置に変更された場合、遅いストレージ装置に変更されたストレージ装置にガーベジコレクション命令を伝送することができる。
具体的に、ホスト１２０から書込み要請されたデータに対する書込み命令が速いストレージ装置にだけ伝送される場合、遅いストレージ装置に変更されたストレージ装置には書込み命令が伝達されなくなる。よって、遅いストレージ装置に変更されたストレージ装置でガーベジコレクションが遂行されるようにして予め余分の空間を確保することにより、後にまた速いストレージ装置に設定されたとき、書込み性能を向上させることができる。
一方、ここで、遅いストレージ装置は速いストレージ装置に設定されなかったストレージ装置であり得る。
【００３８】
図３ａ〜図３ｃはメモリロックが適用されない場合、データ損失を説明するための例示図である。
図３ａはホストから書込み要請されたデータがミラーリングの適用されるすべてのストレージ装置で書込み完了した場合、書込み完了メッセージを伝達する場合の例である。図示の例において、ＳＳＤ１及びＳＳＤ２からホストから書込み要請されたデータに対する書込みが完了した時点でホストに書込み完了メッセージが伝達される。
【００３９】
具体的に、データ１に対する書込み完了メッセージは書込み完了速度が遅いＳＳＤ２で書込みが完了した時点でホストに伝達される。同様に、データ２に対する書込み完了メッセージは書込み完了速度が遅いＳＳＤ２から書込み完了した時点でホストに伝達される。
一方、ホストは、ブロッキング方式でデータ書込み要請をＳＳＤ１及びＳＳＤ２に伝達する。具体的に、ホストは、書込み要請したデータに対する書込み完了メッセージが受信された場合、他のデータに対する書込み要請をＳＳＤ１及びＳＳＤ２に伝達する。
【００４０】
図示の例において、ホストは、ＳＳＤ２でデータ１に対する書込みが完了した後にデータ２に対する書込み要請をＳＳＤ１及びＳＳＤ２に伝達することになる。この場合、ＳＳＤ１がデータ１に対する書込み完了後に故障しても、ＳＳＤ２でデータ１に対する書込みが完了するまではホストにデータ１に対する書込み完了メッセージが伝達されないので、ホストメモリでデータ１は削除または変更されない。よって、ＳＳＤ２にデータ２に対する書込み命令が伝達できるので、データ２の損失は発生しない。
しかし、ＳＳＤ１で書込みを早く完了した場合でも、ＳＳＤ２で書込み完了するまでは次のデータに対する書込み要請が伝達されないので、全てのストレージ装置の書込み完了速度が遅くなる。
【００４１】
図３ｂはミラーリングが適用される複数のストレージ装置の一つで書込み完了した場合、直ちにホストに書込み完了メッセージを伝達する場合の例である。
図３ｂの場合、書込み完了メッセージは、図３ａの場合とは異なり、ＳＳＤ１及びＳＳＤ２のいずれか一方で書込みが完了した場合、直ちにホストに伝達される。また、書込み完了メッセージを受けたホストは他のデータに対する書込み要請を伝達する（ブロッキング方式）。
【００４２】
具体的に、ホストから書込み要請されたデータ１、２、３に対し、ＳＳＤ１がＳＳＤ２より書込み完了速度が速いので、データ１、２及び３のそれぞれに対する書込み完了メッセージはＳＳＤ１で書込みが完了した時点にホストに伝達される。
一方、データ１に対する書込み完了メッセージを伝達受けたホストはデータ２に対して書込み要請を行い、データ２に対する書込み命令がＳＳＤ１に伝達される。また、データ２に対する書込み完了メッセージを伝達受けたホストは、データ３に対して書込み要請を行い、データ３に対する書込み命令がＳＳＤ１に伝達される。
この場合、図３ａの場合に比べ、全てのストレージ装置の書込み完了速度は速くなる。しかし、ＳＳＤ２にデータ２及び３に対する書込み命令が伝達される前にＳＳＤ１が故障した場合、データ２及び３の損失が発生する。
【００４３】
具体的に、ホストが既にデータ１、２及び３に対して書込み完了メッセージを伝達受けた場合、ホストメモリに保存されたデータ２及び３は削除または変更できる。よって、図示の例のように、ＳＳＤ１がデータ３に対する書込みを完了した時点で故障した場合、ホストメモリ上にデータ２及び３が維持されていないと、まだデータ２及び３に対する書込み命令の伝達を受けなかったＳＳＤ２はデータ２及び３に対する書込み命令の伝達を受けることができない。よって、この場合、データ２及び３に対する損失が発生する。
【００４４】
図３ｃは書込み要請がノンブロッキング方式で伝達される場合の例示図である。
図３ｃを参照すれば、ホストは書込み完了メッセージを受ける前に他のデータに対して書込み要請することができる。図示の例のように、ホストは書込み要請したデータ１に対する書込み完了メッセージの伝達を受ける前にそれぞれのＳＳＤの命令キューの長さの分だけ違うデータの書込みを要請することができる。
ＳＳＤ１及びＳＳＤ２は、ホストから書込み要請されたデータに対する書込み命令を命令キューに保存し、書込みを遂行することができる。また、ＳＳＤ１及びＳＳＤ２のいずれか一方で書込みが完了した場合、書込み完了メッセージをホストに伝達することができる。
【００４５】
この場合にも、命令キューの長さ（ｑｕｅｕｅ ｄｅｐｔｈ）以上の書込みに対してはデータ損失の危険が存在する。図３ｃにおいて、ＳＳＤ１とＳＳＤ２の命令キューの長さが４であると仮定すれば、ＳＳＤ１でデータ１に対する書込みが完了した場合、データ１に対する書込み完了メッセージがホストに伝達され、データ５に対する書込み命令がＳＳＤ１の命令キューに伝達される。また、ＳＳＤ１でデータ２に対する書込みが完了した場合、データ２に対する書込み完了メッセージが伝達され、データ６に対する書込み命令がＳＳＤ１の命令キューに伝達される。
【００４６】
しかし、ＳＳＤ１でデータ６の書込みが完了した時点にＳＳＤ２がデータ１に対する書込みを進行しており、ＳＳＤ２の命令キューの長さが４であるので、データ５及び６に対する書込み命令はＳＳＤ２に伝達できない。
したがって、ＳＳＤ１がデータ５及び６に対する書込みが完了した後に故障した場合、ホストメモリ上にデータ５及び６が維持されなければ、ＳＳＤ２にデータ５及び６に対する書込み命令が伝達できない。したがって、この場合、データ５及び６に対する損失が発生する。
【００４７】
図４ａ及び図４ｂはメモリロック設定及び書込み完了メッセージの伝達を説明するための例示図である。
図示の例では、説明の便宜上、ミラーリングが適用される複数のストレージ装置が二つのＳＳＤからなると仮定する。ただ、これに限定されるものではなく、ミラーリングが適用される複数のストレージ装置は二つ以上のＳＳＤからなるとか一つ以上のＳＳＤ及び一つ以上のＨＤＤからなることができる。
【００４８】
図４ａを参照すれば、データミラーリング制御装置１１０は、ホスト１２０からデータ書込み要請が伝達された場合、ホストメモリに保存されたデータの中で書込み要請を受けたデータに対するメモリロックを設定することができる。
例えば、図４ａにおいて、ホスト１２０からデータ１に対する書込み要請を受けた場合、データミラーリング制御装置１１０は、ホストメモリに保存されたデータ１に対するメモリロックを設定することができる。同様に、データ２〜４のそれぞれに対してもホスト１２０から書込み要請を受けた時点にメモリロックを設定することができる。
【００４９】
メモリロック設定されたデータはＳＳＤ１及びＳＳＤ２で書込みが完了した時点にロック解除される。図示の例において、ＳＳＤ２のデータ書込み完了速度がＳＳＤ１より遅いので、データミラーリング制御装置１１０は、ＳＳＤ２でデータ１の書込みが完了した後、データ１に対するメモリロックを解除することができる。また、データ２〜４のそれぞれに対するメモリロックはＳＳＤ２でデータ２〜４のそれぞれに対する書込みが完了した後に解除できる。
【００５０】
一方、データミラーリング制御装置１１０は、ＳＳＤ１及びＳＳＤ２のいずれか一方でデータ書込みが完了した場合、直ちに書込み完了したデータに対する書込み完了メッセージをホスト１２０に伝送することができる。図示の例において、ＳＳＤ１がＳＳＤ２よりデータ１〜４に対する書込み完了速度が速いので、データミラーリング制御装置１１０は、ＳＳＤ１でデータ１に対する書込みが完了した時点にホスト１２０にデータ１に対する書込み完了メッセージを伝達する。同様に、データ２〜４のそれぞれに対する書込み完了メッセージはＳＳＤ１で書込みが完了した時点にホスト１２０に伝達される。
【００５１】
一方、ホスト１２０は以前に書込み要請したデータに対する書込み完了メッセージの伝達を受けるまで他のデータに対する書込み要請を伝達しない（ｂｌｏｃｋｉｎｇ方式）。具体的に、ホスト１２０は、データミラーリング制御装置１１０からデータ１に対する書込み完了メッセージを受信した後にデータ２に対する書込み要請をデータミラーリング制御装置１１０に伝達する。同様に、データ３に対する書込み要請はデータ２に対する書込み完了メッセージの伝達を受けた後に伝達され、データ４に対する書込み要請はデータ３に対する書込み完了メッセージの伝達を受けた後に伝達される。
【００５２】
一方、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対する書込み命令をＳＳＤ１及びＳＳＤ２に伝達する。具体的に、データミラーリング制御装置１１０は以前に伝達された書込み命令が完了するまで次のデータに対する書込み命令を伝達しない（ｂｌｏｃｋｉｎｇ方式）。図示の例において、ＳＳＤ１でデータ１に対する書込みが完了した後、データ２に対する書込み命令がＳＳＤ１に伝達される。同様に、ＳＳＤ２でデータ１に対する書込みが完了した後、データ２に対する書込み命令が伝達される。
【００５３】
図４ｂを参照すれば、ＳＳＤ２にデータ２〜４に対する書込み命令が伝達される前にＳＳＤ１に故障が発生したと仮定する。
この場合、データ２〜４に対して設定されたメモリロックはＳＳＤ２でデータ２〜４に対する書込みが完了するまでは解除されないので、データミラーリング制御装置１１０はホストメモリに保存されたデータ２〜４に対する書込み命令をＳＳＤ２に伝達することができる。よって、図３ｂの場合とは異なり、ＳＳＤ１の故障によるデータ損失を防ぐことができる。
【００５４】
言い換えれば、二つのＳＳＤがいずれも書込み命令を完了するまで書込み進行中のデータに対してメモリロックを維持し、先に書込み命令を処理したＳＳＤが故障してもデータ損失を防止することができる。
また、二つのＳＳＤの一つのＳＳＤで書込みが完了すれば、直ちに書込み完了メッセージをホスト１２０に伝達し、次のデータに対する書込みを進行することができるようにすることにより、全てのストレージ装置の書込み完了速度を向上させることができる。
【００５５】
図５ａ及び図５ｂは書込み命令がノンブロッキング（ｎｏｎ−ｂｌｏｃｋｉｎｇ）方式で伝達される場合、メモリロックの設定及び書込み完了メッセージの伝達を説明するための例示図である。
図５ａを参照すれば、ホスト１２０は以前に書込み要請したデータに対する書込み完了メッセージが伝達されたか否かにかかわらず他のデータに対する書込み要請をデータミラーリング制御装置１１０に伝達することができる。
【００５６】
また、データミラーリング制御装置１１０は、ＳＳＤ１及びＳＳＤ２でデータ書込み進行中であるか否かにかかわらずホストから書込み要請されたデータに対する書込み命令をＳＳＤ１及びＳＳＤ２のそれぞれに伝達することができる。
具体的に、ホスト１２０から書込み要請されたデータに対する書込み命令はＳＳＤ１及びＳＳＤ２の命令キューに保存される。また、ＳＳＤ１及びＳＳＤ２のそれぞれは命令キューに保存された書込み命令によってデータ書込みを遂行することができる。
この際、本発明の一実施例によれば、ＳＳＤ１とＳＳＤ２への書込み命令の伝送はそれぞれのＳＳＤの命令キューの長さを考慮して伝送できる。
【００５７】
図示の例において、ＳＳＤ１とＳＳＤ２の命令キューの長さは４であり、データ１〜４に対する書込み命令がＳＳＤ１とＳＳＤ２の命令キューに優先的に伝送される。その後、ＳＳＤ１でデータ１に対する書込み命令が完了した場合、データ５に対する書込み命令がＳＳＤ１の命令キューに伝達され、データ２に対する書込み命令が完了した後、データ６に対する書込み命令がＳＳＤ１の命令キューに伝達される。
同様に、ＳＳＤ２でデータ１に対する書込み命令が完了した場合、データ５に対する書込み命令がＳＳＤ２の命令キューに伝達され、データ２に対する書込み命令が完了した後、データ６に対する書込み命令がＳＳＤ２の命令キューに伝達される。
【００５８】
一方、ホストメモリに保存されたデータ１〜６はホスト１２０から書込み要請が伝達される時点でメモリロック設定され、ＳＳＤ１及びＳＳＤ２で書込みが完了した時点でメモリロックが解除される。
また、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対してＳＳＤ１及びＳＳＤ２の一つで書込みが完了した場合、書込み完了したデータに対する書込み完了メッセージをホスト１２０に伝送することができる。
具体的に、図示の例において、データミラーリング制御装置１１０は、ＳＳＤ１でデータ１〜６のそれぞれに対する書込みが完了した時点でそれぞれのデータに対する書込み完了メッセージをホスト１２０に伝送することができる。
一方、データ１〜６に対するメモリロックはすべてのストレージ装置で書込みが完了した時点、つまりＳＳＤ２で書込みが完了した時点でそれぞれ解除される。
【００５９】
図５ｂを参照すれば、ＳＳＤ２の命令キューにデータ５及び６に対する書込み命令が伝達される前にＳＳＤ１に故障が発生した。
この場合、ホストメモリに保存されたデータ５及び６に対するメモリロックはＳＳＤ２で書込み完了するまで解除されないので、データミラーリング制御装置１１０はメモリロック設定されたデータ５及び６に対する書込み命令をＳＳＤ２に伝達し、ＳＳＤ２でデータ５及び６に対する書込みが遂行されるようにすることができる。
【００６０】
したがって、図３ｃの場合とは違い、ＳＳＤ１に故障が発生しても、データ５及び６はホストメモリにメモリロック設定されているので、メモリロック設定されたデータ５及び６に対する書込み命令をＳＳＤ２の命令キューに伝達することによってデータ損失を防止することができる。
また、二つのＳＳＤの一方で書込みが完了すれば、直ちに書込み完了メッセージをホスト１２０に伝達して次のデータに対する書込みを進行することができるようにすることにより、全てのストレージ装置の書込み完了速度を向上させることができる。
【００６１】
図６ａ及び図６ｂはトリム命令の伝達を説明するための例示図である。
図６ａを参照すれば、ＳＳＤ２にデータ２に対する書込み命令が伝達される前にＳＳＤ１でデータ１〜４に対する書込みが完了した。
この際、データミラーリング制御装置１１０は、ＳＳＤ１で書込み完了したデータ２〜４に対する書込み情報に基づいてＳＳＤ２にトリム命令を伝送することができる。
【００６２】
ＳＳＤのようにフラッシュメモリを基盤とするストレージ装置は、ＨＤＤとは異なり、空いていないページに直ちにデータを記録することができず、既存のデータを消去した後、データを記録しなければならない。具体的に、ＳＳＤでの消去はブロック単位で遂行されるので、空いていないブロックに上書き保存するためには、先に該当のブロックに保存されたデータの中で無効データを除いたデータを他のブロックやＳＳＤ内部のキャッシュに移した後、該当のブロックに保存されたデータを削除しなければならない。
【００６３】
この際、トリム命令によってどんなデータが無効データであるかを明示的に知らせることができるなら、上書き保存のための削除演算の際、他のブロックに書き写さなければならないデータの量を減らすことができる。具体的に、ＳＳＤ１とＳＳＤ２には同一データが保存されるので、ＳＳＤ１で書込み完了したデータ２〜４に対する書込みが上書き（ｏｖｅｒｗｒｉｔｅ）であったとすれば、ＳＳＤ２でデータ２〜４が書込みされるブロックに保存されているデータは無効データ（ｉｎｖａｌｉｄ ｄａｔａ）と見なせる。
【００６４】
例えば、ＳＳＤ１で１，０００番ブロックから１，５００番ブロックまでデータを上書き（ｏｖｅｒｗｒｉｔｅ）したとすれば、まだデータ２〜４に対する書込み命令が実行されなかったＳＳＤ２に保存された１，０００番ブロックから１，５００番ブロックまでのデータは無効データであることを意味する。
したがって、データミラーリング制御装置１１０は、ＳＳＤ２にデータ２〜４に対する書込み命令を伝達する前に、データ２〜４が書込みされるアドレスに保存されているデータは無効データという情報をトリム命令によって明示的に知らせることができる。トリム命令の伝達を受けたＳＳＤ２は、上書きのための削除演算の際、他のブロックに書き写さなければならないデータ量を減らすことができるので、性能向上及び摩耗節減の効果が得られる。
【００６５】
図６ｂを参照すれば、ＳＳＤ２でデータ１に対する書込み命令が完了した時点でＳＳＤ１からＳＳＤ２に書込み命令が伝達されなかったデータ５及び６に対する書込みが完了した。
したがって、データミラーリング制御装置１１０は、ＳＳＤ１で遂行されたデータ５及び６に対する書込み情報に基づいてＳＳＤ２にトリム命令を伝送することができる。
【００６６】
図７ａ〜図７ｃは速いストレージ装置を説明するための例示図である。
図７ａを参照すれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対して書込み完了が一番速いストレージ装置を速いストレージ装置に設定することができる。
具体的に、図７ａで、データ１及び２に対する書込みがＳＳＤ１で先に完了しているので、ＳＳＤ１が速いストレージ装置に設定できる。
一方、データ３及び４に対する書込みはＳＳＤ２で先に完了したので、データミラーリング制御装置１１０は、ＳＳＤ２でデータ３に対する書込みが完了した時点で速いストレージ装置をＳＳＤ２に変更することができる。
【００６７】
図７ｂを参照すれば、データミラーリング制御装置１１０は、速いストレージ装置に設定されたＳＳＤ１に書込み命令を伝達し、ＳＳＤ２には読み取り命令を伝達することができる。
この際、速いストレージ装置は、書込み加速因子、自由ブロックの量、書込み遅延の発生有無などによって設定され、周期的または非周期的に変更できる。
例えば、図示の例において、初期に速いストレージ装置に設定されたＳＳＤ１の書込み加速因子（ＷＡＦ：Ｗｒｉｔｅ Ａｃｃｅｌｅｒａｔｉｏｎ Ｆａｃｔｏｒ）値がＳＳＤ２より高い場合には速いストレージ装置はＳＳＤ２に変更できる。
【００６８】
本発明のさらに他の例として、ＳＳＤ１で書込み遅延が発生する場合またはＳＳＤ１で書込み命令実行によって自由ブロック（ｆｒｅｅ ｂｌｏｃｋ）の量が一定量以下に減少する場合、速いストレージ装置はＳＳＤ２に変更できる。
一方、図示の例において、ＳＳＤ１でデータ２の書込みが完了した後、速いストレージ装置がＳＳＤ２に変更されたので、ＳＳＤ２のみに書込み命令が伝送できる。
この際、データミラーリング制御装置１１０は、メモリロック設定されたデータ１及び２に対する書込み命令をＳＳＤ２に伝送することができる。
また、この場合、データ１及び２に対する書込み命令は、速いストレージ装置が変更された後、ホストから書込み要請されたデータ３及び４に対する書込み命令と交互に伝送できるが、図示の例とは異なり、ＳＳＤ１で書込み完了したデータ１及び２に対する書込み命令を優先的に伝達することもできる。
【００６９】
一方、速いストレージ装置がＳＳＤ２に変更された場合、データミラーリング制御装置１１０は、ＳＳＤ２にデータ１及び２に対する書込み命令を伝達する前に、ＳＳＤ１で書込み完了したデータ１及び２に対する書込み情報に基づいたトリム命令をＳＳＤ２に伝送することができる。具体的に、データ１及び２に対する書込み命令が上書き命令であれば、ＳＳＤ１でデータ１及び２が書込みされたアドレスに保存されていた以前のデータは無効データであることが分かる。よって、データミラーリング制御装置１１０は、トリム命令によってＳＳＤ２でデータ１及び２が書込みされるアドレスに保存されたデータが無効データであることを明示的に知らせることができる。トリム命令を伝達受けたＳＳＤ２はデータ２〜４の上書きのための削除演算の際、他のブロックに書き写さなければならないデータの量を減らすことができるので、性能向上及び摩耗節減の効果が得られる。
【００７０】
一方、速いストレージ装置がＳＳＤ２に変更された場合、データミラーリング制御装置１１０は、ＳＳＤ１にガーベジコレクション命令を伝送し、ＳＳＤ１でガーベジコレクションが実行されるようにすることができる。
例えば、速いストレージ装置がＳＳＤ２に変更された場合、書込み命令はＳＳＤ２に伝送され、ＳＳＤ１には読み取り命令が伝達されるので、ＳＳＤ１では書込み演算が実行されない。よって、ＳＳＤ１が速いストレージ装置に再び変更される前にＳＳＤ１でガーベジコレクションが実行されるようにして、無効データ（ｉｎｖａｌｉｄ ｄａｔａ）が保存されたページを集めて削除することによって予め余裕空間を確保することができる。これにより、ＳＳＤ１が再び速いストレージ装置に変更された場合、ＳＳＤ１の書込み性能を改善させることができる。
【００７１】
一方、図７ｂに示した例において、速いストレージ装置がＳＳＤ２に変更されたにもかかわらず、ＳＳＤ２にデータ１及び２に対する書込みが完了するまではＳＳＤ１に最新のデータが保存される。
したがって、図７ｃに示した例のように、データミラーリング制御装置１１０は、速いストレージ装置をＳＳＤ２に変更する前に、メモリロック設定されたデータ１及び２に対する書込み命令をＳＳＤ２に伝送して、ＳＳＤ２とＳＳＤ１に保存されたデータを一致させることができる。
その後、ＳＳＤ２でデータ１及び２に対する書込みが完了した場合、データミラーリング制御装置１１０は速いストレージ装置をＳＳＤ２に変更することができる。
この場合、図７ｂの場合とは異なり、ストレージ装置にはいつも最新のデータが保存できる。
【００７２】
一方、データミラーリング制御装置１１０は、ＳＳＤ２にデータ１及び２に対する書込み命令を伝達する前に、ＳＳＤ１で書込み完了したデータ１及び２に対する書込み情報に基づいたトリム命令をＳＳＤ２に伝送することができる。
また、速いストレージ装置がＳＳＤ２に変更された場合、データミラーリング制御装置１１０は、ＳＳＤ１にガーベジコレクション命令を伝送し、ＳＳＤ１でガーベジコレクションが実行されるようにすることができる。
【００７３】
一方、図７ｂ及び図７ｃでは速いストレージ装置に書込み命令だけが伝達され、他のストレージ装置に読み取り命令が伝達されているが、必ずしもこれに限定されるものではない。
例えば、ストレージ装置の間に負荷バランシング（ｌｏａｄ ｂａｌａｎｃｉｎｇ）が必要な場合または最近に速いストレージ装置に書込み完了したデータに対する読み取り要請の場合、速いストレージ装置に読み取り命令が伝達できる。
【００７４】
図８はホストに障害が発生した場合、データ復旧を説明するための例示図である。
図８を参照すれば、ホスト１２０が予想しなかった障害によって再起動した場合、データミラーリング制御装置１１０は、速いストレージ装置に保存されたデータに基づいて複数のストレージ装置の間にデータを一致させることができる。
速いストレージ装置には最新のデータが保存されるので、速いストレージ装置に保存されたデータを基準に複数のストレージ装置のデータを一致させることができる。
【００７５】
具体的に、ホスト１２０が再起動した場合、速いストレージ装置に保存されたデータと他のストレージ装置に保存されたデータを比較して一致可否を判断することができる。
この際、どのストレージ装置が速いストレージ装置であるかはそれぞれのストレージ装置に保存された速いストレージ装置指示子７１０によって把握することができる。図示の例において、速いストレージ装置指示子７１０が１に設定されたＳＳＤ１が速いストレージ装置である。
【００７６】
一方、ＳＳＤ１とＳＳＤ２の間に一致しないデータが存在するか否かはアップデートビットマップ７２０によって判断することができる。
具体的に、データミラーリング制御装置１１０は、複数のストレージ装置１３０のすべてのデータ領域をＮ個のチャンク（ｃｈｕｎｋ）に分割し、それぞれのチャンクに対応するアップデートビットによって、データの一致可否を判断することができる。
【００７７】
図示の例において、ＳＳＤ１とＳＳＤ２のデータ領域が８個のチャンクに分割され、それぞれのチャンクに対するアップデートビットマップ７２０が示されている。
この際、アップデートビットマップに含まれたそれぞれのビットはそれぞれのチャンクに対応し、それぞれのチャンクに相応するデータ領域でＳＳＤ１とＳＳＤ２に保存されたデータが一致するか否かを示す。
具体的に、特定のデータに対し、ＳＳＤ１とＳＳＤ２の中で速いストレージ装置であるＳＳＤ１でばかり書込みが完了した場合、該当のデータが書込みされたチャンク７３０、７４０に対するアップデートビットは１に設定できる。
【００７８】
一方、ＳＳＤ１及びＳＳＤ２のいずれでもデータ書込みが完了するとかデータ書込みが実行されないチャンクに対するアップデートビットは０に設定できる。
したがって、この場合、ＳＳＤ１とＳＳＤ２に保存されたデータの全体を比較せず、アップデートビットマップでアップデートビットが１に設定されたチャンクのデータだけ比較すれば良いので、データ復旧の時間を節減することができる。
【００７９】
一方、ホスト障害発生の際、複数のストレージ装置間にデータを一致させるための方法は図８に示した例のようなアップデートビットマップを用いる方法に限定されない。
例えば、ホストメモリに保存されたデータの中で、速いストレージ装置には書込み完了したが遅いストレージ装置には書込み完了しなかったデータはメモリロック設定されているので、遅いストレージ装置で書込み完了するまでは消去または変更されない。したがって、データミラーリング制御装置１１０はホストメモリにメモリロック設定されているデータのリストをロギングして不揮発性メモリまたはストレージ装置の一部領域に保存することができる。その後、ホスト１２０が再起動した場合、データミラーリング制御装置１１０は、リストに含まれたデータに対する書込み命令を遅いストレージ装置に伝送し、遅いストレージ装置に保存されたデータを速いストレージ装置に保存されたデータと一致させることができる。
【００８０】
図９は複数のストレージ装置がＳＳＤ及びＨＤＤを含む場合、データミラーリング制御を説明するための例示図である。
図９を参照すれば、ミラーリングが適用される複数のストレージ装置は一つ以上のＨＤＤ及び一つ以上のＳＳＤを含むことができる。
データミラーリング制御装置１１０は、ＨＤＤを速いストレージ装置に設定し、ＨＤＤに優先的にデータが書込みされるようにし、ついで速いストレージ装置をＳＳＤに変更することにより、ＨＤＤに書込みされたデータと同一のデータがＳＳＤに書込みされるようにすることができる。
【００８１】
一方、データミラーリング制御装置１１０は、ホスト１２０からいずれかの書込み要請されたデータに対する書込み命令を順次に書込み命令に変換してＨＤＤに伝送することができる。
具体的に、図示の例において、１’、２’、３’で表示された書込み要請はデータ１、２、３が保存されたアドレスに対する上書き保存要請である。この際、データミラーリング制御装置１１０はホストから要請されたデータ１’、２’、３’に対する書込み要請に対する書込み命令を順次に書込み命令４、５、６に変換してＨＤＤに伝送することができる。
【００８２】
一般に、ＨＤＤはＳＳＤより余裕空間が大きいため、ＨＤＤとＳＳＤの間にデータミラーリングが適用される場合、ＨＤＤには余裕空間が多く生ずる。また、ＨＤＤは物理的特性上ランダム書込み性能より順次書込み性能に優れるので、ホストからランダム書込み要請されたデータをログ形態に変換して順次に保存することにより、書込み性能を向上させることができる。
【００８３】
一方、データミラーリング制御装置１１０は、速いストレージ装置がＳＳＤに変更された場合、ＨＤＤで遂行された書込み情報に基づいて無効データに対する情報をトリム命令によってＳＳＤに伝送することができる。
図示の例において、データミラーリング制御装置１１０は、ＨＤＤに保存されたデータの中でデータ１、２、３は無効データであるという情報をトリム命令によってＳＳＤに伝送し、ついでデータ１、２、３に対する書込み命令をＳＳＤに伝送することができる。
このような方法によってＨＤＤの書込み性能を高め、ＳＳＤの摩耗を減らすことができる。
【００８４】
図１０は本発明の一実施例による、メモリロック設定過程を示すフローチャートである。
図１０を参照すれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請が受信された場合（９１０）、ホストメモリに保存されたデータの中で書込み要請されたデータに対してメモリロックを設定することができる（９２０）。
その後、データミラーリング制御装置１１０は、メモリロック設定されたデータのそれぞれに対して複数のストレージ装置１３０のいずれでも書込み完了した場合（９３０）、該当のデータに対するメモリロックを解除することができる（９４０）。
言い換えれば、メモリロック設定されたデータは複数のストレージ装置の全てで書込みが完了するまではメモリロックが解除されない。
【００８５】
図１１は本発明の一実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャートである。
図１１を参照すれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対する書込み命令を複数のストレージ装置１３０に伝送することができる（１０１０）。
この際、ホスト１２０の書込み要請及びホスト１２０から書込み要請されたデータに対する書込み命令は、ブロッキング方式またはノンブロッキング方式で複数のストレージ装置１３０のそれぞれに伝送できる。
【００８６】
一方、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対して少なくとも一つのストレージ装置で書込み完了した場合（１０２０）、該当のデータに対する書込み完了メッセージをホスト１２０に伝送することができる（１０３０）。
一方、本発明の一実施例によれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対して少なくとも一つのストレージ装置で書込み完了した場合、書込み完了したストレージ装置での書込み情報に基づいて該当のデータに対する書込み命令が伝送されなかったストレージ装置にトリム命令を伝送することができる（１０４０）。
【００８７】
図１２は他の実施例による書込み命令の伝送及び書込み完了メッセージの伝送過程を示すフローチャートである。
図１２を参照すれば、データミラーリング制御装置１１０はホスト１２０から書込み要請されたデータに対する書込み命令を速いストレージ装置に伝送することができる（１１１０）。
言い換えれば、データミラーリング制御装置１１０は、複数のストレージ装置１３０の中で速いストレージ装置に設定されたストレージ装置にだけ書込み命令を伝送することができる。
【００８８】
一方、本発明の一実施例によれば、複数のストレージ装置１３０が一つ以上のＨＤＤ及び一つ以上のＳＳＤを含む場合、データミラーリング制御装置１１０は、ＨＤＤを速いストレージ装置に設定した後、ホストから要請されたデータに対する書込み命令を順次に書込み命令に変換してＨＤＤに伝送することができる。
一方、データミラーリング制御装置１１０は、複数のストレージ装置１３０の中で少なくとも一つのストレージ装置を速いストレージ装置に設定することができ、周期的または非周期的に速いストレージ装置を変更することができる。
【００８９】
また、本発明の一実施例によれば、データミラーリング制御装置１１０は、複数のストレージ装置１３０の中で速いストレージ装置に設定されなかったストレージ装置には読み取り命令を伝送することができる。
ただ、必ずしもこれに限定されるものではなく、ストレージ装置の間に負荷バランシング（ｌｏａｄ ｂａｌａｎｃｉｎｇ）が必要な場合または最近に速いストレージ装置に書込み完了したデータに対する読み取り要請の場合、速いストレージ装置に読み取り命令が伝送できる。
一方、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータが速いストレージ装置で書込み完了した場合（１１２０）、ホスト１２０に書込み完了メッセージを伝送することができる（１１３０）。
【００９０】
図１３は本発明の一実施例による速いストレージ装置変更過程を示すフローチャートである。
図１３を参照すれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対する書込み命令をミラーリングが適用される複数のストレージ装置１３０に伝送することができる（１２１０）。
この際、本発明の一実施例によれば、書込み要請されたデータに対する書込み完了速度が一番速いストレージ装置を速いストレージ装置に設定することができる。
【００９１】
したがって、複数のストレージ装置１３０の一つのストレージ装置でホスト１２０から書込み要請されたデータに対する書込みが完了した場合（１２２０）、書込み完了したストレージ装置が速いストレージ装置であるか否かを判断することができる（１２３０）。
この際、書込み完了したストレージ装置が速いストレージ装置ではない場合、速いストレージ装置を書込み完了したストレージ装置に変更することができる（１２４０）。
【００９２】
図１４は本発明の他の実施例による速いストレージ装置変更過程を示すフローチャートである。
図１４を参照すれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対する書込み命令を速いストレージ装置に伝送することができる（１３１０）。
その後、データミラーリング制御装置１１０は、速いストレージ装置の変更が必要である否かを周期的または非周期的に判断し（１３２０）、速いストレージ装置を変更することができる（１３３０）。
【００９３】
具体的に、速いストレージ装置の変更が必要であるか否かは、図１２の場合とは異なり、書込み加速因子（ＷＡＦ）、自由ブロックの量、書込み遅延発生の有無などによって周期的または非周期的に判断することができる。
例えば、データミラーリング制御装置１１０は、速いストレージ装置の書込み加速因子（ＷＡＦ：Ｗｒｉｔｅ Ａｃｃｅｌｅｒａｔｉｏｎ Ｆａｃｔｏｒ）値が他のストレージ装置より高い場合には速いストレージ装置を変更することができる。
【００９４】
本発明のさらに他の例として、データミラーリング制御装置１１０は、速いストレージ装置で書込み遅延が発生する場合または速いストレージ装置で書込み命令実行によって自由ブロックの量が一定量以下に減少する場合、速いストレージ装置を変更することができる。
一方、ＳＳＤが速いストレージ装置に変更された場合、データミラーリング制御装置１１０は、変更される前の速いストレージ装置で書込み完了したデータに対する書込み情報に基づいたトリム命令を速いストレージ装置に変更されたＳＳＤに伝送することができる（１３４０）。
また、データミラーリング制御装置１１０は、速いストレージ装置に設定されていたＳＳＤが遅いストレージ装置に変更された場合、該当のＳＳＤにガーベジコレクション命令を伝送することができる（１３５０）。
【００９５】
図１５は本発明のさらに他の実施例による速いストレージ装置変更過程を示すフローチャートである。
図１５を参照すれば、データミラーリング制御装置１１０は、ホスト１２０から書込み要請されたデータに対する書込み命令を速いストレージ装置に伝送することができる（１４１０）。
その後、データミラーリング制御装置１１０は、速いストレージ装置の変更が必要であるか否かを周期的または非周期的に判断することができる（１４２０）。
【００９６】
具体的に、速いストレージ装置の変更が必要であるか否かは書込み加速因子（ＷＡＦ）、自由ブロックの量、書込み遅延の発生有無などによって周期的または非周期的に判断できる。
例えば、データミラーリング制御装置１１０は、速いストレージ装置の書込み加速因子（ＷＡＦ：Ｗｒｉｔｅ Ａｃｃｅｌｅｒａｔｉｏｎ Ｆａｃｔｏｒ）値が他のストレージ装置より高い場合には、速いストレージ装置の変更が必要であると判断することができる。
【００９７】
本発明のさらに他の例として、データミラーリング制御装置１１０は、速いストレージ装置で書込み遅延が発生する場合または速いストレージ装置で書込み命令の実行によって自由ブロックの量が一定量以下に減少する場合、速いストレージ装置の変更が必要であると判断することができる。
その後、データミラーリング制御装置１１０は、メモリロック設定されたデータに対する書込み命令を速いストレージ装置に変更されるストレージ装置に伝送することができる（１４４０）。
【００９８】
この際、本発明の一実施例によれば、データミラーリング制御装置１１０は、速いストレージ装置に変更されるストレージ装置がＳＳＤの場合、メモリロック設定されたデータに対する書込み命令を伝送する前、現在速いストレージ装置で書込み完了したデータに対する書込み情報に基づいて速いストレージ装置に変更されるＳＳＤにトリム命令を伝送することができる（１４３０）。
【００９９】
一方、データミラーリング制御装置１１０は、速いストレージ装置に変更されるストレージ装置でメモリロック設定されたデータに対する書込みが完了した場合（１４５０）、該当のストレージ装置に速いストレージ装置を変更することができる（１４６０）。
この際、本発明の一実施例によれば、データミラーリング制御装置１１０は、速いストレージ装置に設定されたＳＳＤが遅いストレージ装置に変更された場合、該当のＳＳＤにガーベジコレクション命令を伝送することができる（１４７０）。
【０１００】
図１６は本発明の一実施例による、速いストレージ装置に故障が発生した場合、データ復旧過程を示すフローチャートである。
図１６を参照すれば、データミラーリング制御装置１１０は、複数のストレージ装置１３０の一つに故障が発生した場合（１５１０）、故障したストレージ装置が速いストレージ装置であるか否かを判断することができる（１５２０）。
故障したストレージ装置が速いストレージ装置の場合、データミラーリング制御装置１１０は、メモリロック設定されたデータに対する書込み命令を故障しなかった他のストレージ装置に伝送することができる（１５３０）。
【０１０１】
ホストメモリでデータロックが解除されなかったというのは、少なくとも一つ以上のストレージ装置で該当のデータに対する書込みが完了しなかったことを意味する。
したがって、データミラーリング制御装置１１０は、メモリロック設定されたデータに対する書込み命令が伝達されなかったストレージ装置に該当のデータに対する書込み命令を伝達することにより、速いストレージ装置の故障によるデータ損失を防止することができる。
一方、特定のデータがメモリロック設定されたというのは既に速いストレージ装置に書込み命令が伝達されたことを意味するので、故障したストレージ装置が速いストレージ装置ではない場合には別途のデータ復旧の手続きは要求されない。
【０１０２】
図１７は本発明の一実施例によるホストに障害が発生した場合、データ復旧過程を示すフローチャートである。
図１７を参照すれば、ホスト１２０が予想しなかった障害発生によって再起動した場合（１６１０）、データミラーリング制御装置１１０は、複数のストレージ装置１３０に保存されたデータが一致するか否かを判断することができる（１６２０）。
この際、本発明の一実施例によれば、データミラーリング制御装置１１０は、複数のストレージ装置１３０の全体データ領域を複数の領域に分割し、分割された領域のそれぞれに対応するアップデートビットによってデータの一致可否を判断することができる。
【０１０３】
本発明のさらに他の実施例によれば、データミラーリング制御装置１１０は、ホストメモリにメモリロック設定されているデータに対するリストをロギングして非揮発性メモリまたは速いストレージ装置の一部領域に保存し、ホストが再起動した場合、該当のリストを参照してデータの一致可否を判断することができる。
一方、データミラーリング制御装置１１０は、複数のストレージ装置１３０に保存されたデータが一致しない場合（１６３０）、速いストレージ装置に保存されたデータに基づいて他のストレージ装置に上書き命令を伝送することができる（１６４０）。
【０１０４】
具体的に、速いストレージ装置には最新のデータが保存されるので、データミラーリング制御装置１１０は、速いストレージ装置と他のストレージ装置に保存されたデータが一致しない領域が存在する場合、速いストレージ装置に保存されたデータをデータが一致しないストレージ装置で上書き保存することによってデータを一致させることができる。
【０１０５】
なお、これらの実施例はコンピュータが読める記録媒体にコンピュータが読めるコードで具現することが可能である。コンピュータが読める記録媒体は、コンピュータ装置によって読まれるデータが保存されるすべての種類の記録装置を含む。コンピュータが読める記録媒体の例としては、ＲＯＭ、ＲＡＭ、ＣＤ−ＲＯＭ、磁気テープ、フロッピー（登録商標）ディスク、光データ記憶装置などを含む。
また、これらの実施例を具現するための機能的な（ｆｕｎｃｔｉｏｎａｌ）プログラム、コード及びコードセグメントは該当の技術分野のプログラマによって容易に推論可能である。
【符号の説明】
【０１０６】
１１０：ミラーリング制御装置
１１１：命令分配部
１１２：メモリロック設定部
１１３：速いストレージ装置設定部
１１４：トリム命令伝送部
１１５：ガーベジコレクション命令伝送部
１２０：ホスト
１３０：ストレージ装置
【図１】
2015069651.tif 000003
【図２】
2015069651.tif 000004
【図３ａ】
2015069651.tif 000005
【図３ｂ】
2015069651.tif 000006
【図３ｃ】
2015069651.tif 000007
【図４ａ】
2015069651.tif 000008
【図４ｂ】
2015069651.tif 000009
【図５ａ】
2015069651.tif 000010
【図５ｂ】
2015069651.tif 000011
【図６ａ】
2015069651.tif 000012
【図６ｂ】
2015069651.tif 000013
【図７ａ】
2015069651.tif 000014
【図７ｂ】
2015069651.tif 000015
【図７ｃ】
2015069651.tif 000016
【図８】
2015069651.tif 000017
【図９】
2015069651.tif 000018
【図１０】
2015069651.tif 000019
【図１１】
2015069651.tif 000020
【図１２】
2015069651.tif 000021
【図１３】
2015069651.tif 000022
【図１４】
2015069651.tif 000023
【図１５】
2015069651.tif 000024
【図１６】
2015069651.tif 000025
【図１７】
2015069651.tif 000026