(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024047451
(43)【公開日】2024-04-05
(54)【発明の名称】ストレージシステム、データ処理方法及びプログラム
(51)【国際特許分類】
G06F 3/06 20060101AFI20240329BHJP
【FI】
G06F3/06 301N
G06F3/06 305C
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022153067
(22)【出願日】2022-09-26
(71)【出願人】
【識別番号】306037311
【氏名又は名称】富士フイルム株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】近藤 理貴
(72)【発明者】
【氏名】大石 豊
(72)【発明者】
【氏名】増田 優子
(72)【発明者】
【氏名】大塚 美咲
(57)【要約】 (修正有)
【課題】ストレージノードへのデータの転送速度が不均一となる場合においても、レイテンシを抑制し、記録媒体の使用効率の低下を抑制しつつストレージノードへのデータの記録を行う。
【解決手段】ストレージシステム1において、データ転送装置は、ストレージノードであるサーバ20A、20Bに転送可能なデータの数が第1の所定数以上である場合、データを第1の所定数の単位でサーバ20Aに転送する第1の転送処理を行い、第1の所定数に満たない場合、データを第1の所定数よりも少ない第2の所定数の単位でサーバ20Bに転送する第2の転送処理を行う。サーバ20Aは、データ転送装置から転送された第1の所定数のデータに基づいて、第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する。サーバ20Bにおいても同様に、欠損した一部のデータを復元するためのパリティを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを有するデータ転送装置と、各々が、少なくとも1つのプロセッサを有し、前記データ転送装置から転送されたデータを保存する複数のストレージノードとを有するストレージシステムであって、
前記データ転送装置のプロセッサは、
前記ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを前記第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、
前記ストレージノードに転送可能なデータの数が前記第1の所定数に満たない場合、データを前記第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行い、
前記第1のストレージノードのプロセッサは、前記データ転送装置から転送された前記第1の所定数のデータに基づいて、前記第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成し、
前記第2のストレージノードのプロセッサは、前記データ転送装置から転送された前記第2の所定数のデータに基づいて、前記第2の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する
ストレージシステム。
【請求項2】
前記データ転送装置のプロセッサは、転送可能なデータの数が、前記第1の所定数に満たない状態が生じてから所定期間が経過した場合に、前記第2の転送処理を行う
請求項1に記載のストレージシステム。
【請求項3】
前記第1のストレージノードのプロセッサ及び前記第2のストレージノードのプロセッサは、それぞれ、データ欠損に対する耐性が、予め定められた要求水準を満たすようにパリティを生成する
請求項1に記載のストレージシステム。
【請求項4】
前記第1のストレージノード及び前記第2のストレージノードは、同一のグループに属するストレージノードである
請求項1から請求項3のいずれか1項に記載のストレージシステム。
【請求項5】
ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを前記第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、ストレージノードに転送可能なデータの数が前記第1の所定数に満たない場合、データを前記第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行うことを、データ転送装置が有する少なくとも1つのプロセッサが実行し、
前記データ転送装置から転送された前記第1の所定数のデータに基づいて、前記第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する処理を、前記第1のストレージノードが有する少なくとも1つのプロセッサが実行し、
前記データ転送装置から転送された前記第2の所定数のデータに基づいて、前記第2の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する処理を、前記第2のストレージノードが有する少なくとも1つのプロセッサが実行する
データ処理方法。
【請求項6】
ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを前記第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、ストレージノードに転送可能なデータの数が前記第1の所定数に満たない場合、データを前記第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行うことを、
データ転送装置が有する少なくとも1つのプロセッサに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、ストレージシステム、データ処理方法及びプログラムに関する。
【背景技術】
【0002】
複数のデータからなるデータセットに含まれるデータのうち、欠損が生じた一部のデータを復元するためのパリティのストレージノードへの記録に関する技術として、以下の技術が知られている。特許文献1には、情報処理装置と、複数のストレージノードとを備えるストレージシステムが記載されている。ストレージノードは、複数のデータ領域と、複数のデータ領域に対応するパリティ領域とを有する。情報処理装置は、複数のストレージノードのうち一のストレージノードが複数のデータ領域に記憶する複数のデータをそれぞれ複製し、他のストレージノードが有する複数のデータ領域にそれぞれ記憶する。また、情報処理装置は、ストレージノードごとに、複数のデータ領域がそれぞれ記憶するデータに対応するパリティを生成してパリティ領域に記憶する。
【0003】
特許文献2には、プロセッサと、記憶ドライブと、を有するノードを複数備え、データユニットとそれを修復するためのパリティユニットでストライプを構成し、ストライプを構成する各ユニットをそれぞれの別のノードの記憶ドライブに格納する分散ストレージシステムが記載されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2014-191784号公報
【特許文献2】特開2021-86289号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
複数のデータのうち、欠損が生じた一部のデータを復元可能とするためにパリティが生成される。パリティの生成処理は、所定数のデータに基づいて所定数のパリティを生成する処理である。パリティは、例えば、イレージャーコーディング等の冗長符号化技術を用いて所定数のデータを数学的に処理することによって生成される。パリティを生成するために用いるデータの数及び生成するパリティの数の組み合わせによって、データの欠損の対する耐性が決まる。例えば3つのデータに基づいて1つのパリティが生成された場合、欠損したデータが復元可能であるためには、欠損するデータの数は1つ以下であることを要する。一方、3つのデータに基づいて2つのパリティが生成された場合、欠損したデータが復元可能であるためには、欠損するデータの数は2つ以下であることを要する。前者より後者の方がデータの欠損に対する耐性が高いといえる。
【0006】
ここで、データ転送装置が、保存対象のデータをストレージノードに転送し、ストレージノードが、転送されたデータについてパリティを生成し、データ及びパリティを当該ストレージノードが備える記録媒体に記録する場合を考える。データ転送装置におけるデータの転送速度が不均一である等の理由により、ストレージノードに転送されるデータの数が、当該ストレージノードにおいてパリティを生成するために必要な数に満たない状況が生じ得る。この場合、ストレージノードは、処理可能なデータの数がパリティの生成に必要な数に達するまで待機するか、ダミーデータを用いてパリティを生成することになる。前者の場合レイテンシが大きくなり、後者の場合、記録媒体の使用効率が低下する。
【0007】
開示の技術は、上記の点に鑑みてなされたものであり、ストレージノードへのデータの転送速度が不均一となる場合においても、レイテンシを抑制し、記録媒体の使用効率の低下を抑制しつつストレージノードへのデータの記録を行うことを目的とする。
【課題を解決するための手段】
【0008】
開示の技術に係るストレージシステムは、少なくとも1つのプロセッサを有するデータ転送装置と、各々が、少なくとも1つのプロセッサを有し、データ転送装置から転送されたデータを保存する複数のストレージノードとを有する。データ転送装置のプロセッサは、ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、ストレージノードに転送可能なデータの数が第1の所定数に満たない場合、データを第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行う。第1のストレージノードのプロセッサは、データ転送装置から転送された第1の所定数のデータに基づいて、第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する。第2のストレージノードのプロセッサは、データ転送装置から転送された第2の所定数のデータに基づいて、第2の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する。
【0009】
データ転送装置のプロセッサは、転送可能なデータの数が、第1の所定数に満たない状態が生じてから所定期間が経過した場合に、第2の転送処理を行ってもよい。第1のストレージノードのプロセッサ及び第2のストレージノードのプロセッサは、それぞれ、データ欠損に対する耐性が、予め定められた要求水準を満たすようにパリティを生成してもよい。第1のストレージノード及び第2のストレージノードは、同一のグループに属するストレージノードであってもよい。
【0010】
開示の技術に係るデータ処理方法は、ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、ストレージノードに転送可能なデータの数が第1の所定数に満たない場合、データを第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行うことを、データ転送装置が有する少なくとも1つのプロセッサが実行し、データ転送装置から転送された第1の所定数のデータに基づいて、第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する処理を、第1のストレージノードが有する少なくとも1つのプロセッサが実行し、データ転送装置から転送された第2の所定数のデータに基づいて、第2の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する処理を、第2のストレージノードが有する少なくとも1つのプロセッサが実行する、というものである。
【0011】
開示の技術に係るプログラムは、ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、ストレージノードに転送可能なデータの数が第1の所定数に満たない場合、データを第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行うことを、データ転送装置が有する少なくとも1つのプロセッサに実行させるためのプログラムである。
【発明の効果】
【0012】
開示の技術によれば、ストレージノードへのデータの転送速度が不均一となる場合においても、レイテンシを抑制し、記録媒体の使用効率の低下を抑制しつつストレージノードへのデータの記録を行うことが可能となる。
【図面の簡単な説明】
【0013】
【
図1】開示の技術の実施形態に係るストレージシステムの構成の一例を示す図である。
【
図2】開示の技術の実施形態に係るデータ転送装置のハードウェア構成の一例を示す図である。
【
図3】開示の技術の実施形態に係るデータ転送装置の機能的な構成の一例を示す機能ブロック図である。
【
図4】開示の技術の実施形態に係る転送処理の流れの一例を示すフローチャートである。
【
図5A】開示の技術の実施形態に係る第1の転送処理の態様の一例を示す図である。
【
図5B】開示の技術の実施形態に係る第2の転送処理の態様の一例を示す図である。
【
図6】開示の技術の実施形態に係るサーバのハードウェア構成の一例を示す図である。
【
図7】開示の技術の実施形態に係るサーバの機能的な構成の一例を示す機能ブロック図である。
【
図8】開示の技術の実施形態に係る保存処理の流れの一例を示すフローチャートである。
【
図9】開示の技術の実施形態に係るサーバにおける保存処理の態様の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素及び部分には同一の参照符号を付与し、重複する説明は省略する。
【0015】
図1は、開示の技術の実施形態に係るストレージシステム1の構成の一例を示す図である。ストレージシステム1は、データ転送装置10と、サーバ20A及び20Bとを含んで構成されている。ストレージシステム1は、ネットワーク40を介してユーザ端末50に接続されている。ユーザ端末50は、ストレージシステム1を利用するユーザによって使用されるコンピュータである。ストレージシステム1は、ユーザ端末50から保存要求があったデータを保存する。また、ストレージシステム1は、ユーザ端末50からデータの読み出し要求があった場合、要求されたデータを読み出してユーザ端末50に送信する。なお、ストレージシステム1は、データをオブジェクト単位で扱うオブジェクトストレージシステムを構成するものであってもよい。オブジェクトは、データ本体と、データ本体に関するメタデータとを含んで構成される。
【0016】
サーバ20A及び20Bは、それぞれ、ストレージノードを構成するサーバコンピュータであり、ユーザ端末50から送信される保存対象のデータが格納される記録媒体(図示せず)を有する。サーバ20A及び20Bは同一のサーバグループに属する。サーバグループ毎にデータの欠損に対する耐性が規定される。サーバ20A及び20Bは、それぞれ、欠損したデータを復元するためのパリティを生成する機能を有する。サーバ20A及び20Bは、互いに異なる地理的位置に配置されていてもよい。サーバ20Aは、開示の技術における第1のストレージノードの一例である。サーバ20Bは、開示の技術における第2のストレージノードの一例である。サーバ20A及び20Bの詳細については後述する。
【0017】
データ転送装置10は、ユーザ端末50から送信される保存対象のデータをサーバ20A又は20Bに転送する処理を行う。
図2は、データ転送装置10のハードウェア構成の一例を示す図である。データ転送装置10は、CPU101、一時記憶領域としてのRAM(Random Access Memory)102及び不揮発性メモリ103を有する。また、データ転送装置10は、ネットワークに接続されるネットワークインターフェース104及び外部インターフェース105を含む。これらのハードウェアはバス106に接続されている。
【0018】
不揮発性メモリ103は、HDD、SSD、又はフラッシュメモリ等の不揮発性の記憶媒体である。不揮発性メモリ103には、転送処理プログラム110が格納されている。CPU101は、転送処理プログラム110を不揮発性メモリ103から読み出し、RAM102に展開し、実行する。なお、CPU101は、開示の技術における「データ転送装置のプロセッサ」の一例である。
【0019】
図3は、データ転送装置10の機能的な構成の一例を示す機能ブロック図である。データ転送装置10は、CPU101が転送処理プログラム110を実行することにより、取得部11、判定部12及び転送処理部13として機能する。
【0020】
取得部11は、ユーザ端末50から逐次送信される保存対象のデータを取得し、これを不揮発性メモリ103に蓄積する。不揮発性メモリ103に蓄積されたデータは、ストレージノード(サーバ20A及びサーバ20B)に転送可能なデータである。
【0021】
判定部12は、不揮発性メモリ103に蓄積された保存対象のデータの数、すなわち、ストレージノードに転送可能な保存対象のデータの数が第1の所定数以上であるか否かを判定する第1の判定処理を行う。「第1の所定数」は、サーバ20Aがパリティを生成する際に用いるデータセットに含まれるデータの数に相当する。例えば、サーバ20Aが3つのデータからなるデータセットに基づいてパリティを生成する場合、第1の所定数は3である。
【0022】
判定部12は、更に、第1の判定処理において、ストレージノードに転送可能な保存対象のデータの数が第1の所定数に満たないと判定した場合、ストレージノードに転送可能なデータの数が第1の所定数に満たない状態が生じてから所定期間が経過したか否かを判定する第2の判定処理を行う。
【0023】
転送処理部13は、第1の判定処理において、ストレージノードに転送可能な保存対象のデータの数が第1の所定数以上であると判定された場合、第1の転送処理を行う。第1の転送処理は、第1の所定数の単位で保存対象のデータをサーバ20Aに転送する処理である。例えば、第1の所定数が3である場合、転送処理部13は、3つのデータを1単位として、これらのデータをサーバ20Aに転送する。
【0024】
転送処理部13は、第2の判定処理において、ストレージノードに転送可能なデータの数が第1の所定数に満たない状態が生じてから所定期間が経過したと判定された場合、第2の転送処理を行う。第2の転送処理は、第1の所定数よりも少ない第2の所定数の単位で保存対象のデータをサーバ20Bに転送する処理である。「第2の所定数」は、サーバ20Bがパリティを生成する際に用いるデータセットに含まれるデータの数に相当する。例えば、サーバ20Bが2つのデータからなるデータセットに基づいてパリティを生成する場合、第2の所定数は2である。この場合、第2の転送処理を行う転送処理部13は、2つのデータを1単位として、これらのデータをサーバ20Bに転送する。転送処理部13は、ストレージノードに転送可能なデータの数が第2の所定数に満たない場合、ストレージノードに転送可能なデータの数が第2の所定数に達するまで待機する。
【0025】
図4は、データ転送装置10のCPU101が、転送処理プログラム110を実行することによって実施される転送処理の流れの一例を示すフローチャートである。転送処理プログラム110はデータ転送装置10の稼働中に継続的に実施される。
【0026】
ステップS1において、取得部11は、ユーザ端末50から逐次送信される保存対象のデータを取得する。ステップS2において、取得部11は、取得した保存対象のデータを不揮発性メモリ103に蓄積する。
【0027】
ステップS3において、判定部12は、不揮発性メモリ103に蓄積された保存対象のデータの数、すなわち、ストレージノードに転送可能なデータの数が第1の所定数以上であるか否かを判定する第1の判定処理を行う。第1の判定処理において、ストレージノードに転送可能なデータの数が第1の所定数以上であると判定され場合、処理はステップS5に移行される。一方、第1の判定処理において、ストレージノードに転送可能なデータの数が第1の所定数に満たないと判定され場合、処理はステップS4に移行される。
【0028】
ステップS4において、判定部12は、当該処理サイクルにおいて、最初の第1の判定処理(ステップS3)を開始した時点から所定期間が経過したか否かを判定する。所定期間が経過したと判定された場合、処理はステップS6に移行され、所定期間が経過していないと判定された場合、処理はステップS3に戻される。すなわち、ステップS4において、ストレージノードに転送可能なデータの数が、第1の所定数に満たない状態が生じてから所定期間が経過したか否かを判定する第2の判定処理が実施される。
【0029】
ステップS5において、転送処理部13は、第1の所定数の単位で保存対象のデータをサーバ20Aに転送する第1の転送処理を行う。ステップS6において、転送処理部13は、第1の所定数よりも少ない第2の所定数の単位で保存対象のデータをサーバ20Bに転送する第2の転送処理を行う。
【0030】
図5Aは、第1の転送処理の態様の一例を示す図である。例えば、ユーザ端末50から保存対象のデータが連続的に送信され、ストレージノードに転送可能なデータの数が潤沢に存在する場合、第1の転送処理が行われる。
図5Aには、第1の転送処理として、3つのデータを1単位として、保存対象のデータ60がサーバ20Aに転送される態様が例示されている。
【0031】
図5Bは、第2の転送処理の態様の一例を示す図である。例えば、ユーザ端末50からの保存対象のデータの送信が滞り、ストレージノードに転送可能なデータの数が第1の所定数に満たない場合、第2の転送処理が行われる。
図5Bには、第2の転送処理として、2つのデータを1単位として、保存対象のデータ60がサーバ20Bに転送される態様が例示されている。
【0032】
図6は、サーバ20A及び20Bのハードウェア構成の一例を示す図である。サーバ20A及び20Bのハードウェア構成は互いに同じである。サーバ20A及び20Bは、CPU201、一時記憶領域としてのRAM(Random Access Memory)202及び不揮発性メモリ203を有する。また、サーバ20A及び20Bは、ネットワークに接続されるネットワークインターフェース204及び外部インターフェース205を含む。これらのハードウェアはバス206に接続されている。
【0033】
不揮発性メモリ203は、HDD、SSD、又はフラッシュメモリ等の不揮発性の記憶媒体である。不揮発性メモリ203には、保存処理プログラム210が格納されている。CPU201は、保存処理プログラム210を不揮発性メモリ203から読み出し、RAM202に展開し、実行する。なお、CPU201は、開示の技術における「第1のストレージノードのプロセッサ」及び「第2のストレージノードのプロセッサ」の一例である。
【0034】
図7は、サーバ20A及び20Bの機能的な構成の一例を示す機能ブロック図である。サーバ20A及び20Bは、CPU201が保存処理プログラム210を実行することにより、データセット編成部21、パリティ生成部22及び記録制御部23として機能する。
【0035】
データセット編成部21は、データ転送装置10から転送された保存対象のデータを用いて、パリティの生成に用いるデータセットを編成する。サーバ20Aのデータセット編成部21は、第1の転送処理における転送単位である第1の所定数のデータからなるデータセット(以下第1のデータセットという)を編成する。例えば、サーバ20Aのデータセット編成部21は、第1の転送処理において3つのデータを1単位として転送された保存対象のデータについて、3つのデータからなる第1のデータセットを編成する。サーバ20Bのデータセット編成部21は、第2の転送処理における転送単位である第2の所定数のデータからなるデータセット(以下第2のデータセットという)を編成する。例えば、サーバ20Bのデータセット編成部21は、第2の転送処理において2つのデータを1単位として転送された保存対象のデータについて、2つのデータからなる第2のデータセットを編成する。
【0036】
パリティ生成部22は、データセット編成部21によって編成されたデータセットに基づいて、当該データセットに含まれる複数のデータのうちの欠損した一部のデータを復元するためのパリティを生成する。すなわち、サーバ20Aのパリティ生成部22は、第1の転送処理における転送単位である第1の所定数のデータに基づいてパリティ(以下第1のパリティ)を生成する。サーバ20Bのパリティ生成部22は、第2の転送処理における転送単位である第2の所定数のデータに基づいてパリティ(以下第2のパリティという)を生成する。パリティは、イレージャーコーディング等の冗長符号化技術を用いて、データセットに含まれる複数のデータの各々を数学的に処理することによって生成される。
【0037】
サーバ20A及びサーバ20Bが属するサーバグループには、データ欠損に対する耐性に関する要求水準が設定される。サーバ20A及びサーバ20Bは、それぞれ、この要求水準を満たすようにパリティを生成する。例えば、サーバ20A及びサーバ20Bが属するグループについて設定される要求水準が「25%のデータの欠損に対して欠損したデータの復元を可能であること」であるものとする。例えば、サーバ20Aが3つのデータからなるデータセットに基づいて1つのパリティを生成し、サーバ20Bが2つのデータからなるデータセットに基づいて1つのパリティを生成する場合、サーバ20Aにおいては、最大25%のデータ欠損に対してデータの復元が可能であり、サーバ20Bにおいては、最大33%のデータ欠損に対してデータの復元が可能であり、上記の要求水準を満たす。
【0038】
記録制御部23は、データセットに含まれる複数のデータ及び当該データセットに基づいて生成されたパリティを互いに異なる複数の記録媒体に記録する制御を行う。サーバ20Aの記録制御部23は、第1のデータセットに含まれる第1の所定数のデータ及び第1のデータセットに基づいて生成された第1のパリティを、互いに異なる複数の記録媒体に記録する。サーバ20Bの記録制御部23は、第2のデータセットに含まれる第2の所定数のデータ及び第2のデータセットに基づいて生成された第2のパリティを、互いに異なる複数の記録媒体に記録する。記録媒体は、例えばテープライブラリに収容された磁気テープであってもよい。また、記録媒体は、ハードディスク、光ディスク又は半導体メモリであってもよい。
【0039】
図8は、サーバ20A及び20BのCPU201が、保存処理プログラム210を実行することによって実施される保存処理の流れの一例を示すフローチャートである。保存処理プログラム210はサーバ20A、20Bの稼働中に継続的に実行される。
【0040】
ステップS11においてデータセット編成部21は、データ転送装置10から転送された保存対象のデータを用いて、パリティの生成に用いるデータセットを編成する。サーバ20Aのデータセット編成部21は、第1の転送処理における転送単位である第1の所定数のデータからなる第1のデータセットを編成する。サーバ20Bのデータセット編成部21は、第2の転送処理における転送単位である第2の所定数のデータからなる第2のデータセットを編成する。
【0041】
ステップS12においてパリティ生成部22は、ステップS11において編成されたデータセットに基づいて、当該データセットに含まれる複数のデータのうちの欠損した一部のデータを復元するためのパリティを生成する。サーバ20Aのパリティ生成部22は、第1の転送処理における転送単位である第1の所定数のデータに基づいてパリティを生成する。サーバ20Bのパリティ生成部22は、第2の転送処理における転送単位である第2の所定数のデータに基づいてパリティを生成する。
【0042】
ステップS13において、記録制御部23は、ステップS11において編成されたデータセットに含まれる複数のデータ及びステップS12において当該データセットに基づいて生成されたパリティを互いに異なる複数の記録媒体に記録する制御を行う。サーバ20Aの記録制御部23は、第1のデータセットに含まれる第1の所定数のデータ及び第1のデータセットに基づいて生成された第1のパリティを互いに異なる複数の記録媒体に記録する。サーバ20Bの記録制御部23は、第2のデータセットに含まれる第2の所定数のデータ及び第2のデータセットに基づいて生成された第2のパリティを互いに異なる複数の記録媒体に記録する。
【0043】
図9は、サーバ20A及び20Bにおける保存処理の態様の一例を示す図である。
図9に示す例において、サーバ20Aに3つのデータを1単位として保存対象のデータ60が転送されている。この場合、サーバ20Aにおいて、データセット編成部21は、3つのデータ60からなるデータセット70Aを編成し、パリティ生成部22は、データセット70Aに基づいてパリティ80Aを生成する。記録制御部23は、データセット70Aに含まれる3つのデータ60及びデータセット70Aに基づいて生成されたパリティ80Aを互いに異なる記録媒体90に記録する。
【0044】
また、
図9に示す例において、サーバ20Bには、2つのデータを1単位として保存対象のデータ60が転送されている。この場合、サーバ20Bにおいて、データセット編成部21は、2つのデータ60からなるデータセット70Bを編成し、パリティ生成部22は、データセット70Bに基づいてパリティ80Bを生成する。記録制御部23は、データセット70Bに含まれる2つのデータ60及びデータセット70Bに基づいて生成されたパリティ80Bを互いに異なる記録媒体90に記録する。
【0045】
以上のように、開示の技術の実施形態に係るストレージシステム1は、データ転送装置10と、複数のストレージノード(サーバ20A及び20B)とを含む。データ転送装置10は、ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを第1の所定数の単位でサーバ20Aに転送する第1の転送処理を行う。データ転送装置10は、ストレージノードに転送可能なデータの数が第1の所定数に満たない場合、データを第1の所定数よりも少ない第2の所定数の単位でサーバ20Bに転送する第2の転送処理を行う。サーバ20Aは、データ転送装置10から転送された第1の所定数のデータに基づいて、第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する。サーバ20Bは、データ転送装置10から転送された第2の所定数のデータに基づいて、第2の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する。
【0046】
一般的に、ストレージノードへのデータの転送速度は不均一であるため、ストレージノードに転送されるデータの数が、当該ストレージノードにおいてパリティを生成するために必要な数に満たない状況が生じ得る。この場合、ストレージノードは、処理可能なデータの数がパリティの生成に必要な数に達するまで待機するか、ダミーデータを用いてパリティを生成することになる。前者の場合レイテンシが大きくなり、後者の場合、記録媒体の使用効率が低下する。
【0047】
本実施形態に係るストレージシステム1によれば、ストレージノードに転送可能なデータの数に応じて、データの転送先となるストレージノードが選択され、選択されたストレージに、転送可能なデータの数に応じた数のデータが転送される。各ストレージノードにおいて、転送された数のデータに基づいてパリティが生成される。本実施形態に係るストレージシステム1によれば、ストレージノードへのデータの転送速度が不均一となる場合においても、レイテンシを抑制し、記録媒体の使用効率の低下を抑制しつつストレージノードへのデータの記録を行うことが可能となる。
【0048】
なお、本実施形態においては、ストレージシステム1が有するストレージノードの数が2つである場合を例示したが、ストレージシステム1は、3つ以上のストレージノードを有していてもよい。3つ以上のストレージノードは、パリティの生成に用いるデータの数が互いに異なる。データ転送装置は、ストレージノードに転送可能なデータの数に応じて転送先とすべきストレージノードを選択する。各ストレージノードに転送されるデータ数は、当該ストレージノードにおいてパリティを生成するために必要なデータの数に一致する。
【0049】
上記の各実施形態において、例えば、取得部11、判定部12及び転送処理部13といった各種の処理を実行する処理部(processing unit)並びにデータセット編成部21、パリティ生成部22及び記録制御部23といった各種の処理を実行する処理部のハードウェア的な構造としては、次に示す各種のプロセッサ(processor)を用いることができる。上記各種のプロセッサには、ソフトウェア(プログラム)を実行して各種の処理部として機能する汎用的なプロセッサであるCPUに加えて、FPGA等の製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が含まれる。
【0050】
1つの処理部は、これらの各種のプロセッサのうちの1つで構成されてもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGAの組み合わせや、CPUとFPGAとの組み合わせ)で構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。
【0051】
複数の処理部を1つのプロセッサで構成する例としては、第1に、クライアント及びサーバ等のコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第2に、システムオンチップ(System on Chip:SoC)等に代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサの1つ以上を用いて構成される。
【0052】
更に、これらの各種のプロセッサのハードウェア的な構造としては、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)を用いることができる。
【0053】
また、上記実施形態では、転送処理プログラム110が不揮発性メモリ103に予め記憶(インストール)され、保存処理プログラム210が不揮発性メモリ203に予め記憶(インストール)されている態様を説明したが、これに限定されない。これらのプログラムは、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、これらのプログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0054】
以上の第1乃至第4の実施形態に関し、更に以下の付記を開示する。
(付記1)
少なくとも1つのプロセッサを有するデータ転送装置と、各々が、少なくとも1つのプロセッサを有し、前記データ転送装置から転送されたデータを保存する複数のストレージノードとを有するストレージシステムであって、
前記データ転送装置のプロセッサは、
前記ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを前記第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、
前記ストレージノードに転送可能なデータの数が前記第1の所定数に満たない場合、データを前記第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行い、
前記第1のストレージノードのプロセッサは、前記データ転送装置から転送された前記第1の所定数のデータに基づいて、前記第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成し、
前記第2のストレージノードのプロセッサは、前記データ転送装置から転送された前記第2の所定数のデータに基づいて、前記第2の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する
ストレージシステム。
【0055】
(付記2)
前記データ転送装置のプロセッサは、転送可能なデータの数が、前記第1の所定数に満たない状態が生じてから所定期間が経過した場合に、前記第2の転送処理を行う
付記1に記載のストレージシステム
【0056】
(付記3)
前記第1のストレージノードのプロセッサ及び前記第2のストレージノードのプロセッサは、それぞれ、データ欠損に対する耐性が、予め定められた要求水準を満たすようにパリティを生成する
付記1又は付記2に記載のストレージシステム。
【0057】
(付記4)
前記第1のストレージノード及び前記第2のストレージノードは、同一のグループに属するストレージノードである
請求項1から付記3のいずれか1つに記載のストレージシステム。
【0058】
(付記5)
ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを前記第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、ストレージノードに転送可能なデータの数が前記第1の所定数に満たない場合、データを前記第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行うことを、データ転送装置が有する少なくとも1つのプロセッサが実行し、
前記データ転送装置から転送された前記第1の所定数のデータに基づいて、前記第1の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する処理を、前記第1のストレージノードが有する少なくとも1つのプロセッサが実行し、
前記データ転送装置から転送された前記第2の所定数のデータに基づいて、前記第2の所定数のデータの一部が欠損した場合の、欠損した一部のデータを復元するためのパリティを生成する処理を、前記第2のストレージノードが有する少なくとも1つのプロセッサが実行する
データ処理方法。
【0059】
(付記6)
ストレージノードに転送可能なデータの数が第1の所定数以上である場合、データを前記第1の所定数の単位で第1のストレージノードに転送する第1の転送処理を行い、ストレージノードに転送可能なデータの数が前記第1の所定数に満たない場合、データを前記第1の所定数よりも少ない第2の所定数の単位で第2のストレージノードに転送する第2の転送処理を行うことを、
データ転送装置が有する少なくとも1つのプロセッサに実行させるためのプログラム。
【符号の説明】
【0060】
1 ストレージシステム
10 データ転送装置
11 取得部
12 判定部
13 転送処理部
20A、20B サーバ
21 データセット編成部
22 パリティ生成部
23 記録制御部
40 ネットワーク
50 ユーザ端末
60 データ
70A、70B データセット
80A、80B パリティ
90 記録媒体
101、201 CPU
102、202 RAM
103、203 不揮発性メモリ
104、204 ネットワークインターフェース
105、205 外部インターフェース
106、206 バス
110 転送処理プログラム
210 保存処理プログラム