JP6135226B2 - 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム - Google Patents

情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム Download PDF

Info

Publication number
JP6135226B2
JP6135226B2 JP2013058473A JP2013058473A JP6135226B2 JP 6135226 B2 JP6135226 B2 JP 6135226B2 JP 2013058473 A JP2013058473 A JP 2013058473A JP 2013058473 A JP2013058473 A JP 2013058473A JP 6135226 B2 JP6135226 B2 JP 6135226B2
Authority
JP
Japan
Prior art keywords
data
storage
unit
node
parity
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
JP2013058473A
Other languages
English (en)
Other versions
JP2014182737A (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.)
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 JP2013058473A priority Critical patent/JP6135226B2/ja
Priority to US14/173,031 priority patent/US9891992B2/en
Publication of JP2014182737A publication Critical patent/JP2014182737A/ja
Application granted granted Critical
Publication of JP6135226B2 publication Critical patent/JP6135226B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1023Different size disks, i.e. non uniform size of disks in RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity

Description

本発明は、データを分散して複数の記憶装置に記憶する技術分野に関する。
近年、ストレージノードの追加及び交換を行うことにより、容量や性能を拡張可能なストレージシステム(グリッドストレージシステム)が提案されている。ストレージシステムは、データを複数のストレージノードに分散した状態で格納する。また、一般的にストレージシステムは、性能や耐障害性を考慮するために、データを複数のストレージノードに対して均等に格納するよう設計されていることが多い。
例えば、特許文献1は、複数のインタフェースプロセッサ及び複数のストレージデバイスによって構成される分散ストレージシステムに関する技術を開示する。具体的に、特許文献1は、インタフェースプロセッサ及びストレージデバイスが、少なくとも1つのストレージデバイスのIPアドレスが含まれるノードリストを格納しており、そのノードリストに基づいてインタフェースプロセッサがストレージデバイスを制御する技術を開示する。
特許文献2は、データ再配置処理装置を含む分散ファイルシステムに関する技術を開示する。具体的に、特許文献2は、データの再配置が未完了であるファイルのデータの再配置位置を計算し、計算結果に基づき各ストレージノード間においてデータを交換する技術を開示する。
尚、誤ったデータを検出するためのパリティに関する技術の一例として、特許文献3は、データ放送システムの受信機におけるデータ読み込み処理に関する技術を開示する。具体的に、特許文献3は、受信機が読み込んだデータに基づいて判定を行い、読み込んだデータが正常なデータであった場合、不要なパリティに関するデータを読み込まないようにする技術を開示する。
特許第4696089号公報 特開2010−238038号公報 特開平10−107748号公報
特許文献1及び特許文献2に記載された技術は、ストレージデバイス(ストレージノード)が格納(記憶)可能な記憶容量(以下、「容量」と略称する)について考慮されていない。例えば、容量が異なるストレージデバイスを備えるストレージシステムの場合、特許文献1及び特許文献2に記載された技術では、容量が大きいストレージデバイスの記憶領域を十分利用できない。これにより、特許文献1及び特許文献2に記載された技術は、記憶領域を十分利用しようとすると性能劣化のおそれがある。その理由として、容量見合いでデータを書き込む場合、容量の大きなストレージノードがネックとなってしまうため、これらの技術は、各ストレージノードに均等にデータを書き込む場合と比較して書き込み性能が低下するおそれがある。また、各ストレージノードに均等にデータを書き込み、その後、容量見合いでデータを再配置する場合、データの多いストレージノードがネックとなってしまうため、これらの技術は、均等にデータが格納されている場合と比較して読み込み性能が低下するおそれがある。
さらに、上記特許文献1及び特許文献2に記載された技術は、ストレージデバイスの容量を考慮していないことから、パリティデータが、あるストレージノードに集中的に格納された場合、耐障害性を保つことができないおそれがある。
本発明は、上記課題を鑑み、容量の異なるストレージノードを備えるストレージシステムにおいて、性能劣化を防ぎ、耐障害性を保つことができる情報処理装置等を提供することを1つの目的とする。
上記目的を達成するために、本発明に係る情報処理装置は、受信したデータを複数の分割データに分割し、エラーが起きた前記受信データを再構築する際に利用可能な複数のパリティデータを生成し、前記分割データと前記パリティデータとを、複数のストレージノードに送信するデータ書き込み部と、前記データ書き込み部により書き込まれた前記データの再配置位置を、所定の条件に基づいて前記複数のストレージノードに割り当て、前記割り当てられたストレージノードに前記データを格納する再配置部と、前記複数のストレージノードに格納されたパリティデータを識別することにより、該パリティデータを読み込まないよう前記分割データを読み込むデータ読み込み部と、を備える。
上記目的を達成するために、本発明に係る情報処理方法は、受信したデータを複数の分割データに分割し、エラーが起きた前記受信データを再構築する際に利用可能な複数のパリティデータを生成し、前記分割データと前記パリティデータとを、複数のストレージノードに送信し、書き込まれた前記データの再配置位置を、所定の条件に基づいて前記複数のストレージノードに割り当て、前記割り当てられたストレージノードに前記データを格納し、前記複数のストレージノードに格納されたパリティデータを識別することにより、該パリティデータを読み込まないよう前記分割データを読み込む。
上記目的を達成するために、本発明に係るコンピュータプログラムは、受信したデータを複数の分割データに分割し、エラーが起きた前記受信データを再構築する際に利用可能な複数のパリティデータを生成し、前記分割データと前記パリティデータとを、複数のストレージノードに書き込む処理と、書き込まれた前記データの再配置位置を、所定の条件に基づいて前記複数のストレージノードに割り当て、前記割り当てられたストレージノードに前記データを格納する処理と、前記複数のストレージノードに格納されたパリティデータを識別することにより、該パリティデータを読み込まないよう前記分割データを読み込む処理と、をコンピュータに実行させる。
尚、係る同目的は、当該コンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体によっても達成されうる。
本発明の情報処理装置によれば、容量の異なるストレージノードを備えるストレージシステムにおいて、性能劣化を防ぎ、耐障害性を保つことができる。
本発明の第1の実施形態に係るストレージシステム1の構成を例示するブロック図である。 本発明の第1の実施形態に係るストレージシステム1を構成するアクセスノード100及びストレージノード200を実現可能な情報処理装置(コンピュータ)のハードウェア構成例を示す図である。 本発明の第1の実施形態に係るストレージシステム1を構成するアクセスノード100の機能構成を概念的に例示するブロック図である。 本発明の第1の実施形態に係るストレージシステム1を構成するストレージノード200の機能構成を概念的に例示するブロック図である。 第1の実施形態において、ストレージノード200が備えるデータ格納部250の構成を例示した図である。 第1の実施形態における分割処理動作により分割されたデータを例示した図である。 第1の実施形態において、分散書き込み処理動作における各ストレージノード200に対するフラグメントの割当手法を例示する図である。 第1の実施形態において、データ書き込み処理におけるアクセスノード100の動作を示すフローチャートである。 第1の実施形態において、各容量単位ノード252に対するフラグメントの割当手法を例示する図である。 第1の実施形態におけるフラグメントの格納位置情報を示すメタデータを例示する図である。 第1の実施形態において、データ書き込み処理におけるストレージノード200の動作を示すフローチャートである。 第1の実施形態において、再配置処理における各ストレージノード200に対するフラグメントの割当手法を例示する図である。 第1の実施形態において、再配置処理における各ストレージノード200に対するフラグメントの割当条件1を例示した図である。 第1の実施形態において、再配置処理における各ストレージノード200に対するフラグメントの割当条件2を例示した図である。 第1の実施形態において、各ストレージノード200における再配置前及び再配置後のフラグメントの格納位置を例示する図である。 第1の実施形態において、再配置処理におけるアクセスノード100の動作を示すフローチャートである。 第1の実施形態において、データ読み込み処理におけるストレージノード200からアクセスノード100に対して、オリジナルフラグメントを送信する処理を例示した図である。 第1の実施形態において、データ読み込み処理におけるアクセスノード100の動作を示すフローチャートである。 本発明の第2の実施形態に係る情報処理装置400の機能構成を概念的に例示するブロック図である。
<第1の実施形態>
はじめに、本発明の第1の実施形態に係るストレージシステム1について説明する。図1は、本発明の第1の実施形態に係るストレージシステム1の構成を例示するブロック図である。図1に示すように、ストレージシステム1は、アクセスノード(AN)100とストレージノード(SN)200とが、ネットワーク300を介して通信可能に接続されることにより構成される。ストレージシステム1は、ノードの追加及び交換を行うことにより容量や性能の拡張が可能なストレージシステムを想定している。アクセスノード100は、主にストレージノード200に記憶されるデータの管理や制御等を行う。アクセスノード100についての詳細は後述する。また、本実施形態において、1つのアクセスノード100について説明するが、ストレージシステム100は、複数のアクセスノード100が複数のストレージノード200に接続されることにより構成されていてもよい。
図2は、本発明の第1の実施形態に係るストレージシステム1を構成するアクセスノード100及びストレージノード200を実現可能な情報処理装置(コンピュータ)のハードウェア構成例を示す図である。図1に示すように、情報処理装置1は、CPU(Central Processing Unit)10、メモリ12、HDD(ハードディスクドライブ)14、図示しないネットワークを介して通信を行う通信IF(インタフェース)16、入力装置18、出力装置20、及びCD(コンパクトディスク)等のコンピュータ読み取り可能な記憶媒体24に記憶された情報を読み取り可能なリーダーライター22を有する。これらの構成要素は、バス26を通して互いに接続されており、互いにデータの入出力を行うことができる。
本実施形態に係るストレージシステム1を構成するアクセスノード100及びストレージノード200は、メモリ12又はHDD14に記憶されているコンピュータプログラム(以下、「プログラム」と称する)をCPU10が実行することにより実現される。または、情報処理装置1は、CPU10が記憶媒体24に記憶されているプログラムを実行することにより実現されてもよい。CPU10において実行するプログラムは、通信IF16あるいはリーダーライター22を介して外部から取得してもよい。図1に示す情報処理装置1のハードウェア構成例は、後述する実施形態及び実施例にも適用可能である。
次に、アクセスノード100について説明する。図3は、本発明の第1の実施形態に係るストレージシステム1を構成するアクセスノード100の機能構成を概念的に例示するブロック図である。但し、図3に示した機能構成は、説明の便宜上から表された構成であり、本願の実施形態を例に説明する本発明は、実装に際して係る構成には限定されない。図3に示すように、アクセスノード100は、通信部110、データ処理部120、ノード情報処理部130及び記憶装置140を備える。
通信部110は、クライアントやストレージシステム1を構成する他のノードとのインタフェースである。
データ処理部120は、データの読み書き等の処理を行う。データ処理部120は、データ送受信部122、データ書き込み部124、再配置部126、データ読み込み部128を有する。
データ送受信部122は、クライアントや他のノードとデータを送受信する。例えば、データ送受信部122は、NFS(Network File System)やCIFS(Common Internet File System)等のファイル転送用プロトコルを用いることによって、クライアントとデータを送受信する処理を行う。
データ書き込み部124は、ストレージノード200に対してデータを書き込む処理を行う。データ書き込み部124が行うデータ書き込み処理の詳細は後述する。
再配置部126は、データ書き込み部124によって、ストレージノード200に書き込まれたデータの再配置を行う。再配置部126が行う再配置処理の詳細は後述する。
データ読み込み部128は、再配置部126によって、ストレージノード200内で再配置されたデータを読み込む処理を行う。データ読み込み部128が行うデータ読み込み処理の詳細は後述する。
ノード情報処理部130は、他のノードの稼動状態や構成情報を管理する。ノード情報処理部130は、状態監視部132及び構成変更部134を有する。
構成変更部132は、ストレージシステム1において、ノードの追加や削除等を行うことにより、ノードの構成に変更があった場合に、後述する記憶装置140に記憶される構成情報を更新する。例えば、新しくノードが追加された場合、構成変更部132は、構成情報を更新することにより、更新後のデータ書き込み処理において、新しく追加したノードを利用可能にする。また、新しくノードが追加された場合、構成変更部132は、構成情報を更新した後、ノード間のデータの不均衡を減らすために再配置処理を行うようにしてもよい。
状態監視部134は、ストレージシステム1において、ディスク障害やノード障害等が発生した場合に記憶装置140に記憶される稼動情報を更新する。例えば、状態監視部134は、更新した自ノードの稼動情報を他のノードに送信するようしてもよい。また、状態監視部134は、他のノードの稼動情報を監視してもよい。
記憶装置140は、物理ノード及び仮想ノードの台数や容量等の情報である構成情報、ディスク障害やノード障害等の情報である稼動情報及び再配置処理に利用される再配置情報等を記憶可能である。具体的に、構成情報は、ノード台数等の物理的な情報である物理ノード情報、ストレージノードの容量に応じて定義する仮想ノードの情報である容量単位ノード情報及びデータロストの最小単位(例えばハードディスクやRAID(Redundant Arrays of Inexpensive Disks)等)を仮想ノードとして定義した故障単位ノード情報等が含まれる。また、稼動情報は、データ書き込み処理において、障害の発生したディスクやノードを用いないようするため利用されてもよい。稼動情報は、ディスク障害やノード障害により失われたデータを復旧するために利用されてもよい。
次に、ストレージノード200について説明する。図4は、本発明の第1の実施形態に係るストレージシステム1を構成するストレージノード200の機能構成を概念的に例示するブロック図である。但し、図4に示した機能構成は、説明の便宜上から表された構成であり、本願の実施形態を例に説明する本発明は、実装に際して係る構成には限定されない。図4に示すように、ストレージノード200は、通信部210、データ処理部220、ノード情報処理部230、記憶装置240及びデータ格納部250を備える。尚、ストレージノード200が備える通信部210、ノード情報処理部230及び記憶装置240と、アクセスノード100が備える通信部110、ノード情報処理部130及び記憶装置140とは、同様の動作を行うため、説明は省略する。
データ処理部220は、データ送受信部222、データ書き込み部224、再配置部226、データ読み込み部228を有する。上述したアクセスノード100が備えるデータ処理部120の処理と基本的に同様の処理を行うため、それぞれの動作について簡単に説明する。データ送受信部222は、アクセスノード100とデータを送受信する処理を行う。データ書き込み部224は、データ格納部250に対して、アクセスノード100から受信したデータを書き込む処理を行う。再配置部226は、データ格納部250に書き込まれたデータを他のストレージノード200に移動させる再配置処理を行う。データ読み込み部128は、データ格納部250に書き込まれたデータを読み込む処理を行う。
データ格納部250は、データの格納位置の情報等を保持したメタデータと、アクセスノード100から送信されたデータとを格納する。ここで、データ格納部250について、図5を参照して説明する。
図5は、ストレージノード200が備えるデータ格納部250の構成を例示した図である。図5に示すように、データ格納部250は、少なくとも1つ以上のハードディスクを保持する。例えば、データ格納部250は、容量を優先してハードディスクを1台ずつのシンプルボリュームとして利用する状況が考えられる。また、データ格納部250は、冗長性を持たせるために複数のハードディスクを組み合わせることにより、RAIDボリュームとして利用する状況が考えられる。上述したシンプルボリュームとして利用されるハードディスクやRAIDボリュームとして利用される複数のハードディスクを故障単位ノード254という仮想ノードとして定義する。
また、ストレージシステム1において特定の容量毎に、少なくとも1つ以上の故障単位ノード254から構成される容量単位ノード252という仮想ノードを定義する。例えば、ストレージノード200Aが備えるデータ格納部250Aの容量(ストレージノードAの容量)が、ストレージノード200Bの容量と比較して、3倍の容量であるとする。この場合、ストレージノード200Aが備えるデータ格納部250Aが有する容量単位ノード252A(ストレージノード200Aが保持する容量単位ノード252)は、ストレージノード200Bが保持する容量単位ノード252の3倍の個数の容量単位ノード252を保持していることになる。さらに、容量単位ノード254に読み書きすることにより、ハードディスクへの読み書きが可能なようにする。
次に、上述したデータ書き込み処理、再配置処理、データ読み込み処理について詳細を説明する。
=データ書き込み処理=
図6〜図8を参照して、アクセスノード100におけるデータ書き込み処理について説明する。
図8は、データ書き込み処理におけるアクセスノード100の動作を示すフローチャートである。
図8に示すように、ステップS102において、データ書き込み部124は、データ送受信部122によって受信したデータ500を、固定長または可変長のデータブロック510に分割する。
ステップS104において、データ書き込み部124は、分割したデータブロック510を、さらにm個に分割する。ここで、m個に分割したデータを分割データ(オリジナルフラグメント(OF))520と呼ぶ。また、後述する処理の説明のために、データブロック510に対して番号(データブロック番号)を付ける。ステップS102及びステップS104における動作を分割処理動作と呼ぶこととする。また、図6は、分割処理動作により分割されたデータを例示した図である。
ステップS106において、データ書き込み部124は、分割処理動作によって分割されたオリジナルフラグメント520に基づいて、誤り訂正符号を用いることにより誤り訂正用のn個のパリティのデータを生成する。ここで、生成したn個のパリティのデータをパリティデータ(パリティフラグメント(PF))530と呼ぶ。また、オリジナルフラグメント520とパリティフラグメント530のことを総称してフラグメント(F)540と呼ぶ。ステップS106における動作を符号化処理動作と呼ぶこととする。
ステップS108において、データ書き込み部124は、分割処理動作及び符号化処理動作により生成された(m+n)個のフラグメント540の送信先を割り当てる。フラグメント540の送信先の割当手法について、図7を参照して、以下に説明する。
図7は、分散書き込み処理動作において、各ストレージノード200に対するフラグメント540の割当手法を例示する図である。まず、データ書き込み部124は、各ストレージノード200に、通し番号(ストレージノード番号)を予め付けておくとする。次に、データ書き込み部124は、分割処理動作により付けられたデータブロック番号を、ストレージノードの数により除算し、その余りを求める。そして、データ書き込み部124は、その余りと同じストレージ番号を持つストレージノード200から順にフラグメント540を割り当てる。図7に示す例において、データブロック番号をストレージノード200の数により除算した余りが1だったため、データ書き込み部124は、ストレージノード(SN1)200からフラグメント540を割り当てる。尚、説明した各ストレージノード200に対するフラグメント540の割当手法はあくまでも一例であるので、ラウンドロビン方式等のような他の手法により各ストレージノード200に対してフラグメント540を割り当ててもよい。
ステップS110において、データ書き込み部124は、各フラグメント540を、割り当てられたストレージノード200に対して送信する。ステップS108及びステップS110における動作を分散書き込み処理動作と呼ぶこととする。
ここで、本実施形態において、アクセスノード100がデータ書き込み処理動作を実行すると説明したが、データ書き込み処理動作はクライアントが実行してもよい。具体的には、データ書き込み処理動作用のアプリケーションをクライアントにインストールすることにより、クライアントがデータ書き込み処理動作を実行し、クライアントが直接ストレージノード200にフラグメント540を送信してもよい。
次に、図9〜図11を参照して、ストレージノード200におけるデータ書き込み処理について説明する。
図11は、データ書き込み処理におけるストレージノード200の動作を示すフローチャートである。
図11に示すように、ステップS202において、データ書き込み部224は、アクセスノード100から受信したフラグメント540を格納する容量単位ノード252を割り当てる。フラグメント540の格納先の割当手法について、図9を参照して、以下に説明する。
図9は、各容量単位ノード252に対するフラグメント540の割当手法を例示する図である。ここで、アクセスノード100から受信したフラグメント540をFa、Fb、Fc等と呼ぶこととする。まず、データ書き込み部224は、ストレージノード200が有する容量単位ノード252に、通し番号(容量単位ノード番号)を付けておくこととする。次に、データ書き込み部224は、データブロック番号を、容量単位ノード252の数により除算し、その余りを求める。そして、データ書き込み部224は、その余りと同じ容量単位ノード番号を持つ容量単位ノード252から順にフラグメント540を割り当てる。図9に示す例において、データブロック番号を容量単位ノードの数により除算した余りが1だったため、データ書き込み部124は、容量単位ノード(N1)252からフラグメント540(図9においてはFa)を割り当てる。尚、説明した各容量単位ノード252に対するフラグメント540の割当手法はあくまでも一例であるので、他の手法により各容量単位ノード252に対してフラグメント540を割り当ててもよい。
ステップS204において、データ書き込み部224は、フラグメント540を割り当てられた容量単位ノードに格納する。具体的に、データ書き込み部224は、フラグメント540を容量単位ノード252に書き込むことにより、ディスクに格納する。
ステップS206において、書き込んだフラグメント540の位置情報(フラグメント540が格納されるストレージノード200及び容量単位ノード252を示す情報)を、他のストレージノード200に通知する。
ステップS208において、フラグメント540の格納位置情報をメタデータとして全てのストレージノード200が備えるデータ格納部250に格納する。即ち、全てのストレージノード200が同様のメタデータを格納するということである。ここで、図10を参照して、メタデータについて説明する。図10は、フラグメント540の格納位置情報を表すメタデータを例示する図である。図10に示すように、データブロックk(データブロック番号がk)のオリジナルフラグメント520が、ストレージノードi(ストレージノード番号がi)の容量単位ノードj(容量単位ノード番号がj)に格納され、その格納位置がxxxxの場合、格納位置情報は、i−j−xxxxのように示される。例えば、図10を参照すると、データブロックkのオリジナルフラグメント2の格納位置は、2−1−xxxxと示されている。よって、データブロックkのオリジナルフラグメント2は、ストレージノード2における容量単位ノード1のxxxxに格納されていることがわかる。
ステップS210において、アクセスノード100に対して書き込み処理が完了したことを通知する。また、書き込み処理の完了通知に加え、データブロックkが再配置処理を実施していないデータブロックであることを表す情報(再配置情報)をアクセスノード100に通知する。
=再配置処理=
図12〜図16を参照して、再配置処理について説明する。
図16は、再配置処理におけるアクセスノード100の動作を示すフローチャートである。
図16に示すように、ステップS302において、再配置を行うデータブロック510を決定する。具体的には、再配置部126は、記憶装置140に記憶されている再配置情報を参照して、再配置を行うデータブロック510を決定する。
ステップS304において、各フラグメント540の格納位置を特定する。具体的には、再配置部126は、ストレージノード200に格納されているメタデータを読み込むことにより、再配置処理の対象となるデータブロック510を構成するフラグメント540の格納位置を特定する。ここで、データ書き込み処理において説明した通り、全てのストレージノード200に同様のメタデータが格納されているので、再配置部126は、どれか1つのストレージノード200に格納されているメタデータを読み込めばよい。
ステップS306において、各フラグメント540の再配置後の格納位置を割り当てる。具体的に、再配置部126は、まずフラグメント540の新しい割り当て先のストレージノード200を決定する。次に、再配置部126は、決定されたストレージノード200において、どの容量単位ノード252にフラグメント540を割り当てるか決定する。フラグメント540の再配置後の割当手法について、図12〜図14を参照して、以下に説明する。
図12は、再配置処理における、各ストレージノード200に対するフラグメント540の割当手法を例示する図である。以下の説明において、ステップS302において決定されたデータブロック510を構成するフラグメント540をF1、F2、F3等と示すこととする。まず、再配置部126は、全てのストレージノード200が備える容量単位ノード252に対して、ストレージシステム1全体の通し番号(システム番号)を付けておく。その際、再配置部126は、同じストレージノード200内にシステム番号が固まりすぎないようにする。例えば、再配置部126は、ドント方式等を利用することにより、容量単位ノード252に対してシステム番号を付けてもよい。以下の説明においては、システム番号を付けた各容量単位ノード252を、N1、N2、N3等と呼ぶこととする。
次に、再配置部126は、データブロック番号をストレージノードの数により除算した余りを求め、求めた余りと同じストレージノード番号を持つストレージノード200を特定する。再配置部126は、特定したストレージノード200が備える容量単位ノード252において、システム番号が最小の容量単位ノード252を特定する。再配置部126は、特定した容量単位ノード252から、システム番号順にフラグメント540を割り当てる。再配置部126は、システム番号順にフラグメント540を割り当てるが、割り当て先は容量単位ノード252ではなく、ストレージノード200に割り当てることとする。
再配置後のフラグメント540の格納先は、基本的に上述したように決定される。しかしながら、再配置部126は、以下の条件を追加してフラグメント540の格納先を決定してもよい。
==条件1==
図13は、再配置処理における、各ストレージノード200に対するフラグメント540の割当条件1を例示した図である。条件1において、再配置部126は、パリティフラグメント530の数に着目することにより、フラグメント540の割り当てを実行する。具体的には、再配置部126は、あるストレージノード200に割り当てられたフラグメント540の数が、パリティフラグメント530の数と同じになった場合、該ストレージノード200にフラグメント540を割り当てないようにする。この場合、再配置部126は、次のシステム番号を持つ容量単位ノード252を有するストレージノード200に対して、フラグメント540の割り当てを実行する。
例えば、再配置処理の対象となるデータブロック510を構成するフラグメント540に含まれるパリティフラグメント530の数が3個だとする。図13に示すように、あるストレージノードにF5、F6及びF7の3個のフラグメント540が割り当てられ、更に、該ストレージノード200にフラグメント540(F8)が割り当てられようとしている状況を考える。その場合、再配置部126は、該ストレージノード200には、F5、F6及びF7の3個のフラグメント540が割り当てられているため、該ストレージノード200にはフラグメント540を割り当てずに、次のシステム番号を持つ容量単位ノード252を有するストレージノード200に割り当てる。
即ち、再配置部126は、基本的な割当手法に基づいてフラグメント540(F8)の割り当てを実行した場合、容量単位ノード252(N12)を有するストレージノード200に割り当てられる(図13における点線により表された箇所)。しかしながら、再配置部126は、条件1に従って、フラグメント540(F8)の割り当てを実行した場合、容量単位ノード252(N13)を有するストレージノード200にフラグメント540を割り当てる。
==条件2==
図14は、再配置処理における、各ストレージノード200に対するフラグメント540の割当条件2を例示した図である。条件2において、再配置部126は、各ストレージノード200に割り当て済のオリジナルフラグメント520の数に着目することにより、フラグメント540の割り当てを実行する。具体的には、再配置部126は、次にフラグメント540を割り当てようとするストレージノード200に割り当て済のオリジナルフラグメント520の数を、その他のストレージノード200に割り当て済のオリジナルフラグメント520の数と比較する。
その結果、再配置部126は、次にフラグメント540を割り当てようとするストレージノード200に割り当て済のオリジナルフラグメント520の数よりも、その他のストレージノード200に割り当て済のオリジナルフラグメント520の数が多い、又は同じであった場合、該ストレージノード200にオリジナルフラグメント520を割り当てる。一方、再配置部126は、次にフラグメント540を割り当てようとするストレージノード200に割り当て済のオリジナルフラグメント520の数よりも、割り当て済みのオリジナルフラグメント520の数が少ないストレージノード200が存在した場合、該ストレージノードにパリティフラグメント530を割り当てる。
例えば、図14に示されるF1〜F4がオリジナルフラグメント520であり、ストレージノード200に割り当て済であると考える。次に、図14を参照すると、再配置部126は、F5を、N9を有するストレージノード200に割り当てる際、N9を有するストレージノード200に割り当て済のオリジナルフラグメント520の数を、その他の各ストレージノード200に割り当て済のオリジナルフラグメント520の数と比較する。比較の結果、N9を有するストレージノード200に割り当て済のオリジナルフラグメント520の数は0であり、その他の各ストレージノード200に割り当て済のオリジナルフラグメント520の数は0か1である。これにより、再配置部126は、N9を有するストレージノード200には、オリジナルフラグメント520を割り当てる。次に、図14を参照すると、再配置部126は、F6を、N10を有するストレージノード200に割り当てる際、その他の各ストレージノード200に割り当て済のオリジナルフラグメント520の数と比較する。比較の結果、N10を有するストレージノード200に割り当て済のオリジナルフラグメント520の数は1であり、割り当て済のオリジナルフラグメント520の数が0のストレージノード200が存在することがわかる。これにより、再配置部126は、N10を有するストレージノード200には、パリティフラグメント530を割り当てる。
ここで、再配置部126は、割り当てられていないフラグメント540がオリジナルフラグメント520のみ、又はパリティフラグメント530のみになった場合、条件2は無視して残ったフラグメント540を割り当てる。
最後に、再配置部126は、各ストレージノード200に割り当てられたフラグメント540を、各ストレージノード200が有する容量単位ノード252に割り当てる。各容量単位ノード252に対するフラグメント540の割当手法は、図11のステップS202における手法と同様である。
ステップS308において、再配置部126は、移動対象のフラグメント540を決定する。具体的に、再配置部126は、ステップS306において割り当てられたフラグメント540の格納位置と、再配置前のフラグメント540の格納位置と、を比較する。比較した結果、再配置部126は、実際に移動が必要なフラグメント540を決定する。
図15は、各ストレージノード200における再配置前及び再配置後のフラグメント540の格納位置を例示する図である。図15の上部に示すのは、再配置前のフラグメント540の格納位置であり、図15の下部に示すのは、再配置後のフラグメント540の格納位置である。図15を参照すると、フラグメント540の格納位置に変更が生じたストレージノード200は、SN0、SN3及びSN5であることがわかる。従って、再配置部126は、SN0のオリジナルフラグメント520をSN3に、SN3のパリティフラグメント530をSN5に移動するよう決定する。
ステップS310において、再配置部126は、ストレージノード200に対して、フラグメント540の移動命令を送信する。具体的に、再配置部126は、ストレージノード200に対して、ステップS308において決定されたようにフラグメント540を移動する命令を送信する。
上述した再配置処理は、アクセスノード100が、ストレージノード200に対して命令を出すことにより実行するよう説明したが、アクセスノード100からの命令を出す必要はない。そのため、再配置処理は、ストレージノード200が備える記憶装置240において再配置情報を記憶しておくことにより、あるストレージノード200から再配置処理の命令があった場合、アクセスノード100と通信を行わずに再配置処理を実行することも可能である。
また、上述した再配置処理は、複数のストレージノード200において1台の障害まで耐えることができるようにフラグメントの再配置処理を実行しているが、複数台のストレージノード200の障害にも耐えることができるようにすることもできる。具体的には、ストレージノード200の1台あたりのフラグメント540の最大数を減らすことにより、複数台のストレージノード200の障害にも対応可能になる。このとき、何台のストレージノード200の障害に対応可能かを設定によって変更可能な構成にしてもよい。
=データ読み込み処理=
次に、図17及び図18を参照して、データ読み込み処理について説明する。
図18は、データ読み込み処理における、アクセスノード100の動作を示すフローチャートである。
図18に示すように、ステップS402において、データ送受信部122は、クライアントからのRead要求(読み込み要求)を受信する。
ステップS404において、データ読み込み部128は、読み込み対象となるデータブロック510を特定する。具体的に、データ読み込み部128は、ストレージノード200が格納するメタデータを読み込み、クライアントが要求したデータに対応するデータブロック510を特定する。ここで、データ書き込み処理及び再配置処理において説明した通り、全てのストレージノード200に同様のメタデータが格納されているので、データ読み込み部128は、どれか1つのストレージノード200に格納されているメタデータを読み込めばよい。
ステップS406において、データ読み込み部128は、読み込み対象となるオリジナルフラグメント520を特定する。具体的に、データ読み込み部128は、ステップS404において特定されたデータブロック510を構成するオリジナルフラグメント520の格納位置を、メタデータに基づいて特定する。
ステップS408において、データ送受信部122は、読み込み対象となるオリジナルフラグメント520のRead要求をストレージノード200に送信する。
ここで、ストレージノード200からアクセスノード100に対して、Read要求のあったオリジナルフラグメント520を送信する動作について説明する。図17は、データ読み込み処理において、ストレージノード200からアクセスノード100に対して、オリジナルフラグメント520を送信する処理を例示した図である。図17に示すように、ストレージノード200は、オリジナルフラグメント520のみを読み込み、アクセスノード100に対して送信する。例えば、読み込むことができなかったオリジナルフラグメント520が存在した場合は、読み込み対象のデータブロックを構成するフラグメント540(パリティフラグメント530を含む)を全て読み込むこととする。
ステップS410において、受信したオリジナルフラグメント520を用いてデータを復元する。
以上説明したように、本発明の第1の実施形態に係るストレージシステム1は、容量の異なるストレージノードを備えるストレージシステムにおいて、性能劣化を防ぎ、耐障害性を保つことができる。
具体的に、ストレージシステム1は、データ書き込みの性能劣化を防ぐことができる。その理由は、データ書き込み部124がデータ書き込み処理の際、ストレージノードに対して、データを均等に書き込むからである。また、データ書き込み部124によるデータ書き込み処理が完了した後に、再配置部126が再配置処理を行うからである。
具体的に、ストレージシステム1は、データ読み込みの性能劣化を防ぐことができる。その理由は、データ読み込み部128によるデータ読み込み処理の際、パリティフラグメント530は読み込まず、オリジナルフラグメント520のみ読み込むからである。また、容量の大きいストレージノード200にパリティフラグメント530が多くなるよう再配置部126が再配置処理を行う(即ち、各ストレージノード200におけるオリジナルフラグメント520の数が均等になるよう再配置処理を行う)ことにより、データ読み込み処理の際に容量の大きいストレージノード200に負荷を集中させないからである。
具体的に、ストレージシステム1によれば、パリティフラグメント530の数がn個の場合にディスクのn重障害までデータロストが発生しない。さらに、ストレージシステム1によれば、ストレージノード1台の障害であったとしてもデータロストが発生しない。その理由は、再配置部126が、耐障害性が失われないよう所定の条件に従って再配置処理を行うからである。
また、ストレージシステム1は、ストレージノード200の数が、フラグメント540の数に比べて多くなかったとしても本発明を適用することができる。その理由は、容量単位ノード252という仮想ノードを定義してデータを格納するからである。そのため、仮想ノードの数を増やすことにより、仮想的に格納するノードの数を調整することができる。
<第2の実施形態>
本発明の第2の実施形態に係る情報処理装置400について説明する。図19は、本発明の第2の実施形態に係る情報処理装置400の機能構成を概念的に例示するブロック図である。本発明の第2の実施形態に係る情報処理装置400は、上述した実施形態に共通する構成である。
データ書き込み部424は、受信したデータを複数の分割データに分割し、エラーが起きた前記受信データを再構築する際に利用可能な複数のパリティデータを生成し、前記分割データと前記パリティデータとを、複数のストレージノード200に送信する。
再配置部426は、前記データ書き込み部により書き込まれた前記データの再配置位置を、所定の条件に基づいて前記複数のストレージノード200に割り当て、前記割り当てられたストレージノードに前記データを格納する。
データ読み込み部428は、前記複数のストレージノード200に格納されたパリティデータを識別することにより、該パリティデータを読み込まないよう前記分割データを読み込む。
以上説明したように、本発明の第2の実施形態に係る情報処理装置400は、容量の異なるストレージノードを備えるストレージシステムにおいて、性能劣化を防ぎ、耐障害性を保つことができる。
<産業上の利用可能性>
本発明の活用例として、複数のストレージを仮想的な1つのストレージに統合するグリッドストレージシステムが考えられる。また、本発明は、重複排除機能を有するストレージについて利用可能であると考えられる。
1 ストレージシステム
10 CPU
12 メモリ
14 HDD
16 通信IF
18 入力装置
20 出力装置
22 リーダーライター
24 記憶媒体
26 バス
100 アクセスノード
200 ストレージノード
300 ネットワーク
110,210 通信部
120,220 データ処理部
122,222 データ送受信部
124,224,424 データ書き込み部
126,226,426 再配置部
128,228,428 データ読み込み部
130,230 ノード情報処理部
132,232 構成変更部
134,234 状態監視部
140,240 記憶装置
250 データ格納部
252 容量単位ノード
254 故障単位ノード
500 データ
510 データブロック
520 分割データ(オリジナルフラグメント)
530 パリティデータ(パリティフラグメント)
540 フラグメント

