JPWO2016121086A1 - ストレージ管理システム、ストレージシステム及び機能拡張方法 - Google Patents

ストレージ管理システム、ストレージシステム及び機能拡張方法 Download PDF

Info

Publication number
JPWO2016121086A1
JPWO2016121086A1 JP2016571626A JP2016571626A JPWO2016121086A1 JP WO2016121086 A1 JPWO2016121086 A1 JP WO2016121086A1 JP 2016571626 A JP2016571626 A JP 2016571626A JP 2016571626 A JP2016571626 A JP 2016571626A JP WO2016121086 A1 JPWO2016121086 A1 JP WO2016121086A1
Authority
JP
Japan
Prior art keywords
storage management
storage
cpu
server
management api
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.)
Granted
Application number
JP2016571626A
Other languages
English (en)
Other versions
JP6259935B2 (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.)
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
Publication of JPWO2016121086A1 publication Critical patent/JPWO2016121086A1/ja
Application granted granted Critical
Publication of JP6259935B2 publication Critical patent/JP6259935B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/1827Management specifically adapted to NAS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

各ストレージ管理APでの処理論理の追加を不要とし、ストレージシステムの負荷を高くせずに、ストレージシステムでの拡張機能や新ストレージシステムに各ストレージ管理APを適用できるストレージ管理システムを提供する。そのために、ストレージ管理サーバーのストレージ管理APIライブラリに複数の汎用的な処理を実装する。また、ストレージ管理APがストレージ管理APIライブラリを介してストレージ管理API提供サーバープログラムと接続されたときに、ストレージ管理APIライブラリがストレージ管理API提供サーバープログラムからAPI属性情報を取得する。そして、ストレージ管理APがストレージ管理APIライブラリを介してストレージシステムの機能を実行するときに、その機能の実行の前後で、ストレージ管理APIライブラリがAPI属性情報に従って複数の汎用的な処理を組み合わせてストレージ管理サーバーが実行する。

Description

