説明

ストレージシステム、データ記憶方法及びプログラム

【課題】ストレージシステムにおいて、システム性能及び資源の利用効率を向上させること。
【解決手段】ストレージノードは、複数のデータセットが格納されたデータ記憶装置を備えるとともに、前記複数のデータセットのそれぞれに対応するデータ管理部を有するデータ管理装置を備え、前記データ管理部は、対応するデータセットに含まれるデータを検索するデータ配置管理機能、及び、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御機能を、複数のデータ管理方式のいずれかに基づいて実現するデータ管理方式実行部と、前記データ管理方式実行部におけるデータ管理方式を、前記複数のデータ管理方式のうちの第1のデータ管理方式から第2のデータ管理方式に変更する方式変更部をさらに備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ストレージシステム、データ記憶方法及びプログラムに関し、特に、複数のストレージノードにデータを分散させて格納するストレージシステム、データ記憶方法及びプログラムに関する。
【背景技術】
【0002】
データを記憶するストレージ装置を備えた計算機(ストレージノード)をネットワークに複数接続した、大容量のストレージシステムが知られている。
【0003】
ストレージシステムでは、分散データ配置管理により、データをいずれのストレージノードに格納するか、及び、ユーザ計算機によるデータの読み出し及び書き込みアクセスをいずれのストレージノードに振り分けるかを管理している。データを格納したいユーザ計算機から送信されたデータは、ストレージシステム中の分散データ配置管理機能により、複数のデータ塊に分割されて複数のストレージノードに格納される。
【0004】
同じネットワークに接続された、データを利用するユーザ計算機は、分散データ配置管理機能を利用し、所望のデータをあらわす識別子から当該データが配置されたストレージノードを特定し、当該ストレージノードからデータを取得する。
【0005】
非特許文献2に記載された分散データ配置管理機能によると、固定長のデータ塊(チャンク)をストレージノード(GFS(Google File System)チャンクサーバ)に格納する際、分散データ配置管理装置(GFSマスタ)に対し、識別子としてファイル名とチャンクインデックスを送信し、対象となるストレージノードを表すチャンク位置情報を受信する。
【0006】
分散データ配置管理機能の実現方法として、ユーザ計算機から利用可能な場所に集中制御された配置管理機能を設けるアウトオブバンド方式と、各ユーザ計算機に配置管理機能の一部を委譲し、ユーザ計算機が直接記憶部にアクセスする分散テーブル方式が知られている。
【0007】
非特許文献2に記載されたアウトオブバウンド方式によると、固定長のデータ塊(チャンク)をストレージノード(GFSチャンクサーバ)に格納する際、ユーザ計算機(GFSクライアント)がネットワークに存在する分散データ配置管理装置(GFSマスタ)にアクセスして格納ストレージノードを決定する。
【0008】
非特許文献3に記載された分散テーブル方式によると、ユーザ計算機とストレージノードを兼ねるノードに任意長のデータ塊(バリュー)を格納する際、ノード内で、所定のアルゴリズム(Chord)を用いて識別子(キー)からストレージノードが決定される。
【0009】
また、特許文献1に、データを分散させるだけでなく、データの冗長化により耐故障性を確保する方法が記載されている。耐故障性とは、所定の台数の記憶装置が故障してデータが読み出し不能となった場合においても、システム全体としてはユーザにデータを提供することができる状態を維持することをいう。非特許文献1には、ブロックストレージのレベルでデータの分散及び冗長化を行う複数の方法(RAID)が記載されている。また、非特許文献2には、データ格納時に分散データ配置管理装置(GFSマスタ)とストレージノード(GFSチャンクサーバ)がお互いに通信し、複数のストレージノードに固定長のデータ塊(チャンク)の複製を配置する冗長化方式が記載されている。
【0010】
ストレージシステムを構成するストレージノードの性能は均一でない場合がある。システムを構成するのにかかる費用を削減するために、処理能力、記憶容量、データ転送速度の異なる複数のストレージノードからシステムが構成される場合がある。以下、このようなシステム構成を「ヘテロ構成」という。
【0011】
ヘテロ構成に基づくシステムにおいては、少数の高性能なストレージノードを最大限に活用するため、時間とともに変化するデータの利用頻度に応じたデータ再配置が行われる。高い頻度で利用されるデータを高性能なノードに配置することによって、効率よくシステム資源を効率よく利用することができる。
【0012】
また、ユーザ計算機からデータへのアクセスは、ユーザの求める性能とトランザクション性を実現するために、排他制御される。非特許文献5には、トランザクション性のうちの分離性に関して、次数又は分離性レベルという概念を導入し、次数を指定することでお互いの影響を受けることなく複数の処理の結果を求める排他制御方法が記載されている。
【0013】
ここで、排他制御方式には、分散型の排他制御方式と集中型の排他制御方式がある。
【0014】
分散型の排他制御方式として、分散データ配置管理機能が分散木構造で構成されている場合には、特許文献2に記載の方法によると、ユーザ計算機の複数のデータ追加アクセスによってデータ配置管理機能が損なわれることを防ぐことができる。
【0015】
非特許文献4に記載された分散型の排他制御方式によると、各データの一貫性は、これを格納しているストレージノードによって担保され、バージョニング等により求められる単一データアップデートを実現することができる。また、非特許文献6に記載された方法によると、複数のノードが関与して分散ロックサービスを提供することができる。
【0016】
非特許文献7に記載された集中型の排他制御方式によると、キャッシュアンドロック・サービスと呼ぶシステム内で単一の排他制御機能が実現される。非特許文献7において、集中ロック管理の利点として、ロックマネージャの2重化構成が可能であること、デッドロック処理の効率がよいことが指摘されている。
【先行技術文献】
【特許文献】
【0017】
【特許文献1】特開平11−085604号公報
【特許文献2】特開2008−046700号公報
【非特許文献】
【0018】
【非特許文献1】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
【非特許文献2】Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung, “The Google File System,” SOSP 2003.
【非特許文献3】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.
【非特許文献4】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.
【非特許文献5】ジム・グレイ、アンドレアス・ロイター、「トランザクション処理 概念と技法(上/下)」、日経BP社、2001.
【非特許文献6】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.
【非特許文献7】中山陽太郎、「PostgreSQLによる共有ディスク・クラスタPG−CALSの設計と実装」、UNISYS TECHNOLOGY REVIEW、日本ユニシス、No.94、NOV. 2007
【非特許文献8】Leslie Lamport, “The Part-Time Parliament,” ACM Transactions on Computer Systems, Vol. 16, No.2, 133-169, May 1998.
【発明の概要】
【発明が解決しようとする課題】
【0019】
ストレージシステムは、複数のデータ利用プロセスのそれぞれによってアクセスされるデータを一括して格納する。ここで、各データ利用プロセスによってアクセスされるデータの集合を「データセット」という。すなわち、ストレージシステムは、複数のデータセットを格納する。
【0020】
分散型の排他制御方式は、スループットが高いが、分散された機能間のやり取りが大きく、レイテンシが長くなる。したがって、少量のアクセスに対して効率が悪い。一方、集中型の排他制御方式は、少量のアクセスに対しては、高速に処理できるが、大量のアクセスに対しては排他制御機能がボトルネックになり、システム全体の性能が低下する。特に、多数の用途やアクセス量の異なるデータセットを単一のストレージシステムに格納する際、システム全体として同一の排他制御方式を適用すると、用途に合わない排他制御方式を導入することとなる。
【0021】
また、分散型のデータ配置管理は、スループットが高い。また、システム中の多くの計算機にデータ配置管理機能の一部を設けることで、データ配置管理機能をシステム内から探すことが容易となり、データ配置管理機能を提供する計算機を変更することも容易となる。しかし、分散型のデータ配置管理によると、集中型と比較してより多くの計算機の資源が必要とされる。
【0022】
一方、集中型のデータ配置管理によると、データ配置管理に利用する資源を分散型と比較して少数の計算機に収めることができる。しかし、集中型のデータ配置管理によると、アクセスごとのレイテンシが大きく、ボトルネックになるため、スループットも低い。また、システム内に存在する単一のデータ配置管理機能を探さなくてはならず、データ配置管理機能が別の計算機に移動した場合には、ユーザ計算機はデータ配置管理機能を見出すことができず、システムの利用が不可能となる。
【0023】
また、分散型の排他制御方式又はデータ配置管理方式によると、格納されているいずれのデータセットに対するアクセスも少ない場合であっても、多くの計算機を稼動させておく必要がある。したがって、分散型によると、集中型と比較して、同一のアクセス件数を処理した場合における消費電力が大きくなる。
【0024】
以上のことから、ストレージシステムは、データセットごとに時間的に変化する利用傾向に応じた排他制御方式を提供できず、性能が低いという問題がある。また、ストレージシステムは、データセットごとに時間的に変化する利用傾向に応じたデータ配置管理方式を提供できず、資源利用の効率が悪いという問題もある。さらに、ストレージシステムは、データセットごとに時間的に変化する利用傾向に応じた計算機電力使用制御ができず、消費電力が大きいという問題もある。
【0025】
そこで、ストレージシステムにおいて、システム性能、資源の利用効率を向上させることが課題となる。本発明の目的は、かかる課題を解決するストレージシステムを提供することにある。
【課題を解決するための手段】
【0026】
本発明の第1の視点に係るストレージノードは、
複数のデータセットが格納されたデータ記憶装置を備えるとともに、
前記複数のデータセットのそれぞれに対応するデータ管理部を有するデータ管理装置を備え、
前記データ管理部は、対応するデータセットに含まれるデータを検索するデータ配置管理機能、及び、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御機能を、複数のデータ管理方式のいずれかに基づいて実現するデータ管理方式実行部と、
前記データ管理方式実行部におけるデータ管理方式を、前記複数のデータ管理方式のうちの第1のデータ管理方式から第2のデータ管理方式に変更する方式変更部をさらに備えている。
【0027】
本発明の第2の視点に係るストレージシステムは、ネットワークを介して互いに接続された上記第1の視点に係るストレージノードを複数備えている。
【0028】
本発明の第3の視点に係るデータ記憶方法は
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するデータ管理部が、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理工程と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御工程と、
前記データ配置管理工程と前記データ排他制御工程におけるデータ管理方式を、前記複数のデータ管理方式のうちの第1のデータ管理方式から第2のデータ管理方式に変更する工程を含む。
【0029】
本発明の第4の視点に係るプログラムは、
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するCPUに対して、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理処理と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御処理と、
前記データ配置管理処理と前記データ排他制御処理におけるデータ管理方式を、前記複数のデータ管理方式のうちの第1のデータ管理方式から第2のデータ管理方式に変更する処理を実行させる。
【発明の効果】
【0030】
本発明に係るストレージシステム、データ記憶方法及びプログラムによると、ストレージシステムにおける、システム性能及び資源の利用効率を向上させることができる。
【図面の簡単な説明】
【0031】
【図1】第1の実施形態に係るストレージシステムの構成を示すブロック図である。
【図2】本発明の第1の実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。
【図3】本発明の第1の実施形態に係るストレージシステムにおけるストレージノード内のデータ管理装置の構成を表すブロック図である。
【図4】本発明の第1の実施形態に係るストレージシステムにおける分散データ配置管理機能の一例を説明するための図である。
【図5】本発明の第1の実施形態に係るストレージシステムにおける方式変更部の構成を示すブロック図である。
【図6】本発明の第1の実施形態に係るストレージシステムにおける方式変更部の動作を示すシーケンス図である。
【図7】本発明の第2の実施形態に係るストレージシステムにおける方式変更部の構成を示すブロック図である。
【図8】本発明の第3の実施形態に係るストレージシステムの構成を示すブロック図である。
【図9】本発明の第4の実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。
【発明を実施するための形態】
【0032】
第1の展開形態のストレージノードは、上記第1の視点に係るストレージノードであることが好ましい。
【0033】
第2の展開形態のストレージノードは、
前記複数のデータセットが、それぞれ、データ識別子により特定されるデータを含み、
前記データ管理装置が、データ利用プロセスからデータへのアクセスを受けた場合に前記複数のデータセットのうちの該データが所属するデータセットを特定するデータセット識別子を返すデータセット識別部をさらに備え、
前記データ管理部が、データと該データが格納されたデータ記憶装置との間の対応を示すデータ配置情報及び前記データ識別子を参照して該データが格納されたデータ記憶装置を検索することで、前記データ配置管理機能を実現することが好ましい。
【0034】
第3の展開形態のストレージノードは、前記データ管理部が、格納されたデータに対する排他制御情報を参照して該データに対するデータ利用プロセスによるアクセスを一時的に停止することで、前記データ排他制御機能を実現することが好ましい。
【0035】
第4の展開形態のストレージノードは、
前記データ管理部が、データ管理方式情報からデータ管理方式を表すデータ管理方式識別子を生成する方式選択部をさらに備え、
前記データ管理方式実行部が、前記複数のデータ管理方式のうちの前記データ管理方式識別子によって特定されるデータ管理方式に基づいて、前記データ配置管理機能と前記データ排他制御機能を実現することが好ましい。
【0036】
第5の展開形態のストレージシステムは、ネットワークを介して互いに接続された、上記のストレージノードを複数備えていることが好ましい。
【0037】
第6の展開形態のストレージシステムは、
前記複数のデータ管理方式が、少なくとも、複数のストレージノードの分散データ管理機能の間でネットワークを介して情報をやり取りすることによって前記データ配置管理機能と前記データ排他制御機能を実現する分散型のデータ管理方式と、
前記データ配置管理機能又は前記データ排他制御機能を実現することなく、これらの機能に対する要求を他のストレージノードに委譲することで、少なくとも1つのストレージノードがスタブ化されている集中型のデータ管理方式と、を含むことが好ましい。
【0038】
第7の展開形態のストレージシステムは、
前記方式変更部が、データ管理部が前記分散型のデータ管理方式で動作する少なくとも1つのストレージノードにおけるデータ配置情報と排他制御情報を他のストレージノードのデータ管理部に送信し、送信終了後、データ配置管理機能を他のストレージノードに委譲することで該データ管理部をスタブ化する集中化変更部と、
前記集中型のデータ管理方式で動作するデータ管理部のうち、データ配置管理機能又はデータ排他制御機能を実現しているデータ管理部の保持するデータ配置情報又は排他制御情報の一部を、スタブ化された他のデータ管理部に送信し、送信終了後、当該他のデータ管理部にデータ配置管理機能又はデータ排他制御機能を実現させる分散化変更部とをさらに備えていることが好ましい。
【0039】
第8の展開形態のストレージシステムは、
前記方式変更部が、特定時刻における送信元ストレージノードの前記データ配置情報と前記排他制御情報の値を静止点情報として生成する静止点情報生成部と、
静止点情報を他のストレージノードに送信する静止点情報送信部と、
他のストレージノードから送信された静止点情報を受信して保持する静止点情報受信部と、
ユーザ計算機からのアクセスと静止点情報と現時刻における前記値を比較し、静止点情報と現時刻における前記値との差を管理差分情報として生成して保持する管理差分情報生成保持部と、
管理差分情報を他のストレージノードに送信する管理差分情報送信部と、
他のストレージノードから送信された管理差分情報を受信する管理差分情報受信部と、
第1の時刻における静止点情報と該第1の時刻から第2の時刻までの管理差分情報に基づいて、該第2の時刻におけるデータ配置情報と排他制御情報を新たな静止点情報として復元する管理差分情報適用部と、
静止点情報生成部により静止点情報を生成し、静止点情報の値を送信先ストレージノードに送信し、送信中のデータ配置情報と排他制御情報に対する変更を第1の管理差分情報として送信元ストレージノードにおける管理差分情報生成保持部に保持し、静止点情報の値を送信終了後に送信元ストレージにおける管理差分情報生成保持部に管理差分情報が存在する場合には、管理差分情報を送信先ストレージノードの管理差分情報受信部に送信し、送信先のストレージノードにおける管理差分情報適用部により、受信した管理差分情報と受信した静止点情報に基づいて送信時点における管理差分情報を送信先ストレージに再現する動作を、管理差分情報のサイズが所定のサイズ以下となり、かつ、管理差分情報の送信回数が所定の回数以上となるまで繰り返させた後、前記データ管理方式実行部におけるデータ管理方式を変更し、残りの管理差分情報を送信する方式停止切替再開部とをさらに備えていることが好ましい。
【0040】
第9の展開形態のストレージシステムは、前記集中化変更部が、前記方式停止切替再開部においてデータ配置管理機能をスタブ化することが好ましい。
【0041】
第10の展開形態のストレージシステムは、
前記データセット識別部が、前記複数のデータセットのそれぞれと一意に対応付けられたアクセス待ち受け部をさらに有し、
前記データ利用プロセスが、利用するデータが所属するデータセットに対応するアクセス待ち受け部にアクセスし、
前記データセット識別部が、アクセスを受けたアクセス待ち受け部に基づいてデータセットを特定するようにしてもよい。
【0042】
第11の展開形態のストレージシステムは、前記データセット識別部が、前記データ利用プロセスからアクセスとともにデータセット識別情報を受け取ることによって、データセットを特定するようにしてもよい。
【0043】
第12の展開形態のストレージシステムは、前記データセット識別部が、データ識別子からデータセットを特定することができるデータ・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスに含まれるデータ識別子と該データ・データセット対応情報とに基づいてデータセットを特定するようにしてもよい。
【0044】
第13の展開形態のストレージシステムは、前記データセット識別部が、データ利用プロセス又はデータ利用プロセスが動作するユーザ計算機を特定するユーザ識別情報からデータセットを特定することができるクライアント・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスを受けることで得られるユーザ識別情報と該クライアント・データセット対応情報とに基づいてデータセットを特定するようにしてもよい。
【0045】
第14の展開形態のストレージシステムは、
前記複数のストレージノードが、高速低容量のデータ記憶装置を有する高速低容量ストレージノードと、低速大容量のデータ記憶装置を有する高速低容量ストレージノードを含み、
前記高速低容量ストレージに分散格納されたデータセットを前記分散型のデータ管理方式とし、該データセットを低速大容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記集中型のデータ管理方式とする管理方式変更部をさらに備えていることが好ましい。
【0046】
第15の展開形態のストレージシステムは、前記管理方式変更部が、前記低速大容量ストレージに分散格納されたデータセットについて前記集中型のデータ管理方式とし、該データセットを前記高速低容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記分散型のデータ管理方式とすることが好ましい。
【0047】
第16の展開形態のストレージシステムは、
前記ストレージノードが、前記複数のデータ管理方式のうちの所定のデータ管理方式を低消費電力で実行する特定データ管理方式実行部と、
前記所定の管理方式以外のデータ管理方式を実行する一般データ管理方式実行部と、
自ノードにおいて前記所定の管理方式以外のデータ管理方式が動作していない場合には、前記一般データ管理方式実行部を低消費電力状態に移行させる電力制御部と、をさらに備えていることが好ましい。
【0048】
第17の展開形態のデータ記憶方法は、上記第3の視点に係るデータ記憶方法であることが好ましい。
【0049】
第18の展開形態のプログラムは、上記第4の視点に係るプログラムであることが好ましい。
【0050】
(第1の実施形態)
本発明の第1の実施形態に係るストレージシステムについて、図面を参照して説明する。図1は、本実施形態に係るストレージシステムの構成を示すブロック図である。図1を参照すると、ストレージシステムは、複数のストレージノード70a〜70cを含む。
【0051】
各ストレージノード70a〜70cは、それぞれ、データ管理装置10a〜10cとデータ記憶装置60a〜60cを備えている。図1には、ストレージシステムとネットワーク80を介して接続されたユーザ計算機90も併せて示されている。ユーザ計算機90のデータ利用プロセス91は、ストレージシステムに対して、データ識別子とデータ操作を表す識別子を含むアクセスを行うことによって、データの格納、格納されたデータの取得、格納されたデータの更新、及び、格納されたデータの消去を行う。
【0052】
図2は、本実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。図1のストレージノード70a〜70cは、それぞれ、図2のストレージノード70に相当する。図2を参照すると、ストレージノード70は、CPU71、メモリ72、I/Oコントローラ73、データ記憶装置60、通信コントローラ74を有する。ストレージノード70は、一例として、計算機によって構成される。
【0053】
ストレージノード70は、通信コントローラ74を介して、ネットワーク80に対するデータの送受信を行うとともに、I/Oコントローラ73を介して、データ記憶装置60に対するデータの格納と読み出しを行う。かかる制御は、メモリ72に格納されたソフトウェアによって、CPU71を駆動して行うようにしてもよい。
【0054】
データ記憶装置60a〜60cは、例えば、ハードディスクドライブ、フラッシュメモリ、DRAM、MRAM、FeRAM、RAIDコントローラに結合された記憶装置、磁気テープのようにデータを記録可能な物理媒体、又は、ストレージノードの外部に設置された媒体にデータを記録する制御装置である。なお、メモリ72と記憶装置60は、同一のハードウェアによって実現されるようにしてもよい。
【0055】
ネットワーク80は、例えばFibre ChannelやFCoE(Fibre Channel over Ethernet(登録商標))、InfiniBand、Ethernet上のTCP/IPのような上位プロトコルによって実現しうる。ただし、ネットワーク80の実現方法は、これらに限られない。
【0056】
ストレージシステムに記録されるデータは、ストレージノード70a〜70cのデータ記憶装置60a〜60cに分散して格納される。データは、固定長又は任意長のデータ塊と、データ塊を識別するデータ識別子とによって管理される。一例として、データ塊をファイルとし、データ識別子をi−node番号としてもよい。また、データ塊を4キロバイト長のブロックとし、データ識別子をボリューム名とブロック番号の組としてもよい。
【0057】
データは、いずれも唯一のデータセットに属する。1つのデータセットは、複数のデータを含むことができる。データセットは、例えば、仮想ボリューム内のデータであってもよい。また、データセットは、データベース管理システムの1つのアプリケーションソフトウェア又はミドルウェアソフトウェアによって管理されるデータ集合としてもよい。さらに、複数の企業で単一の資源を共用する場合には、各企業に属するデータをデータセットとしてもよい。ただし、データセットは、これらに限られない。
【0058】
図3は、本実施形態に係るストレージシステムにおけるストレージノード70内のデータ管理装置10の構成を表すブロック図である。図1のデータ管理装置10a〜10cは、それぞれ、図3のデータ管理装置10に相当する。なお、図1のデータ管理装置10は、図2のCPU71を用いて実現してもよい。図3を参照すると、データ管理装置10は、データセット識別部51とデータ管理部50a〜50cを有する。データ管理部50a〜50cは、それぞれ、格納されたデータセットに対応する。データ管理部50a〜50cをデータ管理部50と総称する。
【0059】
図3を参照すると、データ管理部50は、方式選択部40、データ管理方式実行部20及び方式変更部30を有する。データ管理方式実行部20は、データ排他制御機能とデータ配置管理機能を有する。
【0060】
データセット識別部51は、データ利用プロセス91からのアクセスに基づいて、当該アクセスがいずれのデータセットに含まれるデータに対するものであるのかを識別をする。例えば、データセット識別部51は、データセットと一意に対応づけられたアクセス待ち受け部(非図示)を複数有していてもよい。このとき、データ利用プロセス91は、利用するデータが所属するデータセットに対応するアクセス待ち受け部にアクセスし、データセット識別部51はアクセスを受けたアクセス待ち受け部によってデータセットを特定するようにしてもよい。
【0061】
ネットワークプロトコルがTCP/IPである場合には、一例として、アクセス待ち受け部による識別においてTCPポート番号又は仮想IPアドレスを利用してもよい。このとき、データセット識別部51は、異なるポート又はアドレスに対する接続を、異なるデータセットに対するアクセスであると認識することができる。
【0062】
データセット識別部51は、データ利用プロセス91から、アクセスとともに、データセット識別情報を受け取ることによって、データセットを識別するようにしてもよい。データセット識別情報は、一例として、プロセス91を利用するユーザ識別子から生成することができる。ネットワークプロトコルがHTTPである場合には、例えば、COOKIEを利用することによりユーザを特定することができる。
【0063】
データセット識別部51は、データ識別子からデータセットを特定することができるデータ・データセット対応情報(非図示)を保持するとともに、データ利用プロセス91からのアクセスに含まれるデータ識別子とデータ・データセット対応情報に基づいて、データセットを特定するようにしてもよい。例えば、データ識別子のうちの先頭の数バイトがデータセットを表すようにしてもよい。また、データセットが仮想ボリュームであり、ネットワークプロトコルがSCSIである場合には、アクセス中に仮想ボリューム番号を埋め込んでアクセスするようにしてもよい。
【0064】
データセット識別部51は、データ利用プロセス91又はデータ利用プロセス91が動作するユーザ計算機90を特定するユーザ識別情報からデータセットを特定することができるクライアント・データセット対応情報(非図示)を保持するとともに、データ利用プロセス91からのアクセスを受けることで得られるユーザ識別情報とクライアント・データセット対応情報とに基づいて、データセットを特定するようにしてもよい。例えば、ユーザ計算機90のアドレス又はネットワークアドレスをユーザ識別情報とすることができる。
【0065】
また、上述のデータセット識別部51を適宜組み合わせて用いるようにしてもよい。例えば、ユーザ計算機90のアドレスとユーザIDの双方を用いるようにしてもよい。さらに、上述のデータセット識別部51を段階的に用いるようにしてもよい。例えば、待ちうけポートアドレスでデータセットが指定されたものの、アクセスに含まれるデータ識別子の示すデータが指定されたデータセットには含まれないことが判明した場合には、ストレージシステムは、ユーザ計算機アドレスでデータセットを識別するようにしてもよい。
【0066】
ストレージノード70a〜70cに対するデータ配置は、ストレージノード70a〜70cで動作するデータ配置管理機能によって決定され、特に、当該機能によりデータ識別子と格納ノードの対応を管理する。データ配置管理機能は、複数のデータ配置管理方式のうちの1つによって実現される。
【0067】
データ配置管理方式として、例えば、分散データ配置管理方式又は集中データ配置管理方式を用いることができる。分散データ配置管理方式は、複数のストレージノードのデータ配置管理機能の間でネットワークを介して情報をやり取りすることによって実現される。一方、集中データ配置管理方式は、少なくとも1つのストレージノードにおけるデータ配置管理機能を実現することなく、当該機能に対する要求を他のストレージノードにおけるデータ配置管理機能に委譲する(すなわち、スタブ化データ管理部となる)方式をいう。
【0068】
図4は、本実施形態に係るストレージシステムにおける分散データ配置管理機能の一例を説明するための図である。データ配置管理機能は、一例として、分散データ管理方式の一種である、分散ハッシュテーブルによって実現することができる。図4を参照して、このときのデータ配置管理機能について説明する。
【0069】
ここでは、データセットds1に対するデータ配置管理機能が、分散ハッシュテーブルによって実現されているものとする。分散ハッシュテーブルによるデータ配置管理機能には、バイト列dに対して整数値を出力するハッシュ関数h(d)と、ハッシュ関数の出力値の範囲に基づくノードの割り当て表とが含まれる。図4を参照して、対象ノードを決定するときの動作について説明する。
【0070】
ユーザ計算機90は、データ識別子を含む検索依頼を1つのストレージノードに送信する。ここでは、検索依頼を受信するストレージノードをストレージノード70aとする。ストレージノード70aは、データセット識別部51により、当該データ識別子の示すデータがいずれのデータセットに属するかを特定する。次に、当該データセットのデータ配置を管理するデータ配置管理機能は、データ識別子dをハッシュ関数h(d)の入力としたときに出力されたハッシュ値xに基づいて、ノード割り当て表からデータ配置格納ストレージノードを決定する。ここでは、ストレージノード70bのデータ配置管理機能が、ハッシュ値xのストレージノード割当を管理するものとする。このとき、ストレージノード70aで動作するデータ配置管理機能は、ストレージノード70bのデータ配置管理機能に検索依頼を委譲する。
【0071】
ストレージノード70bのデータ配置管理機能は、データ識別子dとデータを格納するストレージノードの対からなる割当表を管理しており、当該割当表に基づいて格納ストレージノードを決定する。ストレージノード70bのデータ配置管理機能は、格納ストレージノードを識別する識別子をユーザ計算機90に返信する。以上により、ユーザ計算機90のデータ利用プロセス91は、データ位置を特定し、利用することができる。
【0072】
データ配置管理機能は、一例として、集中データ管理方式の一種である、集中表管理方式によって実現することができる。集中表管理方式によると、唯一のストレージノード(例えば、ストレージノード70a)のデータ配置管理機能がデータ配置を管理する。それ以外のストレージノードのデータ配置管理機能は、アクセスされたときに、ストレージノード70aのデータ配置管理機能に当該情報を送信し、データ配置管理を委譲する。このように、自らデータ管理に関する処理を行うことなく管理機能を委譲した状態のストレージノードを、「スタブ化している」という。
【0073】
ストレージノード70aのデータ配置管理機能は、データ識別子から当該データが含まれるノードを抽出することができる表を管理しており、当該表を参照することによって、データ識別子と格納ノードとの間の対応を管理する。また、いくつかのストレージノードのデータ配置管理機能は、ストレージノード70aが故障した場合に備えて、データ配置管理情報の一部又は全部を複製したものを保持し、つねにストレージノード70aの死活を確認するようにしてもよい。
【0074】
また、上記の分散データ管理方式と集中データ管理方式とを組み合わせて用いるようにしてもよい。例えば、一部のストレージノードは分散データ管理を行い、残りのストレージノードのデータ配置管理機能は、分散データ管理を行うノードに処理を委譲してもよい。なお、データ配置管理機能の方式は、上述の方式に限定されない。
【0075】
ユーザ計算機90のデータ利用プロセス91は、アクセスに対するトランザクション性のうちの分離性又は一貫性制約に関する情報を送信することによって、当該トランザクション性を満たしつつデータアクセスを行うことができる。このことは、排他制御によって実現される。例えば、一のアクセスによるデータの変更が他のアクセスに何時見えるようになるかを表す分離性レベルを指定することによって、複数の処理がお互いの影響をどの程度受けるかを制御する。これは、各データ又はデータ配置管理機能に対するロックによって実現される。
【0076】
ストレージノード70a〜70cのデータに対する排他制御は、データセットごとに、データ排他制御機能(図3参照)により管理される。データ排他制御機能は、複数のデータ排他制御方式のうちの1つによって実現される。
【0077】
データ排他制御方式として、例えば、分散排他制御方式又は集中排他制御方式を用いることができる。分散排他制御方式は、複数のストレージノードの分散排他制御機能の間でネットワークを介して情報をやり取りすることによって実現される。一方、集中分散排他制御方式は、少なくとも1つのストレージノードにおけるデータ排他制御機能を実現することなく、当該機能に対する要求を他のストレージノードにおけるデータ配置管理機能に委譲する(すなわち、スタブ化データ管理部となる)方式をいう。
【0078】
例えば、データ排他制御機能は、上記の分散データ配置管理機能を応用して実現することができる。この場合、ストレージノードは、それぞれ、自身が格納しているデータに対するロック情報を抽出することができるロック表を管理している。ロック情報は、現在、当該データに対するロックを保持しているデータ利用プロセス91を識別する値を含む。当該ロック表を利用することによって、データ識別子とアクセスの可否を管理する。ストレージシステムが同一のデータの複製を複数作成して複数のストレージノードに保存している場合には、複製のうち1つを予めプライマリデータとし、当該プライマリデータを保存するストレージノードにロック情報を格納するものとする。
【0079】
ユーザ計算機90からのアクセスは、まず、上記の分散データ配置管理機能によって、当該データを保持するストレージノード、すなわち、当該データに対するロック情報を保持するストレージノードに到達する。当該ストレージノードは、ロック表を走査して、当該アクセスに対するアクセスの可否を決定する。
【0080】
非特許文献6に記載された分散データ排他制御機能によると、複数のストレージノード(例えば、5つ)で構成されたグループ中のデータ排他制御機能が、当該データセットに対するロック情報の複製を共有する。分散合意アルゴリズムにより、グループのストレージノードのうちの1台がマスタに選出され、選出されたマスタがロック表を管理する。排他制御アクセスのうちの変更を伴う処理はマスタノードに到達し、ロック情報の変更はマスタによりグループ内のストレージノードに伝播する。変更を伴わない処理は、グループのいずれのノードでもロック情報の複製を用いて処理することができる。
【0081】
データ排他制御機能は、一例として、集中データ管理方式の一種である、集中ロックマネージャによって実現することができる。集中ロックマネージャによると、唯一のストレージノード(例えば、ストレージノード70a)のデータ排他制御機能がデータの排他制御を管理する。それ以外のストレージノードのデータ排他制御機能は、アクセスされたときに、ストレージノード70aのデータ排他制御機能に当該情報を送信し、データ排他制御を委譲する。このように、自らデータ排他制御機能に関する処理を行うことなく管理機能を委譲した状態のストレージノードを、データ配置管理のときと同様に、「スタブ化している」という。
【0082】
ストレージノード70aのデータ排他制御機能は、データ識別子から当該データに対するロック情報を抽出することができるロック表を管理している。ロック情報は、現在当該データに対するロックを保持しているデータ利用プロセスを識別する値を含む。当該ロック表を参照することによって、データ識別子とアクセスの可否を管理する。また、あるアクセスがデータ排他制御機能に到達したときに、すでにロック表から当該アクセスに対するロックが保持されており、データアクセスを許可できない場合には、当該アクセスを表す情報を当該データに対する待ち行列に登録し、当該データに対するロックが解除されたときに、待ち行列に登録されている待ちプロセスに対する処理を続けるようにしてもよい。また、いくつかのストレージノードのデータ排他制御機能は、ストレージノード70aが故障した場合に備えて、データ排他制御機能の一部又は全部の複製を保持し、つねにストレージノード70aの死活を確認するようにしてもよい。
【0083】
また、上記の分散データ排他制御方式と集中データ排他制御方式とを組み合わせて用いるようにしてもよい。例えば、一部のストレージノードは分散データ排他制御を行い、残りのストレージノードのデータ配置管理機能は、分散データ排他制御を行うノードに処理を委譲する(スタブ化する)こともできる。なお、データ排他制御機能の方式は、上記の方式に限定されない。
【0084】
以下では、データ配置管理機能とデータ排他制御機能とを、データ管理機能と総称する。データ管理機能の方式を変更するとは、データ配置管理機能がX方式であるものをY方式に変更するとともに、データ排他制御機能がZ方式であるものをW方式に変更することをいう。データ管理機能を分散方式から集中方式に変更するとは、データ配置管理機能を分散方式Pから集中方式Qに変更するとともに、データ排他制御機能を分散方式Rから集中方式Sに変更することをいう。一方、データ管理機能を集中方式から分散方式に変更するとは、データ配置管理機能を集中方式Qから分散方式Pに変更するとともに、データ排他制御機能を集中方式Sから分散方式Rに変更することをいう。
【0085】
方式変更部30は、データ管理方式実行部20が用いるデータ管理機能の方式を変更する。図5は、本実施形態に係るストレージシステムにおける方式変更部30の構成を示すブロック図である。図5を参照すると、方式変更部30は、静止点情報生成部31、管理差分情報生成保持部32、静止点情報送信部33、静止点情報受信部34、管理差分情報送信部35、管理差分情報受信部36、管理差分情報適用部37及び方式停止切替再開部38をさらに有する。
【0086】
静止点情報生成部31は、特定時刻における、送信元ストレージノードのデータ配置情報22と排他制御情報24の値を静止点情報として生成する。静止点情報送信部33は、静止点情報を他のストレージノードに送信する。
【0087】
静止点情報受信部34は、他のストレージノードにより送信された静止点情報を受信して保持する。
【0088】
管理差分情報生成保持部32は、ユーザ計算機90からのアクセスと静止点情報と現時刻における上記値を比較し、静止点情報と現時刻における上記値との差を管理差分情報として生成して保持する。管理差分情報送信部35は、管理差分情報を他のストレージノードに送信する。
【0089】
管理差分情報受信部36は、他のストレージノードにより送信された管理差分情報を受信する。管理差分情報適用部37は、第1の時刻(t1)における静止点情報と、時刻t1からそれ以後の第2の時刻(t2)までの管理差分情報に基づいて、時刻t2におけるデータ配置情報22と排他制御情報24を新たな静止点情報として復元する。
【0090】
かかる構成を備えた方式変更部30は、次のようにしてデータ管理方式を変更する。図6は、本実施形態に係るストレージシステムにおける方式変更部30の動作を示すシーケンス図である。図6を参照して、方式変更部30の動作について説明する。
【0091】
方式変更は、データ配置情報22と排他制御情報24(以下、「データ管理情報」という。)の交換と、その後のアルゴリズムの切り替えによって行われる。
【0092】
まず、変更後方式を実現するために、どのストレージノードがどのデータ管理情報を保持すべきかを決定し、管理情報送信計画を各ストレージノードが作成する。
【0093】
次に、各ストレージノードは、静止点情報生成部31によって静止点情報を生成する。次に、各ストレージノードは、管理情報送信計画に基づいて、静止点情報に含まれる値のうちの必要なものを対象となる送信先ストレージノードに送信する。
【0094】
送信中のデータ配置情報22と排他制御情報24に対するユーザ計算機90からのアクセスによるデータ管理情報の変更を第1の管理差分情報として送信元ストレージノードの管理差分情報生成保持部32に保持する。また、当該時点におけるユーザ計算機90からのアクセスに必要なデータ管理情報は、まず管理差分情報を走査してその値を返し、管理差分情報に値が保持されていない場合には直近の静止点情報から値を返す。
【0095】
静止点情報の必要な値を送信終了後、静止点情報送信中にデータ管理情報が更新された場合には、送信元ストレージの管理差分情報生成保持部32に管理差分情報が存在する。
【0096】
管理差分情報が存在し、そのサイズが所定のサイズ以上である場合、又は、所定の回数に亘る管理差分情報の転送がなされていない場合には、送信元ストレージノードは、送信先ストレージノードに管理差分情報を送信する。管理差分情報の送信中における、ユーザ計算機90からのアクセスによるデータ管理情報の変更は、第2の管理差分情報として保持する。また、当該時点におけるユーザ計算機90からのアクセスに必要なデータ管理情報は、まず第2の管理差分情報を走査してその値を返し、第2の管理差分情報に値が保持されていない場合には第1の管理差分情報を走査してその値を返し、第1の管理差分情報にも存在しない場合には直近の静止点情報の値を返す。
【0097】
送信先のストレージノードにおいて、管理差分情報受信部36は管理差分情報を受信し、管理差分情報適用部37は受信した管理差分情報と受信した静止点情報に基づいて、送信時点における管理差分情報を送信先ストレージに再現する。
【0098】
第1の管理差分情報の送信後、上記と同様に第2の管理差分情報が存在する場合には、当該管理差分情報のサイズが所定のサイズ以下となり、かつ、所定の回数に亘る管理差分情報の送信が所定の回数以上となるまで(図5のステップS11のNo)、第1の管理差分情報を第2の管理差分情報によって置き換え、第2の管理差分情報を送信しつつ第3の管理差分情報を作成する、という動作を繰り返す。一方、管理差分情報のサイズが所定のサイズ以下となり、かつ、所定の回数以上に亘って管理差分情報の送信が所定の回数以上となった場合には(図5のステップS11のYes)、かかる動作を停止する。
【0099】
方式停止切替再開部38は、データ管理機能を変更する。まず、方式停止切替再開部38は、データ管理を停止する。次に、受信したデータ管理情報を用いて新しいデータ管理を行う。方式停止切替再開部38は、必要であれば他のストレージノードにおけるデータ管理機能と通信を行って同期を行う。次に、新しいデータ管理を再開する。これにより、データ配置管理機能、及び/又は、データ排他制御機能の方式を変更することができる。
【0100】
本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じた排他制御方式を提供することができることから、ストレージシステムの性能を向上させることができる。また、本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じたデータ配置管理方式を提供することができることから、ストレージシステムにおける資源の利用効率を向上させることもできる。
【0101】
その理由は、データセット識別部51によってアクセス対象となるデータセットを識別し、データセットごとに異なるデータ管理方式を適用可能としているからである。また、方式変更部30によってデータセットごとにデータ管理方式を動的に変更可能としているからである。さらに、方式変更部30は、静止点情報を活用してシステムがアクセスを停止する期間を短く抑えていることから、方式変更に伴うシステム性能の低下を防ぐこともできる。
【0102】
(第2の実施形態)
本発明の第2の実施形態に係るストレージシステムについて図面を参照して説明する。図7は、本実施形態に係るストレージシステムにおける方式変更部30の構成を示すブロック図である。図7を参照すると、方式変更部30は、分散化変更部47と集中化変更部48をさらに有する。
【0103】
分散化変更部47は、集中データ管理方式で動作するデータ管理部50のうち、データ配置管理機能又はデータ排他制御機能を実現しているデータ管理部50の保持するデータ配置情報22又は排他制御情報24の一部を、データ配置管理機能又はデータ排他制御機能を実現することなく他に委譲している他のスタブ化データ管理部50に送信し、送信終了後、当該他のスタブ化データ管理部50に、データ配置管理機能又はデータ排他制御機能を実現させる。
【0104】
これは、第1の実施形態における方式変更部30において、管理情報送信計画と方式停止切替再開部38の動作を以下のようにすることで実現することができる。
【0105】
例えば、変更前後の方式がいずれも分散データ管理方式である場合には、すべてのストレージノードは、お互いにデータ管理情報を送信し合う必要がある。また、方式停止切替再開部38は、分散同期アルゴリズムによって停止と再開のタイミングを合わせる必要がある。
【0106】
一方、変更前の方式が集中データ管理方式であり、変更後の方式が分散データ管理方式である場合には、集中化データ管理方式でスタブ化していないストレージノードが送信元ノードとなり、すべてのストレージノードが送信先ノードに該当する。また、方式停止切替再開部38は、分散同期アルゴリズムによって停止と再開のタイミングを合わせる必要がある。ここで、分散同期アルゴリズムとして、一例として、非特許文献8に記載された方法を用いることができる。
【0107】
集中化変更部48は、データ管理部50が分散データ管理方式で動作する少なくとも1つのストレージノードにおけるデータ配置情報22と排他制御情報24を他のストレージノードのデータ管理部50に送信し、送信終了後、データ配置管理機能を他のストレージノードに委譲することで該データ管理部50をスタブ化データ管理部とする。
【0108】
これは、第1の実施形態における方式変更部30において、管理情報送信計画と方式停止切替再開部38の動作を以下のようにすることで実現することができる。
【0109】
変更前の方式が分散データ管理方式であり、変更後の方式が集中データ管理方式である場合には、集中化によりスタブ化するストレージノードのみが、データ管理情報を送信する。また、方式停止切替再開部38は、各々のストレージノードが同期せずにスタブ化することができる。
【0110】
本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じた排他制御方式を提供することができることから、ストレージシステムのシステム性能を向上させることができる。また、本実施形態に係るストレージシステムによると、データセットごとに時間的に変化する利用傾向に応じたデータ配置管理方式を提供することができることから、ストレージシステムにおける資源の利用効率を向上させることもできる。
【0111】
その理由は、データセット識別部51によってアクセス対象となるデータセットを識別し、データセットごとに分散と集中という異なるデータ管理方式を適用可能としているからである。読み出しアクセス頻度が高く、多くのストレージノードを参加させた方が効率がよいデータセットについては高速なストレージノードを多数参加させた分散データ管理とし、その他のデータセットについては集中管理方式とすることで、利用頻度の高いデータセットに対するアクセス性能を向上させることができる。
【0112】
さらに、方式変更部30によってデータセットごとにデータ管理方式を動的に変更可能としている。このとき、第1のデータセットの利用が終了し、次に第2のデータセットが多くのアクセスを受ける場合、分散データ管理方式で動作していた第1のデータセットを集中管理方式に変更し、第2のデータセットを分散データ管理方式とすることで、データセットごとに時間的に変換する利用傾向に応じたデータ配置管理方式を提供することができる。
【0113】
方式を変更する際、第2のデータセットのデータ管理機能をより高性能なストレージノードに再配置することで、第2のデータセットに対するアクセス速度をさらに向上させることもできる。
【0114】
また、第1のデータセットを利用していたユーザ計算機90からのアクセスを受けていたストレージノードにおいては、データ管理機能をスタブ化し、アクセスを他のストレージノードに受け流す。したがって、データ管理方式を変更した場合においても、ユーザ計算機90側からすると、性能面を除いて従前と同様にデータを利用することができる。
【0115】
(第3の実施形態)
本発明の第3の実施形態に係るストレージシステムについて、図面を参照して説明する。本実施形態では、格納されたデータの再配置と当該発明の協調動作を考慮した動作について記載する。
【0116】
本実施形態においては、ストレージノード70は、高速低容量のデータ記憶装置60を有する高速低容量ストレージノードと、低速大容量のデータ記憶装置60を有する低速大容量ストレージノードを含む。ストレージノード70は、用いられるデータ記憶装置60の容量、及び、データ記憶装置60を実現する装置(例えば、磁気ディスク、不揮発性メモリ)の種類に応じて分類してもよい。ただし、分類方法は、これらに限られない。
【0117】
図8は、本実施形態に係るストレージシステムの構成を示すブロック図である。図8を参照すると、本実施形態のストレージシステムは、第1の実施形態のストレージシステム(図1参照)に対して、さらに、データ移動実行部77と管理方式変更部78を備えている。
【0118】
データ移動実行部77は、システム運用中にデータの利用傾向(例えば、最近一定時間のアクセス数、アクセスされたデータのサイズの累計)に基づいて、より利用頻度の高いデータセットをより高速なストレージノードに移動するとともに、より利用頻度の低いデータセットをより低速なストレージノードに移動する。これにより、ストレージシステム内の資源を有効に利用することができる。
【0119】
管理方式変更部78は、データ移動実行部77によりデータセットを移動した場合に、方式変更部30を用いて、移動対象データセットのデータ管理方式を変更する。管理方式変更部78は、少なくとも1つの高速低容量ストレージに分散格納された第1のデータセットを分散データ管理方式とし、データ移動実行部により第1のデータセットを低速大容量ストレージに移動した場合には、第1のデータセットに対応するデータ管理部を集中データ管理方式とする(データ縮退機能)。ただし、集中データ管理方式のうちスタブ化されないデータ管理機能は、高速低容量ストレージ上に配置するものとする。
【0120】
また、管理方式変更部78は、少なくとも1つの低速大容量ストレージノードに分散格納された第2のデータセットを集中データ管理方式とし、スタブ化されていないデータ管理機能の一部は高速低容量ストレージノードに配置し、データ移動実行部78により第2のデータセットを高速低容量ストレージに移動した場合には第2のデータセットに対応するデータ管理部を分散データ管理方式とする(データ展開機能)。
【0121】
上記のデータ縮退機能とデータ展開機能を利用することで、データ管理機能はつねに高速低容量ストレージ上に位置し、ユーザ計算機に対する応答性能を維持することができる。さらに、データの利用形態を反映するデータ再配置処理に伴ってデータ管理機能の方式を変更することで、データセットの利用傾向により合致したデータ管理機能を提供することができる。
【0122】
(第4の実施形態)
本発明の第4の実施形態に係るストレージシステムについて、図面を参照して説明する。本実施形態においては、ストレージシステムおける消費電力の削減を図る。図9は、本実施形態に係るストレージシステムにおけるストレージノードの構成を示すブロック図である。図9を参照すると、本実施形態に係るストレージシステムにおけるストレージノード70の一部又は全部は、第1の実施形態のストレージノード70の構成(図2参照)に対して、さらに、特定データ管理方式実行部75及び電力制御部76を備えている。
【0123】
特定データ管理方式実行部75は、少なくとも1つのデータ管理方式(以下、「低消費電力データ管理方式」という。)を低消費電力で実行可能とするとともに、ストレージノード70は、自ノードにおいて低消費電力データ管理方式のみが動作している場合には、CPU71、メモリ72、I/Oコントローラ73又はこれらの組み合わせを低消費電力モードとするか又は停止させる。
【0124】
電力制御部76は、自ノードで動作するデータ管理方式を監視し、方式変更部30によって低消費電力データ管理方式以外のデータ管理方式の動作が終了した場合には、CPU71、メモリ72、I/Oコントローラ73又はこれらの組み合わせを低消費電力モードにするか又は停止させる。また、方式変更部30によって低消費電力データ管理方式以外のデータ管理方式の動作が開始する前に、CPU71、メモリ72、I/Oコントローラ73又はこれらの組み合わせが低消費電力モードで動作しているか又は停止している場合には、通常の動作状態に戻す。
【0125】
特定データ管理方式実行部75として、例えば、集中データ管理方式のスタブ化ノードをネットワークカードに実装することができる。受け取ったパケットをそのまま指定されたデータ管理機能を有する装置に転送する機能を備えたハードウェアをネットワークカードに配置することによって、ストレージノード70自体が有するCPU71又はメモリ72を使用することなく処理することができる。
【0126】
また、特定データ管理方式実行部75は、例えば、特定のデータ管理方式を実装したASIC、又は、FPGAのような可変ロジックによって実装してもよい。ただし、特定データ管理方式実行部75の実装は、これらに限定されない。
【0127】
特定データ管理方式実行部75と電力制御部76を設けることによって、データ管理方式の変換に伴い、電力消費をさらに削減することができる。特定データ管理方式実行部75によると、低消費電力で動作させることができるデータ管理方式しか動作しないときに、使用電力量を削減することができるからである。特に、ストレージシステムに格納された多数のデータセットに対するアクセス量が少ない場合には、多数のデータセットのデータ管理方式を集中データ管理方式にすることができる。集中管理データ方式によると、多くのストレージノードがスタブ化されているため、スタブ化されたノードの機能のみを低消費電力で提供可能な機能を導入することによって、ストレージシステムは、ユーザ計算機からのアクセスを棄却したり、ユーザ計算機にデータ管理機能を探索させるような機能を設けることなく、ストレージノードの消費電力を抑えることができる。
【産業上の利用可能性】
【0128】
本発明に係るストレージシステムは、分散ストレージ、並列ファイルシステム、RAIDアレイ、分散データベース、データグリッド、クラウドデータ格納基盤のようなストレージシステムに適用することができる。特に、本発明に係るストレージシステムによると、高速低容量なデータグリッドによってユーザの処理を実行し、低速大容量なストレージによってユーザのデータを保持するストレージシステムの性能を向上させることができる。
【0129】
以上の記載は実施形態に基づいて行ったが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更を加えることができる。
【符号の説明】
【0130】
10、10a〜10c データ管理装置
20 データ管理方式実行部
22 データ配置情報
24 排他制御情報
30 方式変更部
31 静止点情報生成部
32 管理差分情報生成保持部
33 静止点情報送信部
34 静止点情報受信部
35 管理差分情報送信部
36 管理差分情報受信部
37 管理差分情報適用部
38 方式停止切替再開部
40 方式選択部
47 分散化変更部
48 集中化変更部
50、50a〜50c データ管理部
51 データセット識別部
60、60a〜60c データ記憶装置
70、70a〜70c ストレージノード
71 CPU
72 メモリ
73 I/Oコントローラ
74 通信コントローラ
75 特定データ管理方式実行部
76 電力制御部
77 データ移動実行部
78 管理方式変更部
80 ネットワーク
90 ユーザ計算機
91 データ利用プロセス

