IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社バッファローの特許一覧 ▶ シャープ株式会社の特許一覧

<>
  • 特許-情報処理装置、及びプログラム 図1
  • 特許-情報処理装置、及びプログラム 図2
  • 特許-情報処理装置、及びプログラム 図3
  • 特許-情報処理装置、及びプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-02
(45)【発行日】2023-11-13
(54)【発明の名称】情報処理装置、及びプログラム
(51)【国際特許分類】
   G06F 21/62 20130101AFI20231106BHJP
   G06F 13/10 20060101ALI20231106BHJP
   G06F 9/455 20180101ALI20231106BHJP
   G06F 21/31 20130101ALI20231106BHJP
【FI】
G06F21/62 318
G06F13/10 330C
G06F9/455 150
G06F21/31
【請求項の数】 6
(21)【出願番号】P 2020102617
(22)【出願日】2020-06-12
(65)【公開番号】P2021196837
(43)【公開日】2021-12-27
【審査請求日】2023-02-07
(73)【特許権者】
【識別番号】390040187
【氏名又は名称】株式会社バッファロー
(73)【特許権者】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】100122275
【弁理士】
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】千葉 隼人
(72)【発明者】
【氏名】鎌田 光速
(72)【発明者】
【氏名】大西 昭範
(72)【発明者】
【氏名】小西 陽介
(72)【発明者】
【氏名】小山 至幸
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2017-215745(JP,A)
【文献】米国特許出願公開第2015/0220709(US,A1)
【文献】特開2017-187993(JP,A)
【文献】特開2018-032310(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 13/10
G06F 9/455
G06F 21/31
(57)【特許請求の範囲】
【請求項1】
情報処理装置であって、
ストレージ部と、
ホストオペレーティングシステムの処理を実行するとともに、仮想マシンとしての処理を実行するホスト側処理手段と、ゲストオペレーティングシステムの処理を実行するとともに、当該ホスト側処理手段が実行する仮想マシン上で、所定の処理を実行するゲスト側処理手段とを、含むコントローラ部と、を有し、
前記コントローラ部は、前記ホスト側処理手段としての処理において、ホストオペレーティングシステムのユーザの認証情報と、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの各ユーザのアクセス権情報とを、前記ゲスト側処理手段からアクセス可能な状態で保持し、
前記ゲスト側処理手段としての処理において、アプリケーションプログラムの処理として、ユーザからのアクセスを受けて、前記ホストオペレーティングシステムが管理するユーザの認証情報を参照して当該ユーザを認証するコントローラ部である、情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記コントローラ部のホスト側処理手段は、さらに、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの前記ユーザのアクセス権情報を、前記ゲスト側処理手段からアクセス可能な状態で保持し、
前記コントローラ部のホスト側処理手段は、ホストオペレーティングシステムが管理する前記ストレージ部内のファイルシステムの少なくとも一部を、前記ゲスト側処理手段からアクセス可能に設定し、
前記コントローラ部のゲスト側処理手段は、ゲストオペレーティングシステム上で動作するアプリケーションプログラムの処理として、前記ホストオペレーティングシステムによりアクセス可能に設定された前記ストレージ部内のファイルシステムに保持されたファイルのアクセス権を、前記アクセス権情報に基づいて判断する情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記コントローラ部のホスト側処理手段は、ホストオペレーティングシステムが管理する前記ストレージ部内のファイルシステムの少なくとも一部を、前記ゲスト側処理手段からNFSマウントによりアクセス可能に設定し、
前記コントローラ部のゲスト側処理手段は、前記アクセス可能に設定された、前記ストレージ部内のホストオペレーティングシステムのファイルシステムの少なくとも一部をNFSマウントして、ゲストオペレーティングシステム上で動作するアプリケーションプログラムの利用に供する情報処理装置。
【請求項4】
請求項2または3に記載の情報処理装置であって、
前記コントローラ部のゲスト側処理手段により実行される、ゲストオペレーティングシステム上で動作するアプリケーションプログラムには、前記ホストオペレーティングシステムによりアクセス可能に設定された前記ストレージ部内のファイルシステムに保持されたファイルを検索する検索アプリケーションを含む情報処理装置。
【請求項5】
ストレージ部とコントローラ部とを備えた情報処理装置の制御方法であって、
前記コントローラ部が、
ホストオペレーティングシステムの処理を実行するとともに、仮想マシンとしての処理を実行するホスト側処理工程と、
ゲストオペレーティングシステムの処理を実行するとともに、当該ホスト側処理工程で実行する仮想マシン上で、所定の処理を実行するゲスト側処理工程とを実行し、
前記コントローラ部は、前記ホスト側処理工程において、ホストオペレーティングシステムのユーザの認証情報と、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの各ユーザのアクセス権情報とを、前記ゲスト側処理工程でアクセス可能な状態で保持し、
前記ゲスト側処理工程において、アプリケーションプログラムの処理として、ユーザからのアクセスを受けて、前記ホストオペレーティングシステムが管理するユーザの認証情報を参照して当該ユーザを認証する情報処理装置の制御方法。
【請求項6】
ストレージ部と、コントローラ部とを備えるコンピュータを、
前記コントローラ部が、ホストオペレーティングシステムの処理を実行するとともに、仮想マシンとしての処理を実行するホスト側処理手段と、
ゲストオペレーティングシステムの処理を実行するとともに、当該ホスト側処理手段が実行する仮想マシン上で、所定の処理を実行するゲスト側処理手段と、
として機能させ、
前記ホスト側処理手段として機能させる際に、前記ホストオペレーティングシステムのユーザの認証情報と、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの各ユーザのアクセス権情報とを、前記ゲスト側処理手段からアクセス可能な状態で保持させ、
前記ゲスト側処理手段として機能させる際に、アプリケーションプログラムの処理として、ユーザからのアクセスを受けて、前記ホストオペレーティングシステムが管理するユーザの認証情報を参照して当該ユーザを認証させるプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、及びプログラムに関する。
【背景技術】
【0002】
従来より、ホストOS上で複数の仮想マシンシステムを起動して利用できるサーバ仮想化技術が知られている(非特許文献1)。
【先行技術文献】
【非特許文献】
【0003】
【文献】中井悦司,「KVMサーバ仮想化の実践活用」,日経Linux,2015.9,pp.138-143
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来の技術では、ホストOSとゲストOSとは、互いに異なるシステムとして動作しており、ホストOSのユーザ権限の設定とゲストOSのユーザ権限の設定とは一般に異なる。
【0005】
このためホストOSのファイルシステム内のファイルをゲストOSが共有するように設定した場合、ゲストOS上で動作するアプリケーションは、ホストOSのユーザ権限を考慮せずにファイルシステム上のファイルにアクセスしてしまう可能性がある。
【0006】
本発明は上記実情に鑑みて為されたもので、ホストOSにおけるユーザ権限の設定を考慮した処理をゲストOSで行うことのできる情報処理装置及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0007】
上記従来例の問題点を解決する本発明の一態様は、情報処理装置であって、ストレージ部と、ホストオペレーティングシステムの処理を実行するとともに、仮想マシンとしての処理を実行するホスト側処理手段と、ゲストオペレーティングシステムの処理を実行するとともに、当該ホスト側処理手段が実行する仮想マシン上で、所定の処理を実行するゲスト側処理手段とを、含むコントローラ部と、を有し、前記コントローラ部は、前記ホスト側処理手段としての処理において、ホストオペレーティングシステムのユーザの認証情報と、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの各ユーザのアクセス権情報とを、前記ゲスト側処理手段からアクセス可能な状態で保持し、前記ゲスト側処理手段としての処理において、アプリケーションプログラムの処理として、ユーザからのアクセスを受けて、前記ホストオペレーティングシステムが管理するユーザの認証情報を参照して当該ユーザを認証するコントローラ部であることとしたものである。
【0008】
このように構成したので、ゲストOSが、ホストOSにおけるユーザ権限の設定を考慮した処理を行うことが可能となる。
【0009】
また前記コントローラ部のホスト側処理手段は、さらに、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの前記ユーザのアクセス権情報を、前記ゲスト側処理手段からアクセス可能な状態で保持し、前記コントローラ部のホスト側処理手段は、ホストオペレーティングシステムが管理する前記ストレージ部内のファイルシステムの少なくとも一部を、前記ゲスト側処理手段からアクセス可能に設定し、前記コントローラ部のゲスト側処理手段は、ゲストオペレーティングシステム上で動作するアプリケーションプログラムの処理として、前記ホストオペレーティングシステムによりアクセス可能に設定された前記ストレージ部内のファイルシステムに保持されたファイルのアクセス権を、前記アクセス権情報に基づいて判断することとしてもよい。
【0010】
これにより、ゲストOSが、ホストOSにおけるユーザ権限の設定を考慮した処理を行うことが可能となる。
【0011】
さらに前記コントローラ部のホスト側処理手段は、ホストオペレーティングシステムが管理する前記ストレージ部内のファイルシステムの少なくとも一部を、前記ゲスト側処理手段からNFSマウントによりアクセス可能に設定し、前記コントローラ部のゲスト側処理手段は、前記アクセス可能に設定された、前記ストレージ部内のホストオペレーティングシステムのファイルシステムの少なくとも一部をNFSマウントして、ゲストオペレーティングシステム上で動作するアプリケーションプログラムの利用に供することとしてもよい。
【0012】
これによると、ゲストOSは、ホストOSの管理下にあるファイルシステムの少なくとも一部に対して、ネットワークを介してアクセス可能となる。
【0013】
さらに前記コントローラ部のゲスト側処理手段により実行される、ゲストオペレーティングシステム上で動作するアプリケーションプログラムには、前記ホストオペレーティングシステムによりアクセス可能に設定された前記ストレージ部内のファイルシステムに保持されたファイルを検索する検索アプリケーションを含んでもよい。
【0014】
このようにすれば、ホストOS上で動作しない検索アプリケーションを用いて、ホストOSが管理するファイルシステム上のファイルを、ホストOSにおけるユーザ権限の設定を考慮しつつ検索することが可能となる。
【0015】
また本発明の別の態様は、ストレージ部とコントローラ部とを備えた情報処理装置の制御方法であって、前記コントローラ部が、ホストオペレーティングシステムの処理を実行するとともに、仮想マシンとしての処理を実行するホスト側処理工程と、ゲストオペレーティングシステムの処理を実行するとともに、当該ホスト側処理工程で実行する仮想マシン上で、所定の処理を実行するゲスト側処理工程とを実行し、前記コントローラ部は、前記ホスト側処理工程において、ホストオペレーティングシステムのユーザの認証情報と、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの各ユーザのアクセス権情報とを、前記ゲスト側処理工程でアクセス可能な状態で保持し、前記ゲスト側処理工程において、アプリケーションプログラムの処理として、ユーザからのアクセスを受けて、前記ホストオペレーティングシステムが管理するユーザの認証情報を参照して当該ユーザを認証することとしたものである。
【0016】
さらに本発明の別の態様はプログラムであって、ストレージ部と、コントローラ部とを備えるコンピュータを、前記コントローラ部が、ホストオペレーティングシステムの処理を実行するとともに、仮想マシンとしての処理を実行するホスト側処理手段と、ゲストオペレーティングシステムの処理を実行するとともに、当該ホスト側処理手段が実行する仮想マシン上で、所定の処理を実行するゲスト側処理手段と、として機能させ、前記ホスト側処理手段として機能させる際に、前記ホストオペレーティングシステムのユーザの認証情報と、前記ストレージ部に格納されたファイルごとの、ホストオペレーティングシステムの各ユーザのアクセス権情報とを、前記ゲスト側処理手段からアクセス可能な状態で保持させ、前記ゲスト側処理手段として機能させる際に、アプリケーションプログラムの処理として、ユーザからのアクセスを受けて、前記ホストオペレーティングシステムが管理するユーザの認証情報を参照して当該ユーザを認証させることとしたものである。
【発明の効果】
【0017】
本発明によると、ゲストOSが、ホストOSにおけるユーザ権限の設定を考慮した処理を行うことが可能となる。
【図面の簡単な説明】
【0018】
図1】本発明の実施の形態に係る情報処理装置の構成例を表すブロック図である。
図2】本発明の実施の形態に係る情報処理装置の例を表す機能ブロック図である。
図3】本発明の実施の形態に係る情報処理装置のゲストOS上での処理例を表すフローチャート図である。
図4】本発明の実施の形態に係る情報処理装置のゲストOSの管理の処理例を表すフローチャート図である。
【発明を実施するための形態】
【0019】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理装置1は、図1に例示するように、制御部11と、主記憶部12と、インタフェース部13と、ストレージ部14と、ネットワーク通信部15とを含んで構成される。ここでは制御部11,主記憶部12,インタフェース部(I/F)13,及びネットワーク通信部15が本発明のコントローラ部に相当する。
【0020】
制御部11は、CPU等のプログラム制御デバイスであり、主記憶部12に格納されたプログラムに従って動作する。本実施の形態の一例では、この制御部11は、第1のオペレーティングシステム(以下、ホストOSと呼ぶ)としての動作を行うとともに、この第1のオペレーティングシステム上で、仮想マシンシステム(VM)としての処理を実行している。さらに制御部11は、仮想マシンシステム上で、第2のオペレーティングシステム(以下、ゲストOSと呼ぶ)を動作させている。
【0021】
制御部11は、ホストOSと、ゲストOSとのそれぞれのオペレーティングシステム上で、それぞれ対応するアプリケーションプログラムの処理を実行している。この制御部11の処理の具体的な内容については後に述べる。
【0022】
主記憶部12は、メモリデバイス等であり、制御部11によって実行されるプログラムを格納する。このプログラムは、ストレージ部14に設定されたシステム領域内から読み出されて主記憶部12に格納される。またこの主記憶部12は、制御部11のワークメモリとしても動作する。
【0023】
インタフェース部13は、制御部11と、ストレージ部14との間に介在し、制御部11から入力される指示に従い、ストレージ部14に対してデータの書き込み、あるいはストレージ部14からのデータの読み出しの処理を実行する。
【0024】
ストレージ部14は、ハードディスクドライブ(HDD)やSSD(Solid State Drive)等のディスクデバイスであり、種々のデータを保持する。本実施の形態の一例では、このストレージ部14は、その記憶領域が、プログラム記憶領域14aと、システム領域14bと、ユーザデータ領域14cとに分けられている。
【0025】
このうちプログラム記憶領域14aには、ホストOSのプログラム及び、ホストOS上で実行されるアプリケーションプログラム等が格納される。
【0026】
また、システム領域14bには、ゲストOS用のファイルシステムのイメージファイルや、そのバックアップ、及び、ユーザデータ領域14c内の各ファイルやディレクトリへのユーザごとのアクセス権の情報やユーザの登録認証情報等が格納される。本実施の形態において特徴的なことの一つは、ゲストOS用のファイルシステムのイメージファイルのインストール用イメージ(初期イメージ)のデータをバックアップとして、仮想マシンシステムが利用するファイルシステムのイメージファイルとは別に保持していることである。
【0027】
ユーザデータ領域14cには、少なくとも一つのディレクトリ(以下、便宜的に共有ディレクトリと呼ぶ)が格納され、各共有ディレクトリ以下にユーザデータであるファイルが格納される。
【0028】
ネットワーク通信部15は、複数のネットワークインタフェースLAN1,LAN2…(以下、区別の必要がないときには符号をLANと省略して表記する)を含む。このネットワーク通信部15は、いずれかのネットワークインタフェースLANを介してネットワークに接続され、制御部11から入力される指示に従って、ネットワーク上のコンピュータ装置(自己自身を含む)との間で情報を送受する。
【0029】
本実施の形態の一例では、このネットワーク通信部15は、3つのネットワークインタフェースLAN1,LAN2,LAN3を備えるものとする。ここでLAN1はゲストOSによってIPアドレス等、通信パラメータの設定が行われ、ゲストOSによって制御されるものとする。また、LAN2,LAN3は、ホストOSによってIPアドレス等、通信パラメータの設定が行われ、ホストOSによって制御されるものとする。
【0030】
つまり、ゲストOS上のアプリケーションプログラム等は、ネットワークインタフェースLAN1を介してネットワーク上のコンピュータ装置との間で情報を送受する。本実施の形態の例では、ゲストOSは、その内部に論理的に仮想ネットワークインタフェース(仮想NIC)を設定する。そして仮想マシンシステムは、この仮想ネットワークインタフェースを介して送信するよう指示されたデータを、ネットワークインタフェースLAN1へパススルー(そのまま出力)する。また仮想マシンシステムは、ネットワークインタフェースLAN1に到来したデータを、ゲストOSが設定した仮想ネットワークインタフェースにパススルーする。
【0031】
また、この例では、ホストOS上のアプリケーションプログラム等は、ネットワークインタフェースLAN2またはLAN3を介してネットワーク上のコンピュータ装置との間で情報を送受する。
【0032】
次にここで、制御部11の動作について説明する。本実施の形態の制御部11は、機能的には、図2に例示するように、ホストOSを実行してホストOSとしての動作を行うとともに、ホストOS上でのアプリケーションプログラムに従って動作を行うホスト側処理部20と、ゲストOSを実行してゲストOSとしての動作を行うとともに、ゲストOS上でのアプリケーションプログラムに従って動作を行うゲスト側処理部30とを含む。
【0033】
またホスト側処理部20は、ファイル管理部21と、仮想マシンシステム部22と、ゲストOS管理部23と、を機能的に含む。ゲスト側処理部30は、ファイルシステム共有処理部31と、ファイル検索部32と、応答処理部33と、を機能的に含んで構成される。
【0034】
ファイル管理部21は、ネットワーク上の他の情報処理装置(パーソナルコンピュータ等)から、そのユーザの指示によるアクセスの要求を受け入れる。ファイル管理部21は、当該アクセスの要求元である情報処理装置のユーザを認証する。この認証は、当該ユーザのユーザ名やパスワード等の認証情報を上記情報処理装置から受けて、予めストレージ部14のシステム領域14b内に格納されている登録認証情報に記録されているユーザ名、パスワードと比較するなどの従来知られた方法で行われてよい。
【0035】
ファイル管理部21は、認証したユーザが操作する上記他の情報処理装置から、ストレージ部14のユーザデータ領域14cへのユーザデータの書き込みや、ユーザデータ領域14cに格納されたユーザデータの読み出しの要求を受け入れる。
【0036】
本実施の形態の一例では、ユーザデータ領域14cには共有ディレクトリが生成されている。またシステム領域14bには、共有ディレクトリごとに、共有ディレクトリを特定する情報と、当該共有ディレクトリ内のユーザデータ(ファイル)に関する各ユーザの読み出し可否、及び書き込み可否を表す情報とを関連付けたアクセス権情報が格納されている。またここで共有ディレクトリを特定する情報は、共有ディレクトリのパス名でよい。
【0037】
ファイル管理部21は、認証したユーザが操作する上記他の情報処理装置からユーザデータ(種々のファイル)とその格納先である共有ディレクトリを特定する情報とを受け入れたときには、このアクセス権情報を参照して、上記認証したユーザが上記情報で特定される格納先の共有ディレクトリ(格納先)に書き込み可能となっているか否かを調べる。そして当該ユーザが格納先へ書き込み可能と設定されているときに、ファイル管理部21は、上記受け入れたユーザデータを、格納先の共有ディレクトリに格納する。
【0038】
またファイル管理部21は、認証したユーザが操作する上記他の情報処理装置からユーザデータを特定する情報(共有ディレクトリの指定を含むパス名でよい)を受け入れたときには、このアクセス権情報を参照して、上記認証したユーザが上記情報で特定される共有ディレクトリ(読み出し元)からデータを読み出し可能となっているか否かを調べる。そして当該ユーザが読み出し元から読み出し可能と設定されているときに、ファイル管理部21は、上記受け入れた情報で特定されるユーザデータを、読み出し元の共有ディレクトリから読み出して、上記他の情報処理装置宛に、ネットワークを介して送出する。
【0039】
つまり、本実施の形態の一例では、各ファイルに対するアクセス権は、当該ファイルを内包する共有ディレクトリのアクセス権情報に基づいて定められるものとしている。
【0040】
また、このファイル管理部21は、管理者として設定されたユーザによる上記アクセス権情報の書き換えや、ユーザデータの移動や削除等の処理も行うが、このファイル管理部21は、いわゆるNAS(Network Attached Storage)としての動作を実現するものであり、広く知られたものであるので、ここでの詳細な説明は省略する。
【0041】
仮想マシンシステム部22は、例えばKVM(Kernel-based Virtual Machine)/QEMUなど、ホストOS上で動作する仮想マシンシステムプログラムを用いて実現される。この仮想マシンシステム部22は、仮想的なCPU、仮想的なメモリや仮想的な入出力インタフェース、並びに、仮想的なネットワークインタフェース(仮想NIC)としての機能を提供し、この上でゲストOSを動作させる。
【0042】
本実施の形態の例では、仮想マシンシステム部22は、仮想的なファイルシステム(VirtFSなど)を設定して、情報処理装置1のストレージ部14のうち、システム領域14bと、ユーザデータ領域14cとへの、ゲストOSからのアクセスを実現する。これによりホスト側処理部20は、ホストOSにおけるユーザの認証情報(ユーザ名等)と、ストレージ部14のユーザデータ領域14cに格納されたファイルごとの、ホストOS側で設定した各ユーザのアクセス権の情報とを、ゲスト側処理部30で実行されるゲストOSからアクセス可能な状態とする。
【0043】
また、仮想マシンシステム部22は、システム領域14b内に格納されている仮想マシンシステム用のファイルシステムイメージのファイルを、仮想マシンシステムに論理的に接続された仮想的なディスクデバイス内のファイルシステムとしてマウントし、当該ファイルシステムイメージに記録されているゲストOSのプログラムを起動する。また、このファイルシステムイメージには、ゲストOS上で実行されるアプリケーションプログラム等のデータも記録される。
【0044】
また本実施の形態の例では、仮想マシンシステム部22は、論理的な仮想ネットワークインタフェースを少なくとも一つ提供する。
【0045】
ゲストOS管理部23は、ゲスト側処理部30に対して、所定のタイミングごと(例えば定期的なタイミングごと)に繰り返して状態情報の要求を送出する。またこのゲストOS管理部23は、ゲスト側処理部30から当該送出した状態情報の要求に対する応答を待機する。ゲストOS管理部23は、応答を待機している時間を計時し、この時間が予め定めた時間しきい値を超えたときに、状態情報が得られなかったものとして、後に説明する異常時処理を実行する。
【0046】
またこのゲストOS管理部23は、上記時間しきい値を超える前にゲスト側処理部30から状態情報の要求に対する応答を受け入れると、当該応答の内容が異常を表すものであるか否かを判断する。ここでゲストOS管理部23は、当該応答の内容が異常を表すものでなければ、また次のタイミングで状態情報の要求を送出するまで待機する。一方、ゲストOS管理部23は、上記受け入れた応答の内容が異常を表すものであれば、次の異常時処理を実行する。
【0047】
ゲストOS管理部23は、状態情報の要求に応答して状態情報が得られなかった場合、あるいは、得られた状態情報が異常を表すものである場合に、異常時処理として、次の処理を実行する。
【0048】
すなわちゲストOS管理部23は、ゲスト側処理部30に対して、ゲストOSの再起動を実行するよう指示する。この指示は例えばゲストOSに対するリブートの指示として行うことができる。
【0049】
ゲストOS管理部23は、再起動を実行するよう指示した後も、所定のタイミングごと(例えば定期的なタイミングごと)に繰り返して状態情報の要求を送出する。そして、ゲストOS管理部23は、再起動を実行するよう指示した後、予め定めた時間(再起動待機時間)が経過した後も、状態情報の要求に応答して状態情報が得られなかった場合、あるいは、得られた状態情報が異常を表すものである場合には、ゲストOSの初期化を行う。
【0050】
具体的にゲストOS管理部23は、ゲストOSの初期化を行うときには、仮想マシンシステム部22の動作を停止させる。次にゲストOS管理部23は、システム領域14b内に格納されている仮想マシンシステム用のファイルシステムイメージのファイルを削除して、システム領域14b内に格納されている仮想マシンシステム用のファイルシステムイメージのバックアップ(初期イメージ)のファイルを複写する。この複写して得られたファイルは、新たな仮想マシンシステム用のファイルシステムイメージのファイルとなる。
【0051】
つまり、これによりゲストOS管理部23は、ゲストOSを含む仮想マシンシステムの再インストールを実行する。
【0052】
そして、ゲストOS管理部23は、改めて仮想マシンシステム部22を起動する。この場合仮想マシンシステム部22は、新たに初期イメージとなった仮想マシンシステム用のファイルシステムイメージを用いて再起動することとなる。
【0053】
ゲスト側処理部30のファイルシステム共有処理部31は、ホストOS側上で動作する仮想マシンシステム部22が提供する仮想的なファイルシステム(例えばVirtFS)を介してホストOSの管理下にあるストレージ部14のファイルシステムを、ゲストOSのファイルシステムとしてマウント(アクセス可能な状態と)する。
【0054】
本実施の形態では、このファイルシステム共有処理部31は、ストレージ部14内のシステム領域14b、及びユーザデータ領域14cをゲストOS側にマウントすることとする。
【0055】
なお本実施の形態では、ホストOSにおけるユーザ設定は、ゲストOSにおけるユーザ設定と同一としていないため、ホストOSのユーザのアクセス権は、ゲストOS側では無視することして設定する。この設定下では、ゲストOS側からは、任意のユーザアカウントの権限で動作するコマンドが、ホストOS側のストレージ部14のシステム領域14b、及びユーザデータ領域14c内のすべてのファイルに対してアクセス可能な状態となる。
【0056】
またこのファイルシステム共有処理部31は、後に説明するファイル検索部32(アプリケーションプログラム)から、ファイルの検索を要求したユーザを特定する情報(ユーザ名)と、そのユーザのパスワードの情報とを含む認証情報の入力を受け入れる。
【0057】
ファイルシステム共有処理部31は、ストレージ部14内のシステム領域14bに格納されているホストOSの登録認証情報を参照し、当該登録認証情報に記録されているユーザ名、パスワードと、上記ファイル検索部32から受け入れたユーザ名及びパスワードとを比較して、ファイル検索部32のユーザを認証する。
【0058】
ここで認証に成功したときには、ファイルシステム共有処理部31は、ストレージ部14内のシステム領域14bに格納されている、ホストOSによって管理されているアクセス権の情報を参照して、認証したユーザに関するアクセス権情報を読み出す。
【0059】
ファイルシステム共有処理部31は、当該読み出したアクセス権情報に基づいて、認証したユーザに対して読み出しが許可されている共有ディレクトリを特定する情報をファイル検索部32に出力する。そしてファイルシステム共有処理部31は、当該情報で特定される共有ディレクトリ下のファイルのみを検索対象とするよう、ファイル検索部32に対して指示する。
【0060】
またこのファイルシステム共有処理部31は、ファイル検索部32のユーザの認証に失敗したときには、ファイル検索部32に対して認証が失敗した旨の情報を出力する。あるいは、ファイル検索部32のユーザの認証に失敗したときには、ファイルシステム共有処理部31は、ゲストユーザ(ユーザ名の設定のないユーザ)に対してアクセスが許可されている共有ディレクトリを特定する情報を、ファイル検索部32に対して出力する。
【0061】
ファイル検索部32は、仮想マシンシステム部22が提供している仮想ネットワークインタフェースを介してネットワーク上のユーザから、ストレージ部14のユーザデータ領域14c内のユーザデータの検索の要求を受け入れる。ファイル検索部32は、当該検索の要求を行ったユーザに対してユーザ名とパスワードとの入力を求め、入力されたユーザ名及びパスワードを、ファイルシステム共有処理部31に出力する。
【0062】
ファイル検索部32は、ファイルシステム共有処理部31から検索の対象となるファイルを内包する共有ディレクトリを特定する情報の入力を受けると、検索の要求を行ったユーザに対して検索のキーとなる情報の入力を求める。なお、ファイル検索部32は、ウェブページをユーザに対して提示することで、これらの情報の入力を求めることとすればよい。
【0063】
ユーザが検索のキーとなる情報を入力すると、ファイル検索部32は、当該検索のキーとなる情報を用いて、ファイルシステム共有処理部31から入力される情報で特定される、ストレージ部14のユーザデータ領域14c内にある共有ディレクトリ下のファイルを検索する。そしてファイル検索部32は、当該検索の結果を、検索の要求を行ったユーザに対して提示する。
【0064】
この検索の処理は、例えばアパッチソフトウエア財団により提供されているアパッチ・ソーラー(Apache Solr(商標))等の検索システムを用いて行われる処理と同様のものであってもよいので、ここでの詳しい説明は省略する。
【0065】
このファイル検索部32等のアプリケーションプログラムは、その処理のために用いる、ファイルのインデックス情報や動作の設定情報などの種々の情報(以下、プリファレンス情報と呼ぶ)を生成するが、本実施の形態では、このファイル検索部32等のアプリケーションプログラムは、このプリファレンス情報を、ホストOS側上で動作する仮想マシンシステム部22が提供する仮想的なファイルシステムを介してホストOSストレージ部14のシステム領域14bに直接的に書き込むこととする。これにより、上述したゲストOSの初期化が行われた場合にも、ファイル検索部32等のアプリケーションプログラム等の動作に必要なプリファレンス情報が、初期化前の状態で維持されることとなる。
【0066】
なお、ここでのプリファレンス情報には上述のような情報のほか、アプリケーションプログラムが生成するデータ等種々のものを含んでよい。例えば、アプリケーションプログラムが生成する文書、画像データ、音声データなどのメディアデータ、計算結果や機械的な学習データなどの演算により得られる種々のデータ、その他のデータを含んでもよい。
【0067】
また本実施の形態では、このファイル検索部32は、ファイルシステム共有処理部31から認証が失敗した旨の情報が入力されたときには、検索の要求を行ったユーザに対して、入力した認証情報が誤っている旨の情報を提示し、再度、ユーザ名とパスワードとの入力を求める。
【0068】
応答処理部33は、ホスト側処理部20のゲストOS管理部23から状態情報の要求を受け入れて、当該要求に応答して状態情報を送出するものである。本実施の形態の一例では、この応答処理部33は、HTTP(Hyper-Text Transfer Protocol)により状態情報の要求を受け入れ、また、当該要求に応答して状態情報を送出する。この場合、応答処理部33は、例えば仮想ネットワークインタフェースと、ネットワークインタフェースLAN1と、ネットワークと、ネットワークインタフェースLAN2(またはLAN3)とを介してホスト側処理部20のゲストOS管理部23との間で要求や応答の送受を行う。
【0069】
この応答処理部33は、ホスト側処理部20のゲストOS管理部23から状態情報の要求を受け入れると、ファイル検索部32等予め定められたアプリケーションプログラムの動作の状況(プロセスの状況)を調べる。
【0070】
応答処理部33は、当該ファイル検索部32等予め定められたアプリケーションプログラムの動作の状況が、異常を示すものである場合(例えばプロセスが動作していない、メモリ消費量が予め定めたしきい値を超えている、プロセスの状態が終了後の所定処理を待機した状態のままであるなど)に、異常である旨の状態情報を、ホスト側処理部20のゲストOS管理部23に対して送出する。
【0071】
また応答処理部33は、ファイル検索部32等予め定められたアプリケーションプログラムの動作の状況が、異常を示すものでなければ、正常である旨の状態情報を、ホスト側処理部20のゲストOS管理部23に対して送出する。
【0072】
なお、そもそもゲストOSが正常に動作していない場合や、応答処理部33が起動していない(異常終了している)などの場合には、この応答処理部33は上記要求に対する応答を送出できないこととなる。
【0073】
[動作]
本実施の形態の情報処理装置1は、基本的に以上の構成を備えており、次のように動作する。ここでの例では、情報処理装置1は、ストレージ部14内にユーザのユーザデータを格納している。またこの情報処理装置1は、ホストOSを動作させるとともに、このホストOS上で、さらに仮想マシンシステムを動作させ、この仮想マシンシステム内でゲストOSを動作させる。
【0074】
情報処理装置1は、ホストOS上で動作するプログラムによりNASとして動作し、ネットワークを介して、ユーザが利用するパーソナルコンピュータPCから、ユーザデータの書き込み(格納)指示や、ストレージ部14内に格納したユーザデータの読み出し指示を受け入れる。
【0075】
ここで情報処理装置1のネットワークインタフェースLAN1は、仮想マシンシステム上で動作するゲストOSがネットワーク上のPC等と通信をするためのインタフェースとして設定される。また、ネットワークインタフェースLAN2,3は、ホストOSがネットワーク上のPC等と通信をするためのインタフェースとして設定される。
【0076】
また以下の例では、ストレージ部14は、その記憶領域が、プログラム記憶領域14aと、システム領域14bと、ユーザデータ領域14cとに分けられているものとする。またそのシステム領域14bには、ユーザの認証をするための登録認証情報と、ユーザごとのユーザデータ領域14c内の共有ディレクトリへのアクセス権を記録したアクセス権情報とが格納されているものとする。
【0077】
さらに本実施の形態では、このシステム領域14bには、仮想マシンシステム用のファイルシステムイメージのファイルが格納される。このファイルに記録されている仮想的なファイルシステムには、ゲストOSやゲストOS上で動作するアプリケーションプログラム、及びそれらが利用する種々のデータが格納されている。
【0078】
またシステム領域14bには、仮想マシンシステム用のファイルシステムイメージのバックアップ(初期イメージ)が格納されているものとする。この初期イメージは、ゲストOSや、その上で動作するアプリケーション等をインストールした直後の状態のイメージに相当するものであり、予め動作が保証された状態にあるものとする。
【0079】
情報処理装置1は、ネットワークインタフェースLAN2またはLAN3を介して、ユーザが利用するパーソナルコンピュータPCからユーザデータに係る書き込みあるいは読み出しの指示を受け入れる。情報処理装置1は、当該アクセスの要求元であるPCのユーザを、ストレージ部14のシステム領域14bに格納された登録認証情報を用いて認証する。
【0080】
情報処理装置1は、ユーザの認証に成功すると、当該ユーザから受け入れた指示を参照する。ここでユーザから受け入れた指示が例えば格納先の共有ディレクトリを特定した、ユーザデータの格納指示であった場合、当該特定された共有ディレクトリに対して、当該ユーザが書き込みの権限を有しているか否かを、当該ユーザに対して予め定められているアクセス権情報に基づいて判断する。そして当該ユーザが上記特定された共有ディレクトリへ書き込み可能と設定されているときに、情報処理装置1は、上記受け入れたユーザデータを、格納先として特定された共有ディレクトリに格納する。
【0081】
また情報処理装置1は、認証に成功したユーザから受け入れた指示がユーザデータを特定する情報(共有ディレクトリの指定を含むパス名でよい)と、当該情報で特定されるユーザデータを読み出す指示であったときには、当該ユーザに対して予め定められているアクセス権情報を参照して、上記認証したユーザが上記情報で特定される共有ディレクトリ(読み出し元)からデータを読み出し可能となっているか否かを調べる。そして当該ユーザが読み出し元から読み出し可能と設定されているときに、情報処理装置1は、上記受け入れた情報で特定されるユーザデータを、読み出し元の共有ディレクトリから読み出して、ユーザの使用するPC宛に、ネットワークを介して送出する。
【0082】
一方、情報処理装置1は、ゲストOS側の処理として、例えばファイル検索のアプリケーションプログラムを動作させているものとする。このような例は、ホストOSに対応するがゲストOS上では動作しないNAS機能のためのアプリケーションプログラムと、ゲストOS上では動作するがホストOS上では動作しないファイル検索アプリケーションとを一つの情報処理装置1上で動作させる場合が相当する。
【0083】
ゲストOSは、ホストOS上で動作する仮想マシンシステム上で動作し、ホストOSにより管理されているストレージ部14内のシステム領域14b、及びユーザデータ領域14cをゲストOS側にマウントする。既に述べたように、このときホストOSにおけるユーザ設定は、ゲストOSにおけるユーザ設定と同一としていないため、ホストOSのユーザのアクセス権は、ゲストOS側では無視することして設定する。従ってゲストOS上の任意のユーザアカウントの権限で動作するコマンドからは、ホストOS側のストレージ部14のシステム領域14b、及びユーザデータ領域14c内のすべてのファイルに対してアクセス可能な状態となる。
【0084】
ファイル検索など、ホストOSの管理下にあるユーザデータ領域14c等に格納されたファイルに対し、ゲストOS上のアプリケーションプログラムからアクセスする場合、情報処理装置1は、図3に例示するように動作する。
【0085】
すなわち情報処理装置1は、ゲストOSがネットワーク上のPC等との通信に用いているネットワークインタフェースLAN1を介して、ユーザのPCから、例えばストレージ部14のユーザデータ領域14c内のユーザデータの検索の要求を受け入れる(S1)。
【0086】
情報処理装置1は、当該検索の要求を行ったユーザに対してユーザ名とパスワードとの入力を求め(S2)、ユーザ名及びパスワード等の認証情報が入力されると、当該認証情報と、ストレージ部14内のシステム領域14bに格納されているホストOSの登録認証情報とを比較して、ユーザを認証する(S3)。以下では、ここで認証に成功したものとする。
【0087】
情報処理装置1は、ストレージ部14内のシステム領域14bに格納されている、ホストOSによって管理されているアクセス権の情報を参照して、認証したユーザに関するアクセス権情報を読み出す(S4)。
【0088】
そして情報処理装置1は、当該読み出したアクセス権情報に基づいて、認証したユーザに対して読み出しが許可されている、ユーザデータ領域14c内の共有ディレクトリを特定する(S5)。そして情報処理装置1は、ステップS5で特定した共有ディレクトリ内のファイルを検索の対象として設定する(S6)。
【0089】
また情報処理装置1は、検索の要求を行ったユーザに対して検索のキーとなる情報の入力を求め(S7)、ユーザが検索のキーとなる情報を入力すると(S8)、当該検索のキーとなる情報を用いて、ステップS6で検索の対象としたファイルのうちから、入力された検索のキーに合致するファイルを検索する(検索処理:S9)。そして情報処理装置1は、ステップS9における検索処理の結果を、検索の要求を行ったユーザに対して送出して提示する(S10)。
【0090】
本実施の形態のこの例によると、ゲストOS側のアプリケーションプログラムが、ホストOS側のユーザの認証情報、及び、ファイルやディレクトリに対してホストOSが利用するアクセス権の設定情報を参照して、当該認証情報により認証されたユーザに対し、当該参照した設定情報で定められるアクセス権の範囲で処理を実行するので、ホストOSのユーザ権限の設定とゲストOSのユーザ権限の設定とが異なっていても、ゲストOS上で動作するアプリケーションプログラムが、ホストOSのユーザ権限を考慮してファイルシステム上のファイルにアクセスできるようになる。
【0091】
また本実施の形態の情報処理装置1は、ホストOS上のアプリケーションプログラムの動作として、ゲストOSの動作状況を監視し、ゲストOS上のアプリケーションプログラムによって提供されるサービスを維持する。
【0092】
この目的のため、ゲストOS上では、ホストOS側から状態情報の要求を受け入れて、当該要求に応答して状態情報を送出する処理を実行する。本実施の形態の一例では、この状態情報の要求は、ホストOS側から、ネットワークを介してゲストOS側へ送出され、ゲストOS側では、当該要求への応答を、ネットワークを介してホストOS側へ送出する。またここでは、この要求や応答の送受を、HTTPなど広く知られたプロトコルを用いて行う。
【0093】
情報処理装置1は、ゲストOS側の処理として、ホストOS側から状態情報の要求を受信するごとに、ファイル検索のアプリケーションプログラム等、予め定められたアプリケーションプログラムのプロセスの状況を調べる。そして情報処理装置1は、当該プロセスの状況が、異常を示すものである場合には、異常である旨の状態情報を、また、当該プロセスの状況が、異常を示すものでなければ、正常である旨の状態情報を、ホストOS側に送出する。
【0094】
既に述べたように、ゲストOSが正常に動作していない場合や、上記応答のためのプロセスが正常に動作していない場合には、上記要求に対する応答は送出されない。
【0095】
この例では、情報処理装置1は、ホストOS上でゲストOSを管理するためのアプリケーションプログラム等を実行しており、図4に例示する処理を行う。以下の処理はホストOS上での処理として行われる。
【0096】
情報処理装置1は、ゲストOSがネットワークとの通信に用いているネットワークインタフェースLAN1宛に、所定のタイミングごと(例えば定期的なタイミングごと)に繰り返して状態情報の要求を送出する(S11)。
【0097】
そして情報処理装置1は、当該要求に対する応答を待機し、予め定めた時間しきい値を超えるまでに(つまりタイムアウト前に)、状態情報が得られたか否かを判断する(S12)。
【0098】
ここでタイムアウト前にゲストOS側から、ネットワークを介して状態情報の要求に対する応答を受け入れると(S12:Yes)、情報処理装置1は、当該応答の内容が異常を表すものであるか否かを判断する(S13)。
【0099】
情報処理装置1は、ステップS13において、応答の内容が異常を表すものであれば(S13:Yes)、ステップS14に移行する。またこの情報処理装置1は、ステップS12においてタイムアウト前にゲストOS側から、ネットワークを介して状態情報の要求に対する応答がない場合(S12:No)も、ステップS14に移行して処理を続ける。
【0100】
情報処理装置1は、ステップS14の処理として、ゲストOSに対して再起動を実行するよう指示する(S14)。そして情報処理装置1は、予め定められた、再起動にかかる時間だけ待機し、状態情報の要求を送出する(S15)。
【0101】
情報処理装置1は、当該要求に対する応答を待機し、予め定めた時間しきい値を超えるまでに(つまりタイムアウト前に)、状態情報が得られたか否かを判断する(S16)。
【0102】
ここでタイムアウト前にゲストOS側から、ネットワークを介して状態情報の要求に対する応答を受け入れると(S16:Yes)、情報処理装置1は、当該応答の内容が異常を表すものであるか否かを判断する(S17)。
【0103】
情報処理装置1は、ステップS17において、応答の内容が異常を表すものであれば(S17:Yes)、ステップS18に移行する。またこの情報処理装置1は、ステップS16においてタイムアウト前にゲストOS側から、ネットワークを介して状態情報の要求に対する応答がない場合(S16:No)も、ステップS18に移行して処理を続ける。
【0104】
情報処理装置1は、ステップS18の処理として、ゲストOSの初期化を行う(S18)。このゲストOSの初期化は次のように行われる。具体的に情報処理装置1は、ホストOS上で動作する仮想マシンシステムの動作を停止させ、システム領域14b内に格納されている仮想マシンシステム用のファイルシステムイメージのファイルを削除して、システム領域14b内に格納されている仮想マシンシステム用のファイルシステムイメージのバックアップ(初期イメージ)のファイルを複写して、ゲストOSを含む仮想マシンシステムの再インストールを実行する。そして情報処理装置1は、改めて仮想マシンシステムを、ホストOS上で起動する。その後、情報処理装置1は、ステップS11に戻って処理を続ける。
【0105】
一方、情報処理装置1は、ステップS13またはステップS17において、応答の内容が異常を示すものでなければ(S13,S17:No)、ステップS11に戻って処理を続ける。
【0106】
これにより本実施の形態では、ホストOSからゲストOS上のプロセスの異常や、ゲストOS自体の異常を検出でき、当該異常に対応する処理を実行してゲストOS上で提供されるサービスの可用性を向上する。
【0107】
[ローカルブリッジの設定]
また本実施の形態のここまでの説明では、情報処理装置1上で実行されるホストOS及びゲストOS間は、仮想的なファイルシステムでストレージ部14の記憶領域の少なくとも一部を共有するほか、ネットワークインタフェースLAN1,2,3を介して通信を行って、以上の処理を実行していた。しかしながら本実施の形態はこれに限られない。
【0108】
例えば、ホストOS上で動作する仮想マシンシステムは、仮想的なネットワークブリッジを設定してもよい。この例では、ホストOSとゲストOSとはそれぞれ仮想的なネットワークインタフェースを設定して、この仮想的なネットワークブリッジに接続する。これにより、ホストOSとゲストOSとは、この仮想的なネットワークブリッジを介して、HTTP等の種々のプロトコルを用いたネットワーク通信を行うことが可能となる。
【0109】
この例では従って、ホストOS上のゲストOS管理部23と、ゲストOS上の応答処理部33とは、この仮想的なネットワークブリッジを介して要求と応答とを送受してもよい。
【0110】
なお、この場合、ホストOS及びゲストOSは、物理的なネットワークインタフェースLAN1,2,3に対して割り当てたIPアドレスが(DHCPサーバ等により)設定された後、仮想的なネットワークブリッジに接続するための仮想的なネットワークインタフェースのIPアドレスを設定する。このとき、ホストOS及びゲストOSは、ネットワークインタフェースLAN1,2,3に対して割り当てたIPアドレスのネットワークアドレスと、仮想的なネットワークインタフェースのIPアドレスのネットワークアドレスとを異ならせる。これにより、ネットワーク上に同じIPアドレスの装置が複数出現することによるトラブルを防止する。
【0111】
[NFSの利用]
またハードウェア上の理由など、何らかの原因により、仮想的なファイルシステムを介しての検索処理等の動作が実用的な速度に達しない場合には、NFSを利用してもよい。
【0112】
この例では、ホスト側処理部20が実行するホストOSが、ホストOS自身の管理するストレージ部14内のファイルシステムの少なくとも一部を、ゲスト側処理部30の管理下で実行されるアプリケーションプログラム等からNFSマウントによりアクセス可能に設定する。
【0113】
そしてゲスト側処理部30が実行するゲストOSが、上記仮想的なネットワークブリッジを介して、あるいはネットワークインタフェースLAN1及びLAN2またはLAN3を介してネットワークファイルシステム(NFS)により、ストレージ部14のユーザデータ領域14cを、ゲストOS側にマウントする。
【0114】
この例においても、ゲストOS側では、ファイルシステム共有処理部31の動作により、ファイル検索部32にアクセスしたユーザを、ホストOS側の登録認証情報を利用して認証する。またファイルシステム共有処理部31は、NFSマウントしたストレージ部14のユーザデータ領域14c内の共有ディレクトリのうち、認証したユーザに対して読み出し可能としてアクセス権が設定されている(ホストOS側でアクセス権が設定されている)共有ディレクトリ内のファイルのみを検索の対象とするよう、ファイル検索部32に指示する。
【0115】
また本実施の形態のこの例では、ストレージ部14のシステム領域14bに、NFSマウントに用いるための設定情報(NFSルートの情報等)を記録してゲストOSから参照可能としておく。またこのストレージ部14のシステム領域14bには、ここまでに説明した情報のほか、ゲストOSから参照する必要がある情報、例えば、ネットワーク設定(参加ドメイン名など)を記録しておくこととする。
【符号の説明】
【0116】
1 情報処理装置、11 制御部、12 主記憶部、13 インタフェース部、14 ストレージ部、15 ネットワーク通信部、20 ホスト側処理部、21 ファイル管理部、22 仮想マシンシステム部、23 ゲストOS管理部、30 ゲスト側処理部、31 ファイルシステム共有処理部、32 ファイル検索部、33 応答処理部。

図1
図2
図3
図4