JP6506976B2 - 情報処理装置及びプログラム - Google Patents

情報処理装置及びプログラム Download PDF

Info

Publication number
JP6506976B2
JP6506976B2 JP2015010521A JP2015010521A JP6506976B2 JP 6506976 B2 JP6506976 B2 JP 6506976B2 JP 2015010521 A JP2015010521 A JP 2015010521A JP 2015010521 A JP2015010521 A JP 2015010521A JP 6506976 B2 JP6506976 B2 JP 6506976B2
Authority
JP
Japan
Prior art keywords
block
data
storage
unit
local storage
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.)
Active
Application number
JP2015010521A
Other languages
English (en)
Other versions
JP2016134142A (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.)
University of Tokyo NUC
Original Assignee
University of Tokyo NUC
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 University of Tokyo NUC filed Critical University of Tokyo NUC
Priority to JP2015010521A priority Critical patent/JP6506976B2/ja
Publication of JP2016134142A publication Critical patent/JP2016134142A/ja
Application granted granted Critical
Publication of JP6506976B2 publication Critical patent/JP6506976B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置及びプログラム
コンピュータハードウェアをソフトウェア的に仮想化して、複数のオペレーティングシステムを並列的に動作させたり、あるいはオペレーティングシステム側からハードウェアへのアクセスを管理する仮想化システムが存在する。例えば、特許文献1には、コンピュータのメモリ装置へのアクセスのトレースを取得するトレーサが開示されている。
特開2014−197295号公報
しかしながら、上記従来の仮想化システムでは、ストレージデバイスへのアクセスも仮想化するため、現実のストレージデバイス内のデータ格納ブロックを特定する論理ブロックアドレス(LBA)とは異なる仮想化されたアドレスが設定され、仮想化システム上で動作するオペレーティングシステムは、この仮想化されたアドレスによりデータアクセスを行い、仮想化システムにおいてこの仮想化されたアドレスを実際の論理ブロックアドレスに変換してストレージデバイスへのアクセスを行うこととしていた。このため、従来の仮想化システムでは、仮想化システムを後から取り去るといったことができず、運用の自由度が制限されるという問題点があった。
また仮に、現実のストレージデバイス内のデータ格納ブロックを特定する論理ブロックアドレス(LBA)と同じ仮想化されたアドレスが設定された場合であっても、従来の仮想化システムでは、現実のストレージデバイスとは異なる挙動を示す、仮想化されたデバイスとしてOS側に認識させるので、仮想化システムを後から取り去るといったことができなかった。
本発明は上記実情に鑑みて為されたもので、運用の自由度を向上できる情報処理装置、及びプログラムを提供することを、その目的の一つとする。
上記従来例の問題点を解決する本発明は、予め設定されたブロック単位でデータの読み書きを行うローカルストレージを具備し、利用するデータを蓄積するストレージサーバに接続された情報処理装置であって、前記ローカルストレージに対してデータの読み書きを要求するストレージアクセス制御手段と、前記ストレージアクセス制御手段が行う、前記ローカルストレージに対するデータの読み出しの要求を受け入れて、前記ローカルストレージ内の、当該要求に係るブロックにデータが格納されていないときには、当該要求に係るブロックに格納されるべきデータを、前記ストレージサーバから取得して前記ストレージアクセス制御手段に出力する擬装処理を行うとともに、前記ローカルストレージの、前記要求に係るブロックに当該取得したデータを格納する仮想化手段と、を有し、前記擬装処理においては、前記ストレージサーバ内に、前記ローカルストレージの各ブロックに対応するブロック対応領域を仮想的に設定し、前記ローカルストレージのブロックの位置情報を受けて、当該位置情報で特定されるブロックに対応する、前記ブロック対応領域を特定する対応領域特定情報を用いて、前記要求に係るブロックに対応する、ストレージサーバ内のブロック対応領域からデータを取得することとしたものである。
またここで前記仮想化手段は、前記擬装処理を行ったときには、前記ストレージアクセス制御手段からの要求の有無に関わらず、ローカルストレージからデータの読み出し処理を実行することとしてもよい。
さらに前記仮想化手段は、前記ストレージアクセス制御手段からの要求がない間は、前記ローカルストレージの各ブロックのうち、データの格納が行われていない空ブロックの各々について、当該空ブロックに格納するべきデータを、ストレージサーバから取得して、当該対応する空ブロックに取得したデータを書込む処理を行っており、前記仮想化手段は、最後に前記ストレージアクセス制御手段から要求されたブロックに近い空ブロックから所定の順に空ブロックを選択し、前記ストレージサーバの、当該選択した空ブロックに対応するブロック対応領域に格納されているデータを取得して、当該対応する空ブロックに取得したデータを書込むこととしてもよい。
また前記仮想化手段は、前記ローカルストレージにデータの格納が行われていない空ブロックがなくなったときには、以降の動作を行わないよう自己を制御するようにしてもよい。
さらに本発明の一態様に係るプログラムは、利用するデータを蓄積するストレージサーバに接続され、予め設定されたブロック単位でデータの読み書きを行うローカルストレージを備えるコンピュータであって、前記ローカルストレージに対してデータの読み書きを要求するストレージアクセス制御手段として当該コンピュータを機能させるシステムプログラムを実行するコンピュータを、前記ストレージアクセス制御手段が行う、前記ローカルストレージに対するデータの読み出しの要求を受け入れる手段と、前記ローカルストレージ内の、当該要求に係るブロックにデータが格納されていないときには、前記受け入れた要求に係るブロックに格納されるべきデータを、前記ストレージサーバから取得して前記ストレージアクセス制御手段に出力する擬装処理を行うとともに、前記ローカルストレージの、前記要求に係るブロックに当該取得したデータを格納する仮想化手段と、として機能させ、前記擬装処理においては、前記ストレージサーバ内に、前記ローカルストレージの各ブロックに対応するブロック対応領域を仮想的に設定し、前記ローカルストレージのブロックの位置情報を受けて、当該位置情報で特定されるブロックに対応する、前記ブロック対応領域を特定する対応領域特定情報を用いて、前記要求に係るブロックに対応する、ストレージサーバ内のブロック対応領域からデータを取得させることとしたものである。
本発明によると、仮想化システムを後から取り去ることも可能となり、運用の自由度が向上できる。
本発明の実施の形態に係る情報処理装置の構成例と接続例とを表すブロック図である。 本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。 本発明の実施の形態に係る情報処理装置が管理する対応情報と書込有無情報の例を表す説明図である。 本発明の実施の形態に係る情報処理装置の複写の処理例を表すフローチャート図である。 本発明の実施の形態に係る情報処理装置によるデータ読み出し動作の例を表すフローチャート図である。
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、図1に例示するように、制御部11と、メモリ部12と、ローカルストレージとしてのストレージ部13と、操作部14と、表示部15と、通信部16と、不揮発記憶部17とを含んで構成され、ネットワーク等の通信手段を介してストレージサーバ2に通信可能に接続されている。
本実施の形態ではストレージ部13は、ブロック(セクタ)単位で読み書きが行われる一般的なデバイスであり、例えばハードディスクドライブやSSD(Solid State Drive)等により構成される。一般にストレージ部13は、データの読み出しまたは書き込みが完了すると、データの読み出しまたは書き込みが完了したことを表す割込信号(int)を制御部11に対して出力する。
制御部11は、CPU等のプログラム制御デバイスであり、メモリ部12に格納されたプログラムに従って動作する。本実施の形態では、この制御部11は、ハイパーバイザとしてのプログラムを実行して、本発明の取得手段と仮想化手段としての機能(以下「仮想化部の機能」と呼ぶ)を実現するほか、オペレーティングシステム(OS)としてのプログラムを実行してオペレーティングシステムの動作を行っている。さらにこの制御部11は、OSの機能を利用するアプリケーションプログラム等を実行している。
本実施の形態において制御部11は、起動時に、仮想化部の機能を実現するプログラムを取得してメモリ部12に格納し、その処理を開始する。このために制御部11は、まず、仮想化部の機能を実現するプログラムを取得して実行開始し、次いでオペレーティングシステムとしてのプログラムを取得するように機能する。
また制御部11は、この仮想化部の機能を実現するプログラムを実行することで、次のように動作する。すなわち制御部11は、仮想化部の機能として、ストレージサーバ2内にストレージ部13の各ブロックに対応するブロック対応領域を仮想的に設定し、ストレージ部13のブロックの位置情報(論理ブロックアドレス:LBA)と、当該位置情報で特定されるブロックに対応する、ブロック対応領域を特定する対応領域特定情報とを関連付けて対応情報として記憶しておく。
また、仮想化部として動作する制御部11は、OSとしての機能を実行するプログラムの処理により、ストレージ部13に対するデータの読み出しの要求が発生すると、ストレージ部13内の、当該要求に係るブロックにデータが格納されているか否かを判断し、データが格納されていないときには、記憶している対応情報を参照して、当該要求に係るブロックに対応するブロック対応領域を特定し、ストレージサーバ2の当該特定したブロック対応領域からデータを取得する。つまり仮想化部として動作する制御部11は、ストレージ部13に対するデータの読み出しの要求が発生したときに、当該要求に係るブロックにデータが格納されていないときには、当該ブロックに格納するべきデータをストレージサーバ2から取得することとなる。そして仮想化部として動作する制御部11は、当該取得したデータをOSに対して出力する擬装処理を行うとともに、ストレージ部13の、要求に係るブロックに、当該取得したデータを格納する処理を行う。この制御部11による仮想化部としての動作については、後に詳しく述べる。
メモリ部12は、ROM(Read Only Memory)等の不揮発性のメモリデバイスやRAM(Random Access Memory)を含んで構成される。このメモリ部12は制御部11により実行される各種プログラムを記憶している。本実施の形態において、プログラムは、コンピュータ可読かつ非一時的な記憶媒体に格納されて提供され、このメモリ部12に格納されたものでよい。
本実施の形態の一例においては、仮想化部の機能を実現するプログラムは、不揮発性のメモリデバイスに格納され、情報処理装置1の電源投入時には、ストレージ部13へのアクセスやストレージサーバ2へのアクセスを要することなく、実行可能となっているようにしておく。
さらに本実施の別の一例では、仮想化のプログラムがネットワーク等の通信手段を介してアクセス可能なディスクデバイスに格納されており、いわゆるネットワークブートによってメモリ部12に読み込まれて実行されるようになっていてもよい。このようなネットワークブートの処理については広く知られているので、ここでの詳しい説明を省略する。
操作部14は、キーボードやマウス等であり、利用者の操作を受け入れて、当該操作の内容を表す情報を、制御部11に対して出力する。表示部15は、ディスプレイ等であり、制御部11から入力される指示に従い、情報を表示出力する。
通信部16は、ネットワークインタフェース等であり、制御部11から入力される指示に従い、種々のデータや要求を送受信する。具体的にこの通信部16は、仮想化部として機能する制御部11から入力される指示に従い、ストレージサーバ2に対してデータの読み出しの要求を送出する。またこの通信部16は、当該要求に応じてストレージサーバ2から受信されるデータを、制御部11に出力する。なお、情報処理装置1がDMA機能を有している場合は、この通信部16は、受信したデータを、制御部11を通さずに、メモリ部12に直接格納してもよい。
さらに本実施の形態において通信部16は、オペレーティングシステムとして機能する制御部11から入力される指示に従い、ネットワークを介して接続される各種サーバ装置(例えばウェブサーバ等)や、プリンタ等のデバイスとの間でデータを送受する。
不揮発記憶部17は、情報処理装置1の再起動時や電源遮断時においてもその記憶内容を保持する記憶手段であり、具体的には、ストレージ部13とは異なるハードディスクドライブ等のディスクドライブ装置によって構成されてもよい。また、この不揮発記憶部17は、ストレージ部13の一部領域であって、OSが使用しない領域(OSから隠蔽されたパーティション等)であってもよい。この場合ストレージ部13は、不揮発記憶部17を一部に含むこととなる。
ストレージサーバ2は、例えばネットワークストレージデバイスであり、ハードディスクドライブ等のディスクデバイスを含んで構成される。本実施の形態の一例においてこのストレージサーバ2のディスクデバイスには、情報処理装置1のローカルストレージであるストレージ部13と同サイズの仮想的なディスクドライブが設定されて記憶されている。このような仮想的なディスクドライブは広く知られている(例えばunix系オペレーティングシステムにおけるddコマンドで作成できるファイル等)のでここでの詳しい説明を省略する。
次に本実施の形態の制御部11の動作について説明する。本実施の形態では、この制御部11は、図2に例示するように、機能的には、オペレーティングシステムとしての機能を実現するOS機能部30と、仮想化部の機能を実現する仮想化機能部40とを含んで構成される。また、この仮想化機能部40は、対応情報管理部41と、アクセス検出部42と、判断部43と、擬装処理部44と、仕上処理部45と、ローカルアクセス部46と、複写処理部47と、機能停止制御部48と、を基本的に含んで構成される。
ここでOS機能部30は、ユーザの操作部14からの操作に応じて動作し、表示部15等に情報を表示するアプリケーションプログラムの動作を管理しており、アプリケーションプログラムからの要求を受けてストレージ部13へのアクセス等を行うものである。
対応情報管理部41は、ストレージ部13のブロックの位置情報(具体的にはLBA)に関連付けて、当該位置情報で特定されるブロックに対応する、ストレージサーバ2に設定された仮想的なディスクドライブ内のブロック対応領域を特定する対応領域特定情報(R)を関連付けて対応情報として不揮発記憶部17に記憶する(図3)。また本実施の形態では、ストレージ部13のブロックの位置情報ごとに、当該位置情報で特定されたブロックに対してデータを書込んだか否かを表す情報(書込有無情報(W))を関連付けて不揮発記憶部17に記憶しているものとする。
アクセス検出部42は、OS機能部30により発行される、データの読出命令または書込命令を検出する。この読出命令または書込命令には、ストレージ部13のブロックの位置情報が含まれる。ここでアクセス検出部42が、書込命令を検出しているときには、OS機能部30は当該書込命令とともに書込の対象となるデータも併せて出力している。
判断部43は、アクセス検出部42が検出した命令に応じて、処理方法を決定する。具体的にこの判断部43は、アクセス検出部42が検出した命令が書込命令であれば、当該書込命令に含まれ、あるいは当該書込命令とともにOS機能部30が出力する、ストレージ部13のブロックの位置情報と、書込の対象となるデータとを、書込の指示とともにローカルアクセス部46に出力する。
またこの判断部43は、アクセス検出部42が検出した命令が読出命令であるときには、当該読出命令に含まれる、ストレージ部13のブロックの位置情報に関連付けて不揮発記憶部17に格納されている書込有無情報(W)を取得する。判断部43は、ここで書込有無情報(W)が、ブロックに対してデータを書き込んだことを表すものとなっているときには、アクセス検出部42が検出した読出命令に含まれる、ストレージ部13のブロックの位置情報を、読出しの指示とともにローカルアクセス部46に出力する。
判断部43は、さらに、取得した書込有無情報(W)が、ブロックに対してデータを書き込んでいないことを表すものとなっているとき(当該ブロックが空ブロックである場合)には、アクセス検出部42が検出した読出命令に含まれる、ストレージ部13のブロックの位置情報に関連付けて不揮発記憶部17に格納されている対応領域特定情報(R)を参照し、OS機能部30から受け入れたストレージ部13のブロックの位置情報と、当該対応領域特定情報(R)と、読出しの指示とを擬装処理部44に出力する。
擬装処理部44は、判断部43から対応領域特定情報(R)と、読出しの指示との入力を受け入れると、通信部16を介してストレージサーバ2にアクセスし、ストレージサーバ2に格納されている仮想ディスクドライブ内の対応領域特定情報で特定される領域からデータを取得する。擬装処理部44は、当該取得したデータをOS機能部30に対して出力するとともに、仕上処理部45に対して処理を要求する。
さらにこの擬装処理部44は、取得したデータを、判断部43から受け入れたブロックの位置情報で特定されるストレージ部13内のブロックに書き込む。そして擬装処理部44は、当該データを書き込んだブロックの位置情報に関連付けて不揮発記憶部17に格納されている書込有無情報(W)を、データを書き込んだことを表す情報に書き換えて更新する。
仕上処理部45は、擬装処理部44から処理の要求を受け入れると、ストレージ部13の任意のブロックからデータを読み出す。このデータの読み出しはダミーの処理であり、OS機能部30からのデータ読み出しの要求とは関わりなく(要求の有無に関わらず)行われる。上記任意のブロックは、予め定められたブロックのデータを読み出すこととしてもよいし、仮想化機能部40により最後にアクセスされたブロックまたはそれに隣接するブロックのデータを読み出すこととしてもよい。仕上処理部45がこのデータ読み出しを行うことにより、ストレージ部13からはデータの読み出しが完了したことを表す割込信号が制御部11に対して出力されることとなる。
ローカルアクセス部46は、判断部43からストレージ部13のブロックの位置情報と、書込の対象となるデータと、書込の指示との入力を受けると、当該位置情報で特定されるブロックに対して、受け入れたデータを書き込むよう、ストレージ部13に対して指示する。
なお、ローカルアクセス部46はこのとき、ストレージ部13に対する別のアクセスが発生している場合には、当該アクセスの終了まで待ってから受け入れたデータを書き込むよう、ストレージ部13に対して指示を行うこととしてもよいし、複数のアクセスを並列して処理可能な場合(Native Command Queuing:NCQ機能を有している場合等)は、それぞれを並列して処理してもよい。このアクセスの終了を待っている間、ローカルアクセス部46は、ストレージ部13の状況に関る情報を、OS機能部30に対してアクセスが行われていないかのように擬装してもよい。つまりOS機能部30からは、データの書き込みが完了しているかのように擬装することとしてもよい。
またこのローカルアクセス部46は、判断部43からストレージ部13のブロックの位置情報と、読出しの指示との入力を受けると、ストレージ部13の当該位置情報で特定されるブロックからデータを読み出して、OS機能部30へ出力する。このときには、ストレージ部13は、当該データの読み出しが完了したときに、データの読み出しが完了したことを表す割込信号を制御部11に対して出力することとなる。
複写処理部47は、不揮発記憶部17に格納されている書込有無情報(W)を参照し、データを書き込んでいないことを表すものとなっている書込有無情報に関連付けられているブロック(空ブロック)の位置情報を抽出する。そしてこの複写処理部47は、抽出した空ブロックの位置情報のうちから所定の規則に従って位置情報を一つ選択する。そして複写処理部47は、当該位置情報に関連付けて不揮発記憶部17に格納されている対応領域特定情報(R)を読み出す。複写処理部47は通信部16を介してストレージサーバ2にアクセスし、ストレージサーバ2に格納されている仮想ディスクドライブ内の当該読み出した対応領域特定情報で特定される領域からデータを取得し、選択した位置情報で特定されるブロックに当該取得したデータを書き込むよう、ストレージ部13に指示する。
複写処理部47は、そして、当該データを書き込んだブロックの位置情報に関連付けて不揮発記憶部17に格納されている書込有無情報(W)を、データを書き込んだことを表す情報に書き換えて更新する。
さらに、この複写処理部47は、不揮発記憶部17に格納されている書込有無情報(W)を参照し、データを書き込んでいないことを表す情報に関連付けられたブロック(空ブロック)がない場合(すべてのブロックに対してデータを書き込んだ場合)には、機能停止制御部48に対して機能停止を指示する。
本実施の形態の一例において、この複写処理部47は、OS機能部30からストレージ部13に対する読み出しや書き込みの命令の入力がないときに、上記動作を行うようにしてもよい。また複写処理部47は、空ブロックの位置情報からデータ取得の対象とするブロックの位置情報を選択する上記所定の規則として、例えば、制御部11が最後にアクセスしたストレージ部13のブロック(物理的にストレージ部13から読み出しまたはストレージ部13への書き込みを行ったブロック、以下最終アクセスブロックと呼ぶ)の位置情報に近い空ブロックから所定の順(例えば最終アクセスブロックの位置情報(LBA)より大きい値の位置情報(LBA)により特定されるブロックであって、最終アクセスブロックから近い順)に選択することとしてもよい。
機能停止制御部48は、脱仮想化(devirtualization)を実現する。本実施の形態の一例では、この機能停止制御部48は、判断部43から機能停止を指示されると、ランタイムに(OS機能部30の動作を停止させずに)仮想化機能部40としての処理を停止する。この脱仮想化の処理については広く知られた処理があるのでその詳しい説明を省略するが、例えばOS機能部30からストレージ部13に対する読み出しや書き込みの命令の入力がないタイミングで、OS機能部30からストレージ部13への命令が直接出力されるように設定を変更する。つまり、仮想化の動作におけるOS機能部30からのアクセスの捕捉を行わないよう制御する。
その後、機能停止制御部48は、仮想化機能部40としての処理を停止する。具体的に仮想化機能部40は、これまでに説明した処理を行うモジュールのほか、OS機能部30からのメモリアクセスを仮想化するメモリ管理処理モジュールや、特権命令を含む制御部11の命令を仮想化する命令処理モジュールも含んでいる。機能停止制御部48は、そこでこれらメモリ管理処理モジュールの動作や、命令処理モジュールの動作を停止させる。なお、メモリ管理モジュールの動作をここで停止できるようにしておくためには、予め仮想化機能部40により仮想化されたメモリの内容が、物理的なメモリ部12の記憶内容と同一となっている(それぞれの記憶領域同士が恒等写像の関係にあるようになっている)ように管理しておく。
機能停止制御部48は、ランタイムに(再起動せずに)、仮想化機能部40としての処理を停止してもよく、または情報処理装置1の再起動後に仮想化機能部40のプログラムが実行されずにOS機能部30としてのプログラムが実行されることとなるよう、初期設定を書き換えることとしてもよい。また、ランタイムに停止するか再起動により停止するか、もしくはその両方を選択可能となっていてもよい。
このような機能停止制御部48により、ストレージ部13にデータの格納が行われていない空ブロックがなくなったとき、以降の動作を行わないよう仮想化機能部40を制御することが可能となる。
なお、仮想化機能部40は、その擬装処理部44や複写処理部47等の動作の過程において、通信部16を介して通信を行うに先立ち、通信部16が初期化されていないとき(通信部16に対するネットワークアドレスの割り当て等が完了していないとき)には、仮想化機能部40は通信部16を初期化する動作を行う。この初期化の動作は、一般的なネットワークインタフェースの起動時の処理と同様であるので、ここでの詳しい説明を省略するが、本来であればストレージ部13に格納されているべきデータを必要とする場合には一時的に、事前に定められている設定(固定のネットワークアドレスにより初期化するべき旨の設定であっても、DHCP(Dynamic Host Configuration Protocol)によりネットワークアドレスを取得するなどして初期化するべき旨の設定であってもよい)により通信部16を初期化し、必要なデータを、当該データが格納されているべきストレージ部13のブロックに対応するストレージサーバ2の領域から取得することとすればよい。その後、仮想化機能部40は、当該取得したデータに従って、通信部16を再度初期化する。このとき仮想化機能部40は、当該取得したデータを、本来格納されているべきストレージ部13のブロック内に書き込んで、不揮発記憶部17に格納した、当該ブロックの位置情報に関連付けられている書込有無情報(W)を、データを書き込んだことを表す情報に書き換えて更新してもよい。
この動作により仮想化機能部40は、電源投入後、OS機能部30としての機能を実現するプログラム(OSのプログラム)についても、ストレージサーバ2から取得してストレージ部13に書き込むことが可能となる。この際には、仮想化機能部40は、初期プログラムローダ(IPL)等、OSのプログラムの読み込みを行う処理において発生する、ストレージ部13への読み出し指示に応じて、当該指示による読み出しの対象となるストレージ部13のブロックの位置情報に対応するストレージサーバ2の領域からデータ(OSのプログラムデータ)を取得し、ストレージ部13の対応するブロックに書き込むとともに、制御部11による実行の用に供することとなる。この際にも仮想化機能部40は、不揮発記憶部17に格納した、当該データを書き込んだブロックの位置情報に関連付けられている書込有無情報(W)を、データを書き込んだことを表す情報に書き換えて更新していく。
本実施の形態の情報処理装置1は以上の構成を備えており、次のように動作する。当初、本実施の形態の情報処理装置1のストレージ部13には、データが記録されていない状態となっているものとする(あるいは、仮想化機能部40としてのプログラムが格納された状態であってもよい)。
情報処理装置1は、電源が投入される(起動される)と、仮想化機能部40としてのプログラムを取得してメモリ部12に格納し、当該処理の実行を開始させる。この仮想化機能部40としてのプログラムは、例えばネットワークブートの処理により、ネットワークを介して接続されるディスクデバイス等から取得される。
仮想化機能部40としての処理を開始した情報処理装置1は、OS機能部30としてのプログラムの取得を行う。このOS機能部30としてのプログラムも、ネットワークブートの処理により取得することとしてもよいし、本来であればストレージ部13にOS機能部30としてのプログラムが格納された状態にあるものであれば、仮想化機能部40によりストレージ部13の当該OS機能部30としてのプログラムが格納されているべきブロックに対応する、ストレージサーバ2の領域からデータを読み出させることでOS機能部30としてのプログラムを取得させてもよい。
なお、本実施の形態の一例において、情報処理装置1は、そのストレージ部13のブロックの位置情報(論理ブロックアドレス:LBA)と、当該位置情報で特定されるブロックに対応する、ストレージサーバ2におけるブロック対応領域を特定する対応領域特定情報とを関連付けて対応情報として不揮発記憶部17に記憶しておくものとしているが、この対応情報は例えば次のようにして生成できる。
本実施の形態の一例では、ストレージ部13のブロックを特定する位置情報はLBAであり、各ブロックに対応する、ストレージサーバ2内の仮想ディスクドライブ内のブロック対応領域を特定する対応領域特定情報は、当該仮想ディスクドライブのLBAである。このときストレージ部13のブロックを特定するLBA値Alocalと、対応領域特定情報のLBA値Aserverとの間に次の関係が成立するように、予めストレージサーバ2の仮想ディスクドライブ内にデータを書き込んでおくこととすればよい:
Aserver=Alocal+Offset(α) …(1)
ここでOffset(α)は、オフセット値を返す関数であり、例えばOffset(α)=0であってもよい。
仮想化機能部40としての処理を行う情報処理装置1は、上記関係に基づいて、ストレージ部13のブロックの位置情報と、当該位置情報で特定されるブロックに対応する、ストレージサーバ2におけるブロック対応領域を特定する対応領域特定情報とを関連付けた対応情報を生成して不揮発記憶部17に格納する。
また情報処理装置1は、ストレージ部13のブロックの位置情報に対応付けた書込有無情報(W)を不揮発記憶部17に格納する。初期的にはこの書込有無情報はいずれも書き込みされていないことを表す情報となっている(ストレージ部13に仮想化機能部40としてのプログラムが格納されているときには、当該プログラムが格納されているブロックの位置情報に対応する書込有無情報についてはデータが書き込まれていることを表す情報に設定しておいてもよい)。
その後、情報処理装置1はOS機能部30としての動作を開始するが、OS機能部30の動作として、ストレージ部13へのアクセスが行われていない間は、情報処理装置1は、ストレージサーバ2からストレージ部13へのデータの複写の処理を実行する。具体的に情報処理装置1は、図4に例示するように、不揮発記憶部17に格納されている書込有無情報(W)を参照し、データを書き込んでいないことを表すものとなっている書込有無情報に関連付けられているブロック(空ブロック)の位置情報を抽出する(S11)。そして情報処理装置1は、抽出した空ブロックの位置情報のうちから所定の規則に従って位置情報を一つ選択する(S12)。ここで所定の規則は既に述べたように、直前に実際にアクセスされたブロックに最も近いブロックを選択することとすればよいが、初期化直後のように最初のアクセスである場合は、抽出した位置情報(LBA)のうち、最も小さいLBA値となっているものを選択すればよい。
情報処理装置1は、当該選択した位置情報に関連付けて不揮発記憶部17に格納されている対応領域特定情報(R)を読み出し、次いでストレージサーバ2にアクセスし、ストレージサーバ2に格納されている仮想ディスクドライブ内の当該読み出した対応領域特定情報で特定される領域からデータを取得する(S13)。そして情報処理装置1は、選択した位置情報で特定されるストレージ部13のブロックに当該取得したデータを書き込む(S14)。
また情報処理装置1は、当該データを書き込んだブロックの位置情報に関連付けて不揮発記憶部17に格納されている書込有無情報(W)を、データを書き込んだことを表す情報に書き換えて更新する(S15)。情報処理装置1は、OS機能部30の動作として、ストレージ部13へのアクセスが行われていない間、このデータの複写の処理を繰り返し実行する。
なお、処理S11にて空ブロックが抽出されなくなったとき(空ブロックがなくなったとき)には、情報処理装置1は、以降のデータの複写の処理を中止するとともに、脱仮想化の処理を行ってもよい。
また、情報処理装置1がOS機能部30の動作として、ストレージ部13への書込命令を発行すると、情報処理装置1は仮想化機能部40としての機能として、OS機能部30の命令により書込先として指定されたストレージ部13のブロックに対してOS機能部30が指定するデータを書き込む。
さらに、情報処理装置1がOS機能部30の動作として、ストレージ部13からのデータ読出命令を発行すると、情報処理装置1は、図5に例示するように、仮想化機能部40としての機能として、OS機能部30の命令により指定されたデータの読み出し元であるストレージ部13のブロックの位置情報を参照する(S21)。
情報処理装置1は、当該参照したストレージ部13のブロックの位置情報に関連付けて不揮発記憶部17に格納されている書込有無情報(W)が、ブロックに対してデータを書き込んだことを表すものとなっているか否かを調べる(S22)。ここで書込有無情報(W)が、ブロックに対してデータを書き込んだことを表すものとなっているとき(Yesのとき)には、情報処理装置1は、ストレージ部13の当該位置情報で特定されるブロックからデータを読み出して、OS機能部30としての処理に当該読み出したデータを受け渡す(S23)。
一方処理S22において、書込有無情報(W)が、ブロックに対してデータを書き込んだことを表すものとなっていないとき(Noのとき)には、情報処理装置1は、参照したストレージ部13のブロックの位置情報に関連付けて不揮発記憶部17に格納されている対応領域特定情報(R)を取得する(S24)。
情報処理装置1は、そして、通信部16を介してストレージサーバ2にアクセスし、ストレージサーバ2に格納されている仮想ディスクドライブ内にあって、処理S24で取得した対応領域特定情報で特定される領域からデータを取得する(S25)。そして情報処理装置1は、当該取得したデータをOS機能部30としての処理に受け渡す(S26)。
またこのとき情報処理装置1は、取得したデータを、処理S21で参照したブロックの位置情報で特定されるストレージ部13内のブロックに書き込む(S27)。そして情報処理装置1は、当該データを書き込んだブロックの位置情報に関連付けて不揮発記憶部17に格納されている書込有無情報(W)を、データを書き込んだことを表す情報に書き換えて更新する(S28)。なお、処理S26からS28の実行順序は、ここでの例に限られず、処理S27,S28の実行後に処理S26を実行する順であってもよい。
さらに情報処理装置1は、ストレージ部13の任意のブロックからOS機能部30からのデータ読み出しの要求とは関わりなく(要求の有無に関わらず)データを読み出す(S29)。これにより、情報処理装置1はストレージ部13から制御部11へと割込信号を発生させ、OS機能部30としての処理において、データの読み出しが完了したことを検出できるようにする。
なお、処理S29では、ダミーのデータの読み出しを行わせる処理でなくとも読み出し完了を表すものと同種の割込信号をストレージ部13に発生させることのできる処理であれば、いかなる処理を行ってもよい。例えば、特定の設定処理を行うことで同じ割込信号を発生させることのできる場合がある。
さらに本実施の形態のここまでの説明では、仮想化機能部40の動作として、制御部11がストレージサーバ2からデータを取得するとき、ストレージサーバ2からのデータの取得が完了してから、ストレージ部13に割込信号を発生させることとしているが、本実施の形態はこれに限られない。
例えば、制御部11は、ストレージサーバ2からデータを取得する必要が発生したとき(図5の処理S25に先立って)、ストレージ部13に割込信号を発生させる動作(例えば処理S29の動作)を行わせてもよい。このときには、OS機能部30が受け渡されたデータを参照しようとしたときに、制御部11は処理中であることを表す信号(ビジー・ウエイト)を発生させて、OS機能部30に対してデータの取り出しを待機させるようにしてもよい。
またここまでの説明において、情報処理装置1がストレージ部13のブロックに対応する、ストレージサーバ2の仮想ディスクドライブ内の対応領域特定情報を取得する処理では、ストレージ部13のブロックの位置情報ごとに対応領域特定情報を関連付けた対応情報を予め不揮発記憶部17に格納して、当該対応情報を参照するようにしていたが、これに代えて、例えば上記(1)式の演算によりストレージ部13のブロックの位置情報に対応する対応領域特定情報を得るようにしてもよい。
さらに、以上の説明では、ストレージ部13のブロックの位置情報(論理ブロックアドレス:LBA)と、当該位置情報で特定されるブロックに対応する、ブロック対応領域を特定する対応領域特定情報とを関連付けた対応情報を、情報処理装置1において記憶しておくものとしたが、本実施の形態はこれに限られない。
すなわち、この対応情報は、ストレージサーバ2に格納されていてもよい。この場合、制御部11は、OSとしての機能を実行するプログラムの処理により、ストレージ部13に対するデータの読み出しの要求が発生すると、ストレージ部13内の、当該要求に係るブロックにデータが格納されているか否かを判断し、データが格納されていないときには、当該要求に係るブロックに格納されるべきデータをストレージサーバ2に要求する。
そしてこの例では、ストレージサーバ2が、情報処理装置1から受け入れた上記要求に応答して、ストレージサーバ2が記憶する対応情報を参照して、要求に係るブロックに対応するブロック対応領域を特定し、ストレージサーバ2の当該特定したブロック対応領域内からデータを取得して情報処理装置1へ送出する。
そして情報処理装置1は、ストレージサーバ2から先の要求に係るブロックに格納されるべきデータを受け入れて、当該要求に係るブロックに、当該受け入れたデータを格納することとなる。
本実施の形態によると、仮想化機能部40が、現実のストレージデバイスであるストレージ部13をそのまま擬装してOS側にアクセスさせることとなり、仮想化システムを後から取り去ることも可能となり、運用の自由度を向上できる。
1 情報処理装置、2 ストレージサーバ、11 制御部、12 メモリ部、13 ストレージ部、14 操作部、15 表示部、16 通信部、17 不揮発記憶部、30 OS機能部、40 仮想化機能部、41 対応情報管理部、42 アクセス検出部、43 判断部、44 擬装処理部、45 仕上処理部、46 ローカルアクセス部、47 複写処理部、48 機能停止制御部。

Claims (4)

  1. 予め設定されたブロック単位でデータの読み書きを行うローカルストレージであって、データの読み出しまたは書き込みが完了したときに、データの読み出しが完了したことを表す信号を出力するローカルストレージを具備し、利用するデータを蓄積するストレージサーバに接続された情報処理装置であって、
    前記ローカルストレージに対してデータの読み書きを要求するストレージアクセス制御手段と、
    前記ストレージサーバ内に、前記ローカルストレージの各ブロックに対応するブロック対応領域を仮想的に設定し、前記ローカルストレージの位置情報と、当該位置情報で特定されるブロックに対応する、前記ブロック対応領域を特定する対応領域特定情報とを関連付けて記憶する手段と、
    前記ストレージアクセス制御手段が行う、前記ローカルストレージに対するデータの読み出しの要求を受け入れて、前記ローカルストレージ内の、当該要求に係るブロックにデータが格納されていないときには、当該要求に係るブロックに格納されるべきデータを、前記ストレージサーバから取得して前記ストレージアクセス制御手段に出力する擬装処理を行うとともに、前記ローカルストレージの、前記要求に係るブロックに当該取得したデータを格納する仮想化手段と、
    を有し、
    前記擬装処理においては、前記ローカルストレージのブロックの位置情報を受けて、当該位置情報で特定されるブロックに対応する、前記ブロック対応領域を特定する対応領域特定情報を取得して、前記要求に係るブロックに対応する、ストレージサーバ内のブロック対応領域からデータを取得し、
    前記仮想化手段は、前記擬装処理を行ったときには、前記ストレージアクセス制御手段からの要求の有無に関わらず、ローカルストレージからデータの読み出し処理を実行して、ローカルストレージに対して前記データの読み出しが完了したことを表す信号を出力させる情報処理装置。
  2. 請求項記載の情報処理装置であって、
    前記仮想化手段は、前記ストレージアクセス制御手段からの要求がない間は、前記ローカルストレージの各ブロックのうち、データの格納が行われていない空ブロックの各々について、当該空ブロックに格納するべきデータを、ストレージサーバから取得して、当該対応する空ブロックに取得したデータを書込む処理を行っており、
    前記仮想化手段は、最後に前記ストレージアクセス制御手段から要求されたブロックに近い空ブロックから所定の順に空ブロックを選択し、前記ストレージサーバの、当該選択した空ブロックに対応するブロック対応領域に格納されているデータを取得して、当該対応する空ブロックに取得したデータを書込む情報処理装置。
  3. 請求項1または2に記載の情報処理装置であって、
    前記仮想化手段は、前記ローカルストレージにデータの格納が行われていない空ブロックがなくなったときには、以降の動作を行わないよう自己を制御する情報処理装置。
  4. 利用するデータを蓄積するストレージサーバに接続され、予め設定されたブロック単位でデータの読み書きを行うローカルストレージであって、データの読み出しまたは書き込みが完了したときにデータの読み出しが完了したことを表す信号を出力するローカルストレージを備えるコンピュータであって、前記ローカルストレージに対してデータの読み書きを要求するストレージアクセス制御手段として当該コンピュータを機能させるシステムプログラムを実行するコンピュータを、
    前記ストレージサーバ内に、前記ローカルストレージの各ブロックに対応するブロック対応領域を仮想的に設定し、前記ローカルストレージの位置情報と、当該位置情報で特定されるブロックに対応する、前記ブロック対応領域を特定する対応領域特定情報とを関連付けて記憶する手段と、
    前記ストレージアクセス制御手段が行う、前記ローカルストレージに対するデータの読み出しの要求を受け入れる手段と、
    前記ローカルストレージ内の、当該要求に係るブロックにデータが格納されていないときには、前記受け入れた要求に係るブロックに格納されるべきデータを、前記ストレージサーバから取得して前記ストレージアクセス制御手段に出力する擬装処理を行うとともに、前記ローカルストレージの、前記要求に係るブロックに当該取得したデータを格納する仮想化手段と、
    として機能させ、
    前記擬装処理においては、前記ローカルストレージのブロックの位置情報を受けて、当該位置情報で特定されるブロックに対応する、前記ブロック対応領域を特定する対応領域特定情報を取得して、前記要求に係るブロックに対応する、ストレージサーバ内のブロック対応領域からデータを取得させ、
    前記仮想化手段として機能させる際に、前記擬装処理を行ったときには、前記ストレージアクセス制御手段からの要求の有無に関わらず、ローカルストレージからデータの読み出し処理を実行させて、ローカルストレージに対して前記データの読み出しが完了したことを表す信号を出力させるプログラム。
