JP6723289B2 - 計算機システム及びリソースアクセス制御方法 - Google Patents

計算機システム及びリソースアクセス制御方法 Download PDF

Info

Publication number
JP6723289B2
JP6723289B2 JP2018099758A JP2018099758A JP6723289B2 JP 6723289 B2 JP6723289 B2 JP 6723289B2 JP 2018099758 A JP2018099758 A JP 2018099758A JP 2018099758 A JP2018099758 A JP 2018099758A JP 6723289 B2 JP6723289 B2 JP 6723289B2
Authority
JP
Japan
Prior art keywords
resource
management information
request
resource group
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018099758A
Other languages
English (en)
Other versions
JP2019204343A (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
Priority to JP2018099758A priority Critical patent/JP6723289B2/ja
Priority to US16/359,465 priority patent/US11048543B2/en
Publication of JP2019204343A publication Critical patent/JP2019204343A/ja
Application granted granted Critical
Publication of JP6723289B2 publication Critical patent/JP6723289B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、リソースを提供するシステムにおけるアクセス制御に関する。
仮想化技術の進展によって、一つの物理計算機上に複数の仮想サーバ(VM:Virtual Machine)を構築し、ストレージ装置内に生成された論理ボリュームに、VMのイメージ及びVM上で稼働するアプリケーションが使用するデータを格納する構成のシステムが採用されている。当該システムでは、論理ボリュームの作成、論理ボリュームの容量拡張及び縮小、並びに論理ボリュームの削除等のボリュームプロビジョニングをVM管理者に委ねる管理体系が適用される。
本明細書では、VM及びアプリケーションを管理するための管理ソフトウェアを上位管理ソフトウェアと記載し、また、上位管理ソフトウェアを使用する管理者を上位管理者と記載する。
前述のシステムでは、上位管理ソフトウェアは、論理ボリュームを物理計算機上のローカルディスクと同様の記憶領域として上位管理者に提供する。また、上位管理ソフトウェアは、ストレージ装置の論理ボリュームに対する操作要求を受信した場合、ストレージリソース操作API(Application Programming Interface)を介して論理ボリュームの操作処理を実行する。なお、ストレージリソース操作APIは、ストレージベンダが提供するソフトウェアであるプロバイダによって提供される。
前述のような管理体系のシステムを利用することによって、上位管理者は、VM及びアプリケーションからストレージリソースまでを一貫して管理でき、システム全体にかかるOPEX(Operating Expense)削減の恩恵を得られる。
一方、クラウドの潮流によって、SAML(Security Assetion Markup Language)などの標準化プロトコルを利用するフェデレーション方式シングルサインオンを利用したユーザ認証、及びロール(操作権限)の共有が、前述のシステムに適用されてきている。
なお、シングルサインオンは、LDAP及びRADIUS等の認証サーバに対して、ログインを一回行うことによって、複数のクラウドサービス及びWEBアプリケーションの利用が可能となる技術である。
SDI(Software−Defined Infrastructure)では、上位管理者は、上位管理ソフトウェアを用いて、計算機、VM及びアプリケーション、並びに、ストレージリソースを一括して管理できる。上位管理者は、シングルサインオンを利用して、上位管理ソフトウェアにアクセスする。シングルサインオンで用いられる、リソースアクセス制御情報及び操作権限情報等のロールは、上位管理ソフトウェアが管理するリソースに対して設定され、かつ各管理ソフトウェア内でのみ有効である。
上位管理ソフトウェアが停止した場合、上位管理者は、ストレージ装置の専用管理ソフトウェアを利用して、前述の管理を行う。このため、上位管理者は専用管理ソフトウェアへのアクセスが許容されている。上位管理者は、上位管理ソフトウェアと同様に、シングルサインオンを用いて専用管理ソフトウェアへアクセスする。
従来の専用管理ソフトウェアでは、ロールを用いたアクセス制御が行われていない。そのため、上位管理者が専用管理ソフトウェアを利用する場合、上位管理ソフトウェアが使用するストレージリソース以外のストレージリソースにアクセスすることができる。したがって、異なる上位管理者が運用するシステムが、一つのストレージ装置を共有している場合、ストレージリソースに対する誤った操作が行われる恐れ、また、情報漏洩及びシステムの停止を招く恐れがある。
ストレージ装置が提供するストレージリソースの管理方法として特許文献1に記載の技術が知られている。特許文献1には、「複数の管理ユーザにより管理されるストレージ装置及びその制御方法において、管理対象のリソースを複数のリソースグループに分け、リソースグループを管理ユーザによる管理操作の排他制御の範囲とする排他制御処理を実行する」ことが記載されている。
特表2013−535721号公報
仮想化技術では、各ユーザに対して異なるリソースが生成され、各リソースの操作には異なる操作権限が設定される。また、任意のリソースを生成するために、他のリソースが利用される場合がある。
特許文献1に記載の技術では、ユーザに割り当てられたリソースグループに関する権限情報に基づいてアクセス制御が行われる。したがって、他のユーザが管理するリソースが属するリソースグループに対するアクセス制御を行うことができない。
例えば、複数のユーザが共有するリソース(共有リソース)から生成されるリソースを操作する場合を考える。この場合、特許文献1に記載の技術をそのまま適用しても、共有リソースが属するリソースグループに対するアクセス制御を行うことができない。共有リソースが属するリソースグループに対するアクセス制御を行うためには、共有リソースに対してロールを設定する必要がある。しかし、仮想化技術を用いたシステムではリソースの関係が複雑であるため、共有リソースに対するロールの設定が困難である。
本発明は、仮想化技術を利用した様々なリソースに対するアクセス制御を実現するシステム及び方法を提供する。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、ソースプログラムに利用される複数のリソースを有する計算機システムにおいて、制御部と、前記リソース及びリソースグループを対応付けた情報を格納するリソース管理情報と、前記リソースグループを利用可能なユーザ及び前記ソースプログラムを対応付けた情報を格納するリソースグループ管理情報と、を有し、前記リソースグループ管理情報に格納される情報は、前記リソースグループにさらにロールが対応付けられており、前記ソースプログラムから、前記ソースプログラムを使用するユーザにかかる前記リソースを指定したリクエストを受信した場合に、前記制御部は、前記リソースグループ管理情報と、前記リソース管理情報とを用いて、前記リクエストにかかる前記リソースへのアクセス可否を判定する処理を実行し、前記処理において、前記制御部は、前記アクセス可否の判定に、前記リクエストに付されたロールと、前記リソースグループでのロールとを用いる
本発明の一形態によれば、セキュリティを確保しつつ、ユーザ(ユーザグループ)単位でリソースに対する操作を制御できる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1のシステムの構成の一例を示す図である。 実施例1のホスト計算機の構成の一例を示す図である。 実施例1のストレージ装置の構成の一例を説明する図である。 実施例1のホスト管理計算機の構成の一例を示す図である。 実施例1のストレージ管理計算機の構成の一例を示す図である。 実施例1の認証サーバが保持するアカウント管理情報のデータ構造の一例を示す図である。 実施例1の制御用メモリに格納されるLU管理情報のデータ構造の一例を示す図である。 実施例1の制御用メモリに格納されるポート管理情報のデータ構造の一例を示す図である。 実施例1の制御用メモリに格納されるプール管理情報のデータ構造の一例を示す図である。 実施例1の制御用メモリに格納されるパリティグループ管理情報のデータ構造の一例を示す図である。 実施例1の制御用メモリに格納されるソースプログラム管理情報のデータ構造の一例を示す図である。 実施例1の制御用メモリに格納されるリソースグループ管理情報のデータ構造の一例を示す図である。 実施例1の構成制御プログラムが実行する検出処理の一例を説明するフローチャートである。 実施例1のシステムにおいて新規ストレージリソースを生成する処理の流れの一例を示すシーケンス図である。 実施例1のストレージ装置が新規リソースを生成する場合に実行する認証/認可処理の一例を説明するフローチャートである。 実施例1のストレージ装置が実行するストレージリソース生成処理の一例を説明するフローチャートである。 実施例1のシステムにおいて既存ストレージリソースを操作する処理の流れの一例を示すシーケンス図である。 実施例1の実施例1のストレージ装置が既存リソースを操作する場合に実行する認証/認可処理の一例を説明するフローチャートである。 実施例2のシステムの構成の一例を示す図である。 実施例2のマスタストレージ装置が保持するストレージ装置管理情報のデータ構造の一例を示す図である。 実施例2のマスタストレージ装置が保持するLU管理情報のデータ構造の一例を示す図である。 実施例2のマスタストレージ装置が保持するポート管理情報のデータ構造の一例を示す図である。 実施例2のマスタストレージ装置が保持するプール管理情報のデータ構造の一例を示す図である。 実施例2のマスタストレージ装置が保持するパリティグループ管理情報のデータ構造の一例を示す図である。 実施例2のシステムにおいて新規ストレージ装置を追加する処理の流れの一例を示すシーケンス図である。 実施例3のシステムの構成の一例を示す図である。
以下、実施例を図面を用いて説明する。
なお、以後の説明では「テーブル」という表現にて各実施例の情報を説明するが、これらの情報は必ずしもテーブルである必要はなく、テーブル以外のデータ構造で表現されてもよい。また、「プログラム」を主語として説明を行う場合もあるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポートを用いながら行うため、プロセッサを主語とした説明と同じである。
また、プログラムをプロセッサが実行して得られる処理は、専用ハードウェアによる処理と同じであり、その一部又は全てを専用ハードウェアによって実現されてもよい。このため、「部」という表現にて物について説明するが、これらの「部」はその一部又は全てがプロセッサによるプログラムの実行であってもよいし、その一部又は全てが専用ハードウェアであってもよい。
また、プログラムは、プログラム配布サーバや、計算機が読み取り可能な記憶メディアによって、インストールされてもよい。
実施例1では、ストレージ装置上で稼働する構成制御プログラムによるリソースアクセス制御処理について説明する。
図1は、実施例1のシステムの構成の一例を示す図である。
システムは、ホスト計算機1000、ストレージ装置2000、ホスト管理計算機3000、ストレージ管理計算機4000、及び認証サーバ5000から構成される。
ホスト計算機1000及びストレージ装置2000は、SAN(Storage Area Network)及びiSCSI等で構成されるストレージネットワーク6000を介して接続される。また、ホスト計算機1000、ストレージ装置2000、ホスト管理計算機3000、ストレージ管理計算機4000、及び認証サーバ5000は、LAN(Local Area Network)等で構成されるネットワーク7000を介して接続される。
ホスト計算機1000は、パーソナルコンピュータ、ワークステーション、及びメインフレーム等の、業務システムを構成するための計算機リソースを提供する。ホスト計算機1000上では、VM1290を管理するハイパバイザ1210が稼働する。ホスト計算機1000には、ストレージ装置2000が提供するLU(Logical Unit)2210が割り当てられる。ハイパバイザ1210は、図示しないデータストアとしてLU2210を管理する。LU2210は、VM1290のイメージデータ及びVM1290上で稼働するOS又はアプリケーションのデータの格納領域として利用される。
ホスト管理計算機3000は、ホスト計算機1000を管理するための計算機である。VM管理者10及びアプリケーション管理者20は、操作端末(図示せず)を用いてシステムにアクセスし、ホスト管理計算機3000が有する仮想マシン管理プログラム3120及びアプリケーション管理プログラム3110を利用して、ホスト計算機1000、VM1290、並びに、VM1290上で稼働するOS及びアプリケーションを管理する。
ストレージ装置2000は、業務システムを構成するためのストレージリソースを提供する。ストレージ装置2000は、構成制御プログラム2300を有する。構成制御プログラム2300は、ストレージ装置2000内のリソースを制御する。ストレージ装置2000は、リソースグループ(RSG)2100単位でプール2200及びLU2210等のリソースを管理する。
また、ストレージ装置2000は、LU管理情報T2000、ポート管理情報T3000、プール管理情報T4000、パリティグループ管理情報T5000、ソースプログラム管理情報T6000、及びリソースグループ管理情報T7000を保持する。
LU管理情報T2000の詳細は図6を用いて説明する。ポート管理情報T3000の詳細は図7を用いて説明する。プール管理情報T4000の詳細は図8を用いて説明する。パリティグループ管理情報T5000の詳細は図9を用いて説明する。ソースプログラム管理情報T6000の詳細は図10を用いて説明する。リソースグループ管理情報T7000の詳細は図11を用いて説明する。
ストレージ管理計算機4000は、ストレージ装置2000を管理するための計算機である。ストレージ管理計算機4000は、ストレージ管理プログラム4110及びプロバイダ4120を有する。
ストレージ管理プログラム4110は、ストレージリソースを操作するためのGUI(Graphical User Interface)及びCLI(Command Line Interface)を提供する。ストレージ管理者30は、操作端末を用いてシステムにアクセスし、ストレージ管理プログラム4110を用いて、構成制御プログラム2300にストレージリソースの操作及び装置保守操作を指示する。
プロバイダ4120は、アプリケーション管理プログラム3110及び仮想マシン管理プログラム3120が定義するフォーマット及びスキーマに適合したストレージリソースの操作を実行するためのAPIを提供する。アプリケーション管理プログラム3110及び仮想マシン管理プログラム3120、又はハイパバイザ1210は、プロバイダ4120が提供するAPIを介して、ストレージリソースの操作要求を送信する。プロバイダ4120は、ストレージリソースの操作要求を受信した場合、構成制御プログラム2300に当該操作要求を送信する。構成制御プログラム2300は、操作要求に対応する処理を実行する。
本明細書では、アプリケーション管理プログラム3110、仮想マシン管理プログラム3120、及びストレージ管理プログラム4110を区別しない場合、ソースプログラムと記載する。また、VM管理者10、アプリケーション管理者20、及びストレージ管理者30を区別しない場合、管理ユーザと記載する。
認証サーバ5000は、LDAP(Lightweight Directory Access Protocol)及びRADIUS(Remote Authentication Dial In User Service)等を用いた認証処理を実行する。より具体的には、認証サーバ5000は、ホスト計算機1000、ホスト管理計算機3000、及びストレージ管理計算機4000上で稼働するソフトウェアに対するログイン処理における、ユーザ認証処理及び認可処理を実行する。
認証サーバ5000は、パスワード及びロール等を管理するためのアカウント管理情報T1000を保持する。
ここで、ユーザ認証処理及び認可処理の一例について説明する。ソースプログラムは、管理ユーザからのアクセスを受け付けた場合、認証サーバ5000にユーザ認証処理及び認可処理の要求を送信する。認証サーバ5000は、ユーザ認証処理及び認可処理を実行する。認証サーバ5000は、正常に処理が終了した場合、認証証明を示すチケットを発行し、当該チケットをソースプログラムに送信する。チケットには、認可情報及びユーザの属性情報を含める方式と、認証サーバ5000への問合せに使用する文字列等の値を含める方式とがある。ここで、ユーザの属性情報は、例えば、ユーザのID及びユーザが所属するグループのID等である。
本明細書では、説明の簡単のために、認可情報及びユーザの属性情報をチケットに含める方式を前提に説明する。ただし、認証サーバ5000への問合せに使用する文字列等の値を含める方式でも同様の処理及び効果を奏する。
ソースプログラムが、管理ユーザから他のソースプログラムの呼出しリクエストを受け付けた場合、受信したチケットを他のソースプログラムに送信することによって代理認証を行い、ログイン処理を完了させる。これによって、シングルサインオンが成立する。
実施例1の認証サーバ5000及びソースプログラムは、SAML(Security Assertion Markup Language)等の標準規格に対応しているものとする。これによって、チケットに、ユーザグループ及びロール等を付与することができる。したがって、ソースプログラム間で、ユーザグループ及びロールを共有することができる。
次に、ホスト計算機1000、ストレージ装置2000、ホスト管理計算機3000、及びストレージ管理計算機4000の構成について説明する。
図2は、実施例1のホスト計算機1000の構成の一例を示す図である。
ホスト計算機1000は、ハードウェアとして、プロセッサ1010、メモリ1020、ネットワークI/F1030、入力装置1040、出力装置1050、及びHBA(Host Bus Adapter)1060を有する。各ハードウェアは内部バスを介して互いに接続される。
プロセッサ1010は、メモリ1020に格納されるプログラムを実行する。プロセッサ1010がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部(モジュール)として動作する。例えば、ハイパバイザ1210を実行するプロセッサ1010は、ストレージ装置2000に対してアクセス要求を送信する。以下の説明では、プログラムを主語に処理を説明する場合、プロセッサ1010がプログラムを実行していることを示す。
メモリ1020は、プロセッサ1010が実行するプログラム及びプログラムが使用する情報を格納する。また、メモリ1020は、プログラムが使用するワークエリアを含む。実施例1のメモリ1020には、ハイパバイザ1210及びアプリケーション1220を実現するプログラムが格納される。また、メモリ1020は、VM1290の実体となるデータを格納する。
ハイパバイザ1210は、VM1290を管理する機能及びRAWデバイス1230から仮想ディスクを生成する機能を有する。
ネットワークI/F1030は、ネットワーク7000を介して他の装置と接続するためのインタフェースである。
入力装置1040は、キーボード、マウス、スイッチ、ポンティングデバイス、及びマイクロフォン等である。出力装置1050は、ディスプレイ、スピーカ、及びプリンタ等である。
HBA1060は、ストレージネットワーク6000を介してストレージ装置2000と接続するためのインタフェースである。HBA1060は、ファイバチャネルプロトコル等の所定のプロトコルにしたがって、データ及びコマンドの送信処理及び受信処理を実行する。
図3は、実施例1のストレージ装置2000の構成の一例を説明する図である。
ストレージ装置2000は、ハードウェアとして、FEPK(FrontEnd PacKage)2010、MPPK(Micro Processor PacKage)2020、CMPK(Cache Memory PacKage)2030、及びBEPK(BackEnd PacKage)2040を備える。各ハードウェアは、内部ネットワーク2060を介して互いに接続される。また、ハードウェアは、内部ネットワーク2060を介してネットワーク7000に接続される。
FEPK2010は、複数のホストI/F2011を有する。ホストI/F2011は、ストレージ装置2000と通信するためのインタフェースとして機能する。ホストI/F2011は、図示しない一つ以上のポートを有する。ポートには、それぞれIP(Internet Protocol)アドレス及びWWN(World Wide Name)等の固有のアドレスが割り当てられる。
BEPK2040は、複数のディスクI/F2041を有する。ディスクI/F2041は、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等の記憶装置2050と通信するためのインタフェースとして機能する。BEPK2040は、記憶装置及び内部ネットワーク2060との間で送受信されるデータを中継する。
MPPK2020は、複数のマイクロプロセッサ(MP)2021及びローカルメモリ(LM)2022を有する。各MP2021及びLM2022は、バス2023を介して接続される。
MP2021は、演算装置であり、LM2022に格納されたプログラムを実行する。LM2022は、論理分割、I/O制御、及び構成制御等のストレージ装置2000全体を制御するための機能を実現するプログラムを格納する。また、LM2022は、制御用メモリ2032に格納されるI/O制御のための制御情報の一部を格納する。
CMPK2030は、キャッシュメモリ2031及び制御用メモリ2032を有する。キャッシュメモリ2031及び制御用メモリ2032は、DRAM(Dynamic Random Access Memory)等の揮発性メモリである。
キャッシュメモリ2031は、記憶装置2050に書き込むデータ又は記憶装置2050から読み出されたデータを一時的に格納する。制御用メモリ2032は、LU2210及びプール2200の構成情報等、制御に必要な各種情報を格納する。本実施例の制御用メモリ2032は、LU管理情報T2000、ポート管理情報T3000、プール管理情報T4000、パリティグループ管理情報T5000、ソースプログラム管理情報T6000、及びリソースグループ管理情報T7000を格納する。
MP2021は、制御用メモリ2032に格納される構成制御プログラムを読み出し、LM2022にロードし、当該プログラムを実行する。
構成制御プログラム実行するMP2021は、論理的な区画であるリソースグループ2100にストレージリソースを割り当てる論理分割機能を有する。
論理分割機能は、BEPK2040によって提供されるLU2210、論理ポート、プール2200、及びパリティグループ等のストレージリソースをリソースグループ2100に割り当てる。このとき、論理分割機能は、リソースグループ2100に割り当てるストレージリソースの構成情報に、リソースグループ2100の識別子を付与する。構成制御プログラムを実行するMP2021は、リソースグループの識別子及びストレージリソースの割当て関係をリソースグループ管理情報T7000に登録する。
図4Aは、実施例1のホスト管理計算機3000の構成の一例を示す図である。図4Bは、実施例1のストレージ管理計算機4000の構成の一例を示す図である。実施例1のホスト管理計算機3000及びストレージ管理計算機4000の構成は、同一の構成である。
ホスト管理計算機3000は、プロセッサ3010、メモリ3020、ネットワークI/F3030、入力装置3040、出力装置3050、及び記憶装置3060を有する。各ハードウェアは内部バスを介して互いに接続される。
ストレージ管理計算機4000は、プロセッサ4010、メモリ4020、ネットワークI/F4030、入力装置4040、出力装置4050、及び記憶装置4060を有する。各ハードウェアは内部バスを介して互いに接続される。
プロセッサ3010、4010は、プロセッサ1010と同様のハードウェアであり、メモリ3020、4020は、メモリ1020と同様のハードウェアであり、また、ネットワークI/F3030、4030は、ネットワークI/F1030と同様のハードウェアである。入力装置3040、4040は、入力装置1040と同様のハードウェアであり、出力装置3050、4050は、出力装置1050と同様のハードウェアである。
メモリ3020は、アプリケーション管理プログラム3110及び仮想マシン管理プログラム3120を格納し、メモリ4020は、ストレージ管理プログラム4110及びプロバイダ4120を格納する。
記憶装置3060、4600は、HDD及びSSD等の記憶装置である。記憶装置3060には、管理プログラムの実行ログ等が格納される。
ストレージ管理者30は、ストレージ管理プログラム4110を利用して、プール2200及びパリティグループ等、ストレージ装置2000の構成を管理する。
次に、システムの制御に用いられる情報のデータ構造について説明する。
図5は、実施例1の認証サーバ5000が保持するアカウント管理情報T1000のデータ構造の一例を示す図である。
アカウント管理情報T1000は、ユーザID(T1010)、パスワード(T1020)、ユーザグループID(T1030)、及びロール(T1040)から構成されるエントリを含む。一つのエントリが一人のユーザに対応する。
ユーザID(T1010)は、ユーザを一意に識別するための識別子を格納するフィールドである。パスワード(T1020)は、ユーザが設定したパスワードを格納するフィールドである。ユーザグループID(T1030)は、ユーザが所属するユーザグループを一意に識別するための識別子を格納するフィールドである。ロール(T1040)は、ユーザに割り当てられたロールを示す情報を格納するフィールドである。本実施例では、ユーザグループ単位にロールが設定される。
ロール(T1040)には、以下のような種別のロールが設定される。「STORAGE_」から始まるロールは、ストレージリソースに対する操作権限を示し、「VM_」から始まるロールは、VM1290及びVM1290に関連するホスト計算機1000上のリソースに対する操作権限を示し、「APPLICATION_」から始まるロールは、OS上のアプリケーションプログラムに対する操作権限を示す。
ここで、認証/認可処理の概要について説明する。
認証サーバ5000は、ソースプログラムから送信された実行要求に含まれるユーザの識別子及びパスワードと、ユーザID(T1010)及びパスワード(T1020)とを比較する。一致するエントリが存在する場合、認証サーバ5000は、認証証明を示すチケットをソースプログラムに応答する。
ソースプログラムは、認証サーバ5000に、チケットを含むロール取得要求を送信する。認証サーバ5000は、チケットに対応するエントリを検索し、検索されたエントリのユーザグループID(T1030)及びロール(T1040)に格納される値を含む応答をソースプログラムに送信する。
ソースプログラムは、応答を受信した場合、指定リソースに対応するロールが受信した応答に含まれていない場合、管理者からの要求を拒絶する。このロールが対象外であることによる拒絶は、ストレージ装置側で、後述するS2050で行うようにしてもい。また、ソースプログラムは、他のプログラムのAPIを利用する場合、認証サーバ5000から取得したチケットをリクエストに付与することによってシングルサインオンができる。チケットには、ユーザの識別子、ユーザグループの識別子、及びロール等が含まれる。
図6は、実施例1の制御用メモリ2032に格納されるLU管理情報T2000のデータ構造の一例を示す図である。
LU管理情報T2000は、LU ID(T2010)、容量(T2020)、プールID(T2030)、リソースグループID(T2040)、及びポートID(T2050)から構成されるエントリを含む。一つのエントリが一つのLU2210に対応する。
LU ID(T2010)は、LU2210を一意に識別するための識別子を格納するフィールドである。容量(T2020)は、LU2210の容量を格納するフィールドである。プールID(T2030)は、LU2210が所属するプール2200を一意に識別するための識別子を格納するフィールドである。リソースグループID(T2040)は、LU2210が割り当てられたリソースグループ2100を一意に識別するための識別子を格納するフィールドである。ポートID(T2050)は、ホスト計算機1000がLU2210にアクセスするためのポートを一意に識別するための識別子を格納するフィールドである。
図7は、実施例1の制御用メモリ2032に格納されるポート管理情報T3000のデータ構造の一例を示す図である。
ポート管理情報T3000は、ポートID(T3010)、WWN(T3020)、イニシエータWWN(T3030)、及びリソースグループID(T3040)から構成されるエントリを含む。一つのエントリが一つのポート(論理ポート)2220に対応する。
ポートID(T3010)は、ポートを一意に識別するための識別子を格納するフィールドである。WWN(T3020)は、ポートのターゲットWWNを格納するフィールドである。イニシエータWWN(T3030)は、ホスト計算機1000のHBA1060のイニシエータWWNを格納するフィールドである。リソースグループID(T3040)は、ポートが割り当てられたリソースグループ2100を一意に識別するための識別子を格納するフィールドである。
図8は、実施例1の制御用メモリ2032に格納されるプール管理情報T4000のデータ構造の一例を示す図である。
プール管理情報T4000は、プールID(T4010)、容量(T4020)、空き容量(T4030)、パリティグループID(T4040)、及びリソースグループID(T4050)から構成されるエントリを含む。一つのエントリが一つのプール2200に対応する。
プールID(T4010)は、プール2200を一意に識別するための識別子を格納するフィールドである。容量(T4020)は、プール2200の容量を格納するフィールドである。空き容量(T4030)は、プール2200の容量のうち、使用されていない容量を格納するフィールドである。パリティグループID(T4040)は、プール2200を構成する記憶領域を提供するパリティグループを一意に識別するための識別子を格納するフィールドである。ここで、パリティグループは、RAIDを構成する物理ディスクの集合である。リソースグループID(T4050)は、プール2200が割り当てられたリソースグループ2100を一意に識別するための識別子を格納するフィールドである。
図9は、実施例1の制御用メモリ2032に格納されるパリティグループ管理情報T5000のデータ構造の一例を示す図である。
パリティグループ管理情報T5000は、パリティグループID(T5010)、RAID情報(T5020)、ディスク情報(T5030)、及び容量(T5040)から構成されるエントリを含む。一つのエントリが一つのパリティグループに対応する。
パリティグループID(T5010)は、パリティグループを一意に識別するための識別子を格納するフィールドである。RAID情報(T5020)は、パリティグループのRAID構成を格納するフィールドである。ディスク情報(T5030)は、パリティグループを構成する物理ディスクの識別子を格納するフィールドである。容量(T5040)は、パリティグループを構成する記憶領域の容量を格納するフィールドである。
図10は、実施例1の制御用メモリ2032に格納されるソースプログラム管理情報T6000のデータ構造の一例を示す図である。
ソースプログラム管理情報T6000は、ソースプログラムIPアドレス(T6010)、タイプ(T6020)、及びロール(T6030)から構成されるエントリを含む。一つのエントリが一つのソースプログラムに対応する。
イニシエータIPアドレス(T6010)は、ソースプログラムがリクエストを送信する管理ポートに割り当てられるIPアドレスを格納するフィールドである。タイプ(T6020)は、ソースプログラムの種別を格納するフィールドである。
後述するように、ストレージリソースに対する操作要求を受け付けた場合、構成制御プログラム2300は、ロール(T6030)に設定されたロールが付与されたユーザアカウントからの操作要求のみを受け付けるように制御する。
図11は、実施例1の制御用メモリ2032に格納されるリソースグループ管理情報T7000のデータ構造の一例を示す図である。
リソースグループ管理情報T7000は、リソースグループID(T7010)、ユーザグループID(T7020)、ロール(T7030)、及びソースプログラムIPアドレス(T7040)から構成されるエントリを含む。一つのエントリが一つのリソースグループに対応する。
リソースグループID(T7010)は、リソースグループを一意に識別するための識別子を格納するフィールドである。
ユーザグループID(T7020)、ロール(T7030)、及びソースプログラムIPアドレス(T7040)は、リソースグループに割り当てられたストレージリソースに関する値を格納するフィールドである。以下の説明では、リソースグループに割り当てられたストレージリソースを割当ストレージリソースと記載する。
ユーザグループID(T7020)は、割当ストレージリソースへのアクセスが許可されるユーザグループを一意に識別するための識別子を格納するフィールドである。ロール(T7030)は、割当ストレージリソースを操作するために必要なロールを格納するフィールドである。ソースプログラムIPアドレス(T7040)は、割当ストレージリソースへのアクセスが許可されるソースプログラムが使用する管理ポートに割り当てられたIPアドレスを格納するフィールドである。
次に、システムにおいて実行される処理について説明する。
図12は、実施例1の構成制御プログラム2300が実行する検出処理の一例を説明するフローチャートである。
ソースプログラムは、ストレージ装置2000を検出するための検出リクエストを送信する。検出リクエストには、認証サーバ5000から取得したチケット、検出リクエストの送信時に使用する管理ポートに割り当てられるIPアドレス、及びソースプログラムのタイプが含まれる。なお、検出リクエストがプロバイダ4120等を経由して転送される場合、プロバイダ4120等は、検索リクエストを送信するIPアドレスとともに、経由するプログラム又は装置に付与されたIPアドレスを検出リクエストに含める。
構成制御プログラム2300は、検出リクエストを受信した場合、以下で説明する検出処理を開始する。
構成制御プログラム2300は検出リクエストを解析する(ステップS1010)。
具体的には、構成制御プログラム2300は、検出リクエストに含まれるチケットから認可情報を取得し、また、検出リクエストに含まれるIPアドレスを取得する。
次に、構成制御プログラム2300は、ソースプログラム管理情報T6000を参照して、検出リクエストを送信したソースプログラムのリソースグループが設定されているか否かを判定する(ステップS1020)。
具体的には、構成制御プログラム2300は、ソースプログラムIPアドレス(T6010)が検出リクエストを送信したソースプログラムのIPアドレスと一致するエントリを検索する。エントリが存在する場合、構成制御プログラム2300は、検出リクエストを送信したソースプログラムのリソースグループが設定されていると判定する。
検出リクエストを送信したソースプログラムのリソースグループが設定されている場合、構成制御プログラム2300は、検出処理を終了する。
検出リクエストを送信したソースプログラムのリソースグループが設定されていない場合、構成制御プログラム2300は、ソースプログラムのリソースグループを設定する(ステップS1030)。その後、構成制御プログラム2300は、検出処理を終了する。具体的には、以下のような処理が実行される。
構成制御プログラム2300は、ソースプログラム管理情報T6000にエントリを追加し、追加されたエントリのソースプログラムIPアドレス(T6010)に検出リクエストに含まれるIPアドレスを設定する。また、構成制御プログラム2300は、追加されたエントリのタイプ(T6020)及びロール(T6030)に、認可情報に含まれるソースプログラムのタイプ及びロールを設定する。
また、構成制御プログラム2300は、リソースグループ管理情報T7000にエントリを追加し、追加されたエントリのリソースグループID(T7010)にリソースグループの識別子を設定する。構成制御プログラム2300は、追加されたエントリのロール(T7030)に、認可情報に含まれるロールを設定し、また、ソースプログラムIPアドレス(T7040)に、検出リクエストに含まれるIPアドレスを設定する。
なお、検出リクエストがプロバイダ4120等を経由して転送される場合、IPアドレス(T7040)には、検出リクエストを送信したソースプログラムのIPアドレス、及びプロバイダ4120等のIPアドレスが設定される。
検出処理では、ソースプログラム毎に、当該ソースプログラムが利用するストレージリソースを割り当てるリソースグループ2100が生成される。実施例1では、リソースグループ2100に割り当てられたストレージリソースの所有者(オーナ)を示す情報(オーナ情報)として、ソースプログラムIPアドレス(T7040)を設けている。
なお、リソースグループ管理情報T7000を生成するタイミングは、検出リクエストの受信に限定されない。ストレージリソースを使用するために、ソースプログラムからのアクセスを検出した場合に、同様の処理を実行すればよい。
図13は、実施例1のシステムにおいて新規ストレージリソースを生成する処理の流れの一例を示すシーケンス図である。
VM管理者10は、仮想マシン管理プログラム3120(ソースプログラム)が提供するGUI又はCLIを用いて、仮想マシン管理プログラム3120にログインするためのログインリクエストをホスト管理計算機3000に操作端末から入力する(ステップS2010)。
ホスト管理計算機3000は、ログインリクエストを受信した場合、認証サーバ5000に当該リクエストを転送する。仮想マシン管理プログラム3120は、ユーザの認証を行った認証サーバ5000からチケットを取得する。
ログインリクエストに対する応答を確認した後、VM管理者10は、ホスト管理計算機3000に仮想マシン管理プログラム3120が管理するリソースの生成リクエストを入力する(ステップS2020)。ここでは、VM1290のイメージを格納するためのデータストアの生成リクエストが入力されたものとする。
仮想マシン管理プログラム3120は、プロバイダ4120が提供するAPIを用いて、データストアとして用いるLU2210の生成リクエストをストレージ管理計算機4000に送信する(ステップS2030)。生成リクエストには、認証サーバ5000から取得したチケットが付与される。
ストレージ管理計算機4000のプロバイダ4120は、LU2210の生成リクエストを受信した場合、ストレージ装置2000に当該生成リクエストを送信する(ステップS2040)。このとき、プロバイダ4120は、LU2210を生成するプール2200を選択し、生成リクエストにプール2200の識別子を含めてもよい。
ストレージ装置2000の構成制御プログラム2300は、認証/認可処理を実行する(ステップS2050)。認証/認可処理の詳細は図14を用いて説明する。また、構成制御プログラム2300は、VM管理者10の操作が許可された場合、ストレージリソース生成処理を実行する(ステップS2060)。ストレージリソース生成処理の詳細は図15を用いて説明する。
構成制御プログラム2300は、生成されたLU2210の識別子を含む応答をストレージ管理計算機4000に送信する(ステップS2070)。ストレージ管理計算機4000のプロバイダ4120は、当該応答をホスト管理計算機3000に転送する(ステップS2080)。ホスト管理計算機3000の仮想マシン管理プログラム3120は、VM管理者10に当該応答を出力する(ステップS2090)。
VM管理者10は、必要な操作を終えた場合、ログアウトリクエストをホスト管理計算機3000に入力する(ステップS2100)。
なお、アプリケーション管理者20がアプリケーション管理プログラム3110を用いた操作も同様の処理の流れとなる。
図14は、実施例1のストレージ装置2000が新規リソースを生成する場合に実行する認証/認可処理の一例を説明するフローチャートである。
構成制御プログラム2300は、LU2210の生成リクエストを受信した場合、当該リクエストに付与されるチケットから認可情報を取得する(ステップS3010)。
具体的には、構成制御プログラム2300は、認可情報から、ユーザの識別子、ユーザグループの識別子、及びロールを取得する。また、構成制御プログラム2300は、LU2210の生成リクエストからIPアドレスを取得する。構成制御プログラム2300は、LU管理情報T2000、ポート管理情報T3000、プール管理情報T4000、及びパリティグループ管理情報T5000のいずれかを参照し、操作対象のストレージリソースが割り当てられるリソースグループを特定する。例えば、LUを生成するクエストであれば、リクエストに含まれるLUを生成するプールの識別子を用いて、プール管理情報T4000に基づいて、リソースグループIDT4050を特定する。
なお、ソースプログラムから直接送信されたLU2210の生成リクエストの場合、当該リクエストにはソースプログラムのIPアドレスのみが含まれる。プロバイダ4120を経由して送信されたLU2210の生成リクエストの場合、当該リクエストにはソースプログラム及びプロバイダ4120のIPアドレスが含まれる。
次に、構成制御プログラム2300は、要求者(VM管理者10)がストレージリソースの操作権限を有するか否かを判定する(ステップS3020)。
具体的には、構成制御プログラム2300は、リソースグループID(T7010)に、特定されたリソースグループの識別子が設定されたエントリを検索する。構成制御プログラム2300は、検索されたエントリのユーザグループID(T7020)及びロール(T7030)と、認可情報に含まれるユーザグループの識別子及びロールと、を比較し、要求者がストレージリソースの操作権限を有するか否かを判定する。ここで、認証に用いるロールは、ソースプログラムのロール(T6030)とユーザのロール(T1040)が考えられる。認証に用いるロールを使い分けてもよい。例えば、構成制御プログラム2300へユーザが直接アクセスした場合は、ユーザのロールを用い、ソースプログラムを介した場合にはソースプログラムへのログイン認証に用いたユーザのロール(ユーザとソースプログラムで共通したロール)を用いるようにしてもよい。
要求者がストレージリソースの操作権限を有しないと判定された場合、構成制御プログラム2300は、リクエスト拒絶を応答し(ステップS3060)、処理を終了する。
要求者がストレージリソースの操作権限を有すると判定された場合、構成制御プログラム2300は、指定リソースが属するリソースグループの識別子を取得する(ステップS3030)。
具体的には、構成制御プログラム2300は、指定リソースに対応する管理情報を参照し、指定リソースに対応するエントリに設定されたリソースグループの識別子を取得する。
実施例1では、プール2200が指定リソースであるため、構成制御プログラム2300は、プール管理情報T4000を参照し、プールID(T4010)が指定されたプール2200の識別子に一致するエントリを検索する。構成制御プログラム2300は、検索されたエントリのリソースグループID(T4050)に設定されたリソースグループの識別子を取得する。
次に、構成制御プログラム2300は、要求者が指定リソースのアクセス権を有するか否かを判定する(ステップS3040)。ステップS3040の処理は、要求者が指定リソースが割り当てられるリソースグループの所有者であるか否かを判定するための処理である。具体的には、以下のような処理が実行される。
(処理1)構成制御プログラム2300は、リソースグループ管理情報T7000を参照し、リソースグループID(T7010)及びユーザグループID(T7020)の値が、取得されたリソースグループの識別子及びユーザグループの識別子に一致するエントリを検索する。
(処理2)構成制御プログラム2300は、検索されたエントリのソースプログラムIPアドレス(T7040)に、LU2210の生成リクエストから取得したIPアドレスが設定されているか否かを判定する。検索されたエントリのソースプログラムIPアドレス(T7040)に、LU2210の生成リクエストから取得したIPアドレスが設定されている場合、構成制御プログラム2300は、要求者が指定リソースのアクセス権を有すると判定する。
なお、ソースプログラムIPアドレス(T7040)に複数のIPアドレスが設定される場合、構成制御プログラム2300は、ソースプログラムIPアドレス(T7040)に設定された全てのIPアドレスと、LU2210の生成リクエストから取得した全てのIPアドレスとが一致するか否かを判定する。ソースプログラムIPアドレス(T7040)に設定された全てのIPアドレスと、LU2210の生成リクエストから取得した全てのIPアドレスとが一致する場合、構成制御プログラム2300は、要求者が指定リソースのアクセス権を有すると判定する。以上がステップS3040の処理の説明である。
要求者が指定されたリソースのアクセス権を有していないと判定された場合、構成制御プログラム2300は、リクエスト拒絶を応答し(ステップS3060)、処理を終了する。
要求者が指定されたリソースのアクセス権を有すると判定された場合、構成制御プログラム2300は、リクエスト受理を応答し、ストレージリソース生成処理を開始する(ステップS3050)。
図14に示すように、各ストレージリソースに対して所有者を設定できる。
図15は、実施例1のストレージ装置2000が実行するストレージリソース生成処理の一例を説明するフローチャートである。
構成制御プログラム2300は、デフォルトリソースグループに新規リソースを生成する(ステップS4010)。LU2210を生成する場合には以下のような処理が実行される。
構成制御プログラム2300は、指定されたプール2200を用いてLU2210を生成し、また、LU2210にアクセスするための論理ポートを設定する。
構成制御プログラム2300は、LU管理情報T2000にエントリを追加し、追加されたエントリのLU ID(T2010)の識別子を設定する。構成制御プログラム2300は、追加されたエントリの容量(T2020)、プールID(T2030)、及びポートID(T2050)に、LU2210の容量、LU2210を生成したプールの識別子、及び設定した論理ポートの識別子を設定する。さらに、構成制御プログラム2300は、追加されたエントリのリソースグループID(T2040)に「RSG0」を設定する。
また、構成制御プログラム2300は、ポート管理情報T3000を参照し、ポートID(T3010)が、追加されたエントリのポートID(T2050)に一致するエントリを検索する。構成制御プログラム2300は、検索されたエントリのリソースグループID(T2040)に「RSG0」を設定する。以上がステップS4010の処理の説明である。
次に、構成制御プログラム2300は、要求者のリソースグループ(割当リソースグループ)に新規リソースを移動する(ステップS4020)。その後、構成制御プログラム2300は処理を終了する。ステップS4020では、以下のような処理が実行される。
構成制御プログラム2300は、LU管理情報T2000を参照し、ステップS4010において追加されたエントリのリソースグループID(T2040)に割当リソースグループの識別子を設定する。
また、構成制御プログラム2300は、ポート管理情報T3000を参照し、ポートID(T3010)が、追加されたエントリのポートID(T2050)に一致するエントリを検索する。構成制御プログラム2300は、検索されたエントリのリソースグループID(T2040)に割当リソースグループの識別子を設定する。以上がステップS4020の処理の説明である。
図16は、実施例1のシステムにおいて既存ストレージリソースを操作する処理の流れの一例を示すシーケンス図である。
VM管理者10は、仮想マシン管理プログラム3120(ソースプログラム)が提供するGUI又はCLIを用いて、仮想マシン管理プログラム3120にログインするためのログインリクエストをホスト管理計算機3000に入力する(ステップS5010)。
ホスト管理計算機3000は、ログインリクエストを受信した場合、認証サーバ5000に当該リクエストを転送する。ホスト管理計算機3000は、ユーザの認証を行った認証サーバ5000からチケットを取得する。
ログインリクエストに対する応答を確認した後、VM管理者10は、ホスト管理計算機3000に仮想マシン管理プログラム3120が管理するリソースの操作指示を入力する(ステップS5020)。
仮想マシン管理プログラム3120は、プロバイダ4120が提供するAPIを用いてストレージリソースの操作リクエストをストレージ管理計算機4000に送信する(ステップS5030)。操作リクエストには、認証サーバ5000から取得したチケットが含まれる。
ストレージ管理計算機4000のプロバイダ4120は、ストレージリソースの操作リクエストを受信した場合、ストレージ装置2000に操作リクエストを転送する(ステップS5040)。
ストレージ装置2000の構成制御プログラム2300は、認証/認可処理を実行する(ステップS5050)。VM管理者10が正当なロール及びアクセス権限を有すると判定された場合、構成制御プログラム2300は、ストレージリソース操作処理を実行する(ステップS5060)。
構成制御プログラム2300は、処理結果を含む応答をストレージ管理計算機4000に送信する(ステップS5070)。ストレージ管理計算機4000のプロバイダ4120は、当該応答をホスト管理計算機3000に送信する(ステップS5080)。ホスト管理計算機3000の仮想マシン管理プログラム3120は、VM管理者10に当該応答を出力する(ステップS5090)。
VM管理者10は、必要な操作を終えた場合、ログアウトリクエストをホスト管理計算機3000に入力する(ステップS5100)。
なお、アプリケーション管理者20がアプリケーション管理プログラム3110を用いた操作も同様の処理の流れとなる。
図17は、実施例1の実施例1のストレージ装置2000が既存リソースを操作する場合に実行する認証/認可処理の一例を説明するフローチャートである。
ステップS6010からステップS6040の処理は、ステップS3010からステップS3020の処理と同一である。また、ステップS6060の処理は、ステップS3060の処理と同一である。ステップS6020において、操作リクエスト対象のVM1290の所属するリソース管理グループについては、VMが接続されているポート2220の識別子と、ポート管理情報T3000のポートID(T3010)とに基づいて判定する。
ステップS6040において、要求者が指定されたリソースのアクセス権を有すると判定された場合、構成制御プログラム2300は、リクエスト受理を応答し、ストレージリソース操作処理を開始する(ステップS6050)。
図17に示すように、ストレージリソースの操作権限を有しているが、要求者が操作対象のストレージリソースが割り当てられるリソースグループの所有者ではない場合、リクエストが拒絶される。これによって、正規のユーザが、他の正規のユーザが管理するリソースを操作することを防止できる。
実施例1に記載のシステムでは、ストレージリソースはリソースグループ単位で管理される。リソースグループはユーザグループと対応づけて管理されているため、ユーザグループ単位でリソースに対する操作を制御できる。
また、構成制御プログラム2300は、リソースグループの設定時に、認証サーバ5000が管理する認可情報をリソースグループと対応づけて管理する。構成制御プログラム2300は、リソース操作リクエストを受信した場合、リソースグループと対応付けた認可情報と、新たに取得した認可情報とを比較することによって、正当なロールを保持しているか否かを確認できる。この構成によって、ストレージ装置2000に予めロールを設定する必要がない。
また、構成制御プログラム2300は、リソースグループの設定時に、リソースグループの所有者を特定する情報としてIPアドレスを取得し、IPアドレスをリソースグループと対応づけて管理する。構成制御プログラム2300は、リソース操作リクエストを受信した場合、リソースグループと対応づけたIPアドレスと、リクエストから取得したIPアドレスとを比較することによって、正当なリソースグループの所有者であるか否かを確認できる。この構成によって、不正アクセスに基づく不正なリソースの操作を制限できる。
実施例1では、ストレージリソースを対象に説明したが、VM1290等をリソースとして提供するシステムについても同様の構成を適用することができる。
実施例2は、実施例1とシステム構成が異なる。以下、実施例1との差異を中心に実施例2について説明する。
図18は、実施例2のシステムの構成の一例を示す図である。
実施例2のシステムは、複数のストレージ装置2000を備える。複数のストレージ装置2000は、バックエンドネットワーク8000を介して互いに接続される。また、一つのストレージ装置2000は、各ストレージ装置2000の制御を統括するストレージ管理プログラム4110を有する。実施例2のストレージ管理計算機4000は、ストレージ管理プログラム4110を有さない。
実施例2のシステムの他の構成については、実施例1のシステムの構成と同一である。また、各装置のハードウェア構成は、実施例1の各装置のハードウェア構成と同一である。
実施例2では、ストレージ管理プログラム4110が、プロバイダ4120等からリソース操作リクエストを受信するように設定される。ストレージ管理プログラム4110は、操作対象のリソースを管理するストレージ装置2000を特定し、特定されたストレージ装置2000にリソース操作リクエストを転送する。各ストレージ装置2000の構成制御プログラム2300は、ストレージ管理プログラム4110からの操作リクエストのみを受け付けるように設定されている。以下の説明では、ストレージ管理プログラム4110を有するストレージ装置2000をマスタストレージ装置2000と記載する。
実施例2では、マスタストレージ装置2000が複数のストレージ装置2000を管理するための情報を保持する。ここで、マスタストレージ装置2000が複数のストレージ装置2000を管理するための情報について説明する。
図19は、実施例2のマスタストレージ装置2000が保持するストレージ装置管理情報T8000のデータ構造の一例を示す図である。
ストレージ装置管理情報T8000は、ストレージ装置2000を管理するための情報である。ストレージ装置管理情報T8000は予め設定され、ストレージ装置2000の追加及び削除に伴ってエントリの追加及び削除が行われる。
ストレージ装置管理情報T8000は、ノードID(T8010)、IPアドレス(T8020)、マスタ(T8030)、状態(T8040)から構成されるエントリを含む。一つのエントリが一つのストレージ装置2000に対応する。
ノードID(T8010)は、ストレージ装置2000の識別子を格納するフィールドである。IPアドレス(T8020)は、ストレージ装置2000の管理ポートに割り当てられたIPアドレスを格納するフィールドである。マスタ(T8030)は、マスタか否かを示す値を格納するフィールドである。ここで、マスタは、処理を統括するストレージ装置2000、すなわち、マスタストレージ装置2000を表す。マスタ(T8030)には、マスタであることを示す「1」及びマスタでないことを示す「0」のいずれかが設定される。状態(T8040)は、ストレージ装置2000の稼働状態を示す値を格納するフィールドである。状態(T8040)には、稼働している状態を示す「稼働」及び稼働していない状態を示す「待機」のいずれかが設定される。
図20は、実施例2のマスタストレージ装置2000が保持するLU管理情報T2000のデータ構造の一例を示す図である。
LU管理情報T2000に含まれるエントリは、ノードID(T2060)を含む。ノードID(T2060)は、ノードID(T8010)と同一のフィールドである。
なお、複数のストレージ装置2000は、実施例1で説明したLU管理情報T2000を保持する。
図21は、実施例2のマスタストレージ装置2000が保持するポート管理情報T3000のデータ構造の一例を示す図である。
ポート管理情報T3000に含まれるエントリは、ノードID(T3050)を含む。ノードID(T3050)は、ノードID(T8010)と同一のフィールドである。
なお、複数のストレージ装置2000は、実施例1で説明したポート管理情報T3000を保持する。
図22は、実施例2のマスタストレージ装置2000が保持するプール管理情報T4000のデータ構造の一例を示す図である。
プール管理情報T4000に含まれるエントリは、ノードID(T4050)を含む。ノードID(T4050)は、ノードID(T8010)と同一のフィールドである。
なお、複数のストレージ装置2000は、実施例1で説明したプール管理情報T4000を保持する。
図23は、実施例2のマスタストレージ装置2000が保持するパリティグループ管理情報T5000のデータ構造の一例を示す図である。
パリティグループ管理情報T5000に含まれるエントリは、ノードID(T5050)を含む。ノードID(T5050)は、ノードID(T8010)と同一のフィールドである。
なお、複数のストレージ装置2000は、実施例1で説明したパリティグループ管理情報T5000を保持する。
実施例2では、マスタストレージ装置2000のストレージ管理プログラム4110は、リソース操作リクエストを受信した場合、LU管理情報T2000、ポート管理情報T3000、プール管理情報T4000、及びパリティグループ管理情報T5000の少なくともいずれかを参照して、当該リクエストの転送先となるストレージ装置2000を特定する。また、マスタストレージ装置2000のストレージ管理プログラム4110は、ストレージ装置管理情報T8000を参照して、転送先のストレージ装置2000のIPアドレスを取得し、リクエストを転送する。
各ストレージ装置2000の構成制御プログラム2300がリソース操作リクエストを受信した場合の処理は、実施例1と同一の処理であるため、説明を省略する。
図24は、実施例2のシステムにおいて新規ストレージ装置2000を追加する処理の流れの一例を示すシーケンス図である。
ストレージ管理者30は、ストレージ管理プログラム4110が提供するGUI又はCLIを用いて、ストレージ管理プログラム4110にログインするためのログインリクエストをマスタストレージ装置2000に入力する(ステップS7010)。
マスタストレージ装置2000は、ログインリクエストを受信した場合、認証サーバ5000に当該リクエストを転送する。ストレージ管理プログラム4110は、ユーザの認証を行った認証サーバ5000からチケットを取得する。
ログインリクエストに対する応答を確認した後、ストレージ管理者30は、マスタストレージ装置2000に新規ストレージ装置2000の追加リクエストを入力する(ステップS7020)。当該追加リクエストには、新規ストレージ装置2000のIPアドレスが含まれる。
ストレージ管理プログラム4110は、新規ストレージ装置2000に受信制限情報を送信する(ステップS7030)。受信制限情報は、マスタストレージ装置2000からの操作リクエストのみを受け付けるように設定するための情報である。
新規ストレージ装置2000の構成制御プログラム2300は、受信制限情報を受信した場合、制御用メモリ2032に受信制限情報を格納する。その後、新規ストレージ装置2000の構成制御プログラム2300は、マスタストレージ装置2000に応答を送信する(ステップS7040)。
マスタストレージ装置2000のストレージ管理プログラム4110は、新規ストレージ装置2000にリソースグループ管理情報T7000を送信する(ステップS7050)。
新規ストレージ装置2000の構成制御プログラム2300は、リソースグループ管理情報T7000を受信した場合、制御用メモリ2032にリソースグループ管理情報T7000を格納する。その後、新規ストレージ装置2000の構成制御プログラム2300は、マスタストレージ装置2000に応答を送信する(ステップS7060)。
マスタストレージ装置2000のストレージ管理プログラム4110は、ストレージ管理者30に、新規ストレージ装置2000の追加処理が完了した旨を通知する応答を出力する(ステップS7070)。
ストレージ管理者30は、必要な操作を終えた場合、ログアウトリクエストをマスタストレージ装置2000に入力する(ステップS7080)。
以上の処理によって、マスタストレージ装置2000が操作リクエストを受け付けるように制御できる。また、各ストレージ装置2000の構成制御プログラム2300は、リソースグループ単位のアクセス制御を実現できる。
実施例3は、実施例1とシステム構成が異なる。以下、実施例1との差異を中心に実施例3について説明する。
図25は、実施例3のシステムの構成の一例を示す図である。
実施例3のシステムは、複数のストレージ装置2000を備える。複数のストレージ装置2000は、バックエンドネットワーク8000を介して互いに接続される。実施例3のシステムは異種のストレージ装置を統合して一つのストレージシステムとしてホスト計算機1000に提供するためのシステムである。
実施例3のシステムの他の構成については、実施例1のシステムの構成と同一である。また、各装置のハードウェア構成は、実施例1の各装置のハードウェア構成と同一である。また、実施例3の各装置のソフトウェア構成は、ストレージ管理プログラム4110を有するストレージ管理計算機4000がリソースグループ管理情報T7000を有する点が実施例1と異なる。その他の構成は実施例1と同一である。
実施例3では、実施例2と同様にストレージ管理プログラム4110が、プロバイダ4120等からリソース操作リクエストを受信するように設定される。ストレージ管理プログラム4110は、操作対象のリソースを管理するストレージ装置2000を特定し、特定されたストレージ装置2000にリソース操作リクエストを転送する。各ストレージ装置2000の構成制御プログラム2300は、ストレージ管理プログラム4110からの操作リクエストのみを受け付けるように設定されている。
実施例3のストレージ管理プログラム4110は、実施例2のマスタストレージ装置2000が有するストレージ管理プログラム4110と同様の機能を有する。
実施例3によれば、複数のストレージ装置2000に対する操作リクエストを統括するストレージ管理プログラム4110をストレージ管理計算機4000に配置することによって、論理分割機能を有さないストレージ装置2000を含むストレージシステムにおいても実施例1と同様の効果を得ることができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
10 VM管理者
20 アプリケーション管理者
30 ストレージ管理者
1000 ホスト計算機
1010、3010、4010 プロセッサ
1020、3020、4020 メモリ
1030、3030、4030 ネットワークI/F
1040、3040、4040 入力装置
1050、3050、4050 出力装置
1060 HBA
1210 ハイパバイザ
1220 アプリケーション
1230 RAWデバイス
1290 VM
2000 ストレージ装置
2010 FEPK
2011 ホストI/F
2020 MPPK
2021 マイクロプロセッサ
2022 ローカルメモリ
2023 バス
2030 CMPK
2031 キャッシュメモリ
2032 制御用メモリ
2040 BEPK
2041 ディスクI/F
2050 記憶装置
2060 内部ネットワーク
2100 リソースグループ
2200 プール
2210 LU
2220 ポート
2300 構成制御プログラム
3000 ホスト管理計算機
3110 アプリケーション管理プログラム
3120 仮想マシン管理プログラム
4000 ストレージ管理計算機
4110 ストレージ管理プログラム
4120 プロバイダ
5000 認証サーバ
6000 ストレージネットワーク
7000 ネットワーク
8000 バックエンドネットワーク
T1000 アカウント管理情報
T2000 LU管理情報
T3000 ポート管理情報
T4000 プール管理情報
T5000 パリティグループ管理情報
T6000 ソースプログラム管理情報
T7000 リソースグループ管理情報
T8000 ストレージ装置管理情報

Claims (9)

  1. ソースプログラムに利用される複数のリソースを有する計算機システムにおいて、
    制御部と、
    前記リソース及びリソースグループを対応付けた情報を格納するリソース管理情報と、
    前記リソースグループを利用可能なユーザ及び前記ソースプログラムを対応付けた情報を格納するリソースグループ管理情報と、を有し、
    前記リソースグループ管理情報に格納される情報は、前記リソースグループにさらにロールが対応付けられており、
    前記ソースプログラムから、前記ソースプログラムを使用するユーザにかかる前記リソースを指定したリクエストを受信した場合に、前記制御部は、前記リソースグループ管理情報と、前記リソース管理情報とを用いて、前記リクエストにかかる前記リソースへのアクセス可否を判定する処理を実行し、
    前記処理において、前記制御部は、前記アクセス可否の判定に、前記リクエストに付されたロールと、前記リソースグループでのロールとを用いることを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記制御部は、前記処理において、
    前記リクエストが指定する前記リソースと、前記リソース管理情報とから、前記リソースグループを特定し、
    前記特定したリソースグループと、前記リクエストにかかるユーザと、前記リクエストにかかる前記ソースプログラムと、前記リソースグループ管理情報とに基づいて、前記アクセス可否を判定することを特徴とする計算機システム。
  3. 請求項1に記載の計算機システムであって、
    前記ソースプログラムの可能なロールが規定されたソースプログラム管理情報を有しており、
    前記制御部は、前記処理において、前記アクセス可否の判定に、前記ソースプログラム管理情報における前記ソースプログラムのロールと、前記リソースグループでのロールとを用いることを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記アクセス可否の判定に用いるロールは、前記ユーザが前記ソースプログラムへのログイン認証に用い、前記リクエストに付されたロールであることを特徴とする計算機システム。
  5. 請求項3に記載の計算機システムであって、
    前記リソースグループ管理情報に格納される情報は、前記ユーザと、個別ユーザと、前記個別ユーザの可能なロールとが対応付けられており、
    前記制御部は、前記処理において、前記アクセス可否の判定に、前記個別ユーザのロールを用いることを特徴とする計算機システム。
  6. 請求項1に記載の計算機システムであって、
    前記ユーザと、前記ユーザの可能なロールとが対応付けられた情報を格納するアカウント管理情報を有しており、
    前記制御部は、前記処理において、前記アクセス可否の判定に、前記アカウント管理情報における前記ユーザのロールと、前記リソースグループでのロールとを用いることを特徴とする計算機システム。
  7. 請求項1に記載の計算機システムであって、
    前記ユーザと、前記ユーザの可能なロールとが対応付けられた情報を格納するアカウント管理情報を有しており、
    前記ソースプログラムの可能なロールが規定されたソースプログラム管理情報を有しており、
    前記制御部は、前記処理において、
    前記リクエストがストレージ構成を制御することが目的とする場合、前記アクセス可否の判定に、前記アカウント管理情報における前記ユーザのロールと、前記リソースグループでのロールとを用い、
    前記リクエストがストレージ構成を制御すること以外が目的である場合、前記アクセス可否の判定に、前記ソースプログラム管理情報における前記ソースプログラムのロールと、前記リソースグループでのロールとを用いる
    ことを特徴とする計算機システム。
  8. 請求項1に記載の計算機システムであって、
    前記制御部は、前記ソースプログラムを介したユーザからのリクエストにより前記リソースグループを作成した場合に、前記リソースグループ管理情報に、前記ユーザ及び前記ソースプログラムを対応付けた情報を追加する
    ことを特徴とする計算機システム。
  9. ソースプログラムに利用される複数のリソースを有する計算機システムのリソースアクセス制御方法において、
    前記計算機システムは、
    制御部と、
    前記リソース及びリソースグループを対応付けた情報を格納するリソース管理情報と、
    前記リソースグループを利用可能なユーザ及び前記ソースプログラムを対応付けた情報を格納するリソースグループ管理情報と、を有し、
    前記リソースグループ管理情報に格納される情報は、前記リソースグループにさらにロールが対応付けられており、
    前記制御部は、前記ソースプログラムから、前記ソースプログラムを使用するユーザにかかる前記リソースを指定したリクエストを受信した場合に、前記リソースグループ管理情報と、前記リソース管理情報とを用いて、前記リクエストにかかる前記リソースへのアクセス可否を判定する処理を実行し、
    前記処理において、前記制御部は、前記アクセス可否の判定に、前記リクエストに付されたロールと、前記リソースグループでのロールとを用いることを特徴とする計算機システムのリソースアクセス制御方法。
JP2018099758A 2018-05-24 2018-05-24 計算機システム及びリソースアクセス制御方法 Active JP6723289B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018099758A JP6723289B2 (ja) 2018-05-24 2018-05-24 計算機システム及びリソースアクセス制御方法
US16/359,465 US11048543B2 (en) 2018-05-24 2019-03-20 Computer system and resource access control method for securely controlling access using roles with a plurality of users

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018099758A JP6723289B2 (ja) 2018-05-24 2018-05-24 計算機システム及びリソースアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2019204343A JP2019204343A (ja) 2019-11-28
JP6723289B2 true JP6723289B2 (ja) 2020-07-15

Family

ID=68614051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018099758A Active JP6723289B2 (ja) 2018-05-24 2018-05-24 計算機システム及びリソースアクセス制御方法

Country Status (2)

Country Link
US (1) US11048543B2 (ja)
JP (1) JP6723289B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022007746A (ja) 2020-06-26 2022-01-13 株式会社日立製作所 情報処理システム及び情報処理方法
CN113282890B (zh) * 2021-05-25 2022-10-21 挂号网(杭州)科技有限公司 资源授权方法、装置、电子设备及存储介质
JP7430020B1 (ja) 2023-08-14 2024-02-09 久米機電工業株式会社 権限管理アプリケーション及び権限管理システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044297A (ja) * 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
US7546640B2 (en) * 2003-12-10 2009-06-09 International Business Machines Corporation Fine-grained authorization by authorization table associated with a resource
JP2008242826A (ja) 2007-03-27 2008-10-09 Hitachi Ltd 情報処理システム、情報処理システムの制御方法及びプログラム
EP2586155A4 (en) * 2010-06-23 2017-06-07 Hewlett-Packard Enterprise Development LP Authorization control
JP4898940B2 (ja) * 2010-08-19 2012-03-21 株式会社メイクソフトウェア 写真撮影遊戯機、写真撮影遊戯方法及び写真撮影遊戯機の制御プログラム
WO2012056490A1 (en) * 2010-10-25 2012-05-03 Hitachi, Ltd. Storage apparatus and management method thereof
ES2718652T3 (es) * 2012-03-30 2019-07-03 Nec Corp Sistema de comunicación, aparato de control, aparato de comunicación, método de control de comunicación, y programa
WO2014054070A1 (en) * 2012-10-03 2014-04-10 Hitachi, Ltd. Management system for managing a physical storage system, method of determining a resource migration destination of a physical storage system, and storage medium
US9692765B2 (en) * 2014-08-21 2017-06-27 International Business Machines Corporation Event analytics for determining role-based access

Also Published As

Publication number Publication date
JP2019204343A (ja) 2019-11-28
US20190361726A1 (en) 2019-11-28
US11048543B2 (en) 2021-06-29

Similar Documents

Publication Publication Date Title
EP3493510B1 (en) Method, device and system for virtual machine to access physical server in cloud computing system
JP5035182B2 (ja) アクセス制御システム、アクセス制御方法、アクセス制御プログラム、及びアクセス制御プログラムを記録した記録媒体
US7984133B2 (en) Computer and access control method in a computer
JP4567293B2 (ja) ファイルサーバ
TWI245510B (en) Secure system and method for san management in a non-trusted server environment
JP4437650B2 (ja) ストレージシステム
JP4972670B2 (ja) 仮想計算機システム、そのアクセス制御方法及び通信装置
JP6723289B2 (ja) 計算機システム及びリソースアクセス制御方法
US20090276774A1 (en) Access control for virtual machines in an information system
US20080022120A1 (en) System, Method and Computer Program Product for Secure Access Control to a Storage Device
WO2018177013A1 (zh) 提供PaaS服务的方法、管理系统和云计算服务架构
US20050192923A1 (en) Computer system for allocating storage area to computer based on security level
US11563799B2 (en) Peripheral device enabling virtualized computing service extensions
JP6056607B2 (ja) 情報処理システム及び情報処理システムの制御方法
JP2006048313A (ja) 複数の管理者から管理されるストレージシステムの管理方法
US20120278426A1 (en) Computer system and its management method
JP2001075853A (ja) 計算機システム、及び該計算機システムに用いられる計算機並びに記憶装置
US9262437B2 (en) Storage system and control method for storage system
US20240111907A1 (en) A device and a communication method
CN115865502A (zh) 权限管控方法、装置、设备及存储介质
Shin et al. Domain-based virtualized resource management in cloud computing
US11755374B2 (en) Cloud resource audit system
US20130179993A1 (en) System and Methods for Host Enabled Management in a Storage System
US20070088931A1 (en) Method and apparatus to authorize cross-partition commands
CN115917538A (zh) 针对云计算的分布式应用执行

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190422

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200528

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: 20200609

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200623

R150 Certificate of patent or registration of utility model

Ref document number: 6723289

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150