Claims (9)

  1. 受信したデータを複数の分割データに分割し、エラーが起きた前記受信データを再構築する際に利用可能な複数のパリティデータを生成し、前記分割データと前記パリティデータとを、複数のストレージノードに書き込むデータ書き込み部と、
    前記データ書き込み部により書き込まれた前記データの再配置位置を、所定の条件に基づいて前記複数のストレージノードに割り当て、前記割り当てられたストレージノードに前記データを格納する再配置部と、
    前記複数のストレージノードに格納されたパリティデータを識別することにより、該パリティデータを読み込まないよう前記分割データを読み込むデータ読み込み部と、
    を備え、
    前記再配置部は、前記複数のストレージノードに対して再配置位置を割り当てる際、前記書き込み部によって生成されたパリティデータと同じ数の前記分割データが、連続して同一のストレージノードに割り当てられた場合、他のストレージノードに対して前記分割データを格納するよう再配置位置を割り当てる
    情報処理装置。
  2. 前記再配置部は、前記複数のストレージノードの中で、容量の大きいストレージノードに対して、より多くのデータを格納するよう再配置位置を割り当てる請求項1に記載の情報処理装置。
  3. 前記再配置部は、前記容量の大きいストレージノードに対してより多くの前記パリティデータを格納するよう再配置位置を割り当てる請求項2に記載の情報処理装置。
  4. 前記再配置部は、前記複数のストレージノードに対して再配置位置を割り当てる際、注目するデータを割り当てようとしているストレージノードよりも割り当て済の分割データが少ないストレージノードがある場合、前記注目するデータを割り当てようとしているストレージノードに対して前記パリティデータを格納するよう再配置位置を割り当てる請求項1乃至3の何れかに記載の情報処理装置。
  5. 前記再配置部は、前記複数のストレージノードに対して再配置位置を割り当てる際、再配置位置を割り当てていないデータが前記分割データのみ又は前記パリティデータのみとなった場合、前記注目するデータを割り当てようとしているストレージノードに対して前記パリティデータを格納するように再配置位置を割り当てることを止め、前記所定の条件に基づいて前記複数のストレージノードに対して残りのデータを格納するよう再配置位置を割り当てる請求項4に記載の情報処理装置。
  6. 前記データ読み込み部は、前記複数のストレージノードに格納された前記分割データを読み込む際、前記分割データの中に読み込めない分割データが存在した場合、前記パリティデータを読み込む請求項1乃至5の何れかに記載の情報処理装置。
  7. 請求項1乃至6の何れかに記載の前記情報処理装置と前記ストレージノードとがネットワークを介して接続されているストレージシステム。
  8. 受信したデータを複数の分割データに分割し、エラーが起きた前記受信データを再構築する際に利用可能な複数のパリティデータを生成し、前記分割データと前記パリティデータとを、複数のストレージノードに送信し、
    書き込まれた前記データの再配置位置を、所定の条件に基づいて前記複数のストレージノードに割り当て、前記割り当てられたストレージノードに前記データを格納し、
    前記複数のストレージノードに格納されたパリティデータを識別することにより、該パリティデータを読み込まないよう前記分割データを読み込み、
    前記複数のストレージノードに対して再配置位置を割り当てる際、前記生成されたパリティデータと同じ数の前記分割データが、連続して同一のストレージノードに割り当てられた場合、他のストレージノードに対して前記分割データを格納するよう再配置位置を割り当てる
    情報処理方法。
  9. 受信したデータを複数の分割データに分割し、エラーが起きた前記受信データを再構築する際に利用可能な複数のパリティデータを生成し、前記分割データと前記パリティデータとを、複数のストレージノードに書き込む処理と、
    書き込まれた前記データの再配置位置を、所定の条件に基づいて前記複数のストレージノードに割り当て、前記割り当てられたストレージノードに前記データを格納する処理と、
    前記複数のストレージノードに格納されたパリティデータを識別することにより、該パリティデータを読み込まないよう前記分割データを読み込む処理と、
    前記複数のストレージノードに対して再配置位置を割り当てる際、前記生成されたパリティデータと同じ数の前記分割データが、連続して同一のストレージノードに割り当てられた場合、他のストレージノードに対して前記分割データを格納するよう再配置位置を割り当てる処理と、
    をコンピュータに実行させるコンピュータプログラム。
JP2013058473A 2013-03-21 2013-03-21 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム Active JP6135226B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013058473A JP6135226B2 (ja) 2013-03-21 2013-03-21 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム
US14/173,031 US9891992B2 (en) 2013-03-21 2014-02-05 Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013058473A JP6135226B2 (ja) 2013-03-21 2013-03-21 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2014182737A JP2014182737A (ja) 2014-09-29
JP6135226B2 true JP6135226B2 (ja) 2017-05-31

Family

ID=51570023

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013058473A Active JP6135226B2 (ja) 2013-03-21 2013-03-21 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US9891992B2 (ja)
JP (1) JP6135226B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6269530B2 (ja) * 2015-02-26 2018-01-31 日本電気株式会社 記憶システム、記憶方法、及び、プログラム
US9843453B2 (en) * 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
WO2018179073A1 (ja) * 2017-03-28 2018-10-04 株式会社日立製作所 ストレージシステム、コンピュータ読み取り可能な記録媒体、システムの制御方法
US10545826B2 (en) * 2017-05-25 2020-01-28 Scality, S.A. Layered error correction encoding for large scale distributed object storage system
JP6668309B2 (ja) * 2017-11-30 2020-03-18 株式会社日立製作所 記憶システム及びその制御方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09305328A (ja) * 1996-05-13 1997-11-28 Fujitsu Ltd ディスクアレイ装置
JPH10107748A (ja) 1996-09-30 1998-04-24 Sanyo Electric Co Ltd データ放送システムの受信機におけるデータ読み込み処理方法
JP2000099275A (ja) * 1998-09-25 2000-04-07 Sony Corp ディスクアレイ制御方法及びディスクアレイ装置
WO2003077111A1 (fr) * 2002-03-13 2003-09-18 Fujitsu Limited Controleur pour dispositif raid
JP4068473B2 (ja) * 2003-02-19 2008-03-26 株式会社東芝 ストレージ装置、分担範囲決定方法及びプログラム
US7185144B2 (en) * 2003-11-24 2007-02-27 Network Appliance, Inc. Semi-static distribution technique
US7395369B2 (en) * 2004-05-18 2008-07-01 Oracle International Corporation Distributing data across multiple storage devices
US7653829B2 (en) * 2005-12-08 2010-01-26 Electronics And Telecommunications Research Institute Method of data placement and control in block-divided distributed parity disk array
GB0610335D0 (en) * 2006-05-24 2006-07-05 Oxford Semiconductor Ltd Redundant storage of data on an array of storage devices
US20080155191A1 (en) * 2006-12-21 2008-06-26 Anderson Robert J Systems and methods for providing heterogeneous storage systems
JP4696089B2 (ja) 2007-03-30 2011-06-08 三菱電機インフォメーションシステムズ株式会社 分散ストレージシステム
JP2010049634A (ja) * 2008-08-25 2010-03-04 Hitachi Ltd ストレージシステム及びストレージシステムにおけるデータ移行方法
JP5470974B2 (ja) 2009-03-31 2014-04-16 日本電気株式会社 分散ファイルシステム及び分散ファイル格納方法
JP5585116B2 (ja) * 2010-02-19 2014-09-10 日本電気株式会社 ストレージシステム

