JP2010231690A - ストレージシステム - Google Patents

ストレージシステム Download PDF

Info

Publication number
JP2010231690A
JP2010231690A JP2009080923A JP2009080923A JP2010231690A JP 2010231690 A JP2010231690 A JP 2010231690A JP 2009080923 A JP2009080923 A JP 2009080923A JP 2009080923 A JP2009080923 A JP 2009080923A JP 2010231690 A JP2010231690 A JP 2010231690A
Authority
JP
Japan
Prior art keywords
data
storage
address
file
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009080923A
Other languages
English (en)
Other versions
JP5446378B2 (ja
Inventor
Masato Inoue
真人 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009080923A priority Critical patent/JP5446378B2/ja
Priority to PCT/JP2009/006903 priority patent/WO2010116434A1/ja
Publication of JP2010231690A publication Critical patent/JP2010231690A/ja
Application granted granted Critical
Publication of JP5446378B2 publication Critical patent/JP5446378B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】処理能力の低下を解決することができるストレージシステムを提供すること。
【解決手段】ファイルサーバは、アドレスマップの複製を分散したデータであってファイルサーバ毎に割り当てられた識別データを有する各アドレスマップキャッシュをそれぞれ記憶している。また、記憶対象データの識別データと、当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けてアドレスマップキャッシュに記憶するアドレスマップ操作手段を備えている。そして、上記アドレスマップ操作手段は、新たな記憶対象データのアドレスデータに基づいてファイルサーバを特定すると共に、この特定されたファイルサーバが有するアドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた識別データを新たな記憶対象データの識別データとして当該識別データに新たな記憶対象データのアドレスデータを関連付けて記憶する。
【選択図】図14

Description

本発明は、ストレージシステムにかかり、特に、格納したデータの内容に応じて格納位置を管理するコンテンツアドレス型のストレージシステムに関する。
近年、コンピュータの発達及び普及に伴い、種々の情報がデジタルデータ化されている。このようなデジタルデータを保存しておく装置として、磁気テープや磁気ディスクなどの記憶装置がある。そして、保存すべきデータは日々増大し、膨大な量となるため、大容量なストレージシステムが必要となっている。また、記憶装置に費やすコストを削減しつつ、信頼性も必要とされる。これに加えて、後にデータを容易に取り出すことが可能であることも必要である。その結果、自動的に記憶容量や性能の増大を実現できると共に、重複記憶を排除して記憶コストを削減し、さらには、冗長性の高いストレージシステムが望まれている。
このような状況に応じて、近年では、特許文献1に示すように、コンテンツアドレスストレージシステムが開発されている。このコンテンツアドレスストレージシステムは、データを分散して複数の記憶装置に記憶すると共に、このデータの内容に応じて特定される固有のコンテンツアドレスによって、当該データを格納した格納位置が特定される。具体的に、コンテンツアドレスストレージシステムでは、所定のデータを複数のフラグメントデータに分割すると共に、冗長データとなるフラグメントデータをさらに付加して、これら複数のフラグメントデータをそれぞれ複数の記憶装置にそれぞれ格納している。
そして、後に、コンテンツアドレスを指定することにより、当該コンテンツアドレスにて特定される格納位置に格納されているデータつまりフラグメントデータを読み出し、複数のフラグメントデータから分割前の所定のデータを復元することができる。
また、上記コンテンツアドレスは、データの内容に応じて固有となるよう生成される。このため、重複データであれば同じコンテンツアドレスが生成され、当該コンテンツアドレスにて同じ格納位置のデータを参照することで、同一内容のデータを取得することができる。従って、重複データを別々に格納する必要がなく、重複記録を排除し、データ容量の削減を図ることができる。
ここで、UNIX(登録商標)などのファイルシステムでは、ファイルデータを複数のブロックに分割してディスクに格納し、1つのファイルデータを構成する各ブロックを参照するアドレスのリストを、inodeという管理情報に格納するが、そのinodeのディスク上のアドレスは、inode番号から計算式で求める。ところが、コンテンツアドレスストレージシステムでは、格納しているデータの内容を変更すると、データの格納位置(コンテンツアドレス)が変化するため、計算で求めるのではなく、JFS(Journaled File System)などのファイルシステムのように、inode番号とinodeのコンテンツアドレスの対応表(imap)を持つのが一般的である。ここで、図1に、imapの概略図を示す。この図に示すように、imap220aはコンテンツアドレスストレージ220内に保存されている。
そして、コンテンツアドレスストレージシステムでは、ファイルシステムを複数のファイルサーバで分散処理する場合に、各々のファイルサーバがimapをキャッシュする。このとき、複数のファイルサーバが、同時にimap内の同じinodeを更新しないよう、一般的に以下のような方法がとられる。この方法について、図2を参照して説明する。
まず、imap220aをファイルサーバ211,212,213の数で分割し、それぞれのファイルサーバ211,212,213が分割したimap210,220,230を1つずつキャッシュして管理するようにする。そして、ファイルの作成の際に、ファイルサーバ211,212,213がinode番号とinodeのコンテンツアドレスの対応データ(imapエントリ)を、imapキャッシュ210,220,230に追加するとき、そのファイルサーバ211,212,213の管理下のimapキャッシュ210,220,230の空きエントリに追加する。例えば、あるファイルサーバ(例えば、符号212)が、そのサーバの管理外のinodeを操作するときは、そのinodeのimapエントリが格納されているimapを担当するファイルサーバ(例えば、符号211)に処理を依頼する。このようにすることで、キャッシュしているimapの更新がファイルサーバ内で完結するため、同時更新の問題が発生しなくなる。
しかしながら、上述した方法では、1つのファイルサーバに大量のファイル作成要求があると、図2に示すように、そのファイルサーバが管理するimapキャッシュのみが増大する。すると、imapの量が多いサーバにアクセスが集中してしまい、システムの処理性能が低下する、という問題が生じる。
一方で、データを分散して記憶することに関連する技術が、上述した特許文献1に開示されている。この文献では、記憶対象となるデータのコンテンツアドレスの種別に応じて、予め種別毎に設定されたストレージノードに、記憶対象データを記憶している。これに伴い、コンテンツアドレスと記憶位置を関連付けるインデックスも、コンテンツアドレスに含まれるデータ内容に応じて、各ストレージノードやその上位に位置するアクセスノードに分散して記憶している。
特開2005−235171号公報
しかしながら、上述した特許文献1に開示の分散処理では、記憶対象データのコンテンツアドレス内の特定の文字で、分散先となるサーバを特定している。つまり、記憶対象データを管理するアクセスノードを、コンテンツアドレスを検索するための検索キーとして用いる文字を使用している。このような場合に、既に記憶されている記憶対象データが後に更新されると、当該記憶対象データから生成されるコンテンツアドレスも変更されることとなり、格納先のストレージノードやこれを管理するアクセスノードを変更する必要も生じる。従って、ストレージシステムにおけるデータの管理が煩雑となり、システムの処理性能が低下する、という問題が生じる。
このため、本発明の目的は、上述した課題である、ストレージシステム全体における処理性能の低下を解決することができるストレージシステムを提供することにある。
かかる目的を達成するため本発明の一形態であるストレージシステムは、
ストレージサーバと、当該ストレージサーバに対するデータの書き込み/読み出しを制御する複数のファイルサーバと、を備えている。
そして、上記ストレージサーバは、記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、上記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶している。
また、上記各ファイルサーバは、上記アドレスマップの複製を分散したデータであって上記ファイルサーバ毎に予め割り当てられた上記識別データを有する各アドレスマップキャッシュをそれぞれ記憶しており、上記ストレージサーバに新たに上記記憶対象データを格納した際に、当該記憶対象データの上記識別データと、当該記憶対象データのデータ内容に基づいて生成された上記アドレスデータと、を関連付けて上記アドレスマップキャッシュに記憶するアドレスマップ操作手段を備えている。
さらに、上記アドレスマップ操作手段は、上記新たな記憶対象データの上記アドレスデータに基づいて上記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する上記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた上記識別データを上記新たな記憶対象データの識別データとして当該識別データに上記新たな記憶対象データの上記アドレスデータを関連付けて記憶する、という構成を採る。
また、本発明の他の形態であるプログラムは、
記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、上記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶したストレージサーバに対して、データの書き込み/読み出しを制御する複数のファイルサーバが、上記アドレスマップの複製を分散したデータであり上記ファイルサーバ毎に予め割り当てられた上記識別データを有する各アドレスマップキャッシュをそれぞれ記憶している場合に、上記各ファイルサーバに、
上記ストレージサーバに新たに上記記憶対象データを格納した際に、当該記憶対象データの上記識別データと、当該記憶対象データのデータ内容に基づいて生成された上記アドレスデータと、を関連付けて上記アドレスマップキャッシュに記憶するアドレスマップ操作手段を実現させるプログラムである。
そして、上記アドレスマップ操作手段は、上記新たな記憶対象データの上記アドレスデータに基づいて上記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する上記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた上記識別データを上記新たな記憶対象データの識別データとして当該識別データに上記新たな記憶対象データの上記アドレスデータを関連付けて記憶する機能を有する。
また、本発明の他の形態であるファイル管理方法は、
記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、上記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶したストレージサーバに対して、データの書き込み/読み出しを制御すると共に、上記アドレスマップの複製を分散したデータであり上記ファイルサーバ毎に予め割り当てられた上記識別データを有する各アドレスマップキャッシュをそれぞれ記憶している複数のファイルサーバにて、
上記ストレージサーバに新たに上記記憶対象データを格納した際に、当該記憶対象データの上記識別データと、当該記憶対象データのデータ内容に基づいて生成された上記アドレスデータと、を関連付けて上記アドレスマップキャッシュに記憶する。
そして、上記アドレスマップキャッシュに記憶するときに、上記新たな記憶対象データの上記アドレスデータに基づいて上記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する上記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた上記識別データを上記新たな記憶対象データの識別データとして当該識別データに上記新たな記憶対象データの上記アドレスデータを関連付けて記憶する、という構成を採る。
本発明は、以上のように構成されることにより、ストレージシステム全体における処理能力の向上を図ることができる。
本発明に関連するコンテンツアドレスストレージシステムの構成を示す図である。 本発明に関連するコンテンツアドレスストレージシステムの構成を示す図であり、imapの様子を示す図である。 実施形態1におけるコンテンツアドレスストレージシステムの構成を示す機能ブロック図である。 図3に開示したファイルサーバに記憶されているinodeとファイルサーバとの対応表を示す図である。 図3に開示したコンテンツアドレスストレージシステムにおけるimapの様子を示す図である。 実施形態2におけるコンテンツアドレスストレージシステムの構成を示す機能ブロック図である。 図6に開示したコンテンツアドレスストレージシステムにおけるimapの様子を示す図である。 図6に開示したファイルサーバに記憶されているinodeとimapブロックとファイルサーバとの対応表を示す図である。 図6に開示したコンテンツアドレスストレージシステムにおけるimapの様子を示す図である。 図8に開示したinodeとimapブロックとファイルサーバとの対応表の更新後の様子を示す図である。 実施形態3におけるコンテンツアドレスストレージシステム全体の構成を示すブロック図である。 実施形態3におけるコンテンツアドレスストレージシステム全体の構成の他の例を示すブロック図である。 図12に開示したファイルサーバに記憶されているinodeとimapブロックとファイルサーバとストレージサーバとの対応表を示す図である。 実施形態4におけるコンテンツアドレスストレージシステムの構成を示す機能ブロック図である。
<実施形態1>
本発明の第1の実施形態を、図3乃至図5を参照して説明する。図3は、本実施形態におけるコンテンツアドレスストレージシステムの構成を示す機能ブロック図である。図4は、ファイルサーバに記憶されているinodeとファイルサーバとの対応表を示す図である。図5は、imapの様子を示す図である。
[構成]
図1に示すように、本発明におけるコンテンツアドレスストレージシステムは、相互に接続されたストレージサーバ20とファイルサーバ11,12,13とを備えている。また、コンテンツアドレスストレージシステムには、クライアント31,32,33が接続されている。以下、各構成について詳述する。
上記クライアント31,32,33は、ユーザが操作する情報処理端末であり、コンテンツアドレスストレージシステムに対して、ファイルの作成、更新、削除、読み出し、などの処理を要求する。なお、図3の例では、クライアント31,32はファイルサーバ11に接続されており、クライアント33はファイルサーバ12に接続されている。
また、ストレージサーバ20は、ディスク装置といった記憶装置を備えており、例えば、複数台のサーバコンピュータにて構成されている。そして、ストレージサーバ20は、ファイルサーバ11,12,13からのデータ記憶要求に応じて、ファイルデータ20cを記憶する。なお、このファイルデータ20cは、複数のブロックデータに分割されて、複数のストレージサーバに分散されて記憶される。
また、ストレージサーバ20は、上述したファイルデータ20cを分割した各ブロックデータの格納位置を参照する当該各ブロックデータの各コンテンツアドレス(ブロックアドレスデータ)のリストを含むinode20b(アドレスリストデータ)を記憶している。つまり、inode20bは、ファイルデータ20cを再構築する上で必要な情報であり、当該ファイルデータ20cを形成する各ブロックデータのそれぞれの格納位置を特定する情報を全て有している。従って、上記inodeを参照して、当該inodeに含まれる各コンテンツアドレスにて参照される格納位置から、ファイルデータ20cを形成する全てのブロックデータを読み出すことができ、当該ファイルデータ20cを再構築することができる。なお、inodeには、当該inodeつまりファイルデータ20cを識別するための識別データであるinode番号(例えば、「inode#1」など)が対応づけられる。
また、ストレージサーバ20は、上記inode20bの識別データと、当該inode20bの格納位置を参照するデータであり当該inodeのデータ内容に基づいて算出された「コンテンツアドレス」(アドレスデータ)と、を関連付けて記憶した対応表であるimap20a(アドレスマップ)を記憶している。なお、コンテンツアドレスは、格納されたinode20bのデータ内容の全部または一部から、ハッシュ関数またはそれに類似する計算方法で算出された値である。このようにして、上述したimap20a、inode20b、ファイルデータ20cにて、ファイルシステムが構成されている。
また、ファイルサーバ11,12,13は、上述したストレージサーバ20に対して、ファイルデータやそのinodeを格納したり、格納されているファイルデータを読み出したりと、ストレージサーバ20に対するデータの記録再生制御を行うサーバコンピュータである。これにより、ストレージサーバ20に格納されているファイルシステムを、クライアント31,32,33に提供している。ここで、各ファイルサーバ11,12,13は、ほぼ同一の構成を採っているため、以下では特に符号11に示すファイルサーバの構成について詳述する。
上記ファイルサーバ11は、装備されている演算装置にプログラムが組み込まれることによって構築された、imap操作部11bを備えている。また、ファイルサーバ11は、装備されている記憶装置に、imap分割情報記憶部11aと、imap一時記憶部11cと、を備えている。
上記imap一時記憶部11cは、ファイルサーバ11が管理するimapの複製を保持している。ここで、imap一時記憶部11cに記憶されているimapのキャッシュの一例を、図5に示す。この図に示すように、imapキャッシュ110(アドレスマップキャッシュ)は、上述したストレージサーバ20に記憶されているimap20aの一部の複製である。つまり、各ファイルサーバ11は、ストレージサーバ20に記憶されているimap20aを分散して、当該imap20aの複製の一部をそれぞれ重複することなく記憶している。
そして、特に、本発明では、ファイルサーバ11毎に複数のinode番号が予め割り当てられており、そのファイルサーバが、当該割り当てられたinode番号に対応づけられたinodeつまりファイルデータの書き込みや読み出し等を管理する。例えば、inodeを100個ずつで1つのグループとし、inode番号#1〜#100のimapキャッシュをあるファイルサーバが管理し、inode番号#101〜#200,#201〜#300のimapを、別の各ファイルサーバがそれぞれ管理する。
また、上記imap操作部11b(アドレスマップ操作手段)は、上述したimapキャッシュ110に対して、ストレージサーバ20に記憶されたファイルデータを分割した各ブロックデータの格納位置をそれぞれ参照する各コンテンツアドレスリストを含むinodeのinode番号と、当該inodeの格納位置を参照するinode自体のコンテンツアドレスと、を関連付けたimapエントリの追加、更新、削除、読み込みを行う。このとき、imap操作部11bは、当該imap操作部11bが装備されているファイルサーバ11にて予め管理すると設定されているinode番号(#1〜#100)のimapエントリを管理する。一方で、ファイルサーバ11の管理していないinodeの処理を行う場合には、別のファイルサーバのimap操作部12b,13bと連携し、当該inodeを管理しているファイルサーバのimapキャッシュ120,130に対して処理を行う。
そして、上記imap操作部11bは、ストレージサーバ20に対して新たにファイルデータを記憶する際には、ファイルデータ及び当該ファイルデータのinodeが記憶された後に、当該inodeのデータ自体から算出されたコンテンツアドレスから、当該inodeを管理するファイルサーバを特定する。つまり、後述するように、inodeを識別するinode番号と、inodeの格納位置を参照する当該inodeのコンテンツアドレスと、を関連付けたimapエントリを追加するimapキャッシュを有するファイルサーバを特定する。そして、特定されたファイルサーバ(ここでは、符号11のファイルサーバが特定されたとする)が装備するimap操作部11bは、当該特定されたファイルサーバ11が管理するよう予め割り当てられているinode番号のうち空いているinode番号を、ファイルデータのinodeを識別するinode番号として割り当てる。そして、このinode番号と、当該inode番号にて特定されるinodeの格納位置を参照する当該inode自体のコンテンツアドレスと、を関連付けたimapエントリを、ファイルサーバ11内のimapキャッシュ110に対して追加する。
ここで、上述したimapエントリを追加するファイルサーバを特定する処理について詳述する。imap操作部11bは、格納したinodeのデータ内容の一部または全部に基づいて算出したコンテンツアドレスの値から、予め設定されファイルサーバ内に記憶されている算出式を用いて、「判定値」を算出する。一例としては、コンテンツアドレスの一部又は全部のデータを数値化し、この数値をファイルサーバの数で割った「余り」の値を、「判定値」として算出する。つまり、本実施形態では、コンテンツアドレスから数値を求め、この数値をファイルサーバ数である「3」で割る。すると、その余りは、「0」、「1」、「2」の3通りとなる。そして、この算出された余りである判定値に応じて、imapエントリを追加するファイルサーバを決定する。
なお、上記imap分割情報記憶部11aは、図4に示すように、予め設定された上記判定値とファイルサーバとの対応表を記憶している。この対応表は、具体的には、判定値毎に、予めファイルサーバ毎に割り当てられたinode番号と、ファイルサーバ11と、が対応付けられて設定されている。例えば、上述したように、inodeのコンテンツアドレスを3で割った余りが0である場合には、inode番号#1〜#100が割り当てられたファイルサーバ11にimapエントリを追加して、当該ファイルサーバ11にて管理するよう設定されている。
そして、上述した対応表に応じて、上記imap操作部11bは、imapエントリを追加するファイルサーバを決定し、そのファイルサーバに対して、inode番号とコンテンツアドレスを関連付けたimapエントリの追加を依頼する。すると、imapエントリの追加の依頼を受けたファイルサーバは、自己のimapキャッシュに、依頼されたinodeのimapエントリを追加する。
ここで、上記判定値の算出時には、格納したinodeのコンテンツアドレスの一部又は全部を用いているが、コンテンツアドレスは、inodeからハッシュ関数または類似する計算方法にて計算した値であるため、コンテンツアドレスの値は一様に分散することとなる。そして、さらに、この一様に分散したコンテンツアドレスの一部又は全部にて特定される数値から、ファイルサーバ台数で割った余りを求めることで、算出された余りの値も、一様に分散することとなる。従って、imapキャッシュに新たに追加するimapエントリも、ファイルサーバ間に一様に分散させることができ、一部のファイルサーバに集中して格納されることを抑制できる。
なお、上記では、ファイルサーバが3台の場合を例示したが、その数は限定されず、ストレージシステムは、いかなる台数のファイルサーバを備えていてもよい。また、上記では、ファイルサーバ11に2台のクライアント、ファイルサーバ12に1台のクライアントが接続されている場合を説明したが、1つのファイルサーバにいくつのクライアントが接続していてもよい。また、上記では、クライアント、ファイルサーバ、ストレージサーバが、それぞれ物理的に別のコンピュータにて構成されている場合を説明したが、そのうちいくつか、あるいは、全てが、同一のコンピュータにて構成されていてもよい。
[動作]
次に、上述したストレージシステムつまりファイルサーバ11,12,13の動作を説明する。なお、ここでは、上記imap分割情報記憶部11aには、図4に示すような、inode番号、inodeのコンテンツアドレスの条件、および、inodeを管理するファイルサーバの対応表を記憶している。具体的には、ファイルサーバ11にはinode番号1〜100が割り当てられており、当該inode番号1〜100を用いて、当該ファイルサーバ11が有するimapキャッシュ110で、コンテンツアドレスを6で割った余りが0となるinodeを管理するよう設定されている。同様に、ファイルサーバ12,13には、それぞれinode番号101〜200,201〜300が割り当てられており、それぞれのファイルサーバ12,13のimapキャッシュ120,130にて、余りがそれぞれ1,2となるinodeをそれぞれ管理するよう設定されていることとする。
まず、クライアント31がファイルサーバ11にファイルデータを書き込むよう要求すると、当該ファイルサーバ11はファイルデータをブロックデータに分割して、各ブロックデータをそれぞれストレージサーバ20に分散して格納する。すると、ストレージサーバ20から各ブロックサーバの各コンテンツアドレスの返却を受けるが、これら各ブロックデータの各コンテンツアドレスのリストを含むinodeを作成する。続いて、作成したinodeをストレージサーバ20に格納し、当該ストレージサーバ20から返却されたコンテンツアドレスをimap操作部11bに渡し、当該imap操作部11bに当該inodeのimapエントリをimapキャッシュに追加するよう依頼する。
続いて、imap操作部11bは、受け取ったinodeのコンテンツアドレスを数値化した値を3で割った余り(ここでは「1」とする)と、imap分割情報記憶部11aに記憶している対応表(図4参照)から、当該inodeのimapエントリを追加すべきimapキャッシュを記憶しているファイルサーバを、ファイルサーバ12と決定する。そして、imap操作部11bは、ファイルサーバ12のimap操作部12bにコンテンツアドレスを転送し、imapキャッシュへの追加を依頼する。
すると、inodeのコンテンツアドレスを受け取ったファイルサーバ12のimap操作部12bは、当該ファイルサーバ12に割り当てられた未使用のinode番号(ここでは101とする)を、inodeの識別データとして割り当てた上で、図5に示すように、imap一時記憶部12cに保存しているimapキャッシュ120に、当該inodeのimapエントリを追加する。つまり、上述したようにinodeに割り当てたinode番号と、当該inodeのコンテンツアドレスと、を関連付けたimapエントリを、imapキャッシュ120に記憶する。そして、そのinode番号を、ファイルサーバ11のimap操作部11bに返却する。すると、ファイルサーバ11のimap操作部11bは、返却されたinode番号を、書き込んだファイルデータを識別するinode番号として、ディレクトリエントリに記録する。以上により、ファイルデータの書き込みが完了する。なお、ディレクトリエントリへの記録の方法に関しては、ファイルシステムの一般的な動作であるため、ここでは詳述しない。
次に、クライアント31がファイルを更新する場合の動作を説明する。なお、inode番号と、inodeのコンテンツアドレスの条件、および、inodeを管理するファイルサーバの対応表は、図4に示すように、上述したファイル作成のときと同様である。
まず、クライアント31がファイルサーバ11に対してファイルデータの更新を依頼すると、まず、ファイルデータとinode番号とが関連付けられたディレクトリエントリから、更新するファイルデータのinode番号を特定する。また、ファイルサーバ11は更新するファイルデータを複数のブロックデータに分割してストレージサーバ20に格納し、当該各ブロックデータの各コンテンツアドレスを含むよう、当該ファイルデータのinodeを更新する。そして、更新したinodeをストレージサーバ20へ格納し、当該ストレージサーバ20から返却されたinodeのコンテンツアドレスと、上述したように特定したファイルデータのinode番号を、imap操作部11bに伝え、imapの更新を依頼する。
続いて、更新依頼を受けたimap操作部11bは、渡されたinode番号(ここでは101とする)と、imap分割情報記憶部11aから、更新したinodeを管理するファイルサーバを、ファイルサーバ12と判断する。そして、更新されたinodeのコンテンツアドレスとそのinode番号を、ファイルサーバ12のimap操作部12bへ転送し、imapの更新を依頼する。
すると、ファイルサーバ12のimap操作部12bは、新しいコンテンツアドレスで、imapキャッシュ120内の該当するinodeのimapエントリを上書きする。つまり、更新されたファイルデータのinode番号に関連付けられたコンテンツアドレスを、新たなinodeのコンテンツアドレスに更新する。そして、更新前のコンテンツアドレスにて参照されていた古いinodeを、ストレージサーバ20から削除する。以上により、ファイルの更新が完了する。
次に、クライアント31がファイルを削除する場合の動作を説明する。なお、inode番号と、inodeのコンテンツアドレスの条件、および、inodeを管理するファイルサーバの対応表は、図4に示すように、上述したファイル作成のときと同様である。
まず、クライアント31がファイルサーバ11でファイルデータを削除すると、ファイルサーバ11は、当該ファイルデータのinode番号をimap操作部11bに伝え、当該inodeのimapエントリの削除を依頼する。すると、削除依頼を受けたimap操作部11bは、渡されたinode番号(ここでは101とする)と、imap分割情報記憶部11aから、削除するinodeを管理するファイルサーバを、ファイルサーバ12と判断する。そして、inode番号をファイルサーバ12のimap操作部12bへ転送し、imapからの削除を依頼する。
続いて、ファイルサーバ12のimap操作部12bは、imapキャッシュ120からinode番号のimapエントリを削除する。また、当該inode番号に関連付けられたコンテンツアドレスが参照する格納位置に格納されたinodeを、ストレージサーバ20から削除する。以上により、ファイルの削除が完了する。
次に、クライアント31がファイルを読み込む場合の動作を説明する。なお、inode番号と、inodeのコンテンツアドレスの条件、および、inodeを管理するファイルサーバの対応表は、図4に示すように、上述したファイル作成のときと同様である。
まず、クライアント31がファイルサーバ11からファイルデータを読み込もうとすると、ファイルサーバ11は当該ファイルデータのinode番号をimap操作部11bに伝え、当該inode番号に関連付けられたコンテンツアドレスを要求する。すると、要求を受けたimap操作部11bは、渡されたinode番号(ここでは101とする)と、imap分割情報記憶部11aから、削除すべきinodeを管理するファイルサーバを、ファイルサーバ12と判断する。そして、inode番号をファイルサーバ12のimap操作部12bへ転送し、inodeのコンテンツアドレスを要求する。
続いて、ファイルサーバ12のimap操作部12bは、imapキャッシュ120を参照し、inode番号に対応するコンテンツアドレスを返却する。そして、コンテンツアドレスを受け取ったファイルサーバ11は、当該コンテンツアドレスを用いて、ストレージサーバ20からinodeを読み込み、inodeに従ってファイルデータを形成する各ブロックデータをストレージサーバ20から読み込んで、ファイルデータを再構築する。そして、ファイルデータをクライアント31に送信する。以上により、ファイルの読み込みが完了する。
以上のように、本実施形態では、ファイル作成時に、ファイルを作成したファイルサーバで当該ファイルのinodeを管理するのではなく、一様性のあるinodeのコンテンツアドレスを用いて、どのファイルサーバで管理するかを決定している。これにより、inodeの管理つまりimapエントリを、ファイルサーバ間でバランスよく分散させることができる。従って、後にファイルに対するアクセスが多数発生した場合であっても、かかるアクセスを均等に分散させることができ、特定のファイルサーバの負荷が増大することを抑制することができる。その結果、ストレージシステム全体における処理能力の向上を図ることができる。
そして、特に、本実施形態では、ファイルサーバに予め割り当てられているinode番号のうち、空いているinode番号に、新たに格納したファイルデータのinodeのコンテンツアドレスを関連付けて管理している。従って、仮に格納したファイルデータが更新され、そのデータ内容から特定されるコンテンツアドレスが変更された場合であっても、inode番号に関連付けられるコンテンツアドレスのみを変更すればよいため、引き続き同一のファイルサーバにてファイルを管理することができる。
そして、特に、inodeを分散させる値として、格納するデータのコンテンツアドレスを数値化した値を、ファイルサーバ数で割った余りを算出し、当該余りを全ての各ファイルサーバに割り当てることで、より均等に、inodeを全てのファイルサーバに分散させることができる。
なお、上記では、imapを分割する際に、各ファイルサーバが、連番のinodeを100個単位で1つのファイルサーバで管理するように分割したが、inode番号をファイルサーバ数で割った余りを用いて、余りが等しいinodeを同じファイルサーバで管理するように分割するなど、inode番号から当該inodeが格納されているファイルサーバを判別できる方法であれば、別の方法でもよい。
また、上記では、コンテンツアドレスからinodeを管理するファイルサーバを求める方法として、コンテンツアドレスをファイルサーバ数で割った余りを用いているが、コンテンツアドレスの一部のデータを用いて(コンテンツアドレスは一部のデータを取り出しても一様性がある)、他の算出式にてimapエントリを追加するファイルサーバ(imapキャッシュ)を求めてもよい。
<実施形態2>
次に、本発明の第2の実施形態を、図6乃至図10を参照して説明する。図6は、ファイルサーバの構成を示す機能ブロック図である。図7及び図9は、imapキャッシュの様子を示す図である。図8及び図10は、ファイルサーバに記憶されているinodeとファイルサーバとの対応表を示す図である。
上述した実施形態1で説明したストレージシステムでは、ファイルサーバで障害が発生した場合に、そのファイルサーバが管理していたimapにアクセスすることができなくなり、そのimapで管理されているinodeのファイルにアクセスできなくなる。このような場合、一般的に障害が起きたファイルサーバのimapを、他の正常なファイルサーバにフェイルオーバーし、正常なファイルサーバを使って処理を継続する。
ところが、障害が起きたファイルサーバが管理していたimapを全て1台の正常なファイルサーバにフェイルオーバーした場合、その正常なファイルサーバは他のファイルサーバに比べて2倍のimapを管理する必要があるため、inodeの管理がファイルサーバ間でバランスよく分散しなくなるという問題がある。従って、フェイルオーバーが発生しても、それぞれのファイルサーバが管理するimapの数を均等にすることが課題となる。
これを解決するために、本実施形態におけるストレージシステムでは、imapを複数のブロック(imapブロック)に分割し、当該複数のimapブロックを各ファイルサーバに均等に分散させるという方法を用いる。以下、さらに詳述する。なお、以下では、特にファイルサーバ11の構成について説明するが、他のファイルサーバ12,13も同様の構成を有し、同様に動作する。
まず、本実施形態におけるストレージシステムは、imapを複数のimapブロック(アドレスマップキャッシュ)に分割し、1つのファイルサーバで複数のimapブロックを管理する。このとき、ファイルサーバ間でimapブロックの数が均等に分散するようにする。なお、ファイルサーバ11のimap分割情報記憶部11aには、図8に示すような、inode番号と、inodeのコンテンツアドレスの追加条件と、複数のimapエントリを格納するimapブロックと、ファイルサーバと、の対応を示す対応表を記憶している。
そして、ファイルサーバ11のimap操作部11bは、上記対応表に基づいて、ファイルのinodeのimapエントリを作成するときに、当該inodeを管理すべきファイルサーバ及びimapブロックを決定する。具体的には、まず、inodeのコンテンツアドレスをimapブロック数で割った余りを求め、この余りの値に応じて、上記対応表から、inodeを識別するinode番号とその格納位置を示すコンテンツアドレスとが関連付けられたimapエントリを追加するimapブロックと、inodeを管理するファイルサーバを決定する。これにより、図7に示すように、各ファイルサーバ11等内のimap一時記憶部11c等内のimapキャッシュ110等に、複数のimapエントリが均等に格納されたimapブロックを、均等に記憶することができる。
そして、本実施形態におけるストレージシステムでは、図6に示すように、各ファイルサーバ11等がimap分散部11d等(アドレスマップ分散手段)を備えており、ファイルサーバで障害が発生した場合、以下のようにしてフェイルオーバー処理を実行する。つまり、imap分散部11d等は、障害の発生したファイルサーバで管理されていたimapブロックを、各ファイルサーバにて管理するimapブロックの数が均等になるように、他の正常なファイルサーバに分配する(図9参照)。
以上のように、本実施形態では、ファイルサーバの障害発生時に、残りの正常なファイルサーバに、imapブロックを分配して管理する。つまり、imapエントリの追加時にはimapブロック間でinode数を均等に分散し、更に、ファイルサーバ間でimapブロック数を均等に分散しているため、ファイルサーバ間でinodeをバランスよく分散して管理することができる。
なお、inodeのimapエントリを格納するimapブロックを決定するために、inodeのコンテンツアドレスをimapブロック数で割った余りをimapブロック番号としたが、コンテンツアドレスの一様性を保つ他の計算方法(例えば、imapブロック数を2の累乗にして、コンテンツアドレスの一部のデータをそのままimapブロック番号として用いるなど)も考えられる。
次に、上述したファイルサーバの障害時の動作の具体例を、さらに説明する。なお、inode番号と、inodeのコンテンツアドレスの条件、imapブロック番号、および、inodeを管理するファイルサーバの対応表は、図8に示すように設定されていることとする。また、この対応表は、例えば、ファイルサーバ11のimap分割情報記憶部11aに保存されているが、全てのファイルサーバ間で同期されている。
具体的に、図8に示す対応表は、以下の内容を設定している。つまり、ファイルサーバ11にはinode番号1〜50が割り当てられており、imapブロック0でコンテンツアドレスを6で割った余りが0となるinodeを管理するよう設定されている。また、ファイルサーバ11にはinode番号51〜100が割り当てられており、imapブロック1でコンテンツアドレスを6で割った余りが1となるinodeを管理するよう設定されている。また、ファイルサーバ12にはinode番号101〜150が割り当てられており、imapブロック2でコンテンツアドレスを6で割った余りが2となるinodeを管理するよう設定されている。また、ファイルサーバ12にはinode番号151〜200が割り当てられており、imapブロック3でコンテンツアドレスを6で割った余りが3となるinodeを管理するよう設定されている。なお、対応表の他の設定についての説明は省略する。
そして、ファイルサーバ11がinode番号51のinodeにアクセスする場合に、imap操作部11bは、imap分割情報記憶部11aに保存されている上記対応表(図8参照)を参照することで、当該inodeがimapブロック1で管理されており、imapブロック1はファイルサーバ11で管理されていると判断する。なお、その後、inodeにアクセスするなどその他の動作については、上述した実施形態1と同様であるため、その説明は省略する。
次に、フェイルオーバーの処理に関して説明する。まず、図9の×印に示すように、ファイルサーバ11で障害が発生したとする。すると、ファイルサーバ12がそれを検出し、ファイルサーバ11が管理していたimapブロック0とimapブロック1を、図9の矢印に示すように、ファイルサーバ12および13に分配する。これにより、他の正常なファイルサーバ12,13は、それぞれimapブロックを3つずつ管理することとなる。
その後、ファイルサーバ12は、inode番号と、inodeのコンテンツアドレスの条件、imapブロック番号、および、inodeを管理するファイルサーバの対応表を、図10に示すように更新する。具体的には、ファイルサーバ11に割り当てていた、コンテンツアドレスを6で割った余りが0,1のinodeを、それぞれファイルサーバ12,13に移動したブロック0,1に割り当てるよう、対応表を更新する。そして、その後、ファイルサーバ12,13は、新しく割り当てられたimapブロックの管理を引き継ぐ。以上により、フェイルオーバーが完了する。
次に、フェイルオーバー後にinodeにアクセスする場合の処理について説明する。上述したようにファイルサーバ11で障害が発生した後に、ファイルサーバ12がinode番号51のinodeにアクセスする場合に、ファイルサーバ12のimap操作部12bは、imap分割情報記憶部に保存されている図10に示す対応表に基づいて、当該inodeがimapブロック1で管理され、当該imapブロック1はファイルサーバ13で管理されていると判断する。なお、その後、inodeにアクセスするなどその他の動作については、上述した実施形態1と同様であるため、その説明は省略する。
以上のように、本実施形態では、ファイルサーバに障害が生じた場合であっても、そのファイルサーバに記憶されていたimapブロックを他の正常なファイルサーバに均等に分散して記憶することができる。その結果、特定のファイルサーバの負荷が増大することを抑制することができ、ストレージシステム全体における処理能力の向上を図ることができる。
特に、本実施形態では、ファイルサーバが3台装備されている状況で、各ファイルサーバが2つのimapブロックを記憶している。つまり、ファイルサーバの台数をn(=3)とした場合に、{(n−1)×1}=2つのimapブロックを、それぞれのファイルサーバが記憶している。これにより、1台のファイルサーバに障害が生じた場合には、当該ファイルサーバに記憶している2つのimapブロックを、残りの2つのファイルサーバに均等に分散させることができる。なお、上記では、1つのファイルサーバが2つのimapブロックを記憶して管理する場合を例示したが、例えば、ファイルサーバの台数をnとした場合に、1つのファイルサーバが{(n−1)×整数}の数のimapブロックを記憶していると望ましい。これにより、1台のファイルサーバに障害が生じた場合に、当該ファイルサーバに記憶されているimapブロックを、他のファイルサーバに均等に分散して配置することができる。但し、1つのファイルサーバが記憶して管理するimapブロックの数は、上述した数に限定されない。
<実施形態3>
次に、本発明の第3の実施形態を、図11乃至図13を参照して説明する。図11は、本実施形態におけるストレージシステム全体の構成を示すブロック図である。図12は、本実施形態におけるストレージシステム全体の他の構成を示すブロック図である。図13は、ファイルサーバに記憶されているinodeとファイルサーバとの対応表を示す図である。
本実施形態では、ディレクトリに含まれているファイルデータのリストを取るときなど、ファイルへのアクセスは行わないが、一度に大量のinodeにアクセスすることがあるため、inodeアクセスの高速化を考える。
まず、上述してきたストレージシステムは、冗長性や負荷分散のため、一般的に複数のストレージサーバを備えており、全てのファイルサーバとストレージサーバ間で通信路を持っている。かかる構成において、inodeへのアクセスを高速化するために、これら全てのサーバ間の通信路を高速化する方法あるが、高いコストが必要となる。従って、低コストでinodeをアクセスを高速化させることが課題となる。
そこで、本実施形態では、inodeのアクセスを特定の通信路に集中させることで、当該通信路のみを高速化することでコストを低減する。なお、ファイルデータのアクセスに関しては任意の通信路を用いる。以下、具体的な方法について、まず、ファイルサーバ数とストレージサーバ数が同数の場合について述べる。なお、同数ではない場合については、後述する。
まず、ストレージサーバにinodeを格納する際、格納するinodeのコンテンツアドレスに従って、inodeを保存するストレージサーバを決定する。次に、格納したinodeを管理するファイルサーバも上述したようにinodeのコンテンツアドレスから決定するが、その際、1つのストレージサーバに格納したinodeは、全て1つのファイルサーバで管理されるようにファイルサーバを決定する。つまり、特定のストレージサーバにinodeを保存した場合に、この特定のストレージサーバに予め対応して設定された特定のファイルサーバのimapキャッシュに、保存したinode番号とinodeのコンテンツアドレスとを関連付けたimapエントリを記憶する。
そして、ストレージサーバのinodeにアクセスするのは、当該inodeを管理するファイルサーバからのみとする。別のファイルサーバが管理しているinodeにアクセスしたい場合は、当該inodeを管理しているファイルサーバに中継を依頼する。
この方法により、inodeアクセスの際の通信を、特定の通信路、つまり、inodeが格納されているストレージサーバと当該inodeを管理するファイルサーバ間、および、当該inodeにアクセスしたいファイルサーバと当該inodeを管理しているファイルサーバ間、に集中させることができる。
次に、上述したinodeアクセスの高速化の具体例を、図11を参照して説明する。この例では、ストレージサーバ20が、ストレージサーバ21,22,23の3台で構成されていることとする。また、ファイルサーバ11は、ストレージサーバ21と高速な通信路で接続されているものとする。同様に、ファイルサーバ12とストレージサーバ22間、ファイルサーバ13とストレージサーバ23間も、それぞれ同様に高速な通信路で接続されているものとする。つまり、ファイルサーバとストレージサーバとは、相互に予め設定された特定のサーバ同士が、符号L1,L2,L3に示すように、高速な通信路で接続されている。さらに、ファイルサーバ11,12,13間の通信路も、符号L4,L5,L6に示すように、高速な通信路で接続されているものとする。なお、ファイルサーバの構成やimap等の分散方法は、上述した実施形態に場合と同様であることとする。
そして、ストレージシステムに保存されるデータを格納するストレージサーバは、ファイルサーバにおけるinode管理の分散の方法と同様に、inodeのコンテンツアドレスを3で割った余りの値で決定されるものとする。例えば、記憶対象であるinodeのコンテンツアドレスの余りが0ならストレージサーバ21に、余りが1ならストレージサーバ22に、余りが2ならストレージサー23に、それぞれ記憶対象となるinodeを格納することとする。
一例として、所定のinodeのコンテンツアドレスを3で割った余りが1とすると、当該inodeをストレージサーバ22に格納する。そして、このinodeのimapエントリは、ストレージサーバ22と対応付けられたファイルサーバ12に追加され、当該inodeはファイルサーバ12で管理される。これにより、当該inodeの読み込み時には、ファイルサーバ12とストレージサーバ22との高速な通信路を利用できる。
なお、上述した実施形態におけるストレージシステムでは、ファイルサーバとストレージサーバとはそれぞれ3台ずつ装備されているが、これらの台数は、上述した数に限定されない。
ここで、ストレージサーバに格納しているファイルデータを更新すると、inodeの内容が変わるため、inodeのコンテンツアドレスも変化する。すると、あるファイルサーバで管理されているinodeが、今までそのinodeが格納されていたストレージサーバと異なるストレージサーバに格納されてしまうことがある。この場合、ストレージシステム自体の性能低下を防ぐためには、inodeが格納されたストレージサーバと高速に通信できるファイルサーバへ、inodeの管理も移行させる必要がある。しかし、ファイルサーバ間でinodeを移動してimapを更新すると、inode番号の変更とディレクトリエントリの更新も必要となり、大きな負荷がかかる。
このため、本実施形態では、システム全体の負荷の少ないときなど、予め設定された任意のタイミングで、imap全体を走査し、ファイルが記憶されているストレージサーバとファイルサーバ間の高速な通信路を利用できないinodeを、当該ファイルが記憶されているストレージサーバと高速な通信路が利用できるファイルサーバに移動する。これにより、高速な通信路が使えなかったinodeへのアクセスで、再び高速な通信路を利用できるようになるため、性能の低下を防ぐことができる。
次に、図12乃至図13を参照して、ファイルサーバ数とストレージサーバ数が異なる場合について説明する。
まず、imapブロック数としてファイルサーバ数とストレージサーバ数の公倍数を用いる。次に、ファイルサーバ間でimapブロックが均等に分散するように、ファイルサーバが管理するimapを決める。この際、ファイルサーバが管理するimapブロックは、imapブロック番号の若い方から順に割り振っていく。次に、ストレージサーバにも同様にしてinodeを均等に分散させる。この方法により、inodeのアクセスには、図12の太線部分の通信路のみを使用するようにできる。
具体的に、図12に示すように、ファイルサーバ数が3、ストレージサーバ数が5の場合を考える。まず、imapブロック数をファイルサーバ数3とストレージサーバ数5の最小公倍数15とする。そして、それぞれファイルサーバには、図13の対応表に示すように、5つのimapブロックを割り当て、均等に分散させるよう設定する。
また、それぞれストレージサーバには、3つのimapブロックのinodeを格納するよう設定する。つまり、図13に示す対応表に示すように、ファイルサーバ11にはinode番号1〜20が割り当てられており、imapブロック0でコンテンツアドレスを15で割った余りが0となるinodeを管理し、また、このファイルサーバ11に対応するストレージサーバ21に、上記inodeを格納するよう設定されている。なお、対応表の他の設定についての説明は省略する。
このように設定することで、予め相互に対応して設定されたファイルサーバとストレージサーバ、つまり、図12の太線で示す通信路で接続されたファイルサーバ11とストレージサーバ21,22、ファイルサーバ12とストレージサーバ22,23,24、ファイルサーバ13とストレージサーバ24,25に、それぞれinodeと、そのimapエントリと、がそれぞれ記憶される。すると、その後のinodeへのアクセスで通信が、図12の太線で示す通信路に集中するため、その通信路のみを高速化すれば、システム全体の性能を向上できる。なお、この実施形態においては、ファイルサーバとストレージサーバとは、それぞれ3台と5台である場合を例示したが、各サーバの台数は上述したものに限定されない。
<実施形態4>
本発明の第4の実施形態を、図14を参照して説明する。図14は、ストレージシステムの構成を示す機能ブロック図である。なお、本実施形態では、ストレージシステムの概略を説明する。
図14に示すように、本実施形態におけるストレージシステムは、ストレージサーバ120と、当該ストレージサーバに対するデータの書き込み/読み出しを制御する複数のファイルサーバ111,112,113と、を備えている。
そして、上記ストレージサーバ120は、記憶対象データ120を記憶すると共に、当該記憶対象データを識別する識別データと、上記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップ120aを記憶している。
また、上記各ファイルサーバ111,112,113は、上記アドレスマップの複製を分散したデータであって上記ファイルサーバ毎に予め割り当てられた上記識別データを有する各アドレスマップキャッシュ111b,112b,113bをそれぞれ記憶しており、上記ストレージサーバに新たに上記記憶対象データを格納した際に、当該記憶対象データの上記識別データと、当該記憶対象データのデータ内容に基づいて生成された上記アドレスデータと、を関連付けて上記アドレスマップキャッシュに記憶するアドレスマップ操作手段111a,112a,113aを備えている。
さらに、上記アドレスマップ操作手段111a,112a,113aは、上記新たな記憶対象データの上記アドレスデータに基づいて上記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する上記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた上記識別データを上記新たな記憶対象データの識別データとして当該識別データに上記新たな記憶対象データの上記アドレスデータを関連付けて記憶する、という構成を採っている。
また、上記ストレージシステムでは、上記アドレスマップ操作手段は、上記新たな記憶対象データの上記アドレスデータの少なくとも一部に基づいて特定される数値と、上記ファイルサーバの数と、に基づいて判定値を算出し、この判定値に基づいて上記ファイルサーバを特定する、という構成を採る。
また、上記ストレージシステムでは、上記アドレスマップ操作手段は、上記アドレスデータの少なくとも一部に基づいて特定される数値を、上記ファイルサーバの数で割った余りを、上記判定値として算出する、という構成を採る。
また、上記ストレージシステムでは、上記記憶対象データは、所定のファイルサーバを分散した各ブロックデータを上記ストレージサーバに格納した場合に、当該各ブロックデータの格納位置をそれぞれ参照する各ブロックアドレスデータを含むアドレスリストデータである、という構成を採る。
上記発明によると、まず、ファイルサーバは、新たな記憶対象データをストレージサーバに格納する。なお、記憶対象データは、例えば、所定のファイルサーバを分散した各ブロックデータをストレージサーバに格納した場合に、当該各ブロックデータの格納位置をそれぞれ参照する各ブロックアドレスデータを含むアドレスリストデータである。
そして、上記記憶対象データを識別する識別データと、記憶対象データのデータ内容から生成したアドレスデータと、を関連付けたアドレスマップを、ストレージ装置に格納する。また、このアドレスマップの複製を分散して、複数のファイルサーバにアドレスマップキャッシュとしてそれぞれ記憶する。これにより、ストレージサーバに記憶されている記憶対象データにアクセスする際には、ファイルサーバが、読み出したい記憶対象データの識別データに関連付けられたアドレスデータを、当該ファイルサーバに記憶されたアドレスマップキャッシュから特定する。そして、このアドレスデータにて参照された格納位置を読み取ることで、目的の記憶対象データにアクセスすることができる。
そして、本発明では、ファイルサーバのアドレスマップ操作手段が、ストレージサーバに格納した記憶対象データのデータ内容に基づくアドレスデータからファイルサーバを特定し、当該特定したファイルサーバのアドレスマップキャッシュに、ストレージサーバに格納した記憶対象データの識別データとアドレスデータとを関連付けて記憶する。このとき、特に、特定されたファイルサーバに割り当てられている識別データを、記憶対象データの識別データとして、当該記憶対象データのアドレスデータを関連付けて記憶する。
以上のように、本発明では、記憶対象データのデータ内容のアドレスデータから、当該記憶対象データの識別データとその格納位置を参照するアドレスデータとを管理するファイルサーバを特定するため、ファイルサーバによる記憶対象データの管理を均等に分散することができる。従って、後に記憶対象データに対するアクセスが多数発生した場合であっても、かかるアクセスを均等に分散させることができ、特定のファイルサーバの負荷が増大することを抑制することができる。さらに、上述したように特定されたファイルサーバに予め割り当てられている識別データに、記憶対象データのアドレスデータを関連付けるため、当該記憶対象データを管理するファイルサーバを固定することができる。例えば、記憶対象データが更新され、そのデータ内容から特定されるアドレスデータが変更された場合であっても、識別データに関連付けるアドレスデータのみを変更すればよいため、引き続き同一のファイルサーバにて記憶対象データを管理することができる。従って、記憶対象データの管理が容易となり、その結果、システムにおける処理性能の向上を図ることができる。
そして、特に、記憶対象データのアクセスデータに基づく数値を、ファイルサーバの数で割った余りの値に基づいてファイルサーバを特定することで、より均等にファイルサーバによる記憶対象データの管理を分散させることができる。
また、上記ストレージシステムでは、上記各ファイルサーバは、上記アドレスマップキャッシュを複数記憶しており、所定の上記ファイルサーバの障害発生時に、当該障害が発生したファイルサーバに記憶されている上記複数のアドレスマップキャッシュを、複数の他の上記ファイルサーバにそれぞれ分散して記憶するアドレスマップ分散手段を備えた、という構成を採る。
また、上記ストレージシステムでは、上記各ファイルサーバは、ストレージシステムに装備されている上記ファイルサーバの数をnとした場合に、n−1の整数倍の上記アドレスマップキャッシュをそれぞれ記憶している。そして、上記アドレスマップ分散手段は、所定の上記ファイルサーバの障害発生時に、当該障害が発生したファイルサーバに記憶されている上記アドレスマップキャッシュを、複数の他の上記ファイルサーバにそれぞれ均等に分散して記憶する、という構成を採る。
これにより、ファイルサーバに障害が生じた場合であっても、そのファイルサーバに記憶されていたアドレスマップキャッシュを他のファイルサーバに均等に分散して記憶することができる。その結果、障害発生後であっても、特定のファイルサーバの負荷が増大することを抑制することができ、ストレージシステム全体における処理能力の向上を図ることができる。
また、上記ストレージシステムでは、上記アドレスマップ操作手段は、上記ストレージサーバに記憶された上記記憶対象データの上記アドレスデータと、当該記憶対象データの上記識別データと、を関連付けて、当該記憶対象データを記憶している上記ストレージサーバに予め対応して設定されている上記ファイルサーバが有する上記アドレスマップキャッシュに記憶する、という構成を採る。
また、上記ストレージシステムでは、上記アドレスマップ操作手段は、上記新たな記憶対象データの上記アドレスデータの少なくとも一部に基づいて特定される数値と、上記ファイルサーバの数と、に基づいて算出される判定値毎に相互に対応して設定された上記ストレージサーバと上記ファイルサーバとに、上記記憶対象データと、当該記憶対象データの上記識別データ及び当該記憶対象データのデータ内容に基づいて生成された上記アドレスデータを関連付けたデータと、をそれぞれ記憶する、という構成を採る。
これにより、ストレージサーバには記憶対象データが記憶されると共に、このストレージサーバに対応して設定されたファイルサーバが有するアドレスマップキャッシュに、上記記憶対象データの識別データ及びアドレスデータを関連付けたデータが記憶される。すると、予め対応して設定されたファイルサーバとストレージサーバとの通信量が多くなる。従って、かかる通信路のみを高速化しておくことで、全ての通信路を高速化することなく、ストレージシステム内における処理速度の向上を図ることができる。その結果、低コストにてストレージシステムの処理能力の向上を図ることができる。
また、上述したストレージシステムのファイルサーバは、情報処理装置に、プログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、
記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、上記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶したストレージサーバに対して、データの書き込み/読み出しを制御する複数のファイルサーバが、上記アドレスマップの複製を分散したデータであり上記ファイルサーバ毎に予め割り当てられた上記識別データを有する各アドレスマップキャッシュをそれぞれ記憶している場合に、上記各ファイルサーバに、
上記ストレージサーバに新たに上記記憶対象データを格納した際に、当該記憶対象データの上記識別データと、当該記憶対象データのデータ内容に基づいて生成された上記アドレスデータと、を関連付けて上記アドレスマップキャッシュに記憶するアドレスマップ操作手段を実現させる。
そして、上記アドレスマップ操作手段は、上記新たな記憶対象データの上記アドレスデータに基づいて上記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する上記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた上記識別データを上記新たな記憶対象データの識別データとして当該識別データに上記新たな記憶対象データの上記アドレスデータを関連付けて記憶する、という構成を採る。
また、上記プログラムでは、上記アドレスマップ操作手段は、上記新たな記憶対象データの上記アドレスデータの少なくとも一部に基づいて特定される数値と、上記ファイルサーバの数と、に基づいて判定値を算出し、この判定値に基づいて上記ファイルサーバを特定する、という構成を採る。
また、上述したストレージシステムが作動することにより実行される、本発明の他の形態であるファイル管理方法は、
記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、上記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶したストレージサーバに対して、データの書き込み/読み出しを制御すると共に、上記アドレスマップの複製を分散したデータであり上記ファイルサーバ毎に予め割り当てられた上記識別データを有する各アドレスマップキャッシュをそれぞれ記憶している複数のファイルサーバにて、
上記ストレージサーバに新たに上記記憶対象データを格納した際に、当該記憶対象データの上記識別データと、当該記憶対象データのデータ内容に基づいて生成された上記アドレスデータと、を関連付けて上記アドレスマップキャッシュに記憶する。
そして、上記アドレスマップキャッシュに記憶するときに、上記新たな記憶対象データの上記アドレスデータに基づいて上記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する上記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた上記識別データを上記新たな記憶対象データの識別データとして当該識別データに上記新たな記憶対象データの上記アドレスデータを関連付けて記憶する、という構成を採る。
上述した構成を有する、プログラム、又は、ファイル管理方法、の発明であっても、上記ストレージシステムと同様の作用を有するために、上述した本発明の目的を達成することができる。
本発明は、コンテンツアドレスストレージシステムといったストレージシステムに適用でき、産業上の利用可能性を有する。
11,12,13 ファイルサーバ
11a,12a,13a imap分割情報記憶部
11b,12b,13b imap操作部
11c,12c,13c imap一時記憶部
11d imap分散部
20,21,22,23,24,25 ストレージサーバ
20a,120a imap
20b inode
20c ファイルデータ
31,32,33 クライアント
110,120,130 imapキャッシュ

Claims (12)

  1. ストレージサーバと、当該ストレージサーバに対するデータの書き込み/読み出しを制御する複数のファイルサーバと、を備え、
    前記ストレージサーバは、記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、前記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶しており、
    前記各ファイルサーバは、前記アドレスマップの複製を分散したデータであって前記ファイルサーバ毎に予め割り当てられた前記識別データを有する各アドレスマップキャッシュをそれぞれ記憶しており、前記ストレージサーバに新たに前記記憶対象データを格納した際に、当該記憶対象データの前記識別データと、当該記憶対象データのデータ内容に基づいて生成された前記アドレスデータと、を関連付けて前記アドレスマップキャッシュに記憶するアドレスマップ操作手段を備え、
    前記アドレスマップ操作手段は、前記新たな記憶対象データの前記アドレスデータに基づいて前記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する前記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた前記識別データを前記新たな記憶対象データの識別データとして当該識別データに前記新たな記憶対象データの前記アドレスデータを関連付けて記憶する、
    ストレージシステム。
  2. 請求項1記載のストレージシステムであって、
    前記アドレスマップ操作手段は、前記新たな記憶対象データの前記アドレスデータの少なくとも一部に基づいて特定される数値と、前記ファイルサーバの数と、に基づいて判定値を算出し、この判定値に基づいて前記ファイルサーバを特定する、
    ストレージシステム。
  3. 請求項2記載のストレージシステムであって、
    前記アドレスマップ操作手段は、前記アドレスデータの少なくとも一部に基づいて特定される数値を、前記ファイルサーバの数で割った余りを、前記判定値として算出する、
    ストレージシステム。
  4. 請求項1乃至3のいずれか一項に記載のストレージシステムであって、
    前記記憶対象データは、所定のファイルサーバを分散した各ブロックデータを前記ストレージサーバに格納した場合に、当該各ブロックデータの格納位置をそれぞれ参照する各ブロックアドレスデータを含むアドレスリストデータである、
    ストレージシステム。
  5. 請求項1乃至4のいずれか一項に記載のストレージシステムであって、
    前記各ファイルサーバは、前記アドレスマップキャッシュを複数記憶しており、所定の前記ファイルサーバの障害発生時に、当該障害が発生したファイルサーバに記憶されている前記複数のアドレスマップキャッシュを、複数の他の前記ファイルサーバにそれぞれ分散して記憶するアドレスマップ分散手段を備えた、
    ストレージシステム。
  6. 請求項5記載のストレージシステムであって、
    前記各ファイルサーバは、ストレージシステムに装備されている前記ファイルサーバの数をnとした場合に、n−1の整数倍の前記アドレスマップキャッシュをそれぞれ記憶しており、
    前記アドレスマップ分散手段は、所定の前記ファイルサーバの障害発生時に、当該障害が発生したファイルサーバに記憶されている前記アドレスマップキャッシュを、複数の他の前記ファイルサーバにそれぞれ均等に分散して記憶する、
    ストレージシステム。
  7. 請求項1乃至6のいずれか一項に記載のストレージシステムであって、
    前記アドレスマップ操作手段は、前記ストレージサーバに記憶された前記記憶対象データの前記アドレスデータと、当該記憶対象データの前記識別データと、を関連付けて、当該記憶対象データを記憶している前記ストレージサーバに予め対応して設定されている前記ファイルサーバが有する前記アドレスマップキャッシュに記憶する、
    ストレージシステム。
  8. 請求項7記載のストレージシステムであって、
    前記アドレスマップ操作手段は、前記新たな記憶対象データの前記アドレスデータの少なくとも一部に基づいて特定される数値と、前記ファイルサーバの数と、に基づいて算出される判定値毎に相互に対応して設定された前記ストレージサーバと前記ファイルサーバとに、前記記憶対象データと、当該記憶対象データの前記識別データ及び当該記憶対象データのデータ内容に基づいて生成された前記アドレスデータを関連付けたデータと、をそれぞれ記憶する、
    ストレージシステム。
  9. 記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、前記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶したストレージサーバに対して、データの書き込み/読み出しを制御する複数のファイルサーバが、前記アドレスマップの複製を分散したデータであり前記ファイルサーバ毎に予め割り当てられた前記識別データを有する各アドレスマップキャッシュをそれぞれ記憶している場合に、前記各ファイルサーバに、
    前記ストレージサーバに新たに前記記憶対象データを格納した際に、当該記憶対象データの前記識別データと、当該記憶対象データのデータ内容に基づいて生成された前記アドレスデータと、を関連付けて前記アドレスマップキャッシュに記憶するアドレスマップ操作手段を実現させると共に、
    前記アドレスマップ操作手段は、前記新たな記憶対象データの前記アドレスデータに基づいて前記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する前記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた前記識別データを前記新たな記憶対象データの識別データとして当該識別データに前記新たな記憶対象データの前記アドレスデータを関連付けて記憶する、
    プログラム。
  10. 請求項9記載のプログラムであって、
    前記アドレスマップ操作手段は、前記新たな記憶対象データの前記アドレスデータの少なくとも一部に基づいて特定される数値と、前記ファイルサーバの数と、に基づいて判定値を算出し、この判定値に基づいて前記ファイルサーバを特定する、
    プログラム。
  11. 記憶対象データを記憶すると共に、当該記憶対象データを識別する識別データと、前記記憶対象データの格納位置を参照するデータであり当該記憶対象データのデータ内容に基づいて生成されたアドレスデータと、を関連付けたアドレスマップを記憶したストレージサーバに対して、データの書き込み/読み出しを制御すると共に、前記アドレスマップの複製を分散したデータであり前記ファイルサーバ毎に予め割り当てられた前記識別データを有する各アドレスマップキャッシュをそれぞれ記憶している複数のファイルサーバにて、
    前記ストレージサーバに新たに前記記憶対象データを格納した際に、当該記憶対象データの前記識別データと、当該記憶対象データのデータ内容に基づいて生成された前記アドレスデータと、を関連付けて前記アドレスマップキャッシュに記憶し、
    前記アドレスマップキャッシュに記憶するときに、前記新たな記憶対象データの前記アドレスデータに基づいて前記ファイルサーバを特定すると共に、この特定されたファイルサーバが有する前記アドレスマップキャッシュに、当該特定されたファイルサーバに予め割り当てられた前記識別データを前記新たな記憶対象データの識別データとして当該識別データに前記新たな記憶対象データの前記アドレスデータを関連付けて記憶する、
    ファイル管理方法。
  12. 請求項11記載のファイル管理方法であって、
    前記ファイルサーバを特定するときに、前記新たな記憶対象データの前記アドレスデータの少なくとも一部に基づいて特定される数値と、前記ファイルサーバの数と、に基づいて判定値を算出し、この判定値に基づいて前記ファイルサーバを特定する、
    ファイル管理方法。
JP2009080923A 2009-03-30 2009-03-30 ストレージシステム Expired - Fee Related JP5446378B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009080923A JP5446378B2 (ja) 2009-03-30 2009-03-30 ストレージシステム
PCT/JP2009/006903 WO2010116434A1 (ja) 2009-03-30 2009-12-16 ストレージシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009080923A JP5446378B2 (ja) 2009-03-30 2009-03-30 ストレージシステム

Publications (2)

Publication Number Publication Date
JP2010231690A true JP2010231690A (ja) 2010-10-14
JP5446378B2 JP5446378B2 (ja) 2014-03-19

Family

ID=42935746

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009080923A Expired - Fee Related JP5446378B2 (ja) 2009-03-30 2009-03-30 ストレージシステム

Country Status (2)

Country Link
JP (1) JP5446378B2 (ja)
WO (1) WO2010116434A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012077223A1 (ja) * 2010-12-10 2012-06-14 富士通株式会社 情報処理装置およびプログラム
JP2012123660A (ja) * 2010-12-09 2012-06-28 Nippon Telegr & Teleph Corp <Ntt> 情報管理システムとそのデータ更新操作方法
WO2015189936A1 (ja) * 2014-06-11 2015-12-17 株式会社 東芝 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008069811A1 (en) * 2005-12-29 2008-06-12 Amazon Technologies, Inc. Distributed replica storage system with web services interface
JP2008234445A (ja) * 2007-03-22 2008-10-02 Brother Ind Ltd コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148545A (ja) * 2005-11-24 2007-06-14 Brother Ind Ltd 情報配信システム、情報配信方法、ノード装置、及びノード処理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008069811A1 (en) * 2005-12-29 2008-06-12 Amazon Technologies, Inc. Distributed replica storage system with web services interface
JP2008234445A (ja) * 2007-03-22 2008-10-02 Brother Ind Ltd コンテンツ分散保存システム、複製データ取得方法、ノード装置、及びノード処理プログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012123660A (ja) * 2010-12-09 2012-06-28 Nippon Telegr & Teleph Corp <Ntt> 情報管理システムとそのデータ更新操作方法
WO2012077223A1 (ja) * 2010-12-10 2012-06-14 富士通株式会社 情報処理装置およびプログラム
US9619510B2 (en) 2010-12-10 2017-04-11 Fujitsu Limited Information processing apparatus and computer-readable medium storing information processing program
WO2015189936A1 (ja) * 2014-06-11 2015-12-17 株式会社 東芝 共有ストレージシステム、及びストレージ装置へのアクセスを制御する方法
CN105393207A (zh) * 2014-06-11 2016-03-09 株式会社东芝 共享贮存系统、以及控制向贮存装置的访问的方法
US9684577B2 (en) 2014-06-11 2017-06-20 Kabushiki Kaisha Toshiba Shared storage system and method for controlling access to storage device

Also Published As

Publication number Publication date
WO2010116434A1 (ja) 2010-10-14
JP5446378B2 (ja) 2014-03-19

Similar Documents

Publication Publication Date Title
CN107045422B (zh) 分布式存储方法和设备
CN107885758B (zh) 一种虚拟节点的数据迁移方法和虚拟节点
US6397309B2 (en) System and method for reconstructing data associated with protected storage volume stored in multiple modules of back-up mass data storage facility
US8972343B2 (en) Storage system
US8046422B2 (en) Automatic load spreading in a clustered network storage system
EP2784675B1 (en) Method, device and system for data reconstruction
US7836017B1 (en) File replication in a distributed segmented file system
US20160212203A1 (en) Multi-site heat map management
JP5701398B2 (ja) 計算機システム、データ管理方法及びプログラム
US9031906B2 (en) Method of managing data in asymmetric cluster file system
JP2005276094A (ja) 分散ストレージ装置のファイル管理方法及び分散ストレージシステム並びにプログラム
CN105027069A (zh) 卷区域的重复数据删除
CN111078121A (zh) 一种分布式存储系统数据迁移方法、系统、及相关组件
JP5569074B2 (ja) ストレージシステム
JPWO2004055675A1 (ja) ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム
US10942867B2 (en) Client-side caching for deduplication data protection and storage systems
CN104750757B (zh) 一种基于HBase的数据存储方法和设备
CN111078120A (zh) 一种分布式文件系统的数据迁移方法、系统及相关组件
JP2012008854A (ja) ストレージ仮想化装置
US8612717B2 (en) Storage system
JP5446378B2 (ja) ストレージシステム
WO2022175080A1 (en) Cache indexing using data addresses based on data fingerprints
JP4247975B2 (ja) データ管理方法、データ管理システム、およびそのためのプログラムならびに記録媒体
US10423507B1 (en) Repairing a site cache in a distributed file system
US5809435A (en) Efficient index arrangement and method for identifying valid records stored on logging digital data storage subsystem

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111208

RD07 Notification of extinguishment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7427

Effective date: 20120712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130723

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Ref document number: 5446378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees