JP6694665B2 - ストレージシステムを再構成するための方法及び可変構造型ストレージシステム並びに可変構造型ストレージデバイス及びホスト - Google Patents

ストレージシステムを再構成するための方法及び可変構造型ストレージシステム並びに可変構造型ストレージデバイス及びホスト Download PDF

Info

Publication number
JP6694665B2
JP6694665B2 JP2013272626A JP2013272626A JP6694665B2 JP 6694665 B2 JP6694665 B2 JP 6694665B2 JP 2013272626 A JP2013272626 A JP 2013272626A JP 2013272626 A JP2013272626 A JP 2013272626A JP 6694665 B2 JP6694665 B2 JP 6694665B2
Authority
JP
Japan
Prior art keywords
storage device
configuration
storage
host
variable structure
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
JP2013272626A
Other languages
English (en)
Other versions
JP2014132457A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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
Priority claimed from US13/733,309 external-priority patent/US20130185482A1/en
Priority claimed from US13/936,992 external-priority patent/US9239786B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2014132457A publication Critical patent/JP2014132457A/ja
Application granted granted Critical
Publication of JP6694665B2 publication Critical patent/JP6694665B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、ストレージシステムに関するものであり、特にユーザの要求ごとに異なるストレージデバイスを構成するために、ホストで構成ソフトウェアを修正する必要の無い再構成工程を提供することのできるストレージシステムを再構成するための方法及び可変構造型ストレージシステム並びに可変構造型ストレージデバイス及びホストに関する。
現代のストレージシステムは、一般的に受動的で、その動作特性が製造段階で決められる複数のスタンドアローンストレージデバイスを含む。ソフトウェア(ファームウェア)を実行するプロセッサ(例えば、RAIDコントローラ)は、スマートではないストレージデバイスがユニットとして動作できるようにする知能を付与することが必要である。ソリッドステートドライブ(SSD)のようなストレージデバイスは、ソフトウェア又はファームウェアを通じて制御可能であるので、ユーザ環境によるSSDの動作特性を制御するために努力が払われてきた。
ユーザ認証テストを満たすための従来のアプローチ手法は、生産者が、各々の顧客に合わせたストレージデバイスにカスタマイズするために、最後にエンジニアリング(last minute engineering)工程を提供する必要がある。ストレージデバイスの特性は、幅広く様々な種類からなるので、顧客は通常、ストレージデバイスの新しいモデルが採用されるたびに、自分のソフトウェアシステムを再調整することを所望する。
しかし、1つのストレージデバイスのための前提は、他のデバイスに有効とは限らない。その結果、生産者のエンジニアリング費用はストレージデバイスや顧客の要求仕様と共に増加するので、従来のカスタマイズによるアプローチ手法は、部分的に持続可能な手法とは言えない。
したがって、顧客に代わって、ストレージシステムを簡単に再構成(reconfiguration)することができるシステムが重要である。例えば、サムスンマジシャン(登録商標)のようなソリッドステートディスク(SSD)最適化ソフトウェアは、顧客のシステム用にSSDの特性を調整する。しかし、顧客の最適化オプションは非常に限られており、最適化メトリック(metric)は、ユーザ指向的ではなく、デバイス指向的であり、そして、最適化は、制御又は定量化することができない。さらに、ストレージデバイスの特徴は、磨耗(wearing)及び疲労(fatigue)のようなストレージ媒体の劣化によって時間とともに特性劣化を起こし得ることである。これは、顧客の初期の前提を逸脱する可能性があり、顧客で誤作動が発生するまで、容易に検出することができない。
可変構造型ストレージデバイスプロセスの他の形態は、顧客がストレージデバイスの環境を設定するための個々の特性を選択できるように許容する手法である。このアプローチ手法では、顧客のシステムを新しいストレージデバイスで調整する代わりに、可変構造型ストレージデバイスにより、顧客は顧客のシステムに合うようにストレージデバイスを調整することができ、メンテナンスとアップグレード工程を単純化することができる。
可変構造型ストレージデバイスが動作の最適化において、より柔軟性を提供し、顧客のカスタマイズを許容することができるとしても、いくつかの課題が残っている。
第1の課題は、再調整工程(recalibration process)が、ストレージデバイスのカスタマイズのための特性数の増大に伴い指数関数的に増加する結合型問題(combinatoryproblem)を引き起こすことである。言い換えれば、現在のアプローチ手法は、特性の選択のための体系的な構成を提供しない。例えば、もし顧客が三つの特性値を変化させた場合、顧客は特性の組み合わせが、ストレージデバイスの動作にどのような影響を与えるかを判断するのが困難な場合がある。
関連する課題は、顧客による特性の選択が、顧客が手動で特性を選択するソフトウェアユーザインターフェースを通じて行われるということである。体系的な構成方法や動作のガイドラインの結果がない状態での特性の手動選択は、基本的に試行錯誤の工程となる。
最後に、一般的な再構成工程は、ストレージメディアの性能の低下に起因するストレージデバイスの経時劣化効果を説明できない。そのような変化は、特定のユーザ環境のための特性の元の選択を意味のないものに変えてしまう可能性を有する。
したがって、アプリケーションによって求められるストレージリソースがソフトウェアによって定義されて自動的に提供されるソフトウェア−定義ストレージ(software−defined storage;SDS)のトレンドは、より柔軟で改良された再構成可能なストレージ工程を必要とするという問題がある。
米国特許第6,487,562号明細書 米国特許第7,568,037号明細書 米国特許第8,112,582号明細書
本発明は上記従来のストレージシステムにおける問題点に鑑みてなされたものであって、本発明の目的は、ユーザの要求ごとに異なるストレージデバイスを構成するために、ホストで構成ソフトウェアを修正する必要の無い再構成工程を提供することにある。
上記目的を達成するためになされた本発明によるストレージシステムを再構成するための方法は、少なくとも一つのプロセッサで実行する少なくとも一つのソフトウェア要素によって実行されるストレージシステムを再構成するための方法において、ストレージデバイスのためのユーザ要求情報を受信し、前記ユーザ要求情報から前記ストレージデバイスの特性セッティング及び、前記ストレージデバイスのデバイスプロファイルを自動に生成する段階と、前記ストレージデバイスを、独立した動作の特性を有する1つ又は複数の論理デバイスに自動に再構成するために、前記特性セッティングを使用する段階とを有することを特徴とする。
上記目的を達成するためになされた本発明による可変構造型ストレージシステムは、ホストから、ストレージデバイスのためのユーザ要求情報を受信し、前記ストレージデバイスのための前記ユーザ要求情報及びデバイスプロファイルから前記ストレージデバイスのための特性セッティングを自動に生成する構成変形要素と、前記ストレージデバイスにおいて、前記ホストから前記特性セッティングを受信し、前記ストレージデバイスを、独立した動作特性を有する1つ又は複数の論理デバイスに自動に再構成するために、前記特性セッティングを使用する構成要素とを含むことを特徴とする。
上記目的を達成するためになされた本発明による可変構造型ストレージデバイスは、メインストレージと、前記メインストレージに接続するプロセッサと、前記プロセッサにより実行されるソフトウェア要素とを含む可変構造型ストレージデバイスであって、前記プロセッサは、特性セッティングを含む少なくとも一つの構成コマンドを含むプランを受信し、デバイスプロファイルに基づいた前記プランにある前記特性セッティングの利用可能性及び適用可能性を判断し、前記プランが有効でない場合、前記プランを拒絶し、前記プランによって作られた如何なる変化をもロールバックさせ、前記特性セッティングの利用可能性及び適用可能性のすべてが真の場合に、前記プランを認証し、前記プランを実行し、前記デバイスプロファイルを更新し、前記実行されたプランをストレージ空間に関連させることによって、可変構造型ストレージデバイスに一つ又は複数の論理デバイスを生成するように構成されることを特徴とする。
上記目的を達成するためになされた本発明による実行可能なソフトウェア製品は、ストレージシステムを再構成するためのプログラム命令を含むコンピュータ読み取り可能ストレージ媒体に格納された実行可能なソフトウェア製品において、前記プログラム命令は、前記ストレージデバイスのためのユーザ要求情報を受信し、前記ユーザ要求情報から前記ストレージデバイスのための特性セッティング及び、前記ストレージデバイスのためのデバイスプロファイルを自動に生成することと、前記ストレージデバイスを、独立した動作の特性を有する1つ又は複数の論理デバイスに自動に再構成するために、前記特性セッティングを使用することとを特徴とする。
上記目的を達成するためになされた本発明によるホストは、メモリと、前記メモリに接続するプロセッサと、サービスレベルアグリーメント(SLA)のスペックを含むユーザ要求を受信し、デバイスプロファイルに基づいて前記SLAのスペックを特性セッティングに変換し、前記特性セッティングの最適の組み合わせを判断し、前記最適の組み合わせからの構成コマンドを含む複数のプランを生成し、ストレージデバイス及び前記ユーザ要求の性能及び状態を考慮する前記プランのうちの一つを選択するように構成されるプロセッサにより実行される第1ソフトウェア要素と、前記選択されたプランを受信し、構成チャネルを経て前記プランを可変構造型ストレージに伝送し、前記ストレージデバイスから応答を受信し、前記ストレージデバイスからの否定応答の場合に、前記プランを繰り返すように構成される前記プロセッサにより実行される第2ソフトウェア要素と、前記デバイスプロファイルを収集し、前記デバイスプロファイルを構成プランナに伝送し、前記ストレージデバイスで生成された一つ、又は複数の論理デバイスを監視し、前記すべてのユーザ要求が満足されるか否かを判断し、そしてSLA違反の場合に、前記デバイスプロファイルに基づいて前記プランを調整するために、前記構成プランナを通知するように構成される前記プロセッサにより実行される第3ソフトウェア要素とを含み、前記ストレージデバイスを再構成することを特徴とする。
本明細書で説明する方法及びシステムに応じて、例示的な実施形態は、ユーザの要求ごとに異なるストレージデバイスを構成するために、ホストで構成ソフトウェアを修正する必要性を除去する再構成工程(reconfiguration process)を提供する。例示的な実施形態は一般的な方法とは対照的に、それは、ホストでの構成ソフトウェアは、他のストレージデバイスをカスタマイズするために修正される必要がある。さらに、例示的な実施形態は、ユーザ要求情報を特性セッティングに自動に転換させるので、ユーザは特性の組み合わせを手動で選択する必要性が、ストレージデバイスを再構成する時に消滅するようになる。
本発明に係るストレージシステムを再構成するための方法、及びその可変構造型ストレージシステムと可変構造型ストレージデバイス並びに実行可能なソフトウェア製品及びホストによれば、ユーザの要求ごとに異なるストレージデバイスを構成するために、ホストで構成ソフトウェアを修正する必要の無い再構成可能なストレージシステムを提供することにより、顧客の要求特性が特性セッティングに自動的に変換されるため、ストレージデバイスの構成時に顧客が手動で特性値の選択を行う必要がなくなるという効果をもたらすものである。
本発明の実施形態による可変構造型ストレージシステムを示すブロック図である。 (A)は本発明の実施形態によるストレージシステムを再構成することを説明するためのフローチャートであり、(B)は本発明の実施形態によるストレージシステムを再構成することを説明するためのフローチャートである。 本発明の実施形態による可変構造型ストレージデバイスを構成するための工程を詳細に説明するためのフローチャートである。 本発明の実施形態によるプランを生成する構成プランナによって実行される変換工程を示すフローチャートである。 本発明の実施形態による可変構造型ストレージデバイスで、構成要素の処理工程を説明するためのフローチャートである。 本発明の実施形態による構成アドバイザーの実行工程を説明するためのフローチャートである。 本発明の実施形態による再構成可能なストレージシステムを示すブロック図である。
次に本発明に係るストレージシステムを再構成するための方法、及びその可変構造型ストレージシステムと可変構造型ストレージデバイス並びに実行可能なソフトウェア製品及びホストを実施するための形態の具体例を図面を参照しながら説明する。
しかし、本発明の実施形態は、様々な形態に変形でき、本発明の範囲が後述する実施例に限定されると解釈されてはならない。本発明の実施例は、本発明をより明確に説明するために提供するものである。
本明細書で使用する用語は、特定の実施を記述するための目的として用いるものであり、本発明の範囲を制限するためのものではない。本明細書で、単数として使われた用語は、それについての単数であることを示す明白な背景に関する言及がない限り、複数も含むものである。また、本明細書で使用する「包含する」という用語は、言及された特徴、領域、段階、動作、要素、及び/又は成分の存在を特定するものではあるが、1つまたはそれ以上の他の特徴、領域、段階、動作、要素、成分、及び/又はグループの存在または付加を除外するものではない。
本明細書で言及する「要素」又は「モジュール」などの用語は、特定の作業を実行するソフトウェア又はフィールドプログラマブルゲートアレイ(Field Programmable Gate Array;FPGA)又は特定用途向け集積回路(Application Specific Integrated Circuit;ASIC)のようなハードウェア要素を意味することができるがそれに限るものではない。要素又はモジュールは、独自のアドレス指定可能なストレージ媒体(addressable storage medium)中に一つ又は複数のプロセッサで実行するように、有利に構成することができる。したがって、実施形態によって、要素又はモジュールは、ソフトウェア要素、オブジェクト指向ソフトウェア要素、クラス要素及び作業要素、処理、機能、属性、プロシージャ、サブルーチン、プログラムコードのセグメント、ドライバ、ファームウェア、マイクロコード、回路網、データ、データベース、データ構造、テーブル、アレイ、及び変数のような要素を含むことができる。要素及び要素、又はモジュールのために提供される機能は、より少ない要素及び要素、又はモジュールとして組み合わせられるか、付加的な要素及び要素、又はモジュールとしてさらに分離することができる。
他の限定がない限り、本明細書で使用するあらゆる用語(技術的用語及び科学的用語)は、当業者に、通常よく知られた意味で用いる。また通常使われる辞書に定義されたような用語は、関連した技術分野を背景とする意味と同じ意味を有すると解釈されねばならず、別途の記載がない限り、理想的であるか、または過度に解釈されてはならない。
図1は、本発明の実施形態による可変構造型ストレージシステムを示すブロック図である。
一実施形態における図1のシステムはホスト100と可変構造型ストレージデバイス102を包含する。ホスト100の基本要素は、少なくとも一つのプロセッサ104と、メモリ106と、ホストコントローラ108とを含む。一実施形態において、可変構造型ストレージデバイス102の基本要素は、ストレージコントローラ111と、メインストレージ112と、少なくとも一つのプロセッサ114と、メモリ116とを含む。
メインストレージ112は、本来のストレージ機能を実現し、可変構造型ストレージデバイス102のためのストレージ空間を提供する。メインストレージ112は、(例えば、ソリッドステートドライブ(SSD)として実現する)フラッシュ、PCRAM、RRAM(登録商標)、STT−RAM、及びそれと類似の不揮発性メモリ、FLT(Flash Translation Layer)、ガベージコレクタ(Garbage Collector;GC)、及びそれと類似のストレージ管理ファームウェア(図示せず)を含むが、これらに限定されない。一つ又は複数の論理デバイス121は、メインストレージ112の一部分を占めるようにしても良い。論理デバイス121のために割り当てられる実際の物理的なストレージ空間は、空間効率性の要求に依存する。シンプロビジョニング(thin provisioning)を有する論理デバイスは、シックプロビジョニング(thick provisioning)を有する論理デバイスより少ない物理的な記憶領域を占める。
通常の動作の間、ホストコントローラ108は、読み出し/書き込み動作に関連するコマンド124を、ホスト100がメインストレージ112に格納されたコンテンツを処理するか、又は新しいコンテンツをメインストレージ112に格納するように許可するために、ストレージコントローラ111に出力する。ここで、ホスト100で行うコンテンツの処理には、イメージ及び文書の形態としてコンテンツを表示し、オーディオ及び/又はビデオの形態としてコンテンツを実行し、プロセッサ104のような機能的ユニットに、コンピュータプログラムのようなアプリケーションの形態としてコンテンツをインストールするか、又は実行することを含む。
ストレージコントローラ111は、ホストコントローラ108からコンテンツに関連するコマンドを受信し、受信したコマンドに応じて、メインストレージ112に格納されたコンテンツ126を制御する。例えば、受信したコマンドが読み出しコマンドである場合、ストレージコントローラ111は、メインストレージ112に格納されたコンテンツ126をホスト100に提供し、受信したコマンドが書き込みコマンドである場合、ストレージコントローラ111は、ホスト100から新しいコンテンツ126を受信し、受信したコンテンツをメインストレージ112に格納する。
さらに他の実施形態として、ホストコントローラ108及びストレージコントローラ111が分離された構成でも、ホストコントローラ108及びストレージコントローラ 111が、一つの集積したユニットのように実装しても良い。
上述のように、通常のストレージ装置が有する問題は、内蔵された知能(built−in intelligence)を有する固定されたデバイスであるという点である。その結果、顧客の要求のためのストレージデバイスをカスタマイズする工程は、多くのコスト及び時間を要する。
本発明の実施形態によれば、可変構造型ストレージデバイス102は、構成要素118、特性セット120、及びデバイスプロファイル122と共に提供される一方、ホスト100は、構成変形要素110と共に提供される。
一実施形態において、ホスト100の構成変形要素110は、可変構造型ストレージデバイス102の動作特性を説明するユーザ要求を受信し、可変構造型ストレージデバイス102の動作特性のための特性セッティングを定義する構成コマンド128に変換する。 一実施形態において、構成変形要素110の機能は、構成プランナ136と、構成アドバイザー138と、デバイスプログラマ140のような分離された要素により実行される。
結果的に、可変構造型ストレージデバイス102にある構成要素118は、構成コマンド128を受信し、構成コマンド128に対応する特性セッティングを実行し、これによって可変構造型ストレージデバイス102の動作特性を自動に構成する。その後、メインストレージ112がセッティングされた動作特性に基づいて駆動される間、ストレージコントローラ111は、コンテンツ126をホスト100に伝送するか、又はホスト100から受信する。
本発明の他の実施形態において、可変構造型ストレージデバイス102の動作の間、構成変形要素110は、可変構造型ストレージデバイス102の動作特性について可変構造型ストレージデバイス102からフィードバック130を受信することができ、フィードバック130に基づいて、構成コマンド128(結果的に特性セット)を調整する。
一実施形態において、構成変形要素110及び構成要素118は、ソフトウェア要素として実装する。他の実施形態として、要素は、ハードウェアとソフトウェアの組み合わせにより実装しても良い。構成変形要素110と構成要素118はそれぞれ単体の要素として示したが、各々の機能は、それより少ないか、又は多い数のモジュール/要素に結合することもある。例えば、一実施形態において、ストレージコントローラ111及びホストコントローラ108は、一つの集積した要素として、又は分離された要素としてホスト100に実装する。
また、ユーザ要求情報123は、ホスト100に入力されると示したが、他の実施形態では、可変構造型ストレージデバイス102が、ユーザ要求情報123を受信し、ユーザ要求情報123をホスト100に提供する。
本発明の実施形態による可変構造型ストレージシステムは、顧客から企業に至るまで、広い範囲のストレージマーケットに適用可能であり、これは、(デスクトップ、ラップトップ、ワークステーション、サーバ、及びこれらと同様のもののような)単一のスタンドアローン機器、ストレージアレイ、SDS、アプリケーションスペシフィックストレージ(application specific storage)、VM(Virtual Machine)、VDI(Virtual Desktop Infrastructure)、CDN(Content Distribution Network)、及びこれと類似の機器用のディスクに適用することができる。
例えば、一実施形態において、可変構造型ストレージデバイス102は、PCMCIA、CF(compact flash)(登録商標)、SM、SMC(smart media card)(登録商標)、メモリスティック(登録商標)、マルチメディアカード(MMC、RS−MMC、MMC−micro)、SDカード(SD、miniSD、microSD、SDHC)、UFS(universal flash storage)装置、及びこれと類似の機器を形成するための一つの半導体装置に集積することができる。
例えば、一実施形態において、メインストレージ112は、複数の不揮発性メモリチップ(すなわち、複数のフラッシュメモリ)で構成する。
他の実施形態によると、メインストレージ112は、フラッシュメモリチップの代わりに他のタイプの不揮発性メモリチップ(例えば、PRRAM、FRAM(登録商標)、MRAMなど)で構成する。代わりに、メインストレージ112は、揮発性メモリ(すなわち、DRAM又はSRAM)で形成しても良く、二つ以上の種類のメモリが混在した形態を有しても良い。
図2(A)及び図2(B)は、本発明の実施形態によるストレージシステムを再構成することを説明するためのフローチャートである。
図2(A)は、ユーザの要求ごとに可変構造型ストレージデバイスを再構成するための構成工程を示すフローチャートであり、図2(B)は、可変構造型ストレージシステムの動作の間における可変構造型ストレージデバイス102の設定(configuring)工程を示すフローチャートである。
図2(A)を参照すると、工程は、構成変形要素110によって、ストレージデバイスのためのユーザ要求情報123を受信し、ユーザ要求情報から、ストレージデバイスのための特性セッティング及びストレージデバイスのためのデバイスプロファイルを自動に生成することで、始まる(段階S200)。その後、構成要素118は、ストレージデバイスを独立した動作特性を有する1つ又は複数の論理デバイス121の中に自動に再構成するための特性セッティングを使用する(段階S202)。
図2(B)は、可変構造型ストレージシステムの動作の間における可変構造型ストレージデバイス102の設定工程を説明する。この実施形態において、構成変形要素110は、ストレージデバイス及び論理デバイスのうちの少なくとも一つのランタイム性能データ134についてストレージデバイスからフィードバック130を受信する(段階S204)。 ランタイム性能データがユーザ要求情報を満足させないとの判断に応答して、構成変形要素110は、ユーザ要求情報を満足させるために、1つ又は複数の論理デバイスの構成を動的に調整する(段階S206)。
可変構造型ストレージシステムの第1の利点は、例示的な実施形態において、ストレージデバイスの特異性及び再構成の複雑さを抽出することができるので、新しい可変構造型デバイス上の構成変形要素110のストレージ管理(つまり、ユーザソフトウェア)を簡素化することができるということである。
第2の利点は、ユーザソフトウェアは、ユーザの要求ごとに可変構造型ストレージデバイスから自身の論理デバイスを動的に定義して生成することができるので、新しい可変構造型ストレージデバイスを使用するユーザソフトウェアは、ストレージデバイスのモデルに関係なく、事実上一定に留まることになるということである。
再び図1を参照すると、本発明の他の実施形態によれば、ユーザ要求情報123は、他の特性のための実際の値とは対照的に、可変構造型ストレージデバイス102の動作特性のハイレベルディスクリプション(high−level description)を含む。一実施形態において、ハイレベルディスクリプションは、可変構造型ストレージデバイス102のためのSLA(service level agreement)を含む。SLAは、顧客と生産者と間で共通に締結したサービス契約である。
他の実施形態において、ハイレベルディスクリプションは、サービス品質(Quality of Service;QoS)要求をさらに含み、それは一実施形態では、SLAの一部分となる。
しかし、他の実施形態では、もしユーザが性能の面のみに関心がある場合、QoSはSLAと分離することができる。実施形態において、QoSは、ユーザの詳細な性能の期待(expectation)を定義するレイテンシ(latency)、IOPS(input/output operations per second)、バンド幅(bandwidth)、ジッタ、WAF/RAFに対するストレージデバイスの性能特性を含む。例えば、仮想のデバイスが生成された後、新しい論理デバイスを生成することよりQoSを調整することが望ましい場合がある。本明細書で説明するように、SLA及びQoSを使用して、可変構造型ストレージデバイス102を自動的に構成することにより、構成を定量的に実行することが可能となる。
一実施形態において、SLAは、XMLフォーマットに表現される属性の任意の組み合わせのためのスペックを含むことができる。属性は、レイテンシ、IOPSのようなストレージデバイスの性能特性、又は容量、アドレッシングモード、保護のような非−性能特性であり得る。
コミットメントスペックは、動作のQoS充足率の平均パーセンテージである。反応スペックは、ホストがQoS違反の場合に期待することである。容量スペックは、データ空間及び空間節約の量を明示するものである。容量スペックは、デバイスに割り当てられた実際のストレージ空間ではなく、ユーザ空間にあるデータの量を示す。この場合に、容量スペックは、これを実現するために、デバイスが実際に使用するメカニズムとは独立なものである。しかし、必要なのは、ユーザーレベルで格納できるデータ量を保証することである。
例えば、シックプロビジョニング技術を採用したデバイスは、リクエストが許可された時、実際の領域を割り当てる。一方、シンプロビジョニング技術を採用したデバイスは、領域を予め割り当てないようにすることができる。同様に、オーバーコミットメント、圧縮、重複排除(deduplication)のような省スペースの特性を備えたデバイスが割り当てる実際の物理的なスペースは、ユーザが要請するデータ領域に比べて非常に小さい。
アドレッシングモードスペックは、バイトアドレサブル(byte−addressable)、ワードアドレサブル(word−addressable)、及び/又はブロックアドレサブル(block−addressable)などの機能を有するストレージにデータを位置付ける方法を明示するものである。
例えば、PCIe(Peripheral Component Interconnect express)デバイスは、ブロックアドレサブルするだけでなく、バイトアドレサブルすることができる。同様に、単一のアドレス空間で駆動するシステムは、ブロックアドレサブルデバイス上でバイトアドレッシング(byte addressing)をエミュレートすることができる。QoSは特定のアドレッシングモードのコンテキストで解釈される。
保護スペックは、セキュリティ及びアクセスの制御を明示するものである。デバイスは、暗号化をサポートすることができ、ユーザは、セキュリティの要求ごとに特定の暗号化アルゴリズム(例えば、128ビットのRSA、256AES)を使用する。ユーザは、データを削除した場合、回復不能なユーザの危険を伴うデータの安全な削除を必要とすることもある。さらに、ユーザは、デバイスレベルでリードオンリ、ライタブル、ライトワンスのようなアクセス制御を定義することができる。例えば、システムのリカバリイメージは、ライトワンス論理デバイスに格納する。
性能スペックは、ユーザがデバイスのための詳細な性能要求を有することができるようにレイテンシ、スループット、バンド幅及び/又はIOPSの測定を明示するものである。
例えば、ビデオオンデマンドサーバにあるビデオチップを格納するために使用するストレージデバイスは、高いシーケンシャルな読み出し性能を必要とする。一方、メタデータを管理するために使用するストレージデバイスは、高いIOPS(そして低レイテンシ)を必要とする。
例示的なSLAは、以下のサンプル1〜サンプル3に示すような内容を含む。
[サンプル1]
Figure 0006694665
上述の例に示す、バイトアドレサブルである100GBのデバイスはユーザの興味を引くものである。さらに、4KBページ読み出しレイテンシは10msより小さくなければならず、4KB書き込みレイテンシも10msより小さなければならない。最後に、デバイスのIOPSは、少なくとも1Kでなければならない。
[サンプル2]
Figure 0006694665
[サンプル3]
Figure 0006694665
可変構造型ストレージデバイス102は、特性セット120に関連して複数の動作特性をさらに含む。一実施形態において、特性セット120は、消耗的ではない、ハードウェア動作(例えば、クロック周波数、オーバープロビジョニング比率(over−provisioning ratio))、コマンドスケジュールポリシー(例えば、リードオーバーライト、ランダムアクセスオーバーシーケンシャルアクセス、スモールリクエストオーバービッグリクエスト、スケジューリングアルゴリズム、リードオーバーGC)、論理的デバイス特性(例えば、容量、キュー(queue)長さ、タイムアウト制御、保護)、論理的アドレスを物理的アドレスにマッピングするポリシー(例えば、ページマッピング、ブロックマッピング、ハイブリッドマッピング)、バックグラウンド作業実行ポリシー(例えば、ガベージコレクションアルゴリズム、ガベージコレクションの周期及び頻度、バックグラウンドTRIM、バックグラウンドコンパクション)などを含む。
構成変形要素110は、ユーザ要求情報123を受信し、特定の特性の変数値を明示するだけでなく、ユーザ要求情報123を、特性セット120で特定の特性をイネーブル/ディセーブルするために使用する特性セットに変換する。
特性の効果は、すべての論理デバイス121に対して全体的(global)であるか、又は特定の論理デバイスに対して局所的(local)である。例えば、デバイスの動作周波数の調整は、全体的であり、論理デバイスのキュー長さの増加がデバイスに限定されるのに対しすべての論理デバイス121の動作を変化させるものである。
本発明の実施形態によれば、構成変形要素110は、ユーザ要求情報123及びデバイスプロファイル122の両方に基づいて、特性セッティングを発生させる。一実施形態において、デバイスプロファイル122は、ストレージデバイス、性能モデル132、及びランタイム性能データ134に特定の性能範囲131(例えば、調整可能なクロック周波数の範囲)を含む。ランタイム性能データ134は、動作の間デバイスによって測定されるランタイム性能統計を含む。
本発明の一実施形態によれば、性能モデル132は、生成されて、デバイス性能と関連する可変構造型ストレージデバイス102の特性に関連付けられる。
一実施形態において、性能モデル132は、個別特性及び/又は特性セッティングの組み合わせのための数学的モデル(例えば、線形、多項式、対数、指数又はステップ関数)、及び/又はQoSを測定するために、制御された環境下で測定した理想的な性能データを含む。
表1は、例示的な特性セット120及び関連する性能モデルを示す。本発明でのモデルは、例示的であり、ベンダー及びデバイスに依存する。
Figure 0006694665
一実施形態において、デバイスの性能特性を変化させることができる如何なる特性も、もしモデルが実現不可能であれば、関連する性能モデル132及び/又は理想的な性能基準表(performance reference table)を有する。
一実施形態において、構成変形要素110、又は構成要素118のうちのいずれか一つはユーザ要求情報123が可変構造型ストレージデバイス102によって満たすことができるか否かを判断するためのデバイスプロファイル122及び/又は性能モデル132を使用する。
例えば、ユーザは、物理デバイスのクロックレートを増加させることにより、動作時間の応答時間を改善することができる。しかし、デバイスの調整可能なクロックレートは制限されている。もし、デバイスがすでに最大のクロックレートに達した場合、クロックの調整特性は、レイテンシ時間を改善するために使用される。同様に、もしクロックレートへのIOPSが特定のサイズで線形関数としてモデリングされれば、例えば、クロックレートがどの程度増加できるかを判断することができる。
一実施形態において、性能モデル132を含むデバイスプロファイル122は、例えば、可変構造型ストレージデバイス102によって構成変形要素110として報告されることによって、構成変形要素110に利用可能に作られる。
他の実施形態において、デバイスプロファイル122は、ホスト100に格納されるか、又はホスト100及び/又は可変構造型ストレージデバイス102によってアクセス可能なロケーション(location)に格納される。
他の実施形態において、たとえ性能モデル132が、デバイスプロファイル122の一部分として格納されるものとして示されたとしても、性能モデル132は、デバイスプロファイル122から分離して格納される。
もし可変構造型ストレージデバイス102のベンダーがホスト100にデバイスプロファイル122を提示することができれば、ホスト100にある構成変形要素110は、性能範囲131、性能モデル132、ランタイム性能データ134に影響を与えられる。そうでなければ、構成変形要素110は、可変構造型ストレージデバイス102の各々のタイプのためのそれ自身のデバイスプロファイル122へのアクセスが必要となる。
一実施形態において、デバイスプロファイル122のランタイム性能データ134は、ATAスペックにあるSMART(Self−Monitoring、Analysis and Reporting Technology)のような標準インターフェースを通じて利用可能な典型的な性能指数(performance indices)、最小/最大/平均読み出し/書き込みレイテンシ、最小/最大/平均キュー長さ及び待機時間、最小/最大/平均内部IOPS、読み出し/書き込み増幅比、ガベージコレクション時間、タイムアウト回数、及びこれに類似するベンダー固有のランタイム性能指数を含む。
一実施形態において、ランタイム性能データ134の一部分として格納される他の情報は、デバイス状態、デバイスバックグラウンド作業状態、ホストバックグラウンド作業状態を含むが、これに限定されない。
デバイス状態は、可変構造型ストレージデバイス102のハードウェア及びソフトウェアに対する状態情報を含む。これは、ストレージ媒体の劣化(ウェア−レベル)の程度、スーパーキャパシタの状態、デバイス温度、オーバープロビジョニングの割合(又は量)、及びこれらと類似の項目のような全体的な情報だけでなく、デバイスのサイズ、デバイスの容量、デバイスの利用、SLA、特性セット、特性セッティング、データの断片化(fragmentation)、タイムアウト、保護、アドレッシングモード、などのような局所的な情報を含む。
デバイスバックグラウンド作業状態は、デバイスポリシーによって判断されるデバイスバックグラウンド作業の状態を含むが、バックグラウンドTRIM、バックグラウンドガベージコレクション、バックグラウンド圧縮などのようにデバイスの外部に見えない。
ホストバックグラウンド作業状態は、ATAスペックにあるSMARTセルフテストスイート(self−test suite)のオフラインテストのようなホストによってトリガされるデバイスバックグラウンド作業の状態を含む。
図1に示したホスト100の構成変形要素110は、可変構造型ストレージデバイス102の構成を変更するためSLAにあるハイレベルユーザQoS要求をデバイス−固有の構成コマンドに変換する。構成変形要素110は、デバイス−固有の特性を持った可変構造型ストレージデバイス102のユーザ要求情報123と動作/ポリシーの間の関係を解釈する。
例えば、ストレージデバイスは、特定のIOPSの要求を満足させるために、大きいキューの深さを備えたキューを必要とする。同様に、低コストのデバイスは、短い読み出しレイテンシを達成するために、大きいキューの深さと読み出し優先順位を有するキューを必要とする。一方、高価のデバイスが、読み出し優先順位なしで同様なレイテンシを達成する。
図3は、本発明の実施形態による可変構造型ストレージデバイスを構成するための工程を詳細に説明するためのフローチャートである。
一実施形態において、ホスト100で実行される工程は、構成変形要素110によって実行され、可変構造型ストレージデバイス102で実行される工程は、構成要素118によって実行される。
ホスト100で実行される工程は、デバイスプロファイル122及びSLAを受信することによって、ホスト100から始められる(段階S300)。構成変形要素110はSLAの各々のQoS要求のために、構成可能な特性セッティングを可変構造型ストレージデバイス102のデバイスプロファイル122に基づいて判断し(段階S302)、特性セッティングの可能な組み合わせをSLAのために判断する(段階S304)(QoS)。可変構造型ストレージデバイス102のためのデバイスプロファイル122に基づいて、特性セッティングの組み合わせについて優先順位を付与する(段階S306)。特性セッティングの各々の組み合わせのために、プランとして一セットの構成コマンドを生成する(段階S308)。プラン又はプランの各々の構成コマンドを、トランザクションIDと共に可変構造型ストレージデバイス102に伝送する(段階S310)。プランを生成している間レースの場合にデバイスの状態が変化し得るので、プランは、デバイスにある構成要素によって拒絶される。したがって、ホスト100は、プランのうちの一つが成功するか又はすべてが失敗となるまでプランを繰り返す(段階S312)。
可変構造型ストレージデバイス102で実行される工程は、ホストからプランを受信して、可変構造型ストレージデバイス102から始められる(段階S320)。構成要素118は、デバイスプロファイル122に基づいて、すべての特性の利用可能性及び適用可能性を判断することによってプランを認証する(段階S322)。プランのすべての特性を、詳細にセッティングし、そして失敗した場合に、すべての変化を、ロールバックする(段階S324)。一つ又は複数の論理デバイスを、特性セッティングに基づいて生成する(段階S326)。プランの構成ごとにデバイスプロファイル122を、更新する(段階S328)。そして、完了の応答をホスト100に伝送する(段階S330)。
可変構造型ストレージデバイス102の動作の間、プランをデバイスプロファイル、特に実時間の性能統計と比較する(段階S332)。デバイスプロファイルが、プランを満足させない時、フィードバック130として、通知をホストに伝送する。その後、構成アドバイザー138は、適切な調整をするよう構成をガイドするためフィードバックを使用する(図6)。
以下、可変構造型ストレージデバイス102にある構成要素118だけではなく、図1に示した構成変形要素110をなす3つの要素、すなわち構成プランナ136、構成アドバイザー138、及びデバイスプログラマ140について詳細に説明する。
構成プランナ136は、ユーザ要求情報123(例えば、SLA)を受信し、デバイスがデバイスプロファイル122(例えば、ランタイム性能データ134)に明示されることによって支援するポリシーに基づいた構成コマンド128を含む可能な構成プランを分析して、勧告として構成プランを生成する。特に、構成プランナ136は、デバイスプロファイル122に基づいてSLAスペックを特性セッティングに変換する変換アルゴリズムを含み、転換された特性セッティングを脱して最適の組み合わせを判断し、そして最適の組み合わせから構成コマンド128を含むプランを生成する。
例えば、ストレージデバイスが、次のようなデバイスプロファイルを持つと仮定すれば、リードオーバーライトの優先順位を決めることは、読み出しレイテンシを約z%向上させ、キューの深さの増加は、IOPSをw%比率まで向上させる一方、暗号化特性と共にレイテンシは、x%増加し、IOPSはy%減少する。もし、ユーザが暗号化オプションと共に同じ性能まで達成することを所望すれば、構成プランナ136は、読み出し優先順位をイネーブルし、そして(又は)暗号化に起因するレイテンシの増加を相殺するためのキューの深さを増加させる必要がある。
構成プランナ136は、ユーザ要求から、複数の構成プランを生成することができ、可変構造型ストレージデバイス102と、ユーザ要求の性能及び状態を考慮する最適のプランを選択する。構成プランナ136は、可変構造型ストレージデバイスの各々の特性、特性の間の相関関係及び反相関関係、及び性能モデル132を評価し、構成プランを生成する複数のプランニングアルゴリズムと関連する複数の性能モデル132を有する。
もし可変構造型ストレージデバイス102が、性能プロファイル(デバイスプロファイル122)へのアクセスを提供すれば、構成プランナ136は、性能プロファイル(デバイスプロファイル122)を可変構造型ストレージデバイス102と共有し、そうでなければ、ホスト100は、自身の性能プロファイルを有する。
一旦、可変構造型ストレージデバイス102にある構成要素118がプランを受信すると、構成要素118は、プランがデバイスのサポートできる容量を超過すれば、プランを拒絶する。 例えば、現在の性能特性をキャプチャする時に、もしデバイスが性能プロファイルを提供できないか、又はデバイスが何らかのディレイやレース(races)に直面すると、デバイスが提供する性能プロファイルは無効となる。この場合に、デバイスは、たとえ決定がそれの性能プロファイル122に基づいたとしても、プランを受け取れない。しかし、一実施形態において、構成要素118は、それ自身のリスクを伴ってプランを実行する。
構成プランは、構成コマンドのセットを含み、それらの各々は、可変構造型ストレージデバイス102が理解できる、予め定められたベンダー固有のコマンド又は標準コマンドである。
例えば、構成プランナ136は、二つのコマンドを伝送することが必要であり、一つは、リードオーバーライトの優先順位を付与するスケジュールポリシーのためのものであり、他の一つは、キューサイズを増加させるキュー特性のためのものである。選択的に、構成プランナ136は、全体のプランのためのコマンドをトランザクションIDと共に伝送する。可変構造型ストレージデバイス102のセッティング及び状態に依存して、構成要素118は、構成コマンド又はプランを移行するか、又はそうではなくてもよい。
図4は、プランを生成するための構成プランナ136によって実行される例示的な変換工程を説明するためのフローチャートである。工程は段階S300〜308に対応する。SLAを受信すると(段階S400)、解決するQoSの要求が更にあるか否かを判断する(段階S402)。要求が更にある場合、現在のQoS要求を満足させることができる特性セッティングの可能な組み合わせを確認する(段階S404)。この段階での決定は、デバイスに依存して変化するが、次の段階の探索空間を減らすことができる固定された情報(又は予め決められた知識)に基づいた一般的なガイドラインである。その後、特性セッティングの組み合わせが、性能プロファイルに基づいて、関連する特定のデバイスと共に現在のQoS要求を満足させることができるか否かを判断する(段階S406)。もしQoS要求を満足させることができなければ、特性セッティングの次の組み合わせを得る(段階S408)。その後フェイルの場合に試みるすべての可能な組み合わせを確認して組み合わせが空(empty)か否かを判断する(段階S410)。そして、組み合わせが空いている場合、エラーを発生する(段階S412)。もし組み合わせが空でいない場合、工程は、段階S406に戻り継続される。
もし特性セッティングの組み合わせが、現在のQoS要求を満たしていれば、特性セッティングの組み合わせが、このデバイスのすべてのSLA及びQoSのために予め選択された構成と共に組み合わせが可能か否かを判断する(段階S414)。再度、レースの場合に、デバイス性能の動的な変化により、組み合わせは動作しない。そのような場合、特性セッティングのための構成コマンドを、プランに加え(段階S416)、SLAでの次の未解決のQoSを得る(段階S418)。これ以上のQoS要求工程がないと判断した場合(段階S402)、構成プランナ136は、可変構造型ストレージデバイス102にある構成要素118にプランを出力する(段階S420)。
再び図1を参照すれば、デバイスプログラマ140は、プラン及びそれに合わせてストレージデバイスの構成のための構成コマンドチャネルを横切って、構成プランナ136によって選択されたプランを受信し、可変構造型ストレージデバイス102にプランを伝送する。デバイスプログラマ140は、プランの実行について可変構造型ストレージデバイスから応答を受信する。
構成プランナ136は、(プランクオリティにより命令を受けるような)複数のプランを指示するので、プランが可変構造型ストレージデバイス102と共に、実際に動作することが発見されるまで、デバイスプログラマ140は、可変構造型ストレージデバイス102からの否定応答の場合にプランを繰り返す必要がある。もしデバイスプログラマ140が(例えば、構成要素118からの拒絶に起因する)プランのプログラミングの間どのようなエラーを経験しても、デバイスプログラマ140は、必要に応じて、プランによって作成された変化をロールバックする。
デバイスの性能プロファイル及び状態を監視して収集する構成コマンド及びフィードバックチャネルを実行する構成コマンドチャンネルは、SATA、SAS、PCIe、及びNVMeのような標準ホストインターフェースである。又はこの目的のために考案された特別なインターフェースである。
図5は、本発明の実施形態による可変構造型ストレージデバイスで、構成要素の処理工程を説明するためのフローチャートである。
この工程は、図2(A)の段階S202に対応し、図3の段階S320〜328だけではなく、ここでも、可変構造型ストレージデバイスは、ホスト100からの特性セッティングを使用するように構成する。
工程は、構成要素118が特性セッティングを含む少なくとも一つの構成コマンド128を含むホスト100のデバイスプログラマ140からプランを受信する時に、開始する(段階S500)。
構成要素118は、まずデバイスプロファイルに基づいてプランにある特性セッティングの利用可能性及び適用可能性を判断する(段階S502)。利用可能性の判断は、ストレージデバイスが、デバイスプロファイル122へのプランを比較することにより、特性セッティングをサポートしているか否かを判断することを含む。適用可能性の判断は、デバイスプロファイル122に基づいて、特性の調整の尺度を測定することを含み、デバイスプロファイル122に基づいて、適用可能な境界特性の範囲内で、特性の調整を制御することによる。
プランは、特性セッティングの利用可能性及び適用可能性の全てが真(true)の時、認証される(段階S504)。構成要素118は、プランを実行し、(段階S506)、一実施形態において、個々の構成コマンドを実行することを含むプランを実行する。
プランが有効でない場合(段階S504)、構成要素118は、プランを拒絶してプランと関連して作成されたいずれの変化もロールバックさせ、通知(例えば、エラー信号)を構成変形要素110に伝送する(段階S508)。
例えば、もし現在のクロックサイクルが最大のクロック率として予めセッティングされた場合、クロックのスピードを増加させるため試みる如何なるプランも拒絶する。ロールバックはレースの場合に、可変構造型ストレージデバイスの性能プロファイルにおける不正確の源になる。
もしプランの実行が成功すると(段階S510)、1つ又は複数の論理デバイスを、ストレージ空間と共に関連したプラン(つまり、実行された構成コマンド)により可変構造型ストレージデバイスに生成する(段階S512)。最後に、構成要素118は、デバイスプロファイル122を更新する(段階S514)。
例示的な実施形態によって、物理的なストレージデバイスは、複数の論理デバイスをホストすることができ、そして各々の論理デバイス121は、独立して構成でき、それ自身の特徴を有する。したがって、例示的な実施形態の可変構造型ストレージシステムは、QoSを意識した論理デバイス121を生成する。論理デバイス121は、デバイス−固有の特性を持った(一般的なOSパーティションのような)スペースパーティション、(NVMe標準のような)マルチキュー、(Cloud PaaSのような)マルチテナント(multi−tenancy)、及び(SR−IOVのような)仮想化等のような互いに異なる技術に応答する。
例えば、ユーザが単一のデバイスに1つは、リードインテンシブワークロードのためのものであり、残りの1つはライトインテンシブワークロードのためのものである2つの100GBの格納領域を要すると仮定する。マルチキューを備えたスペースパーティション機能に基づいた簡単な可変構造型ストレージデバイスによって、ユーザはデバイスに2つのパーティション(例えば、/dev/sda[1、2])を生成することができ、読み出しのための論理デバイスとして、1つのキューに関連する1つのパーティション(例えば、/dev/sda1)と、書き込みのための論理デバイスとして、別のキューに関連する他のパーティション(例えば、/dev/sda2)を構成する。その後、デバイスは書き込みに起因する性能の低下のない読み出しのため論理デバイスを通じて、持続された読み出し性能を伝達する。一般的なストレージデバイスは書き込みに起因するガベージコレクションによって、このシナリオを有する長いレイテンシを示す。
再び図1を参照すれば、構成アドバイザー138は、フィードバックチャネル(図示せず)を通じてフィードバック130として、デバイスプロファイル122を受信する。データ伝送のオーバーヘッドを減らすために、ホストに伝送される実際の情報は変わることがある。構成アドバイザー138は、一つ又はそれ以上の物理的ストレージデバイスを横切って一つ又はそれ以上の論理デバイスを監視し、すべてのユーザ要求情報123が満たされているか否かを判断する。また、構成アドバイザー138は、SLA違反の場合に、デバイスプロファイルに基づいてプランを調整するために構成プランナ136を知らせる。
図6は、本発明の実施形態による構成アドバイザーの実行工程を説明するためのフローチャートである。
構成アドバイザー138は、構成要素118がフィードバック130として、論理デバイス121のランタイム性能データ134を含む、デバイスプロファイル122を収集して伝送するのを待つ(段階S600)。
一実施形態において、ホスト100は、可変構造型ストレージデバイス102でキャプチャされた入力/出力トレースを伝送するための標準インターフェースを含む一つ又は複数のフィードバックチャネルを含む。
他の実施形態において、フィードバックチャネルは、構成アドバイザー138が可変構造型ストレージデバイス102の性能を監視することを許容する特別なインターフェースを含む。
デバイスプロファイル122を受信することに応答して、構成アドバイザー138は、フィードバック130をユーザ要求情報123と比較することにより、可変構造型ストレージデバイス102の性能を監視する(段階S602)。もし構成アドバイザー138が論理デバイスのランタイム性能データ134の内のいずれも、ユーザ要求情報123に違反していないと判断した場合(段階S604)、可変構造型ストレージデバイス102のプログラミングは完了する(段階S606)。もし論理デバイス121のうちのいずれかがユーザ要求情報123を満足させるのに失敗した場合、構成アドバイザー138は、論理デバイスのための新しい構成プランを提供するために構成プランナ136を(例えば、論理デバイスに対応するランタイム性能データ134を提供することによって)通知する(段階S608)。そうすることにより、可変構造型ストレージデバイス102のセッティング及び特徴を動的に調整する。
一実施形態において、違反が感知される時、通知は、単に関心のある論理デバイスの性能を含むことができるので、構成アドバイザー138は、新しいプランを生成するための最新の、そして総合的な性能データを検索するために、可変構造型ストレージデバイス102からデバイスプロファイル122を要請する。
一実施形態において、可変構造型ストレージデバイス102は、周期的に、又はランタイム性能データ134の状態が変化するたびに、デバイスプロファイル122を能動的に報告する。例えば、すべての読み出し要求がXミリ秒以内に提供されなければならないユーザ要請が提供されると、構成アドバイザー138が読み出し動作のサービス時間を記録する(log)か、又はサービス時間がXミリ秒を超えた時に、レッドフラッグをセッティングするように指示する。可変構造型ストレージデバイス102から伝送されるデバイスプロファイル122を待つことより、ホスト100は、周期的に又は要請によって、可変構造型ストレージデバイス102からデバイスプロファイル122を要請する。
一実施形態において、構成アドバイザー138は、以下のようなイベント時、即ち、新しいユーザ要求情報123が提出される時、存在するユーザ要求情報123が変化する時、ランタイム性能データ134が更新される時、(タイムアウトに起因する)ランタイム性能データ134が要求される時はいつでも、そして/又は可変構造型ストレージデバイス102が、ユーザ要求情報123を満足できない時にはいつでも、活性化される。
図7は、本発明の実施形態による再構成可能なストレージシステムを示すブロック図である。
本実施形態において、単一の構成変形要素700は、単一の物理的な可変構造型ストレージデバイス702の複数の論理デバイスを管理することができるだけでなく、それらの各々が複数の論理デバイスを含むことができる複数の他の物理的な可変構造型ストレージデバイス(704、706、708)を管理することができることを示す。
可変構造型ストレージシステムのための方法及びシステムを説明した。本発明は、示される実施形態に基づいて説明しており、様々な実施形態があることができ、どのような変形例も、本発明の思想及び範囲内にある。例えば、例示的な実施形態は、プログラムの指示を含むハードウェア、ソフトウェア、コンピュータリーダブル媒体、又はそれらの組み合わせを通じて実現することができる。本発明の実施形態によるソフトウェアは、メモリ、ハードディスク、又はCD/DVD−ROMのようなコンピュータリーダブル媒体の形態で格納することができ、また、プロセッサによって実行され得る。
尚、本発明は上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
100 ホスト
102 可変構造型ストレージデバイス
104、114 プロセッサ
106、116 メモリ
108 ホストコントローラ
110 構成変形要素
111 ストレージコントローラ
112 メインストレージ
118 構成要素
120 特性セット
121 論理デバイス
122 デバイスプロファイル
123 ユーザ要求情報
124 コマンド
126 コンテンツ
128 構成コマンド
130 フィードバック
131 性能範囲
132 性能モデル
134 ランタイム性能データ
136 構成プランナ
138 構成アドバイザー
140 デバイスプログラマ