【特許請求の範囲】
【請求項1】
複数のデータセットが格納されたデータ記憶装置を備えるとともに、
前記複数のデータセットのそれぞれに対応するデータ管理部を有するデータ管理装置を備え、
前記データ管理部は、対応するデータセットに含まれるデータを検索するデータ配置管理機能、及び、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御機能を、複数のデータ管理方式のいずれかに基づいて実現するデータ管理方式実行部と、
前記データ管理方式実行部におけるデータ管理方式を、前記複数のデータ管理方式のうちの第1のデータ管理方式から第2のデータ管理方式に変更する方式変更部をさらに備えていることを特徴とするストレージノード。
【請求項2】
前記複数のデータセットは、それぞれ、データ識別子により特定されるデータを含み、
前記データ管理装置は、データ利用プロセスからデータへのアクセスを受けた場合に前記複数のデータセットのうちの該データが所属するデータセットを特定するデータセット識別子を返すデータセット識別部をさらに備え、
前記データ管理部は、データと該データが格納されたデータ記憶装置との間の対応を示すデータ配置情報及び前記データ識別子を参照して該データが格納されたデータ記憶装置を検索することで、前記データ配置管理機能を実現することを特徴とする、請求項1に記載のストレージノード。
【請求項3】
前記データ管理部は、格納されたデータに対する排他制御情報を参照して該データに対するデータ利用プロセスによるアクセスを一時的に停止することで、前記データ排他制御機能を実現することを特徴とする、請求項1又は2に記載のストレージノード。
【請求項4】
前記データ管理部は、データ管理方式情報からデータ管理方式を表すデータ管理方式識別子を生成する方式選択部をさらに備え、
前記データ管理方式実行部は、前記複数のデータ管理方式のうちの前記データ管理方式識別子によって特定されるデータ管理方式に基づいて、前記データ配置管理機能と前記データ排他制御機能を実現することを特徴とする、請求項1乃至3のいずれか1項に記載のストレージノード。
【請求項5】
ネットワークを介して互いに接続された、請求項1乃至4のいずれか1項に記載のストレージノードを複数備えていることを特徴とするストレージシステム。
【請求項6】
前記複数のデータ管理方式は、少なくとも、複数のストレージノードの分散データ管理機能の間でネットワークを介して情報をやり取りすることによって前記データ配置管理機能と前記データ排他制御機能を実現する分散型のデータ管理方式と、
前記データ配置管理機能又は前記データ排他制御機能を実現することなく、これらの機能に対する要求を他のストレージノードに委譲することで、少なくとも1つのストレージノードがスタブ化されている集中型のデータ管理方式を含むことを特徴とする、請求項5に記載のストレージシステム。
【請求項7】
前記方式変更部は、データ管理部が前記分散型のデータ管理方式で動作する少なくとも1つのストレージノードにおけるデータ配置情報と排他制御情報を他のストレージノードのデータ管理部に送信し、送信終了後、データ配置管理機能を他のストレージノードに委譲することで該データ管理部をスタブ化する集中化変更部と、
前記集中型のデータ管理方式で動作するデータ管理部のうち、データ配置管理機能又はデータ排他制御機能を実現しているデータ管理部の保持するデータ配置情報又は排他制御情報の一部を、スタブ化された他のデータ管理部に送信し、送信終了後、当該他のデータ管理部にデータ配置管理機能又はデータ排他制御機能を実現させる分散化変更部をさらに備えていることを特徴とする、請求項5に記載のストレージシステム。
【請求項8】
前記方式変更部は、特定時刻における送信元ストレージノードの前記データ配置情報と前記排他制御情報の値を静止点情報として生成する静止点情報生成部と、
静止点情報を他のストレージノードに送信する静止点情報送信部と、
他のストレージノードから送信された静止点情報を受信して保持する静止点情報受信部と、
ユーザ計算機からのアクセスと静止点情報と現時刻における前記値を比較し、静止点情報と現時刻における前記値との差を管理差分情報として生成して保持する管理差分情報生成保持部と、
管理差分情報を他のストレージノードに送信する管理差分情報送信部と、
他のストレージノードから送信された管理差分情報を受信する管理差分情報受信部と、
第1の時刻における静止点情報と該第1の時刻から第2の時刻までの管理差分情報に基づいて、該第2の時刻におけるデータ配置情報と排他制御情報を新たな静止点情報として復元する管理差分情報適用部と、
静止点情報生成部により静止点情報を生成し、静止点情報の値を送信先ストレージノードに送信し、送信中のデータ配置情報と排他制御情報に対する変更を第1の管理差分情報として送信元ストレージノードにおける管理差分情報生成保持部に保持し、静止点情報の値を送信終了後に送信元ストレージにおける管理差分情報生成保持部に管理差分情報が存在する場合には、管理差分情報を送信先ストレージノードの管理差分情報受信部に送信し、送信先のストレージノードにおける管理差分情報適用部により、受信した管理差分情報と受信した静止点情報に基づいて送信時点における管理差分情報を送信先ストレージに再現する動作を、管理差分情報のサイズが所定のサイズ以下となり、かつ、管理差分情報の送信回数が所定の回数以上となるまで繰り返させた後、前記データ管理方式実行部におけるデータ管理方式を変更し、残りの管理差分情報を送信する方式停止切替再開部をさらに備えていることを特徴とする、請求項5乃至7のいずれか1項に記載のストレージシステム。
【請求項9】
前記集中化変更部は、前記方式停止切替再開部においてデータ配置管理機能をスタブ化することを特徴とする、請求項8に記載のストレージシステム。
【請求項10】
前記データセット識別部は、前記複数のデータセットのそれぞれと一意に対応付けられたアクセス待ち受け部をさらに有し、
前記データ利用プロセスは、利用するデータが所属するデータセットに対応するアクセス待ち受け部にアクセスし、
前記データセット識別部は、アクセスを受けたアクセス待ち受け部に基づいてデータセットを特定することを特徴とする、請求項5乃至9のいずれか1項に記載のストレージシステム。
【請求項11】
前記データセット識別部は、前記データ利用プロセスからアクセスとともにデータセット識別情報を受け取ることによって、データセットを特定することを特徴とする、請求項5乃至10のいずれか1項に記載のストレージシステム。
【請求項12】
前記データセット識別部は、データ識別子からデータセットを特定することができるデータ・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスに含まれるデータ識別子と該データ・データセット対応情報とに基づいてデータセットを特定することを特徴とする、請求項5乃至11のいずれか1項に記載のストレージシステム。
【請求項13】
前記データセット識別部は、データ利用プロセス又はデータ利用プロセスが動作するユーザ計算機を特定するユーザ識別情報からデータセットを特定することができるクライアント・データセット対応情報を保持するとともに、データ利用プロセスからのアクセスを受けることで得られるユーザ識別情報と該クライアント・データセット対応情報とに基づいてデータセットを特定することを特徴とする、請求項5乃至12のいずれか1項に記載のストレージシステム。
【請求項14】
前記複数のストレージノードは、高速低容量のデータ記憶装置を有する高速低容量ストレージノードと、低速大容量のデータ記憶装置を有する高速低容量ストレージノードを含み、
前記高速低容量ストレージに分散格納されたデータセットを前記分散型のデータ管理方式とし、該データセットを低速大容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記集中型のデータ管理方式とする管理方式変更部をさらに備えていることを特徴とする、請求項5乃至13のいずれか1項に記載のストレージシステム。
【請求項15】
前記管理方式変更部は、前記低速大容量ストレージに分散格納されたデータセットについて前記集中型のデータ管理方式とし、該データセットを前記高速低容量ストレージに移動した場合には、該データセットに対応するデータ管理部を前記分散型のデータ管理方式とすることを特徴とする、請求項14に記載のストレージシステム。
【請求項16】
前記ストレージノードは、前記複数のデータ管理方式のうちの所定のデータ管理方式を低消費電力で実行する特定データ管理方式実行部と、
前記所定の管理方式以外のデータ管理方式を実行する一般データ管理方式実行部と、
自ノードにおいて前記所定の管理方式以外のデータ管理方式が動作していない場合には、前記一般データ管理方式実行部を低消費電力状態に移行させる電力制御部をさらに備えていることを特徴とする、請求項5乃至15のいずれか1項に記載のストレージシステム。
【請求項17】
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するデータ管理部が、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理工程と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御工程と、
前記データ配置管理工程と前記データ排他制御工程におけるデータ管理方式を、前記複数のデータ管理方式のうちの第1のデータ管理方式から第2のデータ管理方式に変更する工程を含むことを特徴とするデータ記憶方法。
【請求項18】
ストレージのデータ記憶装置に格納された複数のデータセットのそれぞれに対応するCPUに対して、
複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータを検索するデータ配置管理処理と、
前記複数のデータ管理方式のいずれかに基づいて、対応するデータセットに含まれるデータに対するアクセスを一時的に停止するデータ排他制御処理と、
前記データ配置管理処理と前記データ排他制御処理におけるデータ管理方式を、前記複数のデータ管理方式のうちの第1のデータ管理方式から第2のデータ管理方式に変更する処理を実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−53932(P2011−53932A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2009−202543(P2009−202543)
【出願日】平成21年9月2日(2009.9.2)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】