JP4979584B2 - 共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法 - Google Patents

共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法 Download PDF

Info

Publication number
JP4979584B2
JP4979584B2 JP2007535841A JP2007535841A JP4979584B2 JP 4979584 B2 JP4979584 B2 JP 4979584B2 JP 2007535841 A JP2007535841 A JP 2007535841A JP 2007535841 A JP2007535841 A JP 2007535841A JP 4979584 B2 JP4979584 B2 JP 4979584B2
Authority
JP
Japan
Prior art keywords
virtual
storage
computer
computing platform
virtual machine
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.)
Expired - Fee Related
Application number
JP2007535841A
Other languages
English (en)
Other versions
JP2008516344A (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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2008516344A publication Critical patent/JP2008516344A/ja
Application granted granted Critical
Publication of JP4979584B2 publication Critical patent/JP4979584B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

[発明の分野]
本発明は、コンピューティングの分野に関する。より詳細には、本発明は、資源がユーザによって共有されるコンピューティングの分野に関する。
[関連出願]
本出願は、(本出願と同じ日)に出願された米国特許出願第(代理人整理番号第200401984−1号及び200401985−1号)号に関連する。これらの米国特許出願の内容は、参照により本明細書に援用される。
[発明の背景]
ユーティリティデータセンター等の通常の共有コンピューティング環境は、コンピュータ、ディスクアレイ、LAN(ローカルエリアネットワーク)、及びSAN(ストレージエリアネットワーク)を含む。LANは、コンピュータを互いに結合している。SANは、コンピュータの少なくともいくつか(たとえば、ストレージサーバ)をディスクアレイに結合している。ユーザは、共有コンピューティングシステムでアプリケーションを実行して結果を生成する。
いくつかの共有コンピューティング環境は、LANにはVLAN(バーチャルLAN)デバイスを含み、SANにはストレージアクセス制限デバイスを含む。このような共有コンピューティング環境は、サーバ及びストレージ資源をコンピュータクラスタに分割する能力を有する。特定のコンピュータクラスタのネットワークトラフィックは、VLANデバイスを使用してその特定のコンピュータクラスタ内に保持される。その特定のコンピュータクラスタのストレージI/O(入出力)は、ストレージアクセス制限デバイスを使用して隔離される。このように、VLANデバイス及びストレージアクセスデバイスによって、共有コンピューティング環境にコンピュータクラスタを形成する能力が提供される。
VLANデバイス又はストレージアクセス制限デバイスを含まない共有コンピューティング環境が多く存在する。既存の共有コンピューティング環境にVLANデバイス又はストレージアクセス制限デバイスを追加することは、双方のデバイスのコスト及び共有コンピューティング環境を再構成する労力を招く。新しい共有コンピューティング環境を構築する時であっても、VLANデバイス及びストレージアクセス制限デバイスによって、共有コンピューティング環境のコストは増加する。したがって、このようなデバイスを含まない共有コンピューティング環境にコンピュータクラスタを形成できることがより効率的である。また、コンピュータクラスタと共有コンピューティング環境の残りの部分との間の隔離を維持すると同時に、サーバの一部及びストレージ資源の一部をコンピュータクラスタに任意に割り当てることができることが望ましい。さらに、単一の論理ストレージボリュームの一部ではない少なくとも二組のストレージ資源からのストレージ資源を含む共有コンピューティング環境内にコンピュータクラスタのストレージボリュームを形成できることが望ましい。
欧州特許出願公開第1438665号 米国特許出願公開第2003/126132号 WHITAKER A他, 「DENALI: LIGHTWEIGHT VIRTUAL MACHINES FOR DISTRIBUTED AND NETWORKED APPLICATIONS」 PROCEEDINGS OF THE USENIX ANNUAL TECHNICAL CONFERENCE, 2002年6月, page COMPLETE, XP001188148 the whole document
必要とされているものは、共有コンピューティング環境内においてコンピュータクラスタにストレージを提供する方法である。
[発明の概要]
本発明は、共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法を含む。一実施の形態によれば、この方法は、共有コンピューティング環境内のストレージ資源を仮想ストレージプール内に結合する第1のステップから開始する。仮想ストレージプールは、ストレージデバイスの少なくとも1つが、当該ストレージデバイスのいずれかに直接アクセスするすべてのコンピュータによって直接アクセス可能であるとは限らない、ストレージデバイスの少なくとも一部を含む。この方法は、仮想ストレージプールからの仮想ストレージボリュームをパーティショニングする第2のステップに続く。第3のステップでは、この方法は、仮想ストレージボリュームを仮想コンピュータクラスタに割り当てる。この方法は、ソフトウェアを使用して、仮想ストレージボリュームを、仮想コンピュータクラスタのコンピューティングプラットフォームにアクセス可能にする第4のステップで終了する。このソフトウェアは、コンピューティングプラットフォームによる仮想ストレージボリュームへのアクセスを可能にする一方で、コンピューティングプラットフォームによる共有コンピューティング環境内の残りのストレージへのアクセスを排除するものである。
本発明のこれらの態様及び他の態様を本明細書でさらに詳細に説明する。
本発明をその特定の例示的な実施の形態に関して説明し、それに応じて図面を参照する。
[好ましい実施の形態の詳細な説明]
一態様によれば、本発明は、共有コンピューティング環境(たとえば、ユーティリティデータセンター)内に仮想コンピュータクラスタを形成する方法を含む。別の態様によれば、本発明は、共有コンピューティング環境においてホストコンピュータを管理する方法を含む。別の態様によれば、本発明は、共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法を含む。
共有コンピューティング環境内に仮想コンピュータクラスタを形成する方法の一実施の形態を図1にフローチャートとして示す。方法100は、共有コンピューティング環境の特定のホストコンピュータにゲートキーパソフトウェアを設置する第1のステップ102から開始する。方法100は、特定のホストコンピュータに位置するコンピューティングプラットフォームを仮想コンピュータクラスタに割り当てる第2のステップ104に続く。ゲートキーパソフトウェアは、コンピューティングプラットフォームと特定のホストコンピュータのハードウェア資源との間に介入する。方法100が仮想コンピュータクラスタを形成する共有コンピューティング環境(たとえば、ユーティリティデータセンター)の一実施の形態を図2に概略的に示す。共有コンピューティング環境200は、ホストコンピュータ202、ディスクアレイ204、SAN(ストレージエリアネットワーク)206、及びLAN(ローカルエリアネットワーク)208を備える。SAN206は、ホストコンピュータ202をディスクアレイ204に結合している。LAN208は、ホストコンピュータ202を互いに結合している。一実施の形態では、LAN208は、ワイドエリアネットワーク210(たとえば、インターネット)に結合している。各ホストコンピュータ202は、プロセッサ212、メモリ214、HBA(ホストバスアダプタ)216、及びNIC(ネットワークインターフェースカード)218を備える。HBA216は、ホストコンピュータ202をSAN206に結合している。NIC218は、ホストコンピュータ202をLAN208に結合している。ディスクアレイ220は、第1のホストコンピュータ202Aに結合している。ディスクアレイ220は、第1のホストコンピュータ202Aのダイレクトアタッチドストレージを備える。このダイレクトアタッチドストレージは、第1のホストコンピュータ202Aのローカルストレージを備える。ホストコンピュータ202は、ディスクアレイ204にアクセスするクライアントとすることができる。或いは、ホストコンピュータ202は、クライアント(図示せず)のディスクアレイ204にアクセスするサーバとすることができる。
一実施の形態によれば、方法100(図1)の第1のステップ102は、第1のコンピューティングプラットフォーム及び第2のコンピューティングプラットフォームを仮想コンピュータクラスタに割り当てる。第1のコンピューティングプラットフォーム及び第2のコンピューティングプラットフォームは、第1のホストコンピュータ202A及び第2のホストコンピュータ202Bにそれぞれ存在する。第1のコンピューティングプラットフォーム及び第1のホストコンピュータ202Aは、第1のコンピュータシステムを構成する。第2のコンピューティングプラットフォーム及び第2のホストコンピュータ202Bは、第2のコンピュータシステムを構成する。
第1のコンピュータシステムの一実施の形態を図3に概略的に示す。第1のコンピュータシステム300は、第1のホストコンピュータ202A(ブロックとして図示)、第1の仮想マシンモニタ304、及び第1のコンピューティングプラットフォーム306を備える。第1の仮想マシンモニタ304は、第1のコンピューティングプラットフォーム306への仮想マシンインターフェース305を提供する。この点で、第1のコンピューティングプラットフォーム306は、オペレーティングシステムカーネル308を含む第1の仮想マシンである。仮想コンピュータクラスタの動作時には、第1のコンピューティングプラットフォーム306は、オペレーティングシステムカーネル308を含むオペレーティングシステムをブートする。仮想コンピュータクラスタのユーザには、コンピューティングプラットフォーム306への管理アクセス(たとえば、Unix(登録商標)システムにおけるルートアカウント又はWindows(登録商標)システムにおけるアドミニストレータアカウントへのアクセス)が与えられる。ユーザは、その後、オペレーティングシステムカーネル308をカスタマイズすることができ、オペレーティングシステムカーネル又はユーザレベル310においてアプリケーション(複数可)又はサービス(複数可)を実行することができる。仮想マシンインターフェース305は、仮想コンピュータクラスタのユーザによる第1のホストコンピュータ202Aのハードウェアへの直接アクセスを排除する。仮想コンピュータクラスタのユーザには、第1のコンピューティングプラットフォーム306内に位置するオペレーティングシステムへのルートアクセスを与えることはできるが、このユーザが第1のホストコンピュータ202Aのハードウェアに直接アクセスすることは、第1の仮想マシンモニタ304によって阻止される。
一般に、仮想コンピュータクラスタのクラスタアドミニストレータには、第1のコンピューティングプラットフォーム306内に位置するオペレーティングシステムへのルートアクセスが与えられる一方、仮想コンピュータクラスタの他のユーザには、より多く制限されたアクセスが与えられる。それら他のユーザがルートアクセスを受け取るのか、それともより多く制限されたアクセスを受け取るのかは、クラスタアドミニストレータの裁量の範囲内、又は、クラスタアドミニストレータが、使用するように指示を受けているポリシーの範囲内にある。
一実施の形態では、第1のコンピュータシステム300は、別の仮想マシン312をさらに備える。この仮想マシン312は、別のユーザが別のコンピューティングプラットフォームとして使用することができる。動作時には、第1のコンピューティングプラットフォーム306(すなわち、第1の仮想マシン)のユーザ及びこの別のコンピューティングプラットフォーム(すなわち、別の仮想マシン312)の別のユーザは、通常、それぞれオペレーティングシステム及び1つ又は複数のアプリケーションを実行する。これらのオペレーティングシステム及び1つ又は複数のアプリケーションは、他方のユーザの仮想マシンから隔離されており、且つ、他方のユーザの仮想マシンに対してトランスペアレントである。別の実施の形態では、第1のコンピュータシステム300は、複数の追加仮想マシンをさらに備える。
第2のコンピュータシステムの一実施の形態を図4に概略的に示す。第2のコンピュータシステム400は、第2のホストコンピュータ202B(ブロックとして図示)、第2の仮想マシンモニタ404、及び第2のコンピューティングプラットフォーム406を備える。第2の仮想マシンモニタ404は、第2のコンピューティングプラットフォーム406への仮想マシンインターフェース405を提供する。この点で、第2のコンピューティングプラットフォーム406は第2の仮想マシンである。代替的な実施の形態では、第2のコンピュータシステム400は、1つ又は複数の追加仮想マシンをさらに備える。
一実施の形態によれば、方法100(図1)は、第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406(図3及び図4)を含む仮想コンピュータクラスタを、共有コンピューティング環境200(図2)の残りの部分から隔離する第3のステップ106で終了する。第3のステップ106は、第1のホストコンピュータ202A及び第2のホストコンピュータ202Bを含む、仮想コンピュータクラスタのホストコンピュータに位置するゲートキーパソフトウェアを使用して隔離を行う。ゲートキーパソフトウェアは、仮想コンピュータクラスタのコンピューティングプラットフォーム間の通信を可能にする一方で、共有コンピューティング環境内の他のコンピューティングプラットフォームとの通信を排除する。また、ゲートキーパソフトウェアは、コンピュータクラスタの入力オペレーション及び出力オペレーションも制御する。
一実施の形態では、ゲートキーパは、仮想コンピュータクラスタの資源(たとえば、コンピューティングプラットフォーム及び仮想ストレージ)のテーブルを保持して、テーブルで特定された資源内でのみネットワークトラフィック及び入出力トラフィックを可能にすることによって、仮想コンピュータクラスタを共有コンピューティング環境の残りの部分から隔離する。このテーブルは、ネットワークアドレス、ハードウェア識別子、内部で生成された番号、一意の識別子(たとえば、仮想サーバID)、ベンダに特有の一意の識別子(たとえば、ワールドワイド名)、又は他の識別子として資源を特定することができる。仮想コンピュータクラスタのユーザは、テーブルの資源にのみアクセスすることができる。好ましくは、仮想コンピュータクラスタのユーザは、テーブルに列挙されていない共有コンピューティング環境の資源を検出することも阻止される。
一実施の形態では、ゲートキーパソフトウェアは、第1のコンピュータシステム300(図3)の第1の仮想マシンモニタ304及び第2のコンピュータシステム400(図4)の第2の仮想マシンモニタ404内に存在する。第1の仮想マシンモニタ304は、第1の仮想マシンモニタ304へのアクセスを防ぐ仮想マシンインターフェースによって第1のコンピューティングプラットフォーム306から切り離され、第2の仮想マシンモニタ404は、第2の仮想マシンモニタ404へのアクセスを防ぐ仮想マシンインターフェースによって第2のコンピューティングプラットフォーム406から切り離されているので、ゲートキーパソフトウェアは、仮想コンピュータクラスタのユーザによる非物理的な不正変更(tampering)から保護される。一実施の形態では、仮想コンピュータクラスタのユーザは、共有コンピューティング環境200への物理アクセスを認められていない。これによって、ゲートキーパソフトウェアは、仮想コンピュータクラスタのユーザによる物理的な不正変更から保護される。別の実施の形態では、共有コンピューティング環境200のホストコンピュータ202は、共有コンピューティング環境200のユーザによるゲートキーパソフトウェアへの物理的な不正変更に対して保護を行う信頼できるコンピューティングモジュールを含む。好ましくは、この信頼できるコンピューティングモジュールは、業界標準化団体であるトラステッドコンピューティンググループ(Trusted Computing Group)によって提案された標準規格を満たす。
代替的な実施の形態では、方法100は、共有コンピューティング環境内から仮想コンピュータクラスタにストレージ容量を割り当てる第4のステップ108をさらに含む。
仮想コンピュータクラスタの一実施の形態を図5に概略的に示す。仮想コンピュータクラスタは、仮想ネットワーク502によって互いに結合された第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406を備える。第1の仮想マシンインターフェース305(図3)及び第1の仮想マシンモニタ304は、第1のコンピューティングプラットフォーム306にトランスペアレントであり、第2の仮想マシンインターフェース405(図4)及び第2の仮想マシンモニタ404は、第2のコンピューティングプラットフォーム406にトランスペアレントである。したがって、これら、第1の仮想マシンインターフェース305及び第1の仮想マシンモニタ304、並びに、第2の仮想マシンインターフェース405及び第2の仮想マシンモニタ404は、仮想コンピュータクラスタ500(図5)には現れない。その代わり、仮想コンピュータクラスタ500のユーザは、第1の仮想コンピュータ506及び第2の仮想コンピュータ508を仮想コンピュータクラスタのコンピューティングプラットフォームとして認識する。第1の仮想マシンインターフェース305(図3)は、仮想コンピュータ500(図5)のユーザが第1の仮想マシンモニタ304(図3)のゲートキーパソフトウェアにアクセスすること、又は、当該ゲートキーパソフトウェアを見ることさえも防ぎ、第2の仮想マシンインターフェース405(図4)は、仮想コンピュータ500(図5)のユーザが第2の仮想マシンモニタ404(図4)のゲートキーパソフトウェアにアクセスすること、又は、当該ゲートキーパソフトウェアを見ることさえも防ぐ。これは、ゲートキーパソフトウェアと共に、仮想コンピュータクラスタ500のユーザが、共有コンピューティング環境200(図2)の残りの部分内の資源にアクセスすることを防ぎ、これらの資源は、仮想コンピュータクラスタ500(図5)の外側にある(is outside)。
一実施の形態では、仮想コンピュータクラスタは、仮想ストレージ504をさらに備える。仮想ストレージ504は、仮想SAN506によって第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406に結合されている。仮想ストレージ504を含む一実施の形態では、ゲートキーパソフトウェアは、共有コンピューティング環境200(図2)のストレージ資源の一部へのアクセスを可能にする一方、ストレージ資源の残りの部分へのアクセスを排除することによって仮想ストレージを形成する。別の実施の形態では、仮想コンピュータクラスタ500は、1つ又は複数の追加コンピューティングプラットフォーム(図示せず)をさらに備える。
一実施の形態では、仮想コンピュータクラスタ500(図5)は、共有コンピューティング環境200(図2)内の複数の仮想コンピュータクラスタの1つを構成する。この点で、方法100(図1)は、仮想コンピュータクラスタのそれぞれを形成するのに使用される。各仮想コンピュータクラスタは、他の仮想コンピュータクラスタのユーザによるその仮想コンピュータクラスタへのアクセスを排除する安全な環境を形成する。仮想コンピュータクラスタのうちの1つのユーザには、他の仮想コンピュータが検出不可能となっている(すなわち、他の仮想コンピュータクラスタ及びそれらに関連した仮想ストレージは、その仮想コンピュータクラスタ内からは見えない)。
また、第1の仮想マシンモニタ304のゲートキーパソフトウェアは、共有コンピューティング環境200の他のユーザによる第1のコンピューティングプラットフォーム306へのアクセスも防ぎ、第2の仮想マシンモニタ404のゲートキーパソフトウェアは、共有コンピューティング環境200の他のユーザによる第2のコンピューティングプラットフォーム406へのアクセスも防ぐ。一実施の形態では、ゲートキーパソフトウェアは、互いにトラフィックを送信することを許可されているコンピューティングプラットフォームのリスト及びコンピューティングプラットフォームがアクセス(たとえば、データの読み出し及び書き込み)できるストレージ資源のリストを認識するテーブルを使用することによって、第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406への認可されていないアクセスを防ぐ。テーブル内に存在しないコンピューティングプラットフォームを発信源とする、第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406へのアクセスの試みは拒絶される。また、テーブル内に存在しないコンピューティングプラットフォームを発信源とする、第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406に割り当てられたストレージ資源へのアクセスの試みも拒絶される。
第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406と、仮想ストレージ504のI/O(入出力)との間の仮想ネットワーク502を介したネットワークトラフィックは、さまざまな方法の1つで、他のユーザによる認可されていないアクセスから保護される。一実施の形態では、共有コンピューティング環境200のアドミニストレータ以外のすべてのユーザは、ゲートキーパソフトウェアによって、それらユーザ自身の仮想コンピュータクラスタ内に隔離される。別の実施の形態では、第1の仮想マシンモニタ304及び第2の仮想マシンモニタ404のゲートキーパソフトウェアは、第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406と仮想ストレージ504のI/Oとの間のネットワークトラフィックの暗号化を使用して、仮想コンピュータクラスタ500に属するデータへの認可されていないアクセスを防ぐ一方、そのデータは、第1のコンピューティングプラットフォーム306及び第2のコンピューティングプラットフォーム406の外側にある。
一実施の形態によれば、共有コンピューティング環境200(図2)の管理局が方法100(図1)を実行する。ゲートキーパソフトウェアは、管理局が、信頼できるソースであることを認識している。一実施の形態では、管理局は、共有コンピューティング環境200のスタンドアロンコンピュータ(図示せず)である。別の実施の形態では、管理局は、共有コンピューティング環境200のホストコンピュータ202の1つにおける仮想マシン内に存在する。たとえば、管理局は、第3の仮想マシン312(図3)に存在する場合がある。この例によれば、管理局は、管理API(アプリケーションプログラムインターフェース)314を通じて、共有コンピューティング環境200の仮想マシンモニタ304及び他の仮想マシンモニタとインターフェースする。管理API314は、共有コンピューティング環境200のホストコンピュータ202のゲートキーパソフトウェアへのアクセスを管理局に提供する。
一実施の形態では、共有コンピューティング環境200(図2)内の複数の管理局が協調して、方法100(図1)を実行する。たとえば、第1の管理局が第1のコンピュータシステム300(図3)内に存在し、第2の管理局が第2のコンピュータシステム400(図4)内に存在する場合がある。これら第1の管理局及び第2の管理局は、協調して方法100を実行する。
第1のコンピュータシステムの1つの代替的な実施の形態を図6に概略的に示す。第1のコンピュータシステム600は、第1のホストコンピュータ202A(ブロックとして図示)、第1のオペレーティングシステム602、第1の仮想マシンモニタ604、及び第1のコンピューティングプラットフォーム606を備える。第1の仮想マシンモニタ604は、第1のコンピューティングプラットフォーム606への仮想マシンインターフェース605を提供する。この点で、第1のコンピューティングプラットフォーム606は第1の仮想マシンである。
仮想コンピュータクラスタの動作時には、オペレーティングシステムカーネル608を含む第2のオペレーティングシステムが、通常、第1のコンピューティングプラットフォーム606にインストールされ、ユーザは、通常、第1のコンピューティングプラットフォーム606のユーザレベル610において1つ又は複数のアプリケーションを実行する。仮想マシンインターフェース605は、仮想コンピュータクラスタのユーザによる第1のオペレーティングシステム602又は第1のホストコンピュータ202Aのハードウェアへの直接アクセスを排除する。仮想コンピュータクラスタのユーザには、第1のコンピューティングプラットフォーム606内に位置する第2のオペレーティングシステムへのルートアクセスを与えることができる。しかし、ルートアクセスによっても、仮想マシンインターフェース605は、ユーザが、第1のオペレーティングシステム602又は第1のホストコンピュータ202Aのハードウェアにアクセスすることを防ぐ。
また、第1のコンピュータシステム600は、1つ又は複数の追加仮想マシン(図示せず)を含むこともできる。一実施の形態では、ゲートキーパソフトウェアは、第1のオペレーティングシステム602に存在する。別の実施の形態では、ゲートキーパソフトウェアは、第1の仮想マシンモニタ604に存在する。一実施の形態では、管理局は、第1のコンピュータシステムの管理プラットフォーム612に存在する。この点で、管理プラットフォーム612は、第1のオペレーティングシステム602と直接(すなわち、第1の仮想マシンモニタ604を通じないで)インターフェースする。
第1のコンピュータシステムの別の代替的な実施の形態を図7に概略的に示す。第1のコンピュータシステム700は、第1のホストコンピュータ202A(ブロックとして図示)及び第1のコンピューティングプラットフォーム706を備える。第1のコンピュータ202Aは、信頼できるコンピューティングモジュール705を含む。第1のコンピューティングプラットフォーム706は、オペレーティングシステムカーネル702を含む第1のオペレーティングシステム、及び、ユーザレベル710を備える。第1のオペレーティングシステムは、OS(オペレーティングシステム)デーモン704を含む。OSデーモン704はゲートキーパソフトウェアを含む。信頼できるコンピューティングモジュール705は、仮想コンピュータクラスタのユーザによる非物理的な不正変更を防ぐ。この点で、第1のコンピューティングプラットフォーム706はリアルマシンである(すなわち、第1のコンピューティングプラットフォームは、ハードウェア資源を他のコンピューティングプラットフォームと共有しない)。
仮想コンピュータクラスタの動作時には、ユーザは、通常、第1のコンピューティングプラットフォーム706のユーザレベル710において1つ又は複数のアプリケーションを実行する。仮想コンピュータクラスタのユーザには、第1のオペレーティングシステム702へのルートアクセスを与えることができるが、信頼できるコンピューティングモジュール705によって、OSデーモン704の非物理的な不正変更から排除される。この点で、OSデーモン704を除いて、仮想コンピュータクラスタのユーザは、第1のコンピュータシステム700の利用可能なコンピューティング環境(すなわち、第1のコンピューティングプラットフォーム706)の残りの部分にアクセスできるので、管理局は第1のコンピュータに存在しない。第1のコンピューティングプラットフォーム706のユーザが、OSデーモン704を不正変更しようと試みた場合、信頼できるコンピューティングモジュール705は、管理局に警報を出すことができる。このような状況において、管理局は、第1のコンピューティングプラットフォームを隔離して、悪意のあるアクティビティを試みているユーザが共有コンピューティング環境内で損害を引き起こすことを確実に防止するようにすることができる。一実施の形態では、仮想コンピュータクラスタのユーザは、信頼できるコンピューティングモジュール705への物理アクセスを認められていない。これによって、仮想コンピュータクラスタのユーザによるOSデーモン704への物理的な不正変更が防がれる。
仮想コンピュータを形成する方法100(図1)及び本発明の他の方法を使用する1つの代替的な共有コンピューティング環境は、共有コンピューティング環境200(図2)及び追加ホストコンピュータを備える。これら追加ホストコンピュータは、LAN208に結合しているが、SAN206には接続していない。その代わり、追加ホストコンピュータは、LAN208及びホストコンピュータ202を介してSAN206に結合している。
仮想コンピュータクラスタを形成する方法100(図1)及び本発明の他の方法を使用する別の代替的な共有コンピューティング環境は、共有コンピューティング環境200(図2)及び追加ホストコンピュータを備える。これら追加ホストコンピュータは、WAN210を介して共有コンピューティング環境200に結合している。
仮想コンピュータクラスタを形成する方法100(図1)及び本発明の他の方法を使用する別の代替的な共有コンピューティング環境を図8に概略的に示す。この代替的な共有コンピューティング環境800は、LAN808によって互いに結合された複数のホストコンピュータ802(たとえば、デスクトップコンピュータ)を備える。各ホストコンピュータ802は、プロセッサ812、メモリ814、ネットワークインターフェース818、及びストレージ820を備える。一実施の形態では、代替的な共有コンピューティング環境800はWAN810に結合している。
多数の共有コンピューティング環境が、本発明の方法の例示に適していることが当業者には容易に明らかであろう。さらに、本明細書で解説した共有コンピューティング環境は、本発明の方法の例示に適した、可能な共有コンピューティング環境のほんのわずかでしかないことも当業者には容易に明らかであろう。
本発明のコンピュータシステム(たとえば、ホストコンピュータシステム)を管理する方法の一実施の形態を図9にフローチャートとして示す。方法900は、仮想マシンモニタをコンピュータに設置する第1のステップ902から開始する。この仮想マシンモニタは、モジュールへのインターフェースを含む。このインターフェースは、コンピュータコードを含む。このコンピュータコードは、そのモジュールを認識し、仮想マシンモニタ及びモジュールが通信することを可能にし、モジュールのセキュリティ鍵を認識する。このセキュリティ鍵は、モジュールを仮想マシンモニタに追加することを許可されている、信頼できるソースによって、モジュールが提供されていることを検証する。方法900は、コンピューティングプラットフォームをコンピュータに形成する第2のステップ904に続く。仮想マシンモニタは、コンピューティングプラットフォームとコンピュータのハードウェア資源との間に介入し、コンピューティングプラットフォームで実行されるソフトウェアのハードウェア資源に対するアクセス制御を提供する。
方法900によって管理されるコンピュータシステムの一実施の形態を図10に概略的に示す。コンピュータシステム1000は、コンピュータハードウェア1002(たとえば、プロセッサ、メモリ、及びネットワークインターフェース)、仮想マシンモニタ1004、及びコンピューティングプラットフォーム1006を備える。この点で、コンピューティングプラットフォーム1006は、オペレーティングシステムカーネル1008を含んだオペレーティングシステムを含む仮想マシンである。通常、動作時に、コンピューティングプラットフォーム1006のユーザは、コンピューティングプラットフォーム1006のユーザレベル1010において1つ又は複数のアプリケーションを実行する。仮想マシンモニタ1004は仮想マシンインターフェース1005を含む。この仮想マシンインターフェース1005は、コンピューティングプラットフォーム1006のユーザによる仮想マシンモニタ1004又はコンピュータハードウェア1002の非物理的な不正変更を防ぐ。コンピュータシステム1000は、1つ又は複数の追加コンピューティングプラットフォーム(すなわち、1つ又は複数の追加仮想マシン)をさらに備えることができる。
一実施の形態によれば、方法900(図9)は、インターフェースを通じてモジュール1012(図10)を仮想マシンモニタ1004に追加する第3のステップ906で終了する。第3のステップ906は、コンピュータシステム1000のアドミニストレータがコンピュータシステム1000の管理局から実行することができる。コンピューティングプラットフォーム1006のユーザがインストールできる(たとえばオペレーティングシステム用の)ロード可能モジュールと異なり、モジュール1012は、インストールの認可を必要とする。モジュール1012をロード可能モジュールと区別することがこの機能である。この点で、管理局は、モジュール1012をインストールする権限を有する。好ましくは、仮想マシンモニタ1004及びモジュール1012は、コンピューティングプラットフォーム1006のユーザにトランスペアレントである。モジュール1012は、(たとえば、ゲートキーパソフトウェアの機能を強化することによって)仮想マシンモニタの機能を強化する。これについては、以下でより十分に説明する。
1つの代替的な実施の形態によれば、方法900(図9)は、仮想マシンモニタ1004に1つ又は複数の追加モジュール1014(図10)を追加することをさらに含む。これら追加モジュール1014は、仮想マシンモニタ1004の他のインターフェースに結合することができる。或いは、追加モジュール1014は、スタッキングメカニズムを通じてインターフェースすることもできる。このスタッキングメカニズムでは、モジュール1012が仮想マシンモニタ1004のインターフェースに結合し、第1の追加モジュールが、モジュール1012の一部である第2のインターフェースを通じてモジュール1012に結合し、第2の追加モジュールが、第1の追加モジュールの一部である第3のインターフェースを介して第1の追加モジュールに結合する。
一実施の形態では、仮想マシンモニタ1004は、共有コンピューティング環境の仮想コンピュータクラスタ内にコンピューティングプラットフォーム1006を設置するゲートキーパソフトウェアを含む。この点で、1つ又は複数の他の仮想マシンモニタ内に位置する他のゲートキーパソフトウェアは、仮想コンピュータクラスタ内に他のコンピューティングプラットフォームを設置する。モジュール1012は、ゲートキーパソフトウェアの機能を強化する。これについては、以下でより十分に説明する。
ゲートキーパ強化の一実施の形態では、モジュール1012は、コンピュータプラットフォーム1006を離れるアウトバウンドデータを暗号化し、コンピューティングプラットフォーム1006を宛先とするインバウンドデータを解読する。このような実施の形態によれば、管理局は、暗号化鍵及び解読鍵をモジュール1012に提供する。
ゲートキーパ強化の別の実施の形態では、モジュール1012は、共有コンピューティング環境の仮想コンピュータクラスタ内の仮想ストレージへのアクセスを提供する。このストレージアクセスは、仮想ストレージへ出力されるデータを暗号化すること、及び仮想ストレージから受信されたデータを解読することを含むことができる。仮想ストレージは、データセンターのストレージ資源の仮想化され且つ統合された(consolidated)部分を備えることができる。
ゲートキーパ強化の別の実施の形態では、モジュール1012は、コンピューティングプラットフォーム1006のトラフィック監視を行う。ゲートキーパ強化のさらに別の実施の形態では、モジュール1012は、コンピューティングプラットフォーム1006のトラフィック制御を行う。たとえば、モジュール1012は、コンピューティングプラットフォーム1006へのトラフィックアドミッション制御を行うことができる。或いは、モジュール1012は、トラフィックスロットリングを行うこともできる。ゲートキーパソフトウェアの管理局は、モジュール1012にトラフィック制御パラメータを提供することができる。管理局は、トラフィック制御パラメータを定期的に更新することができる。
ゲートキーパ強化の別の実施の形態では、モジュール1012は、コンピューティングプラットフォーム1006内において動作時にオペレーティングシステムを監視する。ゲートキーパ強化のさらに別の実施の形態では、モジュール1012は、コンピュータハードウェア1002を監視する。
ゲートキーパ強化の別の実施の形態では、モジュール1012は、コンピューティングプラットフォーム1006内で実行されているアプリケーションを別のコンピューティングプラットフォームへマイグレーションする。この別のコンピューティングプラットフォームは、コンピュータハードウェア1002に存在する場合がある。或いは、この別のコンピューティングプラットフォームは、他のコンピュータハードウェア(たとえば、仮想コンピュータクラスタの別のコンピュータ)に存在する場合もある。オペレーティングシステムをアップグレードするために、アプリケーションをマイグレーションすることができる。このような状況では、アップグレードされたオペレーティングシステムはまず、別のコンピューティングプラットフォーム上に展開され、次に、アプリケーションが、オペレーティングシステム及びアップグレードされたオペレーティングシステムによって行われる調整を通じてマイグレーションされる。或いは、ホストコンピュータ間の負荷をバランスさせるためにアプリケーションをマイグレーションすることもできる。
方法900によって管理されるコンピュータシステムの1つの代替的な実施の形態を図11に概略的に示す。コンピュータシステム1100は、コンピュータハードウェア1102(たとえば、プロセッサ、メモリ、及びネットワークインターフェース)、仮想マシンモニタ1104、第1のコンピューティングプラットフォーム1106、及び第2のコンピューティングプラットフォーム1114を備える。通常、オペレーティングシステムカーネル1108を含むオペレーティングシステムは、コンピューティングプラットフォーム1114に設置される。通常、動作時に、コンピューティングプラットフォーム1106のユーザは、コンピューティングプラットフォーム1106のユーザレベル1110において1つ又は複数のアプリケーションを実行する。仮想マシンモニタ1104は仮想マシンインターフェース1105を含む。この仮想マシンインターフェース1105は、コンピューティングプラットフォーム1106のユーザによる仮想マシンモニタ1104又はコンピュータハードウェア1102の非物理的な不正変更を防ぐ。
一実施の形態によれば、方法900(図9)の第2のステップ904は、仮想マシンモニタ1104にモジュール1112を追加する。一実施の形態では、第2のコンピューティングプラットフォーム1114は管理局1116を含む。管理局1116は、仮想マシンモニタ1104にモジュール1112を追加することができる。このような状況において、仮想マシンモニタ1104は、管理API1118を含む。管理API1118によって、管理局1116は、仮想マシンモニタ1104にアクセスすることが可能になり、仮想マシンモニタ1104にモジュール1112を追加することが可能になる。管理局1116は、コンピュータシステム1100が存在する共有コンピューティング環境の他のコンピュータシステムの仮想マシンモニタにアクセスすることが可能な場合がある。このような状況では、管理局1116は、それら他のコンピュータシステムの仮想マシンモニタの少なくともいくつかにモジュールを追加することができる。
本発明の共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法の一実施の形態を図12にフローチャートとして示す。方法1200は、共有コンピューティング環境内のストレージ資源を仮想ストレージプール内に結合する第1のステップ1202から開始する。この仮想ストレージプールは、ストレージデバイスの少なくとも1つが、当該ストレージデバイスのいずれかに直接アクセスするすべてのコンピュータによって直接アクセス可能であるとは限らない、ストレージデバイスの少なくとも一部を含む。以下の第1の例及び第2の例がこの概念を示す。
第1の例では、方法1200は、共有コンピューティング環境200(図2)において使用される。この例によれば、ストレージ資源は、ディスクアレイ204(すなわち、ネットワークアタッチドストレージ)及びディスクアレイ220(すなわち、特定のホストコンピュータのダイレクトアタッチドストレージ)を備える。ホストコンピュータ202は、それぞれ、SAN206を介してディスクアレイ204に結合している。これによって、ディスクアレイ204はホストコンピュータ202によって直接アクセス可能になる。対照的に、ディスクアレイ220は、第1のホストコンピュータ202Aのみによって直接アクセス可能である。ディスクアレイ220は、ホストコンピュータ202の他のものによって直接アクセス可能でなく、ホストコンピュータ202のすべては、ディスクアレイ204に直接アクセスすることができるので、ディスクアレイ204及びディスクアレイ220を備えるストレージ資源は、ディスクアレイ204及びディスクアレイ220に直接アクセスするコンピュータのすべてによって直接アクセス可能であるとは限らないストレージデバイスを備える。
第2の例では、方法1200(図12)は、代替的な共有コンピューティング環境800(図8)において使用される。この例によれば、第1のステップ1202は、第1のストレージディスク820A及び第2のストレージディスク820Bを含むストレージ資源をプールする。これら第1のストレージディスク820A及び第2のストレージディスク820Bは、第1のホストコンピュータ802Aの一部及び第2のホストコンピュータ802Bの一部をそれぞれ形成する。この点で、第1のホストコンピュータ802Aは、第1のストレージディスク820Aに直接アクセスするが、第2のストレージディスク820Bには直接アクセスせず、第2のホストコンピュータ820Bは、第2のストレージディスク820Bに直接アクセスするが、第1のストレージディスク820Aには直接アクセスしない。
方法1200(図12)は、プールされたストレージ資源からの仮想ストレージボリュームをパーティショニングする第2のステップ1204に続く。たとえば、第2のステップ1204は、ディスクアレイ204(図2)からの第1のLUN(論理ユニット)及びディスクアレイ220からの第2のLUNをそれぞれパーティショニングする。この例によれば、仮想ストレージボリュームは、第1のLUN及び第2のLUNを備える。これは、第1のLUN及び第2のLUNを連結して仮想ストレージボリュームを形成することにより、又は、第1のLUN及び第2のLUNに対してストライピングの技法を使用して仮想ストレージボリュームを形成することにより行うことができる。或いは、仮想ストレージボリュームを第1のLUN及び第2のLUNにおいてミラーリングすることもできる。
第3のステップ1206では、方法1200は、仮想ストレージボリュームを仮想コンピュータクラスタに割り当てる。方法1200は、仮想ストレージボリュームを、仮想コンピュータクラスタ内のコンピューティングプラットフォームにアクセス可能にする第4のステップ1208で終了する。第4のステップ1208は、仮想コンピュータクラスタのユーザによる非物理的な不正変更から保護されるゲートキーパソフトウェアを使用する。このゲートキーパソフトウェアは、仮想コンピュータクラスタのコンピューティングプラットフォームをホスティングする複数のコンピュータのそれぞれに存在する。一実施の形態では、ゲートキーパソフトウェアの主要部が第4のステップ1208を実行する。別の実施の形態では、ゲートキーパソフトウェアを強化するモジュールが第4のステップ1208を実行する。
一実施の形態では、ゲートキーパソフトウェアは仮想ボリュームマネージャを備える。この仮想ボリュームマネージャは第4のステップ1208を実行する。仮想ボリュームマネージャは、ストレージ資源(たとえば、図2の共有コンピューティング環境200内のストレージ資源)内におけるLUNへの仮想LUNのマッピングを提供する。仮想LUNは、仮想コンピュータクラスタを形成するコンピューティングプラットフォームのオペレーティングシステムに提供される。オペレーティングシステムは、仮想ストレージボリューム内のデータの読み出し時及び書き込み時に仮想LUNを使用する。仮想ボリュームマネージャは、仮想ストレージボリュームのアクセス要求を受信すると、オペレーティングシステムから受信された仮想LUNを、共有コンピューティング環境のストレージ資源内の特定のLUNへ変換する。ゲートキーパソフトウェアは、次に、それに応じて、その要求をルーティングする。
一例示の実施の形態では、仮想コンピュータクラスタは、第1のホストコンピュータ202A及び第2のホストコンピュータ202B(図2)にそれぞれ存在する第1のコンピューティングプラットフォーム及び第2のコンピューティングプラットフォームを備える。別の例示の実施の形態では、第1のコンピューティングプラットフォームは第2のホストコンピュータ202Bに存在し、第2のコンピューティングプラットフォームは第3のホストコンピュータ202Cに存在する。さらに別の実施の形態では、第1のコンピューティングプラットフォーム及び第2のコンピューティングプラットフォームは、代替的な共有コンピューティング環境800の第1のホストコンピュータ802A及び第2のホストコンピュータ802B(図8)にそれぞれ存在する。
一実施の形態によれば、方法1200(図12)は、仮想ストレージボリュームへのアクセスを制御するステップをさらに含む。一実施の形態では、ゲートキーパが、仮想ストレージボリュームを宛先とした書き込みデータを暗号化し、仮想ストレージボリュームから到着した読み出しデータを解読することによって、仮想ストレージボリュームへのアクセスを制御するステップを実行する。好ましくは、これら暗号化及び解読は、データの送信及び受信を行うコンピューティングプラットフォーム内から見ることはできない。
別の実施の形態では、共有コンピューティング環境内のホストコンピュータ202のそれぞれにおけるゲートキーパソフトウェアが、仮想ストレージボリュームへのアクセスを制御するステップを実行する。この点で、ホストコンピュータ202は、それぞれ、ホストコンピュータのそれぞれにおけるユーザアクセス可能なコンピューティングプラットフォームをハードウェアから切り離す仮想マシンモニタを備える。ゲートキーパソフトウェアは、ホストコンピュータ202のそれぞれの仮想マシンモニタに存在する。ゲートキーパソフトウェアは、ユーザアクセス可能なコンピューティングプラットフォームのそれぞれについて割り当てられた仮想ストレージボリューム内にないストレージ資源へのアクセスを排除することによって、仮想ストレージボリュームへのアクセスを制御する。
一実施の形態によれば、方法1200(図12)は、複数のストレージデバイスにわたって仮想ストレージボリュームをストライピングするステップをさらに含む(たとえば、RAID0)。別の実施の形態によれば、方法1200は、複数のストレージデバイスにわたって仮想ストレージボリュームをミラーリングすることをさらに含む(たとえば、RAID1)。
一実施の形態によれば、方法1200は、複数のストレージデバイスにわたって仮想ストレージボリュームをイレーシャ符号化(erasure coding)することをさらに含む(たとえば、RAID5)。このイレーシャ符号化によって、1つ又は複数の喪失したデータブロックを、残りのデータブロックから再構成することが可能になる。一実施の形態によれば、方法1200は、仮想コンピュータクラスタと仮想ストレージボリュームとの間のストレージトラフィックをシェーピングするステップをさらに含む。このストレージトラフィックをシェーピングするステップは、ストレージトラフィックを遅延させることを含むことができる。ストレージトラフィックをシェーピングするステップは、ストレージトラフィックをバッチ処理することを含むことができる。或いは、ストレージトラフィックをシェーピングするステップは、ストレージトラフィック要求を再配列することを含むことができる。
一実施の形態によれば、方法1200は、ソースストレージデバイスからデスティネーションストレージデバイスへ仮想ストレージボリュームの少なくとも一部をマイグレーションするステップをさらに含む。ソースストレージデバイスからデスティネーションストレージデバイスへ仮想ストレージボリュームの少なくとも一部をマイグレーションしている間、方法1200は、第1の追加ステップ及び第2の追加ステップを含むことができる。第1の追加ステップは、ソースストレージデバイス及びデスティネーションストレージデバイスの双方に書き込みデータを記憶することを含む。第2の追加ステップは、ソースストレージデバイスからの読み出しデータにアクセスすることを含む。
本発明の上記詳細な説明は、例示の目的で提供されたものであり、網羅的であることを目的するものでもなければ、開示した実施の形態に本発明を限定することを目的とするものでもない。したがって、本発明の範囲は、添付の特許請求の範囲によって規定される。
本発明の共有コンピューティング環境内に仮想コンピュータクラスタを形成する方法の一実施の形態をフローチャートとして示す図である。 本発明の方法が使用される共有コンピューティング環境の一実施の形態を概略的に示す図である。 本発明の第1のコンピュータシステムの一実施の形態を概略的に示す図である。 本発明の第2のコンピュータシステムの一実施の形態を概略的に示す図である。 本発明の方法によって形成される仮想コンピュータクラスタの一実施の形態を概略的に示す図である。 本発明の1つの代替的なコンピュータシステムの一実施の形態を概略的に示す図である。 本発明の別の代替的なコンピュータシステムの一実施の形態を概略的に示す図である。 本発明の方法が使用される共有コンピューティング環境の別の実施の形態を概略的に示す図である。 本発明のコンピュータシステムを管理する方法の一実施の形態をフローチャートとして示す図である。 本発明のコンピュータシステムの一実施の形態を概略的に示す図である。 本発明の別のコンピュータシステムの一実施の形態を概略的に示す図である。 本発明の仮想コンピュータクラスタにストレージを提供する方法をフローチャートとして示す図である。
符号の説明
200・・・共有コンピューティング環境
202・・・ホストコンピュータ
204・・・ディスクアレイ
206・・・SAN
208・・・LAN
210・・・ワイドエリアネットワーク
212・・・プロセッサ
214・・・メモリ
216・・・HBA
218・・・NIC
220・・・ディスクアレイ
300・・・コンピュータシステム
304・・・仮想マシンモニタ
305・・・仮想マシンインターフェース
306・・・コンピューティングプラットフォーム
308・・・オペレーティングシステムカーネル
310・・・ユーザレベル
312・・・仮想マシン
400・・・コンピュータシステム
404・・・仮想マシンモニタ
405・・・仮想マシンインターフェース
406・・・コンピューティングプラットフォーム
500・・・仮想コンピュータクラスタ
504・・・仮想ストレージ
506・・・仮想コンピュータ
508・・・仮想コンピュータ
600・・・コンピュータシステム
602・・・オペレーティングシステム
604・・・仮想マシンモニタ
606・・・コンピューティングプラットフォーム
608・・・オペレーティングシステムカーネル
610・・・ユーザレベル
612・・・管理プラットフォーム
700・・・コンピュータシステム
702・・・オペレーティングシステムカーネル
704・・・デーモン
705・・・コンピューティングモジュール
706・・・コンピューティングプラットフォーム
710・・・ユーザレベル
800・・・共有コンピューティング環境
802・・・ホストコンピュータ
808・・・LAN
812・・・プロセッサ
814・・・メモリ
818・・・ネットワークインターフェース
820・・・ストレージ
1000・・・コンピュータシステム
1002・・・コンピュータハードウェア
1004・・・仮想マシンモニタ
1006・・・コンピューティングプラットフォーム
1008・・・オペレーティングシステムカーネル
1010・・・ユーザレベル
1012・・・モジュール
1014・・・追加モジュール
1100・・・コンピュータシステム
1102・・・コンピュータハードウェア
1104・・・仮想マシンモニタ
1106・・・コンピューティングプラットフォーム
1108・・・オペレーティングシステムカーネル
1110・・・ユーザレベル
1112・・・モジュール
1114・・・コンピューティングプラットフォーム
1116・・・管理局
1118・・・管理API

Claims (15)

  1. 複数のコンピュータシステム(300,400)を含む共有コンピューティング環境(200)内において仮想コンピュータクラスタにストレージを提供する方法であって、
    前記コンピュータシステム(300,400)それぞれは、コンピュータ(202)、コンピューティングプラットフォーム(306,406)、および、前記コンピュータ(202)と前記コンピューティングプラットフォーム(306,406)との間のインタフェース(305,405)を提供する仮想マシンモニタ(304,404)を有し、
    前記共有コンピューティング環境(200)内のストレージ資源を、ストレージデバイス(204,220)を含む仮想ストレージプール内に結合するステップと、
    前記仮想マシンモニタ(304,404)が、任意のストレージデバイス(204,220)に直接にアクセスするコンピュータ(202)から前記仮想ストレージプールに含まれる前記ストレージデバイスの少なくとも1つへの直接のアクセスを阻止するステップと、
    前記アクセスを阻止するための前記仮想マシンモニタ(304,404)が、
    前記仮想ストレージプールからの仮想ストレージボリュームをパーティショニングするステップと、
    前記仮想ストレージボリュームを前記仮想コンピュータクラスタに割り当てるステップと、
    前記コンピューティングプラットフォーム(306,406)による前記仮想ストレージボリュームへのアクセスを可能にする一方で、前記コンピューティングプラットフォーム(306,406)による前記共有コンピューティング環境(200)内の残りのストレージへのアクセスを排除するソフトウェアを使用して、前記仮想ストレージボリュームを、前記仮想コンピュータクラスタの前記コンピューティングプラットフォーム(306,406)にアクセス可能にするステップと
    を含む方法。
  2. 前記ストレージ資源は、
    ネットワークアタッチドストレージ(204)
    を備える
    請求項1に記載の方法。
  3. 前記ネットワークアタッチドストレージは、
    ストレージエリアネットワーク(206)
    を備える
    請求項2に記載の方法。
  4. 前記ストレージ資源は、
    ホストコンピュータ(202)のローカルストレージ(220)
    を備える
    請求項1に記載の方法。
  5. 前記仮想コンピュータクラスタの前記コンピューティングプラットフォーム(306,406)は、
    第1のコンピューティングプラットフォーム及び第2のコンピューティングプラットフォーム
    を含み、
    第1の仮想マシンモニタ及び第2の仮想マシンモニタが、前記第1のコンピューティングプラットフォーム及び前記第2のコンピューティングプラットフォームを、第1のホストコンピュータ及び第2のホストコンピュータのハードウェアからそれぞれ切り離す
    請求項1に記載の方法。
  6. 前記第1の仮想マシンモニタ及び前記第2の仮想マシンモニタはそれぞれ、
    前記ソフトウェア
    を備え、
    前記第1の仮想マシンモニタ及び前記第2の仮想マシンモニタは、前記仮想コンピュータクラスタを、前記共有コンピューティング環境(200)の残りの部分から分離する
    請求項5に記載の方法。
  7. 前記仮想ストレージボリュームへのアクセスを制御するステップ
    をさらに含む
    請求項6に記載の方法。
  8. 前記ソフトウェアは、前記仮想ストレージボリュームを宛先とした書き込みデータを暗号化し、前記仮想ストレージボリュームから到着した読み出しデータを解読することによって、前記仮想ストレージボリュームへのアクセスを制御するステップを実行する
    請求項7に記載の方法。
  9. 前記仮想ストレージボリュームへのアクセスを制御するステップ
    をさらに含む
    請求項1に記載の方法。
  10. 前記共有コンピューティング環境(200)の複数のホストコンピュータ(202)はそれぞれ、
    前記複数のホストコンピュータ(202)のそれぞれにおけるユーザアクセス可能なコンピューティングプラットフォームをハードウェアから切り離す仮想マシンモニタ
    を備え、
    前記仮想マシンモニタはそれぞれ、
    前記ソフトウェア
    を備え、
    前記ソフトウェアは、
    前記ユーザアクセス可能なコンピューティングプラットフォームのそれぞれについて割り当てられた仮想ストレージボリューム内にないストレージ資源へのアクセスを排除することによって、前記仮想ストレージボリュームへのアクセスを制御するステップを実行する
    請求項9に記載の方法。
  11. 前記仮想コンピュータクラスタと前記仮想ストレージボリュームとの間のストレージトラフィックをシェーピングするステップ
    をさらに含む
    請求項1に記載の方法。
  12. 前記ストレージトラフィックをシェーピングするステップは、
    前記ストレージトラフィックを遅延させること
    を含む
    請求項11に記載の方法。
  13. 前記ストレージトラフィックをシェーピングするステップは、
    前記ストレージトラフィックをバッチ処理すること
    を含む
    請求項11に記載の方法。
  14. 前記ストレージトラフィックをシェーピングするステップは、
    前記ストレージトラフィック要求を再配列すること
    を含む
    請求項11に記載の方法。
  15. 複数のコンピュータシステム(300,400)を含む共有コンピューティング環境(200)内において仮想コンピュータクラスタにストレージを提供する方法を実施するためのコンピュータコードを含むコンピュータ(202)可読媒体であって、前記コンピュータシステム(300,400)それぞれは、コンピュータ(202)、コンピューティングプラットフォーム(306,406)、および、前記コンピュータ(202)と前記コンピューティングプラットフォーム(306,406)との間のインタフェース(305,405)を提供する仮想マシンモニタ(304,404)を有し、
    前記仮想コンピュータクラスタに前記ストレージを提供する前記方法は、
    前記共有コンピューティング環境(200)内のストレージ資源を仮想ストレージプール内に結合するステップと、
    前記仮想マシンモニタ(304,404)が、任意のストレージデバイス(204,220)に直接にアクセスするコンピュータ(202)による前記仮想ストレージプールに含まれる前記ストレージデバイスの少なくとも1つへの直接のアクセスを阻止するステップと、
    前記アクセスを阻止するための前記仮想マシンモニタ(304,404)が、
    前記仮想ストレージプールからの仮想ストレージボリュームをパーティショニングするステップと、
    前記仮想ストレージボリュームを前記仮想コンピュータクラスタに割り当てるステップと、
    前記コンピューティングプラットフォーム(306,406)による前記仮想ストレージボリュームへのアクセスを可能にする一方で、前記コンピューティングプラットフォーム(306,406)による前記共有コンピューティング環境(200)内の残りのストレージへのアクセスを排除するソフトウェアを使用して、前記仮想ストレージボリュームを、前記仮想コンピュータクラスタの前記コンピューティングプラットフォーム(306,406)にアクセス可能にするステップと
    を含む
    コンピュータ可読媒体。
JP2007535841A 2004-10-06 2005-10-05 共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法 Expired - Fee Related JP4979584B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/959,851 2004-10-06
US10/959,851 US20060075199A1 (en) 2004-10-06 2004-10-06 Method of providing storage to virtual computer cluster within shared computing environment
PCT/US2005/036166 WO2006042115A2 (en) 2004-10-06 2005-10-05 Method of providing storage to virtual computer cluster within shared computing environment

Publications (2)

Publication Number Publication Date
JP2008516344A JP2008516344A (ja) 2008-05-15
JP4979584B2 true JP4979584B2 (ja) 2012-07-18

Family

ID=35613765

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007535841A Expired - Fee Related JP4979584B2 (ja) 2004-10-06 2005-10-05 共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法

Country Status (4)

Country Link
US (1) US20060075199A1 (ja)
EP (1) EP1805590A2 (ja)
JP (1) JP4979584B2 (ja)
WO (1) WO2006042115A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620984B2 (en) * 2004-10-06 2009-11-17 Hewlett-Packard Development Company, L.P. Method of managing computer system
US7552279B1 (en) * 2006-01-03 2009-06-23 Emc Corporation System and method for multiple virtual computing environments in data storage environment
JP5010191B2 (ja) * 2006-06-21 2012-08-29 日本電気株式会社 ストレージ装置及びその動作制御方法
US8370833B2 (en) * 2008-02-20 2013-02-05 Hewlett-Packard Development Company, L.P. Method and system for implementing a virtual storage pool in a virtual environment
US8898418B2 (en) 2008-08-26 2014-11-25 International Business Machines Corporation Method, apparatus and computer program for provisioning a storage volume to a virtual server
US8996835B2 (en) * 2008-09-15 2015-03-31 International Business Machines Corporation Apparatus and method for provisioning storage to a shared file system in a storage area network
US9134922B2 (en) 2009-03-12 2015-09-15 Vmware, Inc. System and method for allocating datastores for virtual machines
US8291159B2 (en) * 2009-03-12 2012-10-16 Vmware, Inc. Monitoring and updating mapping of physical storage allocation of virtual machine without changing identifier of the storage volume assigned to virtual machine
JP2011081579A (ja) * 2009-10-07 2011-04-21 Hitachi Ltd Itシステム仮想化における仮想リソースのシステム運用管理方法およびシステム
US8874888B1 (en) 2011-01-13 2014-10-28 Google Inc. Managed boot in a cloud system
US9135037B1 (en) 2011-01-13 2015-09-15 Google Inc. Virtual network protocol
US8533796B1 (en) 2011-03-16 2013-09-10 Google Inc. Providing application programs with access to secured resources
US9063818B1 (en) 2011-03-16 2015-06-23 Google Inc. Automated software updating based on prior activity
US9237087B1 (en) * 2011-03-16 2016-01-12 Google Inc. Virtual machine name resolution
US9075979B1 (en) 2011-08-11 2015-07-07 Google Inc. Authentication based on proximity to mobile device
US8595460B2 (en) 2011-08-26 2013-11-26 Vmware, Inc. Configuring object storage system for input/output operations
US8966198B1 (en) 2011-09-01 2015-02-24 Google Inc. Providing snapshots of virtual storage devices
US8958293B1 (en) 2011-12-06 2015-02-17 Google Inc. Transparent load-balancing for cloud computing services
US8800009B1 (en) 2011-12-30 2014-08-05 Google Inc. Virtual machine service access
DE102012200155A1 (de) * 2012-01-05 2013-07-11 Continental Automotive Gmbh Rechnersystem und Verfahren zum Betreiben eines Rechnersystems
DE102012201225A1 (de) 2012-01-27 2013-08-01 Continental Automotive Gmbh Rechnersystem
US8983860B1 (en) 2012-01-30 2015-03-17 Google Inc. Advertising auction system
US8677449B1 (en) 2012-03-19 2014-03-18 Google Inc. Exposing data to virtual machines
US9928107B1 (en) * 2012-03-30 2018-03-27 Amazon Technologies, Inc. Fast IP migration in a hybrid network environment
KR101951908B1 (ko) * 2012-10-18 2019-04-25 한국전자통신연구원 로봇 소프트웨어 컴포넌트를 위한 디바이스 공유 장치 및 방법
US9509718B1 (en) * 2014-07-17 2016-11-29 Sprint Communications Company L.P. Network-attached storage solution for application servers
CA2891984C (en) * 2015-04-20 2016-09-13 Anant Asthana Systems and methods for allocating online resources
US10782992B2 (en) * 2016-11-01 2020-09-22 Nutanix, Inc. Hypervisor conversion
US20190362075A1 (en) * 2018-05-22 2019-11-28 Fortinet, Inc. Preventing users from accessing infected files by using multiple file storage repositories and a secure data transfer agent logically interposed therebetween
US11036856B2 (en) 2018-09-16 2021-06-15 Fortinet, Inc. Natively mounting storage for inspection and sandboxing in the cloud

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0797358B2 (ja) * 1992-04-22 1995-10-18 富士通株式会社 仮想計算機システムの入出力制御方法及び装置
JP3193880B2 (ja) * 1996-12-11 2001-07-30 株式会社日立製作所 データ移行方法
US6453392B1 (en) * 1998-11-10 2002-09-17 International Business Machines Corporation Method of and apparatus for sharing dedicated devices between virtual machine guests
JP2000322369A (ja) * 1999-03-05 2000-11-24 Hitachi Ltd ディスク装置およびこれを用いた計算機システム
US6668322B1 (en) * 1999-08-05 2003-12-23 Sun Microsystems, Inc. Access management system and method employing secure credentials
US6598034B1 (en) * 1999-09-21 2003-07-22 Infineon Technologies North America Corp. Rule based IP data processing
US20020129216A1 (en) * 2001-03-06 2002-09-12 Kevin Collins Apparatus and method for configuring available storage capacity on a network as a logical device
WO2003007154A2 (en) * 2001-07-09 2003-01-23 Cable & Wireless Internet Services, Inc. Methods and systems for shared storage virtualization
US6976134B1 (en) * 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US7137004B2 (en) * 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US6961806B1 (en) * 2001-12-10 2005-11-01 Vmware, Inc. System and method for detecting access to shared structures and for maintaining coherence of derived structures in virtualized multiprocessor systems
US7024427B2 (en) * 2001-12-19 2006-04-04 Emc Corporation Virtual file system
US20030126132A1 (en) * 2001-12-27 2003-07-03 Kavuri Ravi K. Virtual volume management system and method
JP4061960B2 (ja) * 2002-04-26 2008-03-19 株式会社日立製作所 コンピュータシステム
US9020801B2 (en) * 2003-08-11 2015-04-28 Scalemp Inc. Cluster-based operating system-agnostic virtual computing system
US7506170B2 (en) * 2004-05-28 2009-03-17 Microsoft Corporation Method for secure access to multiple secure networks
US7577959B2 (en) * 2004-06-24 2009-08-18 International Business Machines Corporation Providing on-demand capabilities using virtual machines and clustering processes
US7620984B2 (en) * 2004-10-06 2009-11-17 Hewlett-Packard Development Company, L.P. Method of managing computer system
US8095928B2 (en) * 2004-10-06 2012-01-10 Hewlett-Packard Development Company, L.P. Method of forming virtual computer cluster within shared computing environment

Also Published As

Publication number Publication date
WO2006042115A3 (en) 2006-07-27
JP2008516344A (ja) 2008-05-15
WO2006042115A2 (en) 2006-04-20
EP1805590A2 (en) 2007-07-11
US20060075199A1 (en) 2006-04-06

Similar Documents

Publication Publication Date Title
JP4979584B2 (ja) 共有コンピューティング環境内において仮想コンピュータクラスタにストレージを提供する方法
US7620984B2 (en) Method of managing computer system
US6799255B1 (en) Storage mapping and partitioning among multiple host processors
US7093021B2 (en) Electronic device for secure authentication of objects such as computers in a data network
US7051182B2 (en) Mapping of hosts to logical storage units and data storage ports in a data processing system
US6295575B1 (en) Configuring vectors of logical storage units for data storage partitioning and sharing
CN100573459C (zh) 用于网络、块和文件输入及输出的卸载堆栈
US8095928B2 (en) Method of forming virtual computer cluster within shared computing environment
EP1509021B1 (en) Providing SCSI device access over a network
US7984133B2 (en) Computer and access control method in a computer
US9047468B2 (en) Migration of full-disk encrypted virtualized storage between blade servers
CN101257413B (zh) 用于能够实现安全的位置感知平台的方法、装置和系统
US10362030B2 (en) Method and system for providing access to administrative functionality a virtualization environment
US20020095602A1 (en) System for controlling access to resources in a storage area network
US7529884B2 (en) Storage system capable of dispersing access load
US8713307B2 (en) Computer system and volume migration control method using the same
JP2006048313A (ja) 複数の管理者から管理されるストレージシステムの管理方法
US10979289B2 (en) Apparatuses and methods for remote computing node registration and authentication
US20050091215A1 (en) Technique for provisioning storage for servers in an on-demand environment
JP7546042B2 (ja) 可変コンピュータファイルシステムが適用されたデータ保存装置
KR101108078B1 (ko) 멀티 유저 컴퓨터의 망 전환 시스템

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100305

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100615

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101110

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101118

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110204

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120417

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees