JP2021077213A - ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム - Google Patents

ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム Download PDF

Info

Publication number
JP2021077213A
JP2021077213A JP2019204778A JP2019204778A JP2021077213A JP 2021077213 A JP2021077213 A JP 2021077213A JP 2019204778 A JP2019204778 A JP 2019204778A JP 2019204778 A JP2019204778 A JP 2019204778A JP 2021077213 A JP2021077213 A JP 2021077213A
Authority
JP
Japan
Prior art keywords
node
volume
density
remaining
storage
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.)
Pending
Application number
JP2019204778A
Other languages
English (en)
Inventor
秀行 坂井
Hideyuki Sakai
秀行 坂井
受田 賢知
Masatomo Ukeda
賢知 受田
智也 太田
Tomoya Ota
智也 太田
聡一 高重
Soichi Takashige
聡一 高重
林 真一
Shinichi Hayashi
真一 林
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2019204778A priority Critical patent/JP2021077213A/ja
Priority to US17/012,423 priority patent/US20210141538A1/en
Publication of JP2021077213A publication Critical patent/JP2021077213A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】IO密度に応じた階層化に対応しつつ、ボリューム配置を適正化する。【解決手段】ストレージ管理装置1は、ノードのIOPSおよび容量の残量に基づいて残IO密度を算出し、残IO密度に基づいてノードの階層を制御し、配置対象のボリュームのIO密度とノードの残IO密度との差分に基づいて、ボリュームが配置されるノードを選択し、その選択時において配置対象のボリュームのIO密度とノードの残IO密度との差分が最も小さいノードを、ボリュームの配置先として決定する。【選択図】図1

Description