Claims (28)

  1. 少なくとも一つのプロセッサによって実行される少なくとも一つのソフトウェア要素による、ホストによりストレージシステムを再構成するための方法であって、
    前記ホストが、ストレージデバイスのためのユーザ要求情報を受信し、前記ユーザ要求情報を基に前記ストレージデバイスの動作特性ための特性セッティングを定義する構成コマンドに変換して前記ストレージデバイスのデバイスプロファイルを自動的に生成する段階と、
    前記ストレージデバイスが、前記ホストから前記構成コマンドを受信し、前記構成コマンドに対応する特性セッティングを実行して独立した1つ又は複数の論理デバイスとして動作特性を自動的に再構成する段階と、を有し、
    前記ストレージデバイスのデバイスプロファイルは、ストレージデバイス、性能モデル、及びランタイム性能データに対する特定の性能範囲を含み、
    前記ホストが、前記ストレージデバイス及び論理デバイスのうちの少なくとも1つのランタイム性能データに関するフィードバックを前記ストレージデバイスから受信する段階と、
    前記ホストが、前記ランタイム性能データが前記ユーザ要求情報を満たさないとの判断に応答して、前記ユーザ要求情報を満たすために、前記1つ又は複数の論理デバイスの構成を動的に調整する段階と、を更に含むことを特徴とするストレージシステムを再構成するための方法。
  2. 前記ユーザ要求情報は、前記ストレージデバイスの動作特性のハイレベルディスクリプションを含むことを特徴とする請求項1に記載のストレージシステムを再構成するための方法。
  3. 前記ハイレベルディスクリプションは、サービスレベルアグリーメント(SLA)及びサービス品質(QoS)の要求のうちの少なくとも一つを含むことを特徴とする請求項2に記載のストレージシステムを再構成するための方法。
  4. 前記SLAは、容量、アドレッシングモード、保護、及び性能を含む属性の任意の組み合わせの仕様を更に含むことを特徴とする請求項3に記載のストレージシステムを再構成するための方法。
  5. 前記ホストが、前記ユーザ要求情報の仕様が前記ストレージデバイスによって満たされるか否かを判断するために、前記ストレージデバイスのデバイスプロファイルを使用する段階を更に含むことを特徴とする請求項1に記載のストレージシステムを再構成するための方法。
  6. 前記ストレージデバイスのデバイスプロファイルは、デバイス性能と相関関係を有する前記ストレージデバイスの動作特性に関する性能モデルを含むことを特徴とする請求項5に記載のストレージシステムを再構成するための方法。
  7. 前記ストレージデバイスが、前記ストレージデバイスのデバイスプロファイルを格納し、前記ホストで利用可能な前記ストレージデバイスのデバイスプロファイルを作成する段階を更に含むことを特徴とする請求項5に記載のストレージシステムを再構成するための方法。
  8. 前記ホスト、及び前記ホスト又は前記ストレージデバイスによりアクセス可能なロケーション(location)のうちの少なくとも一つに前記ストレージデバイスのデバイスプロファイルを格納する段階を更に含むことを特徴とする請求項5に記載のストレージシステムを再構成するための方法。
  9. 前記ストレージデバイスのデバイスプロファイルを自動的に生成する段階は、前記ストレージデバイスの特定の動作特性をイネーブルさせるか又はディセーブルさせるため、及び前記特定の動作特性のための値を明示するために前記特性セッティングを使用する段階を更に含み、
    前記特定の動作特性の影響は、全ての論理デバイスに全体的であるか又は特定の論理デバイスに局所的であることを特徴とする請求項1に記載のストレージシステムを再構成するための方法。
  10. 前記ランタイム性能データは、
    セルフモニタリング分析及びレポーティング技術(SMART)インターフェースを通じて利用可能な性能指数と、
    最小(最大又は平均)読み出し(又は書き込み)レイテンシ、最小(最大又は平均)キューの長さ及び待機時間、最小(最大又は平均)内部IOPS、読み出し(又は書き込み)増幅比、ガベージコレクション時間、並びにタイムアウト回数を含むベンダー固有のランタイム性能指数と、を含むことを特徴とする請求項1に記載のストレージシステムを再構成するための方法。
  11. 前記ランタイム性能データは、デバイス状態、デバイスバックグラウンド作業状態、ホストバックグラウンド作業状態を更に含むことを特徴とする請求項10に記載のストレージシステムを再構成するための方法。
  12. ストレージデバイスのためのユーザ要求情報を受信し、前記ユーザ要求情報を基に前記ストレージデバイスの動作特性のための特性セッティングを定義する構成コマンドに変換して前記ストレージデバイスのデバイスプロファイルを自動的に生成する、ホストの構成変形要素と、
    前記ホストから前記構成コマンドを受信し、前記構成コマンドに対応する特性セッティングを実行して独立した1つ又は複数の論理デバイスとして動作特性を自動的に再構成する、前記ストレージデバイスの構成要素と、を備え、
    前記ストレージデバイスのデバイスプロファイルは、ストレージデバイス、性能モデル、及びランタイム性能データに対する特定の性能範囲を含み、
    前記構成変形要素は、
    前記ストレージデバイス及び論理デバイスのうちの少なくとも1つのランタイム性能データに関するフィードバックを前記ストレージデバイスから受信し、
    前記ランタイム性能データが前記ユーザ要求情報を満たさないとの判断に応答して、前記ユーザ要求情報を満たすために、前記1つ又は複数の論理デバイスの構成を動的に調整することを特徴とする可変構造型ストレージシステム。
  13. 前記ユーザ要求情報は、前記ストレージデバイスの動作特性のハイレベルディスクリプションを含むことを特徴とする請求項12に記載の可変構造型ストレージシステム。
  14. 前記ハイレベルディスクリプションは、サービスレベルアグリーメント(SLA)及びサービス品質(QoS)の要求のうちの少なくとも一つを含むことを特徴とする請求項13に記載の可変構造型ストレージシステム。
  15. 前記SLAは、容量、アドレッシングモード、保護、及び性能を含む属性の任意の組み合わせの仕様を更に含むことを特徴とする請求項14に記載の可変構造型ストレージシステム。
  16. 前記構成変形要素は、前記ユーザ要求情報の仕様が前記ストレージデバイスによって満たされるか否かを判断するために、前記ストレージデバイスのデバイスプロファイルを使用することを特徴とする請求項12に記載の可変構造型ストレージシステム。
  17. 前記ストレージデバイスのデバイスプロファイルは、デバイス性能と相関関係を有する前記ストレージデバイスの動作特性に関する性能モデルを含むことを特徴とする請求項16に記載の可変構造型ストレージシステム。
  18. 前記ストレージデバイスのデバイスプロファイルは、前記ストレージデバイスに格納され、前記ホストで利用可能になるように作成されることを特徴とする請求項16に記載の可変構造型ストレージシステム。
  19. 前記ストレージデバイスのデバイスプロファイルは、前記ホスト、及び前記ホスト又は前記ストレージデバイスによってアクセス可能なロケーション(location)のうちの少なくとも一つに格納されることを特徴とする請求項16に記載の可変構造型ストレージシステム。
  20. 前記構成変形要素は、前記ストレージデバイスの特定の動作特性をイネーブルさせるか又はディセーブルさせるため、及び前記特定の動作特性のための値を明示するために前記特性セッティングを使用し、
    前記特定の動作特性の影響は、全ての論理デバイスに全体的であるか又は特定の論理デバイスに局所的であることを特徴とする請求項12に記載の可変構造型ストレージシステム。
  21. 前記ランタイム性能データは、
    セルフモニタリング分析及びレポーティング技術(SMART)インターフェースを通じて利用可能な性能指数と、
    最小(最大又は平均)読み出し(又は書き込み)レイテンシ、最小(最大又は平均)キューの長さ及び待機時間、最小(最大又は平均)内部IOPS、読み出し(又は書き込み)増幅比、ガベージコレクション時間、並びにタイムアウト回数を含むベンダー固有のランタイム性能指数と、を含むことを特徴とする請求項12に記載の可変構造型ストレージシステム。
  22. 前記ランタイム性能データは、デバイス状態、デバイスバックグラウンド作業状態、ホストバックグラウンド作業状態を更に含むことを特徴とする請求項21に記載の可変構造型ストレージシステム。
  23. コンピュータに請求項1乃至11のいずれか一項に記載のストレージシステムを再構成するための方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
  24. メモリと、
    前記メモリに接続されるプロセッサと、
    前記プロセッサにより実行されてストレージデバイスを再構成するためのソフトウェア要素と、を備えるホストであって、
    前記ソフトウェア要素は、
    サービスレベルアグリーメント(SLA)の仕様を含むユーザ要求情報を受信し、ストレージデバイスのデバイスプロファイルに基づいて前記SLAの仕様を前記ストレージデバイスの動作特性ための特性セッティングを定義する構成コマンドに変換し、前記特性セッティングの最適の組み合わせを判断して前記最適の組み合わせから変換された構成コマンドを含む複数の構成プランを生成し、前記ストレージデバイスのデバイスプロファイル及び前記ユーザ要求情報に含まれる性能及び状態に基づいて前記構成プランのうちの一つを選択する構成プランナと、
    前記構成プランナにより選択された構成プランを受信し、構成チャネルを経て前記選択された構成プランを前記ストレージデバイスに伝送して前記ストレージデバイスからの応答を受信し、前記ストレージデバイスからの否定応答の場合に、前記ストレージデバイスが実際に動作することが発見されるまで前記構成プランナにより新たに選択された構成プランを繰り返すデバイスプログラマと、
    前記ストレージデバイスからフィードバックとして前記ストレージデバイスのデバイスプロファイルを収集して前記ストレージデバイスのデバイスプロファイルを前記構成プランナに伝送し、前記ストレージデバイスで生成された一つ又は複数の論理デバイスを監視して全ての前記ユーザ要求情報が満たされるか否かを判断し、前記SLA仕様に違反する場合に、前記ストレージデバイスのデバイスプロファイルに基づいて前記構成プランを調整するために前記構成プランナに通知する構成アドバイザーと、を含み、
    前記ストレージデバイスのデバイスプロファイルは、ストレージデバイス、性能モデル、及びランタイム性能データに対する特定の性能範囲を含むことを特徴とするホスト。
  25. 前記構成プランナは、前記ストレージデバイスの各々の動作特性、性能モデル、動作特性間の相関関係及び反相関関係を評価して前記複数の構成プランを生成するプランニングアルゴリズムを更に含むことを特徴とする請求項24に記載のホスト。
  26. メインストレージと、
    前記メインストレージに接続されるプロセッサと、
    前記プロセッサにより実行されるソフトウェア要素と、を備える可変構造型のストレージデバイスであって、
    前記ソフトウェア要素は、
    ホストから特性セッティングを定義する少なくとも一つの構成コマンドを含む構成プランを受信し、前記ストレージデバイスのデバイスプロファイルに基づいて前記構成プランに含まれる前記特性セッティングの利用可能性及び適用可能性を判断し、
    前記構成プランが有効でない場合に、前記構成プランを拒絶して前記構成プランによって作成された全ての変化をロールバックし、
    前記特性セッティングの利用可能性及び適用可能性の全てが真の場合に、前記構成プランを認証して前記構成プランを実行し、前記構成プラン毎に前記ストレージデバイスのデバイスプロファイルの一部分として含まれるランタイム性能データを更新して完了の応答を前記ホストに伝送し、
    前記実行された構成プランをストレージ空間に関連させることによって前記ストレージデバイスに一つ又は複数の論理デバイスを生成する構成要素を含み、
    前記ストレージデバイスのデバイスプロファイルは、ストレージデバイス、性能モデル、及びランタイム性能データに対する特定の性能範囲を含むことを特徴とする可変構造型ストレージデバイス。
  27. 前記構成要素は、前記ストレージデバイスが前記構成プランと前記ストレージデバイスのデバイスプロファイルとを比較して前記特性セッティングをサポートするか否かを判断することによって、前記特性セッティングの利用可能性を判断することを特徴とする請求項26に記載の可変構造型ストレージデバイス。
  28. 前記構成要素は、前記ストレージデバイスのデバイスプロファイルに基づいて動作特性の調整の程度を評価すること、及び前記ストレージデバイスのデバイスプロファイルに基づいて適用可能な境界の動作特性内で前記動作特性の調整を制御することにより、前記特性セッティングの適用可能性を判断することを特徴とする請求項27に記載の可変構造型ストレージデバイス。
