(57)【要約】【課題】ストレージシステムにおいて、システム性能及び資源の利用効率を向上させること。【解決手段】ストレージノードは、複数のデータセットが格納されたデータ記憶装置を備えるとともに、前記複数のデータセットのそれぞれに対応するデータ管理部を有するデータ管理装置を備え、前記データ管理部は、対応するデータセットに含まれるデータを検索するデータ配置管理機能、及び、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御機能を、複数のデータ管理方式のいずれかに基づいて実現するデータ管理方式実行部と、前記データ管理方式実行部におけるデータ管理方式を、前記複数のデータ管理方式のうちの第１のデータ管理方式から第２のデータ管理方式に変更する方式変更部をさらに備えている。【選択図】図３
2011053932.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータセットが格納されたデータ記憶装置を備えるとともに、
前記複数のデータセットのそれぞれに対応するデータ管理部を有するデータ管理装置を備え、
前記データ管理部は、対応するデータセットに含まれるデータを検索するデータ配置管理機能、及び、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御機能を、複数のデータ管理方式のいずれかに基づいて実現するデータ管理方式実行部と、
前記データ管理方式実行部におけるデータ管理方式を、前記複数のデータ管理方式のうちの第１のデータ管理方式から第２のデータ管理方式に変更する方式変更部をさらに備えていることを特徴とするストレージノード。
【請求項２】
前記複数のデータセットは、それぞれ、データ識別子により特定されるデータを含み、
前記データ管理装置は、データ利用プロセスからデータへのアクセスを受けた場合に前記複数のデータセットのうちの該データが所属するデータセットを特定するデータセット識別子を返すデータセット識別部をさらに備え、
前記データ管理部は、データと該データが格納されたデータ記憶装置との間の対応を示すデータ配置情報及び前記データ識別子を参照して該データが格納されたデータ記憶装置を検索することで、前記データ配置管理機能を実現することを特徴とする、請求項１に記載のストレージノード。
【請求項３】
前記データ管理部は、格納されたデータに対する排他制御情報を参照して該データに対するデータ利用プロセスによるアクセスを一時的に停止することで、前記データ排他制御機能を実現することを特徴とする、請求項１又は２に記載のストレージノード。
【請求項４】
前記データ管理部は、データ管理方式情報からデータ管理方式を表すデータ管理方式識別子を生成する方式選択部をさらに備え、
前記データ管理方式実行部は、前記複数のデータ管理方式のうちの前記データ管理方式識別子によって特定されるデータ管理方式に基づいて、前記データ配置管理機能と前記データ排他制御機能を実現することを特徴とする、請求項１乃至３のいずれか１項に記載のストレージノード。
【請求項５】
ネットワークを介して互いに接続された、請求項１乃至４のいずれか１項に記載のストレージノードを複数備えていることを特徴とするストレージシステム。
【請求項６】
前記複数のデータ管理方式は、少なくとも、複数のストレージノードの分散データ管理機能の間でネットワークを介して情報をやり取りすることによって前記データ配置管理機能と前記データ排他制御機能を実現する分散型のデータ管理方式と、
前記データ配置管理機能又は前記データ排他制御機能を実現することなく、これらの機能に対する要求を他のストレージノードに委譲することで、少なくとも１つのストレージノードがスタブ化されている集中型のデータ管理方式を含むことを特徴とする、請求項５に記載のストレージシステム。
【請求項７】
前記方式変更部は、データ管理部が前記分散型のデータ管理方式で動作する少なくとも１つのストレージノードにおけるデータ配置情報と排他制御情報を他のストレージノードのデータ管理部に送信し、送信終了後、データ配置管理機能を他のストレージノードに委譲することで該データ管理部をスタブ化する集中化変更部と、
前記集中型のデータ管理方式で動作するデータ管理部のうち、データ配置管理機能又はデータ排他制御機能を実現しているデータ管理部の保持するデータ配置情報又は排他制御情報の一部を、スタブ化された他のデータ管理部に送信し、送信終了後、当該他のデータ管理部にデータ配置管理機能又はデータ排他制御機能を実現させる分散化変更部をさらに備えていることを特徴とする、請求項５に記載のストレージシステム。
【請求項８】
前記方式変更部は、特定時刻における送信元ストレージノードの前記データ配置情報と前記排他制御情報の値を静止点情報として生成する静止点情報生成部と、
静止点情報を他のストレージノードに送信する静止点情報送信部と、
他のストレージノードから送信された静止点情報を受信して保持する静止点情報受信部と、
ユーザ計算機からのアクセスと静止点情報と現時刻における前記値を比較し、静止点情報と現時刻における前記値との差を管理差分情報として生成して保持する管理差分情報生成保持部と、
管理差分情報を他のストレージノードに送信する管理差分情報送信部と、
他のストレージノードから送信された管理差分情報を受信する管理差分情報受信部と、
第１の時刻における静止点情報と該第１の時刻から第２の時刻までの管理差分情報に基づいて、該第２の時刻におけるデータ配置情報と排他制御情報を新たな静止点情報として復元する管理差分情報適用部と、
静止点情報生成部により静止点情報を生成し、静止点情報の値を送信先ストレージノードに送信し、送信中のデータ配置情報と排他制御情報に対する変更を第１の管理差分情報として送信元ストレージノードにおける管理差分情報生成保持部に保持し、静止点情報の値を送信終了後に送信元ストレージにおける管理差分情報生成保持部に管理差分情報が存在する場合には、管理差分情報を送信先ストレージノードの管理差分情報受信部に送信し、送信先のストレージノードにおける管理差分情報適用部により、受信した管理差分情報と受信した静止点情報に基づいて送信時点における管理差分情報を送信先ストレージに再現する動作を、管理差分情報のサイズが所定のサイズ以下となり、かつ、管理差分情報の送信回数が所定の回数以上となるまで繰り返させた後、前記データ管理方式実行部におけるデータ管理方式を変更し、残りの管理差分情報を送信する方式停止切替再開部をさらに備えていることを特徴とする、請求項５乃至７のいずれか１項に記載のストレージシステム。
【請求項９】
前記集中化変更部は、前記方式停止切替再開部においてデータ配置管理機能をスタブ化することを特徴とする、請求項８に記載のストレージシステム。
【請求項１０】
前記データセット識別部は、前記複数のデータセットのそれぞれと一意に対応付けられたアクセス待ち受け部をさらに有し、
前記データ利用プロセスは、利用するデータが所属するデータセットに対応するアクセス待ち受け部にアクセスし、
前記データセット識別部は、アクセスを受けたアクセス待ち受け部に基づいてデータセットを特定することを特徴とする、請求項５乃至９のいずれか１項に記載のストレージシステム。
【請求項１１】
前記データセット識別部は、前記データ利用プロセスからアクセスとともにデータセット識別情報を受け取ることによって、データセットを特定することを特徴とする、請求項５乃至１０のいずれか１項に記載のストレージシステム。
【請求項１２】
前記データセット識別部は、データ識別子からデータセットを特定することができるデータ・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスに含まれるデータ識別子と該データ・データセット対応情報とに基づいてデータセットを特定することを特徴とする、請求項５乃至１１のいずれか１項に記載のストレージシステム。
【請求項１３】
前記データセット識別部は、データ利用プロセス又はデータ利用プロセスが動作するユーザ計算機を特定するユーザ識別情報からデータセットを特定することができるクライアント・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスを受けることで得られるユーザ識別情報と該クライアント・データセット対応情報とに基づいてデータセットを特定することを特徴とする、請求項５乃至１２のいずれか１項に記載のストレージシステム。
【請求項１４】
前記複数のストレージノードは、高速低容量のデータ記憶装置を有する高速低容量ストレージノードと、低速大容量のデータ記憶装置を有する高速低容量ストレージノードを含み、
前記高速低容量ストレージに分散格納されたデータセットを前記分散型のデータ管理方式とし、該データセットを低速大容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記集中型のデータ管理方式とする管理方式変更部をさらに備えていることを特徴とする、請求項５乃至１３のいずれか１項に記載のストレージシステム。
【請求項１５】
前記管理方式変更部は、前記低速大容量ストレージに分散格納されたデータセットについて前記集中型のデータ管理方式とし、該データセットを前記高速低容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記分散型のデータ管理方式とすることを特徴とする、請求項１４に記載のストレージシステム。
【請求項１６】
前記ストレージノードは、前記複数のデータ管理方式のうちの所定のデータ管理方式を低消費電力で実行する特定データ管理方式実行部と、
前記所定の管理方式以外のデータ管理方式を実行する一般データ管理方式実行部と、
自ノードにおいて前記所定の管理方式以外のデータ管理方式が動作していない場合には、前記一般データ管理方式実行部を低消費電力状態に移行させる電力制御部をさらに備えていることを特徴とする、請求項５乃至１５のいずれか１項に記載のストレージシステム。
【請求項１７】
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するデータ管理部が、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理工程と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御工程と、
前記データ配置管理工程と前記データ排他制御工程におけるデータ管理方式を、前記複数のデータ管理方式のうちの第１のデータ管理方式から第２のデータ管理方式に変更する工程を含むことを特徴とするデータ記憶方法。
【請求項１８】
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するＣＰＵに対して、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理処理と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御処理と、
前記データ配置管理処理と前記データ排他制御処理におけるデータ管理方式を、前記複数のデータ管理方式のうちの第１のデータ管理方式から第２のデータ管理方式に変更する処理を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、データ記憶方法及びプログラムに関し、特に、複数のストレージノードにデータを分散させて格納するストレージシステム、データ記憶方法及びプログラムに関する。
【背景技術】
【０００２】
データを記憶するストレージ装置を備えた計算機（ストレージノード）をネットワークに複数接続した、大容量のストレージシステムが知られている。
【０００３】
ストレージシステムでは、分散データ配置管理により、データをいずれのストレージノードに格納するか、及び、ユーザ計算機によるデータの読み出し及び書き込みアクセスをいずれのストレージノードに振り分けるかを管理している。データを格納したいユーザ計算機から送信されたデータは、ストレージシステム中の分散データ配置管理機能により、複数のデータ塊に分割されて複数のストレージノードに格納される。
【０００４】
同じネットワークに接続された、データを利用するユーザ計算機は、分散データ配置管理機能を利用し、所望のデータをあらわす識別子から当該データが配置されたストレージノードを特定し、当該ストレージノードからデータを取得する。
【０００５】
非特許文献２に記載された分散データ配置管理機能によると、固定長のデータ塊（チャンク）をストレージノード（ＧＦＳ（Ｇｏｏｇｌｅ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）チャンクサーバ）に格納する際、分散データ配置管理装置（ＧＦＳマスタ）に対し、識別子としてファイル名とチャンクインデックスを送信し、対象となるストレージノードを表すチャンク位置情報を受信する。
【０００６】
分散データ配置管理機能の実現方法として、ユーザ計算機から利用可能な場所に集中制御された配置管理機能を設けるアウトオブバンド方式と、各ユーザ計算機に配置管理機能の一部を委譲し、ユーザ計算機が直接記憶部にアクセスする分散テーブル方式が知られている。
【０００７】
非特許文献２に記載されたアウトオブバウンド方式によると、固定長のデータ塊（チャンク）をストレージノード（ＧＦＳチャンクサーバ）に格納する際、ユーザ計算機（ＧＦＳクライアント）がネットワークに存在する分散データ配置管理装置（ＧＦＳマスタ）にアクセスして格納ストレージノードを決定する。
【０００８】
非特許文献３に記載された分散テーブル方式によると、ユーザ計算機とストレージノードを兼ねるノードに任意長のデータ塊（バリュー）を格納する際、ノード内で、所定のアルゴリズム（Ｃｈｏｒｄ）を用いて識別子（キー）からストレージノードが決定される。
【０００９】
また、特許文献１に、データを分散させるだけでなく、データの冗長化により耐故障性を確保する方法が記載されている。耐故障性とは、所定の台数の記憶装置が故障してデータが読み出し不能となった場合においても、システム全体としてはユーザにデータを提供することができる状態を維持することをいう。非特許文献１には、ブロックストレージのレベルでデータの分散及び冗長化を行う複数の方法（ＲＡＩＤ）が記載されている。また、非特許文献２には、データ格納時に分散データ配置管理装置（ＧＦＳマスタ）とストレージノード（ＧＦＳチャンクサーバ）がお互いに通信し、複数のストレージノードに固定長のデータ塊（チャンク）の複製を配置する冗長化方式が記載されている。
【００１０】
ストレージシステムを構成するストレージノードの性能は均一でない場合がある。システムを構成するのにかかる費用を削減するために、処理能力、記憶容量、データ転送速度の異なる複数のストレージノードからシステムが構成される場合がある。以下、このようなシステム構成を「ヘテロ構成」という。
【００１１】
ヘテロ構成に基づくシステムにおいては、少数の高性能なストレージノードを最大限に活用するため、時間とともに変化するデータの利用頻度に応じたデータ再配置が行われる。高い頻度で利用されるデータを高性能なノードに配置することによって、効率よくシステム資源を効率よく利用することができる。
【００１２】
また、ユーザ計算機からデータへのアクセスは、ユーザの求める性能とトランザクション性を実現するために、排他制御される。非特許文献５には、トランザクション性のうちの分離性に関して、次数又は分離性レベルという概念を導入し、次数を指定することでお互いの影響を受けることなく複数の処理の結果を求める排他制御方法が記載されている。
【００１３】
ここで、排他制御方式には、分散型の排他制御方式と集中型の排他制御方式がある。
【００１４】
分散型の排他制御方式として、分散データ配置管理機能が分散木構造で構成されている場合には、特許文献２に記載の方法によると、ユーザ計算機の複数のデータ追加アクセスによってデータ配置管理機能が損なわれることを防ぐことができる。
【００１５】
非特許文献４に記載された分散型の排他制御方式によると、各データの一貫性は、これを格納しているストレージノードによって担保され、バージョニング等により求められる単一データアップデートを実現することができる。また、非特許文献６に記載された方法によると、複数のノードが関与して分散ロックサービスを提供することができる。
【００１６】
非特許文献７に記載された集中型の排他制御方式によると、キャッシュアンドロック・サービスと呼ぶシステム内で単一の排他制御機能が実現される。非特許文献７において、集中ロック管理の利点として、ロックマネージャの２重化構成が可能であること、デッドロック処理の効率がよいことが指摘されている。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開平１１−０８５６０４号公報
【特許文献２】特開２００８−０４６７００号公報
【非特許文献】
【００１８】
【非特許文献１】David A.Patterson, Garth Gibson, and Randy H.Katz, “A case for redundant arrays of inexpensive disks (RAID),” ACM SIGMOD Record , Vol. 17 , No.3, pp. 109 - 116
【非特許文献２】Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung, “The Google File System,” SOSP 2003.
【非特許文献３】Frank Dabek, Emma Brunskill, M. Frans Kaashoek, David Karger, Robert Morris, Ion Stoica, and Hari Balakrishnan, “Building Peer-to-Peer Systems With Chord, a Distributed Lookup Service,” Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOS-VIII), May 2001.
【非特許文献４】Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels, “Dynamo: Amazon’s Highly Available Key-value Store,” in the Proceedings of the 21st ACM Symposium on Operating Systems Principles, Stevenson, WA, October 2007.
【非特許文献５】ジム・グレイ、アンドレアス・ロイター、「トランザクション処理  概念と技法（上／下）」、日経ＢＰ社、２００１．
【非特許文献６】Mike Burrows, “The Chubby Lock Service for Loosely-Coupled Distributed Systems,” OSDI’06: Seventh Symposium on Operating System Design and Implementation,Seattle, WA, November, 2006.
【非特許文献７】中山陽太郎、「ＰｏｓｔｇｒｅＳＱＬによる共有ディスク・クラスタＰＧ−ＣＡＬＳの設計と実装」、UNISYS TECHNOLOGY REVIEW、日本ユニシス、No.94、NOV. 2007
【非特許文献８】Leslie Lamport, “The Part-Time Parliament,” ACM Transactions on Computer Systems, Vol. 16, No.2, 133-169, May 1998.
【発明の概要】
【発明が解決しようとする課題】
【００１９】
ストレージシステムは、複数のデータ利用プロセスのそれぞれによってアクセスされるデータを一括して格納する。ここで、各データ利用プロセスによってアクセスされるデータの集合を「データセット」という。すなわち、ストレージシステムは、複数のデータセットを格納する。
【００２０】
分散型の排他制御方式は、スループットが高いが、分散された機能間のやり取りが大きく、レイテンシが長くなる。したがって、少量のアクセスに対して効率が悪い。一方、集中型の排他制御方式は、少量のアクセスに対しては、高速に処理できるが、大量のアクセスに対しては排他制御機能がボトルネックになり、システム全体の性能が低下する。特に、多数の用途やアクセス量の異なるデータセットを単一のストレージシステムに格納する際、システム全体として同一の排他制御方式を適用すると、用途に合わない排他制御方式を導入することとなる。
【００２１】
また、分散型のデータ配置管理は、スループットが高い。また、システム中の多くの計算機にデータ配置管理機能の一部を設けることで、データ配置管理機能をシステム内から探すことが容易となり、データ配置管理機能を提供する計算機を変更することも容易となる。しかし、分散型のデータ配置管理によると、集中型と比較してより多くの計算機の資源が必要とされる。
【００２２】
一方、集中型のデータ配置管理によると、データ配置管理に利用する資源を分散型と比較して少数の計算機に収めることができる。しかし、集中型のデータ配置管理によると、アクセスごとのレイテンシが大きく、ボトルネックになるため、スループットも低い。また、システム内に存在する単一のデータ配置管理機能を探さなくてはならず、データ配置管理機能が別の計算機に移動した場合には、ユーザ計算機はデータ配置管理機能を見出すことができず、システムの利用が不可能となる。
【００２３】
また、分散型の排他制御方式又はデータ配置管理方式によると、格納されているいずれのデータセットに対するアクセスも少ない場合であっても、多くの計算機を稼動させておく必要がある。したがって、分散型によると、集中型と比較して、同一のアクセス件数を処理した場合における消費電力が大きくなる。
【００２４】
以上のことから、ストレージシステムは、データセットごとに時間的に変化する利用傾向に応じた排他制御方式を提供できず、性能が低いという問題がある。また、ストレージシステムは、データセットごとに時間的に変化する利用傾向に応じたデータ配置管理方式を提供できず、資源利用の効率が悪いという問題もある。さらに、ストレージシステムは、データセットごとに時間的に変化する利用傾向に応じた計算機電力使用制御ができず、消費電力が大きいという問題もある。
【００２５】
そこで、ストレージシステムにおいて、システム性能、資源の利用効率を向上させることが課題となる。本発明の目的は、かかる課題を解決するストレージシステムを提供することにある。
【課題を解決するための手段】
【００２６】
本発明の第１の視点に係るストレージノードは、
複数のデータセットが格納されたデータ記憶装置を備えるとともに、
前記複数のデータセットのそれぞれに対応するデータ管理部を有するデータ管理装置を備え、
前記データ管理部は、対応するデータセットに含まれるデータを検索するデータ配置管理機能、及び、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御機能を、複数のデータ管理方式のいずれかに基づいて実現するデータ管理方式実行部と、
前記データ管理方式実行部におけるデータ管理方式を、前記複数のデータ管理方式のうちの第１のデータ管理方式から第２のデータ管理方式に変更する方式変更部をさらに備えている。
【００２７】
本発明の第２の視点に係るストレージシステムは、ネットワークを介して互いに接続された上記第１の視点に係るストレージノードを複数備えている。
【００２８】
本発明の第３の視点に係るデータ記憶方法は
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するデータ管理部が、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理工程と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御工程と、
前記データ配置管理工程と前記データ排他制御工程におけるデータ管理方式を、前記複数のデータ管理方式のうちの第１のデータ管理方式から第２のデータ管理方式に変更する工程を含む。
【００２９】
本発明の第４の視点に係るプログラムは、
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するＣＰＵに対して、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理処理と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御処理と、
前記データ配置管理処理と前記データ排他制御処理におけるデータ管理方式を、前記複数のデータ管理方式のうちの第１のデータ管理方式から第２のデータ管理方式に変更する処理を実行させる。
【発明の効果】
【００３０】
本発明に係るストレージシステム、データ記憶方法及びプログラムによると、ストレージシステムにおける、システム性能及び資源の利用効率を向上させることができる。
【図面の簡単な説明】
【００３１】
【図１】第１の実施形態に係るストレージシステムの構成を示すブロック図である。
【図２】本発明の第１の実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るストレージシステムにおけるストレージノード内のデータ管理装置の構成を表すブロック図である。
【図４】本発明の第１の実施形態に係るストレージシステムにおける分散データ配置管理機能の一例を説明するための図である。
【図５】本発明の第１の実施形態に係るストレージシステムにおける方式変更部の構成を示すブロック図である。
【図６】本発明の第１の実施形態に係るストレージシステムにおける方式変更部の動作を示すシーケンス図である。
【図７】本発明の第２の実施形態に係るストレージシステムにおける方式変更部の構成を示すブロック図である。
【図８】本発明の第３の実施形態に係るストレージシステムの構成を示すブロック図である。
【図９】本発明の第４の実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。
【発明を実施するための形態】
【００３２】
第１の展開形態のストレージノードは、上記第１の視点に係るストレージノードであることが好ましい。
【００３３】
第２の展開形態のストレージノードは、
前記複数のデータセットが、それぞれ、データ識別子により特定されるデータを含み、
前記データ管理装置が、データ利用プロセスからデータへのアクセスを受けた場合に前記複数のデータセットのうちの該データが所属するデータセットを特定するデータセット識別子を返すデータセット識別部をさらに備え、
前記データ管理部が、データと該データが格納されたデータ記憶装置との間の対応を示すデータ配置情報及び前記データ識別子を参照して該データが格納されたデータ記憶装置を検索することで、前記データ配置管理機能を実現することが好ましい。
【００３４】
第３の展開形態のストレージノードは、前記データ管理部が、格納されたデータに対する排他制御情報を参照して該データに対するデータ利用プロセスによるアクセスを一時的に停止することで、前記データ排他制御機能を実現することが好ましい。
【００３５】
第４の展開形態のストレージノードは、
前記データ管理部が、データ管理方式情報からデータ管理方式を表すデータ管理方式識別子を生成する方式選択部をさらに備え、
前記データ管理方式実行部が、前記複数のデータ管理方式のうちの前記データ管理方式識別子によって特定されるデータ管理方式に基づいて、前記データ配置管理機能と前記データ排他制御機能を実現することが好ましい。
【００３６】
第５の展開形態のストレージシステムは、ネットワークを介して互いに接続された、上記のストレージノードを複数備えていることが好ましい。
【００３７】
第６の展開形態のストレージシステムは、
前記複数のデータ管理方式が、少なくとも、複数のストレージノードの分散データ管理機能の間でネットワークを介して情報をやり取りすることによって前記データ配置管理機能と前記データ排他制御機能を実現する分散型のデータ管理方式と、
前記データ配置管理機能又は前記データ排他制御機能を実現することなく、これらの機能に対する要求を他のストレージノードに委譲することで、少なくとも１つのストレージノードがスタブ化されている集中型のデータ管理方式と、を含むことが好ましい。
【００３８】
第７の展開形態のストレージシステムは、
前記方式変更部が、データ管理部が前記分散型のデータ管理方式で動作する少なくとも１つのストレージノードにおけるデータ配置情報と排他制御情報を他のストレージノードのデータ管理部に送信し、送信終了後、データ配置管理機能を他のストレージノードに委譲することで該データ管理部をスタブ化する集中化変更部と、
前記集中型のデータ管理方式で動作するデータ管理部のうち、データ配置管理機能又はデータ排他制御機能を実現しているデータ管理部の保持するデータ配置情報又は排他制御情報の一部を、スタブ化された他のデータ管理部に送信し、送信終了後、当該他のデータ管理部にデータ配置管理機能又はデータ排他制御機能を実現させる分散化変更部とをさらに備えていることが好ましい。
【００３９】
第８の展開形態のストレージシステムは、
前記方式変更部が、特定時刻における送信元ストレージノードの前記データ配置情報と前記排他制御情報の値を静止点情報として生成する静止点情報生成部と、
静止点情報を他のストレージノードに送信する静止点情報送信部と、
他のストレージノードから送信された静止点情報を受信して保持する静止点情報受信部と、
ユーザ計算機からのアクセスと静止点情報と現時刻における前記値を比較し、静止点情報と現時刻における前記値との差を管理差分情報として生成して保持する管理差分情報生成保持部と、
管理差分情報を他のストレージノードに送信する管理差分情報送信部と、
他のストレージノードから送信された管理差分情報を受信する管理差分情報受信部と、
第１の時刻における静止点情報と該第１の時刻から第２の時刻までの管理差分情報に基づいて、該第２の時刻におけるデータ配置情報と排他制御情報を新たな静止点情報として復元する管理差分情報適用部と、
静止点情報生成部により静止点情報を生成し、静止点情報の値を送信先ストレージノードに送信し、送信中のデータ配置情報と排他制御情報に対する変更を第１の管理差分情報として送信元ストレージノードにおける管理差分情報生成保持部に保持し、静止点情報の値を送信終了後に送信元ストレージにおける管理差分情報生成保持部に管理差分情報が存在する場合には、管理差分情報を送信先ストレージノードの管理差分情報受信部に送信し、送信先のストレージノードにおける管理差分情報適用部により、受信した管理差分情報と受信した静止点情報に基づいて送信時点における管理差分情報を送信先ストレージに再現する動作を、管理差分情報のサイズが所定のサイズ以下となり、かつ、管理差分情報の送信回数が所定の回数以上となるまで繰り返させた後、前記データ管理方式実行部におけるデータ管理方式を変更し、残りの管理差分情報を送信する方式停止切替再開部とをさらに備えていることが好ましい。
【００４０】
第９の展開形態のストレージシステムは、前記集中化変更部が、前記方式停止切替再開部においてデータ配置管理機能をスタブ化することが好ましい。
【００４１】
第１０の展開形態のストレージシステムは、
前記データセット識別部が、前記複数のデータセットのそれぞれと一意に対応付けられたアクセス待ち受け部をさらに有し、
前記データ利用プロセスが、利用するデータが所属するデータセットに対応するアクセス待ち受け部にアクセスし、
前記データセット識別部が、アクセスを受けたアクセス待ち受け部に基づいてデータセットを特定するようにしてもよい。
【００４２】
第１１の展開形態のストレージシステムは、前記データセット識別部が、前記データ利用プロセスからアクセスとともにデータセット識別情報を受け取ることによって、データセットを特定するようにしてもよい。
【００４３】
第１２の展開形態のストレージシステムは、前記データセット識別部が、データ識別子からデータセットを特定することができるデータ・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスに含まれるデータ識別子と該データ・データセット対応情報とに基づいてデータセットを特定するようにしてもよい。
【００４４】
第１３の展開形態のストレージシステムは、前記データセット識別部が、データ利用プロセス又はデータ利用プロセスが動作するユーザ計算機を特定するユーザ識別情報からデータセットを特定することができるクライアント・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスを受けることで得られるユーザ識別情報と該クライアント・データセット対応情報とに基づいてデータセットを特定するようにしてもよい。
【００４５】
第１４の展開形態のストレージシステムは、
前記複数のストレージノードが、高速低容量のデータ記憶装置を有する高速低容量ストレージノードと、低速大容量のデータ記憶装置を有する高速低容量ストレージノードを含み、
前記高速低容量ストレージに分散格納されたデータセットを前記分散型のデータ管理方式とし、該データセットを低速大容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記集中型のデータ管理方式とする管理方式変更部をさらに備えていることが好ましい。
【００４６】
第１５の展開形態のストレージシステムは、前記管理方式変更部が、前記低速大容量ストレージに分散格納されたデータセットについて前記集中型のデータ管理方式とし、該データセットを前記高速低容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記分散型のデータ管理方式とすることが好ましい。
【００４７】
第１６の展開形態のストレージシステムは、
前記ストレージノードが、前記複数のデータ管理方式のうちの所定のデータ管理方式を低消費電力で実行する特定データ管理方式実行部と、
前記所定の管理方式以外のデータ管理方式を実行する一般データ管理方式実行部と、
自ノードにおいて前記所定の管理方式以外のデータ管理方式が動作していない場合には、前記一般データ管理方式実行部を低消費電力状態に移行させる電力制御部と、をさらに備えていることが好ましい。
【００４８】
第１７の展開形態のデータ記憶方法は、上記第３の視点に係るデータ記憶方法であることが好ましい。
【００４９】
第１８の展開形態のプログラムは、上記第４の視点に係るプログラムであることが好ましい。
【００５０】
（第１の実施形態）
本発明の第１の実施形態に係るストレージシステムについて、図面を参照して説明する。図１は、本実施形態に係るストレージシステムの構成を示すブロック図である。図１を参照すると、ストレージシステムは、複数のストレージノード７０ａ〜７０ｃを含む。
【００５１】
各ストレージノード７０ａ〜７０ｃは、それぞれ、データ管理装置１０ａ〜１０ｃとデータ記憶装置６０ａ〜６０ｃを備えている。図１には、ストレージシステムとネットワーク８０を介して接続されたユーザ計算機９０も併せて示されている。ユーザ計算機９０のデータ利用プロセス９１は、ストレージシステムに対して、データ識別子とデータ操作を表す識別子を含むアクセスを行うことによって、データの格納、格納されたデータの取得、格納されたデータの更新、及び、格納されたデータの消去を行う。
【００５２】
図２は、本実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。図１のストレージノード７０ａ〜７０ｃは、それぞれ、図２のストレージノード７０に相当する。図２を参照すると、ストレージノード７０は、ＣＰＵ７１、メモリ７２、Ｉ／Ｏコントローラ７３、データ記憶装置６０、通信コントローラ７４を有する。ストレージノード７０は、一例として、計算機によって構成される。
【００５３】
ストレージノード７０は、通信コントローラ７４を介して、ネットワーク８０に対するデータの送受信を行うとともに、Ｉ／Ｏコントローラ７３を介して、データ記憶装置６０に対するデータの格納と読み出しを行う。かかる制御は、メモリ７２に格納されたソフトウェアによって、ＣＰＵ７１を駆動して行うようにしてもよい。
【００５４】
データ記憶装置６０ａ〜６０ｃは、例えば、ハードディスクドライブ、フラッシュメモリ、ＤＲＡＭ、ＭＲＡＭ、ＦｅＲＡＭ、ＲＡＩＤコントローラに結合された記憶装置、磁気テープのようにデータを記録可能な物理媒体、又は、ストレージノードの外部に設置された媒体にデータを記録する制御装置である。なお、メモリ７２と記憶装置６０は、同一のハードウェアによって実現されるようにしてもよい。
【００５５】
ネットワーク８０は、例えばＦｉｂｒｅ  ＣｈａｎｎｅｌやＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（登録商標））、ＩｎｆｉｎｉＢａｎｄ、Ｅｔｈｅｒｎｅｔ上のＴＣＰ／ＩＰのような上位プロトコルによって実現しうる。ただし、ネットワーク８０の実現方法は、これらに限られない。
【００５６】
ストレージシステムに記録されるデータは、ストレージノード７０ａ〜７０ｃのデータ記憶装置６０ａ〜６０ｃに分散して格納される。データは、固定長又は任意長のデータ塊と、データ塊を識別するデータ識別子とによって管理される。一例として、データ塊をファイルとし、データ識別子をｉ−ｎｏｄｅ番号としてもよい。また、データ塊を４キロバイト長のブロックとし、データ識別子をボリューム名とブロック番号の組としてもよい。
【００５７】
データは、いずれも唯一のデータセットに属する。１つのデータセットは、複数のデータを含むことができる。データセットは、例えば、仮想ボリューム内のデータであってもよい。また、データセットは、データベース管理システムの１つのアプリケーションソフトウェア又はミドルウェアソフトウェアによって管理されるデータ集合としてもよい。さらに、複数の企業で単一の資源を共用する場合には、各企業に属するデータをデータセットとしてもよい。ただし、データセットは、これらに限られない。
【００５８】
図３は、本実施形態に係るストレージシステムにおけるストレージノード７０内のデータ管理装置１０の構成を表すブロック図である。図１のデータ管理装置１０ａ〜１０ｃは、それぞれ、図３のデータ管理装置１０に相当する。なお、図１のデータ管理装置１０は、図２のＣＰＵ７１を用いて実現してもよい。図３を参照すると、データ管理装置１０は、データセット識別部５１とデータ管理部５０ａ〜５０ｃを有する。データ管理部５０ａ〜５０ｃは、それぞれ、格納されたデータセットに対応する。データ管理部５０ａ〜５０ｃをデータ管理部５０と総称する。
【００５９】
図３を参照すると、データ管理部５０は、方式選択部４０、データ管理方式実行部２０及び方式変更部３０を有する。データ管理方式実行部２０は、データ排他制御機能とデータ配置管理機能を有する。
【００６０】
データセット識別部５１は、データ利用プロセス９１からのアクセスに基づいて、当該アクセスがいずれのデータセットに含まれるデータに対するものであるのかを識別をする。例えば、データセット識別部５１は、データセットと一意に対応づけられたアクセス待ち受け部（非図示）を複数有していてもよい。このとき、データ利用プロセス９１は、利用するデータが所属するデータセットに対応するアクセス待ち受け部にアクセスし、データセット識別部５１はアクセスを受けたアクセス待ち受け部によってデータセットを特定するようにしてもよい。
【００６１】
ネットワークプロトコルがＴＣＰ／ＩＰである場合には、一例として、アクセス待ち受け部による識別においてＴＣＰポート番号又は仮想ＩＰアドレスを利用してもよい。このとき、データセット識別部５１は、異なるポート又はアドレスに対する接続を、異なるデータセットに対するアクセスであると認識することができる。
【００６２】
データセット識別部５１は、データ利用プロセス９１から、アクセスとともに、データセット識別情報を受け取ることによって、データセットを識別するようにしてもよい。データセット識別情報は、一例として、プロセス９１を利用するユーザ識別子から生成することができる。ネットワークプロトコルがＨＴＴＰである場合には、例えば、ＣＯＯＫＩＥを利用することによりユーザを特定することができる。
【００６３】
データセット識別部５１は、データ識別子からデータセットを特定することができるデータ・データセット対応情報（非図示）を保持するとともに、データ利用プロセス９１からのアクセスに含まれるデータ識別子とデータ・データセット対応情報に基づいて、データセットを特定するようにしてもよい。例えば、データ識別子のうちの先頭の数バイトがデータセットを表すようにしてもよい。また、データセットが仮想ボリュームであり、ネットワークプロトコルがＳＣＳＩである場合には、アクセス中に仮想ボリューム番号を埋め込んでアクセスするようにしてもよい。
【００６４】
データセット識別部５１は、データ利用プロセス９１又はデータ利用プロセス９１が動作するユーザ計算機９０を特定するユーザ識別情報からデータセットを特定することができるクライアント・データセット対応情報（非図示）を保持するとともに、データ利用プロセス９１からのアクセスを受けることで得られるユーザ識別情報とクライアント・データセット対応情報とに基づいて、データセットを特定するようにしてもよい。例えば、ユーザ計算機９０のアドレス又はネットワークアドレスをユーザ識別情報とすることができる。
【００６５】
また、上述のデータセット識別部５１を適宜組み合わせて用いるようにしてもよい。例えば、ユーザ計算機９０のアドレスとユーザＩＤの双方を用いるようにしてもよい。さらに、上述のデータセット識別部５１を段階的に用いるようにしてもよい。例えば、待ちうけポートアドレスでデータセットが指定されたものの、アクセスに含まれるデータ識別子の示すデータが指定されたデータセットには含まれないことが判明した場合には、ストレージシステムは、ユーザ計算機アドレスでデータセットを識別するようにしてもよい。
【００６６】
ストレージノード７０ａ〜７０ｃに対するデータ配置は、ストレージノード７０ａ〜７０ｃで動作するデータ配置管理機能によって決定され、特に、当該機能によりデータ識別子と格納ノードの対応を管理する。データ配置管理機能は、複数のデータ配置管理方式のうちの１つによって実現される。
【００６７】
データ配置管理方式として、例えば、分散データ配置管理方式又は集中データ配置管理方式を用いることができる。分散データ配置管理方式は、複数のストレージノードのデータ配置管理機能の間でネットワークを介して情報をやり取りすることによって実現される。一方、集中データ配置管理方式は、少なくとも１つのストレージノードにおけるデータ配置管理機能を実現することなく、当該機能に対する要求を他のストレージノードにおけるデータ配置管理機能に委譲する（すなわち、スタブ化データ管理部となる）方式をいう。
【００６８】
図４は、本実施形態に係るストレージシステムにおける分散データ配置管理機能の一例を説明するための図である。データ配置管理機能は、一例として、分散データ管理方式の一種である、分散ハッシュテーブルによって実現することができる。図４を参照して、このときのデータ配置管理機能について説明する。
【００６９】
ここでは、データセットｄｓ１に対するデータ配置管理機能が、分散ハッシュテーブルによって実現されているものとする。分散ハッシュテーブルによるデータ配置管理機能には、バイト列ｄに対して整数値を出力するハッシュ関数ｈ（ｄ）と、ハッシュ関数の出力値の範囲に基づくノードの割り当て表とが含まれる。図４を参照して、対象ノードを決定するときの動作について説明する。
【００７０】
ユーザ計算機９０は、データ識別子を含む検索依頼を１つのストレージノードに送信する。ここでは、検索依頼を受信するストレージノードをストレージノード７０ａとする。ストレージノード７０ａは、データセット識別部５１により、当該データ識別子の示すデータがいずれのデータセットに属するかを特定する。次に、当該データセットのデータ配置を管理するデータ配置管理機能は、データ識別子ｄをハッシュ関数ｈ（ｄ）の入力としたときに出力されたハッシュ値ｘに基づいて、ノード割り当て表からデータ配置格納ストレージノードを決定する。ここでは、ストレージノード７０ｂのデータ配置管理機能が、ハッシュ値ｘのストレージノード割当を管理するものとする。このとき、ストレージノード７０ａで動作するデータ配置管理機能は、ストレージノード７０ｂのデータ配置管理機能に検索依頼を委譲する。
【００７１】
ストレージノード７０ｂのデータ配置管理機能は、データ識別子ｄとデータを格納するストレージノードの対からなる割当表を管理しており、当該割当表に基づいて格納ストレージノードを決定する。ストレージノード７０ｂのデータ配置管理機能は、格納ストレージノードを識別する識別子をユーザ計算機９０に返信する。以上により、ユーザ計算機９０のデータ利用プロセス９１は、データ位置を特定し、利用することができる。
【００７２】
データ配置管理機能は、一例として、集中データ管理方式の一種である、集中表管理方式によって実現することができる。集中表管理方式によると、唯一のストレージノード（例えば、ストレージノード７０ａ）のデータ配置管理機能がデータ配置を管理する。それ以外のストレージノードのデータ配置管理機能は、アクセスされたときに、ストレージノード７０ａのデータ配置管理機能に当該情報を送信し、データ配置管理を委譲する。このように、自らデータ管理に関する処理を行うことなく管理機能を委譲した状態のストレージノードを、「スタブ化している」という。
【００７３】
ストレージノード７０ａのデータ配置管理機能は、データ識別子から当該データが含まれるノードを抽出することができる表を管理しており、当該表を参照することによって、データ識別子と格納ノードとの間の対応を管理する。また、いくつかのストレージノードのデータ配置管理機能は、ストレージノード７０ａが故障した場合に備えて、データ配置管理情報の一部又は全部を複製したものを保持し、つねにストレージノード７０ａの死活を確認するようにしてもよい。
【００７４】
また、上記の分散データ管理方式と集中データ管理方式とを組み合わせて用いるようにしてもよい。例えば、一部のストレージノードは分散データ管理を行い、残りのストレージノードのデータ配置管理機能は、分散データ管理を行うノードに処理を委譲してもよい。なお、データ配置管理機能の方式は、上述の方式に限定されない。
【００７５】
ユーザ計算機９０のデータ利用プロセス９１は、アクセスに対するトランザクション性のうちの分離性又は一貫性制約に関する情報を送信することによって、当該トランザクション性を満たしつつデータアクセスを行うことができる。このことは、排他制御によって実現される。例えば、一のアクセスによるデータの変更が他のアクセスに何時見えるようになるかを表す分離性レベルを指定することによって、複数の処理がお互いの影響をどの程度受けるかを制御する。これは、各データ又はデータ配置管理機能に対するロックによって実現される。
【００７６】
ストレージノード７０ａ〜７０ｃのデータに対する排他制御は、データセットごとに、データ排他制御機能（図３参照）により管理される。データ排他制御機能は、複数のデータ排他制御方式のうちの１つによって実現される。
【００７７】
データ排他制御方式として、例えば、分散排他制御方式又は集中排他制御方式を用いることができる。分散排他制御方式は、複数のストレージノードの分散排他制御機能の間でネットワークを介して情報をやり取りすることによって実現される。一方、集中分散排他制御方式は、少なくとも１つのストレージノードにおけるデータ排他制御機能を実現することなく、当該機能に対する要求を他のストレージノードにおけるデータ配置管理機能に委譲する（すなわち、スタブ化データ管理部となる）方式をいう。
【００７８】
例えば、データ排他制御機能は、上記の分散データ配置管理機能を応用して実現することができる。この場合、ストレージノードは、それぞれ、自身が格納しているデータに対するロック情報を抽出することができるロック表を管理している。ロック情報は、現在、当該データに対するロックを保持しているデータ利用プロセス９１を識別する値を含む。当該ロック表を利用することによって、データ識別子とアクセスの可否を管理する。ストレージシステムが同一のデータの複製を複数作成して複数のストレージノードに保存している場合には、複製のうち１つを予めプライマリデータとし、当該プライマリデータを保存するストレージノードにロック情報を格納するものとする。
【００７９】
ユーザ計算機９０からのアクセスは、まず、上記の分散データ配置管理機能によって、当該データを保持するストレージノード、すなわち、当該データに対するロック情報を保持するストレージノードに到達する。当該ストレージノードは、ロック表を走査して、当該アクセスに対するアクセスの可否を決定する。
【００８０】
非特許文献６に記載された分散データ排他制御機能によると、複数のストレージノード（例えば、５つ）で構成されたグループ中のデータ排他制御機能が、当該データセットに対するロック情報の複製を共有する。分散合意アルゴリズムにより、グループのストレージノードのうちの１台がマスタに選出され、選出されたマスタがロック表を管理する。排他制御アクセスのうちの変更を伴う処理はマスタノードに到達し、ロック情報の変更はマスタによりグループ内のストレージノードに伝播する。変更を伴わない処理は、グループのいずれのノードでもロック情報の複製を用いて処理することができる。
【００８１】
データ排他制御機能は、一例として、集中データ管理方式の一種である、集中ロックマネージャによって実現することができる。集中ロックマネージャによると、唯一のストレージノード（例えば、ストレージノード７０ａ）のデータ排他制御機能がデータの排他制御を管理する。それ以外のストレージノードのデータ排他制御機能は、アクセスされたときに、ストレージノード７０ａのデータ排他制御機能に当該情報を送信し、データ排他制御を委譲する。このように、自らデータ排他制御機能に関する処理を行うことなく管理機能を委譲した状態のストレージノードを、データ配置管理のときと同様に、「スタブ化している」という。
【００８２】
ストレージノード７０ａのデータ排他制御機能は、データ識別子から当該データに対するロック情報を抽出することができるロック表を管理している。ロック情報は、現在当該データに対するロックを保持しているデータ利用プロセスを識別する値を含む。当該ロック表を参照することによって、データ識別子とアクセスの可否を管理する。また、あるアクセスがデータ排他制御機能に到達したときに、すでにロック表から当該アクセスに対するロックが保持されており、データアクセスを許可できない場合には、当該アクセスを表す情報を当該データに対する待ち行列に登録し、当該データに対するロックが解除されたときに、待ち行列に登録されている待ちプロセスに対する処理を続けるようにしてもよい。また、いくつかのストレージノードのデータ排他制御機能は、ストレージノード７０ａが故障した場合に備えて、データ排他制御機能の一部又は全部の複製を保持し、つねにストレージノード７０ａの死活を確認するようにしてもよい。
【００８３】
また、上記の分散データ排他制御方式と集中データ排他制御方式とを組み合わせて用いるようにしてもよい。例えば、一部のストレージノードは分散データ排他制御を行い、残りのストレージノードのデータ配置管理機能は、分散データ排他制御を行うノードに処理を委譲する（スタブ化する）こともできる。なお、データ排他制御機能の方式は、上記の方式に限定されない。
【００８４】
以下では、データ配置管理機能とデータ排他制御機能とを、データ管理機能と総称する。データ管理機能の方式を変更するとは、データ配置管理機能がＸ方式であるものをＹ方式に変更するとともに、データ排他制御機能がＺ方式であるものをＷ方式に変更することをいう。データ管理機能を分散方式から集中方式に変更するとは、データ配置管理機能を分散方式Ｐから集中方式Ｑに変更するとともに、データ排他制御機能を分散方式Ｒから集中方式Ｓに変更することをいう。一方、データ管理機能を集中方式から分散方式に変更するとは、データ配置管理機能を集中方式Ｑから分散方式Ｐに変更するとともに、データ排他制御機能を集中方式Ｓから分散方式Ｒに変更することをいう。
【００８５】
方式変更部３０は、データ管理方式実行部２０が用いるデータ管理機能の方式を変更する。図５は、本実施形態に係るストレージシステムにおける方式変更部３０の構成を示すブロック図である。図５を参照すると、方式変更部３０は、静止点情報生成部３１、管理差分情報生成保持部３２、静止点情報送信部３３、静止点情報受信部３４、管理差分情報送信部３５、管理差分情報受信部３６、管理差分情報適用部３７及び方式停止切替再開部３８をさらに有する。
【００８６】
静止点情報生成部３１は、特定時刻における、送信元ストレージノードのデータ配置情報２２と排他制御情報２４の値を静止点情報として生成する。静止点情報送信部３３は、静止点情報を他のストレージノードに送信する。
【００８７】
静止点情報受信部３４は、他のストレージノードにより送信された静止点情報を受信して保持する。
【００８８】
管理差分情報生成保持部３２は、ユーザ計算機９０からのアクセスと静止点情報と現時刻における上記値を比較し、静止点情報と現時刻における上記値との差を管理差分情報として生成して保持する。管理差分情報送信部３５は、管理差分情報を他のストレージノードに送信する。
【００８９】
管理差分情報受信部３６は、他のストレージノードにより送信された管理差分情報を受信する。管理差分情報適用部３７は、第１の時刻（ｔ１）における静止点情報と、時刻ｔ１からそれ以後の第２の時刻（ｔ２）までの管理差分情報に基づいて、時刻ｔ２におけるデータ配置情報２２と排他制御情報２４を新たな静止点情報として復元する。
【００９０】
かかる構成を備えた方式変更部３０は、次のようにしてデータ管理方式を変更する。図６は、本実施形態に係るストレージシステムにおける方式変更部３０の動作を示すシーケンス図である。図６を参照して、方式変更部３０の動作について説明する。
【００９１】
方式変更は、データ配置情報２２と排他制御情報２４（以下、「データ管理情報」という。）の交換と、その後のアルゴリズムの切り替えによって行われる。
【００９２】
まず、変更後方式を実現するために、どのストレージノードがどのデータ管理情報を保持すべきかを決定し、管理情報送信計画を各ストレージノードが作成する。
【００９３】
次に、各ストレージノードは、静止点情報生成部３１によって静止点情報を生成する。次に、各ストレージノードは、管理情報送信計画に基づいて、静止点情報に含まれる値のうちの必要なものを対象となる送信先ストレージノードに送信する。
【００９４】
送信中のデータ配置情報２２と排他制御情報２４に対するユーザ計算機９０からのアクセスによるデータ管理情報の変更を第１の管理差分情報として送信元ストレージノードの管理差分情報生成保持部３２に保持する。また、当該時点におけるユーザ計算機９０からのアクセスに必要なデータ管理情報は、まず管理差分情報を走査してその値を返し、管理差分情報に値が保持されていない場合には直近の静止点情報から値を返す。
【００９５】
静止点情報の必要な値を送信終了後、静止点情報送信中にデータ管理情報が更新された場合には、送信元ストレージの管理差分情報生成保持部３２に管理差分情報が存在する。
【００９６】
管理差分情報が存在し、そのサイズが所定のサイズ以上である場合、又は、所定の回数に亘る管理差分情報の転送がなされていない場合には、送信元ストレージノードは、送信先ストレージノードに管理差分情報を送信する。管理差分情報の送信中における、ユーザ計算機９０からのアクセスによるデータ管理情報の変更は、第２の管理差分情報として保持する。また、当該時点におけるユーザ計算機９０からのアクセスに必要なデータ管理情報は、まず第２の管理差分情報を走査してその値を返し、第２の管理差分情報に値が保持されていない場合には第１の管理差分情報を走査してその値を返し、第１の管理差分情報にも存在しない場合には直近の静止点情報の値を返す。
【００９７】
送信先のストレージノードにおいて、管理差分情報受信部３６は管理差分情報を受信し、管理差分情報適用部３７は受信した管理差分情報と受信した静止点情報に基づいて、送信時点における管理差分情報を送信先ストレージに再現する。
【００９８】
第１の管理差分情報の送信後、上記と同様に第２の管理差分情報が存在する場合には、当該管理差分情報のサイズが所定のサイズ以下となり、かつ、所定の回数に亘る管理差分情報の送信が所定の回数以上となるまで（図５のステップＳ１１のＮｏ）、第１の管理差分情報を第２の管理差分情報によって置き換え、第２の管理差分情報を送信しつつ第３の管理差分情報を作成する、という動作を繰り返す。一方、管理差分情報のサイズが所定のサイズ以下となり、かつ、所定の回数以上に亘って管理差分情報の送信が所定の回数以上となった場合には（図５のステップＳ１１のＹｅｓ）、かかる動作を停止する。
【００９９】
方式停止切替再開部３８は、データ管理機能を変更する。まず、方式停止切替再開部３８は、データ管理を停止する。次に、受信したデータ管理情報を用いて新しいデータ管理を行う。方式停止切替再開部３８は、必要であれば他のストレージノードにおけるデータ管理機能と通信を行って同期を行う。次に、新しいデータ管理を再開する。これにより、データ配置管理機能、及び／又は、データ排他制御機能の方式を変更することができる。
【０１００】
本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じた排他制御方式を提供することができることから、ストレージシステムの性能を向上させることができる。また、本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じたデータ配置管理方式を提供することができることから、ストレージシステムにおける資源の利用効率を向上させることもできる。
【０１０１】
その理由は、データセット識別部５１によってアクセス対象となるデータセットを識別し、データセットごとに異なるデータ管理方式を適用可能としているからである。また、方式変更部３０によってデータセットごとにデータ管理方式を動的に変更可能としているからである。さらに、方式変更部３０は、静止点情報を活用してシステムがアクセスを停止する期間を短く抑えていることから、方式変更に伴うシステム性能の低下を防ぐこともできる。
【０１０２】
（第２の実施形態）
本発明の第２の実施形態に係るストレージシステムについて図面を参照して説明する。図７は、本実施形態に係るストレージシステムにおける方式変更部３０の構成を示すブロック図である。図７を参照すると、方式変更部３０は、分散化変更部４７と集中化変更部４８をさらに有する。
【０１０３】
分散化変更部４７は、集中データ管理方式で動作するデータ管理部５０のうち、データ配置管理機能又はデータ排他制御機能を実現しているデータ管理部５０の保持するデータ配置情報２２又は排他制御情報２４の一部を、データ配置管理機能又はデータ排他制御機能を実現することなく他に委譲している他のスタブ化データ管理部５０に送信し、送信終了後、当該他のスタブ化データ管理部５０に、データ配置管理機能又はデータ排他制御機能を実現させる。
【０１０４】
これは、第１の実施形態における方式変更部３０において、管理情報送信計画と方式停止切替再開部３８の動作を以下のようにすることで実現することができる。
【０１０５】
例えば、変更前後の方式がいずれも分散データ管理方式である場合には、すべてのストレージノードは、お互いにデータ管理情報を送信し合う必要がある。また、方式停止切替再開部３８は、分散同期アルゴリズムによって停止と再開のタイミングを合わせる必要がある。
【０１０６】
一方、変更前の方式が集中データ管理方式であり、変更後の方式が分散データ管理方式である場合には、集中化データ管理方式でスタブ化していないストレージノードが送信元ノードとなり、すべてのストレージノードが送信先ノードに該当する。また、方式停止切替再開部３８は、分散同期アルゴリズムによって停止と再開のタイミングを合わせる必要がある。ここで、分散同期アルゴリズムとして、一例として、非特許文献８に記載された方法を用いることができる。
【０１０７】
集中化変更部４８は、データ管理部５０が分散データ管理方式で動作する少なくとも１つのストレージノードにおけるデータ配置情報２２と排他制御情報２４を他のストレージノードのデータ管理部５０に送信し、送信終了後、データ配置管理機能を他のストレージノードに委譲することで該データ管理部５０をスタブ化データ管理部とする。
【０１０８】
これは、第１の実施形態における方式変更部３０において、管理情報送信計画と方式停止切替再開部３８の動作を以下のようにすることで実現することができる。
【０１０９】
変更前の方式が分散データ管理方式であり、変更後の方式が集中データ管理方式である場合には、集中化によりスタブ化するストレージノードのみが、データ管理情報を送信する。また、方式停止切替再開部３８は、各々のストレージノードが同期せずにスタブ化することができる。
【０１１０】
本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じた排他制御方式を提供することができることから、ストレージシステムのシステム性能を向上させることができる。また、本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じたデータ配置管理方式を提供することができることから、ストレージシステムにおける資源の利用効率を向上させることもできる。
【０１１１】
その理由は、データセット識別部５１によってアクセス対象となるデータセットを識別し、データセットごとに分散と集中という異なるデータ管理方式を適用可能としているからである。読み出しアクセス頻度が高く、多くのストレージノードを参加させた方が効率がよいデータセットについては高速なストレージノードを多数参加させた分散データ管理とし、その他のデータセットについては集中管理方式とすることで、利用頻度の高いデータセットに対するアクセス性能を向上させることができる。
【０１１２】
さらに、方式変更部３０によってデータセットごとにデータ管理方式を動的に変更可能としている。このとき、第１のデータセットの利用が終了し、次に第２のデータセットが多くのアクセスを受ける場合、分散データ管理方式で動作していた第１のデータセットを集中管理方式に変更し、第２のデータセットを分散データ管理方式とすることで、データセットごとに時間的に変換する利用傾向に応じたデータ配置管理方式を提供することができる。
【０１１３】
方式を変更する際、第２のデータセットのデータ管理機能をより高性能なストレージノードに再配置することで、第２のデータセットに対するアクセス速度をさらに向上させることもできる。
【０１１４】
また、第１のデータセットを利用していたユーザ計算機９０からのアクセスを受けていたストレージノードにおいては、データ管理機能をスタブ化し、アクセスを他のストレージノードに受け流す。したがって、データ管理方式を変更した場合においても、ユーザ計算機９０側からすると、性能面を除いて従前と同様にデータを利用することができる。
【０１１５】
（第３の実施形態）
本発明の第３の実施形態に係るストレージシステムについて、図面を参照して説明する。本実施形態では、格納されたデータの再配置と当該発明の協調動作を考慮した動作について記載する。
【０１１６】
本実施形態においては、ストレージノード７０は、高速低容量のデータ記憶装置６０を有する高速低容量ストレージノードと、低速大容量のデータ記憶装置６０を有する低速大容量ストレージノードを含む。ストレージノード７０は、用いられるデータ記憶装置６０の容量、及び、データ記憶装置６０を実現する装置（例えば、磁気ディスク、不揮発性メモリ）の種類に応じて分類してもよい。ただし、分類方法は、これらに限られない。
【０１１７】
図８は、本実施形態に係るストレージシステムの構成を示すブロック図である。図８を参照すると、本実施形態のストレージシステムは、第１の実施形態のストレージシステム（図１参照）に対して、さらに、データ移動実行部７７と管理方式変更部７８を備えている。
【０１１８】
データ移動実行部７７は、システム運用中にデータの利用傾向（例えば、最近一定時間のアクセス数、アクセスされたデータのサイズの累計）に基づいて、より利用頻度の高いデータセットをより高速なストレージノードに移動するとともに、より利用頻度の低いデータセットをより低速なストレージノードに移動する。これにより、ストレージシステム内の資源を有効に利用することができる。
【０１１９】
管理方式変更部７８は、データ移動実行部７７によりデータセットを移動した場合に、方式変更部３０を用いて、移動対象データセットのデータ管理方式を変更する。管理方式変更部７８は、少なくとも１つの高速低容量ストレージに分散格納された第１のデータセットを分散データ管理方式とし、データ移動実行部により第１のデータセットを低速大容量ストレージに移動した場合には、第１のデータセットに対応するデータ管理部を集中データ管理方式とする（データ縮退機能）。ただし、集中データ管理方式のうちスタブ化されないデータ管理機能は、高速低容量ストレージ上に配置するものとする。
【０１２０】
また、管理方式変更部７８は、少なくとも１つの低速大容量ストレージノードに分散格納された第２のデータセットを集中データ管理方式とし、スタブ化されていないデータ管理機能の一部は高速低容量ストレージノードに配置し、データ移動実行部７８により第２のデータセットを高速低容量ストレージに移動した場合には第２のデータセットに対応するデータ管理部を分散データ管理方式とする（データ展開機能）。
【０１２１】
上記のデータ縮退機能とデータ展開機能を利用することで、データ管理機能はつねに高速低容量ストレージ上に位置し、ユーザ計算機に対する応答性能を維持することができる。さらに、データの利用形態を反映するデータ再配置処理に伴ってデータ管理機能の方式を変更することで、データセットの利用傾向により合致したデータ管理機能を提供することができる。
【０１２２】
（第４の実施形態）
本発明の第４の実施形態に係るストレージシステムについて、図面を参照して説明する。本実施形態においては、ストレージシステムおける消費電力の削減を図る。図９は、本実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。図９を参照すると、本実施形態に係るストレージシステムにおけるストレージノード７０の一部又は全部は、第１の実施形態のストレージノード７０の構成（図２参照）に対して、さらに、特定データ管理方式実行部７５及び電力制御部７６を備えている。
【０１２３】
特定データ管理方式実行部７５は、少なくとも１つのデータ管理方式（以下、「低消費電力データ管理方式」という。）を低消費電力で実行可能とするとともに、ストレージノード７０は、自ノードにおいて低消費電力データ管理方式のみが動作している場合には、ＣＰＵ７１、メモリ７２、Ｉ／Ｏコントローラ７３又はこれらの組み合わせを低消費電力モードとするか又は停止させる。
【０１２４】
電力制御部７６は、自ノードで動作するデータ管理方式を監視し、方式変更部３０によって低消費電力データ管理方式以外のデータ管理方式の動作が終了した場合には、ＣＰＵ７１、メモリ７２、Ｉ／Ｏコントローラ７３又はこれらの組み合わせを低消費電力モードにするか又は停止させる。また、方式変更部３０によって低消費電力データ管理方式以外のデータ管理方式の動作が開始する前に、ＣＰＵ７１、メモリ７２、Ｉ／Ｏコントローラ７３又はこれらの組み合わせが低消費電力モードで動作しているか又は停止している場合には、通常の動作状態に戻す。
【０１２５】
特定データ管理方式実行部７５として、例えば、集中データ管理方式のスタブ化ノードをネットワークカードに実装することができる。受け取ったパケットをそのまま指定されたデータ管理機能を有する装置に転送する機能を備えたハードウェアをネットワークカードに配置することによって、ストレージノード７０自体が有するＣＰＵ７１又はメモリ７２を使用することなく処理することができる。
【０１２６】
また、特定データ管理方式実行部７５は、例えば、特定のデータ管理方式を実装したＡＳＩＣ、又は、ＦＰＧＡのような可変ロジックによって実装してもよい。ただし、特定データ管理方式実行部７５の実装は、これらに限定されない。
【０１２７】
特定データ管理方式実行部７５と電力制御部７６を設けることによって、データ管理方式の変換に伴い、電力消費をさらに削減することができる。特定データ管理方式実行部７５によると、低消費電力で動作させることができるデータ管理方式しか動作しないときに、使用電力量を削減することができるからである。特に、ストレージシステムに格納された多数のデータセットに対するアクセス量が少ない場合には、多数のデータセットのデータ管理方式を集中データ管理方式にすることができる。集中管理データ方式によると、多くのストレージノードがスタブ化されているため、スタブ化されたノードの機能のみを低消費電力で提供可能な機能を導入することによって、ストレージシステムは、ユーザ計算機からのアクセスを棄却したり、ユーザ計算機にデータ管理機能を探索させるような機能を設けることなく、ストレージノードの消費電力を抑えることができる。
【産業上の利用可能性】
【０１２８】
本発明に係るストレージシステムは、分散ストレージ、並列ファイルシステム、ＲＡＩＤアレイ、分散データベース、データグリッド、クラウドデータ格納基盤のようなストレージシステムに適用することができる。特に、本発明に係るストレージシステムによると、高速低容量なデータグリッドによってユーザの処理を実行し、低速大容量なストレージによってユーザのデータを保持するストレージシステムの性能を向上させることができる。
【０１２９】
以上の記載は実施形態に基づいて行ったが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更を加えることができる。
【符号の説明】
【０１３０】
１０、１０ａ〜１０ｃ  データ管理装置
２０  データ管理方式実行部
２２  データ配置情報
２４  排他制御情報
３０  方式変更部
３１  静止点情報生成部
３２  管理差分情報生成保持部
３３  静止点情報送信部
３４  静止点情報受信部
３５  管理差分情報送信部
３６  管理差分情報受信部
３７  管理差分情報適用部
３８  方式停止切替再開部
４０  方式選択部
４７  分散化変更部
４８  集中化変更部
５０、５０ａ〜５０ｃ  データ管理部
５１  データセット識別部
６０、６０ａ〜６０ｃ  データ記憶装置
７０、７０ａ〜７０ｃ  ストレージノード
７１  ＣＰＵ
７２  メモリ
７３  Ｉ／Ｏコントローラ
７４  通信コントローラ
７５  特定データ管理方式実行部
７６  電力制御部
７７  データ移動実行部
７８  管理方式変更部
８０  ネットワーク
９０  ユーザ計算機
９１  データ利用プロセス
【図１】
2011053932.tif 000003
【図２】
2011053932.tif 000004
【図３】
2011053932.tif 000005
【図４】
2011053932.tif 000006
【図５】
2011053932.tif 000007
【図６】
2011053932.tif 000008
【図７】
2011053932.tif 000009
【図８】
2011053932.tif 000010
【図９】
2011053932.tif 000011