(57)【要約】【課題】データセンタなどでファイルサーバを多数の企業に貸し出すシステムでは、セキュリティ上の問題がありファイルサーバで管理者権限を必要とする操作をユーザが行うことができなかった。【解決手段】ＯＳが、アクセス可能なデバイスの範囲を指定できるプロセス情報が指すアプリケーションプログラムの実行環境情報を提供し、その環境情報内で顧客のサーバシステムを稼働させる。【選択図】  図２
2004227127.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラムを実行するためのプログラムであって、前記アプリケーションプログラムで動作する物理デバイスをそれぞれに設定されたアクセスの可否に対応する動作環境で運用するために、前記アプリケーションプログラムの環境情報を生成することを特徴とするプログラム。
【請求項２】
複数のアプリケーションプログラムを実行するためのプログラムであって、前記アプリケーションプログラムが一つ以上の物理デバイスを一つ以上の仮想デバイスとして扱うことを可能にするとともに、該仮想デバイスをそれぞれに設定されたアクセスの可否に対応する動作環境で運用するために、前記アプリケーションプログラムの環境情報を生成することを特徴とするプログラム。
【請求項３】
前記物理デバイスがテープ装置である請求項１記載のプログラム。
【請求項４】
前記一つ以上の物理デバイスが複数の独立した物理ディスクであり、前記一つ以上の仮想デバイスが前記複数の独立した物理ディスクを論理的に分割した仮想デバイスである請求項２記載のプログラム。
【請求項５】
複数のアプリケーションプログラムを実行するためのプログラムであって、前記アプリケーションプログラムで動作する物理デバイスをそれぞれに設定されたアクセスの可否に対応する動作環境で運用するために、前記アプリケーションプログラムの環境情報を生成するとともに、前記複数のアプリケーションプログラムの一つの実行に対応して他の複数のアプリケーションプログラムの環境情報を変更することを特徴とするプログラム。
【請求項６】
複数のアプリケーションプログラムを実行するためのプログラムであって、前記アプリケーションプログラムが一つ以上の物理デバイスを一つ以上の仮想デバイスとして扱うために、前記アプリケーションプログラムで動作する仮想デバイスをそれぞれに設定されたアクセスの可否に対応する動作環境で運用するために、前記アプリケーションプログラムの環境情報を生成するとともに、前記複数のアプリケーションプログラムの一つの実行に対応して他の複数のアプリケーションプログラムの環境情報を変更することを特徴とするプログラム。
【請求項７】
複数のアプリケーションプログラムを実行するためのプログラムであって、前記アプリケーションプログラムで動作する物理デバイスまたは論理デバイスをそれぞれに設定されたアクセスの可否に対応する動作環境で運用するために、前記アプリケーションプログラムの環境情報を生成するとともに、前記物理デバイスまたは論理デバイスに格納された複数のファイルシステムにアクセスして前記ファイルシステムをルートディレクトリにマウントした環境情報を生成することを特徴とするプログラム。
【請求項８】
複数の顧客に独立にファイルサービスを供給するデータセンタに備えられる情報処理装置のための複数のアプリケーションプログラムを実行するためのプログラムであって、前記複数のアプリケーションプログラムの一つはデータセンタの管理のためのプログラムであり、他のアプリケーションプログラムは前記顧客のサービスのためのプログラムであり、前記アプリケーションプログラムで動作する物理デバイスまたは論理デバイスをそれぞれに設定されたアクセスの可否に対応する動作環境で運用するために、前記アプリケーションプログラムの環境情報を生成することを特徴とするプログラム。
【請求項９】
前記データセンタの管理のためのプログラムの実行に対応して、前記顧客のサービスのためのプログラムに対応する環境情報の変更がなされる請求項８記載のプログラム。
【請求項１０】
複数の顧客に独立にファイルサービスを供給するデータセンタに備えられる情報処理装置であって、該情報処理装置は前記データセンタの管理のためのアプリケーションプログラムおよび前記顧客のサービスのためのアプリケーションプログラムとこれら複数のアプリケーションプログラムを実行するためのプログラムとを備え、該複数のアプリケーションプログラムを実行するためのプログラムは前記アプリケーションプログラムで動作する物理デバイスをそれぞれに設定されたアクセスの可否に対応する動作環境で運用するために、前記アプリケーションプログラムの環境情報を生成することを特徴とする情報処理装置。
【請求項１１】
前記物理デバイスに代えて、一つ以上の物理デバイスを一つ以上の仮想デバイスとして扱う請求項１０記載の情報処理装置。
【請求項１２】
前記データセンタは物理デバイスの一つにバックアップのためのテープ装置を有し、前記データセンタの管理のためのアプリケーションプログラムの実行により、顧客との契約に基づいた前記テープ装置の管理権限を顧客に与えるために、前記環境情報を変更することができる請求項１０または１１記載の情報処理装置。
【請求項１３】
複数の顧客に独立にファイルサービスを提供するデータセンタに備えられる情報処理装置であって、前記情報処理装置は前記データセンタの管理のためのアプリケーションプログラムおよび前記顧客のサービスのためのアプリケーションプログラムと、これら複数のアプリケーションプログラムを実行するためのプログラムおよびこれら複数のアプリケーションプログラムに対応する複数の環境情報とを備え、該環境情報はデータセンタに備えられる一つ以上の物理デバイスを一つ以上の仮想デバイスとして扱うデータと、前記顧客のサービスのためのアプリケーションプログラムが前記仮想デバイスにアクセスすることの可否を示すデータとを備え、さらに、前記物理デバイスの一つはバックアップのためのテープ装置であって、前記データセンタの管理のためのアプリケーションプログラムは前記顧客のサービスのためのアプリケーションプログラムの環境情報の変更の一つとして前記顧客の操作によるテープ装置へのバックアップを許容するように前記環境情報を変更することを特徴とする情報処理装置。
【請求項１４】
前記顧客のサービスのためのアプリケーションプログラムはデータセンタの管理のためのアプリケーションプログラムの動作に対応して生成されるプロセス情報に応じて起動され、自己のファイルサーバプログラムの動作のためのプロセス情報を生成するとともにファイルサービスあるいはバックアップ作成の要求に応じた処理を行う請求項１３記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はネットワーク接続型ストレージ、サーバシステムおよびオペレーティングシステムに関する。
【０００２】
【従来の技術】
企業がインターネットを利用したサービスを提供する際、インターネットの接続設備や、コンピュータシステムを構築するコストを削減するため、データセンタが提供するサービスを利用することがある。
【０００３】
データセンタ業者は、インターネットの接続設備を持ち、インターネットを利用したサービスを提供したい企業（顧客）のサーバ設置スペースや、サーバ装置の貸し出しを行っている。通常、顧客に貸し出すストレージは、顧客間のセキュリティを保持するため、個別の装置を割り当てることが多い。
【０００４】
しかし、顧客毎に装置を割り当てる方法では、顧客の需要の変化に応じて柔軟に貸し出すストレージの容量を変更することが困難であるとともに、装置が故障した場合に備え、全ての装置を監視する必要があり、装置数が増えることによる管理コストの増大が問題となる。
【０００５】
大容量ストレージ装置を論理的に分割し、論理ボリュームとして、顧客のサーバ装置と大容量ストレージ装置をＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）で接続することにより、ストレージ管理を集中化することができ、管理コストを削減することが可能である。しかし、現在、ＳＡＮで主流となっているファイバーチャネル（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ）インタフェースは高価であること、また、顧客は設置スペースに応じた金額で契約しているため、顧客のサーバ装置にインタフェースを追加するスペースが余っていない等の問題がある。
【０００６】
ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）装置は、ＮＦＳサービスや、ＣＩＦＳサービスを利用し、ＮＡＳ装置に内蔵、もしくは、ＳＣＳＩや、ファイバーチャネル等ストレージインタフェースを介して接続されたストレージ上に作成したファイルシステムによって、ネットワークを介して他の情報処理装置にファイルを格納することや共有利用することを可能にする。ＮＡＳ装置は、指定したディレクトリ以下のファイルシステムを公開することができ、複数のディレクトリを公開するよう設定することができる。
【０００７】
データセンタでは、インターネット接続を目的としているため、ほとんど全ての顧客サーバはネットワークインタフェースを備えている。ＮＡＳ装置は、顧客サーバにハードウェアの追加なしで、複数の顧客に対してストレージ・サービスを提供することができる。しかし、ＮＡＳ装置は、汎用ＯＳ（オペレーティングシステム）を利用するケースが多く、悪意のあるユーザによるハッキングや、ウイルスなどによるファイル改竄、ファイル消去等により被害を受けることがある。複数の顧客でＮＡＳ装置を共有する場合、これらの被害は同一ＮＡＳ装置を共有する全ての顧客に及ぶ可能性がある。
【０００８】
ネットワークアプライアンス（Ｎｅｔｗｏｒｋ  Ａｐｐｌｉａｎｃｅ）社のＮＡＳ装置にはＭｕｌｔｉＳｔｏｒｅ（非特許文献１）がある。これによれば、一つの装置の上に複数のｖｆｉｌｅｒと呼ぶ一つ以上のＩＰアドレスとｖｏｌｕｍｅを持つＣＩＦＳサービス、ＮＦＳサービス等の仮想サーバを提供することができる。顧客毎にｖｆｉｌｅｒを割り当てることにより、顧客毎のユーザ管理や、個別の設定が可能になる。
【０００９】
ｖｆｉｌｅｒは、顧客にｒｓｈプロトコルを利用したコマンドの実行を可能にしており、ＮＦＳサービスの設定変更などが可能であるが、ＮＡＳ装置に接続したバックアップ装置を使用することはできない。ＮＡＳ装置に接続したバックアップ装置を使用するためには、装置全体を管理する装置によることが必要である。
【００１０】
また、仮想計算機を利用することで、顧客毎に独立したＯＳを割り当て、サービスを提供するシステムが特許文献１に開示されている。特許文献１記載の技術では、一つの計算機上で複数のＯＳが動作し、ＯＳ毎に独立の資源、たとえば主記憶、ネットワークアダプタ等を割り当てられる。ＯＳ間で資源を共有しないため、顧客毎のユーザ管理や、個別の設定等が容易に可能となる。さらに、バックアップ装置の資源割り当てを行うことでバックアップなどにも利用できる。
【００１１】
【特許文献１】
特開２００２‐０２４１９２号公報
【非特許文献１】
“データオンタップ６．２マルチストアアドレスミニストレーションガイド（Ｄａｔａ  ＯＮＴＡＰ  ６．２  ＭｕｌｔｉＳｔｏｒｅ  Ａｄｍｉｎｉｓｔｒａｔｉｏｎ  Ｇｕｉｄｅ）筈ネットワークアプライアンス社（Ｎｅｔｗｏｒｋ  Ａｐｐｌｉａｎｃｅ，  Ｉｎｃ．）、［平成１４年１１月２８日検索］、インターネット、＜ＵＲＬ：ｈｔｔｐｓ：／／ｎｏｗ．ｎｅｔａｐｐ．ｃｏｍ／ｎｏｗｓｍｆｏｒｍｓ／ｌｏｇｉｎ．ｆｃｃ＞にアクセスしてユーザ名とパスワードを入力した後＜ＵＲＬ：ｈｔｔｐ：／／ｎｏｗ．ｎｅｔａｐｐ．ｃｏｍ／ＮＯＷ／ｋｎｏｗｌｅｄｇｅ／ｄｏｃｓ／ｏｎｔａｐ／ｒｅｌ６２／ｐｄｆｓ／ｖｆｉｌｅｒ．ｐｄｆ＞にアクセスすることで入手可能。
【００１２】
【発明が解決しようとする課題】
このように、データセンタ業者がインターネットを利用したサービスを提供したい企業（顧客）に対して、セキュリティを確保し、且つ、需要の変化に応じて貸し出すストレージの容量を変更することを可能にするには、従来システムの選択のみでは一長一短がある。例えば、複数の顧客で汎用ＯＳを用いたＮＡＳ装置を共有する方法では、１顧客のセキュリティホールによって、ＮＡＳ装置がハッキングされた場合、ＮＡＳ装置上では顧客毎のリソースが隔離されていないため、ＮＡＳ装置を共有する全顧客に対して被害が及ぶ可能性がある。ＮＡＳ装置でＮＡＳ装置に接続したバックアップ装置を利用し、バックアップを取る場合、ＮＡＳ装置のファイル共有サービスを利用するデータベースなどのアプリケーションをバックアップモードにする等、ディスク上のデータが整合性を保てる状態にする顧客サーバの操作と、バックアップ装置にデータを転送するバックアップ動作を連動させる必要があり、運用が煩雑である。
【００１３】
ＭｕｌｔｉＳｔｏｒｅの方法では、テープ装置などの管理権限が顧客側にないため、顧客側の操作だけでバックアップを採取できない。ｖｆｉｌｅｒでは、顧客に与える管理権限の範囲を柔軟に変更することができない。顧客に管理権限を与えると、たとえば、テープ装置からデータをリストアする場合、顧客側の操作ミスによって他の顧客のディスク領域へデータを展開し、他の顧客に損害を与えてしまうことが考えられる。また、他の顧客のデータ覗き見等、顧客間のセキュリティ問題が発生してしまう。
【００１４】
また、仮想計算機を利用する方法では、各仮想計算機にあらゆる資源を割り当てるが、仮想計算機の稼働状況によって資源割り当ての不均衡が生じ得る。たとえば、ディスク上のデータを主記憶上にキャッシュし、ファイルアクセスを高速化するためのキャッシュ領域は、仮想計算機毎に独立であり、負荷が低い仮想計算機でキャッシュ領域が余っていても、負荷が高い仮想計算機のキャッシュ領域に充当することはできない。これは、主記憶の割り当て変更等は容易ではなく、たとえば仮想計算機の再起動等が必要となるためである。
【００１５】
【課題を解決するための手段】
本発明は、ＩＰアドレスやｖｏｌｕｍｅだけでなく、物理・論理デバイスのアクセス権を個別に許可、あるいは、制限でき、より運用管理の自由度を高めた仮想的なサーバとして働くデータセンタが実現できる。仮想的なサーバからアクセスできる物理デバイスあるいは論理デバイスを制限することで、顧客からの不正なアクセスによる影響を排除し、運用管理に必要な管理権限を顧客に柔軟に与えることを可能にする。
【００１６】
具体的には、ＯＳに顧客側に与える管理権をきめ細かく設定する機能と、顧客の操作が顧客側に与えた管理権の範囲を越えないよう制限する機能を組み込む。具体的には、ＯＳが管理しているプロセス情報に、該プロセス情報が指すアプリケーションプログラムの実行のための環境情報を追加するとともに、この環境情報を新たに生成されるプロセス情報にも継承させる。これにより、顧客が実行するアプリケーションプログラムのすべてのプロセス情報に、環境情報が付与される。環境情報にはアクセス可能な物理デバイスあるいは論理デバイス、アクセス可能なネットワークＩ／Ｆ（インタフェース）、ネットワークのルーティングテーブル、プロトコルテーブル、ファイルシステムのマウントテーブル、および、当該環境情報に属するプロセス情報リストを含める。
【００１７】
データセンタの管理者には、指定した環境情報を持つプロセス情報を生成する機能、および、環境情報を変更する機能を提供する。
【００１８】
さらに、顧客側の操作だけでテープにバックアップが採取できない課題を解決するため、前述のＯＳ上で、環境情報の一つとして、あらかじめ、テープ装置の管理権限を顧客に与えておくこと、および、データセンタの管理者が環境情報を変更する機能を用い、必要な時にテープ装置の管理権限を顧客に与えることである。
【００１９】
本発明では、共有資源を一括管理する単一のＯＳ上で顧客毎の仮想的なサーバ機能を実現するから、ＯＳが一括管理する資源は、プロセス情報が指すどのアプリケーションプログラムからの要求に対しても同等に利用されるため、負荷に応じて資源が有効に活用でき、仮想計算機における負荷の不均衡の問題は生じない。
【００２０】
【発明の実施の形態】
（実施の形態１）
以下、本発明の実施の形態１を、図１から図１３を用い詳細に説明する。まず、本発明に関わる構成要素の概要を述べ、次に、処理手順とデータ構造の詳細を述べる。
【００２１】
図１は、本発明を適用して効果のあるシステムの一例を示す図である。１００はデータセンタである。データセンタ１００には情報処理装置１０１が設けられ、データセンタ管理者用ＰＣ１４７、顧客Ａ社のＷｅｂサーバ１４８および顧客Ｂ社のＷｅｂサーバ１４９が、それぞれ、管理ＬＡＮ１４１、Ａ社ＬＡＮ１４２およびＢ社ＬＡＮ１４３を介して接続される。また、Ａ社ＬＡＮ１４２およびＢ社ＬＡＮ１４３はファイアウオールＡ１４４およびファイアウオールＢ１４５を介してインターネット１４６に接続される。情報処理装置１０１にはバス１１３が設けられ、これにＣＰＵ１１１、メモリ１１２、管理ネットワークＩ／Ｆ１２１、Ａ社ネットワークＩ／Ｆ１２２、Ｂ社ネットワークＩ／Ｆ１２３およびストレージＩ／Ｆ１３１が接続されている。ここで、ＣＰＵ１１１は、プロセス情報が指すアプリケーションプログラムを実行することは勿論であるが、後述するように、ＯＳの各種の処理部の処理プログラムを実行して環境情報を生成、管理する。
【００２２】
管理ネットワークＩ／Ｆ１２１には、前述した管理ＬＡＮ１４１が、Ａ社ネットワークＩ／Ｆ１２２には、前述したＡ社ＬＡＮ１４２が、Ｂ社ネットワークＩ／Ｆ１２３には、前述したＢ社ＬＡＮ１４３が、それぞれ、接続される。管理ＬＡＮ１４１は、データセンタの管理用のＬＡＮであり、これに接続されたデータセンタ管理者用ＰＣ１４７によって管理者が情報処理装置１０１を管理する。Ａ社ＬＡＮ１４２は、データセンタのストレージ・サービスを利用する顧客Ａ社用のＬＡＮで、Ａ社Ｗｅｂサーバ１４８と、ファイアウオールＡ１４４が接続されている。Ｂ社ＬＡＮ１４３は、データセンタのストレージ・サービスを利用する顧客Ｂ社用のＬＡＮで、Ｂ社Ｗｅｂサーバ１４９と、ファイアウオールＢ１４５が接続されている。
【００２３】
ストレージＩ／Ｆ１３１は、第１ハードディスク１５１、第２ハードディスク１５２、第３ハードディスク１５３（以下、ハードディスクはディスクと略称する）およびテープ装置１５４が接続されている。第１ディスク１５１は情報処理装置１０１の管理用に使用されるデータおよび必要なプログラムが格納される。第２ディスク１５２および第３ディスク１５３は、適当な論理ボリューム構成とされて、それぞれ、Ａ社およびＢ社のＷｅｂサービスを提供するためのデータ格納用に使用する。テープ装置１５４はＡ社およびＢ社がデータのバックアップ時に使用する。第２ディスク１５２および第３ディスク１５３をＡ社およびＢ社に割り当てるときは、適当な論理ボリューム構成とするのが運用上有利であるが、以下の説明では、説明を簡便にするため、Ａ社およびＢ社にそれぞれ第２ディスク１５２および第３ディスク１５３を割り当てるものとした。
【００２４】
データセンタ１００は、インターネット１４６を介して外部からアクセスされる。１６１および１６２はＡ社およびＢ社管理者用ＰＣである。Ａ社およびＢ社管理者は、Ｗｅｂサービスの内容を修正し、あるいは、Ｗｅｂサービスの利用状況などのデータをバックアップとしてテープに格納する必要があるときは、Ａ社およびＢ社管理者用ＰＣ１６１，１６２を使用してＡ社Ｗｅｂサーバ１４８およびＢ社Ｗｅｂサーバ１４９にアクセスする。さらに、インターネット１４６に接続された一般ユーザ１６３−１６５がＡ社Ｗｅｂサーバ１４８およびＢ社Ｗｅｂサーバ１４９にアクセスしてＷｅｂサービスを利用する。
【００２５】
データセンタ１００は、したがって、顧客の運用管理の自由度を大きくできるようにする一方で、顧客あるいは一般ユーザからの不正なアクセスによる影響を排除できることが重要である。
【００２６】
図２は、情報処理装置１０１上で稼働する主要なプログラム、情報およびこれらの関連を示す図である。
【００２７】
情報処理装置１０１のメモリ１１２には、アプリケーションプログラムとして、装置管理プログラム２０１、Ａ社用管理プログラム２０２、Ａ社用ファイルサーバプログラム２０３、Ｂ社用管理プログラム２０４およびＢ社用ファイルサーバプログラム２０５が実装されている。これらは第１ディスク１５１に格納されていて、必要によりメモリ１１２に展開される。
【００２８】
装置管理プログラム２０１は情報処理装置１０１上で稼働するアプリケーションプログラムであり、データセンタ管理者用ＰＣ１４７と通信し、Ａ社用管理プログラム２０２の起動、Ｂ社用管理プログラム２０４の起動、および、Ａ社環境情報２３２やＢ社環境情報２３３に対してテープ装置１５４のアクセス許可の変更などを行う。
【００２９】
Ａ社用管理プログラム２０２は、Ａ社用ファイルサーバプログラム２０３が稼働する設定を行い、Ａ社用ファイルサーバプログラム２０３を起動するとともに、Ａ社管理者がＡ社管理者用ＰＣ１６１からアクセスしてログインするＡ社Ｗｅｂサーバ１４８と通信し、Ａ社用ファイルサーバプログラム２０３の停止、再開、および、テープ装置１５４に対するデータのバックアップなどを行う。
【００３０】
Ａ社用ファイルサーバプログラム２０３は、Ａ社Ｗｅｂサーバ１４８が要求するファイルアクセス要求を受付け、ＯＳ（オペレーティングシステム）２１０が提供するファイルシステム処理部２１４を利用し、第２ディスク１５２に対してファイルの書き込みや、読み出しを行い、結果をＡ社Ｗｅｂサーバ１４８に返す。
【００３１】
Ｂ社用管理プログラム２０４およびＢ社用ファイルサーバプログラム２０５の動作は、Ａ社用管理プログラム２０２およびＡ社用ファイルサーバプログラム２０３の動作と同様である。
【００３２】
ＯＳ２１０には、各種の情報が格納され、この情報に基づいて、情報処理装置１０１上で稼働し、前述したアプリケーションプログラム２０１〜２０５に様々なインタフェースを提供し、プロセス情報の制御やＩ／Ｏ処理、ファイルシステムサービスなどを提供する。
【００３３】
格納される情報としては、前述した各アプリケーションプログラムに実行実体であるＣＰＵ１１１の割り当てに必要な第１プロセス情報２２１、第２プロセス情報２２２、−−−、第５プロセス情報２２５と、これらの情報に基づいて、各種のアプリケーションプログラムが実行されるときにアクセス可能なデバイスなどの許可および制限情報である管理環境情報２３１、Ａ社環境情報２３２およびＢ社環境情報２３３と、さらには、管理ネットワークＩ／Ｆ１２１、Ａ社ネットワークＩ／Ｆ１２２およびＢ社ネットワークＩ／Ｆ１２３ごとの管理情報である管理ネットワークＩ／Ｆ情報２４１、Ａ社ネットワークＩ／Ｆ情報２４２およびＢ社ネットワークＩ／Ｆ情報２４３とがある。
【００３４】
ＯＳ２１０には、さらに、各種の処理部が格納される。ここで処理部とはＯＳの機能を果たすためのプログラムであり、これらには以下のものがある。プロセス情報生成時に呼び出されるプロセス情報生成処理部２１１、プロセス情報が指すアプリケーションプログラムに対して停止、終了、再開等の制御を行うプロセス情報制御処理部２１７、プロセス情報が指すアプリケーションプログラムにアクセス可能なデバイスなどを許可および制限する情報を変更する時に呼び出される環境情報変更処理部２１２、デバイスなどへのアクセスの際、その正当性をチェックする許可デバイス判定処理部２１３、ファイルシステムサービスを提供するファイルシステム処理部２１４、ストレージＩ／Ｆ１３１に接続される第１ディスク１５１、第２ディスク１５２、第３ディスク１５３およびテープ装置１５４への入出力を行うストレージＩ／Ｏ処理部２１５およびネットワークＩ／Ｆ１２１、ネットワークＩ／Ｆ１２２およびネットワークＩ／Ｆ１２３を介して通信を行う管理ネットワークＩ／Ｆ処理部２１６である。
【００３５】
第１プロセス情報２２１は、装置管理プログラム２０１を指すプロセス情報であり、装置管理プログラム２０１の動作を管理するための情報である。第１プロセス情報２２１は管理環境情報２３１に属し、この情報に基づいてアクセス可能なデバイスの制限を受ける。
【００３６】
第２プロセス情報２２２は、Ａ社用管理プログラム２０２を指すプロセス情報であり、Ａ社用管理プログラム２０２の動作を管理するための情報である。第３プロセス情報２２３は、Ａ社用ファイルサーバプログラム２０３を指すプロセス情報であり、Ａ社用ファイルサーバプログラム２０３の動作を管理するための情報である。第２プロセス情報２２２および第３プロセス情報２２３は、Ａ社環境情報２３２に属し、この情報に基づいてアクセス可能なデバイスの制限を受ける。
【００３７】
第４プロセス情報２２４は、Ｂ社用管理プログラム２０４を指すプロセス情報であり、Ｂ社用管理プログラム２０４の動作を管理するための情報である。第５プロセス情報２２５は、Ｂ社用ファイルサーバプログラム２０５を指すプロセス情報であり、Ｂ社用ファイルサーバプログラム２０５の動作を管理するための情報である。第４プロセス情報２２４および第５プロセス情報２２５は、Ｂ社環境情報２３３に属し、この情報に基づいてアクセス可能なデバイスの制限を受ける。
【００３８】
管理環境情報２３１は、図２では分離して表現されているが、第１プロセス情報２２１および管理ネットワークＩ／Ｆ１２１に対応する管理ネットワークＩ／Ｆ情報２４１を統合したものとなされる。この管理環境情報２３１は、装置管理を行うため、データセンタ管理者のみが管理者用ＰＣ１４７から管理ＬＡＮ１４１を介してアクセスすることができ、すべてのデバイスに対するアクセス権を管理するための情報を保持するように管理される。
【００３９】
Ａ社環境情報２３２は、図２では分離して表現されているが、第２プロセス情報２２２、第３プロセス情報２２３およびＡ社ネットワークＩ／Ｆ１２２に対応する管理情報を格納するＡ社ネットワークＩ／Ｆ情報２４２を統合したものとなされる。このＡ社環境情報２３２は、Ａ社のファイルサーバプログラム２０３の稼働環境情報を提供するため、データセンタ１００とＡ社との契約によりＡ社に許可される第２ディスク１５２、Ａ社ネットワークＩ／Ｆ１２２のデバイスへのアクセス権を管理するための情報を保持するようにデータセンタ管理者用ＰＣ１４７により管理される。Ａ社管理者によるＡ社管理者用ＰＣ１６１からＡ社ＬＡＮ１４２を介してのテープ装置１５４へのアクセス権は、契約により所定の時間のみ与えられる。
【００４０】
Ｂ社環境情報２３３は、図２では分離して表現されているが、第４プロセス情報２２４、第５プロセス情報２２５およびＢ社ネットワークＩ／Ｆ１２３に対応する管理情報を格納するＢ社ネットワークＩ／Ｆ情報２４３を統合したものとなされる。このＢ社環境情報２３３は、Ｂ社のファイルサーバプログラム２０５の稼働環境情報を提供するため、データセンタ１００とＢ社との契約によりＢ社に許可される第３ディスク１５３、Ｂ社ネットワークＩ／Ｆ１２３のデバイスへのアクセス権を管理するための情報を保持するようにデータセンタ管理者用ＰＣ１４７により管理される。Ｂ社管理者によるＢ社管理者用ＰＣ１６２からＢ社ＬＡＮ１４３を介してのテープ装置１５４へのアクセス権は、契約により所定の時間のみ与えられる。
【００４１】
管理ネットワークＩ／Ｆ情報２４１、Ａ社ネットワークＩ／Ｆ情報２４２およびＢ社ネットワークＩ／Ｆ情報２４３は、それぞれ、管理ネットワーク１２１、Ａ社ネットワーク１２２およびＢ社ネットワーク１２３に対応し、各ネットワークインタフェースの管理情報である。また、ネットワークＩ／Ｆが属する環境情報のポインタを格納しており，受信したデータを格納する環境情報を一意に決定することができる。管理ネットワークＩ／Ｆ情報２４１、Ａ社ネットワークＩ／Ｆ情報２４２およびＢ社ネットワークＩ／Ｆ情報２４３は、情報としては独立したものであるが、上述したように、管理環境情報２３１、Ａ社環境情報２３２およびＢ社環境情報２３３と一体として扱われる。
【００４２】
プロセス情報生成処理部２１１は、装置管理プログラム２０１、Ａ社用管理プログラム２０２およびＢ社用管理プログラム２０４により呼び出されるプログラムである。プロセス情報生成処理部２１１は、これを呼び出したアプリケーションプログラムと同じ環境情報に属するプロセス情報を生成する機能を有する。これに加え、環境情報を指定することで、新たな環境情報を生成し、その環境情報に属するプロセス情報を生成する機能も有する。ただし、新たな環境情報を生成する機能は、管理環境情報２３１に属する装置管理プログラム２０１の実行でのみ可能である。すなわち、管理者権限をデータセンタ管理者のみに与える。
【００４３】
プロセス情報制御処理部２１７は、プロセス情報が指すアプリケーションプログラムに対して停止、終了、再開等の制御を行うことができる。この機能は、管理環境情報２３１に属する第１プロセス情報２２１が指す装置管理プログラム２０１からは全てのアプリケーションプログラムに対して制御することができるが、管理環境情報２３１以外に属するプロセス情報が指すアプリケーションプログラム（Ａ社環境情報２３２およびＢ社環境情報２３３に属する第２プロセス情報２２２から第５プロセス情報２２５が指すプログラム）からは、同一環境情報に属するアプリケーションプログラムに対してのみ制御することができる。
【００４４】
環境情報変更処理部２１２は、指定した環境情報に対してデバイスのアクセスの許可・禁止を設定、変更することができる。この機能は、管理環境情報２３１に属する第１プロセス情報２２１が指す装置管理プログラム２０１のみが実行可能である。すなわち、管理者権限をデータセンタ管理者のみに与える。
【００４５】
許可デバイス判定処理部２１３は、アプリケーションプログラムからデバイスへのアクセスが要求されたとき、アクセスを要求したアプリケーションプログラムを指すプロセス情報が属する環境情報を参照する。アクセスしようとするデバイスがそのアプリケーションプログラムにアクセス許可されていない場合、デバイスへのアクセスは失敗となる。
【００４６】
ファイルシステム処理部２１４は、ディスク上のデータ配置を管理し、ディスク領域を用いて木構造の名前空間の提供と、ファイル格納を可能にしている。名前空間は、ルートディレクトリと呼ぶ木の根を「／」で表し、ファイル名探索の起点としている。また、名前を持つディレクトリと呼ぶ木の節、および、名前を持つファイルと呼ぶ木の葉を持つ。ディレクトリは、下位のディレクトリやファイル名を格納し、ディレクトリ間の区切りに「／」を用いる。複数のディスクに作成された木構造の名前は、ｍｏｕｎｔ（マウント）操作により、一方の根を節に接続することができる。各環境情報２３１〜２３３には、ファイルシステムのｍｏｕｎｔテーブルがあり、環境情報毎に木の一部を変更することができる。また、環境情報生成時には、生成する環境情報のルートディレクトリを、指定したディレクトリに変更することができる。これにより、指定したディレクトリ以外のファイルを、環境情報に属するプロセス情報が指すアプリケーションプログラムからアクセスできないようにすることができる。
【００４７】
ストレージＩ／Ｏ処理部２１５は、ストレージＩ／Ｆ１３１に接続される第１ディスク１５１〜第３ディスク１５３およびテープ装置１５４への入出力を行う。入出力を要求するプロセス情報が指すアプリケーションプログラムは、第一に、ストレージＩ／Ｏ処理部にストレージデバイスのｏｐｅｎ（オープン）処理を行い、後続の処理で使用するハンドルを得る。ｏｐｅｎ処理では、許可デバイス判定処理部２１３を呼び、指定されたデバイスがアクセス許可されていることを確認する。許可されていないときは、ｏｐｅｎ処理はできず、デバイスへのアクセスは失敗となる。
【００４８】
ネットワークＩ／Ｏ処理部２１６は、各ネットワークＩ／Ｆ１２１〜１２３を介して情報処理装置１０１と各ＬＡＮ１４１〜１４３間で通信を行う。ネットワークＩ／Ｆ１２１〜１２３では、プロセス情報が指すアプリケーションプログラムからの要求が無い場合でもデータを受信する必要があるため、そのデータをどの環境情報に渡すかをネットワークＩ／Ｆ２４１〜２４３情報に記している。図１、図２では、環境情報毎に異なるネットワークＩ／Ｆ１２１〜１２３を備えているが、たとえば、ＩＥＥＥ８０２．１Ｑで定義されるタグつきＶＬＡＮ機能を利用し、タグ番号毎の論理的なネットワークＩ／Ｆを用い、論理的なネットワークＩ／Ｆ毎にネットワークＩ／Ｆ情報２４１〜２４３を用意することで、物理ネットワークＩ／Ｆを共有することができる。また、受信したデータを複製する論理的なネットワークＩ／Ｆを用い、論理的なネットワークＩ／Ｆ毎にネットワークＩ／Ｆ情報２４１〜２４３を用意することで、同一セグメント上に複数の環境情報を提供することができる。
【００４９】
図３は、環境情報の具体例の詳細をＡ社環境情報２３２を例に用いて示す図である。Ａ社環境情報２３２には、デバイスアクセス許可テーブル３００、ネットワークＩ／Ｆリスト３２０、ファイルシステム設定情報３３０、ネットワーク設定情報３４０およびプロセス情報リスト３６０がある。
【００５０】
デバイスアクセス許可テーブル３００は、デバイスＩＤを格納するフィールド３０１と許可フラグを格納するフィールド３０２との対応を示している。たとえば、行３１１，３１３より第１ディスク、第３ディスクに対するアクセスは許可されていないこと、行３１２より第２ディスクに対するアクセスは許可されていることを知ることができる。行３１４よりテープ装置に対するアクセスは許可されていないことを知ることができる。この情報は、プロセス情報生成処理部２１１が環境情報を生成する際に設定されるほか、環境情報変更処理部２１２によって変更される。
【００５１】
ネットワークＩ／Ｆリスト３２０には、Ａ社環境情報２３２の下で情報処理装置１０１とネットワークＩ／Ｆ１２２とが通信するための情報を格納するＡ社ネットワークＩ／Ｆ情報２４２が登録される。この情報は、プロセス情報生成処理部２１１が環境情報を生成する際に設定されるほか、環境情報変更処理部２１２によって変更される。
【００５２】
ファイルシステム設定情報３３０には、Ａ社環境情報２３２が使用する名前空間を定義するマウントテーブル３３１を格納する。マウントテーブル３３１には、マウントポイント３３２、ファイルシステムＩＤ３３３、ｉｎｏｄｅ番号３３４、マウントする前のディレクトリが属していた元のファイルシステムＩＤ３３５およびマウントする前のディレクトリを示す元のｉｎｏｄｅ番号３３６を格納するフィールドがある。行３６１に示す「／」は、Ａ社環境情報２３２におけるルートディレクトリであり、これがｒｏｏｔＦＳの１００番のｉｎｏｄｅであり、元のファイルシステムＩＤ、元のｉｎｏｄｅ番号が無いことを「−」で示している。ここでは、ｒｏｏｔＦＳを第１ディスク１５１上に作成されたファイルシステム、１００番のｉｎｏｄｅを「／ｅｎｖ１」というディレクトリであるとする。行３６２は、Ａ社環境情報２３２に属するプロセス情報が指すアプリケーションプログラムがＦＳ１というファイルシステムＩＤの２番のｉｎｏｄｅを「／ｅｘｐｏｒｔｓ／ｆｓ１」ディレクトリに接続（ｍｏｕｎｔ）したことを示す。ここでは、ＦＳ１を第２ディスク１５２上に作成されたファイルシステム、２番のｉｎｏｄｅを「／」ルートディレクトリであるとする。この情報のうち、行３６１に示す「／」に関しては、プロセス情報生成処理部２１１が環境情報を生成する際に設定される。その他は、Ａ社環境情報２３２に属するプロセス情報が指すアプリケーションプログラムが行うｍｏｕｎｔ操作によって設定される。
【００５３】
ネットワーク設定情報３４０には、ルーティングテーブル３４１とプロトコルテーブル３４２とがある。ルーティングテーブル３４１は、行き先を格納するフィールド３４５、どのインタフェースを用いるかを示す情報を格納するフィールド３４７およびどこへ送れば良いかを示す情報を格納するフィールド３４６を有しており、行き先３４５毎に、どのインタフェース３４７を用いてどこ（ＧＷ）３４６へ送れば良いかを示している。行３７１に示すエントリは、Ａ社ＬＡＮ１４２上にある相手に送信する場合、Ａ社ネットワークＩ／Ｆ１２２を用い、行き先アドレスへ直接送れば良いことを示している。行３７２に示すエントリは、その他の相手に送信する場合、Ａ社ネットワークＩ／Ｆ１２２を用い、ファイアウオールＡ１４４へ送れば良いことを示している。プロトコルテーブル３４２は、プロトコル３４３毎にソケットリスト３４４を持ち、受信データを待ち受けるためなどに使用される。行３５１に示すエントリは、ＴＣＰプロトコルでプロセス情報が指すプログラムが開設したポートに対応するソケット３８１、３８２が接続されることを示している。同様に、行３５２に示すエントリは、ＵＤＰプロトコルでプロセス情報が指すプログラムが開設したポートに対応するソケット３９１、３９２が接続されることを示している。これらの情報は、環境情報生成時には空であり、すべての情報をＡ社環境情報２３２に属する第２プロセス情報２２２または第３プロセス情報２２３が指すアプリケーションプログラムが設定する。
【００５４】
プロセス情報リスト３６０には、Ａ社環境情報２３２に属するプロセス情報のリストが登録される。Ａ社環境情報２３２には、第２プロセス情報２２２と第３プロセス情報２２３が属していることを示している。これらの情報は、プロセス情報生成処理部２１１が環境情報生成時に生成したプロセス情報が登録される。以後、Ａ社環境情報２３２に属するプロセス情報が指すアプリケーションプログラムが新たなプロセス情報を生成した場合、その環境情報が追加される。
【００５５】
図４は、プロセス情報生成処理部２１１の処理フローを示す図である。プロセス情報生成処理部２１１では、ステップ４０１にて、本処理部２１１を呼び出したアプリケーションプログラムが環境情報生成要求を伴うか否かを判定する。環境情報生成要求を伴う呼び出しの場合ステップ４０２に進み、環境情報生成要求を伴わない呼び出しの場合ステップ４１１に進む。ステップ４１１では、本処理部２１１を呼び出したアプリケーションプログラムを指すプロセス情報の属する環境情報を指すポインタを変数ｐに代入し、ステップ４０４に進む。ステップ４０２では、本処理部２１１を呼び出したアプリケーションプログラムを指すプロセス情報が管理環境情報２３１に属しているか否かを判定する。管理環境情報２３１に属している場合ステップ４０３に進み、管理環境情報２３１に属していない場合ステップ４２１に進む。ステップ４２１ではエラーリターンする。ステップ４０３では、新たに環境情報を生成し、指定されたデバイスへのアクセス許可、ネットワークＩ／Ｆおよびルートディレクトリの情報を、管理環境情報２３１に反映するとともに、変数ｐに生成した環境情報へのポインタを代入し、ステップ４０４に進む。ステップ４０４では、プロセス情報を生成する。ステップ４０５では、生成したプロセス情報を変数ｐが指す環境情報のプロセス情報リスト３６０に登録する。ステップ４０６では、正常リターンする。
【００５６】
プロセス情報生成処理部２１１は、たとえば以下に示すインターフェイスを提供する。
［関数］ｃｒｅａｔｅ＿ｐｒｏｃｅｓｓ（ｃｍｄ，ｄｉｒ，ｎｅｔｉｆ，ｄｅｖ）、
［引数］ｃｍｄ：起動するコマンド、
ｄｉｒ：生成する環境情報のルートディレクトリを指定、
ｎｅｔｉｆ：環境情報に登録するネットワークインタフェースのリスト、
ｄｅｖ：アクセスを許可するデバイスのリスト、
［説明］ｄｉｒ，ｎｅｔｉｆ，ｄｅｖを無しに呼び出すと、呼び出しプロセス情報と同じ環境情報に、ｃｍｄに指定したプロセス情報が指すアプリケーションプログラムを起動する。ｄｉｒ，ｎｅｔｉｆ，ｄｅｖいずれかを指定するとｄｉｒ，ｎｅｔｉｆ，ｄｅｖで指定した環境情報を生成し、生成した環境情報でｃｍｄに指定したプロセス情報が指すアプリケーションプログラムを起動する。
【００５７】
また、ユーザは、次に示すインタフェースを持つコマンドを用いてプロセス情報生成処理部２１１を呼び出すことができる。
［コマンド書式］ｎｅｗｅｎｖ  コマンド名  ルートディレクトリ  ネットワークインタフェース名  デバイス名
［引数］コマンド名：起動するコマンド、
ルートディレクトリ：生成する環境情報のルートディレクトリを指定、
ネットワークインタフェース名：環境情報に登録するネットワークインタフェース名、複数指定できる、
デバイス名：アクセスを許可するデバイス名、複数指定できる、
［説明］ルートディレクトリ、ネットワークインタフェース名、デバイス名で指定した環境情報を生成し、その環境情報で稼働するコマンド名で指定したプロセス情報が指すアプリケーションプログラムを起動する。
【００５８】
なお、許可するデバイスの代わりに、アクセスを禁止するデバイスを引数とするインタフェースを提供することもできる。
【００５９】
図５は、プロセス情報制御処理部２１７の処理フローを示す図である。プロセス情報制御処理部２１７では、ステップ５０１にて、本処理部２１７を呼び出したアプリケーションプログラムを指すプロセス情報が管理環境情報２３１に属しているか否かを判断する。管理環境情報２３１に属している場合はステップ５０３に進み、管理環境情報２３１に属していない場合はステップ５０２に進む。ステップ５０２では、本処理部２１７を呼び出したアプリケーションプログラムを指すプロセス情報が制御対象となるアプリケーションプログラムを指すプロセス情報と同一環境情報に属しているか否かを判断する。同一の環境情報に属している場合はステップ５０３に進み、同一の環境情報に属していない場合はステップ５１１に進む。ステップ５１１では、エラーリターンする。ステップ５０３では、制御対象となるアプリケーションプログラムに対して停止、終了、再開等の制御を発行し、ステップ５０４に進む。ステップ５０４では、正常リターンする。
【００６０】
図６は、環境情報変更処理部２１２の処理フローを示す図である。環境情報変更処理部２１２では、ステップ６０１にて、本処理部２１２を呼び出したアプリケーションプログラムを指すプロセス情報が管理環境情報２３１に属しているか否かを判断する。管理環境情報２３１に属している場合はステップ６０２に進み、管理環境情報２３１に属していない場合はステップ６１１に進む。ステップ６１１では、エラーリターンする。ステップ６０２では、指定された環境情報に対する変更を反映し、ステップ６０３に進む。ステップ６０３では、正常リターンする。すなわち、環境情報を変更する処理は管理環境情報２３１に属するプロセス情報が指す装置管理プログラム２０１を介して、データセンタ管理者用ＰＣ１４７からのみ行うことができる。
【００６１】
図７は、許可デバイス判定処理部２１３の処理フローを示す図である。許可デバイス判定処理部２１３では、ステップ７０１にて、本処理部２１３を呼び出したアプリケーションプログラムを指すプロセス情報が属する環境情報のデバイスアクセス許可テーブル３００の指定されたデバイスを指すエントリを参照し、許可フラグ３０２の値を判断する。「○」であればステップ７０２に進む。ステップ７０２では、正常リターンする。「×」であればステップ７１１に進む。ステップ７１１ではエラーリターンする。
【００６２】
図８は、ファイルシステム処理部２１４が有する処理部とデータ構造を示す図である。ファイルシステム処理部２１４には、ｏｐｅｎ処理部８０１、ｃｌｏｓｅ処理部８０２、ｒｅａｄ処理部８０３、ｗｒｉｔｅ処理部８０４、ｓｅｅｋ処理部８０５、ｍｋｄｉｒ処理部８０６、ｒｍｄｉｒ処理部８０７、ｍｏｕｎｔ処理部８０８、ｕｍｏｕｎｔ処理部８０９およびｒｅｍｏｖｅ処理部８００と、ファイルシステムテーブル８１０を備える。
【００６３】
ｏｐｅｎ処理部８０１は、指定したファイルのアクセス権を得る処理を行う。ｃｌｏｓｅ処理部８０２は、アクセス権を放棄する処理を行う。ｒｅａｄ処理部８０３は、ｏｐｅｎ処理でアクセス権を獲得したファイルからデータを読み出す処理を行う。ｗｒｉｔｅ処理部８０４は、ｏｐｅｎ処理でアクセス権を獲得したファイルにデータを書き込む処理を行う。ｓｅｅｋ処理部８０５は、ｏｐｅｎ処理でアクセス権を獲得したファイルに対して次に読み書きするファイル上の位置を変更する処理を行う。ｍｋｄｉｒ処理部８０６は、新規にディレクトリを作成する処理を行う。ｒｍｄｉｒ処理部８０７は、指定したディレクトリを削除する処理を行う。ｍｏｕｎｔ処理部８０８は、指定したディスク上にあるファイルシステムを名前空間上に接続する処理を行う。ｕｍｏｕｎｔ処理部８０９は、ファイルシステムのｍｏｕｎｔを解除する処理を行う。ｒｅｍｏｖｅ処理部８００は、指定したファイルを削除する処理を行う。
【００６４】
ファイルシステムテーブル８１０は、ｍｏｕｎｔしているファイルシステムを示しており、８１１はファイルシステムＩＤのフィールド、８１２はデバイスＩＤのフィールド、８１３はハンドルのフィールドである。行８２１が示すエントリは、ｒｏｏｔＦＳというＩＤをもつファイルシステムが第１ディスク１５１上に作られており、ストレージＩ／Ｏ処理部２１５を経由して第１ディスク１５１にアクセスするためのハンドルｈ１を保持していることを示している。行８２２が示すエントリは、ＦＳ１というＩＤをもつファイルシステムが第２ディスク１５２上に作られており、ストレージＩ／Ｏ処理部２１５を経由して第２ディスク１５２にアクセスするためのハンドルｈ２を保持していることを示している。行８２３が示すエントリは、ＦＳ２というＩＤをもつファイルシステムが第３ディスク１５３上に作られており、ストレージＩ／Ｏ処理部２１５を経由して第３ディスク１５３にアクセスするためのハンドルｈ３を保持していることを示している。
【００６５】
図９は、ファイルシステム処理部２１４の処理部のうち、デバイス割り当てを伴うｍｏｕｎｔ処理部８０８の処理フローを示す図である。ｍｏｕｎｔ処理部８０８では、ステップ９０１にて、許可デバイス判定処理部２１３を呼びｍｏｕｎｔに指定されたデバイスのアクセス権を検査する。ステップ９０２では、ステップ９０１のアクセス権の検査の結果、アクセスが許可されていた場合ステップ９０３に進み、許可されていなかった場合ステップ９１１に進む。ステップ９１１では、エラーリターンする。ステップ９０３では、ストレージＩ／Ｏ処理部２１５を呼びオープンする。すなわちデバイスにアクセスするためのハンドルを獲得する。ステップ９０４では、ファイルシステムテーブル８１０に、ステップ９０３で獲得したハンドルのエントリを追加する。ステップ９０５では、本処理部２１４を呼び出したアプリケーションプログラムを指すプロセス情報が属する環境情報のマウントテーブル３３１にエントリを追加する。ステップ９０６では、正常リターンする。
【００６６】
図１０は、ストレージＩ／Ｏ処理部２１５が有する処理部とデータ構造を示す図である。ストレージＩ／Ｏ処理部２１５には、ｏｐｅｎ処理部１００１、ｃｌｏｓｅ処理部１００２、ｒｅａｄ処理部１００３、ｗｒｉｔｅ処理部１００４、ｉｏｃｔｌ処理部１００５と、ハンドルリスト１０１０を備える。
【００６７】
ｏｐｅｎ処理部１００１は、指定されたデバイスに対するアクセスが許可されているかを判定し、アクセス可能であれば以後の処理で使用するハンドルを与える。ｃｌｏｓｅ処理部１００２は、不要となったハンドルを無効化する。ｒｅａｄ処理部１００３は、ｏｐｅｎ処理部１００１でハンドルを獲得した際に指定したデバイスからデータを読み込む。ｗｒｉｔｅ処理部１００４は、ｏｐｅｎ処理部１００１でハンドルを獲得した際に指定したデバイスにデータを書き込む。ｉｏｃｔｌ処理部１００５は、ｏｐｅｎ処理部１００１でハンドルを獲得した際に指定したデバイスに対してデバイス固有の操作を行う。
【００６８】
ハンドルリスト１０１０は、ストレージＩ／Ｏ処理部２１５が与えたハンドルのリストを示している。ハンドルリスト１０１０には、ハンドルのフィールド１０１１、デバイスＩＤのフィールド１０１２および実行中Ｉ／Ｏのフィールド１０１３を備える。行１０２１で示すエントリは、ハンドルｈ１が第１ディスク１５１に対するアクセスを行うために用いられることおよび実行中のＩ／Ｏが無い（「−」）ことを示している。行１０２２はハンドルｈ２が第２ディスク１５２に対するアクセスを行うために用いられることおよび実行中のＩ／Ｏが無い（「−」で表示）ことを、行１０２３はハンドルｈ３が第３ディスク１５３に対するアクセスを行うために用いられることおよび実行中のＩ／Ｏが無いことを、行１０２４はハンドルｈ４が第２ディスク１５２に対するアクセスを行うために用いられることおよび実行中のＩ／Ｏが無いことを、それぞれ、示している。行１０２５は、ハンドルｈ５がテープ装置１５４に対するアクセスを行うために用いられることおよび実行中Ｉ／Ｏがテープ装置１５４に対するＩ／Ｏであり、第２プロセス情報２２２が指すＡ社用管理プログラム２０２がＩ／Ｏ実行の完了を待っていることを示している。
【００６９】
図１１は、ストレージＩ／Ｏ処理部２１５のうち、デバイスのアクセス許可を判断するｏｐｅｎ処理部１００１の処理フローを示す図である。ｏｐｅｎ処理部１００１では、ステップ１１０１にて、許可デバイス判定処理部２１３を呼び、指定されたデバイスのアクセス権を検査する。ステップ１１０２では、ステップ１１０１のアクセス権の検査の結果、アクセスが許可されていた場合ステップ１１０３に進み、許可されていなかった場合ステップ１１１１に進む。ステップ１１１１では、エラーリターンする。ステップ１１０３では、指定されたデバイスに対する新たなハンドルを作成し、ハンドルリスト１０１０に新たなエントリを登録する。ステップ１１０４では、ハンドルを返し、正常リターンする。
【００７０】
図１２は、情報処理装置１０１上で稼働する装置管理プログラム２０１の処理フローを示す図である。装置管理プログラム２０１では、ステップ１２０１にてデータセンタ管理者用ＰＣ１４７からの要求を待つ。管理者用ＰＣ１４７から要求が到着すると、ステップ１２０２に進み、処理要求の内容を判断する。要求が「Ａ社環境情報生成始動」であればステップ１２１１に進み、要求が「Ｂ社環境情報生成始動」であればステップ１２１２に進み、要求が「Ａ社テープ有効化」であればステップ１２３１に進み、要求が「Ｂ社テープ有効化」であればステップ１２４１に進む。
【００７１】
ステップ１２１１では、Ａ社用ファイルサーバプログラム２０３の環境情報を生成するため、Ａ社に提供する第２ディスク１５２とＡ社ネットワークＩ／Ｆ１２２へのアクセスを許可し、アクセス可能なディレクトリを分離するため、ルートディレクトリを「／ｅｎｖ１」とする環境情報生成を指定し、Ａ社用管理プログラム２０２を起動するようプロセス情報生成処理部２１１を呼ぶ。これにより、Ａ社用ファイルサーバプログラム２０３を実行するＡ社環境情報２３２が生成され、Ａ社環境情報２３２の下で稼働する最初のプロセス情報が指すアプリケーションプログラムが起動される。
【００７２】
ステップ１２２１では、Ｂ社用ファイルサーバプログラム２０５の環境情報を生成するため、Ｂ社に提供する第３ディスク１５３とＢ社ネットワークＩ／Ｆ１２３へのアクセスを許可し、アクセス可能なディレクトリを分離するため、ルートディレクトリを「／ｅｎｖ２」とする環境情報生成を指定し、Ｂ社用管理プログラム２０４を起動するようプロセス情報生成処理部２１１を呼ぶ。これにより、Ｂ社用ファイルサーバプログラム２０５を実行するＢ社環境情報２３３が生成され、Ｂ社環境情報２３３の下で稼働する最初のプロセス情報が指すアプリケーションプログラムが起動される。
【００７３】
ステップ１２３１では、Ｂ社環境情報２３３から、テープ装置１５４の許可を取り消す様指定し環境情報変更処理部２１２を呼ぶ。ステップ１２３２では、Ａ社環境情報２３２に、テープ装置１５４のアクセスを許可する様に指定し環境情報変更処理部２１２を呼ぶ。これにより、Ａ社環境情報２３２の下で第３プロセス情報２２３からテープ装置１５４が利用可能となる。
【００７４】
ステップ１２４１では、Ａ社環境情報２３２から、テープ装置１５４の許可を取り消す様に指定し環境情報変更処理部２１２を呼ぶ。ステップ１２４２では、Ｂ社環境情報２３３に、テープ装置１５４のアクセスを許可する様指定し環境情報変更処理部２１２を呼ぶ。これにより、Ｂ社環境情報２３３の下で第５プロセス情報２２５からテープ装置１５４が利用可能となる。
【００７５】
ここで、ステップ１２３１およびステップ１２４１によるＡ社環境情報２３２およびＢ社環境情報２３３に対するテープ装置１５４の許可は、それぞれに対する契約に基づいて、異なった時間帯になされるものであるのは当然である。
【００７６】
これらのステップ１２１１、１２２１、１２３２および１２４２の処理が終わるとステップ１２０１に戻り、次の処理要求を待つ。
【００７７】
図１３は、情報処理装置１０１上で稼働するＡ社用管理プログラム２０２の処理フローを示す図である。Ａ社用管理プログラム２０２では、装置管理プログラム２０１のステップ１２１１でＡ社のサーバ環境情報生成を始動させるため、Ａ社用管理プログラム２０２を起動するようプロセス情報生成処理部２１１が呼ばれたのに応じて起動され、ステップ１３０１にて、Ａ社ネットワークＩ／Ｆ１２２のアドレス設定、および、ルーティングテーブルの設定を行う。ステップ１３０２にて、第２ディスクを「／ｅｘｐｏｒｔｓ／ｆｓ１」にマウントするようファイルシステム処理部２１４のｍｏｕｎｔ処理部８０８を呼ぶ。ステップ１３０３にて、Ａ社用ファイルサーバプログラム２０３を指定してプロセス情報生成処理部２１１を呼ぶ。これにより、Ａ社用ファイルサーバプログラム２０３がＡ社環境情報２３２の下で実行を開始する。Ａ社用ファイルサーバプログラム２０３は、「／ｅｘｐｏｒｔｓ／ｆｓ１」を公開し、Ａ社Ｗｅｂサーバ１４８に対してファイル共有サービスを提供する。
【００７８】
ステップ１３０４では、Ａ社Ｗｅｂサーバ１４８からの要求を待つ。Ａ社Ｗｅｂサーバ１４８からの要求が到着すると、ステップ１３０５に進み、要求に応じた処理を行う。要求が「ファイルサーバ停止」であればステップ１３１１に進み、要求が「ファイルサーバ再開」であればステップ１３２１に進み、要求が「バックアップ」であればステップ１３３１に進む。
【００７９】
ステップ１３１１では、Ａ社用ファイルサーバプログラム２０３を指す第３プロセス情報２２３を指定し、実行を停止するようプロセス情報制御処理部２１７を呼ぶ。これにより、Ａ社用ファイルサーバプログラム２０３の活動は停止する。ステップ１３２１では、Ａ社用ファイルサーバプログラム２０３を指す第３プロセス情報２２３を指定し、実行を再開するようプロセス情報制御処理部２１７を呼ぶ。これにより、停止していたＡ社用ファイルサーバプログラム２０３の活動は再開する。ステップ１３３１では、「／ｅｘｐｏｒｔｓ／ｆｓ１」以下のファイルをテープ装置１５４にバックアップするようバックアップコマンドを指定し、プロセス情報生成処理部２１１を呼ぶ。Ａ社環境情報２３２の下で、バックアップコマンドが起動され、指定されたディレクトリ以下のファイルをテープ装置１５４に送りバックアップが行われる。
【００８０】
ここで、ステップ１３０１からステップ１３０３の処理は、図１２に示した装置管理プログラム２０１のプログラムのステップ１２１１で、新たな環境情報が生成されることになって、Ａ社用管理プログラム２０２の起動のためのプロセス情報生成処理部が呼ばれるたびに実行されるものである。
【００８１】
図１３に示したＡ社用管理プログラム２０２の処理フローおよび上記Ａ社用ファイルサーバプログラム２０３の処理は、Ｂ社用管理プログラム２０４およびＢ社用ファイルサーバプログラム２０５でも同様である。
【００８２】
これまで記述した実施の形態１の環境情報の下で動作する仮想的なサーバ機能は、ここで示したファイルサーバ以外でも、ＮＩＳサーバや、ＤＮＳサーバ、ＬＤＡＰサーバ、Ｗｅｂサーバ、Ｐｒｏｘｙサーバ、さらに、これらサーバの組み合わせでも利用可能である。さらにステップ１３０５で行う要求に応じた処理を追加しても本発明に支障は無い。例えば、ファイルサーバの共有設定を変更する処理を追加することは容易である。
【００８３】
また、実施の形態１では、第１ディスク１５１〜第３ディスク１５３を物理デバイスとして扱ったが、これを、たとえば、単一ディスクを複数に分割するパーティション機能を用い、各パーティションを論理的に別なディスク（論理ボリーム）として扱うことも可能である。また、ＲＡＩＤ装置のように複数の物理デバイスを論理的に切り分け、論理デバイスとして仮想化した場合も同様に論理デバイスを別なディスクとして扱うことができる。さらに、この論理デバイスをパーティション分割する場合も同様である。このような処理に対応して、図３に例示したＡ社環境情報２３２のデバイスアクセス許可テーブル３００のデバイスＩＤ３０１の表現法が変わることは当然である。
【００８４】
（実施の形態２）
上述の実施の形態１では、図４に示したように、プロセス情報生成処理部２１１のインタフェースにおける生成する環境情報のルートディレクトリの情報として、ディレクトリを指定するよう記述しているが、これを、ｍｏｕｎｔするファイルシステムが格納されているデバイス名を指定するものに置き換えることも可能である。
【００８５】
図１４は、プロセス情報生成処理において環境情報を生成する際、ルートファイルシステムをｍｏｕｎｔする機能を持つプロセス情報生成処理部２１１’としたときの処理フローを示す図である。図４に示したステップと同じ機能を持つステップには同じ参照符号を付した。
【００８６】
ステップ４０１にて、本処理部２１１’を呼び出したアプリケーションプログラムが環境情報生成要求を伴うか否かを判定する。環境情報生成要求を伴う呼び出しの場合ステップ４０２に進み、環境情報生成要求を伴わない呼び出しの場合ステップ４１１に進む。ステップ４１１では、本処理部２１１’を呼び出したアプリケーションプログラムを指すプロセス情報の属する環境情報を指すポインタを変数ｐに代入し、ステップ４０４に進む。ステップ４０２では、本処理部２１１’を呼び出したアプリケーションプログラムを指すプロセス情報が管理環境情報２３１に属しているか否かを判定する。管理環境情報２３１に属している場合ステップ４０３に進み、管理環境情報２３１に属していない場合ステップ４２１に進む。ステップ４２１ではエラーリターンする。ステップ４０３では、新たに環境情報を生成し、指定されたデバイスへのアクセス許可、ネットワークＩ／Ｆおよびルートディレクトリの情報を、管理環境情報２３１に反映するとともに、変数ｐに生成した環境情報へのポインタを代入し、ステップ１４３１に進む。ステップ１４３１では、ストレージＩ／Ｏ処理部２１５を呼び、ハンドルを獲得する。ステップ１４３２では、ファイルシステムテーブル８１０にエントリを追加する。ステップ１４３３では、ステップ１４０３で生成した環境情報のマウントテーブル３３１にエントリを追加する。次に、ステップ４０４に進む。ステップ４０４では、プロセス情報を生成する。ステップ４０５では、生成したプロセス情報を変数ｐが指す環境情報のプロセス情報リスト３６０に登録する。ステップ４０６では、正常リターンする。
【００８７】
プロセス情報生成処理部２１１’は、たとえば以下に示すインタフェースを提供する。
［関数］ｃｒｅａｔｅ＿ｐｒｏｃｅｓｓ＿ｗｉｔｈ＿ｍｏｕｎｔ（ｃｍｄ、ｒｄｅｖ、ｎｅｔｉｆ、ｄｅｖ）、
［引数］ｃｍｄ：起動するコマンド、
ｒｄｅｖ：生成する環境情報のルートディレクトリにｍｏｕｎｔするファイルシステムを格納したデバイスを指定、
ｎｅｔｉｆ：環境情報に登録するネットワークインタフェースのリスト、
ｄｅｖ：アクセスを許可するデバイスのリスト、
［説明］ｒｄｅｖ、ｎｅｔｉｆ、ｄｅｖをなしに呼び出すと、呼び出しプロセス情報と同じ環境情報にｃｍｄに指定したプロセス情報が指すアプリケーションプログラムを起動する。ｒｄｅｖ、ｎｅｔｉｆ、ｄｅｖいずれかを指定するとｒｄｅｖ、ｎｅｔｉｆ、ｄｅｖで指定した環境情報を生成し、生成した環境情報でｃｍｄに指定したプロセス情報が指すアプリケーションプログラムを起動する。
【００８８】
また、ユーザは、次に示すインタフェースを持つコマンドを用いてプロセス情報生成処理部２１１’を呼び出すことができる。
［コマンド書式］ｎｅｗｅｎｖ＿ｍｏｕｎｔ  コマンド名  ルートデバイス名  ネットワークインタフェース名  デバイス名
［引数］コマンド名：起動するコマンド、
ルートデバイス名：生成する環境情報のルートディレクトリにｍｏｕｎｔするファイルシステムを格納したデバイス名を指定、
ネットワークインタフェース名：環境情報に登録するネットワークインタフェース名、複数指定できる、
デバイス名：アクセスを許可するデバイス名、複数指定できる、
［説明］ルートデバイス名、ネットワークインタフェース名、デバイス名で指定した環境情報を生成し、その環境情報で稼働するコマンド名で指定したプロセス情報が指すアプリケーションプログラムを起動する。
【００８９】
なお、許可するデバイスの変わりに、アクセスを禁止するデバイスを引数とするインタフェースを提供することもできる。
【００９０】
プロセス情報生成処理部２１１’によりルートディレクトリをｍｏｕｎｔし、生成された環境情報は、ルートディレクトリも管理環境情報２３１を含む他の環境情報から独立することができる。
【００９１】
【発明の効果】
本発明では、環境情報で制限されたプロセス情報は、管理者権限であってもそのプロセス情報が指すアプリケーションプログラムが稼働する環境情報に指定された範囲を越えて他のデバイスや、ファイルシステムをアクセスすることができないため、環境情報毎に管理者権限を与えることができる。環境情報毎の管理者は、与えられた範囲で、ファイルシステムのマウント／アンマウントや、バックアップ、ネットワークファイルシステムの共有設定の変更などを自由に行うことが可能となる。
【図面の簡単な説明】
【図１】本発明を適用して効果のあるシステムの一例を示す図。
【図２】情報処理装置１０１上で稼働する主要なソフトウェアおよびデータおよびこれらの関連を示す図。
【図３】環境情報の具体例の詳細をＡ社環境情報２３２を例に用いて示す図。
【図４】プロセス情報生成処理部２１１の処理フローを示す図。
【図５】プロセス情報制御処理部２１７の処理フローを示す図。
【図６】環境情報変更処理部２１２の処理フローを示す図。
【図７】許可デバイス判定処理部２１３の処理フローを示す図。
【図８】ファイルシステム処理部２１４が有する処理機能とデータ構造を示す図。
【図９】ファイルシステム処理部２１４の処理機能のうち、デバイス割り当てを伴うｍｏｕｎｔ処理部８０８の処理フローを示す図。
【図１０】ストレージＩ／Ｏ処理部２１５が有する処理機能とデータ構造を示す図。
【図１１】ストレージＩ／Ｏ処理部２１５のうち、デバイスのアクセス許可を判断するｏｐｅｎ処理部１００１の処理フローを示す図。
【図１２】情報処理装置１０１上で稼働する装置管理プログラム２０１の処理フローを示す図。
【図１３】情報処理装置１０１上で稼働するＡ社用管理プログラム２０２の処理フローを示す図。
【図１４】プロセス情報生成処理において環境情報生成する際、ルートファイルシステムをｍｏｕｎｔする機能を持つプロセス情報生成処理部２１１’としたときの処理フローを示す図。
【符号の説明】
１００…データセンタ、１０１…情報処理装置、１１３…バス、１１１…ＣＰＵ、１１２…メモリ、１２１…管理ネットワークＩ／Ｆ、１２２…Ａ社ネットワークＩ／Ｆ、１２３…Ｂ社ネットワークＩ／Ｆ、１３１…ストレージＩ／Ｆ、１４１…管理ＬＡＮ、１４２…Ａ社ＬＡＮ、１４３…Ｂ社ＬＡＮ、１４４…ファイアウオールＡ、１４５…ファイアウオールＢ、１４６…インターネット、１４７…データセンタ管理者用ＰＣ、１４８…顧客Ａ社のＷｅｂサーバ、１４９…顧客Ｂ社のＷｅｂサーバ、１５１…第１ハードディスク、１５２…第２ハードディスク、１５３…第３ハードディスク、１５４…テープ装置、１６１，１６２…Ａ社，Ｂ社管理者用ＰＣ、１６３−１６５…一般ユーザ、２０１…装置管理プログラム、２０２…Ａ社用管理プログラム、２０３…Ａ社用ファイルサーバプログラム、２０４…Ｂ社用管理プログラム、２０５…Ｂ社用ファイルサーバプログラム、２１０…ＯＳ（オペレーティングシステム）、２１１…プロセス情報生成処理部、２１２…環境情報変更処理部、２１３…許可デバイス判定処理部、２１４…ファイルシステム処理部、２１５…ストレージＩ／Ｏ処理部、２１６…管理ネットワークＩ／Ｆ処理部、２１７…プロセス情報制御処理部、２２１…第１プロセス情報、２２２…第２プロセス情報、２２３…第３プロセス情報、２２４…第４プロセス情報、２２５…第５プロセス情報、２３１…管理環境情報、２３２…Ａ社環境情報、２３３…Ｂ社環境情報、２４１…管理ネットワークＩ／Ｆ情報、２４２…Ａ社ネットワークＩ／Ｆ情報、２４３…Ｂ社ネットワークＩ／Ｆ情報、３００…デバイスアクセス許可テーブル、３０１…デバイスＩＤを格納するフィールド、３０２…許可フラグを格納するフィールド、３１１−３１４…行、３２０…ネットワークＩ／Ｆリスト、３３０…ファイルシステム設定情報、３３１…マウントテーブル、３３２…マウントポイントを格納するフィールド、３３３…ファイルシステムＩＤを格納するフィールド、３３４…ｉｎｏｄｅ番号を格納するフィールド、３３５…元のファイルシステムＩＤを格納するフィールド、３３６…元のｉｎｏｄｅ番号を格納するフィールド、３４０…ネットワーク設定情報、３４１…ルーティングテーブル、３４２…プロトコルテーブル、３４３…プロトコル、３４４…ソケットリスト、３４５…行き先を格納するフィールド、３４６…どこへ送れば良いかを示す情報を格納するフィールド、３４７…どのインタフェースを用いるかを示す情報を格納するフィールド、３５１，３５２…行、３６０…プロセス情報リスト、３６１，３６２…行、３７１，３７２…行、３８１，３８２，３９１，３９２…ソケット、８００…ｒｅｍｏｖｅ処理部、８０１…ｏｐｅｎ処理部、８０２…ｃｌｏｓｅ処理部、８０３…ｒｅａｄ処理部、８０４…ｗｒｉｔｅ処理部、８０５…ｓｅｅｋ処理部、８０６…ｍｋｄｉｒ処理部、８０７…ｒｍｄｉｒ処理部、８０８…ｍｏｕｎｔ処理部、８０９…ｕｍｏｕｎｔ処理部、８１０…ファイルシステムテーブル、８１１…ファイルシステムＩＤのフィールド、８１２…デバイスＩＤのフィールド、８１３…ハンドルのフィールド、８２１−８２３…行、１００１…ｏｐｅｎ処理部、１００２…ｃｌｏｓｅ処理部、１００３…ｒｅａｄ処理部、１００４…ｗｒｉｔｅ処理部、１００５…ｉｏｃｔｌ処理部、１０１０…ハンドルリスト、１０１１…ハンドルのフィールド、１０１２…デバイスＩＤのフィールド、１０１３…実行中Ｉ／Ｏのフィールド、１０２１−１０２５…行。
【図１】
2004227127.tif 000003
【図２】
2004227127.tif 000004
【図３】
2004227127.tif 000005
【図４】
2004227127.tif 000006
【図５】
2004227127.tif 000007
【図６】
2004227127.tif 000008
【図７】
2004227127.tif 000009
【図８】
2004227127.tif 000010
【図９】
2004227127.tif 000011
【図１０】
2004227127.tif 000012
【図１１】
2004227127.tif 000013
【図１２】
2004227127.tif 000014
【図１３】
2004227127.tif 000015
【図１４】
2004227127.tif 000016