本発明は、ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラムに関する。
ストレージの性能およびコストを最適化するために、性能の異なる複数のストレージを階層化したストレージシステムが登場し、市場シェアを伸ばしている。性能の異なるストレージとは、例えば、HDD(Hard Disk Drive)とSSD(Solid State Drive)が挙げられ、それぞれの中にも性能の異なる装置があるため、多様な階層を実現することができる。
また、ストレージのリソース、すなわちアプリケーションの動作に必要なストレージの性能および容量を提供するクラウドサービスを、多くの企業がリリースしている。そのようなサービスでは、データボリュームごとに利用する性能、すなわちIOPS(Input Output Per Second)および容量の値を指定して契約するメニューが用意されていることがある。
このようなストレージサービスのプロバイダでは、階層化したストレージシステムに、契約したデータボリュームを、その契約値に応じて配置することで、ストレージの性能およびコストの最適化を図っている。
特許文献1には、IOPSに応じて階層化したストレージシステムが開示されている。具体的には、特許文献1に開示された技術では、ある階層に対してある範囲のIOPSを対応させ、そのIOPSの値に応じた階層にデータボリュームを配置する。
特開2014−241117号公報
現在、拡張性およびコスト削減を目的として、複数台の汎用サーバ(以降、ノードと呼称する)で構成されるソフトウェア定義ストレージ(以降、SDS(Software Defined Storage)と呼称する)の利用が広がっている。そのSDSにおいては、ノードの物理リソースを有効活用するために、「IOPS/容量」で定義されるIO密度に応じた階層化が採用されることがある。ノードの物理リソースは、例えば、ノードを構成するCPU(Central Processing Unit)、NIC(Network Interface Card)、メモリ、HDDまたはSSDによって提供可能なIOPSおよび容量である。
しかしながら、特許文献1に開示された方式では、IO密度に応じた階層化を採用したときに、ある階層に対してある範囲のIO密度を対応させると、階層ごとに対応するIO密度の範囲が初期値に固定される。このため、特許文献1に開示された方式では、データボリューム群の配置状況によっては、階層を構成するノードのIOPSまたは容量が余り、ノードの物理リソースを有効活用できないことがあった。
本発明は、上記事情に鑑みなされたものであり、その目的は、IO密度に応じた階層化に対応しつつ、ボリューム配置を適正化することが可能なストレージ管理装置、ストレージ管理方法およびストレージ管理プログラムを提供することにある。
上記目的を達成するため、第1の観点に係るストレージ管理装置は、ノードのIOPSおよび容量の残量に基づいて残IO密度を算出し、残IO密度に基づいて前記ノードの階層を制御する。
本発明によれば、IO密度に応じた階層化に対応しつつ、ボリューム配置を適正化することができる。
図1は、第1実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。 図2は、図1のストレージ管理装置のボリューム配置方法の一例を示す図である。 図3は、階層ごとに対応するIO密度の範囲が初期値に固定されているときのボリューム配置方法の一例を示す図である。 図4は、図1のストレージ管理装置の残IO密度の更新方法の一例を示す図である。 図5は、図1のストレージ管理装置の残IO密度の更新方法のその他の例を示す図である。 図6は、図1のノード管理テーブルの一例を示す図である。 図7は、図1のボリューム管理テーブルの一例を示す図である。 図8は、図1の契約受付部の動作を示すフローチャートである。 図9は、図1のストレージ監視部の動作を示すフローチャートである。 図10は、図1のボリューム配置算出部の動作を示すフローチャートである。 図11は、第2実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。 図12は、図11のボリューム配置算出部の動作を示すフローチャートである。 図13は、第3実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。 図14は、図13の更新頻度設定部の動作を示すフローチャートである。 図15は、第4実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。 図16は、図15のリソース単価管理テーブルの一例を示す図である。 図17は、図1のストレージ管理装置のハードウェア構成例を示すブロック図である。
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、第1実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。
図1において、ストレージシステムは、ストレージ管理装置1A、ストレージ装置2、顧客端末3および運用端末4を備える。ストレージ管理装置1Aは、ストレージ装置2、顧客端末3および運用端末4に接続されている。ストレージ管理装置1Aは、例えば、ストレージ装置2を管理するサーバである。
ストレージ装置2は、物理ボリュームを提供するストレージノード(以下、単にノードということがある)を構成することができる。ストレージ装置2は、例えば、複数の異なるIO密度を持つノード群によって階層化されたSDSであり、ストレージサービスのプロバイダの運用者によって運用される。
顧客端末3は、例えば、インターネットに接続されたPC(Personal Computer)、タブレットまたはスマートフォンであり、ストレージサービスの顧客によって操作される。
運用端末4は、例えば、インターネットに接続されたPC、タブレットまたはスマートフォンであり、ストレージサービスのプロバイダの運用者によって操作される。
ストレージ管理装置1Aは、ストレージサービスのプロバイダの運用者の操作によって、運用端末4を通じてストレージ管理装置1Aの機能に関する設定を受け付け、ストレージサービスの顧客の操作によって、顧客端末3を通じてデータボリューム(以下、ボリュームと呼称する)の契約を受け付け、当該ボリュームの契約内容、ストレージ装置2におけるノードのリソースの利用状態および運用者による設定内容に応じて、当該ボリュームをストレージ装置2の最適なノードに配置する。
このとき、ストレージ管理装置1Aは、ノードのIOPSおよび容量の残量に基づいて残IO密度を算出し、残IO密度に基づいてノードの階層を制御する。そして、ストレージ管理装置1Aは、配置対象のボリュームのIO密度とノードの残IO密度との差分に基づいて、ボリュームが配置されるノードを選択することができる。このとき、ストレージ管理装置1Aは、例えば、配置対象のボリュームのIO密度とノードの残IO密度との差分が最も小さいノードを、ボリュームの配置先として決定する。
以下、ストレージ管理装置1Aの構成および動作について具体的に説明する。
なお、以下の説明は、1つのボリュームが1台のノードに新規に配置される場合を例にとるが、あるノードに配置済のボリュームを他のノードに移行する場合にも適用可能である。また、1つのボリュームが複数台のノードに跨って配置されるような仮想ボリュームを有効とする場合でも、ボリュームに含まれるデータブロックの配置および移行に対して適用可能である。
ストレージ管理装置1Aは、通信部11、契約受付部12、運用パラメタ設定部13、画面生成部14、ボリューム配置算出部15A、ストレージ制御部16、ストレージ監視部17および記憶部18を備える。
記憶部18は、ノード管理テーブル181、ボリューム管理テーブル182および更新頻度設定ファイル183を格納する。記憶部18は、これらのテーブルおよび設定ファイルを格納するHDDまたはSSDで構成したり、これらのテーブルを管理するデータベースで構成したりすることができる。
ノード管理テーブル181は、ノードに配置されたボリュームおよびボリュームが配置されたノードの残IO密度を管理する。ボリューム管理テーブル182は、ノードに配置されるボリュームのIOPSおよび容量を管理する。更新頻度設定ファイル183は、ノードの残IO密度の更新頻度を管理する。
通信部11は、ストレージ管理装置1Aがストレージ装置2、顧客端末3および運用端末4と外部通信を行ったり、ストレージ管理装置1Aを構成する各部位との間で内部通信を行ったりするためのインタフェースである。通信部11を構成するために、NICを用いるようにしてもよい。
契約受付部12は、顧客端末3からストレージ管理装置1Aに入力されるボリュームの契約値を、通信部11を介して受信し、記憶部18のボリューム管理テーブル182の契約値に記録し、新規ボリュームの契約を受信したことをボリューム配置算出部15Aに通知する。
運用パラメタ設定部13は、運用端末4からストレージ管理装置1Aに入力される設定内容を表すデータを、通信部11を介して受信し、記憶部18の更新頻度設定ファイル183に記録する。
画面生成部14は、顧客端末3からストレージ管理装置1Aへのアクセスに応じて、通信部11を介して、顧客端末3に顧客用の操作画面を出力する他、運用端末4からストレージ管理装置1Aへのアクセスに応じて、通信部11を介して、運用端末4に運用者用の操作画面を出力する。顧客は、表示された操作画面を通じてボリュームの契約を行い、運用者は、表示された操作画面を通じてストレージ管理装置1Aの機能設定を行う。
このとき、画面生成部14は、ノードの残IO密度の更新条件を入力可能な操作画面を生成し、運用端末4に表示させることができる。そして、運用者は、ノードの残IO密度の更新条件を操作画面上で入力し、ストレージ管理装置1Aに送信することができる。
ボリューム配置算出部15Aは、契約受付部12から、新規ボリュームの契約を受信したことの通知を受けると、記憶部18のボリューム管理テーブル182から当該ボリュームの契約値を読み込み、ノード管理テーブル181からノードのリソース使用状況を読み込み、更新頻度設定ファイル183から機能設定を読み込む。そして、ボリューム配置算出部15Aは、それらのデータおよび設定を元に当該ボリュームを配置するノードを算出し、ノード管理テーブル181とボリューム管理テーブル182を更新し、当該ボリュームを指定ノードに作成する指示をストレージ制御部16に通知する。
ストレージ制御部16は、ボリューム配置算出部15Aから、ボリューム配置を指示する通知を受信すると、通信部11を介して、ストレージ装置2の指定ノードにボリュームを配置する。
ストレージ監視部17は、通信部11を介して、ストレージ装置2のノード群およびボリューム群のリソース利用状況を監視し、その結果を記憶部18のボリューム管理テーブル182の実態値に記録するとともに、ノード管理テーブル181の配置済と残量を更新する。
図2は、図1のストレージ管理装置のボリューム配置方法の一例を示す図である。
図2において、図1のボリューム配置算出部15Aは、配置対象のボリュームのIO密度とノードの残IO密度に基づいて、ボリュームが配置されるノードを選択する。
例えば、図1のストレージ装置2には、ノードA〜Cが設けられているものとする。ここで、ノードAのIO密度の初期値A1は2.0、ノードBのIO密度の初期値B1は1.0、ノードCのIO密度の初期値C1は0.5であるものとする。なお、図2では、横軸が容量、縦軸がIOPSを示す座標上の四角形の縦横比がIO密度に相当する。
また、ノードAに配置済ボリュームA2があるときのノードAの残IO密度A3は0.23、ノードBに配置済ボリュームB2があるときのノードBの残IO密度B3は1.7、ノードCに配置済ボリュームC2があるときのノードCの残IO密度C3は0.86であるものとする。
そして、ボリューム配置算出部15Aは、新規ボリュームN1〜N3の配置先をノードA〜Cから選択するものとする。このとき、ボリューム配置算出部15Aは、各新規ボリュームN1〜N3のIO密度と各ノードA〜Cの残IO密度との差分をそれぞれ算出し、その差分が最も小さいノードA〜Cを各新規ボリュームN1〜N3の配置先として決定する。
例えば、新規ボリュームN1のIO密度は0.25、新規ボリュームN2のIO密度は0.9、新規ボリュームN3のIO密度は1.8であるものとする。このとき、ボリューム配置算出部15Aは、新規ボリュームN1の配置先をノードAに決定し、新規ボリュームN2の配置先をノードCに決定し、新規ボリュームN3の配置先をノードBに決定する。
これにより、各ノードA〜Cの容量およびIOPSの配分の偏りを抑えつつ、各新規ボリュームN1〜N3を各ノードA〜Cに配置することができ、各ノードA〜Cのリソースを有効活用することができる。
図3は、階層ごとに対応するIO密度の範囲が初期値に固定されているときのボリューム配置方法の一例を示す図である。
図3において、新規ボリュームN1〜N3が与えられたときに、各新規ボリュームN1〜N3のIO密度と各ノードA〜CのIO密度の初期値との差分をそれぞれ算出し、その差分が最も小さいノードA〜Cに各新規ボリュームN1〜N3が配置されるものとする。
このとき、新規ボリュームN1はノードCに配置され、新規ボリュームN2はノードBに配置され、新規ボリュームN3はノードAに配置される。新規ボリュームN1をノードCに配置すると、ノードCの容量が不足し、ノードCのIOPSが余る。新規ボリュームN2をノードBに配置すると、ノードBの容量が不足し、ノードBのIOPSが余る。新規ボリュームN3をノードAに配置すると、ノードAのIOPSが不足し、ノードAの容量が余る。
このように、各新規ボリュームN1〜N3のIO密度と各ノードA〜CのIO密度の初期値との差分に基づいて各新規ボリュームN1〜N3を各ノードA〜Cに配置すると、各ノードA〜Cのリソース(IOPSと容量)の配分の仕方に偏りが発生し、IOPSと容量の片方が大きく余る。このため、ノード追加のタイミングが早まり、ノード数が増加する。
これに対し、図2の方法では、新規ボリュームN1はノードAに配置され、新規ボリュームN2はノードCに配置され、新規ボリュームN3はノードBに配置される。このため、新規ボリュームN1をノードCに配置し、新規ボリュームN2をノードCに配置し、新規ボリュームN3をノードBに配置した場合においても、各ノードA〜Cの容量およびIOPSの不足を招くことがなくなり、ノード追加の必要がなくなる。
図4は、図1のストレージ管理装置の残IO密度の更新方法の一例を示す図である。
図4において、図1のボリューム配置算出部15Aは、ボリュームを追加するごとに残IO密度を更新することができる。
例えば、ノードBの配置済ボリュームB4のIO密度が1.19であり、ノードBの残IO密度B5は0.94であるものとする。そして、新規ボリュームN4がノードBに配置されたものとする。
このとき、ボリューム配置算出部15Aは、ノードBの残IO密度を更新する。例えば、新規ボリュームN4がノードBに配置されると、配置済ボリュームB6がノードBに追加され、ノードBの残IO密度B7は0.89に更新される。
図5は、図1のストレージ管理装置の残IO密度の更新方法のその他の例を示す図である。
図5において、図1のボリューム配置算出部15Aは、「1日ごと」または「ノードのリソースが所定の比率だけ埋まってから」などのように間隔を開けて残IO密度を更新するようにしてもよい。
例えば、ボリューム配置算出部15Aは、1日ごとに残IO密度を更新するものとする。そして、1日に新規ボリュームN5〜N7がノードBに配置され、新規ボリュームN5のIO密度は1.19、新規ボリュームN6のIO密度は1.15、新規ボリュームN7のIO密度は1.22であるものとする。このとき、配置済ボリュームB8〜B10がノードBに追加され、ノードBの残IO密度B11は0.64に更新される。
これにより、新規ボリュームが配置されるごとに残IO密度を毎回更新する図4の方法に比べて、計算コストを削減することが可能となるとともに、ボリュームの追加傾向によっては、ノードの利用効率を向上させることが可能となる。
なお、残IO密度の更新タイミングは、ボリューム追加ごとまたは指定時間経過後以外にも、例えば、各ノードのIOPSの残量および容量の残量に基づいて設定してもよいし、ノードに追加される新規ボリュームのIOPSおよび容量に基づいて設定してもよい。
図6は、図1のノード管理テーブルの一例を示す図である。
図6において、ノード管理テーブル181は、「ノードID」、「設置日時」、「初期値」、「配置済」、「残量」、「残IO密度」および「ボリュームID」のエントリを備える。
「ノードID」は、図1のストレージ装置2を構成するノードを一意に表す文字列である。
「設置日時」は、ノードがストレージ装置2に組み込まれた日時である。ストレージ装置2は、初期状態において複数のノードで構成される。そして、各ノードの利用状況に応じて、ストレージ装置2にノードが順次追加される。
「初期値」は、ノードにボリュームが配置されていない状態でノードが提供可能なIOPSと容量である。「ノードID」と「初期値」は、ノードが追加されるごとにノード管理テーブル181に追記されるが、例えば、ストレージサービスの運用者が運用端末4を操作して書き込むようにしてもよい。
「配置済」は、ノードに配置されているボリュームに配分されているIOPSと容量である。「配置済」は、ボリューム管理テーブル182の「契約値」または「実態値」をノードごとに足し合わせた数値であるが、例えば、ボリューム配置算出部15Aがボリューム配置を算出するときに配置先ノードに対して更新してもよいし、ストレージ監視部17がノードの利用状況を監視するときに当該ノードに対して更新してもよい。
「残量」は、まだボリュームに配分されていないノードのIOPSと容量であり、「初期値」から「配置済」を引くことで得られる。
「残IO密度」は、「残量」のIOPSと容量から算出されるIO密度である。「残量」のIOPSを残IOPS、「残量」の容量を残容量と言う。このとき、残IO密度は、残IOPS/残容量で定義することができる。ボリューム配置算出部15Aは、更新頻度設定ファイル183に記載されるタイミングによって残IO密度を更新する。
「ボリュームID」は、各ノードに配置されている全てのボリュームを個別のボリュームごとに示すIDの羅列である。ノード管理テーブル181のボリュームごとの個別のIDは、図7のボリューム管理テーブル182に記載される「ボリュームID」と同じ値である。ボリューム配置算出部15Aは、ボリューム配置を算出するときに配置先ノードに対してノード管理テーブル181の「ボリュームID」を更新する。
図7は、図1のボリューム管理テーブルの一例を示す図である。
図7において、ボリューム管理テーブル182は、「ボリュームID」、「ノードID」、「登録日時」、「契約値」および「実態値」のエントリを備える。
「ボリュームID」は、顧客が契約するボリュームを一意に表す文字列である。契約受付部12は、ボリュームの契約を受け付けたときに「ボリュームID」をボリューム管理テーブル182に追記する。
「ノードID」は、ボリュームの配置先であるノードを示すIDであり、図6のノード管理テーブル181に記載される「ノードID」と同じ値である。ボリューム配置算出部は、ボリューム配置を算出するときに、対応するボリュームに対して「ノードID」をボリューム管理テーブル182に追記する。ボリューム配置の算出前は、「ノードID」は、「未配置」に設定される。
「登録日時」は、「ボリュームID」がボリューム管理テーブル182に登録された日時である。
「契約値」は、ボリュームの契約したIOPSと容量である。契約受付部12は、ボリュームの契約を受け付けたときに「契約値」をボリューム管理テーブル182に追記する。
「実態値」は、配置後のボリュームの利用実態のIOPSと容量であり、例えば、IOPSは、ボリュームの利用中の最大値とし、容量は、ボリュームの利用状況から一定期間後の利用量として予測される値とする。また、「実態値」は、ノードに対して重複排除または圧縮などのストレージ機能が適用されている場合には、その機能の効果または影響として、容量の削減またはIOPSの増加を反映した値としてもよい。ストレージ監視部17は、ボリュームの利用状況を監視するときに当該ボリュームに対して「実態値」を更新するようにしてもよい。
図8は、図1の契約受付部の動作を示すフローチャートである。
図8において、契約受付部12は、顧客端末3から通信部11を経由して、ボリュームの新規契約内容として、IOPSと容量の契約値を受信する(S41)。
次に、契約受付部12は、当該ボリュームに対して一意に定まる文字列であるボリュームIDを生成し、記憶部18に格納されているボリューム管理テーブル182に登録し、登録日時と契約値も登録する(S42)。契約受付部12は、ノードIDを「未配置」、実態値を空白とする。
次に、契約受付部12は、当該ボリュームのボリュームIDと、ボリュームの新規契約があったことをボリューム配置算出部15Aに通知する(S43)。
図9は、図1のストレージ監視部の動作を示すフローチャートである。
図9において、ストレージの監視の対象項目は、ストレージ装置2を構成するノード群に配置されている各ボリュームのIOPSと容量である。このとき、ストレージ監視部17は、各ボリュームのIOPSと容量を同時に監視する。
IOPSの監視では、ストレージ監視部17は、記憶部18に格納されているボリューム管理テーブル182を一定の時間間隔で参照し、各ボリュームのIOPSの「実態値」を取得するとともに、各ボリュームのIOPSの利用中の値を計測する。そして、ストレージ監視部17は、その計測値を対応するボリュームの「実態値」と比較し、計測値が「実態値」よりも大きければ、S52に進み、計測値が「実態値」以下であれば、IOPSの利用中の値の計測を繰り返す(S51)。
次に、ストレージ監視部17は、あるボリュームにおける計測値が「実態値」よりも大きい場合には、ボリューム管理テーブル182の当該ボリュームの行の「実態値」を、計測値に更新する(S52)。
次に、ストレージ監視部17は、記憶部18に格納されているノード管理テーブル181において、当該ボリュームが配置されているノードの行の「配置済」のIOPSと「残量」のIOPSを、ボリューム管理テーブル182の実態値の更新に応じて更新する(S53)。
次に、ストレージ監視部17は、ノードとして実現可能なIOPSに補正する(S54)。SDSにおいては、ノードの提供可能なIOPSは、CPUを利用して実現される。このため、ストレージ機能によってCPUを消費している場合には、ノードとして実現可能なIOPSが変化し、IOPSの補正が必要となる。
このIOPSの補正では、例えば、ストレージ装置2において重複排除等のストレージ機能が利用されている場合には、各ノードにおける当該機能のCPU利用量を計測する。そして、このCPU利用量の計測値を、例えば、実験等で作成した変換テーブルに従ってIOPSの値に変換する。ストレージ監視部17は、このようにして得られたIOPSの値に基づいて、ノード管理テーブル181における当該ノードの「配置済」のIOPSと「残量」のIOPSをさらに更新する。
一方、容量の監視では、ストレージ監視部17は、各ボリュームの容量の利用中の値を一定の時間間隔で計測し、一定の期間分(例えば、1ヶ月)の容量の値を記録する(S55)。
次に、ストレージ監視部17は、その記録した一定の期間分の容量の値の変化を元に、ある時間の経過後(例えば、1ヶ月後)の容量の利用量の予測値を算出する(S56)。この予測には、例えば、回帰分析などの方法を利用することができる。
次に、ストレージ監視部17は、あるボリュームにおける予測値が、記憶部18に格納されているボリューム管理テーブル182の当該ボリュームの「実態値」よりも大きい場合には、その「実態値」を予測値に更新する(S57)。
次に、ストレージ監視部17は、記憶部18に格納されているノード管理テーブル181において、当該ボリュームが配置されているノードの行の「配置済」の容量と「残量」の容量を、実態値の更新に応じて更新する(S58)。
ストレージ監視部17は、以上のような監視とテーブルの更新を、IOPSと容量に関して、一定の時間間隔で繰り返す。
図10は、図1のボリューム配置算出部の動作を示すフローチャートである。
図10において、ボリューム配置算出部15Aは、契約受付部12から、ボリュームの新規契約があったことの通知と、当該ボリュームのボリュームIDを受信する(S61)。
次に、ボリューム配置算出部15Aは、記憶部18に格納されているボリューム管理テーブル182を参照し、当該ボリュームIDに対応した行に記載された「契約値」のIOPSと容量を取得する(S62)。
次に、ボリューム配置算出部15Aは、記憶部18に格納されているノード管理テーブル181を参照し、全ノードの「残量」と「残IO密度」を取得する(S63)。
次に、ボリューム配置算出部15Aは、記憶部18に格納されている更新頻度設定ファイル183を参照し、「残IO密度の更新頻度」と「前回更新日時」を取得する(S64)。ここで、更新頻度設定ファイル183には、「残IO密度の更新頻度」と「前回更新日時」が記載される。「残IO密度の更新頻度」は、例えば、「毎回」または「1日ごと」に設定することができる。「毎回」は、図4に示したように、ボリュームの新規契約があるたびにノード管理テーブル181の「残IO密度」を更新する。「1日ごと」は、図5に示したように、ボリュームの新規契約の有無にかかわらずに一定の時間間隔(例えば、1日ごと)が経過したら、「残IO密度」を更新する。この「残IO密度の更新頻度」は、ストレージサービスの運用者が運用端末4を用いて設定してもよいし、ある値が初期値として設定されていてもよい。「前回更新日時」は、「残IO密度」を更新した日時である。
次に、ボリューム配置算出部15Aは、「残IO密度の更新頻度」が「毎回」であるか、または「前回更新日時」と現在時刻を比較して、指定された時間間隔を経過したかを判断する(S65)。そして、「残IO密度の更新頻度」が「毎回」であるか、または「前回更新日時」と現在時刻を比較して指定された時間間隔を経過した場合には、S66へ進み、そうではない場合には、S67へ進む。
次に、ボリューム配置算出部15Aは、「残IO密度の更新頻度」に該当している場合には、各ノードの「残IO密度」を「残量」のIOPSと容量から算出して更新する(S66)。
次に、ボリューム配置算出部15Aは、新規契約のボリュームの契約値から算出されるIO密度と「残IO密度」が最も近く、かつ、新規契約のボリュームの契約値のIOPSと容量が「残量」以内であるノードを探索し、当該ノードを新規契約のボリュームの配置先として決定する(S67)。
次に、ボリューム配置算出部15Aは、新規契約のボリュームの契約値に従ったボリュームを配置先のノードに作成するように指示する通知をストレージ制御部16に送信するとともに、ノード管理テーブル181の当該ノードの行の「配置済」、「残量」および「ボリュームID」を更新し、ボリューム管理テーブル182の当該ボリュームの行の「ノードID」を更新する(S68)。
なお、S67の「残IO密度」に応じたボリュームの配置先ノードの決定では、例えば、ボリューム配置後の「残IO密度」が当該ノードの「初期値」から算出されるIO密度に最も近づくようなノードに配置するなど、他の方法を採用してもよい。
また、「残IO密度の更新頻度」は、「毎回」にすると、ノード数の増加にともなって計算コストが増加するため、一定の時間間隔を指定して計算頻度を抑えるようにしてもよい。また、ボリューム群の契約傾向によっては、残IO密度の更新頻度がある時間間隔であると、物理リソースの利用効率が向上する可能性があり、利用実態を監視しながら残IO密度の更新頻度の設定を変更してもよい。
また、ストレージ装置2のノード数に関しては、初期値は、任意のノード数で構わないが、例えば、ある1つのノードの「残量」が一定割合を下回ったら、新しいノードを追加するという運用を行ってもよい。追加するノードの物理リソースは任意で構わないが、例えば、「残量」が一定割合を下回ったノードと同じものを用意してもよいし、直近の契約ボリューム群のIO密度の傾向に近い物理リソースを持ったノードを用意してもよい。
また、ストレージ監視部17は、必ずしも使用しなくても構わない。ストレージ監視部17を使用しない場合は、各ノードの「配置済」は、契約値をそのまま足し合わせた数値となる。ストレージ監視部17を使用する場合は、各ノードの「配置済」の動的な変化およびストレージ機能の影響にも対応でき、ボリューム配置をより適正化することができる。
図11は、第2実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。
図11において、このストレージシステムは、図1のストレージ管理装置1Aの代わりにストレージ管理装置1Bを備える。ストレージ管理装置1Bは、図1のボリューム配置算出部15Aの代わりにボリューム配置算出部15Bを備える。また、ストレージ管理装置1Bでは、記憶部18は、図1の内容に加え、デプロイ頻度設定ファイル184を格納する。デプロイ頻度設定ファイル184は、ストレージ装置2に新規ボリュームをデプロイする頻度を管理する。
デプロイ頻度設定ファイル184には、「ボリュームデプロイ頻度」と「前回デプロイ日時」が記載される。「ボリュームデプロイ頻度」は、ストレージ管理装置1Bが新規ボリューム群をストレージ装置2にデプロイする頻度であり、例えば、「毎回」または「1日ごと」に設定することができる。「毎回」は、新規の契約があるごとに新規ボリュームをデプロイする。「1日ごと」は、ボリュームの新規契約の数やタイミングにかかわらずに、1日の決まった時間にまとめて新規ボリュームをデプロイする。
この「ボリュームデプロイ頻度」は、ストレージサービスの運用者が運用端末4を用いて設定してもよいし、ある値が初期値として設定されていてもよい。第1実施形態は、「ボリュームデプロイ頻度」が「毎回」の場合に相当する。「前回デプロイ日時」は、ボリューム群をデプロイした日時である。
ボリューム配置算出部15Bは、複数の新規ボリュームの組み合わせのIO密度とノードの残IO密度に基づいて新規ボリュームが配置されるノードを選択する。例えば、ボリューム配置算出部15Bは、複数のボリュームの組み合わせをノードに仮配置したときのノードごとの仮配置前の残IO密度と仮配置後の残IO密度の差分に基づいて、ボリュームの配置の組み合わせを選択する。
図12は、図11のボリューム配置算出部の動作を示すフローチャートである。
図12において、ボリューム配置算出部15Bは、起動時に記憶部18に格納されたデプロイ頻度設定ファイル184を参照する(S80)。
次に、ボリューム配置算出部15Bは、デプロイ頻度設定ファイル184に記載された「ボリュームデプロイ頻度」が「毎回」かどうかを判断する(S81)。「ボリュームデプロイ頻度」が「毎回」の時は、図10のS61へ進み、図1のボリューム配置算出部15Aと同様の処理を実行し、「毎回」ではない時は、S82へ進む。
次に、ボリューム配置算出部15Bは、デプロイ頻度設定ファイル184に記載された「前回デプロイ日時」と現在時刻を比較して、「ボリュームデプロイ頻度」で指定された時間間隔を経過していた場合には、S83へ進み、そうではない場合には待機し、一定時間間隔ごとに、デプロイ頻度の示す時間間隔を経過しているかどうかを確認する(S82)。
次に、ボリューム配置算出部15Bは、記憶部18に格納されているボリューム管理テーブル182を参照し、ノードIDが「未配置」である全てのボリュームの「契約値」のIOPSと容量を取得する(S83)。
次に、ボリューム配置算出部15Bは、S84〜S87の処理を実行し、S88に進む。S84〜S87の処理は、図10のS63〜S66の処理と同様である。
次に、ボリューム配置算出部15Bは、新規契約のボリューム群、すなわちS83で取得した「未配置」の全てのボリューム群に対して、足し合わせに関する全ての組合せを生成する。例えば、対象となるボリュームを仮にボリュームX〜Zの3個とすると、足し合わせに関する全ての組合せとは、(X,Y,Z)、(X+Y,Z)、(X+Z,Y)、(X,Y+Z)、(X+Y+Z)の5通りのことである。ここで、+の記号は、ボリュームの契約値のIOPSと容量をそれぞれ足し合わせることを意味する。
この各組合せに対して、次の手順を実行する。まず、先頭の要素(ここでは、XやX+Yなど()内において「,」で区切られた1番目の要素)のIOPSと容量から算出されるIO密度と、「残IO密度」が最も近く、かつ、当該要素のIOPSと容量が、「残量」以内であるノードを探索し、当該ノードを当該要素に対応するボリュームの仮配置先とする。
以降、2番目の要素に対しても、先頭の要素が仮配置された状態のノード群に対して、同様に仮配置を繰り返す。そして、全ての要素の仮配置を終えたら、仮配置先となったノード群に対してのみ、ノードごとに、仮配置前の「残IO密度」と仮配置後の「残IO密度」の差の絶対値を計算する。それらの値を全て足し合わせた値を、その組合せに対する残IO密度の配置残差と呼ぶことにする。この残IO密度の配置残差を全ての組合せに対して計算し、最も小さくなる組合せを本配置として採用する(S88)。例えば、(X+Y,Z)という組合せが本配置として採用される時は、あるノードにはボリュームXとボリュームYが配置され、ある別のボリュームにはボリュームZが配置される。
次に、ボリューム配置算出部15Bは、新規契約のボリューム群の契約値に従ったボリューム群を配置先のノード群に作成するように指示する通知をストレージ制御部16に送信するとともに、ノード管理テーブル181の当該ノード群の行の「配置済」、「残量」および「ボリュームID」を更新し、ボリューム管理テーブル182の当該ボリューム群の行の「ノードID」を更新する(S89)。
なお、上述した第2実施形態は、複数個の新規契約のボリュームをいくつかの組合せに分けた上でまとめてノードに配置する例であるが、その配置先の決定方法は、上記以外の方法を採用してもよい。
図13は、第3実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。
図13において、このストレージシステムは、図11のストレージ管理装置1Bの代わりにストレージ管理装置1Cを備える。ストレージ管理装置1Cは、ストレージ管理装置1Bに更新頻度設定部19が追加されている。また、ストレージ管理装置1Cでは、記憶部18は、図11の更新頻度設定ファイル183の代わりに更新頻度設定ファイル183´を格納する。
更新頻度設定ファイル183´には、「残IO密度の更新頻度」と「前回更新日時」に加え、「見直し頻度」と「仮想頻度」と「前回見直し日時」が記載される。
「見直し頻度」は、「残IO密度の更新頻度」の値を変更する頻度であり、例えば、「1週間ごと」など値を取り、ストレージサービスの運用者によって運用端末4から設定される。「仮想頻度」は、「残IO密度の更新頻度」の取り得る値の候補の羅列であり、例えば、「毎回、1日、3日、5日、1週間」などの値を取り、ストレージサービスの運用者によって運用端末4から設定される。「前回見直し日時」は、「残IO密度の更新頻度」の値を更新した日時である。
更新頻度設定部19は、配置済のボリュームを配置可能なノードに仮想的に再配置したときのノードおよびリソースの利用状況を計算し、ノードおよびリソースの利用状況に基づいて、ノードの残IO密度の更新頻度を設定する。例えば、更新頻度設定部19は、記憶部18に格納された更新頻度設定ファイル183を参照し、更新頻度設定ファイル183に設定された「見直し頻度」の値に従った時間間隔で、その時点で配置済のボリューム群の情報を基に、「残IO密度の更新頻度」の値を「仮想頻度」に含まれる値から選択する。
図14は、図13の更新頻度設定部の動作を示すフローチャートである。
図14において、更新頻度設定部19は、起動時に図13の記憶部18に格納された更新頻度設定ファイル183´を参照する(S100)。
次に、更新頻度設定部19は、一定時間間隔ごとに、見直し頻度の示す時間間隔を経過しているかどうかを確認する(S101)。このとき、更新頻度設定部19は、更新頻度設定ファイル183´に記載された「前回見直し日時」と現在時刻を比較し、「見直し頻度」で指定された時間間隔を経過していた場合には、S102に進み、そうではない場合には待機する。
次に、更新頻度設定部19は、記憶部18に格納されたボリューム管理テーブル182を参照し、その時点でいずれかのノードに配置済の全てのボリュームの「登録日時」と「契約値」のIOPSと容量を取得する(S102)。
次に、更新頻度設定部19は、記憶部18に格納されたノード管理テーブル181を参照し、「設置日時」を基に、ストレージ装置2の初期状態を構成していたノード群を特定し、当該ノード群の「初期値」のIOPSと容量を取得する(S103)。
次に、更新頻度設定部19は、更新頻度設定ファイル183´に記載された「仮想頻度」に列挙された値のうち、「残IO密度の更新頻度」の値以外の全ての値に対して、次の手順を実行する。まず、S103で取得した初期状態のノード群に対して、S102で取得したボリューム群を、「登録日時」の順番で、例えば、第1実施形態で説明した方式に従い、仮想的に再配置する(S104)。このとき、順次経過する「登録日時」に応じて、「仮想頻度」として指定された値に従って、ノードの「残IO密度」を更新しながら仮想的な再配置を進める。また、ノードの追加も、あらかじめ規定した基準に従って仮想的に行う。
このような再配置が完了したら、ノード数および各ノードの物理リソースの利用率を計算し、全ノードの利用率の平均値(以降、見直し指標と呼称する)を計算する。ノードの利用率は、例えば、IOPSの利用率と容量の利用率を計算し、小さい方を採用する。また、現状の配置状態、すなわち更新頻度設定ファイル183´に記載された「残IO密度の更新頻度」に従った配置におけるノード数および見直し指標を計算する(S105)。以上で、「仮想頻度」に列挙された全ての値に対して、ノード数と見直し指標が得られる。
それらの中で、ノード数が最も小さくなる「仮想頻度」の値が1つであれば、その値を選択し、複数であれば、それらの中で、見直し指標が最も大きくなる値を選択する。その選択された値で、更新頻度設定ファイル183´に記載された「残IO密度の更新頻度」の値を更新する(S106)。以降、ボリューム配置算出部15は、その更新された値に従って、ボリューム配置を算出する。
なお、本実施形態で説明した「残IO密度の更新頻度」の見直しは、更新頻度設定ファイル183´の「見直し頻度」によらずに、ストレージサービスの運用者によって、運用端末4から任意のタイミングで実行してもよい。
また、上述した第3実施形態では、「契約値」による仮想的な再配置を行ったが、各ボリュームの「実態値」の変更履歴を記録することで、「実態値」による仮想的な再配置と、「残IO密度の更新頻度」の見直しも可能である。
図15は、第4実施形態に係るストレージ管理装置が適用されるストレージシステムの構成を示すブロック図である。
図15において、このストレージシステムは、図1のストレージ管理装置1Aの代わりにストレージ管理装置1Dを備える。ストレージ管理装置1Dは、図1のボリューム配置算出部15Aの代わりにボリューム配置算出部15Dを備える。また、ストレージ管理装置1Dでは、記憶部18は、図1の内容に加え、リソース単価管理テーブル185を格納する。リソース単価管理テーブル185は、ノード管理テーブル181とマージしても構わない。
ボリューム配置算出部15Dは、新規ボリュームのIO密度とノードの残IO密度と新規ボリュームをノードに配置したときにかかるコストに基づいて、新規ボリュームが配置されるノードを選択する。例えば、ボリューム配置算出部15Dは、新規ボリュームのIO密度とノードの残IO密度との差分が所定範囲内にあるノードのうち、コストが最も小さいノードを新規ボリュームの配置先として決定する。
図16は、図15のリソース単価管理テーブルの一例を示す図である。
図16において、リソース単価管理テーブル185は、「ノードID」、「IOPS単価」および「容量単価」のエントリを備える。
「ノードID」は、図15のストレージ装置2を構成するノードを一意に表す文字列である。
「IOPS単価」は、各ノードの1IOPSあたりの月額、「容量単価」は、各ノードの1GBあたりの月額である。「IOPS単価」および「容量単価」は、各ノードの物理構成とサービスプロバイダの事業計画から決定される。リソース単価管理テーブル185は、ストレージサービスの運用者によって運用端末4から設定される。各単価が高い方が、信頼性の高い高価な物理リソースを利用したり、高度な運用体制を整えたりすることが多い。
顧客によっては、ミッションクリティカルなアプリケーションであるなどの理由で、単価が高い、すなわち同じ性能や容量であってもサービスの利用価格が高いとしても、高信頼なノードへのボリューム配置を希望することがある。また、逆に、なるべく安いノードの利用を希望する顧客もいる。
ボリューム配置算出部15Dは、そのような顧客のニーズに対応しつつ、ボリュームの配置先のノードを決定する。具体的には、図10のS67の処理において、図1のボリューム配置算出部15Aは、新規ボリュームの契約値から算出されるIO密度と、「残IO密度」が最も近いノードをボリュームの配置先としていたが、ボリューム配置算出部15Dは、その最も近いノードに加えて、例えば、2番目に近いノードも探索する。そして、それらの2つのノードに対するIOPS単価と容量単価をリソース単価管理テーブル185から取得し、ボリュームの価格を算出する。その算出された2つの価格のうち、顧客のニーズに合う価格となったノードの方を、新規ボリュームの配置先として決定する。
このように、ストレージ管理装置1Dは、ノードの残IO密度だけでなく、新規ボリュームをノードに配置したときにかかるコストも参照して新規ボリュームの配置先のノードを選択することにより、顧客のニーズを反映させつつ、ノードのリソース利用効率を向上させることができる。
図17は、図1のストレージ管理装置のハードウェア構成例を示すブロック図である。
図17において、ストレージ管理装置100は、プロセッサ101、通信制御デバイス102、通信インタフェース103、主記憶デバイス104、補助記憶デバイス105および入出力インタフェース107を備える。プロセッサ101、通信制御デバイス102、通信インタフェース103、主記憶デバイス104、補助記憶デバイス105および入出力インタフェース107は、内部バス106を介して相互に接続されている。主記憶デバイス104および補助記憶デバイス105は、プロセッサ101からアクセス可能である。
また、ストレージ管理装置100の外部には、入力装置110および出力装置111が設けられている。入力装置110および出力装置111は、入出力インタフェース107を介して内部バス106に接続されている。入力装置110は、例えば、キーボード、マウス、タッチパネル、カードリーダ、音声入力装置等である。出力装置111は、例えば、画面表示装置(液晶モニタ、有機EL(Electro Luminescence)ディスプレイ、グラフィックカード等)、音声出力装置(スピーカ等)、印字装置等である。
プロセッサ101は、ストレージ管理装置100全体の動作制御を司るハードウェアである。プロセッサ101は、CPU(Central Processing Unit)であってもよいし、GPU(Graphics Processing Unit)であってもよい。プロセッサ101は、シングルコアプロセッサであってもよいし、マルチコアプロセッサであってもよい。プロセッサ101は、処理の一部または全部を行うハードウェア回路(例えば、FPGA(Field−Programmable Gate Array)またはASIC(Application Specific Integrated Circuit))を備えていてもよい。プロセッサ101は、ニューラルネットワークを備えていてもよい。
主記憶デバイス104は、例えば、SRAMまたはDRAMなどの半導体メモリから構成することができる。主記憶デバイス104には、プロセッサ101が実行中のプログラムを格納したり、プロセッサ101がプログラムを実行するためのワークエリアを設けたりすることができる。
補助記憶デバイス105は、大容量の記憶容量を備える記憶デバイスであり、例えば、ハードディスク装置またはSSD(Solid State Drive)である。補助記憶デバイス105は、各種プログラムの実行ファイルやプログラムの実行に用いられるデータを保持することができる。補助記憶デバイス105には、ストレージ管理プログラム105Aおよび管理情報105Bを格納することができる。ストレージ管理プログラム105Aは、ストレージ管理装置100にインストール可能なソフトウェアであってもよいし、ストレージ管理装置100にファームウェアとして組み込まれていてもよい。管理情報105Bは、例えば、図1のノード管理テーブル181、ボリューム管理テーブル182および更新頻度設定ファイル183である。
通信制御デバイス102は、外部との通信を制御する機能を備えるハードウェアである。通信制御デバイス102は、通信インタフェース103を介してネットワーク109に接続される。ネットワーク109は、インターネットなどのWAN(Wide Area Network)であってもよいし、WiFiまたはイーサネット(登録商標)などのLAN(Local Area Network)であってもよいし、SAN(Storage Area Network)であってもよいし、WANとLANとSANが混在していてもよい。
入出力インタフェース107は、入力装置110から入力されるデータをプロセッサ101が処理可能なデータ形式に変換したり、プロセッサ101から出力されるデータを出力装置111が処理可能なデータ形式に変換したりする。
プロセッサ101がストレージ管理プログラム105Aを主記憶デバイス104に読み出し、ストレージ管理プログラム105Aを実行することにより、残IO密度に基づいてノードの階層を制御し、配置対象のボリュームのIO密度とノードの残IO密度との差分に基づいて、ボリュームが配置されるノードを選択し、配置対象のボリュームのIO密度とノードの残IO密度との差分が最も小さいノードを、ボリュームの配置先として決定することができる。
このとき、プロセッサ101がストレージ管理プログラム105Aを実行することにより、図1の通信部11、契約受付部12、運用パラメタ設定部13、画面生成部14、ボリューム配置算出部15A、ストレージ制御部16およびストレージ監視部17の機能を実現することができる。
なお、ストレージ管理プログラム105Aの実行は、複数のプロセッサやコンピュータに分担させてもよい。あるいは、プロセッサ101は、ネットワーク109を介してクラウドコンピュータなどにストレージ管理プログラム105Aの全部または一部の実行を指示し、その実行結果を受け取るようにしてもよい。
なお、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
1 ストレージ管理装置、2 ストレージ装置、3 顧客端末、4 運用端末、11 通信部、12 契約受付部、13 運用パラメタ設定部、14 画面生成部、15 ボリューム配置算出部、16 ストレージ制御部、17 ストレージ監視部、18 記憶部、19 更新頻度設定部、181 ノード管理テーブル、182 ボリューム管理テーブル、183 更新頻度設定ファイル、184 デプロイ頻度設定ファイル、185 リソース単価管理テーブル

