(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-01-23
(45)【発行日】2025-01-31
(54)【発明の名称】計算機システム及び基盤の操作履歴の管理方法
(51)【国際特許分類】
G06F 11/30 20060101AFI20250124BHJP
G06F 8/71 20180101ALI20250124BHJP
G06F 11/34 20060101ALI20250124BHJP
【FI】
G06F11/30 151
G06F8/71
G06F11/30 140A
G06F11/34 138
(21)【出願番号】P 2023188758
(22)【出願日】2023-11-02
【審査請求日】2024-01-09
(73)【特許権者】
【識別番号】524132520
【氏名又は名称】日立ヴァンタラ株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】正木 健太
(72)【発明者】
【氏名】川口 智大
【審査官】山本 俊介
(56)【参考文献】
【文献】米国特許出願公開第2022/0206788(US,A1)
【文献】特開2023-106262(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/71
G06F 11/30
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
計算機システムであって、
サービスを実現するためのリソースを提供する基盤と、
前記サービスを構築するための設定を記したマニフェストファイルのバージョンを管理するバージョン管理システムと、
前記マニフェストファイルに基づいて前記基盤に対するコマンドを生成し、前記基盤に出力する基盤管理システムと、接続し、
前記バージョン管理システムから、前記マニフェストファイルの更新に伴って、当該マニフェストファイルのバージョンに対応する変更IDを含む通知を受信し、
前記コマンド及び前記変更IDを関連付けた変更操作の操作履歴が保存されるように、前記変更IDを含む変更操作の実行指示を、前記基盤管理システムに送信することを特徴とする計算機システム。
【請求項2】
請求項1に記載の計算機システムであって、
前記基盤が実行した操作の操作履歴を格納するデータベースにアクセス可能に接続され、
前記マニフェストファイルの更新に伴う変更操作の前記操作履歴の出力指示を受信した場合、前記データベースから前記変更IDが関連付けられた前記操作履歴を抽出し、出力することを特徴とする計算機システム。
【請求項3】
請求項2に記載の計算機システムであって、
前記サービスは、複数のオブジェクトから構成され、
前記複数のオブジェクトは、階層的な構造であり、
階層が異なる前記オブジェクト間には依存関係が存在し、
前記オブジェクトごとに前記マニフェストファイルが存在し、
前記計算機システムは、
前記通知を受信した場合、前記マニフェストファイルの更新に伴って変更される前記オブジェクト及び当該オブジェクトと依存関係がある前記オブジェクトに対する排他制御が必要か否かを判定し、
前記マニフェストファイルの更新に伴って変更される前記オブジェクト及び当該オブジェクトと依存関係がある前記オブジェクトに対する排他制御が必要ないと判定された場合、前記変更操作の実行指示を送信することを特徴とする計算機システム。
【請求項4】
請求項3に記載の計算機システムであって、
前記操作履歴は、時刻、操作内容、操作対象の前記オブジェクト、及び前記変更IDを格納するためのフィールドから構成されるデータであり、
前記出力指示は、前記オブジェクトの識別情報と、二つの前記変更IDとを含み、
前記計算機システムは、
前記バージョン管理システムにアクセスして、前記出力指示に含まれる二つの前記変更IDに対応する前記マニフェストファイルの登録時刻を特定し、
前記出力指示によって指定された前記オブジェクトの前記マニフェストファイルであって、登録時刻が前記特定された二つの登録時刻によって定まる時間帯に含まれる前記マニフェストファイルの前記変更IDを取得し、
前記データベースから、前記出力指示に含まれる前記変更ID及び前記バージョン管理システムから取得した前記変更IDのいずれかを含む前記操作履歴を抽出することを特徴とする計算機システム。
【請求項5】
請求項4に記載の計算機システムであって、
前記データベースから、前記出力指示によって指定された前記オブジェクトに関する前記操作履歴であって、前記時刻が前記時間帯に含まれ、かつ、前記変更IDを含まない、又は、前記出力指示に含まれる前記変更ID及び前記バージョン管理システムから取得した前記変更IDとは異なる前記変更IDを含む前記操作履歴を抽出することを特徴とする計算機システム。
【請求項6】
請求項3に記載の計算機システムであって、
前記操作履歴は、時刻、操作内容、操作対象の前記オブジェクト、及び前記変更IDの各々を格納するためのフィールドから構成されるデータであり、
前記出力指示は、前記オブジェクトの識別情報と、時間帯とを含み、
前記計算機システムは、
前記バージョン管理システムにアクセスして、前記出力指示によって指定された前記オブジェクトの前記マニフェストファイルであって、登録時刻が前記時間帯に含まれる前記マニフェストファイルの前記変更IDを取得し、
前記データベースから、前記バージョン管理システムから取得した前記変更IDのいずれかを含む前記操作履歴を抽出することを特徴とする計算機システム。
【請求項7】
請求項6に記載の計算機システムであって、
前記データベースから、前記時刻が前記時間帯に含まれ、かつ、前記変更IDを含まない、又は、前記バージョン管理システムから取得した前記変更IDとは異なる前記変更IDを含む前記操作履歴を抽出することを特徴とする計算機システム。
【請求項8】
請求項3に記載の計算機システムであって、
前記通知を受信した場合、前記バージョン管理システムにアクセスして、更新された前記マニフェストファイルと、当該マニフェストファイルに対応する前記オブジェクトから構成される前記サービスの他の前記オブジェクトの前記マニフェストファイルとを取得し、
取得した前記複数のマニフェストファイルを用いて、前記サービスを構成する前記オブジェクトの構成を表す構成情報を生成し、前記変更IDと関連付けて保存し、
前記出力指示を受信した場合、複数の前記変更IDの中から最新の前記変更IDを特定し、
特定された前記変更IDと関連付けられる前記構成情報及び抽出された前記操作履歴を表示するための表示情報を生成し、出力することを特徴とする計算機システム。
【請求項9】
計算機システムが実行する基盤の操作履歴の管理方法であって、
前記計算機システムは、
サービスを実現するためのリソースを提供する基盤と、
前記サービスを構築するための設定を記したマニフェストファイルのバージョンを管理するバージョン管理システムと、
前記マニフェストファイルに基づいて前記基盤に対するコマンドを生成し、前記基盤に出力する基盤管理システムと、接続し、
前記基盤の操作履歴の管理方法は、
前記計算機システムが、前記バージョン管理システムから、前記マニフェストファイルの更新に伴って、当該マニフェストファイルのバージョンに対応する変更IDを含む通知を受信する第1のステップと、
前記計算機システムが、前記コマンド及び前記変更IDを関連付けた変更操作の操作履歴が保存されるように、前記変更IDを含む変更操作の実行指示を、前記基盤管理システムに送信する第2のステップと、を含むことを特徴とする基盤の操作履歴の管理方法。
【請求項10】
請求項9に記載の基盤の操作履歴の管理方法であって、
前記計算機システムは、前記基盤が実行した操作の操作履歴を格納するデータベースにアクセス可能に接続され、
前記基盤の操作履歴の管理方法は、前記マニフェストファイルの更新に伴う変更操作の前記操作履歴の出力指示を受信した場合、前記計算機システムが、前記データベースから前記変更IDが関連付けられた前記操作履歴を抽出し、出力する第3のステップを含むことを特徴とする基盤の操作履歴の管理方法。
【請求項11】
請求項10に記載の基盤の操作履歴の管理方法であって、
前記サービスは、複数のオブジェクトから構成され、
前記複数のオブジェクトは、階層的な構造であり、
階層が異なる前記オブジェクト間には依存関係が存在し、
前記オブジェクトごとに前記マニフェストファイルが存在し、
前記第2のステップは、
前記計算機システムが、前記マニフェストファイルの更新に伴って変更される前記オブジェクト及び当該オブジェクトと依存関係がある前記オブジェクトに対する排他制御が必要か否かを判定するステップと、
前記マニフェストファイルの更新に伴って変更される前記オブジェクト及び当該オブジェクトと依存関係がある前記オブジェクトに対する排他制御が必要ないと判定された場合、前記計算機システムが、前記変更操作の実行指示を送信するステップと、を含むことを特徴とする基盤の操作履歴の管理方法。
【請求項12】
請求項11に記載の基盤の操作履歴の管理方法であって、
前記操作履歴は、時刻、操作内容、操作対象の前記オブジェクト、及び前記変更IDの各々を格納するためのフィールドから構成されるデータであり、
前記出力指示は、前記オブジェクトの識別情報と、二つの前記変更IDとを含み、
前記第3のステップは、
前記計算機システムが、前記バージョン管理システムにアクセスして、前記出力指示に含まれる二つの前記変更IDに対応する前記マニフェストファイルの登録時刻を特定するステップと、
前記計算機システムが、前記出力指示によって指定された前記オブジェクトの前記マニフェストファイルであって、登録時刻が前記特定された二つの登録時刻によって定まる時間帯に含まれる前記マニフェストファイルの前記変更IDを取得するステップと、
前記計算機システムが、前記データベースから、前記出力指示に含まれる前記変更ID及び前記バージョン管理システムから取得した前記変更IDのいずれかを含む前記操作履歴を抽出するステップと、
前記計算機システムが、前記データベースから、前記出力指示によって指定された前記オブジェクトに関する前記操作履歴であって、前記時刻が前記時間帯に含まれ、かつ、前記変更IDを含まない、又は、前記出力指示に含まれる前記変更ID及び前記バージョン管理システムから取得した前記変更IDとは異なる前記変更IDを含む前記操作履歴を抽出することを特徴とする基盤の操作履歴の管理方法。
【請求項13】
請求項11に記載の基盤の操作履歴の管理方法であって、
前記操作履歴は、時刻、操作内容、操作対象の前記オブジェクト、及び前記変更IDを格納するためのフィールドから構成されるデータであり、
前記出力指示は、前記オブジェクトの識別情報と、時間帯とを含み、
前記第3のステップは、
前記計算機システムが、前記バージョン管理システムにアクセスして、前記出力指示によって指定された前記オブジェクトの前記マニフェストファイルであって、登録時刻が前記時間帯に含まれる前記マニフェストファイルの前記変更IDを取得するステップと、
前記計算機システムが、前記データベースから、前記バージョン管理システムから取得した前記変更IDのいずれかを含む前記操作履歴を抽出するステップと、
前記計算機システムが、前記データベースから、前記時刻が前記時間帯に含まれ、かつ、前記変更IDを含まない、又は、前記バージョン管理システムから取得した前記変更IDとは異なる前記変更IDを含む前記操作履歴を抽出するステップと、を含むことを特徴とする基盤の操作履歴の管理方法。
【請求項14】
請求項11に記載の基盤の操作履歴の管理方法であって、
前記第2のステップは、
前記計算機システムが、前記バージョン管理システムにアクセスして、更新された前記マニフェストファイルと、当該マニフェストファイルに対応する前記オブジェクトから構成される前記サービスの他の前記オブジェクトの前記マニフェストファイルとを取得するステップと、
前記計算機システムが、取得した前記複数のマニフェストファイルを用いて、前記サービスを構成する前記オブジェクトの構成を表す構成情報を生成し、前記変更IDと関連付けて保存するステップと、を含み、
前記第3のステップは、
前記計算機システムが、複数の前記変更IDの中から最新の前記変更IDを特定するステップと、
前記計算機システムが、特定された前記変更IDと関連付けられる前記構成情報及び抽出された前記操作履歴を表示するための表示情報を生成し、出力するステップと、を含むことを特徴とする基盤の操作履歴の管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IaC(Infrastructure as Code)を用いて基盤を管理するシステムの操作履歴の管理技術に関する。
【背景技術】
【0002】
近年、ビジネスアジリティに対応するためにクラウドシステムの利用が拡大している。また、オンプレミス型のシステム及びクラウドシステム等の複数の基盤を組み合わせた利用形態も増えている。
【0003】
基盤では、頻繁に構成が変更されるため基盤の構成を把握することは重要である。基盤の構成に関する情報を提示する技術として特許文献1に記載の技術が知られている。
【0004】
特許文献1には、「クラウド環境の構成履歴を把握できるクラウドサービス提供システムを提供する。そのため、クラウド接続情報受付部、構成保存処理部、構成履歴表示処理部、クラウド接続情報受付部、クラウド接続情報DB、構成情報取得処理部、クラウド構成履歴DB、構成履歴取得処理部を備える。そして、ユーザのクラウドIDでクラウド接続情報を取得し、取得したクラウド接続情報からクラウド構成情報を取得するクラウドサービス提供システムを特定してクラウド構成情報を取得してクラウド構成履歴DBに保存する。ユーザから受け付けた構成表示するクラウド情報に基づいて、構成履歴をクラウド構成履歴DBから取得し構成要素毎の構成要素アイコンで構成図を生成して表示する。」ことが記載されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
基盤上のサービスの構築を支援する技術としてIaCが知られている。ユーザは、サービスを構築するための設定をコードとして記したマニフェストファイルをIaCツールに入力することによって、自動的に基盤にサービスを構築することができる。以下の説明では、マニフェストファイルをマニフェストと記載する。
【0007】
IaCツールは、マニフェストの内容を実現するために、基盤で実行可能なコマンドを生成し、実行する。ユーザはIaCツールが実行するコマンド(操作内容)を把握できない。そのため、障害等が発生した場合の検証ができないという課題がある。
【0008】
本発明は、マニフェストに基づくIaCツールの操作内容を把握するための技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、計算機システムであって、サービスを実現するためのリソースを提供する基盤と、前記サービスを構築するための設定を記したマニフェストファイルのバージョンを管理するバージョン管理システムと、前記マニフェストファイルに基づいて前記基盤に対するコマンドを生成し、前記基盤に出力する基盤管理システムと、接続し、前記バージョン管理システムから、前記マニフェストファイルの更新に伴って、当該マニフェストファイルのバージョンに対応する変更IDを含む通知を受信し、前記コマンド及び前記変更IDを関連付けた変更操作の操作履歴が保存されるように、前記変更IDを含む変更操作の実行指示を、前記基盤管理システムに送信する。
【発明の効果】
【0010】
本発明によれば、変更IDと関連付けて変更操作の操作履歴を保存できるため、基盤管理システム(IaCツール)の操作内容を把握することができる。上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】実施例1のシステムの構成例を示す図である。
【
図2】実施例1のサービスの構成例を示す図である。
【
図3】実施例1のマニフェストの一例を示す図である。
【
図4】実施例1のオブジェクト状態情報のデータ構造の一例を示す図である。
【
図5】実施例1のシステムにおけるストレージサービスのマニフェスト更新に伴う処理の流れを説明するシーケンス図である。
【
図6】実施例1の基盤に送信されたコマンドの一例を示す図である。
【
図7】実施例1の操作履歴DBのデータ構造の一例を示す図である。
【
図8】実施例1のオブジェクト状態管理部が実行する排他制御処理の一例を説明するフローチャートである。
【
図9A】実施例1の排他制御処理におけるオブジェクト状態情報の変化の一例を示す図である。
【
図9B】実施例1の排他制御処理におけるオブジェクト状態情報の変化の一例を示す図である。
【
図9C】実施例1の排他制御処理におけるオブジェクト状態情報の変化の一例を示す図である。
【
図9D】実施例1の排他制御処理におけるオブジェクト状態情報の変化の一例を示す図である。
【
図9E】実施例1の排他制御処理におけるオブジェクト状態情報の変化の一例を示す図である。
【
図10】実施例1のシステムにおけるストレージサービスのマニフェスト更新に伴う処理の流れを説明するシーケンス図である。
【
図11】実施例1の構成情報のデータ構造の一例を示す図である。
【
図12】実施例1のシステムにおける操作履歴の取得処理の流れを説明するシーケンス図である。
【
図13】実施例1の操作履歴抽出部が実行する操作履歴抽出処理の一例を説明するフローチャートである。
【
図14】実施例1の操作履歴抽出部が実行する操作履歴抽出処理の一例を説明するフローチャートである。
【
図15】実施例1の操作履歴抽出部が生成する抽出情報のデータ構造の一例を示す図である。
【
図16】実施例1の構成図生成部が実行する表示情報生成処理の一例を説明するフローチャートである。
【
図17】実施例1のユーザ端末に表示される画面の一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施例の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【0013】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【0014】
本明細書等における「第1」、「第2」、「第3」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【実施例1】
【0015】
図1は、実施例1のシステムの構成例を示す図である。
図2は、実施例1のサービスの構成例を示す図である。
図3は、実施例1のマニフェストの一例を示す図である。
【0016】
システムは、バージョン管理システム100、複数の基盤101、及びユーザ端末102から構成される。バージョン管理システム100、複数の基盤101、及びユーザ端末102は、LAN(Local Area Network)等のネットワーク103を介して接続される。なお、ネットワーク103の接続方式は有線及び無線のいずれでもよい。
【0017】
バージョン管理システム100は、マニフェスト及びそのバージョンを管理する。バージョン管理システム100は、管理部110を有し、また、マニフェスト変更履歴DB111を保持する。管理部110はマニフェストの管理を行う。例えば、管理部110は、ユーザ端末102からマニフェストを受け付け、マニフェストにバージョンに対応する識別情報(変更ID)を付与して、マニフェスト変更履歴DB111に格納する。また、管理部110は、受け付けたマニフェストと登録済みのマニフェストとの変更内容を確認し、変更がある場合には構成変更情報を基盤101に送信する。
【0018】
基盤101は、サービスを実現するためのリソースを提供するシステムである。基盤101はオンプレミス型基盤及びクラウド型基盤のいずれでもよい。本実施例では、ボリュームを提供するストレージサービスを実現するためのリソースを提供する基盤101を例に説明する。基盤101は、リソースを提供するストレージシステム120を含む。ストレージシステム120は二つ以上でもよい。また、基盤101は、操作履歴管理システム121及び構成管理システム122を含む。
【0019】
操作履歴管理システム121は、基盤101に対する操作の操作履歴を管理する。操作履歴管理システム121は操作履歴DB130を保持する。
【0020】
構成管理システム122は、ストレージサービスの構成の変更及び管理を行う。構成管理システム122は、機能部(モジュール)として、構成変更情報取得部140、変更操作実行部141、オブジェクト状態管理部142、構成管理部143、操作履歴抽出部144、及び構成図生成部145を有する。
【0021】
構成管理部143は、ストレージサービスの構成を管理する。構成管理部143は構成情報160を管理する。
図2に示すように、ストレージサービスは複数の構成要素(オブジェクト)から構成される。「Vol」は、ユーザに提供されるボリュームに対応するオブジェクトであり、「Ten」はボリュームを生成するストレージプールに対応するオブジェクトであり、「SC」は複数のドライブから構成されるクラスタに対応するオブジェクトである。
図2に示すようにオブジェクトは階層構造であり、階層間のオブジェクトには依存関係がある。本実施例では、オブジェクトごとに
図3に示すようなマニフェストが定義されるものとする。
【0022】
オブジェクト状態管理部142は、ストレージサービスを構成するオブジェクトの操作状態を管理する。オブジェクト状態管理部142はオブジェクト状態情報150を管理する。オブジェクト状態情報150は、ストレージサービスの構築時に生成され、マニフェストの更新に伴って更新される。
【0023】
構成変更情報取得部140は、バージョン管理システム100から構成変更情報を取得する。変更操作実行部141は、IaCツールに対応する機能部であり、マニフェストに基づいてコマンドを生成し、基盤101に出力する。
【0024】
操作履歴抽出部144は、操作履歴を抽出する。構成図生成部145は、ある時点のストレージサービスのオブジェクト構成の図(構成図)を生成する。
【0025】
なお、少なくとも一つの基盤101の操作履歴管理システム121が全ての基盤101の操作履歴を管理してもよい。また、少なくとも一つの基盤101の構成管理システム122が全ての基盤101の構成を管理してもよい。
【0026】
なお、操作履歴管理システム121及び構成管理システム122は、基盤101に含まれていなくてもよい。
【0027】
なお、構成管理システム122の機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。
【0028】
なお、構成管理システム122は、変更操作実行部141を含んでいなくてもよい。この場合、基盤101又は他のシステムに変更操作実行部141が含まれる。
【0029】
図4は、実施例1のオブジェクト状態情報150のデータ構造の一例を示す図である。
【0030】
オブジェクト状態情報150は、オブジェクト名401及び状態402を含むエントリを格納する。一つのオブジェクトに対して一つのエントリが存在する。状態402には、オブジェクト名401に対応するオブジェクトに対して変更操作を実行できるか否かを示す情報が格納される。オブジェクトに対して変更操作を実行できる場合「操作可」が格納され、オブジェクトに対して変更操作を実行できない場合「操作不可」が格納される。
【0031】
まず、マニフェストの更新に伴う変更操作の操作履歴の取得方法について説明する。
図5は、実施例1のシステムにおけるストレージサービスのマニフェスト更新に伴う処理の流れを説明するシーケンス図である。
図6は、実施例1の基盤101に送信されたコマンドの一例を示す図である。
図7は、実施例1の操作履歴DB130のデータ構造の一例を示す図である。
【0032】
バージョン管理システム100は、更新されたマニフェストを受け付けた場合(ステップS101)、オブジェクト状態管理部142にマニフェストのバージョンに対応する変更IDを含む構成変更情報を送信する(ステップS102)。構成変更情報にはオブジェクト名も含まれる。
【0033】
オブジェクト状態管理部142は、更新されたマニフェストに対応するオブジェクトの変更操作の実行を制御するための排他制御処理を実行する(ステップS103)。変更操作が実行可能な場合、オブジェクト状態管理部142は、構成変更情報取得部140に変更IDとともに構成変更情報を送信する(ステップS104)。
【0034】
構成変更情報取得部140は、バージョン管理システム100から更新されたマニフェストを取得し(ステップS105)、変更操作実行部141に変更ID及びマニフェストとともに実行指示を送信する(ステップS106)。
【0035】
変更操作実行部141は、マニフェストに基づいてコマンドを生成し、基盤101に変更IDとともにコマンドを送信する(ステップS107)。また、変更操作実行部141は、オブジェクト状態管理部142に終了通知を送信する(ステップS108)。
【0036】
基盤101は、コマンドに従って変更操作を行った後、操作履歴管理システム121に変更ID及びコマンドに基づく変更操作の内容を含む操作履歴を送信する(ステップS109)。
【0037】
例えば、
図6に示すようなコマンドが実行された場合、
図7に示すような操作履歴が操作履歴管理システム121の操作履歴DB130に格納される。
【0038】
操作履歴DB130は、時刻701、操作内容702、変更ID703、操作対象704、及びオブジェクト名705を含むエントリを格納する。なお、エントリに含まれるフィールドは一例であってこれに限定されない。
【0039】
図8は、実施例1のオブジェクト状態管理部142が実行する排他制御処理の一例を説明するフローチャートである。
図9A、
図9B、
図9C、
図9D、及び
図9Eは、実施例1の排他制御処理におけるオブジェクト状態情報150の変化の一例を示す図である。
【0040】
オブジェクト状態管理部142は、構成変更情報を受信した場合(ステップS201)、オブジェクト状態情報150を参照して、操作対象のオブジェクトのエントリが存在するか否かを判定する(ステップS202)。
【0041】
オブジェクト状態情報150に操作対象のオブジェクトのエントリが存在する場合、オブジェクト状態管理部142は、当該オブジェクトの状態402が「操作可」であるか否かを判定する(ステップS203)。
【0042】
オブジェクトの状態402が「操作可」ではない場合、オブジェクト状態管理部142は、一定時間経過した後、ステップS203に戻る。オブジェクトの状態402が「操作可」である場合、オブジェクト状態管理部142はステップS206に進む。
【0043】
ステップS202において、オブジェクト状態情報150に操作対象のオブジェクトのエントリが存在しないと判定された場合、オブジェクト状態管理部142は、当該オブジェクトの親オブジェクトの状態402を「操作不可」に更新し(ステップS204)、オブジェクト状態情報150に当該オブジェクトのエントリを追加する(ステップS205)。その後、オブジェクト状態管理部142はステップS206に進む。
【0044】
ステップS205では、オブジェクト状態管理部142は、オブジェクト状態情報150にエントリを追加し、追加されたエントリのオブジェクト名401に操作対象のオブジェクトの名称を設定する。
【0045】
ステップS206では、オブジェクト状態管理部142は、操作対象のオブジェクトの状態402を「操作不可」に更新する(ステップS206)。
【0046】
オブジェクト状態管理部142は、構成変更情報取得部140に構成変更情報を送信する(ステップS207)。ステップS207の処理はステップS104の処理に対応する。その後、オブジェクト状態管理部142は終了通知を監視する。
【0047】
オブジェクト状態管理部142は終了通知を受信したか否かを判定する(ステップS208)。
【0048】
終了通知を受信していない場合、オブジェクト状態管理部142は、一定時間経過した後、ステップS208に戻る。
【0049】
終了通知を受信した場合、オブジェクト状態管理部142は、操作対象のオブジェクトの状態402を「操作可」に更新する(ステップS209)。なお、親オブジェクトの状態402も更新されている場合、オブジェクト状態管理部142は、親オブジェクトの状態402も「操作可」に更新する。
【0050】
なお、排他制御が必要な階層は一つとしたが、操作内容に応じた排他制御を行う階層の数を変えてもよい。
【0051】
ここで、具体例を用いて排他制御処理について説明する。ここでは、オブジェクト状態情報150は
図9Aのような状態であるものとする。
【0052】
最初にストレージプール「Ten A」からボリューム「Vol D」を追加するためのマニフェスト(第1マニフェスト)が追加された場合、オブジェクト状態管理部142は、親オブジェクト「Ten A」の状態402を「操作不可」に更新する(ステップS204)。また、オブジェクト状態管理部142は、オブジェクト「Vol D」のエントリを追加し(ステップS205)、状態402に「操作不可」を設定する(ステップS206)。
【0053】
以上の処理の結果、オブジェクト状態情報150は
図9Bのような状態となる。
【0054】
第1マニフェストの終了通知を受信する前に、ストレージプール「Tne A」を拡張するためのマニフェスト(第2マニフェスト)と、ストレージプール「Tne B」を拡張するためのマニフェスト(第3マニフェスト)とが追加されたものとする。第2マニフェストについては、オブジェクト「Ten A」の状態402は「操作不可」であるため、オブジェクト状態管理部142は、オブジェクト「Ten A」の状態402が「操作可」になるまで待つ(ステップS203)。第3マニフェストについては、オブジェクト「Ten B」の状態402は「操作可」であるため、オブジェクト状態管理部142は、当該状態402を「操作不可」に更新する(ステップS206)。
【0055】
以上の処理の結果、オブジェクト状態情報150は
図9Cのような状態となる。
【0056】
このように、排他制御が必要ないオブジェクトの変更操作は並列で実行される。一方、排他制御が必要なオブジェクトの変更操作は並列で実行されないように制御される。
【0057】
第1マニフェストに対して終了通知を受信した場合、オブジェクト状態管理部142は、オブジェクト「Ten A」、「Vol D」の状態402を「操作可」に更新する(ステップS209)。
【0058】
以上の処理の結果、オブジェクト状態情報150は
図9Dのような状態となる。
【0059】
第2マニフェストについて、オブジェクト「Ten A」の状態402が「操作可」となったため、オブジェクト状態管理部142は、オブジェクト「Ten A」の状態402を「操作不可」に更新する(ステップS206)。また、第3マニフェストに対して終了通知を受信した場合、オブジェクト状態管理部142は、オブジェクト「Ten B」の状態402を「操作可」に更新する(ステップS209)。
【0060】
以上の処理の結果、オブジェクト状態情報150は
図9Eのような状態となる。
【0061】
図10は、実施例1のシステムにおけるストレージサービスのマニフェスト更新に伴う処理の流れを説明するシーケンス図である。
図11は、実施例1の構成情報160のデータ構造の一例を示す図である。
【0062】
図5に示す処理と並行して
図10に示す処理が実行される。
【0063】
バージョン管理システム100は、マニフェストが更新された場合(ステップS301)、構成管理部143に構成変更情報を送信する(ステップS302)。
【0064】
構成管理部143は、バージョン管理システム100から更新されたマニフェストと、関連するオブジェクトのマニフェストを取得する(ステップS303)。なお、関連するオブジェクトのマニフェストは、マニフェストに含まれる親オブジェクトの名称に基づいて探索を行うことによって取得することができる。
【0065】
構成管理部143は、取得したマニフェストに基づいて、構成情報160を生成する(ステップS304)。
【0066】
構成情報160は、オブジェクト名1101及び親オブジェクト名1102を含むエントリを格納する。一つのオブジェクトに対して一つのエントリが存在する。なお、エントリに含まれるフィールドは一例であってこれに限定されない。
【0067】
次に、ストレージサービスの構成の変更操作に関連する操作履歴の取得方法について説明する。
図12は、実施例1のシステムにおける操作履歴の取得処理の流れを説明するシーケンス図である。
【0068】
ユーザは、ユーザ端末102を用いて構成図生成部145に抽出指示を送信する(ステップS401)。抽出指示には、オブジェクト名と、操作履歴の取得範囲を指定する情報とが含まれる。操作履歴の取得範囲を指定する方法としては、変更IDの組みを指定する方法と、時間範囲を指定する方法とが考えられる。
【0069】
構成図生成部145は、受信した抽出指示を操作履歴抽出部144に転送する(ステップS402)。
【0070】
操作履歴抽出部144は、抽出指示を受信した場合、操作履歴抽出処理を実行する(ステップS403)。操作履歴抽出処理では、操作履歴抽出部144は、必要に応じてバージョン管理システム100にアクセスし、変更IDを取得する(ステップS404)。
【0071】
操作履歴抽出部144は、構成図生成部145に抽出結果を格納する抽出情報1500(
図15を参照)を送信する(ステップS405)。
【0072】
構成図生成部145は、抽出結果を表示するために表示情報生成処理を実行する(ステップS406)。構成図生成部145は、ユーザ端末102に表示情報を送信する(ステップS407)。
【0073】
図13及び
図14は、実施例1の操作履歴抽出部144が実行する操作履歴抽出処理の一例を説明するフローチャートである。
図15は、実施例1の操作履歴抽出部144が生成する抽出情報1500のデータ構造の一例を示す図である。
【0074】
図13は変更IDの組みが指定された場合の操作履歴抽出処理を示し、
図14は時間範囲が指定された場合の操作履歴抽出処理を示す。
【0075】
まず、抽出情報1500について説明する。抽出情報1500は、抽出された操作履歴を格納する。抽出情報1500は、時刻1501、操作内容1502、変更ID1503、及び操作属性1504を含む。時刻1501、操作内容1502、及び変更ID1503は、時刻701、操作内容702、及び変更ID703と同一のフィールドである。操作属性1504は、操作履歴がマニフェストに基づいて生成されたコマンドによって実行された変更操作の操作履歴であるか否かを示す情報を格納するフィールドである。操作履歴がマニフェストに基づいて生成されたコマンドによって実行された変更操作の操作履歴である場合、「正常」が格納され、操作履歴がマニフェストに基づいて生成されたコマンドによって実行された変更操作の操作履歴ではない場合、「疑惑」が格納される。
【0076】
【0077】
操作履歴抽出部144は、変更IDの組みに基づいて、バージョン管理システム100にアクセスし、時間範囲を設定する(ステップS501)。
【0078】
具体的には、操作履歴抽出部144は、変更IDの組みの各々についてマニフェストの登録時刻を取得し、二つの登録時刻によって定まる時間範囲を設定する。
【0079】
操作履歴抽出部144は、時間範囲に基づいて、バージョン管理システム100にアクセスし、処理対象の変更IDを特定する(ステップS502)。
【0080】
具体的には、操作履歴抽出部144は、対象オブジェクトのマニフェストの登録時刻が、決定した時間範囲に含まれるマニフェストを特定し、当該マニフェストの変更IDを取得する。
【0081】
操作履歴抽出部144は、操作履歴DB130から特定した変更IDを含む操作履歴を抽出する(ステップS503)。操作履歴抽出部144は、抽出した操作履歴を抽出情報1500に登録する。このとき、操作属性1504には「正常」が設定される。
【0082】
操作履歴抽出部144は、時間範囲内に実行された対象オブジェクトに対する操作であって、変更IDを含まない、又は、特定された変更ID以外の変更IDを含む操作履歴を抽出する(ステップS504)。操作履歴抽出部144は、抽出した操作履歴を抽出情報1500に登録する。このとき、操作属性1504には「疑惑」が設定される。
【0083】
操作履歴抽出部144は、抽出情報1500の操作履歴を時刻順にソートし、出力する(ステップS505)。
【0084】
なお、ステップS504は実行しなくてもよい。この場合、特定された変更IDを含む操作履歴のみが抽出される。
【0085】
次に、
図14の操作履歴抽出処理について説明する。
図14の操作履歴抽出処理は、ステップS501を含まない。ステップS502では、操作履歴抽出部144は、指定された時間範囲に基づいて処理対象の変更IDを特定する。その他の処理は
図13で説明した処理と同一である。
【0086】
図16は、実施例1の構成図生成部145が実行する表示情報生成処理の一例を説明するフローチャートである。
図17は、実施例1のユーザ端末102に表示される画面の一例を示す図である。
【0087】
構成図生成部145は、抽出情報1500を参照し、最新の変更IDを特定する(ステップS601)。具体的には、構成図生成部145は、変更ID1503に変更IDが格納され、かつ、操作属性1504が「正常」のエントリを検索し、検索されたエントリの時刻1501に基づいて最新の変更IDを特定する。
【0088】
構成図生成部145は、最新の変更IDに対応する構成情報160を取得する(ステップS602)。
【0089】
構成図生成部145は、抽出情報1500及び構成情報160を用いて表示情報を生成する(ステップS603)。例えば、構成図生成部145は、構成情報160に基づいて、ストレージサービスのオブジェクト構成を可視化した構成図を生成し、構成図に抽出情報1500を重畳して表示するための表示情報を生成する。
【0090】
ユーザ端末102には、表示情報に基づいて、
図17に示すような画面1700が表示される。画面1700は、表示領域1701、1702を含む。表示領域1701は、抽出指示に関する情報を表示する領域である。表示領域1702は、オブジェクトの構成及び操作履歴の抽出結果を表示する領域である。
【0091】
本発明によれば、マニフェストの更新に伴う変更操作の操作履歴を、他の操作履歴と区別できるように管理できる。変更IDに基づいて、変更操作の操作履歴を抽出できるため、変更操作実行部141による変更操作を詳細に把握できる。また、変更操作の実行時の他の操作の操作履歴も抽出することによって、変更操作の検証、不正な操作の確認等が可能となる。
【0092】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0093】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0094】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Python、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0095】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0096】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【0097】
100 バージョン管理システム
101 基盤
102 ユーザ端末
103 ネットワーク
110 管理部
111 マニフェスト変更履歴DB
120 ストレージシステム
121 操作履歴管理システム
122 構成管理システム
130 操作履歴DB
140 構成変更情報取得部
141 変更操作実行部
142 オブジェクト状態管理部
143 構成管理部
144 操作履歴抽出部
145 構成図生成部
150 オブジェクト状態情報
160 構成情報
1500 抽出情報
1700 画面
【要約】
【課題】IaCを用いた基盤の操作履歴を管理する。
【解決手段】計算機システムは、サービスを実現するためのリソースを提供する基盤と、サービスを構築するための設定を記したマニフェストファイルのバージョンを管理するバージョン管理システムと、マニフェストファイルに基づいて基盤に対するコマンドを生成し、基盤に出力する基盤管理システムと、接続し、バージョン管理システムから、マニフェストファイルの更新に伴って、当該マニフェストファイルのバージョンに対応する変更IDを含む通知を受信し、コマンド及び変更IDを関連付けた変更操作の操作履歴が保存されるように、変更IDを含む変更操作の実行指示を基盤管理システムに送信する。
【選択図】
図5