JP2009134601A - ディスクアクセス方式切替装置 - Google Patents
ディスクアクセス方式切替装置 Download PDFInfo
- Publication number
- JP2009134601A JP2009134601A JP2007311097A JP2007311097A JP2009134601A JP 2009134601 A JP2009134601 A JP 2009134601A JP 2007311097 A JP2007311097 A JP 2007311097A JP 2007311097 A JP2007311097 A JP 2007311097A JP 2009134601 A JP2009134601 A JP 2009134601A
- Authority
- JP
- Japan
- Prior art keywords
- disk
- driver
- disk access
- device driver
- command
- 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
- 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/4555—Para-virtualisation, i.e. guest operating system has to be modified
-
- 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/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
【課題】仮想ディスク環境が提供される仮想OSの起動ディスクに対するディスクアクセス性能を向上させる。
【解決手段】第1ディスクアクセス方式を用いてOSの起動ディスクに対するアクセスを行う第1ドライバ及び第1ディスクアクセス方式より高速にディスクアクセス可能な第2ディスクアクセス方式を用いてアクセスを行う第2ドライバと、第1及び第2ドライバに対するディスクアクセス命令を発行する上位ドライバとの間に介在するディスクアクセス方式切替装置であって、第2ドライバの初期化終了前では、上位ドライバから受け取る第1ドライバ向けの起動ディスクに対するディスクアクセス命令を第1ドライバに渡し、第2ドライバの初期化の終了を検知した場合には、上位ドライバから受け取る第1ドライバ向けの起動ディスクに対するディスクアクセス命令を第2ドライバに渡す。
【選択図】図2
【解決手段】第1ディスクアクセス方式を用いてOSの起動ディスクに対するアクセスを行う第1ドライバ及び第1ディスクアクセス方式より高速にディスクアクセス可能な第2ディスクアクセス方式を用いてアクセスを行う第2ドライバと、第1及び第2ドライバに対するディスクアクセス命令を発行する上位ドライバとの間に介在するディスクアクセス方式切替装置であって、第2ドライバの初期化終了前では、上位ドライバから受け取る第1ドライバ向けの起動ディスクに対するディスクアクセス命令を第1ドライバに渡し、第2ドライバの初期化の終了を検知した場合には、上位ドライバから受け取る第1ドライバ向けの起動ディスクに対するディスクアクセス命令を第2ドライバに渡す。
【選択図】図2
Description
本発明は、仮想OS(Operating system)環境において、ディスクアクセス方式をI/Oエミュレーション方式のような第1のディスクアクセス方式からパラバーチャライゼーション(Para-Virtualization)方式のような第2のディスクアクセス方式に切り替えるディ
ディスクアクセス方式切替装置に関する。
ディスクアクセス方式切替装置に関する。
コンピュータを仮想化し、複数のOSを同時並行に動作させられるようにする仮想化ソフトの一つとして、Xenがある。Xenは、仮想マシンモニタ(VMM:Virtual Machine Monitor)と呼ばれるソフトウェアの一つである。Xenは、コンピュータのハードウェア資源を一括で管理し、OSに対してはその一部を組み合わせた仮想マシン(VM:Virtual Machine)と呼ばれる仮想的なコンピュータとして振舞ことができる。
仮想OS環境(Xen環境)では、ゲストOSを管理する管理OS(ドメイン0)が存在し、
その管理下でゲストOSが動作する。ゲストOSのブートディスクは完全仮想化され、実在のハードウェア(H/W)を完全にエミュレートしている(I/O(Input/Output)エミュ
レーション方式)。しかし、このI/Oエミュレーション方式によるI/Oアクセス方法
は、パフォーマンスが低く、特にI/Oアクセスで性能が低い。
その管理下でゲストOSが動作する。ゲストOSのブートディスクは完全仮想化され、実在のハードウェア(H/W)を完全にエミュレートしている(I/O(Input/Output)エミュ
レーション方式)。しかし、このI/Oエミュレーション方式によるI/Oアクセス方法
は、パフォーマンスが低く、特にI/Oアクセスで性能が低い。
そこで、ディスクのI/O性能を向上させる為に、準仮想化として実在のH/Wを完全にエミュレートせず、仮想化に都合がよい仮想H/W(仮想マシン)を構築するパラバーチャライゼーション(ParaVirtualization:PV)方式がある。この仮想H/Wのインタフェースを介してI/Oアクセスを行うことによって性能を高めることができる。準仮想化でI/Oアクセスを行うには、専用のデバイスドライバが必要になる。
図8は、I/Oエミュレーション方式とPV方式それぞれのディスクアクセス方式を使用したゲストOSを概念的に示している。図8において、ゲストOS40Aは、I/Oエミュレーション方式によるディスクアクセスを行うためのATAPI/IDE標準ドライバ41と、PV方式によるディスクアクセスを行うための仮想SCSIドライバ42と、これらのドライバ41及び42に対してディスクI/O命令(ディスク入力(書き込み)/
出力(読み出し)命令)を含む様々な命令を供給するディスククラスドライバ43とを備え
ている。
出力(読み出し)命令)を含む様々な命令を供給するディスククラスドライバ43とを備え
ている。
I/Oエミュレーション方式では、ゲストOS40Aは、Xen Hypervisor(ハイパーバ
イザ)30を介してエミュレートされたH/W(図8では、仮想ATAPI/IDE H/W31)にアクセスすることで、管理OS20を通して物理ディスク12Aにアクセスす
ることができる。PV方式では、ゲストOS40Aは、準仮想化用ディスクドライバ(ド
ライバ42)からXen Hypervisor30を介して管理OS20の準仮想化用ディスクドライ
バ(仮想SCSIドライバ23)にアクセスすることで、管理OS20のATAPI/IDE標準ドライバ21を介して物理ディスク12Aにアクセスすることができる。両方式のディスクは独立しており、両方式を共有したディスクは存在しない。
イザ)30を介してエミュレートされたH/W(図8では、仮想ATAPI/IDE H/W31)にアクセスすることで、管理OS20を通して物理ディスク12Aにアクセスす
ることができる。PV方式では、ゲストOS40Aは、準仮想化用ディスクドライバ(ド
ライバ42)からXen Hypervisor30を介して管理OS20の準仮想化用ディスクドライ
バ(仮想SCSIドライバ23)にアクセスすることで、管理OS20のATAPI/IDE標準ドライバ21を介して物理ディスク12Aにアクセスすることができる。両方式のディスクは独立しており、両方式を共有したディスクは存在しない。
ここに、ドメイン0(管理OS)とは、Xen Hypervisorを介して他のゲストOSを管理するOSである。ゲストOSとH/W(例えば物理ディスク12A)の間に介在することで、H/Wを仮想的に作成したり、それを実際のH/Wに関連付けたりすることができる。ドメイン1〜(ゲストOS)はXen Hypervisor により、実際のH/Wを隠蔽され、ドメイ
ン0(管理OS)から仮想的なH/W(仮想マシン)を割り振られる(割り当てられる)。
ン0(管理OS)から仮想的なH/W(仮想マシン)を割り振られる(割り当てられる)。
Xenでは、ディスクI/Oを行う方式として、I/Oエミュレーション方式と、PV(ParaVirtualization)方式という2つの方式との少なくとも一方を使用することができる。I/Oエミュレーション方式では、Xen Hypervisorにより、一般に流通している実在のH/WであるATAPI(AT Attachment Packet Interface)やIDE(Integrated Drive Electronics)のハードウェアがエミュレートされる。ゲストOSはこのエミュレートされた仮想H/W(例えば、図8の仮想ATAPI/IDE H/W31)を利用してI/O命令を実行する。このため、仮想OS(図8のゲストOS40Aが相当)で使用されるデバイスドライバとして、一般に流通している実在のH/W用のデバイスドライバをそのまま使用することができる(例えば、図8のATAPI/IDE標準ドライバ41が相当)。仮想H/Wに対するI/O要求は、管理OS20からコントロールされ、管理OS20上のI/Oエミュレータ22で物理ディスク12Aに対するI/O要求に変換される。このI/Oエミュレーション方式は、Windows(登録商標)のようなゲストOSのブートディスク
(一般的にCドライブ)に対して利用できる半面、H/Wのエミュレートによる性能負荷が高いというデメリットがある。
(一般的にCドライブ)に対して利用できる半面、H/Wのエミュレートによる性能負荷が高いというデメリットがある。
一方、PV方式では、ゲストOS40Aと管理OS20との夫々がPV方式のデバイスドライバ(仮想ディスクドライバ42及び23)を有し、これらが対になって協調動作をしながらI/O要求を処理して、物理ディスク12Aに対するI/O要求に変換し、物理ディスク12AのデバイスドライバであるATAPI/IDE標準ドライバ21に渡す。これによって、ドライバ21が物理ディスク12Aに対するディスクアクセスを行う。
ゲストOSが有するPV方式のデバイスドライバ(仮想SCSIドライバ42に相当)をフロントエンドドライバ、管理OSが有するPV方式のデバイスドライバ(仮想SCSI
ドライバ23に相当)をバックエンドドライバと呼ぶ。
ドライバ23に相当)をバックエンドドライバと呼ぶ。
PV方式では、I/Oエミュレーション方式のように実在のH/Wのエミュレートは行われず、単純にゲストOSと管理OSとの双方からアクセスできる共有メモリを使ってI/Oデータを受け渡す。これによって、I/Oデータ処理を簡略化する。このI/Oデータの受け渡しは、フロント/バックエンドドライバの協調動作によって行われる。このPV方式は、I/Oエミュレーション方式に比べI/O要求性能が高い。一方、Windows(
登録商標)がゲストOSとして適用された場合において、このゲストOSのブート(起動)プロセス時に、PV方式のドライバ(仮想SCSIドライバ42)がロードされるタイミングがI/Oシミュレーション方式のドライバ(ATAPI/IDE標準ドライバ41)より遅いことから、ゲストOSのブートディスク(起動ディスク)に対するディスクアクセス方式として採用できないデメリットがある。
登録商標)がゲストOSとして適用された場合において、このゲストOSのブート(起動)プロセス時に、PV方式のドライバ(仮想SCSIドライバ42)がロードされるタイミングがI/Oシミュレーション方式のドライバ(ATAPI/IDE標準ドライバ41)より遅いことから、ゲストOSのブートディスク(起動ディスク)に対するディスクアクセス方式として採用できないデメリットがある。
すなわち、Windows(登録商標)のようなゲストOSのブートプロセス初期には、I/
Oエミュレーション方式のディスクのデバイスドライバ(ATAPI/IDE標準ドライ
バ41)が先にロードされ、ブートプロセス後期にPV方式のデバイスドライバ(仮想SCSIドライバ42)がロードされる。ブートプロセス初期においては、ブート用データを
含むシステムファイルが存在するブートディスクへのI/O要求が発生する。PV方式のドライバがロード完了していない状況下では、I/O要求可能なディスクは、I/Oエミュレーション方式のディスクのみである。また、システムファイルが存在する(格納され
た)ブートディスクへのアクセスは、主に次のような契機で行われる。このため、ブート
ディスクのアクセス頻度は高い。
(1)システムファイルのロード/アンロード
(2)システム用ログファイルの書き出し
(3)レジストリアクセス
(4)仮想メモリファイルへのスワップ
(5)メモリダンプ出力
特開2005−174307号公報
特開平8−212089号公報
Oエミュレーション方式のディスクのデバイスドライバ(ATAPI/IDE標準ドライ
バ41)が先にロードされ、ブートプロセス後期にPV方式のデバイスドライバ(仮想SCSIドライバ42)がロードされる。ブートプロセス初期においては、ブート用データを
含むシステムファイルが存在するブートディスクへのI/O要求が発生する。PV方式のドライバがロード完了していない状況下では、I/O要求可能なディスクは、I/Oエミュレーション方式のディスクのみである。また、システムファイルが存在する(格納され
た)ブートディスクへのアクセスは、主に次のような契機で行われる。このため、ブート
ディスクのアクセス頻度は高い。
(1)システムファイルのロード/アンロード
(2)システム用ログファイルの書き出し
(3)レジストリアクセス
(4)仮想メモリファイルへのスワップ
(5)メモリダンプ出力
ブートディスクがI/Oエミュレーション方式である場合には、次のような性能面の問題がある。
(a)システムのブートに時間がかかる。
(b)ブート後、通常運用時のパフォーマンスも比較的低くなる。
(c)メモリダンプ出力の性能が低い。システムクラッシュした際のダンプ出力の際に
多大な時間を要してしまい、システムの早期復旧を阻害する要因となる。
(a)システムのブートに時間がかかる。
(b)ブート後、通常運用時のパフォーマンスも比較的低くなる。
(c)メモリダンプ出力の性能が低い。システムクラッシュした際のダンプ出力の際に
多大な時間を要してしまい、システムの早期復旧を阻害する要因となる。
本発明の態様は、上記した問題に鑑みなされたものであり、起動ディスクに対するディスクアクセスを速めることのできる技術を提供することを目的とする。
本発明の態様は、上記した課題を解決するために、以下の構成を採用する。すなわち
、本発明の第1の態様は、第1のディスクアクセス方式を用いてオペレーティングシステムの起動ディスクに対するディスクアクセスを行う第1のデバイスドライバ、及び第1のディスクアクセス方式より高速にディスクアクセス可能な第2のディスクアクセス方式を用いてディスクアクセスを行う第2のデバイスドライバと、これらの第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバとの間に介在するディスクアクセス方式切替装置であって、
前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、
前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡す
ことを特徴とするディスクアクセス方式切替装置である。
、本発明の第1の態様は、第1のディスクアクセス方式を用いてオペレーティングシステムの起動ディスクに対するディスクアクセスを行う第1のデバイスドライバ、及び第1のディスクアクセス方式より高速にディスクアクセス可能な第2のディスクアクセス方式を用いてディスクアクセスを行う第2のデバイスドライバと、これらの第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバとの間に介在するディスクアクセス方式切替装置であって、
前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、
前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡す
ことを特徴とするディスクアクセス方式切替装置である。
本発明によれば、第2のデバイスドライバの初期化処理が終了した後は、第2のディスクアクセス方式を用いて起動ディスクに対するディスクアクセスが実行される。これによって、起動ディスクに対するアクセスを速めることができる。
第1の態様におけるディスクアクセス方式切替装置は、前記第2のデバイスドライバ向けの前記起動ディスクの有無の問い合わせ命令を前記上位ドライバから受け取った場合に、この命令を前記第2のデバイスドライバに渡すことなく、この命令に対する失敗の命令結果を生成して前記上位ドライバに返信することができる。
また、第1の態様におけるディスクアクセス方式切替装置は、前記第2のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記上位ドライバから受けとった場合に、この命令を前記第2のデバイスドライバに渡すことなく、この命令に対する成功の命令結果を生成して前記上位ドライバに返信することができる。
また、第1の態様において、前記第1のディスクアクセス方式は、I/Oエミュレーション方式であり、前記第2のディスクアクセス方式は、パラバーチャライゼーション方式である。
本発明の第2の態様は、アクセス対象のディスクに対し、管理オペレーティングシステムを介してアクセス可能なゲストオペレーティングシステムであって、
第1のディスクアクセス方式を用いて前記ゲストオペレーティングシステムの起動ディスクに対するディスクアクセスを行う第1のデバイスドライバと、
前記第1のディスクアクセス方式よりも高速にディスクアクセス可能な第2のディスクアクセス方式を用いてディスクアクセスを行う第2のデバイスドライバと、
前記第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバと、
前記第1及び第2のデバイスドライバと前記上位ドライバとの間に介在し、前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡すディスクアクセス方式切替装置と
を備えるゲストオペレーティングシステムである。
第1のディスクアクセス方式を用いて前記ゲストオペレーティングシステムの起動ディスクに対するディスクアクセスを行う第1のデバイスドライバと、
前記第1のディスクアクセス方式よりも高速にディスクアクセス可能な第2のディスクアクセス方式を用いてディスクアクセスを行う第2のデバイスドライバと、
前記第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバと、
前記第1及び第2のデバイスドライバと前記上位ドライバとの間に介在し、前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡すディスクアクセス方式切替装置と
を備えるゲストオペレーティングシステムである。
また、本発明の第3の態様は、物理ディスクと、この物理ディスクに対するディスクアクセス管理を行う管理オペレーティングシステムと、自身に提供された仮想ディスク環境に応じたディスクアクセス要求を発行するゲストオペレーティングシステムとを備え、前記管理オペレーティングシステムは、前記ゲストオペレーティングシステムから発行された前記仮想ディスク環境に応じたディスクアクセス要求を前記物理ディスクに応じたディスクアクセス要求に変換して前記物理ディスクに対するアクセスを行う情報処理装置であって、
前記ゲストオペレーティングシステムは、
第1のディスクアクセス方式を用いて前記ゲストオペレーティングシステムの仮想的な起動ディスクに対するディスクアクセスを行う第1のデバイスドライバと、
前記第1のディスクアクセス方式よりも高速にディスクアクセス可能な第2のディスクアクセス方式を用いて仮想的なディスクアクセスを行う第2のデバイスドライバと、
前記第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバと、
前記第1及び第2のデバイスドライバと前記上位ドライバとの間に介在し、前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡すディスクアクセス方式切替装置と
を備える情報処理装置である。
前記ゲストオペレーティングシステムは、
第1のディスクアクセス方式を用いて前記ゲストオペレーティングシステムの仮想的な起動ディスクに対するディスクアクセスを行う第1のデバイスドライバと、
前記第1のディスクアクセス方式よりも高速にディスクアクセス可能な第2のディスクアクセス方式を用いて仮想的なディスクアクセスを行う第2のデバイスドライバと、
前記第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバと、
前記第1及び第2のデバイスドライバと前記上位ドライバとの間に介在し、前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡すディスクアクセス方式切替装置と
を備える情報処理装置である。
本発明は、上記した第1〜第3の態様と同様の特徴を有するディスクアクセス切替方法のような方法の発明、又は、第1〜第3の態様を実現するためのコンピュータプログラム、或いは、このコンピュータプログラムを格納した記録媒体として実現可能である。
本発明の態様によれば、起動ディスクに対するディスクアクセスを速めることができる。
以下、図面を参照して本発明の実施形態を説明する。実施形態の構成は例示であり、本
発明は実施形態の構成に限定されない。
発明は実施形態の構成に限定されない。
〔実施形態の概要〕
仮想OS環境(例えばXen環境)において、ゲストOS(ドメイン1,2,3...)による
ディスクへのアクセスをフィルタリングする機構を追加する。これによって、ゲストOSの起動後に高速アクセス可能なインタフェースに切り替えてアクセスすることで、ディスクI/Oの性能を向上させることができる。
仮想OS環境(例えばXen環境)において、ゲストOS(ドメイン1,2,3...)による
ディスクへのアクセスをフィルタリングする機構を追加する。これによって、ゲストOSの起動後に高速アクセス可能なインタフェースに切り替えてアクセスすることで、ディスクI/Oの性能を向上させることができる。
Windows(登録商標)ドメイン(ゲストOS)のブートプロセス初期に、I/Oエミュレ
ーション方式のディスクのデバイスドライバがロードされた直後は、このデバイスドライバを利用してブートディスク(起動ディスク)にアクセスする。しかし、ブートプロセス後期において、PV方式のドライバがロードされた後では、このデバイスドライバを利用してブートディスクにアクセスする。このようにすれば、ブートディスクに対するPV方式の高速なディスクアクセスを実現することができる。
ーション方式のディスクのデバイスドライバがロードされた直後は、このデバイスドライバを利用してブートディスク(起動ディスク)にアクセスする。しかし、ブートプロセス後期において、PV方式のドライバがロードされた後では、このデバイスドライバを利用してブートディスクにアクセスする。このようにすれば、ブートディスクに対するPV方式の高速なディスクアクセスを実現することができる。
ここに、ブートディスク(起動ディスク)は、システム(少なくともゲストOS)を起動(
ブート)するためのシステムファイルが格納されたディスクである。システムファイルは
、ブート時に使用されるデータのみならず、ブート後も必要に応じて使用されるデータを含むことができる。実施形態では、ゲストOSの起動プロセス(ブートプロセス)において、PV方式のドライバの初期化が完了した後には、ブートディスクに対して、PV方式によるディスクアクセスが行われる状態となる。よって、ゲストOSのような仮想ディスク環境が提供される仮想オペレーティングシステムにおいて、ディスクI/O(ディスク出入力)の性能を向上させることができる。
ブート)するためのシステムファイルが格納されたディスクである。システムファイルは
、ブート時に使用されるデータのみならず、ブート後も必要に応じて使用されるデータを含むことができる。実施形態では、ゲストOSの起動プロセス(ブートプロセス)において、PV方式のドライバの初期化が完了した後には、ブートディスクに対して、PV方式によるディスクアクセスが行われる状態となる。よって、ゲストOSのような仮想ディスク環境が提供される仮想オペレーティングシステムにおいて、ディスクI/O(ディスク出入力)の性能を向上させることができる。
これを実現するために、ゲストOSからI/O要求(ディスクアクセス要求)を受けたときに、状況に応じてI/Oエミュレーション方式のデバイスドライバとPV方式のデバイスドライバとの一方にI/O要求を振り分ける、これらのデバイスドライバに対して上位のデバイスドライバが用意される。この仮想環境での動的ディスクアクセス切り替え機構を「仮想ディスクフィルタドライバ」と定義する。仮想ディスクフィルタドライバ(ディ
スクアクセス方式切替装置に相当)にて、ブートプロセスの途中で、デバイスドライバの
ロードタイミングを検知しながら、I/O要求の振り分け先をI/Oエミュレーション方式のデバイスドライバから、PV方式のドライバに切り替えることでこれを実現することができる。
スクアクセス方式切替装置に相当)にて、ブートプロセスの途中で、デバイスドライバの
ロードタイミングを検知しながら、I/O要求の振り分け先をI/Oエミュレーション方式のデバイスドライバから、PV方式のドライバに切り替えることでこれを実現することができる。
〔具体例〕
図1は、管理OS及びゲストOSを有するディスクアクセスシステムを備える情報処理装置(コンピュータ)の構成例を示す図である。図1において、コンピュータ10は、バスBを介して相互に接続されたCPU11のようなプロセッサ、記憶デバイス(例えばハー
ドディスク(HDD))12、メモリ(例えばRAM)13、ネットワークデバイス14、入
力装置(例えばキーボード、マウス)15、及び出力装置(例えば、ディスプレイ、プリン
タ)を備えている。メモリ13上には、CPU11がプログラムを実行することによって
、管理OS20,仮想マシンモニタ30,及びゲストOS40が実現される。
図1は、管理OS及びゲストOSを有するディスクアクセスシステムを備える情報処理装置(コンピュータ)の構成例を示す図である。図1において、コンピュータ10は、バスBを介して相互に接続されたCPU11のようなプロセッサ、記憶デバイス(例えばハー
ドディスク(HDD))12、メモリ(例えばRAM)13、ネットワークデバイス14、入
力装置(例えばキーボード、マウス)15、及び出力装置(例えば、ディスプレイ、プリン
タ)を備えている。メモリ13上には、CPU11がプログラムを実行することによって
、管理OS20,仮想マシンモニタ30,及びゲストOS40が実現される。
図2は、メモリ13上に展開される仮想ディスクドライバを含むXen(仮想OS)環境の概念図であり、I/Oエミュレーション方式とPV方式とのそれぞれのディスクアクセス方式を使用したゲストOS40を概念的に示す。
図2において、管理OS(ドメイン0)20は、物理ディスク12Aに対するアクセスを行うためのATAPI/IDE標準ドライバ21と、I/Oエミュレーション方式を実現するためのI/Oエミュレータ22とを備えている。一方、管理OS20は、PV方式を
実現するための仮想デバイスドライバとしての仮想SCSIドライバ23を備えている。
実現するための仮想デバイスドライバとしての仮想SCSIドライバ23を備えている。
仮想マシンモニタ(ハイパーバイザ)30は、I/Oエミュレータ22によるエミュレートによって作成された仮想ハードウェアとしての仮想ATAPI/IDEハードウェア31を備えている。仮想マシンモニタ30は、ゲストOS40からハードウェア(H/W)を隠蔽するために存在する。ゲストOS40は、ハードウェア(例えば物理ディスク12A)を意識せず、管理OS20に対してI/Oアクセスすることによって、管理OS20がゲストOS40の代わりにハードウェア(例えば物理ディスク12A)を制御(ディスクアク
セス制御)する。
セス制御)する。
ゲストOS(ドメイン1)40(仮想OS)は、I/Oエミュレーション方式に対応するATAPI/IDE標準ドライバ41と、PV方式に対応する仮想デバイスドライバとしての仮想SCSIドライバ42と、これらのドライバ41及び42の上位ドライバに相当するディスククラスドライバ43とを備え、ドライバ41及び42と、ディスククラスドライバ43との間に、本発明に関する仮想ディスクフィルタドライバ44(以下、フィルタ
ドライバと称する)が介在している。
ドライバと称する)が介在している。
このように、本実施形態では、図8と異なり、ディスククラスドライバ43と各方式のデバイスドライバ41及び42との間にフィルタドライバ44が存在する。フィルタドライバ44により、状況に応じて単一のディスク(物理ディスク12A、記憶デバイス12
中に含まれる)に対するディスクアクセス方式をI/Oエミュレーション方式とPV方式
との間で切り替えることができる。
中に含まれる)に対するディスクアクセス方式をI/Oエミュレーション方式とPV方式
との間で切り替えることができる。
図1において、管理OS(ドメイン0)20は、Xen Hypervisor(仮想マシンモニタ)30を介してゲストOS40を管理する。ゲストOS40とハードウェア(H/W:物理ディ
スク12A)との間に介在することで、仮想ATAPI/IDEハードウェア31のよう
な仮想H/Wを作成したり、仮想ハードウェアを実際のハードウェアに関連付けることができる。
スク12A)との間に介在することで、仮想ATAPI/IDEハードウェア31のよう
な仮想H/Wを作成したり、仮想ハードウェアを実際のハードウェアに関連付けることができる。
ゲストOS(ドメイン1)40は、Xen Hypervisor(仮想マシンモニタ)30 によって実
際のハードウェア(物理ディスク12A)を隠蔽され、管理OS(ドメイン0)20から仮想的なハードウェアを割り当てられる(仮想ディスク環境が提供される)。なお、図2の例では、単一のゲストOSを示すが、複数のゲストOS(ドメイン1、2、3・・・)が存在していても良い。
際のハードウェア(物理ディスク12A)を隠蔽され、管理OS(ドメイン0)20から仮想的なハードウェアを割り当てられる(仮想ディスク環境が提供される)。なお、図2の例では、単一のゲストOSを示すが、複数のゲストOS(ドメイン1、2、3・・・)が存在していても良い。
フィルタドライバ44は、ディスククラスドライバ43から受け取るI/O要求を、デバイスドライバ41及び42のロード状況などに応じて、適切なデバイスドライバ(I/
Oエミュレーション方式又はPV方式)41及び42の一方に渡す役目をする。
Oエミュレーション方式又はPV方式)41及び42の一方に渡す役目をする。
I/Oエミュレーション方式では、Xen Hypervisor(仮想マシンモニタ)30によって、世間一般に流通している実在のATAPI/IDEのハードウェア(H/W)がエミュレートされて、仮想ATAPI/IDEハードウェア31のような仮想ハードウェアが作成される。ゲストOS40は、仮想ハードウェアを利用してI/O命令を実行することができる。このため、ゲストOS40では、I/Oエミュレーション方式のデバイスドライバとして、世間一般に流通しているハードウェア用に提供されているデバイスドライバがそのまま使用される。図2に示す例では、ATAPI/IDE標準ドライバ41が使用されている。
仮想ハードウェア(仮想ATAPI/IDE H/W31)に対するI/O要求は、管理OS20からコントロールされ、管理OS20上で、I/Oエミュレータ22及びATA
PI/IDE標準ドライバ21によって、物理ディスク12Aに対するI/O要求に変換され、物理ディスク12Aに対するアクセスが実行される。
PI/IDE標準ドライバ21によって、物理ディスク12Aに対するI/O要求に変換され、物理ディスク12Aに対するアクセスが実行される。
PV方式では、ゲストOS40と管理OS20との夫々がPV方式のデバイスドライバを有し、これらのデバイスドライバが対になって協調動作をしながらI/O要求を処理して、物理ディスク12Aに対するI/O要求に変換する。ゲストOS40が有するPV方式のデバイスドライバはフロントエンドドライバと呼ばれ、管理OS20が有するPV方式のデバイスドライバはバックエンドドライバと呼ばれる。図2の例では、仮想SCSIドライバ42がフロントエンドドライバに相当し、仮想SCSIドライバ23がバックエンドドライバに相当する。
PV方式では、I/Oエミュレーション方式のように実在のハードウェアのエミュレートは行われず、単純にゲストOS40と管理OS20との双方からアクセスできる共有メモリ32(例えば仮想マシンモニタ30上にメモリ領域が作成される)を使ってI/Oデータを受け渡す。これによって、I/Oデータ処理が簡略化される。このI/Oデータの受け渡しは、フロントエンドドライバ(ドライバ42)及びバックエンドドライバ(ドライバ
23)の協調動作によって行われる。
23)の協調動作によって行われる。
ゲストOS40が備えるフィルタドライバ44は、主に以下の2つの機能を持つ。
(機能1)上位エンティティ(ディスククラスドライバ43(上位ドライバ43ともいう))からの命令をフックし、異なる下位ディスクドライバ(ドライバ41及び42の一方)に命令を流す(渡す)ことができる。このとき、フィルタドライバ44は、命令の宛て先を書き換えるだけでよく、命令自体はそのままの形で渡す。
(機能2)上位エンティティ(上位ドライバ:ディスククラスドライバ43)からの命令をフックし、対象の下位ディスクドライバ(ドライバ41及び42の一方)に渡すことなく終端(ターミネート)する。
機能1は、フィルタドライバ44がI/Oエミュレーション方式のドライバ41、及びPV方式のドライバ42の上位に位置しており、上位ドライバ43からそれぞれのドライバ41及び42に対して発行された命令をフックできることを示す。
フィルタドライバ44は、上位ドライバ43からのディスクI/O命令をフックして、このI/O命令を与える対象のデバイスドライバ(ドライバ41及び42)を変更することを可能とする。このようなフィルタドライバ44の動作は、ユーザに意識されない。すなわち、ユーザ操作(例えば入力装置15の操作)において、フィルタドライバ44の動作を意識する必要はない。
機能2は、フィルタドライバ44が、上位ドライバ43からのディスクの存在の問い合わせ命令をフックして、この命令に対する応答をターミネートすることを示す。これを応用して、ディスク状態取得命令を失敗で折り返すことで、ディスクの存在をユーザから隠すことが出来る。
〈動作説明〉
ゲストOS40(例えばWindows(登録商標))のブートプロセス実行中、フィルタドラ
イバ44は、PV方式のドライバ42の初期化処理を監視する。この状態では、ブートディスク(ゲストOS40から見た(ゲストOS40に提供された仮想ディスク環境における)仮想のブートディスク)は、ドライバ41を用いたI/Oエミュレーション方式で動作している。このブートプロセスにおいて、ドライバ41のロード(初期化)は、ドライバ42
のロード(初期化)に先だって行われる。このため、ブートプロセス時におけるブートディスクへのアクセスは、I/Oエミュレーション方式が使用される。
ゲストOS40(例えばWindows(登録商標))のブートプロセス実行中、フィルタドラ
イバ44は、PV方式のドライバ42の初期化処理を監視する。この状態では、ブートディスク(ゲストOS40から見た(ゲストOS40に提供された仮想ディスク環境における)仮想のブートディスク)は、ドライバ41を用いたI/Oエミュレーション方式で動作している。このブートプロセスにおいて、ドライバ41のロード(初期化)は、ドライバ42
のロード(初期化)に先だって行われる。このため、ブートプロセス時におけるブートディスクへのアクセスは、I/Oエミュレーション方式が使用される。
次に、PV方式のドライバ42の初期化が完了したら、フィルタドライバ44はI/Oエミュレーション方式のドライバ41向けのディスクI/O命令をフックして、PV方式のドライバ42に流す。これによって、PV方式のドライバ42により、高速なディスクアクセスが可能となる。よって、ブートディスクへのアクセス性能が向上する。このようにして、ユーザが意識することなくディスクアクセスを切り替えることができる。
上位ドライバ43からのPV方式のドライバ42に対するディスク問い合わせ命令は、フィルタドライバ44によって終端され、破棄される。これにより、PV方式のドライバ42を介したブートディスクは存在するがユーザには見えず、操作不可能なディスクとなる。
〈仮想ディスクフィルタドライバのフック内容〉
図3は、上位ドライバ43から宛先のディスクドライバに向けて送られた命令に対してフィルタドライバ44が処理する内容を示す表である。フィルタドライバ44は、ディスク状態取得命令(ディスク存在問い合わせ命令)、及びディスクI/O命令をフック対象とし、これら以外の命令については何ら干渉することなく下位ドライバへ流す。
図3は、上位ドライバ43から宛先のディスクドライバに向けて送られた命令に対してフィルタドライバ44が処理する内容を示す表である。フィルタドライバ44は、ディスク状態取得命令(ディスク存在問い合わせ命令)、及びディスクI/O命令をフック対象とし、これら以外の命令については何ら干渉することなく下位ドライバへ流す。
通常、フィルタドライバ44は、I/Oエミュレーション方式のドライバ41(ブート
ディスク)か、PV方式のドライバ(汎用ディスク)42に対しての命令を処理する。
ディスク)か、PV方式のドライバ(汎用ディスク)42に対しての命令を処理する。
しかし、PV方式のドライバ42(ブートディスク)に対する命令をフィルタドライバ44が受け取った場合には、その命令に対して表に挙げたように、失敗で上位ドライバ43に折り返す処理を行う。これは、仮に、当該ケースが発生した場合は、そのまま命令をドライバ42に流すと問題が発生するからである。
図4は、フィルタドライバ44によるディスクの存在の問い合わせ命令処理の概念を示す。図4に示すように、I/Oエミュレーション方式のドライバ41に対するディスクの存在の問い合わせ命令(図4(1))を上位ドライバ(ディスククラスドライバ)43から受け取った場合には、フィルタドライバ44は、その命令をそのままドライバ41へ流す(図
4(2))。
4(2))。
これに対し、フィルタドライバ44は、PV方式のドライバ42に対するディスクの存在の問い合わせ命令に対し、アクセス対象のディスクに応じた処理を行う。すなわち、ブートディスク121がアクセス対象ディスクであるディスク存在問い合わせ命令(図4(3))を受け取った場合には、フィルタドライバ44は、当該命令を終端し、アクセス結果を失敗に設定し、上位ドライバ43へ折り返す(図4(4))。これは、ブートディスクがユーザに多重に見えることを防ぐためである。
これに対し、アクセス対象ディスクが汎用ディスク121であるディスク存在問い合わせ命令(図4(5))を受け取った場合には、フィルタドライバ44は、その汎用ディスク121に対するディスクの存在の問い合わせ命令を、そのままドライバ42に流す(図4(6))。
図5は、フィルタドライバ44によるディスクI/O命令処理の概念を示す。ゲストOS40のブート開始時は、I/Oエミュレーション方式のドライバ41に上位ドライバ(
ディスククラスドライバ)43からのディスクアクセス命令(ディスクI/O命令:図5(
1))を、I/Oエミュレーション方式のドライバ41に流す(図5(2))。
ディスククラスドライバ)43からのディスクアクセス命令(ディスクI/O命令:図5(
1))を、I/Oエミュレーション方式のドライバ41に流す(図5(2))。
ブート後、PV方式のドライバ42の初期化が完了した後に、ドライバ41に向けられたブートディスク121へのディスクI/O命令(図5(1))を上位ドライバ43から受け取った場合には、このI/O命令をPV方式のドライバ42にフックする(図5(3))。
一方、PV方式のドライバ42に対するブートディスク121へのディスクI/O命令(図5(4))は、“成功”で上位ドライバ43に折り返す(図5(5))。これはI/Oエミュレーション方式のドライバ41と同時に(並列に)ブートディスク121へアクセスすることによってデータの不整合が発生することを防ぐためである。これに対し、ドライバ42に対する汎用ディスク122へのディスクアクセス命令(ディスクI/O命令:図5(6))については、フィルタドライバ44は何もせず、ドライバ42に流す(図5(7))。
図6A,図6B,図6Cは、ゲストOS40のブート(起動)時におけるフィルタドライバ44の動作説明図である。ゲストOSブート時、以下の流れでI/Oエミュレーション方式のドライバ41からPV方式のドライバ42へディスクI/O命令をフックする。
図6Aに示すように、最初に、上位ドライバ43は、ドライバ41(I/Oエミュレー
ション方式)でゲストOS40をブートする(ドライバ41を用いてブートディスク121にアクセスする)。このとき、フィルタドライバ44、ドライバ42(PV方式)はロード
されていない。
ション方式)でゲストOS40をブートする(ドライバ41を用いてブートディスク121にアクセスする)。このとき、フィルタドライバ44、ドライバ42(PV方式)はロード
されていない。
次に、図6Bに示すように、ゲストOS40からフィルタドライバ44、及びドライバ42がロードされる。フィルタドライバ44は、ドライバ42の初期化完了を待つ。ドライバ42は、初期化によってブートディスク121を認識すると、フィルタドライバ44に初期化完了の通知を渡す。
次に、図6Cに示すように、フィルタドライバ44は、ドライバ42から初期化完了の通知を受け取ると、ドライバ41向けのディスクI/O命令をフックしてドライバ42へ渡す処理(フック処理)を開始する。これによって、ドライバ42の初期化終了後は、PV方式のドライバ42を用いてブートディスク121にアクセスされる。
〈フィルタドライバによる命令処理動作〉
図7は、フィルタドライバ44による命令処理動作例を示すフローチャートである。図7に示す処理は、例えば、OSのブートが開始され、フィルタドライバ44のロード終了後に開始される。
図7は、フィルタドライバ44による命令処理動作例を示すフローチャートである。図7に示す処理は、例えば、OSのブートが開始され、フィルタドライバ44のロード終了後に開始される。
最初のOP1では、フィルタドライバ44は、ディスクアクセス命令(ディスクI/O
命令)を受け取るごとに、PV方式のドライバ42の初期化が完了しているか確認する。
命令)を受け取るごとに、PV方式のドライバ42の初期化が完了しているか確認する。
初期化が完了している場合(OP1;YES)には、フィルタドライバ44は、ディスクI/O命令のフック処理を開始し、上位ドライバ43からの命令の内容によって予め決められた処理を行う(図3の表に従った処理を行う)。
すなわち、フィルタドライバ44は、上位ドライバ43からの命令がブートディスク121へのディスクI/O命令かどうかを判断する(OP2)。上位ドライバ43からの命令がディスクI/O命令でなければ(OP;NO)、処理がOP6に進む。命令がディスクI/O命令であれば(OP2;YES)、処理がOP3に進む。
OP3では、フィルタドライバ44は、ディスクI/O命令がI/Oエミュレーション方式のドライバ41へのディスクI/O命令か否かを判断する。命令がドライバ41への
ディスクI/O命令でなければ(OP3;NO)、処理がOP8へ進み、命令がドライバ41へのディスクI/O命令であれば(OP3;YES)、処理がOP4へ進む。
ディスクI/O命令でなければ(OP3;NO)、処理がOP8へ進み、命令がドライバ41へのディスクI/O命令であれば(OP3;YES)、処理がOP4へ進む。
OP4では、フィルタドライバ44は、このI/O命令をフックし、この命令の宛先をドライバ42へ書き換えてドライバ42に与える。その後、処理を終了する。
OP5に処理が進んだ場合には、フィルタドライバ44は、命令に対する処理を何ら行うことなく、I/Oエミュレーション方式のドライバ41に命令を渡す。その後、処理が終了する。
また、OP6に処理が進んだ場合には、フィルタドライバ44は、命令がドライバBに対する、ブートディスク121のディスクの存在の問い合わせ命令かどうかを判断する。このとき、命令がブートディスク121のディスク存在問い合わせ命令であれば(OP6
;YES)、この命令を終端し、この命令に対する結果“失敗”を生成して、上位ドライ
バ43に折り返す(OP7)。これに対し、命令がブートディスク121のディスク存在問い合わせ命令でない(OP6;NO、すなわち、汎用ディスク122のディスク存在問い
合わせ命令である)場合には、処理がOP5に進み、フィルタドライバ44は、当該命令
に対する処理を行うことなく、当該命令をドライバ42に渡す。
;YES)、この命令を終端し、この命令に対する結果“失敗”を生成して、上位ドライ
バ43に折り返す(OP7)。これに対し、命令がブートディスク121のディスク存在問い合わせ命令でない(OP6;NO、すなわち、汎用ディスク122のディスク存在問い
合わせ命令である)場合には、処理がOP5に進み、フィルタドライバ44は、当該命令
に対する処理を行うことなく、当該命令をドライバ42に渡す。
また、OP8に処理が進んだ場合には、命令がドライバ42向けのブートディスク121に対するディスクI/O命令であるものとして、フィルタドライバ44は、当該命令を終端し、この命令に対する結果“成功”を生成して上位ドライバ43に折り返す。その後、処理が終了する。
このフローチャートが終了した場合には、フィルタドライバ44は、上位ドライバ44から次の命令が来るのを待ち受ける状態となり、次の命令を受け取ると、OP1以降の処理を行う。
〔実施形態の効果〕
実施形態によれば、ブートディスク121をゲストOSのブートプロセス中にI/Oエミュレーション方式からPV方式に切り替えることができる。これによって、次の性能面の問題が解決される。
実施形態によれば、ブートディスク121をゲストOSのブートプロセス中にI/Oエミュレーション方式からPV方式に切り替えることができる。これによって、次の性能面の問題が解決される。
(1)システムのブートにかかる時間が短縮化される。これによって、 高速なシステ
ムブートによりシステム利用者の快適性の向上が図られる。また、 高速なシステムブー
トによって、トラブル時のシステムリブート時などに、システムの早期復旧が実現される。
ムブートによりシステム利用者の快適性の向上が図られる。また、 高速なシステムブー
トによって、トラブル時のシステムリブート時などに、システムの早期復旧が実現される。
(2)ブート後、通常運用時のパフォーマンスが高くなる。すなわち、ブートディスクに対しては、PV方式を用いたディスクアクセスが行われる。このため、アプリケーションの高速な実行、ユーザアクセスの多重度の増加、ネットワークの高速レスポンスなどシステム性能が向上し、システム利用者の快適性を向上させることができる。
(3)メモリダンプ出力が高速になる。即ち、システムに障害が生じた場合に、メモリの内容がブートディスク中のファイル(例えばシステムファイル)に書き込まれる。PV方式が使用されることで、メモリダンプ出力(メモリ内容のファイル書き込み)の際に多大な時間を要する問題が解決する。よって、システムクラッシュした際のシステムの早期復旧が実現される。
10・・・コンピュータ
11・・・CPU
12・・・記憶デバイス
13・・・メモリ
14・・・ネットワークデバイス
15・・・入力装置
16・・・出力装置
20・・・管理OS
21・・・ATAPI/IDE標準ドライバ
22・・・I/Oエミュレータ
23・・・仮想SCSIドライバ
30・・・仮想マシンモニタ
31・・・仮想ATAPI/IDEハードウェア
32・・・共有メモリ
40・・・ゲストOS
41・・・仮想ATAPI/IDE標準ドライバ(第1のデバイスドライバ)
42・・・仮想SCSIドライバ(第2のデバイスドライバ)
43・・・ディスククラスドライバ(上位ドライバ)
44・・・仮想ディスクフィルタドライバ(ディスクアクセス方式切替装置)
11・・・CPU
12・・・記憶デバイス
13・・・メモリ
14・・・ネットワークデバイス
15・・・入力装置
16・・・出力装置
20・・・管理OS
21・・・ATAPI/IDE標準ドライバ
22・・・I/Oエミュレータ
23・・・仮想SCSIドライバ
30・・・仮想マシンモニタ
31・・・仮想ATAPI/IDEハードウェア
32・・・共有メモリ
40・・・ゲストOS
41・・・仮想ATAPI/IDE標準ドライバ(第1のデバイスドライバ)
42・・・仮想SCSIドライバ(第2のデバイスドライバ)
43・・・ディスククラスドライバ(上位ドライバ)
44・・・仮想ディスクフィルタドライバ(ディスクアクセス方式切替装置)
Claims (7)
- 第1のディスクアクセス方式を用いてオペレーティングシステムの起動ディスクに対するディスクアクセスを行う第1のデバイスドライバ、及び第1のディスクアクセス方式より高速にディスクアクセス可能な第2のディスクアクセス方式を用いてディスクアクセスを行う第2のデバイスドライバと、これらの第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバとの間に介在するディスクアクセス方式切替装置であって、
前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、
前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡す
ことを特徴とするディスクアクセス方式切替装置。 - 前記第2のデバイスドライバ向けの前記起動ディスクの有無の問い合わせ命令を前記上位ドライバから受け取った場合に、この命令を前記第2のデバイスドライバに渡すことなく、この命令に対する失敗の命令結果を生成して前記上位ドライバに返信する
請求項1に記載のディスクアクセス方式切替装置。 - 前記第2のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記上位ドライバから受けとった場合に、この命令を前記第2のデバイスドライバに渡すことなく、この命令に対する成功の命令結果を生成して前記上位ドライバに返信する
請求項1に記載のディスクアクセス方式切替装置。 - 前記第1のディスクアクセス方式は、I/Oエミュレーション方式であり、前記第2のディスクアクセス方式は、パラバーチャライゼーション方式である
請求項1〜3のいずれか一項に記載のディスクアクセス方式切替装置。 - アクセス対象のディスクに対し、管理オペレーティングシステムを介してアクセス可能なゲストオペレーティングシステムであって、
第1のディスクアクセス方式を用いて前記ゲストオペレーティングシステムの起動ディスクに対するディスクアクセスを行う第1のデバイスドライバと、
前記第1のディスクアクセス方式よりも高速にディスクアクセス可能な第2のディスクアクセス方式を用いてディスクアクセスを行う第2のデバイスドライバと、
前記第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバと、
前記第1及び第2のデバイスドライバと前記上位ドライバとの間に介在し、前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡すディスクアクセス方式切替装置と
を備えるゲストオペレーティングシステム。 - 物理ディスクと、この物理ディスクに対するディスクアクセス管理を行う管理オペレーティングシステムと、自身に提供された仮想ディスク環境に応じたディスクアクセス要求を発行するゲストオペレーティングシステムとを備え、前記管理オペレーティングシステ
ムは、前記ゲストオペレーティングシステムから発行された前記仮想ディスク環境に応じたディスクアクセス要求を前記物理ディスクに応じたディスクアクセス要求に変換して前記物理ディスクに対するアクセスを行う情報処理装置であって、
前記ゲストオペレーティングシステムは、
第1のディスクアクセス方式を用いて前記ゲストオペレーティングシステムの仮想的な起動ディスクに対するディスクアクセスを行う第1のデバイスドライバと、
前記第1のディスクアクセス方式よりも高速にディスクアクセス可能な第2のディスクアクセス方式を用いて仮想的なディスクアクセスを行う第2のデバイスドライバと、
前記第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバと、
前記第1及び第2のデバイスドライバと前記上位ドライバとの間に介在し、前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡し、前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡すディスクアクセス方式切替装置と
を備える情報処理装置。 - コンピュータを、第1のディスクアクセス方式を用いてオペレーティングシステムの起動ディスクに対するディスクアクセスを行う第1のデバイスドライバ、及び第1のディスクアクセス方式より高速にディスクアクセス可能な第2のディスクアクセス方式を用いてディスクアクセスを行う第2のデバイスドライバと、これらの第1及び第2のデバイスドライバに対するディスクアクセス命令を発行する上位ドライバとの間に介在するディスクアクセス方式切替装置として機能させるプログラムであって、
コンピュータを、前記第2のデバイスドライバの初期化処理が終了する前においては、前記上位ドライバから受け取る前記第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第1のデバイスドライバに渡すステップと、
前記第2のデバイスドライバの初期化処理の終了を検知した場合には、前記上位ドライバから受け取る第1のデバイスドライバ向けの前記起動ディスクに対するディスクアクセス命令を前記第2のデバイスドライバに渡すステップと
を実行させるディスクアクセス方式切替装置として機能させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007311097A JP2009134601A (ja) | 2007-11-30 | 2007-11-30 | ディスクアクセス方式切替装置 |
US12/325,203 US20090144483A1 (en) | 2007-11-30 | 2008-11-30 | Disk access system switching device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007311097A JP2009134601A (ja) | 2007-11-30 | 2007-11-30 | ディスクアクセス方式切替装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009134601A true JP2009134601A (ja) | 2009-06-18 |
Family
ID=40676941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007311097A Pending JP2009134601A (ja) | 2007-11-30 | 2007-11-30 | ディスクアクセス方式切替装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090144483A1 (ja) |
JP (1) | JP2009134601A (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009251728A (ja) * | 2008-04-02 | 2009-10-29 | Canon Inc | 情報処理装置及び情報処理方法 |
JP2013511104A (ja) * | 2009-11-16 | 2013-03-28 | マイクロソフト コーポレーション | ブロブとしての仮想ハードドライブ管理 |
JP2014029700A (ja) * | 2010-08-30 | 2014-02-13 | Vmware Inc | 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース |
US9052825B2 (en) | 2010-08-30 | 2015-06-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
JP2017010070A (ja) * | 2015-06-16 | 2017-01-12 | 日本電気株式会社 | 準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラム |
JP2017123153A (ja) * | 2015-11-24 | 2017-07-13 | シトリックス・システムズ・インコーポレイテッドCitrix Systems,Inc. | 一般的なデバイスリダイレクションを介したリモートセッションキーボードおよびマウス入力 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8769241B2 (en) * | 2009-12-04 | 2014-07-01 | Marvell World Trade Ltd. | Virtualization of non-volatile memory and hard disk drive as a single logical drive |
US20110154133A1 (en) * | 2009-12-22 | 2011-06-23 | International Business Machines Corporation | Techniques for enhancing firmware-assisted system dump in a virtualized computer system employing active memory sharing |
US8671405B2 (en) * | 2010-03-31 | 2014-03-11 | Microsoft Corporation | Virtual machine crash file generation techniques |
US11816498B2 (en) * | 2021-01-21 | 2023-11-14 | Nutanix, Inc. | Early event-based notification for VM swapping |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0935026A (ja) * | 1995-07-18 | 1997-02-07 | Fuji Film Micro Device Kk | コンピュータ用カード |
JP2007164492A (ja) * | 2005-12-14 | 2007-06-28 | Lenovo Singapore Pte Ltd | デバイス・コントローラの設定方法およびコンピュータ・システム |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5446855A (en) * | 1994-02-07 | 1995-08-29 | Buslogic, Inc. | System and method for disk array data transfer |
US5764903A (en) * | 1994-09-26 | 1998-06-09 | Acer America Corporation | High availability network disk mirroring system |
US6145028A (en) * | 1997-12-11 | 2000-11-07 | Ncr Corporation | Enhanced multi-pathing to an array of storage devices |
US6356941B1 (en) * | 1999-02-22 | 2002-03-12 | Cyber-Ark Software Ltd. | Network vaults |
JP4307202B2 (ja) * | 2003-09-29 | 2009-08-05 | 株式会社日立製作所 | 記憶システム及び記憶制御装置 |
US7558723B2 (en) * | 2003-12-12 | 2009-07-07 | Microsoft Corporation | Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices |
US8868628B2 (en) * | 2005-12-19 | 2014-10-21 | International Business Machines Corporation | Sharing computer data among computers |
-
2007
- 2007-11-30 JP JP2007311097A patent/JP2009134601A/ja active Pending
-
2008
- 2008-11-30 US US12/325,203 patent/US20090144483A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0935026A (ja) * | 1995-07-18 | 1997-02-07 | Fuji Film Micro Device Kk | コンピュータ用カード |
JP2007164492A (ja) * | 2005-12-14 | 2007-06-28 | Lenovo Singapore Pte Ltd | デバイス・コントローラの設定方法およびコンピュータ・システム |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009251728A (ja) * | 2008-04-02 | 2009-10-29 | Canon Inc | 情報処理装置及び情報処理方法 |
JP2013511104A (ja) * | 2009-11-16 | 2013-03-28 | マイクロソフト コーポレーション | ブロブとしての仮想ハードドライブ管理 |
US10628086B2 (en) | 2009-11-16 | 2020-04-21 | Microsoft Technology Licensing, Llc | Methods and systems for facilitating communications with storage |
JP2014029700A (ja) * | 2010-08-30 | 2014-02-13 | Vmware Inc | 空間最適化ブロックデバイスのためのシステムソフトウェアインタフェース |
US9052825B2 (en) | 2010-08-30 | 2015-06-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US9285993B2 (en) | 2010-08-30 | 2016-03-15 | Vmware, Inc. | Error handling methods for virtualized computer systems employing space-optimized block devices |
US9411517B2 (en) | 2010-08-30 | 2016-08-09 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US9904471B2 (en) | 2010-08-30 | 2018-02-27 | Vmware, Inc. | System software interfaces for space-optimized block devices |
US10387042B2 (en) | 2010-08-30 | 2019-08-20 | Vmware, Inc. | System software interfaces for space-optimized block devices |
JP2017010070A (ja) * | 2015-06-16 | 2017-01-12 | 日本電気株式会社 | 準仮想化ネットワークデバイス、情報処理装置、情報処理方法、および情報処理プログラム |
JP2017123153A (ja) * | 2015-11-24 | 2017-07-13 | シトリックス・システムズ・インコーポレイテッドCitrix Systems,Inc. | 一般的なデバイスリダイレクションを介したリモートセッションキーボードおよびマウス入力 |
Also Published As
Publication number | Publication date |
---|---|
US20090144483A1 (en) | 2009-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009134601A (ja) | ディスクアクセス方式切替装置 | |
RU2412468C2 (ru) | Системы и способы многоуровневой обработки перехватов в виртуальной машинной среде | |
US8635395B2 (en) | Method of suspending and resuming virtual machines | |
US8443358B1 (en) | Hot pluggable virtual machine | |
US7743389B2 (en) | Selecting between pass-through and emulation in a virtual machine environment | |
US8789069B2 (en) | On-the-fly replacement of physical hardware with emulation | |
CN106537340B (zh) | 虚拟化信息操纵系统的输入/输出加速设备和方法 | |
JP4921384B2 (ja) | メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム | |
US7272831B2 (en) | Method and apparatus for constructing host processor soft devices independent of the host processor operating system | |
KR101296025B1 (ko) | 컴퓨터 시스템에서의 네스티드 가상화 성능의 개선 | |
JP4291964B2 (ja) | 仮想計算機システム | |
US11487523B2 (en) | Updating machine emulator | |
US9792136B2 (en) | Hardware assisted inter hypervisor partition data transfers | |
US8875132B2 (en) | Method and apparatus for implementing virtual proxy to support heterogeneous systems management | |
JP7047036B2 (ja) | 投機的仮想マシン実行 | |
US10346065B2 (en) | Method for performing hot-swap of a storage device in a virtualization environment | |
WO2022186922A1 (en) | Techniques for non-disruptive system upgrade | |
Campbell et al. | An introduction to virtualization | |
JP6506976B2 (ja) | 情報処理装置及びプログラム | |
JP4548514B2 (ja) | 仮想計算機システムの制御方法 | |
Story | Virtual Machines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090319 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20091130 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091208 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100413 |