(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6974218
(24)【登録日】2021年11月8日
(45)【発行日】2021年12月1日
(54)【発明の名称】ストレージシステム及びその動作方法
(51)【国際特許分類】
G06F 13/10 20060101AFI20211118BHJP
G06F 13/14 20060101ALI20211118BHJP
G06F 3/06 20060101ALI20211118BHJP
G06F 3/08 20060101ALI20211118BHJP
H04L 12/70 20130101ALI20211118BHJP
G06F 13/00 20060101ALI20211118BHJP
【FI】
G06F13/10 340A
G06F13/14 330D
G06F3/06 301Z
G06F3/08 H
H04L12/70 B
G06F13/00 357A
【請求項の数】22
【全頁数】17
(21)【出願番号】特願2018-38356(P2018-38356)
(22)【出願日】2018年3月5日
(65)【公開番号】特開2018-156645(P2018-156645A)
(43)【公開日】2018年10月4日
【審査請求日】2021年2月19日
(31)【優先権主張番号】62/472,379
(32)【優先日】2017年3月16日
(33)【優先権主張国】US
(31)【優先権主張番号】15/615,508
(32)【優先日】2017年6月6日
(33)【優先権主張国】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】110000051
【氏名又は名称】特許業務法人共生国際特許事務所
(72)【発明者】
【氏名】バラプラム, チンナ クリシュナ
【審査官】
吉田 歩
(56)【参考文献】
【文献】
国際公開第2015/194033(WO,A1)
【文献】
国際公開第2016/139749(WO,A1)
【文献】
NVM Express over Fabrics,Revision 1.0,NVM Express, Inc.,2016年06月05日,pp.33-38,https://nvmexpress.org/wp-content/uploads/NVMe_over_Fabrics_1_0_Gold_20160605-1.pdf
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/10
G06F 13/14
G06F 3/06
G06F 3/08
H04L 12/70
G06F 13/00
(57)【特許請求の範囲】
【請求項1】
複数のストレージデバイスと、
ホストコンピューターと、
前記ホストコンピューターに発見ログページを提供する発見サーバと、を備え、
前記複数のストレージデバイスの中の少なくとも一つのストレージデバイスは、動的ホスト構成プロトコル(DHCP)クライアントを動作させるように構成され、
前記複数のストレージデバイスの中の前記少なくとも一つのストレージデバイスは、前記DHCPクライアントの要請で獲得された、対応するストレージデバイスのインターネットプロトコル(IP)アドレスの更新に基づいて、前記対応するストレージデバイスの発見ログエントリーを前記発見サーバに自動的に提供する発見ログアップデータ(DLU)を動作させ、
前記ホストコンピューターは、前記発見ログページに含まれるターゲットストレージデバイスの発見ログエントリーを検索して前記ターゲットストレージデバイスのIPアドレスを用いて前記複数のストレージデバイスの中の前記ターゲットストレージデバイスとの連結を構築し、前記ターゲットストレージデバイスにデータの入出力を要請するか又は作業負荷を割り当て、
前記発見ログページは、一つ以上の発見ログエントリーを含む前記複数のストレージデバイスの発見情報を含むことを特徴とするストレージシステム。
【請求項2】
DHCPサーバは、前記複数のストレージデバイスの中の前記少なくとも一つのストレージデバイスに対する前記IPアドレスを割り当て、
前記複数のストレージデバイスの中の前記少なくとも一つのストレージデバイスの前記発見ログアップデータは、前記割り当てられたIPアドレスを含むそれぞれの発見ログエントリーを前記発見サーバに自動的に伝送するために前記割り当てられたIPアドレスを用いることを特徴とする請求項1に記載のストレージシステム。
【請求項3】
前記発見ログエントリーは、ストレージデバイス制御器のポートアドレスを更に含むことを特徴とする請求項2に記載のストレージシステム。
【請求項4】
前記ポートアドレスは、NVMeoF(Non−Volatile Memory express over Fabrics)仕様によって割り当てられることを特徴とする請求項3に記載のストレージシステム。
【請求項5】
前記発見サーバは、RESTful応用プログラムインタフェース(API)又はGraphQL要請を用いて前記ホストコンピューターに前記発見ログページを伝送することを特徴とする請求項1に記載のストレージシステム。
【請求項6】
前記複数のストレージデバイスの中の少なくとも一つは、NVMeoFデバイスであり、
前記ホストコンピューターは、前記発見ログページを受信するために前記発見サーバにログ獲得命令を伝送することを特徴とする請求項1に記載のストレージシステム。
【請求項7】
前記発見サーバ及び前記DHCPサーバは、前記ストレージシステムの同じサーバ内に配置されることを特徴とする請求項2に記載のストレージシステム。
【請求項8】
前記複数のストレージデバイスは、ラックに取り付けられ、
前記ラック内の発見サーバは、前記ラックに固有のラックレベル発見情報を収集することを特徴とする請求項1に記載のストレージシステム。
【請求項9】
前記複数のストレージデバイスは、POD(Performance Optimized Datacenter)内の複数のラックの間に分散され、
前記PODを担当する発見サーバは、前記PODに固有のPODレベル発見情報を収集することを特徴とする請求項8に記載のストレージシステム。
【請求項10】
前記PODのPODマネージャーは、前記PODレベル発見情報に基づいて前記複数のストレージデバイスの間で作業負荷の割り当てを行うことを特徴とする請求項9に記載のストレージシステム。
【請求項11】
前記PODマネージャーは、前記ストレージシステムの他のPODマネージャーと前記PODレベル発見情報を交換することを特徴とする請求項10に記載のストレージシステム。
【請求項12】
ストレージシステムの動作方法であって、
ストレージデバイス内の動的ホスト構成プロトコル(DHCP)クライアントを動作させる段階と、
前記DHCPクライアントの要請で獲得された前記ストレージデバイスのインターネットプロトコル(IP)アドレスの更新に基づいて、前記ストレージデバイスの発見ログエントリーを発見サーバに自動的に提供する段階と、
前記発見サーバからホストコンピューターに発見ログページを提供する段階と、
前記発見ログページに含まれるターゲットストレージデバイスの前記発見ログエントリーを検索して前記ターゲットストレージデバイスのIPアドレスを用いて前記ホストコンピューターと前記ターゲットストレージデバイスとの間の連結を構築する段階と、
前記ホストコンピューターから前記ターゲットストレージデバイスにデータの入出力を要請するか又は作業負荷を割り当てる段階と、を有し、
前記発見ログページは、一つ以上の発見ログエントリーを含む複数のストレージデバイスの発見情報を含むことを特徴とする動作方法。
【請求項13】
DHCPサーバは、前記複数のストレージデバイスの中の少なくとも一つのストレージデバイスに対する前記IPアドレスを割り当て、
前記複数のストレージデバイスの中の前記少なくとも一つのストレージデバイスの発見ログアップデータは、前記割り当てられたIPアドレスを含むそれぞれの発見ログエントリーを前記発見サーバに自動的に伝送するために前記割り当てられたIPアドレスを用いることを特徴とする請求項12に記載の動作方法。
【請求項14】
前記発見ログエントリーは、ストレージデバイス制御器のポートアドレスを更に含むことを特徴とする請求項13に記載の動作方法。
【請求項15】
前記ポートアドレスは、NVMeoF(Non−Volatile Memory express over Fabrics)仕様によって割り当てられることを特徴とする請求項14に記載の動作方法。
【請求項16】
前記発見サーバは、RESTful応用プログラムインタフェース(API)又はGraphQL要請を用いて前記ホストコンピューターに前記発見ログページを伝送することを特徴とする請求項12に記載の動作方法。
【請求項17】
前記複数のストレージデバイスの中の少なくとも一つは、NVMeoFデバイスであり、
前記ホストコンピューターは、前記発見ログページを受信するために前記発見サーバにログ獲得命令を伝送することを特徴とする請求項12に記載の動作方法。
【請求項18】
前記発見サーバ及び前記DHCPサーバは、前記ストレージシステムの同じサーバ内に配置されることを特徴とする請求項13に記載の動作方法。
【請求項19】
前記複数のストレージデバイスは、ラックに取り付けられ、
前記ラック内の発見サーバは、前記ラックに固有のラックレベル発見情報を収集することを特徴とする請求項12に記載の動作方法。
【請求項20】
前記複数のストレージデバイスは、POD内の複数のラックの間に分散され、
前記PODを担当する発見サーバは、前記PODに固有のPODレベル発見情報を収集することを特徴とする請求項19に記載の動作方法。
【請求項21】
前記PODのPODマネージャーは、前記PODレベル発見情報に基づいて前記複数のストレージデバイスの間で作業負荷の割り当てを行うことを特徴とする請求項20に記載の動作方法。
【請求項22】
前記PODマネージャーは、前記ストレージシステムの他のPODマネージャーと前記PODレベル発見情報を交換することを特徴とする請求項21に記載の動作方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散ストレージデバイス(distributed storage device)に関するもので、より詳細には、ハイパースケールデータセンター(hyperscale datacenter)環境で分散ストレージデバイスの自動発見を提供するストレージシステム及びその動作方法に関する。
【背景技術】
【0002】
データセンター内の各ラック(rack)は、コンピュート(compute)デバイス及びストレージ(storage)デバイスのために、スレッド(sled)及び/又はトレイ(tray)の組み合わせを含む。ハイパースケールデータセンターは、いくつかの最適化された性能のデータセンター(PODs:Performance Optimized Datacenters)を含み、各PODは、複数のラックと数々のコンピュート(compute)デバイス及び/又はストレージデバイスを含む。
【0003】
不揮発性メモリエキスプレス(NVMe:Non−Volatile Memory express)は、ホスト(host)ソフトウェアがPCIe(Peripheral Component Interconnect express)バス(bus)を通じて、不揮発性メモリサブシステム(例えば、ソリッドステートドライブ(SSD:Solid−State Drive))と通信をするためのレジスターレベルインターフェース(register−level interface)を定義する。NVMeoF(NVMe over Fabrics)(又は略してNVMf)は、イーサネット(登録商標)(Ethernet(登録商標))、ファイバーチャネル(Fibre Channel)、インフィニバンド(InfiniBand)、伝送制御プロトコル(TCP)ネットワーク、及び他のネットワークファブリックス(fabrics)のような広い範囲のストレージネットワーキングファブリックスでNVMeブロック(block)のストレージプロトコルを支援する一般的なアーキテクチャ(architecture)を定義する。
【0004】
NVMeoFに基づくストレージシステムにおいて、NVMeoFと互換可能なSSD又はイーサネット(登録商標)SSDに指称される各ストレージデバイスは、サブシステムNQN(NVMe Qualified Name)、IP(Internet Protocol)アドレス、ポートID、及び/又は制御器IDによって識別される。各PODマネージャーは、作業負荷を割り当て、スケジューリングするためにファブリックス(例えば、イーサネット(登録商標))上のストレージデバイスの状態及び利用可能性を知っておく必要がある。ストレージデバイスのうちの一部は、維持のために作動しないこともあり、作業負荷はこのようなストレージデバイスに任されないこともある。なお、ハイパースケールデータセンター環境でファブリックスに分散された数々のストレージデバイスからの発見情報の収集、維持、及びアップデートは単純作業ではない。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】米国特許第9519578号明細書
【特許文献2】米国特許第9384093号明細書
【特許文献3】米国特許第8775486号明細書
【特許文献4】米国特許出願公開第2016/0085718号明細書
【特許文献5】米国特許出願公開第2016/0127468号明細書
【特許文献6】米国特許出願公開第2014/0195634号明細書
【特許文献7】米国特許出願公開第2016/0127492号明細書
【特許文献8】米国特許出願公開第2015/0304423号明細書
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、ハイパースケールデータセンター環境におけるイーサネット(登録商標)ストレージの自動発見を提供するためのストレージシステム及びその動作方法を提供することにある。
【課題を解決するための手段】
【0007】
上記目的を達成するためになされた本発明の一態様によるストレージシステムは、各々が動的ホスト構成プロトコル(DHCP)クライアント(client)を動作させる複数のストレージデバイスと、ホストコンピューターに発見ログページ(discovery log page)を提供する発見サーバと、を備え、前記複数のストレージデバイスの各々で動作する発見ログアップデータ(DLU:Discovery Log Updater)は、対応するストレージデバイスの発見ログエントリー(discovery log entry)を前記発見サーバに提供し、前記ホストコンピューターは、前記発見ログページに含まれるターゲットストレージデバイス(target storage device)の発見ログエントリーを用いて前記ターゲットストレージデバイスとの連結を構築し、入出力又はコンピュート(compute)作業負荷を前記ターゲットストレージデバイスに提供し、前記発見ログページは、一つ以上の発見ログエントリーを含む複数のストレージデバイスの発見情報(discovery information)を含み、前記一つ以上の発見ログエントリーの各々は、前記ホストコンピューターと前記対応するストレージデバイスとの間の通信を構築するために割り当てられた前記対応するストレージデバイスのアドレスを含む。
【0008】
上記目的を達成するためになされた本発明の一態様によるストレージシステムの動作方法は、ストレージデバイス内の動的ホスト構成プロトコル(DHCP)クライアントを動作させる段階と、前記ストレージデバイスの発見ログエントリーを発見サーバに提供する段階と、前記発見サーバからホストコンピューターに発見ログページを提供する段階と、前記発見ログページに含まれるターゲットストレージデバイスの発見ログエントリーを用いて前記ホストコンピューターと前記ターゲットストレージデバイスとの間の連結を構築する段階と、前記ホストコンピューターから前記ターゲットストレージデバイスに入出力又はコンピュート作業負荷を提供する段階と、を有し、前記発見ログページは、一つ以上の発見ログエントリーを含む複数のストレージデバイスの発見情報を含み、前記一つ以上の発見ログエントリーの各々は、前記ホストコンピューターと前記対応するストレージデバイスとの間の通信を構築するために割り当てられた前記対応するストレージデバイスのアドレスを含む。
【0009】
イベントの具現及び組み合わせの多様且つ新たな細部事項を含む上記特徴及び他の選好される特徴について、図面を参照してより詳細に説明する。本明細書で説明する特定システム及び方法は、説明のためのみに示すものであり、本発明はこれに制限されるものではない。当業者にとっては自明であるように、本明細書で説明する原理及び特徴は、本発明の思想から逸脱せずに多様且つ様々な実施形態に適用される。
【発明の効果】
【0010】
本発明のストレージシステム及びその動作方法によれば、ハイパースケールデータセンター環境で数々のストレージデバイスを収容するスケーラブルなソリューションを提供することができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の一実施形態による分散ストレージデバイスシステムの一例のブロック図である。
【
図2】本発明の一実施形態による発見ログページの一例のデータ構造を示す図である。
【
図3】本発明の一実施形態による発見ログページに含まれるログエントリーの一例のデータ構造を示す図である。
【
図4】本発明の一実施形態による発見ログ情報を設定するための一例のフローチャートである。
【
図5】本発明の一実施形態によるホストコンピューターとターゲットストレージデバイスとの間で通信を構築するための一例のフローチャートである。
【
図6】本発明の一実施形態による自動発見の一例のプロセスを示す。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。図面は、一般的に例示的な参照としての目的のために提示して多様な実施形態を説明するものであり、開示する実施形態のみを表わすものではなく、特許請求の範囲を制限するものではない。
【0013】
本明細書で示す各特徴及び開示は、ハイパースケールデータセンター環境でイーサネット(登録商標)ストレージの自動発見を提供するストレージシステム及びその動作方法を提供するために、独立的に又は他の特徴及び開示と共に活用される。このような数々の追加の特徴及び開示を活用する代表的な例示を、独立的且つ結合して、図面を参照してより詳細に説明する。このような詳細な説明は、単に本明細書に開示する例示を実行するための細部的な内容を当業者に開示するものであり、特許請求の範囲を制限するものではない。従って、発明の詳細な説明で開示する特徴の組み合わせは、広い意味で開示を実行するために必要なものではなく、代わりに特別に本明細書で開示する代表的な例示を説明するために開示される。
【0014】
以下では、説明するためのみの目的として、本発明の完全なる理解を提供するための具体的な命名法を記述するが、本発明の開示を実行するために、当業者にこのような具体的な細部事項が必要とされないことは自明である。
【0015】
本明細書の詳細な説明のいくつかの部分は、アルゴリズム及びコンピューターメモリの中におけるデータビットに対する動作の象徴的表現に関して示される。このようなアルゴリズムの説明と表現は、他分野の通常の技術者に研究の要旨を効果的に伝達するためにデータプロセシング分野にある通常の技術者によって使用される。ここで、アルゴリズムは一般的に望む結果に導く段階の一貫性のある順番で理解される。段階は、物理量の物理的操作を必要とする。一般的に、必ずしも必要なものではないが、このような物理量は、格納され、伝達され、結合され、比較されるなどの操作される電気又は磁気信号の形態を有する。これは、時々このような信号をビット、価、要素、シンボル(symbol)、文字、用語、数字などとして指称するための一般的な用法であるとの理由で便利である。
【0016】
しかし、このように全ての用語と類似な用語は、適切な物理量に関連して、単にこのような物理量に適用される便利なラベル(label)であることに留意すべきである。以下の内容と明白に異なる内容が具体的に記述されない場合、明細書の全般において、「プロセシング」、「コンピューティング」、「計算する」、「決定する」、「表示する」などのような用語を活用する部分は、コンピューターシステム又は類似の電子コンピューティング装置のプロセス及び措置を指すものと理解される。コンピューターシステム又は類似の電子コンピューティング装置は、コンピューターシステムのレジスター(register)及びメモリにおいて物理(電気)量で示されるデータをコンピューターシステムメモリ若しくはレジスター又は他の情報の記憶、伝送、又はディスプレイ装置において物理量で類似に示される他のデータに操作又は変形される。
【0017】
なお、代表的な例示の様々な特徴と従属項は、本発明の追加的で且つ有用な実施形態を提供するために、具体的且つ明確に列挙されない方法で結合される。また、請求する発明の思想を制限しようとする目的のみならず、最初の開示の目的のために、全ての値の範囲又は個体グループの表示は、できる限り全て中間値又は中間個体を示す。また、図面に示す構成の面積と模様は、本発明をどのように具現するかを理解するために役に立つようにデザインされるが、例示として図示する面積と模様に限定されるものではない。
【0018】
本明細書は、複数のデータストレージデバイスを含む分散データストレージシステムを説明する。本発明の分散データストレージシステムは、複数のデータストレージデバイスの動的発見情報を提供し、アップデートし、そして維持するための動的ホスト構成プロトコル(DHCP:Dynamic Host Configuration Protocol)サービスを用いる。分散データストレージシステムのサブシステムの間で通信のために支援される伝送プロトコルの例示はNVMeoFプロトコルであり、ファブリックはイーサネット(登録商標)である。サブシステムは、一つ以上のコンピュートノード(例えば、遠隔のホストコンピューター又は計算するノード)及び複数のストレージデバイス(例えば、イーサネット(登録商標)SSD)を含む。
【0019】
発見制御器によって提供される発見ログページ(discovery log page)は、発見ログエントリー(discovery log entries)を含む。発見ログページに含まれる各発見ログエントリーは、ホストコンピューターがNVMe伝送プロトコルを通じてサブシステムに連結するために必要な情報を明示する。例えば、発見ログエントリーは、サブシステムのネームスペース(namespace)又は他の発見サービスに対する依頼(referral)を表すサブシステムを明示する。NVMeoF仕様によると、最大依頼の深さは8レベル又はそれ以下である。
【0020】
図1は、本発明の一実施形態による分散ストレージデバイスシステムの一例のブロック図である。分散ストレージシステム100は、ホストコンピューター110、動的ホスト構成プロトコル(DHCP)サーバ130、発見サーバ150、ストレージデバイス160、並びに形成されたネットワークを通じてホストコンピューター110、DHCPサーバ130、発見サーバ150、及びストレージデバイス160との間の連結を提供するファブリック120を含む。ファブリック120の例はイーサネット(登録商標)である。
【0021】
ホストコンピューター110は、分散ストレージシステム100の数々のホストコンピューターの中の一つを示し、ストレージデバイス160は、分散ストレージシステム100の数々のストレージデバイスの中の一つを示す。一実施例によると、ホストコンピューター110は、ストレージデバイスに作業負荷を与えるか、又は単純にストレージデバイス160を含む分散ストレージシステム100のストレージデバイスに格納されたデータに対する読み込み/書き込みのアクセスを行う分散ストレージシステム100のコンピューターノードを指す。
【0022】
ストレージデバイス160は、ストレージデバイス制御器161、ポート162、DHCPクライアント163、ソリッドステートドライブ(SSD)のようなデータストレージ164、及び発見ログアップデータ(DLU)165を含む。一実施例において、DLU165は、ファブリック伝送プロトコル及びREST(Representational State Transfer)ful API又はGraphQL要請を使用するポートを用いて、発見サーバ150の発見ログエントリー152にストレージデバイス160の発見ログエントリーをアップデートするためのストレージデバイス160で動作するサービスである。例えば、DLU165は、発見サーバ150の発見ログエントリー152においてストレージデバイス160の発見ログエントリーをアップデートするために、TCP/IP又はUDP/IPとTCP/UDPポートを使用する。DHCPサーバ130は、要請DHCPクライアントに動的又は永久レンタルIPアドレスを提供する分散ストレージシステム100のサブシステムである。例えば、ストレージデバイス160のDHCPクライアント163は、DHCPサーバ130にDHCP要請126を送り、DHCPサーバ130は、DHCP要請126に応答してDHCPクライアント163にIPアドレス(動的IPアドレス又は永久IPアドレス)を割り当てる。
【0023】
発見サーバ150は、発見サーバ150から発見ログ情報を獲得する要請ホストコンピューターに発見サービスを提供する。発見サーバ150は、本明細書で開示する内容に特に関連しないNVMeoF発見サーバ仕様で説明される通り、他の構成要素のみならず、発見制御器151及び発見ログエントリー152を含む。発見制御器151のIPアドレス又は伝送アドレスは、ホストコンピューター110を含む分散ストレージシステム100の一つ以上のホストコンピューターに公開される。なお、ホストは、発見サービスに対する連結命令としてよく知られている発見サービスNQN(例えば、nqn.2014−08.org.nvmexpress.dicovery)を使用する。
【0024】
ホストコンピューター110は、分散ストレージシステム100の中の利用可能な一つ以上のストレージデバイスに連結するために、必要な情報を探し出すための発見サーバ150の発見サービスを用いる。ホストコンピューター110は、いくつかの方法で初期発見情報を獲得する。例えば、発見サーバ150のIPアドレスのない新たに追加されたホストコンピューターは、ローカルホスト構成ファイル(local host configuration file)又はホストコンピューターのオペレーティングシステム(OS)のハイパーバイザ(hypervisor)、或いはホストコンピューターに知らされている他のサブシステムから初期発見情報を獲得する。ホストコンピューター110は、発見サービスに対する連結命令内の発見サービスNQN(例えば、nqn.2014−08.org.nvmexpress.dicovery)アドレスを使用する。発見サービスに連結するために必要なNVMe伝送情報を獲得するために、ホストコンピューター110が使用する発見方法は、使用されるファブリックプロトコルに基づく。初期発見サービス情報は、発見サーバ150のIPアドレス又は発見サーバ150に対する情報を有する他のサブシステムを含む。
【0025】
発見サーバ150のアイデンティティ(identity)が知らされると(例えば、発見サーバ150のIPアドレス)、ホストコンピューター110は、必要に応じて発見情報を獲得するために発見サーバ150に発見ログ要請121(例えば、NVMeoF仕様によるログページの獲得要請)を送る。これに応答して、発見サーバ150は、一つ以上の発見ログエントリー152を含む発見ログページ122を提供する。発見ログページ122に含まれる各発見ログエントリーは、ホストコンピューター110が対応する一つ以上のストレージデバイス160に連結するために必要な情報を明示する。例えば、各エントリーは、対応するストレージデバイス160の一つ以上の識別子及びストレージデバイス160に連結するために支援される伝送プロトコル情報を含む。発見ログエントリー152は、複数の伝送プロトコル及びアドレスタイプを支援する。
【0026】
一実施例によると、発見サーバ150は、ホストコンピューター110に最近アップデートされた発見ログエントリー152を自発的に伝送する。例えば、発見サーバ150はホストコンピューターのリストを保管し、発見サーバは、一つの場合にPOD/PODマネージャーを担当し、一つ以上の発見ログエントリーがアップデートされる通りに、リストにあるホストコンピューターにアップデートされた発見ログページ122を伝送する。(又は、予め定められた間隔(例えば、毎日、毎週)で伝送)。この場合、発見ログページ122は、アップデートされた発見ログエントリーのみを含む格納された発見ログエントリー152の部分集合を含む。
【0027】
発見ログエントリー及び発見ログページ122で識別されたストレージデバイス160に対応する伝送タイプに基づいて、ホストコンピューター110は、ターゲットストレージデバイス160のポートアドレス123を識別し、指示された支援伝送タイプ及び伝送プロトコルを使用するポートアドレス123を用いて、ターゲットストレージデバイス160との通信経路を構築する。ホストコンピューターとターゲットストレージデバイスとの間の連結を初期化するための全ての必要な情報は発見ログページ122から伝達される。ストレージデバイス160のストレージデバイス制御器161及びホストコンピューター110は、構築されたポート162を使用して互いに通信する。.
【0028】
ストレージデバイス160で動作するDHCPクライアント163は、DHCPサーバ130に要請を送り、DHCPサーバ130は要請DHCPクライアント163にIPアドレス(又は対応するファブリックでのIPアドレスに対応する類似アドレス)を割り当てる。DLU165は、各ターゲットストレージデバイスで動作するか、又はターゲットストレージデバイスのグールプに対して作動する。例えば、シャーシ(chassis)/ラック内のストレージデバイス160の全て又は一部に対して、一つ又はいくつかのDHCPクライアント163が使用される。同様に、一つ又はいくつかのDLU165は一つのストレージデバイス160又はシャーシ/ラック内のストレージデバイス160のグループに対するログをアップデートする。DHCP及びDLUサービスは、一つ又はいくつかのストレージデバイス160、又は一般的な目的の中央処理装置(CPU)、或いはシャーシ/ラック内のベースボード管理制御器(BMC:Baseboard Management Controller)で動作する。DHCPクライアント163又はDLU165は、ストレージデバイス制御器161の割り当てられたIPアドレスを含む発見ログエントリー124を発見サーバ150に伝送する。一実施例によると、DHCPサーバ130及び発見サーバ150は同じサーバ内に配置される。いくつかの実施例では、DHCPサーバ130は、発見サーバ150と異なる分散ストレージシステム100の外部の他のシステムである。
【0029】
発見サーバ150は、RESTful API又はGraphQL要請を使用するターゲットストレージデバイスの一つ以上のDLU165から受信された一つ以上の発見ログエントリー152を含む発見ログ情報を収集してアップデートする。発見サーバ150は、NVMeoFログ獲得ページ(Get Log Page)要請に対する応答として、要請ホストコンピューター110に発見ログページを提供する。DHCPクライアントによって割り当てられたIPアドレスを使用するターゲットストレージデバイスの各々又はグループで動作するDLUによる発見情報の自動アップデートは、本発明の分散ストレージシステムに属するターゲットストレージデバイスに連結するために必要な最近アップデートされた発見情報を有して、要請ホストコンピューターに絶え間ない発見サービスを提供する。
【0030】
新たなストレージデバイスは追加され、そしていくつかのストレージデバイスは、新たなストレージデバイスの追加、既存のストレージデバイスの交替又は寿命完了によってデータセンター環境で日常的運用上のプロセスの一つの部分としてシャットダウンされる。レンタル中のストレージデバイス160の各DHCPクライアント163が自分の現在情報をアップデートするため、DHCPサーバ130は最新の発見ログ情報を維持する。各ストレージデバイス160で動作するシン(thin)DHCPクライアント163による発見ログ情報の自動アップデート技法を使用して、本発明の分散ストレージシステム100は、ハイパースケールデータセンター環境で数々のストレージデバイスを収容するスケーラブルな(scalable)ソリューションを提供する。
【0031】
図2は、本発明の一実施形態による発見ログページ(discovery log page)の一例のデータ構造を示す図である。
図2に示す発見ログページ200は、ジェネレーションカウンター(generation counter)、レコード(record)の個数、レコードフォーマット(format)、一つ以上の発見エントリー300を含み、これに制限されない発見情報に関する多様なパラメータ(parameter)を含む。
図3は、本発明の一実施形態による
図2の発見ログページ200に含まれるログエントリーの一例のデータ構造を示す図である。ログページエントリー300は、伝送タイプ(例えば、遠隔直接記憶アクセス装置(RDMA:Remote Direct Memory Access)、ファイバーチャンネル、TCPネットワーク)、アドレスファミリ(例えば、IPv4、IPv6、IB、FC)、サブシステムタイプ、伝送要求事項、ポートID、制御器ID、管理者の最大SQサイズ(admin max SQ size)、伝送サービス識別子、NVMサブシステム修飾名(NQN)、伝送アドレス(ストレージデバイスのIPアドレス)、伝送特定アドレス部分タイプを含み、これに制限されない特定ログエントリーに関する多様なパラメータを含む。
図2に示す発見ログページ200は、一つ以上のログページエントリー300を含む。
【0032】
ホストコンピューターは一つ以上の発見ログページを受信する。この場合、ホストコンピューターは、発見ログページの変更ヒストリー(revision history)を確認し、発見ログ情報に変更があるか否かを判別する。一実施例によると、ホストコンピューターは、一つ以上の発見サーバから複数の発見ログページを受信する。ホストコンピューターは、特定の順番(例えば、増加するログページオフセット値を有する)で受信された発見ログページを読み、ジェネレーションカウンターを数えられる。ジェネレーションカウンターは、0h値から始まる発見情報のバージョン(version)を示す。発見ログにおける各変更に対してジェネレーションカウンターは一つずつ増加する。最大カウントが超過すると、ジェネレーションカウンターは0hの初期値に戻る。ジェネレーションカウンターが前の読み込みログ情報にマッチしない場合、ホストコンピューターは、前の読み込みログページを捨ててログ情報をアップデートする。ログページ内容がログページを読む間に変更された場合、発見制御器は発見再起動を示す状態に戻る。発見制御器によって示されたような発見再起動により、ホストコンピューターは現在の発見プロセスを中止して新たな発見プロセスを再起動する。
【0033】
発見サーバから最近アップデートされた発見ログエントリーを検索した後、ホストコンピューターは、対応するログエントリーに含まれるターゲットストレージデバイスのIPアドレスを用いてターゲットストレージデバイスと通信を行うために、キューペア(queue pairs)を初期化することで伝送レベル連結を準備する。そうしながら、ホストコンピューターは、ターゲットストレージデバイスとの伝送レベル連結を構築するために、制御器キュー(queues)を生成する連結命令を下す。連結命令は、ポートID、キューのタイプ(例えば、管理キュー(admin queues)又は入出力キュー)、提出キュー及び完了キューのサイズ、キューの属性、ホストNQN、NVMサブシステムNQN、ホスト識別子を含み、これに制限されない多様なパラメータを明示する。これに応答して、ターゲットストレージデバイスは、連結が成功的に構築されたか否かを示す連結応答をホストコンピューターに伝送する。連結応答は、ホストコンピューターとの通信のために割り当てられたストレージデバイス制御器IDを含む。
【0034】
ハイパースケールデータセンター環境において、ホストコンピューターとターゲットストレージデバイスとの間に適切な連結を構築するために必要とされる情報は、伝送プロトコル(例えば、
図1のファブリック120)によって支援されるファブリックを通じて交換される。ファブリック120は、ホストコンピューター110と発見サーバ150との間、ホストコンピューター110とストレージデバイス160との間、及びDHCPサーバ130とストレージデバイス160との間で異なることもあり、ホストコンピューター110、DHCPサーバ130、発見サーバ150、及びストレージデバイス160間で同じくする必要はない。例えば、本発明の分散ストレージシステムは、企業内ネットワーク(enterprise network)、データセンター、及び/又はインターネットに亘って分布する数々のホストコンピューター及びストレージデバイスを含む。本発明の分散ストレージシステムの他のサブシステムが第1タイプファブリックと異なる第2タイプファブリックを通じて連結される一方、本発明の分散ストレージシステムのいくつかのサブシステムは、第1タイプファブリックを通じて連結される。例えば、発見サーバは、共用ネットワーク(例えば、インターネット)であり、ホストコンピューター及びターゲットストレージデバイスは専用ネットワークを通じて連結される。
【0035】
本発明のDHCPサービスを基にした発見サービスは、ホストコンピューター及びストレージデバイスの拡張及び規模の数として用いられる。一実施例によると、データセンターの各ラックは、自動的にアップデートされ、ラックに対する特有のストレージデバイスの発見情報を維持するラックレベル(rack−level)発見サーバを運営する。PODは複数のラックを含み、各ラックレベル発見サーバは、自動的にラックレベル発見情報をPODマネージャー上で動作するPODレベル発見サーバにアップデートする。PODレベル発見サーバは、PODマネージャーがPODレベル発見情報に基づいて作業負荷をスケジューリングする。
【0036】
一実施例によると、分散ストレージシステムは、複数のPODマネージャーを含み、各PODのために一つのPODマネージャーが存在する。作業負荷は、PODマネージャーの間で交換されるシステムレベル発見情報に基づいて複数のPODマネージャーの間に分散される。他の実施例で、PODマネージャーは、DHCPサーバと通信し、作業負荷分散を行うために他のPODマネージャーと協力する。例えば、バックアップデータは、ターゲットストレージデバイスが作動しない時間の間に遠隔のストレージデバイスから用いられる。この場合、PODマネージャーは、システムレベル発見情報を用いてバックアップストレージデバイスに作業負荷を割り当てる。NVMeoF基盤のストレージシステムの場合、PODマネージャーは、一つ以上の発見サーバに連結し、ログ獲得命令を用いて利用可能なストレージデバイスのアップデートされた発見情報を検索する。先ず発見情報を用いて通信経路が構築されると、ターゲットストレージデバイスは、ホストコンピューターから受信された入出力要請を提供する。本発明の発見サービスは、受動アップデートを必要としないため、数々のラックとPODを含むハイパースケールデータセンターに対してスケーラブル(scalable)であり、ラックはその中に数々のコンピュートデバイス及び/又はストレージデバイスを含む。
【0037】
図4は、本発明の一実施形態による発見ログ情報を設定するための一例のフローチャートである。ストレージデバイスは、起動すると直ぐにDHCPクライアントを動作させ、401段階で、IPアドレスをレンタルするためにDHCPサーバに要請を伝送する。402段階で、DHCPサーバはDHCPクライアントによる要請に応答して動的又は永久IPアドレスをストレージデバイスのストレージデバイス制御器に割り当てる。403段階で、ストレージデバイスで動作するDLUは、RESTful API又はGraphQL要請を用いて、IPアドレス及びストレージデバイス制御器のポートアドレスを含む発見ログエントリーを発見サーバに伝送する。404段階で、発見サーバは複数のストレージデバイスの一つ以上の発見ログエントリーを含む発見ログページを設定する。405段階で、発見サーバはホストコンピューターに発見ログページを伝送する。
【0038】
図5は、本発明の一実施形態によるホストコンピューターとターゲットストレージデバイスとの間に通信を構築するための一例のフローチャートである。501段階で、ホストコンピューターは発見サーバに発見情報に対する要請を伝送する。発見サーバは、複数のストレージデバイスのDLUから受信された一つ以上の発見ログエントリーを格納する。502段階で、ホストコンピューターは発見サーバから一つ以上の発見ログエントリーを含む発見ログページを受信する。発見ログページで受信された一つ以上の発見ログページエントリーを用いて、503段階で、ホストコンピューターはターゲットストレージデバイスとの連結を構築し、504段階で、ターゲットストレージデバイスに作業負荷を割り当てる。
【0039】
図6は、本発明の一実施形態による自動発見の一例のプロセスを示す。601段階で、ストレージデバイス660のDHCPクライアントは、IPアドレスを獲得するためにDHCPサーバ630に要請を伝送し、602段階で、DHCPサーバ630は、IPアドレスを割り当て、ストレージデバイス660のDHCPクライアントにIPアドレスを伝送する。603段階で、ストレージデバイス660のDLU(又は、DHCPサーバ630)は、RESTful API又はGraphQL要請を用いて、自動的にストレージデバイス660の発見ログエントリーを発見サーバ650に伝送する。発見サーバ650は、複数のストレージデバイスの各DLUから一つ以上の発見ログエントリーを収集して、一つ以上の発見ログエントリーを含む発見ログページを準備する。611段階で、ホストコンピューター610は発見サーバ650にログページ獲得命令を伝送し、応答として、612段階で、発見サーバ650はホストコンピューター610に発見ログページを伝送する。発見ログページに含まれる情報を用いて、613段階で、ホストコンピューター610はストレージデバイス660との連結を構築する。
【0040】
本発明の一実施形態によるストレージシステムは、各々が動的ホスト構成プロトコル(DHCP)クライアントを動作させる複数のストレージデバイスと、ホストコンピューターに発見ログページを提供する発見サーバと、を備える。複数のストレージデバイスの各々で動作する発見ログアップデータ(DLU)は、対応するストレージデバイスの発見ログエントリーを発見サーバに提供する。ホストコンピューターは、発見ログページに含まれるターゲットストレージデバイスの発見ログエントリーを用いてターゲットストレージデバイスとの連結を構築し、入出力又はコンピュート作業負荷をターゲットストレージデバイスに提供する。発見ログページは、一つ以上の発見ログエントリーを含む複数のストレージデバイスの発見情報を含み、一つ以上の発見ログエントリー各々は、ホストコンピューターと対応するストレージデバイスとの間の通信を構築するために割り当てられた対応するストレージデバイスアドレスを含む。
【0041】
DHCPサーバは、複数のストレージデバイスの各々に対するアドレスを割り当て、複数のストレージデバイスの各発見ログアップデータは、割り当てられたアドレスを含むそれぞれの発見ログエントリーを発見サーバに自動的に伝送するために割り当てられたアドレスを用いる。
【0042】
発見ログエントリーは、ストレージデバイス制御器のポートアドレスを更に含む。
【0043】
ポートアドレスは、NVMeoF(Non−Volatile Memory express over Fabrics)仕様によって割り当てられる。
【0044】
発見サーバは、RESTful応用プログラムインタフェース(API)又はGraphQL要請を用いてホストコンピューターに発見ログページを伝送する。.
【0045】
複数のストレージデバイスの中の少なくとも一つは、NVMeoFデバイスであり、ホストコンピューターは、発見ログページを受信するために発見サーバにログ獲得命令を伝送する。
【0046】
発見サーバ及びDHCPサーバは、ストレージシステムの同じサーバ内に配置される。
【0047】
複数のストレージデバイスは、ラックに取り付けられ、ラック内の発見サーバは、ラックに固有のラックレベル発見情報を収集する。
【0048】
複数のストレージデバイスは、POD内の複数のラックの間に分散され、PODを担当する発見サーバは、PODに固有のPODレベル発見情報を収集する。
【0049】
PODのPODマネージャーは、PODレベル発見情報に基づいて複数のストレージデバイスの間に作業負荷を割り当てる。
【0050】
PODマネージャーは、ストレージシステムの他のPODマネージャーとPODレベル発見情報を交換する。
【0051】
本発明の一実施例によるストレージシステムの動作方法は、ストレージデバイス内の動的ホスト構成プロトコル(DHCP)クライアントを動作させる段階と、ストレージデバイスの発見ログエントリーを発見サーバに提供する段階と、発見サーバからホストコンピューターに発見ログページを提供する段階と、発見ログページに含まれるターゲットストレージデバイスの発見ログエントリーを用いてホストコンピューターとターゲットストレージデバイスとの間の連結を構築する段階と、ホストコンピューターからターゲットストレージデバイスに入出力又はコンピュート作業負荷を提供する段階と、を有する。発見ログページは、一つ以上の発見ログエントリーを含む複数のストレージデバイスの発見情報を含み、一つ以上の発見ログエントリーの各々は、ホストコンピューターと対応するストレージデバイスとの間の通信を構築するために割り当てられた対応するストレージデバイスのアドレスを含む。
【0052】
DHCPサーバは、複数のストレージデバイスの各々に対するアドレスを割り当て、複数のストレージデバイスの各発見ログアップデータは、割り当てられたアドレスを含むそれぞれの発見ログエントリーを発見サーバに自動的に伝送するために割り当てられたアドレスを用いる。
【0053】
発見ログエントリーは、ストレージデバイス制御器のポートアドレスを更に含む。
【0054】
ポートアドレスは、NVMeoF(non−volatile memory express over fabrics)仕様によって割り当でられる。
【0055】
発見サーバは、RESTful応用プログラムインタフェース(API)又はGraphQL要請を用いてホストコンピューターに発見ログページを伝送する。
【0056】
複数のストレージデバイスの中の少なくとも一つは、NVMeoFデバイスであり、ホストコンピューターは、発見ログページを受信するために発見サーバにログ獲得命令を伝送する。
【0057】
発見サーバ及びDHCPサーバは、ストレージシステムの同じサーバ内に配置される。
【0058】
複数のストレージデバイスは、ラックに取り付けられ、ラック内の発見サーバは、ラックに固有のラックレベル発見情報を収集する。
【0059】
複数のストレージデバイスは、POD内の複数のラックの間に分散され、PODを担当する発見サーバは、PODに固有のPODレベル発見情報を収集する。
【0060】
PODのPODマネージャーは、PODレベル発見情報に基づいて複数のストレージデバイスの間に作業負荷を割り当てる。
【0061】
PODマネージャーは、ストレージシステムの他のPODマネージャーとPODレベル発見情報を交換する。
【0062】
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【産業上の利用可能性】
【0063】
本発明は、分散ストレージデバイス(distributed storage device)のハイパースケールデータセンター(hyperscale datacenter)環境で分散ストレージデバイスの自動発見を提供するストレージシステム及びその動作方法の具現に有用である。
【符号の説明】
【0064】
100 分散ストレージシステム
110、610 ホストコンピューター
120 ファブリック
121 発見ログ要請
122、200 発見ログページ
123 ポートアドレス
124 発見ログエントリー
126 DFCP要請/応答
130、630 動的ホスト構成プロトコル(DHCP)サーバ、
150、650 発見サーバ
151 発見制御器
152 発見ログエントリー
160、660 ストレージデバイス
161 ストレージデバイス制御器
162 ポート
163 DHCPクライアント
164 データストレージ
165 発見ログアップデータ(DLU)
300 ログページエントリー