JPWO2015040728A1 - 情報処理装置,情報処理方法,プログラム - Google Patents
情報処理装置,情報処理方法,プログラム Download PDFInfo
- Publication number
- JPWO2015040728A1 JPWO2015040728A1 JP2015537513A JP2015537513A JPWO2015040728A1 JP WO2015040728 A1 JPWO2015040728 A1 JP WO2015040728A1 JP 2015537513 A JP2015537513 A JP 2015537513A JP 2015537513 A JP2015537513 A JP 2015537513A JP WO2015040728 A1 JPWO2015040728 A1 JP WO2015040728A1
- Authority
- JP
- Japan
- Prior art keywords
- storage area
- virtual machine
- virtual
- disk
- switching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
仮想計算機の記憶装置に対するアクセス効率の低下を防止する。情報処理装置は,複数の記憶部のうち第1の記憶部内の複数の記憶領域をそれぞれ複数の仮想計算機に割り当て前記複数の仮想計算機を起動する仮想化部と,前記複数の仮想計算機の何れか1つの仮想計算機による,前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第1の記憶部以外の第2の記憶部に切り換える制御部とを有する。
Description
本発明は,情報処理装置,情報処理方法,プログラム,記録媒体に関する。
1台の情報処理装置を仮想化し,1台の情報処理装置があたかも複数の情報処理装置であるかのように動作させる仮想計算機システムが提案されている。仮想計算機システムは,情報処理装置上で動作する仮想化部(仮想計算機モニタ,ハイパバイザとも呼ばれる)がCPU(Central Processing Unit),メモリ,記憶装置等の物理資源を複数の仮想計算機に割り当て,それら複数の仮想計算機を起動する。そして,複数の仮想計算機は,それぞれにインストールされたアプリケーションを実行し,各種情報処理を実行する。
仮想計算機に仮想資源として割り当てられた記憶装置におけるI/O(Input/Output)処理の負荷が高くなった場合や,この記憶装置に障害が発生した場合などの理由により,仮想計算機による記憶装置に対するアクセス効率が低下することがある。この場合,仮想計算機が実行するアプリケーションの処理能力が低下する。
仮想計算機システムでは,例えば,仮想化部が,複数の記憶装置のうち1つの記憶装置内の複数の記憶領域をそれぞれ複数の仮想計算機に割り当て複数の仮想計算機を起動することがある。この場合,複数の仮想計算機の中の特定の仮想計算機が,一時的にこの記憶装置に対して頻繁にアクセスすると,特定の仮想計算機によるこの記憶装置に対するアクセス頻度が上昇する。
そのため,この記憶装置におけるI/O処理の負荷が高くなり,特定の仮想計算機によるこの記憶装置に対するアクセス効率が低下する。さらには,特定の仮想計算機以外の仮想計算機によるこの記憶装置に対するアクセス効率も低下する。その結果,各仮想計算機がそれぞれ実行するアプリケーションの処理能力が低下する。
本実施の形態の1つの側面は,仮想計算機の記憶装置に対するアクセス効率の低下を防止することを目的とする。
本実施の形態の第1の側面は,複数の記憶部のうち第1の記憶部内の複数の記憶領域をそれぞれ複数の仮想計算機に割り当て前記複数の仮想計算機を起動する仮想化部と,前記複数の仮想計算機の何れか1つの仮想計算機による,前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第1の記憶部以外の第2の記憶部に切り換える制御部とを有する情報処理装置である。
第1の側面によれば,仮想計算機の記憶装置に対するアクセス効率の低下を防止することができる。
[第1の実施の形態]
以下,本実施の形態における情報処理装置について図1〜図12を用いて説明する。なお,以下の図の説明において,同じ要素には同一の符号を適宜付し,一度した説明を省略する。
以下,本実施の形態における情報処理装置について図1〜図12を用いて説明する。なお,以下の図の説明において,同じ要素には同一の符号を適宜付し,一度した説明を省略する。
(ハードウェア構成)
図1は,情報処理装置100のハードウェア構成を説明するブロック図の一例である。情報処理装置100は,図2以下で説明する仮想計算機を起動する。この仮想計算機は,例えばクラウドサービスで利用される。ここでクラウドサービスとは,例えば,データセンタに設置された情報処理装置などの物理資源群を,クラウド利用者とのサービス契約に基づいて仮想化し,仮想計算機や仮想ストレージ等をネットワーク経由でクラウド利用者に提供するサービスである。
図1は,情報処理装置100のハードウェア構成を説明するブロック図の一例である。情報処理装置100は,図2以下で説明する仮想計算機を起動する。この仮想計算機は,例えばクラウドサービスで利用される。ここでクラウドサービスとは,例えば,データセンタに設置された情報処理装置などの物理資源群を,クラウド利用者とのサービス契約に基づいて仮想化し,仮想計算機や仮想ストレージ等をネットワーク経由でクラウド利用者に提供するサービスである。
以下,情報処理装置100のハードウェア構成について,図1を参照して説明する。図1の情報処理装置100は,物理計算機とも呼ばれる。情報処理装置100は,図示しないバスに接続された,CPU(Central Processing Unit)11と,システムコントローラ12と,メモリモジュール13と,I/Oコントローラ14と,SW(Switch)15とを有する。
さらに,情報処理装置100は,図示しないバスに接続された,SASコントローラ16と,第1の物理ディスク161,第2の物理ディスク162〜第16j(jは3以上の整数)の物理ディスク16jとを有する。SASは,"Serial Attached SCSI(Small Computer System Interface)"の略語である。なお,物理ディスクは,記憶部,記憶装置とも呼ばれる。
さらに,情報処理装置100は,図示しないバスに接続された,ネットワークコントローラ17と,第1のNIC171と,第2のNIC172と,カードスロット18とを有する。なお,NICは," Network Interface Card "の略語である。
CPU11は,情報処理装置100の全体を制御する演算処理装置である。システムコントローラ12は,CPU11と,メモリモジュール13と,I/Oコントローラ14との間のデータ転送を制御する。メモリモジュール13は,第1のメモリ131〜第13k(kは2以上の整数)のメモリ13kを有する。第1のメモリ131〜第13kのメモリ13kは,例えばDIMM(Dual Inline Memory Module)のメモリである。そして,このメモリは,例えばDRAM(Dynamic Random Access Memory)などの半導体メモリである。第1のメモリ131〜第13kのメモリ13kは,例えば,CPU11が実行した処理の処理結果や,各種プログラムを一時的に記憶する。
I/Oコントローラ14は,システムコントローラ12の制御により,システムコントローラ12とSW15との間のデータ転送を制御する。SW15は,I/Oコントローラ14が出力したデータをスイッチングしてSASコントローラ16,ネットワークコントローラ17,カードスロット18の何れかに入力する。また,SW15は,SASコントローラ16,ネットワークコントローラ17,カードスロット18が出力したデータをI/Oコントローラ14に入力する。
SASコントローラ16は,SASインターフェイスを有する装置との接続を制御する。この装置は,例えば第1の物理ディスク161〜第16jの物理ディスク16jである。
SASコントローラ16は,SW15が出力したデータの内容に基づき記憶先の物理ディスクを第1の物理ディスク161〜第16jの物理ディスク16jの中から決定し,このデータを決定した物理ディスクに入力する。前記データが入力された物理ディスク(例えば,第1の物理ディスク161)は,この入力されたデータを記憶する。また,SASコントローラ16は,第1の物理ディスク161〜第16jの物理ディスク16jからデータを読み出し,読み出したデータをSW15に出力する。なお,SASコントローラ16に代えて,SASインターフェイス以外のインターフェイス,例えばSATA(Serial Advanced Technology Attachment)インターフェイスを有するコントローラを用いても良い。
第1の物理ディスク161〜第16jの物理ディスク16jは,例えばハードディスクドライブ(HDD:Hard Disk Drive)や,ソリッドステートドライブ(SSD:Solid State Drive)などの記憶装置である。ソリッドステートドライブは,ハードディスクドライブに比べて単位記憶容量当たりの価格が高価である。しかし,ソリッドステートドライブのデータの書き込み速度,データの読み出し速度は,ハードディスクドライブより高速である。この高価格故,ソリッドステートドライブの数は,ハードディスクドライブの数に比べて少ない。
ネットワークコントローラ17は,第1のNIC171,第2のNIC172との接続を制御する。ネットワークコントローラ17は,SW15が出力したデータを第1のNIC171,第2のNIC172の何れかに入力する。前記データが入力されたNIC(例えば,第1のNIC171)は,この入力されたデータをこのNICと接続している他の装置にケーブル(例えば,LAN(Local Area Network)ケーブル)を介して送信する。また,ネットワークコントローラ17は,第1のNIC171,第2のNIC172からデータを受信し,受信したデータをSW15に出力する。
カードスロット18は,各種カード(例えば,PCI(Peripheral Component Interconnect)カード)を装着する差し込み口である。なお,カードスロット18を介して,記録媒体に記録されたデータを読み取り,このデータを書き込む記録媒体読み取り/書き込み装置(図示しない)と情報処理装置100とを接続する構成としても良い。この記録媒体は,例えば,CD-ROM(Compact Disc Read Only Memory),DVD(Digital Versatile Disc)などの可搬型記録媒体である。
ここで,図1では,情報処理装置100が,自装置内に第1の物理ディスク161〜第16jの物理ディスク16jを備える例を示した。しかし,第1の物理ディスク161〜第16jの物理ディスク16jを情報処理装置100の外に設けても良い。また,第1の物理ディスク161〜第16jの物理ディスク16jの何れか1または複数の物理ディスクを情報処理装置100の外に設けても良い。情報処理装置100の外に設けられた物理ディスクは,外付けの物理ディスクとも呼ばれる。情報処理装置100は,カードスロット18に外部接続インターフェイス装置(例えば,SASカードやファイバーチャネルカード)を装着して,外付けの物理ディスクに接続する。
なお,図1において,各種ハードウェアの数は一例である。例えば,情報処理装置100は,複数のCPUを有していても良いし,複数のメモリモジュールを有していても良い。また,情報処理装置100は,3つ以上のNICを有していても良いし,複数のカードスロットを有していても良い。
(ソフトウェア構成)
図2は,第1の実施の形態における情報処理装置100のソフトウェア構成を説明するブロック図の一例である。なお,図2において,ソフトウェアの処理を説明するため,ハードウェア構成も図示している。
図2は,第1の実施の形態における情報処理装置100のソフトウェア構成を説明するブロック図の一例である。なお,図2において,ソフトウェアの処理を説明するため,ハードウェア構成も図示している。
情報処理装置100は,仮想化部31と,ハードウェア41と,第1の仮想計算機51〜第3の仮想計算機53と,ホストOS61とを有する。なお,OSは,"Operating System"の略語である。
仮想化部31,ホストOS61は,いわゆるソフトウェアモジュールであり,これらの実行用プログラムが図1の例えば第16jの物理ディスク16jに記憶されている。情報処理装置100の起動時に,図1のCPU11が,第16jの物理ディスク16jに記憶されている実行用プログラムを読み出し,例えばメモリモジュール13の第13kのメモリ13kに展開し,読み出したプログラムをソフトウェアモジュールとして機能させる。なお,実行用プログラムを図1で説明した記録媒体に記録してもよい。この場合,図1のCPU11が,この記録媒体から実行用プログラムを読み出す。
仮想化部31は,ハードウェア41を仮想化し仮想資源として第1の仮想計算機51〜第3の仮想計算機53のそれぞれに割り当てることにより,第1の仮想計算機51〜第3の仮想計算機53を起動する。そのため,仮想計算機の数は,情報処理装置の数や,情報処理装置内のCPUの数に依存しない。図2に示した仮想計算機の数(3つ)は,例示である。なお,仮想計算機はゲストOSとも呼ばれる。
仮想化部31は,例えば第16jの物理ディスク16jに記憶された仮想計算機の起動情報(設定情報とも呼ぶ)に基づき,仮想計算機を起動する。この起動情報は,仮想計算機に割り当てる物理資源の資源量を有する。この物理資源の資源量としては,例えばCPUのクロック周波数,メモリの容量,ハードディスクなどの物理ディスクの容量,及びネットワークの帯域幅などがある。なお,仮想化部は,仮想計算機モニタや,ハイパバイザや,仮想化ソフトウェアとも呼ばれる。
ハードウェア41は,物理資源であり,図1で説明したCPU11,メモリモジュール13,第1の物理ディスク161〜第16jの物理ディスク16jなどを有する。図2においては,本実施の形態の説明の際に参照する物理資源を図示している。すなわち,図2においては,物理資源として,CPU11と,物理メモリ131と,切り換え元物理ディスク(第1の記憶部)161と,切り換え先物理ディスク(第2の記憶部)162とを図示している。
物理メモリ131は,図1の第1のメモリ131である。切り換え元物理ディスク161は,図1の第1の物理ディスク161である。切り換え元物理ディスクに付した符号"161(sdf)"の文字列"sdf"は,図3,図7で説明する物理ディスクを一意に識別する識別子である。以下の説明において,括弧内の文字列"sdf"を適宜省略する。
切り換え先物理ディスク162は,図1の第2の物理ディスク162である。切り換え先物理ディスクに付した符号"162(sdb)"の文字列"sdb"は,図3,図7で説明する物理ディスクを一意に識別する識別子である。以下の説明において,括弧内の文字列"sdb"を適宜省略する。
第1の仮想計算機51〜第3の仮想計算機53は,仮想化部31が起動した仮想計算機である。これらの第1の仮想計算機51〜第3の仮想計算機53は,例えば物理メモリ131で動作している。第1の仮想計算機51〜第3の仮想計算機53は,それぞれにインストールされたアプリケーションを実行し,各種情報処理を実行する。
このアプリケーションの実行において,第1の仮想計算機51〜第3の仮想計算機53は,それぞれに割り当てられた物理ディスクや物理メモリの記憶領域に対してアクセスする。なお,このアプリケーションのプログラムは,例えば第16jの物理ディスク16jに記憶されている。
第1の仮想計算機51〜第3の仮想計算機53は,起動時に,それぞれ,第16jの物理ディスク16jに記憶されているアプリケーションプログラムを読み出し,それぞれに割り当てられたメモリ領域に展開して実行する。
第1の仮想計算機51は,仮想メモリ54と,仮想ディスク55とを利用してデータを記憶する。仮想メモリ54は,仮想化部31が,第1の仮想計算機51に物理メモリ131の一部の記憶領域を割り当てた状態を模式的に示している。
仮想ディスク55は,仮想化部31が,第1の仮想計算機51に切り換え元物理ディスク161の一部の記憶領域または切り換え先物理ディスク162の一部の記憶領域を割り当てた状態を模式的に示している。
ホストOS61は,第1の仮想計算機51〜第3の仮想計算機53を管理するOSである。また,ホストOS61は,仮想化部31に各種命令を行うことで,仮想計算機に割り当てる物理資源を動的に変更する。ホストOS61は,仮想計算機監視部62と,仮想ディスク制御部63と,I/O制御部65とを有する。
仮想計算機監視部62は,第1の仮想計算機51〜第3の仮想計算機53の動作状態,仮想ディスク55の入出力状態(I/O状態とも呼ぶ),切り換え元物理ディスク161,切り換え先物理ディスク162の動作状態を監視する。そして,仮想計算機監視部62は,監視結果を仮想ディスク制御部63に通知する。仮想ディスク制御部63は,仮想ディスク55を制御するための各種処理を行う。
仮想ディスク管理情報64は,例えば物理メモリ131の一部記憶領域に記憶された,仮想ディスク55を管理するための管理情報を模式的に示している。なお,仮想ディスク管理情報64については,図6〜図8で詳細に説明する。
I/O制御部65は,第1の仮想計算機51〜第3の仮想計算機53と,仮想化部31が第1の仮想計算機51〜第3の仮想計算機53に割り当てた物理資源との間のデータ転送を制御する。具体的には,I/O制御部65は,第1の仮想計算機51〜第3の仮想計算機53と,物理メモリ131,切り換え元物理ディスク161,切り換え先物理ディスク162との間のデータ転送を制御する。
仮想ディスク制御部63は,I/O制御部65を介して,物理メモリ131,切り換え元物理ディスク161,切り換え先物理ディスク162にアクセスする。
(仮想計算機の動作)
仮想化部31は,複数の仮想計算機を起動する場合,限られた物理資源を有効活用するために,同一資源を複数の仮想計算機に割り当てる。図2の例では,仮想化部31は,1つの物理ディスクである例えば切り換え元物理ディスク161の複数の記憶領域を複数の仮想計算機(例えば,第1の仮想計算機51〜第3の仮想計算機53)に対して割り当てることがある。
仮想化部31は,複数の仮想計算機を起動する場合,限られた物理資源を有効活用するために,同一資源を複数の仮想計算機に割り当てる。図2の例では,仮想化部31は,1つの物理ディスクである例えば切り換え元物理ディスク161の複数の記憶領域を複数の仮想計算機(例えば,第1の仮想計算機51〜第3の仮想計算機53)に対して割り当てることがある。
特に,複数の仮想計算機の中の例えば第1の仮想計算機51が,一時的に,切り換え元物理ディスク161に対して頻繁にアクセスすると,第1の仮想計算機51による切り換え元物理ディスク161に対するアクセス頻度が上昇する。そのため,切り換え元物理ディスク161におけるI/O処理の負荷が高くなり,第1の仮想計算機51による切り換え元物理ディスク161に対するアクセス効率が低下する。さらには,第1の仮想計算機51以外の仮想計算機(例えば,第2の仮想計算機52,第3の仮想計算機53)による切り換え元物理ディスク161に対するアクセス効率も低下する。アクセス効率が低下すると,各仮想計算機がそれぞれ実行するアプリケーションの処理能力が低下する。
また,仮想計算機システムにおいては,図3で説明するように仮想アドレスと物理アドレスとのアドレス変換を実行(I/Oエミュレーションとも呼ぶ)している。そのため,仮想計算機が,自機に割り当てられている物理ディスクに対して書き込み要求や,読み出し要求を行う場合,その応答時間が,実計算機システムに比べて長くなる。ここで,実計算機システムとは,1台の情報処理装置において,物理資源が仮想化されずに,この1台の情報処理装置が稼働しているシステムである。
前記したI/Oエミュレーションにより前記した応答時間が長くなる状態で,物理ディスクに対するアクセス効率が低下すると,仮想計算機が実行するアプリケーションの処理能力がより低下する。そのため,仮想計算機システムでは,物理ディスクに対するアクセス効率の低下を防止する必要性が実計算機システムに比べて高い。
(仮想ディスク制御部の動作説明)
そこで,仮想ディスク制御部63は,複数の仮想計算機の何れか1の仮想計算機(例えば,第1の仮想計算機51)による,第1の仮想計算機51に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,以下の処理を実行する。すなわち,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域(図2の例では,仮想ディスク55)を,切り換え元物理ディスク161から,切り換え元物理ディスク161以外の切り換え先物理ディスク162に切り換える。
そこで,仮想ディスク制御部63は,複数の仮想計算機の何れか1の仮想計算機(例えば,第1の仮想計算機51)による,第1の仮想計算機51に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,以下の処理を実行する。すなわち,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域(図2の例では,仮想ディスク55)を,切り換え元物理ディスク161から,切り換え元物理ディスク161以外の切り換え先物理ディスク162に切り換える。
複数の仮想計算機の何れかの第1の仮想計算機51が,第1の仮想計算機51に割り当てられた記憶領域へのアクセス効率が基準値から低下する状態は,以下の3つの状態を含む。
第1の状態は,第1の仮想計算機51に割り当てられた切り換え元物理ディスク161におけるビジー率が,第1の仮想計算機51に対して予め定められた基準率以上の状態である。この基準率は,例えば60%である。ビジー率とは,単位時間当たりに占める物理ディスクの稼働割合を示す。
ただし,ビジー率が瞬間的に基準率以上になった直後に,ビジー率が基準率未満になる場合がある。このようにビジー率が瞬間的に基準率以上になった場合でも,物理ディスクの切り換え処理を実行するのは無駄である。そこで,第1の状態を,第1の仮想計算機51に割り当てられた切り換え元物理ディスク161において基準率以上のビジー率が継続している時間が,第1の仮想計算機51に対して予め定められた時間以上の状態とすることが好ましい。この予め定められた時間は,例えば70秒である。
第2の状態は,現時間が第1の仮想計算機51のアクセス効率が基準値よりも低下する時間として予め定められた時間を経過する状態である。
この時間(以下,開始予約時間と適宜記す)について説明する。例えば,第1の仮想計算機51が業務用のアプリケーションを実行し,実行時において,午前0時〜午前3時の間に処理量が増大することが,業務内容から予め予測できるとする。この時間帯において,第1の仮想計算機51は,自機に割り当てられた切り換え元物理ディスク161に頻繁にアクセスを行う。切り換え元物理ディスク161に対するこの頻繁なアクセスにより,午前0時〜午前3時の間に,第1の仮想計算機51においてアクセス効率が基準値より低下する状態になるとする。
そこで,前記の例では,管理者は,前記基準値よりも低下する時間として予め定められた時間(開始予約時間)として,アクセス効率が基準値より低下する状態になる前の時間,例えば午前2時30分を定める。なお,管理者は,物理ディスクの切り換え処理の開始から完了までの時間を考慮したうえで,前記時間を決定する。
仮想ディスク制御部63は,例えば午前2時30分を経過すると,第1の仮想計算機51に割り当てる記憶領域を切り換え先物理ディスク162に切り換える。このように,仮想ディスク制御部63が,実際にアクセス効率が基準値より低下する状態になる前に,物理ディスクの切り換えを行うことで,仮想計算機の物理ディスクに対するアクセス効率の低下を防止する。そのため,第1の仮想計算機51が実行する業務用のアプリケーションの処理能力が低下することがない。
第3の状態は,切り換え元物理ディスク161に障害が発生した状態である。切り換え元物理ディスク161に何らかの障害が発生した場合,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から切り換え先物理ディスク162に切り換える。そのため,第1の仮想計算機51の稼働状態を維持したまま,障害が発生した物理ディスクの点検,修理が可能になる。
次に,切り換え先物理ディスク162について説明する。切り換え先物理ディスク162のI/O性能は,物理ディスクの切り換え時において,切り換え元物理ディスク161のI/O性能よりも高い。例えば,切り換え先物理ディスク162は,切り換え元物理ディスク161のデータ書き込み速度,データ読み出し速度よりも速いデータ書き込み速度,データ読み出し速度を有する。
そのため,第1の仮想計算機51は,物理ディスクの切り換え前に比べて,第1の仮想計算機51に割り当てられた記憶領域に対して,より高速にアクセスすることができる。
また,切り換え先物理ディスク162は,切り換え先物理ディスク162において基準率以上のビジー率が継続している時間が,切り換え元物理ディスク161において基準率以上のビジー率が継続している時間よりも短い物理ディスクである。すなわち,切り換え先物理ディスク162の稼働率は,切り換え元物理ディスク161の稼働率に比べて低い。そのため,第1の仮想計算機51は,物理ディスクの切り換え前に比べて,第1の仮想計算機51に割り当てられた記憶領域に対して,より高速にアクセスすることができる。
(物理ディスクの切り換え)
図2,図3を参照して,仮想アドレスと物理アドレスとのアドレス変換,および,物理ディスクを切り換えるための物理アドレス変更について説明する。仮想アドレスとは,仮想ディスク55におけるメモリ空間のアドレスである。物理アドレスとは,物理ディスクや物理メモリにおけるメモリ空間のアドレスである。
図2,図3を参照して,仮想アドレスと物理アドレスとのアドレス変換,および,物理ディスクを切り換えるための物理アドレス変更について説明する。仮想アドレスとは,仮想ディスク55におけるメモリ空間のアドレスである。物理アドレスとは,物理ディスクや物理メモリにおけるメモリ空間のアドレスである。
図3は,仮想アドレスと物理アドレスとのアドレス変換,および,物理ディスクを切り換えるための物理アドレス変更を説明する図の一例である。
仮想ディスク制御部63は,仮想ディスクアドレス管理テーブルT51,アドレス変換情報管理テーブルT61,物理アドレス管理テーブルT71を,例えば図1に示したメモリモジュール13の第1のメモリ131に記憶する。
仮想ディスクアドレス管理テーブルT51は,仮想計算機の仮想ディスクのアドレスを管理するテーブルである。仮想ディスクID欄CL1は,仮想計算機の仮想ディスクを一意に識別する識別子を記憶する欄である。仮想アドレス欄CL2は,仮想ディスクの先頭のアドレスを記憶する欄である。オフセット欄CL3は,仮想ディスクにおける先頭の仮想アドレスから後尾(末端)の仮想アドレスまでの差分を記憶する欄である。オフセット欄CL3のオフセットOFF32は,仮想計算機に割り当てられる物理ディスクの記憶容量に対応する。
従って,図3の例では,識別子VID128で識別される仮想ディスクは,先頭の仮想アドレスVADR256から後尾の仮想アドレス(すなわち,先頭アドレスVADR256+オフセットOFF32)までの記憶領域を有している。
アドレス変換情報管理テーブルT61は,仮想アドレスと物理アドレスとの変換情報を管理するテーブルである。アドレス変換情報管理テーブルT61は,変換ID毎に,仮想ディスクIDと,仮想アドレスと,物理アドレスとを記憶する。
変換ID欄CL4は,アドレス変換情報を一意に識別する識別子を記憶する欄である。物理アドレス欄CL5は,仮想アドレス欄CL2の仮想アドレスに対応する物理アドレスを記憶する欄である。現時点では,物理アドレス欄CL5には,物理ディスク切り換え前の物理ディスクの物理アドレス"sdf:PADRb256"が記憶されているとする。ただし,図3では,物理ディスクの切り換え前後における物理アドレスの変更を"sdf:PADRb256→sdb:PADRa256"で示している。
物理アドレス欄CL5の物理アドレス"sdf:PADRb256"は,識別子VID128で識別される仮想ディスクの先頭の仮想アドレスVADR256と一対一で対応する物理ディスクの物理アドレスを示している。ここで,物理アドレス"sdf:PADRb256"において文字列sdfは,切り換え元物理ディスク161を一意に識別する識別子を示し,文字列"PADRb256"は,切り換え元物理ディスク161の物理アドレスを示す。
仮想計算機は,仮想計算機に割り当てられた記憶領域を特定する特定情報に基づき,仮想計算機に割り当てられた記憶領域にアクセスすることができる。この特定情報とは,前記したアドレス変換情報管理テーブルT61が記憶する仮想アドレスに対応する物理アドレスである。
このアクセス方法について具体的に説明する。以下の説明において,識別子VID128の仮想ディスクは,第1の仮想計算機51の仮想ディスク55である。すなわち,第1の仮想計算機51は,仮想化部31により識別子VID128で識別される仮想ディスク55が割り当てられている。
第1の仮想計算機51が,仮想ディスク55のアドレスを指定して,この指定したアドレスに対応する物理アドレスにアクセスする場合を想定する。ここで,この指定したアドレスは,指定アドレス(仮想アドレスVADR256 + アドレスX)である。この場合,第1の仮想計算機51は,I/O制御部65に識別子VID128と指定アドレス(仮想アドレスVADR256 + アドレスX)と,指定アドレスを先頭としてアクセスする範囲Rを指定する。すなわち,第1の仮想計算機51は,仮想ディスク55において指定アドレスからアクセス範囲Rまでのメモリ空間にアクセスする。
I/O制御部65は,アドレス変換情報管理テーブルT61における識別子VID128の物理アドレス(sdf:PADRb256)に基づき,指定アドレス(仮想アドレスVADR256 + アドレスX)を物理アドレス(sdf:PADRb256+ アドレスX)に変換する。
そして,I/O制御部65は,識別子"sdf"で識別される切り換え元物理ディスク161において物理アドレス(sdf:PADRb256+ アドレスX)からアクセス範囲Rまでのメモリ空間にアクセスする。
次に,物理ディスクの切り換えによる物理アドレスの変更について説明する。仮想ディスク制御部63は,物理ディスクの切り換えにおいて,物理アドレス欄CL5における物理アドレス"sdf:PADRb256"を物理アドレス"sdb:PADRa256"に変更(書き換えとも呼ぶ)する。この変更を,アドレス変換情報管理テーブルT61の物理アドレス欄CL5において"sdf:PADRb256→sdb:PADRa256"で示している。
ここで,物理アドレス欄CL5の物理アドレス"sdb:PADRa256"は,識別子VID128で識別される仮想ディスクの先頭の仮想アドレスVADR256と一対一で対応する物理ディスクの物理アドレスを示している。物理アドレス"sdb:PADRa256"において文字列sdbは,切り換え先物理ディスク162を一意に識別する識別子を示し,文字列"PADRa256"は,切り換え先物理ディスク162の物理アドレスを示す。
仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を切り換え元物理ディスク161から切り換え先物理ディスク162に切り換える場合,前記した特定情報を,以下のように変更する。なお,前記した特定情報は,アドレス変換情報管理テーブルT61が記憶する仮想アドレスに対応する物理アドレスである。
すなわち,仮想ディスク制御部63は,第1の仮想計算機51に割り当てた切り換え元物理ディスク161における第1の記憶領域を特定する第1の特定情報から,第1の仮想計算機51に割り当てる切り換え先物理ディスク162における第2の記憶領域を特定する第2の特定情報に変更する。この第1の特定情報は,例えば物理アドレス"sdf:PADRb256"とオフセットOFF32とである。第2の特定情報は,例えば物理アドレス"sdb:PADRa256"とオフセットOFF32とである。
前記した物理アドレスの変更により,第1の仮想計算機51は,切り換え後の物理ディスクにアクセスすることができる。
物理アドレス管理テーブルT71は,仮想ディスクに対応する物理ディスクのアドレスを管理するテーブルである。物理アドレス欄CL6は,アドレス変換情報管理テーブルT61の物理アドレス欄CL5に記憶された物理アドレスを記憶する欄である。オフセット欄CL7は,仮想ディスクアドレス管理テーブルT51のオフセット欄CL3に記憶されたアドレスを記憶する欄である。
以上説明した仮想アドレスから物理アドレスへの変換処理により,第1の仮想計算機51は,切り換え元物理ディスク161や,切り換え先物理ディスク162にアクセスすることができる。
(物理ディスク切り換え処理の概略説明)
以下,図4,図5を参照して,物理ディスク切り換え処理の概略を説明する。図4,図5は,第1の実施の形態における物理ディスク切り換え処理の概略を説明する第1,第2のソフトウェアブロック図の一例である。図4,図5は,図2のソフトウェアブロック図に各処理の内容を記載した図である。図4,図5において,楕円内の符号"P数字"にて各処理を示す。
以下,図4,図5を参照して,物理ディスク切り換え処理の概略を説明する。図4,図5は,第1の実施の形態における物理ディスク切り換え処理の概略を説明する第1,第2のソフトウェアブロック図の一例である。図4,図5は,図2のソフトウェアブロック図に各処理の内容を記載した図である。図4,図5において,楕円内の符号"P数字"にて各処理を示す。
なお,図示の都合上,図2では記載した符号161で示す切り換え元物理ディスクの"(第1の記憶部)",図2では記載した符号162で示す切り換え先物理ディスクの"(第2の記憶部)"の記載を省略している。さらに,図示の都合上,図2では記載した,I/O制御部65と,物理メモリ131と切り換え元物理ディスク161と切り換え先物理ディスク162との間の矢印を省略している。まず,図4を参照して,物理ディスク切り換え処理の概略を説明する。
処理P2:仮想化部31は,仮想計算機を起動する。具体的には,仮想化部31は,複数の仮想計算機,例えば第1の仮想計算機51,第2の仮想計算機52,第3の仮想計算機53を起動する。なお,以下の説明において,特に断りが無ければ,仮想計算機とは,第1の仮想計算機51を意味する。
ここで,仮想化部31は,第1の仮想計算機51に切り換え元物理ディスク161内の記憶領域を割り当てる。仮想ディスク制御部63が第1の仮想計算機51に切り換え元物理ディスク161内の記憶領域を割り当てている状態を仮想ディスク55と切り換え元物理ディスク161とを結ぶ2本の一点鎖線で模式的に示す。また,仮想化部31は第2の仮想計算機52,第3の仮想計算機53にも,例えば,切り換え元物理ディスク161内の2つの記憶領域をそれぞれ割り当てる。なお,各記憶領域は,それぞれ重複しない。
処理P4:仮想計算機監視部62は,第1の仮想計算機51〜第3の仮想計算機53,仮想ディスク55の状態を監視する。
処理P6:仮想ディスク制御部63は,仮想計算機監視部62が実行する監視処理により,第1の仮想計算機51に割り当てられた仮想ディスク55へのアクセス効率が基準値から低下する状態(符号ALT参照)を検出する。前記状態については,図2で詳細に説明したので,その説明を省略する。
処理P8:仮想ディスク制御部63は,アクセス効率が基準値より低下する状態を検出すると,複数の物理ディスクの中から切り換え先物理ディスクを決定する。
具体的には,仮想ディスク制御部63は,複数の物理ディスクの中から,第1の仮想計算機51に割り当てられた記憶領域を有する切り換え元物理ディスク161へのアクセス効率よりも高いアクセス効率を有する物理ディスク(例えば,切り換え先物理ディスク162)を決定する。なお,切り換え先物理ディスク162については,図2で説明した。この決定の一例については,図12で説明する。
次いで,仮想ディスク制御部63は,切り換え先物理ディスク162において,第1の仮想計算機51に割り当てる一部の記憶領域を予約するように仮想化部31に指示する。仮想化部31は,この指示に応答して,切り換え先物理ディスク162内の一部記憶領域を予約記憶領域として確保する。
処理P10:仮想ディスク制御部63は,I/O制御部65を介して,仮想ディスク55に記憶されているデータを切り換え先物理ディスク162の予約記憶領域に複写する。
すなわち,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられた切り換え元物理ディスク161の第1の記憶領域(仮想ディスク55)に記憶されたデータを,切り換え先物理ディスク162の第2の記憶領域(予約記憶領域)に複写する。
ここで,前記複写中に,動作中の第1の仮想計算機51は,仮想ディスク55の記憶領域の中で既に複写が完了したデータを記憶している領域に新たにデータを書き込むことがある。従って,仮想ディスク制御部63は,この新たに書き込まれたデータを切り換え先物理ディスク162の予約記憶領域に複写して,仮想ディスク55と切り換え先物理ディスク162の予約記憶領域との同期を取る。
処理P12:ホストOS61は,物理ディスクの切り換えを実行するため,第1の仮想計算機51を一時的に停止(サスペンド)する。この一時停止により,第1の仮想計算機51は,仮想ディスク55に対するアクセスを中止し,データの書き込み処理を行わない。
処理P14:第1の仮想計算機51は,再度の同期を行う。ここで再度の同期について説明する。第1の仮想計算機51は,仮想ディスク55にデータを書き込む場合,仮想ディスク55へのデータ書き込みを指示するコマンド(以下,書き込みコマンドと記す)を生成し,I/O制御部65に発行する。I/O制御部65は,この書き込みコマンドを実行し,仮想ディスク55にデータを書き込む。
第1の仮想計算機51が一時停止する直前で,未発行の書き込みコマンドがある場合,第1の仮想計算機51は,一時停止の際に,未発行の書き込みコマンドをI/O制御部65に発行する。I/O制御部65は,この書き込みコマンドを実行し,仮想ディスク55にデータを書き込む。すると,仮想ディスク制御部63は,この書き込まれたデータを切り換え先物理ディスク162の予約記憶領域に複写して,仮想ディスク55と切り換え先物理ディスク162の予約記憶領域との同期を取る。次に,図5の説明に移る。
図5の処理P16:仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から切り換え先物理ディスク162の予約記憶領域に切り換える。
図3を参照して,物理ディスクの切り換えの具体例を説明する。ここで,切り換え先物理ディスク162の識別子は,"sdb"であり,切り換え先物理ディスク162の予約記憶領域の先頭アドレスは,"PADRa256"である。
仮想ディスク制御部63は,物理ディスクの切り換えとして,図3に示したアドレス変換情報管理テーブルT61の物理アドレス欄CL5における物理アドレス"sdf:PADRb256"を物理アドレス"sdb:PADRa256"に変更する。この変更を,物理アドレス欄CL5においては"sdf:PADRb256→sdb:PADRa256"で示している。
このように,図3に示したアドレス変換情報管理テーブルT61の物理アドレス欄CL5における物理アドレスを変更するだけで物理ディスクの切り換えが行えるため,切り換え処理の処理量が少なくなる。
図5において,前記した物理ディスクの切り換えを,仮想ディスク55と切り換え先物理ディスク162とを結ぶ2本の一点鎖線(符号P16参照)で模式的に示している。この切り換えにより,第1の仮想計算機51に割り当てる記憶領域が,切り換え元物理ディスク161から切り換え先物理ディスク162に切り換わる。
処理P18:ホストOS61は,図4の処理P12で一時停止した第1の仮想計算機51を再開(レジューム)する。
以上説明した情報処理装置によれば,仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,この記憶領域を,第1の記憶部から第2の記憶部に切り換える。この第2の記憶部は,第1の記憶部よりもアクセス効率が高い。そのため,仮想計算機の記憶部に対するアクセス効率の低下を防止することができる。
特に,第2の記憶部が,例えばソリッドステートドライブなどのデータ書き込み速度が速い物理ディスクの場合であり,この第2の記憶部に対するアクセス頻度が低い状態で,前記した記憶領域が第1の記憶部から第2の記憶部に切り換えられると以下の効果が生じる。この効果とは,仮想計算機の記憶部に対するアクセス効率が向上する効果である。
以上説明した情報処理装置によれば,複数の仮想計算機が稼働している状態において,仮想計算機毎の記憶部へのアクセス頻度に応じて,各仮想計算機に対して最適な記憶部を割り当てることができる。
以上説明した情報処理装置において,仮想化部31は,少なくともCPU11と第1の物理ディスク161などの物理ディスクとを含む物理資源を複数の仮想計算機に割り当てる。そして,仮想化部31は,複数の仮想計算機を起動し,これら複数の仮想計算機に対する物理資源の割り当てを維持したまま,複数の仮想計算機を稼働する。
以上説明した情報処理装置では,既存の物理資源(例えば,自装置内の物理ディスクまたは外付けの物理ディスク)を利用して,物理ディスクの切り換えを実行することができる。すなわち,仮想計算機の物理ディスクに対するアクセス効率の低下を防止するために,既存の物理ディスクを利用して,物理ディスクの切り換え処理をソフトウェア的に実行している。そのため,別途,ディスクアレイ装置などの物理ディスクを増設する必要がない。
そして,物理ディスクを増設する必要がないので,物理ディスクの増設費用,増設した物理ディスクの運用費用および保守費用が不要になる。また,仮想計算機の物理ディスクに対するアクセス効率の低下を防止するための必要な費用として,物理資源の増設に関係する各種費用(前記した増設費用など)は不要であり,ソフトウェアの改良費のみで済む。
その結果,設計から導入までの費用や工数,運用費用や運用工数,保守費用や保守工数を抑えて,本実施の形態の情報処理装置を有する仮想計算機システムを提供できる。
また,物理ディスクの増設が不要なので,仮想計算機システムの構築時に,前記した増設をするために,情報処理装置の外部機器接続用インターフェイスなどを別途増設する必要が無く,情報処理装置の小型化を実現できる。
なお,アクセス効率を高める手法として,ホストOS61が,図3で説明した物理アドレス変換処理を省略して,仮想計算機を物理ディスクの記憶領域に直接アクセスさせる手法もある。ここで,仮想化部31は,仮想計算機が直接アクセスする物理ディスクについては仮想化していない。この手法の場合,前記したように,直接アクセスする物理ディスクについては仮想化されておらず仮想化部31の制御下にないため,仮想計算機を他の情報処理装置に移動する,いわゆるライブマイグレーションを実行する必要があっても,ライブマイグレーションを実行できない。その結果,仮想計算機の稼働率を低下させたくない場合は,前記した手法を採用することは困難である。
[第1の実施の形態における物理ディスク切り換え処理の具体例]
次に,第1の実施の形態における物理ディスク切り換え処理の具体例を図2,図3,図6〜図12を参照して説明する。
次に,第1の実施の形態における物理ディスク切り換え処理の具体例を図2,図3,図6〜図12を参照して説明する。
(仮想ディスク管理情報)
図6〜図8は,第1の実施の形態における図2の仮想ディスク管理情報64を説明する第1〜第3の図の一例である。図6〜図8では,物理ディスクの切り換えに必要な各種管理情報が例えばテーブルに記憶(設定)されている状態を模式的に示している。仮想ディスク制御部63は,図6〜図8で示した管理情報を例えばメモリモジュール13の第1のメモリ131に記憶する。なお,以下の図6〜図8の説明において,空欄は,管理情報が記憶されていないことを示す。
図6〜図8は,第1の実施の形態における図2の仮想ディスク管理情報64を説明する第1〜第3の図の一例である。図6〜図8では,物理ディスクの切り換えに必要な各種管理情報が例えばテーブルに記憶(設定)されている状態を模式的に示している。仮想ディスク制御部63は,図6〜図8で示した管理情報を例えばメモリモジュール13の第1のメモリ131に記憶する。なお,以下の図6〜図8の説明において,空欄は,管理情報が記憶されていないことを示す。
まず,図6について説明する。図6のテーブルには,仮想計算機を一意に識別する識別子(欄CL11参照)に対応して,各識別子により識別される仮想計算機における物理ディスクの切り換えの判定などに必要な各種管理情報が記憶されている。
欄CL11は,ホストOS61が管理する仮想計算機を一意に識別する識別子を記憶する。
欄CL12は,仮想計算機識別子により識別される仮想計算機の稼働状態を記憶する。図6の仮想計算機稼働状態欄CL12において,仮想計算機毎の稼働状態として,"動作中"または"停止中"が記憶されている。
欄CL13は,仮想計算機の仮想ディスクとして割り当てられている物理ディスクにおいて,基準率以上のビジー率が継続している継続時間の閾値(時間閾値)を示す。なお,この閾値の単位は,例えば秒である。この基準率および継続時間の閾値は,仮想計算機毎に対して管理者などにより予め定められた値である。
仮想ディスク制御部63は,仮想計算機の仮想ディスクとして割り当てられている物理ディスクにおいて,基準率以上のビジー率が継続している継続時間が,基準率以上のビジー率継続時間閾値欄CL13の閾値以上になると物理ディスクの切り換え処理を開始する。仮想ディスク制御部63は,仮想計算機の起動時に,この仮想計算機に対して管理者により予め定められた閾値を基準率以上のビジー率継続時間閾値欄CL13に記憶する。
欄CL14は,物理ディスクの切り換え処理を開始する開始予約時間を記憶する。この開始予約日時は,図2で説明した仮想計算機のアクセス効率が基準値よりも低下する時間として予め定められた時間の一例である。仮想ディスク制御部63は,仮想計算機の起動時に,この仮想計算機に対して管理者により予め定められた開始予約日時を物理ディスク切り換え開始予約日時欄CL14に記憶する。
仮想ディスク制御部63は,仮想計算機の物理ディスク切り換え開始予約日時を経過すると,この仮想計算機に割り当てる物理ディスクの切り換え処理を開始する。なお,日時とは年月日および時刻を意味する。また,図6の例では,YYYYMMDDHHMMで日時を示す。ここでYYYYは4桁の西暦を意味し,MMは2桁の月(01月〜12月)を意味し,DDは2桁の日(01日〜31日)を意味する。また,HHは2桁の時間(0時〜23時),MMは2桁の分(0分〜59分)を意味する。
欄CL15は,物理ディスクの切り換え戻し処理を開始する予約日時を記憶する。仮想ディスク制御部63は,仮想計算機の物理ディスク切り換え戻し予約日時を経過すると,この仮想計算機の仮想ディスクとして割り当てられている物理ディスクの切り換え戻し処理を実行する。物理ディスクの切り換え戻し処理とは,仮想計算機に割り当てる記憶領域を,記憶部Xから記憶部X以外の記憶部Yに切り換えた後,再び,記憶部Yから記憶部Xに戻す処理を意味する。
切り換え戻し予約日時は,予め管理者により定められた日時である。開始予約日時について説明した例に基づき,切り換え戻し予約日時について説明する。例えば,仮想計算機は,午前0時〜午前3時の時間帯において,自機の仮想ディスクに頻繁にアクセスを行うとする。このような場合,午前3時以降は,仮想ディスクに頻繁にアクセスを行わない。そこで,仮想ディスク制御部63は,午前3時に,仮想計算機に割り当てる記憶領域を,切り換え先物理ディスク162から切り換え元物理ディスク161に切り換える(切り換え戻し)。
切り換え元物理ディスク161のアクセス速度は,切り換え先物理ディスク162のアクセス速度りも低速である。そして,切り換え元物理ディスク161は,切り換え先物理ディスク162に比べて,単位記憶量当たりの単価が安価である。一方,切り換え先物理ディスク162は,例えばハードディスクドライブに比べて高性能なソリッドステートドライブであり,切り換え元物理ディスク161に比べて単位記憶量当たりの単価が高価である。
前記した切り換え戻しにより,アクセス速度が高速な切り換え先物理ディスク162の空き記憶領域が増え,仮想ディスク制御部63は,増えた空き記憶領域を他の仮想計算機に割り当てることができる。そのため,アクセス速度が高速な切り換え先物理ディスク162の記憶領域を有効利用することができる。
仮想ディスク制御部63は,仮想計算機の起動時に,この仮想計算機に対して管理者により予め定められた予約日時を物理ディスク切り換え戻し予約日時欄CL15に記憶する。
欄CL16は,仮想ディスク制御部63が物理ディスクの切り換え処理を実際に開始した日時を記憶する。欄CL17は,仮想ディスク制御部63が物理ディスクの切り換え処理を実際に完了した日時を記憶する。
欄CL18は,仮想ディスク制御部63が仮想計算機に割り当てる物理ディスクを管理するテーブルが記憶されている記憶領域のアドレスを示す。例えば,仮想計算機識別子30で識別される第1の仮想計算機51に割り当てる物理ディスクを管理するテーブル(物理ディスク管理テーブル)は,メモリモジュール13の第1のメモリ131におけるアドレスVDMA2に記憶されている。このテーブルについては,図7で説明する。
欄CL19は,仮想ディスク制御部63が物理ディスクの切り換え処理を完了したか否かを示すフラグを記憶する欄である。
仮想ディスク制御部63は,仮想計算機の起動時に,この仮想計算機の物理ディスク切り換え完了フラグとして物理ディスク切り換えが未完了であることを示す"0"を物理ディスク切り換え完了フラグ欄CL19に記憶する。仮想ディスク制御部63は,仮想計算機に割り当てる物理ディスクの切り換え処理を実際に完了した時に,この仮想計算機の物理ディスク切り換え完了フラグとして物理ディスク切り換えが完了したことを示す"1"を物理ディスク切り換え完了フラグ欄CL19に記憶する。
図7のテーブルは,第1の仮想計算機51の物理ディスク管理テーブルの一例を示している。図7のテーブルは,図6で説明した仮想計算機識別子30で識別される仮想計算機(以下,第1の仮想計算機51と記す)に実際に割り当てている物理ディスクと,第1の仮想計算機51に割り当てる候補の物理ディスクを管理する情報を記憶するテーブルである。第1の仮想計算機51に割り当てる候補の物理ディスクとは,第1の仮想計算機51における物理ディスクの切り換えにおいて,切り換え先物理ディスクの候補となる物理ディスクである。
図7の例では,第1の仮想計算機51に実際に割り当ている物理ディスクは,欄CL23の識別子sdfで識別される1つの物理ディスクである。第1の仮想計算機51に割り当てる候補の物理ディスクは,欄CL23の物理ディスク識別子sdb,sdhで識別される2つの物理ディスクである。
第1の仮想計算機51に割り当てる候補の物理ディスクについては,図1で説明した物理ディスクの中から管理者が予め定めても良い。
また,第1の仮想計算機51に割り当てる候補の物理ディスクについては,図1で説明した全ての物理ディスクにおいて,第1の仮想計算機51に割り当てている物理ディスク以外の全ての物理ディスクとしても良い。ただし,第1の仮想計算機51に割り当てている物理ディスク以外の全ての物理ディスクの数が増えると,管理情報の記憶量が増えるので,記憶量に応じて適宜定めることが好ましい。図7の例では,第1の仮想計算機51に割り当てる候補の物理ディスクとして,物理ディスク識別子sdb,sdhで識別される2つの物理ディスクを例示している。
欄CL21は,第1の仮想計算機51の仮想ディスク55のパス(path)を記憶する。仮想ディスク制御部63は,仮想ディスク55のパスを仮想ディスクパス欄CL21に記憶する。仮想ディスクパス欄CL21において第1の仮想計算機51のパスは"/dev/sde1"である。
欄CL22は,第1の仮想計算機51に割り当てる物理ディスクの切り換え状態を記憶する。仮想ディスク制御部63は,第1の仮想計算機51に割り当てる候補の物理ディスクの中で,実際に物理ディスクの切り換えが行われている切り換え先物理ディスクについては,仮想ディスク切り換え状態として"切換中"を仮想ディスク切り換え状態欄CL22に記憶する。
仮想ディスク制御部63は,第1の仮想計算機51に割り当てる候補の物理ディスクの中で,切り換え中でない物理ディスクについては,仮想ディスク切り換え状態として"停止中"を仮想ディスク切り換え状態欄CL22に記憶する。仮想ディスク制御部63は,第1の仮想計算機51に実際に割り当ていている物理ディスクについては,仮想ディスク切り換え状態として"動作中"を仮想ディスク切り換え状態欄CL22に記憶する。
欄CL23は,第1の仮想計算機51に割り当てている物理ディスクと,第1の仮想計算機51に割り当てる候補の物理ディスクを一意に識別する識別子を記憶する。仮想ディスク制御部63は,第1の仮想計算機51に割り当てられている物理ディスクの識別子を,第1の仮想計算機51の起動時に物理ディスク識別子欄CL23に記憶する。そして,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられる候補の物理ディスクの識別子を,第1の仮想計算機51の起動時に物理ディスク識別子欄CL23に記憶する。図7では,識別子としてsdf,sdb,sdhが記憶されている。
欄CL24は,物理ディスク識別子で識別される物理ディスクにおいて基準率以上のビジー率が継続している時間を示す。なお,この時間の単位は秒である。仮想ディスク制御部63は,仮想計算機監視部62が監視している物理ディスク識別子sdf,sdb,sdhで識別される3つの物理ディスクのビジー率を取得し,基準率以上のビジー率が継続している時間を測定する。そして,仮想ディスク制御部63は,前記3つの物理ディスクのぞれぞれに対応して,その測定した時間を基準率以上のビジー率継続時間欄CL24に記憶する。なお,仮想ディスク制御部63は,定期的,さらに,切り換え先の物理ディスクを決定する際に,前記した基準率以上のビジー率が継続している時間を測定し,基準率以上のビジー率継続時間欄CL24に記憶する。
欄CL25は,物理ディスクの切り換えにおいて切り換える順番を記憶する欄である。仮想ディスク制御部63は,第1の仮想計算機51の起動時に割り当てられた物理ディスクに対応して順番"0"を物理ディスク切り換え順番欄CL25に記憶する。この順番"0"の物理ディスクは,切り換え元物理ディスク161である。切り換え元物理ディスク161に付された順番"0"は,不変である。
そして,仮想ディスク制御部63は,0番以外の順番"1","2"を,第1の仮想計算機51に割り当てる候補の物理ディスクに付する。仮想ディスク制御部63は,例えば,順番"0"以外の順番が付された物理ディスクの中から,最も小さい順番が付された物理ディスクを切り換え先物理ディスクとして決定する。順番"0"以外の順番については,例えば管理者が予め定めても良い。この基準としては,例えば,物理ディスクのアクセス速度が早い順に,物理ディスクの順番を付するようにしても良い。
欄CL26は,物理ディスク識別子で識別される物理ディスクにおけるデータ転送速度を示す。物理ディスクのデータ転送速度は,データ書き込み速度や,アクセス速度に相当する。データ転送速度の単位は例えば"メガバイト/秒"である。
仮想ディスク制御部63は,仮想計算機監視部62が監視している物理ディスク識別子sdf,sdb,sdhで識別される3つの物理ディスクのデータ転送速度を取得する。そして仮想ディスク制御部63は,前記3つの物理ディスクのぞれぞれに対応して,前記取得したデータ転送速度をデータ転送速度欄CL26に記憶する。
欄CL27は,物理ディスクの同期が実際に完了したか否かを示すフラグを記憶する欄である。仮想ディスク制御部63は,仮想計算機の起動時に,この仮想計算機の切り換え先物理ディスク同期完了フラグとして,同期が未完了であることを示す"0"を切り換え先物理ディスク同期完了フラグ欄CL27に記憶する。仮想ディスク制御部63は,物理ディスクの同期が実際に完了した時にこの仮想計算機の切り換え先物理ディスク同期完了フラグとして,同期が完了したことを示す"1"を切り換え先物理ディスク同期完了フラグ欄CL27に記憶する。
欄CL28は,物理ディスク識別子欄CL23に記憶されている物理ディスク識別子により識別される物理ディスクの空きディスクサイズ(空き容量とも呼ぶ)を記憶する欄である。空きディスクサイズの単位は,ギガバイト(Giga byte)である。仮想ディスク制御部63は,物理ディスクの空きディスクサイズを空きディスクサイズ欄CL28に記憶する。
欄CL29は,第1の仮想計算機51の仮想ディスク55を管理するテーブルが記憶されている記憶領域のアドレスを示す。例えば,仮想計算機識別子30で識別される第1の仮想計算機51の仮想ディスク55を管理する仮想ディスク管理テーブルは,図1に示したメモリモジュール13の第1のメモリ131におけるアドレスMCTA1に記憶されている。
図8のテーブルは,第1の仮想計算機51の仮想ディスク55を管理する仮想ディスク管理テーブルの一例を示している。図8のテーブルは,図4の処理P10などで説明した同期の際に参照される。
欄CL31は,仮想ディスク55を所定のデータサイズで分割したメモリブロック(以下,仮想ブロックと記す)を識別する識別子を記憶する欄である。この所定のデータサイズは,例えば256バイト,または,512バイトである。この仮想ブロックの識別子は,この仮想ブロックの先頭アドレスに対応している。
欄CL32は,仮想ブロック識別子欄CL31の各仮想ブロック(VPA0〜VPAx(xは正の整数))に記憶されたデータが複写先の記憶部(切り換え先物理ディスク162など)に複写されたか否かを示すフラグを記憶する欄である。仮想ディスク制御部63は,仮想計算機の起動時に,全仮想ブロックの複写済みフラグとして複写が未完了であることを示す"0"を複写済みフラグ欄CL32に記憶する。仮想ディスク制御部63は,仮想ブロックに記憶されたデータが複写先の記憶部に複写された場合,この仮想ブロックの複写済みフラグとして複写が完了したことを示す"1"を複写済みフラグ欄CL32に記憶する。
欄CL33は,各仮想ブロックに記憶されたデータが第1の仮想計算機51により書き換えられたか否かを示すフラグを記憶する欄である。この書き換えは,更新とも呼ばれる。仮想ディスク制御部63は,仮想計算機の起動時に,全仮想ブロックの更新済みフラグとして,更新がされていないことを示す"0"を図8の更新済みフラグ欄CL33に記憶する。仮想ディスク制御部63は,第1の仮想計算機51が仮想ブロックのデータを更新した場合,この仮想ブロックの更新済みフラグとして,更新がされたことを示す"1"を図8の更新済みフラグ欄CL33に記憶する。
図8において,複写済みフラグの"0→1"は,仮想ディスク制御部63が複写済みフラグを"0"から"1"に変更したことを示す。更新済みフラグの"0→1"は,仮想ディスク制御部63が更新済みフラグを"0"から"1"に変更したことを示す。なお,矢印ARについては,図10で説明する。
(物理ディスク切り換え処理の流れ)
図3,図6〜図11を参照して,物理ディスク切り換え処理の流れを説明する。図9〜図11は,第1の実施の形態における物理ディスク切り換え処理の流れを説明する第1〜第3のフローチャート図の一例である。以下の説明において,第1の仮想計算機51が物理ディスク切り換え対象の仮想計算機である。
図3,図6〜図11を参照して,物理ディスク切り換え処理の流れを説明する。図9〜図11は,第1の実施の形態における物理ディスク切り換え処理の流れを説明する第1〜第3のフローチャート図の一例である。以下の説明において,第1の仮想計算機51が物理ディスク切り換え対象の仮想計算機である。
ステップS2:ホストOS61は,物理ディスクのチェックを実行する。具体的には,ホストOS61は,仮想計算機の起動時に割り当てられる物理ディスクのチェックと,切り換え先物理ディスクの候補の物理ディスクのチェックを実行する。このチェックは,物理ディスクのディスクパス(disk path)およびディスク容量のチェックである。
ステップS4:仮想化部31は,仮想計算機を起動する。具体的には,仮想化部31は,起動対象の第1の仮想計算機51の構成定義情報に基づき,第1の仮想計算機51を起動し稼働する。次いで,仮想化部31は,第2の仮想計算機52などの他の仮想計算機の構成定義情報に基づき,これらの仮想計算機を起動し稼働する。
なお,仮想ディスク制御部63は,作成した各仮想計算機に対応して仮想ディスク管理情報64に各種管理情報を記憶する。例えば,仮想化部31が仮想計算機を作成すると,仮想ディスク制御部63は,この仮想計算機の識別子を図6の仮想計算機識別子欄CL11に記憶する。例えば,仮想化部31が5つの仮想計算機を作成した場合,仮想ディスク制御部63は,図6の仮想計算機識別子欄CL11に5つの仮想計算機を識別する識別子10,20,30,40,50を記憶する。以下の説明において,図6の仮想計算機識別子欄CL11における識別子30で識別される仮想計算機が第1の仮想計算機51である。
ここで,仮想化部31は,起動した第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161内の第1の記憶領域とする。
次いで,仮想ディスク制御部63は,起動した仮想計算機の稼働状態"動作中"を,起動した仮想計算機の識別子と対応して図6の仮想計算機稼働状態欄CL12に記憶する。次いで,仮想ディスク制御部63は,起動した仮想計算機の基準率以上のビジー率継続時間閾値を,起動した仮想計算機の識別子と対応して図6の基準率以上のビジー率継続時間閾値欄CL13に記憶する。なお,基準率以上のビジー率継続時間閾値は,仮想計算機の構成定義情報に含まれる。
次いで,仮想ディスク制御部63は,起動した仮想計算機の物理ディスク切り換え開始予約日時を起動した仮想計算機の識別子と対応して図6の物理ディスク切り換え開始予約日時欄CL14に記憶する。そして,仮想ディスク制御部63は,起動した仮想計算機の物理ディスク切り換え戻し予約日時を,起動した仮想計算機の識別子と対応して図6の物理ディスク切り換え戻し予約日時欄CL15に記憶する。なお,物理ディスク切り換え開始予約日時,物理ディスク切り換え戻し予約日時は,仮想計算機の構成定義情報に含まれる。
次いで,仮想ディスク制御部63は,起動した仮想計算機の物理ディスク切り換え完了フラグとして"0"を,起動した仮想計算機の識別子と対応して図6の物理ディスク切り換え完了フラグ欄CL19に記憶する。
次いで,仮想ディスク制御部63は,仮想ディスク制御部63は,起動した仮想計算機の物理ディスク管理テーブルのアドレスを,起動した仮想計算機の識別子と対応して図6の物理ディスク管理テーブルアドレス欄CL18に記憶する。
以下の説明では,識別子30で識別される第1の仮想計算機51の物理ディスク管理テーブル(図7)について説明する。
次いで,仮想ディスク制御部63は,起動した第1の仮想計算機51の仮想ディスク55のパスを図7の仮想ディスクパス欄CL21に記憶する。さらに,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられている切り換え元物理ディスク161の仮想ディスク切り換え状態として"動作中"を仮想ディスク切り換え状態欄CL22に記憶する。そして,仮想ディスク制御部63は,切り換え元物理ディスク161の識別子"sdf"を物理ディスク識別子欄CL23に記憶する。仮想ディスク制御部63は,第1の仮想計算機51に割り当てる候補の2つの物理ディスクの仮想ディスク切り換え状態として"停止中"を仮想ディスク切り換え状態欄CL22に記憶する。さらに,仮想ディスク制御部63は,これら2つの物理ディスクの識別子"sdb","sdh"を物理ディスク識別子欄CL23に記憶する。
以後,仮想ディスク制御部63は,図7に示したように,物理ディスク識別子"sdf","sdb","sdh"により識別される物理ディスクの継続ディスクビジー時間を基準率以上のビジー率継続時間欄CL24に記憶する。そして,仮想ディスク制御部63は,図7に示したように,物理ディスク切り換え順番を物理ディスク切り換え順番欄CL25に記憶する。
さらに,仮想ディスク制御部63は,図7に示したように,前記した物理ディスク識別子により識別される物理ディスクのデータ転送速度をデータ転送速度欄CL26に記憶する。さらに,仮想ディスク制御部63は,切り換え先物理ディスク同期完了フラグとして"0"を切り換え先物理ディスク同期完了フラグ欄CL27に記憶する。
さらに,仮想ディスク制御部63は,図7に示したように,前記した物理ディスク識別子により識別される物理ディスクの空きディスクサイズを空きディスクサイズ欄CL28に記憶する。さらに,仮想ディスク制御部63は,仮想ディスクテーブル(図8)のアドレスを仮想ディスクテーブルアドレス欄CL29に記憶する。
次いで,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられた記憶領域(仮想ディスク55)における各仮想ブロックの識別子を,図8の仮想ブロック識別子欄CL31に記憶する。仮想ディスク制御部63は,各仮想ブロック識別子に対応して複写済みフラグとして"0"を複写済みフラグ欄CL32に記憶し,更新済みフラグとして"0"を更新済みフラグ欄CL33に記憶する。
次いで,仮想ディスク制御部63は,図3に示した仮想ディスクアドレス管理テーブルT51,アドレス変換情報管理テーブルT61の仮想ディスクID欄CL1に第1の仮想計算機51の仮想ディスク55を識別する識別子"VID128"を記憶し,仮想ディスクアドレス管理テーブルT51,アドレス変換情報管理テーブルT61の仮想アドレス欄CL2に仮想アドレスVADR256を記憶する。仮想ディスク制御部63は,仮想ディスクアドレス管理テーブルT51のオフセット欄CL3にオフセットOFF32を記憶する。
仮想ディスク制御部63は,図3のアドレス変換情報管理テーブルT61の変換ID欄CL4に変換ID"DAID16"を記憶する。そして,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられた切り換え元物理ディスク161の記憶領域の先頭の物理アドレスを物理アドレス欄CL5に記憶する。この先頭の物理アドレスは,第1の仮想計算機51の仮想アドレスVADR256に対応する物理アドレス"sdf:PADRb256"である。
次いで,仮想ディスク制御部63は,図3に示した物理アドレス管理テーブルT71の物理アドレス欄CL6に前記した物理アドレス"sdf:PADRb256"を記憶し,さらに,オフセットOFF32をオフセット欄CL7に記憶する。
ステップS6:仮想ディスク制御部63は,警告障害の通知が有るか,または,切り換え指示が有るか判定する。具体的には,仮想ディスク制御部63は,仮想計算機監視部62が,切り換え元物理ディスク161からディスクに何らかの障害が発生したことを示す通知を受信したか判定する。また,仮想ディスク制御部63は,操作コマンドに基づく,任意の仮想計算機の物理ディスク切り換え指示が有ったか判定する。この操作コマンドは,管理者からの指示操作によりホストOS61から発行されるものである。管理者は,例えば,仮想計算機の稼働状態を維持したままこの仮想計算機に割り当てられている物理ディスクの点検,保守,交換を行うために,前記した指示操作を行う。
警告障害の通知が有る場合,または,切り換え指示が有る場合(ステップS6/YES),ステップS10に移り,それ以外の場合(警告障害の通知が無い場合,かつ,切り換え指示が無い場合(ステップS6/NO),ステップS8に移る。
ステップS8:仮想ディスク制御部63は,切り換え条件を満たすか判定する。具体的には,仮想ディスク制御部63は,図6の物理ディスク切り換え開始予約日時欄CL14を参照して,現在の日時が,第1の仮想計算機51の物理ディスク切り換え開始予約日時を経過したか判定する。また,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられている切り換え元物理ディスク161における基準率以上のビジー率継続時間が,基準率以上のビジー率が継続している継続時間の閾値以上か判定する。なお,基準率以上のビジー率継続時間については,図7の基準率以上のビジー率継続時間欄CL24参照。また,基準率以上のビジー率が継続している継続時間の閾値については,図6の基準率以上のビジー率継続時間閾値欄CL13を参照。
切り換え条件を満たす場合(ステップS8/YES),ステップS10に移る。切り換え条件を満たす場合とは,現在の日時が,第1の仮想計算機51の物理ディスク切り換え開始予約日時を経過している第1の場合である。または,第1の仮想計算機51に割り当てられている切り換え元物理ディスク161における基準率以上のビジー率継続時間が,基準率以上のビジー率が継続している継続時間の閾値以上の第2の場合である。
第1の仮想計算機51の場合,第1の仮想計算機51の識別子は"30"である。そして,第1の仮想計算機51に割り当てられている切り換え元物理ディスク161であり,その識別子は"sdf"である。この場合,第1の仮想計算機51の切り換え元物理ディスク161における基準率以上のビジー率継続時間は,図7の基準率以上のビジー率継続時間欄CL24によれば"80"である。そして,第1の仮想計算機51における基準率以上のビジー率が継続している継続時間の閾値については,図6の基準率以上のビジー率継続時間閾値欄CL13によれば"70"である。
従って,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられている切り換え元物理ディスク161における基準率以上のビジー率継続時間が,基準率以上のビジー率が継続している継続時間の閾値以上と判定する。すなわち,仮想ディスク制御部63は,第1の仮想計算機51について切換条件を満たすと判定する(ステップS8/YES)。
切り換え条件を満たさない場合(ステップS8/NO),ステップS6に戻る。切り換え条件を満たさない場合とは,第1の場合でない場合,かつ,第2の場合でない場合である。
ステップS10:仮想ディスク制御部63は,仮想計算機の物理ディスク切り換え処理を実行する。なお,仮想ディスク制御部63は,物理ディスクの切り換え処理の実行を開始すると,現日時を,第1の仮想計算機51の物理ディスク切り換え開始日時として物理ディスク切り換え開始日時欄CL16に記憶する。ステップS10の詳細については,図10,図11で説明する。
図10のステップS20:仮想ディスク制御部63は,切り換え先候補の物理ディスクの中から切り換え先物理ディスクを決定し,決定した物理ディスクの予約記憶領域を排他する。具体的には,仮想ディスク制御部63は,切り換え先物理ディスクの決定後,決定した物理ディスクの記憶領域の中で,第1の仮想計算機51に割り当てる一部の記憶領域を予約するように仮想化部31に指示する。仮想化部31は,この指示に応答して,前記した一部の記憶領域を予約記憶領域として確保する。この予約記憶領域の容量は,第1の仮想計算機51に既に割り当てられている切り換え元物理ディスク161の記憶領域の容量である。
仮想ディスク制御部63は,切り換え先物理ディスク162の予約記憶領域を排他して,他の仮想計算機が切り換え先物理ディスク162の予約記憶領域にデータを書き込まないように制御する。
以下に,切り換え先物理ディスクの決定,予約記憶領域の確保の一例について説明する。例えば,仮想ディスク制御部63は,図7の基準率以上のビジー率継続時間欄CL24を参照して,切り換え先物理ディスクとして,図7において基準率以上のビジー率が継続している時間が最も短い物理ディスクを決定する。図7において,継続ディスクビジー時間が最も短い(5秒)物理ディスクは,識別子"sdb"で識別される物理ディスクである。従って,仮想ディスク制御部63は,切り換え先候補の物理ディスクの中から,切り換え先物理ディスクとして,識別子"sdb"で識別される物理ディスクを決定する。識別子"sdb"で識別される物理ディスクは,図2,図4,図5で示した切り換え先物理ディスク162である。
次いで,仮想ディスク制御部63は,切り換え先物理ディスク162の記憶領域の中で,第1の仮想計算機51に割り当てる一部の記憶領域を予約するように仮想化部33に指示する。仮想化部33は,この指示に応答して,前記した一部の記憶領域を予約記憶領域として確保する。
仮想ディスク制御部63は,確保された予約記憶領域の先頭アドレスを示す物理アドレス"sdb:PADRa256"を図3の物理アドレス管理テーブルT71の物理アドレス欄CL6に記憶し,オフセットOFF32をオフセット欄CL7に記憶する。
仮想ディスク制御部63は,切り換え先物理ディスク162(識別子"sdb"で識別される物理ディスク)の仮想ディスク切り換え状態を"停止中"から"切換中"に変更する(図7の仮想ディスク切り換え状態欄CL22における"停止中→切換中"を参照)。
ステップS22:仮想ディスク制御部63は,第1の仮想計算機51の仮想ディスク55に記憶されたデータを切り換え先物理ディスク162の予約記憶領域に複写する。この複写は,図4の処理P10の複写に相当する。
ステップS22の複写について,図8を参照して説明する。ステップS22の複写において,仮想ディスク制御部63は,図8の矢印ARに示すように,仮想ブロックVP0,VPA1,VPA2…VPA100…VPAxに記憶されているデータをこの順で切り換え先物理ディスク162の予約記憶領域に複写する。同時に,仮想ディスク制御部63は,仮想ブロックの複写が完了すると,複写が完了した仮想ブロックの複写済みフラグとして"1"を図8の複写済みフラグ欄CL32に記憶する(図8の複写済みフラグ欄CL32の"0→1"参照)。ステップS22の複写完了後,ステップS24に移る。
ステップS24:仮想ディスク制御部63は,仮想ディスク55と切り換え先物理ディスク162とを同期する。この同期は,図4の処理P10の同期に相当する。この同期は,書き換えられたデータ(更新データ,差分データとも呼ぶ)の複写である。すなわち,ステップS22の複写中に,第1の仮想計算機51の指示を受けたI/O制御部65が仮想ディスク55に記憶されたデータを書き換えた場合,仮想ディスク制御部63は,書き換えたデータを切り換え先物理ディスク162に複写する。
ステップS24の同期について,図8を参照して具体的に説明する。I/O制御部65は,既に複写が完了している仮想ブロック(以下,複写完了仮想ブロックと記す)にアクセスして,複写完了仮想ブロックのデータを書き換える。
仮想ディスク制御部63は,この複写完了ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する(図8の更新済みフラグ欄CL33の"0→1"参照)。例えば,I/O制御部65が複写完了ブロックVPA1に記憶されたデータを書き換えた場合,仮想ディスク制御部63は,この複写完了ブロックVPA1の更新済みフラグとして"1"を更新済みフラグ欄CL33に記憶する(図8の符号FLG1参照)。
全仮想ブロックの複写完了後(ステップS22の完了後),仮想ディスク制御部63は先頭の複写完了ブロックVPA0から順に後尾の複写完了ブロックVPAxに至るまで(矢印AR参照),更新済みフラグ1が記憶された複写完了ブロックを特定する。そして,仮想ディスク制御部63は,特定した複写完了ブロックに記憶されたデータをこの特定した複写完了仮想ブロックに対応する切り換え先物理ディスク162の予約記憶領域に複写する。そして,仮想ディスク制御部63は,同期が完了した複写完了仮想ブロックに対応する更新済みフラグを"1"から"0"に戻す(初期化とも呼ぶ)。この特定,複写が完了すると,ステップS24の処理は完了である。
仮想ディスク制御部63は,ステップS24の複写が完了するまで,ステップS24の処理を実行する(同期開始ループL2s〜同期完了ループL2e参照)。
ステップS26:ホストOS61は,物理ディスクの切り換えを実行するため,第1の仮想計算機51を一時的に停止する。第1の仮想計算機51の一時停止については,図4の処理P12で説明したのでその説明を省略する。
ステップS28:仮想ディスク制御部63は,第1の仮想計算機51についてI/O処理待ちがあるか判定する。具体的には,図4の処理P14で説明したように,第1の仮想計算機51が一時停止した直前で,未発行の書き込みコマンドがあるか判定する。未発行の書き込みコマンドがある場合,換言すれば第1の仮想計算機51についてI/O処理待ちがある場合(ステップS28/YES),ステップS30に移る。一方,未発行の書き込みコマンドがない場合,換言すれば第1の仮想計算機51についてI/O処理待ちがない場合(ステップS28/NO),図11のステップS32に移る。
ステップS30:I/O制御部65は,この書き込みコマンドを実行し,仮想ディスク55にデータを書き込む。そして,仮想ディスク制御部63は,データが書き込まれた仮想ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する(図8の更新済みフラグ欄CL33の"0→1"参照)。
例えば,I/O制御部65が図8の複写完了ブロックVPA100に記憶されたデータを書き換えた場合,仮想ディスク制御部63は,この複写完了ブロックVPA100の更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する(図8の符号FLG2参照)。図11の説明に移る。
図11のステップS32:仮想ディスク制御部63は,仮想ディスク55と切り換え先物理ディスク162とを同期する。具体的には,仮想ディスク制御部63は,ステップS30において,仮想ディスク55に記憶されたデータが書き換えられた場合,書き換えられたデータを切り換え先物理ディスク162に複写する。他にも,図10のステップS24における同期中にさらに仮想ディスク55の仮想ブロックにおけるデータが書き換えられた場合,仮想ディスク制御部63は,書き換えられたデータを切り換え先物理ディスク162に複写する。
この複写は,ステップS24で説明した複写と同様の処理である。仮想ディスク制御部63は,ステップS32の複写が完了するまで,ステップS32の処理を実行する(同期開始ループL4s〜同期完了ループL4e参照)。
ステップS34:仮想ディスク制御部63は,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の切り換え先物理ディスク同期完了フラグとして"1"を図7の切り換え先物理ディスク同期完了フラグ欄CL27に記憶する。
仮想ディスク制御部63は,図7の例では,切り換え元物理ディスク161の識別子"sdf"に対応する切り換え先物理ディスク同期完了フラグ欄CL27に"1"を記憶する。さらに,仮想ディスク制御部63は,切り換え元物理ディスク161の識別子"sdf"に対応する仮想ディスク切り換え状態欄CL22に"停止中"を記憶する。そして,仮想ディスク制御部63は,切り換え先物理ディスク162の識別子"sdb"に対応する仮想ディスク切り換え状態欄CL22に"動作中"を記憶する。
ステップS36:仮想ディスク制御部63は,第1の仮想計算機51の物理ディスク切り換え完了フラグとして"1"を図6の物理ディスク切り換え完了フラグ欄CL19に記憶する。
ステップS38:仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から切り換え先物理ディスク162に切り換える。具体的には,仮想ディスク制御部63は,図3に示したアドレス変換情報管理テーブルT61の物理アドレス欄CL5における物理アドレス"sdf:PADRb256"を切り換え先物理ディスク162の物理アドレス"sdb:PADRa256"に変更する。
なお,仮想ディスク制御部63は,物理ディスクの切り換え処理の実行が完了すると(ステップS38が完了),現日時を,第1の仮想計算機51の物理ディスク切り換え完了日時として図6の物理ディスク切り換え完了日時欄CL17に記憶する。
ステップS40:ホストOS61は,図10のステップS26で一時停止した仮想計算機を再開する。以後,第1の仮想計算機51は,切り換え先物理ディスク162において,先頭の物理アドレス" sdb:PADRa256"から後尾の物理アドレス("sdb:PADRa256"+OFF32)までの記憶領域を仮想ディスク55として利用することができる。
第1の仮想計算機51が停止(図10のステップS26)してから再開(図11のステップS40)するまでの停止期間においては,未発行の書き込みコマンドの実行(図10のステップS30),仮想ディスク55と切り換え先物理ディスク162との同期(図11のステップS32)などの処理が実行されているだけである。換言すれば,第1の仮想計算機51の停止期間において,第1の仮想計算機51の仮想ディスク55に記憶されたデータを切り換え先物理ディスク162の予約記憶領域に複写する処理(図10のステップS22)が行われていない。この複写時間は,前記したコマンドの実行,同期にかかる時間に比べて長い。
そのため,第1の仮想計算機51を停止させて,この停止中に前記した複写処理を行う場合に比べて,第1の仮想計算機51の停止期間を短くすることができる。その結果,第1の仮想計算機51が実行するアプリケーションの停止期間を短くして,このアプリケーションの稼働率の低下を抑制できる。
なお,仮想ディスク制御部63は,更新済みフラグを参照して,仮想ディスク55と切り換え先物理ディスク162とを同期した(図10のステップS24,図11のステップS32)。しかし,同期の手法としては,他にも下記の手法を用いることができる。
この手法は,仮想ディスク制御部63が,仮想ディスク55と切り換え先物理ディスク162の予約記憶領域との差分を検出して,検出した差分を含む仮想ブロックに記憶されたデータを切り換え先物理ディスク162に複写する手法である。
(切り換え先物理ディスクの決定処理)
切り換え先物理ディスクの決定処理を,図7,図12を参照して説明する。図12は,図10のステップS20で説明した切り換え先物理ディスクの決定処理を説明するフローチャート図の一例である。仮想ディスク制御部63は,図7の物理ディスク切り換え順番欄CL25の順番に従わない場合,図12に沿って切り換え先物理ディスクを動的に決定する。
切り換え先物理ディスクの決定処理を,図7,図12を参照して説明する。図12は,図10のステップS20で説明した切り換え先物理ディスクの決定処理を説明するフローチャート図の一例である。仮想ディスク制御部63は,図7の物理ディスク切り換え順番欄CL25の順番に従わない場合,図12に沿って切り換え先物理ディスクを動的に決定する。
ステップS201:仮想ディスク制御部63は,内部カウンタを0に設定する。
ステップS202:仮想ディスク制御部63は,内部カウンタが,図7の物理ディスク管理テーブルに記憶されている物理ディスクの識別子の数以上か判定する。図7の例では,物理ディスク管理テーブルに記憶されている物理ディスクの識別子は,識別子"sdf","sdb","sdh"であり,その数は3つである。
内部カウンタが,物理ディスクの識別子の数以上でない場合(ステップS202/NO),ステップS203に移る。以下の説明では,図7の物理ディスク管理テーブルにおいて,(内部カウンタ+2)行目に記憶されている物理ディスクの管理情報を現在参照している物理ディスクの管理情報とする。例えば,内部カウンタが0の場合,図7の物理ディスク管理テーブルにおいて,上から2行目に記憶されている物理ディスクの管理情報を現在参照している物理ディスクの管理情報とする。2行目に記憶されている物理ディスクの管理情報とは,例えば物理ディスク識別子"sdf",基準率以上のビジー率が継続している時間"80",データ転送速度"100"などである。
ステップS203: 仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれる空きディスクサイズ(図7の欄CL28参照)が,切り換え元物理ディスクのディスクサイズ以上か判定する。
ステップS203における切り換え元物理ディスクのディスクサイズとは,第1の仮想計算機51に実際に割り当てられている仮想ディスク55の記憶容量と同義である。ステップS203により,切り換え先物理ディスクにおいても仮想ディスク55の記憶容量が確保されるようにしている。
現在参照している物理ディスクの管理情報に含まれるディスクサイズが,切り換え元物理ディスクのディスクサイズ以上の場合(ステップS203/YES),ステップS204に移る。
ステップS204:仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれるデータ転送速度が,図7のデータ転送速度欄CL26に記憶されているデータ転送速度の中で最大か判定する。現在参照している物理ディスクの管理情報に含まれるデータ転送速度が,図7のデータ転送速度欄CL26に記憶されているデータ転送速度の中で最大の場合(ステップS204/YES),ステップS205に移る。
このステップS204により,物理ディスクの切り換え後に,アクセス性能が向上する物理ディスクを決定している。また,ステップS204に換えて,現在参照している物理ディスクの管理情報に含まれる基準率以上のビジー率が継続している時間が,図7のデータ転送速度欄CL26に記憶されている基準率以上のビジー率が継続している時間の中で最小か判定しても良い。現在参照している物理ディスクの管理情報に含まれる基準率以上のビジー率が継続している時間が,図7のデータ転送速度欄CL26に記憶されている継続ディスクビジー時間の中で最小の場合,ステップS205に移る。
ステップS205:仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれる仮想ディスク切り換え状態(図7の欄CL22参照)が"停止中"か判定する。
現在参照している物理ディスクの管理情報に含まれる仮想ディスク切り換え状態が"停止中"の場合(ステップS205/YES),ステップS206に移る。
ステップS206:仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれる識別子により識別される物理ディスクを切り換え先物理ディスク162と決定する。ステップS206の処理後,図10のステップS22の処理に移る。
なお,ステップS203において,現在参照している物理ディスクの管理情報に含まれるディスクサイズが,切り換え元物理ディスクのディスクサイズ未満の場合(ステップS203/NO),ステップS207に移る。ステップS204において,現在参照している物理ディスクの管理情報に含まれるデータ転送速度が,図7のデータ転送速度欄CL26に記憶されているデータ転送速度の中で最大でない場合(ステップS204/NO),ステップS207に移る。ステップS205において,現在参照している物理ディスクの管理情報に含まれる仮想ディスク切り換え状態が"停止中"でない場合(ステップS205/NO),ステップS207に移る。
ステップS207:仮想ディスク制御部63は,内部カウンタを1つ増やす。ステップS207の完了後,ステップS202に移る。なお,仮想ディスク制御部63は,内部カウンタが,物理ディスクの識別子の数以上の場合(ステップS202/YES),物理ディスクの切り換え処理を終了する。なお,物理ディスクの切り換え処理を終了せずに,以下の処理を実行しても良い。例えば,仮想ディスク制御部63は,所定の時間経過後,再び,ステップS201の処理を実行する。
図7,図12を参照して,第1の仮想計算機51における物理ディスクの決定処理を具体的に説明する。ここで,図12のステップS202で説明したように図7の物理ディスク管理テーブルに記憶されている物理ディスクの識別子の数は3つである。
仮想ディスク制御部63は,内部カウンタを0に設定し(ステップS202),ステップS203に移る。仮想ディスク制御部63は,内部カウンタが0,図7の物理ディスク管理テーブルに記憶されている物理ディスクの識別子の数は3である。従って,内部カウンタが物理ディスクの識別子の数未満なので(ステップS202/NO),ステップS203に移る。
現在参照している物理ディスクの管理情報(図7の物理ディスク管理テーブルにおいて2行目)に含まれる空きディスクサイズ(欄CL28参照)は,30ギガバイトである。ここで,第1の仮想計算機51の仮想ディスク55の容量は,20ギガバイトであるとする。従って,仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれるディスクサイズが,切り換え元物理ディスクのディスクサイズ以上と判定し(ステップS203/YES),ステップS204に移る。
現在参照している物理ディスクの管理情報(図7の物理ディスク管理テーブルにおいて2行目)に含まれるデータ転送速度(欄CL26参照)は100であり,図7のデータ転送速度欄CL26に記憶されている最大のデータ転送速度は300である。
従って,仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれるデータ転送速度が,図7のデータ転送速度欄CL26に記憶されているデータ転送速度の中で最大でないと判定し(ステップS204/NO),ステップS207に移る。仮想ディスク制御部63は,内部カウンタを1つ増やして,内部カウンタを1とする(ステップS207)。
仮想ディスク制御部63は,内部カウンタが1,物理ディスク管理テーブルに記憶されている物理ディスクの識別子の数は3である。従って,内部カウンタが物理ディスクの識別子の数未満なので(ステップS202/NO),ステップS203に移る。
現在参照している物理ディスクの管理情報(図7の物理ディスク管理テーブルにおいて3行目)に含まれる空きディスクサイズ(欄CL28参照)は,60ギガバイトである。ここで,第1の仮想計算機51の仮想ディスク55の容量は,前記したように20ギガバイトであるとする。従って,仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれるディスクサイズが,切り換え元物理ディスクのディスクサイズ以上と判定し(ステップS203/YES),ステップS204に移る。
現在参照している物理ディスクの管理情報(図7の物理ディスク管理テーブルにおいて3行目)に含まれるデータ転送速度(欄CL26参照)は300であり,図7のデータ転送速度欄CL26に記憶されている最大のデータ転送速度は300である。
従って,仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれるデータ転送速度が,図7のデータ転送速度欄CL26に記憶されているデータ転送速度の中で最大であると判定し(ステップS204/YES),ステップS205に移る。
ここで,図7の仮想ディスク切り換え状態欄CL22に示すように,現在参照している物理ディスクの管理情報に含まれる仮想ディスクの切り換え状態は"停止中"(図7では,停止中→切換中であるが,この時点では"停止中"が記憶されている)である。従って,仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれる仮想ディスク切り換え状態が"停止中"と判定し(ステップS205/YES),ステップS206に移る。
仮想ディスク制御部63は,現在参照している物理ディスクの管理情報に含まれる識別子"sdb"により識別される物理ディスクを切り換え先物理ディスクと決定する(ステップS206)。
図12で説明した物理ディスクの決定処理によれば,切り換え先物理ディスクの候補の中で,最もアクセス効率が高くなる物理ディスクを決定することができる。そして,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から,アクセス効率が高くなる物理ディスク(切り換え先物理ディスク162)に切り換える。すなわち,第1の仮想計算機51は,物理ディスクの切り換え後に,自機に割り当てられた記憶領域に対して,より高速にアクセスできる。
このように,本実施の形態によれば,仮想計算機に割り当てられた記憶領域へのアクセス効率を基準値以上に戻し,仮想計算機の物理ディスクに対するアクセス効率の低下を防止することできる。そして,仮想計算機が実行するアプリケーションの処理能力の低下を防止することができる。その結果,このアプリケーションが仮想計算機の利用者に提供するデータ処理の速度低下を抑止できる。
[第2の実施の形態]
第1の実施の形態では,物理ディスクの切り換えにおいて,切り換え元物理ディスク161から切り換え先物理ディスク162へのデータの複写(いわゆるディスクコピー)が完了した後,物理ディスクの切り換えが行われた。物理ディスク切り換えの完了後,物理ディスクの切り換え対象となった仮想計算機は,切り換え先物理ディスク162の記憶領域にアクセスできる。切り換え元物理ディスク161,切り換え先物理ディスク162は,ハードディスクドライブやソリッドステートドライブであった。
第1の実施の形態では,物理ディスクの切り換えにおいて,切り換え元物理ディスク161から切り換え先物理ディスク162へのデータの複写(いわゆるディスクコピー)が完了した後,物理ディスクの切り換えが行われた。物理ディスク切り換えの完了後,物理ディスクの切り換え対象となった仮想計算機は,切り換え先物理ディスク162の記憶領域にアクセスできる。切り換え元物理ディスク161,切り換え先物理ディスク162は,ハードディスクドライブやソリッドステートドライブであった。
ここで,切り換え元物理ディスク161,切り換え先物理ディスク162が他の仮想計算機に割り当てられ,他の仮想計算機が,自機に割り当てられた切り換え元物理ディスク161や切り換え先物理ディスク162にアクセスする状態を想定する。
この状態では,切り換え元物理ディスク161や切り換え先物理ディスク162におけるI/O処理の負荷が高くなり,ディスクコピーの時間が長くなる。特に,データのコピー先である切り換え先物理ディスク162のI/O処理の負荷が高くなると,データの読み出し速度に比べてデータの書き込み速度は遅いので,ディスクコピーの時間が長くなる。また,コピーするデータの容量が大きい場合には,当然,ディスクコピーの時間が長くなる。
このように,ディスクコピーの時間が長くなるに従って,物理ディスクの切り換え完了までの時間が長くなる。すなわち,第1の仮想計算機51による切り換え元物理ディスク161に対するアクセス効率が低下した状態が長くなり,アクセス効率の低下を原因とする,第1の仮想計算機51が実行するアプリケーションの処理能力が低下する状態が長くなる。
そこで,第2の実施の形態で説明する情報処理装置は,仮想計算機が実行するアプリケーションの処理能力が低下した状態が長くなるのを防止する。
(ソフトウェア構成)
図13は,第2の実施の形態における情報処理装置100のソフトウェア構成を説明するブロック図の一例である。物理メモリ131は,第3の記憶部とも呼ばれる。図13のソフトウェアモジュールブロック図は,図2のソフトウェアモジュールブロック図に仮想ディスクメモリ域45を追加したものである。
図13は,第2の実施の形態における情報処理装置100のソフトウェア構成を説明するブロック図の一例である。物理メモリ131は,第3の記憶部とも呼ばれる。図13のソフトウェアモジュールブロック図は,図2のソフトウェアモジュールブロック図に仮想ディスクメモリ域45を追加したものである。
仮想化部31は,物理ディスクのデータ書き込み速度よりも速いデータ書き込み速度を有するDRAMなどのメモリ内の記憶領域を確保する。このメモリ内の記憶領域を仮想ディスクメモリ域と適宜記す。
仮想ディスクメモリ域45は,仮想化部31が確保した物理メモリ131の一部の記憶領域を模式的に示している。仮想ディスクメモリ域45は,仮想メモリ54とは異なる記憶領域である。仮想ディスクメモリ域45には,仮想ディスク55に記憶されているデータ,すなわち第1の仮想計算機51に割り当てられた切り換え元物理ディスク161の記憶領域に記憶されているデータが一時的に記憶される。なお,図面の構成が煩雑になるのを防ぐため,仮想ディスクメモリ域45を物理メモリ131の外側に図示している。
仮想ディスク制御部63は,第1の仮想計算機51による,第1の仮想計算機51に割り当てられた記憶領域(仮想ディスク55)へのアクセス効率が基準値よりも低下すると,以下の処理を実行する。
すなわち,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられた切り換え元物理ディスク161の第1の記憶領域に記憶されたデータを,物理メモリ131の第3の記憶領域(例えば,仮想ディスクメモリ域45)に複写する。そして,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から物理メモリ131の仮想ディスクメモリ域45に切り換える。この切り換え後,第1の仮想計算機51は,割り当てられた物理メモリ131内の仮想ディスクメモリ域45にアクセスすることができる。物理メモリ131は,物理ディスクに比べてデータ書き込み速度,データ読み出し速度が高速なので,第1の仮想計算機51によるメモリに対するアクセス効率が向上する。
仮想ディスク制御部63は,第1の仮想計算機51に物理メモリ131内の仮想ディスクメモリ域45が割り当てられている期間に,以下の複写を行う。すなわち,仮想ディスク制御部63は,この期間に,第1の仮想計算機51に既に割り当てられていた切り換え元物理ディスク161の第1の記憶領域に記憶されたデータを,切り換え先物理ディスク162の第2の記憶領域に複写する。仮想ディスク制御部63は,複写が完了すると,第1の仮想計算機51に割り当てる記憶領域を,物理メモリ131から切り換え先物理ディスク162の第2の記憶領域に切り換える。
以上説明した処理によれば,第2の実施の形態で説明する情報処理装置100は,最初に,第1の仮想計算機51の切り換え元物理ディスク161に記憶されたデータを,物理ディスクよりも高速でデータ書き込みが可能な物理メモリに複写している。すなわち,物理ディスクから物理メモリにデータが複写される。そして,情報処理装置100は,複写完了後,第1の仮想計算機51に割り当てる記憶領域を物理メモリ内の記憶領域としている。
ここで,複写先の物理メモリにおけるデータの書き込み速度は,物理ディスクのデータ書き込み速度よりも早い。そのため,第1の実施の形態で説明した,物理ディスクから物理ディスクにデータを複写する時間に比べて,物理ディスクから物理メモリにデータを複写する時間は短い。従って,第1の実施の形態で説明した物理ディスクの切り換え完了までの時間よりも,第2の実施の形態における物理ディスクから物理メモリに切り換える時間が短くなる。その結果,第1の実施の形態よりも,仮想計算機が実行するアプリケーションの処理能力が低下した状態が短くなる。
(物理ディスク切り換え処理の概略説明)
以下,図14〜図17を参照して,物理ディスク切り換え処理の概略を説明する。図14〜図17は,第2の実施の形態における物理ディスク切り換え処理の概略を説明する第1〜第4のソフトウェアブロック図の一例である。
以下,図14〜図17を参照して,物理ディスク切り換え処理の概略を説明する。図14〜図17は,第2の実施の形態における物理ディスク切り換え処理の概略を説明する第1〜第4のソフトウェアブロック図の一例である。
図14〜図17において,図4,図5と同様に,楕円内の符号"P数字"にて各処理を示す。なお,図示の都合上,図13では記載した,I/O制御部65と,物理メモリ131と切り換え元物理ディスク161と切り換え先物理ディスク162と仮想ディスクメモリ域45の間の矢印を省略している。まず,図14を参照して,物理ディスク切り換え処理の概略を説明する。
処理P3:仮想化部31は,図4の処理P2で説明したように,仮想計算機を起動する。さらに,ホストOS61は,図4で説明した処理P2に加えて,例えば,仮想計算機の起動前に,仮想ディスク用として物理メモリ131内の一部記憶領域を予約するように仮想化部31に指示する。仮想化部31は,この指示に応答して,物理メモリ131内の一部記憶領域を予約記憶領域として確保する。この確保された物理メモリ131内の予約記憶領域が仮想ディスクメモリ域45に対応する。
ここで,この予約記憶領域の先頭アドレスを物理アドレス"mem:PADRa256"とする。ここで,文字列"mem"は,物理メモリ131を一意に識別する識別子を示す。"PADRa256"は,物理メモリ131における予約記憶領域の先頭アドレスを示す。この予約記憶領域の容量は,第1の仮想計算機51に既に割り当てられている切り換え元物理ディスク161の記憶領域の容量である。
処理P4の監視処理,処理P6の検出処理については,図4で説明したので,その説明を省略する。
処理P20:仮想ディスク制御部63は,アクセス効率が基準値より低下する状態を検出すると,I/O制御部65を介して,仮想ディスク55に記憶されているデータを仮想ディスクメモリ域45に複写する。なお,前記した仮想ディスク55に記憶されているデータは,第1の仮想計算機51に割り当てられている切り換え元物理ディスク161の記憶領域に記憶されているデータである。
ここで,前記複写中に,動作中の第1の仮想計算機51は,仮想ディスク55の記憶領域の中で既に複写が完了したデータを記憶している領域に新たにデータを書き込むことがある。仮想ディスク制御部63は,この新たに書き込まれたデータを仮想ディスクメモリ域45に複写して,仮想ディスク55と仮想ディスクメモリ域45との同期を取る。
処理P22:ホストOS61は,物理ディスクの切り換えを実行するため,第1の仮想計算機51を一時的に停止する。第1の仮想計算機51の一時停止後に,仮想ディスク制御部63は,図4の処理P14で説明したように,仮想ディスク55と仮想ディスクメモリ域45との再度の同期を取る。次に,図15の説明に移る。
図15の処理P24:仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を切り換え元物理ディスク161から仮想ディスクメモリ域45に切り換える。
具体的には,仮想ディスク制御部63は,図3のアドレス変換情報管理テーブルT61の物理アドレス欄CL5における物理アドレス"sdf:PADRb256"を物理アドレス"mem:PADRa256"に変更する。前記切り換えを仮想ディスク55と仮想ディスクメモリ域45とを結ぶ2本の一点鎖線(符号P24参照)で模式的に示している。この切り換えにより,第1の仮想計算機51に割り当てる記憶領域が,切り換え元物理ディスク161から物理メモリ131に切り換わる。
処理P26:ホストOS61は,処理P22で一時停止した第1の仮想計算機51を再開する。
処理P28:仮想ディスク制御部63は,複数の物理ディスクの中から切り換え先物理ディスクを決定する。処理P28の処理は,図4の処理P8と同様の処理である。処理P8の切り換え先物理ディスクの決定処理については,図4の処理P8,図12のフローチャート図で説明したので,その説明を省略する。
処理P30:第1の仮想計算機51は,切り換え元物理ディスク161内の第1の仮想計算機51に割り当てていた記憶領域に記憶されたデータを切り換え先物理ディスク162の予約記憶領域に複写する。なお,切り換え元物理ディスク161内の第1の仮想計算機51に割り当てていた記憶領域とは,図3の例では,物理アドレス"sdf:PADRb256"から(先頭アドレスPADRb256+オフセットOFF32)までの記憶領域である。
処理P32:仮想ディスク制御部63は,仮想ディスクメモリ域45と切り換え先物理ディスク162の予約記憶領域との同期を取る。この同期について説明する。処理P26で説明した,第1の仮想計算機51の再開後,第1の仮想計算機51は,仮想ディスク55(図15の例では,仮想ディスクメモリ域45である)に新たにデータを書き込むことがある。仮想ディスク制御部63は,この書き込まれたデータを切り換え先物理ディスク162の予約記憶領域に複写して,仮想ディスク55と切り換え先物理ディスク162の予約記憶領域との同期を取る。次に,図16の説明に移る。
図16の処理P34:ホストOS61は,物理ディスクの切り換えを実行するため,第1の仮想計算機51を一時的に停止する。
処理P36:仮想ディスク制御部63は,再度の同期を行う。ここで再度の同期について説明する。図4の処理P14で説明したように,第1の仮想計算機51が一時停止した直前で,未発行の書き込みコマンドがある場合を想定する。I/O制御部65は,第1の仮想計算機51が一時停止する際に,この書き込みコマンドを実行し,仮想ディスク55にデータを書き込む。すると,仮想ディスク制御部63は,この書き込まれたデータを切り換え先物理ディスク162の予約記憶領域に複写して,仮想ディスク55と切り換え先物理ディスク162の予約記憶領域との同期を取る。次に,図17の説明に移る。
図17の処理P38:仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,物理メモリ131から切り換え先物理ディスク162に切り換える。具体的には,仮想ディスク制御部63は,図3のアドレス変換情報管理テーブルT61の物理アドレス欄CL5における物理アドレス"mem:PADRa256"を物理アドレス"sdb:PADRa256"に変更する。前記切り換えを仮想ディスク55と切り換え先物理ディスク162とを結ぶ2本の一点鎖線(符号P38参照)で模式的に示している。
処理P40:ホストOS61は,図16の処理P34で一時停止した第1の仮想計算機51を再開する。
[第2の実施の形態における物理ディスク切り換え処理の具体例]
次に,第2の実施の形態における物理ディスク切り換え処理の具体例を図13,図18〜図23を参照して説明する。
次に,第2の実施の形態における物理ディスク切り換え処理の具体例を図13,図18〜図23を参照して説明する。
(仮想ディスク管理情報)
図18は,第2の実施の形態における仮想ディスク管理情報64を説明する図の一例である。仮想ディスク管理情報64は,図6,図8,図18で示した情報を例えばメモリモジュール13の第1のメモリ131にテーブル形式で記憶する。なお,以下の図18の説明において,空欄は,情報が記憶されていないことを示す。
図18は,第2の実施の形態における仮想ディスク管理情報64を説明する図の一例である。仮想ディスク管理情報64は,図6,図8,図18で示した情報を例えばメモリモジュール13の第1のメモリ131にテーブル形式で記憶する。なお,以下の図18の説明において,空欄は,情報が記憶されていないことを示す。
図18のテーブルは,図7のテーブルに,仮想ディスクメモリ域同期完了フラグ欄CL30を追加したものである。仮想ディスク制御部63は,仮想計算機の起動時に,第1の仮想計算機51の仮想ディスクメモリ域同期完了フラグ欄CL30に,同期が未完了であることを示す"0"を記憶する。
(物理ディスク切り換え処理の流れ)
図18〜図23を参照して,物理ディスク切り換え処理の流れを説明する。図19〜図23は,第2の実施の形態における物理ディスク切り換え処理の流れを説明する第1〜第5のフローチャート図の一例である。以下の説明において,第1の仮想計算機51が物理ディスク切り換え対象の仮想計算機である。
図18〜図23を参照して,物理ディスク切り換え処理の流れを説明する。図19〜図23は,第2の実施の形態における物理ディスク切り換え処理の流れを説明する第1〜第5のフローチャート図の一例である。以下の説明において,第1の仮想計算機51が物理ディスク切り換え対象の仮想計算機である。
ステップS2:ホストOS61は,物理ディスクのチェックを実行する。なお,ステップS2の処理については,図9で説明したので,その説明を省略する。
ステップS3:仮想化部31は,物理メモリ131内の一部記憶領域を予約記憶領域として確保する。ステップS3において,仮想ディスク制御部63は,物理メモリ131のメモリ容量をチェックして,仮想ディスク用として物理メモリ131内の一部記憶領域を予約するように仮想化部31に指示する。仮想化部31は,この指示に応答して,物理メモリ131内の一部記憶領域を予約記憶領域(換言すれば,仮想ディスクメモリ域45)として確保する。ここで,仮想ディスクメモリ域45の先頭アドレスを物理アドレス"mem:PADRa256"とする。
ステップS5:仮想化部31は,図9のステップS4で説明したように,仮想計算機を起動する。例えば,仮想化部31は,起動対象の第1の仮想計算機51などの起動情報に基づき,第1の仮想計算機51などを起動し稼働する。さらに,仮想ディスク制御部63は,仮想ディスク管理情報64に各種管理情報を記憶する。なお,仮想ディスク管理情報64に各種管理情報を記憶する処理については,図9のステップS4で説明したので,その説明を省略する。仮想ディスク制御部63は,仮想ディスク管理情報64に各種管理情報を記憶する際に,図18の仮想ディスクメモリ域同期完了フラグ欄CL30に仮想ディスクメモリ域同期完了フラグとして"0"を記憶する。
以下,ステップS6,ステップS8については,図9のステップS6,ステップS8と同様なので,その説明を省略する。切り換え条件を満たす場合(ステップS8/YES),ステップS9に移る。
ステップS9:仮想ディスク制御部63は,第1の仮想計算機51以外の他の仮想計算機が仮想ディスクメモリ域45を使用中か判定する。他の仮想計算機が仮想ディスクメモリ域45を使用中の場合(ステップS9/YES),仮想化部31が他の仮想計算機に対する仮想ディスク55の割り当てを停止(解放とも呼ぶ)するまで待ち状態に入るため,ステップS6に戻る。
仮想ディスクメモリ域45を含む物理メモリ131は,単位記憶容量当たりの価格が高価なので,常時,1つの仮想計算機のみに仮想ディスクメモリ域45を確保することは,物理資源を有効活用する上で困難である。そのため,ホストOS61は,仮想ディスクメモリ域45を複数の仮想計算機で共有できるように制御している。そこで,他の仮想計算機が仮想ディスクメモリ域45を使用している場合,その使用が完了するまで待ち状態に入る。
他の仮想計算機が仮想ディスクメモリ域45を使用中でない場合(ステップS9/NO),ステップS13に移る。
ステップS13:仮想ディスク制御部63は,仮想計算機の物理ディスク切り換え処理を実行する。ステップS13の詳細については,図20〜図23で説明する。
図20のステップS50:仮想ディスク制御部63は,仮想ディスクメモリ域45を排他して,他の仮想計算機が仮想ディスクメモリ域45にデータを書き込まないように制御する。
ステップS52:仮想ディスク制御部63は,第1の仮想計算機51の仮想ディスク55に記憶されたデータを仮想ディスクメモリ域45に複写する。この複写においては,図10のステップS22で説明したように,複写が完了した仮想ディスク55の仮想ブロックの複写済みフラグとして"1"を記憶する。この複写は,図14の処理P20の複写に相当する。
ステップS54:仮想ディスク制御部63は,仮想ディスク55と仮想ディスクメモリ域45とを同期する。この同期は,書き換えられたデータの複写である。すなわち,ステップS52の複写中に,第1の仮想計算機51が仮想ディスク55に記憶されたデータを書き換えた場合,仮想ディスク制御部63は,書き換えたデータを仮想ディスクメモリ域45に複写する。仮想ディスク制御部63は,ステップS54の複写が完了するまで,ステップS54の処理を実行する(同期開始ループL6s〜同期完了ループL6e参照)。
ステップS54の処理について説明する。図10のステップS24で説明したように,I/O制御部65が,ステップS52の複写中に,複写完了仮想ブロックのデータを書き換えることがある。この書き換の際に,仮想ディスク制御部63は,この複写完了ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する。
この場合,仮想ディスク制御部63は,複写が完了した時点で,複写完了仮想ブロックにおいて書き換えられたデータを,複写完了仮想ブロックに対応する仮想ディスクメモリ域45に複写する。なお,複写完了仮想ブロックにおいて書き換えられたデータは,複写済みフラグとして"1",更新済みフラグとして"1"が記憶されている仮想ブロックに記憶されているデータである。図21の説明に移る。この同期は,図14の処理P20の同期に相当する。
図21のステップS56:ホストOS61は,物理ディスクの切り換えを実行するため,第1の仮想計算機51を一時的に停止する。
ステップS58:仮想ディスク制御部63は,第1の仮想計算機51についてI/O処理待ちがあるか判定する。ステップS58においては,第1の仮想計算機51が一時停止した直前で,未発行の書き込みコマンドがあるか判定する。なお,ステップS58については,図10のステップS28で説明したので,その説明を省略する。
未発行の書き込みコマンドがある場合,換言すれば第1の仮想計算機51についてI/O処理待ちがある場合(ステップS58/YES),ステップS60に移る。一方,未発行の書き込みコマンドがない場合,換言すれば第1の仮想計算機51についてI/O処理待ちがない場合(ステップS58/NO),ステップS62に移る。
ステップS60:I/O制御部65は,未発行の書き込みコマンドを実行し,仮想ディスクメモリ域45にデータを書き込む。
なお,I/O制御部65は,仮想ディスク55にデータを書き込んでもよい。そして,仮想ディスク制御部63は,データが書き込まれた仮想ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する。この場合,ステップS60の後で,図20のステップS54で説明したように,仮想ディスク55と仮想ディスクメモリ域45との同期を再度実行する。これは,ステップS54の同期において,同期が終了した仮想ディスク55における仮想ブロックのデータが再度書き換えられた場合に,この書き換えられたデータを仮想ディスクメモリ域45に複写するためである。
ステップS62:仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から仮想ディスクメモリ域45に切り換える。具体的には,図15の処理P24で説明したように,仮想ディスク制御部63は,図3のアドレス変換情報管理テーブルT61の物理アドレス欄CL5における物理アドレス"sdf:PADRb256"を物理アドレス"mem:PADRa256"に変更する。
ここで,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の仮想ディスクメモリ域同期完了フラグとして"1"を,図18の仮想ディスクメモリ域同期完了フラグ欄CL30に記憶する。仮想ディスクメモリ域同期完了フラグの"1"は,同期が完了したことを示す。
また,仮想ディスク制御部63は,図8の更新済みフラグ欄CL33における更新済みフラグを"1"から"0"に戻す。以後,仮想ディスク制御部63は,仮想ディスク55(仮想ディスクメモリ域45)における仮想ブロックのデータが書き換えられると,この仮想ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する。
ステップS64:ホストOS61は,ステップS56で一時停止した第1の仮想計算機51を再開する。
ステップS66:仮想ディスク制御部63は,切り換え先候補の物理ディスクの中から切り換え先物理ディスクを決定し,決定した物理ディスクの予約記憶領域を排他する。ステップS66については,図10のステップS20,図12のフローチャート図で説明したので,その説明を省略する。なお,ステップS66の処理については,例えば,仮想ディスクメモリ域の排他(図20のステップS50)の前に実行しても良い。図22の説明に移る。
図22のステップS68:仮想ディスク制御部63は,切り換え元物理ディスク161内の第1の仮想計算機51に割り当てていた記憶領域に記憶されたデータを切り換え先物理ディスク162の予約記憶領域に複写する。なお,ステップS68については,図15の処理P30で説明したので,その説明を省略する。
ステップS70:仮想ディスク制御部63は,仮想ディスク55と切り換え先物理ディスク162とを同期する。この同期について説明する。ステップS64で説明した第1の仮想計算機51の再開後からステップS68で説明した複写が完了するまでに,動作中の第1の仮想計算機51は,仮想ディスク55(図15の例では,仮想ディスクメモリ域45である)における仮想ブロックに新たにデータを書き込むことがある。この書き込みの際に仮想ディスク制御部63は,仮想ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する。
この場合,仮想ディスク制御部63は,複写が完了した時点で,仮想ブロックにおいて書き換えられたデータを,この仮想ブロックに対応する切り換え先物理ディスク162の予約記憶領域に複写する。仮想ディスク制御部63は,ステップS70の複写が完了するまで,ステップS70の処理を実行する(同期開始ループL8s〜同期完了ループL8e参照)。この同期は,図15の処理P32の同期に相当する。
ステップS72:ホストOS61は,物理ディスクの切り換えを実行するため,第1の仮想計算機51を一時的に停止する。
ステップS74:仮想ディスク制御部63は,第1の仮想計算機51についてI/O処理待ちがあるか判定する。ステップS74においては,第1の仮想計算機51が一時停止した直前で,未発行の書き込みコマンドがあるか判定する。第1の仮想計算機51についてI/O処理待ちがある場合(ステップS74/YES),ステップS76に移る。一方,第1の仮想計算機51についてI/O処理待ちがない場合(ステップS74/NO),ステップS78に移る。
ステップS76:I/O制御部65は,未発行の書き込みコマンドを実行し,仮想ディスク55にデータを書き込む。そして,仮想ディスク制御部63は,データが書き込まれた仮想ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶する。図23の説明に移る。
図23のステップS78:仮想ディスク制御部63は,仮想ディスク55と切り換え先物理ディスク162とを同期する。具体的には,仮想ディスク制御部63は,ステップS76において第1の仮想計算機51が仮想ディスク55に記憶されたデータを書き換えた場合,書き換えたデータを切り換え先物理ディスク162に複写する。この場合,図22のステップS76が完了した時点で,仮想ブロックにおいて書き換えられたデータを,この仮想ブロックに対応する切り換え先物理ディスク162の予約記憶領域に複写する。
なお,仮想ブロックにおいて書き換えられたデータは,更新済みフラグとして"1"が記憶されている仮想ブロックに記憶されているデータである。仮想ディスク制御部63は,ステップS78の複写が完了するまで,ステップS78の処理を実行する(同期開始ループL10s〜同期完了ループL10e参照)。
ステップS80:仮想ディスク制御部63は,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の切り換え先物理ディスク同期完了フラグとして"1"を図18の切り換え先物理ディスク同期完了フラグ欄CL27に記憶する。図18の例では,切り換え元物理ディスク161の識別子"sdf"に対応する切り換え先物理ディスク同期完了フラグ欄CL27に"1"を記憶する。
さらに,仮想ディスク制御部63は,切り換え元物理ディスク161の識別子"sdf"に対応する仮想ディスク切り換え状態欄CL22に"停止中"を記憶する。そして,仮想ディスク制御部63は,切り換え先物理ディスク162の識別子"sdb"に対応する仮想ディスク切り換え状態欄CL22に"動作中"を記憶する。
なお,仮想ディスク制御部63は,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の仮想ディスクメモリ域同期完了フラグとして"0"を,図18の仮想ディスクメモリ域同期完了フラグ欄CL30に記憶する。
ステップS82:仮想ディスク制御部63は,第1の仮想計算機51の物理ディスク切り換え完了フラグとして"1"を図6の物理ディスク切り換え完了フラグ欄CL19に記憶する。
ステップS84:仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を仮想ディスクメモリ域45から切り換え先物理ディスク162に切り換える。ステップS84については,図15の処理P24で説明したので,その説明を省略する。
ステップS86:仮想ディスク制御部63は,図20のステップS50において仮想ディスクメモリ域45に対して実行した排他処理を解除する。
ステップS88:ホストOS61は,図22のステップS72で一時停止した仮想計算機を再開する。
なお,仮想ディスク制御部63は,更新済みフラグを参照して,仮想ディスク55と仮想ディスクメモリ域45とを同期した(図20のステップS54)。しかし,同期の手法はこれに限定されず,例えば,仮想ディスク制御部63は,仮想ディスク55と仮想ディスクメモリ域45との差分を検出して,検出した差分を含む仮想ブロックを仮想ディスクメモリ域45に複写しても良い。
また,仮想ディスク制御部63は,更新済みフラグを参照して,仮想ディスク55と切り換え先物理ディスク162とを同期した(図20のステップS70,図23のステップS78)。しかし,同期の手法はこれに限定されず,例えば,仮想ディスク制御部63は,仮想ディスク55と切り換え先物理ディスク162の予約記憶領域との差分を検出して,検出した差分を含む仮想ブロックに記憶されたデータを切り換え先物理ディスク162に複写しても良い。
[第3の実施の形態]
第2の実施の形態では,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から仮想ディスクメモリ域45に切り換えた。その後,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,仮想ディスクメモリ域45から切り換え先物理ディスク162に切り換えた。
第2の実施の形態では,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から仮想ディスクメモリ域45に切り換えた。その後,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,仮想ディスクメモリ域45から切り換え先物理ディスク162に切り換えた。
ところで,仮想ディスク制御部63が,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から仮想ディスクメモリ域45に切り換えて,ある時間が経過した後,切り換え元物理ディスク161におけるI/O処理の負荷が低下することがある。これは,例えば,記憶領域として切り換え元物理ディスク161の一部記憶領域が割り当てられている他の仮想計算機が,アプリケーションの処理を完了し,この一部記憶領域へのアクセスが終了した場合に生じる。
このように切り換え元物理ディスク161におけるI/O処理の負荷が低下した場合に,仮想計算機に割り当てる記憶領域を,仮想ディスクメモリ域45から切り換え先物理ディスク162に切り換えるのは,無駄である。また,例えば,第1の仮想計算機51が実行しているアプリケーションの処理が完了し,仮想ディスクメモリ域45に対するアクセス頻度が低下した場合,仮想ディスクメモリ域45から切り換え先物理ディスク162に切り換えるのも無駄である。
そこで,第3の実施の形態においては,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,切り換え元物理ディスク161から物理メモリ131の仮想ディスクメモリ域45に切り換えた後,下記の状態になると,下記の処理を実行する。
ここで,前記した状態の一例としては,切り換え元物理ディスク161における基準率以上のビジー率が継続している時間が,第1の仮想計算機51に対して予め定められた時間未満になる状態である。
前記した処理とは,第1の仮想計算機51に割り当てる記憶領域を,仮想ディスクメモリ域45から切り換え元物理ディスク161に切り換える処理である。
この切り換える処理においては,仮想ディスク制御部63は,仮想ディスクメモリ域45(第3の記憶領域)に記憶されたデータと切り換え元物理ディスク161の第1の記憶領域とを同期する。そして,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を,物理メモリ131から切り換え元物理ディスク161の第1の記憶領域に切り換える(物理ディスクの切り換え戻し処理)。
(物理ディスク切り換え戻し処理の流れ)
図24〜図26を参照して,物理ディスク切り換え戻し処理の流れを説明する。図24〜図26は,第3の実施の形態における物理ディスク切り換え戻し処理の流れを説明する第1〜第3のフローチャート図の一例である。
図24〜図26を参照して,物理ディスク切り換え戻し処理の流れを説明する。図24〜図26は,第3の実施の形態における物理ディスク切り換え戻し処理の流れを説明する第1〜第3のフローチャート図の一例である。
図24のステップS100の実行の前に,既に,図19のステップS2〜図21のステップS62の処理が実行され,仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を切り換え元物理ディスク161から仮想ディスクメモリ域45に切り換えている。そして,第1の仮想計算機51の稼働が再開され(図21のステップS64),切り換え先物理ディスクの決定が開始されている(ステップS66)。そして,この決定以降に実行される処理と共に,ステップS100以降の処理が実行される。
ステップS100:仮想ディスク制御部63は,第1の仮想計算機51の起動時に予め設定された時間の経過を待つ。この時間は,管理者が予め設定する時間であり,この時間経過後に,切り換え元物理ディスク161におけるI/O処理の負荷が低下するであろうと推測できる時間である。
ステップS102:仮想ディスク制御部63は,物理ディスクの切り換え戻しができる状態か判定する。物理ディスクの切り換え戻しができる状態とは,以下の状態である。
この状態とは,第1の仮想計算機51の物理ディスク切り換えが完了していない状態である。前記状態としては,例えば,第1の仮想計算機51の物理ディスク切り換え完了フラグとして"0"が図6の物理ディスク切り換え完了フラグ欄CL19に記憶されている状態である。そして,第1の仮想計算機51に割り当てられる候補の切り換え先物理ディスク162の切り換え先物理ディスク同期完了フラグとして"0"が図18の切り換え先物理ディスク同期完了フラグ欄CL27に記憶されている状態である。
物理ディスクの切り換え戻しができない状態の場合(ステップS102/NO),ステップS100に戻る。物理ディスクの切り換え戻しができる状態の場合(ステップS102/YES),ステップS104に移る。
ステップS104:仮想ディスク制御部63は,操作コマンドによる仮想計算機の物理ディスク切り換え戻し指示があるか判定する。この操作コマンドは,管理者からの指示操作によりホストOS61から発行されるものである。なお,この指示操作については,図9のステップS6で説明したので,その説明を省略する。
操作コマンドによる仮想計算機の物理ディスク切り換え戻し指示がある場合(ステップS104/YES),ステップS108に移る。操作コマンドによる仮想計算機の物理ディスク切り換え戻し指示がない場合(ステップS104/NO),ステップS106に移る。
ステップS106:仮想ディスク制御部63は,物理ディスクの切り換え戻しを実行する条件を満たすか判定する。
物理ディスクの切り換え戻しを実行する条件とは,以下の第1の条件,または,第2の条件を満たしている場合である。第1の条件とは,現在の日時が,第1の仮想計算機51の物理ディスク切り換え戻し予約日時(図6の欄CL15参照)を経過する条件である。第2の条件とは,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の基準率以上のビジー率継続時間(図18の欄CL24参照)が,第1の仮想計算機51に対して予め定められた基準率以上のビジー率継続時間閾値(図6の欄CL13参照)未満である条件である。
なお,仮想ディスク制御部63は,複数の物理ディスクの中から,図7の物理ディスク切り換え順番欄CL25において,順番"0"が付されている物理ディスクを切り換え元物理ディスク161として決定する。
物理ディスクの切り換え戻しを実行する条件を満たす場合(ステップS106/YES),すなわち第1の条件,または,第2の条件の何れかの条件を満たす場合,ステップS108に進む。
物理ディスクの切り換え戻しを実行する条件を満さない場合(ステップS106/NO),すなわち第1の条件,および,第2の条件を満たさない場合,ステップS100に戻る。
ステップS108:仮想ディスク制御部63は,仮想ディスクメモリ域45(仮想ディスク55)と切り換え元物理ディスク161とを同期する。
仮想ディスク制御部63は,後記する期間に第1の仮想計算機51が仮想ディスク55に記憶されたデータを書き換えた場合,この書き換えたデータを切り換え元物理ディスク161に複写する。この期間とは,第1の仮想計算機51に割り当てる記憶領域が,切り換え元物理ディスク161から仮想ディスクメモリ域45に切り換えられた後(図21のステップS62後),ステップS108の同期を実行する前までの期間である。
具体的には,仮想ディスク制御部63は,仮想ディスク55において更新済みフラグとして"1"が記憶された仮想ブロックに記憶されたデータを,この仮想ブロックに対応する切り換え元物理ディスク161に複写する。
仮想ディスク制御部63は,ステップS108の複写が完了するまで,ステップS108の処理を実行する(同期開始ループL12s〜同期完了ループL12e参照)。図25の説明に移る。
図25のステップS110:ホストOS61は,物理ディスクの切り換えを実行するため,第1の仮想計算機51を一時的に停止する。
ステップS112:仮想ディスク制御部63は,第1の仮想計算機51についてI/O処理待ちがあるか判定する。ステップS112においては,第1の仮想計算機51が一時停止した直前で,未発行の書き込みコマンドがあるか判定する。第1の仮想計算機51についてI/O処理待ちがある場合(ステップS112/YES),ステップS114に移る。一方,第1の仮想計算機51についてI/O処理待ちがない場合(ステップS112/NO),ステップS116に移る。
ステップS114:I/O制御部65は,未発行の書き込みコマンドを実行し,仮想ディスクメモリ域45にデータを書き込む。ここで,仮想ディスクメモリ域45は仮想ディスク55である。
ステップS116:仮想ディスク制御部63は,ステップS108の同期中や,ステップS114において第1の仮想計算機51が仮想ディスク55に記憶されたデータを書き換えた場合,書き換えたデータを切り換え元物理ディスク161に複写する。この場合,ステップS114が完了した時点で,仮想ブロックにおいて書き換えられたデータを,この仮想ブロックに対応する切り換え元物理ディスク161の記憶領域に複写する。
なお,仮想ブロックにおいて書き換えられたデータは,更新済みフラグとして"1"が記憶されている仮想ブロックに記憶されているデータである。ステップS116の複写が完了するまで,ステップS116の処理を実行する(同期開始ループL14s〜同期完了ループL14e参照)。図26の説明に移る。
図26のステップS118: 仮想ディスク制御部63は,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の仮想ディスクメモリ域同期完了フラグとして"0"を,図18の仮想ディスクメモリ域同期完了フラグ欄CL30に記憶する。
ステップS120: 仮想ディスク制御部63は,第1の仮想計算機51に割り当てる記憶領域を仮想ディスクメモリ域45から切り換え元物理ディスク161に切り換える。具体的には,仮想ディスク制御部63は,図3のアドレス変換情報管理テーブルT61の物理アドレス欄CL5における物理アドレス"mem:PADRa256"を物理アドレス"sdf:PADRb256"に変更する。
ステップS122: 仮想ディスク制御部63は,仮想ディスクメモリ域45に対して実行した排他処理を解除する。
ステップS124: ホストOS61は,図23のステップS72で一時停止した仮想計算機を再開する。
前記した切り換え戻しにより,アクセス速度が物理ディスクよりも高い物理メモリ131の空き記憶領域が増え,仮想ディスク制御部63は,増えた空き記憶領域を他の仮想計算機に割り当てることができる。そのため,アクセス速度が物理ディスクよりも高い物理メモリ131を有効利用することができる。
[切り換え戻し処理]
第1,第2の実施の形態で説明した物理ディスクの切り換え後,切り換え元物理ディスク161におけるI/O処理の負荷が低下した場合に,仮想計算機に切り換え先物理ディスク162を割り当てる状態を継続するのは物理資源の有効利用の観点からすれば無駄である。何故なら,切り換え先物理ディスク162は,通常,ソリッドステートドライブなどの高性能な物理ディスクであり,費用の面から,このような高性能な物理ディスクの数が少ないからである。
第1,第2の実施の形態で説明した物理ディスクの切り換え後,切り換え元物理ディスク161におけるI/O処理の負荷が低下した場合に,仮想計算機に切り換え先物理ディスク162を割り当てる状態を継続するのは物理資源の有効利用の観点からすれば無駄である。何故なら,切り換え先物理ディスク162は,通常,ソリッドステートドライブなどの高性能な物理ディスクであり,費用の面から,このような高性能な物理ディスクの数が少ないからである。
(第1の実施の形態における物理ディスクの切り換え戻し)
そこで,第1の実施の形態においては,以下の場合に,仮想ディスク制御部63は,物理ディスクの切り換え戻しを実行する。以下の場合とは,物理ディスクの切り換え完了後,物理ディスクの切り換え戻しを実行する条件を満たす場合(図24のステップS106/YES),または,切り換え戻し指示がある場合(図24のステップS104/YES)である。
そこで,第1の実施の形態においては,以下の場合に,仮想ディスク制御部63は,物理ディスクの切り換え戻しを実行する。以下の場合とは,物理ディスクの切り換え完了後,物理ディスクの切り換え戻しを実行する条件を満たす場合(図24のステップS106/YES),または,切り換え戻し指示がある場合(図24のステップS104/YES)である。
仮想ディスク制御部63は,物理ディスクの切り換え戻しにおいて,切り換え先物理ディスク162の第2の記憶領域(仮想ディスク55)に記憶されたデータと,切り換え元物理ディスク161の第1の記憶領域に記憶されたデータとを同期する。切り換え元物理ディスク161の第1の記憶領域は,物理ディスクの切り換え前に,第1の仮想計算機51に割り当てられていた記憶領域である。
この同期の手法として以下の3つの手法の何れかの手法を用いる。まず,第1の手法について説明する。
仮想ディスク制御部63は,仮想ディスク55において,更新済みフラグとして"1"が記憶されている仮想ブロックに記憶されたデータを,この仮想ブロックに対応する切り換え元物理ディスク161の記憶領域に複写する。なお,仮想ディスク制御部63は,物理ディスクの切り換え後(図11のステップS38完了後)に,仮想ディスク55の仮想ブロックに記憶されたデータが書き換えられた場合,この仮想ブロックの更新済みフラグとして"1"を図8の更新済みフラグ欄CL33に記憶している。
第2の手法は,仮想ディスク制御部63が,仮想ディスク55と,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の第1の記憶領域との差分を検出して,検出した差分を含む仮想ブロックに記憶されたデータを切り換え元物理ディスク161に複写する手法である。
第3の手法は,仮想ディスク制御部63が,図10のステップS20〜図11のステップS40で説明した処理において,切り換え元物理ディスク161と,切り換え先物理ディスク162とを入れ換えた物理ディスクの切り換え処理を行う手法である。すなわち,仮想ディスク制御部63が,第1の仮想計算機51に割り当てる記憶領域を,切り換え先物理ディスク162から切り換え元物理ディスク161に切り換える処理を実行する。
(第2の実施の形態における物理ディスクの切り換え戻し)
次に,第2の実施の形態における物理ディスクの切り換え戻し処理を図27を参照して説明する。図27は,第2の実施の形態における物理ディスクの切り換え戻し処理を説明するフローチャート図の一例である。図27の処理に入る前に,図9で説明したように,仮想化部31は,物理メモリ131内の一部記憶領域を予約記憶領域(換言すれば,仮想ディスクメモリ域45)として確保している(図9のステップS3)。
次に,第2の実施の形態における物理ディスクの切り換え戻し処理を図27を参照して説明する。図27は,第2の実施の形態における物理ディスクの切り換え戻し処理を説明するフローチャート図の一例である。図27の処理に入る前に,図9で説明したように,仮想化部31は,物理メモリ131内の一部記憶領域を予約記憶領域(換言すれば,仮想ディスクメモリ域45)として確保している(図9のステップS3)。
ステップS103:仮想ディスク制御部63は,物理ディスクの切り換え戻しができる状態か判定する。この状態とは,第1の仮想計算機51の物理ディスク切り換えが完了している状態である。前記状態とは,例えば,以下の第1,第2の状態の全てを満足している状態である。
第1の状態とは,第1の仮想計算機51の物理ディスク切り換えが完了している状態である。具体的には,第1の仮想計算機51の物理ディスク切り換え完了フラグとして"1"が図6の物理ディスク切り換え完了フラグ欄CL19に記憶されている状態である。そして,第1の仮想計算機51に割り当てられた切り換え先物理ディスク162の切り換え先物理ディスク同期完了フラグとして"1"が図18の切り換え先物理ディスク同期完了フラグ欄CL27に記憶されている状態である。
第2の状態とは,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の仮想ディスク切り換え状態として"停止中"が図18の仮想ディスク切り換え状態欄CL22に記憶されている状態である。
物理ディスクの切り換え戻しができない状態の場合(ステップS103/NO),終了する。なお,終了せずに,ステップS103の判定処理を継続しても良い。物理ディスクの切り換え戻しができる状態の場合(ステップS103/YES),ステップS104に移る。
ステップS104,ステップS106は,図24で説明したので,その説明を省略する。
切り換え戻し指示がある場合(ステップS104/YES),または,物理ディスクの切り換え戻しを実行する条件を満たす場合(ステップS106/YES),ステップS130に移る。
ステップS130:仮想ディスク制御部63は,第1の仮想計算機51以外の他の仮想計算機が仮想ディスクメモリ域45を使用中か判定する。他の仮想計算機が仮想ディスクメモリ域45を使用中の場合(ステップS130/YES),仮想化部31が他の仮想計算機に仮想ディスク55の割り当てを停止するまで待ち状態に入るため,ステップS102に戻る。他の仮想計算機が仮想ディスクメモリ域45を使用中でない場合(ステップS130/NO),ステップS132に移る。
ステップS132:仮想ディスク制御部63は,第1の仮想計算機51の物理ディスクの切り換え戻し処理を実行する。
仮想ディスク制御部63は,物理ディスクの切り換え戻しにおいて,切り換え先物理ディスク162の第2の記憶領域(仮想ディスク55)に記憶されたデータと,切り換え元物理ディスク161の第1の記憶領域に記憶されたデータとを同期する。切り換え元物理ディスク161の第1の記憶領域は,物理ディスクの切り換え前に,第1の仮想計算機51に割り当てられていた記憶領域である。
この同期の手法として以下の2つの手法の何れかの手法を用いる。
第1の手法は,仮想ディスク制御部63が,図20のステップS50〜図23のステップS88で説明した処理において,切り換え元物理ディスク161と,切り換え先物理ディスク162とを入れ換えた物理ディスクの切り換え処理を行う手法である。すなわち,仮想ディスク制御部63が,第2の実施の形態で説明した処理により,第1の仮想計算機51に割り当てる記憶領域を,切り換え先物理ディスク162から切り換え元物理ディスク161に切り換える。
第2の手法は,仮想ディスク制御部63が,仮想ディスク55と,第1の仮想計算機51に割り当てられていた切り換え元物理ディスク161の第1の記憶領域との差分を検出して,検出した差分を含む仮想ブロックに記憶されたデータを切り換え元物理ディスク161に複写する手法である。
前記した切り換え戻しにより,アクセス速度が高速な切り換え先物理ディスク162の空き記憶領域が増え,仮想ディスク制御部63は,増えた空き記憶領域を他の仮想計算機に割り当てることができる。そのため,アクセス速度が高速な切り換え先物理ディスク162の記憶領域を有効利用することができる。
100…情報処理装置,11…CPU,12…システムコントローラ,13…メモリモジュール,131〜13k…第1のメモリ〜第13kのメモリ,14…I/Oコントローラ,15…SW,16…SASコントローラ,161〜16j…第1の物理ディスク〜第16jの物理ディスク,17…ネットワークコントローラ,171…第1のNIC,172…第2のNIC,18…カードスロット,31…仮想化部,41…ハードウェア,131…物理メモリ(第3の記憶部),161…切り換え元物理ディスク(第1の記憶部),162…切り換え先物理ディスク(第2の記憶部),45…仮想ディスクメモリ域,51〜53…第1の仮想計算機〜第3の仮想計算機,54…仮想メモリ,55…仮想ディスク61…ホストOS,62…仮想計算機監視部,63…仮想ディスク制御部,64…仮想ディスク管理情報,65…I/O制御部。
Claims (21)
- 複数の記憶部のうち第1の記憶部内の複数の記憶領域をそれぞれ複数の仮想計算機に割り当て前記複数の仮想計算機を起動する仮想化部と,
前記複数の仮想計算機の何れか1つの仮想計算機による,前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第1の記憶部以外の第2の記憶部に切り換える制御部とを有する
情報処理装置。 - 請求項1において,
前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値から低下する状態は,前記第1の記憶部におけるビジー率が,前記1つの仮想計算機に対して予め定められた基準率以上の状態を含む情報処理装置。 - 請求項2において,
前記第1の記憶部におけるビジー率が,前記1つの仮想計算機に対して予め定められた基準率以上の状態は,前記第1の記憶部において前記基準率以上のビジー率が継続している時間が,前記1つの仮想計算機に対して予め定められた時間以上の状態を含む情報処理装置。 - 請求項1において,
前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値から低下する状態は,現時間が前記1つの仮想計算機のアクセス効率が基準値よりも低下する時間として予め定められた時間を経過する状態を含む情報処理装置。 - 請求項1において,
前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値から低下する状態は,前記第1の記憶部に障害が発生した状態を含む情報処理装置。 - 請求項1において,
前記制御部は,前記複数の記憶部の中から,前記第1の記憶部へのアクセス効率よりも高いアクセス効率を有する前記第2の記憶部を決定する情報処理装置。 - 請求項6において,
前記第2の記憶部は,前記第1の記憶部のデータ書き込み速度よりも速いデータ書き込み速度を有する情報処理装置。 - 請求項6において,
前記第2の記憶部は,前記第2の記憶部において基準率以上のビジー率が継続している時間が,前記第1の記憶部において基準率以上のビジー率が継続している時間よりも短い情報処理装置。 - 請求項1において,
前記1つの仮想計算機は,前記1つの仮想計算機に割り当てられた記憶領域を特定する特定情報に基づき,前記記憶領域にアクセスし,
前記制御部は,前記記憶領域を前記第1の記憶部から前記第2の記憶部に切り換える場合,前記特定情報を,前記1つの仮想計算機に割り当てた前記第1の記憶部における記憶領域を特定する第1の特定情報から,前記1つの仮想計算機に割り当てる前記第2の記憶部における記憶領域を特定する第2の特定情報に変更する情報処理装置。 - 請求項1において,
前記制御部は,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第2の記憶部に切り換える処理において,前記1つの仮想計算機に割り当てられた前記第1の記憶部の第1の記憶領域に記憶されたデータを,前記第2の記憶部の第2の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶領域から前記第2の記憶領域に切り換える情報処理装置。 - 請求項10において,
前記制御部は,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶領域から前記第2の記憶領域に切り換えた後,前記第1の記憶部における基準率以上のビジー率が継続している時間が前記1つの仮想計算機に対して予め定められた時間未満になると,前記第2の記憶領域に記憶されたデータと前記第1の記憶領域に記憶されたデータとを同期し,前記1つの仮想計算機に割り当てる記憶領域を,前記第2の記憶領域から前記第1の記憶領域に切り換える情報処理装置。 - 請求項1において,
前記制御部は,
前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第2の記憶部に切り換える処理において,前記1つの仮想計算機に割り当てられた前記第1の記憶部の第1の記憶領域に記憶されたデータを,前記第1の記憶部および前記第2の記憶部のデータ書き込み速度よりも速いデータ書き込み速度を有する第3の記憶部の第3の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶領域から前記第3の記憶領域に切り換え,前記1つの仮想計算機に既に割り当てられていた前記第1の記憶領域に記憶されたデータを,前記第2の記憶部の第2の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第3の記憶領域から前記第2の記憶領域に切り換える情報処理装置。 - 請求項12において,
前記制御部は,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶領域から前記第3の記憶領域に切り換えた後,前記第1の記憶部における基準率以上のビジー率が継続している時間が前記1つの仮想計算機に対して予め定められた時間未満になると,前記第3の記憶領域に記憶されたデータと前記第1の記憶領域に記憶されたデータとを同期し,前記1つの仮想計算機に割り当てる記憶領域を,前記第3の記憶領域から前記第2の記憶領域に切り換えずに,前記第3の記憶領域から前記第1の記憶領域に切り換える情報処理装置。 - 請求項12において,
前記制御部は,前記1つの仮想計算機に割り当てる記憶領域を,前記第3の記憶領域から前記第2の記憶領域に切り換えた後,前記第1の記憶部における基準率以上のビジー率が継続している時間が前記1つの仮想計算機に対して予め定められた時間未満になると,前記第2の記憶領域に記憶されたデータと前記第1の記憶領域に記憶されたデータとを同期し,前記1つの仮想計算機に割り当てる記憶領域を,前記第2の記憶領域から前記第1の記憶領域に切り換える情報処理装置。 - 請求項1において,
前記仮想化部は,少なくとも演算処理装置と前記複数の記憶部の何れか1つの記憶部とを含む物理資源を複数の仮想計算機に割り当て前記複数の仮想計算機を起動し,前記複数の仮想計算機に対する前記物理資源の割り当てを維持したまま,前記複数の仮想計算機を稼働する情報処理装置。 - 複数の記憶部にアクセスする情報処理装置で実行される情報処理方法であって,
前記情報処理装置は,
複数の記憶部のうち第1の記憶部内の複数の記憶領域をそれぞれ複数の仮想計算機に割り当て前記複数の仮想計算機を起動し,
前記複数の仮想計算機の何れか1つの仮想計算機による,前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第1の記憶部以外の第2の記憶部に切り換える
情報処理方法。 - 請求項16において,
前記情報処理装置は,
前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第2の記憶部に切り換える処理において,前記1つの仮想計算機に割り当てられた前記第1の記憶部の第1の記憶領域に記憶されたデータを,前記第1の記憶部および前記第2の記憶部のデータ書き込み速度よりも速いデータ書き込み速度を有する第3の記憶部の第3の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶領域から前記第3の記憶領域に切り換え,前記1つの仮想計算機に既に割り当てられていた前記第1の記憶領域に記憶されたデータを,前記第2の記憶部の第2の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第3の記憶領域から前記第2の記憶領域に切り換える
情報処理方法。 - 複数の記憶部にアクセスする情報処理装置で実行されるプログラムであって,
複数の記憶部のうち第1の記憶部内の複数の記憶領域をそれぞれ複数の仮想計算機に割り当て前記複数の仮想計算機を起動し,
前記複数の仮想計算機の何れか1つの仮想計算機による,前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値よりも低下すると,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第1の記憶部以外の第2の記憶部に切り換える処理をコンピュータに実行させるプログラム。 - 請求項18において,
前記プログラムは,
前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第2の記憶部に切り換える処理において,前記1つの仮想計算機に割り当てられた前記第1の記憶部の第1の記憶領域に記憶されたデータを,前記第1の記憶部および前記第2の記憶部のデータ書き込み速度よりも速いデータ書き込み速度を有する第3の記憶部の第3の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶領域から前記第3の記憶領域に切り換え,前記1つの仮想計算機に既に割り当てられていた前記第1の記憶領域に記憶されたデータを,前記第2の記憶部の第2の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第3の記憶領域から前記第2の記憶領域に切り換える処理をコンピュータに実行させるプログラム。 - コンピュータによって読み取り可能であり,前記コンピュータにデジタル信号処理を実行させるプログラムを記録した記録媒体であって,
複数の記憶部のうち第1の記憶部内の複数の記憶領域をそれぞれ複数の仮想計算機に割り当て前記複数の仮想計算機を起動し,
前記複数の仮想計算機の何れか1つの仮想計算機による,前記1つの仮想計算機に割り当てられた記憶領域へのアクセス効率が基準値よりも低下と,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第1の記憶部以外の第2の記憶部に切り換えるプログラムを記録した記録媒体。 - 請求項20において,
前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶部から前記第2の記憶部に切り換える処理において,前記1つの仮想計算機に割り当てられた前記第1の記憶部の第1の記憶領域に記憶されたデータを,前記第1の記憶部および前記第2の記憶部のデータ書き込み速度よりも速いデータ書き込み速度を有する第3の記憶部の第3の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第1の記憶領域から前記第3の記憶領域に切り換え,前記1つの仮想計算機に既に割り当てられていた前記第1の記憶領域に記憶されたデータを,前記第2の記憶部の第2の記憶領域に複写し,前記1つの仮想計算機に割り当てる記憶領域を,前記第3の記憶領域から前記第2の記憶領域に切り換えるプログラムを記録した記録媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/075416 WO2015040728A1 (ja) | 2013-09-20 | 2013-09-20 | 情報処理装置,情報処理方法,プログラム,記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2015040728A1 true JPWO2015040728A1 (ja) | 2017-03-02 |
Family
ID=52688410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015537513A Pending JPWO2015040728A1 (ja) | 2013-09-20 | 2013-09-20 | 情報処理装置,情報処理方法,プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2015040728A1 (ja) |
WO (1) | WO2015040728A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6835474B2 (ja) * | 2016-02-26 | 2021-02-24 | 日本電気株式会社 | ストレージ装置の制御装置、ストレージ装置の制御方法、およびストレージ装置の制御プログラム |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003345531A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | ストレージシステム、管理サーバ、及びそのアプリケーションの管理方法 |
JP2005157933A (ja) * | 2003-11-28 | 2005-06-16 | Hitachi Ltd | ストレージネットワークの性能情報を収集する方法およびプログラム |
JP2008181387A (ja) * | 2007-01-25 | 2008-08-07 | Nec Corp | I/oバスシステム及びその管理方法 |
JP2009252187A (ja) * | 2008-04-10 | 2009-10-29 | Nec Corp | ディスクアレイ装置、ディスクアレイ装置の制御方法、およびプログラム |
JP2010108114A (ja) * | 2008-10-29 | 2010-05-13 | Hitachi Ltd | ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム |
JP2010176413A (ja) * | 2009-01-29 | 2010-08-12 | Fujitsu Ltd | 情報処理装置、情報処理方法及びコンピュータプログラム |
JP2010224756A (ja) * | 2009-03-23 | 2010-10-07 | Nec Corp | 仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置 |
JP2011170475A (ja) * | 2010-02-17 | 2011-09-01 | Hitachi Ltd | 計算機システム,計算機システムにおけるバックアップ方法及びプログラム |
JP2012185855A (ja) * | 2012-06-19 | 2012-09-27 | Hitachi Ltd | サーバシステム及び仮想計算機制御方法 |
JP2013069214A (ja) * | 2011-09-26 | 2013-04-18 | Fujitsu Ltd | ストレージシステム |
JP2013077106A (ja) * | 2011-09-30 | 2013-04-25 | Fujitsu Ltd | ストレージ装置およびストレージシステム |
-
2013
- 2013-09-20 JP JP2015537513A patent/JPWO2015040728A1/ja active Pending
- 2013-09-20 WO PCT/JP2013/075416 patent/WO2015040728A1/ja active Application Filing
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003345531A (ja) * | 2002-05-24 | 2003-12-05 | Hitachi Ltd | ストレージシステム、管理サーバ、及びそのアプリケーションの管理方法 |
JP2005157933A (ja) * | 2003-11-28 | 2005-06-16 | Hitachi Ltd | ストレージネットワークの性能情報を収集する方法およびプログラム |
JP2008181387A (ja) * | 2007-01-25 | 2008-08-07 | Nec Corp | I/oバスシステム及びその管理方法 |
JP2009252187A (ja) * | 2008-04-10 | 2009-10-29 | Nec Corp | ディスクアレイ装置、ディスクアレイ装置の制御方法、およびプログラム |
JP2010108114A (ja) * | 2008-10-29 | 2010-05-13 | Hitachi Ltd | ストレージシステムの性能向上又は管理方法、システム、装置及びプログラム |
JP2010176413A (ja) * | 2009-01-29 | 2010-08-12 | Fujitsu Ltd | 情報処理装置、情報処理方法及びコンピュータプログラム |
JP2010224756A (ja) * | 2009-03-23 | 2010-10-07 | Nec Corp | 仮想マシン再配置システム、方法、プログラム、及び仮想マシン管理装置 |
JP2011170475A (ja) * | 2010-02-17 | 2011-09-01 | Hitachi Ltd | 計算機システム,計算機システムにおけるバックアップ方法及びプログラム |
JP2013069214A (ja) * | 2011-09-26 | 2013-04-18 | Fujitsu Ltd | ストレージシステム |
JP2013077106A (ja) * | 2011-09-30 | 2013-04-25 | Fujitsu Ltd | ストレージ装置およびストレージシステム |
JP2012185855A (ja) * | 2012-06-19 | 2012-09-27 | Hitachi Ltd | サーバシステム及び仮想計算機制御方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015040728A1 (ja) | 2015-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2966571B1 (en) | Method for migrating memory data and computer therefor | |
JP5459811B2 (ja) | 仮想ストレージ移行のための方法およびシステム、ならびに仮想マシンモニタ | |
US11960749B2 (en) | Data migration method, host, and solid state disk | |
US10289564B2 (en) | Computer and memory region management method | |
US8510515B2 (en) | Storage system comprising multiple storage apparatuses with both storage virtualization function and capacity virtualization function | |
US9396353B2 (en) | Data allocation among devices with different data rates | |
US10235282B2 (en) | Computer system, computer, and method to manage allocation of virtual and physical memory areas | |
JP4902501B2 (ja) | 電力制御方法、計算機システム、及びプログラム | |
JP2016508647A (ja) | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム | |
JP2016167143A (ja) | 情報処理システムおよび情報処理システムの制御方法 | |
JP6663478B2 (ja) | データ移行方法及び計算機システム | |
JP2013250950A (ja) | 計算機システム、仮想化機構、及び計算機システムの制御方法 | |
JP2009217608A (ja) | 仮想計算機システム及びその制御方法 | |
JP6123626B2 (ja) | 処理再開方法、処理再開プログラムおよび情報処理システム | |
JP2017227969A (ja) | 制御プログラム、システム、及び方法 | |
JPWO2015132941A1 (ja) | 計算機 | |
JP6028415B2 (ja) | 仮想サーバ環境のデータ移行制御装置、方法、システム | |
JP2014178981A (ja) | フォールトトレラントサーバ | |
US11907746B2 (en) | Compound storage system | |
JP2017033375A (ja) | 並列計算システム、マイグレーション方法、及びマイグレーションプログラム | |
WO2015040728A1 (ja) | 情報処理装置,情報処理方法,プログラム,記録媒体 | |
US9448871B2 (en) | Information processing device and method for selecting processor for memory dump processing | |
KR20180065882A (ko) | 멀티 코어 프로세서 및 그것의 동작 방법 | |
JP5382471B2 (ja) | 電力制御方法、計算機システム、及びプログラム | |
WO2016110951A1 (ja) | 計算機システム、ライセンス管理方法、及び、管理計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170117 |