JP6221717B2 - ストレージ装置、ストレージシステム及びデータ管理プログラム - Google Patents

ストレージ装置、ストレージシステム及びデータ管理プログラム Download PDF

Info

Publication number
JP6221717B2
JP6221717B2 JP2013257477A JP2013257477A JP6221717B2 JP 6221717 B2 JP6221717 B2 JP 6221717B2 JP 2013257477 A JP2013257477 A JP 2013257477A JP 2013257477 A JP2013257477 A JP 2013257477A JP 6221717 B2 JP6221717 B2 JP 6221717B2
Authority
JP
Japan
Prior art keywords
storage
data
node
information
file
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.)
Active
Application number
JP2013257477A
Other languages
English (en)
Other versions
JP2015114913A (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 JP2013257477A priority Critical patent/JP6221717B2/ja
Priority to US14/528,304 priority patent/US9886217B2/en
Publication of JP2015114913A publication Critical patent/JP2015114913A/ja
Application granted granted Critical
Publication of JP6221717B2 publication Critical patent/JP6221717B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/0608Saving storage space on storage 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0671In-line storage system
    • G06F3/0673Single storage device

Description

本発明は、ストレージ装置、ストレージシステム及びデータ管理プログラムに関する。
従来のスタンドアロンストレージ装置では、装置モデル毎に性能限界があり、業務負荷が高くなったり、単一装置の容量限界に至ったりした際には、上位モデルにアップグレードするか、別個の複数装置にサービスを分ける必要があった。
しかし、アップグレードや複数装置へのサービスの分割はユーザの利便性を阻害するものであり、近年ストレージ装置に求められるデータ量の増加等を背景としてスケールアウト型ストレージシステムが求められている。
スケールアウトSAN(Storage Area Network)装置はブロックがアクセス単位であることから、SAN装置では、複数のストレージ装置でユーザの要求を処理することは容易であり、スケールアウト型ストレージが比較的普及してきている。
一方、スケールアウトNAS(Network Attached Storage)装置は一貫性のあるネームスペースを複数のストレージ装置で維持する必要があるために、NAS装置では、単純に複数のストレージ装置でユーザの要求を並列処理することはできない。スケールアウトNAS装置はユーザに対して単一のネームスペースのファイルシステムを提供する必要があり、スケールアウトNAS装置には、ファイルシステムのメタデータ管理方式の違いにより複数の実装方式が存在する。
図13及び図14は、スケールアウトNAS装置における従来の実装方式を説明するための図である。図13は、ジャンクションによる複数ボリュームの内部マウントによる実装を説明するための図である。図13において、各ノード81〜84は、ストレージ装置であり、独立したRAID(Redundant Arrays of Inexpensive Disks)及びファイルシステムを有する。また、ネットワークで接続された複数のノード81〜84が1つのストレージシステムを構成している。
A〜Eは、ボリュームと呼ばれる記憶領域であり、ユーザのファイルは、ボリュームの中に作られる。ノード81は、ボリュームA及びDを有し、ノード82は、ボリュームCを有し、ノード83は、ボリュームEを有し、ノード84は、ボリュームBを有する。
ストレージシステムは、ジャンクションポイントにおいて各ボリュームをマウントすることにより、ユーザからストレージシステムが単一ネームスペースとして見えるようにする。ここで、ジャンクションポイントとは、図13に示すようにボリュームを階層構造で接続したとき、下の階層のボリュームを上の階層のボリュームに接続するポイントである。例えば、ボリュームBには、ボリュームD及びボリュームEをボリュームBの下に接続するジャンクションポイントがある。
図14は、単一のネームスペースコンテナによる実装を説明するための図である。図14において、各ノード91〜94は、ストレージ装置であり、ネットワークで接続され、1つのストレージシステムを構成している。
1〜D5は、ファイルコンテナと呼ばれる記憶領域であり、ユーザのファイルは、ファイルコンテナの中に作られる。ノード91は、ファイルコンテナD1及びD4を有し、ノード92は、ファイルコンテナD3を有し、ノード93は、ファイルコンテナD5を有し、ノード94は、ファイルコンテナD2を有する。
また、ノード94は、ネームスペースコンテナNSを有する。NSは、ファイルの名前とファイルを有するファイルコンテナとを対応付けて記憶し、ストレージシステム全体のファイル名を管理する。例えば、NSは、ファイル1はD1に含まれ、ファイル2はD4に含まれ、ファイル3はD3に含まれることを記憶する。
これらの2つの実装方式の他にも、複数ストレージ装置を有するストレージシステムが、単一のネームスペースと単一のファイルコンテナを提供し、複数のストレージ装置に跨ってデータをストライピングする実装方式もある。
また、別々のNASシステムによって提供される複数のファイルシステムを統合して、単一の「グローバル」ネームスペースにし、統合されたネームスペースをNASクライアントに提供する従来技術がある(例えば、特許文献1参照)。
また、複数のファイルシステムを仮想化して1つのファイルシステムとしてアクセスを可能としたネットワークストレージシステムにおいて、複数のファイルシステムのストレージ資源の使用制限を統合的に行う従来技術がある(例えば、特許文献2参照)。
特開2008−159027号公報 特開2006−92322号公報
ジャンクションによる複数ボリュームの内部マウントによる実装には、スケールアウト前のアーキテクチャをほぼそのまま利用でき、ボリューム単位で特定のノードがファイルを占有管理するのでスケールアウト化におけるオーバーヘッドが少ないという利点がある。一方、この実装には、ボリューム単位という大きな粒度でしかファイルをノードに割り当てることができないという問題がある。
また、単一のネームスペースコンテナNSによる実装には、ファイル単位でノードにファイルを割り当てることができるという利点があるが、NSにファイルの記憶ノードを問い合わせるオーバーヘッドがあるという問題がある。
本発明は、1つの側面では、ファイル単位でノードにファイルを割り当てることができ、かつ、NSにファイルの記憶ノードを問い合わせるオーバーヘッドをなくすことができるストレージシステムを提供することを目的とする。
本願の開示するストレージ装置は、1つの態様において、ストレージシステムを構築する他のストレージ装置とともにデータを記憶する。前記ストレージ装置は、前記ストレージシステムが記憶するデータの階層構造に関する階層構造情報を他のストレージ装置と分担した個所について記憶する階層構造情報記憶部を有する。また、前記ストレージ装置は、データを識別するデータ識別子と該データを所有するストレージ装置を識別する装置識別子とを対応付けた所有装置情報を前記階層構造情報記憶部が分担して記憶する個所について記憶する所有装置情報記憶部を有する。また、前記ストレージ装置は、前記分担した箇所について前記階層構造情報記憶部と前記所有装置情報記憶部が記憶する情報に基づいて管理し、残りの箇所について管理を分担する前記他のストレージ装置とともに当該ストレージシステムが記憶するデータを管理する管理部を有する。
1実施態様によれば、ファイル単位でノードにファイルを割り当てることができ、かつ、NSにファイルの記憶ノードを問い合わせるオーバーヘッドをなくすことができる。
図1は、実施例に係るノードが所有する情報を説明するための図である。 図2は、実施例に係るストレージシステムの構成を示す図である。 図3は、iノードテーブルの一例を示す図である。 図4は、ノード管理テーブルの一例を示す図である。 図5は、管理部の機能構成を示す図である。 図6は、ディレクトリ情報のキャッシュを説明するための図である。 図7は、ノード間でのファイルの移動を説明するための図である。 図8は、ファイル作成処理のフローを示すフローチャートである。 図9は、ファイル読み込み処理のフローを示すフローチャートである。 図10は、ファイル更新処理のフローを示すフローチャートである。 図11は、ファイルの移動を伴うファイル更新処理のフローを示すフローチャートである。 図12は、複数ノードによるファイルの共同所有を説明するための図である。 図13は、ジャンクションによる複数ボリュームの内部マウントによる実装を説明するための図である。 図14は、単一のネームスペースコンテナによる実装を説明するための図である。
以下に、本願の開示するストレージ装置、ストレージシステム及びデータ管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係るノードが所有する情報について説明する。図1は、実施例に係るノードが所有する情報を説明するための図である。図1に示すように、ストレージシステム1は、プロトコルネットワーク2で接続された複数のノード10を有する。
ノード10は、ファイルを記憶する記憶領域を有するストレージ装置である。プロトコルネットワーク2は、ユーザがストレージシステム1を利用する場合に使用する端末装置であるクライアント20とストレージシステム1を接続するネットワークである。なお、ここでは、「ノード1」、「ノード2」及び「ノード3」の3台のノード10と、1台のクライアント20を示すが、ストレージシステム1は任意の台数のノード10及びクライアント20を有することができる。
ストレージシステム1は、全体で1つのファイルシステム及びネームスペースを提供する。ネームスペースツリー21は、ファイルシステムに含まれるディレクトリ及びファイルの構成を示すツリーであり、○はディレクトリ又はファイルを示し、リンクはディレクトリ間又はディレクトリとファイルとの間の親子関係を示す。
各ノード10は、ネームスペースツリー21の一部であるネームスペースブランチ21aの情報を有し、全ノード10が有するネームスペースブランチ21aを集めるとネームスペースツリー21が得られる様にネームスペースツリー21の情報を分担して記憶する。
各ノード10は、ネームスペースブランチ21aのディレクトリ又はファイルに対応付けて、ディレクトリの情報又はファイルの情報を記憶するノード10を識別する番号を記憶する。例えば、「ノード1」は、ルートディレクトリ21bに対応付けて、ルートディレクトリ21bの情報を記憶するノード10の番号として「1」、「2」及び「3」を記憶する。また、「ノード1」は、ルートディレクトリ21bの子のディレクトリ21cに対応付けて、ディレクトリ21cの情報を記憶するノード10の番号として「1」及び「2」を記憶する。また、「ノード1」は、ディレクトリ21cの子のファイル21dに対応付けて、ファイル21dの情報を記憶するノード10の番号として「1」を記憶する。
同様に、「ノード2」は、ルートディレクトリ21bの情報を記憶するノード10の番号、ルートディレクトリ21bの子のディレクトリ21c及びディレクトリ21eの情報を記憶するノード10の番号を記憶する。また、「ノード2」は、ディレクトリ21cの子のファイル21fの情報を記憶するノード10の番号を記憶する。
同様に、「ノード3」は、ルートディレクトリ21bの情報を記憶するノード10の番号、ルートディレクトリ21bの子のディレクトリ21eの情報を記憶するノード10の番号を記憶する。また、「ノード3」は、ディレクトリ21eの子のファイル21gの情報を記憶するノード10の番号を記憶する。
そして、例えば、クライアント20からファイルアクセス要求を受けたノード10は、ネームスペースブランチ21aの情報をルートからファイルアクセス要求のパスと一致するところまで辿る。そして、ファイルアクセス要求を受けたノード10は、ファイルアクセス要求で指定されたファイルを所有している場合には、ファイルアクセス要求を実行する。一方、所有していない場合には、ファイルアクセス要求を受けたノード10は、ファイルアクセス要求のパスと一致する最後のディレクトリに対応付けられた他の番号のノード10にファイルアクセス要求を送信する。
例えば、図1において、ネームスペースツリー21のファイル22に対するアクセス要求を「ノード1」が受け取ると、「ノード1」は、ネームスペースブランチ21aの情報をルートから辿り、アクセス要求のパスと一致するディレクトリ21cを特定する。ここで、「ノード1」は、ファイル22の情報を所有していないことがわかり、また、「ノード2」がディレクトリ21cの情報を所有することがわかる。そこで、「ノード1」は、「ノード2」にアクセス要求を送る。
このように、ノード10は、ネームスペースツリー21の一部であるネームスペースブランチ21aの情報を有する。そして、ノード10は、ネームスペースブランチ21aのディレクトリ又はファイルに対応付けて、ディレクトリの情報又はファイルの情報を記憶するノード10を識別する番号を記憶する。そして、ノード10は、アクセス要求の対象ファイルを所有していない場合に、ネームスペースブランチ21aのディレクトリに対応付けられた番号のノード10にアクセス要求を送信する。したがって、ノード10は、アクセス要求の対象ファイルを所有していない場合に、NSにファイルの記憶ノードを問い合わせる必要がなく、問合せにともなうオーバーヘッドをなくすことができる。
次に、実施例に係るストレージシステム1の構成について説明する。図2は、実施例に係るストレージシステム1の構成を示す図である。図2に示すように、ストレージシステム1では、複数のノード10は、プロトコルネットワーク2以外に、ノード間ネットワーク3で接続される。ノード間ネットワーク3は、例えば、ユーザリクエストの転送やノード10間のファイルの移動など、ノード10間通信に使用される。
ノード10は、プロトコルインタフェース11と、ノード間インタフェース12と、CPU(Central Processing Unit)13と、メモリ14と、不揮発メモリ15と、RAID16とを有する。
プロトコルインタフェース11は、プロトコルネットワーク2を介してクライアント20と通信するためのインタフェースである。ノード間インタフェース12は、ノード間ネットワーク3を介して他のノード10と通信するためのインタフェースである。
CPU13は、メモリ14に記憶されたプログラムを実行する中央処理装置である。メモリ14は、プログラム、演算の途中結果、RAID16が記憶するデータ等を記憶するRAM(Random Access Memory)である。不揮発メモリ15は、ノード10に故障が発生したときにメモリ14が記憶するデータを保存するフラッシュメモリである。
RAID16は、データを記憶する記憶装置であり、データ保存領域30を有する。また、RAID16は、RAID16が記憶するデータを管理する管理プログラム40を記憶する。管理プログラム40は、メモリ14にロードされ、CPU13により実行されることにより、CPU13に、RAID10のデータを管理する管理部としての機能を持たせることができる。
データ保存領域30は、ユーザデータを記憶するとともにユーザデータの管理に使われるメタデータを、iノードテーブル記憶部31やノード管理テーブル32などに記憶する。
iノードテーブル記憶部31は、複数のiノードテーブル31aを記憶する記憶部である。各iノードテーブル31aは、1つのディレクトリに含まれる直接の子供のディレクトリ又はファイルの情報を記憶する。
図3は、iノードテーブル31aの一例を示す図である。図3に示すように、iノードテーブル31aは、直接の子供のディレクトリ又はファイル毎に、参照先iノードと、ファイル名又はディレクトリ名と、属性情報と、所有ノードとを記憶する。
参照先iノードは、直接の子供のディレクトリに対応するiノードテーブル31aの記憶先を示す情報である。参照先iノードにより、ネームスペースツリー21の階層構造情報が表わされる。
ファイル名又はディレクトリ名は、直接の子供がファイルである場合にはファイルの名前であり、直接の子供がディレクトリである場合にはディレクトリの名前である。属性情報は、データの書き込みが可能か否かなどの情報である。所有ノードは、参照先iノードに対応するディレクトリの情報又はファイルの情報を所有するノード10の番号である。
例えば、「AAA」をディレクトリ名とすると、名前が「AAA」であるディレクトリは、対応するiノードの記憶先が「xxxxx2」であり、属性情報が「xxx2」であり、ディレクトリの情報を所有するノード10の番号は「2」と「3」である。
このように、ディレクトリ及びファイルに対応させてディレクトリの情報又はファイルの情報を所有するノード10の番号をiノードテーブル31aが記憶する。したがって、ノード10は自分が所有しないファイル情報及びディレクトリ情報を所有するノード10を特定してユーザのアクセス要求を転送することができ、NSに転送先を問い合わせるオーバーヘッドをなくすことができる。
ノード管理テーブル32は、ノード10に関する情報を記憶するテーブルである。図4は、ノード管理テーブル32の一例を示す図である。図4に示すように、ノード管理テーブル32は、ノード10毎に、ノード番号と、総容量と、空き容量と、性能指標と、CPU負荷率とを記憶する。
ノード番号は、ノード10を識別する番号である。総容量は、ノード10が記憶するデータの最大容量である。空き容量は、データを記憶するために残されている領域の容量である。性能指標は、ノード10がデータを処理する性能を示す値である。CPU負荷率は、CPU13の負荷状態を示す値である。なお、空き容量及びCPU負荷率は、各ノード10が例えば1分などの一定時間間隔でポーリングして他のノード10に通知することで、全ノード10で共有される。
例えば、番号が「1」であるノード10は、記憶するデータの最大容量が「100TB」であり、データを記憶するために残されている領域の容量が「50TB」であり、処理性能を示す値が「2」であり、CPU13の負荷状態は「20%」である。
次に、管理プログラム40の実行により、実現された管理部が有する機能について説明する。図5は、管理部の機能構成を示す図である。図5に示すように、管理部は、作成部41と、読込部42と、更新部43と、キャッシュ部44と、移動部45とを有する。
作成部41は、クライアント20からの要求に基づいて、ディレクトリ又はファイルを作成する。なお、クライアント20は、任意のノード10にストレージシステム1へのアクセス要求を送信することができる。
作成部41は、ネームスペースブランチ21aを末端のディレクトリまで辿り、作成対象のディレクトリを含むブランチを所有するノード10を対象ノード候補としてリストアップする。そして、作成部41は、辿ったディレクトリが作成対象の親ディレクトリでなく、対象ノード候補が一定数以上ある場合は、対象ノード候補の一つの中でさらに末端のディレクトリまで辿り、対象ノード候補をリストアップする。一方、辿ったディレクトリが作成対象の親ディレクトリであるか、対象ノード候補が一定数以下である場合は、作成部41は、対象ノード候補の空き容量、負荷状況により対象ノード10を選択する。
そして、対象ノード10の作成部41は、作成対象のファイル又はディレクトリを作成する。なお、対象ノード10の作成部41は、作成対象に到達するまでのディレクトリを所有していない場合は、ディレクトリも作成する。そして、対象ノード10の作成部41は、リストアップした他の対象ノード候補に所有情報の更新を指示し、クライアント20から要求を受けたノード10は、対象ノード候補の全てから処理完了の応答を得ると、クライアント20に完了を応答する。
なお、作成部41は、対象ノード候補から対象ノード10を選択する場合、まず、空き容量が一定値以上である対象ノード候補があるか否かを判定し、対象ノード候補がある場合には、負荷が一定値未満であるノード10を対象ノード10として選択する。一方、負荷が一定値未満であるノード10がない場合には、作成部41は、最も負荷の少ないノード10を対象ノード10として選択する。また、空き容量が一定値以上である対象ノード候補がない場合には、作成部41は、最も空き容量が大きいノード10を対象ノード10として選択する。なお、空き容量の一定値は、例えば30%であり、負荷の一定値は、例えば50%である。
読込部42は、クライアント20からの要求に基づいて、ディレクトリの情報又はファイルを読み込み、クライアント20に送信する。具体的には、読込部42は、ネームスペースブランチ21aを末端のディレクトリまで辿り、読み込み対象を所有している場合には、ディレクトリの情報又はファイルを読み込みクライアント20に送信する。
一方、読み込み対象を所有していない場合には、読込部42は、読み込み対象を含むブランチを所有しているノード10に、読み込み対象の情報を所有しているか否かの確認を指示する。なお、確認を指示されるノード10は複数の場合もある。そして、確認の指示を受けたノード10の読込部42は、読み込み対象を所有しているか否かを確認し、読み込み対象を所有している場合には、確認を指示した指示ノード10に読み込み対象の情報を送信し、指示ノード10がクライアント20に情報を送信する。
更新部43は、クライアント20からの要求に基づいて、ファイルを更新する。具体的には、更新部43は、ネームスペースブランチ21aを末端のディレクトリまで辿り、更新対象を所有している場合には、ファイルを更新し、クライアント20に更新の完了を応答する。
一方、更新対象を所有していない場合には、更新部43は、更新対象を含むブランチを所有しているノード10に、更新対象のファイルを所有しているか否かの確認を指示する。なお、確認を指示されるノード10は複数の場合もある。そして、確認の指示を受けたノード10の更新部43は、更新対象を所有しているか否かを確認し、更新対象を所有している場合には、ファイルを更新し、確認を指示した指示ノード10に更新完了を送信する。そして、指示ノード10がクライアント20に更新完了を応答する。
キャッシュ部44は、ネームスペースツリー21の一部の情報であるディレクトリ情報をキャッシュする。具体的には、ディレクトリには、自分が所有しないファイルを所有するノード10の情報を含むことができる。全てのノード10が末端までキャッシュを持つと、書き込み処理に対するキャッシュ更新のペナルティが増加する。したがって、キャッシュ部44は、リード及びライト処理の頻度の統計をディレクトリ階層毎に取り、性能を最適化するよう各ノード10が持つディレクトリ階層レベルを自動調整する。
完全にリードのみの環境であれば、全てのノード10が完全なファイルシステムのツリー構造の情報を持つ事になる。一方、完全にライトのみの環境であれば、全てのノード10は自分が所有する分のファイルシステムツリー構造の情報しか持たない。
図6は、ディレクトリ情報のキャッシュを説明するための図である。図6において、ファイル22の情報は、「ノード2」に所有されているが、「ノード1」にもキャッシュ22aが記憶されている。
移動部45は、ノード10間でのファイルの移動、ネームスペースブランチ21a単位での移動をバックグラウンド処理として行い、ノード10間での負荷のバランスをとる。図7は、ノード10間でのファイルの移動を説明するための図である。
図7では、「ノード2」の負荷が高い、あるいは空き容量が少ない状況において、「ノード2」が所有するファイル22が「ノード1」に移動されている。ファイル22の親ディレクトリ22cを所有するノード10は、「ノード1」と「ノード2」である。そこで、移動部45は、ファイル22を移動する場合に、移動先として親ディレクトリ22cを所有する「ノード1」を選択する。親ディレクトリ22cを所有する「ノード1」を選択することによって、移動部45は、親ディレクトリ22cを所有しない「ノード3」を選択する場合と比較して、容易にファイル22を移動することができる。
次に、ファイル作成処理のフローについて説明する。図8は、ファイル作成処理のフローを示すフローチャートである。なお、ディレクトリを作成する処理のフローは、図8において、「ファイル作成要求」を「ディレクトリ作成要求」に、「対象ファイル」を「対象ディレクトリ」に置き換えたものとなる。
図8に示すように、作成部41は、クライアント20からファイル作成要求を受ける(ステップS1)と、自ノード10内で対象ファイルのパスに従い、ネームスペースブランチ21aを辿る(ステップS2)。そして、作成部41は、辿り着いた末端のディレクトリを確認し(ステップS3)、対象ファイルを含むブランチを所有するノード10を対象ノード候補としてリストアップする(ステップS4)。
そして、作成部41は、末端のディレクトリが対象ファイルの親ディレクトリか否かを判定し(ステップS5)、親ディレクトリである場合には、対象ノード候補の空き容量、CPU負荷率を参照し、対象ファイルを作成する対象ノード10を決定する(ステップS6)。
そして、対象ノード10の作成部41は、対象ファイルを作成し、対象ノード10以外の対象ノード候補は、所有情報を更新する(ステップS7)。そして、クライアント20からファイル作成要求を受けたノード10は、全対象ノード候補から完了応答受け取り後、クライアント20に完了を応答する(ステップS8)。
一方、末端のディレクトリが対象ファイルの親ディレクトリでない場合には、作成部41は、対象ノード候補は一定数以下か否かを判定する(ステップS9)。その結果、一定数以下である場合には、作成部41は、対象ノード候補の空き容量、CPU負荷率を参照し、対象ファイルを作成する対象ノード10を決定する(ステップS10)。
そして、作成部41は、対象ノード10内で対象ファイルのパスに従い、ネームスペースブランチ21aを辿る(ステップS11)。そして、対象ノード10が対象ファイルまでのディレクトリを所有していない場合は、作成部41は、対象ファイルまでのディレクトリを作成し(ステップS12)、ステップS7へ進む。
一方、対象ノード候補が一定数以下でない場合には、対象ノード候補のいずれかで、作成部41は、対象ファイルのパスに従い、ネームスペースブランチ21aを辿る(ステップS13)。そして、作成部41は、辿り着いた末端のディレクトリを確認し(ステップS14)、対象ファイルを含むブランチを所有するノード10を対象ノード候補としてリストアップする(ステップS15)。そして、作成部41は、ステップS5に戻る。
このように、作成部41は、ネームスペースブランチ21aを辿ることによって対象ファイルを作成するノード10を決定するので、対象ファイルを作成するノード10を効率よく決定することができる。
次に、ファイル読み込み処理のフローについて説明する。図9は、ファイル読み込み処理のフローを示すフローチャートである。なお、ディレクトリの情報を読み込む処理のフローは、図9において、「ファイルリード要求」を「ディレクトリリード要求」に、「対象ファイル」を「対象ディレクトリ」に、「ファイルデータ」を「ディレクトリ情報」に置き換えたものとなる。また、図9において、「受付ノード」は、クライアント20からファイルリード要求を受け付けたノード10であり、「所有ノード」は、ファイルを所有するノード10である。
図9に示すように、読込部42は、クライアント20からファイルリード要求を受ける(ステップS21)と、自ノード10内で対象ファイルのパスに従い、ネームスペースブランチ21aを辿る(ステップS22)。そして、読込部42は、対象ファイルまで辿り着いたか否かを判定し(ステップS23)、対象ファイルまで辿り着いた場合には、クライアント20に対象ファイルを送信する(ステップS24)。
一方、対象ファイルまで辿り着かない場合には、読込部42は、辿り着けた最後のディレクトリ情報より対象ファイルを所有する対象ノード候補を確認する(ステップS25)。そして、読込部42は、対象ノード候補に、辿り着いたディレクトリ以下でファイルリード要求を送る(ステップS26)。
そして、ファイルリード要求を受けたノード10の読込部42は、送られてきたディレクトリ以下でネームスペースブランチ21aを辿り、対象ファイルを確認する(ステップS27)。そして、対象ファイルを所有していたノード10の読込部42は、要求元のノード10にファイルデータを送る(ステップS28)。
そして、クライント20からファイルリード要求を受けたノード10の読込部42は、対象ファイルを所有しているノード10からファイルデータを受け取り(ステップS29)、対象ファイルをクライアント20に送信する(ステップS30)。
このように、読込部42は、対象ファイルを所有するノード10をネームスペースブランチ21aを辿ることによって特定するので、対象ファイルを所有するノード10を効率良く特定することができる。
次に、ファイル更新処理のフローについて説明する。図10は、ファイル更新処理のフローを示すフローチャートである。図10に示すように、更新部43は、クライアント20からファイル更新要求を受ける(ステップS41)と、自ノード10内で対象ファイルのパスに従い、ネームスペースブランチ21aを辿る(ステップS42)。そして、更新部43は、対象ファイルまで辿り着いたか否かを判定し(ステップS43)、対象ファイルまで辿り着いた場合には、対象ファイルを更新し(ステップS44)、クライアント20に完了を応答する(ステップS45)。
一方、対象ファイルまで辿り着かない場合には、更新部43は、辿り着けた最後のディレクトリ情報より対象ファイルを所有する対象ノード候補を確認する(ステップS46)。そして、更新部43は、対象ノード候補に、辿り着いたディレクトリ以下でファイル更新要求を送る(ステップS47)。
そして、ファイル更新要求を受けたノード10の更新部43は、送られてきたディレクトリ以下でネームスペースブランチ21aを辿り、対象ファイルを確認する(ステップS48)。そして、対象ファイルを所有していたノード10の更新部43は、対象ファイルを更新し(ステップS49)、要求元のノード10に完了を応答する(ステップS50)。
そして、クライント20からファイル更新要求を受け付けたノード10の更新部43は、対象ファイルを所有するノード10から完了の応答を受け取り、クライアント20に完了を応答する(ステップS45)。
このように、更新部43は、対象ファイルを所有するノード10をネームスペースブランチ21aを辿ることによって特定するので、対象ファイルを所有するノード10を効率良く特定することができる。
上述してきたように、実施例では、ノード10は、ネームスペースツリー21の一部であるネームスペースブランチ21aの情報を有する。そして、ノード10は、ネームスペースブランチ21aのディレクトリ又はファイルに対応付けて、ディレクトリの情報又はファイルの情報を記憶するノード10を識別する番号を記憶する。そして、ノード10は、アクセス要求の対象ファイル又は対象ディレクトリを所有していない場合に、ネームスペースブランチ21aのディレクトリに対応付けられた番号のノード10にアクセス要求を送信する。したがって、ノード10は、アクセス要求の対象ファイル又は対象ディレクトリを所有していない場合に、NSにファイルの記憶ノードを問い合わせる必要がなく、問合せにともなうオーバーヘッドをなくすことができる。
ところで、上記実施例では、ノード10間でのファイルの移動、ネームスペースブランチ21a単位での移動をバックグラウンド処理として行う場合について説明した。しかしながら、ファイルの移動をファイル更新時に行うこともできる。そこで、ファイルの移動をファイル更新時に行う場合について説明する。
図11は、ファイルの移動を伴うファイル更新処理のフローを示すフローチャートである。図11に示すように、更新部43は、クライアント20からファイル更新要求を受ける(ステップS61)と、自ノード10内で対象ファイルのパスに従い、ネームスペースブランチ21aを辿る(ステップS62)。
そして、更新部43は、対象ファイルまで辿り着いたか否かを判定し(ステップS63)、対象ファイルまで辿り着いた場合には、対象ファイルの親ディレクトリを有するノード10を対象候補としてリストアップする(ステップS64)。そして、更新部43は、対象ノード候補から空き容量、CPU負荷率に応じて対象ノード10を選択する(ステップS65)。そして、更新部43は、対象ノード10にファイルの作成を指示して、自ノード10内のファイルを削除し(ステップS66)、クライアント20に完了を応答する(ステップS67)。
一方、対象ファイルまで辿り着かない場合には、更新部43は、辿り着けた最後のディレクトリ情報より対象ファイルを所有する対象ノード候補を確認する(ステップS68)。そして、更新部43は、対象ノード候補に、辿り着いたディレクトリ以下でファイル更新要求を送る(ステップS69)。
そして、ファイル更新要求を受けたノード10の更新部43は、送られてきたディレクトリ以下でネームスペースブランチ21aを辿り、対象ファイルの親ノード10を確認する(ステップS70)。そして、対象ファイルを所有していたノード10の更新部43は、対象ファイルを更新し(ステップS71)、対象ファイルの親ディレクトリを有するノード10を対象候補としてリストアップする(ステップS72)。
そして、対象ファイルを所有していたノード10の更新部43は、対象ノード候補から空き容量、CPU負荷率に応じて対象ノード10を選択する(ステップS73)。そして、対象ファイルを所有していたノード10の更新部43は、対象ノード10にファイルの作成を指示して、自ノード10内のファイルを削除し(ステップS74)、要求元のノード10に要求の完了を応答する(ステップS75)。そして、要求元のノード10は、クライアント20に完了を応答する(ステップS67)。
このように、更新部43は、ファイルを更新する際に、空き容量、CPU負荷率に応じて対象ノード10を選択し、対象ノード10にファイルの作成を指示して自ノード10内のファイルを削除することによって、ノード10間の負荷をバランスすることができる。
また、上記実施例では、特定のノード10がファイルを占有する場合について説明したが、ファイルに共同所有するノード情報を付与することで複数ノード10によるファイルの共有を可能にすることができる。クライアント20から要求を受けたノード10の管理プログラム40は、論理的に近い、あるいは負荷の少ないノード10を複数選択し、複数のノード10に分割して要求を送ることで、スパニングによりシーケンシャルアクセスの性能を向上できる。複数ノード10で所有することにより特定のファイル、あるいはネームスペースブランチ21a単位で冗長性を高めることができる。また、クライアント20から要求を受けたノード10は、ファイルを冗長符号化し複数ノード10にストライプすることでシーケンシャルアクセス性能を高めるとともに、冗長性を確保することができる。
図12は、複数ノード10によるファイルの共同所有を説明するための図である。図12は、ファイル22が「ノード1」と「ノード2」に共同所有される場合を示し、「ノード1」と「ノード2」において、ファイル22にノード番号「1」と「2」が対応付けられている。
また、実施例では、複数のiノードテーブル31aを用いてネームスペースツリー21の階層構造情報及び所有ノード10の情報を記憶する場合について説明した。しかしながら、本発明はこれに限定されるものではなく、ネームスペースツリー21の階層構造情報と所有ノード10の情報を別々に記憶する場合にも同様に適用することができる。
1 ストレージシステム
2 プロトコルネットワーク
3 ノード間ネットワーク
10,81〜84,91〜94 ノード
11 プロトコルインタフェース
12 ノード間インタフェース
13 CPU
14 メモリ
15 不揮発メモリ
16 RAID
21 ネームスペースツリー
21a ネームスペースブランチ
21b ルートディレクトリ
21c,21e ルートディレクトリの子のディレクトリ
21d,21f,21g ファイル
22 ファイル
30 データ保存領域
31 iノードテーブル記憶部
31a iノードテーブル
32 ノード管理テーブル
40 管理プログラム
41 作成部
42 読込部
43 更新部
44 キャッシュ部
45 移動部

Claims (8)

  1. ストレージシステムを構築する他のストレージ装置とともにデータを記憶するストレージ装置において、
    前記ストレージシステムが記憶するデータの階層構造に関する階層構造情報を他のストレージ装置と分担した箇所について記憶する階層構造情報記憶部と、
    データを識別するデータ識別子と該データを所有するストレージ装置を識別する装置識別子とを対応付けた所有装置情報を前記階層構造情報記憶部が記憶する前記分担した箇所について記憶する所有装置情報記憶部と、
    前記分担した箇所について前記階層構造情報記憶部と前記所有装置情報記憶部が記憶する情報に基づいて管理し、残りの箇所について管理を分担する前記他のストレージ装置とともに前記ストレージシステムが記憶するデータを管理する管理部と
    を有することを特徴とするストレージ装置。
  2. 前記管理部は、データのアクセス要求をクライアント装置から受信した場合に、アクセスを要求されたデータを自装置が所有するか否かを前記階層構造情報に基づいて判定し、自装置が所有しない場合には、該データを所有するストレージ装置を前記所有装置情報を用いて特定し、特定したストレージ装置に前記アクセス要求を転送することを特徴とする請求項1に記載のストレージ装置。
  3. 前記管理部は、データの作成要求をクライアント装置から受信した場合に、作成を要求されたデータの親であるディレクトリを所有するストレージ装置を前記階層構造情報及び前記所有装置情報に基づいて特定し、特定したストレージ装置にデータを作成することを特徴とする請求項2に記載のストレージ装置。
  4. 前記管理部は、他のストレージ装置が作成したデータについて他のストレージ装置が有する前記階層構造情報及び前記所有装置情報の一部をキャッシュ情報として記憶することを特徴とする請求項2又は3に記載のストレージ装置。
  5. 前記管理部は、リード及びライト処理の頻度の統計を取り、前記キャッシュ情報として記憶する情報を調整し、ライトのみの環境の場合、前記他のストレージ装置の前記階層構造情報及び前記所有装置情報をキャッシュ情報として記憶しないことを特徴とする請求項4に記載のストレージ装置。
  6. 前記管理部は、データを他のストレージ装置に移動する場合に、移動するデータの親であるディレクトリを所有するストレージ装置を前記階層構造情報及び前記所有装置情報に基づいて特定し、特定したストレージ装置にデータを移動することを特徴とする請求項2〜5のいずれか1つに記載のストレージ装置。
  7. 複数のストレージ装置で分散してデータを記憶するストレージシステムにおいて、
    各ストレージ装置は、
    当該ストレージシステムが記憶するデータの階層構造に関する階層構造情報を他のストレージ装置と分担した個所について記憶する階層構造情報記憶部と、
    データを識別するデータ識別子と該データを所有するストレージ装置を識別する装置識別子とを対応付けた所有装置情報を前記階層構造情報記憶部が記憶する前記分担した個所について記憶する所有装置情報記憶部と、
    前記分担した箇所について前記階層構造情報記憶部と前記所有装置情報記憶部が記憶する情報に基づいて管理し、残りの箇所について管理を分担する前記他のストレージ装置とともに当該ストレージシステムが記憶するデータを管理する管理部と
    を有することを特徴とするストレージシステム。
  8. ストレージシステムを構築する他のストレージ装置とともにデータを記憶するストレージ装置が有するコンピュータで実行されるデータ管理プログラムにおいて、
    前記ストレージシステムが記憶するデータの階層構造に関する階層構造情報を他のストレージ装置と分担した個所について階層構造情報記憶部に記憶し、
    データを識別するデータ識別子と該データを所有するストレージ装置を識別する装置識別子とを対応付けた所有装置情報を前記階層構造情報記憶部が分担して記憶する個所について所有装置情報記憶部に記憶し、
    前記分担した箇所について前記階層構造情報記憶部と前記所有装置情報記憶部が記憶する情報に基づいて管理し、残りの箇所について管理を分担する前記他のストレージ装置とともに前記ストレージシステムが記憶するデータを管理する
    処理を前記コンピュータに実行させることを特徴とするデータ管理プログラム。
JP2013257477A 2013-12-12 2013-12-12 ストレージ装置、ストレージシステム及びデータ管理プログラム Active JP6221717B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013257477A JP6221717B2 (ja) 2013-12-12 2013-12-12 ストレージ装置、ストレージシステム及びデータ管理プログラム
US14/528,304 US9886217B2 (en) 2013-12-12 2014-10-30 Storage system using a distributed partial hierarchical mapping

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013257477A JP6221717B2 (ja) 2013-12-12 2013-12-12 ストレージ装置、ストレージシステム及びデータ管理プログラム

Publications (2)

Publication Number Publication Date
JP2015114913A JP2015114913A (ja) 2015-06-22
JP6221717B2 true JP6221717B2 (ja) 2017-11-01

Family

ID=53368471

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013257477A Active JP6221717B2 (ja) 2013-12-12 2013-12-12 ストレージ装置、ストレージシステム及びデータ管理プログラム

Country Status (2)

Country Link
US (1) US9886217B2 (ja)
JP (1) JP6221717B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9454548B1 (en) 2013-02-25 2016-09-27 Emc Corporation Pluggable storage system for distributed file systems
US9984083B1 (en) * 2013-02-25 2018-05-29 EMC IP Holding Company LLC Pluggable storage system for parallel query engines across non-native file systems
JP6221717B2 (ja) * 2013-12-12 2017-11-01 富士通株式会社 ストレージ装置、ストレージシステム及びデータ管理プログラム
US9733846B1 (en) * 2014-12-18 2017-08-15 EMC IP Holding Company LLC Integrated backup performance enhancements by creating affinity groups
US10359966B2 (en) * 2017-05-11 2019-07-23 Vmware, Inc. Capacity based load balancing in distributed storage systems with deduplication and compression functionalities

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US6496944B1 (en) * 1999-10-06 2002-12-17 International Business Machines Corporation Method for database assisted file system restore
US6487622B1 (en) * 1999-10-28 2002-11-26 Ncr Corporation Quorum arbitrator for a high availability system
US6477620B1 (en) * 1999-12-20 2002-11-05 Unisys Corporation Cache-level return data by-pass system for a hierarchical memory
US6871245B2 (en) * 2000-11-29 2005-03-22 Radiant Data Corporation File system translators and methods for implementing the same
US7299351B2 (en) * 2001-09-19 2007-11-20 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) security infrastructure and method
JP4211285B2 (ja) * 2002-05-24 2009-01-21 株式会社日立製作所 ネットワークストレージシステムの仮想一元化方法及び装置
JP4100241B2 (ja) * 2003-04-24 2008-06-11 ソニー株式会社 情報処理装置、情報処理方法、プログラム、記憶媒体
JP2005115438A (ja) * 2003-10-03 2005-04-28 Mitsubishi Electric Corp データ管理装置
US8825591B1 (en) * 2003-12-31 2014-09-02 Symantec Operating Corporation Dynamic storage mechanism
US9104673B2 (en) * 2004-02-12 2015-08-11 International Business Machines Corporation Method for supporting multiple filesystem implementations
JP4281658B2 (ja) 2004-09-24 2009-06-17 日本電気株式会社 ファイルアクセスサービスシステムとスイッチ装置及びクオータ管理方法並びにプログラム
US20080155214A1 (en) 2006-12-21 2008-06-26 Hidehisa Shitomi Method and apparatus for file system virtualization
US7739312B2 (en) * 2007-04-27 2010-06-15 Network Appliance, Inc. Data containerization for reducing unused space in a file system
US8600953B1 (en) * 2007-06-08 2013-12-03 Symantec Corporation Verification of metadata integrity for inode-based backups
US8296398B2 (en) * 2008-04-29 2012-10-23 Overland Storage, Inc. Peer-to-peer redundant file server system and methods
US8566362B2 (en) * 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations
US8655848B1 (en) * 2009-04-30 2014-02-18 Netapp, Inc. Unordered idempotent logical replication operations
US8161244B2 (en) * 2009-05-13 2012-04-17 Microsoft Corporation Multiple cache directories
US8938456B2 (en) * 2009-10-23 2015-01-20 Intellidimension, Inc. Data recovery system and method in a resource description framework environment
US8533427B2 (en) * 2010-05-06 2013-09-10 International Business Machines Corporation Mapping locations of logical volume records on a physical stacked volume
US8982140B2 (en) * 2010-09-24 2015-03-17 Nvidia Corporation Hierarchical memory addressing
US20130013798A1 (en) * 2011-07-06 2013-01-10 Cleversafe, Inc. Distribution of multi-media content to a user device
WO2013014694A1 (en) * 2011-07-22 2013-01-31 Hitachi, Ltd. Information processing system and method for controlling the same
WO2013101068A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Short circuit of probes in a chain
DE112013003723B4 (de) * 2012-10-22 2018-09-13 Intel Corporation Hochleistungsfähige physikalische Kopplungsstrukturschicht
US9251081B2 (en) * 2013-08-01 2016-02-02 Advanced Micro Devices, Inc. Management of caches
US9471595B1 (en) * 2013-09-30 2016-10-18 Emc Corporation Recovering file mapping information in file systems
JP6221717B2 (ja) * 2013-12-12 2017-11-01 富士通株式会社 ストレージ装置、ストレージシステム及びデータ管理プログラム

