JP2010204962A - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP2010204962A
JP2010204962A JP2009049838A JP2009049838A JP2010204962A JP 2010204962 A JP2010204962 A JP 2010204962A JP 2009049838 A JP2009049838 A JP 2009049838A JP 2009049838 A JP2009049838 A JP 2009049838A JP 2010204962 A JP2010204962 A JP 2010204962A
Authority
JP
Japan
Prior art keywords
hardware
event
processing
predetermined process
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009049838A
Other languages
English (en)
Other versions
JP4970479B2 (ja
Inventor
Takeshi Masuda
健 増田
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2009049838A priority Critical patent/JP4970479B2/ja
Priority to US12/660,103 priority patent/US9672055B2/en
Priority to CN2010101253004A priority patent/CN101826033B/zh
Priority to EP10154514.3A priority patent/EP2226724B1/en
Publication of JP2010204962A publication Critical patent/JP2010204962A/ja
Application granted granted Critical
Publication of JP4970479B2 publication Critical patent/JP4970479B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】実行環境を保ったまま状況に応じて使用するシステムを柔軟に切り換えることが可能な、新規かつ改良された技術を提供する。
【解決手段】互いに異なる性質のハードウェアを有する第1システム100aと第2システム100bとは、自システムのハードウェアを使用した処理を実行するための環境である実行環境を提供することが可能である吸収部130と、吸収部130によって提供される実行環境において所定の処理を実行することが可能である処理部120と、をそれぞれが有する。吸収部130は、自システムのハードウェアと他システムのハードウェアとの違いを吸収することによって、自システムの処理部120に対して自システムのハードウェアと他システムのハードウェアとの違いに依存しない実行環境を自システムの処理部120に提供する。
【選択図】図1

Description

本発明は、情報処理システムに関する。より詳細には、状況に応じて使用するシステムを切り換える技術に関する。
一般的に、例えば、処理能力の高いシステムの消費電力は大きく、消費電力の小さいシステムの処理能力は低い傾向にある。また、例えば、多くの機能を有するシステムの消費電力は大きく、消費電力の小さいシステムの機能は制限されているという傾向がある。したがって、例えば、処理能力の高いシステムと消費電力の小さいシステムとはトレードオフの関係にあり、処理能力と消費電力とのどちらかを優先して使用すべきシステムを選択する必要が生じる。同様に、多くの機能を有するシステムと消費電力の小さいシステムともトレードオフの関係にあり、機能と消費電力とのどちらかを優先して使用すべきシステムを選択する必要が生じる。このように、状況に応じて使用するシステムを切り換える必要が生じる。例えば、処理能力が比較的高く、豊富な機能を有するPC(Personal Computer)としてのシステム(サブシステム)と、機能は制限されるものの消費電力が比較的低いデバイスで構成されたシステム(サブシステム)とを併せ持つシステムについて開示されている(例えば、非特許文献1参照)。
"Windows(登録商標) SideShow(登録商標)"、[online]、[平成21年2月26日検索]、インターネット<URL:http://www.microsoft.com/japan/windows/products/windowsvista/features/details/sideshow.mspx>
しかしながら、例えば、上記した非特許文献1に開示された技術では、状況に応じて使用するシステムを切り換えることは可能であるが、それぞれのシステムは実行環境が異なるため、例えば同じアプリケーションが利用できないなど、ユーザにとって不便であるという問題があった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、実行環境を保ったまま状況に応じて使用するシステムを柔軟に切り換えることが可能な、新規かつ改良された技術を提供しようとするものである。
上記課題を解決するために、本発明のある観点によれば、自システムのハードウェアを使用した処理を実行するための環境である実行環境を提供することが可能である吸収部と、吸収部によって提供される実行環境において所定の処理を実行することが可能である処理部と、をそれぞれが有するとともに、互いに異なる性質の前記ハードウェアを有する、第1システムおよび第2システムを備え、第1システムの吸収部は、第1システムのハードウェアと第2システムのハードウェアとの違いを吸収することによって、第1システムの処理部に対して第1システムのハードウェアと第2システムのハードウェアとの違いに依存しない実行環境を第1システムの処理部に提供し、第2システムの吸収部は、第1システムのハードウェアと第2システムのハードウェアとの違いを吸収することによって、第2システムの処理部に対して第1システムのハードウェアと第2システムのハードウェアとの違いに依存しない実行環境を第2システムの処理部に提供する、情報処理システムが提供される。
上記した第1システムは、所定の処理を実行するシステムを切り換える旨を示すイベントの発生を検知することが可能である監視部をさらに備え、第1システムの処理部は、所定の処理の実行中において監視部によってイベントの発生が検知されると、所定の処理の実行に際して使用しているハードウェアに記憶されているデータを抽出して、抽出したデータを記述したイメージファイルを生成し、生成したイメージファイルを第2システムに出力することとしてもよい。
上記した第2システムは、所定の処理を実行するシステムを切り換える旨を示すイベントの発生を検知することが可能である監視部をさらに備え、第2システムの処理部は、所定の処理の実行中において監視部によってイベントの発生が検知されると、所定の処理の実行に際して使用しているハードウェアに記憶されているデータを抽出して、抽出したデータを記述したイメージファイルを生成し、生成したイメージファイルを第1システムに出力することとしてもよい。
上記した第1システムの処理部は、所定の処理の待機中において監視部によってイベントの発生が検知されると、第2システムからイメージファイルの入力を受け付け、入力を受け付けたイメージファイルに記述されたデータを第1システムのハードウェアに記憶させ、データが記憶されたハードウェアを使用して所定の処理を実行することとしてもよい。
上記した第2システムの処理部は、所定の処理の待機中において監視部によってイベントの発生が検知されると、第1システムからイメージファイルの入力を受け付け、入力を受け付けたイメージファイルに記述されたデータを第2システムのハードウェアに記憶させ、データが記憶されたハードウェアを使用して所定の処理を実行することとしてもよい。
上記した第1システムのハードウェアは、第2システムのハードウェアよりも動作時における処理速度が低速であり、第1システムの監視部は、第1システムのハードウェアに対してかかっている負荷の大きさを監視し、負荷の大きさが所定値よりも大きいときにはイベントを発生させることとしてもよい。
上記した第1システムのハードウェアは、第2システムのハードウェアよりも動作時における処理速度が低速であり、第1システムの監視部は、第1システムの動作状況を監視し、動作状況が第1システムの起動中であるときにはイベントを発生させることとしてもよい。
上記した第2システムのハードウェアは、第1システムのハードウェアよりも動作時における処理速度が高速であり、第2システムの監視部は、第2システムのハードウェアに対してかかっている負荷の大きさを監視し、負荷の大きさが所定値よりも大きいときにはイベントを発生させることとしてもよい。
上記した第2システムのハードウェアは、第1システムのハードウェアよりも動作時における消費電力が高く、第2システムの監視部は、第2システムの動作状況を監視し、動作状況が第2システムのアイドル状態中であるときにはイベントを発生させることとしてもよい。
上記した第2システムのハードウェアは、第1システムのハードウェアよりも動作時における消費電力が高く、第2システムの監視部は、第2システムのバッテリの動作状況を監視し、動作状況がバッテリの駆動中であるときにはイベントを発生させることとしてもよい。
上記した第1システムの監視部は、第1システムの処理部が所定の処理の実行に際して使用している第1システムのハードウェアを監視し、第1システムに存在しないハードウェアまたは第1システムで故障しているハードウェアを使用する必要が生じた場合に、イベントを発生させることとしてもよい。
上記した第1システムの監視部は、第1システムの処理部が所定の処理の実行に際して使用している第1システム内の温度を監視し、温度が所定値よりも高い場合に、イベントを発生させることとしてもよい。
上記した第1システムは、所定の処理を実行するシステムを切り換える旨を示す切換え指示情報の入力をユーザから受け付けることが可能である入力部をさらに備え、第1システムの監視部は、入力部が切換え指示情報の入力を受け付けると、イベントを発生させることとしてもよい。
以上説明したように本発明によれば、所定の処理を実行するシステムにおいて所定の処理を実行している間に状況に応じて使用するシステムを切換え、切換え後のシステムにおいて、システムを切換えた時点から所定の処理の続きを実行することが可能である。
本実施形態に係る情報処理システムの機能構成を示す図である。 本実施形態に係るサブシステムのハードウェア構成を示す図である。 2種類の仮想化技術を示す図である。 LPSSからHPSSにVM(Vertual Machine)がマイグレーションする様子を示した模式図である。 VM実行側とVM非実行側とにおける状態遷移図である。 本実施形態に係る情報処理システムのシステム構成例(その1)を示す図である。 本実施形態に係る情報処理システムのシステム構成例(その2)を示す図である。 VM実行側のサブシステムの切換えの流れ(その1)を示す図である。 VM実行側のサブシステムの切換えの流れ(その2)を示す図である。 VMイメージ用HDDの共有例(その1)を示す図である。 VMイメージ用HDDの共有例(その2)を示す図である。 VMイメージ用HDDの共有例(その3)を示す図である。 VMイメージ用HDDの共有例(その4)を示す図である。 VMイメージ用HDDの共有例(その5)を示す図である。
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。なお、説明は以下の順序で行う。
1. 第1実施形態
1−1. 情報処理システムの概要
1−2. 情報処理システムの機能構成
1−3. サブシステムのハードウェア構成
1−4. 仮想化技術とは
1−5. 仮想化
1−6. 仮想化のメリット
1−7. マイグレーション
1−8. マイグレーションを活用した動的な実行環境の移動
1−9. 情報処理システムを実現するために必要なシステム構成要素
1−9−1. 消費電力・処理能力の異なる二つ以上のサブシステム
1−9−2. サブシステム間の通信手段
1−9−3. サブシステム間でHWリソースを共有する手段
1−9−4. サブシステム間でVMイメージを共有する手段
1−9−5. 切換えイベント検知機能
1−9−6. サブシステム電源制御機能
1−10. 状態遷移図
1−10−1. VM実行
1−10−2. マイグレーション待機(VM実行側)
1−10−3. マイグレーション待機(VM非実行側)
1−10−4. マイグレーション実行(VM実行側)
1−10−5. マイグレーション実行(VM実行側)
1−10−6. マイグレーションの流れ
1−10−7. ライブマイグレーションの流れ
1−10−8. 切換え待機
1−11. システム構成例(その1)
1−12. システム構成例(その2)
1−13. LPSS−>HPSSの切換えに関して
1−14. 切換えの流れ(その1)
1−15. 切換えの流れ(その2)
1−16. VMイメージ用HDD共有例(その1)
1−17. VMイメージ用HDD共有例(その2)
1−18. VMイメージ用HDD共有例(その3)
1−19. VMイメージ用HDD共有例(その4)
1−20. VMイメージ用HDD共有例(その5)
1−21. 命令セットが同一でない場合について
1−22. 将来的な展望
2. 本実施形態の変形例
<1.第1実施形態>
本発明の第1実施形態について説明する。
[1−1.情報処理システムの概要]
低消費電力サブシステム(LPSS:Low Power Sub System)と高パフォーマンスサブシステム(HPSS:High Power Sub System)とを有する情報処理システムが、それぞれのサブシステムにおいては仮想マシン上でOS(Opereting System)を実行する。情報処理システムは、タスク負荷や電源状態などの状況に応じて、処理を実行する仮想マシンをLPSSとHPSSの間で動的にマイグレーションさせる。例えば、起動時や高負荷タスク処理時にはHPSSに、バッテリ駆動時やアイドル時や低負荷処理時にはLPSSに処理を実行させる。情報処理システムは、単一筐体中にLPSSとHPSSの両方を有するシステム(PC単体)であってもよく、ノートPC(Personal Computer)(LPSS)とドック(HPSS)のような分離型システムであってもよい。また、情報処理システムは、LPSSとHPSSとの組み合わせに限らず、ハードウェアの異なる2つのシステムのあらゆる組み合わせによって構成されることとすることもできる。
[1−2.情報処理システムの機能構成]
図1は、本実施形態に係る情報処理システムの機能構成を示す図である。図1に示すように、情報処理システム10は、異なるハードウェアによって構成される2つのサブシステム(第1システム100(100a)および第2システム100(100b))によって構成される。本実施形態では、サブシステムの数は2つであるとするが、3つ以上であることとしてもよい。
情報処理システム10は、第1システム100(100a)と第2システム100(100b)とが単一筐体(例えば、ノートPC)内に存在することとしてもよく、第1システム100(100a)が組み込まれたノートPCと第2システム100(100b)が組み込まれたドックとを有する分離型システム等であってもよい。また、第1システム100(100a)と第2システム100(100b)とが別の筐体内に組み込まれており、各筐体がネットワークを介して接続されていることとしてもよい。
第1システム100(100a)と第2システム100(100b)とは互いに性質の異なるハードウェアを有するものである。ハードウェアの性質の違いには様々なものがあり、ハードウェアの性質の違いは特に限定されるものではないが、例えば、ハードウェアによる処理速度の違い、ハードウェアによる消費電力の違い、ハードウェアの入出力インタフェースの違い、CPUの命令セットアーキテクチャの違い等が想定される。第1システム100(100a)は、吸収部130(130a)と、処理部120(120a)とを備えるものである。同様に、第2システム100(100b)は、吸収部130(130b)と、処理部120(120b)とを備えるものである。
吸収部130は、自システムのハードウェアを使用した処理を実行するための環境である実行環境を提供することが可能である。ここでいうハードウェアとは、処理を実行するために必要となる物理的な装置であり、例えば、プログラムを実行するために必要となる、CPU(Central Processing Unit)、RAM(Random Access Memory)等のメモリ、HDD(Hard Disk Drive)等のストレージ装置といった各種の装置等である。吸収部130は、例えば、CPU、RAM、HDD等によって構成され、CPUがHDDから読み出してRAMに展開した仮想マシンモニタ(VMM:Vertual Machine Monitor)を実行することによってその機能が実現される。VMMは、例えば、ハードウェアの違いに依存しない実行環境を、後述する仮想マシン(VM)に提供するためのプログラムである。
処理部120は、吸収部130によって提供される実行環境において所定の処理を実行することが可能である。所定の処理とは、特に限定されるものではなく、例えば、プログラムを実行することによってなされるものである。プログラムの種類についても特に限定されるものではないが、例えば、コンテンツデータを再生するプログラム等である。処理部120は、例えば、CPU、RAM、HDD等によって構成され、CPUがHDDから読み出してRAMに展開したプログラムを実行することによって実現される。また、ここでいうプログラムは、上記VMM上で実行される仮想マシン(VM)を構成するソフトウェアのことである。さらに、仮想マシン(VM)を実行するとは、このCPUが仮想マシン(VM)を構成するソフトウェアを実行することを意味する。仮想マシン(VM)についての詳細については後述する。
第1システム100aの吸収部130aは、第1システム100aのハードウェアと第2システム100bのハードウェアとの違いを吸収する。この機能は、例えば、後に説明する仮想化技術によって実現できる。これによって、第1システム100aの処理部120aに対して第1システム100aのハードウェアと第2システム100bのハードウェアとの違いに依存しない実行環境を第1システム100aの処理部120aに提供する。
同様に、第2システム100bの吸収部130bは、第1システム100aのハードウェアと第2システム100bのハードウェアとの違いを吸収する。これによって、第2システム100bの処理部120bに対して第1システム100aのハードウェアと第2システム100bのハードウェアとの違いに依存しない実行環境を第2システム100bの処理部120bに提供する。
第1システム100aは、所定の処理を実行するシステムを切り換える旨を示すイベントの発生を検知することが可能である監視部160aをさらに備えることとしてもよい。その場合には、第1システム100aの処理部120aは、所定の処理の実行中において監視部160aによってイベントの発生が検知されると、所定の処理の実行に際して使用しているハードウェアに記憶されているデータを抽出する。そして、第1システム100aの処理部120aは、抽出したデータを記述したイメージファイルを生成し、生成したイメージファイルを第2システム100bに出力する。イメージファイルとは、ハードウェア(例えば、CPU、RAM、HDD等)に記憶されたデータを、ファイルやフォルダ構造を保ったまま保存したデータのことである。これによって、第1システム100aは、システムの切換え時にイメージファイルを第2システム100bに出力することができる。監視部160aは、CPU等によって構成され、CPUがRAM等に記憶されたプログラムを実行することによって実現される。
同様に、第2システム100bは、所定の処理を実行するシステムを切り換える旨を示すイベントの発生を検知することが可能である監視部160bをさらに備えることとしてもよい。その場合には、第2システム100bの処理部120bは、所定の処理の実行中において監視部160bによってイベントの発生が検知されると、所定の処理の実行に際して使用しているハードウェアに記憶されているデータを抽出する。そして、第2システム100bの処理部120bは、抽出したデータを記述したイメージファイルを生成し、生成したイメージファイルを第1システム100aに出力する。これによって、第2システム100bは、システムの切換え時にイメージファイルを第1システム100aに出力することができる。監視部160bは、CPU等によって構成され、CPUがRAM等に記憶されたプログラムを実行することによって実現される。
第1システム100aの処理部120aは、所定の処理の待機中において監視部160aによってイベントの発生が検知されると、第2システム100bからイメージファイルの入力を受け付けることとしてもよい。第1システム100aの処理部120aは、入力を受け付けたイメージファイルに記述されたデータを第1システム100aのハードウェアに記憶させ、データが記憶されたハードウェアを使用して所定の処理を実行する。これによって、第1システム100aの処理部120aは、第2システム100bの処理部120bによって実行していた所定の処理を、システムの切換え時点から実行することができる。
同様に、第2システム100bの処理部120bは、所定の処理の待機中において監視部160bによってイベントの発生が検知されると、第1システム100aからイメージファイルの入力を受け付けることとしてもよい。第2システム100bの処理部120bは、入力を受け付けたイメージファイルに記述されたデータを第2システム100bのハードウェアに記憶させ、データが記憶されたハードウェアを使用して所定の処理を実行する。これによって、第2システム100bの処理部120bは、第1システム100aの処理部120aが実行していた所定の処理を、システムの切換え時点から実行することができる。
第1システム100aのハードウェアが、第2システム100bのハードウェアよりも動作時における処理速度が低速である場合が想定される。この場合には、第1システム100aの監視部160aは、第1システム100aのハードウェアに対してかかっている負荷の大きさを監視することとしてもよい。負荷の大きさが所定値よりも大きいときには所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。所定値は、例えば、RAMやHDD等に記憶されているものとする。
また、第1システム100aのハードウェアが、第2システム100bのハードウェアよりも動作時における処理速度が低速である場合、第1システム100aの監視部160aは、第1システム100aの処理部120aによって実行されるVMの状況を監視することとしてもよい。その場合には、第1システム100aの監視部160aは、第1システム100aの処理部120aによって実行されるVMが起動中であるときには所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。
また、第2システム100bのハードウェアは、第1システム100aのハードウェアよりも動作時における処理速度が高速である場合が想定される。この場合には、第2システム100bの監視部160bは、第2システム100bのハードウェアに対してかかっている負荷の大きさを監視することとしてもよい。負荷の大きさが所定値よりも小さいときには所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。所定値は、例えば、RAMやHDD等に記憶されているものとする。
また、第2システム100bのハードウェアは、第1システム100aのハードウェアよりも動作時における消費電力が高い場合が想定される。この場合には、第2システム100bの監視部160bは、第2システム100bの動作状況を監視し、動作状況が第2システム100bのアイドル状態中であるときには所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。
また、第2システム100bのハードウェアは、第1システム100aのハードウェアよりも動作時における消費電力が高い場合が想定される。この場合には、第2システム100bの監視部160bは、第2システム100bのバッテリの動作状況を監視し、動作状況がバッテリの駆動中であるときには所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。
また、第1システム100aの監視部160aは、第1システム100aの処理部120aが所定の処理の実行に際して使用している第1システム100aのハードウェアを監視する。そして、第1システム100aの監視部160aが、第1システム100aに存在しないハードウェアまたは第1システム100aで故障しているハードウェアを使用する必要が生じた場合に、所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。同様に、第2システム100bの監視部160bが、第2システム100bの処理部120bが所定の処理の実行に際して使用している第2システム100bのハードウェアを監視することとしてもよい。そして、第2システム100bの監視部160bが、第2システム100bに存在しないハードウェアまたは第2システム100bで故障しているハードウェアを使用する必要が生じた場合に、所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。
また、第1システム100aの監視部160aは、第1システム100aの処理部120aが所定の処理の実行に際して使用している第1システム100a内の温度を監視する。そして、第1システム100aの監視部160aが、温度が所定値よりも高い場合に、所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。同様に、第2システム100bの監視部160bは、第2システム100bの処理部120bが所定の処理の実行に際して使用している第2システム100b内の温度を監視することとしてもよい。そして、第2システム100bの監視部160bが、温度が所定値よりも高い場合に、所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。所定値は、例えば、RAMやHDD等に記憶されているものとする。
また、第1システム100aは、所定の処理を実行するシステムを切り換える旨を示す切換え指示情報の入力をユーザから受け付けることが可能である入力部170aをさらに備えることとしてもよい。入力部170aは、例えば、入力装置等によって構成される。その場合には、第1システム100aの監視部160aは、入力部170aが切換え指示情報の入力を受け付けると、所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。同様に、第2システム100bは、所定の処理を実行するシステムを切り換える旨を示す切換え指示情報の入力をユーザから受け付けることが可能である入力部170bをさらに備えることとしてもよい。その場合には、第2システム100bの監視部160bは、入力部170bが切換え指示情報の入力を受け付けると、所定の処理を実行するシステムを切り換える旨を示すイベントを発生させることとしてもよい。ユーザは、例えば、周囲が静かな環境でシステムを利用した作業を行いたいときには、切換え指示情報を入力して、消費電力(または発熱量)が大きくシステムの冷却に使うファンを高速回転させる必要のあるシステムから、消費電力(発熱量)が小さくシステムの冷却のためにファンを回転させる必要がない(もしくはファンを低速で回転させればよい)システムに切り換えることが可能である。すなわち、ファンの回転音が比較的大きいシステムからファンの回転音が比較的小さいシステムに切り換えることが可能である。また、ユーザは、例えば、システムに高速な処理を実行させたい場合には、切換え指示情報を入力して、比較的処理速度の低速なシステムから比較的処理速度が高速なシステムに切り換えることが可能である。また、ユーザは、例えば、バッテリの残容量をあまり減らしたくない場合には、切換え指示情報を入力して、比較的消費電力の高いシステムから比較的消費電力の低いシステムに切り換えることが可能である。
この他に、第1システム100aは、第1システム100aのハードウェア資源のうちで第2システム100bと共有する部分として共有部140aをさらに備えることとしてもよい。共有部140aとしては、例えば、キーボードやLCD(Liquid Crystal Display)等が想定される。また、第1システム100aは、処理部120aが共有部140aに記憶されているデータやイメージファイルを第2システム100bと送受信するための通信部110a、所定の処理を実行した結果を出力する出力部150a等をさらに備えることとしてもよい。同様に、第2システム100bは、第2システム100bのハードウェア資源のうちで第1システム100aと共有する部分として共有部140bをさらに備えることとしてもよい。また、第2システム100bは、処理部120bが共有部140bに記憶されているデータやイメージファイルを第1システム100aと送受信するための通信部110b、所定の処理を実行した結果を出力する出力部150b等をさらに備えることとしてもよい。
[1−3.サブシステムのハードウェア構成]
図2は、本実施形態に係るサブシステムのハードウェア構成を示す図である。サブシステムは、上記した第1システム100aや、第2システム100bに相当するものである。また、ここでは、第1システム100aと第2システム100bとが別の筐体内に存在し、各々の筐体がネットワーク200を介して接続されている例について説明するが、このような形態に限定されないことについては上記した通りである。
サブシステム100(第1システム100aおよび第2システム100b)は、主に、CPU901と、ROM903と、RAM905と、ホストバス907と、ブリッジ909と、外部バス911と、インタフェース913と、入力装置915と、出力装置917と、ストレージ装置919と、ドライブ921と、接続ポート923と、通信装置925とを備える。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、サブシステム100内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、サブシステム100の操作に対応した携帯電話やPDA等の外部接続機器929であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。サブシステム100のユーザは、この入力装置915を操作することにより、サブシステム100に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置917は、例えば、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなど、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、サブシステム100が行った各種処理により得られた結果を出力する。具体的には、表示装置は、サブシステム100が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置919は、サブシステム100の記憶部の一例として構成されたデータ格納用の装置であり、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した音響信号データや画像信号データなどを格納する。
ドライブ921は、記録媒体用リーダライタであり、サブシステム100に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録を書き込むことも可能である。リムーバブル記録媒体927は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、メモリースティック、または、SDメモリカード(Secure Digital memory card)等である。また、リムーバブル記録媒体927は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
接続ポート923は、例えば、USB(Universal Serial Bus)ポート、i.Link等のIEEE1394ポート、SCSI(Small Computer System Interface)ポート、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等の、機器をサブシステム100に直接接続するためのポートである。この接続ポート923に外部接続機器929を接続することで、サブシステム100は、外部接続機器929から直接音響信号データや画像信号データを取得したり、外部接続機器929に音響信号データや画像信号データを提供したりする。
通信装置925は、例えば、ネットワーク200に接続するための通信デバイス等で構成された通信インタフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等である。この通信装置925は、例えば、インターネットや他の通信機器との間で音響信号等を送受信することができる。また、通信装置925に接続されるネットワーク200は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、本発明の各実施形態に係るサブシステム100の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
[1−4.仮想化技術とは]
仮想化技術とは、ソフトウェアで仮想的なハードウェアを作り、その上でOSやアプリケーションなどのソフトウェアを動かすことである。
仮想マシンとは、OSやアプリケーションを物理的なコンピュータと同じように実行できる、ソフトウェアおよびデータの集合である。仮想マシンには、CPU、メモリ、HDDや、ネットワークコントローラなどの仮想デバイスが含まれる。
[1−5.仮想化]
PCの世界で一般的に使われる仮想化技術には、ハイパーバイザ型とアプリケーション型の2種類が存在する。図3は、2種類の仮想化技術を示す図である。図3(a)に示すハイパーバイザ型のサブシステム100は、H/W(ハードウェア)191と、VMM192と、Host OS194を含むVM193と、Guest OS196を含むVM195とを備えるものである。図3(b)に示すアプリケーション型のサブシステム100は、H/W(ハードウェア)191と、Host OS194と、VMM192と、Guest OS196を含むVM195とを備えるものである。
[1−6.仮想化のメリット]
仮想化を行うことのメリットとして、既存のソフトウェアが実行できる「互換性」が挙げられる。その他に、基盤となる物理ハードウェアとはまったく異なる仮想マシンを構成できるという「エミュレーション」、仮想マシンをファイル群として扱うことができるという「カプセル化」、他のソフトウェアのファイルと同様に仮想マシンを一つの場所から別の場所に移動できるという「可搬性」、物理的に存在する一台のマシン上で複数の仮想マシンが実行できるという「パーティショニング」、各仮想マシンがそれぞれ別々のマシンのように振る舞うことができるという「隔離」等が挙げられる。
[1−7.マイグレーション]
マイグレーションとは、仮想マシンの持つ上記特徴の「可搬性」を利用して、別のホストに仮想マシンを移動することである。本実施形態では、例えば、イメージファイルが第1システム100aと第2システム100bとの間で移動することを示すものである。マイグレーションの中で、ライブマイグレーションとは、実行中の仮想マシンを(ほぼ)無停止で別のホストに移動する技術である。図4は、LPSS191aからHPSS191bにVMがマイグレーションする様子を示した模式図である。
[1−8.マイグレーションを活用した動的な実行環境の移動]
続いて、マイグレーションを活用して動的に実行環境を移動させる技術(ライブマイグレーション)を本実施形態に適用した技術であるDynamic Platform Switchingについて説明する。仮想マシン上でOSを動作させ、第1システム100aの一例としてのHPSSと第2システム100bの一例としてのLPSSとの間で、Dynamic Platform Switching(いわゆる、ライブマイグレーション)を行う。以下では、第1システム100aの一例としてHPSS、第2システム100bの一例としてLPSSを使用することとする。
Dynamic Platform Switchingの一例としては、例えば、システムの起動時やシステムに高い負荷がかかる高負荷時にはHPSS、システムのIdle時・バッテリ駆動時にはLPSSを使用することが想定される。さらに、別の例としては、例えば、HDMI(High−Definition Multimedia Interface)など、HPSSでしか使えないインタフェースがある場合、必要なときだけHPSSに切り換えることが想定される。また、ユーザが出張するときは、MobilePCで仮想マシンを動かし、ユーザが帰ってきたらDesktopPCで仮想マシンを動かすことが想定される。これを実現するための形態としては、DesktopPCのような別PCでも、Dockのような形態でも可能である。
[1−9.情報処理システムを実現するために必要なシステム構成要素]
本実施形態に係る情報処理システム10を実現するために必要なシステム構成要素としては、消費電力・処理能力の異なる二つ以上のサブシステムが挙げられる。例えば、サブシステムとして、低消費電力サブシステム(LPSS)と高パフォーマンスサブシステム(HPSS)とが挙げられる。その他に、サブシステム間の通信手段(例えば、通信部110)や、サブシステム間で共有するHW(HardWare)リソースの共有手段(例えば、共有部140)、サブシステム間でVMイメージ(例えば、イメージファイル)を共有する手段、切換えイベント検知機能(例えば、監視部160の機能)、サブシステム電源制御機能等が挙げられる。
[1−9−1.消費電力・処理能力の異なる二つ以上のサブシステム]
消費電力・処理能力の異なる二つ以上のサブシステムは、それぞれ、Host OSとVMMとを実行可能である。他サブシステムがVM実行中に、自サブシステムでHost OSとVMMを起動しVM実行サブシステムからのマイグレーション受け入れが可能な構成となっている。このような構成とするためには、サブシステムに、CPU、チップセット、メモリなどが含まれる。Host OSとVMMとを格納するHDDは、構成次第で他サブシステムと共有可能とすることができる。したがって、HDDはサブシステムに属さないこととすることもできる。
[1−9−2.サブシステム間の通信手段]
サブシステム間の通信手段(例えば、通信部110)による通信方式は、IP(Internet Protocol)ネットワークを介するものであってもよいし、USB(Universal Serial Bus)クライアント機能のような仮想デバイスを用いるものであってもよい。サブシステム間の通信手段は、主として、VMスナップショットの共有やマイグレーションの同期を取るために用いられる。また、自サブシステムの共有リソースを他サブシステムが利用する際や、他サブシステムの共有リソースを自サブシステムが利用する際に使うことも可能である。
[1−9−3.サブシステム間でHWリソースを共有する手段]
本実施形態に係る情報処理システム10では、以下の(1)〜(4)のいずれか、または、それらの組み合わせによってHWリソースの共有手段を提供するHW構成とソフトウェアプログラムとが必要となる。
(1)サブシステム間の通信手段を介して、一つのサブシステムが他のサブシステムに対して機能を提供する技術を使用することができる。例えば、サーバクライアントモデルによるリモートコントロール(例えば、サーバ−クライアント型のシステムによる機能の提供)によって機能を提供する技術や、USBクライアント機能などの仮想デバイスによって機能を提供する技術等を使用することができる。
(2)各サブシステムからアクセス可能なバスもしくはデバイスにデバイスを接続する技術を使用することができる。例えば、i.LINKや、SCSI(Small Computer System Interface)、LAN(Local Area Network)等による接続等が想定される。また、両サブシステムからアクセスがあった場合にアクセスを調停するための調停コントローラを使用することもできる。
(3)HWリソースが接続されたサブシステムにマイグレーションする技術を使用することができる。LPSSには存在しないHWリソースが接続されたHPSSにマイグレーションする場合等が想定される。
(4)スイッチを用いて、VMを実行するサブシステムにHWリソースを接続する技術を使用することができる。
[1−9−4.サブシステム間でVMイメージを共有する手段]
本実施形態に係る情報処理システム10では、以下の(1)〜(3)のいずれか、または、それらの組み合わせによってVMイメージの共有手段を提供するHW構成とソフトウェアプログラムとが必要となる。
(1)一つのサブシステムが他のサブシステムに対してスナップショットを提供する技術を使用することができる。これには、ファイルサーバの使用、USBクライアント機能(VMイメージを保存するストレージを持つサブシステムが他サブシステムに対してデバイスとして振る舞う機能)の使用、ファイル転送(コピー)機能の使用等が想定される。
(2)サブシステムと中立な位置関係に共有ストレージを配置する技術を使用することができる。これには、i.LINK・SCSI・LAN等による接続や、調停コントローラの使用等を使用することが想定される。
(3)スイッチを用いて、ストレージの接続先を切り換えて、VMを実行するサブシステムがストレージを占有する技術を使用する。
[1−9−5.切換えイベント検知機能]
本実施形態に係るサブシステムでは、切換えイベント検知機能(例えば、監視部160の機能)として、VMの負荷状況、使用デバイス、ソフトウェアUI(User Interface)によるユーザからの選択等をモニタするソフトウェアプログラムを実行する。また、サブシステムのコンポーネントにおいて、ハードウェアUI(メカニカルスイッチ等)によるユーザからの選択、電源状況変化(AC/Battery)、システムの温度状況、(HPSS分離タイプの場合)HPSS接続状況変化等をモニタするソフトウェアプログラムを実行する。
[1−9−6.サブシステム電源制御機能]
本実施形態に係るサブシステムでは、VM実行中か否かなど、状況を判断してサブシステムの動作状態を切り換える仕組みや、ソフトウェアプログラム等が必要となる。また、VMを実行せず、かつ、他サブシステムに対して機能を提供しないサブシステムが存在するときには、そのサブシステムの電源を切ったり、そのサブシステムを省電力モードに遷移させたりすることで、システム全体の消費電力を低減することができる。また、マイグレーションする際や、他のサブシステムへ機能を提供する際には、サブシステムを動作状態に復帰させることもできる。
[1−10.状態遷移図]
図5は、VM実行側210とVM非実行側220とにおける状態遷移図である。情報処理システム10には、VM実行側のサブシステムとVM非実行側のサブシステムとが存在することになる。
[1−10−1.VM実行]
図5において、「VM実行T110」は、VMを実行している状態を示している。この「VM実行T110」において、他サブシステムが提供する機能があれば、サブシステム間の通信機能を介して利用することができる。また、この「VM実行T110」において、切換えイベントを検知すると「マイグレーション待機T130」状態へ遷移する。
[1−10−2.マイグレーション待機(VM実行側210)]
図5において、「マイグレーション待機T130(VM実行側210)」は、マイグレーションの準備をし、他サブシステムが「マイグレーション待機T130」状態に遷移するのを待っている状態である。マイグレーション先サブシステムとの通信を確立し、同期が取れたら「マイグレーション実行T150」状態に遷移する。マイグレーション先サブシステムとの通信が確立できないときは「VM実行T110」状態に遷移する。
[1−10−3.マイグレーション待機(VM非実行側220)]
図5において、「マイグレーション待機T140(VM非実行側220)」は、必要に応じて省電力状態もしくは電源Off状態から復帰する状態である。この状態では、マイグレーション受け入れ準備をし、他サブシステムが「マイグレーション待機T130」状態に遷移するのを待つこととなる。マイグレーション元サブシステムとの通信を確立し、同期が取れたら「マイグレーション実行T160」状態に遷移する。マイグレーション先サブシステムとの通信が確立できないときは「切換え待機T120」状態に遷移する。
[1−10−4.マイグレーション実行(VM実行側210)]
図5において、「マイグレーション実行(T150)」は、VMの停止や保存を行う状態である。VMの停止時間を短くするため、VM非実行側220にVMデータを差分転送することとしてもよい(ライブマイグレーション)。マイグレーションが完了したら占有していたHWリソースをマイグレーション先に切り換える。マイグレーションに失敗したら「VM実行T110」状態に遷移する。
[1−10−5.マイグレーション実行(VM非実行側220)]
図5において、「マイグレーション実行(T160)」は、VMの読み込みや実行を行う状態である。VMの停止時間を短くするため、VM実行側210からVMデータを差分受信することとしてもよい(ライブマイグレーション)。マイグレーションが完了したらマイグレーション先が占有していたHWリソースを受け取る。マイグレーションに失敗したら「切換え待機T120」状態に遷移する。
[1−10−6.マイグレーションの流れ]
マイグレーションの流れとしては、例えば、「マイグレーション開始」→「仮想マシン停止(移動元)」→「仮想マシンデータ転送(移動元→移動先)」→「仮想マシン再開(移動先)」の順に処理が実行される。
[1−10−7.ライブマイグレーションの流れ]
ライブマイグレーションの流れとしては、「マイグレーション開始」→「仮想マシンデータ転送(移動元→移動先)」→「差分転送(移動元→移動先)」→「差分が十分少なくなるまで差分転送を繰り返す」→「仮想マシン停止(移動元)」→「差分転送(移動元→移動先)」→「仮想マシン再開(移動先)」の順に処理が実行される。
[1−10−8.切換え待機T120]
図5において、「切換え待機T120」は、切換えイベント待ちの状態である。この状態では、電源Offや省電力状態、もしくはVM実行サブシステムに対して自サブシステムのHWリソースの機能を提供する。また、この状態において、切換えイベントを検知すると「マイグレーション待機T140」状態へ遷移する。
[1−11.システム構成例(その1)]
図6は、本実施形態に係る情報処理システムのシステム構成例(その1)を示す図である。図6に示すように、LPSS191aは、CPU901aと、Mem(Memory)904aと、NB(North Bridge)908aと、SB(South Bridge)909aと、HDD918aと、LAN926aとを備えて構成されている。また、HPSS191bは、CPU901bと、Mem904bと、NB908bと、SB909bと、SSD918bと、LAN926bとを備えて構成されている。LPSS191aとHPSS191bとをLAN926a,926bで接続する。LPSS191aのHDD918aにはLPSS191aのHost OSやVMM、VMイメージを格納する。HPSS191bのSSD(Solid State Drive)918bには、HPSS191bのHost OSとVMMとを格納する。HPSS191bからはLAN926bを介してHDD918aにアクセスする。LPSS191aはLAN926aを介してHPSS191bと通信する。LPSS191aがSMC(System Management Controller)906に切換えタイミングを通知する。SMC906はPlatform Switchingに同期してKBD(KeyBorD)916の接続先とLCD914の接続先とをバススイッチで切り換える。SMC906はHPSS191bへの電源供給を制御する。
[1−12.システム構成例(その2)]
図7は、本実施形態に係る情報処理システムのシステム構成例(その2)を示す図である。図7に示すように、LPSS191aとHPSS191bとをUSBで接続する。LPSS191aがUSB Client(USBC924)として動作する。LPSS191aのHDD918aにはLPSS191aのHost OSやVMM、VMイメージを格納する。HPSS191bのSSD918bにはHPSS191bのHost OSとVMMとを格納する。HPSS191bからはUSBを介してHDD918aにアクセスする。LPSS191aはUSBを介してHPSS191bと通信する。LPSS191aがSMCに切換えタイミングを通知する。SMC906はPlatform Switchingに同期してKBD916の接続先とLCD914の接続先とをバススイッチで切り換える。SMC906はHPSS191bへの電源供給を制御する。
[1−13.LPSS−>HPSSの切換えに関して]
Platform Switchingの切換え要求イベント発生からマイグレーション開始までの時間を短くするためには、イベント発生後にできるだけ短い時間でHPSS191bを起動する必要がある。LPSS191a動作時にHPSS191bをスタンバイに入れておくと、HPSS191bの復帰を高速化することができる。また、HPSS191bの復帰に時間がかかることが許容でき、LPSS191a動作中の電力を少しでも減らしたい場合にはHPSS191bの電源を切る方が省電力になる。
[1−14.切換えの流れ(その1)]
図8は、VM実行側のサブシステムの切換えの流れ(その1)を示す図である。図8では、LPSS動作時にHPSSの電源をOffにしておく場合について示している。LPSSは、HPSS切り替えイベント(310)の発生を検知すると、HPSSに起動要求(320)を送信する。HPSSは、起動要求(320)を受信すると、電源をOffからOnに切り替え(ステップS210)、BIOSを起動し(ステップS220)、OSを起動し(ステップS230)、VMMを起動する(ステップS240)。HPSSは、起動が終わると、LPSSにマイグレーション受入準備完了通知(330)を送信する。LPSSは、マイグレーション受入準備完了通知(330)を受信すると、VMを停止し(ステップS250)、VMを保存して(ステップS260)、HPSSにVM保存完了通知(340)を送信する。HPSSは、VM保存完了通知(340)を受信すると、LPSSからマイグレーションされたVMを読み込み(ステップS270)、読み込んだVMを再開して(ステップS280)、LPSSにマイグレーション成功通知(350)を送信する。LPSSは、HPSSから「マイグレーション成功通知(350)」を受信した後、「切換え待機」状態に遷移することとしてもよく、停止状態に遷移することとしてもよい。
[1−15.切換えの流れ(その2)]
図9は、VM実行側のサブシステムの切換えの流れ(その2)を示す図である。図9では、LPSS動作時にHPSSをスタンバイにしておく場合について示している。HPSSは、起動要求(320)を受信すると、電源をスタンバイ状態からOnに切り替え(ステップS310)、BIOSを再開し(ステップS320)、OSを再開し(ステップS330)、VMMを再開する(ステップS340)。その他については、図8に示した処理の流れと同様である。HPSSから「マイグレーション成功通知(350)」を受信した後、「切換え待機」状態に遷移することとしてもよく、停止状態に遷移することとしてもよい。
[1−16.VMイメージ用HDD共有例(その1)]
図10は、VMイメージ用HDDの共有例(その1)を示す図である。図10に示すように、LPSS191aとHPSS191bとを、例えば、PCIe(PCI Express)931などのローカルバスで接続する。HDD918aをLPSS191aに接続し、HDD918aにVMイメージ410を格納する。HPSS191bはLPSS191aを介してHDD918aを使用する。LPSS191aがHPSS191bに対してローカルバスで接続されたデバイスとして振る舞ってもよいし、その逆でもよい。また、LPSS191aとHPSS191bとでローカルバスをネットワークとして使用してもよい。
[1−17.VMイメージ用HDD共有例(その2)]
図11は、VMイメージ用HDDの共有例(その2)を示す図である。図11に示すように、LPSS191aとHPSS191bとを、例えば、LAN(Local Area Network)926などのネットワークで接続する。HDD918aをLPSS191aに接続し、HDD918aにVMイメージ410を格納する。HPSS191bからはネットワークを介してVMイメージ410にアクセスする。LPSS191aのHost OSやVMMはHDD918aに格納する。HPSS191bもHost OSやVMMの格納や仮想記憶などに使用するため、ある程度の容量を持ったSSD918bなどのストレージを持たせるとよい。
[1−18.VMイメージ用HDD共有例(その3)]
図12は、VMイメージ用HDDの共有例(その3)を示す図である。図12に示すように、LPSS191aとHDD918aとをi.LINK(IEEE1394)933aで接続し、HPSS191bとHDD918aとをi.LINK933bで接続する。HDD918aにVMイメージ410を格納する。LPSS191aとHPSS191bとのどちらも、i.LINK933a,933bのプロトコルを使用してHDD918aにアクセスする。この形態によれば、LPSS191aとHPSS191bとのそれぞれのHost OSやVMM格納用にHDD918aを使用できる。LPSS191aとHPSS191bと間の通信にもi.LINK933a,933bを使用できる。i.LINK933a,933bの代わりに、SCSI、SAS、iSCSI、LAN等を使用することもできる。
[1−19.VMイメージ用HDD共有例(その4)]
図13は、VMイメージ用HDDの共有例(その4)を示す図である。図13に示すように、LPSS191a/HPSS191bのアクセスを調停する機能を持つHDD Controller941にHDD918aを接続する。HDD Controller941とHDD918aとの接続には、SATA(Serial ATA)935を使用することができる。Platform Switching時にLPSS191a−HPSS191b間で同期を取るため、LPSS191a−HPSS191b間における通信手段が必要となる。通信手段としての機能は、HDD Controller941にもたせてもよい。HDD Controller941とLPSS191aとはPCIe(PCI Express)931a等で接続することができ、HDD Controller941とHPSS191bとは、PCIe(PCI Express)931b等で接続することができる。
[1−20.VMイメージ用HDD共有例(その5)]
図14は、VMイメージ用HDDの共有例(その5)を示す図である。図14に示すように、LPSS191a/HPSS191bとHDD918aとをSATA(Serial ATA)935a,935b,935cで接続する。バススイッチ(Swith937)を使ってLPSS191aとHPSS191bのどちらにHDD918aを接続するかを決定する。Platform Switching時にLPSS191a−HPSS191b間で同期を取るため、別途LPSS191a−HPSS191b間における通信手段が必要となる。
[1−21.命令セットが同一でない場合について]
LPSSとHPSSとの間でCPUがサポートする命令セットが同一でない場合について説明する。HPSSとLPSSとの間でCPUがサポートしている機能や命令セットが同一にできるとは限らない。しかしながら、CPUがサポートしている機能や命令セットが同一でない場合に対してもエミュレーション技術を使用して本実施形態を適用することが可能である。また、例えば、x86CPUが無効な命令を実行すると例外(割り込み)が発生する。この場合、その割り込み処理でどのような命令を実行しようとしたのかを仮想マシンモニタが確認し、命令をエミュレーションすることが可能である。
また、サポートする機能や命令セットの少ない方に合わせて仮想マシンを作るという方法もある。
また、例えば、LPSSはx86(x86 32bit)のみ、HPSSはx86に加えx64(x86 64bit)もサポートし、仮想マシン上のOSは64bit Windows(登録商標)7を使うケース等も想定できる。そのようなケースでは、LPSSがエミュレーションすべき64bit命令が頻繁に実行されることとなる。そのような場合であっても、64bit命令をエミュレーションせずに実行できるようLPSSのCPUを選定すればLPSSで十分なパフォーマンスを得ることが可能となる。
[1−22.将来的な展望]
サーバサイドでの仮想化技術では、仮想化アプライアンスと呼ばれるサービスが広がりつつある。これは、サーバ上にあるVMイメージを、サーバ上もしくはクライアント上で実行するものである。このような仮想化アプライアンスも、広い意味ではLPSSもしくはHPSSとしてとらえることができる。VMとこのような仮想化アプライアンスサービスと間に互換性があれば、仮想化アプライアンスサービスとの間でマイグレーションが可能となる。これにより、VM実行環境を持たない時でもネットワークサービスである仮想化アプライアンスを通してVMを使用したり、仮想化サーバによってパフォーマンスのスケーラビリティを増したりすることが可能になると考えられる。
<2.本実施形態の変形例>
なお、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
10 情報処理システム
100 サブシステム
100a 第1システム
100b 第2システム
110(110a,110b) 通信部
120(120a,120b) 処理部
130(130a,130b) 吸収部
140(140a,140b) 共有部
150(150a,150b) 出力部
160(160a,160b) 監視部
170(170a,170b) 入力部
200 ネットワーク

Claims (12)

  1. 自システムのハードウェアを使用した処理を実行するための環境である実行環境を提供することが可能である吸収部と、
    前記吸収部によって提供される前記実行環境において所定の処理を実行することが可能である処理部と、
    をそれぞれが有するとともに、互いに異なる性質の前記ハードウェアを有する、第1システムおよび第2システムを備え、
    前記第1システムの前記吸収部は、
    前記第1システムの前記ハードウェアと前記第2システムの前記ハードウェアとの違いを吸収することによって、前記第1システムの前記処理部に対して前記第1システムの前記ハードウェアと前記第2システムの前記ハードウェアとの違いに依存しない前記実行環境を前記第1システムの前記処理部に提供し、
    前記第2システムの前記吸収部は、
    前記第1システムの前記ハードウェアと前記第2システムの前記ハードウェアとの違いを吸収することによって、前記第2システムの前記処理部に対して前記第1システムの前記ハードウェアと前記第2システムの前記ハードウェアとの違いに依存しない前記実行環境を前記第2システムの前記処理部に提供する、情報処理システム。
  2. 前記第1システムは、
    前記所定の処理を実行するシステムを切り換える旨を示すイベントの発生を検知することが可能である監視部をさらに備え、
    前記第1システムの前記処理部は、
    前記所定の処理の実行中において前記監視部によって前記イベントの発生が検知されると、前記所定の処理の実行に際して使用している前記ハードウェアに記憶されているデータを抽出して、抽出した前記データを記述したイメージファイルを生成し、生成した前記イメージファイルを前記第2システムに出力する、
    請求項1に記載の情報処理システム。
  3. 前記第2システムは、
    前記所定の処理を実行するシステムを切り換える旨を示すイベントの発生を検知することが可能である監視部をさらに備え、
    前記第2システムの前記処理部は、
    前記所定の処理の実行中において前記監視部によって前記イベントの発生が検知されると、前記所定の処理の実行に際して使用している前記ハードウェアに記憶されているデータを抽出して、抽出した前記データを記述したイメージファイルを生成し、生成した前記イメージファイルを前記第1システムに出力する、
    請求項2に記載の情報処理システム。
  4. 前記第1システムの前記処理部は、
    前記所定の処理の待機中において前記監視部によって前記イベントの発生が検知されると、前記第2システムから前記イメージファイルの入力を受け付け、入力を受け付けた前記イメージファイルに記述された前記データを前記第1システムの前記ハードウェアに記憶させ、前記データが記憶された前記ハードウェアを使用して前記所定の処理を実行する、
    請求項3に記載の情報処理システム。
  5. 前記第2システムの前記処理部は、
    前記所定の処理の待機中において前記監視部によって前記イベントの発生が検知されると、前記第1システムから前記イメージファイルの入力を受け付け、入力を受け付けた前記イメージファイルに記述された前記データを前記第2システムの前記ハードウェアに記憶させ、前記データが記憶された前記ハードウェアを使用して前記所定の処理を実行する、
    請求項4に記載の情報処理システム。
  6. 前記第1システムの前記ハードウェアは、
    前記第2システムの前記ハードウェアよりも動作時における処理速度が低速であり、
    前記第1システムの前記監視部は、
    前記第1システムの前記ハードウェアに対してかかっている負荷の大きさを監視し、前記負荷の大きさが所定値よりも大きいときには前記イベントを発生させる、
    請求項5に記載の情報処理システム。
  7. 前記第2システムの前記ハードウェアは、
    前記第1システムの前記ハードウェアよりも動作時における処理速度が高速であり、
    前記第2システムの前記監視部は、
    前記第2システムの前記ハードウェアに対してかかっている負荷の大きさを監視し、前記負荷の大きさが所定値よりも小さいときには前記イベントを発生させる、
    請求項5に記載の情報処理システム。
  8. 前記第2システムの前記ハードウェアは、
    前記第1システムの前記ハードウェアよりも動作時における消費電力が高く、
    前記第2システムの前記監視部は、
    前記第2システムの前記ハードウェアの動作状況を監視し、前記動作状況が前記ハードウェアのアイドル状態中であるときには前記イベントを発生させる、
    請求項5に記載の情報処理システム。
  9. 前記第2システムの前記ハードウェアは、
    前記第1システムの前記ハードウェアよりも動作時における消費電力が高く、
    前記第2システムの前記監視部は、
    前記第2システムのバッテリの動作状況を監視し、前記動作状況が前記バッテリの駆動中であるときには前記イベントを発生させる、
    請求項5に記載の情報処理システム。
  10. 前記第1システムの前記監視部は、
    前記第1システムの前記処理部が前記所定の処理の実行に際して使用している前記第1システムの前記ハードウェアを監視し、前記第1システムに存在しないハードウェアまたは前記第1システムで故障しているハードウェアを使用する必要が生じた場合に、前記イベントを発生させる、
    請求項5に記載の情報処理システム。
  11. 前記第1システムの前記監視部は、
    前記第1システムの前記処理部が前記所定の処理の実行に際して使用している前記第1システム内の温度を監視し、前記温度が所定値よりも高い場合に、前記イベントを発生させる、
    請求項5に記載の情報処理システム。
  12. 前記第1システムは、
    前記所定の処理を実行するシステムを切り換える旨を示す切換え指示情報の入力をユーザから受け付けることが可能である入力部をさらに備え、
    前記第1システムの前記監視部は、
    前記入力部が前記切換え指示情報の入力を受け付けると、前記イベントを発生させる、
    請求項5に記載の情報処理システム。
JP2009049838A 2009-03-03 2009-03-03 情報処理システム Active JP4970479B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009049838A JP4970479B2 (ja) 2009-03-03 2009-03-03 情報処理システム
US12/660,103 US9672055B2 (en) 2009-03-03 2010-02-19 Information processing system having two sub-systems with different hardware configurations which enable switching therebetween
CN2010101253004A CN101826033B (zh) 2009-03-03 2010-02-24 信息处理系统
EP10154514.3A EP2226724B1 (en) 2009-03-03 2010-02-24 Information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009049838A JP4970479B2 (ja) 2009-03-03 2009-03-03 情報処理システム

Publications (2)

Publication Number Publication Date
JP2010204962A true JP2010204962A (ja) 2010-09-16
JP4970479B2 JP4970479B2 (ja) 2012-07-04

Family

ID=42320957

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009049838A Active JP4970479B2 (ja) 2009-03-03 2009-03-03 情報処理システム

Country Status (4)

Country Link
US (1) US9672055B2 (ja)
EP (1) EP2226724B1 (ja)
JP (1) JP4970479B2 (ja)
CN (1) CN101826033B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9762701B1 (en) * 2009-04-10 2017-09-12 Open Invention Network Llc System and method for cached streaming application isolation
EP2580670A4 (en) * 2010-06-10 2017-12-20 Hewlett-Packard Development Company, L.P. Virtual machine
JP5967215B2 (ja) * 2012-11-07 2016-08-10 富士通株式会社 情報処理装置、プログラムおよび仮想マシン移動方法
US9697172B1 (en) * 2012-12-28 2017-07-04 Juniper Networks, Inc. Virtual network optimizing a physical network
US9608876B2 (en) 2014-01-06 2017-03-28 Microsoft Technology Licensing, Llc Dynamically adjusting brand and platform interface elements
US9483811B2 (en) 2014-01-06 2016-11-01 Microsoft Technology Licensing, Llc Division of processing between systems based on external factors
US20150193275A1 (en) * 2014-01-06 2015-07-09 Microsoft Corporation Building interactive, data driven apps
US9501808B2 (en) 2014-01-06 2016-11-22 Microsoft Technology Licensing, Llc Division of processing between systems based on business constraints
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
DE102015214390A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben wechselnder Gastsysteme unter einem Hypervisor

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09274608A (ja) * 1996-04-04 1997-10-21 Hitachi Ltd マルチプロセッサシステムにおけるプロセッサ間の負荷配分制御方法
JP2002215597A (ja) * 2001-01-15 2002-08-02 Mitsubishi Electric Corp マルチプロセッサ装置
JP2002288150A (ja) * 2001-03-28 2002-10-04 Matsushita Electric Ind Co Ltd 半導体集積回路装置
JP2004126968A (ja) * 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
JP2007148952A (ja) * 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
JP2007323244A (ja) * 2006-05-31 2007-12-13 Nec Corp 仮想サーバ管理システムおよびその方法ならびに管理サーバ装置
JP2008257578A (ja) * 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7231531B2 (en) * 2001-03-16 2007-06-12 Dualcor Technologies, Inc. Personal electronics device with a dual core processor
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US20060155912A1 (en) * 2005-01-12 2006-07-13 Dell Products L.P. Server cluster having a virtual server
US7496613B2 (en) * 2006-01-09 2009-02-24 International Business Machines Corporation Sharing files among different virtual machine images
JP4961146B2 (ja) * 2006-02-20 2012-06-27 株式会社日立製作所 負荷分散方法およびシステム
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US8296760B2 (en) * 2006-10-27 2012-10-23 Hewlett-Packard Development Company, L.P. Migrating a virtual machine from a first physical machine in response to receiving a command to lower a power mode of the first physical machine
US7941657B2 (en) * 2007-03-30 2011-05-10 Lenovo (Singapore) Pte. Ltd Multi-mode mobile computer with hypervisor affording diskless and local disk operating environments
US7788522B1 (en) * 2007-05-31 2010-08-31 Oracle America, Inc. Autonomous cluster organization, collision detection, and resolutions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09274608A (ja) * 1996-04-04 1997-10-21 Hitachi Ltd マルチプロセッサシステムにおけるプロセッサ間の負荷配分制御方法
JP2002215597A (ja) * 2001-01-15 2002-08-02 Mitsubishi Electric Corp マルチプロセッサ装置
JP2002288150A (ja) * 2001-03-28 2002-10-04 Matsushita Electric Ind Co Ltd 半導体集積回路装置
JP2004126968A (ja) * 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
JP2007148952A (ja) * 2005-11-30 2007-06-14 Renesas Technology Corp 半導体集積回路
JP2007323244A (ja) * 2006-05-31 2007-12-13 Nec Corp 仮想サーバ管理システムおよびその方法ならびに管理サーバ装置
JP2008257578A (ja) * 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
須崎有康: "「ネットワークを渡り歩けるコンピュータ」の実装", 電子情報通信学会技術研究報告, vol. 第100巻,第86号, JPN6009049702, 25 May 2000 (2000-05-25), JP, pages 149 - 156, ISSN: 0001817419 *

Also Published As

Publication number Publication date
CN101826033B (zh) 2013-10-02
EP2226724A2 (en) 2010-09-08
JP4970479B2 (ja) 2012-07-04
EP2226724A3 (en) 2011-09-07
US20100229180A1 (en) 2010-09-09
CN101826033A (zh) 2010-09-08
EP2226724B1 (en) 2018-08-29
US9672055B2 (en) 2017-06-06

Similar Documents

Publication Publication Date Title
JP4970479B2 (ja) 情報処理システム
US9996396B2 (en) Cross architecture virtual machine migration
KR101602991B1 (ko) 비가상화 시스템에서의 메모리 확장을 지원하기 위한 상호 운영 시스템 메모리 핫스왑
US9317314B2 (en) Techniques for migrating a virtual machine using shared storage
US9489035B2 (en) Efficient power management of a system with virtual machines
JP4665040B2 (ja) 計算機およびアクセス制御方法
US9459928B2 (en) Remote graphics console and virtual media access to virtual machine guests
US20110113426A1 (en) Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods
TW201543225A (zh) 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法
JP2012009013A (ja) 部分仮想化マシンに基づく統一格納装置
US9424205B2 (en) System and method for SATA virtualization and domain protection
JP2013254304A (ja) 情報処理装置、情報処理方法およびプログラム
WO2016101282A1 (zh) 一种i/o任务处理的方法、设备和系统
WO2020063432A1 (zh) 一种升级虚拟化模拟器的方法和装置
Kooburat et al. The Best of Both Worlds with {On-Demand} Virtualization
US9286088B2 (en) User interface for interaction with virtual machine
KR101614920B1 (ko) 다수 개의 컴퓨팅 시스템 및/또는 환경들에서의 입출력 자원들의 공유
US10564918B2 (en) Techniques of remotely providing user input to thin client
US20230026015A1 (en) Migration of virtual computing storage resources using smart network interface controller acceleration
US10394512B2 (en) Multi-monitor alignment on a thin client

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110308

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110419

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

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

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4970479

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250