(58)【調査した分野】(Int.Cl.,DB名)
クラウドコンピューティングシステムであって、前記システムが、クラウドプラットフォームと、少なくとも1つの物理サーバと、少なくとも1つのホストと、少なくとも1つのアクセスネットワーク要素とを備え、前記ホスト、前記物理サーバ、および前記クラウドプラットフォームが互いに通信し、少なくとも1つの仮想マシンが前記ホスト上で実行され、前記仮想マシンが前記アクセスネットワーク要素を使用して前記物理サーバにアクセスし、サービスが前記物理サーバ上に配置され、
前記クラウドプラットフォームが、前記サービスに対応する公開IPアドレスおよび公開ポートを前記サービスに割り振り、前記公開IPアドレスおよび前記公開ポートと、前記サービスを実行している前記物理サーバのIPアドレスおよびポートとの間の対応関係を記録し、前記サービスを公開するように構成され、
前記クラウドプラットフォームが、前記仮想マシンによって送信されたサービス申請要求を受信し、前記アクセスネットワーク要素にNAT規則を送信するように構成され、前記NAT規則が、前記公開IPアドレスおよび前記公開ポートと、前記サービスを実行している前記物理サーバの前記IPアドレスおよび前記ポートとの間の前記対応関係を備え、
前記アクセスネットワーク要素が、前記仮想マシンによって送信されたサービスアクセス要求を受信するようにさらに構成され、前記サービスアクセス要求の宛先アドレスが、前記サービスに対応する前記公開IPアドレスおよび前記公開ポートであり、
前記アクセスネットワーク要素が、前記NAT規則に従って、前記サービスアクセス要求の前記宛先アドレスを前記物理サーバの前記IPアドレスおよび前記ポートと置き換え、前記修正されたサービスアクセス要求を前記物理サーバにルーティングし、前記物理サーバによって返信されたサービス応答メッセージを受信するようにさらに構成される、
クラウドコンピューティングシステム。
前記クラウドプラットフォームが、前記仮想マシンにサービスプレゼンテーションインターフェースを提供し、サービス情報を表示し、前記サービス情報が前記サービスの外部表示アドレスを備えるようにさらに構成される、
請求項1または2に記載のシステム。
前記クラウドプラットフォームが、前記仮想マシンが属するユーザの認可情報を記録し、前記ユーザの前記認可情報が、ユーザ識別子、仮想マシン識別子、ならびに前記ユーザに割り振られたアカウントおよびパスワードを備えるようにさらに構成される、
請求項6に記載のシステム。
前記クラウドプラットフォームが、前記仮想マシン向けのサービス認可を終了し、前記アクセスネットワーク要素に削除メッセージを送信して、前記仮想マシンの前記NAT規則を削除するように前記アクセスネットワーク要素に指示するようにさらに構成される、
請求項1から8のいずれか一項に記載のシステム。
前記サービスの前記外部表示アドレスが前記サービスに対応する前記ドメイン名であるとき、前記クラウドプラットフォームにより、仮想マシンによって送信されたサービス申請要求を受信する前記ステップの前に、前記方法が、
前記クラウドプラットフォームにより、ドメインネームシステムDNSサーバに、前記ドメイン名と前記公開IPアドレスおよび前記公開ポートとの間の対応関係を配信するステップであって、その結果、ドメイン名構文解析動作を開始するとき、前記仮想マシンが、前記ドメイン名に基づいて、前記サービスに対応する前記公開IPアドレスおよび前記公開ポートを前記DNSサーバから取得する、ステップ
をさらに備える、請求項12に記載の方法。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明の実施形態は、仮想マシンが物理サーバの実アドレスを取得し、ネットワークセキュリティを脅かすことを防ぐために、仮想マシンが物理サーバにアクセスするための方法、装置、およびシステムを記載する。
【0005】
一態様によれば、本発明の一実施形態は、仮想マシンが物理サーバにアクセスするためのシステムを提供する。システムは、クラウドプラットフォームと、少なくとも1つの物理サーバと、少なくとも1つのホストと、少なくとも1つのアクセスネットワーク要素とを含む。ホスト、物理サーバ、およびクラウドプラットフォームは互いに通信し、少なくとも1つの仮想マシンはホスト上で実行され、仮想マシンはアクセスネットワーク要素を使用して物理サーバにアクセスし、サービスは物理サーバ上に配置される。クラウドプラットフォームは、サービスに対応する公開IPアドレスおよび公開ポートをサービスに割り振り、公開IPアドレスおよび公開ポートと、サービスを実行している物理サーバのIPアドレスおよびポートとの間の対応関係を確立し、サービスを公開し、その結果、サービスが仮想マシンに見える。クラウドプラットフォームは、仮想マシンに関連付けられたNAT規則をアクセスネットワーク要素に送信し、NAT規則は、公開IPアドレスおよび公開ポートと、サービスを実行している物理サーバのIPアドレスおよびポートとの間の対応関係を含む。アクセスネットワーク要素は、仮想マシンによって送信されたサービスアクセス要求を受信し、NAT規則に従って、サービスアクセス要求の宛先アドレスを物理サーバのIPアドレスおよびポートと置き換え、修正されたサービスアクセス要求を物理サーバにルーティングし、物理サーバによって返信されたサービス応答メッセージを受信する。前述のプロセスにより、仮想マシンは、サービスが配置された物理サーバのIPアドレスおよびポートを知ることなく、サービスにアクセスすることができる。加えて、サービスは、サービスに対応する公開IPアドレスおよび公開ポートを使用して一意に識別され得るので、複数のIPアドレスをもつ異なる物理サーバまたは物理サーバクラスタ上にサービスが配置されている場合でも、異なる仮想マシンは、サービスが実際に位置する物理サーバまたは物理サーバクラスタの実際のIPアドレスおよびポートに注意を払うことなく、すべてが同じ公開IPアドレスおよび公開ポートを使用して同じサービスにアクセスすることができ、それにより、統一されたサービスアクセスモードが実装される。
【0006】
可能な設計では、サービス応答メッセージのソースアドレスは、物理サーバのIPアドレスおよびポートである。
物理サーバによって返信されたサービス応答メッセージを受信すると、アクセスネットワーク要素は、NAT規則に従って、サービス応答メッセージのソースアドレスをサービスに対応する公開IPアドレスおよび公開ポートとさらに置き換え、修正されたサービス応答メッセージを仮想マシンに送信することができ、その結果、仮想マシンによって受信されたサービス応答メッセージは、依然として物理サーバの実アドレスを含まない。クラウドプラットフォームによって送信されたサービス応答メッセージのソースアドレスは、代替として、公開IPアドレスおよび公開ポートに直接設定されてもよく、アクセス
ネットワーク要素はソースアドレスを修正する必要がないことに留意されたい。物理サーバによって送信されたサービス応答パケットのソースアドレスが物理サーバの実アドレスであるとき、物理サーバは、本発明のこの実施形態に適合されるように修正される必要がなく、それにより、サービスの配置および公開の効率が向上する。物理サーバによって送信されたサービス応答パケットのソースアドレスが、サービスに対応する公開IPアドレスおよび公開ポートであるとき、物理サーバに対して適応修正が実行される必要があり、サービスと公開IPアドレスおよび公開ポートとの間の対応関係が記録される。物理サーバがサービス応答パケットを送信するとき、サービス応答パケットのソースアドレスは、公開IPアドレスおよび公開ポートに設定される。この場合、アクセスネットワーク要素は、サービス応答パケットのソースアドレスに対してNAT変換を実行する必要がなく、それにより、仮想マシンが物理サーバ上に配置されたサービスにアクセスする効率が増大する。一方、本発明のこの実施形態では、解決策を実装するために物理サーバが修正される必要があるので、サービスの配置および公開の効率が低下する。
【0007】
可能な設計では、クラウドプラットフォームは、複数の方式でサービスを外部に公開することができる。クラウドプラットフォームは、ユーザ指向のサービスプレゼンテーションインターフェースおよびO&Mエンジニア指向の管理プレゼンテーションインターフェースを有することに留意されたい。ユーザは、サービスプレゼンテーションインターフェースにログインして、クラウドプラットフォームによって提供される様々なサービスをブラウズし、サービス申請を開始することができる。クラウドプラットフォームは、サービスプレゼンテーションインターフェース上にサービス情報を表示し、ユーザにサービスを紹介する。サービス情報はサービスの外部表示アドレスを含む。
【0008】
可能な設計では、サービスの外部表示アドレスは、公開IPアドレスおよび公開ポートであってもよく、サービスに対応するドメイン名であってもよい。外部表示アドレスが公開IPアドレスおよび公開ポートであるとき、仮想マシンは、公開IPアドレスおよび公開ポートを宛先アドレスとして使用することにより、物理サーバのサービスにアクセスすることを要求することができる。外部表示アドレスがドメイン名であるとき、仮想マシンは、最初にドメイン名の対応するアドレスを取得する必要がある。したがって、仮想マシンは、DNSサーバに対してドメイン名構文解析動作を開始し、DNSサーバからドメイン名の対応するアドレスを取得する。ドメイン名の対応するアドレスは、公開IPアドレスおよび公開ポートである。クラウドプラットフォームは、あらかじめ登録手順を使用することにより、ドメイン名とサービスに対応する公開IPアドレスおよび公開ポートとの間の対応関係をDNSサーバに送信することができる。具体的には、クラウドプラットフォームは、ドメイン名と公開IPアドレスおよび公開ポートとの間の対応関係をドメインネームシステムDNSサーバに配信する。仮想マシンは、ドメイン名構文解析動作を開始し、ドメイン名に基づいて、サービスに対応する公開IPアドレスおよび公開ポートをDNSサーバから取得するように構成される。
【0009】
可能な設計では、ユーザはサービスプレゼンテーションページにログインし、クラウドプラットフォームにサービスを申請する。クラウドプラットフォームは、仮想マシンにサービス申請応答を返信する。サービス申請応答は外部表示アドレスを搬送する。
【0010】
可能な設計では、ユーザのサービス申請要求に対して、サービス認可が承認されると判断した後、クラウドプラットフォームは、仮想マシンが属するユーザの認可情報を記録する。ユーザの認可情報は、ユーザ識別子、仮想マシン識別子、ならびにユーザに割り振られたアカウントおよびパスワードを含む。クラウドプラットフォームは、記録された認可情報を使用して、ユーザのサービスアクセス要求を認証することができる。
【0011】
可能な設計では、クラウドプラットフォームは、粒度としてユーザを使用することにより、サービス認可を実行することができる。具体的には、ユーザが複数の仮想マシンを有するとき、ユーザは、仮想マシンのうちのいずれか1つを使用することにより、認可されたサービスにアクセスすることができる。ユーザが新しい仮想マシンを作成すると、クラウドプラットフォームは、新しい仮想マシンが接続するアクセスネットワーク要素にNAT規則を配信し、その結果、ユーザは新しい仮想マシンを使用して物理サーバ上のサービスに正常にアクセスすることができる。粒度としてユーザを使用することによって実行されるサービス認可は、ユーザに大きい利便性をもたらすことができ、その結果、ユーザは、仮想マシンごとに別々にサービス認可を申請する必要がない。またさらに、ユーザが、ユーザに属する仮想マシンのうちのいずれか1つを削除すると、クラウドプラットフォームは、仮想マシンを削除するときにその仮想マシンに関連付けられたNAT規則を削除するように、アクセスネットワーク要素に指示する。
【0012】
ユーザが債務を負っているとき、ユーザはサービス認可を終了するように積極的に要求することができ、またはクラウドプラットフォームはユーザ向けのサービス認可を積極的に終了することができる。ユーザ向けのサービス認可が終了される必要があるとクラウドプラットフォームが判断すると、クラウドプラットフォームは、関連付けられた仮想マシンを特定し、仮想マシンが接続するアクセスネットワーク要素に削除メッセージを送信して、仮想マシンのNAT規則を削除するようにアクセスネットワーク要素に指示する。
【0013】
クラウドプラットフォームは、サービス検出/収集機能をさらに有してもよい。新しいサービスが物理サーバ上に配置されると、クラウドプラットフォームは、サービス情報、およびそのサービスが配置された物理サーバに関する情報を適時に取得することができる。
【0014】
可能な設計では、物理サーバは単一の物理サーバまたは物理サーバクラスタである。
【0015】
別の態様によれば、本発明の一実施形態は、クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法を提供し、クラウドプラットフォームが前述のシステム内でステップを実行する。
【0016】
また別の態様によれば、本発明の一実施形態は、クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための別の方法を提供し、アクセスネットワーク要素が前述のシステム内でステップを実行する。
【0017】
前述のシステムおよび方法に対応して、本発明のこの実施形態はクラウドプラットフォームを提供する。クラウドプラットフォームは、前述のシステム内で定義されたクラウドプラットフォームを実装する機能を有する。機能は、ハードウェアによって実装されてもよく、ハードウェアが対応するソフトウェアを実行することによって実装されてもよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1つまたは複数のモジュールを含む。
【0018】
前述のシステムおよび方法に対応して、本発明のこの実施形態は、ホスト、ならびにホスト上で実行されるシステム内で定義される仮想マシンおよびアクセスネットワーク要素をさらに提供する。アクセスネットワーク要素は、openvswitchなどの仮想マシンネットワーク要素であってもよく、またはアクセスネットワーク要素は、ハードウェアによって実装されてもよく、具体的には、ホスト上のトップオブラックスイッチである。ホストは、システム内で定義されるアクセスネットワーク要素を実装する機能を有する。さらに、ホストは、システム内で定義される仮想マシンを実装する機能をさらに有していてもよい。機能は、ハードウェアによって実装されてもよく、ハードウェアが対応するソフトウェアを実行することによって実装されてもよい。ハードウェアまたはソフトウェアは、前述の機能に対応する1つまたは複数のモジュールを含む。
【0019】
可能な設計では、クラウドプラットフォームおよびホストは、汎用サーバまたは専用サーバによって実装される。サーバの構造は、プロセッサ、メモリ、システムバス、および入出力インターフェースを含む。プロセッサは、システム内のクラウドプラットフォームまたはホストの対応する機能をサポートするように構成される。入出力インターフェースは、クラウドコンピューティングシステム内の別の構成要素と通信するように構成され、プロセッサは、メモリに記憶された命令を実行する。
【0020】
さらに別の態様によれば、本発明の一実施形態は、前述のクラウドプラットフォームによって使用されるコンピュータソフトウェア命令を記憶するように構成されたコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、前述の態様を実行するために設計されたプログラムを含む。
【0021】
さらに別の態様によれば、本発明の一実施形態は、前述のホストによって使用されるコンピュータソフトウェア命令を記憶するように構成されたコンピュータ記憶媒体を提供する。コンピュータソフトウェア命令は、前述の態様を実行するために設計されたプログラムを含む。
【0022】
従来技術と比較して、本発明の実施形態において提供される解決策によれば、サービスが配置された物理サーバの実アドレスは仮想マシンから保護されてもよく、仮想マシンに統一されたアクセスモードも提供され、それにより、クラウドプラットフォームのネットワークセキュリティが保証され、ユーザがサービスにアクセスする利便性が向上する。
【0023】
本発明の実施形態または従来技術における技術的解決策をより明確に記載するために、以下で、実施形態または従来技術を記載するために必要とされる添付図面を簡単に記載する。明らかに、以下の説明における添付図面は本発明のいくつかの実施形態を示すにすぎず、当業者は、創造的な努力なしに、これらの添付図面から他の実装形態を導出することができる。実施形態または実装形態のすべては本発明の保護範囲内に入るべきである。
【発明を実施するための形態】
【0025】
添付図面を参照して、以下で本発明の実施形態による技術的解決策が明確かつ完全に記載される。明らかに、記載される実施形態は、本発明の実施形態のうちの一部にすぎず、すべてではない。創造的な努力なしに本発明の実施形態に基づいて、当業者によって取得されるすべての他の実施形態は、本発明の保護範囲内に入るべきである。
【0026】
本発明の実施形態に記載されたネットワークアーキテクチャおよびサービスシナリオは、本発明の実施形態における技術的解決策をより明確に記載することを目的とするが、本発明の実施形態において提供される技術的解決策を限定するものではない。当業者は、ネットワークアーキテクチャが進化し、新しいサービスシナリオが出現するにつれて、本発明の実施形態において提供される技術的解決策が、同様の技術的問題にも適用可能であることを知ることができる。
【0027】
図1Aおよび
図1Bは、各々、本発明の実施形態による、クラウドコンピューティングシステムのネットワークアーキテクチャの図である。クラウドコンピューティングシステムは、ホスト101と、クラウドプラットフォーム102と、物理サーバ103と、ネットワーク104と、アクセスネットワーク要素105とを含む。いくつかの仮想マシンがホスト101上で実行される。仮想マシンは、ネットワーク104に接続し、アクセスネットワーク要素105を使用することにより、クラウドプラットフォーム102および物理サーバ103にアクセスする。
【0028】
ホスト101上で実行される仮想マシンはユーザのサービスを搬送する。ユーザはクライアントを使用して仮想マシンにログインし、ネットワーク104を使用することにより、クラウドプラットフォーム102によって外部に公開された様々なサービスにアクセスする。サービスは、物理サーバ103上で実行されるサービス、たとえば、データベースサービスである。構造の観点から、クラウドコンピューティングシステムは、サービスとしてのインフラストラクチャ(Infrastructure as a Service、IAAS)レイヤ、サービスとしてのプラットフォーム(Platform as a Service、PAAS)レイヤ、およびサービスとしてのソフトウェア(Software as a Service、SAAS)レイヤに分割されてもよい。物理サーバ103上に配置されるサービスは、通常、PAASレイヤサービスである。
【0029】
クラウドプラットフォーム102は、クラウドコンピューティングシステムの管理端であり、コンピューティングリソース、ネットワークリソース、およびストレージリソースなどのリソースを管理すること、監視動作、およびメンテナンスなどを含む、クラウドコンピューティングプロバイダによって提供される、基礎となるデバイスおよびサービスを管理するように構成される。クラウドプラットフォーム102は、ユーザ指向のサービスプレゼンテーションページおよび管理者指向の管理プレゼンテーションページをさらに含む。管理者は、管理プレゼンテーションページを使用して、物理サーバ上に配置されたサービスを構成し管理する。サービスが配置されると、ユーザはクラウドプラットフォーム102のサービスプレゼンテーションページにログインし、利用可能なサービスを確認する。サービスプレゼンテーションページに表示されるサービス情報は、サービスの外部表示アドレスを含む。VMがサービスにアクセスする必要があるとき、VMは、外部表示アドレスを使用することにより、サービスにアクセスする要求を開始する。外部表示アドレスは、物理サーバ上に配置されたサービスを一意に識別することができる。外部表示アドレスは、具体的には、サービスに対応する公開IPアドレスおよび公開ポートであってもよく、サービスに対応するドメイン名であってもよい。
【0030】
クラウドプラットフォーム102は、サービスに対応する公開IPアドレスおよび公開ポートと、サービスが配置された物理サーバ103の実アドレスとの間の対応関係を確立し、その対応関係を各仮想マシンのアクセスネットワーク要素105に配信する。サービスの外部表示アドレスが公開IPアドレスおよび公開ポートであるとき、仮想マシンは、公開IPアドレスおよび公開ポートをサービスアクセス要求の宛先アドレスとして使用してサービスアクセス手順を開始する。サービスの外部表示アドレスがサービスに対応するドメイン名であるとき、仮想マシンは、最初にドメイン名構文解析手順を開始する必要があり、DNSサーバからドメイン名の対応する公開IPアドレスおよび公開ポートを取得し、次いで、公開IPアドレスおよび公開ポートをサービスアクセス要求の宛先アドレスとして使用してサービスアクセス手順を開始する。サービスの外部表示アドレスがサービスに対応するドメイン名であるとき、サービスが配置された後、クラウドプラットフォーム102は、ドメイン名と公開IPアドレスおよび公開ポートとの間の対応関係をドメインネームシステムのDNSサーバに配信するようにさらに構成される。DNSサーバは、クラウドコンピューティングシステムの内部使用のために提供される。DNSサーバは、ネットワーク104を使用してホスト101およびクラウドプラットフォーム102に接続する。
【0031】
特定の実装シナリオでは、クラウドプラットフォーム102は、SDN(Software Defined Network、ソフトウェア定義ネットワーク)コントローラを含む。好ましくは、クラウドプラットフォーム102内のSDNコントローラは、仮想マシンのネットワークトポロジーを取得し、フローテーブル形式で仮想マシンのアクセスネットワーク要素105にネットワークアドレス変換(Network Address Translation、NAT)規則を配信する。NAT規則は、公開IPアドレスおよび公開ポートと、サービスを実行している物理サーバ103のIPアドレスおよびポートとの間の対応関係を含む。
【0032】
公開IPおよび公開ポートは、具体的には、サービスに対応するIPおよびポートである。具体的には、サービスは、公開IPアドレスおよび公開ポートを使用して一意に特定されてもよい。公開IPは予約されたアドレスを使用することができる。予約されたアドレスは、データサービスネットワークが使用できないIPアドレス、たとえば、169.254.*.*である。公開ポートは周知のポートを使用することができ、周知のポート番号(well−known port numbers)は、伝送制御プロトコル(Transmission Control Protocol、TCP)およびユーザデータプロトコル(User Datagram Protocol、UDP)向けに、名前および番号割当てのためのインターネットコーポレーション(The Internet Corporation for Assigned Names and Numbers、ICANN)によって予約されたポート番号である。たとえば、169.254.169.254+3306は、データベースサービスのアクセスアドレスを表すために使用され得る。
【0033】
本発明のこの実施形態では、異なるユーザに対して、同じサービスの外部表示アドレスは同じである。
【0034】
クラウドプラットフォーム102は以下の機能を有してもよい:
クラウドプラットフォーム102によって提供される管理プレゼンテーションインターフェースを使用して管理者がサービスを構成し管理するためのO&M機能、
オンライン/オフラインでサービスに関する情報を取得するために、リアルタイムで物理サーバを監視するための監視機能、
ホスト101上で実行されている仮想マシンのネットワークトポロジーを取得し、サービスを実行している物理サーバ103のIPアドレスおよびポートを取得するためのネットワーク情報取得機能、ならびに
サービスプレゼンテーションインターフェースを使用してユーザにサービス情報を提示するためのサービス公開機能。
【0035】
さらに、クラウドプラットフォーム102は、サービス課金およびアラームなどの機能をさらに有してもよい。
【0036】
物理サーバ103は、サービスが配置された物理サーバであり、単一の物理サーバまたはサーバクラスタであってもよい。仮想マシンは、ネットワーク104を使用して物理サーバ103に接続して、物理サーバ103上で実行されるサービスにアクセスする。物理サーバ103が物理サーバクラスタであるとき、サービスが配置された物理サーバの実アドレスは、物理サーバクラスタの外部に提示されたアドレスであることに留意されたい。たとえば、クラスタがA−Pモードにあるとき、アクティブ/スタンバイの物理サーバは同じアドレスを有し、同じアドレスは物理サーバクラスタの外部に提示されたアドレスである。あるいは、複数の物理サーバがクラスタを形成するとき、外部に提示されたクラスタ内のマスタノードの仮想IPアドレスが、物理サーバクラスタの外部に提示されたアドレスとして使用される。仮想マシンのサービスアクセス要求が物理サーバクラスタの外部に提示されたアドレスにルーティングされると、クラスタ内のサーバは負荷分散方式でサービスを提供することができる。サービスアクセス要求がサーバクラスタの外部に提示されたアドレスを使用してサーバクラスタにルーティングすることができるならば、サーバクラスタの実装形態は、本発明のこの実施形態では限定されないことに留意されたい。サーバクラスタの内部負荷分散の実装形態は、従来技術における様々な解決策を使用することができる。
【0037】
仮想マシンからサービスアクセス要求を受信すると、物理サーバ103はサービスアクセス要求を処理し、サービスアクセス応答を返信する。たとえば、サービスアクセス要求は、仮想マシンによって開始されるデータベース問合せ要求であってもよく、データベース問合せ要求は、物理サーバ103上に配置されたデータベースサービスを使用してデータを問い合わせるために使用される。データベース問合せ要求は問合せ条件を搬送することができる。データベース問合せ要求が物理サーバ103にルーティングされると、物理サーバ103は、問合せ条件に基づいて問合せ結果を生成し、問合せ結果をサービスアクセス応答に付加し、サービスアクセス応答を仮想マシンに返信する。本発明のこの実施形態では、サービスアクセス要求のタイプおよび目的は限定されず、物理サーバ103がサービスアクセス要求を処理するための具体的な方法も限定されないことに留意されたい。従来技術における様々な共通サービスアクセス要求は、すべて本発明のこの実施形態において適用可能である。従来技術において開示された物理サーバがサービスアクセス要求を処理するための様々な方法も、本発明のこの実施形態において直接使用されてもよい。
【0038】
アクセスネットワーク要素105は、具体的に、ホスト101上で実行されている仮想ネットワーク要素(たとえば、Open vSwitch)またはホストのトップオブラック(Top Of Rack、TOR)スイッチであってもよい。アクセスネットワーク要素105は、仮想マシンに接続し、仮想マシンにネットワークアクセス機能を提供する。アクセスネットワーク要素105は、
図1Aに示されたように、ホスト101の仮想化レイヤに位置してもよく、または
図1Bに示されたように、ホスト101に物理的に接続されたトップオブラックスイッチであってもよい。トップオブラックスイッチは独立したハードウェアデバイスである。特定の用途シナリオでは、ホストが専用のトップオブラックスイッチを有してもよく、複数のホストが1つのトップオブラックスイッチを共有してもよく、または複数のホストが複数のトップオブラックスイッチを共有してもよい。このことは本発明のこの実施形態では限定されない。
【0039】
仮想マシンに関連付けられたNAT規則は、アクセスネットワーク要素上で構成される。NAT規則は、サービスに対応する公開IPアドレスおよび公開ポートと、物理サーバのIPアドレスおよびポートとの間の対応関係を含む。さらに、NAT規則は、VMの出口方向とVMの入口方向の両方に固有であってもよい。本発明の実施形態では、物理サーバのIPアドレスおよびポートは、IPアドレスおよびポートをサービスに対応する公開IPアドレスおよび公開ポートから区別するために、物理サーバの実際のIPアドレスおよびポートであることに留意されたい。
【0040】
可能な実装形態では、NAT規則は、Linux(登録商標)システム内のiptablesまたはSDNコントローラによって配信されたフローテーブルを使用して実装されてもよい。具体的な実装形態は本発明のこの実施形態では限定されない。
【0041】
典型的なシナリオでは、クラウドプラットフォームベンダのIAASレイヤにあるVMは、ネットワークを使用して、
物理サーバ上で実行されるPAASサービスにアクセスする。IAASとPAASが異なるベンダによって提供されるとき、
物理サーバ上で実行されるPAASサービスのために、IAASとPAASの分離が実施されてもよく、IAASとPAASの迅速な統合が容易になる。
【0042】
本発明のこの実施形態で提供された、仮想マシンが物理サーバにアクセスするための方法によれば、物理サーバの実アドレスは仮想マシンから見ることができず、それにより、物理サーバが仮想マシンのネットワーク攻撃から保護され、クラウドコンピューティングシステムのセキュリティが向上する。異なるユーザのために、物理サーバは同じ外部表示アドレスを外部に提示する。したがって、本発明のこの実施形態では、物理サーバ上で実行されるサービスにアクセスするために、異なるユーザに同じアクセスモードが提供されてもよく、それにより、アクセスアドレスの正規化が実現され、クラウドプラットフォームが物理サーバ上に配置された新しいサービスを公開する効率が増大する。
【0043】
可能な実装形態では、クラウドプラットフォームは物理サーバの配置を制御することができる。物理サーバ上でサービスが実行された後、クラウドプラットフォームは物理サーバ上で実行されたサービスに関する情報を公開する。ユーザは、クラウドプラットフォームによって提供されるサービスプレゼンテーションインターフェースを使用して、公開されたサービスを確認することができ、サービス申請を開始する。クラウドプラットフォームは、ユーザのサービス申請を承認または却下する。サービス申請が承認された場合、認可情報がユーザに返信される。認可情報は、ユーザ識別子、仮想マシン識別子、許可、ユーザに割り振られたアカウントおよびパスワードなどを含んでもよい。ユーザに関する情報はクラウドプラットフォーム内に記録され、ユーザによって使用される各仮想マシンに関する情報を含む。クラウドプラットフォームは、粒度としてユーザを使用することにより、物理サーバ上のサービスへのアクセスをユーザに認可することができる。この場合、ユーザの各仮想マシンはサーバにアクセスすることができる。クラウドプラットフォームは、代替として、粒度として仮想マシンを使用することにより、物理サーバ上のサービスへのアクセスをユーザに認可することができる。具体的には、クラウドプラットフォームは、特定の仮想マシンを使用してサービスへのアクセスをユーザに認可する。前述の方式では、クラウドプラットフォームは、認可された仮想マシンのリストを決定することができる。クラウドプラットフォームは、認可された各仮想マシンが接続するアクセスネットワーク要素にNAT規則を配信する。サービスの外部表示アドレスは、NAT規則を使用して物理サーバの実際のIPアドレスおよびポートに変換され、その結果、ユーザの仮想マシンは物理サーバのサービスにアクセスする。アクセスネットワーク要素は、マウントされたネットワーク要素または仮想マシンのネットワーク仮想化エッジであってもよい。
【0044】
図1Aおよび
図1Bに示されたクラウドコンピューティングシステム内のクラウドプラットフォーム、ホスト、サービスが配置された物理サーバ、およびアクセスネットワーク要素は、ハードウェア/ソフトウェアによって実装されてもよい。たとえば、
図2は、本発明の一実施形態による、コンピュータデバイスのハードウェア構造の概略図である。コンピュータデバイス200は、少なくとも1つのプロセッサ201と、通信バス202と、メモリ203と、少なくとも1つの通信インターフェース204とを含む。
【0045】
プロセッサ201は、一般的な中央処理装置(CPU)またはマイクロプロセッサであってもよく、メモリ203内の命令を実行して、前述のデバイスの機能を実施することができる。
【0046】
通信バス202は、前述の構成要素間で情報を送信するための経路を含んでもよい。通信インターフェース304は、任意のトランシーバを使用するタイプの装置であり、他のデバイス、または、イーサネット(登録商標)、無線アクセスネットワーク(RAN)、もしくはワイヤレスローカルエリアネットワーク(Wireless Local Area Networ
k、WLAN)などの通信ネットワークと通信するように構成される。
【0047】
メモリ203は、読取り専用メモリ(read−only memory、ROM)もしくは静的情報および静的命令を記憶することができる別のタイプの静的ストレージデバイス、またはランダムアクセスメモリ(random access memory、RAM)もしくは情報および命令を記憶することができる別のタイプの動的ストレージデバイスであってもよく、電気的消去可能プログラマブル読取り専用メモリ(Electrically Erasable Programmable Read−Only Memory、EEPROM)、コンパクトディスク読取り専用メモリ(Compact Disc Read−Only Memory、CD−ROM)もしくは別のコンパクトディスク記憶媒体、(コンパクトディスク、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク、ブルーレイディスクなどを含む)光ディスク記憶媒体もしくは磁気ディスク記憶媒体、別の磁気ストレージデバイス、または命令もしくはデータ構造の形態で予想されるプログラムコードを搬送もしくは記憶するように構成することができ、コンピュータによってアクセスできる任意の他の媒体であってもよいが、それらに限定されない。メモリは、独立して存在し、バスを使用してプロセッサに接続されてもよい。
【0048】
メモリ203は、本発明のこの解決策を実行するためのアプリケーションプログラムコードを記憶するように構成され、プロセッサ201は実行を制御する。プロセッサ201は、メモリ203に記憶されたアプリケーションプログラムコードを実行するように構成される。
【0049】
具体的な実装中に、一実施形態では、プロセッサ201は、1つまたは複数のCPU、たとえば、
図2のCPU0およびCPU1を含んでもよい。
【0050】
具体的な実装中に、一実施形態では、コンピュータデバイス200は、複数のプロセッサ、たとえば、
図2に示されたプロセッサ201およびプロセッサ208を含んでもよい。これらのプロセッサの各々は、シングルコア(single−CPU)プロセッサであってもよく、マルチコア(multi−CPU)プロセッサであってもよい。本明細書では、プロセッサは、データ(たとえば、コンピュータプログラム命令)を処理するように構成された1つもしくは複数のデバイスもしくは回路、および/または処理コアであってもよい。
【0051】
具体的な実装中に、一実施形態では、コンピュータデバイス200は、出力デバイス205および入力デバイス206をさらに含んでもよい。出力デバイス205はプロセッサ201と通信し、様々な方式で情報を表示することができる。たとえば、出力デバイス205は、液晶ディスプレイ(liquid crystal display、LCD)、発光ダイオード(light emitting diode、LED)ディスプレイデバイス、陰極線管(cathode ray tube、CRT)ディスプレイデバイス、プロジェクタ(projector)などであってもよい。入力デバイス206はプロセッサ201と通信し、様々な方式でユーザの入力を受け取ることができる。たとえば、入力デバイス206は、マウス、キーボード、タッチスクリーンデバイス、検知デバイスなどであってもよい。
【0052】
コンピュータデバイス200は、汎用コンピュータデバイスまたは専用コンピュータデバイスであってもよい。具体的な実装中に、コンピュータデバイス200は、デスクトップコンピュータ、ポータブルコンピュータ、ネットワークサーバ、携帯情報端末(Personal Digital Assistant、PDA)、携帯電話、タブレットコンピュータ、ワイヤレス端末デバイス、通信デバイス、組込み型デバイス、または
図2に類似する構造を有するデバイスであってもよい。本発明のこの実施形態では、コンピュータデバイス200のタイプは限定されない。
【0053】
図1Aおよび
図1Bのクラウドプラットフォーム、ホスト、サービスが配置された物理サーバ、およびアクセスネットワーク要素は、
図2に示されたデバイスであってもよい。メモリは、クラウドプラットフォーム、ホスト、サービスが配置された物理サーバ、およびアクセスネットワーク要素の機能(たとえば、NAT変換機能)を実装するように構成された1つまたは複数のソフトウェアモジュールを記憶する。クラウドプラットフォーム、ホスト、サービスが配置された物理サーバ、およびアクセスネットワーク要素は、プロセッサおよびメモリ内のプログラムコードを使用することにより、仮想マシンが物理サーバに配置されたサービスにアクセスする方法を実施することができる。
【0054】
図2のコンピュータデバイスは、クラウドコンピューティングシステム内の各構成要素の可能なハードウェア実装形態のみを与えることに留意されたい。システムの各構成要素の機能の相違または変化に基づいて、コンピュータデバイスがシステムの各構成要素の機能と整合するように、コンピュータデバイスのハードウェア構成要素が追加または削除されてもよい。
【0055】
図3は、本発明の一実施形態による、ホスト上の仮想化構造の概略図である。ホストは物理サーバである。ホストの最下層はハードウェアレイヤである。ハードウェアレイヤは、主に、中央処理装置(CPU、Central Processing Unit)、メモリ、ハードディスク、および物理ネットワークインターフェースカードなどのハードウェアリソースを含む。サーバ仮想化は、物理サーバ上の仮想化ソフトウェア(たとえば、VMWare ESXおよびCitrix XEN)を活用して、複数の仮想マシン(Virtual Machine、VM)の仮想化動作環境が実現されることを意味する。サーバ上にマウントされ、仮想化環境を実現するソフトウェアレイヤは、仮想マシンモニタ(Virtual Machine Monitor)VMMと呼ばれる。ハードウェアレイヤで実行されるVMMは、ハードウェアレイヤ内のハードウェアリソースのスケジューリング、割振り、および管理を担当する。複数の仮想マシンVMがVMM上で実行される。VMMは、仮想CPU、メモリ、ストレージ、I/Oデバイス(たとえば、物理ネットワークインターフェースカード)、およびイーサネットスイッチなどのハードウェア環境を各仮想マシンに提供し、それにより、複数の仮想マシンが互いから分離され、実行されることが保証される。
【0056】
仮想化動作環境では、VMMは仮想マシンごとに仮想ネットワークインターフェースカード(Virtual Network Interface Card、vNIC)を作成する。仮想スイッチvSwitchは、仮想マシン間および仮想マシンと外部ネットワークとの間の通信機能を提供する。VMM内で実行されるvSwitchの場合、各仮想マシンの仮想ネットワークインターフェースカードは、vSwitchの仮想ポートに対応する。ホストの物理ネットワークインターフェースカードは、vSwitchが外部のトップオブラックスイッチに接続されるポートに対応する。
図3では、破線は仮想ネットワーク内の論理的な接続を表し、実線は物理的な接続を表す。
【0057】
可能な設計では、前述のアクセスネットワーク要素の機能は、仮想スイッチ(vSwitch)によって実施される。クラウドプラットフォームは仮想マシンのNAT規則を仮想スイッチに送信する。仮想スイッチは、仮想スイッチが仮想マシンに接続される仮想ポート上にNAT規則を構成する。仮想マシンからサービスアクセス要求を受信すると、仮
想スイッチは、NAT規則を使用することにより、サービスアクセス要求の宛先アドレスをサービスに対応する公開IPアドレスおよび公開ポートに修正し、その結果、パケットアクセス要求は、サービスが配置された物理サーバにルーティングされる。
【0058】
別の可能な設計では、前述のアクセスネットワーク要素の機能は、ホストに接続されたトップオブラックスイッチによって実施される。クラウドプラットフォームは、仮想マシンのNAT規則をトップオブラックスイッチに送信し、トップオブラックスイッチ上に仮想マシンのNAT規則を構成する。仮想マシンからサービスアクセス要求を受信すると、トップオブラックスイッチは、NAT規則を使用することにより、サービスアクセス要求の宛先アドレスをサービスに対応する公開IPアドレスおよび公開ポートに修正し、その結果、パケットアクセス要求は、サービスが配置された物理サーバにルーティングされる。
【0059】
NAT規則がホストの仮想ネットワーク要素上に配置されるか、トップオブラックスイッチ上に配置されるかにかかわらず、同じ機能が実施されることに留意されたい。具体的には、NAT変換は物理サーバのアドレスに対して実行される。VMの出口方向では、パケットの宛先アドレスがサービスに対応する公開IPアドレスおよび公開ポートに修正される。VMの入口方向では、パケットのソースアドレスがサービスに対応する公開IPアドレスおよび公開ポートに修正される。ホストと物理サーバとの間のパケットのルーティング手順は、既存の規格に従って定義された方式で実行される。公開IPアドレスおよび公開ポートに基づいてパケットを物理サーバにルーティングすることができれば、このことは本発明のこの実施形態では限定されない。
【0060】
図1Aおよび
図1Bのシステムアーキテクチャを参照して、
図4は、本発明の一実施形態による、物理サーバにアクセスする仮想マシンのパケット転送および処理手順を示す。手順は以下のステップを含む。
【0061】
ステップ401:物理サーバ上で実行されるサービスの外部表示アドレスが仮想マシンに見え、仮想マシンが物理サーバにサービスアクセス要求を送信する。サービスアクセス要求の宛先アドレスは、サービスに対応する公開IPアドレスおよび公開ポートである。
【0062】
可能な実装シナリオでは、外部表示アドレスは公開IPアドレスおよび公開ポートを含む。公開IPアドレスおよび公開ポートは、物理サーバ上で実行されるサービスを一意に識別することができる。
【0063】
別の可能な実装シナリオでは、外部表示アドレスはドメイン名である。ドメイン名は、物理サーバ上で実行されるサービスを一意に識別することができる。仮想マシンは、ドメイン名に対してドメイン名構文解析動作を開始し、物理サーバ上で実行されるサービスに対応する公開IPアドレスおよび公開ポートを取得する。
【0064】
物理サーバ上で実行されるサービスに対応する公開IPアドレスおよび公開ポートを取得した後、仮想マシンは、公開IPアドレスおよび公開ポートを宛先アドレスとして使用してサービスアクセス要求を開始する。
【0065】
ステップ402:アクセスネットワーク要素がサービスアクセス要求を受信し、NAT規則に従って、要求パケット内で搬送された宛先アドレスを、サービスを実行している物理サーバのIPアドレスおよびポートと置き換え、NAT規則は、サービスを実行している物理サーバのIPアドレスおよびポートと、サービスに対応する公開IPアドレスおよび公開ポートとの間の対応関係を含む。
【0066】
可能な設計では、NAT規則は、具体的に、クラウドプラットフォーム内のSDNコントローラによって配信されるフローテーブルであってもよい。
【0067】
ステップ403:NAT変換がすでに実行されたサービスアクセス要求が、ネットワークを使用することにより、サービスを実行している物理サーバにルーティングされる。
【0068】
ステップ404:物理サーバが仮想マシンのサービスアクセス要求を受信し、仮想マシンにサービス応答パケットを返信する。
【0069】
一方では、物理サーバによって送信されたサービス応答パケットのソースアドレスは、サービスに対応する公開IPアドレスおよび公開ポートであってもよい。サービス応答パケットを受信するとき、アクセスネットワーク要素は、サービス応答パケットのソースアドレスに対してNAT変換を実行する必要がない。このようにして、仮想マシンが物理サーバの実アドレスを取得できないことが保証されてもよい。物理サーバは、サービスに対応する公開IPアドレスおよび公開ポートを記録し、返信された応答パケットのソースアドレスを公開IPアドレスおよび公開ポートに設定するように、修正を実行する必要があることに留意されたい。修正は物理サーバの配置効率を低下させるが、アクセスネットワーク要素はサービス応答パケットを受信した後にサービス応答パケットのソースアドレスを置き換える必要がないので、仮想マシンが物理サーバ上のサービスにアクセスする効率は向上することができる。
【0070】
他方では、物理サーバによって送信されたサービス応答パケットのソースアドレスは、物理サーバの実際のIPアドレスおよびポートであってもよい。サービス応答パケットは、ネットワークを使用してアクセスネットワーク要素にルーティングされる。アクセスネットワーク要素は、NAT規則に従って、サービス応答パケットのソースアドレスをサービスに対応する公開IPアドレスおよび公開ポートと置き換え、サービス応答パケットを仮想マシンに返信する。前述の処理手順によれば、物理サーバを修正せずに仮想マシンが物理サーバの実アドレスを取得できないことが保証されてもよい。
【0071】
前述のサービスアクセス手順によれば、仮想マシンはサービスを実行している物理サーバにアクセスすることができる。同じサービスは同じ外部表示アドレスを有し、その結果、仮想マシンのアクセスモードは統一される。加えて、物理サーバの実アドレスは仮想マシンには見えず、それにより、物理サーバのネットワークセキュリティが保証される。
【0072】
仮想マシンが属するユーザがサービスの終了を申請するか、またはユーザが負債を負っているためにサービスが終了されると、クラウドプラットフォームは、ユーザの記録された認可情報を削除し、サービス認可を終了し、仮想マシンが接続するアクセスネットワーク要素に、ユーザに関連付けられたNAT規則を削除するように指示する。
【0073】
さらに、仮想マシン移行シナリオでは、仮想マシンがホスト1からホスト2に移行されると、仮想マシンに対応するNAT規則も動的に移行される。動的移行は、具体的に、移行ツールを使用して実施されてもよく、またはSDNコントローラがopenFlowフローテーブルを動的に配信する方式で実施されてもよく、または別の方式で実施されてもよく、それにより、仮想マシンが移行中に物理サーバ上のサービスに絶え間なくアクセスできることが保証される。可能な設計では、移行前の仮想マシンのアクセスネットワーク要素は、移行後の仮想マシンのアクセスネットワーク要素への接続を確立し、移行後の仮想マシンのアクセスネットワーク要素に仮想マシンに対応するNAT規則を送信する。別の可能な設計では、SDNコントローラは、移行後の仮想マシンのアクセスネットワーク要素のアドレスを取得し、移行後のアクセスネットワーク要素にフローテーブルの形式でNAT規則を配信し、それにより、仮想マシンが移行後にサービスに正常にアクセスできることが保証される。移行プロセスにおいて仮想マシンの絶え間ないサービスアクセスを保証にするために、Conntrackdなどのツールが仮想マシンのステータス情報をホスト2に転送するために使用されてもよい。
【0074】
サービスを実行している物理サーバは、単一の物理サーバであってもよく、高可用性を有する物理サーバクラスタであってもよいことに留意されたい。サーバクラスタは、既存のツールまたはプロトコルに基づいて、かつサービスの性能要件に基づいて実装されてもよい。このことは本発明のこの実施形態では限定されない。物理サーバがサーバクラスタであるとき、物理サーバは、具体的に、共有サービスクラスタまたはシングルインスタンスサービスクラスタであってもよい。共有サービスクラスタは、そのサービスがユーザアクセス権に基づき、互いに分離された物理サーバのクラスタを提供し、シングルインスタンスサービスクラスタは、そのサービスがユーザアクセス権に基づくが、互いに分離できない物理サーバのクラスタを提供する。様々な物理サーバクラスタに対して、本発明のこの実施形態において提供されたサービスアクセス方法が適用可能である。
【0075】
図5に対応する一実施形態は、物理サーバ上で実行されるサービスに仮想マシンがアクセスする概略フローチャートを提供する。手順は、サービス配置段階、サービス申請段階、およびサービスアクセス段階を含む。
【0077】
ステップ501:物理サーバがオンラインになった後、仮想マシンに提供される1つまたは複数のサービスが物理サーバ上に配置される。
【0078】
サービスは、単一の物理サーバ上に配置されてもよく、高可用性を有する物理サーバクラスタに配置されてもよい。クラウドプラットフォーム管理者は、管理プレゼンテーションインターフェースを使用することにより、物理サーバを構成し、物理サーバ上にサービスを配置する。具体的な手順は既存の解決策を使用することができる。このことは本発明のこの実施形態では限定されない。
【0079】
ステップ502:クラウドプラットフォームが、サービスを実行している物理サーバのIPアドレスおよびポートを記録する。
【0080】
サービスが単一の物理サーバ上に配置されると、仮想マシンは単一の物理サーバにアクセスしてサービスにアクセスする。サービスが物理サーバクラスタ上に配置されると、クラウドプラットフォームによって記録された、サービスを実行している物理サーバのIPアドレスおよびポートは、物理サーバクラスタによって外部に提示されたIPアドレスおよびポートである。たとえば、クラスタがA−Pモードにあるとき、アクティブ/スタンバイの物理サーバは同じIPアドレスおよびポートを有する。同じIPアドレスおよびポートは、物理サーバクラスタによって外部に提示されたアドレスである。あるいは、複数の物理サーバがクラスタを形成するとき、外部に提示されたクラスタ内のマスタノードの仮想IPアドレスおよび仮想ポートが、物理サーバクラスタによって外部に提示されたアドレスとして使用される。
【0081】
様々なサービスは様々なポートに対応することに留意されたい。同じ物理サーバ上に複数のサービスが配置されると、ポートに基づいて異なるサービスが区別されてもよい。
【0082】
ステップ503:クラウドプラットフォームが外部表示アドレスをサービスに割り振る。外部表示アドレスはサービスを一意に識別することができる。可能な実装シナリオでは、外部表示アドレスは公開IPアドレスおよび公開ポートを含む。別の可能な実装シナリオでは、外部表示アドレスはサービスに対応するドメイン名である。クラウドプラットフォームは、公開IPアドレスおよび公開ポートをサービスに割り振り、ドメイン名と公開IPアドレスおよび公開ポートとの間のマッピング関係を確立する。
【0083】
可能な設計では、クラウドプラットフォームは、物理サーバのIPアドレスおよびポート、物理サーバ上で実行されるサービスの識別子、ならびにサービスに対応する公開IPアドレスおよび公開ポートの間の関連付け関係を記録する。またさらに、外部表示アドレスがサービスに対応するドメイン名であるとき、関連付け関係はサービスに対応するドメイン名をさらに含んでもよい。
【0084】
ステップ504:サービスが配置された後、クラウドプラットフォームがサービス情報を外部に公開する。サービス情報はサービスの外部表示アドレスを含む。
【0086】
ステップ505:ユーザがクラウドプラットフォームによって提供されるサービスを問い合わせ、クラウドプラットフォームへのサービス申請要求を開始する。
【0087】
クラウドプラットフォームのサービスプレゼンテーションインターフェースはユーザに見える。ユーザは、仮想マシンを使用してサービスプレゼンテーションインターフェースにログインし、サービス情報を問い合わせ、クラウドプラットフォームへのサービス申請要求を開始する。サービス申請要求は、申請されるべきサービスの識別子、ユーザ識別子、および仮想マシン識別子などを搬送することができる。クラウドプラットフォームがサービス申請要求からサービスの承認に必要な情報を取得することができれば、サービス申請要求で搬送されるコンテンツは、本発明のこの実施形態では限定されないことに留意されたい。
【0088】
ステップ506:クラウドプラットフォームがサービス申請要求を承認または却下し、サービス申請要求を承認した後、クラウドプラットフォームはユーザの認可情報を記録する。認可情報は、ユーザ識別子、仮想マシン識別子、許可、ならびにユーザに割り振られたアカウントおよびパスワードなどを含む。
【0089】
ユーザのサービス申請を受信した後、クラウドプラットフォームはサービス申請を自動的に承認もしくは却下することができるか、または管理者はサービス申請を手動で承認もしくは却下することができる。却下されたサービス申請の場合、失敗原因が仮想マシンに返信される。サービス申請要求が承認されると、クラウドプラットフォームは仮想マシンに認可情報を返信する。
【0090】
サービス認可は、粒度としてユーザを使用することによって実行されてもよいことに留意されたい。具体的には、ユーザのサービス申請要求が承認されると、ユーザに属するすべての仮想マシンがサービスにアクセスすることができる。この場合、認可情報は仮想マシン識別子を含まなくてもよい。サービス認可は、粒度として仮想マシンを使用することによって実行されてもよい。具体的には、ユーザは、承認された仮想マシンを使用することによってのみ、サービスにアクセスすることが許可され得る。この場合、認可情報はユーザ識別子を含まなくてもよい。認可情報における許可は、ユーザがサービスにアクセスすることの動作許可である。たとえば、認可情報内の許可に基づいて、ユーザはデータベースサービスの問合せ許可のみを有することを許可されてもよく、またはユーザはデータベースサービスに対する更新許可を与えられてもよい。
【0091】
ステップ507:クラウドプラットフォームが仮想マシンにサービス申請応答を返信する。仮想マシンからのサービス申請要求が承認されると、サービス申請応答は、サービスの外部表示アドレス、認可情報などを含む。
【0092】
ステップ508:クラウドプラットフォームが仮想マシンのアクセスネットワーク要素にNAT規則を配信する。NAT規則は、サービスを実行している物理サーバのIPアドレスおよびポートと、サービスに対応する公開IPアドレスおよび公開ポートとの間の対応関係を含む。
【0093】
ステップ509:仮想マシンのアクセスネットワーク要素が、データパケットの次の処理に使用されるNAT規則を受信し記録する。
【0095】
ステップ510:仮想マシンがサービスアクセス要求を送信する。サービスアクセス要求の宛先アドレスは、サービスに対応する公開IPアドレスおよび公開ポートである。
【0096】
サービスの外部表示アドレスはドメイン名であってもよいことに留意されたい。サービスが配置された後、クラウドプラットフォームは、登録手順を使用することにより、ドメイン名とサービスに対応する公開IPアドレスおよび公開ポートとの間の対応関係をドメインネームシステムDNSサーバに送信することができる。仮想マシンは、ドメイン名構文解析動作を開始し、ドメイン名に基づいて、サービスに対応する公開IPアドレスおよび公開ポートをDNSサーバから取得するように構成される。DNSサーバはクラウドコンピューティングシステムの内部DNSサーバである。
【0097】
ステップ511:アクセスネットワーク要素がサービスアクセス要求を受信し、NAT規則に従って、サービスアクセス要求の宛先アドレスを、サービスを実行している物理サーバのIPアドレスおよびポートと置き換える。NAT規則は、サービスを実行している物理サーバのIPアドレスおよびポートと、サービスに対応する公開IPアドレスおよび公開ポートとの間の対応関係を含む。
【0098】
ステップ512:NAT変換がすでに実行されたサービスアクセス要求が、ネットワークを使用することにより、サービスを実行している物理サーバにルーティングされる。
【0099】
ステップ513:物理サーバが仮想マシンのサービスアクセス要求を受信し、サービス応答パケットを返信する。サービス応答パケットのソースアドレスは物理サーバのIPアドレスおよびポートである。
【0100】
ステップ514:サービス応答パケットがネットワークを使用してアクセスネットワーク要素にルーティングされる。
【0101】
ステップ515:アクセスネットワーク要素が、NAT規則に従って、サービス応答パケットのソースアドレスをサービスに対応する公開IPアドレスおよび公開ポートと置き換え、仮想マシンにサービス応答パケットを返信する。
【0102】
本発明のこの実施形態において提供された、仮想マシンが物理サーバにアクセスするための方法によれば、サービスが配置された物理サーバの実際のIPアドレスは仮想マシンから保護されてもよく、仮想マシンに統一されたアクセスモードも提供され、それにより、クラウドプラットフォームのネットワークセキュリティが保証され、ユーザがサービスにアクセスする利便性が向上する。さらに、同じサービスに対して同じアクセスモードが構成され、その結果、物理サーバ上でサービスを配置、運用、保守、および管理する複雑さが低減され、ユーザは、物理サーバによって提供されるサービスのオンライン、O&M、更新、および高可用性などの機能に注意を払う必要がない。Vxlanなどのトンネル技術が前述のサービスアクセス手順で使用される必要がなく、伝送効率はより高い。各仮想マシンが接続するアクセスネットワーク要素はNAT規則を実行し、それにより、多数のユーザがPAASサービスに安全にアクセスする同時処理効率が増大する。
【0103】
ユーザは、クラウドプラットフォームによって提供されたサービスプレゼンテーションインターフェースにログインして、サービス情報をチ確認し、サービス申請を開始することができることに留意されたい。クラウドプラットフォームは、仮想マシンからのサービス申請に対して認証を実行することができる。認証は、具体的に、アカウントおよびパスワードを使用することにより、または別の方式で実行されてもよい。このことは本発明のこの実施形態では限定されない。
【0104】
クラウドプラットフォームは、粒度としてユーザ、仮想マシン、またはホストを使用することにより、サービスへの仮想マシンのアクセスを制御することができる。たとえば、クラウドプラットフォームがユーザ向けのサービス認可を実行し、ユーザに属するすべての仮想マシンはサービスにアクセスすることができるか、またはクラウドプラットフォームが仮想マシン向けのサービスアクセス認可を実行し、各仮想マシンは異なるIPを使用して物理サーバのサービスにアクセスするか、またはホスト上の複数の仮想マシンがIPを共有し、クラウドプラットフォームに同じIPアドレスを提示し物理サーバに接続されたサービスに対して、同じホスト上の複数の仮想マシンは様々なパケットポートを使用して区別されてもよい。
【0105】
さらに、クラウドプラットフォームは、仮想マシン向けのサービスアクセス認可をさらに終了することができる。サービスアクセス認可の終了は、ユーザが終了申請を積極的に開始した後、またはユーザが負債を負っているとクラウドプラットフォームが判断した後などにトリガされてもよい。クラウドプラットフォームは、仮想マシンが位置するアクセスネットワーク要素に削除メッセージを配信する。削除メッセージは、アクセスネットワーク要素上に記録された仮想マシンのNAT規則を削除し、クラウドプラットフォーム内に記録されたユーザ情報を削除し、ユーザ向けのアクセス認可を停止するために使用される。クラウドプラットフォームは、ユーザデータを一定期間確保し、データコピーサービスをユーザに提供することができる。適当な有効期間内で、ユーザは更新を選択し、
物理サーバによって提供されるサービスを使用し続けることができる。
【0106】
図1Aおよび
図1Bのクラウドコンピューティングシステム、ならびに
図4および
図5のアクセス手順に対応して、
図6は、本発明の一実施形態によるクラウドプラットフォームの概略構造図である。クラウドプラットフォームは、処理ユニット601と、公開ユニット602と、受信ユニット603と、送信ユニット604とを含む。
【0107】
処理ユニット601は、サービスに対応する公開IPアドレスおよび公開ポートをサービスに割り振り、公開IPアドレスおよび公開ポートと、サービスを実行している物理サーバのIPアドレスおよびポートとの間の対応関係を記録するように構成される。
【0108】
公開ユニット602はサービスを公開するように構成される。
【0109】
受信ユニット603は、仮想マシンによって送信されたサービス申請要求を受信するように構成される。
【0110】
送信ユニット604は、仮想マシンのアクセスネットワーク要素にNAT規則を送信するように構成される。NAT規則は、公開IPアドレスおよび公開ポートと、サービスを実行している物理サーバのIPアドレスおよびポートとの間の対応関係を含み、仮想マシンは、アクセスネットワーク要素を使用してクラウドコンピューティングシステムのネットワークに接続する。
【0111】
さらに、クラウドプラットフォームが公開ユニットを使用してサービス情報を外部に公開することは、具体的に、
公開ユニット602が、具体的に、サービスプレゼンテーションインターフェースを仮想マシンに提供し、サービス情報を表示するように構成され、サービス情報がサービスの外部表示アドレスを含むこと
を含む。
【0112】
外部表示アドレスは、サービスに対応するドメイン名、またはサービスに対応する公開IPアドレスおよび公開ポートを含む。外部表示アドレスはサービスを一意に識別することができる。
【0113】
またさらに、クラウドコンピューティングシステムはDNSサーバをさらに含む。DNSサーバはクラウドコンピューティングシステムの内部DNSサーバである。仮想マシンを実行しているホスト、クラウドプラットフォーム、およびDNSサーバは、ネットワークを使用して接続される。クラウドプラットフォームがサービスを配置した後、かつサービスの外部表示アドレスがサービスに対応するドメイン名であるとき、送信ユニット604は、ドメインネームシステムDNSサーバに、ドメイン名と公開IPアドレスおよび公開ポートとの間の対応関係を配信するようにさらに構成される。
【0114】
送信ユニット604は、仮想マシンにサービス申請応答を返信するようにさらに構成される。サービス申請応答は外部表示アドレスを搬送する。
【0115】
処理ユニット601は、仮想マシンが属するユーザの認可情報を記録するようにさらに構成される。ユーザの認可情報は、ユーザ識別子、仮想マシン識別子、ならびにユーザに割り振られたアカウントおよびパスワードを含む。
【0116】
受信ユニット603は、仮想マシン作成要求を受信するようにさらに構成される。
【0117】
処理ユニット601は、仮想マシン作成要求に基づいてユーザ向けの別の仮想マシンを作成するようにさらに構成される。
【0118】
送信ユニット604は、別の仮想マシンが作成された後、別の仮想マシンが接続するアクセスネットワーク要素にNAT規則を配信するようにさらに構成される。
【0119】
処理ユニット601は、仮想マシン向けのサービス認可を終了するようにさらに構成される。
【0120】
送信ユニット604は、アクセスネットワーク要素に削除メッセージを送信して、仮想マシンのNAT規則を削除するようにアクセスネットワーク要素に指示するようにさらに構成される。
【0121】
図7Aおよび
図7Bは、各々、前述のシステム内のアクセスネットワーク要素の機能を実施する、本発明の一実施形態によるアクセス装置を示す。アクセス装置は、
仮想マシンのサービス申請要求をクラウドプラットフォームに転送するように構成されたクライアント送信ユニット701と、
クラウド受信プラットフォームがサービス申請要求を承認した後にクラウドプラットフォームによって返信された仮想マシンのNAT規則を受信するように構成されたクライアント受信ユニット702であって、NAT規則が、公開IPアドレスおよび公開ポートと、サービスを実行している物理サーバのIPアドレスおよびポートとの間の対応関係を含み、仮想マシンがアクセスネットワーク要素を使用してクラウドコンピューティングシステムのネットワークに接続し、
クライアント送信ユニット701が、仮想マシンによって送信されたサービスアクセス要求を受信するようにさらに構成され、サービスアクセス要求の宛先アドレスが、サービスに対応する公開IPアドレスおよび公開ポートである、クライアント受信ユニット702と、
NAT規則に従って、サービスアクセス要求の宛先アドレスを物理サーバのIPアドレスおよびポートと置き換えるように構成されたクライアント処理ユニット703であって、
クライアント送信ユニット701が、修正されたサービスアクセス要求を物理サーバにルーティングするようにさらに構成され、
クライアント受信ユニット702が、物理サーバによって返信されたサービス応答メッセージを受信するように構成される、クライアント処理ユニット703と
を含む。
【0122】
さらに、クライアント処理ユニット703は、NAT規則に従って、サービス応答メッセージのソースアドレスをサービスに対応する公開IPアドレスおよび公開ポートと置き換えるようにさらに構成される。
【0123】
クライアント送信ユニット702は、修正されたサービス応答メッセージを仮想マシンに送信するようにさらに構成される。
【0124】
図7Aに示されたように、アクセス装置は、前述のシステム内のホスト上の機能部分であってもよく、ホスト上の中央処理装置は、アクセス装置の前述の機能を実施するために命令を実行し、
図7Bに示されたように、アクセス装置は、前述のシステム内のトップオブラックスイッチであってもよく、トップオブラックスイッチは、ホストから独立した物理デバイスであってもよい。別の可能な設計では、トップオブラックスイッチはホスト内の物理部分であってもよい。前述のクラウドプラットフォームおよびアクセス装置は、
図2のコンピュータデバイスを使用して実装されてもよい。
【0125】
本発明の一実施形態は、
図6および
図7に示されたデバイスによって使用されるコンピュータソフトウェア命令を記憶するように構成されたコンピュータ記憶媒体をさらに提供し、コンピュータ記憶媒体は、前述の方法実施形態を実行するために設計されたプログラムを含む。仮想マシンにより、物理サーバ上に配置されたサービスにアクセスするための方法は、記憶されたプログラムを実行することによって実施されてもよい。
【0126】
上記に基づいて、本発明の実施形態において提供された、仮想マシンが物理サーバにアクセスするための方法、装置、およびシステムによれば、サービスが配置された物理サーバの実際のIPアドレスは仮想マシンから保護されてもよく、仮想マシンに統一されたアクセスモードも提供され、それにより、クラウドプラットフォームのネットワークセキュリティが保証され、ユーザがサービスにアクセスする利便性が増大する。さらに、同じサービスに対して同じアクセスモードが構成され、その結果、物理サーバ上でサービスを配置、運用、保守、および管理する複雑さが低減され、ユーザは、物理サーバによって提供されるサービスのオンライン、O&M、更新、および高可用性などの機能に注意を払う必要がない。仮想マシンは、Vxlanなどのトンネル技術を使用して物理サーバにアクセスすることはせず、伝送効率はより高い。各仮想マシンが接続するアクセスネットワーク要素はNAT規則を実行し、それにより、多数のユーザがPAASサービスに安全にアクセスする同時処理効率が増大する。
【0127】
本発明は、実施形態を参照して記載されているが、保護を主張する本発明を実装するプロセスにおいて、当業者は、添付の図面、開示された内容、および添付の特許請求の範囲を参照することにより、開示された実施形態の別の変形形態を理解し実装することができる。特許請求の範囲では、「備える」(comprising)は別の構成要素または別のステップを排除せず、「a」または「one」は複数のケースを排除しない。単一のプロセッサまたは別のユニットは、特許請求の範囲に列挙されたいくつかの機能を実装することができる。いくつかの手段は互いに異なる従属請求項に記録されるが、これは、これらの手段を組み合わせてより良い効果を生み出すことができないことを意味しない。
【0128】
本発明の実施形態は、方法、装置(デバイス)、またはコンピュータプログラム製品として提供されてもよいことを当業者なら理解されよう。したがって、本発明は、ハードウェアのみの実施形態、ソフトウェアのみの実施形態、またはソフトウェアとハードウェアの組合せを有する実施形態の形態を使用することができる。その上、本発明は、コンピュータ使用可能プログラムコードを含む、(限定はしないが、ディスクメモリ、CD−ROM、光メモリなどを含む)1つまたは複数のコンピュータ使用可能記憶媒体に実装されたコンピュータプログラム製品の形態を使用することができる。コンピュータプログラムは、適切な媒体に記憶/分配され、別のハードウェアと一緒にハードウェアの一部として提供もしくは使用されるか、あるいは、Internetまたは別の有線もしくはワイヤレスの電気通信システムを使用することなどにより、別の分配形態を使用することもできる。
【0129】
本発明は、本発明の実施形態による、方法、装置(デバイス)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して記載されている。コンピュータプログラム命令は、フローチャートおよび/またはブロック図内の各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図内のプロセスおよび/またはブロックの組合せを実装するために使用されてもよいことを理解されたい。これらのコンピュータプログラム命令は、機械を生成するために、汎用コンピュータ、専用コンピュータ、組込み型プロセッサ、または任意の他のプログラマブルデータ処理デバイスのプロセッサに提供されてもよく、その結果、コンピュータまたは任意の他のプログラマブルデータ処理デバイスのプロセッサによって実行される命令は、フローチャートの1つもしくは複数のプロセス内、および/またはブロック図の1つもしくは複数のブロック内の特定の機能を実装するための装置を生成する。
【0130】
これらのコンピュータプログラム命令は、特定の方式で動作するようにコンピュータまたは任意の他のプログラマブルデータ処理デバイスに命令することができるコンピュータ可読メモリに記憶されてもよく、その結果、コンピュータ可読メモリに記憶された命令は、命令装置を含む人工物を生成する。命令装置は、フローチャートの1つもしくは複数のプロセス内、および/またはブロック図の1つもしくは複数のブロック内の特定の機能を実装する。
【0131】
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイスにロードされてもよく、その結果、一連の動作およびステップは、コンピュータまたは別のプログラマブルデータ処理デバイス上で実行され、それにより、コンピュータ実装処理が生成される。したがって、コンピュータまたは別のプログラマブルデータ処理デバイス上で実行される命令は、フローチャートの1つもしくは複数のプロセス内、および/またはブロック図の1つもしくは複数のブロック内の特定の機能を実施するためのステップを実現する。
【0132】
本発明は、具体的な特徴およびそれらの実施形態を参照して記載されているが、明らかに、本発明
の範囲から逸脱することなく、それらに対して様々な修正および組合せが行われてもよい。それに対応して、本明細書および添付の図面は、添付の特許請求の範囲によって定義される本発明の説明の単なる例であり、本発明の範囲を包含する修正、変形、組合せ、または均等物のいずれかまたはすべてと見なされる。明らかに、当業者は、本発明
の範囲から逸脱することなく、本発明に対して様々な修正および変形を行うことができる。本発明は、以下の特許請求の範囲およびそれらの等価な技術によって定義される保護範囲内に入るならば、これらの修正および変形を包含するものである。