Claims (13)

  1. ノードのIOPS(Input Output Per Second)および容量の残量に基づいて残IO密度を算出し、
    残IO密度に基づいて前記ノードの階層を制御するストレージ管理装置。
  2. 配置対象のボリュームのIO密度と前記ノードの残IO密度に基づいて、前記ボリュームが配置されるノードを選択する請求項1に記載のストレージ管理装置。
  3. 前記配置対象のボリュームのIO密度と前記ノードの残IO密度との差分が最も小さいノードを、前記ボリュームの配置先として決定する請求項2に記載のストレージ管理装置。
  4. 配置対象のボリュームのIO密度と前記ノードの残IO密度と前記ボリュームを前記ノードに配置したときにかかるコストに基づいて、前記ボリュームが配置されるノードを選択する請求項1に記載のストレージ管理装置。
  5. 前記配置対象のボリュームのIO密度と前記ノードの残IO密度との差分が所定範囲内にあるノードのうち、前記コストが最も小さいノードを前記ボリュームの配置先として決定する請求項4に記載のストレージ管理装置。
  6. 前記ボリュームの配置要求があるごとに前記ノードの残IO密度を更新する請求項2に記載のストレージ管理装置。
  7. 指定時間を経過するごとに前記ノードの残IO密度を更新する請求項2に記載のストレージ管理装置。
  8. 前記ノードの残IO密度の更新条件を入力可能な画面を生成し、
    前記画面上で入力された更新条件に基づいて前記ノードの残IO密度を更新する請求項2に記載のストレージ管理装置。
  9. 前記配置対象の複数のボリュームの組み合わせのIO密度と前記ノードの残IO密度に基づいて、前記ボリュームが配置されるノードを選択する請求項2に記載のストレージ管理装置。
  10. 前記配置対象の複数のボリュームの組み合わせを前記ノードに仮配置したときの前記ノードごとの仮配置前の残IO密度と仮配置後の残IO密度の差分に基づいて、前記ボリュームの配置の組み合わせを選択する請求項9に記載のストレージ管理装置。
  11. 配置済のボリュームを前記ボリュームを配置可能なノードに仮想的に再配置したときの前記ノードおよびリソースの利用状況を計算し、
    前記ノードおよびリソースの利用状況に基づいて、前記ノードの残IO密度の更新頻度を設定する請求項2に記載のストレージ管理装置。
  12. ノードのIOPSおよび容量の残量に基づいて残IO密度を算出し、
    残IO密度に基づいて前記ノードの階層を制御するストレージ管理方法。
  13. ノードのIOPSおよび容量の残量に基づいて残IO密度を算出するステップと、
    残IO密度に基づいて前記ノードの階層を制御するステップとをコンピュータに実行させるストレージ管理プログラム。

JP2019204778A 2019-11-12 2019-11-12 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム Pending JP2021077213A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019204778A JP2021077213A (ja) 2019-11-12 2019-11-12 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
US17/012,423 US20210141538A1 (en) 2019-11-12 2020-09-04 Storage management apparatus, storage management method, and storage management program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019204778A JP2021077213A (ja) 2019-11-12 2019-11-12 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム

Publications (1)

Publication Number Publication Date
JP2021077213A true JP2021077213A (ja) 2021-05-20

Family

ID=75846594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019204778A Pending JP2021077213A (ja) 2019-11-12 2019-11-12 ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム

Country Status (2)

Country Link
US (1) US20210141538A1 (ja)
JP (1) JP2021077213A (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050588A1 (en) * 2005-08-25 2007-03-01 Shunya Tabata Storage system capable of relocating data
JP2010122814A (ja) * 2008-11-18 2010-06-03 Hitachi Ltd ストレージシステム及びストレージシステムの運用方法
WO2015198441A1 (ja) * 2014-06-26 2015-12-30 株式会社日立製作所 計算機システム、管理計算機、および管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070050588A1 (en) * 2005-08-25 2007-03-01 Shunya Tabata Storage system capable of relocating data
JP2010122814A (ja) * 2008-11-18 2010-06-03 Hitachi Ltd ストレージシステム及びストレージシステムの運用方法
WO2015198441A1 (ja) * 2014-06-26 2015-12-30 株式会社日立製作所 計算機システム、管理計算機、および管理方法

Also Published As

Publication number Publication date
US20210141538A1 (en) 2021-05-13

Similar Documents

Publication Publication Date Title
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
JP6423468B2 (ja) 記憶階層の動的選択
US11805076B2 (en) Microservice placement in hybrid multi-cloud using graph matching
US9971823B2 (en) Dynamic replica failure detection and healing
US10439870B2 (en) Assessment and dynamic provisioning of computing resources for multi-tiered application
JP6616827B2 (ja) スケーラブルなデータストレージプール
EP3210134B1 (en) Composite partition functions
US11614977B2 (en) Optimizing clustered applications in a clustered infrastructure
WO2012039053A1 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
TW201702869A (zh) 用於多層應用的多機器部署和配置的電腦實施的方法、電腦可讀取儲存媒體、與電腦系統
JP5385458B2 (ja) 計算機システムおよびその更改方法
US20200117589A1 (en) Techniques and devices for cloud memory sizing
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
US10250455B1 (en) Deployment and management of tenant services
KR101662173B1 (ko) 분산 파일 관리 장치 및 방법
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
JP2021077213A (ja) ストレージ管理装置、ストレージ管理方法およびストレージ管理プログラム
US10097431B1 (en) Routing to tenant services utilizing a service directory
US10942779B1 (en) Method and system for compliance map engine
JP2022117711A (ja) サーバ管理システム、サーバ管理方法及びサーバ管理プログラム
US20230195335A1 (en) Optimizing memory to storage capacity division on a dc persistent memory module (dcpmm) in mixed mode
JP5543653B2 (ja) 管理計算機
US11816088B2 (en) Method and system for managing cross data source data access requests
CN116166432A (zh) 基于Jenkins的负载均衡方法及高可用系统
JP5746397B2 (ja) 管理計算機及び更改方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240305