JP5910117B2 - ファイルシステム - Google Patents

ファイルシステム Download PDF

Info

Publication number
JP5910117B2
JP5910117B2 JP2012017055A JP2012017055A JP5910117B2 JP 5910117 B2 JP5910117 B2 JP 5910117B2 JP 2012017055 A JP2012017055 A JP 2012017055A JP 2012017055 A JP2012017055 A JP 2012017055A JP 5910117 B2 JP5910117 B2 JP 5910117B2
Authority
JP
Japan
Prior art keywords
node
data
storage device
hdd
file system
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.)
Expired - Fee Related
Application number
JP2012017055A
Other languages
English (en)
Other versions
JP2013156847A (ja
Inventor
岩松 昇
昇 岩松
西口 直樹
直樹 西口
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012017055A priority Critical patent/JP5910117B2/ja
Priority to US13/675,407 priority patent/US20130198250A1/en
Publication of JP2013156847A publication Critical patent/JP2013156847A/ja
Application granted granted Critical
Publication of JP5910117B2 publication Critical patent/JP5910117B2/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/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1012Load balancing

Landscapes

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

Description

本発明は、データを記憶するファイルシステムに関する。
従来、複数のコンピュータノードにデータを分散して配置する分散ファイルシステムが知られている。この分散ファイルシステムは、データを分散して配置することで、負荷分散、大容量化および広帯域化などを実現している。
複数のディスク制御装置と複数のディスク駆動装置とをネットワーク又はスイッチで接続する記憶サブシステムが知られている。この記憶サブシステムは、ディスク制御装置の負荷に応じてディスク制御装置間で管理するボリウムを交代させる手段とボリウムの交代に応じてホストからディスク制御装置へのアクセスパスを変更する手段とボリウム番号とアクセスパスとの対応を変換する手段とを備える。
特開平11−296313号公報
図1は、分散ファイルシステム100の書き込み処理を説明する図である。
分散ファイルシステム100は、ネームノード110と、複数のデータノード120−0、120−1、・・・、および120−nと、を備える。そして、ネームノード110と、複数のデータノード120−0、120−1、・・・、および120−nと、は、互いにネットワーク150で接続されている。nは自然数である。以下では、データノード120−0、120−1、・・・、および120−nのうち1または2以上の任意のデータノードを「データノード120」という。
ネームノード110は、データブロックと、データブロックが記憶されているデータノード120と、の対応を管理する。なお、データブロックが記憶されているデータノード120とは、データブロックが記憶されているHDD(Hard Disk Drive)を含むデータノード120のことをいう。
例えば、分散ファイルシステム100にネットワーク150を介して接続するクライアントノード130が、分散ファイルシステム100に書き込みを行なう場合、クライアントノード130は、ネームノード110にデータブロックを書き込むデータノード120を問い合わせる。すると、ネームノード110は、データブロックを書き込むデータノード120を複数選択してクライアントノード130に通知する。
クライアントノード130は、ネームノード110が指定したデータノード120の1つ、例えば、データノード120−0に対してデータブロックの書き込みを指示する。すると、データノード120−0は、データブロックを自装置のHDDに書き込む。そして、データノード120−0は、クライアントノード130から指定された他のデータノード120、例えば、データノード120−1およびデータノード120−nに対して、自装置に書き込んだデータブロックと同じデータブロックの書き込みを指示する。このようにして、データノード120−0に書き込んだデータブロックのレプリカ(replica)が、他のデータノード120−1およびデータノード120−nに作成される。
レプリカを作成する場合、データノード120間では、レプリカを作成する数だけネットワーク150を介してデータ通信が行なわれることになる。この場合、レプリカ作成のためにネットワーク帯域が使用されるため、クライアントノード130から分散ファイルシステム500へのデータブロックの書き込みの速度が低下する。
また、分散ファイルシステム100は、各データノード120に記憶されているデータブロックに偏りが生じる、データノード120の脱退や追加が生じる、などすると、データブロックの再配置を行なう。このデータブロックの再配置を「リバランシング(rebalancing)処理」という。
リバランシングを行なう場合、図2に示すように、データノード120間でのデータブロックの移動が行なわれる。図2には、データノード120−0からネットワーク150を介してデータノード120−nにデータが移動される場合を例示している。
図1で説明したデータブロックの書き込み処理と同様に、データノード120間でのデータブロックの移動のためにネットワーク帯域が使用されるため、クライアントノード130から分散ファイルシステム500へのデータブロックの書き込み等の速度が低下する。
また、分散ファイルシステム100は、データノード120が故障すると、フェイルオーバー処理を行なう。このフェイルオーバー処理で、分散ファイルシステム100は、故障したデータノード120に記憶されていたデータブロックのレプリカを、他のデータノード120に再作成する。図3は、故障したデータノード120−0に記憶されていたデータブロックのレプリカを、そのレプリカを記憶しているデータノード120−1から、他のデータノード120−nにネットワーク150を介してコピーすることによりレプリカを再作成している場合を示している。
この場合も、図1で説明したデータブロックの書き込み処理と同様に、レプリカの再作成の移動のためにネットワーク帯域が使用されるので、クライアントノード130から分散ファイルシステム500へのデータブロックの書き込み等の速度が低下する。
本ファイルシステムは、1つの側面では、ファイルシステムへの書き込みを高速に行なうことができるファイルシステムを提供することを目的とする。
本ファイルシステムの1つの観点によれば、本ファイルシステムは、以下の構成要素を備える。
記憶装置は、データを記憶する。
第2のノードは、ネットワークを介して接続する任意の第1のノードの指示に応じて、所定の数の前記記憶装置に対して同一のデータの書き込みを行なう。
中継網は、前記第2のノード毎に、該第2のノードと1または2以上の前記記憶装置とを接続する。
第3のノードは、データの所在を管理し、前記第1のノードの問合せに応じて、前記第1のノードの所望のデータの所在を前記第1のノードに通知する。
さらに、前記第2のノードは、前記中継網を介して、前記所定の数の前記記憶装置に対して同一のデータの書き込みを行なう。
本ファイルシステムは、1つの態様では、ファイルシステムへの書き込みを高速に行なうことができるファイルシステムを提供することができる。
分散ファイルシステム100の書き込み処理を説明する図である。 分散ファイルシステム100のデータ移動処理を説明する図である。 分散ファイルシステム100のフェイルオーバー処理を説明する図である。 ファイルシステム400の概要を説明する図である。 分散ファイルシステム500の構成例を示す図である。 DASネットワーク540の一例を説明する図である。 デバイス管理情報700の一例を示す図である。 ゾーンパミッションテーブル800の一例を示す図である。 ネームノード510が使用する管理情報900の一例を示す図である。 管理情報900の説明に使用する分散ファイルシステム500の図である。 データブロック書き込み処理時の分散ファイルシステム500の動作の概要を説明する図である。 データブロック書き込み時の分散ファイルシステム500の動作を示すフローチャートである。 データブロック読み出し処理時の分散ファイルシステム500の動作の概要を説明する図である。 データブロック読み出し時の分散ファイルシステム500の動作を示すフローチャートである。 データノード520の脱退処理について説明する図である。 分散ファイルシステム500の脱退処理を示すフローチャートである。 分散ファイルシステム500のリバランシング処理を示すフローチャートである。 分散ファイルシステム1800の構成例を示す図である。 主管理HDDと副管理HDDとの接続関係を説明する図である。 データブロック管理情報2000の一例を示す図である。 データブロック管理情報2100の一例を示す図である。 HDD接続管理情報2200の一例を示す図である。 データブロック書き込み時の分散ファイルシステム1800の動作を示すフローチャートである。 データブロック読み出し時の分散ファイルシステム1800の動作を示すフローチャートである。 分散ファイルシステム1800の脱退処理を示すフローチャートである。 分散ファイルシステム1800のリバランシング処理を示すフローチャートである。 ネームノード510の具体的な構成例を示す図である。
以下、本発明の実施形態の一例について、図4〜図27に基づいて説明する。なお、以下に説明する実施形態はあくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図ではない。すなわち、本実施形態は、その趣旨を逸脱しない範囲で、各実施例を組み合わせるなど種々変形して実施することができる。また、図12、14、16、17、および23−26にフローチャートの形式で示した処理手順は、処理の順番を限定する趣旨ではない。したがって、可能な場合には、処理の順番を入れ替えても良いのは当然である。
≪実施例≫
図4は、一実施例に係るファイルシステム400の概要を説明する図である。
ファイルシステム400は、記憶装置410−0、410−1、・・・、および410−mと、第2のノード420−0、420−1、・・・、および420−nと、中継網430と、第3のノード440と、を備える。nおよびmは自然数である。
また、第2のノード420−0、420−1、・・・、および420−nと、第3のノード440と、はインターネット、LAN(Local Area Network)やWAN(Wide Area Network)などのネットワーク450を介して互いに通信可能に接続している。
以下では、記憶装置410−0、410−1、・・・、および410−mのうち1または2以上の任意の記憶装置を「記憶装置410」という。また、第2のノード420−0、420−1、・・・、および420−nのうち1または2以上の任意の第2のノードを「第2のノード420」という。
記憶装置410は、データを記憶する装置である。記憶装置410には、例えば、HDDなどを使用することができる。
第2のノード420は、ネットワーク450を介して接続する任意の第1のノード460の指示に応じて、所定の数の記憶装置410に対して同一のデータの書き込みを行なう装置である。第2のノード420は、中継網430を介して、所定の数の記憶装置410に対して同一のデータの書き込みを行なう。
中継網430は、第2のノード420毎に、第2のノード420と1または2以上の記憶装置410とを接続する。中継網430には、例えば、1または2以上のSAS(Serial Attached SCSI)エキスパンダ(expander)などを使用することができる。
第3のノード440は、ファイルシステム400に記憶されているデータの所在を管理する装置である。第3のノード440は、第1のノード460の問合せに応じて、第1のノード460の所望のデータの所在を第1のノード460に通知する。第3のノード440が管理するデータの所在には、例えば、データを記憶する記憶装置410や、データを記憶する記憶装置410と中継網を介して接続する第2のノード420などを含むことができる。
以上の構成において、例えば、第1のノード460から所望のデータの書き込み先の問合せを受けると、第3のノード440は、第1のノード460に対して、データの書き込み先の所在を通知する。すると、第1のノード460は、第3のノード440から通知されたデータの書き込み先の所在に基づいて、第2のノード420にデータの書き込みを指示する。
すると、第2のノード420は、第1のノード460からのデータの書き込み指示にしたがって、所定の数の記憶装置410に対してデータの書き込みを行なう。この場合、第2のノード420による記憶装置410へのデータの書き込みは、ネットワーク450を使用せず、中継網430を介して行なわれる。そのため、ファイルシステム400へのデータの書き込み時におけるネットワーク450のトラフィックが低く抑えられる。その結果、ファイルシステム400へのデータの書き込み速度を向上させることができる。
≪その他の実施例≫
図5は、その他の実施例に係る分散ファイルシステム500の構成例を示す図である。
分散ファイルシステム500は、ネームノード510と、複数のデータノード520−0、520−1、・・・、および520−nと、DAS(Direct Attached Storage)ネットワーク540と、複数のHDD530−0、530−1、・・・、および530−mと、を備える。
以下では、データノード520−0、520−1、・・・、および520−nのうち1または2以上の任意のデータノードを「データノード520」という。また、HDD530−0、530−1、・・・、および530−mのうち1または2以上の任意のHDDを「HDD530」という。
ネームノード510と、複数のデータノード520−0、520−1、・・・、および520−nと、は、インターネット、LANやWANなどのネットワーク560を介して通信可能に接続されている。また、複数のデータノード520−0、520−1、・・・、および520−nと、複数のHDD530−0、530−1、・・・、および530−mと、は、DASネットワーク540を介して通信可能に接続されている。
ネームノード510は、データブロックと、データブロックを記憶するHDD530と、の対応関係を管理する。また、ネームノード510は、データノード520とHDD530との接続状態を管理する。そして、ネームノード510は、必要に応じて、DASネットワーク540を操作することにより、データノード520とHDD530との接続状態を変更する。ネームノード510とDASネットワーク540は、イーサネット(Ethernet)(登録商標)ケーブルやRS−232Cケーブルなどの接続線570で接続して通信を行なうことができる。
ネームノード510は、クライアントノード550からの問合せに応じて、データブロックを書き込むHDD530を複数選択する。そして、ネームノード510は、選択したHDD530と、選択したHDDに接続しているデータノード120と、をクライアントノード550に通知する。
ネームノード510は、クライアントノード550からの問合せに応じて、データブロックが記憶されているHDD530と、そのHDD530に接続しているデータノード520と、を選択してクライアントノード550に通知する。
ネームノード510は、利用者の所定の操作に応じて、リバランシング処理を行なうことができる。このリバランシング処理で、ネームノード510は、例えば、移動対象のデータブロックが記憶されているHDD530と、移動対象のデータブロックの移動先のHDD530と、に接続しているデータノード520のなかから1つのデータノード520を選択する。そして、ネームノード510は、選択したデータノード520に対して、移動対象のデータブロックの移動を指示する。すると、HDD530間で、DASネットワーク540を介したデータブロックの移動が行なわれる。
ネームノード510は、利用者の所定の操作に応じて、データノード520の脱退処理を行なう。この脱退処理で、例えば、ネームノード510は、脱退するデータノード520に接続しているHDD530と接続するデータノード520の数が所定の数以下の場合、脱退したデータノード520に接続していたHDD530に、他のデータノード520を新たに接続する。
データノード520−0、520−1、・・・、520−nは、それぞれ、DASネットワーク540を介して、HDD530−0、530−1、・・・、または530−mのいずれか1つまたは2以上のHDD530と接続する。
データノード520は、クライアントノード550からの指示にしたがって、DASネットワーク540を介して接続するHDD530に対して、データブロックの書き込みや読み出しを行なう。
また、データノード520は、ネームノード510からの指示にしたがって、DASネットワーク540を介して、または、ネットワーク560を介して、HDD530間でのデータブロックの移動を行なう。
例えば、DASネットワーク540を介してデータノード520と接続しているHDD530間でデータブロックの移動を行なう場合、データノード520は、DASネットワーク540を使用してHDD530間のデータブロックの移動を行なう。
DASネットワーク540は、例えば、1または2以上のSASエキスパンダを用いて実現することができる。
図6は、DASネットワーク540の一例を説明する図である。図6では、DASネットワーク540として、SASエキスパンダ600を使用している。
SASエキスパンダ600は、複数のポート610と、記憶部620と、を備える。
図6では、ポート0からポート31までの32個のポート610を備えるSASエキスパンダ600について例示している。各ポート610には、データノード520またはHDD530が接続される。
各ポート610には、ゾーングループ(zone group)を識別するゾーングループID(identification information)を割り当てることができる。そして、このゾーングループIDを用いて、ゾーングループ間のポート接続を定義することができる。
ゾーングループIDは、デバイス管理情報700を用いて定義することができる。また、ゾーングループ間のポート接続は、ゾーンパミッションテーブル(zone permission table)800を用いて定義することができる。デバイス管理情報700とゾーンパミッションテーブル800は、記憶部620に記憶することができる。SASエキスパンダ600は、ゾーンパミッションテーブル800にしたがってポート610間を接続する。ネームノード510は、ゾーンパミッションテーブル800を変更することによって、ポート610間の接続関係を変更することができる。
図7は、デバイス管理情報700の一例を示す図である。
デバイス管理情報700は、ポート610を識別するポート番号と、ポート610に割り当てられたゾーングループIDと、を含む。また、デバイス管理情報700は、ポート610毎に、ポート610に接続しているデバイスの識別情報であるデバイスIDと、ポート610に接続しているデバイスの種別であるデバイス種別と、を含むこともできる。デバイス種類には、HDDやHBA(Host Bus Adapter)などを含むことができる。
図8は、ゾーンパミッションテーブル800の一例を示す図である。
ゾーンパミッションテーブル800は、接続元のゾーングループIDと、接続先のゾーングループIDと、を含む。ゾーンパミッションテーブル800中の「0」は、接続を許可しないことを示している。また、ゾーンパミッションテーブル800中の「1」は、接続を許可することを示している。
図8では、ゾーングループID「8」のポート610と、ゾーングループID「16」のポート610と、を接続する設定がされたゾーンパミッションテーブル800を例示している。なお、図8では、0から127をゾーングループIDとして使用している場合について例示しているが、ゾーングループIDを0から127に限定する趣旨ではない。
図9は、ネームノード510が使用する管理情報900の一例を示す図である。
管理情報900は、データブロックを識別するブロックIDと、ブロックIDが示すデータブロックが記憶されたHDD530と接続しているデータノード520を識別するデータノードIDと、含むことができる。さらに、管理情報900は、ブロックIDが示すデータブロックが記憶されたHDD530を識別するHDD IDを含むことができる。
図9に示した管理情報900は、図10に示す分散ファイルシステム500の管理情報の一部を示している。図10に示す分散ファイルシステム500は、12台のデータノード#00−#11と36台のHD#00−#35とを備え、HDD#00−HDD#08に、ブロックID#0−#2のデータブロックが記憶されている場合の例である。なお、図10では、説明に必要な構成以外省略してあるが、分散ファイルシステム500の構成を限定する趣旨ではない。また、説明を簡単にするために、データノード520としてデータノード#00−#11を使用し、HDD530としてHDD#00−#36を使用した場合の分散ファイルシステム500を示しているが、データノード数やHDD数を図10に示す数に限定する趣旨ではない。図11、13および15についても、図10と同様の趣旨である。
図10を参照すると、例えば、ブロックID#0のデータブロックが、HDD#00、#01および#02に記憶されている。そして、HDD#00はデータノード#00と、HDD#01はデータノード#00および#01と、HDD#02はデータノード#00および##02と、それぞれ接続している。これらの関係が図9に示した管理情報900に登録されている。
図11は、データブロック書き込み処理時の分散ファイルシステム500の動作の概要を説明する図である。下記(1)〜(3)は、図11に記載の(1)〜(3)に対応する。
クライアントノード550は、書き込み対象のファイルを複数のデータブロックに分割して分散ファイルシステム500に書き込む。
以下では、クライアントノード550がデータブロック0を分散ファイルシステム500に書き込む場合について説明する。ただし、図11に示す処理をデータブロック0に対する処理に限定する趣旨ではない。
(1)クライアントノード550は、ネームノード510に対してデータブロック0の所在を問い合わせる。すると、ネームノード510は、管理情報900から、問合せのあったデータブロック0が記憶されているHDD530と、HDD530と接続しているデータノード520と、を取得してクライアントノード550に通知する。
図11の例では、データブロック0の所在として、データブロック0を記憶しているHDD#00−#02が、ネームノード510からクライアントノード550に通知される。また、データブロック0の所在として、HDD#00と接続しているデータノード#00、HDD#01と接続している#00および#01、HDD#02と接続している#00および#02が、ネームノード510からクライアントノード550に通知される。
(2)クライアントノード550は、データブロック0の所在の問合せに対する応答を受信すると、データブロック0が記憶されているHDD#00−#02と接続しているデータノード#00に対して、データブロック0の書き込みを要求する。この要求と同時に、クライアントノード550は、データブロック0を書き込むHDD530のリスト、図11の例では、HDD#00−#02、を通知する。
(3)データノード#00は、クライアントノード550からデータブロック0の書き込み要求を受けると、データブロック0をクライアントノード550が指定したHDD530に書き込む。図11の例では、データノード#00は、HDD#00にデータブロック0を書き込む。さらに、データノード#00は、DASネットワーク540を介して、データブロック0のレプリカをHDD#01および#02にも書き込む。
図12は、データブロック書き込み時の分散ファイルシステム500の動作を示すフローチャートである。
クライアントノード550は、書き込み対象のファイルを所定のサイズのデータブロックに分割する。そして、クライアントノード550は、分散ファイルシステム500への書き込み処理を開始する(ステップS1200a)。なお、図12では、分散ファイルシステム500にデータブロック0を書き込む場合の処理について説明する。ただし、図12に示す処理をデータブロック0に対する処理に限定する趣旨ではない。
クライアントノード550は、データブロック0の所在をネームノード510に問い合わせる(ステップS1201a)。
一方、ネームノード510は、クライアントノード550からの問合せを受けると、管理情報900を参照する(ステップS1201b)。そして、ネームノード510は、管理情報900から、データブロック0が記憶されている全てのHDD530を選択する(ステップS1202b)。そして、選択した全てのHDD530と接続するデータノード520がない場合、ネームノード510は、DASネットワーク540のゾーンパミッションテーブル800を操作して、選択した全てのHDD530を同一のデータノード520と接続する。さらに、ネームノード510は、管理情報900から、ステップS1202bで選択した全てのHDD530と接続しているデータノード520を選択する(ステップS1203b)。
なお、クライアントノード550から問合せのあったデータブロック0が、管理情報900に登録されていない場合、ネームノード510は、あらかじめ設定されたレプリカの数+1だけ任意のHDD530を選択する。そして、ネームノード510は、選択した全てのHDD530と接続するデータノード520を選択する。そして、ネームノード510は、選択したHDD530とデータノード520をデータブロック0と対応付けて管理情報900に登録する。
HDD530とデータノード520を選択すると、ネームノード510は、クライアントノード550に対して、データブロック0の所在を通知する(ステップS1204b)。この所在には、ステップS1202bで選択した1または2以上のHDD530のHDD IDと、ステップS1203bで選択したデータノード520のデータノードIDが含まれる。
一方、ネームノード510からデータブロック0の所在の通知を受けると、クライアントノード550は、データブロック0の所在の通知に含まれるデータノード520に対して、データブロック0の書き込みを要求する(ステップS1202a)。このとき、クライアントノード550は、データブロック0の書き込みの要求とともに、データブロック0の書き込み先として、データブロックの所在の通知に含まれるHDD530のリストを送信する。以下では、このリストを「書き込み先HDDリスト」という。
書き込みの要求を受けると、データノード520は、クライアントノード550から受信した書き込み先HDDリストに含まれる全てのHDD530に対して、データブロック0の書き込みを行なう(ステップS1201c、ステップS1202c NO)。なお、書き込み先HDDリストに含まれる特定のHDD530以外のHDD530にデータブロック0を書き込む処理をレプリカ作成処理という。
書き込み先HDDリストに含まれる全てのHDD530に対してデータブロック0の書き込みが完了すると(ステップS1202c YES)、書き込み処理の結果をクライアントノード550に通知する(ステップS1203c)。この書き込み結果には、例えば、書き込み処理が正常終了したか否か、書き込みが完了したHDD530、書き込みを失敗したHDD530などの情報を含むことができる。
また、データノード520は、データノード520と接続しているHDD530に記憶されているデータブロックを、ネームノード510に通知する(ステップS1204c)。この通知を「ブロックリポート」という。なお、このブロックリポートの通知は、ステップS1201c−S1203cによる書き込み処理と関係なく、一定間隔毎に行なうことができる。ブロックリポートを受信すると、ネームノード510は、受信したブロックリポートの内容を管理情報900に反映する(ステップS1205b)。
以上の処理が完了すると、分散ファイルシステム500は、書き込み処理を終了する(ステップS1203a、S1206b、S1205c)。
図13は、データブロック読み出し処理時の分散ファイルシステム500の動作の概要を説明する図である。下記(1)〜(3)は、図13に記載の(1)〜(3)に対応する。以下では、読み出し対象のデータブロックがデータブロック0の場合について説明する。ただし、図13に示す処理をデータブロック0に対する処理に限定する趣旨ではない。
(1)クライアントノード550は、読み出し対象のデータブロック0の所在を問い合わせる。すると、ネームノード510は、管理情報900から、問合せのあったデータブロック0が記憶されているHDD530と、HDD530と接続しているデータノード520と、を取得してクライアントノード550に通知する。
(2)クライアントノード550は、データブロック0の所在の問合せに対する応答を受信すると、データブロック0が記憶されているHDD#00−#02のいずれかと接続しているデータノード520に対して、データブロック0の読み出しを要求する。図7では、データブロック0が記憶されているHDD#02と接続しているデータノード#02に対して、データブロック0の読み出しを要求している場合について例示している。
(3)データノード#02は、クライアントノード550からデータブロック0の読み出し要求を受けると、DASネットワーク540を介して接続するHDD#02からデータブロック0を読出してクライアントノード550に通知する。
図14は、データブロック読み出し時の分散ファイルシステム500の動作を示すフローチャートである。図14では、分散ファイルシステム500からデータブロック0を読出す場合の処理について説明する。ただし、図14に示す処理をデータブロック0に対する処理に限定する趣旨ではない。
クライアントノード550は、データブロック0の所在をネームノード510に問い合わせる(ステップS1401a)。
一方、ネームノード510は、クライアントノード550からの問合せを受けると、管理情報900を参照する(ステップS1401b)。そして、ネームノード510は、管理情報900から、データブロック0が記憶されているHDD530のうち任意の1つを選択する(ステップS1402b)。なお、ネームノード510は、選択するHDD530を、例えば、ラウンドロビン(round robin)方式などを用いて決定することができる。
さらに、ネームノード510は、管理情報900から、ステップS1402bで選択したHDD530と接続するデータノード520を選択する(ステップS1403b)。そして、ネームノード510は、クライアントノード550に対して、問合せのあったデータブロック0の所在を通知する(ステップS1404b)。この所在の通知には、ステップ1402bで選択したHDD530のHDD IDと、ステップS1403bで選択したデータノード520のデータノードIDが含まれる。
一方、ネームノード510からデータブロック0の所在の通知を受けると、クライアントノード550は、データブロック0の所在の通知に含まれるデータノード520に対して、データブロック0の読み出しを要求する(ステップS1402a)。このとき、クライアントノード550は、データブロック0の読み出しの要求とともに、データブロック0の読み出し先として、データブロック0の所在の通知に含まれるHDD530を指定する。
読み出しの要求を受けると、データノード520は、ネームノード510に指定されたHDD530からデータブロック0を読出す(ステップS1401c)。そして、データノード520は、読出したデータブロック0をクライアントノード550に通知する(ステップS1402c)。
以上の処理が完了すると、分散ファイルシステム500は、読み出し処理を終了する(ステップS1403a、S1405b、S1403c)。
図15は、データノード520の脱退処理について説明する図である。
分散ファイルシステム500に含まれるデータノード520の1が故障等により動作しなくなると、動作しなくなったデータノード520を分散ファイルシステム500から脱退させる処理が行なわれる。図15は、図10に示した分散ファイルシステム500からデータノード#00を脱退した場合について例示している。ただし、図15に示す処理をデータノード#00に対する処理に限定する趣旨ではない。
脱退処理の一例によると、図15に示すように、脱退前のデータノード#00に接続されていたHD#00−#02および#34は、HDD#00はデータノード#01に、HDD#01、#02および#34はデータノード#02に引き継がれている。
図16は、分散ファイルシステム500の脱退処理を示すフローチャートである。以下の説明では、一例としてデータノード#00を脱退するときのフェイルオーバー処理について説明する。ただし、図16に示す処理をデータノード#00に対する処理に限定する趣旨ではない。
利用者の所定の操作によりデータノード#00の脱退指示を受信すると(ステップS1601)、ネームノード510は、管理情報900を参照する(ステップS1602)。そして、ネームノード510は、データノード#00と接続しているHDD530を1つ選択する(ステップS1603)。
ステップS1603で選択したHDD530と接続する、データノード#00以外のデータノード520の数が所定数以下の場合(ステップS1604 YES)、ネームノード510は、処理をステップS1605に移行する。この場合、ネームノード510は、所定数に不足する数のデータノード520を選択する(ステップS1605)。なお、ここで選択するデータノード520の対象から、既にステップS1603で選択したHDDと接続しているデータノード520は除かれる。
データノード520を選択すると、ネームノード510は、選択したデータノード520それぞれと、ステップS1603で選択したHDD530と、を接続する(ステップS1605)。なお、HDD530とデータノード520とを接続するには、例えば、図8に示したデータパミッションテーブル800を変更することにより行なうことができる。データパミッションテーブル800の設定方法については、図8で前述したので省略する。
ステップS1605の処理が完了すると、ネームノード510は、ステップS1605によって変更されたHDD530とネームノード510との接続関係を管理情報900に反映する(ステップS1606)。
データノード#00と接続するHDD530のうち、まだステップS1603で選択していないHDD530がある場合(ステップS1607 NO)、ネームノード510は、処理をステップS1602に移行して、ステップS1602〜S1607の処理を繰り返す。
また、データノード#00と接続するHDD530の全てがステップS1603で選択済みである場合(ステップS1607 YES)、ネームノード510は、脱退処理を終了する(ステップS1608)。
図17は、分散ファイルシステム500のリバランシング処理を示すフローチャートである。
使用者の所定の操作によりリバランシング処理の指示を受信すると、ネームノード510は、リバランシング処理を開始する(ステップS1700a)。そして、ネームノード510は、管理情報900を参照し(ステップS1701a)、管理情報900に登録されている各HDD530の使用率を算出する(ステップS1702a)。なお、本実施例では、HDD530の使用率を使用しているが、HDD530の空き容量やアクセス頻度などHDD530にかかる負荷を示す様々な情報を使用することができる。
使用率の最大値と最小値の差が10%以上の場合(ステップS1703a)、ネームノード510は、使用率が最大のHDDを選択する(ステップS1704a)。この選択したHDDを以下の説明では、「HDD1」とする。また、ネームノード510は、使用率が最小のHDD530を選択する(ステップS1705a)。この選択したHDDを以下の説明では、「HDD2」とする。
なお、ステップS1703aでは、使用率の最大値と最小値の差が10%か否かで判別しているが、これは一例であって、10%に限定する趣旨ではない。
HDD1およびHDD2の両方と接続したデータノード520がある場合(ステップS1706a YES)、ネームノード510は、HDD1およびHDD2の両方と接続したデータノード520を選択する(ステップS1707a)。この選択したデータノード520を以下の説明では「データノード1」とする。
また、HDD1およびHDD2の両方と接続したデータノード520がない場合(ステップS1706a NO)、ネームノード510は、HDD1と接続しているデータノード520をHDD2と接続する(ステップS1708a)。そして、ネームノード510は、HDD1およびHDD2の両方と接続することになったデータノード520を選択する(ステップS1709a)。この選択したデータノード520を以下の説明では「データノード2」とする。
そして、データノード520は、ステップS1706aで選択したデータノード1、または、ステップS1708aで選択したデータノード2に対して、一定量のデータのHDD1からHDD2への移動を指示する(ステップS1710a)。
一方、ネームノード510からデータの移動の指示を受けると、データノード520は、HDD1からHDD2に一定量のデータを移動する(ステップS1701b)。このデータの移動は、DASネットワーク540を介して行なわれる。データの移動が完了すると、データノード520は、その旨をネームノード510に通知する。
データの移動が完了すると、ネームノード510は、処理をステップS1702aに移行する。そして、ステップS1702a〜S1710aの処理を繰り返す。そして、ステップS1702aで算出するHDDの使用率の最大値と最小値との差が10%未満になると(ステップS1703a NO)、ネームノード510は、リバランシング処理を終了する(ステップS1711a、S1702b)。
≪その他の実施例≫
図18は、その他の実施例に係る分散ファイルシステム1800の構成例を示す図である。
分散ファイルシステム1800は、ネームノード1800と、複数のデータノード1810−0、1810−1、・・・、および1810−nと、DASネットワーク540と、複数のHDD530−0、530−1、・・・、および530−mと、を備える。以下では、データノード1810−0、1810−1、・・・、および1810−nのうち1または2以上の任意のデータノードを「データノード1810」という。
ネームノード1800と、複数のデータノード1810−0、1810−1、・・・、および1810−nと、は、ネットワーク560を介して通信可能に接続されている。また、複数のデータノード1810−0、1810−1、・・・、および1810−nと、複数のHDD530−0、530−1、・・・、および530−mと、は、DASネットワーク540を介して通信可能に接続されている。
ネームノード1800は、データブロック毎に、データブロックと、データブロックを記憶するデータノード1810と、の対応関係を管理する。この管理には、例えば、図20に示すデータブロック管理情報2000を使用することができる。このデータブロック管理情報2000には、データブロックを識別するブロックIDと、データノードを識別するデータノードIDと、を含むことができる。
なお、本実施例において、ネームノード1800がデータブロック毎に管理する「データブロックを記憶するデータノード1810」とは、データブロックを記憶する主管理HDDと接続しているデータノード1810のことをいう。主管理HDDについては後述する。
ネームノード1800は、クライアントノード550からの問合せに応じて、データブロック管理情報2000から、データブロックを書き込むデータノード1810を複数選択する。そして、ネームノード1800は、選択したネームノード1800をクライアントノード550に通知する。
ネームノード1800は、クライアントノード550からの問合せに応じて、データブロック管理情報2000から、データブロックが記憶されているネームノード1800をクライアントノード550に通知する。
ネームノード1800は、利用者の所定の操作に応じて、リバランシング処理を行なう。この場合、ネームノード1800は、データノード1810の使用率の最大値と最小値の差が一定の割合以下になるまで、使用率が最大のデータノードから使用率が最小のデータノードにデータブロックを移動させる処理を繰り返す。
ネームノード1800は、利用者の所定の操作に応じて、データノード1810の脱退処理を行なう。この脱退処理で、例えば、ネームノード1800は、脱退したデータノード1810に記憶されていたデータブロックのレプリカを、他のデータノード1810に作成する。
データノード1810−0、1810−2、・・・、および1810−nは、それぞれ、DASネットワーク540を介して、HD530−0、530−1、・・・、530−mのいずれか1つまたは2以上のHDDと接続する。
データノード1810は、自装置と接続しているHDD530に記憶しているデータブロックを管理する。この管理には、例えば、図21に示すデータブロック管理情報2100を使用することができる。このデータブロック管理情報2100には、データブロックを識別する識別情報であるブロックIDと、ブロックIDが示すデータブロックが記憶されているHDD530を識別する識別情報であるHDD IDと、を含むことができる。
データノード1810は、自ノードと接続するHDD530を、自ノードがネームノード1800に対するインタフェースとして機能するHDD530と、他のノードがネームノード1800に対するインタフェースとして機能するHDD530と、を分けて管理する。以下では、自ノードと接続するHDD530のうち、自ノードがネームノード1800に対するインタフェースとして機能するHDD530を「主管理HDD」という。データノード1810の使用率には、データノード1810の主管理HDDの使用率を使用する。また、自ノードと接続するHDD530のうち、他のノードがネームノード1800に対するインタフェースとして機能するHDD530を「副管理HDD」という。
主管理HDDと副管理HDDの管理には、例えば、図22に示すHDD接続管理情報2200を使用することができる。このHDD接続管理情報2200には、データノード1810毎に、主管理HDDを識別するHDD IDと、副管理HDを識別するHDD IDと、を含むことができる。
データノード1810は、ネームノード1800からの指示にしたがって、DASネットワーク540を介して、または、ネットワーク560を介して、接続するHDD530間でのデータブロックの書き込みやデータブロックの移動を行なう。
例えば、DASネットワーク540を介してデータノード1810と接続しているHDD530間でデータブロックの書き込みを行なう場合、データノード1810は、DASネットワーク540を使用してデータブロックの書き込みを行なうことができる。このHDD530間のデータブロックの書き込みには、ネットワーク560は使用されない。
図19は、主管理HDDと副管理HDDとの接続関係を説明する図である。図19では、理解を容易にするために、データノード1810が4台、HDDが4台の構成例を示しているが、分散ファイルシステム1800を図19に示す構成に限定する趣旨ではない。
データノード#00は、データノード#00が管理する主管理HDDのHD#00と接続している。データノード#00は、主管理HDD#00におけるデータブロックの記憶状態などを管理する。一定期間毎に、データノード#00は、主管理HDD#00におけるデータブロックの記憶状態などをブロックレポートとしてネームノード1800に送信する。なお、主管理HDDは、分散ファイルシステム1800に備わるHDD530のうちあらかじめ決められたHDD530である。同様に、データノード#01−#03は、それぞれ、主管理HDDのHDD#01、#02および#03と接続している。
また、データノード#00は、データノード#00以外のデータノード1810が管理する副管理HDDのHDD#01、#02および#03と接続している。同様に、データノード#01−#3は、それぞれ、副管理HDDのHDD#00、#02および#03、HDD#00、#01および#03、HDD#00、#01および#02、と接続している。
なお、図19では、各データノード1810に1つの主管理HDDが割り当てられた例を示したが、1つのデータノード1810に複数の主管理HDDを割り当てることもできる。
図22は、HDD接続管理情報2200の一例を示す図である。
HDD接続管理情報2200は、データノード1810毎に、データノード1810と接続する主管理HDDのHDD IDと、データノード1810と接続する副管理HDDのHDD IDと、を含むことができる。図22は、図19に示した主管理HDDと副管理HDDとの接続関係を示すHDD接続管理情報2200の例である。
図23は、データブロック書き込み時の分散ファイルシステム1800の動作を示すフローチャートである。
クライアントノード550は、書き込み対象のファイルを所定のサイズのデータブロックに分割する。そして、クライアントノード550は、分散ファイルシステム500への書き込み処理を開始する(ステップS2300a)。なお、図23では、分散ファイルシステム500にデータブロック0を書き込む場合の処理について説明する。ただし、図23に示す処理をデータブロック0に対する処理に限定する趣旨ではない。
クライアントノード550は、データブロック0の所在をネームノード1800に問い合わせる(ステップS2301a)。
一方、ネームノード1800は、クライアントノード550からの問合せを受けると、データブロック管理情報2000を参照する(ステップS2301b)。そして、ネームノード1800は、データブロック管理情報2000から、データブロック0が記憶されている全てのデータノード1810を選択する(ステップS2302b)。なお、クライアントノード550から問合せのあったデータブロック0が、データブロック管理情報2000に登録されていない場合、ネームノード1800は、あらかじめ設定されたレプリカの数だけデータノード1810を選択する。そして、ネームノード1800は、選択したデータノード1810をデータブロック0と対応付けてデータブロック管理情報2000に記憶する。
以上の処理が終了すると、ネームノード1800は、クライアントノード550に対して、問合せのあったデータブロック0の所在を通知する(ステップS2303b)。この所在には、ステップS2302bで選択したデータノード1810のデータノードIDが含まれる。
一方、ネームノード1800からデータブロック0の所在の通知を受けると、クライアントノード550は、データブロック0の所在の通知に含まれるデータノード1810から1つデータノード1810を選択する。そして、ネームノード1800は、選択したデータノード1810に対してデータブロック0の書き込みを要求する(ステップS2302a)。このとき、選択したデータノード1810を、以下では「選択データノード」という。クライアントノード550は、データブロック0の書き込みの要求とともに、データブロック0の書き込み先として、データブロックの所在の通知に含まれるデータノード1810のリストを送信する。以下では、このリストを「書き込み先データノードリスト」という。
書き込みの要求を受けると、選択データノードは、クライアントノード550から送られた書き込み先データノードリストを確認する。書き込み先データノードリストが空の場合(ステップS2301c YES)、選択データノードは、データブロック0の書き込み結果をクライアントノード550に通知する(ステップS2309c)。
書き込み先データノードリストが空でない場合(ステップS2301c NO)、選択データノードは、書き込み先データノードリストからデータノード1810を1つ取得する(ステップS2302c)。この取得したデータノード1810を以下では「書き込み先データノード」という。
選択データノードは、HDD接続管理情報2200を参照し、書き込み先データノード1810の主管理HDDが、選択データノードと接続しているか否かを確認する。
書き込み先データノードの主管理HDDが、選択データノードと接続している場合(ステップS2303c YES)、選択データノードは、データブロックを書き込み先データノードの主管理HDDに書き込む(ステップS2304c)。
書き込み先データノードが選択データノードの場合(ステップS2305c YES)、選択データノードは、選択データノードのデータブロック管理情報2100を更新する(ステップS2306c)。そして、選択データノードは、処理をステップS2301cに移行する。
また、ステップS2303cにおいて、書き込み先データノードの主管理HDDが、選択データノードと接続していない場合(ステップS2303c NO)、選択データノードは、書き込み先データノードに対して、データブロックの書き込みを要求する(ステップS2307c)。書き込み先データノードからデータブロック0の書き込み完了の通知を受けると、選択データノードは、処理をステップS2301cに移行する。
また、書き込み先データノードが選択データノードでない場合(ステップS2305c NO)、選択データノードは、書き込み先データノードに対してデータブロック管理情報2100の更新を要求する(ステップS2308c)。書き込み先データノードから、データブロック管理情報2100の更新完了の通知を受けると、選択データノードは、処理をステップS2301cに移行する。
ステップS2301c−S2308cの処理が終了すると、選択データノードは、書き込み結果をクライアントノード550に通知する(ステップS2309c)。
以上の処理が完了すると、分散ファイルシステム1800は、書き込み処理を終了する(ステップS2303a、S2304b、S2310c)。
図24は、データブロック読み出し時の分散ファイルシステム1800の動作を示すフローチャートである。図24では、分散ファイルシステム1800からデータブロック0を読出す場合について説明する。ただし、図24に示す処理をデータブロック0に対する処理に限定する趣旨ではない。
クライアントノード550は、データブロック0の所在をネームノード1800に問い合わせる(ステップS2401a)。
一方、ネームノード1800は、クライアントノード550からの問合せを受けると、データブロック管理情報2000を参照する(ステップS2401b)。そして、ネームノード1800は、データブロック管理情報2000から、データブロック0が記憶されているデータノード1810のうち任意の1つを選択する(ステップS2402b)。なお、ネームノード1800は、選択するデータノード1810を、例えば、ラウンドロビン方式などを用いて決定することができる。
そして、ネームノード1800は、クライアントノード550に対して、問合せのあったデータブロック0の所在を通知する(ステップS2403b)。この所在の通知には、ステップS2402bで選択したデータノード1810のデータノードIDが含まれる。
一方、ネームノード1800からデータブロック0の所在の通知を受けると、クライアントノード550は、データブロック0の所在の通知に含まれるデータノード1810に対して、データブロック0の読み出しを要求する(ステップS2402a)。
読み出しの要求を受けると、データノード1810は、データノード1810自身に接続している主管理HDDからデータブロック0を読出す(ステップS2401c)。そして、データノード1810は、読出したデータブロック0を、クライアントノード550に送信する(ステップS2402c)。
以上の処理が完了すると、分散ファイルシステム1800は、読み出し処理を終了する(ステップS2403a、S2404b、S2403c)。
図25は、分散ファイルシステム1800の脱退処理を示すフローチャートである。以下の説明では、一例としてデータノード#00を脱退するときのフェイルオーバー処理について説明する。ただし、図25に示す処理をデータノード#00に対する処理に限定する趣旨ではない。
利用者の処理の操作によりデータノード#00の脱退指示を受信すると、ネームノード1800は、データノード#00の脱退処理を開始する(ステップS2500a)。以下では、データノード#00の脱退指示を受信した場合を例に説明する。ただし、図25に示す処理をデータノード#00に対する処理に限定する趣旨ではない。
データノード#00の脱退指示を受信すると、ネームノード1800は、データブロック管理情報2000を参照し(ステップS2501a)、データノード#00と接続していたHDD530が記憶していたデータブロックを1つ選択する(ステップS2502a)。
さらに、ネームノード1800は、ステップS2502aで選択したデータブロックのレプリカを記憶しているデータノード1810の中から、任意のデータノード1810を、データブロックの複製元として選択する(ステップS2503a)。このとき選択したデータノード1810を以下ではデータノード#01とする。
また、ネームノード1800は、ステップS2502aで選択したデータブロックの複製先として、任意のデータノード1810を1つ選択する(ステップS2504a)。このとき選択したデータノード1810を以下ではデータノード#02とする。ただし、このデータノード#02は、ステップS2503aで選択したデータノード#01以外のデータノード1810である。また、データノード#02は、ステップS2503aで選択したデータノード#01とHDD530が接続していることが望ましい。
データノード#01および#02を選択すると、ネームノード1800は、データノード#01に対してレプリカ作成を要求する(ステップS2505a)。
一方、ネームノード1800からレプリカ作成の要求を受信すると、データノード#01は、データノード#01のHDD接続管理情報2200を参照する(ステップS2501b)。そして、データノード#01が、データノード#02の主管理HDDと接続しているか否かを確認する。
データノード#01がデータノード#02の主管理HDDと接続している場合(ステップS2502b YES)、データノード#01は、データノード#02の主管理HDDにデータブロックを書き込む(ステップS2503b)。このデータノード#02の主管理HDDへのデータブロックの書き込みは、ネットワーク560を使用せずに、DASネットワーク540を介して行なうことができる。
また、データノード#01がデータノード#02の主管理HDDと接続していない場合(ステップS2502b NO)、データノード#01は、データブロックの書き込みをデータノード#02に要求する(ステップS2504b)。データノード#01からデータブロックの書き込み要求を受信すると、データノード#02は、データノード#02の主管理HDDにデータブロックを書き込む(ステップS2501c)。そして、データノード#02は、データブロックの書き込み完了をデータノード#01に通知する。
ステップS2503bまたはS2504bの処理によりデータブロックのレプリカの作成が完了すると、データノード#01は、データノード#02に対して、データノード#02のデータブロック管理情報2100の更新を要求する(ステップS2505b)。データブロック管理情報2100の更新の要求を受けたデータノード#02は、データノード#02のデータブロック管理情報2100を更新する(ステップS2502c)。そして、データノード#02は、データブロック管理情報2100の更新完了をデータノード#01に通知する。
ステップS2501b−S2505bの処理が完了すると、データノード#01は、データブロックのレプリカ作成の完了を、ネームノード1800に通知する(ステップS2506b)。
データノード#01からデータブロックのレプリカの作成完了の通知を受けると、ネームノード1800は、データノード#00に記憶していたデータブロックを全て選択したか否か確認する。
データノード#00に記憶していたデータブロックに未選択のデータブロックがある場合(ステップS2506a NO)、ネームノード1800は、処理をステップS2501aに移行する。そして、ネームノード1800は、ステップS2501a−S2506aの処理を繰り返す。また、データノード#00に記憶していたデータブロックに未選択のデータブロックがない場合(ステップS2506a YES)、ネームノード1800は、処理をステップS2507aに移行する。
以上の処理が完了すると、分散ファイルシステム1800は、脱退処理を終了する(ステップS2507a、S2507b、S2503c)。
図26は、分散ファイルシステム1800のリバランシング処理を示すフローチャートである。
使用者の所定の操作によりリバランシング処理の指示を受信すると(ステップS2600a)、ネームノード1800は、データブロック管理情報2000を参照する(ステップS2601a)。そして、ネームノード1800は、各データノードの使用率、すなわち、各データノード1810に接続する主管理HDDの使用率を算出する(ステップS2602a)。なお、本実施例では、主管理HDDの使用率を使用しているが、主管理HDDの空き容量やアクセス頻度など主管理HDDにかかる負荷を示す様々な情報を使用することができる。
ステップS2602aで算出した使用率の最大値と最小値との差が10%以上の場合(ステップS2603a YES)、ネームノード1800は、データブロックの移動元として、使用率が最大のデータノードを選択する(ステップS2604a)。この選択したデータノードを以下ではデータノード#01とする。
また、ネームノード1800は、データブロックの移動先として、使用率が最小のデータノードを選択する(ステップS2605a)。この選択したデータノードを以下ではデータノード#02とする。
データブロックの移動元と移動先を選択すると、ネームノード1800は、移動元であるデータノード#01に対して、データノード#02を移動先に指定して、一定量のデータブロックの移動を指示する(ステップS2606a)。
一方、ネームノード1800からデータブロックの移動の指示を受けると、データノード#01は、HDD接続管理情報2200を参照する(ステップS2601b)。そして、データノード#01は、データノード#01と、データブロックの移動先であるデータノード#02の主管理HDDと、が接続しているか否かを確認する。
データノード#01と、データノード#02の主管理HDDと、が接続している場合(ステップS2602b YES)、データノード#01は、処理をステップS2603bに移行する。この場合、データノード#01は、データノード#01の主管理HDDから、データノード#02の主管理HDDに、一定量のデータブロックを移動する(ステップS2603b)。このときのデータブロックの移動は、ネットワーク560を使用せず、DASネットワーク540を介して行なうことができる。
データノード#01と、データノード#02の主管理HDDと、が接続していない場合(ステップS2602b NO)、データノード#01は、データブロックの書き込みをデータノード#02に要求する(ステップS2604b)。このとき、データノード#01は、データノード#01の主管理HDDから一定量のデータブロックを読出してデータノード#02に送信する。データノード#01からデータブロックの書き込み要求を受信すると、データノード#02は、データノード#02の主管理HDDに、受信したデータブロックを書き込む(ステップS2601c)。そして、データノード#02は、データブロックの書き込み完了をデータノード#01に通知する。
ステップS2603bまたはS2604bの処理によりデータブロックの移動が完了すると、データノード#01は、データノード#01のデータブロック管理情報2100を更新する(ステップS2605b)。また、データノード#01は、データブロックの移動先であるデータノード#02に対して、データノード#02のデータブロック管理情報2100の更新を要求する(ステップS2606b)。データブロック管理情報2100の更新の要求を受けたデータノード#02は、データノード#02のデータブロック管理情報2100を更新する(ステップS2602c)。そして、データノード#02は、データブロック管理情報2100の更新完了をデータノード#01に通知する。
ステップS2601b−S2606bの処理が完了すると、データノード#01は、データブロックの移動完了をネームノード1800に通知する(ステップS2607b)。
データノード#01からデータブロックの移動完了の通知を受けると、ネームノード1800は、処理をステップS2601aに移行する。そして、ネームノード1800は、ステップS2601a−S2606aの処理を繰り返す。
以上の処理が完了すると、分散ファイルシステム1800は、リバランシング処理を終了する(ステップS2607a、S2608b、S2603c)。
図27は、ネームノード510の具体的な構成例を示す図である。
図27に示すネームノード510は、CPU2701と、メモリ2702と、入力装置2703と、出力装置2704と、外部記憶装置2705と、媒体駆動装置2706と、ネットワーク接続装置2708と、を備える。そして、これらの装置がバスに接続されて相互にデータの受け渡しが行える構成となっている。
CPU2701は、周辺機器や各種ソフトウェアを実行する他に本実施例に係る分散ファイルシステム500を実現するプログラムを実行する演算装置である。
メモリ2702は、プログラムを実行するために使用される揮発性の記憶装置である。メモリ2702には、例えば、RAM(Random Access Memory)などを使用することができる。
入力装置2703は、外部からのデータ入力手段である。入力装置2703には、例えば、キーボードやマウスなどを使用することができる。出力装置2704は、データ等を表示装置等に出力する装置である。なお、出力装置2704には、表示装置を含むこともできる。
外部記憶装置2705は、ネームノード510が動作するために必要なプログラムやデータの他に本実施例に係る分散ファイルシステム500を実現するプログラムを記憶する不揮発性の記憶装置である。外部記憶装置2705には、例えば、磁気ディスク記憶装置などを使用することができる。
媒体駆動装置2706は、メモリ2702や外部記憶装置2705のデータを可搬記憶媒体2707、例えば、フロッピイディスクやMOディスク、CD−RやDVD−Rなどに出力し、または可搬記憶媒体2707からプログラムやデータ等を読み出す装置である。
ネットワーク接続装置2708は、ネットワーク560と接続するインタフェースである。DASネットワーク接続装置2709は、DASネットワーク540、例えば、SASエキスパンダ600と接続するインタフェースである。
なお、メモリ2702、外部記憶装置2705および可搬記憶媒体2707などの情報処理装置に読取り可能な記憶媒体には、非一時的(non−transitory)な媒体を使用することができる。また、図27は、ネームノード510の構成の一例である。すなわち、ネームノード510の構成を図27に示す構成に限定する趣旨ではない。ネームノード510の構成は、必要に応じて、図27に示した構成要素の一部を省略し、また、図27に示していない構成要素を追加してもよい。
図27では、実施例で示したネームノード510の構成例について説明したが、データノード520、ネームノード1800およびデータノード1810についても、図27と同様の構成を含むことができる。ただし、データノード520、ネームノード1800およびデータノード1810は、図27に示した構成に限定されないのは当然である。
以上の説明において、HDD530は、記憶装置の一例として挙げられる。クライアントノード550は、第1のノードの一例として挙げられる。データノード520またはデータノード1810は、第2のノードの一例として挙げられる。DASネットワーク540は、中継網の一例として挙げられる。ネームノード510またはネームノード1800は、第3のノードの一例として挙げられる。
以上に説明したように、データノード520は、DASネットワーク540を介してHDD530と接続している。分散ファイルシステム500へのデータブロックの書き込み処理では、データノード520は、クライアントノード550から受信した書き込み先HDDリストに含まれる全てのHDD530に対して、データブロックの書き込みを行なう。このデータブロックのHDD530への書き込みは、ネットワーク540を使用せず、DASネットワーク540を介して行なわれる。そのため、分散ファイルシステム500へのデータブロックの書き込み時におけるネットワーク540のトラフィックを低く抑えることができる。その結果、クライアントノード550から分散ファイルシステム500への書き込み速度を向上させることができる。
また、データノード1810も、DASネットワーク540を介してHDD530と接続している。分散ファイルシステム1800へのデータブロックの書き込み処理では、選択データノードは、書き込み先データノードの主管理HDDが選択データノードと接続している場合、書き込み先データノードの主管理HDDにデータブロックを書き込む。このデータブロックの主管理HDDへの書き込みは、ネットワーク540を使用せず、DASネットワーク540を介して行なわれる。そのため、分散ファイルシステム1800へのデータブロックの書き込み時におけるネットワーク540のトラフィックを低く抑えることができる。その結果、クライアントノード550から分散ファイルシステム1800への書き込み速度を向上させることができる。
また、分散ファイルシステム500および1800は、データブロックのHDD530への書き込みを、DASネットワーク540を介して行なう。したがって、例えば、ネットワーク540で発生するトラフィックを抑えるために、データブロックのHDD530への書き込み時に行なわれるレプリカの作成処理の優先度を下げる必要はない。
分散ファイルシステム500の脱退処理では、ネームノード510は、脱退対象のデータノード#00と接続するHDD530と接続する、データノード#00以外のデータノード520と、脱退対象のデータノード#00と接続するHDD530と、を接続させる。これにより、脱退対象のデータノード#00と接続するHDD530に記憶されたデータブロックのレプリカを他のデータノードに複製しなくても、レプリカの復元や再配置を高速に行なうことができる。レプリカを他のデータノードに複製する必要がないので、ネットワーク540には脱退処理によるトラフィックが発生しない。その結果、脱退処理時の分散ファイルシステム500へのアクセス速度を向上させることができる。
また、分散ファイルシステム1800の脱退処理では、データブロックの複製元のデータノード#01が、データブロックの複製先のデータノード#02の主管理HDDと接続している場合、データノード#01は、データノード#02の主管理HDDにデータブロックを書き込む。このデータブロックの書き込みは、ネットワーク540を使用せず、DASネットワーク540を介して行なわれる。そのため、分散ファイルシステム1800の脱退処理時に、ネットワーク540に大量のネットワーク通信が発生することを抑えることができる。その結果、脱退処理時の分散ファイルシステム1800へのアクセス速度を向上させることができる。また、脱退処理も高速に行なうことができる。
また、分散ファイルシステム500では、データノード520故障時にもレプリカの復元や再配置を高速に行なうことができるので、データノード520故障時の分散ファイルシステム500の冗長性を保持するために、レプリカ数を増加させる必要がなくなる。また、レプリカ数を増加させる必要がないので、レプリカ数の増加にともなうHDD530のデータ記憶容量の低下もない。分散ファイルシステム1800についても、分散ファイルシステム500と同様のことがいえる。
分散ファイルシステム500のリバランシング処理では、ネームノード510は、使用率が最大のHDD1および使用率が最小のHDD2の両方とDASネットワーク540を介して接続したデータノード520に対してデータの移動を指示する。このデータの移動は、ネットワーク540を使用せず、DASネットワーク540を介して行なわれる。そのため、分散ファイルシステム500のリバランシング処理時に、ネットワーク540に大量のネットワーク通信が発生することを抑えることができる。その結果、リバランシング処理時の分散ファイルシステム500へのアクセス速度を向上させることができる。また、リバランシング処理も高速に行なうことができる。
また、分散ファイルシステム1800のリバランシング処理では、データノード#01と、データノード#02の主管理HDDと、が接続している場合、データノード#01は、データノード#01の主管理HDDからデータノード#02の主管理HDDにデータブロックを移動する。ただし、データノード#01はデータブロックの移動元である。また、データノード#02はデータブロックの移動先である。このデータブロックの移動は、ネットワーク540を使用せず、DASネットワーク540を介して行なわれる。そのため、分散ファイルシステム1800のリバランシング処理時に、ネットワーク540に大量のネットワーク通信が発生することを抑えることができる。その結果、リバランシング処理時の分散ファイルシステム1800へのアクセス速度を向上させることができる。また、リバランシング処理も高速に行なうことができる。
データノード520は、DASネットワーク540を介してHDD530と接続するので、HDD530と接続するデータノード520を簡単に増やすことができる。そのため、HDD530に記憶されたデータブロックにアクセスできるデータノード520をレプリカの数以上にすることができる。その結果、分散ファイルシステム500は、クライアントノード550からデータノード520へのアクセスを分散させることができる。分散ファイルシステム1800についても、同様の理由から、クライアントノード550からデータノード1810へのアクセスを分散させることができる。
また、分散ファイルシステム500は、クライアントノード550からデータノード520へのアクセスを分散させることができるので、データノード520へのアクセスを分散させるために、データブロックのサイズを小さくしてデータブロックの数を増加させる必要がない。また、データブロックのサイズを小さくしてデータブロックの数を増加させる必要がないので、データブロックの所在を管理するネームノード510の処理にかかる負荷が上がることもない。分散ファイルシステム1800についても、分散ファイルシステム500と同様のことがいえる。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
データを記憶する複数の記憶装置と、
ネットワークを介して接続する任意の第1のノードの指示に応じて、所定の数の前記記憶装置に対して同一のデータの書き込みを行なう複数の第2のノードと、
前記第2のノード毎に、該第2のノードと1または2以上の前記記憶装置とを接続する中継網と、
データの所在を管理し、前記第1のノードの問合せに応じて、前記第1のノードの所望のデータの所在を前記第1のノードに通知する第3のノードと、
備え、
前記第2のノードは、前記中継網を介して、前記所定の数の前記記憶装置に対して同一のデータの書き込みを行なう、
ことを特徴とするファイルシステム。
(付記2)
前記第3のノードは、
前記記憶装置に記憶するデータ毎に、該データを記憶した前記記憶装置と、該前記記憶装置と接続する前記第2のノードと、を対応付けた管理情報に基づいて、前記データの所在を管理し、
前記第1のノードが所望するデータの書き込み先として、前記所定の数の前記記憶装置と、該所定の数の前記記憶装置全てと接続している前記第2のノードと、を選択して前記第1のノードに通知する、
ことを特徴とする付記1に記載のファイルシステム。
(付記3)
前記第3のノードは、
前記記憶装置に記憶するデータ毎に、該データを記憶した前記記憶装置と、該前記記憶装置と接続する前記第2のノードと、を対応付けた管理情報に基づいて、前記データの所在を管理し、
脱退対象の第2のノードと接続している前記記憶装置を、前記脱退対象の第2のノード以外の他の第2のノードと前記中継網を介して接続させる、
ことを特徴とする付記1に記載のファイルシステム。
(付記4)
前記第3のノードは、
前記記憶装置に記憶するデータ毎に、該データを記憶した前記記憶装置と、該前記記憶装置と接続する前記第2のノードと、を対応付けた管理情報に基づいて、前記データの所在を管理し、
前記記憶装置のうち使用率が最大の第1の記憶装置と前記使用率が最小の第2の記憶装置とに前記中継網を介して接続する前記第2のノードに対して、前記第1の記憶装置から前記第2の記憶装置に一定量のデータの移動を指示する、
ことを特徴とする付記1に記載のファイルシステム。
(付記5)
前記第1の記憶装置と前記第2の記憶装置とに前記中継網を介して接続する第2のノードがない場合、前記第1の記憶装置と前記第2の記憶装置とを前記中継網を介して第2のノードと接続し、該接続した第2のノードに対して、前記第1の記憶装置から前記第2の記憶装置に一定量のデータの移動を指示する、
ことを特徴とする付記4に記載のファイルシステム。
(付記6)
前記第3のノードは、
前記使用率の最大値と最小値との差が一定の範囲内になるまで、前記第2のノードにデータの移動を指示する、
ことを特徴とする付記5に記載のファイルシステム。
(付記7)
前記第3のノードは、
前記記憶装置に記憶するデータ毎に、該データを記憶した前記記憶装置と、該前記記憶装置と接続する前記第2のノードと、を対応付けた管理情報に基づいて、前記データの所在を管理し、
前記第1のノードが所望するデータの読み出し先として、前記所望のデータが記憶されている前記記憶装置と接続している前記第2のノードを選択して前記第1のノードに通知する、
ことを特徴とする付記1に記載のファイルシステム。
(付記8)
前記第2のノードと前記中継網を介して接続する記憶装置は、前記第2のノード自身が前記第3のノードに対するインタフェースとして機能する第1の記憶装置と、他の前記第2のノードが前記第3のノードに対するインタフェースとして機能する第2の記憶装置と、を含み、
前記第3のノードからデータの書き込みの指示を受けると、自ノードと接続する第1の記憶装置に書き込み対象のデータを書き込むとともに、自ノードと接続する第2の記憶装置であって、前記第3のノードが書き込み先として指定した他の第2のノードと接続する第1の記憶装置、に対して前記中継網を介して前記書き込み対象のデータを書き込む、
ことを特徴とする付記1に記載のファイルシステム。
(付記9)
前記第2のノードと前記中継網を介して接続する記憶装置は、前記第2のノード自身が前記第3のノードに対するインタフェースとして機能する第1の記憶装置と、他の前記第2のノードが前記第3のノードに対するインタフェースとして機能する第2の記憶装置と、を含み、
前記第2のノードは、前記第3のノードからデータの複製の指示を受けると、自ノードと接続する第1の記憶装置に記憶されている複製対象のデータを、自ノードと接続する第2の記憶装置であって、前記第3のノードが複製先として指定した他の第2のノードと接続する第1の記憶装置、に対して前記中継網を介して書き込む、
ことを特徴とする付記1に記載のファイルシステム。
(付記10)
前記第2のノードと前記中継網を介して接続する記憶装置は、前記第2のノード自身が前記第3のノードに対するインタフェースとして機能する第1の記憶装置と、他の前記第2のノードが前記第3のノードに対するインタフェースとして機能する第2の記憶装置と、を含み、
前記第2のノードは、前記第3のノードからデータの移動の指示を受けると、自ノードと接続する第1の記憶装置に記憶されている移動対象のデータを、自ノードと接続する第2の記憶装置であって、前記第3のノードが移動先として指定した他の第2のノードと接続する第1の記憶装置、に前記中継網を介して移動する、
ことを特徴とする付記1に記載のファイルシステム。
(付記11)
データを記憶する記憶装置と、前記記憶装置に対してデータの書き込みを行なう第2のノードと、データの所在を管理する第3のノードと、を含むファイルシステムを制御する方法において、
前記第3のノードが、ネットワークを介して接続する任意の第1のノードの問合せに応じて、前記第1のノードの所望のデータの所在を前記第1のノードに通知し、
前記第2のノードが、前記第1のノードの指示に応じて、前記第2のノードと1または2以上の前記記憶装置とを接続する中継網を介して、該中継網と接続する所定の数の記憶装置に対して同一のデータを書き込む、
処理を行なう方法。
400 ファイルシステム
410 記憶装置
420 第2のノード
430 中継網
440 第3のノード
450 ネットワーク
460 第1のノード

Claims (5)

  1. データを記憶する複数の記憶装置と、
    ネットワークを介して接続する任意の第1のノードの指示に応じて、所定の数の前記記憶装置に対して同一のデータの書き込みを行なう複数の第2のノードと、
    前記第2のノード毎に、該第2のノードと1または2以上の前記記憶装置とを接続する中継網と、
    データの所在を管理し、前記第1のノードの問合せに応じて、前記第1のノードの所望のデータの所在を前記第1のノードに通知する第3のノードと、
    備え、
    前記第2のノードは、前記中継網を介して、前記所定の数の前記記憶装置に対して同一のデータの書き込みを行な
    前記第3のノードは、前記記憶装置に記憶するデータ毎に、該データを記憶した前記記憶装置と、該記憶装置と接続する前記第2のノードと、を対応付けた管理情報に基づいて、前記データの所在を管理し、前記第1のノードが所望するデータの書き込み先として、前記所定の数の前記記憶装置と、該所定の数の前記記憶装置全てと接続している前記第2のノードと、を選択して前記第1のノードに通知する、
    ことを特徴とするファイルシステム。
  2. 前記第3のノードは脱退対象の第2のノードと接続している前記記憶装置を、前記脱退対象の第2のノード以外の他の第2のノードと前記中継網を介して接続させる、
    ことを特徴とする請求項1に記載のファイルシステム。
  3. 前記第3のノードは前記記憶装置のうち使用率が最大の第1の記憶装置と前記使用率が最小の第2の記憶装置とに前記中継網を介して接続する前記第2のノードに対して、前記第1の記憶装置から前記第2の記憶装置に一定量のデータの移動を指示する、
    ことを特徴とする請求項1に記載のファイルシステム。
  4. 前記第2のノードと前記中継網を介して接続する記憶装置は、前記第2のノード自身が前記第3のノードに対するインタフェースとして機能する第1の記憶装置と、他の前記第2のノードが前記第3のノードに対するインタフェースとして機能する第2の記憶装置と、を含み、
    前記第3のノードからデータの書き込みの指示を受けると、自ノードと接続する第1の記憶装置に書き込み対象のデータを書き込むとともに、自ノードと接続する第2の記憶装置であって、前記第3のノードが書き込み先として指定した他の第2のノードと接続する第1の記憶装置、に対して前記中継網を介して前記書き込み対象のデータを書き込む、
    ことを特徴とする請求項1に記載のファイルシステム。
  5. データを記憶する記憶装置と、前記記憶装置に対してデータの書き込みを行なう第2のノードと、データの所在を管理する第3のノードと、を含むファイルシステムを制御する方法において、
    前記第3のノードが、ネットワークを介して接続する任意の第1のノードの問合せに応じて、前記第1のノードの所望のデータの所在を前記第1のノードに通知し、
    前記第2のノードが、前記第1のノードの指示に応じて、前記第2のノードと1または2以上の前記記憶装置とを接続する中継網を介して、該中継網と接続する所定の数の記憶装置に対して同一のデータを書き込
    前記第3のノードが、前記記憶装置に記憶するデータ毎に、該データを記憶した前記記憶装置と、該記憶装置と接続する前記第2のノードと、を対応付けた管理情報に基づいて、前記データの所在を管理し、前記第1のノードが所望するデータの書き込み先として、前記所定の数の前記記憶装置と、該所定の数の前記記憶装置全てと接続している前記第2のノードと、を選択して前記第1のノードに通知する、
    処理を行なう方法。
JP2012017055A 2012-01-30 2012-01-30 ファイルシステム Expired - Fee Related JP5910117B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012017055A JP5910117B2 (ja) 2012-01-30 2012-01-30 ファイルシステム
US13/675,407 US20130198250A1 (en) 2012-01-30 2012-11-13 File system and method for controlling file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012017055A JP5910117B2 (ja) 2012-01-30 2012-01-30 ファイルシステム

Publications (2)

Publication Number Publication Date
JP2013156847A JP2013156847A (ja) 2013-08-15
JP5910117B2 true JP5910117B2 (ja) 2016-04-27

Family

ID=48871231

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012017055A Expired - Fee Related JP5910117B2 (ja) 2012-01-30 2012-01-30 ファイルシステム

Country Status (2)

Country Link
US (1) US20130198250A1 (ja)
JP (1) JP5910117B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11343308B2 (en) 2019-06-25 2022-05-24 Western Digital Technologies, Inc. Reduction of adjacent rack traffic in multi-rack distributed object storage systems
US11064020B2 (en) 2019-06-25 2021-07-13 Western Digital Technologies, Inc. Connection load distribution in distributed object storage systems
US11287994B2 (en) * 2019-12-13 2022-03-29 Samsung Electronics Co., Ltd. Native key-value storage enabled distributed storage system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781910A (en) * 1996-09-13 1998-07-14 Stratus Computer, Inc. Preforming concurrent transactions in a replicated database environment
US6000020A (en) * 1997-04-01 1999-12-07 Gadzoox Networks, Inc. Hierarchical storage management from a mirrored file system on a storage network segmented by a bridge
US5950203A (en) * 1997-12-31 1999-09-07 Mercury Computer Systems, Inc. Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
EP1402381A4 (en) * 2001-02-24 2007-07-04 Ibm TWIN-TAIL-FAILOVER FOR FILE SERVERS FOR MAINTAINING FULL EFFICIENCY IN THE ABSENCE OF A FAILURE
JP4211285B2 (ja) * 2002-05-24 2009-01-21 株式会社日立製作所 ネットワークストレージシステムの仮想一元化方法及び装置
JP2007511820A (ja) * 2003-10-27 2007-05-10 アーカイヴァス インコーポレイテッド 独立ノード冗長アレイに対するポリシーに基づく管理
US8825591B1 (en) * 2003-12-31 2014-09-02 Symantec Operating Corporation Dynamic storage mechanism
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
JP2009003499A (ja) * 2007-06-19 2009-01-08 Hitachi Ltd ファイル共有システム及びファイル共有システムを用いて単一の論理的ディレクトリ構成を生成する方法
SE533007C2 (sv) * 2008-10-24 2010-06-08 Ilt Productions Ab Distribuerad datalagring
JP5412882B2 (ja) * 2009-03-04 2014-02-12 富士通株式会社 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置

Also Published As

Publication number Publication date
US20130198250A1 (en) 2013-08-01
JP2013156847A (ja) 2013-08-15

Similar Documents

Publication Publication Date Title
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
US9703504B2 (en) Storage system, recording medium storing data rebalancing program, and data rebalancing method
US11030056B2 (en) Data system for managing synchronized data protection operations at nodes of the data system, source node and destination node, and computer program product for use in such data system
CN105357294B (zh) 一种存储数据的方法及集群管理节点
US20140351636A1 (en) Method, device, and system for data reconstruction
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
US10084860B2 (en) Distributed file system using torus network and method for configuring and operating distributed file system using torus network
US11188258B2 (en) Distributed storage system
JP2016024563A (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP5910117B2 (ja) ファイルシステム
JP6227771B2 (ja) 論理ボリュームを管理するためのシステム及び方法
JP6241449B2 (ja) データ管理システム及びデータ管理方法
JP2010026965A (ja) アーカイブシステムおよびコンテンツの管理方法
JP6231685B2 (ja) ストレージシステム及び通知制御方法
US20160182638A1 (en) Cloud serving system and cloud serving method
JP5947336B2 (ja) スナップショット制御装置、スナップショット制御方法およびスナップショット制御プログラム
KR20120027786A (ko) 메타 데이터 서버, 데이터 서버, 복제 서버, 비대칭 분산 파일 시스템 및 그 데이터 처리 방법
JP7212093B2 (ja) ストレージシステム、ストレージシステムの移行方法
JP6007340B2 (ja) 計算機システム、計算機システム管理方法及びプログラム
JP6291977B2 (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置
JP6637258B2 (ja) ストレージシステムの移行方法およびプログラム
JP2016024679A (ja) ストレージ装置、ストレージシステム及びストレージ制御プログラム
JP2016038841A (ja) 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
JP5941494B2 (ja) インメモリ管理システムおよびインメモリ管理用プログラム
JP2013214184A (ja) ミラーリングシステム、ノード、ミラーリング方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150625

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150831

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: 20160301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160314

R150 Certificate of patent or registration of utility model

Ref document number: 5910117

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees