(57)【特許請求の範囲】
【請求項１】
複数の物理サーバと、前記複数の物理サーバに接続された管理サーバと、を含むシステムにおけるディスク共有方法において、
第一の物理サーバは、内蔵ディスクと、第一の仮想化機構と、前記第一の仮想化機構により論理分割された第一のＬＰＡＲ及び第一のストレージコントローラＬＰＡＲと、を備え、
第二の物理サーバは、第二の仮想化機構と、前記第二の仮想化機構により論理分割された第二のＬＰＡＲ及び第二のストレージコントローラＬＰＡＲと、を備え、
前記第一のストレージコントローラＬＰＡＲと、前記第二のストレージコントローラＬＰＡＲとは相互に通信し、
前記第二のストレージコントローラＬＰＡＲは、前記第二の物理サーバの前記第二のストレージコントローラＬＰＡＲ上に、前記第一の物理サーバの前記内蔵ディスクを模擬した仮想ディスクを生成し、
前記第二の仮想化機構は前記第二のＬＰＡＲに仮想ディスクアダプタを割り当て、前記第二のＬＰＡＲに割り当てられた仮想ディスクアダプタを介して前記仮想ディスクと前記第二のＬＰＡＲとを接続し、
前記第二のＬＰＡＲは、前記第二のＬＰＡＲに割り当てられた仮想ディスクアダプタに前記仮想ディスクのディスク入出力命令を発行し、
前記第二のＬＰＡＲに割り当てられた仮想ディスクアダプタは、前記発行されたディスク入出力命令を受信し、前記仮想ディスクを有する前記第二のストレージコントローラＬＰＡＲに前記受信したディスク入出力命令を送信し、
前記第二のストレージコントローラＬＰＡＲは、受信した前記ディスク入出力命令を、前記第一のストレージコントローラＬＰＡＲに送信し、
前記第一のストレージコントローラＬＰＡＲは、前記ディスク入出力命令を参照して、前記ディスク入出力命令に含まれる内蔵ディスクの識別子を取得し、前記取得した識別子に対応する前記内蔵ディスクに対して、前記ディスク入出力命令を実行することを特徴とするディスク共有方法。
【請求項２】
前記管理サーバは、前記内蔵ディスクの識別子と前記仮想ディスクの識別子とを対応づけて管理するディスク共有管理情報と、前記仮想ディスクの識別子と前記第二のストレージコントローラＬＰＡＲのアドレスとを対応づけて管理するストレージコントローラ管理情報と、を備え、
前記第一のストレージコントローラＬＰＡＲは、
前記ディスク入出力命令の結果を受信すると、前記ディスク共有管理情報を参照して、前記ディスク入出力命令に含まれる前記内蔵ディスクの識別子に対応づけられた前記仮想ディスクの識別子を取得し、
前記ストレージコントローラ管理情報を参照し、前記取得した仮想ディスクの識別子に対応づけられた前記第二のストレージコントローラＬＰＡＲのアドレスを取得し、
前記取得した第二のストレージコントローラＬＰＡＲのアドレスに基づいて、前記第二のストレージコントローラＬＰＡＲに前記ディスク入出力命令の結果を送信し、
前記第二のストレージコントローラＬＰＡＲは、受信した前記ディスク入出力命令の結果を前記第二のＬＰＡＲに割り当てられた前記仮想ディスクアダプタを介して前記第二のＬＰＡＲに送信することを特徴とする請求項１のディスク共有方法。
【請求項３】
前記ストレージコントローラ管理情報は、前記内蔵ディスクの識別子と前記第一のストレージコントローラＬＰＡＲのアドレスとを対応づけて管理し、
前記第二のストレージコントローラＬＰＡＲは、前記ディスク入出力命令に含まれる前記内蔵ディスクの識別子を取得し、
前記ストレージコントローラ管理情報を参照し、前記取得した内蔵ディスクの識別子に対応づけられた前記第一のストレージコントローラＬＰＡＲのアドレスを取得し、
前記取得した第一のストレージコントローラＬＰＡＲのアドレスに基づいて、前記第一のストレージコントローラＬＰＡＲに前記ディスク入出力命令を送信することを特徴とする請求項２記載のディスク共有方法。
【請求項４】
前記第一のストレージコントローラＬＰＡＲは、前記第一のストレージコントローラＬＰＡＲに割り当てられた仮想ディスクアダプタと物理ディスクアダプタを介して前記内蔵ディスクに接続することを特徴とする請求項３記載のディスク共有方法。
【請求項５】
前記第一のＬＰＡＲは、前記第一のＬＰＡＲに割り当てられた仮想ディスクアダプタと前記物理ディスクアダプタとを介して前記内蔵ディスクに接続することを特徴とする請求項４記載のディスク共有方法。
【請求項６】
前記第二のストレージコントローラＬＰＡＲは、前記仮想ディスクの識別子を生成し、前記ディスク共有管理情報に前記生成した仮想ディスクの識別子を登録することを特徴とする請求項５記載のディスク共有方法。
【請求項７】
前記管理サーバは、前記内蔵ディスクの識別子と前記内蔵ディスクの種別と前記第一のＬＰＡＲの識別子との対応関係を管理するディスク割当管理情報を有することを特徴とする請求項６記載のディスク共有方法。
【請求項８】
内蔵ディスクと、第一の仮想化機構と、前記第一の仮想化機構により論理分割された第一のＬＰＡＲ及び第一のストレージコントローラＬＰＡＲと、を備えた第一の物理サーバと、
第二の仮想化機構と、前記第二の仮想化機構により論理分割された第二のＬＰＡＲ及び第二のストレージコントローラＬＰＡＲと、を備えた第二の物理サーバと、
これら複数の物理サーバに接続された管理サーバと、を含む計算機システムであって、
前記第二のＬＰＡＲは、ディスク入出力命令を前記第二のＬＰＡＲに割り当てられた仮想ディスクアダプタに発行する手段を有し、
前記第二のＬＰＡＲに割り当てられた前記仮想ディスクアダプタは、前記発行されたディスク入出力命令を受信し、前記受信したディスク入出力命令を前記第二のストレージコントローラＬＰＡＲに送信する手段を有し、
前記第二のストレージコントローラＬＰＡＲは、前記第二の物理サーバの前記第二のストレージコントローラＬＰＡＲ上に、前記第一の物理サーバの前記内蔵ディスクを模擬した仮想ディスクを生成する手段と、前記第一のストレージコントローラＬＰＡＲと相互に通信し、受信した前記ディスク入出力命令を前記第一のストレージコントローラＬＰＡＲに送信する手段と、を有し、
前記第一のストレージコントローラＬＰＡＲは、受信した前記ディスク入出力命令を参照して、前記ディスク入出力命令に含まれる内蔵ディスクの識別子を取得する手段と、前記取得した識別子に対応する前記内蔵ディスクに対して、前記ディスク入出力命令を実行する手段と、を有することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の物理サーバ間でのデータを共有する方法およびシステムに関する。
【背景技術】
【０００２】
企業情報システムにおいては一台のストレージ装置に多数の物理サーバが接続し、ストレージ装置内のデータを共有する共有ストレージ構成が一般的である。このような構成をとることで、データの一元管理ができるほか、サーバ装置の可用性を向上させるホットスタンバイ機能やバックアップ機能などを有効に使うことができる。また、サーバ仮想化環境において、仮想サーバを現在稼働中の物理サーバから異なる物理サーバへ移行するマイグレーション機能などは移行元と移行先のサーバがお互いにデータを参照できる共有ストレージ構成の採用が必須要件である。共有ストレージを構築するには、異なるサーバ間でファイルを共有するＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）の技術や、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）やｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）などのプロトコルを使ってブロックストレージを共有するＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）の技術を使う。
【０００３】
一方で、共有ストレージを必要としない企業情報システムも存在する。例として、Ｈａｄｏｏｐに代表される大量データの分散処理システムや、ロードバランサを利用したＷｅｂサーバの負荷分散システムなどが挙げられる。これらのシステムは異なるサーバの間でデータを共有する必要がないため、データの保存に共有ストレージではなくサーバの内蔵ディスクを使用することが多い。
【０００４】
現在の企業情報システムは、このようにデータの保存場所が異なる２種のシステムが同一の環境内で混在している。データの保存場所として内蔵ディスクと共有ストレージのどちらを使うかは、企業情報システムの要件に応じて決められる。一般に、共有ストレージよりも内蔵ディスクの方が安価であるため、コスト削減を求める企業には内蔵ディスクを積極的に採用したい要求がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】ＵＳ２０１０／００８２９２２公開公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
企業がコスト削減を目的に内蔵ディスクの採用を進めるにあたり、ディスク共有の問題がある。システム内の第一のサーバと第二のサーバが共に内蔵ディスクを備え、それぞれ第一のプログラムと第二のプログラムを動作させている場合を例にとり説明する。第一のサーバ上で動作する第一のプログラムは、第一のサーバが備える第一のディスクアダプタを介して第一の内蔵ディスクに対して入出力処理を行える。しかし、第二のサーバが備えた第二の内蔵ディスクに対しては、第一のディスクアダプタと第二の内蔵ディスクが接続されていないため、入出力処理を行えない。この場合の入出力処理とは、内蔵ディスクに保存されたデータの読み書きである。このことは、異なるサーバ上に存在する第一のプログラムと第二のプログラムとの間でデータの共有ができないことを意味する。
【０００７】
これにより、コスト削減のために内蔵ディスクを採用する要求があっても、バックアップやマイグレーションなどの利便性が高い機能はディスクの共有を必要とするため、それらの機能を使う場合には高価な共有ストレージを採用しなければならない。
【０００８】
つまり、従来技術においては、複数の物理サーバ間で内蔵ディスクを共有できない点が課題である。
【０００９】
特許文献１では、移行元と移行先の物理サーバが内蔵ディスクを持ち、データの共有を行っていない環境において仮想サーバのライブマイグレーションを実現する発明が開示されている。特許文献１の発明は、移行元と移行先の物理サーバの双方がアクセスできる小容量の共有ストレージを配置し、そこにデータの中身でなく差分スナップショットを配置することで疑似的にデータの共有を行い、内蔵ディスクを使いながらもマイグレーション機能を実現している。ただし、この発明は小容量のストレージを用いる。そのためデータの共有を行う二つのサーバとは別にストレージ装置を設置する必要があり、コストがかかる点は従来技術と同様である。
【課題を解決するための手段】
【００１０】
本発明のディスク共有システムは、複数の物理サーバと、前記複数の物理サーバに接続された管理サーバを含むシステムである。第一の物理サーバは、内蔵ディスクと、第一の仮想化機構と、前記第一の仮想化機構により論理分割された第一のＬＰＡＲ及び第一のストレージコントローラＬＰＡＲとを備える。第二の物理サーバは、第二の仮想化機構と、前記第二の仮想化機構により論理分割された第二のＬＰＡＲ及び第二のストレージコントローラＬＰＡＲと、前記第二のストレージコントローラＬＰＡＲにより前記第一の物理サーバの前記内蔵ディスクを模擬して生成された仮想ディスクとを備える。また、前記第一のストレージコントローラＬＰＡＲと、前記第二のストレージコントローラＬＰＡＲとは相互に通信する。このシステムにおいて、前記第二のストレージコントローラＬＰＡＲは、前記第二のＬＰＡＲが発行した前記仮想ディスクのディスク入出力命令を、前記第一のストレージコントローラＬＰＡＲに転送する。前記第一のストレージコントローラＬＰＡＲは、前記ディスク入出力命令を参照して、前記ディスク入出力命令に含まれる内蔵ディスクの識別子を取得し、取得した識別子に対応する内蔵ディスクに対して、前記ディスク入出力命令を実行する。
【発明の効果】
【００１１】
本発明により、内蔵ディスクを備えた複数の物理サーバにおいて、物理サーバ上で動作するプログラムが異なる物理サーバの内蔵ディスクを共有できる。
【図面の簡単な説明】
【００１２】
【図１】実施例１におけるディスク共有システムの構成の一例を示す図である。
【図２】実施例１における物理サーバの構成の一例を示す図である。
【図３】実施例１におけるストレージコントローラＬＰＡＲの詳細構成の一例を示す図である。
【図４】実施例１における管理サーバの構成の一例を示す図である。
【図５】実施例１におけるディスク割当管理情報の一例を示す図である。
【図６】実施例１におけるストレージコントローラ管理情報の一例を示す図である。
【図７】実施例１におけるディスク共有管理情報の一例を示す図である。
【図８】実施例１におけるディスク共有開始手順の一例を示すフローチャートである。
【図９Ａ】実施例１におけるディスク共有開始前のシステムの構成の一例を示す図である。
【図９Ｂ】実施例１におけるディスク共有開始前の管理情報の一例を示す図である。
【図１０Ａ】実施例１の内蔵ディスク接続手順におけるシステムの構成の一例を示す図である。
【図１０Ｂ】実施例１の内蔵ディスク接続手順における管理情報の一例を示す図である。
【図１１Ａ】実施例１の仮想ディスク作成手順におけるシステムの構成の一例を示す図である。
【図１１Ｂ】実施例１の仮想ディスク作成手順における管理情報の一例を示す図である。
【図１２】実施例１におけるディスク入出力処理の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【実施例１】
【００１３】
内蔵ディスクを備えた物理サーバを仮想化機構により論理分割し、仮想化機構の上でＬＰＡＲ（Ｌｏｇｉｃａｌ  Ｐａｒｔｉｔｉｏｎ）を稼働し、ＬＰＡＲが内蔵ディスクに対して入出力処理を行う構成において、異なる物理サーバの内蔵ディスクを共有する処理を実行する専用のＬＰＡＲ（ストレージコントローラＬＰＡＲ）を前記ＬＰＡＲと同じ仮想化機構の上で稼働させる構成をとる。前記の構成をとる複数の物理サーバと、物理サーバを管理する管理サーバが存在するシステムにおいて、第一の物理サーバ上で稼働する第一のストレージコントローラＬＰＡＲと、第二の物理サーバ上で稼働する第二のストレージコントローラＬＰＡＲとが、ネットワークを介して互いに通信を行う。
【００１４】
本発明は、第一の物理サーバ上で稼働する第一のＬＰＡＲが内蔵ディスクに対して入出力処理を行い、第二の物理サーバ上で稼働する第二のＬＰＡＲが内蔵ディスクを共有する要求がある場合に、第一のストレージコントローラＬＰＡＲと第二のストレージコントローラＬＰＡＲが管理サーバ内の情報を読み書きすることによって、それぞれのストレージコントローラＬＰＡＲが管理するＬＰＡＲとディスクの情報を共有する。そして、第二のストレージコントローラＬＰＡＲが、第二のＬＰＡＲが発行するディスク入出力命令を第一のストレージコントローラＬＰＡＲに転送することで、第二のＬＰＡＲが内蔵ディスクに保存されたデータを読み書きし、これにより内蔵ディスクの共有を行う。以下、本発明を適用したシステムの実施例について、図面を参照しながら説明する。実施例１では、共有対象となる内蔵ディスクと、内蔵ディスクを利用する第一のＬＰＡＲと、内蔵ディスクを管理する第一のストレージコントローラＬＰＡＲとを含む第一のサーバと、第二のＬＰＡＲと第二のストレージコントローラＬＰＡＲとを含む第二のサーバと、管理サーバとの連携によって、第二のサーバ上で稼働する第二のＬＰＡＲが、第一のサーバが備える内蔵ディスクを共有するシステムの構成、および、方法を示す。
【００１５】
図１は、ディスク共有システムの構成の一例を示す図である。
【００１６】
ディスク共有システムは、管理サーバ１００と、第一のサーバ１１０と、第二のサーバ１２０と、ネットワーク１３０とにより構成される。管理サーバ１００、第一のサーバ１１０、第二のサーバ１２０は物理サーバであり、ネットワーク１３０によって相互に接続される。
【００１７】
第一のサーバ１１０では仮想化機構１１１が稼働し、その上で第一のＬＰＡＲ１１２と第一のストレージコントローラＬＰＡＲ１１３が稼働している。また、第一のサーバ１１０は、物理ディスクアダプタ１１６と、物理ディスクアダプタ１１６に接続された内蔵ディスク１１７とを備える。
【００１８】
第一のＬＰＡＲ１１２は仮想ディスクアダプタ１１４と物理ディスクアダプタ１１６を介して内蔵ディスク１１７に接続する。第一のＬＰＡＲ１１２は仮想ディスクアダプタ１１４に対してディスク入出力命令を発行することで、内蔵ディスク１１７に保存されたデータを読み書きする。
【００１９】
また、第一のストレージコントローラＬＰＡＲ１１３は、仮想ディスクアダプタ１１５と物理ディスクアダプタ１１６に接続し、第一のＬＰＡＲ１１２と同様に内蔵ディスク１１７を読み書きする。
【００２０】
ここで二つの仮想ディスクアダプタ１１４、１１５は、仮想化機構１１１が作成し、第一のＬＰＡＲ１１２と第一のストレージコントローラＬＰＡＲ１１３とにそれぞれ割り当てたものである。
【００２１】
第二のサーバ１２０では第一のサーバ１１０と同様に仮想化機構１２１が稼働し、その上で第二のＬＰＡＲ１２２と第二のストレージコントローラＬＰＡＲ１２３が稼働している。なお、第二のサーバ１２０も第一のサーバ１１０と同様に物理ディスクアダプタや内蔵ディスクを備えていてもよい。
【００２２】
第二のサーバ１２０上の第二のＬＰＡＲ１２２は、仮想ディスクアダプタ１２４を介し、第二のストレージコントローラＬＰＡＲ１２３上の仮想ディスク１２５と接続している。ここで仮想ディスクアダプタ１２４は、仮想化機構１２１が作成し、第二のＬＰＡＲ１２２に割り当てたものである。
【００２３】
仮想ディスク１２５は、第二のストレージコントローラＬＰＡＲ１２３のソフトウェアにより作成されたディスクであり、物理的には存在しない仮想的なディスクである。仮想ディスク１２５は、第一のサーバ１１１上の内蔵ディスク１１７に対応して作成される。第二のＬＰＡＲ１２２が仮想ディスクアダプタ１２４を介し仮想ディスク１２５に対してディスク入出力命令を発行すると、前記ディスク入出力命令は仮想化機構１２１によりトラップされ、第二のストレージコントローラＬＰＡＲ１２３に転送される。その後、前記ディスク入出力命令は、ネットワーク１３０を経由して、第一のストレージコントローラＬＰＡＲ１１３に渡され、ストレージコントローラＬＰＡＲ１１３は、前記ディスク入出力命令に基づき内蔵ディスク１１７に対して入出力処理を行う。その入出力処理の結果が第一のストレージコントローラＬＰＡＲ１１３、ネットワーク１３０、第二のストレージコントローラＬＰＡＲ１２３を経由し、第二のＬＰＡＲ１２２へ渡される。
【００２４】
図２は、物理サーバの構成の一例を示す図である。図１における管理サーバ１００、第一のサーバ１１０、第二のサーバ１２０が物理サーバに相当する。
【００２５】
物理サーバ２００は、プロセッサ２０１、メモリ２０２、ネットワーク１３０などのネットワークに接続するネットワークアダプタ２０３、内蔵ディスク１１７などの記録媒体に接続するディスクアダプタ２０４、キーボードやディスプレイといった入出力装置２０５により構成され、各構成要素がシステムバス２０６により接続された一般的な構成の物理サーバである。なお、ネットワークアダプタ２０３は複数存在してもよく、ネットワーク１３０以外のネットワークに接続してもよい。また、ディスクアダプタ２０４は複数存在してもよく、内蔵ディスク１１７以外の共有ストレージなどの記録媒体に接続してもよい。
【００２６】
プロセッサ２０１は、ディスクアダプタ２０４に接続された記録媒体からあらかじめメモリ２０２にプログラム２０７を読み込み、実行することで、プログラム２０７に記述された処理を実現する。
【００２７】
図３は、物理サーバ２００上で稼働する第一のストレージコントローラＬＰＡＲ１１３および第二のストレージコントローラＬＰＡＲ１２３の構成の一例を示す図である。仮想化機構３００、ＬＰＡＲ３１０、ストレージコントローラＬＰＡＲ３２０はプログラム２０７であり、これらは予め記録媒体に記録され、この記録媒体から読み出されてメモリ２０２に格納される。
【００２８】
仮想化機構３００はＬＰＡＲ制御プログラム３０１と、リソース割当プログラム３０２を備えたプログラムである。ＬＰＡＲ制御プログラム３０１は、ＬＰＡＲ３１０やストレージコントローラＬＰＡＲ３２０の作成、削除などの機能を持つ。リソース割当プログラム３０２は、物理サーバ２００の持つリソースを論理分割し、ＬＰＡＲ３１０やストレージコントローラＬＰＡＲ３２０に論理分割したリソースを割り当てる機能を持つ。この機能により、ＬＰＡＲ３１０やストレージコントローラＬＰＡＲ３２０を同一の物理サーバ２００上で複数稼働することができる。
【００２９】
ＬＰＡＲ３１０は、仮想化機構３００から割り当てられたリソースを利用してプログラム３１１を実行する。ここで、ＬＰＡＲ３１０が実行するプログラム３１１とは、例えばＯＳやアプリケーション、仮想化機構などである。
【００３０】
ストレージコントローラＬＰＡＲ３２０は、ＬＰＡＲ３１０の一種であり、ＯＳ３２１に加え、ストレージコントローラ管理プログラム３２２、外部ストレージ接続プログラム３２３、物理ディスク制御プログラム３２４、仮想ディスク制御プログラム３２５、管理情報更新プログラム３２６を備えたＬＰＡＲである。これらのプログラムもストレージコントローラＬＰＡＲ３２０と合わせて、メモリ２０２に格納される。ストレージコントローラＬＰＡＲ３２０は、ＯＳ３２１上に前記プログラム３２２〜３２６をインストールし、仮想化機構３００のＬＰＡＲ３１０上で動作するように設定された仮想アプライアンスである。システム管理者は、ストレージコントローラＬＰＡＲの仮想アプライアンスをあらかじめ仮想化機構３００に導入しておく。
【００３１】
以降、各プログラムを主語として実行される処理を説明するが、実際にはプロセッサ２０１がメモリ２０２から各プログラムを読み出し、各プログラムの処理を実行することを意味する。
【００３２】
ＯＳ３２１は、例えばＬｉｎｕｘやＷｉｎｄｏｗｓ（登録商標）などの一般的なＯｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍであり、ストレージコントローラＬＰＡＲ３２０が備える各種のプログラムを実行する。
【００３３】
ストレージコントローラ管理プログラム３２２は、ネットワーク１３０を介して管理サーバ１００と接続し、物理サーバ２００上で稼働するＬＰＡＲ３１０や物理サーバ２００が備える内蔵ディスク１１７、仮想ディスク１２５の設定を管理するほか、管理サーバ１００が発行する要求を受信し、外部ストレージ接続プログラム３２３、物理ディスク制御プログラム３２４、仮想ディスク制御プログラム３２５に要求を送信する。また、仮想化機構３００のＬＰＡＲ制御プログラム３０１やリソース割当プログラム３０２に対しても要求を送信する。
【００３４】
外部ストレージ接続プログラム３２３は、ネットワーク１３０を介して異なる物理サーバ２００上のストレージコントローラＬＰＡＲ３２０の外部ストレージ接続プログラム３２３同士が接続することにより、ＬＰＡＲ３１０がおよび仮想ディスク１２５に対して発行するディスク入出力命令を送受信する。また、外部ストレージ接続プログラム３２３は、同じサーバ上のストレージコントローラＬＰＡＲ３２０の物理ディスク制御プログラム３２４や仮想ディスク制御プログラム３２５と接続し、前記ディスク入出力命令を送信し、前記ディスク入出力命令の結果を受信する。
【００３５】
物理ディスク制御プログラム３２４は、外部ストレージ接続プログラム３２３からディスク入出力命令を受信し、同じサーバに搭載された内蔵ディスク１１７に対して、前記ディスク入出力命令を実行する。
【００３６】
仮想ディスク制御プログラム３２５は、ストレージコントローラ管理プログラム３２２の要求に応じて、内蔵ディスク１１７に対応した仮想ディスク１２５を作成する。また、仮想化機構３００のリソース割当プログラム３０２に対して仮想ディスクアダプタ１２４作成要求を送信し、仮想ディスクアダプタ１２４を介して第二のＬＰＡＲ１２２と仮想ディスク１２５を接続する。外部ストレージ接続プログラム３２３からディスク入出力命令を受信し、同じサーバ上の仮想ディスク１２５に対して、前記ディスク入出力命令を実行する。また、仮想化機構３００のＬＰＡＲ制御プログラム３０１に対し、仮想ディスク１２５の作成要求を送信する。
【００３７】
なお、サーバ２００が内蔵ディスク１１７を備えていない場合、物理ディスク制御プログラム３２４は実行されない。同様に、サーバ２００が仮想ディスク１２５を備えていない場合、仮想ディスク制御プログラム３２５は実行されない。いずれの場合も、ストレージコントローラＬＰＡＲ３２０は全てのプログラムを備えているが、サーバ２００の構成に応じて実際に実行するプログラムが異なる。
【００３８】
管理情報更新プログラム３２６は、ネットワーク１３０を介して管理サーバ１００のディスク共有管理プログラム４０３と接続し、管理サーバ１００が保持する各種の情報を更新する。
【００３９】
図４は、管理サーバ１００の詳細構成の一例を示す図である。管理サーバ１００は、ＯＳ４０１と、ストレージコントローラ制御プログラム４０２と、ディスク共有管理プログラム４０３と、ディスク割当管理情報４１１と、ストレージコントローラ管理情報４１２と、ディスク共有管理情報４１３と、をメモリ２０２に格納する。これらのプログラムおよび情報は、あらかじめ記録媒体に記録され、この記録媒体から読み出されてメモリ２０２に格納される。以降、各プログラムを主語として実行される処理を説明するが、実際にはプロセッサ２０１がメモリ２０２から各プログラムを読み出し、各プログラムの処理を実行することを意味する。
【００４０】
ストレージコントローラ制御プログラム４０２は、ネットワーク１３０を介してストレージコントローラＬＰＡＲ３２０のストレージコントローラ管理プログラム３２２と接続し、第一のＬＰＡＲ１１２と第二のＬＰＡＲ１２２との間で内蔵ディスク１１７を共有する処理の開始や終了を指示する。
【００４１】
ディスク共有管理プログラム４０３は、管理サーバ１００が保持するディスク割当管理情報４１１や、ストレージコントローラ管理情報４１２や、ディスク共有管理情報４１３の情報を更新し、ディスク共有処理の全体を管理する。
【００４２】
なお、管理サーバ１００の構成は図４に示した構成に限らず、図３で示したような、仮想化機構３００によって仮想化された構成でも良い。この場合、管理サーバ１００の各プログラムと各情報は、ＬＰＡＲ３１０のプログラム３１１に相当する。
【００４３】
図５は、ディスク割当管理情報４１１の一例を示す図である。なお、図５に記載のディスク割当管理情報４１１のフォーマットは一例であって、図５に示したフォーマットに限定されるものではない。
【００４４】
ディスク割当管理情報４１１は、システム内に存在する内蔵ディスク１１７や仮想ディスク１２５などのディスク全般の割り当て状態を管理するテーブルである。ディスク割当管理情報４１１は、前記ディスクを一意に識別する識別子（以下、ＩＤ）のディスクＩＤ５０１と、前記ディスクの種類を判別するディスク種別５０２と、前記ディスクに接続する物理ディスクアダプタを一意に識別する物理ディスクアダプタＩＤ５０３と、前記ディスクに接続する仮想ディスクアダプタを一意に識別する仮想ディスクアダプタＩＤ５０４と、前記ディスクが割り当てられているＬＰＡＲを一意に識別するＬＰＡＲ  ＩＤ５０５と、を格納する。
【００４５】
ディスク種別欄５０２には、物理ディスクと仮想ディスクなどのディスク種類を判別する情報を格納する。ディスクの種別が物理ディスクである場合、ハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）などの物理ディスクの実装方式を格納してもよい。また、ディスクの種別が仮想ディスクである場合、仮想ディスクを作成したプログラムの種類やバージョンなどを格納もよい。システム管理者はこれらの情報を参照することで、ディスクの性能や特性を考慮して共有するディスクを選定することができる。
【００４６】
なお、前記ディスクの種別が仮想ディスクであり、接続する物理ディスクアダプタが存在しない場合、物理ディスクアダプタＩＤ欄５０３は空欄としてもよい。
【００４７】
図６は、ストレージコントローラ管理情報４１２の一例を示す図である。なお、図６に記載のストレージコントローラ管理情報４１２のフォーマットは一例であって、図６に示したフォーマットに限定されるものではない。
【００４８】
ストレージコントローラ管理情報４１２は、システム内に存在するストレージコントローラＬＰＡＲ３２０などのストレージコントローラ全般を管理するテーブルである。ストレージコントローラ管理情報４１２には、前記ストレージコントローラを一意に識別するストレージコントローラＩＤ６０１と、前記ストレージコントローラの種類を判別するストレージコントローラ種別６０２と、前記ストレージコントローラと接続するためのストレージコントローラアドレス６０３と、前記ストレージコントローラが管理しているディスクの一覧を表す管理対象ディスクＩＤ６０４と、前記ストレージコントローラが管理しているＬＰＡＲの一覧を表す管理対象ＬＰＡＲ６０５と、を格納する。
【００４９】
ストレージコントローラ種別欄６０２には、前記ストレージコントローラの種別を判別する情報を格納する。例えば共有ストレージのストレージコントローラなど、ストレージコントローラＬＰＡＲ３２０とは実装の異なるストレージコントローラがシステム内に存在する場合、その実装を表す情報をストレージコントローラ種別欄６０２に格納して良い。
【００５０】
アドレス欄６０３には、管理サーバ１００や仮想化機構３００やＬＰＡＲ３１０やストレージコントローラＬＰＡＲ３２０などが、前記ストレージコントローラに接続するために指定する、例えばＩＰアドレスなどの宛先アドレスを格納する。
【００５１】
管理対象ディスクＩＤ欄６０４には、前記ストレージコントローラが管理する内蔵ディスク１１７や仮想ディスク１２５のＩＤを格納する。前記ストレージコントローラは、前記ストレージコントローラが稼働する装置と同一の装置に搭載された内蔵ディスク１１７や、前記装置の上に作成された仮想ディスク１２５を管理する。例えば、図１における第一のストレージコントローラＬＰＡＲ１１３は、第一のサーバ１１０に搭載された内蔵ディスク１１７を管理し、図１における第二のストレージコントローラＬＰＡＲ１２５は、第二のサーバ１２０に作成された仮想ディスク１２５を管理する。
【００５２】
図７は、ディスク共有管理情報４１３の一例を示す図である。なお、図７に記載のディスク共有管理情報４１３のフォーマットは一例であって、図７に示したフォーマットに限定されるものではない。
【００５３】
ディスク共有管理情報４１３は、第一のＬＰＡＲ１１２と第二のＬＰＡＲ１２２との間で内蔵ディスク１１７を共有する場合に、内蔵ディスク１１７とそれに対応する仮想ディスク１２５との対応関係を管理するテーブルである。
【００５４】
ディスク共有管理情報４１３には、第一のサーバ１１０が備える共有対象の内蔵ディスク１１７を一意に識別する内蔵ディスクＩＤ７０１と、第一のサーバ１１０上で稼働し内蔵ディスク１１７が割り当てられた第一のＬＰＡＲ１１２を一意に識別する第一のＬＰＡＲ  ＩＤ７０２と、第二のサーバ１２０上に新たに作成され内蔵ディスク１１７に対応する仮想ディスク１２５を一意に識別する仮想ディスクＩＤ７０３と、第二のサーバ１２０上で稼働し仮想ディスク１２５を新たに割り当てる第二のＬＰＡＲ１２２を一意に識別する第二のＬＰＡＲ  ＩＤ７０４とを格納する。
【００５５】
ディスク共有管理情報４１３に新たな行が挿入されることで、新たにディスク共有が開始されたことを表す。同様に、ディスク共有管理情報４１３から行が削除されることで、ディスク共有が終了したことを表す。ディスク共有管理情報４１３は、内蔵ディスク１１７と仮想ディスク１２５との対応関係を示している。したがって、第一のストレージコントローラＬＰＡＲや第二のストレージコントローラＬＰＡＲが、ディスク共有管理情報４１３を参照することによって、内蔵ディスク１１７と共有関係にある仮想ディスク１２５を特定できる。
【００５６】
次に、実施例において、第一のサーバ１１０で稼働する第一のＬＰＡＲ１１２と、第二のサーバ１２０で稼働する第二のＬＰＡＲ１２２との間で、第一のサーバ１１０に搭載された内蔵ディスク１１７の共有を開始する処理の手順を、図８のフローチャートに基づいて説明する。
【００５７】
本処理を開始する前のシステムの状態の一例を図９Ａと図９Ｂに示す。図９Ａがシステム構成、図９Ｂが図５のディスク割当管理情報４１１と、図６のストレージコントローラ管理情報４１２と、図７のディスク共有管理情報４１３と、の各情報の状態である。以下では、図１と図５、図６、図７の差異のみ説明する。第一のストレージコントローラＬＰＡＲ１１３と、第二のＬＰＡＲ１２２と、第二のストレージコントローラＬＰＡＲ１２３は、仮想ディスクアダプタを割り当てられておらず、図内のいずれのディスクとも接続されていない。このときに、第一のＬＰＡＲ１１２と第二のＬＰＡＲ１２２が内蔵ディスク１１７を共有する要求があるとする。
【００５８】
図８は、ＬＰＡＲ間で内蔵ディスクの共有を開始する処理の手順の一例を示すフローチャートである。本処理は例えば、システムの管理者が管理サーバ１００に対し、第一のＬＰＡＲ１１２と第二のＬＰＡＲ１２２とによる内蔵ディスク１１７のディスク共有開始要求を送信することを契機に実行される。このとき、前記要求の送信者は、第一のＬＰＡＲ１１２のＩＤと、第二のＬＰＡＲ１２２のＩＤと、共有対象の内蔵ディスク１１７のＩＤを、管理サーバ１００のディスク共有管理プログラム４０３に対し送信する。なお、本処理を実行する契機は、システム管理者からの要求に限らず、任意のプログラムからの前記要求の送信であってもよい。
【００５９】
ステップ８０１において、管理サーバ１００のディスク共有管理プログラム４０３は、ディスク共有開始要求と、第一のＬＰＡＲ１１２のＩＤと、第二のＬＰＡＲ１２２のＩＤと、共有対象の内蔵ディスク１１７のＩＤを受信する。続いて、ディスク共有管理プログラム４０３は、ディスク共有管理情報４１３に新たな行を挿入し、受信した内蔵ディスク１１７のＩＤと、第一のＬＰＡＲ１１２のＩＤと、第二のＬＰＡＲ１２２のＩＤとを、それぞれディスク共有管理情報４１３の内蔵ディスクＩＤ欄７０１と、第一のＬＰＡＲ  ＩＤ欄７０２と、第二のＬＰＡＲ ＩＤ欄７０４に記録する。このとき、仮想ディスクは作成されていないため、仮想ディスクＩＤ欄７０３は空欄である。
【００６０】
ステップ８０２において、管理サーバ１００のディスク共有管理プログラム４０３は、ステップ８０１で取得した内蔵ディスクＩＤを元に、ストレージコントローラ管理情報４１２の管理対象ディスクＩＤ欄６０４を検索し、内蔵ディスク１１７を管理する第一のストレージコントローラＬＰＡＲ１１３のアドレスを、アドレス欄６０３から取得する。続いて、ステップ８０１で取得した第一のＬＰＡＲ  ＩＤを元に、ストレージコントローラ管理情報４１２の管理対象ＬＰＡＲ欄６０５を検索し、第一のＬＰＡＲ１１２を管理する第一のストレージコントローラＬＰＡＲ１１３のアドレスを、アドレス欄６０３から取得する。同様に、第二のＬＰＡＲ１２２を管理する第二のストレージコントローラＬＰＡＲ１２３のアドレスも取得する。
【００６１】
図６を例に説明すると、内蔵ディスク１１７のＩＤであるＤｉｓｋ１−１をキーとしてストレージコントローラ管理情報４１２を検索すると、第一のストレージコントローラＬＰＡＲのＩＤであるＬＰＡＲ１−２の行が得られる。ここで、得られた行のアドレス欄６０３を参照することで、内蔵ディスク１１７を管理する第一のストレージコントローラＬＰＡＲのアドレスは１９２．０．２．１０であると判明する。
【００６２】
ここで、ストレージコントローラ管理情報４１２の検索において、ストレージコントローラの行を複数発見することがある。複数のストレージコントローラで一つの内蔵ディスクやＬＰＡＲを管理する目的は、多くの場合ストレージコントローラ管理情報の冗長化である。このときは、システム管理者が予めストレージコントローラ種別欄６０２に冗長構成の主系と従系などの情報を記録しておく。これにより、ストレージコントローラを複数発見したときに、いずれのストレージコントローラを選択すればよいか判断できる。
【００６３】
ステップ８０３において、管理サーバ１００のストレージコントローラ制御プログラム４０２は、ステップ８０２で取得した第一のストレージコントローラＬＰＡＲ１１３のアドレスを使い、第一のストレージコントローラＬＰＡＲ１１３に対し、ディスク共有開始命令と、ステップ８０１で取得した共有対象の内蔵ディスク１１７のＩＤ、第一のＬＰＡＲ１１２のＩＤ、第二のＬＰＡＲ１２２のＩＤに加え、ステップ８０２で取得した第二のストレージコントローラＬＰＡＲ１２３のアドレスを送信する。
【００６４】
ステップ８０４において、第一のストレージコントローラＬＰＡＲ１１３のストレージコントローラ管理プログラム３２２は、ステップ８０３で管理サーバ１００が送信した要求やＩＤなどの情報を受信する。続いて、ストレージコントローラ管理プログラム３２２は、第一の仮想化機構１１１のリソース割当プログラム３０２に対し、仮想ディスクアダプタ作成要求と、内蔵ディスク１１７のＩＤと、第一のストレージコントローラＬＰＡＲ１１３のＩＤと、を送信する。このとき、ストレージコントローラ管理プログラム３２２が第一の仮想化機構１１１に対して前記要求や前記ＩＤを送信するには、例えばハイパーコールなどの、ＬＰＡＲが仮想化機構に対して情報を伝達できる特殊な命令を利用する。あるいは、ネットワークを介して仮想化機構に接続し、仮想化機構が提供するＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）命令を発行してもよい。
【００６５】
リソース割当プログラム３０２はストレージコントローラ管理プログラム３２２からの情報を受信し、仮想ディスクアダプタ１１５を作成する。このとき、リソース割当プログラム３０２は、仮想ディスクアダプタ１１５を一意に識別するためのＩＤも生成する。また、リソース割当プログラム３０２は、第一のストレージコントローラＬＰＡＲ１１３のＩＤを元に仮想ディスクアダプタ１１５を第一のストレージコントローラＬＰＡＲ１１３に割り当て、内蔵ディスク１１７のＩＤを元に仮想ディスクアダプタ１１５を内蔵ディスク１１７に接続する。この後、リソース割当プログラム３０２は、生成した前記ＩＤをストレージコントローラ管理プログラム３２２に送信する。この処理により、第一のストレージコントローラＬＰＡＲ１１３は、内蔵ディスク１１７にディスク入出力命令を発行し、データの読み書きを行えるようになる。このときのリソース割当プログラム３０２の処理は、仮想化機構１１１が一般的に持つ仮想ディスクアダプタの作成処理と物理ディスクの割り当て処理である。また、仮想ディスクアダプタのＩＤは、例えばＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）などである。
【００６６】
続いて、ストレージコントローラ管理プログラム３２２は、管理情報更新プログラム３２６を介して管理サーバ１００に接続し、ディスク割当管理情報４１１を更新する。具体的には、管理情報更新プログラム３２６は、内蔵ディスク１１７のＩＤを元にディスク割当管理情報４１１のディスクＩＤ欄５０１を検索し、得られた行の仮想ディスクアダプタＩＤ欄５０４に、リソース割当プログラム３０２から受け取った仮想ディスクアダプタ１１５のＩＤを登録する。合わせて、ＬＰＡＲ  ＩＤ欄５０５に、仮想ディスクアダプタ１１５を割り当てた第一のストレージコントローラＬＰＡＲ１１３のＩＤを登録する。
【００６７】
仮想ディスクアダプタ１１５の作成後、第一のストレージコントローラＬＰＡＲ１１３は、第二のストレージコントローラＬＰＡＲ１２３からの通信を待つ。
【００６８】
このときのシステムの状態の一例を図１０Ａと図１０Ｂに示す。図９と比較して、新たに仮想ディスクアダプタ１１５が作成され、ストレージコントローラＬＰＡＲ１１３が仮想ディスクアダプタ１１５を介して内蔵ディスク１１７に接続している。
【００６９】
ステップ８０５において、管理サーバ１００のストレージコントローラ制御プログラム４０２は、ステップ８０２で取得した第二のストレージコントローラＬＰＡＲ１２３のアドレスを使い、第二のストレージコントローラＬＰＡＲ１２３に対し、ディスク共有開始命令と、ステップ８０１で取得した共有対象の内蔵ディスク１１７のＩＤ、第一のＬＰＡＲのＩＤ、第二のＬＰＡＲのＩＤに加え、ステップ８０２で取得した第一のストレージコントローラＬＰＡＲ１１３のアドレスを送信する。
【００７０】
ステップ８０６において、第二のストレージコントローラＬＰＡＲ１２３のストレージコントローラ管理プログラム３２２は、ステップ８０５で管理サーバ１００が送信した要求やＩＤなどの情報を受信する。続いて、ストレージコントローラ管理プログラム３２２は、外部ストレージ接続プログラム３２３に対して第一のストレージコントローラＬＰＡＲ１１３との接続要求を送信する。
【００７１】
外部ストレージ接続プログラム３２３は、ステップ８０５で受け取った第一のストレージコントローラＬＰＡＲ１１３のアドレスを使い、ネットワーク１３０を介して第一のストレージコントローラＬＰＡＲ１１３に接続要求を送信する。第一のストレージコントローラＬＰＡＲ１１３の外部ストレージ接続プログラム３２３は、第二のストレージコントローラＬＰＡＲ１２３の接続要求を受信すると、第一のストレージコントローラＬＰＡＲ１１３と第二のストレージコントローラＬＰＡＲ１２３との間で通信を確立する。ここで、通信の確立とは、両者が互いに情報を送受信できるように準備することであり、例えばＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のセッションを張ることである。
【００７２】
ステップ８０７において、ストレージコントローラ管理プログラム３２２は、仮想ディスク制御プログラム３２５に対し、仮想ディスク作成要求と、第二のＬＰＡＲ１２２のＩＤと、第二のストレージコントローラＬＰＡＲ１２３のＩＤと、を送信する。
【００７３】
仮想ディスク制御プログラム３２５は、ストレージコントローラ管理プログラム３２２からの情報を受信し、仮想ディスク１２５を作成する。また、仮想ディスク制御プログラム３２５は、作成した仮想ディスク１２５を一意に識別するためのＩＤを生成する。
【００７４】
ここで、仮想ディスク１２５は、仮想ディスク制御プログラム３２５が内蔵ディスク１１７を模擬して作成されたものである。仮想ディスク１２５は、例えばＳＣＳＩコマンドなどのディスク入出力命令を受け付けることができる。従って、仮想ディスク１２５は、ディスク入出力命令の宛先として指定できるＩＤを持ち、例えばＬＵＮ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）を持つ。
【００７５】
仮想ディスク１２５の作成後、仮想ディスク制御プログラム３２５は、生成した仮想ディスク１２５のＩＤをストレージコントローラ管理プログラム３２２に送信する。
【００７６】
続いて、ストレージコントローラ管理プログラム３２２は、管理情報更新プログラム３２６を介して管理サーバ１００に接続し、ディスク割当管理情報４１１を更新する。具体的には、管理情報更新プログラム３２６は、ディスク割当管理情報４１１に新しい行を挿入し、ディスクＩＤ欄５０１に仮想ディスク制御プログラム３２５から受け取った仮想ディスク１２５のＩＤを、ディスク種別欄５０２に仮想ディスクを表す情報を、ＬＰＡＲ  ＩＤ欄５０５に第二のストレージコントローラＬＰＡＲ１２３のＩＤを、登録する。仮想ディスク１２５の場合、物理ディスクアダプタには接続しないため、物理ディスクアダプタＩＤ欄５０３は空欄のままである。また、仮想ディスク１２５に接続する仮想ディスクアダプタを作成していないため、仮想ディスクアダプタＩＤ欄５０４も空欄のままである。
【００７７】
また、ストレージコントローラ管理プログラム３２２は、管理情報更新プログラム３２６を介して管理サーバ１００に接続し、ストレージコントローラ管理情報４１２を更新する。具体的には、ストレージコントローラ管理プログラム３２２は、第二のストレージコントローラＬＰＡＲ１２３のＩＤを元にストレージコントローラ管理情報４１２のストレージコントローラＩＤ欄６０１を検索し、取得した行の管理対象ディスク欄６０４に仮想ディスク１２５のＩＤを登録する。以上の処理により、仮想ディスク１２５が第二のストレージコントローラＬＰＡＲ１２３の管理下に入ったことを表す。
【００７８】
このときのシステムの状態の一例を図１１Ａと図１１Ｂに示す。図１０と比較して、新たに第二のストレージコントローラＬＰＡＲ１２３上に仮想ディスク１２５が作成されている。
【００７９】
ステップ８０８において、ストレージコントローラ管理プログラム３２２は、第二の仮想化機構１２１のリソース割当プログラム３０２に対し、仮想ディスクアダプタ作成要求と、第二のＬＰＡＲ１２２のＩＤと、第二のストレージコントローラＬＰＡＲ１２３のＩＤと、仮想ディスク１２５のＩＤとを、ハイパーコールやＡＰＩなどを利用して送信する。
【００８０】
リソース割当プログラム３０２は、ストレージコントローラ管理プログラム３２２からの情報を受信し、仮想ディスクアダプタ１２４を作成し、仮想ディスクアダプタ１２４を第二のＬＰＡＲ１２２のＩＤを元に第二のＬＰＡＲ１２２に割り当て、仮想ディスク１２５のＩＤを元に仮想ディスクアダプタ１２４を仮想ディスク１２５に接続する。また、仮想ディスクアダプタ１２４は、ストレージコントローラ管理プログラム３２２が送信した第二のストレージコントローラＬＰＡＲ１２３のＩＤを保持しておく。このとき、仮想ディスクアダプタ１２４のＩＤを合わせて生成し、ストレージコントローラ管理プログラム３２２に返す処理はステップ８０４やステップ８０７と同様である。
【００８１】
続いて、ストレージコントローラ管理プログラム３２２は、管理情報更新プログラム３２６を介して管理サーバ１００に接続し、ディスク割当管理情報４１１を更新する。具体的には、管理情報更新プログラム３２６は、仮想ディスク１２５のＩＤを元にディスク割当管理情報４１１のディスクＩＤ欄５０１を検索し、取得した行の仮想ディスクアダプタＩＤ欄５０４にリソース割当プログラム３０２から受け取った仮想ディスクアダプタ１２４のＩＤを、ＬＰＡＲ  ＩＤ欄５０５に第二のＬＰＡＲ１２２のＩＤを、登録する。
【００８２】
また、ストレージコントローラ管理プログラム３２２は、管理情報更新プログラム３２６を介して管理サーバ１００に接続し、ディスク共有管理情報４１３を更新する。具体的には、まず、内蔵ディスク１１７のＩＤを元に、ディスク共有管理情報４１３の内蔵ディスクＩＤ欄７０１を検索する。次に、検索により取得した内蔵ディスク１１７のＩＤが一致する行において、空欄の仮想ディスクＩＤ欄７０３に、ステップ８０７にて生成された仮想ディスク１２５のＩＤを、登録する。
【００８３】
以上の手順により、第一のサーバ１１０におけるストレージコントローラＬＰＡＲ１１３と第二のサーバ１２０におけるストレージコントローラＬＰＡＲ１２３とが、ディスク共有管理情報４１３を管理サーバ１００を介して共有しているので、内蔵ディスク１１７を模擬した仮想ディスク１２５を特定でき、第一のＬＰＡＲ１１２と第二のＬＰＡＲ１２２とが内蔵ディスク１１７の共有を開始可能となる。これにより、第二のＬＰＡＲ１２２は、仮想ディスクアダプタ１２４に対してディスク入出力命令を発行することで、内蔵ディスク１１７に保存されたデータを読み書きできるようになる。
【００８４】
このときのシステム構成の一例が図１であり、ディスク割当管理情報４１１やストレージコントローラ管理情報４１２やディスク共有管理情報４１３の状態が、それぞれ図５、図６、図７である。
【００８５】
次に、第二のＬＰＡＲ１２２が仮想ディスクアダプタ１２４に対してディスク入出力命令を発行し、内蔵ディスク１１７に保存されたデータを読み書きする際の処理の手順を、図１２を使いフローチャートにより説明する。
【００８６】
ステップ１２０１において、第二のＬＰＡＲ１２２上で稼働するプログラム３１１は、第二の仮想化機構１２１により第二のＬＰＡＲ１２２に割り当てられた仮想ディスクアダプタ１２４に対し、仮想ディスク１２５のディスク入出力命令を発行する。
【００８７】
ここで、前記ディスク入出力命令は、第二のＬＰＡＲ１２２上で稼働するプログラム３１１が仮想ディスクアダプタ１２４を介して仮想ディスク１２５に保存されたデータを読み書きする一般的な命令であり、例えばＳＣＳＩコマンドである。従って、前記ディスク入出力命令には、命令を発行する対象のディスクである内蔵ディスク１１７のＩＤと、入出力処理の内容が含まれている。
【００８８】
ステップ１２０２において、仮想ディスクアダプタ１２４は、第二のＬＰＡＲ１２２が発行した前記ディスク入出力命令を受信する。ここで、一般的な仮想化機構において、第二のＬＰＡＲ１２２が発行するディスク入出力命令は仮想化機構１２１が処理すべき特殊な命令であるため、前記ディスク入出力命令は仮想化機構１２１のＬＰＡＲ制御プログラム３０１によりトラップされ、プロセッサ２０１により処理されるプログラム２０７が、第二のＬＰＡＲ１２２から仮想ディスクアダプタ１２４に移る。従って、前記ディスク入出力命令の受信とは、例えばＬＰＡＲ制御プログラム３０１がトラップ処理により受信した前記ディスク入出力命令を、仮想ディスクアダプタ１２４に受け渡す処理である。
【００８９】
続けて、仮想ディスクアダプタ１２４は、ステップ８０８において仮想ディスクアダプタ１２４が受信した第二のストレージコントローラＬＰＡＲ１２３のＩＤを使い、前記ディスク入出力命令を、第二のストレージコントローラＬＰＡＲ１２３に対して送信する。ここで、前記ディスク入出力命令の送信方法は、例えば仮想ディスクアダプタ１２４から第二のストレージコントローラＬＰＡＲ１２３へのＬＰＡＲ制御プログラム３０１を介した割り込みの発行である。
【００９０】
ステップ１２０３において、第二のストレージコントローラＬＰＡＲ１２２の仮想ディスク制御プログラム３２５は、仮想ディスクアダプタ１２４が送信した前記ディスク入出力命令を受信し、第二のストレージコントローラＬＰＡＲ１２３の外部ストレージ接続プログラム３２３に対し、前記ディスク入出力命令を転送する。
【００９１】
続けて、外部ストレージ接続プログラム３２３は、ストレージコントローラ管理プログラム３２２を介して管理サーバ１００のストレージコントローラ管理情報４１２を参照し、前記ディスク入出力命令に含まれる内蔵ディスク１１７のＩＤを元に、ストレージコントローラ管理情報４１２の管理対象ディスク欄６０４を検索する。その後、外部ストレージ接続プログラム３２３は、検索により得られた行のアドレス欄６０３から第一のストレージコントローラＬＰＡＲ１１３のアドレスを取得する。ここで、外部ストレージ接続プログラム３２３は、管理サーバ１００へ接続するのではなく、外部ストレージ接続プログラム３２３内に内蔵ディスク１１７のＩＤと第一のストレージコントローラＬＰＡＲ１１３のアドレスとの組み合わせをキャッシュしておき、それを参照してもよい。
【００９２】
続けて、外部ストレージ管理プログラム３２３は、取得した前記アドレスを使い、ステップ８０６で確立した通信を通して、第一のストレージコントローラＬＰＡＲ１１３に対し、ネットワーク１３０を介して前記ディスク入出力命令を送信する。ここで、前記ディスク入出力命令の送信方法は、外部ストレージ接続プログラム３２３が前記ディスク入出力命令に対し、ネットワーク１３０が採用するＩＰなどの通信プロトコルに合わせてヘッダを付加することで前記ディスク入出力命令をカプセル化し、ネットワーク１３０を介して送信する送信方法であり、例えばｉＳＣＳＩである。
【００９３】
ステップ１２０４において、第一のストレージコントローラＬＰＡＲ１１３の外部ストレージ接続プログラム３２３は、第二のストレージコントローラＬＰＡＲ１２３から転送された前記カプセル化したディスク入出力命令を受信し、前記カプセル化したディスク入出力命令から第二のストレージコントローラＬＰＡＲの外部ストレージ接続プログラム３２３が付加したヘッダを除去することで、前記ディスク入出力命令を取り出す。続けて、第一のストレージコントローラＬＰＡＲ１１３の外部ストレージ接続プログラム３２３は、前記ディスク入出力命令に含まれる内蔵ディスク１１７のＩＤを元に、第一のストレージコントローラＬＰＡＲ１１３の物理ディスク制御プログラム３２４に対し前記ディスク入出力命令を発行する。
【００９４】
物理ディスク制御プログラム３２４は、仮想ディスクアダプタ１１５を介し、内蔵ディスク１１７に対し前記ディスク入出力命令を発行する。また、物理ディスク制御プログラム３２４は、内蔵ディスク１１７に対して発行された前記ディスク入出力命令の結果を、仮想ディスクアダプタ１１５を介して受け取る。ここで、物理ディスク制御プログラム３２４が前記ディスク入出力命令を発行し、その結果を受け取る処理は、一般的な仮想化機構が備えるディスク入出力処理である。
【００９５】
ステップ１２０５において、第一のストレージコントローラＬＰＡＲ１１３の物理ディスク制御プログラム３２４は、前記ディスク入出力命令の結果を第一のストレージコントローラＬＰＡＲ１１３の外部ストレージ接続プログラム３２３に転送する。
【００９６】
続けて、外部ストレージ接続プログラム３２３は、ストレージコントローラ管理プログラム３２２を介して管理サーバ１００のディスク共有管理情報４１３を参照し、前記ディスク入出力命令に含まれる内蔵ディスク１１７のＩＤを元に、ディスク共有管理情報４１３の内蔵ディスクＩＤ欄７０１を検索する。その後、外部ストレージ接続プログラム３２３は、検索により得られた行の仮想ディスクＩＤ欄７０３から、内蔵ディスク１１７に対応する仮想ディスク１２５のＩＤを取得する。次に、外部ストレージ接続プログラム３２３は、管理サーバ１００のストレージコントローラ管理情報４１２の管理対象ディスク欄６０４を、前記仮想ディスクＩＤを元に検索し、得られた行のアドレス欄６０３から、仮想ディスク１２５を管理する第二のストレージコントローラＬＰＡＲのアドレスを取得する。ここで、外部ストレージ接続プログラム３２３は、管理サーバ１００へ接続するのではなく、外部ストレージ接続プログラム３２３内に内蔵ディスク１１７のＩＤと、仮想ディスク１２５のＩＤと、第二のストレージコントローラＬＰＡＲ１２３のアドレスの組み合わせをキャッシュしておき、それを参照してもよい。
【００９７】
続けて、外部ストレージ接続プログラム３２３は、取得したアドレスを使い、第二のストレージコントローラＬＰＡＲ１２３に対し、前記ディスク入出力命令の結果を送信する。ここで、前記ディスク入出力命令の結果の送信方法は、ステップ１２０３で記述した送信方法と同様であり、前記ディスク入出力命令の結果に対し、ネットワーク１３０が採用する通信プロトコルに合わせたヘッダを付加することで、前記ディスク入出力命令の結果をカプセル化し、ネットワーク１３０を介して送信する送信方法である。
【００９８】
ステップ１２０６において、第二のストレージコントローラＬＰＡＲ１２３の外部ストレージ接続プログラム３２３は、第一のストレージコントローラＬＰＡＲ１１３が送信した前記カプセル化したディスク入出力命令の結果を受信し、前記カプセル化したディスク入出力命令の結果から、第一のストレージコントローラＬＰＡＲの外部ストレージ接続プログラム３２３が付加したヘッダを除去することで、前記ディスク入出力命令の結果を取り出す。続けて、第二のストレージコントローラＬＰＡＲ１２３の外部ストレージ接続プログラム３２３は、仮想ディスク制御プログラム３２５に対し、前記ディスク入出力命令の結果を送信する。
【００９９】
続けて、仮想ディスク制御プログラム３２５は、第二のＬＰＡＲ１２２に対して前記ディスク入出力命令の結果を送信する。具体的には、仮想ディスク制御プログラム３２５は、第二の仮想化機構１２１の仮想ディスクアダプタ１２４に対し、例えばハイパーコールやＡＰＩなどを利用して前記ディスク入出力命令の結果を送信する。仮想ディスクアダプタ１２４は、例えば割り込み命令などの、仮想化機構がＬＰＡＲに対して情報を伝達できる命令を利用して、前記ディスク入出力命令の結果を第二のＬＰＡＲ１２２に対し送信する。
【０１００】
以上の手順により、第二のＬＰＡＲ１２２が仮想ディスクアダプタ１２４に対して入出力命令を発行し、内蔵ディスク１１７に保存されたデータを読み書きする際の処理を実現できる。これにより、高価な共有ストレージを不要とし、安価な内蔵ディスクを採用することによるコスト削減と、ディスク共有による利便性を両立できるという効果を有する。
【符号の説明】
【０１０１】
１００  管理サーバ、１１０  第一のサーバ、１２０  第二のサーバ、１１１および１２１  仮想化機構、１１２および１２２  ＬＰＡＲ、１１３および１２３  ストレージコントローラＬＰＡＲ、１１４および１１５および１２４  仮想ディスクアダプタ、１１６  物理ディスクアダプタ、１１７  内蔵ディスク、１２５  仮想ディスク、２００  物理サーバ、２０１  プロセッサ、２０２  メモリ、２０３  ネットワークアダプタ、２０４  ディスクアダプタ、２０５  入出力装置、２０６  システムバス、２０７  プログラム、３００  仮想化機構、３０１  ＬＰＡＲ制御プログラム、３０２  リソース割当プログラム、３１０  ＬＰＡＲ、３１１  プログラム、３２０  ストレージコントローラＬＰＡＲ、３２１  ＯＳ、３２２  ストレージコントローラ管理プログラム、３２３  外部ストレージ接続プログラム、３２４  物理ディスク制御プログラム、３２５  仮想ディスク制御プログラム、３２６  管理情報更新プログラム、４０１  ＯＳ、４０２  ストレージコントローラ制御プログラム、４０３  ディスク共有管理プログラム、４１１  ディスク割当管理情報、４１２  ストレージコントローラ管理情報、４１３  ディスク共有管理情報、５０１ないし５０５  テーブル内データ、６０１ないし６０５  テーブル内データ、７０１ないし７０４  テーブル内データ、８０１ないし８０８  処理ステップ、１２０１ないし１２０６  処理ステップ
【図１】
0005439435.tif 000002
【図２】
0005439435.tif 000003
【図３】
0005439435.tif 000004
【図４】
0005439435.tif 000005
【図５】
0005439435.tif 000006
【図６】
0005439435.tif 000007
【図７】
0005439435.tif 000008
【図８】
0005439435.tif 000009
【図９Ａ】
0005439435.tif 000010
【図９Ｂ】
0005439435.tif 000011
【図１０Ａ】
0005439435.tif 000012
【図１０Ｂ】
0005439435.tif 000013
【図１１Ａ】
0005439435.tif 000014
【図１１Ｂ】
0005439435.tif 000015
【図１２】
0005439435.tif 000016