Also Published As

Publication number Publication date
US20150169229A1 (en) 2015-06-18
JP2015114913A (ja) 2015-06-22
US9886217B2 (en) 2018-02-06

Similar Documents

Publication Publication Date Title
US10178174B2 (en) Migrating data in response to changes in hardware or workloads at a data store
CN108021336B (zh) 用于无缝数据迁移的数据布局方法、系统和存储介质
US8312242B2 (en) Tracking memory space in a storage system
CN103067433B (zh) 一种分布式存储系统的数据迁移方法、设备和系统
CN105190533B (zh) 原位快照
CN105190623B (zh) 日志记录管理
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
JP6221717B2 (ja) ストレージ装置、ストレージシステム及びデータ管理プログラム
CN110447021A (zh) 用于在数据中心之间维持元数据和数据的一致性的方法、装置和系统
US20080098086A1 (en) File Distribution System in Which Partial Files Are Arranged According to Various Allocation Rules Associated with a Plurality of File Types
US9031906B2 (en) Method of managing data in asymmetric cluster file system
JP2017130103A (ja) ブロックストレージ
CN109314721B (zh) 分布式文件系统的多个集群的管理
CN103502926A (zh) 基于扩展区的存储架构
US9661078B1 (en) Federated namespace management
CN105975214A (zh) 配置用于输入/输出操作的对象存储系统
CN103229173A (zh) 元数据管理方法及系统
JP4748950B2 (ja) 記憶領域管理方法及びシステム
CN111078121A (zh) 一种分布式存储系统数据迁移方法、系统、及相关组件
CN113722275B (zh) 对象存储空间管理方法、装置、服务器及存储介质
CN109684282A (zh) 一种构建元数据缓存的方法及装置
JP2012504295A (ja) データベースサーバシステムのためのストレージ階層
CN103078898A (zh) 文件系统、接口服务装置和数据存储服务提供方法
CN108874305A (zh) 用于存储区域网络(san)设备的对象覆盖
CN109302448A (zh) 一种数据处理方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170918

R150 Certificate of patent or registration of utility model

Ref document number: 6221717

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150