JP4792434B2 - 仮想計算機の制御方法 - Google Patents

仮想計算機の制御方法 Download PDF

Info

Publication number
JP4792434B2
JP4792434B2 JP2007225008A JP2007225008A JP4792434B2 JP 4792434 B2 JP4792434 B2 JP 4792434B2 JP 2007225008 A JP2007225008 A JP 2007225008A JP 2007225008 A JP2007225008 A JP 2007225008A JP 4792434 B2 JP4792434 B2 JP 4792434B2
Authority
JP
Japan
Prior art keywords
memory
virtual machine
memory module
physical address
address
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.)
Expired - Fee Related
Application number
JP2007225008A
Other languages
English (en)
Other versions
JP2009059121A5 (ja
JP2009059121A (ja
Inventor
日沖芳樹
上野仁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007225008A priority Critical patent/JP4792434B2/ja
Publication of JP2009059121A publication Critical patent/JP2009059121A/ja
Publication of JP2009059121A5 publication Critical patent/JP2009059121A5/ja
Application granted granted Critical
Publication of JP4792434B2 publication Critical patent/JP4792434B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は仮想計算機システムにおいて、1台の物理計算機上に複数台動作させる仮想計算機であるLPAR(Logical Partitioning)の占有物理メモリ領域のメモリ移動方式に関する。
仮想計算機システムは、ハイパバイザにより物理計算機を複数のLPARに分割し、各LPARに対して計算機資源(CPU、主記憶、I/O)を割当て、各LPAR上でそれぞれOSを動作させるものである。各LPAR上で動作するOSのことを、ハイパバイザという制御プログラムの上で動作するOSであることを表現するためゲストOSと呼ぶ。
ゲストOSは論理的には一般のOSとまったく同様に動作するため、割当てた主記憶もゲストOSには通常のメモリのように0番地から連続したアドレスを提供する必要がある。そのため、主記憶のアドレスはゲスト物理アドレスとホスト物理アドレスに区別され、LPAR上ではゲスト物理アドレスからホスト物理アドレスへの変換が行われることで、ゲストOSは通常に動作する。
特許公開平5−204760
ひとつのDIMM(Dual Inline Memory Module)を複数LPARが共有していることから、あるLPARでメモリ障害を検出して停止した場合、他LPARでの当該DIMMの使用を制御していないため、その後も使用し続けることにより、共有している全LPARが障害となる可能性があった。
また、複数サーバで構成されるNUMA(Non-Uniform Memory Access)構成やSMP(Symmetric Multi Processing)構成では、ひとつのLPARが使用するメモリ領域が複数サーバのDIMMに分散されることがあり、CPUのメモリアクセスにおいて性能を低下させていた。
上記課題を解決する為、本発明では、ハイパバイザにより1以上のCPUおよび2以上のメモリモジュールから成る物理計算機を複数の仮想計算機に分割し、各仮想計算機に前記CPUおよび前記メモリモジュールのメモリ領域を割当てて動作させる仮想計算機システムの制御方法において、前記ハイパバイザは制御対象の仮想計算機を停止させるステップと、前記停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に記憶されている情報を、該メモリモジュールとは異なるメモリモジュールのメモリ領域に移動させるステップと、前記停止させた仮想計算機に前記情報の移動後のメモリモジュールのメモリ領域を割当てるステップと、前記停止させた仮想計算機を再稼動させるステップとを有することを特徴とする仮想計算機システムの制御方法を実現する。
本発明により、LPARをディアクティベイトすることなくメモリフラグメンテーションを回避することができる。また、NUMA構成やSMP構成において複数サーバにおいて分散されていたLPARのメモリ領域をひとつのサーバに収めることができ、メモリアクセスの性能を改善することができる。さらに、メモリ障害が発生したDIMMを使用していた場合、他のDIMMに移動させることが可能となり、障害拡大の防止が可能となる。
以下、本発明の実施例を図面に基づいて説明する。
図1は、LPAR上で動作するゲストOSがアクセスする論理的なメモリに対する実際の物理メモリの割当て状況を示している。本実施形態では、DIMM0とDIMM1の2つのバンクから構成されるメモリブロックと、DIMM2とDIMM3の2つのバンクから構成されるメモリブロックとを有し、ハイパバイザがこれら2つのメモリブロックをLPAR1、LPAR2、LPAR3、LPAR4のメモリ領域に分割している。
LPAR1とLPAR2にはDIMM0とDIMM1から構成されるメモリブロックのメモリ領域が割当てられている。すなわち、LPAR1のゲストOS(106)がアクセスする論理メモリ(110)はDIMM0とDIMM1のアドレス30番地から始まる領域(120)に割当てられている。LPAR2のゲストOS(107)がアクセスする論理メモリ(111)はDIMM0とDIMM1のアドレス80番地から始まる領域122に割当てられている。
LPAR3にはDIMM0とDIMM1から構成されるメモリブロックのメモリ領域と、このメモリブロックとは異なるDIMM2とDIMM3から構成されるメモリブロックのメモリ領域とが割当てられている。すなわち、LPAR3のゲストOS(108)がアクセスする論理メモリ(112)の前半分(0〜512MB)はDIMM0とDIMM1のアドレス140番地から始まる領域124-1とに割当てられて、後半分(512〜1024MB)はDIMM2とDIMM3のアドレス200番地から始まる領域(124-2)に割当てられている。
LPAR4はDIMM2とDIMM3から構成されるメモリブロックのメモリ領域が割当てられている。すなわち、LPAR4のゲストOS(109)がアクセスする論理メモリ(113)はDIMM2とDIMM3のアドレス160番地から始まる領域(125)に割当てられている。
サーバ(100)は4枚のDIMM(2GB)(115、116、117、118)を実装しDIMM0とDIMM1、DIMM2とDIMM3の2ウェイインタリーブ構成となっている。ハイパバイザ(101)は物理的な1台のサーバを論理的に複数のサーバに見せる仮想化機構である。本実施形態ではハイパバイザ上に4台の論理計算機(LPAR)(102、103、104、105)が、実装される4枚のDIMM(2GB)(115、116、117、118)を共有して動作しており、各LPARが使用するメモリ領域(120、122、124-1、124-2、125)は動的に未使用領域へ移動できる。矢印130はLPAR3のゲストOSが使用するアドレス200番地から始まる領域(124-2)が、アドレス120番地から始まる領域(123)に移動することを表している。ただし、ハイパバイザが使用するメモリ領域(119、121)はメモリ移動の対象外とする。
図2は、図1に示す物理メモリ(114)のメモリ管理テーブル(200)である。メモリ管理テーブル(200)はハイパバイザ(101)によって物理メモリ(114)を256MBずつに分けられたエントリ(201)からなり、全エントリ情報を管理している。
メモリ管理テーブルはエントリ(201)毎に、そのエントリ(201)を割当てられたLPAR(202)、そのエントリ(201)に対応する物理メモリの開始アドレスであるホスト物理アドレス(203)、そのエントリのサイズ(204)(256MB)、そのエントリ(201)を割当てられたLPAR(202)上の論理メモリにおけるそのエントリに対応する論理メモリの開始アドレスであるゲスト物理アドレス(205)、そのエントリを含む一群のメモリ領域であるセグメントの開始アドレスであるベースアドレス(206)を管理する。
メモリ移動を実施する際はエントリ単位で行う。ただし、ハイパバイザ領域(119、121)はメモリ管理テーブル(200)からは除外され、メモリの移動対象とはならない。
LPARへのエントリ割り当ては、ハイパバイザ(101)がメモリ管理テーブルから未割り当てエントリ(LPAR#が0のエントリ)を検索し、LPAR#(202)にLPAR番号を登録することで割当てる。割当てるエントリ数はオペレータが指定した256×n(MB)に依存する。
図3は、図1に示す各LPAR(102、103、104、105)上で稼動するゲストOS (106、107、108、109)が、ホスト物理アドレス(126)にアクセスするためのアドレス変換についてLPAR3(104)を例にして示した図である。各LPARはLPAR上の論理メモリのアドレスであるゲスト物理アドレスを、物理メモリのアドレスであるホスト物理アドレスへ変換する際に利用するアドレス変換テーブル(303)を保持している。このアドレス変換テーブル(303)はエントリ毎のゲスト物理アドレスの開始アドレス、ゲスト物理アドレスの終了アドレス、ベースアドレスを管理する。
図3ではLPAR3(300)上のゲストOS (301)がゲスト物理アドレス20(302)にアクセスすると、アドレス変換テーブル(303)に登録してあるベースアドレス180(304)をゲスト物理アドレス20(302)に加算することで算出した(305)ホスト物理アドレス200(306)にアクセスすることになる。
図4は、LPAR3に割当てるメモリ領域を物理メモリ(124-2)から物理メモリ(123)に移動(130)した後の、メモリ管理テーブルを示したものである。図2のメモリ管理テーブル(200)はLPAR3(104)のメモリ領域移動前(124-2)の全エントリ情報を管理しており、LPAR3(104)にはエントリ#10、11、16、17が割当てられている。図4のメモリ管理テーブル(400)はメモリ領域移動後(123)の更新された全エントリ情報を管理しており、LPAR3(104)にはエントリ#8、9、10、11が割当てられている。
図5は、LPAR3に割当てるメモリ領域を物理メモリ(124-2)から物理メモリ(123)に移動(130)した後の、アドレス変換テーブルを示したものである。
図3はLPAR3(104)のメモリ領域移動前(124-2)の、図5はメモリ領域移動後(123)のホスト物理アドレス(126)へのアクセスに利用するメモリアドレス変換テーブルを示している。
LPAR3(104)のメモリ移動(130)が行われるとメモリ変換テーブルが更新され、更新されたメモリ変換テーブル(503)の新たなベースアドレス(504、505)をゲスト物理アドレス(502)に加算することで(506)、ゲストOS(501)は移動先のホスト物理アドレス(507)にアクセスすることができる。
図6は本発明の実施におけるシステム構成図である。ハイパバイザ(600)は、メモリ移動プログラム(605)、性能管理プログラム(603)、障害管理プログラム(604)、LPAR(602)、メモリ管理テーブル(601)を持っている。物理メモリ(607)に対して実際のメモリ移動処理を行うのがメモリ移動プログラム(605)である。
メモリ移動プログラム(605)は、性能管理プログラム(603)、障害管理プログラム(604)、オペレータ(606)からメモリ移動要求があると、メモリ管理テーブル(601)が管理するエントリ単位(201)でメモリの移動を行う。
性能管理プログラム(603)は、各LPARにディパッチされているCPUと割り与えられているメモリ領域との関係を検知し、論理計算機のメモリアクセスの遅延を解消するためにメモリ移動プログラムに移動要求を出す。障害管理プログラム(604)はメモリ障害がおきたDIMMを使用しているLPARを、そのDIMMから退避させるためにメモリ移動要求を出す。オペレータ(606)が、LPARの使用するメモリ領域を任意の未使用領域に移動させる指示を出した場合に、メモリ移動プログラムに移動要求を出す。
図7はメモリ移動プログラム(605)の手順について説明したものである。図1〜図4の例を用いて図7の手順を説明する。まず、メモリ移動プログラム(703)は、性能管理プログラム(700)、障害管理プログラム(701)、オペレータ(702)のいずれかからメモリ移動要求を受け付ける(704)。この時メモリ移動プログラム(703)にはメモリ移動の対象となるLPAR3と移動元のエントリ#16と#17、移動先のエントリ#8と#9が伝えられる。
移動要求を受け付けると、メモリ移動プログラム(703)は、対象LPARであるLPAR3をアクティベイト状態に維持したままCPUのディスパッチ対象から外し、停止させる(705)。
その後、移動元エントリ#16と#17のメモリ領域の内容を移動先エントリ#8と#9のメモリ領域に移動させる(706)。すなわち、移動元エントリ#16と移動先エントリ#8に従い、LPAR3(104)が使用する200番地から始まる256MBのメモリ領域を120番地から始まる256MBのメモリ領域へ移動し、また移動元エントリ#17と移動先エントリ#9に従い、210番地から始まる256MBのメモリ領域を130番地から始まる256MBのメモリ領域への移動する。メモリ移動プログラム(703)は一度に複数エントリの移動要求を受け付けることにより、複数のエントリを一度に移動することもできる。
移動後、メモリ管理テーブル(601)を移動後のメモリ状態を示すように更新する(707)。すなわち、図4に示すように、エントリ#8と#9がLPAR3に割当てられるので、メモリ管理テーブル(601)のエントリ#8と#9のLPAR#が3となり、エントリ#16と#17のLPAR#は0(未割当て)となる。
また、このメモリ領域の内容の移動によって、LPAR3上の論理メモリ(112)におけるゲスト物理アドレスは動かない。このため、エントリ#8と#9にLPAR3が割当てられたことに伴い、メモリ管理テーブル(601)のエントリ#8と#9のゲスト物理アドレスは、移動前のLPAR3のゲスト物理アドレスであった20と30となる。
ベースアドレスは、ホスト物理アドレスとゲスト物理アドレスに基づき算出する。すなわち、エントリ#8のホスト物理アドレスは120となり、ゲスト物理アドレスは20であることから、120から20を差し引いて、ベースアドレスは100となる。また、エントリ#9のホスト物理アドレスは130となり、ゲスト物理アドレスは30であることから、130から30を差し引いて、ベースアドレスも100となる。
続いて対象となるLPARのアドレス変換テーブルを、メモリ管理テーブルの更新後の情報をもとに更新する(708)。すなわち、図5に示すようにメモリ管理テーブルにてLPAR3に割当てられるエントリ#がエントリ#16、#17からエントリ#8、#9に変更されるので、LPAR3のアドレス変換テーブルの対象となるエントリ#もエントリ#16、#17からエントリ#8、#9に変更される。
また、LPAR3上の論理メモリにおけるゲスト物理アドレスは変更されないため、開始アドレス、終了アドレスの変更はなく、エントリ#8の開始アドレスは20、終了アドレスは29、エントリ#9の開始アドレスは30、終了アドレスは39となる。
ベースアドレスは、メモリ管理テーブルで算出した結果に従い変更し、エントリ#8、#9のベースアドレスはともに100となる。
最後に停止させていた対象LPARであるLPAR3をCPUのディスパッチ対象に戻し再稼動させる(709)。なお、LPARをCPUのディスパッチ対象から外し、CPUのディスパッチ対象に戻すまでの間、LPARはアクティベイト状態を維持している。
図8はNUMA構成時の実施形態である。サーバモジュール0(800)は、CPU0(807)、CPU1(808)の2つのCPUと、DIMM0(813)とDIMM1(814)、DIMM2(815)とDIMM3(816)の2つの2ウェイインタリーブを構成する4枚のDIMM(2GB)(813、814、815、816)を実装している。また、サーバモジュール1(801)は、CPU2(809)、CPU3(810)の2つのCPUとDIMM4(817)とDIMM5(818)、DIMM6(819)とDIMM7(820)の2つの2ウェイインタリーブを構成する4枚のDIMM(2GB)(817、818、819、820)を実装している。メモリアドレスはサーバモジュール0(800)からサーバモジュール1(801)へと連続的に割り振られ、サーバモジュール0(800)のDIMM(813、814、815、816)が低位アドレス、サーバモジュール1(801)のDIMM(817、818、819、820)が高位アドレスとなる。サーバ(800、801)には4つのLPAR(803、804、805、806)が稼動しており、各LPARはアクティベイトした順に低位アドレスの領域から順に使用する。また、CPU0(807)はLPAR1(803)、CPU1(808)はLPAR2(804)、CPU2(809)はLPAR3(805)、CPU3(810)はLPAR4(806)の占有CPUとして使用されている。また、MC0(811)、MC1(812)はCPUからのメモリアクセスの際に、そのアクセスが自サーバモジュールのメモリへのアクセスかを判断し、自サーバモジュールへのアクセスの場合は当該メモリにアクセスし、他サーバモジュールのメモリへのアクセスの場合は他サーバのMCから当該メモリにアクセスを行う。
本実施例では、LPAR2(804)のメモリ領域(821-1、821-2)が2つのサーバ(800、801)に分散される。CPU1は、CPU1と同一ノードに存在するローカルメモリDIMM2(815)、DIMM3(816)のメモリ領域(821-1)と、CPU1とは異なるノードに存在するリモートメモリであるDIMM4(817)、DIMM5(818)のメモリ領域(821-2)にアクセスすることとなる。CPU1からローカルメモリとなるメモリ領域(821-1)へのアクセスはMC0を経由しアクセスすることとなる。一方、CPU1からリモートメモリとなるメモリ領域(821-2)へのアクセスは、MC0及びMC1を経由しアクセスすることとなり、CPU1(808)のメモリアクセスに遅延が生じる。
このようなメモリアクセスの遅延を解消するため、図6に示す性能管理プログラム(603)はCPUとDIMMとの配置関係を図15のメモリモジュール配置テーブルから検知し、メモリアクセスの遅延解消の要否を判定する。
図15のメモリモジュール配置テーブルはDIMM(1501)とCPU(1502、1503、1504、1505)の関係を表している。このメモリモジュール配置テーブルはハイパバイザにより管理され、CPUからみたDIMMがローカルメモリに相当するか、リモートメモリに相当するかを管理している。なお、Lはローカルメモリを、Rはリモートメモリに表している。図8ではCPU0、CPU1にとって、DIMM0〜DIMM3はローカルメモリとなり、DIMM4〜DIMM7はリモートメモリとなる。一方、CPU2、CPU3にとって、DIMM0〜DIMM3はリモートメモリとなり、DIMM4〜DIMM7はローカルメモリとなる。
メモリアクセスの遅延の解消が必要な場合は、LPAR2(804)のメモリ領域(821-2)をサーバモジュール0(800)上DIMM(813、814、815、816)に移動できないかメモリ管理テーブル(601)の未使用エントリの有無を確認する。移動可能であれば、性能管理プログラム(603)はメモリ移動プログラム(605)に移動要求を出す。移動不可である場合は、サーバモジュール0(800)上のDIMM(813、814、815、816)が未使用になるまで待つ。
本実施例の場合はLPAR1(803)がDIMM(813、814、815、816)を使用しているので、LPAR1(803)がディアクトベイトされるまで待つことになる。後にLPAR1(803)がディアクトベイトされDIMM(813、814、815、816)が未使用となれば、性能管理プログラム(603)はメモリ移動プログラムにメモリ移動要求を出す。その後は図7の手順に従って、LPAR2(804)のメモリ領域(821-2)を移動させる。
すなわち、メモリ移動プログラムは移動要求を受付け(704)、LPAR2をアクティベイト状態に維持したままCPU1のディスパッチ対象から外し(705)、メモリ領域(821-2)をメモリ領域(821-2)に移動する(706)。この後、メモリ管理テーブルを更新し(707)、対象LPARのアドレス変換テーブルを更新し(708)、LPAR2をCPU1のディスパッチ対象に戻す(709)。なお、LPAR2をCPUのディスパッチ対象から外し、CPUのディスパッチ対象に戻すまでの間、LPAR2はアクティベイト状態を維持している。
図9は上記手順により、図8のLPAR1(803)がディアクトベイトされ、LPAR2(804)のメモリ領域(821-2)が移動された後の状態を示す。
図10、図11は、SMP構成時における実施形態である。図10のサーバモジュール0(1000)およびサーバモジュール1(1001)は図8のサーバモジュール(800、801)と同様の構成をとる。
メモリアドレスはサーバモジュール0(1000)とサーバモジュール1(1001)のメモリバンクに対して、交互に連続して割り振る。LPAR1を例にとると、アドレス20、21をサーバモジュール0(1000)のDIMM0、DIMM1に、アドレス22、23をサーバモジュール1(1001)のDIMM4、DIMM5…にと、順に割り振っていくこととなる。
サーバモジュール(1000、1001)には4つのLPAR(1003、1004、1005、1006)が稼動しており、各LPARはアクティベイトした順に低位アドレスの領域から使用している。
また、各LPARは4つのCPU(1007、1008、1009、1010)を共有論理CPUとして時分割共有で使用している。
図10に示す4つのCPU(1003、1004、1005、1006)のうち、CPU3(1010)だけをLPAR4(1006)の占有CPUに切り替えた場合、CPU3(1010)と各LPAR(1006)との関係は図10の実線1023、1024での接続はなくなり、点線1025にて接続されることとなる。一方、LPAR4(1006)のメモリ領域(1021-1、1021-2)は図10に示すように、2つのサーバモジュール(1000、1001)に分散される。このため、CPU3(1010)のメモリアクセスに問題が生じる。すなわち、サーバモジュール1(1001)のメモリ領域(1021-2)はローカルメモリであるが、サーバモジュール0(1000)のメモリ領域(1021-1)はリモートメモリとなり、CPU3はMC1、MC0を経由してメモリ領域(1021-1)にアクセスすることとなる。この結果、メモリ領域(1021-1)の情報がローカルメモリにある場合よりも、メモリアクセスが遅くなり、アクセス性能が低下する。
このようにメモリアクセスの遅延を解消するため、図6に示す性能管理プログラム(603)はCPUとメモリの配置関係を図16のメモリモジュール配置テーブルから検知し、メモリアクセスの遅延解消の要否を判定する。
メモリアクセスの遅延の解消が必要な場合は、LPAR4(1006)のメモリ領域(1021-1)をサーバモジュール1(1001)上のDIMM(1017、1018、1019、1020)に移動できないかメモリ管理テーブル(601)の未使用エントリの有無を確認する。移動可能であれば、性能管理プログラム(603)はメモリ移動プログラム(605)に移動要求を出す。本実施例の場合はDIMM6(1019)、DIMM7(1020)が未使用であり、メモリ領域(1021-1)のLPAR4を移動するのに十分なエントリが確保できるため、メモリ移動プログラム(605)は図7の手順に従って、DIMM0(1013)及びDIMM1(1014)のLPAR4(1006)のメモリ領域(1021-1)をDIMM6(1019)及びDIMM7(1020)に移動させる。
すなわち、メモリ移動プログラムは移動要求を受付け(704)、LPAR4をCPUのディスパッチ対象から外し(705)、メモリ領域(1021-1)をDIMM6(1019)、DIMM7(1020)に移動する(706)。この後、メモリ管理テーブルを更新し(707)、対象LPARのアドレス変換テーブルを更新し(708)、LPAR4をCPU3のディスパッチ対象に戻す(709)。
図11は上記手順により、図10のLPAR4(1006)がディアクトベイトされ、LPAR4(1006)のメモリ領域(1021-1)がメモリ領域(1121-2)に移動された後の状態を示す。
図12はメモリ障害時における実施形態である。ひとつのDIMMを複数LPARが共有している場合、ひとつのLPARでメモリ障害を検出して停止した場合も、他LPARでの当該DIMMの使用を制御していないため、その後も他LPARが当該DIMMを使用し続けることにより、共有している全LPARが障害となる可能性がある。本実施例は、メモリ障害で停止したLPAR1(1200)と同じDIMM(1205)をLPAR2(1201)が使用していた場合、LPAR2(1201)にも障害が起きるという可能性から、LPAR2のメモリ領域(1201)を別のDIMM3(1206)、DIMM4(1207)の領域(1203)に移動させて被害の拡大を防ぐ実施形態である。
本実施例では、LPAR1(1200)の配置された番地(1202)でメモリ障害を検出し停止している。障害管理プログラム(604)はこれを検知し、LPAR1が使用していたDIMM(1205)を他のLPARが使用していないかメモリ管理テーブル(601)の情報をもとに調べる。調査の結果、LPAR2が使用しているので、障害管理プログラム(604)は、メモリ管理テーブル(601)から他のDIMMの未使用エントリを確認する。移動可能であれば、メモリ移動プログラム(605)に移動要求を出す。その後は図7の手順に従って、LPAR2のメモリ領域(1201)をDIMM2(1206)、DIMM3(1207)のメモリ領域(1203)に移動させる。
図13は、MC(メモリコントロール)(1303)にメモリのインタリーブの変更機能を設け、ハイパバイザはMCにメモリインタリーブの設定コマンドを送出することにより、インタリーブ状態に設定し、解除コマンドを送出することによるインタリーブ状態の解除について示している。
本実施例の場合は、特定のバンクのみインタリーブを解除可能とする実施形態である。ハイパバイザはMC(1303)にインタリーブ解除コマンドを送出し、動的にDIMM2(1306)とDIMM3(1307)のみインタリーブを解除し、それぞれ単独のバンクに変更する。DIMM2(1306)、DIMM3(1307)のメモリアドレスはDIMM2(1308)、DIMM3(1309)のように割り振り直され、LPAR1のメモリ領域(1310)も2バンクから1バンクに変更される。
本実施例では、メモリインタリーブの解除について示したが、LPARを割当てるメモリ領域を1バンクから複数バンクにして新たにメモリインタリーブを構成したり、LPARを割当てるメモリ領域を元の複数バンクとは異なる複数バンクにしてメモリインタリーブの構成を変更したり、変更前後で使用するバンク数は本実施例に限らない。
図14は図13に示したメモリ移動の詳細を表したものである。ハイパバイザ(1400)はMCにインタリーブ解除コマンドを送出すると一旦LPAR1(1401)をアクティベイト状態に維持したままCPUのディスパッチ対象から外し、停止させる。また、この時もとのメモリ情報(1)〜(16)を記憶する。その後、MCによってDIMM2(1402)、DIMM3(1403)のインタリーブは解除され、メモリアドレスが振り直される。記憶したメモリ情報のメモリ移動は高位のアドレス(1408)から順々に行い、最終的にはDIMM2(1404)のみにメモリが配置し直される(1407)。メモリ移動が終了したら、LPAR1(1401)を再びCPUのディスパッチ対象に戻し、再稼動させる。なお、LPAR1をCPUのディスパッチ対象から外し、CPUのディスパッチ対象に戻すまでの間、LPAR1はアクティベイト状態を維持している。
本発明の基本的な実施形態を示す図 図1に示す物理メモリのメモリ管理テーブル(LPAR3のメモリ移動前) ゲストOSが、ホスト物理アドレスにアクセスするためのアドレス変換について図1のLPAR3を例に示した図(LPAR3のメモリ移動前) 図1に示す物理メモリのメモリ管理テーブル(LPAR3のメモリ移動後) ゲストOSが、ホスト物理アドレスにアクセスするためのアドレス変換について図1のLPAR3を例に示した図(LPAR3のメモリ移動後) 本発明の実施におけるシステム構成図 メモリ移動プログラムの実施手順を示した図 NUMA構成時の実施形態 図8に示すLPAR2のメモリ領域を移動させたことを示す図 SMP構成時の実施形態 図10に示すLPAR4のメモリ領域を移動させたことを示す図 メモリ障害時の実施形態 MC(メモリコントロール)にメモリインタリーブの設定、解除機能を設けた場合の動作を示した図 図13の機能を実施した時のメモリ移動を示した図 メモリモジュール配置テーブル
符号の説明
100 サーバモジュール
101 ハイパバイザ
102、103、104、105 LPAR
106、107、108、109 ゲストOS
110、111、112、113 論理メモリ
114 物理メモリ
115、116、117、118 DIMM
119、121 ハイパバイザメモリ領域
120 LPAR1のメモリ領域
122 LPAR2のメモリ領域
123 LPAR3の移動先メモリ領域
124-1、124-2 LPAR3のメモリ領域
125 LPAR4のメモリ領域

Claims (6)

  1. ハイパバイザにより1以上のCPUおよび2以上のメモリモジュールから成る物理計算機を複数の仮想計算機に分割し、各仮想計算機に前記CPUおよび前記メモリモジュールのメモリ領域を割当てて動作させる仮想計算機システムの制御方法において、
    前記ハイパバイザにより、
    前記メモリモジュールのメモリ障害を検知した仮想計算機を停止させるステップと、
    前記メモリモジュールのアドレスであるホスト物理アドレス、前記仮想計算機の論理メモリモジュールのアドレスであるゲスト物理アドレス及び前記仮想計算機の対応を前記メモリモジュールのエントリ毎に管理するメモリ管理情報を用いて、前記仮想計算機が使用していたメモリ障害が検知されたメモリモジュールと同じメモリモジュールを使用している他の仮想計算機を検知するステップと、
    前記他の仮想計算機が使用していた前記メモリ障害が検知されたメモリモジュールと同じメモリモジュールのメモリ領域に記憶されている第一の情報を、前記メモリモジュールとは異なるメモリモジュールのメモリ領域に移動させるステップと、
    前記メモリ障害の検知により停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に記憶されている第二の情報を、前記メモリモジュールとは異なるメモリモジュールのメモリ領域に移動させるステップと、
    前記メモリ管理情報において、前記第一の情報の移動後のメモリ領域に含まれるエントリのゲスト物理アドレスを、前記他の仮想計算機が使用していたメモリモジュールのメモリ領域に含まれるエントリのゲスト物理アドレスに置き換え、前記第二の情報の移動後のメモリ領域に含まれるエントリのゲスト物理アドレスを、前記停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に含まれるエントリのゲスト物理アドレスに置き換えるステップと、
    前記ゲスト物理アドレスを前記ホスト物理アドレスに変換するためのベースアドレスを管理するアドレス変換情報において、前記ホスト物理アドレスと前記置き換えたゲスト物理アドレスとに基づき新たなベースアドレスに更新するステップと、
    前記停止させた仮想計算機を再稼動させるステップとが実行され、
    前記再稼動した仮想計算機上で動作するゲストOSにより、
    前記更新したアドレス変換情報を用いて、前記ゲスト物理アドレスから前記ホスト物理アドレスにアクセスするステップが実行される
    ことを特徴とする仮想計算機システムの制御方法。
  2. 前記ハイパバイザは、
    各仮想計算機に割当てた前記CPUと各仮想計算機に割当てた前記メモリモジュールとの配置関係を検知するステップと、
    仮想計算機に割当てられたメモリモジュールが前記仮想計算機に割当てられたCPUにとってリモートメモリとなる仮想計算機を停止させるステップと、
    前記停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に記憶されている情報を、前記停止させた仮想計算機に割当てられたCPUにとってローカルメモリとなるメモリモジュールのメモリ領域に移動させるステップと、
    前記停止させた仮想計算機に前記情報の移動後のメモリモジュールのメモリ領域を割当てるステップと、
    前記停止させた仮想計算機を再稼動させるステップとを実行することを特徴とする請求項1記載の仮想計算機システムの制御方法。
  3. 前記ハイパバイザは、
    所定の仮想計算機にCPUを占有させるステップと、
    各仮想計算機に割当てた前記CPUと各仮想計算機に割当てた前記メモリモジュールとの配置関係を検知するステップと、
    前記CPUを占有させた仮想計算機を停止させるステップと、
    前記停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に記憶されている情報を、前記仮想計算機に占有させたCPUにとってローカルメモリとなるメモリモジュールのメモリ領域に移動させるステップと、
    前記停止させた仮想計算機に前記情報の移動後のメモリモジュールのメモリ領域を割当てるステップと、
    前記停止させた仮想計算機を再稼動させるステップとを実行することを特徴とする請求項1記載の仮想計算機システムの制御方法。
  4. ハイパバイザにより1以上のCPUおよび2以上のメモリモジュールから成る物理計算機を複数の仮想計算機に分割し、各仮想計算機に前記CPUおよび前記メモリモジュールのメモリ領域を割当てて制御する仮想計算機システムにおいて、
    前記ハイパバイザは、
    前記メモリモジュールのメモリ障害を検知した仮想計算機を停止し、
    前記メモリモジュールのアドレスであるホスト物理アドレス、前記仮想計算機の論理メモリモジュールのアドレスであるゲスト物理アドレス及び前記仮想計算機の対応を前記メモリモジュールのエントリ毎に管理するメモリ管理情報を用いて、前記仮想計算機が使用していたメモリ障害が検知されたメモリモジュールと同じメモリモジュールを使用している他の仮想計算機を検知し、
    前記他の仮想計算機が使用していた前記メモリ障害が検知されたメモリモジュールと同じメモリモジュールのメモリ領域に記憶されている第一の情報を、前記メモリモジュールとは異なるメモリモジュールのメモリ領域に移動し、
    前記メモリ障害の検知により停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に記憶されている第二の情報を、前記メモリモジュールとは異なるメモリモジュールのメモリ領域に移動し、
    前記メモリ管理情報において、前記第一の情報の移動後のメモリ領域に含まれるエントリのゲスト物理アドレスを、前記他の仮想計算機が使用していたメモリモジュールのメモリ領域に含まれるエントリのゲスト物理アドレスに置き換え、前記第二の情報の移動後のメモリ領域に含まれるエントリのゲスト物理アドレスを、前記停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に含まれるエントリのゲスト物理アドレスに置き換え、
    前記ゲスト物理アドレスを前記ホスト物理アドレスに変換するためのベースアドレスを管理するアドレス変換情報において、前記ホスト物理アドレスと前記置き換えたゲスト物理アドレスとに基づき新たなベースアドレスに更新し、
    前記停止させた仮想計算機を再稼動させ、
    前記再稼動した仮想計算機上で動作するゲストOSは、
    前記更新したアドレス変換情報を用いて、前記ゲスト物理アドレスから前記ホスト物理アドレスにアクセスする
    ことを特徴とする仮想計算機システム。
  5. 前記ハイパバイザは、
    各仮想計算機に割当てた前記CPUと各仮想計算機に割当てた前記メモリモジュールとの配置関係を検知し、
    仮想計算機に割当てられたメモリモジュールが前記仮想計算機に割当てられたCPUにとってリモートメモリとなる仮想計算機を停止し、
    前記停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に記憶されている情報を、前記停止させた仮想計算機に割当てられたCPUにとってローカルメモリとなるメモリモジュールのメモリ領域に移動し、
    前記停止させた仮想計算機に前記情報の移動後のメモリモジュールのメモリ領域を割当て、
    前記停止させた仮想計算機を再稼動させることを特徴とする請求項4記載の仮想計算機システム。
  6. 前記ハイパバイザは、
    所定の仮想計算機にCPUを占有させ、
    各仮想計算機に割当てた前記CPUと各仮想計算機に割当てた前記メモリモジュールとの配置関係を検知し、
    前記CPUを占有させた仮想計算機を停止し、
    前記停止させた仮想計算機に割当てられていたメモリモジュールのメモリ領域に記憶されている情報を、前記仮想計算機に占有させたCPUにとってローカルメモリとなるメモリモジュールのメモリ領域に移動し、
    前記停止させた仮想計算機に前記情報の移動後のメモリモジュールのメモリ領域を割当て、
    前記停止させた仮想計算機を再稼動させることを特徴とする請求項4記載の仮想計算機システム。
JP2007225008A 2007-08-31 2007-08-31 仮想計算機の制御方法 Expired - Fee Related JP4792434B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007225008A JP4792434B2 (ja) 2007-08-31 2007-08-31 仮想計算機の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007225008A JP4792434B2 (ja) 2007-08-31 2007-08-31 仮想計算機の制御方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011160435A Division JP5174941B2 (ja) 2011-07-22 2011-07-22 仮想計算機の制御方法

Publications (3)

Publication Number Publication Date
JP2009059121A JP2009059121A (ja) 2009-03-19
JP2009059121A5 JP2009059121A5 (ja) 2010-02-18
JP4792434B2 true JP4792434B2 (ja) 2011-10-12

Family

ID=40554804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007225008A Expired - Fee Related JP4792434B2 (ja) 2007-08-31 2007-08-31 仮想計算機の制御方法

Country Status (1)

Country Link
JP (1) JP4792434B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5510562B2 (ja) * 2011-01-17 2014-06-04 富士通株式会社 メモリ管理方法、メモリ管理装置およびメモリ管理回路
WO2013080288A1 (ja) 2011-11-28 2013-06-06 富士通株式会社 メモリ縮退方法及び情報処理装置
JP6242502B2 (ja) * 2014-10-30 2017-12-06 株式会社日立製作所 仮想計算機システムの制御方法及び仮想計算機システム
JP6645275B2 (ja) 2016-03-04 2020-02-14 富士通株式会社 情報処理装置、仮想マシン移動方法、および仮想マシン制御プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0363828A (ja) * 1989-08-02 1991-03-19 Fujitsu Ltd 仮想計算機システム
JPH05204760A (ja) * 1992-01-29 1993-08-13 Nec Corp 仮想計算機システムの制御方式
JPH06243048A (ja) * 1993-02-17 1994-09-02 Hitachi Ltd 再構成可能な記憶装置
US7249208B2 (en) * 2004-05-27 2007-07-24 International Business Machines Corporation System and method for extending the cross-memory descriptor to describe another partition's memory
US7318140B2 (en) * 2004-06-10 2008-01-08 International Business Machines Corporation Method and apparatus for dynamic hosting partition page assignment

Also Published As

Publication number Publication date
JP2009059121A (ja) 2009-03-19

Similar Documents

Publication Publication Date Title
JP5174941B2 (ja) 仮想計算機の制御方法
KR101893451B1 (ko) 메모리 관리 방법 및 장치
US8176282B2 (en) Multi-domain management of a cache in a processor system
US6968398B2 (en) Method of virtualizing I/O resources in a computer system
US9183035B2 (en) Virtual machine migration with swap pages
US9648081B2 (en) Network-attached memory
US9047195B2 (en) Computer system with virtualization mechanism and management table, cache control method and computer program
US8078862B2 (en) Method for assigning physical data address range in multiprocessor system
JP4792434B2 (ja) 仮想計算機の制御方法
US20100125843A1 (en) Virtual server system, physical cpu and method for allocating physical memory
JP6242502B2 (ja) 仮想計算機システムの制御方法及び仮想計算機システム
US7389398B2 (en) Methods and apparatus for data transfer between partitions in a computer system
JP7154261B2 (ja) 複合型ストレージシステム
Hillenbrand et al. Multiple physical mappings: Dynamic DRAM channel sharing and partitioning
CN108334401B (zh) 实现逻辑卷动态分配并支持虚拟机动态迁移的系统及方法
JP6998419B2 (ja) 制御プログラム
US10996967B1 (en) Presenting virtual disks as dual ported drives to a virtual storage system
JP6694007B2 (ja) 情報処理装置
JP7281528B2 (ja) 情報処理装置
US11860783B2 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment
JP6351387B2 (ja) 情報処理装置、プログラムおよび記録媒体
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム
WO2023172319A1 (en) Direct swap caching with noisy neighbor mitigation and dynamic address range assignment
JP5076574B2 (ja) メモリアクセス装置及び方法
CN115756742A (zh) 直通i/o虚拟化的性能优化设计方法、系统、介质及设备

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100104

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100104

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110609

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110725

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees