IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2022-187285管理装置,ストレージシステム及び情報処理方法
<>
  • 特開-管理装置,ストレージシステム及び情報処理方法 図1
  • 特開-管理装置,ストレージシステム及び情報処理方法 図2
  • 特開-管理装置,ストレージシステム及び情報処理方法 図3
  • 特開-管理装置,ストレージシステム及び情報処理方法 図4
  • 特開-管理装置,ストレージシステム及び情報処理方法 図5
  • 特開-管理装置,ストレージシステム及び情報処理方法 図6
  • 特開-管理装置,ストレージシステム及び情報処理方法 図7
  • 特開-管理装置,ストレージシステム及び情報処理方法 図8
  • 特開-管理装置,ストレージシステム及び情報処理方法 図9
  • 特開-管理装置,ストレージシステム及び情報処理方法 図10
  • 特開-管理装置,ストレージシステム及び情報処理方法 図11
  • 特開-管理装置,ストレージシステム及び情報処理方法 図12
  • 特開-管理装置,ストレージシステム及び情報処理方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022187285
(43)【公開日】2022-12-19
(54)【発明の名称】管理装置,ストレージシステム及び情報処理方法
(51)【国際特許分類】
   G06F 9/50 20060101AFI20221212BHJP
【FI】
G06F9/50 150D
G06F9/50 150C
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021095239
(22)【出願日】2021-06-07
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】白木 長武
(57)【要約】
【課題】ストレージシステムにおける負荷を分散させてスループットを向上させる。
【解決手段】ストレージシステムの管理装置であって、コンテナの実行の際に、ワークロード負荷情報131及びシステム負荷情報133~135を取得し、ワークロード210の起動の際に、ワークロード負荷情報131及びシステム負荷情報133~135に基づき、ワークロード210の配置先及びボリューム13のレプリカ位置の決定を行う。
【選択図】図3
【特許請求の範囲】
【請求項1】
ストレージシステムの管理装置であって、
コンテナの実行の際に、ワークロード負荷情報及びシステム負荷情報を取得し、
ワークロードの起動の際に、前記ワークロード負荷情報及びシステム負荷情報に基づき、ワークロード配置先及びボリュームのレプリカ位置の決定を行う、
管理装置。
【請求項2】
前記ストレージシステムは、互いにネットワークで接続される複数のサーバ装置と複数のストレージ装置とを備え、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である第1のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記プロセッサと前記アクセラレータとの間の通信量との和が、前記ネットワークにおける余裕度以下である第2のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記第1のサーバ装置又は前記第2のサーバ装置を、前記ワークロード配置先として決定する、
請求項1に記載の管理装置。
【請求項3】
前記ストレージシステムは、互いにネットワークで接続される複数のサーバ装置と複数のストレージ装置とを備え、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である1以上の第1のストレージ装置を、前記複数のストレージ装置の中から選択し、
前記1以上の第1のストレージ装置を、前記レプリカ位置として決定する、
請求項1又は2に記載の管理装置。
【請求項4】
前記ストレージシステムに備えられる複数のストレージ装置の間における負荷の偏りが閾値を超えた場合に、前記レプリカ位置の決定を行う、
請求項1~3のいずれか1項に記載の管理装置。
【請求項5】
管理装置とサーバ装置とストレージ装置とを備えるストレージシステムであって、
前記サーバ装置は、当該サーバ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記ストレージ装置は、当該ストレージ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記管理装置は、
コンテナの実行の際に、ワークロード負荷情報と、前記サーバ装置及び前記ストレージ装置から送信されたシステム負荷情報を取得し、
ワークロードの起動の際に、前記ワークロード負荷情報及びシステム負荷情報に基づき、ワークロード配置先及びボリュームのレプリカ位置の決定を行う、
ストレージシステム。
【請求項6】
管理装置とサーバ装置とストレージ装置とを備えるストレージシステムにおける情報処理方法であって、
前記サーバ装置は、当該サーバ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記ストレージ装置は、当該ストレージ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記管理装置は、
コンテナの実行の際に、ワークロード負荷情報と、前記サーバ装置及び前記ストレージ装置から送信されたシステム負荷情報を取得し、
ワークロードの起動の際に、前記ワークロード負荷情報及びシステム負荷情報に基づき、ワークロード配置先及びボリュームのレプリカ位置の決定を行う、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、管理装置,ストレージシステム及び情報処理方法に関する。
【背景技術】
【0002】
ネットワークを経由したストレージを有するクラスタシステムが存在する。
【0003】
クラスタシステムでは、複数のサーバがネットワークによって接続したクラスタとして用意され、そのハードウェアをアプリケーションがシェアして利用する。クラスタ構成の一つの形態として、計算資源(CPU)と記憶資源(ストレージ)とを分離したシステムがある。アプリケーションの実行形態として、低オーバヘッドのコンテナの採用が進んでいる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国公開公報第2018/0248949号
【特許文献2】米国公開公報第2019/0306022号
【特許文献3】特表2016-528617号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
図1は、クラスタシステムにおけるデータの読み出し例を説明する図である。
【0006】
図1に示すクラスタシステムにおいては、ストレージ#1に記憶されているデータA,B及びストレージ#2に記憶されているデータCに対して、それぞれ、ストレージ#2にレプリカとしてのデータA’が記憶され、ストレージ#3にレプリカとしてのデータB’,C’が記憶されている。
【0007】
符号A1に示すように、サーバ#1は、ストレージ#1からデータAを読み出している。また、符号A2に示すように、サーバ#2は、ストレージ#1からデータBを読み出している。更に、符号A3に示すように、サーバ#3は、ストレージ#2からデータCを読み出している。
【0008】
このように、クラスタシステムにおいて、ワークロードの制御が行われない場合には、ワークロードが特定のストレージ(図1に示す例では、ストレージ#1)に集中してしまい、スループットが低下してしまうおそれがある。
【0009】
1つの側面では、ストレージシステムにおける負荷を分散させてスループットを向上させることを目的とする。
【課題を解決するための手段】
【0010】
1つの側面では、管理装置は、ストレージシステムの管理装置であって、コンテナの実行の際に、ワークロード負荷情報及びシステム負荷情報を取得し、ワークロードの起動の際に、前記ワークロード負荷情報及びシステム負荷情報に基づき、ワークロード配置先及びボリュームのレプリカ位置の決定を行う。
【発明の効果】
【0011】
1つの側面では、ストレージシステムにおける負荷を分散させてスループットを向上させることができる。
【図面の簡単な説明】
【0012】
図1】クラスタシステムにおけるデータの読み出し例を説明する図である。
図2】実施形態におけるワークロード負荷情報の取得及び蓄積を簡単に説明するブロック図である。
図3】実施形態としてのストレージシステムにおけるレプリカ位置の決定動作を説明するブロック図である。
図4図3に示したストレージシステムの構成例を模式的に示すブロック図である。
図5】実施形態としての情報処理装置のハードウェア構成例を模式的に示すブロック図である。
図6図3に示した管理ノードのソフトウェア構成例を模式的に示すブロック図である。
図7図3に示したコンピュートノードのソフトウェア構成例を模式的に示すブロック図である。
図8図3に示したストレージノードのソフトウェア構成例を模式的に示すブロック図である。
図9】実施形態におけるレプリカ位置の決定処理を説明するフローチャートである。
図10図9に示したCPU及びアクセラレータの配置処理の詳細を説明するフローチャートである。
図11図9に示したストレージの配置処理の詳細を説明するフローチャートである。
図12図11に示したストレージの配置処理における帯域目標値を説明するためのテーブルである。
図13】実施形態におけるストレージノードのリバランス処理を説明するフローチャートである。
【発明を実施するための形態】
【0013】
〔A〕実施形態
以下、図面を参照して一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【0014】
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
【0015】
〔A-1〕構成例
図2は、実施形態におけるワークロード負荷情報の取得及び蓄積を簡単に説明するブロック図である。
【0016】
ワークロードの実行の際には、ワークロード負荷情報131が取得され、ワークロードIDと関連付けて保存される。別言すれば、コンテナを実行するときに、リソースへのアクセス状況が取得される。そして、コンテナイメージと関連付けてリソース要求情報が蓄積される。
【0017】
ワークロードの実行中の負荷として、CPU負荷やメモリ負荷、Graphics Processing Unit(GPU)など使用ボリューム・アクセラレータ負荷、I/O負荷が観測される。I/O負荷は、データ総量や速度の平均・最大値・分散であってよい。
【0018】
I/O負荷は、CPU101-ストレージ103間、CPU101-ネットワーク102間、CPU101-アクセラレータ104間、アクセラレータ104-ストレージ103間と分類して取得されてよい。
【0019】
CPU101及びアクセラレータ104は、メモリを内蔵していてよい。
【0020】
図3は、実施形態としてのストレージシステム100におけるレプリカ位置の決定動作を説明するブロック図である。
【0021】
ストレージシステム100は、管理ノード1,複数(図示する例では3つ)のコンピュートノード2及び複数(図示する例では3つ)のストレージノード3を備える。
【0022】
管理ノード1は、管理装置の一例であり、ワークロード実行要求を受け取ると、ワークロード負荷情報131,ノードリソース情報132,コンピュートノード負荷情報133,アクセラレータ負荷情報134,ストレージノード負荷情報135及びボリューム配置情報136を収集する。そして、管理ノード1は、ワークロード(WL)210及びアクセラレータ(ACC)220をスケジューリングして、ワークロード210の配置及び使用ボリュームのレプリカ位置を決定する。
【0023】
ワークロード負荷情報131は、コンピュートノード2において実行されるワークロード210による負荷を示す。
【0024】
ノードリソース情報132は、各ノードがメモリやCPU,アクセラレータ220等をどの程度有しているかを示す静的な情報である。
【0025】
コンピュートノード負荷情報133は、コンピュートノード2におけるCPU,メモリ(MEM)及びネットワーク(NET)の負荷を示す。
【0026】
アクセラレータ負荷情報134は、コンピュートノード2におけるアクセラレータ220の負荷を示す。
【0027】
ストレージノード負荷情報135は、ストレージノード3におけるディスク13の負荷を示す。
【0028】
ボリューム配置情報136は、各ストレージノード3にどのボリュームが存在するかを示す。
【0029】
管理ノード1は、図4を用いて後述するスケジューラ110がリソースの利用状況を把握する。ワークロード210(別言すれば、コンテナ)の起動時に、ワークロード210の負荷要求及びリソース利用状況に基づき、コンピュートノード2(別言すれば、CPUノード及びアクセラレータノード)及びストレージノード3を決定する。決定には、I/O負荷の増加が配置ノードのネットワークスラック(別言すれば、余裕)を超えないことを考慮して、負荷状況に応じてストレージノード3の選択が動的に制御される。
【0030】
図4は、図3に示したストレージシステム100の構成例を模式的に示すブロック図である。
【0031】
ストレージシステム100は、例えばクラスタシステムであり、管理ノード1,複数(図4に示す例では、2つ)のコンピュートノード2及び複数(図4に示す例では、2つ)のストレージノード3を備える。管理ノード1と複数のコンピュートノード2と複数のストレージノード3とは、ネットワーク170を介して接続される。
【0032】
管理ノード1は、管理装置の一例であり、スケジューラ110,情報130及びNetwork Interface Card(NIC)17を備える。スケジューラ110は、コンピュートノード2におけるワークロード210とストレージノード3におけるディスク13との配置を決定する。情報130は、図3に示したワークロード負荷情報131,ノードリソース情報132,コンピュートノード負荷情報133,アクセラレータ負荷情報134,ストレージノード負荷情報135及びボリューム配置情報136を含む。NIC17は、管理ノード1をネットワーク170に接続させる。
【0033】
各コンピュートノード2は、サーバ装置の一例であり、複数(図4に示す例では、3つ)のワークロード210及びNIC17を備える。ワークロード210は、管理ノード1によって配置され、ストレージノード3のデータへアクセスするために実行される。NIC17は、コンピュートノード2をネットワーク170に接続させる。
【0034】
各ストレージノード3は、ストレージ装置の一例であり、複数(図4に示す例では、3つ)のディスク13及びNIC17を備える。ディスク13は、コンピュートノード2からのアクセス対象となるデータを記憶する記憶装置である。NIC17は、ストレージノード3をネットワーク170に接続させる。
【0035】
図5は、実施形態としての情報処理装置10のハードウェア構成例を模式的に示すブロック図である。
【0036】
図5に示す情報処理装置10のハードウェア構成例は、図4に示した管理ノード1,コンピュートノード2及びストレージノード3のそれぞれのハードウェア構成例を示す。
【0037】
情報処理装置10は、プロセッサ11,Random Access Memory(RAM)12,ディスク13,グラフィックInterface(I/F)14,入力I/F15,ストレージI/F16及びネットワーク1/F17を備える。
【0038】
プロセッサ11は、例示的に、種々の制御や演算を行なう処理装置であり、RAM12に格納されたOperating System(OS)やプログラムを実行することにより、種々の機能を実現する。
【0039】
なお、プロセッサ11としての機能を実現するためのプログラムは、例えばフレキシブルディスク、CD(CD-ROM、CD-R、CD-RW等)、DVD(DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW、HD DVD等)、ブルーレイディスク、磁気ディスク、光ディスク、光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供されてよい。そして、コンピュータ(本実施形態ではプロセッサ11)は上述した記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いてよい。また、プログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、記憶装置から通信経路を介してコンピュータに提供してもよい。
【0040】
プロセッサ11としての機能を実現する際には、内部記憶装置(本実施形態ではRAM12)に格納されたプログラムがコンピュータ(本実施形態ではプロセッサ11)によって実行されてよい。また、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
【0041】
プロセッサ11は、情報処理装置10全体の動作を制御する。プロセッサ11は、マルチプロセッサであってもよい。プロセッサ11は、例えばCentral Processing Unit(CPU)やMicro Processing Unit(MPU),Digital Signal Processor(DSP),Application Specific Integrated Circuit(ASIC),Programmable Logic Device(PLD),Field Programmable Gate Array(FPGA)のいずれか一つであってもよい。また、プロセッサ11は、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
【0042】
RAM12は、例えばDynamic RAM(DRAM)であってよい。RAM12のソフトウェアプログラムは、プロセッサ11に適宜に読み込まれて実行されてよい。また、RAM12は、一次記録メモリあるいはワーキングメモリとして利用されてよい。
【0043】
ディスク13は、例示的に、データを読み書き可能に記憶する装置であり、例えば、Hard Disk Drive(HDD)やSolid State Drive(SSD),Storage Class Memory(SCM)が用いられてよい。
【0044】
グラフィックI/F14は、表示装置140に対して映像を出力する。表示装置140は、液晶ディスプレイやOrganic Light-Emitting Diode(OLED)ディスプレイ,Cathode Ray Tube(CRT),電子ペーパーディスプレイ等であり、オペレータ等に対する各種情報を表示する。
【0045】
入力I/F15は、入力装置150からのデータの入力を受け付ける。入力装置150は、例えば、マウス、トラックボール、キーボードであり、この入力装置150を介して、オペレータが各種の入力操作を行なう。入力装置150及び表示装置140は組み合わされたものでもよく、例えば、タッチパネルでもよい。
【0046】
ストレージI/F16は、媒体読み取り装置160に対するデータの入出力を行う。媒体読み取り装置160は、記録媒体が装着可能に構成される。媒体読み取り装置160は、記録媒体が装着された状態において、記録媒体に記録されている情報を読み取り可能に構成される。本例では、記録媒体は可搬性を有する。例えば、記録媒体は、フレキシブルディスク、光ディスク、磁気ディスク、光磁気ディスク、又は、半導体メモリ等である。
【0047】
ネットワークI/F17は、情報処理装置10をネットワーク170と接続し、このネットワーク170を介して他の情報処理装置10(別言すれば、管理ノード1、コンピュートノード2又はストレージノード3)や図示しない外部装置と通信を行なうためのインタフェース装置である。ネットワークI/F17としては、例えば、有線Local Area Network(LAN)や無線LAN,Wireless Wide Area Network(WWAN)のネットワーク170の規格に対応する各種インタフェースカードを用いることができる。
【0048】
図6は、図3に示した管理ノード1のソフトウェア構成例を模式的に示すブロック図である。
【0049】
管理ノード1は、スケジューラ110及び情報交換部111として機能する。
【0050】
情報交換部111は、ネットワーク170を介して、他のノード(別言すれば、コンピュートノード2及びストレージノード3)から、ワークロード負荷情報131,コンピュートノード負荷情報133,ストレージノード負荷情報135及びアクセラレータ負荷情報134を取得する。
【0051】
別言すれば、情報交換部111は、コンテナの実行の際に、ワークロード負荷情報131及びシステム負荷情報(別言すれば、コンピュートノード負荷情報133,アクセラレータ負荷情報134及びストレージノード負荷情報135)を取得する。
【0052】
スケジューラ110は、ノードリソース情報132及びボリューム配置情報136に加えて、情報交換部111によって取得されたワークロード負荷情報131,コンピュートノード負荷情報133,ストレージノード負荷情報135及びアクセラレータ負荷情報134に基づき、ワークロード210の配置を決定する。
【0053】
別言すれば、スケジューラ110は、ワークロード210の起動の際に、ワークロード負荷情報131及びシステム負荷情報に基づき、ワークロード210の配置先及びボリュームのレプリカ位置の決定を行う。
【0054】
スケジューラ110は、プロセッサ11とネットワーク170との間の通信量と、プロセッサ11とボリュームとの間の通信量と、アクセラレータ220とボリュームとの間の通信量との和が、ネットワーク170における余裕度以下である第1のコンピュートノード2を、複数のコンピュートノード2の中から選択してよい。また、スケジューラ110は、プロセッサ11とネットワーク170との間の通信量と、プロセッサ11とボリュームとの間の通信量と、プロセッサ11とアクセラレータ220との間の通信量との和が、ネットワーク170における余裕度以下である第2のコンピュートノード2を、複数のコンピュートノード2の中から選択してよい。そして、スケジューラ110は、第1のコンピュートノード2又は前記第2のコンピュートノード2を、ワークロード210の配置先として決定してよい。
【0055】
スケジューラ110は、プロセッサ11とボリュームとの間の通信量と、アクセラレータ220とボリュームとの間の通信量との和が、ネットワーク170における余裕度以下である1以上の第1のストレージノード3を、複数のストレージノード3の中から選択してよい。そして、スケジューラ110は、1以上の第1のストレージノード3を、レプリカ位置として決定してよい。
【0056】
スケジューラ110は、ストレージシステム100に備えられる複数のストレージノード3の間における負荷の偏りが閾値を超えた場合に、レプリカ位置の決定を行ってもよい。
【0057】
図7は、図3に示したコンピュートノード2のソフトウェア構成例を模式的に示すブロック図である。
【0058】
コンピュートノード2は、ワークロード配備部211,情報交換部212及び負荷情報取得部213をエージェントとして備える。
【0059】
負荷情報取得部213は、OS20から、図6に示したワークロード負荷情報131,コンピュートノード負荷情報133及びアクセラレータ負荷情報134を含む負荷情報230を取得する。
【0060】
情報交換部212は、Virtual Switch(VSW)214及びネットワーク170を介して、管理ノード1に対して負荷情報取得部213によって取得された負荷情報230を送信する。
【0061】
ワークロード配備部211は、管理ノード1における決定に基づき、ワークロード(WL)210を配備する。
【0062】
図8は、図3に示したストレージノード3のソフトウェア構成例を模式的に示すブロック図である。
【0063】
ストレージノード3は、情報交換部311及び負荷情報取得部312をエージェントとして備える。
【0064】
負荷情報取得部312は、OS30から、図6に示したストレージノード負荷情報135を含む負荷情報330を取得する。
【0065】
情報交換部311は、VSW313及びネットワーク170を介して、管理ノード1に対して負荷情報取得部312によって取得された負荷情報330を送信する。
【0066】
〔A-2〕動作例
実施形態におけるレプリカ位置の決定処理を、図9に示すフローチャート(ステップS1~S5)に従って説明する。
【0067】
管理ノード1は、CPU及びアクセラレータ220の配置を行う(ステップS1)。なお、CPU及びアクセラレータ220の配置処理の詳細は、図10を用いて後述する。
【0068】
管理ノード1は、CPU及びアクセラレータ220の配置ができたかを判定する(ステップS2)。
【0069】
配置ができていない場合には(ステップS2のNOルート参照)、処理はステップS5へ進む。
【0070】
一方、配置ができた場合には(ステップS2のYESルート参照)、管理ノード1は、ストレージの配置を行う(ステップS3)。なお、ストレージの配置処理は、図11を用いて後述する。
【0071】
管理ノード1は、ストレージの配置ができたかを判定する(ステップS4)。
【0072】
配置ができていない場合には(ステップS4のNOルート参照)、管理ノード1は、ワークロード210をスタンバイ状態とする(ステップS5)。そして、レプリカ位置の決定処理は終了する。
【0073】
一方、配置ができた場合には(ステップS4のYESルート参照)、レプリカ位置の決定処理は終了する。
【0074】
次に、図9に示したCPU及びアクセラレータ220の配置処理の詳細を、図10に示すフローチャート(ステップS11~S17)に従って説明する。
【0075】
管理ノード1は、CPU及びメモリ(MEM)の要件を満たすノードの集合をXとし、アクセラレータ(ACC)220の要件を満たすノードの集合をYとし、XとYとの積集合X∩YをZとする(ステップS11)。
【0076】
管理ノード1は、集合Zの中で、ネットワーク要件「CPU_NET + CPU_VOL + ACC_VOL <= ネットワークslack」を満たすノードをひとつ選ぶ(ステップS12)。なお、CPU_NETはCPUとネットワークとの間の通信量を示し、CPU_VOLはCPUとボリュームとの間の通信量を示し、ACC_VOLはアクセラレータ220とボリュームとの間の通信量を示す。また、ネットワークslackは、あるノードのネットワーク量の余裕を示す。
【0077】
管理ノード1は、ネットワーク要件を満たすノードがみつかったかを判定する(ステップS13)。
【0078】
ネットワーク要件を満たすノードがみつかった場合には(ステップS13のYESルート参照)、配置可能であるとして、CPU及びアクセラレータ220の配置処理は終了する。
【0079】
一方、ネットワーク要件を満たすノードがみつからなかった場合には(ステップS13のNOルート参照)、管理ノード1は、集合Xの中で、ネットワーク要件「CPU_NET + CPU_VOL + CPU_ACC <= ネットワークslack」を満たすノードをひとつ選ぶ(ステップS14)。なお、CPU_NETはCPUとネットワークとの間の通信量を示し、CPU_VOLはCPUとボリュームとの間の通信量を示し、CPU_ACCはCPUとアクセラレータ220との間の通信量を示す。また、ネットワークslackは、あるノードのネットワーク量の余裕を示す。
【0080】
管理ノード1は、ネットワーク要件を満たすノードがみつかったかを判定する(ステップS15)。
【0081】
ネットワーク要件を満たすノードがみつからなかった場合には(ステップS15のNOルート参照)、配置不可能であるとして、CPU及びアクセラレータ220の配置処理は終了する。
【0082】
一方、ネットワーク要件を満たすノードがみつかった場合には(ステップS15のYESルート参照)、管理ノード1は、集合Yの中で、ネットワーク要件「ACC_VOL + CPU_ACC <= ネットワークslack」を満たすノードをひとつ選ぶ(ステップS16)。なお、ACC_VOLはアクセラレータ220とボリュームとの間の通信量を示し、CPU_ACCはCPUとアクセラレータ220との間の通信量を示す。また、ネットワークslackは、あるノードのネットワーク量の余裕を示す。
【0083】
管理ノード1は、ネットワーク要件を満たすノードがみつかったかを判定する(ステップS17)。
【0084】
ネットワーク要件を満たすノードがみつかった場合には(ステップS17のYESルート参照)、配置可能であるとして、CPU及びアクセラレータ220の配置処理は終了する。
【0085】
一方、ネットワーク要件を満たすノードがみつからなかった場合には(ステップS17のNOルート参照)、配置不可能であるとして、CPU及びアクセラレータ220の配置処理は終了する。
【0086】
次に、図9に示したストレージの配置処理の詳細を、図11に示すフローチャート(ステップS21~S26)に従って説明する。
【0087】
管理ノード1は、ボリュームのレプリカを持つストレージノード3の集合をVとする(ステップS21)。
【0088】
管理ノード1は、集合Vの中で、ネットワーク要件「CPU_VOL + ACC_VOL <= ネットワークslack」を満たすノードをひとつ選ぶ(ステップS22)。なお、CPU_VOLはCPUとボリュームとの間の通信量を示し、ACC_VOLはアクセラレータ220とボリュームとの間の通信量を示す。また、ネットワークslackは、あるノードのネットワーク量の余裕を示す。
【0089】
管理ノード1は、ネットワーク要件を満たすノードがみつかったかを判定する(ステップS23)。
【0090】
ネットワーク要件を満たすノードがみつかった場合には(ステップS23のYESルート参照)、配置可能であるとして、ストレージの配置処理は終了する。
【0091】
一方、ネットワーク要件を満たすノードがみつからなかった場合には(ステップS23のNOルート参照)、管理ノード1は、集合Vの中から、組み合わせることによってネットワーク要件「CPU_VOL + ACC_VOL <= ネットワークslack」を満たす複数のノードを選ぶ(ステップS24)。なお、CPU_VOLはCPUとボリュームとの間の通信量を示し、ACC_VOLはアクセラレータ220とボリュームとの間の通信量を示す。また、ネットワークslackは、あるノードのネットワーク量の余裕を示す。
【0092】
管理ノード1は、選択されたノードの中でボリュームを配置する(ステップS25)。
【0093】
管理ノード1は、ネットワーク要件を満たすノードがみつかったかを判定する(ステップS26)。
【0094】
ネットワーク要件を満たすノードがみつかった場合には(ステップS26のYESルート参照)、配置可能であるとして、ストレージの配置処理は終了する。
【0095】
一方、ネットワーク要件を満たすノードがみつからなかった場合には(ステップS26のNOルート参照)、配置不可能であるとして、ストレージの配置処理は終了する。
【0096】
図12は、図11に示したストレージの配置処理における帯域目標値を説明するためのテーブルである。
【0097】
3つの使用ボリュームV1, V2, V3があり、レプリカをストレージノード3に持つとする。図12に示す例では、ボリュームV1のレプリカがストレージノード#1,#2に配置され、ボリュームV2のレプリカがストレージノード#2,#3に配置され、ボリュームV3のレプリカがストレージノード#1,#3に配置されている。また、ボリュームV1, V2, V3毎の負荷をそれぞれR1, R2, R3とする。
【0098】
ストレージノード3毎のネットワークSlackをS1, S2, S3とする。
【0099】
ストレージの割り当ては、以下の手順(1)~(4)の手順で行われる。
【0100】
(1)S1を超えない範囲でR 11, R 31を最大限割り当てる。このときR 11を優先する。なお、R11=min(S1, R1)であり、R31=min(S1-R11, R3)である。
R11+ R31≦S1, R11≦R1, R31≦R3
【0101】
(2)S2を超えない範囲でR12, R22を最大限割り当てる。このときR12を優先する。
R12+ R21≦R2, R12=R1-R11, R22≦R2
【0102】
(3)S3を超えない範囲でR23, R33を割り当てる。
R 23+ R33≦S3, R23=R2-R22, R33= R 3-R31
【0103】
(4)上記の(1)~(3)のいずれも満たせない場合は、割り当て不可能となる。
【0104】
そして、帯域目標値が満たされるように、ボリュームへのアクセスが制御される。ストレージノード3のボリュームがN個のブロックで構成されている場合に、各ブロックへのアクセス帯域RがR1とR2(R=R1+R2)に振り分けられる。
【0105】
ワークロード210の配備時には、ボリュームのレプリカを持つ2つのノードに対して、相当するブロック数を以下のようにN1, N2に分割する。
【数1】
【0106】
また、ワークロード210の実行時には、ボリュームにアクセスするワークロード210の実行ノードにおいて、そのボリュームへのアクセス帯域をRに制限する。各ブロックへのアクセスが均一に行われる状況で、各レプリカへのアクセス帯域はR1, R2となる。
【0107】
次に、実施形態におけるストレージノード3のリバランス処理を、図13に示すフローチャート(ステップS31,S32)に従って説明する。
【0108】
管理ノード1は、一定間隔で、各ストレージノード3の負荷の偏りが閾値を超えたかを判定する(ステップS31)。
【0109】
各ストレージノード3の負荷の偏りが閾値を超えていない場合には(ステップS31のNOルート参照)。ステップS31における処理が繰り返し実行される。
【0110】
一方、各ストレージノード3の負荷の偏りが閾値を超えた場合には(ステップS31のYESルート参照)、管理ノード1は、ストレージノード3の選択のリバランスを行う(ステップS32)。これにより、特定のストレージノード3に対する負荷が高くなり性能が低下することを防止でき、負荷の偏りを減らすことによりワークロードへの公平なリソース割り当てを実現できる。そして、ストレージノード3のリバランス処理は終了する。
【0111】
次式により、ネットワークSlackの平均と差分d及び分散Dを求め、分散Dが閾値tを超えたらリバランスが実施される。
【0112】
【数2】
【0113】
そして、リバランスは、以下の手順(1)~(4)より行われる。
【0114】
(1)以下の集合G, Lを定義する。
【数3】
【0115】
(2)集合G, Lの両方にレプリカが属するボリュームの集合Vを抽出する。
【0116】
(3)集合Vからひとつボリュームを選び、負荷割り当てを集合Gから集合Lに移動する。
【0117】
(4)集合G, Lに属するボリュームの帯域の差が一定値以下になるか、移動候補ボリュームがなくなるまで繰り返す。
【0118】
〔B〕効果
上述した実施形態の一例における管理ノード1,ストレージシステム100及び情報処理方法によれば、例えば、以下の作用効果を奏することができる。
【0119】
管理ノード1は、コンテナの実行の際に、ワークロード負荷情報131及びシステム負荷情報(別言すれば、コンピュートノード負荷情報133,アクセラレータ負荷情報134及びストレージノード負荷情報135)を取得する。管理ノード1は、ワークロード210の起動の際に、ワークロード負荷情報131及びシステム負荷情報に基づき、ワークロード210の配置先及びボリュームのレプリカ位置の決定を行う。
【0120】
これにより、ストレージシステム100における負荷を分散させてスループットを向上させることができる。具体的には、クラスタのもつリソースを、通信やストレージを含めて、有効に活用することができる。したがって、同一のシステムでより多くのアプリケーションを実行することができる。
【0121】
管理ノード1は、プロセッサ11とネットワーク170との間の通信量と、プロセッサ11とボリュームとの間の通信量と、アクセラレータ220とボリュームとの間の通信量との和が、ネットワーク170における余裕度以下である第1のコンピュートノード2を、複数のコンピュートノード2の中から選択する。管理ノード1は、プロセッサ11とネットワーク170との間の通信量と、プロセッサ11とボリュームとの間の通信量と、プロセッサ11とアクセラレータ220との間の通信量との和が、ネットワーク170における余裕度以下である第2のコンピュートノード2を、複数のコンピュートノード2の中から選択する。管理ノード1は、第1のコンピュートノード2又は前記第2のコンピュートノード2を、ワークロード210の配置先として決定する。
【0122】
これにより、ワークロード210の配置先に適切なコンピュートノード2を選択できる。
【0123】
管理ノード1は、プロセッサ11とボリュームとの間の通信量と、アクセラレータ220とボリュームとの間の通信量との和が、ネットワーク170における余裕度以下である1以上の第1のストレージノード3を、複数のストレージノード3の中から選択する。管理ノード1は、1以上の第1のストレージノード3を、レプリカ位置として決定する。
【0124】
これにより、ボリュームのレプリカ位置に適切なストレージノード3を選択できる。
【0125】
管理ノード1は、ストレージシステム100に備えられる複数のストレージノード3の間における負荷の偏りが閾値を超えた場合に、レプリカ位置の決定を行う。
【0126】
これにより、特定のストレージノード3に対する負荷が高くなり性能が低下することを防止でき、負荷の偏りを減らすことによりワークロードへの公平なリソース割り当てを実現できる。
【0127】
〔C〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【0128】
〔D〕付記
以上の実施形態に関し、更に以下の付記を開示する。
【0129】
(付記1)
ストレージシステムの管理装置であって、
コンテナの実行の際に、ワークロード負荷情報及びシステム負荷情報を取得し、
ワークロードの起動の際に、前記ワークロード負荷情報及びシステム負荷情報に基づき、ワークロード配置先及びボリュームのレプリカ位置の決定を行う、
管理装置。
【0130】
(付記2)
前記ストレージシステムは、互いにネットワークで接続される複数のサーバ装置と複数のストレージ装置とを備え、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である第1のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記プロセッサと前記アクセラレータとの間の通信量との和が、前記ネットワークにおける余裕度以下である第2のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記第1のサーバ装置又は前記第2のサーバ装置を、前記ワークロード配置先として決定する、
付記1に記載の管理装置。
【0131】
(付記3)
前記ストレージシステムは、互いにネットワークで接続される複数のサーバ装置と複数のストレージ装置とを備え、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である1以上の第1のストレージ装置を、前記複数のストレージ装置の中から選択し、
前記1以上の第1のストレージ装置を、前記レプリカ位置として決定する、
付記1又は2に記載の管理装置。
【0132】
(付記4)
前記ストレージシステムに備えられる複数のストレージ装置の間における負荷の偏りが閾値を超えた場合に、前記レプリカ位置の決定を行う、
付記1~3のいずれか1項に記載の管理装置。
【0133】
(付記5)
管理装置とサーバ装置とストレージ装置とを備えるストレージシステムであって、
前記サーバ装置は、当該サーバ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記ストレージ装置は、当該ストレージ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記管理装置は、
コンテナの実行の際に、ワークロード負荷情報と、前記サーバ装置及び前記ストレージ装置から送信されたシステム負荷情報を取得し、
ワークロードの起動の際に、前記ワークロード負荷情報及びシステム負荷情報に基づき、ワークロード配置先及びボリュームのレプリカ位置の決定を行う、
ストレージシステム。
【0134】
(付記6)
前記サーバ装置及び前記ストレージ装置は、互いにネットワークで接続され、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である第1のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記プロセッサと前記アクセラレータとの間の通信量との和が、前記ネットワークにおける余裕度以下である第2のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記第1のサーバ装置又は前記第2のサーバ装置を、前記ワークロード配置先として決定する、
付記5に記載のストレージシステム。
【0135】
(付記7)
前記サーバ装置及び前記ストレージ装置は、互いにネットワークで接続され、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である1以上の第1のストレージ装置を、前記複数のストレージ装置の中から選択し、
前記1以上の第1のストレージ装置を、前記レプリカ位置として決定する、
付記5又は6に記載のストレージシステム。
【0136】
(付記8)
前記複数のストレージ装置の間における負荷の偏りが閾値を超えた場合に、前記レプリカ位置の決定を行う、
付記5~7のいずれか1項に記載のストレージシステム。
【0137】
(付記9)
管理装置とサーバ装置とストレージ装置とを備えるストレージシステムにおける情報処理方法であって、
前記サーバ装置は、当該サーバ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記ストレージ装置は、当該ストレージ装置におけるシステム負荷情報を前記管理装置へ送信し、
前記管理装置は、
コンテナの実行の際に、ワークロード負荷情報と、前記サーバ装置及び前記ストレージ装置から送信されたシステム負荷情報を取得し、
ワークロードの起動の際に、前記ワークロード負荷情報及びシステム負荷情報に基づき、ワークロード配置先及びボリュームのレプリカ位置の決定を行う、
情報処理方法。
【0138】
(付記10)
前記サーバ装置及び前記ストレージ装置は、互いにネットワークで接続され、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である第1のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記プロセッサと前記ネットワークとの間の通信量と、前記プロセッサと前記ボリュームとの間の通信量と、前記プロセッサと前記アクセラレータとの間の通信量との和が、前記ネットワークにおける余裕度以下である第2のサーバ装置を、前記複数のサーバ装置の中から選択し、
前記第1のサーバ装置又は前記第2のサーバ装置を、前記ワークロード配置先として決定する、
付記9に記載の情報処理方法。
【0139】
(付記11)
前記サーバ装置及び前記ストレージ装置は、互いにネットワークで接続され、
前記複数のサーバ装置のそれぞれは、プロセッサとアクセラレータとを備え、
前記複数のストレージ装置のそれぞれは、ボリュームを備え、
前記プロセッサと前記ボリュームとの間の通信量と、前記アクセラレータと前記ボリュームとの間の通信量との和が、前記ネットワークにおける余裕度以下である1以上の第1のストレージ装置を、前記複数のストレージ装置の中から選択し、
前記1以上の第1のストレージ装置を、前記レプリカ位置として決定する、
付記9又は10に記載の情報処理方法。
【0140】
(付記12)
前記複数のストレージ装置の間における負荷の偏りが閾値を超えた場合に、前記レプリカ位置の決定を行う、
付記9~11のいずれか1項に記載の情報処理方法。
【符号の説明】
【0141】
1 :管理ノード
2 :コンピュートノード
3 :ストレージノード
10 :情報処理装置
11 :プロセッサ
12 :RAM
13 :ディスク
14 :グラフィックI/F
15 :入力I/F
16 :ストレージI/F
17 :ネットワークI/F
100 :ストレージシステム
101 :CPU
102,170:ネットワーク
103 :ストレージ
104,220:アクセラレータ
110 :スケジューラ
111 :情報交換部
130 :情報
131 :ワークロード負荷情報
132 :ノードリソース情報
133 :コンピュートノード負荷情報
134 :アクセラレータ負荷情報
135 :ストレージノード負荷情報
136 :ボリューム配置情報
140 :表示装置
150 :入力装置
160 :媒体読み取り装置
210 :ワークロード
211 :ワークロード配備部
212 :情報交換部
213 :負荷情報取得部
214,313:VSW
230 :負荷情報
311 :情報交換部
312 :負荷情報取得部
330 :負荷情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13