JP2016103113A - 計算機システム及び計算機リソースの割当て管理方法 - Google Patents

計算機システム及び計算機リソースの割当て管理方法 Download PDF

Info

Publication number
JP2016103113A
JP2016103113A JP2014240529A JP2014240529A JP2016103113A JP 2016103113 A JP2016103113 A JP 2016103113A JP 2014240529 A JP2014240529 A JP 2014240529A JP 2014240529 A JP2014240529 A JP 2014240529A JP 2016103113 A JP2016103113 A JP 2016103113A
Authority
JP
Japan
Prior art keywords
computer
resource
business
server
processing
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
JP2014240529A
Other languages
English (en)
Other versions
JP6347730B2 (ja
JP2016103113A5 (ja
Inventor
佑樹 長沼
Yuki Naganuma
佑樹 長沼
法子 中嶋
Noriko Nakajima
法子 中嶋
聡一 高重
Soichi Takashige
聡一 高重
知弘 森村
Tomohiro Morimura
知弘 森村
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 JP2014240529A priority Critical patent/JP6347730B2/ja
Priority to US14/636,212 priority patent/US20160156568A1/en
Publication of JP2016103113A publication Critical patent/JP2016103113A/ja
Publication of JP2016103113A5 publication Critical patent/JP2016103113A5/ja
Application granted granted Critical
Publication of JP6347730B2 publication Critical patent/JP6347730B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1031Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • 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/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Hardware Redundancy (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】Webサーバのスケールアウトに追従したDBサーバのスケールアップによって、テナントの性能を向上させる。【解決手段】複数の計算機を備える計算機システムであって、複数の計算機は、第1の計算機、業務システムに計算機リソースを提供する複数の第2の計算機を含み、業務システムは、スケールアウトによって処理性能を変更できる第1の業務計算機、及びスケールアップによって処理性能を変更できる第2の業務計算機を含み、第1の計算機はリソース最適化部を有し、リソース最適化部は、実行系の第2の業務計算機の負荷の増大の予兆を検出した場合、実行系の第2の業務計算機及び待機系の第2の業務計算機に処理負荷が低いリソース変更方法を適用し、実行系の第2の業務計算機の負荷を示す値が所定の閾値以上になった場合、実行系の第2の業務計算機及び待機系の第2の業務計算機に処理負荷が高いリソース変更方法を適用する。【選択図】図15

Description

本発明はクラウドサービス、特にクラウドサービス上で提供されるITサービス又はITシステムの性能保証に関する。
近年、クラウドサービスと呼ばれる、インターネット等のネットワークを介して、計算機リソース又は計算機リソースを用いて動作するソフトウェアによるサービスを事業者が提供し、利用形態に応じて利用者に課金するサービスが普及している。
クラウドサービスをサービス提供形態の観点での分類した場合、IaaS(Infrastructure as a Service)、SaaS(Software as a Service)、及びPaSS(Platform as a Service)等がある。
IaaSは、計算機リソースそのものを提供するクラウドサービスである。SaaSは、主にWebブラウザからアクセス可能な方法でメール及び顧客管理等の機能をソフトウェアとして提供するクラウドサービスである。PaSSは、IaaS及びSaaSの中間に位置するものであり、OS(Operating System)及びデータベース(以下、DBと記載する)等のミドルウェアを含めたソフトウェア開発の基盤を提供するクラウドサービスである。
クラウドサービスでは多くの場合、IaaSで提供される計算機リソース、又はPaSS若しくはSaaSの基盤となる計算機リソースは、サーバ仮想化技術とよばれる仮想化技術が一般的に利用されている。サーバ仮想化技術では、物理サーバのCPU(Central Processing Unit)及びメモリ等の計算機リソースを論理的に分割し、仮想サーバ(VM)という単位で利用する。
仮想化された計算機リソースを活用するために、VMを負荷状況等に応じて自動的又は手動でスケーリングを行う機能を提供するクラウドサービスが知られている。例えば、CPU等の負荷が監視され、負荷が閾値を超えた場合、処理を分散するために処理を実行するVMが追加されるスケールアウト技術を提供するクラウドサービスが知られている。これによって、計算機リソースの柔軟な利用とVMの性能向上が可能となる。
さらに、近年では、1つのクラウドサービスで処理が完結しない場合に、他の複数のクラウドサービスをつなぎ合わせ、一つの大きなサービスを構築する、といった構成も一般的となりつつある。
特開2012−99062号公報
特許文献1には、「中間サービスを実行するクラウドは、出力レート予測部によって、前段サービスの出力予測とクラウド管理サーバ401からの情報収集応答404等を受け、出力レートを予測し、後段サービスに予測を出力する。スケーリング制御部は、前段サービスの出力予測407と情報収集応答405を受け、中間サービスに割り当てる資源を決定し、スケーリング要求をクラウド管理サーバと出力レート予測部に出力する。」ことが記載されている。
特許文献1によれば、連結したサービス1とサービス2において、フロントエンド側となるサービス1のスケール又はリクエストの増加を検出し、バックエンド側となるサービス2をスケールアウト(VMの追加)することができる。
一方で、特許文献1で開示される技術は、スケールアウトできる、すなわち、VMを追加することによって処理性能の向上が可能な構成要素の連携を対象とする。そのため、スケールアウトできない構成要素を含むシステムには適用できない。
例えば、1つ以上のWebサーバと、1つ以上のアプリケーションサーバと、データベース処理を行う1つのDBサーバからなるWeb三階層システムにおいて、Webサーバには特許文献1の技術を用いることによって自動スケーリングが可能である。しかし、DBサーバは、データの一貫性等の理由から複数に分割することはできない。そのため、DBサーバの追加処理等によるスケールアウトによって、性能を向上させることができない。したがって、前述のような制約があるWeb三階層システムでは、システム全体として自動スケーリングが実現できず、性能を向上できないという課題がある。
DBサーバの性能を向上させる別の方法として、DBサーバに対するCPU及びメモリ等の計算機リソースを増強することによって、性能向上を実現することはできる。しかし、この方法では、計算機リソースの変更に伴うDBサーバの再起動が発生してしまう。そのため、計算機リソースの変更からDBサーバの再起動までの時間が長時間となるため、比較的短時間で行われるWebサーバのスケールアウトに追従できない。
その結果、例えば、通信販売のサービスを実行するWeb三階層システムでは、当該サービスの利用者の急増に対して柔軟な対応ができず、システムダウン又は負荷集中に伴うリクエスト拒否(Sorryページの表示)が発生することによって、機会損失が発生する。
また、DBサーバの性能を向上させる別の方法として、予め、潤沢な計算機リソースを用いてWeb三階層システム等の業務システムを構築することが考えられる。しかし、通信販売等を行う事業者のコストが増大するという課題がある。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の計算機を備える計算機システムであって、前記複数の計算機は、前記計算機システムを管理する少なくとも一つの第1の計算機、ユーザの業務に使用する業務システムを構築するための計算機リソースを提供する複数の第2の計算機を含み、前記第1の計算機は、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のインタフェースを有し、前記複数の第2の計算機の各々は、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続される第2のインタフェース、及び記憶装置を有し、前記業務システムは、スケールアウト処理を実行することによって処理性能を変更できる少なくとも一つの第1の業務計算機、及びスケールアップ処理を実行することによって処理性能を変更できる複数の第2の業務計算機を含み、前記複数の第2の業務計算機は、実行系の第2の業務計算機及び待機系の第2の業務計算機を含むクラスタを構成し、前記第1の計算機は、第2の業務計算機に対する前記計算機リソースの割り当ての変更を制御するための複数のリソース変更方法を管理し、前記複数のリソース変更方法に基づいて前記第2の業務計算機に対する前記計算機リソースの割当てを変更するリソース最適化部を有し、前記リソース最適化部は、前記業務システムの負荷を監視し、前記実行系の第2の業務計算機の負荷の増大の予兆を検出した場合、前記実行系の第2の業務計算機及び前記待機系の第2の業務計算機に処理負荷が低いリソース変更方法を適用する第1の処理を実行し、前記実行系の第2の業務計算機の負荷を示す値が所定の閾値以上になった場合、前記実行系の第2の業務計算機及び前記待機系の第2の業務計算機に処理負荷が高いリソース変更方法を適用する第2の処理を実行する。
本発明によれば、スケールアウト処理では対応できない構成を含む業務システムであっても、業務システムにおける業務に与える影響を最小限にし、かつ、コストを抑えつつ、業務システムの自動スケーリングが可能となる。
上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
実施例1の概要を示す説明図である。 実施例1のクラウドサービスの一例を示す説明図である。 実施例1のクラウドサービスを提供する計算機システムの構成例を示す説明図である。 実施例1の管理サーバのハードウェア構成の一例を示す説明図である。 実施例1のストレージ装置の構成の一例を示す説明図である。 実施例1の物理サーバ管理情報の一例を示す説明図である。 実施例1のストレージ装置管理情報の一例を示す説明図である。 実施例1の論理物理構成管理情報の一例を示す説明図である。 実施例1のテナント管理情報の一例を示す説明図である。 実施例1の性能管理情報の一例を示す説明図である。 実施例1のシステムテンプレート管理情報の一例を示す説明図である。 実施例1の顧客管理情報の一例を示す説明図である。 実施例1のスケール管理情報の一例を示す説明図である。 実施例1のリソース変更方法管理情報の一例を示す説明図である。 実施例1のリソース最適化プログラムが実行する処理の概要を説明するフローチャートである。 実施例1のリソース最適化プログラムがステップS3200において実行するDBサーバのスケールアップ処理の詳細を説明するフローチャートである。 実施例1のリソース最適化プログラムがステップS3200において実行するDBサーバのスケールアップ処理の詳細を説明するフローチャートである。 実施例1のリソース最適化プログラムが実行するVMの再配置処理を説明するフローチャートである。 実施例1のリソース最適化プログラムが実行するテイクオーバ処理を含むDBサーバのスケールアップ処理の詳細を説明するフローチャートである。 実施例1のリソース最適化プログラムが実行するスケールアップされたDBサーバに対するスケールダウン処理の詳細を説明するフローチャートである。 実施例1のサービス申込時に用いられる画面の一例を示す説明図である。 実施例1のテナントの状態を確認するために表示される画面の一例を示す説明図である。
以下、図面を用いて実施例について説明する。
図1は、実施例1の概要を示す説明図である。
実施例1では、2つのWebサーバ1420、及び2つのDBサーバ1430から構成されるテナント(業務システム)1400を考える。初期のテナント1400は、状態4100に示す状態であるものとする。
テナント1400は、図2に示すようなクラウドサービス1200を提供する計算機システムが各利用者1100に提供する計算機リソース空間である。したがって、Webサーバ1420及びDBサーバ1430は、仮想化技術を用いて実現される。
状態4100のテナント1400では、2つのDBサーバ1430が、HA(High Availability、サーバ冗長化構成)を組む。ここでは、HA構成の2つのDBサーバ1430のうち、DBサーバ1(1430)が正側(現用系)のDBサーバとして稼働し、DBサーバ2(1430)が副側(待機系)のDBサーバとして稼働する。
テナント1400の利用時にDBサーバ1430の負荷増大を示す予兆が検出された場合、管理サーバ100(図3参照)は、後述する処理を実行して、テナント1400の状態を状態4100から状態4200へ遷移させる。例えば、管理サーバ100は、フロントエンド側の負荷の増大に伴うWebサーバ1420のスケールアウトが行われた場合、テナント1400の状態を状態4100から状態4200へ遷移させる。
状態4200では、Webサーバ3(1420)を追加することによって、Webサーバ1420のスケールアウトが行われ、また、DBサーバ1430についてもスケールアップが行われる。管理サーバ100は、DBサーバ1430のスケールアップの方法として、正側のDBサーバ1(1430)にはDBサーバの停止を伴わないスケールアップの方法(無停止の変更方法)を適用し、副側のDBサーバ2(1430)にはDBサーバの停止を伴うスケールアップの方法(停止の変更方法)を適用する。正側のDBサーバ1(1430)に前述したようなスケールアップの方法を適用することによってDBサーバ1(1430)が稼働したまま性能を向上させることができる。
このとき、管理サーバ100は、正側のDBサーバ1(1430)の負荷の増大に対応するため、正側のDBサーバ1(1430)より性能が高くなるように副側のDBサーバ2(1430)のスケールアップを行う。
状態4200へ遷移した後にDBサーバ1(1430)の負荷が増大した場合、管理サーバ100は、後述する処理を実行して、テナント1400の状態を状態4200から状態4300に遷移させる。例えば、管理サーバ100は、スケールアップしたDBサーバ1(1430)に割り当てられた計算機リソースの使用率が所定の閾値以上になった場合、又はDBサーバ1(1430)に性能障害が発生した場合に、テナント1400の状態を状態4200から状態4300に遷移させる。
状態4300では、管理サーバ100は、テイクオーバ処理等を実行することによって、DBサーバ1(1430)から、状態4200に遷移する場合に最適なスケールアップが行われたDBサーバ2(1430)へ切り替える。これによって、DBサーバ1(1430)より性能が高いDBサーバ2(1430)が処理を継続できる。
また、状態4300では、管理サーバ100は、DBサーバ1(1430)からDBサーバ2(1430)へ切り替えた後、状態4200において変更されたDBサーバ1(1430)の計算機リソースの設定を元に戻すために、スケールダウンを行う。すなわち、DBサーバ1(1430)に追加等された計算機リソースの設定が初期化される。DBサーバ1(1430)に対する計算機リソースの割当を元に戻すことによって、クラウドサービス1200を提供する計算機システムの計算機リソースを有効に活用できる。
状態4200又は状態4300の状態において、DBサーバ1430の負荷が減少した場合、管理サーバ100は、後述する処理を実行して、テナント1400の状態を状態4200又は状態4300から状態4400へ遷移させる。
例えば、管理サーバ100は、フロントエンド側の負荷の減少に伴うWebサーバ1420のスケールインが行われた場合、テナント1400の状態を状態4200又は状態4300から状態4400へ遷移させる。図1では、Webサーバ3(1420)をテナント1400から削除するスケールインが行われる。このとき、管理サーバ100は、DBサーバ1(1430)及びDBサーバ2(1430)のそれぞれに対して、スケールアップにおいて変更された計算機リソースの設定を元に戻すために、スケールダウンを行う。
状態4200から状態4400に遷移する場合、管理サーバ100は、DBサーバ1(1430)及びDBサーバ2(1430)のそれぞれの計算機リソースの設定を元の状態に戻す。また、状態4300から状態4400に遷移する場合、管理サーバ100は、DBサーバ1(1430)の計算機リソースの設定は初期化されているため、DBサーバ2(1430)の計算機リソースの設定を元の状態に戻す。
実施例1では、管理サーバ100が前述したような一連の処理を実行することによって、状態4400から状態4100に遷移することとなる。すなわち、実施例1では、テナント1400の負荷に応じて、テナント1400の状態が状態4100、4200、4300、4400の間を循環する。
図2は、実施例1のクラウドサービスの一例を示す説明図である。
利用者1100の視点で、クラウドサービス1200の利用、及びクラウドサービス1200内での処理を説明する。クラウドサービス1200を提供する計算機システムの具体的な挙動については後述する。
クラウドサービス1200は、ポータル2000及び複数のテナント1400を含む。
ポータル2000は、利用者1100がクラウドサービス1200のサービスの申込み及びテナント1400の管理を行うための管理インタフェースである。利用者1100は、ポータル2000を用いて利用するサービスの申込、及びテナント1400の管理等を行う。
実施例1では、利用者1100は、ポータル2000を介してテナント1400の管理等を行うものとするが、他の方法を用いてサービスの申込み及びテナント1400の管理を行ってもよい。例えば、メール又は紙媒体を用いた方式を用いることが考えられる。この場合、クラウドサービス1200は、ポータル2000を含まなくてもよい。
クラウドサービス1200では、利用者1100からサービスの申込を受けつけた場合、利用者1100専用の計算機リソース空間として割り当てられるテナント1400に、サービスに対応した計算機リソースが用意される。なお、申し込んだサービスに応じて、一人の利用者1100に1つ又は複数のテナント1400が提供される。
IaaS又はPaSSのクラウドサービス1200において、利用者1100がWeb三階層システムを申し込んだ場合、ロードバランサ(LB)1410、Web機能を有するWebサーバ1420、DB機能を有するDBサーバ1430、及び記憶領域を提供するストレージ装置1440を含むテナント1400が構築される。SaaSのクラウドサービス1200においてメールサービスが申し込まれた場合、Web三階層システムを実現するテナント1400に含まれるソフトウェアによってメールサービスが提供される。
クラウドサービス1200では、テナント1400の構築が完了した後、ポータル2000を介して利用者1100にその旨が通知される。その後、利用者1100は、ポータル2000又はその他の方法を用いて、テナント1400を管理する。
テナント1400は、利用者1100に対する課金の単位でもあり、クラウドサービス1200では、サービスの申込み時に合意した課金体系に基づいて利用金額が周期的に算出され、ポータル2000等を用いて利用者1100に利用金額が請求される。利用者1100は、利用金額の請求を受け取った場合、ポータル2000又はポータル2000を介して指定された精算方法を用いて、利用金額を支払う。
なお課金体系としては、月額固定の利用金額を支払うもの、VMのスペック及び記憶領域の利用量等に応じて算出される従量に基づいた利用金額を支払うものが考えられる。
実施例1のクラウドサービス1200は、マルチテナントに対応しているものとする。マルチテナントでは、複数の利用者の各々に一つ以上のテナント1400が提供される。マルチテナントに対応したクラウドサービス1200では、当該サービスを提供する事業者が、利用者1100が要求するSAL(Service Level Agreement)を満たすように計算機リソースを管理することが重要となる。本発明は、前述した課題の解決を主目的の一つとする。
図3は、実施例1のクラウドサービス1200を提供する計算機システムの構成例を示す説明図である。
クラウドサービス1200を提供する計算機システムは、管理サーバ100、複数の物理サーバ150及びストレージ装置200から構成される。管理サーバ100、複数の物理サーバ150及びストレージ装置200は、ネットワーク300を介して互いに接続される。
ネットワーク300は、例えば、Ethernet(Ethernetは登録商標、以下同じ)等が考えられる。また、ネットワーク300は、物理サーバ150とストレージ装置200との間がSANを介して接続される場合、SAN及びEthernetの両方を含んでいてもよいし、インターネットでもよい。
また、ネットワーク300は、管理サーバ100が物理サーバ150及びストレージ装置200を制御するために通信する管理用のネットワークと、物理サーバ150及びストレージ装置200が互いに通信するための業務用ネットワークとを含んでもよい。
また、ネットワーク300は、各利用者1100にテナント1400を提供し、また、管理用の通信と利用者1100の通信とを分離するために、1つのネットワークを論理的に分割する仮想ネットワーク(Virtual Network、VLANとも呼ばれる)技術に対応したものでもよい。クラウドサービス1200を提供する事業者は、利用者1100がサービスを申込み時等に仮想ネットワークを設定し、論理的に分割されたネットワーク及び当該ネットワークを介して接続されるVM410を用いて、独立した業務システムとしてテナント1400を提供する。
物理サーバ150は、利用者1100のテナント1400に計算機リソースを提供する計算機である。物理サーバ150上では、ハイパバイザ400が稼働する。ハイパバイザ400は、物理サーバ150が有するCPU及びメモリ等の計算機リソースを論理的に分割し、複数のVM410に割り当てる。ハイパバイザ400上では、物理サーバ150の計算機リソースが割り当てられた一つ以上のVM410が動作する。
実施例1では、仮想化技術に対応した物理サーバ150を前提として説明するが、仮想化技術に対応した物理サーバ150でなくてもよい。この場合、後述するリソース変更方法管理情報T800には、物理サーバ150そのものに適用できる変更方法が格納される。
ストレージ装置200は、物理サーバ150上で稼働するVM410が使用する記憶領域としてボリューム210を提供する計算機である。ボリューム210には、ハイパバイザ400を実現するプログラム、ハイパバイザ400が稼働するための情報、VM410の構成情報、VM410上で実行されるOS及びユーザデータ等が格納される。
ボリューム210とVM410との対応関係については、1つのボリューム210に1つのVM410を割り当ててもよいし、1つのボリューム210を複数のVM410に割り当ててもよいし、複数のボリューム210を1つのVM410に割り当ててもよい。
図3では、ストレージ装置200は、DBサーバ1430のHA構成を実現する上で一般的なSAN(Storage Area Network)又はNAS(Network Attached Storage)によって接続された外部ストレージ装置として記載しているがこれに限定されない。例えば、物理サーバ150がストレージ装置200を含んでもよいし、また、物理サーバ150が有するHDD等の記憶装置を用いてもよい。
管理サーバ100は、クラウドサービス1200を提供する計算機システム全体を管理する計算機である。管理サーバ100は、各種制御を行うためのプログラム及び各種情報を保持する。なお、図3では、管理サーバ100は、一つの物理的な計算機として記載しているが、一つ又は複数のVM410を用いて実現してもよい。また、複数の物理サーバ150にプログラム及び情報を分散して配置することによって、管理サーバ100が有する機能を実現してもよい。
ここで、管理サーバ100が保持するプログラム及び情報について説明する。
管理サーバ100は、ポータルプログラム2100、構成/性能管理プログラム2200、構成変更プログラム2300、課金プログラム、顧客管理プログラム2500、及びリソース最適化プログラム3000を保持する。また、管理サーバ100は、物理サーバ管理情報T100、ストレージ管理情報T200、論理物理構成管理情報T300、テナント管理情報T400、性能管理情報T500、顧客管理情報T600、スケール管理情報T700、リソース変更方法管理情報T800、及びシステムテンプレート管理情報T900を保持する。
物理サーバ管理情報T100は、物理サーバ150の構成を管理するための情報である。物理サーバ管理情報T100の詳細は、図6を用いて後述する。ストレージ管理情報T200は、ストレージ装置200によって提供されるボリューム210を管理するための情報である。ストレージ管理情報T200の詳細は、図7を用いて後述する。論理物理構成管理情報T300は、計算機システムに含まれるVM410の構成及びVM410の物理的な配置を管理するための情報である。論理物理構成管理情報T300の詳細は、図8を用いて後述する。
テナント管理情報T400は、計算機システムに構築されたテナント1400の構成を管理するための情報である。テナント管理情報T400の詳細は、図9を用いて後述する。性能管理情報T500は、テナント1400の性能を管理するための情報である。性能管理情報T500の詳細は、図10を用いて後述する。
顧客管理情報T600は、各利用者1100に提供されるテナント1400の契約形態等を管理するための情報である。顧客管理情報T600の詳細は、図12を用いて後述する。スケール管理情報T700は、業務システムを構成するVMの計算機リソースの構成を管理するための情報である。スケール管理情報T700の詳細は、図13を用いて後述する。
リソース変更方法管理情報T800は、計算機リソースの変更方法を管理するための情報である。ここで、計算機リソースの変更方法とは、VM410等に対する計算機リソースの割り当ての変更を制御する方法である。リソース変更方法管理情報T800の詳細は、図14を用いて後述する。システムテンプレート管理情報T900は、業務システムの詳細な構成を管理するための情報である。システムテンプレート管理情報T900の詳細は、図11を用いて後述する。
ポータルプログラム2100は、利用者1100に提供するポータル2000を実現するためのプログラムである。具体的には、ポータルプログラム2100は、利用者1100に対してサービスの申込みに必要な情報、及びその他の情報を提示する画面等を表示する。また、ポータルプログラム2100は、利用者1100から入力された情報を他のプログラムに通知し、処理を依頼する。
構成/性能管理プログラム2200は、物理サーバ150、ハイパバイザ400、VM410、ネットワーク300、ストレージ装置200、及びボリューム210の構成情報及び性能情報を管理するためのプログラムである。構成/性能管理プログラム2200は、物理サーバ150及びストレージ装置200等から各種情報を取得し、管理情報として管理する。具体的には、構成/性能管理プログラム2200は、物理サーバ管理情報T100、ストレージ管理情報T200、論理物理構成管理情報T300、テナント管理情報T400、性能管理情報T500を管理する。
構成変更プログラム2300は、ポータルプログラム2100又はリソース最適化プログラム3000からの指示にしたがって、計算機システムにおける計算機リソースの構成変更処理を実行するプログラムである。構成変更プログラム2300は、処理結果に基づいて、各種情報を更新し、又は、各プログラムに各種情報の更新を指示する。
また、構成変更プログラム2300は、変更処理を実行するための機能を保持する。例えば、構成変更プログラム2300は、VM410のCPU数を変更する旨の指示等を受信した場合、当該プログラム内部に保持される、当該指示を実行するためのコマンド及びサブプログラムを呼び出し、VM410又はハイパバイザ400に対して構成を変更するための処理を実行する。
また、構成変更プログラム2300は、システムテンプレート管理情報T900を管理する。構成変更プログラム2300は、システムテンプレート管理情報T900を用いて、指定された業務システムを実現するテナント1400を構築する。例えば、業務システムとしてWeb三階層システムが指定された場合、構成変更プログラム2300は、システムテンプレート管理情報T900の当該Web三階層システムに対応するレコードを参照し、業務システムを構築するための処理を実行する。なお、システムテンプレート管理情報T900を用いた業務システムの構築処理は例えば特許文献1に記載されたものを用いればよい。
課金プログラム2400は、構成/性能管理プログラム2200からの指示にしたがって、各種管理情報に基づいて各利用者1100の利用金額を算出し、ポータルプログラム2100等を介して利用者に利用金額を請求する。
顧客管理プログラム2500は、利用者1100の契約情報等を管理する。具体的には、顧客管理プログラム2500は、顧客管理情報T600を管理する。例えば、顧客管理プログラム2500は、ポータルプログラム2100等から受け付けた利用者1100の識別子、テナント1400の識別子、及びテナントの契約形態等を対応付けて顧客管理情報T600に格納し、また、他のプログラムから利用者1100の契約情報に関する問合せを受信した場合、顧客管理情報T600を参照して問い合わせに対して回答を行う。
リソース最適化プログラム3000は、構成/性能管理プログラム2200等と連携して、スケールアップ処理等のテナント1400に割り当てる計算機リソースを制御する。リソース最適化プログラム3000が実行する処理の詳細については後述する。また、リソース最適化プログラム3000は、スケール管理情報T700及びリソース変更方法管理情報T800を管理する。
なお、各管理情報は、個別の情報として管理されているが、例えば、共通の記憶領域(データベース)に全ての管理情報を格納し、各プログラムが当該データベースに問い合わせる構成等でもよい。
図4は、実施例1の管理サーバ100のハードウェア構成の一例を示す説明図である。なお、物理サーバ150も管理サーバ100と同一のハードウェア構成であるものとする。
管理サーバ100は、CPU101、メモリ102、HDD103、ネットワークインタフェース104、ディスクインタフェース105、及び入出力インタフェース106を有する。管理サーバ100が有する各構成は、内部バス107で互いに接続される。管理サーバ100が有する各構成は、内部バス107を介して互いに通信する。
CPU101は、メモリ102に格納されるプログラムを実行する。CPU101は、演算処理を実行する複数のコアを有する。CPU101がプログラムを実行することによって、管理サーバ100が有する機能を実現できる。なお、プログラムを主体にして処理を説明する場合、CPU101によってプログラムが実行されていることを表す。
メモリ102は、CPU101によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。また、メモリ102は、プログラムが使用するワークエリアを提供する記憶領域を含む。
管理サーバ100のメモリ102には、図3に示すようなプログラム群及び情報群が格納される。また、物理サーバ150のメモリ102には、ハイパバイザ400を実現するプログラム、及びVM410上で稼働するOSを実現するプログラム等が格納される。
HDD(Hard Disk Drive)103は、各種データ及び各種情報を格納する。なお、管理サーバ100は、HDD103以外にSSD(Solid State Drive)等のその他の記憶媒体を有してもよい。なお、メモリ102に格納されるプログラム及び情報は、HDD103に格納されてもよい。この場合、CPU101がHDD103からプログラム及び情報を読み出し、メモリ102にロードする。
ネットワークインタフェース104は、ネットワーク300等を介して外部装置と接続するためのインタフェースである。ネットワークインタフェース104は、例えば、NICE(Network Interface Card)が考えられる。
ディスクインタフェース105は、HDD103又は外部記憶装置と接続するためのインタフェースである。ディスクインタフェース105は、例えば、HBA(Host Bus Adapter)が考えられる。
入出力インタフェース106は、管理サーバ100に各種データを入力し、また、各種データを出力するためのインタフェースである。入出力インタフェース106は、キーボード、マウス、タッチパネル、及びディスプレイ等を含む。なお、管理サーバ100は、入出力インタフェース106を有しなくてもよい。この場合、例えば、SSH(Secure Shell)等を用いてネットワーク経由で管理サーバ100に対する入出力を行う方法が考えられる。
図5は、実施例1のストレージ装置200の構成の一例を示す説明図である。
ストレージ装置200は、管理インタフェース201、外部インタフェース202、コントローラユニット220、記憶ユニット230、及びディスクインタフェース240を有する。
管理インタフェース201は、管理用ネットワークを介して管理サーバ100と接続するためのインタフェースである。外部インタフェース202は、業務用ネットワークを介してボリューム210等の記憶領域を提供する物理サーバ150と接続するためのインタフェースである。なお、管理用ネットワーク及び業務用ネットワークの区別がない場合、管理インタフェース201及び外部インタフェース202は、一つのインタフェースとしてもよい。
コントローラユニット220は、ストレージ装置200の各種制御を行う。コントローラユニット220は、制御装置221及びメモリ222を含む。制御装置221は、ボリューム210等の記憶領域に対するアクセス、すなわちI/Oを制御する。また、制御装置221は、記憶ユニット230における記憶領域の構成を制御する。メモリ222は、制御領域及びI/Oのキャッシュとして使用される。
記憶ユニット230は、複数のHDD231を搭載する。なお、記憶ユニット230には、HDD以外の記憶媒体が搭載されてもよい。実施例1では、コントローラユニット220が、記憶ユニット230に搭載される複数のHDD231を用いて冗長化された論理的な記憶領域をボリューム210として生成し、物理サーバ150に当該ボリューム210を提供する。なお、コントローラユニット220は、ボリューム210とHDD231との対応付けを管理する。
複数のHDD231を用いた冗長化手法としては、RAID(Redundant Arrays of Inexpensive Disks)及びRAIN(Redundant Arrays of Inexpensive Nodes)等が一般的に用いられる。
ディスクインタフェース240は、コントローラユニット220と記憶ユニット230との間で通信するためのインタフェースである。
実施例1では、ストレージ装置200は専用の装置を用いて実現しているが、一つ又は複数の計算機(例えば、物理サーバ150)を用いて実現してもよい。この場合、制御装置221はCPU101に対応し、メモリ222はメモリ102に対応し、外部インタフェース202はネットワークインタフェース104に対応し、HDD231はHDD103に対応する。
なお、コントローラユニット220は、ボリューム210ごとに、IOPS(Input Output Per Second)等のアクセスを保証し、又は制限する機能を備えてもよい。
なお、ストレージ装置200は、I/Oが高速なSSD、及びI/Oが低速なHDDの二つを搭載し、HDD及びSSDを用いてボリューム210を構成してもよい。この場合、コントローラユニット220は、ボリューム210を構成するHDDの記憶領域及びSSDの記憶領域の比率を変えることによって、I/O性能を動的に変更する機能(Dynamic Tiering機能)を備えてもよい。
図6は、実施例1の物理サーバ管理情報T100の一例を示す説明図である。
物理サーバ管理情報T100は、各物理サーバ150の物理構成を管理するための情報(レコード)を格納する。具体的には、物理サーバ管理情報T100は、サーバID(T110)、物理CPU数(T120)、CPU周波数(T130)、メモリ容量(T140)、及びハイパバイザ/OS(T150)を含む。
サーバID(T110)は、物理サーバ150を一意に識別するための識別子である。物理CPU数(T120)は、物理サーバ150が有するCPU101の数である。CPU周波数(T130)は、物理サーバ150が有するCPU101の周波数である。メモリ容量(T140)は、物理サーバ150が有するメモリ102の総量である。
ハイパバイザ/OS(T150)は、物理サーバ150を制御するソフトウェア、すなわち、ハイパバイザ400又はOSの種別である。
なお、物理サーバ管理情報T100には、ネットワークインタフェース104の種類、通信帯域、及びHDD103の種類又は品番等を含んでもよい。また、物理CPU数(T120)には、物理サーバ150が有するソケット数、一つのソケットあたりのCPUコア数等の細かい粒度の情報が格納されてもよい。
なお、クラウドサービスでは、運用管理コスト上の観点等から、業務用途で使用される物理サーバ150は同一の構成であることが一般的である。したがって、図6に示す物理サーバ管理情報T100は、クラウドサービス1200の一般的な構成に対応した情報が格納される。ただし、各物理サーバ150の構成が異なる、ヘテロな構成であってもよい。
図7は、実施例1のストレージ管理情報T200の一例を示す説明図である。
ストレージ管理情報T200は、ストレージ装置200の記憶領域を管理するための情報(レコード)を格納する。具体的には、ストレージ管理情報T200は、ストレージ装置ID(T210)、ボリュームID(T220)、容量(T230)、及びIOPS(T240)を含む。
ストレージ装置ID(T210)は、ストレージ装置200を一意に識別するための識別子である。ボリュームID(T220)は、ストレージ装置200が提供するボリューム210を一意に識別するための識別子である。容量(T230)は、ボリューム210の容量である。IOPS(T240)は、ボリューム210のIOPSである。
なお、IOPS(T240)は、ストレージ装置200がボリューム210毎にIOPSを保証し、又は制限する機能を有する場合に含まれるカラムである。実施例1では、IOPSの値が指定できる構成を前提として説明する。
なお、ストレージ装置200がDynamic Tiering機能を有する場合、Dynamic Tiering機能の性能を格納するカラムが含んでもよい。前述したIOPS(T240)には、例えば、ボリューム210毎に性能指標として「高」、「中」、「低」といった値が格納されてもよいし、ボリューム210を構成するHDD及びSSDの構成比率を示す値が格納されてもよいし、また、HDD及びSSDの構成比率等から推定されるIOPSの値が格納されてもよい。
なお、ストレージ管理情報T200は、ボリューム210の使用量、及び各ボリューム210に対して設定されたキャッシュの容量等を含んでもよい。
図8は、実施例1の論理物理構成管理情報T300の一例を示す説明図である。
論理物理構成管理情報T300は、VM410の計算機リソース、及びVM410の物理的な配置等を管理するための情報(レコード)を格納する。具体的には、論理物理構成管理情報T300は、VM ID(T310)、仮想リソース(T320)、及び物理リソース(T330)を含む。
VM ID(T310)は、計算機システム上でVM410を一意に識別するための識別子である。仮想リソース(T320)は、VM410に割り当てられる仮想的な計算機リソースに関する情報である。物理リソース(T330)は、VM410の物理的な配置に関する情報である。ここで、仮想リソース(T320)及び物理リソース(T330)の具体的な情報について説明する。
仮想リソース(T320)は、CPU数(T321)、メモリ容量(T322)、IOPS(T323)、CPUシェア(T324)、メモリシェア(T325)、I/Oシェア(T326)を含む。
CPU数(T321)は、VM410に割り当てられた仮想CPUの数である。メモリ容量(T322)は、VM410に割り当てられた仮想メモリの容量である。
IOPS(T323)は、VM410に割り当てられたボリューム210のIOPSの値である。なお、VM410又はハイパバイザ400がストレージ装置200に対するI/Oを保証し、又は制限する機能を有しない場合、論理物理構成管理情報T300にはIOPS(T323)が含まれなくてもよい。
CPUシェア(T324)、メモリシェア(T325)、及びI/Oシェア(T326)は、同一の物理サーバ150上で稼働する複数のVM410間の計算機リソースの共有度合いを示す。ハイパバイザ400が、テナント1400の構築時に管理サーバ100空の指示にしたがって、各カラムの値を設定し、また、テナント1400の運用中に適宜変更する。
サーバ仮想化技術の特徴の1つとして、オーバープロビジョニングという機能がある。オーバープロビジョニングとは、一つの物理サーバ150が有する計算機リソース以上の計算機リソースを、各VM410に割り当てる機能である。すなわち、同一の物理サーバ150上で稼働する複数のVM410の各々に割り当てられるCPU数(T321)の総和が物理サーバ150が有するCPU101の数より多くなるように設定し、又は、複数のVM410の各々に割り当てられるメモリ容量(T322)の総和が、物理サーバ150が有するメモリ容量より多くなるように設定することができる。
例えば、サーバID(T110)が「Serv1」の場合、下式(1)を満たすように各VM410にメモリ容量を割り当てることができる。
Figure 2016103113
オーバープロビジョニング機能を有する物理サーバ150では、複数のVM410が当該物理サーバ150が有する計算機リソースを共有する。したがって、同一の物理サーバ150上で稼働する全てのVM410の各々が割り当てられた仮想CPU及び割り当てられた仮想メモリを最大限に利用する場合、計算機リソースを共有するVM410の計算機リソースの割り当てを決定する指標がCPUシェア(T324)、メモリシェア(T325)、及びI/Oシェア(T326)となる。
実施例1のCPUシェア(T324)、メモリシェア(T325)、及びI/Oシェア(T326)のそれぞれには、「高」、「中」、「低」のいずれかが格納される。例えば、メモリシェア(T325)に「高」が設定される場合、ハイパバイザ400は、計算機リソースを共有する複数のVM410のうち、「高」が設定されたVM410に優先的にメモリを割り当てる。
なお、CPUシェア(T324)及びメモリシェア(T325)には、「占有」が設定されてもよい。この場合、「占有」が設定されたVM410に必ずCPU数(T321)等に設定された計算機リソースを割り当てる。これによって、所定のVM410対する必要な計算機リソースの割り当てを保証する。また、IOPS(T326)は、1つのI/Oにあたりのレスポンスタイムが設定されてもよい。
なお、CPUシェア(T324)、メモリシェア(T325)、及びI/Oシェア(T326)には、共有の度合いを表す数値が設定されてもよい。
なお、仮想リソース(T320)には、前述したカラム以外に、CPU数の予約値及び制限値、並びにメモリ容量の予約値及び制限値を含んでいてもよい。また、CPU数の予約値及び制限値のほか、CPUの周波数に関する予約値及び制限値を含んでもよい。
ここで、予約値とは、常に、VM410への割り当てが保証される計算機リソースの値を表す。また、制限値とは、VM410に割り当てることができる計算機リソースの上限値を表す。
例えば、メモリ容量(T322)が「4GB」、メモリ容量の予約値が「1GB」、メモリ容量の制限値が「2GB」であるVM410を想定する。この場合、VM410が認識する仮想メモリのメモリ容量は「4GB」であり、そのうち「1GB」は常に物理サーバ150のメモリ空間が確保され、かつ、当該VM410が利用できる物理サーバ150のメモリ空間の最大量は「2GB」であることを意味する。
次に、物理リソース(T330)について説明する。物理リソース(T330)は、サーバID(T331)及びボリュームID(T332)を含む。
サーバID(T331)はサーバID(T110)と同一のものである。管理サーバ100は、サーバID(T331)の値に基づいて、VM410が現在稼働する物理サーバ150を把握できる。
ボリュームID(T332)は、ボリュームID(T220)と同一のものである。管理サーバ100は、ボリュームID(T332)に基づいて、VM410の管理データ等が格納されるボリューム210、及び当該ボリューム210を提供するストレージ装置200を把握できる。
実施例1では、ボリューム210の識別子に基づいて一意にボリューム210を識別できるため、物理リソース(T330)には、ボリュームID(T332)のみが含まれる。しかし、ボリューム210の識別子及びストレージ装置200の識別子に基づいて一意にボリューム210を識別することができる場合、物理リソース(T330)は、ボリューム210の識別子の他に、ストレージ装置ID(T210)に相当するカラムを含んでもよい。
実施例1では、VM410が認識する記憶領域(ドライブ)とボリューム210とが1対1に対応付けられるように、VM410に記憶領域が提供される。しかし、VM410が認識するドライブ単位で記憶領域が指定される構成、すなわち、VM410上で実行されるOSが認識する一つのドライブと複数のボリューム210とを対応付ける構成の場合、ボリュームID(T332)には、対応付けられる複数のボリューム210の識別子が格納される。
なお、図8では、複数のVM410のデータが同一のボリューム210に格納されることを示している。
図9は、実施例1のテナント管理情報T400の一例を示す説明図である。
テナント管理情報T400は、利用者1100に提供されるテナント1400、及びテナント1400の構成を管理するための情報(レコード)を格納する。具体的には、テナント管理情報T400は、テナントID(T410)、VM ID(T420)、IPアドレス(T430)、機能(T440)、接続先(T450)、及び状態(T460)を含む。
テナントID(T410)は、テナント1400の識別子である。VM ID(T420)は、テナント1400に含まれるVM410の識別子であり、VM ID(T310)と同一のものである。
IPアドレス(T430)は、VM410のIPアドレスである。IPアドレス(T430)に格納されるIPアドレスは、VM410が外部の装置と通信するために用いられるアドレスである。なお、IPアドレス(T430)には複数のIPアドレスが格納されてもよい。
機能(T440)は、VM410によって提供される機能(サービス)を示す。より具体的には、VM410にインストールされたソフトウェア等によって実現される役割を意味する。VM410の役割は、サービス申込時又はVM410の構築時に設定される。
接続先(T450)は、VM ID(T420)に対応するVM410が通信する他のVM410のIPアドレスである。複数のVM410の各々に役割を分担する業務システムでは各VM410が他のVM410と通信する。そのため、接続先(T450)には、接続先のVM410のIPアドレスが格納される。なお、複数のVM410と接続される場合、接続先(T450)には、複数のIPアドレスが格納される。
状態(T460)は、VM410の状態である。実施例1の状態(T460)には、リソース最適化プログラム3000によって変更された状態を示す値が格納される。具体的には、「スケールアウト」、「スケールイン」、「スケールアップ」、及び「スケールダウン」のいずれかが格納される。リソース最適化プログラム3000が実行する処理の説明において状態(T460)の具体的な扱い方について述べる。
図9に示す、テナントID(T410)が「Tenant1」のテナント1400は、5つのVM410から構成されるWeb三階層システムであることを示す。
VM ID(T420)が「LB1」であるVM410は、IPアドレス「10.0.0.1」が設定され、かつ、フロントエンドとなるLB1410である。VM ID(T420)が「VM11」、「VM12」である2つのVM410は、LBから受け付けたリクエストを処理するWeb機能を有するWebサーバ1420である。VM ID(T420)が「VM13」、「VM14」である2つのVM410は、Webサーバ1420からのリクエストを処理するDB機能を有するDBサーバ1430である。
「VM13」のVM410及び「VM14」のVM410は冗長構成(HA)が組まれている。また、「VM13」のVM410は、Webサーバ1420から受け付けたリクエストを処理する正側(実行系)のDBサーバ1430であり、「VM14」のVM410は、副側(待機系)のDBサーバ1430である。
実施例1では、利用者1100のサービス申込時に、テナント管理情報T400に当該利用者1100のテナント1400のレコードが生成されることを想定する。例えば、利用者1100が、サービス申込時に、システムテンプレート管理情報T900に格納された情報に基づいて、業務システムの構成を選択することによって、テナント管理情報T400に当該利用者1100のテナント1400のレコードが追加される。また、VM ID(T420)及びIPアドレス(T430)は、利用者1100がテナント1400の構築時に、手動又は自動的に設定される。また、テナント管理情報T400は、リソース最適化プログラム3000等が実行する処理によって、随時更新される。
図10は、実施例1の性能管理情報T500の一例を示す説明図である。
性能管理情報T500は、各テナント1400の性能に関する履歴情報(レコード)を格納する。具体的には、性能管理情報T500は、テナントID(T510)に対応するテナント1400毎に、時間(T520)、Web使用リソース(T530)、総Webセッション数(T540)、SQLリクエスト数(T550)、及び正側DB使用リソース(T560)を含む。
テナントID(T510)は、テナントID(T410)と同一のものである。時間(T520)は、テナント1400について、Web使用リソース(T530)、総Webセッション数(T540)、SQLリクエスト数(T550)、及び正側DB使用リソース(T560)に格納する値、すなわち、テナント1400の性能に関する情報を取得した時間である。
Web使用リソース(T530)は、テナント1400に含まれるWebサーバ1420における計算機リソースの平均使用率又は平均使用量である。Web使用リソース(T530)は、CPU使用率(T531)及びメモリ使用量(T532)を含む。
CPU使用率(T531)及びメモリ使用量(T532)は、Webサーバ1420として設定されたVM410に割り当てられた仮想CPUの使用率及び仮想メモリの使用量の平均値である。
総Webセッション数(T540)は、Webサーバ1420が管理するWebセッションの数である。SQLリクエスト数(T550)は、Webサーバ1420からDBサーバ1430へ送信されたリクエストの数である。
正側DB使用リソース(T560)は、Webサーバ1420から受け付けたリクエストを実際に処理する正側のDBサーバ1430における計算機リソースの使用率又は使用量である。正側DB使用リソース(T560)は、CPU使用率(T561)、メモリ使用量(T562)、及びIOPS(T563)を含む。
CPU使用率(T561)及びメモリ使用量(T562)は、DBサーバ1430として設定されたVM410に割り当てられた仮想CPUの使用率及び仮想メモリの使用容量である。IOPS(T563)は、ボリューム210へのIOPSである。
なお、正側DB使用リソース(T560)には、性能障害イベント等を含む、DBサーバ1430の性能に関する状態を管理するカラムが含まれてもよい。
管理サーバ100は、テナント管理情報T400及び性能管理情報T500に基づいて、各テナント1400を構成するVM410等の性能を管理する。
例えば、図10は、テナントID(T510)が「Tenant1」であるテナント1400の性能の履歴情報を示す。管理サーバ100は、時刻(T520)が「9:00」の時、2つのWebサーバ1420、すなわち、「VM11」及び「VM12」のVM410のCPU使用率の平均値が「30%」であり、メモリ使用量の平均値が「1GB」であり、Webセッションの数が「10」であることが分かる。また、管理サーバ100は、「VM11」及び「VM12」のVM410がDBサーバ1430、すなわち、「VM13」及び「VM14」のVM410に送信するSQLリクエストの数が「20」であることが分かる。
また、管理サーバ100は、「Tenant1」のテナント1400の性能の履歴情報に基づいて、時間の経過とともに負荷が増大していることが分かる。
なお、正側DB使用リソース(T560)の使用方法については、リソース最適化プログラム3000等が実行する処理の説明において述べる。
なお、性能管理情報T500は、例えば、構成/性能管理プログラム2200によって生成される。具体的には、構成/性能管理プログラム2200が、物理サーバ150のハイパバイザ400等から各構成要素の情報を取得し、取得された情報に基づいて性能管理情報T500に情報を追加する。
なお、性能管理情報T500は、テナント1400内の性能に関するデータを集計した情報を格納しているが、これに限定されない。例えば、テナント1400に含まれる各VM410の性能情報を時系列で格納する形式であってもよい。この場合、管理サーバ100は、外部からの要求に応じて、性能管理情報T500の各VM410の性能情報を集計することによって、図10に示すようなCPU使用率(T531)等の各種情報を算出する。
図11は、実施例1のシステムテンプレート管理情報T900の一例を示す説明図である。
システムテンプレート管理情報T900は、利用者1100が要求する業務システムの構成に関する情報(レコード)、すなわち、システムテンプレートを格納する。具体的には、システムテンプレート管理情報T900は、パターンID(T910)、Webサーバ(T920)、DBサーバ(T930)、及びTbl ID(T940)を含む。
概念的には、Webサーバ(T920)はスケールアウト可能なサーバに対応するカラム、DBサーバ(T930)はスケールアウト可能なサーバに接続され、かつ、スケールアップが必要なサーバに対応するカラムを意味する。
パターンID(T910)は、システムテンプレート管理情報T900において管理するシステムテンプレートを一意に識別するための識別子である。
Webサーバ(T920)は、業務システムにおけるWebサーバ1420の構成を示す情報である。Webサーバ(T920)は、OS(T921)、ソフトウェア(T922)、CPU数(T923)、メモリ容量(T924)、IOPS(T925)、及び初期数(T926)を含む。
OS(T921)は、Webサーバ1420にインストールされるOSの名称又は種別である。ソフトウェア(T922)は、Webサーバ1420にインストールされるソフトウェアの名称又は種別である。CPU数(T923)、メモリ容量(T924)及びIOPS(T925)は、Webサーバ1420に要求されるスペックに関する情報である。初期数(T926)は、業務システムに設定されるWebサーバ1420の数である。
DBサーバ(T930)は、業務システムにおけるDBサーバ1430の構成を示す情報である。DBサーバ(T930)は、OS(T931)、ソフトウェア(T932)、CPU数(T933)、メモリ容量(T934)、IOPS(T935)、及び構成(T936)を含む。
OS(T931)は、DBサーバ1430にインストールされるOSの名称又は種別である。ソフトウェア(T932)は、DBサーバ1430にインストールされるソフトウェアの名称又は種別である。CPU数(T933)、メモリ容量(T934)及びIOPS(T935)は、DBサーバ1430に要求されるスペックに関する情報である。構成(T936)は、DBサーバ1430についてHA構成を組むか否かを示す情報等である。例えば、構成(T936)に「HA」が格納される場合、冗長構成であることを示す。一方、構成(T936)に「単一」が格納される場合、冗長構成ではないことを示す。
Tbl ID(T940)は、後述するリソース変更方法管理情報T800のレコードの識別子である。Tbl ID(T940)によって、業務システムに適用する計算機リソースの変更方法が指定される。
なお、システムテンプレート管理情報T900は、構成変更プログラム2300が業務システムを構築するために用いるスクリプト等の情報へのリンクを含んでもよい。
なお、実施例1では、業務システムとしてWeb三階層システムを前提としているため、システムテンプレート管理情報T900には、Webサーバ1420及びDBサーバ1430のカラムが含まれるが、これに限定されない。Web三階層システム以外の業務システムを管理するシステムテンプレート管理情報T900であってもよい。
図12は、実施例1の顧客管理情報T600の一例を示す説明図である。
顧客管理情報T600は、顧客である利用者1100が利用するテナント1400を管理する情報(レコード)を格納する。具体的には、顧客管理情報T600は、利用者ID(T610)、テナントID(T620)、種別(T630)、及びパターンID(T640)を含む。
利用者ID(T610)は、クラウドサービス1200を利用する利用者1100を識別するための識別子である。テナントID(T620)は、利用者1100が利用するテナント1400を識別するための識別子であり、テナントID(T410)と同一のものである。
種別(T630)は、テナント1400の性能保証等に関する契約形態の種別を示す情報である。実施例1の種別(T630)には、「性能保証型」、「性能固定型」、及び「ベストエフォート型」のいずれかが格納される。
「性能保証型」の契約形態は、テナント1400の性能が所定の基準以上であることを保証する契約形態である。「性能固定型」の契約形態は、指定された性能を変更することなくテナント1400が稼働することを保証する契約形態である。「ベストエフォート型」は、他の利用者1100のテナント1400等の利用状況に応じて、自己のテナント1400の性能が変動することを利用者1100が許容する契約形態である。実施例1では、「性能保証型」のテナント1400を管理対象としている。
なお、契約形態(T632)には、前述の契約形態を示す情報の代わりに、Webサーバ1420のスケール変更の可否を示す情報、及びDBサーバ1430のスケール変更の可否を示す情報等、テナント1400の構成ごとのスケーリングに関する情報が格納されてもよい。
パターンID(T640)は、テナント1400の構築時に指定されたシステムテンプレートの識別子であり、パターンID(T910)と同一のものである。
なお、顧客管理情報T600は、利用者1100がサービスを申し込む時等に顧客管理プログラム2500によって生成され、また、更新される。なお、顧客管理プログラム2500が課金プログラム2400と連携する場合、顧客管理情報T600に課金情報又は課金時に用いられる情報を含めることもできる。
図13は、実施例1のスケール管理情報T700の一例を示す説明図である。
スケール管理情報T700は、契約形態が「性能保証型」であるWeb三階層システムにおいて、Webサーバ1420の数と、DBサーバ1430に割り当てるべき計算機リソースとの関係を示す情報(レコード)を格納する。具体的には、スケール管理情報T700は、パターンID(T710)、Webサーバ数(T720)、及びDBサーバ(T730)を含む。
パターンID(T710)は、システムテンプレートの一意に識別するための識別子であり、パターンID(T910)と同一のものである。Webサーバ数(T720)は、システムテンプレートに対応する業務システムに含まれるWebサーバ1420の数である。
DBサーバ(T730)は、Webサーバ1420の数に応じて、業務システムに必要なDBサーバ1430の計算機リソースに関する情報であり、CPU数(T731)、メモリ容量(T732)、及びIOPS(T733)を含む。なお、DBサーバ(T730)は、CPUの周波数などのカラムを含んでもよい。
また、DBサーバ(T730)は、SQLリクエスト限界数(T734)を含む。SQLリクエスト限界数(T734)は、CPU数(T731)、メモリ容量(T732)、及びIOPS(T733)に示された値の計算機リソース(スペック)を有するDBサーバ1430が処理可能なSQLリクエストの数である。実施例1では、SQLリクエスト限界数(T734)は、DBサーバ1430の負荷を判定するための指標として用いられる。
なお、スケール管理情報T700は、SQLリクエスト限界数(T734)の代わりに、例えば、CPU使用率、メモリ使用量、若しくはIOPSの上限値、又は性能障害イベントの一覧等をDBサーバ1430の負荷を判定するための指標として格納してもよい。
なお、スケール管理情報T700には、予めシステム毎に定義された値が格納されてもよいし、テナント1400の構築時に当該テナント1400の性能を評価することによって決定された値が格納されてもよい。
Web三階層システムでは、システムの負荷に応じてWebサーバ1420の数が動的に増加又は減少する。スケール管理情報T700は、Webサーバ1420の数の追加又は削除に伴って、DBサーバ1430に必要な計算機リソースを決定するために使用される。
例えば、Web三階層システムに2つのWebサーバ1420が含まれる場合、管理サーバ100は、スケール管理情報T700を参照して、DBサーバ1430にはCPUの数が「2」、メモリ容量が「5GB」、IOPSが「300」だけ計算機リソースが必要であることが分かる。
実施例1では、管理サーバ100は、スケール管理情報T700を参照し、Webサーバ1420が管理するWebセッションにおけるリクエストを処理可能な計算機リソースをDBサーバ1430に割り当てる。これによって、DBサーバ1430の処理性能が不足することによって、Webサーバ1420から送信されたSQLリクエストを処理できない等の障害を回避できる。
なお、DBサーバ1430に割り当てる計算機リソースを決定する方法としては、管理サーバ100は、スケール管理情報T700のようなテーブル形式の情報を用いるのではなく、論理物理構成管理情報T300及び性能管理情報T500に基づいて動的に算出してもよい。
例えば、Webサーバ1420の数又はSQLリクエストの数を入力することによってDBサーバ1430に必要な計算機リソースを算出する関数等を用いることが考えられる。また、管理サーバ100は、SQLリクエスト数(T550)の増減と、DBサーバ1430のCPU利用率、メモリ使用量、及びIOPS値の履歴情報とに基づいて、SQLリクエストを処理するために必要なDBサーバ1430の計算機リソースを予測(プロファイル)し、必要な計算機リソースを決定する方法も考えられる。この場合、性能管理情報T500には、DBサーバ1430のCPU使用率及びメモリ使用量等が格納されている必要がある。
図14は、実施例1のリソース変更方法管理情報T800の一例を示す説明図である。
リソース変更方法管理情報T800は、リソース最適化プログラム3000がVM410の計算機リソースの割当てを変更する場合に使用する変更方法の管理情報(レコード)を格納する。具体的には、リソース変更方法管理情報T800は、Tbl ID(T810)、対象(T820)、変更方法(T830)、及び分類(T840)を含む。
適用できる計算機リソースの変更方法は、OS及びソフトウェアの組み合わせ毎に異なる。そのため、変更対象の計算機リソース毎に適用できる変更方法、及び変更方法を適用した場合に業務システムへの影響を示す情報を対応付けて、一つにまとめておく必要がある。
そこで、実施例1では、管理サーバ100は、リソース変更方法管理情報T800を用いて、変更対象の計算機リソースに対する複数の計算機リソースの変更方法の集合を一つの業務システムに適用する変更方法(レコード)として管理する。
なお、ハイパバイザの種別によっても適用可能な計算機リソースの変更方法が異なる場合がある。この場合、OS、ソフトウェア及びハイパバイザの組合せをも考慮した情報をリソース変更方法管理情報T800に格納すればよい。
Tbl I(T810)は、リソース変更方法管理情報T800のレコードを一意に識別するための識別子である。対象(T820)は、変更対象の計算機リソースの種別である。
変更方法(T830)は、変更対象の計算機リソースの割当てを変更するための制御内容である。図14に示す例では、変更方法(T830)には、制御内容が格納されているが、構成変更プログラム2300に変更処理を指示するためのコマンド又はスクリプトが格納されてもよい。また、変更方法(T830)には、各変更方法の実行順番又は実行する順番を決定するための優先度、又は、排他関係にある変更方法に関する情報等が格納されてもよい。
分類(T840)は、変更方法(T830)に対応する変更方法を適用した場合に、VM又はVM上のOS若しくはソフトウェアに及ぼす影響を示す情報である。実施例1の分類(T840)には、変更方法が適用された時にVM410が停止するか否かを示す情報が格納される。分類(T840)が「無停止」である場合、変更方法が適用されたVM410が停止しないこと、すなわち、業務システムに与える影響が小さいことを示す。分類(T840)が「停止」である場合、変更方法が適用されたVM410が停止すること、すなわち、業務システムに与える影響が大きいことを示す。
管理サーバ100は、リソース変更方法管理情報T800に基づいて各変更方法を管理できる。例えば、対象(T820)が「CPU」、変更方法(T830)が「CPUシェア値変更」、分類(T840)が「無停止」である変更方法は、VM410に対するCPUのシェア値を当該VM410を停止させることなく実行できることが分かる。
また、CPU数の変更等は、ハイパバイザ400並びにOS及びソフトウェアの組合せによっては、Hot−Addと呼ばれる稼働中に追加できる機能があり、当該機能を利用可能なソフトウェアの組み合わせによっては、「停止」での実行が可能な場合がある。
Tbl ID(T810)毎に管理される変更方法は、業務システムを構成する要素に基づいて決定される。実施例1では、仮想化技術を前提としているが、物理的なサーバを対象としてもよい。この場合、図14に示す変更方法のうち、外部ストレージ装置への変更等の変更方法を適用できる。したがって、本発明は、仮想化技術に対応した計算機システムのみならず、仮想化技術に対応していない計算機システム、すなわち、物理サーバ150そのものを用いて構築された業務システムに対しても効果を奏する。
以下の説明では、分類(T840)が「無停止」である変更方法を無停止の変更方法と記載し、また、分類(T840)が「停止」である変更方法を停止の変更方法とも記載する。
図15は、実施例1のリソース最適化プログラム3000が実行する処理の概要を説明するフローチャートである。
リソース最適化プログラム3000は、所定の契機で処理を開始する(ステップS3010)。
例えば、リソース最適化プログラム3000は、テナント1400が構築された後に処理を開始する。より具体的には、利用者1100が、テナント1400の構築時に図20に示すような画面を用いてサービスを申し込み、構成変更プログラム2300が申込みされたサービスに基づいて業務システム(テナント1400)を構築した後に処理が開始される。
なお、本処理の対象となる業務システムは、サービス申込時に、スケールアウト又はスケールアップを行う旨の設定が行われた業務システムを対象とすることを想定する。
ここで、図20を用いてサービスの申込時に用いられる画面について説明する。図20は、実施例1のサービス申込時に用いられる画面の一例を示す説明図である。
利用者1100が、例えばWebブラウザを用いてポータル2000にアクセスした場合に、図20に示すような画面2010が表示される。
画面2010は、パターン入力2011、種別入力2012、表示項目2013、及び申込み操作ボタン2014を含む。
パターン入力2011は、利用者1100が希望する業務システム(テナント1400)のパターンを選択するための入力項目である。パターン入力2011には、例えば、システムテンプレート管理情報T900のパターンID(T910)に対応した値等が表示される。
種別入力2012は、業務システムの性能の特徴を指定するための入力項目である。種別入力2012は、顧客管理情報T600の種別(T630)に対応する。
表示項目2013は、パターン入力2011及び種別入力2012の操作に基づいてサービスの概要を表示する項目である。例えば、業務システムの構成の概要、又はWebサーバ(T920)及びDBサーバ(T930)等の業務システムの構成要素等が表示される。
申込み操作ボタン2014は、パターン入力2011及び種別入力2012を操作することによって設定された業務システムに関するサービスを利用者1100が申し込む場合に操作するボタンである。図20に示す例では、契約形態が「性能保証型」であり、かつ、「Web三階層システム1」に対応する業務システムのサービスが申し込まれる。
また、画面2010には種別入力2012の代わりに、テナント管理情報T400の機能(T440)の値毎に挙動を指定する入力項目があってもよい。例えば、Webサーバ1420をスケールアウト及びスケールインが可能な構成とするか否か、DBサーバ1430をスケールアップ及びスケールダウンが可能な構成とするか否かを選択させる入力項目等が考えられる。
また、他の入力項目として、前述の各スケーリング処理を自動的に、又は利用者1100に判断させるか否かを選択する入力項目があってもよい。また、入力項目の操作とあわせて、テナント管理情報T400の各項目、例えばIPアドレス等を指定する画面であってもよい。
以上が図20の説明である。図15の説明に戻る。
リソース最適化プログラム3000は、性能管理情報T500を参照して、対象のテナント1400負荷の増大の予兆が検出されたか否かを判定する(ステップS3100)。なお、リソース最適化プログラム3000は、周期的に性能管理情報T500を参照するものとする。また、テナント1400の負荷とは、テナント1400全体の負荷、又はテナント1400に含まれるDBサーバ1430の負荷のことを示す。
例えば、リソース最適化プログラム3000は、性能管理情報T500のWeb使用リソース(T530)又は総Webセッション数(T540)等の値が所定の閾値より大きいか否かを判定する。リソース最適化プログラム3000は、Web使用リソース(T530)等の値が所定の閾値より大きい場合、対象のテナント1400の負荷の増大の予兆が検出されたものと判定する。
なお、テナント1400の負荷の増大の予兆を検出する方法としては、Web使用リソース(T530)又は総Webセッション数(T540)等な値そのものではなく、当該値の上昇率(速度)も用いてもよい。また、特許文献1に示されるような、Webサーバ1420等のスケールアウト判定処理において用いられる一般的なメトリックに基づいてテナント1400の負荷の増大の予兆を検出する方法でもよい。
なお、リソース最適化プログラム3000は、ステップS3150の処理、すなわち、Webサーバ1420のスケールアウトの実行イベントを対象のテナント1400の負荷の増大の予兆として検出してもよい。
対象のテナント1400の負荷の増大の予兆が検出されない場合、リソース最適化プログラム3000は、ステップS3100に戻り、同様の処理を繰り返し実行する。
対象のテナント1400の負荷の増大の予兆が検出された場合、リソース最適化プログラム3000は、Webサーバ1420のスケールアウト処理を実行する(ステップS3150)。
なお、Webサーバ1420のスケールアウト処理の開始基準は、ステップS3100と同一のものでもよいし、また、オートスケール専用に設定された開始基準でもよい。オートスケール専用に設定される開始基準を用いる場合、構成変更プログラム2300が実行したイベントをリソース最適化プログラム3000が受け取ることによって、Webサーバ1420のスケールアウト処理が実行される。
なお、リソース最適化プログラム3000は、Webサーバ1420のスケールアウト処理と連動して、LB1410の設定を変更してもよい。例えば、追加されたWebサーバ1420へのリクエストを分配する等の設定変更が行われる。LB1410の設定を変更する方法は、例えば特許文献1に記載されている方法を用いればよい。
なお、追加されるWebサーバ1420については、現稼働中のVMを用いてもよいし、テナント構築時に使用されたWebサーバ1420の情報に基づいて新たに生成されてもよい。
リソース最適化プログラム3000は、Webサーバ1420のスケールアウト処理の実行後、DBサーバ1430のスケールアップ処理を実行する(ステップS3200)。
ステップS3200では、リソース最適化プログラム3000は、正側のDBサーバ1430に対して当該DBサーバ1430を無停止の変更方法を適用することによって正側のDBサーバ1430のスケールアップを行う。また、リソース最適化プログラム3000は、副側のDBサーバ1430に対して変更方法を適用することによって、副側のDBサーバ1430のスケールアップを行う。副側のDBサーバ1430に適用される変更方法は、停止の変更方法又は無停止の変更方法のいずれであってもよい。なお、ステップS3200の処理の詳細は、図16A及び図16Bを用いて後述する。
なお、リソース最適化プログラム3000は、ステップS3200の処理の前に、DBサーバ1430に割り当てられた仮想CPU及び仮想メモリ等の計算機リソースの割当量を追加する必要があるかを判定し、当該判定結果に基づいて、処理を分岐させてもよい。例えば、リソース最適化プログラム3000は、DBサーバ1430に割り当てられる計算機リソースの割当量を追加する必要があると判定した場合にステップS3200に進み、DBサーバ1430に割り当てられる計算機リソースの割当量を追加する必要がないと判定した場合にステップS3100に戻る。
前述した判定処理は以下のような処理が考えられる。リソース最適化プログラム3000は、Webサーバ1420のスケールアウト処理の実行前及び実行後のWebサーバ1420の数を入力として受け付け、当該Webサーバ1420の数に基づいてスケール管理情報T700を参照してDBサーバ1430の計算機リソースの割当量を追加する必要があるか否かを判定する。
例えば、Webサーバ1420のスケールアウト処理を実行することによって、Webサーバ1420の数が「1」から「2」に変化した場合、リソース最適化プログラム3000は、DBサーバ1430に割り当てられる計算機リソースを追加する必要がないと判定する。Webサーバ1420のスケールアウト処理を実行することによって、Webサーバ1420の数が「2」から「3」に変化した場合、リソース最適化プログラム3000は、DBサーバ1430に割り当てられる計算機リソースを追加する必要があると判定する。
リソース最適化プログラム3000は、DBサーバ1430のスケールアップ処理の実行後、DBサーバ1430の負荷を監視し、当該監視結果に基づいてDBサーバ1430の負荷が増大しているか否かを判定する(ステップS3400)。
例えば、リソース最適化プログラム3000は、スケール管理情報T700のSQLリクエスト限界数(T734)に基づいて、DBサーバ1430の負荷が増大しているか否かを判定する。なお、リソース最適化プログラム3000は、SQLリクエスト限界数(T734)の代わりに、CPU使用率又はメモリ使用量を用いてもよいし、また、性能障害イベント等が登録されている場合には登録された情報を判定条件として用いてもよい。
ここで、具体的な一例として、パターンID(T710)が「SYS1」であるWeb三階層システムにおいて、Webサーバ1420の数が「2」から「3」に変化した場合を想定する。このとき、DBサーバ1430が受け付けたSQLリクエストの数が、Webサーバ1420数が「2」、すなわち、Webサーバ1420のスケールアウト処理の実行前のSQLリクエスト限界数(T734)の値「35」より大きい場合、ステップS3500の処理が実行される。
ステップS3400の処理は、DBサーバ1430の切り替え、すなわち、テイクオーバ処理にリスクがあるため設けられている。これは、DBサーバ1430の切り替え時に何らかの障害が起こる可能性があり、また、DBサーバ1430の切り替え中にフロントエンド側からの接続が不安定になる可能性があるためである。
なお、実施例1では、リソース最適化プログラム3000は、DBサーバ1430の負荷の増大が検出された場合に、自動的にステップS3500の処理を実行しているがこれに限定されない。例えば、リソース最適化プログラム3000は、ステップS3400の判定結果を業務システムの管理者(例えば利用者1100)に通知することによって、ステップS3500等の処理の実行可否又は実行タイミングを管理者が決定できるようにしてもよい。これによって、プログラムで知り得ない外的要因、例えば、提供サービスのサービスイン等のビジネス的要因を考慮できる。
DBサーバ1430の負荷が増大していない場合、リソース最適化プログラム3000は、ステップS3600に進む。
DBサーバ1430の負荷が増大している場合、リソース最適化プログラム3000は、正側のDBサーバ1430及び副側のDBサーバ1430の切り替えによるDBサーバ1430のスケールアップ処理を実行する(ステップS3500)。なお、ステップS3500の処理の詳細は、図17を用いて後述する。
ステップS3400の判定結果がNO、又は、ステップS3500の処理の実行後、リソース最適化プログラム3000は、対象のテナント1400の負荷が収束したか否かを判定する(ステップS3600)。
ステップS3600では、リソース最適化プログラム3000は、ステップS3100と同様に性能管理情報T500に基づいて判定する。例えば、Web使用リソース(T530)又は総Webセッション数(T540)の値が所定の閾値より小さい場合、リソース最適化プログラム3000は、対象のテナント1400の負荷が収束したと判定する。
また、リソース最適化プログラム3000は、Webサーバ1420のスケールイン処理の実行を、対象のテナント1400の負荷の収束として検出してもよい。また、リソース最適化プログラム3000は、所定のイベントの終了を検出した場合に、対象テナント1400の負荷が収束したと判定してもよい。また、リソース最適化プログラム3000は、タイマを用いて設定された時間が経過した場合に、対象テナント1400の負荷が収束したと判定してもよい。
また、リソース最適化プログラム3000は、追加条件として、Web使用リソース(T530)又は総Webセッション数(T540)の値が閾値より小さい状態が「一定期間」継続することを考慮してもよい。すなわち、リソース最適化プログラム3000は、負荷の収束が予測される場合に、対象のテナント1400の負荷が収束したと判定する。
対象テナント1400の負荷が収束していない場合、リソース最適化プログラム3000は、ステップS3400に戻り同様の処理を実行する。
対象テナント1400の負荷が収束した場合、リソース最適化プログラム3000は、Webサーバ1420のスケールイン処理を実行する(ステップS3700)。Webサーバ1420のスケールイン処理は、公知の技術を用いればよい。その後、リソース最適化プログラム3000は、スケールアップされたDBサーバ1430を元の状態に戻すための処理、すなわち、スケールダウンするための処理を実行する(ステップS3800)。なお、ステップS3800の処理の詳細は、図19を用いて後述する。
リソース最適化プログラム3000は、ステップS3800の処理が完了した後、全ての処理を終了する(ステップS3020)。なお、実施例1では、ステップS3800の処理が完了した後、処理が終了しているが、ステップS3010に戻り処理を継続するようなループ処理でもよい。図1では、前述したようなループ処理の場合におけるテナント1400の状態の遷移を表現している。
図15に示す処理フローでは、ステップS3200においてDBサーバ1430のスケールアップ処理の実行中に、さらに、テナント1400の負荷の増大の予兆が検出された場合に対応することができない。例えば、Webサーバ1420の数「2」から「3」に変化したことに伴ってDBサーバ1430のスケールアップ処理が開始された後、さらに、Webサーバ1420の数が「3」から「4」に変化した場合等に対応できない。
前述したような場合には、例えば、図15の処理を再帰的に実行することによって、段階的にDBサーバ1430をスケールアップし、負荷の状況に応じて、段階的にDBサーバ1430をスケールダウンさせることによって対応すればよい。
図16A及び図16Bは、実施例1のリソース最適化プログラム3000がステップS3200において実行するDBサーバ1430のスケールアップ処理の詳細を説明するフローチャートである。
リソース最適化プログラム3000は、現在、DBサーバ1430に割り当てられた計算機リソース量、及びWebサーバ1420の数等のフロントエンド側の情報を取得し、取得された情報及びスケール管理情報T700に基づいて不足が予想される計算機リソースを判定する。
例えば、Webサーバ1420の数が「2」から「3」に変更された場合、DBサーバ1430のCPUの数は「2」から「3」に、メモリ容量は「5GB」から「7.5GB」に、IOPSは「300」から「600」に変更される。そのため、リソース最適化プログラム3000は、CPUの数が「1」不足し、メモリ容量が「2.5GB」不足し、また、IOPSが「300」不足すると判定する。
まず、リソース最適化プログラム3000は、正側のDBサーバ1430のCPUが不足するか否かを判定する(ステップS3210)。CPUが不足していないと判定された場合、リソース最適化プログラム3000は、ステップS3220に進む。
CPUが不足すると判定された場合、リソース最適化プログラム3000は、リソース変更方法管理情報T800を参照して、正側のDBサーバ1430に対してCPUに関連する計算機リソースの変更方法を適用する(ステップS3215)。具体的には、以下のような処理が実行される。
リソース最適化プログラム3000は、システムテンプレート管理情報T900のパターンID(T910)を参照して、対象のテナント1400の構築時に使用されたシステムテンプレートの識別子と一致するレコードを検索する。検索されたレコードのTbl ID(T940)から識別子を取得する。
リソース最適化プログラム3000は、リソース変更方法管理情報T800のTbl ID(T810)が取得された識別子と一致するレコードを検索する。さらに、リソース最適化プログラム3000は、検索されたレコードの対象(T820)が「CPU」かつ分類(T840)が「無停止」である計算機リソースの変更方法を順次適用する。
例えば、変更方法(T830)が「CPUシェア値変更」の場合、リソース最適化プログラム3000は、正側のDBサーバ1430のCPUのシェア値を「高」に変更するように構成変更プログラム2300に指示する。また、変更方法(T830)が「CPU数変更」の場合、リソース最適化プログラム3000は、不足分のCPUの追加を構成変更プログラム2300に指示する。
次に、リソース最適化プログラム3000は、正側のDBサーバ1430のメモリが不足しているか否かを判定する(ステップS3220)。メモリが不足していないと判定された場合、リソース最適化プログラム3000は、ステップS3230に進む。
メモリが不足していると判定された場合、リソース最適化プログラム3000は、リソース変更方法管理情報T800を参照して、正側のDBサーバ1430に対してメモリに関連する計算機リソースの変更方法を適用する(ステップS3225)。
具体的には、リソース最適化プログラム3000は、リソース変更方法管理情報T800から検索されたレコードの対象(T820)が「メモリ」かつ分類(T840)が「無停止」である計算機リソースの変更方法を順次適用する。
例えば、変更方法(T830)が「メモリシェア値変更」の場合、リソース最適化プログラム3000は、正側のDBサーバ1430のメモリのシェア値を「高」に変更するように構成変更プログラム2300に指示する。なお、変更方法(T830)が「メモリ容量変更」である計算機リソースの変更方法は、DBサーバ1430を停止させる必要があるため、ステップS3215では適用されない。
次に、リソース最適化プログラム3000は、正側のDBサーバ1430のIOPSが不足しているか否かを判定する(ステップS3230)。IOPSが不足していないと判定された場合、リソース最適化プログラム3000は、ステップS3240に進む。
IOPSが不足していると判定された場合、リソース最適化プログラム3000は、リソース変更方法管理情報T800を参照して、正側のDBサーバ1430及び当該DBサーバ1430に対応するVM410が利用するボリューム210に対して計算機リソースの変更方法を適用する(ステップS3235)。
具体的には、リソース最適化プログラム3000は、リソース変更方法管理情報T800から検索されたレコードの対象(T820)が「IOPS」かつ分類(T840)が「無停止」である計算機リソースの変更方法を順次適用する。
IOPSの変更では、一般にCPU及びメモリの変更とは異なり、VM410又はVM410が動作するハイパバイザ400、及びストレージ装置200のそれぞれに対して設定が可能であることが多い。図14に示す例では、無停止の変更方法として、「ハイパバイザ上のIOPS制限値の変更」と「ストレージ装置へIOPS値の変更」を示す。
変更方法(T830)が「ハイパバイザ上のIOPS制限値の変更」の場合、リソース最適化プログラム3000は、正側のDBサーバ1430に対応するVM410に対するIOPSの制限がハイパバイザ400又は当該VM410に設定されているか否か確認する。IOPSの制限が設定され、かつ、設定されているIOPSの上限値が必要なIOPSより小さい場合、リソース最適化プログラム3000は、制限されたIOPSを緩和するように構成変更プログラム2300に指示する。
例えば、現在のIOPSが必要なIOPS「600」より小さい場合、リソース最適化プログラム3000は、IOPSを「600」に設定するように構成変更プログラム2300に指示する。
また、変更方法(T830)が「ストレージ装置へIOPS値の変更」の場合、リソース最適化プログラム3000は、正側のDBサーバ1430に対応するVM410が利用するストレージ装置200及びボリューム210について、必要となるIOPSを確保できるか否か判定する。必要なIOPSを確保できないと判定された場合、リソース最適化プログラム3000は、IOPSの拡張を構成変更プログラム2300に指示する。
ここで、図8を用いて具体的な処理について説明する。なお、正側のDBサーバ1430に対応するVM410の識別子は「VM13」であるものとし、また、IOPSが「300」から「600」に増加することが予測されているものとする。
まず、リソース最適化プログラム3000は、論理物理構成管理情報T300に基づいて、対象とするVM410が利用するボリューム210の総IOPSを算出する。この場合、ボリュームID(T332)が「Vol2」であるボリューム210は、「VM13」及び「VM14」によって利用されているため、総IOPSが「600」と算出される。
「VM13」のIOPSが「300」から「600」へ増加することが予測される場合、「Vol2」のボリューム210の総IOPS「900」となる。一方、ストレージ管理情報T200のボリュームID(T220)が「Vol2」である行を参照すると、確保されているIOPSは「600」である。そのため、リソース最適化プログラム3000は、「300」だけIOPSが不足することが分かる。したがって、リソース最適化プログラム3000は、「Vol2」のボリューム210に対して「300」だけIOPSを増加、すなわち、IOPS(T240)が「900」となるように構成変更プログラム2300に指示する。
なお、ストレージ装置200がDynamic Tiering機能を有する場合、リソース最適化プログラム3000は、その指定方法に応じて、性能指標を「高」に設定するように構成変更プログラム2300に指示してもよいし、また、SSDの構成比率が高くなるようにボリューム210の構成変更を構成変更プログラム2300に指示してもよい。
なお、ステップS3215、ステップS3225及びステップS3235の処理では、リソース変更方法管理情報T800に登録された計算機リソースの変更方法のうち、条件に一致する計算機リソースの変更方法を全て適用しているが、これに限定されない。
例えば、計算機リソースの変更方法のそれぞれに適用順番を示す優先度が設定されている場合、リソース最適化プログラム3000は、優先度に基づいて、1つ又は2つ以上の変更方法を選択し、選択されたものを実行してもよい。さらに、複数の計算機リソースの変更方法の間に排他関係が設定されている場合、リソース最適化プログラム3000は、優先度及び排他関係に基づいて、1つ又は2つ以上の計算機リソースの変更方法を適用してもよい。
なお、ステップS3215、ステップS3225及びステップS3235の処理では、計算機リソースの各々について割当量を変更していたがこれに限定されない。例えば、クラウドサービス1200によっては、VM410のタイプ(フレーバーとも呼ばれる)として、予め決定されたCPU、メモリ、及びIOPSの組み合わせが複数規定されおり、当該タイプを選択することによって性能、すなわち、DBサーバ1430の計算機リソースの割当量を変更できる。
このようなクラウドサービス1200の場合、CPU又はメモリ等の1つの計算機リソースについて不足が発生している場合、不足が発生している計算機リソースを確保可能なタイプにしたがった処理を実行することによって、ステップS3215、ステップS3225及びステップS3235と同様の処理を実現できる。また、スケール管理情報T700のDBサーバ(T730)に、Webサーバ1420の数に応じたタイプを設定することによって、前述した処理に対応させることもできる。
なお、実施例1では、CPU、メモリ、IOPSの順に処理を実行していたが、処理の順番はこれに限定されない。ただし、メモリ及びIOPSとの間には、メモリ容量を変更することによってボリューム210へのIOが減るという相関関係が存在するため、処理の順番は、メモリ及びIOPSの順に実行されることが望ましい。
次に、リソース最適化プログラム3000は、正側のDBサーバ1430の計算機リソースの変更後(ステップS3210からステップS3235までの処理の完了後)、正側のDBサーバ1430に対応するVM410の再配置処理を実行する(ステップS3300)。これは、正側のDBサーバ1430に割り当てる計算機リソースをより多く確保するためである。ステップS3300の処理の詳細は、図17を用いて後述する。
次に、リソース最適化プログラム3000は、DBサーバ1430がHA構成であるか否かを判定する(ステップS3240)。すなわち、副側のDBサーバ1430が存在するか否かが判定される。
例えば、リソース最適化プログラム3000は、システムテンプレート管理情報T900の構成(T936)、又は、テナント管理情報T400の機能(T440)に基づいて、DBサーバ1430がHA構成であるか否かを判定できる。
DBサーバ1430がHA構成でないと判定された場合、リソース最適化プログラム3000は、ステップS3290に進む。
DBサーバ1430がHA構成であると判定された場合、リソース最適化プログラム3000は、副側のDBサーバ1430のCPU、メモリ、及びIOPSのそれぞれが不足しているか否かを判定する(ステップS3250、ステップS3260、ステップS3270)。ステップS3250、ステップS3260、及びステップS3270の処理は、ステップS3210、ステップS3220、及びステップS3230の処理と同一の処理内容である。ただし、対象が副側のDBサーバ1430である点が異なる。
CPU又はメモリ容量が不足している場合、リソース最適化プログラム3000は、副側のDBサーバ1430に対してCPU又はメモリに関連する計算機リソースの変更方法を適用する(ステップS3255、ステップS3265)。また、リソース最適化プログラム3000は、副側のDBサーバ1430及び当該DBサーバ1430に対応するVM410が利用するボリューム210に対して計算機リソースの変更方法を適用する(ステップS3275)。
ステップS3255及びステップS3265の処理は、ステップS3215及びステップS3225とほぼ同一の処理であるが、以下の点が異なる。まず、対象が副側のDBサーバ1430である点が異なる。また、ステップS3255及びステップS3265の処理では、無停止の変更方法のみが適用されていたが、ステップS3255及びステップS3265の処理では、停止の変更方法及び無停止の変更方法のいずれもが適用される。
ステップS3275の処理は、ステップS3235の処理とほぼ同一の処理であるが以下の点が異なる。HA構成の構成方法によっては、正側のDBサーバ1430及び副側のDBサーバ1430が同一の記憶領域(ボリューム210)を共有している場合があるため、リソース最適化プログラム3000は、HA構成に応じて、計算機リソースの変更方法を適用しない場合がある。また、計算機リソースの変更方法が適用される場合には、停止の変更方法及び無停止の変更方法のいずれもが適用される。
なお、DBサーバ1430に対応するVM410が稼働する物理サーバ150においてCPUの数及びメモリ容量を変更するために必要な計算機リソースが確保できない場合、計算機リソースに空きがある他の物理サーバ150にVM410を移動すればよい。なお、VM410の移動方法は、後述するステップS3300と同一の方法を用いればよい。
ステップS3270の判定結果が「NO」又はステップS3275の処理が完了した後、リソース最適化プログラム3000は、副側のDBサーバ1430に対する計算機リソースのシェア値を変更する(ステップS3280)。
具体的には、リソース最適化プログラム3000は、副側のDBサーバ1430に対する計算機リソースのシェア値を下げる。これは、テイクオーバ処理の実行前では、正側のDBサーバ1430がWebサーバ1420からのアクセスに対する処理を実行しているが、当該処理の実行後は、テイクオーバ処理前に正側のDBサーバ1430であった副側のDBサーバ1430に多くの計算機リソースを割り当てる必要がないためである。
そのため、リソース最適化プログラム3000は、副側のDBサーバ1430に対応するVM410が認識可能なCPU及びメモリ容量等の計算機リソースはスケールアップさせるが、シェア値を変更することによって実際に割り当てる計算機リソース量を低く設定する。これによって、ハイパバイザ400は、同一の物理サーバ150上で稼働する他のVM410に割り当てる計算機リソースを確保することができる。したがって、クラウドサービス1200全体として計算機リソースを有効に活用することが可能となる。
次に、リソース最適化プログラム3000は、副側のDBサーバ1430の配置変更処理を実行する(ステップS3300)。これは、副側のDBサーバ1430に割り当てる計算機リソースをより多く確保するためである。なお、ステップS3300の処理の詳細は、図17を用いて後述する。
ステップS3240の判定結果が「No」又はステップS3300の処理が完了した後、リソース最適化プログラム3000は、テナント1400の構成の変更内容を課金プログラム2400及びポータルプログラム2100に通知し(ステップS3290)、その後ステップS3400に進む。
課金プログラム2400は、リソース最適化プログラム3000からテナント1400の構成の変更内容を受け付けると、所定の課金体系にしたがってテナント1400の利用者1100に対して課金する。なお、課金プログラム2400は、正側のDBサーバ1430の計算機リソースの変更分に対する料金のみを課金してもよいし、また、正側のDBサーバ1430及び副側のDBサーバ1430の両方の計算機リソースの変更分に対する料金を課金してもよい。課金の形態は、初期の契約又は事業者が提供するサービスメニューに応じて決定されるものである。
図17は、実施例1のリソース最適化プログラム3000が実行するVM410の再配置処理を説明するフローチャートである。
図16A及び図16Bを用いて説明したように、ステップS3300では、シェア値を効果的に利用するために、ハイパバイザ400間におけるVM410の再配置処理が実行される。
シェア値は、物理サーバ150が有する計算機リソースを複数のVM410に分配する指標である。ハイパバイザ400上で動作する全てのVM410のシェア値が「高」に設定されている場合、いずれのVM410にも優先的に計算機リソースを割り当てることができない。すなわち、シェア値を設定しても計算機リソースの効率的な割り当てを実現できない。このような状況を回避するために、正側のDBサーバ1430に対応するVM410の再配置処理が実行される。
副側のDBサーバ1430に対応するVM410は、テイクオーバ処理の実行前は、シェア値が「低」に設定されている。しかし、テイクオーバ処理等によって将来VM410に割り当てられた計算機リソースを最大値まで使用する可能性がある。そのため、VM410に割り当てられた計算機リソースを最大値分確保できない状況を回避するために、副側のDBサーバ1430に対応するVM410の再配置処理が実行される。
なお、VM410を停止させることなく、ハイパバイザ400間、すなわち、物理サーバ150間で移動させる技術として、例えば、VMotion機能がある。VMotion機能では、事前にクラスタ設定がされた複数のハイパバイザの間でVMが停止させることなく移動させることが可能な技術である。このような技術を用いることによって、VM410を停止させることなく、ハイパバイザ400間でVM410を移動できる。
なお、シェア値は、同一の物理サーバ150上で動作するVM410に対する当該物理サーバ150の計算機リソースの配分率を決定するものとして用いられているが、他の対象にも適用可能である。例えば、複数の物理サーバ150から構成されるクラスタに対してシェア値を適用してもよい。この場合、クラスタに含まれる全ての物理サーバ150の計算機リソースの合計値を母数とし、クラスタ内のVM410に対する計算機リソースの配分率を決定するものとしてシェア値が用いられる。
まず、リソース最適化プログラム3000は、正側のDBサーバ1430に対応するVM410の再配置処理であるか否かを判定する(ステップS3310)。例えば、ステップS3230又はステップS3235の処理の後にVM410の再配置処理が開始された場合、リソース最適化プログラム3000は、正側のDBサーバ1430に対応するVM410の再配置処理であると判定する。以下の説明では、再配置処理の対象となるVM410を単に対象のVM410とも記載する。
正側のDBサーバ1430に対応するVM410の再配置処理であると判定された場合、リソース最適化プログラム3000は、対象のVM410が稼働する物理サーバ150上で稼働する他のVM410のうち、負荷の増大が予想されるVM410が存在するか否かを判定する(ステップS3320)。
具体的には、リソース最適化プログラム3000は、論理物理構成管理情報T300のサーバID(T331)が対象のVM410が稼働する物理サーバ150の識別子と一致するレコードを検索する。これによって、対象のVM410が稼働する物理サーバ150上で稼働する他のVM410の一覧を取得することができる。
リソース最適化プログラム3000は、検索されたレコードのCPUシェア(T324)、メモリシェア(T325)、及びI/Oシェア(T325)の値を参照して、負荷の増大が予想されるVM410が存在するか否かを判定する。
例えば、リソース最適化プログラム3000は、対象のVM410のシェア値を上げるカラムに着目し、当該カラムに「高」が設定されるVM410が存在するか否かを判定する。着目するカラムに「高」が設定されるVM410が存在する場合、負荷の増大が予想されるVM410が存在すると判定される。
なお、リソース最適化プログラム3000は、テナント管理情報T400の状態(T460)に基づいて前述した判定を行ってもよい。例えば、対象のVM410のレコード以外に状態(T460)に「スケールアップ」が設定されたレコードが存在する場合、負荷の増大が予想されるVM410が存在すると判定される。
また、リソース最適化プログラム3000は、性能管理情報T500のSQLリクエスト数(T550)に基づいて、SQLリクエストの増加傾向が検出されるか否かを判定することによって前述した判定を行ってもよい。SQLリクエストの増加傾向が検出された場合、負荷の増大が予想されるVM410が存在すると判定される。
負荷の増大が予想されるVM410が存在しないと判定された場合、リソース最適化プログラム3000は、特に処理を実行することなく、ステップS3240に進む。この場合、シェア値を「高」に変更しても他のVM410に影響がなく、VM410を移動させる必要がないためである。
負荷の増大が予想されるVM410が存在すると判定された場合、リソース最適化プログラム3000は、対象のVM410が稼働する物理サーバ150とは異なる物理サーバ150の中に、対象のVM410に必要な計算機リソースを確保できる物理サーバ150が存在するか否かを判定する(ステップS3330)。
ステップS3330では、各物理サーバ150に対してステップS3320の同一の処理が実行される。例えば、リソース最適化プログラム3000は、論理物理構成管理情報T300を参照し、各物理サーバ150上で稼働する全てのVM410について、着目するカラムの値を確認する。一つの物理サーバ150上で稼働する全てのVM410について、着目するカラムに「高」が設定されていない場合、リソース最適化プログラム3000は、当該物理サーバ150を、DBサーバ1430に必要な計算機リソースを確保できる物理サーバ150と判定する。
DBサーバ1430に必要な計算機リソースを確保できる物理サーバ150が存在しないと判定された場合、リソース最適化プログラム3000は、VM410の移動ができないため特に処理を実行することなくステップS3240に進む。
DBサーバ1430に必要な計算機リソースを確保できる物理サーバ150が存在すると判定された場合、リソース最適化プログラム3000は、既存の技術を用いて、対象のVM410が稼働する物理サーバ150から検索された物理サーバ150に当該VM410を停止させることなく移動する(ステップS3340)。その後、リソース最適化プログラム3000は、ステップS3240に進む。
ステップS3310において、副側のDBサーバ1430に対応するVM410の再配置処理であると判定された場合、リソース最適化プログラム3000は、副側のDBサーバ1430が存在するか否かを判定する(ステップS3350)。例えば、リソース最適化プログラム3000は、テナント管理情報T400の状態(T440)を参照することによって、副側のDBサーバ1430が存在するか否かを判定する。
副側のDBサーバ1430が存在しないと判定された場合、リソース最適化プログラム3000は、ステップS3290に進む。
副側のDBサーバ1430が存在すると判定された場合、リソース最適化プログラム3000は、対象のVM410が稼働する物理サーバ150が、スケールアップ処理の実行によって新たに割り当てられた計算機リソースを確保できるか否かを判定する(ステップS3360)。具体的には、以下のような処理が実行される。
リソース最適化プログラム3000は、論理物理構成管理情報T300のサーバID(T331)が対象のVM410が稼働する物理サーバ150の識別子と一致するコードを検索する。リソース最適化プログラム3000は、スケールアップ処理の実行後に追加された計算機リソースのカラム、すなわち、CPUシェア(T324)、メモリシェア(T325)、及びI/Oシェア(T325)の値が「高」であるVM410を特定する。
リソース最適化プログラム3000は、特定されたVM410について、スケールアップ処理の実行前の計算機リソース量を合計値、及びスケールアップ処理の実行後の計算機リソース量の合計値を算出する。リソース最適化プログラム3000は、算出されたいずれの合計値もが物理サーバ150が有する計算機リソース量より小さいか否かを判定する。
算出されたいずれの合計値もが物理サーバ150が有する計算機リソース量より小さい場合、リソース最適化プログラム3000は、対象のVM410が稼働する物理サーバ150が、スケールアップ処理の実行によって新たに割り当てられた計算機リソースを確保できると判定する。
対象のVM410が稼働する物理サーバ150が、スケールアップ処理の実行によって新たに割り当てられた計算機リソースを確保できると判定された場合、リソース最適化プログラム3000は、ステップS3290に進む。これは、VM410を移動させなくても必要な計算機リソースを割り当てられない状況が発生しないためである。
対象のVM410が稼働する物理サーバ150が、スケールアップ処理の実行によって新たに割り当てられた計算機リソースを確保できないと判定された場合、リソース最適化プログラム3000は、対象のVM410が稼働する物理サーバ150とは異なる物理サーバ150の中に、DBサーバ1430に必要な計算機リソースを確保できる物理サーバ150が存在するか否かを判定する(ステップS3370)。ステップS3370の処理はステップS3330と同一の処理である。
DBサーバ1430に必要な計算機リソースを確保できる物理サーバ150が存在しないと判定された場合、リソース最適化プログラム3000は、VM410の移動ができないため特に処理を実行することなくステップS3290に進む。
DBサーバ1430に必要な計算機リソースを確保できる物理サーバ150が存在すると判定された場合、リソース最適化プログラム3000は、既存の技術を用いて、対象のVM410が稼働する物理サーバ150から検索された物理サーバ150に当該VM410を移動する(ステップS3340)。その後、リソース最適化プログラム3000は、ステップS3290に進む。
なお、稼働する物理サーバ150が指定されているケースを考慮してもよい。例えば、論理物理構成管理情報T300に、稼働する物理サーバ150を固定するか否かを示すフラグを設定するカラムを含めておけばよい。これによって、VM410の再配置処理の開始時点、又は、ステップS3340若しくはステップS3380においてVM410が指定された物理サーバ150から移動しないように制御できる。
また、正側及び副側のDBサーバ1430に対応する2つのVM410を同一の物理サーバ150又は同一のクラスタ上で稼働させない旨の条件を考慮することもできる。この場合、ステップS3330又はステップS3370の処理において、リソース最適化プログラム3000は、前述した条件に一致する物理サーバ150を移動候補から除外することができる。
図18は、実施例1のリソース最適化プログラム3000が実行するテイクオーバ処理を含むDBサーバ1430のスケールアップ処理の詳細を説明するフローチャートである。
まず、リソース最適化プログラム3000は、DBサーバ1430がHA構成で組まれているか否かを判定する(ステップS3510)。例えば、リソース最適化プログラム3000は、テナント管理情報T400の機能(T440)又はシステムテンプレート管理情報T900の構成(T936)等を参照してDBサーバ1430がHA構成で組まれているか否かを判定する。
DBサーバ1430がHA構成で組まれていない場合、リソース最適化プログラム3000は、テイクオーバ処理を実行できないため、特に処理を実行することなくステップS3600に進む。
DBサーバ1430がHA構成で組まれている場合、リソース最適化プログラム3000は、副側のDBサーバ1430に割り当てられた計算機リソースのシェア値を変更する(ステップS3520)。具体的には、リソース最適化プログラム3000は、論理物理構成管理情報T300を参照して、副側のDBサーバ1430に対応するVM410のレコードのCPUシェア(T324)、メモリシェア(T325)、又はI/Oシェア(T325)の値を「高」に変更する。このとき、リソース最適化プログラム3000は、構成変更プログラム2300等を介して、シェア値の変更をハイパバイザ400に通知する。
リソース最適化プログラム3000は、テイクオーバ処理の実行する(ステップS3530)。具体的には、リソース最適化プログラム3000は、構成変更プログラム2300にテイクオーバ処理の実行を指示する。
リソース最適化プログラム3000は、テイクオーバ処理が完了した後、切り替え後の副側のDBサーバ1430、すなわち、テイクオーバ処理の実行前の正側のDBサーバ1430に割り当てられた計算機リソースのシェア値を変更する(ステップS3540)。具体的には、リソース最適化プログラム3000は、論理物理構成管理情報T300を参照して、テイクオーバ処理の実行後の副側のDBサーバ1430に対応するVM410のレコードのCPUシェア(T324)、メモリシェア(T325)、又はI/Oシェア(T325)の値を「低」に変更する。このとき、リソース最適化プログラム3000は、構成変更プログラム2300等を介して、シェア値の変更をハイパバイザ400に通知する。
リソース最適化プログラム3000は、テイクオーバ処理に関する情報を課金プログラム2400及びポータルプログラム2100に通知し(ステップS3550)、その後、ステップS3600に進む。
従量課金、かつ、正側のDBサーバ1430のみに課金するような課金体系の場合、課金プログラム2400にDBサーバ1430に関する情報を通知することによって、テイクオーバ処理に柔軟に追従した課金が可能となる。また、ポータルプログラム2100が、ポータル2000にDBサーバ1430に関する情報を表示することによって、利用者1100に対して処理の効果等を視覚的に認識させることができる。
なお、本実施例では、ステップS3520、ステップS3530、及びステップS3540の順に処理が実行される。これは、DBサーバ1430の性能を確実に確保するためである。
例えば、ステップS3520の処理を他の処理の後に実行した場合、テイクオーバ処理後に正側のDBサーバ1430となるDBサーバ1430に割り当てられた計算機リソースのシェア値は低いままとなっている。この場合、正側のDBサーバ1430が認識する計算機リソース量は増加しているが、実際に割り当てられている計算機リソースは少ないため、スケールアップ処理(テイクオーバ処理)の効果が得られない。
したがって、前述したような問題を回避するため、本実施例では、ステップS3530、ステップS3530、及びステップS3540の順に処理が実行される。
なお、図18に示すスケールアップ処理の開始時点において、ステップS3200の処理が完了していない場合、リソース最適化プログラム3000は、ステップS3200の処理が完了するまで、処理の開始を待ってもよい。また、スケールアップ処理が完了する前に負荷が収束した場合、リソース最適化プログラム3000は、当該スケールアップ処理をスキップしてもよい。
図19は、実施例1のリソース最適化プログラム3000が実行するスケールアップされたDBサーバ1430に対するスケールダウン処理の詳細を説明するフローチャートである。
まず、リソース最適化プログラム3000は、DBサーバ1430がHA構成で組まれているか否かを判定する(ステップS3810)。ステップS3810の処理は、ステップS3510と同一の処理である。
DBサーバ1430がHA構成で組まれていないと判定された場合、リソース最適化プログラム3000は、正側のDBサーバ1430に割り当てられた計算機リソースの割当量及びシェア値をスケールアップ処理の実行前の値に戻し(ステップS3860)、その後、ステップS3850に進む。例えば、リソース最適化プログラム3000は、Webサーバ1420のスケールイン処理の実行に合わせて、正側のDBサーバ1430の計算機リソース量を削減する。
DBサーバ1430がHA構成で組まれていると判定された場合、リソース最適化プログラム3000は、副側のDBサーバ1430の計算機リソース量及びシェア値を、スケールアップ処理の実行前の値に戻す(ステップS3820)。例えば、リソース最適化プログラム3000は、スケール管理情報T700に基づいて、Webサーバ1420のスケールイン処理の実行後のWebサーバ1420の数に応じてDBサーバ1430の計算機リソース量を戻す。このとき、リソース最適化プログラム3000は、構成変更プログラム2300等を介して、シェア値の変更をハイパバイザ400に通知する。
DBサーバ1430の停止が必要な計算機リソースの変更方法が含まれている場合、テイクオーバ処理の実行後に正側のDBサーバ1430となるDBサーバ1430の計算機リソースを変更できない可能性がある。そのため、リソース最適化プログラム3000は、テイクオーバ処理の実行前に、副側のDBサーバ1430の計算機リソースの状態をスケールアップ処理の実行される前の状態に戻す。
リソース最適化プログラム3000は、テイクオーバ処理を実行する(ステップS3830)。これによって、テナント1400に含まれるDBサーバ1430は、ステップS3200の処理が実行される前の状態に戻る。
リソース最適化プログラム3000は、テイクオーバ処理が完了した後、副側のDBサーバ1430の計算機リソース量及びシェア値を、スケールアップ処理の実行前の値に戻す(ステップS3840)。このとき、リソース最適化プログラム3000は、構成変更プログラム2300等を介して、シェア値の変更をハイパバイザ400に通知する。
ステップS3840又はステップS3860の処理の完了後、リソース最適化プログラム3000は、現在のテナント1400の構成情報を課金プログラム2400及びポータルプログラム2100に通知し(ステップS3850)、その後、ステップS3020に進む。
例えば、従量課金であり、かつ、正側のDBサーバ1430にのみ課金する課金体系の場合、課金プログラム2400にDBサーバ1430に関する情報を通知することによって、スケールダウン処理に柔軟に追従した課金が可能となる。
図21は、実施例1のテナント1400の状態を確認するために表示される画面の一例を示す説明図である。
利用者1100が、例えばWebブラウザを用いてポータル2000にアクセスした場合に、図21に示すような画面2050が表示される。
画面2050には、利用者1100が利用するテナント1400の状態を示す状態情報2060及びOKボタン2070が表示される。状態情報2060の表示項目はテナントID(2061)、パターン(2062)、種別(2063)、及び状態(2064)を含む。
テナントID(2061)はテナントID(T620)と同一のものである。パターン(2062)はパターンID(T640)と同一のものであり、パターン入力2011にて選択されたものである。種別(2063)は種別(T630)と同一のものであり、種別入力2012にて選択されたものである。
状態(2064)は、状態(T460)を要約した情報、又はリソース最適化プログラム3000によって出力されるスケールアップイベント又はスケールダウンイベント等を表示する。また、状態(2064)は、テナント1400を構成するサーバ(VM410)の計算機リソースの状態、例えば、性能管理情報T500を表示してもよい。
利用者1100は、状態情報2060を参照することによって、種別(2063)に表示された契約形態のテナント1400が正常に稼働していることを視覚的に確認することができる。
(変形例)
実施例1では、複数のテナントが1つ又は複数の物理サーバ150上に混在するマルチテナント環境のクラウドサービスを想定している。しかし、本発明は、1つ又は複数の物理サーバ150上に一つのテナント1400のみが存在するシングルテナントの環境にも適用できる。
また、実施例1では、パブリッククラウド、すなわち、事業者が複数の異なる団体に属する利用者1100のテナントが混在する環境への適用例を示した。これ以外にもプライベートクラウド、すなわち企業内で情報システム部門が各企業内部門に提供する環境にも適用できる。
また、実施例1では、IaaSを想定しているが、提供形態としてPaSSであってもよい。
また、実施例1では、業務システムとしてWeb三階層システムを前提としているが、例えば、ステップS3400の処理において、DBサーバ1430へのSQLリクエスト数の増加率等を用いることによって、DBサーバ1430単体への適用も可能である。また、DBサーバ1430は必ずしもHA構成が組まれていなくてもよい。
また、実施例1では、サーバ仮想化環境を前提としているが、物理サーバ150そのものを用いてDBサーバ1430等を構成してもよい。この場合、HA構成を組んで副側のDBサーバ1430において、DBサーバ1430の停止を伴った計算機リソースの変更を行うことによって、同様の処理を適用することができる。
本発明によれば、フロントエンド側のWebサーバ1420のスケールアウト処理等を契機とし、バックエンド側のDBサーバ1430をスケールアップ処理が可能とする。これによって、スケールアウトができない構成要素を含む業務システムにおいても、フロントエンド側の処理性能の向上に追従したバックエンド側の処理性能の向上が可能となり、システム全体として自動スケーリングが可能となる。
したがって、例えば、通信販売システムを実現するWeb三階層システムに本発明を適用した場合、等が通信販売システムを運用する事業者に対して、通信販売の利用者の機会損失等を回避でき、また、当該通信販売システムの投資コストを削減できる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROM等が用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(Javaは登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
100 管理サーバ
150 物理サーバ
200 ストレージ装置
400 ハイパバイザ
410 VM
1200 クラウドサービス
1400 テナント
1410 ロードバランサ
1420 Webサーバ
1430 DBサーバ
1440 ストレージ装置
2000 ポータル
T100 物理サーバ管理情報
T200 ストレージ管理情報
T300 論理物理構成管理情報
T400 テナント管理情報
T500 性能管理情報
T600 顧客管理情報
T700 スケール管理情報
T800 リソース変更方法管理情報
T900 システムテンプレート管理情報

Claims (15)

  1. 複数の計算機を備える計算機システムであって、
    前記複数の計算機は、前記計算機システムを管理する少なくとも一つの第1の計算機、ユーザの業務に使用する業務システムを構築するための計算機リソースを提供する複数の第2の計算機を含み、
    前記第1の計算機は、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のインタフェースを有し、
    前記複数の第2の計算機の各々は、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続される第2のインタフェース、及び記憶装置を有し、
    前記業務システムは、スケールアウト処理を実行することによって処理性能を変更できる少なくとも一つの第1の業務計算機、及びスケールアップ処理を実行することによって処理性能を変更できる複数の第2の業務計算機を含み、
    前記複数の第2の業務計算機は、実行系の第2の業務計算機及び待機系の第2の業務計算機を含むクラスタを構成し、
    前記第1の計算機は、
    第2の業務計算機に対する前記計算機リソースの割り当ての変更を制御するための複数のリソース変更方法を管理し、前記複数のリソース変更方法に基づいて前記第2の業務計算機に対する前記計算機リソースの割当てを変更するリソース最適化部を有し、
    前記リソース最適化部は、
    前記業務システムの負荷を監視し、
    前記実行系の第2の業務計算機の負荷の増大の予兆を検出した場合、前記実行系の第2の業務計算機及び前記待機系の第2の業務計算機に処理負荷が低いリソース変更方法を適用する第1の処理を実行し、
    前記実行系の第2の業務計算機の負荷を示す値が所定の閾値以上になった場合、前記実行系の第2の業務計算機及び前記待機系の第2の業務計算機に処理負荷が高いリソース変更方法を適用する第2の処理を実行することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記複数のリソース変更方法は、前記計算機リソースの種別毎の第2の業務計算機の再起動を伴わない複数の第1のリソース変更方法、及び前記計算機リソースの種別毎の前記第2の業務計算機の再起動を伴う複数の第2のリソース変更方法を含み、
    前記第1の処理では、
    前記リソース最適化部が、前記少なくとも一つの第1の業務計算機の負荷の増大を前記実行系の第2の業務計算機の負荷の増大の予兆として検出し、
    前記リソース最適化部が、前記実行系の第2の業務計算機における変更対象の前記計算機リソースの種別を特定して、前記特定された計算機リソースの種別に対応する第1のリソース変更方法を前記実行系の第2の業務計算機に適用し、
    前記リソース最適化部が、前記待機系の第2の業務計算機における変更対象の前記計算機リソースの種別を特定して、前記特定された計算機リソースの種別に対応する第2のリソース変更方法を前記待機系の第2の業務計算機に適用し、
    前記第2の処理では、前記リソース最適化部が、前記第1の計算機リソース変更方法が適用された前記実行系の第2の業務計算機と、前記第2の計算機リソース変更方法が適用された前記待機系の第2の業務計算機とを切り替える第1の切替処理を実行することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記リソース最適化部は、
    前記第1の処理及び前記第2の処理が実行された後に、前記第1の切替処理後の前記実行系の第2の業務計算機の負荷を示す値が所定の閾値より小さくなった場合、前記第1の切替処理後の前記待機系の第2の業務計算機に適用された前記リソース変更方法に応じて、当該リソース変更方法が適用される前の状態に変更するための前記第2のリソース変更方法を当該待機系の第2の業務計算機に適用し、
    前記第1の切替処理後の前記実行系の第2の業務計算機と、前記第2の計算機リソース変更方法が適用された前記第1の切替処理後の前記待機系の第2の業務計算機とを切り替える第2の切替処理を実行し、
    前記第2の切替処理の実行後の前記待機系の第2の業務計算機に適用された前記リソース変更方法に応じて、当該リソース変更方法が適用される前の状態に変更するための前記第2のリソース変更方法を当該待機系の第2の業務計算機に適用することを特徴とする計算機システム。
  4. 請求項3に記載の計算機システムであって、
    前記複数の第2の計算機の各々は、前記計算機リソースを論理的に分割することによって生成された仮想計算機を管理する仮想化部を有し、
    第1の業務計算機及び第2の業務計算機は前記仮想計算機を用いて実現され、
    前記仮想化部は、当該仮想化部が管理する複数の仮想計算機に対する前記計算機リソースの配分率を決定するためのシェア値を設定し、
    前記第1のリソース変更方法は、前記特定された計算機リソースの種別における前記シェア値を変更する変更方法であることを特徴とする計算機システム。
  5. 請求項4に記載の計算機システムであって、
    前記リソース最適化部は、
    前記第2のリソース変更方法が適用された前記待機系の第2の業務計算機に対する前記計算機リソースの配分率が最も低くなるように前記シェア値を変更し、
    前記第1の切替処理が実行された後の前記実行系の第2の業務計算機に対する前記計算機リソースの配分率が最も高くなるように前記シェア値を変更することを特徴とする計算機システム。
  6. 請求項4に記載の計算機システムであって、
    前記第1の処理では、
    前記リソース最適化部が、前記特定された計算機リソースの種別に対応する第1のリソース変更方法を前記実行系の第2の業務計算機に適用した後、前記シェア値に基づいて、前記実行系の第2の業務計算機を実現する前記仮想計算機を、当該仮想計算機が稼働する第2の計算機から他の第2の計算機に移動させるか否かを決定することを特徴とする計算機システム。
  7. 請求項1に記載の計算機システムであって、
    前記第1の計算機は、前記業務システムの利用者の利用金額を算出する課金部を有し、
    前記リソース最適化部は、前記第1の処理又は前記第2の処理の実行後に処理の結果を前記課金部に通知し、
    前記課金部は、前記通知された処理の結果に基づいて前記業務システムの利用者に対する利用金額を算出することを特徴とする計算機システム。
  8. 請求項1に記載の計算機システムであって、
    前記第1の計算機は、前記業務システムを利用するユーザに、前記第1の処理又は前記第2の処理が実行された後の前記業務システムの状態を通知するためのユーザインタフェースを有することを特徴とする計算機システム。
  9. 複数の計算機を備える計算機システムにおける計算機リソースの割当て管理方法であって、
    前記複数の計算機は、前記計算機システムを管理する少なくとも一つの第1の計算機、ユーザの業務に使用する業務システムを構築するための計算機リソースを提供する複数の第2の計算機を含み、
    前記第1の計算機は、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のインタフェースを有し、
    前記複数の第2の計算機の各々は、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続される第2のインタフェース、及び記憶装置を有し、
    前記業務システムは、スケールアウト処理を実行することによって処理性能を変更できる少なくとも一つの第1の業務計算機、及びスケールアップ処理を実行することによって処理性能を変更できる複数の第2の業務計算機を含み、
    前記複数の第2の業務計算機は、実行系の第2の業務計算機及び待機系の第2の業務計算機を含むクラスタを構成し、
    前記第1の計算機は、
    第2の業務計算機に対する前記計算機リソースの割り当ての変更を制御するための複数のリソース変更方法を管理し、前記複数のリソース変更方法に基づいて前記第2の業務計算機に対する前記計算機リソースの割当てを変更するリソース最適化部を有し、
    前記計算機リソースの割当て管理方法は、
    前記リソース最適化部が、前記業務システムの負荷を監視する第1のステップと、
    前記リソース最適化部が、前記実行系の第2の業務計算機の負荷の増大の予兆を検出した場合、前記実行系の第2の業務計算機及び前記待機系の第2の業務計算機に処理負荷が低いリソース変更方法を適用する第2のステップと、
    前記リソース最適化部が、前記実行系の第2の業務計算機の負荷を示す値が所定の閾値以上になった場合、前記実行系の第2の業務計算機及び前記待機系の第2の業務計算機に処理負荷が高いリソース変更方法を適用する第3のステップと、を含むことを特徴とする計算機リソースの割当て管理方法。
  10. 請求項9に記載の計算機リソースの割当て管理方法であって、
    前記複数のリソース変更方法は、前記計算機リソースの種別毎の第2の業務計算機の再起動を伴わない複数の第1のリソース変更方法、及び前記計算機リソースの種別毎の前記第2の業務計算機の再起動を伴う複数の第2のリソース変更方法を含み、
    前記第2のステップは、
    前記リソース最適化部が、前記少なくとも一つの第1の業務計算機の負荷の増大を前記実行系の第2の業務計算機の負荷の増大の予兆として検出する第4のステップと、
    前記リソース最適化部が、前記実行系の第2の業務計算機における変更対象の前記計算機リソースの種別を特定して、前記特定された計算機リソースの種別に対応する第1のリソース変更方法を前記実行系の第2の業務計算機に適用する第5のステップと、
    前記リソース最適化部が、前記待機系の第2の業務計算機における変更対象の前記計算機リソースの種別を特定して、前記特定された計算機リソースの種別に対応する第2のリソース変更方法を前記待機系の第2の業務計算機に適用する第6のステップと、を含み、
    前記第3のステップは、前記リソース最適化部が、前記第1の計算機リソース変更方法が適用された前記実行系の第2の業務計算機と、前記第2の計算機リソース変更方法が適用された前記待機系の第2の業務計算機とを切り替える第1の切替処理を実行する第7のステップを含むことを特徴とする計算機リソースの割当て管理方法。
  11. 請求項10に記載の計算機リソースの割当て管理方法であって、
    前記リソース最適化部が、前記第1の切替処理後の前記実行系の第2の業務計算機の負荷を示す値が所定の閾値より小さくなった場合、前記第1の切替処理後の前記待機系の第2の業務計算機に適用された前記リソース変更方法に応じて、当該リソース変更方法が適用される前の状態に変更するための前記第2のリソース変更方法を当該待機系の第2の業務計算機に適用するステップ、
    前記リソース最適化部が、前記第1の切替処理後の前記実行系の第2の業務計算機と、前記第2の計算機リソース変更方法が適用された前記第1の切替処理後の前記待機系の第2の業務計算機とを切り替える第2の切替処理を実行するステップと、
    前記リソース最適化部が、前記第2の切替処理の実行後の前記待機系の第2の業務計算機に適用された前記リソース変更方法に応じて、当該リソース変更方法が適用される前の状態に変更するための前記第2のリソース変更方法を当該待機系の第2の業務計算機に適用するステップと、を含むことを特徴とする計算機リソースの割当て管理方法。
  12. 請求項11に記載の計算機リソースの割当て管理方法であって、
    前記複数の第2の計算機の各々は、前記計算機リソースを論理的に分割することによって生成された仮想計算機を管理する仮想化部を有し、
    第1の業務計算機及び第2の業務計算機は前記仮想計算機を用いて実現され、
    前記仮想化部は、当該仮想化部が管理する複数の仮想計算機に対する前記計算機リソースの配分率を決定するためのシェア値を設定し、
    前記第1のリソース変更方法は、前記特定された計算機リソースの種別における前記シェア値を変更する変更方法であることを特徴とする計算機リソースの割当て管理方法。
  13. 請求項12に記載の計算機リソースの割当て管理方法であって、
    前記第6のステップは、前記第2のリソース変更方法が適用された前記待機系の第2の業務計算機に対する前記計算機リソースの配分率が最も低くなるように前記シェア値を変更するステップを含み、
    前記第7のステップは、前記第1の切替処理が実行された後の前記実行系の第2の業務計算機に対する前記計算機リソースの配分率が最も高くなるように前記シェア値を変更するステップを含むことを特徴とする計算機リソースの割当て管理方法。
  14. 請求項12に記載の計算機リソースの割当て管理方法であって、
    前記第5のステップは、前記シェア値に基づいて、前記実行系の第2の業務計算機を実現する前記仮想計算機を、当該仮想計算機が稼働する第2の計算機から他の第2の計算機に移動させるか否かを決定するステップを含むことを特徴とする計算機リソースの割当て管理方法。
  15. 請求項9に記載の計算機リソースの割当て管理方法であって、
    前記第1の計算機は、前記業務システムの利用者の利用金額を算出する課金部を有し、
    前記計算機リソースの割当て管理方法は、
    前記リソース最適化部が、前記第1の処理又は前記第2の処理の実行後に処理の結果を前記課金部に通知するステップと、
    前記課金部が、前記通知された処理の結果に基づいて前記業務システムの利用者に対する利用金額を算出するステップと、を含むことを特徴とする計算機リソースの割当て管理方法。
JP2014240529A 2014-11-27 2014-11-27 計算機システム及び計算機リソースの割当て管理方法 Active JP6347730B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014240529A JP6347730B2 (ja) 2014-11-27 2014-11-27 計算機システム及び計算機リソースの割当て管理方法
US14/636,212 US20160156568A1 (en) 2014-11-27 2015-03-03 Computer system and computer resource allocation management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014240529A JP6347730B2 (ja) 2014-11-27 2014-11-27 計算機システム及び計算機リソースの割当て管理方法

Publications (3)

Publication Number Publication Date
JP2016103113A true JP2016103113A (ja) 2016-06-02
JP2016103113A5 JP2016103113A5 (ja) 2017-05-18
JP6347730B2 JP6347730B2 (ja) 2018-06-27

Family

ID=56079909

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014240529A Active JP6347730B2 (ja) 2014-11-27 2014-11-27 計算機システム及び計算機リソースの割当て管理方法

Country Status (2)

Country Link
US (1) US20160156568A1 (ja)
JP (1) JP6347730B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018097708A (ja) * 2016-12-15 2018-06-21 富士通株式会社 情報処理装置、情報処理システム、情報処理プログラム及び情報処理方法
JP2019191894A (ja) * 2018-04-24 2019-10-31 株式会社日立製作所 データストアシステム及びデータストア管理方法
KR102052363B1 (ko) * 2019-07-30 2019-12-05 주식회사 제이윈파트너스 다중 데이터 기반의 실시간 빌링 데이터 자동 분산 및 스케일 아웃 시스템
JP2021073622A (ja) * 2021-02-05 2021-05-13 京セラドキュメントソリューションズ株式会社 リモート通信制御システム、セッション管理システムおよびセッション管理プログラム
WO2022038781A1 (ja) * 2020-08-21 2022-02-24 富士通株式会社 通信制御プログラム、通信制御方法および通信制御装置
US11265262B1 (en) 2021-01-06 2022-03-01 Hitachi, Ltd. Information processing system and bursting control method
JP2022056135A (ja) * 2020-09-29 2022-04-08 株式会社日立製作所 計算機システム、リソース再割当方法
US11599289B2 (en) 2020-06-19 2023-03-07 Hitachi, Ltd. Information processing apparatus and method for hybrid cloud system including hosts provided in cloud and storage apparatus provided at a location other than the cloud
WO2023101708A1 (en) * 2021-11-30 2023-06-08 Rakuten Mobile, Inc. Resource optimization for reclamation of resources

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6631322B2 (ja) * 2016-03-02 2020-01-15 富士通株式会社 リソース管理装置、リソース管理システム及びリソース管理プログラム
US11223537B1 (en) * 2016-08-17 2022-01-11 Veritas Technologies Llc Executing custom scripts from the host during disaster recovery
CN108334396B (zh) * 2017-01-19 2022-12-30 阿里巴巴集团控股有限公司 一种数据处理方法和装置、资源组的创建方法和装置
US20180241811A1 (en) * 2017-02-22 2018-08-23 Intel Corporation Identification of incompatible co-tenant pairs in cloud computing
US10417035B2 (en) 2017-12-20 2019-09-17 At&T Intellectual Property I, L.P. Virtual redundancy for active-standby cloud applications
US20210049051A1 (en) * 2018-03-02 2021-02-18 Sumitomo Electric Industries, Ltd. On-vehicle control device, control system, control method, and control program
US10817046B2 (en) 2018-12-31 2020-10-27 Bmc Software, Inc. Power saving through automated power scheduling of virtual machines
CN118519790A (zh) * 2024-07-24 2024-08-20 浙江大华技术股份有限公司 业务处理方法和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141605A (ja) * 2003-11-10 2005-06-02 Hitachi Ltd 予測に基づいた計算機リソース配分方法
JP2011258119A (ja) * 2010-06-11 2011-12-22 Hitachi Ltd クラスタ構成管理方法、管理装置及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331333A (ja) * 2000-05-18 2001-11-30 Hitachi Ltd 計算機システム及び計算機システムの制御方法
US8056076B1 (en) * 2006-03-31 2011-11-08 Vmware, Inc. Method and system for acquiring a quiesceing set of information associated with a virtual machine
US9509618B2 (en) * 2007-03-13 2016-11-29 Skype Method of transmitting data in a communication system
US9274842B2 (en) * 2010-06-29 2016-03-01 Microsoft Technology Licensing, Llc Flexible and safe monitoring of computers
JP2012099062A (ja) * 2010-11-05 2012-05-24 Hitachi Ltd サービス連携システムおよび情報処理システム
US9513939B2 (en) * 2014-05-19 2016-12-06 International Business Machines Corporation Agile VM load balancing through micro-checkpointing and multi-architecture emulation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005141605A (ja) * 2003-11-10 2005-06-02 Hitachi Ltd 予測に基づいた計算機リソース配分方法
JP2011258119A (ja) * 2010-06-11 2011-12-22 Hitachi Ltd クラスタ構成管理方法、管理装置及びプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
岸和田 隆: "徹底解剖 Oracle 10g", DB MAGAZINE, vol. 第14巻,第6号, JPN6018010450, 1 September 2004 (2004-09-01), JP, pages 032 - 037, ISSN: 0003763916 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018097708A (ja) * 2016-12-15 2018-06-21 富士通株式会社 情報処理装置、情報処理システム、情報処理プログラム及び情報処理方法
JP2019191894A (ja) * 2018-04-24 2019-10-31 株式会社日立製作所 データストアシステム及びデータストア管理方法
JP7048402B2 (ja) 2018-04-24 2022-04-05 株式会社日立製作所 データストアシステム及びデータストア管理方法
KR102052363B1 (ko) * 2019-07-30 2019-12-05 주식회사 제이윈파트너스 다중 데이터 기반의 실시간 빌링 데이터 자동 분산 및 스케일 아웃 시스템
US12061810B2 (en) 2020-06-19 2024-08-13 Hitachi, Ltd. Information processing apparatus and method in hybrid cloud system including hosts provided in cloud and storage apparatus provided at a location other than the cloud
US11599289B2 (en) 2020-06-19 2023-03-07 Hitachi, Ltd. Information processing apparatus and method for hybrid cloud system including hosts provided in cloud and storage apparatus provided at a location other than the cloud
WO2022038781A1 (ja) * 2020-08-21 2022-02-24 富士通株式会社 通信制御プログラム、通信制御方法および通信制御装置
JP2022056135A (ja) * 2020-09-29 2022-04-08 株式会社日立製作所 計算機システム、リソース再割当方法
JP7126534B2 (ja) 2020-09-29 2022-08-26 株式会社日立製作所 計算機システム、リソース再割当方法
EP4027232A1 (en) 2021-01-06 2022-07-13 Hitachi, Ltd. Information processing system and bursting control method
US11265262B1 (en) 2021-01-06 2022-03-01 Hitachi, Ltd. Information processing system and bursting control method
JP7093062B2 (ja) 2021-02-05 2022-06-29 京セラドキュメントソリューションズ株式会社 リモート通信制御システム、セッション管理システムおよびセッション管理プログラム
JP2021073622A (ja) * 2021-02-05 2021-05-13 京セラドキュメントソリューションズ株式会社 リモート通信制御システム、セッション管理システムおよびセッション管理プログラム
WO2023101708A1 (en) * 2021-11-30 2023-06-08 Rakuten Mobile, Inc. Resource optimization for reclamation of resources

Also Published As

Publication number Publication date
JP6347730B2 (ja) 2018-06-27
US20160156568A1 (en) 2016-06-02

Similar Documents

Publication Publication Date Title
JP6347730B2 (ja) 計算機システム及び計算機リソースの割当て管理方法
CN110955487B (zh) Hci环境下的vm/容器和卷配置决定方法及存储系统
AU2016238240B2 (en) Dynamic configuration of data volumes
US8694727B2 (en) First storage control apparatus and storage system management method
US8595364B2 (en) System and method for automatic storage load balancing in virtual server environments
JP2020064676A (ja) リソース配置を最適化するための適時性リソース移行
EP3179373A1 (en) Storage management method, storage management device and storage apparatus
US9400664B2 (en) Method and apparatus for offloading storage workload
US10437642B2 (en) Management system for computer system
US10241836B2 (en) Resource management in a virtualized computing environment
US8856264B2 (en) Computer system and management system therefor
US10333859B2 (en) Multi-tenant resource coordination method
US10002025B2 (en) Computer system and load leveling program
US9632718B2 (en) Converged system and storage system migration method
US20130185531A1 (en) Method and apparatus to improve efficiency in the use of high performance storage resources in data center
JP6448779B2 (ja) サーバストレージシステムを含んだ計算機システム
JP2015532734A (ja) 物理ストレージシステムを管理する管理システム、物理ストレージシステムのリソース移行先を決定する方法及び記憶媒体
US11726684B1 (en) Cluster rebalance using user defined rules
JP2024131157A (ja) 複数のストレージノードを有するストレージシステムのスケーリング管理装置及びスケーリング管理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180517

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180529

R150 Certificate of patent or registration of utility model

Ref document number: 6347730

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150