本発明は、ストレージ管理システム、ストレージシステム及び機能拡張方法に関する。
近年、企業の管理する計算機システムやストレージシステムなどのITシステムは、データや業務ソフトウェアの増加、仮想化などのITプラットフォーム技術の高度化などに伴って年々複雑化している。そこで、ITシステムの運用を容易にするために、ストレージ管理サーバーで動作する様々なストレージ管理アプリケーションプログラムが多くのベンダーから提供されている。
これらのストレージ管理アプリケーションプログラムでストレージシステムを管理するとき、そのストレージ管理アプリケーションプログラムはストレージシステムのストレージ管理API(Application Programming Interface)を介して接続される。そして、ストレージシステムの機能拡張や新しいストレージシステムのリリース時に、このストレージ管理APIは拡張され、このストレージ管理APIの変更に合わせて各ストレージ管理アプリケーションプログラムを拡張する必要がある。これら技術に関するものとして、特許文献1の技術がある。
米国特許出願公開第2002/0161880号明細書
ストレージ管理サーバーのストレージ管理アプリケーションプログラム側でストレージシステムの機能拡張に対応する場合、「拡張されたストレージ管理APIを使用した新たな処理論理の追加」と「拡張されたストレージ管理APIライブラリへの再リンク」が必要となる。そのため、既にリリース済みのストレージ管理アプリケーションプログラムでそのまま対応することができない。更に、多くのストレージ管理アプリケーションプログラムが存在するため、タイムリーに拡張していくことが困難である。
前述の課題に対して、ストレージ管理アプリケーションプログラム(管理AP)側にはユーザー操作画面の表示機能及び入力機能のみを実装し、他の全ての機能及び処理をストレージシステムのストレージ管理API提供サーバープログラム側に実装する解決手段もある。しかしながら、この手段を用いると複数のストレージ管理アプリケーションプログラムの処理をストレージシステム側のストレージ管理API提供サーバープログラムで集約して実行することとなるため、ストレージシステム側の処理負荷が高くなってしまう。更に、1つの機能を実行するには多数のコマンド命令とパラメータの発行とコマンド実行結果の受信が必要となり、ストレージ管理サーバーとストレージシステムとの間の情報の送受信が急増し、通信負荷も高くなる。そこで、本発明の1つの目的は、各ストレージ管理アプリケーションプログラムでの処理論理の追加を行わず、また、ストレージ管理API提供サーバープログラムを動作させるシステムでの処理負荷も高くせず、ストレージシステムで拡張された機能や新しいストレージシステムに各ストレージ管理アプリケーションプログラムを適用できるようにすることにある。
上記課題を解決するために、本発明の一実施形態では、ストレージ管理サーバーのストレージ管理APIライブラリに複数の汎用的な処理を実装する。また、ストレージ管理アプリケーションプログラムがストレージ管理APIライブラリを介してストレージ管理API提供サーバープログラムと接続されたときに、ストレージ管理APIライブラリがストレージ管理API提供サーバープログラムからストレージ管理API属性情報を取得する。そして、ストレージ管理アプリケーションプログラムがストレージ管理APIライブラリを介してストレージシステムの機能を実行するときに、その機能の実行の前後でストレージ管理APIライブラリが、ストレージ管理API属性情報に従って複数の汎用的な処理を組み合わせ、組み合わせた機能をストレージ管理アプリケーションプログラムが実行する。
本発明の一実施形態によれば、各ストレージ管理アプリケーションプログラムでの処理論理の追加を行わず、ストレージシステムの負荷も高くせずに、ストレージシステムでの機能拡張や機能追加に既存のストレージ管理アプリケーションプログラムを適用できる。前述以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
図1は、本実施形態の概念を示す図である。 図2は、ストレージ管理システムの全体構成を示す図である。 図3は、ストレージ管理システムでのソフトウェア構成を示す図である。 図4は、第1のストレージ管理API属性定義情報(createLdev)の構成例を示す図である。 図5は、第1のストレージ管理API属性情報(createLdev)の構成例を示す図である。 図6は、第2のストレージ管理API属性定義情報(addLuPath)の構成例を示す図である。 図7は、第2のストレージ管理API属性情報(addLuPath)の構成例を示す図である。 図8は、ストレージ管理API属性情報の生成処理の動作と、任意の機能の実行動作のシーケンスを示す図である。 図9は、要求データの妥当性チェック処理を示すフローチャート図である。 図10は、整数メンバーの妥当性チェック処理を示すフローチャート図である。 図11は、整数メンバーの妥当性チェック処理を示すフローチャート図である。 図12は、文字列メンバーの妥当性チェック処理を示すフローチャート図である。 図13は、バイト配列メンバーの妥当性チェック処理を示すフローチャート図である。 図14は、ストレージ管理API属性情報を利用した管理アプリケーションの画面の構成例を示す図である。
以下、図面を参照しながら実施の形態を説明する。なお、以下の説明では、「管理テーブル」等の表現にて各種情報を説明することがあるが、各種情報は、テーブル以外のデータ構造で表現されていてもよい。また、データ構造に依存しないことを示すために「管理テーブル」を「管理情報」と呼ぶことができる。
また、「プログラム」を主語として処理を説明する場合がある。そのプログラムは、プロセッサ、例えば、MP(Micro Processor)やCPU(Central Processing Unit)により実行されるもので、定められた処理をするものである。なお、プロセッサは、適宜に記憶資源(例えばメモリ)及び通信インターフェース(例えば、通信ポート)を用いながら処理を行うため、処理の主語がプロセッサとされてもよい。プロセッサは、CPUの他に専用ハードウェアを有していても良い。コンピュータプログラムは、プログラムソースから各コンピュータにインストールされても良い。プログラムソースは、例えば、プログラム配布サーバー又は記憶メディアなどで提供されるものであっても良い。
また、各要素、例えば、コントローラは番号などで識別可能であるが、各要素を識別可能な情報であれば、名前など他種の識別情報が用いられても良い。本実施例の図及び説明において同一部分には同一符号を付与しているが、本発明が本実施例に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。また、特に限定しない限り、各構成要素は複数でも単数でも構わない。
<発明概念>
図1は、本実施形態の概念を示す図である。本実施形態のストレージ管理システムは、ストレージシステムA 1aとストレージシステムB 1bとが管理ネットワーク91を介し、ストレージシステムの運用管理システムであるストレージ管理サーバー2(ストレージ管理サーバー2a/2b/2c)を接続される。なお、ストレージシステムA 1aとストレージシステムB 1bを単にストレージシステム1と、ストレージ管理サーバー2a/2b/2cを単にストレージ管理サーバー2を呼称することがある。
本実施形態では、(1)ストレージ管理API属性情報の取得、(2)機能実行の妥当性チェック、(3)機能実行の3つの動作により、前述の「拡張されたストレージ管理APIを使用した新たな処理論理の追加」と「拡張されたストレージ管理APIライブラリへの再リンク」が不必要とする。なお、ライブラリとは、汎用性のある処理や機能を実行するためのプログラムを纏めたファイルであり、OSやAP等からコールされて所定の処理(通信処理、関数計算処理など)を実行する。また、ストレージ管理APIとは、1つの機能を示すストレージ管理API属性情報を複数纏めたインターフェースプログラムである。
(1)ストレージ管理API属性情報の取得
ストレージ管理サーバー2が、ストレージシステムA 1aのストレージ管理API提供サーバープログラム3a内のストレージ管理API属性情報12a、ストレージシステムB 1bのストレージ管理API提供サーバープログラム3b内のストレージ管理API属性情報12bを取得する。また、このストレージ管理API属性情報とは、どのような機能コマンドがサポートされており、そのコマンドを実行する上で必要なデータ項目の種類、そのデータ項目の型(タイプ:文字列、整数等)、そのデータ項目の属性(最大値、最小値等)を定めたものである。このストレージ管理API属性情報は、ストレージシステム構成情報15a/15bにより、更新される。つまり、ストレージシステム1の構成が変更になるとストレージ管理API属性情報も変更されたストレージシステム構成情報15で更新される。このストレージシステム構成情報15は、ストレージシステムの新規導入時に設定され、システムの構成が変更される毎に情報が更新される。
例えば、ストレージ管理サーバー2a/2cがストレージシステムA 1aのストレージ管理API属性情報12aを取得し、ストレージ管理サーバー2b/2cがストレージシステムB 1bのストレージ管理API属性情報12bを取得する。また、各ストレージ管理サーバーのストレージ管理APIライブラリ、例えば、ストレージ管理APIライブラリ22a)に複数種類の汎用処理プログラム(図中の汎用処理A/B/C等、以下汎用処理と略す)が予め実装されている。また、各ストレージ管理サーバーのストレージ管理アプリケーションプログラムは、ストレージ管理APIライブラリを用いて所定の処理を実行する。
以上のように、ストレージ管理サーバー2aはストレージ管理API属性情報12aを、ストレージ管理サーバー2bはストレージ管理API属性情報12bを、ストレージ管理サーバー2cはストレージ管理API属性情報12a及びストレージ管理API属性情報12bを取得し、ストレージ管理APIライブラリに格納し保持する。
(2)機能実行の妥当性チェック
各ストレージ管理サーバーでは、各ストレージシステムから取得したストレージ管理API属性情報に基づいて、ストレージ管理APIライブラリに予め実装されている汎用処理(図中の汎用処理A/B/C等、例えば図3のチェック処理)を組み合わせて機能の妥当性チェックを行う。例えば、ストレージ管理サーバー2aが取得したストレージシステムA 1aのストレージ管理API属性情報12aに基づいて、汎用処理A/B/C等を組み合わせてストレージシステムA 1aへの機能実行の妥当性チェックを行う。同じく、ストレージ管理サーバー2bでは、ストレージ管理API属性情報12bに基づいて、汎用処理A/B/C等を組み合わせてストレージシステムB 1bへの機能実行の妥当性チェックを行う。同様に、ストレージ管理サーバー2cでは、ストレージ管理API属性情報12aないしストレージ管理API属性情報12bに基づいて、汎用処理A/B/C等を組み合わせて、ストレージシステムA 1aへの機能実行の妥当性チェックを行い、ストレージシステムB 1bへの機能実行の妥当性チェックも行う。妥当性チェック処理の内容については、図3で説明する。
(3)妥当性チェック完了後の機能実行
ストレージ管理サーバーは、妥当性チェック完了後の機能をストレージシステムに対し実行する。機能実行の命令を受けたストレージシステムは、ストレージシステム制御プログラム14が指定された命令を実行する。ストレージシステム制御プログラム14とは、システムの基本的な制御(ディスク制御、システム情報管理など)を行うプログラムで、後述のメモリないしディスクに格納されCPUで適宜実行される。例えば、ストレージ管理サーバー2aでは、ストレージシステムA 1aへ機能を実行する。ストレージ管理サーバー2cでは、ストレージシステムA 1aないしストレージシステムB 1bへ新機能を実行する。そして、それぞれのストレージシステム制御プログラム14での実行結果をストレージ管理サーバーが取得する。
以上の(1)から(3)の動作により、各ストレージ管理アプリケーションプログラムでの処理論理の追加が不必要とし、ストレージ管理API提供サーバープログラムへの負荷も高くせずに、ストレージシステムの拡張された機能や新しいストレージシステムに各ストレージ管理アプリケーションプログラムを適用できるようになる。この詳細な動作については後述する。
<システム構成>
図2は、ストレージ管理システムの全体構成を示す図である。ストレージ管理システムは、ストレージシステム、およびストレージ管理サーバーを含んで構成される。ストレージシステムは一つでも複数でも良い。また、ストレージ管理サーバーも一つでも複数でも良い。
図2に示すストレージ管理システムでは、ストレージシステム1a/ストレージシステム1b、ストレージシステム1の管理システムであるストレージ管理サーバー4a/4b、ストレージ管理サーバー4a/4bを制御するための管理端末6a/6b(以下、管理端末6)、ストレージシステム1とストレージ管理サーバー4との接続システムとしての役割を果たすアダプタサーバー5とを備え、それぞれのシステムが管理ネットワーク91/92により接続される。
ストレージシステム1aは、SVP(Service Processor)10とストレージデバイス13を備える。
SVP10には、システム全体を制御するCPU101、管理ネットワーク91に接続し、ストレージ管理サーバー4やアダプタサーバー5との通信を行うNIC(Network Interface Card)102、ストレージシステムのストレージシステム構成情報20などの制御情報やストレージ管理API提供サーバープログラム3などの各種プログラムやライブラリを一時的に格納する揮発性メモリ103(以下、メモリ103)、ストレージシステム構成情報20などの制御情報やストレージ管理API提供サーバープログラム3などのプログラムやライブラリを恒久的に格納する不揮発性記憶デバイスであるディスク104を備える。SVP10は、ストレージデバイス13の構成や状態を監視し、 ストレージ管理サーバー4やアダプタサーバー5からの管理コマンドを受け付けて、ストレージデバイス13を制御する。ストレージ管理API提供サーバープログラム3がSVP10のCPU101で動作し、前述の構成や状態の監視機能及び管理コマンドの受信機能を実現する。
また、ストレージデバイス13は、大量のデータを恒久的に格納するディスク136とそのディスク136を制御するディスクコントローラ(以下、コントローラ)135を備え、ホストサーバー(図示せず)とユーザーデータのやり取りを行い、ユーザーデータをディスク136に保管する。ストレージシステム制御プログラム14がコントローラ135で動作し、前述のユーザーデータのやり取り機能とユーザーデータの保管機能を実現する。
なお、ストレージデバイス13とSVP10は同一筐体内にあっても良いし、異なる筐体となっていてネットワークや接続線で接続されていても良い。
ストレージシステム1bは、SVP31とストレージデバイス33から構成される。SVP31は、ストレージシステム1aのSVP10と同様、CPU311、NIC312、メモリ313、ディスク314を備え、更にストレージデバイス33との通信を行うNIC317を備える。SVP31は、ストレージデバイス33の構成や状態を監視し、 ストレージ管理サーバー4やアダプタサーバー5からの管理コマンドを受け付けて、ストレージデバイス33を制御する。ストレージ管理API提供サーバープログラム3がSVP31のCPU311で動作し、前述の構成や状態の監視機能及び管理コマンドの受信機能を実現する。
また、ストレージデバイス33は、ディスク336、コントローラ335、SVP31との通信を行うNIC337を備え、ホストサーバー(図示せず)とユーザーデータのやり取りを行い、ユーザーデータをディスク336に保管する。ストレージシステム制御プログラム14がコントローラ335で動作し、前述のユーザーデータのやり取り機能とユーザーデータの保管機能を実現する。
なお、ストレージデバイス33とSVP31は同一筐体内にあっても良いし、異なる筐体となっていてネットワークで接続されていても良い。また、SVP31には、1つ以上のストレージデバイス33を接続することができる。
ストレージ管理サーバー4は、CPU411、メモリ413、ディスク414、NIC412/417を備え、単一、もしくは複数のストレージシステム1とネットワークで接続され、ストレージシステム1を操作するユーザーインターフェースや別のストレージ管理サーバー4がストレージシステム1を操作するためのAPIを提供する。別のストレージ管理サーバー4にAPIを提供するストレージ管理サーバーを、特にアダプタサーバー5と呼ぶこともある。ストレージ管理アプリケーションがストレージ管理サーバー4のCPU411で動作し、前述のユーザーインターフェース機能やAPI提供機能を実現する。
アダプタサーバー5は、CPU511、メモリ513、ディスク514、NIC512/517を備える。
また、図示はしていないが、管理端末6もストレージ管理サーバー4と同様のハードウェア構成を備え、更にキーボードやマウスなどの情報入力装置や液晶ディスプレイなどの表示装置を備える。なお、各システムの構成は全て同じである必要はなく、管理端末6のように、情報入力装置または表示装置を備えてもよい。
<ソフトウェア構成>
図3は、ストレージ管理システムでのソフトウェア構成を示す図である。ストレージシステム1aのソフトウェアとして、ストレージ管理API提供サーバープログラム3aがストレージシステム1aのディスク104またはディスク136に格納され、CPU101ないしコントローラ135により適宜メモリ103に読み出されて使用される。なお、ストレージ管理API提供サーバープログラム3aによりストレージ管理API属性情報12aが管理される。また、ストレージシステム1aと同様、ストレージシステム1bのソフトウェアとして、ストレージ管理API提供サーバープログラム1bがストレージシステム1bのディスク314またはディスク336に格納され、CPU311ないしコントローラ335により適宜メモリ313に読み出されて実行される。なお、ストレージ管理API提供サーバープログラム3bによりストレージ管理API属性情報12bが管理される。
このストレージ管理API属性情報12aは、ディスク104ないしディスク136に格納され、CPU101やコントローラ135により適宜メモリ103に読み出され、NIC102で接続されるネットワーク91経由でストレージ管理サーバー4やアダプタサーバー5に提供される。
また、ストレージ管理API属性情報12bは、ディスク314ないしディスク336に格納され、CPU311やコントローラ335により適宜メモリ313に読み出され、NIC312で接続されるネットワーク91経由でストレージ管理サーバー4やアダプタサーバー5に提供される。
なお、図示はしていないがストレージ管理API属性情報12aを生成するためのストレージ管理API属性定義情報(図4ないし図6参照)も、ディスク314ないしディスク336に格納されている。そして、ストレージ管理API属性定義情報はCPU311やコントローラ335によりディスク314ないしディスク336から適宜メモリ313に読み出され、同じく読み出されたストレージシステム1aのストレージシステム構成情報15aに基づいてストレージ管理API属性情報12aが生成される。ストレージ管理API属性情報12bもストレージ管理API属性情報12aと同様である。詳細な動作については後述する。
ストレージ管理サーバー4aのソフトウェアとして、ストレージ管理アプリケーションプログラム(管理AP)41aがある。ストレージ管理AP41aは、前述のようにストレージシステム1aのストレージ管理API属性情報12aないしストレージシステム1bのストレージ管理API属性情報12bと、ストレージ管理APIライブラリ42aとを用いて所定の機能をストレージシステム1aないしストレージシステム1bに対してCPU411で実行するソフトウェアである。ストレージ管理AP41aはディスク414に格納され、適宜CPU411によりメモリ413に読み出され実行される。また、ストレージ管理APIライブラリ42aもディスク414に格納され、適宜CPU411によりメモリ413に読み出され、ストレージ管理AP41aの実行時に用いられる。更に、ストレージシステム1から取得されるストレージ管理API属性情報12もディスク414に一旦格納され、適宜CPU411によりメモリ413に読み出され、ストレージ管理AP41aの実行時に用いられる。
ストレージ管理サーバー4bのソフトウェアとして、ストレージ管理AP41bがある。ストレージ管理AP41bは、ストレージ管理AP41aと同様、ストレージ管理API属性情報とストレージ管理APIライブラリとを用いて所定の機能をストレージシステム1aないしストレージシステム1bに対してCPU421で実行するソフトウェアでディスク424に格納され、メモリ423に読み出され実行される。
アダプタサーバー5のソフトウェアとして、ストレージ管理サーバー4bのストレージ管理AP41bがストレージシステム1aないしストレージシステム1bに対して機能を実行する際のアダプタの役割を果たすアダプタプログラム(以下、アダプタ)51がある。アダプタ51は、ストレージシステム1aのストレージ管理API属性情報12aないしストレージシステム1bのストレージ管理API属性情報12bと、ストレージ管理APIライブラリ52とを用いて、ストレージ管理サーバー4bのストレージ管理AP41bからの要求に応じた機能をストレージシステム1aないしストレージシステム1bに対してCPU511で実行するソフトウェアである。このアダプタサーバー5のアダプタ5により、ストレージ管理サーバー4bでは、ストレージ管理APIライブラリの実装とストレージ管理API属性情報の取得が不要となる。このアダプタ51はディスク514に格納され、ストレージ管理AP41bがCPU421で動作する場合、CPU511によりディスク514からメモリ513に読み出され実行される。また、ストレージ管理APIライブラリ52及びストレージ管理API属性情報12はディスク514に格納され、ストレージ管理AP41bがCPU421で動作する場合、必要に応じてCPU511がメモリ513に読み出して実行する。
ストレージ管理APIライブラリ42aないしストレージ管理APIライブラリ52には、汎用処理として、例えば、依存メンバーチェック処理、最大値(静的)チェック処理、最小値(静的)チェック処理、使用可能値(静的)チェック処理、最大値(動的)チェック処理、最小値(動的)チェック処理、使用可能値(動的)チェック処理などの各種汎用処理を格納し予め実装しておく。なお、汎用処理は、チェック処理に限定されるものではなく、チェック処理結果をエラーコードで表示する処理、更にエラーメッセージに変換する処理などを加えることもできる。
なお、複数のストレージ管理API提供サーバープログラムから複数種類のストレージ管理API属性情報を取得することがストレージ管理サーバー4/アダプタサーバー5で可能である。そのため、ストレージ管理サーバー4/アダプタサーバー5で1つのストレージ管理APIライブラリを用いて異なるストレージシステムの管理を行うことができる。また、ストレージ管理APIライブラリに実装されている汎用処理はエンハンスで追加することが可能である。
<ストレージ管理API属性定義情報1>
図4は、第1のストレージ管理API属性定義情報の構成例を示す図である。ストレージ管理API属性定義情報とは、機能内容と必要なパラメータ(設定値)を定義した属性情報でストレージ管理API属性情報の基となる情報である。図4のストレージ管理API属性定義情報400では、createLdev機能(LDEV作成機能)を例とした場合である。このストレージ管理API属性定義情報400は、ストレージ管理API提供サーバープログラム3が起動(動作開始)した際に、ストレージシステム1aのメモリ103ないしディスク104/ディスク136からCPU101が取得する。なお、ストレージシステム1bの場合は、ストレージ管理API属性定義情報をメモリ313ないしディスク314/ディスク336からCPU311が取得する。
ストレージ管理API属性定義情報400は、機能名が“createLdev”で、要求データのメンバーとして4つあり、名前(メンバー名)がそれぞれ“LdevId”、“Nickname”、“Capacity”、“PoolId”で対応する型(タイプ)はそれぞれ“整数”、“文字列”、“整数”、“整数”である。また、要求データに対する応答データのメンバーは1つあり、名前が“Result”で型は“整数”である。
要求データのメンバー“LdevId”、“Nickname”、“Capacity”、“PoolId”それぞれに対応するストレージ管理API属性定義情報が符号401から404で、応答データのメンバー“Result”に対するストレージ管理API属性定義情報が符号405である。
ストレージ管理API属性定義情報401(メンバー名:“LdevId”)のメンバーの属性は、“最大値(静的)”、“最小値(静的)”、“使用可能値(動的)”の3つあり、それぞれの値が整数で設定される。“最大値(静的)”及び“最小値(静的)”の値が、ストレージ管理API提供サーバープログラムの起動時にメモリ103/メモリ313やディスク104/ディスク314ないしディスク136/ディスク336に格納されたファイルの情報で設定される。属性“使用可能値(動的)”は、ストレージ管理API提供サーバープログラム3がストレージシステム1のストレージシステム構成情報15を取得した場合に設定される。
ストレージ管理API属性定義情報402(メンバー名:“Nickname”)のメンバーの属性は、“最大文字列長”、“最小文字列長”、“使用可能文字”の3つあり、“最大文字列長”が32、“最小文字列長”が0という整数で、“使用可能文字”が“a−z、A−Z、0−9”で指定される文字列で設定される。
ストレージ管理API属性定義情報403(メンバー名:“Capacity”)のメンバーの属性は、“依存メンバー”、“最大値(静的)”、“最小値(静的)”、“最大値(動的)”である。“依存メンバー”は、メンバー名が“PoolId”であるストレージ管理API属性定義情報404の内容を取得するための情報である。また、属性“最大値(動的)”は、前述の属性“使用可能値(動的)”と同様、ストレージ管理API提供サーバープログラム3がストレージシステム1のストレージシステム構成情報15を取得した場合に設定される。
ストレージ管理API属性定義情報404(メンバー名:“PoolId”)のメンバーの属性は、ストレージ管理API属性定義情報401と同様である。ストレージ管理API属性定義情報405のメンバーの属性はなく、機能名が“createLdev”を実行した結果が応答データにResultというメンバー名で整数として格納されることを示す。応答データのResultの格納値は、例えば、“0”が正常動作、“0”以外が異常終了という値によって実行した結果を判断できるようにする。
なお、要求データ、応答データのメンバーはストレージシステムのエンハンス(改良:機能拡張、新機能追加など)で、ストレージ管理API属性定義情報に追加することが可能である。また、メンバーの型はエンハンスで変更することが可能である。メンバーの属性もエンハンスでストレージ管理API属性定義情報に追加することが可能である。メンバーの属性の値はエンハンスで変更することが可能である。
<ストレージ管理API属性情報1>
図5は、第1のストレージ管理API属性情報(createLdev)の構成例を示す図である。図8で後述するS815の処理でストレージシステム1のシステム情報を元にストレージ管理API属性定義情報400に動的な情報を格納して、ストレージ管理API属性情報500を生成する。
ストレージ管理API属性情報501(メンバー名:“LdevId”)の属性“使用可能値(動的)”には、取得したストレージシステム1のシステム情報から“21−30”、“100−1023”が格納される。すなわち、LdevIdが“21−30”、“100−1023”は未使用で、この番号のLDEVを生成することが可能であることを意味する。
ストレージ管理API属性情報504(メンバー名:“PoolId”)の属性“使用可能値(動的)”には、取得した情報から“0、2、100”が格納される。すなわち、PoolIdが“0”、“2”、“100”であるプールが生成されたプールで使用可能なものを示している。そして、本情報を引数としてストレージ管理API属性情報503(メンバー名:“Capacity”)に伝達される。つまり、メンバー名が“ストレージ管理API属性情報503の属性“最大値(動的)”で、“PoolId=0のとき最大値(動的)は65535”、“PoolId=2のとき最大値(動的)は4096”、“PoolId=100のとき最大値(動的)は10000”と“PoolId”の情報が引用される。
本実施形態では、例えば、拡張前のストレージ管理APIで、機能名が“createLdev”であるストレージ管理API属性定義情報には、メンバー名が“Nickname”(型:“整数”)がなく、拡張後のストレージ管理APIで、メンバー名が“Nickname”(型:“整数”)がサポートされたとする。管理アプリケーション側では、この拡張後のストレージ管理APIでのメンバー名が“Nickname”(型:“整数”)の機能が実行できるようにする必要がある。そこで、この“createLdev”機能が実行要求をストレージシステム1のストレージ管理API提供サーバープログラム3が受信すると、機能拡張後のストレージ管理API属性定義情報から生成されたストレージ管理API属性情報を管理アプリケーション側のストレージ管理APIライブラリに送信し、ストレージ管理APIライブラリは受信したストレージ管理API属性情報を内部に格納し保持する。そして、この“createLdev”機能への設定情報が妥当であるかを汎用処理である妥当性チェック処理で判断し、拡張機能の実行を可能とする。その妥当性チェック処理の詳細動作については図8以降で詳述する。
<ストレージ管理API属性定義情報2>
図6は、第2のストレージ管理API属性定義情報(addLuPath)の構成例を示す図である。図6のストレージ管理API属性定義情報600では、addLuPath機能(LUパス追加機能)を例とした場合である。このストレージ管理API属性定義情報600も、ストレージ管理API属性定義情報400と同様、ストレージ管理API提供サーバープログラム3が起動(動作開始)した際に、ストレージシステム1aのメモリ103ないしディスク104/ディスク136からCPU101が取得する。なお、ストレージシステム1bの場合は、ストレージ管理API属性定義情報をメモリ313ないしディスク314/ディスク336からCPU311が取得する。
ストレージ管理API属性定義情報600は、機能名が“addLuPath”で、要求データのメンバーとして4つあり、名前(メンバー名)がそれぞれ“HostWwn”、“PortId”、“Lun”、“LdevId”で対応する型(タイプ)はそれぞれ“バイト配列”、“整数”、“整数”、“整数”である。また、要求データに対する応答データのメンバーは1つあり、名前が“Result”で型は“整数”である。
要求データのメンバー“HostWwn”、“PortId”、“Lun”、“LdevId”それぞれに対応するストレージ管理API属性定義情報が符号601から604で、応答データのメンバー“Result”に対するストレージ管理API属性定義情報が符号605である。
ストレージ管理API属性定義情報601(メンバー名:“HostWwn”)のメンバーの属性は、“配列長”で8バイトの情報で定義される。ストレージ管理API属性定義情報603(メンバー名:“Lun”)のメンバーの属性は、“依存メンバー”、“最大値(静的)”、“最小値(静的)”、“最大値(動的)”である。“依存メンバー”は、メンバー名が“PortId”であるストレージ管理API属性定義情報602の内容を取得するための情報である。ストレージ管理API属性定義情報602(メンバー名:“PortId”)とストレージ管理API属性定義情報604(メンバー名:“LdevId”)は、前述のストレージ管理API属性定義情報401(メンバー名:“LdevId”)ないしストレージ管理API属性定義情報404(メンバー名:“PoolId”)の構成と同様である。
なお、要求データ、応答データのメンバー、メンバーの属性はエンハンスでストレージ管理API属性定義情報への追加が可能で、メンバーの属性の値もエンハンスでストレージ管理API属性定義情報の変更が可能である。メンバーの型もエンハンスでストレージ管理API属性定義情報への追加が可能である。
<ストレージ管理API属性情報2>
図7は、第2のストレージ管理API属性情報(addLuPath)の構成例を示す図である。図8のS815でストレージシステムの情報を元にストレージ管理API属性定義情報に動的な情報を格納して、本ストレージ管理API属性情報を生成する。
本例でも、図5と同様、ストレージ管理API属性情報702(メンバー名:“PortId”)の属性“使用可能値(動的)”には、取得した情報から“0、1、2、3”が格納され、0番から3番までのポートが使用可能であることが分かる。ストレージ管理API属性情報703(メンバー名:“Lun”)、ストレージ管理API属性情報704(メンバー名:“LdevId”)も、ストレージ管理API属性情報702(メンバー名:“PortId”)と同様である。なお、前述のストレージ管理API属性定義情報及びストレージ管理API属性情報は、機能名が“createLdev”(LDEV生成)と、“addLuPath”(LUNパス追加)という機能について説明したがこれに限定されるものではなく、機能がボリューム容量拡張、差分データ保存(スナップショット実行)、ボリューム種別変更などでもよい。また、本実施形態では既存の機能へのメンバー追加を例として、説明したが、ボリュームに関する命令として、前述のLDEV生成やボリューム容量拡張とは、異なる新機能である「ボリューム削除」という命令を新規に追加して汎用処理とを組み合わせることで、メンバー追加時と同等の効果を得ることができる。
<動作シーケンス>
図8は、ストレージ管理API属性情報の生成処理の動作と、任意の機能の実行動作のシーケンスを示す図である。処理の主体を、各ソフトウェアないしシステムとするが、ストレージシステム1またはストレージ管理サーバー4、アダプタサーバー5単体でもよく、各システムのCPUでもよい。
S811で、ストレージシステム1のCPU101/CPU311で動作するストレージ管理API提供サーバープログラム3は、プログラム起動命令により自身の起動を開始する。プログラム起動命令は、スケジューラ等で定期的に、またはストレージシステム1の構成や機能が追加・変更されたことを契機に発行される。
S812で、ストレージ管理API提供サーバープログラム3は、ストレージシステム1のメモリ103/メモリ313ないしディスク104/ディスク314に格納されたストレージ管理API属性定義情報を読み出す。
S813で、ストレージ管理API提供サーバープログラム3は、ストレージシステム1のストレージシステム構成情報15(ボリュームの生成状態情報、ストレージプールの生成・使用状態情報や上位システムとの接続ポート情報など)を取得するための命令をストレージシステム制御プログラム14に発行する。なお、ストレージシステム1のストレージシステム構成情報15は、予めストレージシステム1のメモリ103/メモリ313ないしディスク104/ディスク314に格納しておき、ストレージ管理API提供サーバープログラム3が取得するようにしてもよい。
S814で、取得命令を受信したストレージシステム制御プログラム14はメモリ103/メモリ313ないしディスク104/ディスク314に格納してあるストレージシステム1のストレージシステム構成情報15を読み出してストレージ管理API提供サーバープログラム3に送信する。ストレージ管理API提供サーバープログラム3は、取得したストレージシステム構成情報15をストレージ管理API提供サーバープログラム3が管理するメモリ103/メモリ313ないしディスク104/ディスク314の記憶領域に格納する。
S815で、ストレージ管理API提供サーバープログラム3は、S814で取得したストレージシステム構成情報15で、ストレージ管理API属性定義情報(例えば、ストレージ管理API属性定義情報400)を更新し、ストレージ管理API属性情報(例えば、ストレージ管理API属性情報500)を生成する。そして、ストレージ管理API提供サーバープログラム3は、生成したストレージ管理API属性情報をメモリ103/メモリ313ないしディスク104/ディスク314に格納する。このS815の処理をストレージ管理APIでサポートしている全ての機能に対して実行する。
以上のS811からS815の処理で、ストレージ管理API提供サーバープログラム3は、最新のストレージ管理API属性情報を生成できる。S812の処理は、サーバー起動開始時だけでなく、スケジューラ等で定期的に、または拡張API実装時にファイルから読み込むようにしてもよい。また、S813からS815のストレージ管理API属性情報の生成も同様である。なお、ストレージ管理AP41ないしアダプタ51からの機能実行要求で該当する機能または全機能のストレージ管理API属性情報を更新するようにしてもよい。
S821で、ストレージ管理サーバー4(CPU411)で動作するストレージ管理AP41ないしアダプタサーバー5(CPU511)で動作するアダプタ51は、システム管理者から任意の機能を実行する命令を受領する。つまり、システム運用管理者が管理端末6の入力装置で所定処理の実行命令を入力し、その命令を管理端末6が受け付けてストレージ管理サーバー4ないしアダプタサーバー5に転送することを契機に、ストレージ管理サーバー4(CPU411)ないしアダプタサーバー5(CPU511)によりS821の処理が開始される。
S822で、任意機能の実行命令を受領したストレージ管理AP41/アダプタ51は、その命令の機能名の機能を実行する準備を行う。つまり、ストレージ管理AP41/アダプタ51が動作するストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、ストレージ管理APIライブラリ42/52を介して機能名に対するストレージ管理API属性情報の取得を、ストレージ管理API提供サーバープログラム3に要求する。
S823で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、ストレージ管理API提供サーバープログラム3から機能名に対応するストレージ管理API属性情報の取得を要求する。例えば、LDEV生成機能を実行するためには、図5でのストレージ管理API属性情報500から504を取得する。
S824で、ストレージ管理API提供サーバープログラム3は、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)に機能名に対応するストレージ管理API属性情報を送信する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、受信したストレージ管理API属性情報をストレージ管理APIライブラリ42/52に組み込む。ストレージ管理API属性情報を組み込んだストレージ管理APIライブラリ42/52は、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)により、メモリ413/メモリ513またはディスク414/ディスク514に格納し保持される。
S825で、機能名に対応するストレージ管理API属性情報のストレージ管理APIライブラリ42/52への組み込み完了後、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、機能実行の準備完了をストレージ管理AP41/アダプタ51に通知する。前述のように、拡張前のストレージ管理APIではメンバー名が“Nickname”(型:“整数”)がなく、拡張後のストレージ管理APIでメンバー名“Nickname”がサポートされた場合でも、図14のように、メンバー名“Nickname”及び型の表示と入力(要求データの設定)ができる。
S826で、ストレージ管理AP41/アダプタ51は、機能の要求データを設定して、ストレージ管理APIライブラリ42/52へ送信する。機能の要求データの設定は、図14に示す管理アプリケーションでの画面を用いて行う。なお、設定される要求データの例として、図5に示すストレージ管理API属性情報500から504の情報である。設定された要求データに問題がないかの妥当性チェックを、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)がS827で行う。
S827で、要求データをストレージ管理APIライブラリ42/52が受信すると、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、ストレージ管理APIライブラリ42/52に予め実装して備えられた汎用処理で要求データの妥当性チェックを行う。妥当性チェックは、サポートメンバー、その型(タイプ)、及びその属性の確認を行うが、その詳細については図9から図13で詳述する。妥当性チェックで問題がなければ、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、ストレージ管理APIライブラリ42/52でサポートされた汎用処理を用いて、S828を実行し、問題があればエラー報告をストレージ管理AP41/アダプタ51へ行う。
S828で、要求データを指定された命令の引数としてストレージ管理APIライブラリ42/52に保存するため、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、ストレージ管理APIライブラリ42/52が管理している記憶領域(メモリ103/メモリ313ないしディスク104/ディスク314)に要求データを格納する。
S829で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、ストレージ管理APIライブラリ42/52に機能の要求データの設定が完了したことをストレージ管理AP41/アダプタ51に通知する。
S830で、機能の要求データの設定完了通知を受領したストレージ管理AP41/アダプタ51は指定された機能実行を、ストレージ管理APIライブラリ42/52を介しストレージ管理API提供サーバープログラム3へ要求する。
S831で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、機能実行の要求を受けたストレージ管理APIライブラリ42/52を介してストレージ管理API提供サーバープログラム3へ機能実行命令を要求データと共に送信する。
S832で、ストレージ管理API提供サーバープログラム3はストレージシステム制御プログラム14に要求データ付の機能実行命令を送信する。そして、ストレージシステム制御プログラム14は、受信した要求データ付の機能を実行し、実行結果を自身が管理しているメモリ103/メモリ313ないしディスク104/ディスク314の記憶領域に格納する。
S833で、ストレージシステム制御プログラム14は、前述の実行結果を応答データとして、ストレージ管理API提供サーバープログラム3へ送信する。
S834で、ストレージ管理API提供サーバープログラム3は、応答データをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)に送信する。この応答データは、例えば、ストレージ管理API属性情報500の応答データメンバーと、ストレージ管理API属性情報505の応答データメンバーの属性及び値が該当する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、受信した応答データをストレージ管理APIライブラリ42/52に組み込む。応答データを組み込んだストレージ管理APIライブラリ42/52は、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)により、メモリ413/メモリ513またはディスク414/ディスク514に格納し保持される。
S835で、応答データのストレージ管理APIライブラリ42/52への格納完了後に、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、ストレージ管理AP41/アダプタ51へ機能実行の完了通知を送信する。
S836で、機能実行の完了を確認したストレージ管理AP41/アダプタ51は、機能の応答データ取得要求をストレージ管理APIライブラリ42/52へ送信する。
S837で、機能の応答データ取得要求をストレージ管理APIライブラリ42/52を介して受信したストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、メモリ413/メモリ513またはディスク414/ディスク514に格納し保持されている応答データを読み出して取得する。
S838で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、取得した応答データをストレージ管理AP41/アダプタ51へ送信する。
S839で、ストレージ管理AP41/アダプタ51は、取得した応答データ管理端末6に転送し、任意の機能の実行結果を表示装置等に表示してシステム管理者へ要求機能の実行結果を通知する。
S841からS843の処理は、S813からS815の処理と同じである。このS841からS843の処理は、スケジューラ等で定期的(一定時刻に到達時)に、またはストレージシステム1の構成や機能が追加・変更されたこと(ストレージ管理API属性定義情報が更新された場合やストレージシステム1のストレージシステム構成情報15が更新された場合)を契機に実行される。また、ストレージ管理API提供サーバープログラム3へのアクセス毎に、ストレージ管理API属性定義情報とストレージシステム1のストレージシステム構成情報15を取得し、ストレージ管理API属性情報を生成してもよい。
以上のように、任意の機能を実行する際、ストレージ管理API属性情報を取得して、その機能に合致した要求データを設定し、その妥当性をチェックすることにより、ストレージシステム1で機能が拡張されても管理側のアプリケーションをエンハンス(改良)することなく拡張された機能を実行できる。なお、本実施形態の汎用処理は、妥当性チェック処理に限定にされるものではなく、例えば、ストレージ管理APIライブラリ52に格納済のストレージ管理API属性情報と、取得したストレージ管理API属性情報との差分有無を検出する処理、追加されたメンバーや属性・型・値の変更内容を検出する処理等もあり、これら処理を予めストレージ管理APIライブラリ42/52に実装することも可能である。更に、応答データの整数値(命令実行結果の内容を示す値)をストレージ管理サーバーやストレージシステム1の運用管理するシステム管理者が分かり易いメッセージに変更するための汎用処理でもよい。
<要求データの妥当性チェック処理>
図9は、要求データの妥当性チェック処理を示すフローチャート図である。本処理は、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)がストレージ管理APIライブラリ42/52に実装された汎用処理を用いて実行する。要求データの妥当性チェックは、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)がストレージ管理APIライブラリ42/52のS827の処理を実行することで開始される。ストレージ管理API属性情報500(機能名:“createLdev”/要求データのメンバー:“LdevId”、“Nickname”、“Capacity”、“PoolId”/対応する型(タイプ):“整数”、“文字列”、“整数”、“整数”)を例として説明する。
S901で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、機能名(“createLdev”)でサポートしているメンバーかを判断する。要求データのメンバーが“LdevId”、“Nickname”、“Capacity”、“PoolId”であれば(S901:Yes)、S902を実行し、それ以外のメンバーであればS906を実行する。
S902で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、メンバーの型を判断する。メンバーの型が“整数”であればS903を、“文字列”であればS904を、“バイト配列”であればS905を実行する。例えば、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、メンバーが“LdevId”の型は“整数”なのでS903を、メンバーが“Nickname”の型は“文字列”なのでS904を、また、ストレージ管理API属性情報700の要求データのメンバーが“HostWwn”の型は“バイト配列”なので、S905を実行する。
S903で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、整数メンバーの妥当性チェック処理(図10及び図11)を実施し、そのチェック結果(応答データ)を取得する。
S904で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、文字列メンバーの妥当性チェック処理(図12)を実施し、そのチェック結果(応答データ)を取得する。
S905で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、バイト配列メンバーの妥当性チェック処理(図13)を実施し、そのチェック結果(応答データ)を取得する。
S906で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、サポートしているメンバーに該当しないと判断して、未サポートメンバーエラーをストレージ管理AP41/アダプタ51へ通知する。そして、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、要求データの妥当性チェックを終了する。以上の処理で、要求データが妥当か否かを判断でき、その判断結果(チェック結果)を応答データとして生成できる。S901、S903からS905の処理それぞれが、汎用処理の1つの例である。
<整数メンバーの妥当性チェック処理>
図10及び図11は、整数メンバーの妥当性チェック処理を示すフローチャート図である。この整数メンバーの妥当性チェック処理で要求データの妥当性を検証する。本処理は、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)がストレージ管理APIライブラリ42/52に実装された汎用処理を用いて実行する。
S1001で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に依存メンバーが設定されているかを判断する。設定されている場合(S1001:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1002を実行し、設定されていない場合(S1001:No)はS1004を実行する。例えば、ストレージ管理API属性情報503では、依存メンバーとして“PoolId”が設定されている。同様に、ストレージ管理API属性情報703でも、依存メンバーとして“PortId”が設定されている。
S1002で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、依存メンバーのチェックを実施する。つまり、依存メンバーとして適切なメンバーの値が設定されているかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。例えば、ストレージ管理API属性情報503では依存メンバーとして“PoolId”が設定されているので、Capacityの値を設定する前にPoolIdに妥当な値が設定されているかを確認する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、適切なメンバーの値が設定されている場合はチェック結果を“OK”とし、設定されていない場合は“NG”とする。
S1003で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、依存メンバーのチェック結果が“OK”の場合はS1004を、“NG”の場合はS1023を実行する。S1023で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、依存メンバー未設定エラーをストレージ管理AP41/アダプタ51に通知する。
S1004で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に最大値(静的)が設定されているかを判断する。設定されている場合(S1004:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1005を実行し、設定されていない場合(S1004:No)はS1007を実行する。例えば、ストレージ管理API属性情報503ないしストレージ管理API属性情報702では、属性に最大値(静的)が設定されている。
S1005で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最大値(静的)のチェックを実施する。つまり、設定値が最大値(静的)以下かをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、超えている場合はチェック結果を“NG”とし、以下の場合は“OK”とする。
S1006で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1007を、“NG”であればS1024を実行する。S1024で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最大値(静的)範囲エラーをストレージ管理AP41/アダプタ51に通知する。
S1007で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に最小値(静的)が設定されているかを判断する。設定されている場合(S1007:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1008を実行し、設定されていない場合(S1007:No)はS1010を実行する。例えば、ストレージ管理API属性情報503ないしストレージ管理API属性情報702では、属性に最小値(静的)が設定されている。
S1008で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最小値(静的)のチェックを実施する。つまり、設定値が最小値(静的)以上かをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、未満の場合はチェック結果を“NG”とし、以上の場合は“OK”とする。
S1009で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1010を、“NG”であればS1025を実行する。S1025で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最小値(静的)範囲エラーをストレージ管理AP41/アダプタ51に通知する。
S1010で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に使用可能値(静的)が設定されているかを判断する。設定されている場合(S1010:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1011を実行し、設定されていない場合(S1010:No)はS1013を実行する。
S1011で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、使用可能値(静的)のチェックを実施する。つまり、設定値が使用可能値(静的)に存在するかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、存在する場合はチェック結果を“OK”とし、存在しない場合は“NG”とする。
S1012で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1013を、“NG”であればS1026を実行する。S1026で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、使用可能値(静的)対象外エラーをストレージ管理AP41/アダプタ51に通知する。
S1013で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に最大値(動的)が設定されているかを判断する。設定されている場合(S1013:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1014を実行し、設定されていない場合(S1013:No)はS1016を実行する。例えば、ストレージ管理API属性情報503では、属性に最大値(動的)が設定されている。
S1014で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最大値(動的)のチェックを実施する。つまり、設定値が最大値(動的)以下かをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、超えている場合はチェック結果を“NG”とし、以下の場合は“OK”とする。
S1015で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1016を、“NG”であればS1027を実行する。S1027で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最大値(動的)範囲エラーをストレージ管理AP41/アダプタ51に通知する。
S1016で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に最小値(動的)が設定されているかを判断する。設定されている場合(S1016:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1017を実行し、設定されていない場合(S1016:No)はS1019を実行する。
S1017で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最小値(動的)のチェックを実施する。つまり、設定値が最小値(動的)以上かをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、未満の場合はチェック結果を“NG”とし、以上の場合は“OK”とする。
S1018で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1019を、“NG”であればS1028を実行する。S1028で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最小値(動的)範囲エラーをストレージ管理AP41/アダプタ51に通知する。
S1019で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に使用可能値(動的)が設定されているかを判断する。設定されている場合(S1019:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1020を実行し、設定されていない場合(S1019:No)はS1022を実行する。例えば、ストレージ管理API属性情報501ないしストレージ管理API属性情報504、ストレージ管理API属性情報702から704では、属性に使用可能値(動的)が設定されている。
S1020で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、使用可能値(動的)のチェックを実施する。つまり、設定値が使用可能値(動的)に存在するかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、存在する場合はチェック結果を“OK”とし、存在しない場合は“NG”とする。
S1021で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1022を、“NG”であればS1029を実行する。S1029で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、使用可能値(動的)対象外エラーをストレージ管理AP41/アダプタ51に通知する。
S1022で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェックした結果、妥当と判断された値をメモリ103/メモリ313ないしディスク104/ディスク314に格納する。そして、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、整数メンバーの妥当性チェック処理を終了する。このように、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)では、ストレージ管理APIライブラリ42/52に汎用処理として整数メンバーの妥当性チェック処理を組み込むことで、機能を実行できるかどうかの判断をすることができるので、設定数値に関する新機能がストレージシステム1に追加された場合でも、この汎用処理で機能の実行可否を判断できる。
<文字列メンバーの妥当性チェック処理>
図12は、文字列メンバーの妥当性チェック処理を示すフローチャート図である。この文字列メンバーの妥当性チェック処理で要求データの妥当性を検証する。本処理は、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)がストレージ管理APIライブラリ42/52に実装された汎用処理を用いて実行する。
S1201で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に依存メンバーが設定されているかを判断する。設定されている場合(S1201:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1202を実行し、設定されていない場合(S1201:No)はS1204を実行する。
S1202で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、依存メンバーのチェックを実施する。つまり、依存メンバーとして適切なメンバーが設定されているかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、適切なメンバー名が設定されている場合はチェック結果を“OK”とし、設定されていない場合は“NG”とする。
S1203で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1204を、“NG”であればS1214を実行する。S1214で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、依存メンバー未設定エラーをストレージ管理AP41/アダプタ51に通知する。
S1204で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に最大文字列長が設定されているかを判断する。設定されている場合(S1204:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1205を実行し、設定されていない場合(S1204:No)はS1207を実行する。例えば、ストレージ管理API属性情報502では、属性に最大文字列長が設定されている。
S1205で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最大文字列長のチェックを実施する。つまり、設定された文字列の文字列長が最大文字列長以下であるかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。最大文字列長以下である場合はチェック結果を“OK”とし、範囲外である場合は“NG”とする。
S1206で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1207を、“NG”であればS1215を実行する。S1215で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最大文字列長範囲エラーをストレージ管理AP41/アダプタ51に通知する。
S1207で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に最小文字列長が設定されているかを判断する。設定されている場合(S1207:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1208を実行し、設定されていない場合(S1207:No)はS1210を実行する。例えば、ストレージ管理API属性情報502では、属性に最小文字列長が設定されている。
S1208で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最小文字列長のチェックを実施する。つまり、設定された文字列の文字列長が最小文字列長以上であるかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。最小文字列長以上である場合はチェック結果を“OK”とし、範囲外である場合は“NG”とする。
S1209で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1210を、“NG”であればS1216を実行する。S1216で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、最小文字列長範囲エラーをストレージ管理AP41/アダプタ51に通知する。
S1210で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に使用可能文字が設定されているかを判断する。設定されている場合(S1210:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1211を実行し、設定されていない場合(S1210:No)はS1213を実行する。例えば、ストレージ管理API属性情報502では、属性に使用可能文字が設定されている。
S1211で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、使用可能文字のチェックを実施する。つまり、設定された文字列に使用されている文字が使用可能文字のみであるかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。使用可能文字のみである場合はチェック結果を“OK”とし、使用不可能な文字が含まれている場合は“NG”とする。
S1212で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1213を、“NG”であればS1217を実行する。S1217で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、使用可能文字対象外エラーをストレージ管理AP41/アダプタ51に通知する。
S1213で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェックした結果、妥当と判断された値をメモリ103/メモリ313ないしディスク104/ディスク314に格納する。そして、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、文字列メンバーの妥当性チェック処理を終了する。このように、ストレージ管理APIライブラリ42/52に汎用処理として、文字列メンバーの妥当性チェック処理を組み込むことで、機能を実行できるかどうかの判断をすることができるので、文字列に関する新機能がストレージシステム1に追加または拡張された場合でも、この汎用処理で機能の実行可否を判断できる。
<バイト配列メンバーの妥当性チェック処理>
図13は、バイト配列メンバーの妥当性チェック処理を示すフローチャート図である。このバイト配列メンバーの妥当性チェック処理で要求データの妥当性を検証する。本処理は、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)がストレージ管理APIライブラリ42/52に実装された汎用処理を用いて実行する。
S1301で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に依存メンバーが設定されているかを判断する。設定されている場合(S1301:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1302を実行し、設定されていない場合(S1301:No)はS1304を実行する。
S1302で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、依存メンバーのチェックを実施する。つまり、依存メンバーとして適切なメンバーが設定されているかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、適切なメンバー名が設定されている場合はチェック結果を“OK”とし、設定されていない場合は“NG”とする。
S1303で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1304を、“NG”であればS1308を実行する。S1308で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、依存メンバー未設定エラーをストレージ管理AP41/アダプタ51に通知する。
S1304で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、属性に配列長が設定されているかを判断する。設定されている場合(S1304:Yes)、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)はS1305を実行し、設定されていない場合(S1304:No)はS1307を実行する。例えば、ストレージ管理API属性情報701のメンバー名“HostWwn”では、属性に配列長が8バイトとして設定されている。
S1305で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、配列長のチェックを実施する。つまり、設定されたバイト配列の配列長が属性に設定されている配列長と一致するかをストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は判断する。一致する場合はチェック結果を“OK”とし、一致しない場合は“NG”とする。
S1306で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェック結果が“OK”であればS1307を、“NG”であればS1309を実行する。S1309で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、配列長不正エラーをストレージ管理AP41/アダプタ51に通知する。
S1307で、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、チェックした結果、妥当と判断された値をメモリ103/メモリ313ないしディスク104/ディスク314に格納する。そして、ストレージ管理サーバー4(CPU411)/アダプタサーバー5(CPU511)は、文字列メンバーの妥当性チェック処理を終了する。このように、ストレージ管理APIライブラリ42/52に汎用処理として、バイト配列メンバーの妥当性チェック処理を組み込むことで、機能を実行できるかどうかの判断をすることができるので、バイト配列に関する新機能がストレージシステム1に追加された場合でも、この汎用処理で機能の実行可否を判断できる。
<管理アプリケーションでの画面構成>
図14は、ストレージ管理API属性情報を利用した管理アプリケーションでの画面の構成例を示す図である。図14では、ストレージ管理画面140で、LDEVを生成する場合(createLdev機能の実行時)を例としている。
ストレージ管理画面140は、LDEVを一意に識別するための情報を入力するLDEV ID入力領域1401、生成するLDEVのニックネームを設定するための情報を入力するNickname入力領域1402、生成するLDEVの記憶容量を入力するCapacity入力領域1403、LDEVに対応付けるプールを一意に識別するための情報を入力するPool ID入力領域1404、入力した情報を確定させるためのApplyボタン1405、入力した情報を削除するためのCancelボタン1406で構成される。
各入力領域には、入力可能な数値範囲や最大文字列値などが表示され、範囲外な数値や最大値を超える値の入力は受け付けられない。これは、S827での要求データ(入力情報)の妥当性チェック処理でエラーとなるためである。エラーとなった場合、本画面にエラーメッセージを表示するようにしてもよい。また、エラー時に入力範囲や入力最大値を強調表示(フォント色を赤で表示する、ボールド表示するなど)するようにしてもよい。
以上のように、ストレージ管理APIライブラリ42/52に汎用処理を実装し、ストレージ管理API属性情報への要求データを、汎用処理である妥当性チェックで検証することで、各ストレージ管理AP41での処理論理追加(プログラムの追加や改変)は不必要となる。加えて、ストレージ管理API提供サーバープログラム3での処理が低減できるため処理性能の低下も防止できる。更に、ストレージシステム1の拡張された機能や新しいストレージシステムに各ストレージ管理AP41を迅速に適用できるようになる。また、ストレージシステム1を管理する側で新機能を生成できストレージ管理API提供サーバープログラム3を使用せず実行できるため、ストレージ管理AP41とストレージ管理API提供サーバープログラム3間の通信量を低減できるため、通信帯域を有効利用できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置いてもよい。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
1:ストレージシステム、3:ストレージ管理API提供サーバープログラム、4:ストレージ管理サーバー、5:アダプタサーバー、6:管理端末、12:ストレージ管理API属性情報、14:ストレージシステム制御プログラム、15:ストレージシステム構成情報、22:ストレージ管理APIライブラリ、31:SVP、33:ストレージデバイス、41:ストレージ管理AP、42/52:ストレージ管理APIライブラリ、51:アダプタプログラム、101/311/411/421/511:CPU、103/313/413/423/513:メモリ、104/314/414/424/514:ディスク、400/600:ストレージ管理API属性定義情報、500/700:ストレージ管理API属性情報

Claims (15)

  1. ストレージシステムと管理サーバーとを含んで構成されるストレージ管理システムであって、
    前記ストレージシステムは、
    第1のCPUと、
    第1の記憶デバイスと、
    を備え、
    前記管理サーバーは、
    第2のCPUと、
    第2の記憶デバイスと、
    を備え、
    前記ストレージシステムの第1の記憶デバイスに、
    前記管理サーバーと前記ストレージシステムとの接続を行うためのストレージ管理API属性情報と、
    前記ストレージ管理API属性情報を前記管理サーバーに提供するために前記第1のCPUにより実行されるストレージ管理API提供サーバープログラムと、
    が格納され、
    前記管理サーバーの第2の記憶デバイスに、
    前記ストレージシステムを管理するため前記第2のCPUが実行するストレージ管理アプリケーションプログラムと、
    前記ストレージ管理アプリケーションプログラムを動作させるためのストレージ管理APIライブラリと、
    が格納され、
    前記ストレージ管理APIライブラリに、前記第2のCPUで実行する1つ以上の汎用処理プログラムを備え、
    前記ストレージ管理アプリケーションプログラムが前記ストレージシステムに所定の機能を実行するため前記ストレージ管理APIライブラリを介して前記ストレージ管理API提供サーバープログラムに接続された場合、
    前記第2のCPUは、
    前記ストレージ管理API提供サーバープログラムから前記ストレージ管理API属性情報を取得し、
    前記ストレージ管理API属性情報と、前記ストレージ管理APIライブラリの前記汎用処理プログラムとを組み合わせて前記ストレージシステムへの機能を実行させる
    ことを特徴とするストレージ管理システム。
  2. 請求項1記載のストレージ管理システムであって、前記ストレージ管理API属性情報は、
    機能名と、前記所定の機能を実行させるための要求データのメンバーと、前記所定の機能の実行結果である応答データのメンバーとを含んで構成され、
    前記要求データのメンバー及び応答データのメンバーは、メンバー名と、当該メンバー名のタイプとを含んで構成され、
    前記メンバー名毎に設定される属性と当該属性への設定値を含む
    ことを特徴とするストレージ管理システム。
  3. 請求項2記載のストレージ管理システムであって、前記ストレージシステムのシステム構成を示すストレージシステム構成情報が前記第1の記憶デバイスに格納され、
    前記第1のCPUが前記ストレージシステム構成情報を参照して前記ストレージ管理API属性情報を更新する
    ことを特徴とするストレージ管理システム。
  4. 請求項3記載のストレージ管理システムであって、前記ストレージ管理API属性情報は、前記ストレージ管理API提供サーバープログラムの起動時ないし定期的に更新される
    ことを特徴とするストレージ管理システム。
  5. 請求項2記載のストレージ管理システムであって、前記管理サーバーの第2のCPUが、
    前記ストレージ管理API属性情報に前記所定の機能を実行するための要求データを設定し、
    前記要求データが付加されたストレージ管理API属性情報の妥当性の確認を、前記汎用処理プログラムで実行する
    ことを特徴とするストレージ管理システム。
  6. 請求項5記載のストレージ管理システムであって、前記管理サーバーの第2のCPUが、
    前記要求データが付加されたストレージ管理API属性情報の妥当性の確認を、前記要求データに設定されている情報のタイプ及び値で行う
    ことを特徴とするストレージ管理システム。
  7. 管理サーバーに接続されるストレージシステムであって、
    前記ストレージシステムは、
    第1のCPUと、
    第1の記憶デバイスと、
    を備え、
    前記管理サーバーは、
    第2のCPUと、
    第2の記憶デバイスと、
    を備え、
    前記ストレージシステムの第1の記憶デバイスに、
    前記管理サーバーと前記ストレージシステムとの接続を行うためのストレージ管理API属性情報と、
    前記ストレージ管理API属性情報を前記管理サーバーに提供するために前記第1のCPUにより実行されるストレージ管理API提供サーバープログラムと、
    前記管理サーバーの第2の記憶デバイスに、
    前記ストレージシステムを管理するため前記第2のCPUが実行するストレージ管理アプリケーションプログラムと、
    前記ストレージ管理アプリケーションプログラムを動作させるためのストレージ管理APIライブラリと、
    が格納され、
    前記ストレージ管理APIライブラリに、前記第2のCPUで実行する1つ以上の汎用処理プログラムを備え、
    前記ストレージ管理アプリケーションプログラムが前記ストレージシステムに所定の機能を実行するため前記ストレージ管理APIライブラリを介して前記ストレージ管理API提供サーバープログラムに接続された場合、
    前記第2のCPUは、
    前記ストレージ管理API提供サーバープログラムから前記ストレージ管理API属性情報を取得し、
    前記ストレージ管理API属性情報と、前記ストレージ管理APIライブラリの前記汎用処理プログラムとを組み合わせて前記ストレージシステムへの機能を実行させる
    ことを特徴とするストレージシステム。
  8. 請求項7記載のストレージシステムであって、前記ストレージ管理API属性情報は、
    機能名と、前記所定の機能を実行させるための要求データのメンバーと、前記所定の機能の実行結果である応答データのメンバーとを含んで構成され、
    前記要求データのメンバー及び応答データのメンバーは、メンバー名と、当該メンバー名のタイプとを含んで構成され、
    前記メンバー名毎に設定される属性と当該属性への設定値を含む
    ことを特徴とするストレージシステム。
  9. 請求項8記載のストレージシステムであって、前記ストレージシステムのシステム構成を示すストレージシステム構成情報が前記第1の記憶デバイスに格納され、
    前記第1のCPUが前記ストレージシステム構成情報を参照して前記ストレージ管理API属性情報を更新する
    ことを特徴とするストレージシステム。
  10. 請求項9記載のストレージシステムであって、前記ストレージ管理API属性情報は、前記ストレージ管理API提供サーバープログラムの起動時ないし定期的に更新される
    ことを特徴とするストレージシステム。
  11. 請求項8記載のストレージシステムであって、前記管理サーバーの第2のCPUが、
    前記ストレージ管理API属性情報に前記所定の機能を実行するための要求データを設定し、
    前記要求データが付加されたストレージ管理API属性情報の妥当性の確認を、前記汎用処理プログラムで実行する
    ことを特徴とするストレージシステム。
  12. 請求項11記載のストレージシステムであって、前記管理サーバーの第2のCPUが、
    前記要求データが付加されたストレージ管理API属性情報の妥当性の確認を、前記要求データに設定されている情報のタイプ及び値で行う
    ことを特徴とするストレージシステム。
  13. 管理サーバーに接続されるストレージシステムの機能拡張方法であって、
    前記ストレージシステムは、
    第1のCPUと、
    第1の記憶デバイスと、
    を備え、
    前記管理サーバーは、
    第2のCPUと、
    第2の記憶デバイスと、
    を備え、
    前記ストレージシステムの第1の記憶デバイスに、
    前記管理サーバーと前記ストレージシステムとの接続を行うためのストレージ管理API属性情報と、
    前記ストレージ管理API属性情報を前記管理サーバーに提供するために前記第1のCPUにより実行されるストレージ管理API提供サーバープログラムと、
    が格納され、
    前記管理サーバーの第2の記憶デバイスに、
    前記ストレージシステムを管理するため前記第2のCPUが実行するストレージ管理アプリケーションプログラムと、
    前記ストレージ管理アプリケーションプログラムを動作させるためのストレージ管理APIライブラリと、
    が格納され、
    前記ストレージ管理APIライブラリに、前記第2のCPUで実行する1つ以上の汎用処理プログラムを備え、
    前記ストレージ管理アプリケーションプログラムが前記ストレージシステムに所定の機能を実行するため前記ストレージ管理APIライブラリを介して前記ストレージ管理API提供サーバープログラムに接続された場合、
    前記第2のCPUは、
    前記ストレージ管理API提供サーバープログラムから前記ストレージ管理API属性情報を取得し、
    前記ストレージ管理API属性情報と前記ストレージ管理APIライブラリの前記汎用処理プログラムを組み合わせて前記ストレージシステムへの機能を実行させる
    ことを特徴とするストレージシステムの機能拡張方法。
  14. 請求項13記載のストレージシステムの機能拡張方法であって、前記ストレージ管理API属性情報は、
    機能名と、前記所定の機能を実行させるための要求データのメンバーと、前記所定の機能の実行結果である応答データのメンバーとを含んで構成され、
    前記要求データのメンバー及び応答データのメンバーは、メンバー名と、当該メンバー名のタイプとを含んで構成され、
    前記メンバー名毎に設定される属性と当該属性への設定値を含む
    ことを特徴とするストレージシステムの機能拡張方法。
  15. 請求項14記載のストレージシステムの機能拡張方法であって、前記ストレージシステムのストレージシステム構成を示すストレージシステム構成情報が前記第1の記憶デバイスに格納され、
    前記第1のCPUが前記ストレージシステム構成情報を参照して前記ストレージ管理API属性情報を更新する
    ことを特徴とするストレージシステムの機能拡張方法。

JP2016571626A 2015-01-30 2015-01-30 ストレージ管理システム、ストレージシステム及び機能拡張方法 Active JP6259935B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/052644 WO2016121086A1 (ja) 2015-01-30 2015-01-30 ストレージ管理システム、ストレージシステム及び機能拡張方法

Publications (2)

Publication Number Publication Date
JPWO2016121086A1 true JPWO2016121086A1 (ja) 2017-08-17
JP6259935B2 JP6259935B2 (ja) 2018-01-10

Family

ID=56542737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016571626A Active JP6259935B2 (ja) 2015-01-30 2015-01-30 ストレージ管理システム、ストレージシステム及び機能拡張方法

Country Status (3)

Country Link
US (1) US20180018326A1 (ja)
JP (1) JP6259935B2 (ja)
WO (1) WO2016121086A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10802853B2 (en) * 2016-10-14 2020-10-13 Seagate Technology Llc Active drive
US11650860B2 (en) * 2021-08-02 2023-05-16 Dell Products L.P. Managing services across containers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0342760A (ja) * 1989-07-11 1991-02-22 Nec Corp 画面入力情報チエツク方式
JP2002324011A (ja) * 2001-04-25 2002-11-08 Hitachi Ltd ストレージシステム
JP2004246434A (ja) * 2003-02-12 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> Api仮引数検査装置、api仮引数検査方法、api仮引数検査プログラム及びそのプログラムを記録した記録媒体
JP2007058484A (ja) * 2005-08-24 2007-03-08 Hitachi Ltd ストレージ管理方法およびストレージシステム
JP2012073778A (ja) * 2010-09-28 2012-04-12 Yahoo Japan Corp WebAPI作成支援装置及びWebAPI作成支援方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8726294B2 (en) * 2010-10-01 2014-05-13 Z124 Cross-environment communication using application space API
US7363390B2 (en) * 2002-05-23 2008-04-22 Hitachi, Ltd. Techniques for managing a storage environment
US7448042B1 (en) * 2003-05-06 2008-11-04 Apple Inc. Method and apparatus for providing inter-application accessibility
US7293254B2 (en) * 2003-09-18 2007-11-06 Microsoft Corporation Extensibility application programming interface and framework for meta-model objects
US20090288104A1 (en) * 2008-05-19 2009-11-19 Rohati Systems, Inc. Extensibility framework of a network element
US8713177B2 (en) * 2008-05-30 2014-04-29 Red Hat, Inc. Remote management of networked systems using secure modular platform
US9286142B2 (en) * 2011-04-07 2016-03-15 Adobe Systems Incorporated Methods and systems for supporting a rendering API using a runtime environment
US9262237B2 (en) * 2013-12-17 2016-02-16 International Business Machines Corporation Automating software availability management based on API versioning
GB201322317D0 (en) * 2013-12-17 2014-01-29 Ibm Computer system processes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0342760A (ja) * 1989-07-11 1991-02-22 Nec Corp 画面入力情報チエツク方式
JP2002324011A (ja) * 2001-04-25 2002-11-08 Hitachi Ltd ストレージシステム
JP2004246434A (ja) * 2003-02-12 2004-09-02 Nippon Telegr & Teleph Corp <Ntt> Api仮引数検査装置、api仮引数検査方法、api仮引数検査プログラム及びそのプログラムを記録した記録媒体
JP2007058484A (ja) * 2005-08-24 2007-03-08 Hitachi Ltd ストレージ管理方法およびストレージシステム
JP2012073778A (ja) * 2010-09-28 2012-04-12 Yahoo Japan Corp WebAPI作成支援装置及びWebAPI作成支援方法

Also Published As

Publication number Publication date
JP6259935B2 (ja) 2018-01-10
WO2016121086A1 (ja) 2016-08-04
US20180018326A1 (en) 2018-01-18

Similar Documents

Publication Publication Date Title
US10142106B2 (en) System and method for securing sensitive data
US9882834B2 (en) Capturing data parameters in templates in a networked computing environment
US20180101371A1 (en) Deployment manager
US9740543B1 (en) Multi-endpoint method implementation
US8904382B2 (en) Creating instances of cloud computing environments
US10142180B2 (en) Method and system for providing unified configuration information to disparate system software components
JP5976946B2 (ja) 仮想マシンテストシステム、仮想マシンテスト方法
CN109716726A (zh) 基于云的应用部署中的凭证管理
US9459859B2 (en) Template derivation for configuration object management
US10558405B2 (en) Information processing apparatus and driver customizing method
JP6179331B2 (ja) ログ出力条件設定プログラム、装置、および方法
KR20110009143A (ko) 데이터내 동적 프로비저닝을 위한 방법 및 장치
JP6259935B2 (ja) ストレージ管理システム、ストレージシステム及び機能拡張方法
US10084663B2 (en) Enabling a tag to show status
JP7233342B2 (ja) サービス連携支援システムおよびその方法
JP5255566B2 (ja) データを処理するシステムおよび方法
US11558207B2 (en) Method and apparatus for starting up blockchain system, and non-transitory computer-readable storage medium
JP6795767B2 (ja) 情報処理装置と、その処理方法及びプログラム
Beach et al. Pro PowerShell for Amazon Web Services
JP7387342B2 (ja) アプリケーション、情報処理装置及び制御方法
JP5732138B2 (ja) 仮想計算機提供システム及び提供方法
JP7048912B2 (ja) 情報処理装置と、その処理方法及びプログラム
JP5737062B2 (ja) バッチジョブ実行システム、ジョブ管理サーバ、ジョブ認証情報更新方法および更新プログラム
JP7257429B2 (ja) 自動実行サービスの運用自動化システム及び自動実行サービスの表示方法
JP2019087877A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171211

R150 Certificate of patent or registration of utility model

Ref document number: 6259935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150