Also Published As

Publication number Publication date
JP2014182737A (ja) 2014-09-29
US20140289489A1 (en) 2014-09-25
US9891992B2 (en) 2018-02-13

Similar Documents

Publication Publication Date Title
US10852959B2 (en) Data storage system, process and computer program for such data storage system for reducing read and write amplifications
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
US11182258B2 (en) Data rebuild using dynamic peer work allocation
US9477429B2 (en) Block storage gateway module, method for providing access to block storage, mediator system and mediating method for storage, cloud storage system, and content delivery apparatus
US8010753B2 (en) Systems and methods for temporarily transferring use of portions of partitioned memory between host computers
JP5561425B2 (ja) ストレージシステム
JP6135226B2 (ja) 情報処理装置、情報処理方法、ストレージシステム及びコンピュータプログラム
US9612760B2 (en) Modular block-allocator for data storage systems
JP2008234158A (ja) ストレージ装置及び記憶領域配置方法
WO2018121456A1 (zh) 一种数据存储方法、服务器以及存储系统
US20210004171A1 (en) I/o request processing method and device
JP6526235B2 (ja) データチェック方法および記憶システム
US20150288753A1 (en) Remote monitoring pool management
CN109582213A (zh) 数据重构方法及装置、数据存储系统
US10394484B2 (en) Storage system
US20190347165A1 (en) Apparatus and method for recovering distributed file system
JP5391705B2 (ja) ストレージシステム
JP6233403B2 (ja) ストレージシステム、ストレージ装置、ストレージ装置の制御方法及び制御プログラム、管理装置、管理装置の制御方法及び制御プログラム
KR101441059B1 (ko) 분산 파일 시스템에서 효율적인 자료 저장 방법
US10200462B2 (en) Memory system including plurality of server nodes sharing storage array and operating method of memory system
US10768834B2 (en) Methods for managing group objects with different service level objectives for an application and devices thereof
JP7075077B2 (ja) バックアップサーバ、バックアップ方法、プログラム、ストレージシステム
JP6891603B2 (ja) バックアップシステム、ストレージ装置、データ転送方法及びプログラム
US11144206B2 (en) Method and system for sharing data reduction metadata with storage systems
JP6958102B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170314

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170410

R150 Certificate of patent or registration of utility model

Ref document number: 6135226

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150