JP2015010521A 2015-01-22 2015-01-22 情報処理装置及びプログラム Active JP6506976B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015010521A JP6506976B2 (ja) 2015-01-22 2015-01-22 情報処理装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015010521A JP6506976B2 (ja) 2015-01-22 2015-01-22 情報処理装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2016134142A JP2016134142A (ja) 2016-07-25
JP6506976B2 true JP6506976B2 (ja) 2019-04-24

Family

ID=56438098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015010521A Active JP6506976B2 (ja) 2015-01-22 2015-01-22 情報処理装置及びプログラム

Country Status (1)

Country Link
JP (1) JP6506976B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008134712A (ja) * 2006-11-27 2008-06-12 Hitachi Ltd ファイル共有システム、ファイル共有装置及びファイル共有用ボリュームの移行方法
WO2014041664A1 (ja) * 2012-09-13 2014-03-20 富士通株式会社 情報処理システム、情報処理装置、移行制御プログラム、及び移行制御方法

Also Published As

Publication number Publication date
JP2016134142A (ja) 2016-07-25

Similar Documents

Publication Publication Date Title
CN106537340B (zh) 虚拟化信息操纵***的输入/输出加速设备和方法
US9811369B2 (en) Method and system for physical computer system virtualization
US9384007B2 (en) Memory virtualization-based snapshot boot apparatus and method
US20160179419A1 (en) Storage system, storage management apparatus, and storage management method
CN107209683B (zh) 备份映像恢复
US10162657B2 (en) Device and method for address translation setting in nested virtualization environment
US9058197B2 (en) Method for sharing memory of virtual machine and computer system using the same
US20180081674A1 (en) Updating Machine Emulator
US20120311240A1 (en) Information processing apparatus, information processing method, and storage medium
US10956189B2 (en) Methods for managing virtualized remote direct memory access devices
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
JP7047036B2 (ja) 投機的仮想マシン実行
CN104598170B (zh) 确定读写路径的方法和装置
JP2009134601A (ja) ディスクアクセス方式切替装置
KR20140147017A (ko) 라이트 백 캐싱 환경에서 예상하지 못한 셧다운으로부터 복구하기 위한 시스템 및 방법
KR20110095051A (ko) 가상화 환경에서의 데이터 처리 방법 및 드라이버
JP2013532880A5 (ja)
US11907135B2 (en) Faster computer memory access by reducing SLAT fragmentation
JP6506976B2 (ja) 情報処理装置及びプログラム
JP4597032B2 (ja) コンピュータシステム、それにおける基本プログラムの起動方法、及びローダプログラム
US20160179708A1 (en) Information processing apparatus, information processing method, and non-transitory computer readable medium
JP2017219931A (ja) 情報処理装置、情報処理方法、およびプログラム
US20230266992A1 (en) Processor for managing resources using dual queues, and operating method thereof
TWI588655B (zh) 儲存系統
KR20170127691A (ko) 스토리지 장치 및 이의 동작방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181002

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190131

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190401

R150 Certificate of patent or registration of utility model

Ref document number: 6506976

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250