JP2013272626A 2013-01-03 2013-12-27 ストレージシステムを再構成するための方法及び可変構造型ストレージシステム並びに可変構造型ストレージデバイス及びホスト Active JP6694665B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US13/733,309 US20130185482A1 (en) 2012-01-18 2013-01-03 Memory system using a storage having firmware with a plurality of features
US13/733,309 2013-01-03
US13/936,992 US9239786B2 (en) 2012-01-18 2013-07-08 Reconfigurable storage device
US13/936,992 2013-07-08

Publications (2)

Publication Number Publication Date
JP2014132457A JP2014132457A (ja) 2014-07-17
JP6694665B2 true JP6694665B2 (ja) 2020-05-20

Family

ID=50928582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013272626A Active JP6694665B2 (ja) 2013-01-03 2013-12-27 ストレージシステムを再構成するための方法及び可変構造型ストレージシステム並びに可変構造型ストレージデバイス及びホスト

Country Status (4)

Country Link
JP (1) JP6694665B2 (ja)
KR (1) KR102087612B1 (ja)
CN (1) CN103927127B (ja)
DE (1) DE102013114069A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10282100B2 (en) 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
DE102015113603B4 (de) * 2014-08-19 2024-04-04 Samsung Electronics Co., Ltd. Datenverwaltungsverfahren in virtualisierten Hyperscale-Umgebungen
CN104301430B (zh) * 2014-10-29 2016-04-13 北京麓柏科技有限公司 软件定义存储系统、方法及其集中控制设备
JP6394315B2 (ja) 2014-11-20 2018-09-26 富士通株式会社 ストレージ管理装置、性能調整方法及び性能調整プログラム
JP6428231B2 (ja) 2014-12-15 2018-11-28 富士通株式会社 ストレージ管理装置、性能調整方法及び性能調整プログラム
KR102336443B1 (ko) * 2015-02-04 2021-12-08 삼성전자주식회사 가상화 기능을 지원하는 스토리지 장치 및 사용자 장치
US9645922B2 (en) * 2015-09-10 2017-05-09 HoneycombData Inc. Garbage collection in SSD drives
US11287973B2 (en) 2016-02-02 2022-03-29 Samsung Electronics Co., Ltd. Polymorphic storage devices
US10423331B2 (en) * 2016-02-02 2019-09-24 Samsung Electronics Co., Ltd. Polymorphic storage devices
US10616050B2 (en) * 2017-05-05 2020-04-07 VCE IP Holding Company LLC Software defined storage (SDS) system with network tiering
CN109783000B (zh) * 2017-11-10 2022-08-26 成都华为技术有限公司 一种数据处理方法及设备
US10678439B2 (en) * 2018-04-02 2020-06-09 Micron Technology, Inc. Optimization of memory systems based on performance goals
CN109614035A (zh) * 2018-11-01 2019-04-12 郑州云海信息技术有限公司 一种支持解决服务器存储介质序列灵活配置的方法与系统
US11210215B2 (en) 2019-10-01 2021-12-28 Neuchips Corporation Computing device and operation method thereof
US11321257B2 (en) 2019-12-31 2022-05-03 Micron Technology, Inc. Quality of service control of logical devices for a memory sub-system
US10992299B1 (en) * 2020-03-09 2021-04-27 Gowin Semiconductor Corporation Method and system for providing word addressable nonvolatile memory in a programmable logic device
CN113657720B (zh) * 2021-07-21 2023-08-29 新浪技术(中国)有限公司 一种自动规划cdn服务器磁盘的方法、系统、介质和设备
CN115826886B (zh) * 2023-02-24 2023-05-12 浪潮电子信息产业股份有限公司 追加写模式的数据垃圾回收方法、装置、系统及存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6487562B1 (en) * 1999-12-20 2002-11-26 Emc Corporation Dynamically modifying system parameters in data storage system
US7010493B2 (en) * 2001-03-21 2006-03-07 Hitachi, Ltd. Method and system for time-based storage access services
US7159093B2 (en) * 2002-12-20 2007-01-02 Veritas Operating Corporation Development of a detailed logical volume configuration from high-level user requirements
US8416691B1 (en) * 2006-04-27 2013-04-09 Alcatel Lucent Associating hosts with subscriber and service based requirements
JP5745749B2 (ja) * 2008-01-15 2015-07-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 記憶インフラストラクチャを自動的に管理するための方法および適切な記憶インフラストラクチャ
US8095764B1 (en) * 2008-06-30 2012-01-10 Emc Corporation Dynamic application aware storage configuration
WO2010047989A1 (en) * 2008-10-20 2010-04-29 At & T Mobility Ii Llc Device network technology selection and display in multi-technology wireless environments
US8495295B2 (en) 2009-05-10 2013-07-23 Infinidat Ltd. Mass storage system and method of operating thereof
KR101297258B1 (ko) 2010-07-09 2013-08-16 삼성에스디아이 주식회사 염료 감응 태양 전지용 염료, 그 제조 방법 및 이를 채용한 태양 전지
KR101673622B1 (ko) * 2011-01-28 2016-11-08 삼성전자주식회사 무선통신 시스템에서 서비스품질에 따른 서비스 제공 방법 및 장치

Also Published As

Publication number Publication date
DE102013114069A1 (de) 2014-07-03
CN103927127B (zh) 2018-07-03
KR20140088834A (ko) 2014-07-11
JP2014132457A (ja) 2014-07-17
KR102087612B1 (ko) 2020-04-14
CN103927127A (zh) 2014-07-16

Similar Documents

Publication Publication Date Title
JP6694665B2 (ja) ストレージシステムを再構成するための方法及び可変構造型ストレージシステム並びに可変構造型ストレージデバイス及びホスト
US9239786B2 (en) Reconfigurable storage device
KR102579790B1 (ko) 저장 디바이스의 현재 소모 프로파일에 기초한 사용자에 대해 이용불가능한 저장 디바이스에서의 스페어 공간에 대한 조정들의 결정
US10929165B2 (en) System and method for memory resizing in a virtual computing environment
KR102624824B1 (ko) 데이터 볼륨들의 동적 구성
US10853139B2 (en) Dynamic workload management based on predictive modeling and recommendation engine for storage systems
US8095764B1 (en) Dynamic application aware storage configuration
US9342526B2 (en) Providing storage resources upon receipt of a storage service request
US8375180B2 (en) Storage application performance matching
US7287121B2 (en) System and method of establishing and reconfiguring volume profiles in a storage system
US10078473B2 (en) Resource allocation in networked storage systems
US7757013B1 (en) Techniques for controlling data storage system performance
WO2016200684A1 (en) Allocating cloud storage based on storage attributes
JP2013509658A (ja) 将来の使用推量に基づく記憶メモリの割り当て
TWI771396B (zh) 儲存裝置、儲存管理器與多重串流方法
US10425352B2 (en) Policy driven storage hardware allocation
US20150317556A1 (en) Adaptive quick response controlling system for software defined storage system for improving performance parameter
JP2023553316A (ja) ストレージシステム最適化を使用したアプリケーション性能の強化
US20230110012A1 (en) Adaptive application resource usage tracking and parameter tuning
TW201504937A (zh) 由實體儲存裝置中所選分區所構成的虛擬儲存裝置
US11669246B2 (en) Storage allocation enhancement of microservices
KR102427166B1 (ko) 캐시 관리 메커니즘을 위한 컴퓨팅 시스템 및 그것의 동작 방법
US11785084B2 (en) Machine learning based assignment of service levels in a networked storage system
US20210019276A1 (en) Link selection protocol in a replication setup
US20190339903A1 (en) Drive utilization in multi-tiered systems with read-intensive flash

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180326

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181212

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20181221

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20190301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200116

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200420

R150 Certificate of patent or registration of utility model

Ref document number: 6694665

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250