JP5889284B2 - ネットワーク・リンク動作の劣化を検出した際にネットワーク・サーバ間で仮想マシンを移行させる - Google Patents

ネットワーク・リンク動作の劣化を検出した際にネットワーク・サーバ間で仮想マシンを移行させる Download PDF

Info

Publication number
JP5889284B2
JP5889284B2 JP2013510604A JP2013510604A JP5889284B2 JP 5889284 B2 JP5889284 B2 JP 5889284B2 JP 2013510604 A JP2013510604 A JP 2013510604A JP 2013510604 A JP2013510604 A JP 2013510604A JP 5889284 B2 JP5889284 B2 JP 5889284B2
Authority
JP
Japan
Prior art keywords
link
network device
server
servers
network
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.)
Active
Application number
JP2013510604A
Other languages
English (en)
Other versions
JP2013533660A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013533660A publication Critical patent/JP2013533660A/ja
Application granted granted Critical
Publication of JP5889284B2 publication Critical patent/JP5889284B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明の分野はデータ処理であり、より特定的には、ネットワーク・リンク動作の劣化を検出した際にネットワーク・サーバ間で仮想マシンを移行させるための方法、装置および製品である。
1948年のEDVACコンピュータ・システムの開発は、コンピュータ時代の始まりとしてしばしば引用される。その頃からコンピュータ・システムは進化して、極度に複雑なデバイスとなった。現在のコンピュータは、EDVACなどの初期のシステムよりもかなり精巧になっている。コンピュータ・システムは典型的に、ハードウェアおよびソフトウェア・コンポーネント、アプリケーション・プログラム、オペレーティング・システム、プロセッサ、バス、メモリ、入力/出力デバイスなどの組み合わせを含む。半導体処理およびコンピュータ・アーキテクチャの進歩によってコンピュータの性能が高くなるに従って、より高性能のハードウェアを活用するためにコンピュータ・ソフトウェアが一層精巧に進化してきた結果、現在のコンピュータ・システムはほんの数年前よりもかなり強力になっている。
現在のコンピュータ・システムは、データ通信のためにしばしばネットワーク化されており、かつしばしば仮想マシン、すなわちハードウェアをエミュレートするソフトウェアを使用することによっていくつかのオペレーティング・システムを同時に実行させる。時々、コンピュータ・システムをつなぐネットワーク・デバイスおよびデータ通信リンクが障害を起こし始めることがある。現在の仮想マシンおよび仮想マシンを実行するコンピュータ・システムの間のデータ通信を維持する方法は典型的に、修正動作を取る前に完全な通信障害が起こるまで待つか、または仮想マシンを実行するコンピュータからの大量の処理力を要求する。よって、公知の技術のこれらの欠点に対処することが望ましい。
したがって本発明は第1の局面において、ネットワーク・サーバ間で仮想マシンを移行させるための方法を提供し、このサーバはデータ通信のためにデータ通信ネットワークに結合されており、このネットワークはネットワーキング・デバイスを含み、この方法は、仮想マシン管理モジュール(virtual machine management module:「VMMM」)によって特定のサーバ上に1つまたはそれ以上の仮想マシンを確立するステップと、データ通信のためにネットワーク・デバイスをその特定のサーバに結合しているリンクのリンク統計をVMMMからネットワーキング・デバイスに問い合わせるステップと、VMMMがそのリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するステップと、もしネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していれば、その特定のサーバ上で実行している仮想マシンを行先サーバに移行させるステップとを含む。
好ましくは、特定のサーバ上で実行している仮想マシンを行先サーバに移行させるステップは、ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計をネットワーク・デバイスに問い合わせるステップと、そのリンク統計に依存して、劣化していないリンクを識別するステップと、その劣化していないリンクによってネットワーク・デバイスに結合されているサーバを、特定のサーバ上で実行している仮想マシンに対する行先サーバとして選択するステップとをさらに含む。
好ましくは、仮想マシンを移行させるステップは、劣化していないリンクが利用可能なときにのみ仮想マシンを移行させるステップをさらに含み、このステップは、ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計をネットワーク・デバイスに問い合わせるステップと、ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計に依存して、そのネットワーク・デバイスが故障していると判断するステップと、ネットワーク・サーバ間のデータ通信のためのフェールオーバ・ネットワーク・デバイスを選択するステップと、特定のサーバ上の仮想マシンを移行させないステップとを含む。好ましくは、リンク統計は、ネットワーク・デバイスを特定のサーバに結合しているリンク上で受け取られたエラーのバイトを表す複数のタイムスタンプを押されたエントリを含み、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するステップはさらに、
エラーのバイトを表すタイムスタンプを押されたエントリからビット・エラー率を算出するステップと、
算出されたビット・エラー率が予め定められた閾値よりも大きいかどうかを判断するステップと、もし算出されたビット・エラー率が予め定められた閾値よりも大きければ、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していると判断するステップとを含む。好ましくは、リンク統計は、ネットワーク・デバイスを特定のサーバに結合しているリンク上で受け取られたテスト・データのシンボル・エラーを記述する情報を含み、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するステップはさらに、シンボル・エラーを記述する情報に依存して、シンボル・エラーの頻度を算出するステップと、シンボル・エラーを記述する情報に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンク上のシンボル・エラーの頻度が予め定められた閾値よりも大きいかどうかを判断するステップと、もしシンボル・エラーの頻度が予め定められた閾値よりも大きければ、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していると判断するステップとを含む。この方法はさらに、サーバを互いのサーバおよびネットワーク・デバイスに結合しているリンクを通過するサーバ間のデータ通信をネットワーク・デバイスによってモニタリングするステップと、サーバを互いのサーバおよびネットワーク・デバイスに結合しているリンクを通過するサーバ間のデータ通信を記述するリンク統計を管理情報ベース(management information base:「MIB」)に保存するステップとを含んでもよい。
第2の局面において、本発明はネットワーク・サーバ間で仮想マシンを移行させるための装置を提供し、このサーバはデータ通信のためにデータ通信ネットワークに結合されており、このネットワークはネットワーキング・デバイスを含み、この装置はコンピュータ・プロセッサと、コンピュータ・プロセッサに動作的に結合されたコンピュータ・メモリとを有し、この装置は、仮想マシン管理モジュール(「VMMM」)によって特定のサーバ上に1つまたはそれ以上の仮想マシンを確立するための手段と、データ通信のためにネットワーク・デバイスをその特定のサーバに結合しているリンクのリンク統計をVMMMからネットワーキング・デバイスに問い合わせるための手段と、VMMMがそのリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するための手段と、もしネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していれば、その特定のサーバ上で実行している仮想マシンを行先サーバに移行させるための手段とを含む。
第2の局面の装置は、第1の局面の好ましいステップを行うように適合された手段をさらに提供してもよい。
第3の局面においては、コンピュータ・システムにロードされてそこで実行されるときに、第1の局面に従う方法のすべてのステップを前記コンピュータ・システムに行わせるための、コンピュータ読取り可能媒体に保存されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。
つまり、ネットワーク・サーバ間で仮想マシンを移行させるための方法、装置および製品が記載される。本発明の実施形態において、サーバはデータ通信のために、ネットワーキング・デバイスを含むデータ通信ネットワークに結合されている。本発明の実施形態に従って仮想マシンを移行させるステップは、仮想マシン管理モジュール(「VMMM」)によって特定のサーバ上に1つまたはそれ以上の仮想マシンを確立するステップと、データ通信のためにネットワーク・デバイスをその特定のサーバに結合しているリンクのリンク統計をVMMMからネットワーキング・デバイスに問い合わせるステップと、VMMMがそのリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するステップとを含む。もしネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していれば、その特定のサーバ上で実行している仮想マシンを行先サーバに移行させる。
本発明の好ましい実施形態を、添付の図面を参照しながら単なる例として説明する。
本発明の実施形態に従って仮想マシンがネットワーク・サーバ間で移行される例示的なデータ・センタの線画を示す図である。 本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるための例示的なシステムのネットワーク図である。 本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるための例示的な方法を示す流れ図である。 本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるためのさらなる例示的な方法を示す流れ図である。 本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるためのさらなる例示的な方法を示す流れ図である。 本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるためのさらなる例示的な方法を示す流れ図である。 本発明の実施形態に従って、VMMMがリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するための例示的な方法を示す流れ図である。 本発明の実施形態に従って、VMMMがリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するためのさらなる例示的な方法を示す流れ図である。
本発明に従ってネットワーク・サーバ間で仮想マシンを移行させるための例示的な方法、装置および製品を、図1から始まる添付の図面を参照しながら説明する。図1は、本発明の実施形態に従って仮想マシンがネットワーク・サーバ間で移行される例示的なデータ・センタの線画を示す。データ・センタ(120)は、ミッション・クリティカル・コンピュータ・システムおよび関連コンポーネントを収容するために用いられる設備である。こうしたデータ・センタは、環境制御(空調、消火など)、冗長/バックアップ電源、冗長データ通信接続、および設備内の区画化されたセキュリティ・ゾーンへのバイオメトリック・アクセス制御によって強調される高いセキュリティを含んでもよい。加えてデータ・センタは、典型的にはコンピュータおよび通信機器である大量の電子機器を収容してもよい。データ・センタは、ある組織がその動作のために必要なデータを処理する目的のために維持していてもよい。たとえば銀行がデータ・センタを有してもよく、そこでは銀行の顧客の口座情報が維持されており、それらの口座に関わるトランザクションが行われる。実際には、中規模またはそれより大きい企業はいずれも何らかの種類のデータ・センタを有しており、大企業はしばしば何十ものデータ・センタを有する。
仮想マシン(virtual machine:「VM」)は、本明細書においてこの用語が用いられるとき、コンピュータなどのマシンのソフトウェアの実装を示す。仮想マシンは、各々が自身のオペレーティング・システムを実行し得る異なる仮想マシンの間で、基礎をなす物理マシンのリソースを共有することを可能にする。仮想化を提供するソフトウェア層は、仮想マシン・モニタまたはハイパーバイザと呼ばれる。ハイパーバイザは、複数のオペレーティング・システムがホスト・コンピュータ上で別々の仮想マシンにおいて同時に実行できるようにするために、ソフトウェアおよびハードウェア・プラットフォーム仮想化を行う自動計算機のモジュールである。ハイパーバイザはホストのハードウェアで直接実行されて、ハードウェア・アクセスを制御したり、ゲスト・オペレーティング・システムをモニタしたりする。ゲスト・オペレーティング・システムはハイパーバイザの上のレベルで実行される。ハイパーバイザによって提供されるプラットフォーム仮想化を、本明細書においては仮想化環境と呼ぶ。仮想化環境とは、オペレーティング・システムおよびその他のソフトウェア・アプリケーションの観点から、計算プラットフォームの物理的特徴、すなわちコンピュータ・プロセッサ、コンピュータ・メモリ、I/Oアダプタなどが取り除かれている環境である。
VMは、たとえば以下のものなどを含む多くの利益を提供する。
複数のOS環境が、互いに強固に分離されて、同じ物理的コンピュータ・ハードウェア・リソース上に共存できる、
基礎をなす物理的コンピュータ・ハードウェア・リソースのISAとはいくらか異なる命令セット・アーキテクチャ(instruction set architecture:ISA)、
アプリケーション・プロビジョニング、保全、高可用性、および災害回復、ならびに
当業者の読者が考えるようなその他の利益。
図1のシステムは一般的に、サーバ間のVM移行が可能である。「移行(Migration)」とは、本明細書においてこの用語が用いられるとき、1つの物理的サーバから別の物理的サーバへの仮想マシンの効果的な移動である。移行は、本明細書においては1つのサーバから別のサーバへのVMの「効果的な」移動という観点で記述される。なぜなら移行は移動(movement)の手段を示すのではなく、移動の最終結果を示すからである。つまり、移行は2つの状態を説明しており、第1の状態は特定のVMが特定のサーバ上で実行されている状態であり、第2の状態はその特定のVMがもはやその特定のサーバ上で実行されておらず、代わりに別のサーバ上で実行されている状態である。したがってこの第1の状態から第2の状態へと、特定のVMが特定のサーバから他のサーバに移動したと言ってもよい。しかし、VMのこうした「移動」を行う手段は本発明の範囲内で大きく変動し得る。VMを特定のサーバから別のサーバに移行させるということは、たとえば特定のサーバ上で実行しているVMを表すデータをその特定のサーバのメモリから別のサーバのメモリにコピーすること、特定のサーバ上で実行しているVMの以前確立されたイメージを別のサーバにアップロードしてそこで実行し、その特定のサーバで実行しているVMの実行を停止すること、別のサーバに仮想マシンのデフォルト・イメージを確立し、そのVMのデフォルト・イメージにおいて特定のサーバのVMで実行しているのと同じユーザレベル・アプリケーションのインスタンスを実行することなどを含んでもよい。
図1の例におけるデータ・センタ(120)の例は、いくつかのブレード・サーバを収容するように特定的に構成されたタイプのサーバ・シャーシであるBladeCenter(R)(IBM社の登録商標)(100)を含む。サーバは、本明細書においてこの用語が用いられるとき、一般的にネットワーク接続を通じてサービス(例、データベース・アクセス、ファイル転送、リモート・アクセス)またはリソース(例、ファイル・スペース)を提供するマルチユーザ・コンピュータを示す。「サーバ」という用語は、状況によってはサーバのコンピュータ・ハードウェア、およびサーバ上で実行されるあらゆるサーバ・アプリケーション・ソフトウェアまたはオペレーティング・システム・ソフトウェアを包括的に示す。サーバ・アプリケーションとは、ユーザからの要求に応答を送り返すことによって処理するための接続を受け入れるアプリケーション・プログラムである。サーバ・アプリケーションはクライアント・アプリケーションの使用中に同じコンピュータ上で実行されてもよいし、サーバ・アプリケーションはコンピュータ・ネットワークを通じて接続を受け入れてもよい。サーバ・アプリケーションの例は、ファイル・サーバ、データベース・サーバ、バックアップ・サーバ、プリント・サーバ、メール・サーバ、ウェブ・サーバ、FTPサーバ、アプリケーション・サーバ、VPNサーバ、DHCPサーバ、DNSサーバ、WINSサーバ、ログオン・サーバ、セキュリティ・サーバ、ドメイン・コントローラ、バックアップ・ドメイン・コントローラ、プロキシ・サーバ、ファイアウォールなどを含む。
ブレード・サーバとは、物理的スペースおよびエネルギの使用を最小限にするために最適化されたモジュラー設計を有するサーバ・コンピュータである。標準的なラックマウント・サーバは少なくとも電源コードおよびネットワーク・ケーブルによって機能できるのに対し、ブレード・サーバはスペースの節約、電力消費の最小化およびその他の考慮から、多くのコンポーネントを除去しているが、コンピュータとみなされるすべての機能的コンポーネントはなおも有している。複数のブレード・サーバを保持できるBladeCenter(R)(IBM社の登録商標)は、たとえば電力、冷却、ネットワーク化、さまざまな相互接続および管理などのサービスを提供するが、ブレード・プロバイダが異なれば、ブレード自体(ときにはエンクロージャ全体)に何を含ませるかに関して異なる原則を有する。
図1の例において、BladeCenter(R)(IBM社の登録商標)(100)は2つのキャビネット・ベイ(104、106)を含み、その各々はいくつかのコンポーネントを含む。キャビネット・ベイ(104)はいくつかのブレード・サーバ(108)を含み、その各々は電源(132)から電力供給されている。キャビネット・ベイ(106)はBladeCenter(R)(IBM社の登録商標)(100)のための電源(132)と、データ通信ネットワーク・ルータ(130)と、ネットワーク・スイッチ(134)と、以下により詳細に説明される仮想マシン管理モジュール(「VMMM」)(102)とを含む。キャビネット・ベイ(106)はさらに、独立ディスクの冗長アレイ(Redundant Array of Independent Disks:「RAID」)(136)および電源ストリップ(138)も含む。
図1においては、説明を明確にするためにBladeCenter(R)(IBM社の登録商標)(100)内のブレード・サーバ(108)のうち2つ、すなわちブレード・サーバ(152)およびブレード・サーバ(128)を拡大した形で示している。しかし、BladeCenter(R)(IBM社の登録商標)(100)のブレード・サーバ(108)の各々がサーバ(152、128)と類似のコンポーネントを含んでもよく、本発明の実施形態に従ってVM移行に関与するときには類似の態様で動作してもよいことを当業者の読者は理解するだろう。本発明の実施形態に従ってVM移行が行われるシステムにおいて有用なサーバの例として、サーバ(152)を考える。サーバ(152)は、少なくとも1つのコンピュータ・プロセッサ(156)または「CPU」と、ランダム・アクセス・メモリ(168)(random access memory:「RAM」)とを含み、ランダム・アクセス・メモリ(168)は高速メモリ・バス(166)およびバス・アダプタ(158)を通じてプロセッサ(156)およびサーバ(152)の他のコンポーネントに接続されている。
サーバ(152)のRAM(168)にはハイパーバイザ(140)が保存されており、ハイパーバイザ(140)は2つの仮想マシン(114、116)がサーバ(152)の基礎をなすハードウェア上で実行されて、サーバ(152)のハードウェア・リソースを利用することを可能にする。仮想マシン(114)内(または別の言い方で仮想マシン(114)「上」)で実行されるのは、オペレーティング・システム(154)および2つのユーザレベル・アプリケーション(122、123)である。本発明の実施形態に従うVM移行に関与するサーバにおいて有用なオペレーティング・システムは、UNIX(R)、リナックス(R)、マイクロソフトXP(R)、AIX(R)(IBM社の登録商標)、IBM(R)のi5/OS(R)(IBM社の登録商標)、および当業者が考えるその他のものを含む。仮想マシン(116)内で実行されるのは、オペレーティング・システム(154)および2つのユーザレベル・アプリケーション(124、125)である。仮想マシン(116)内で実行されるオペレーティング・システム(154)は、仮想マシン(114)内で実行される同じオペレーティング・システム(154)の別のインスタンスであってもよいし、全体的に別のタイプのオペレーティング・システム(154)であってもよい。つまり、サーバ(152)内の両方のオペレーティング・システムが同じ、たとえばUNIX(R)などであってもよいし、両方のオペレーティング・システムが異なっていて、たとえばUNIX(R)およびマイクロソフトXP(R)などであってもよい。
図1の例においては、RAM(168)の中にハイパーバイザ(140)と、オペレーティング・システム(154)と、ユーザレベル・アプリケーション(122〜125)とが示されているが、こうしたソフトウェアの多くのコンポーネントは典型的に、たとえばディスク・ドライブ(170)などの不揮発性メモリにも保存されている。
図1のサーバ(152)は、拡張バス(160)およびバス・アダプタ(158)を通じてプロセッサ(156)およびサーバ(152)の他のコンポーネントに結合されているディスク・ドライブ・アダプタ(172)を含む。ディスク・ドライブ・アダプタ(172)は、ディスク・ドライブ(170)の形の不揮発性データ記憶装置をサーバ(152)に接続する。本発明の実施形態に従うネットワーク・サーバ間の仮想マシン移行に関与するサーバにおいて有用なディスク・ドライブ・アダプタは、統合ドライブ・エレクトロニクス(Integrated Drive Electronics:「IDE」)アダプタ、小型コンピュータ・システム・インタフェース(Small Computer System Interface:「SCSI」)アダプタ、および当業者が考えるその他のものを含む。当業者が考えるように、不揮発性コンピュータ・メモリは光ディスク・ドライブ、電気消去可能プログラマブル・リード・オンリ・メモリ(electrically erasable programmable read−only memory)(いわゆる「EEPROM」または「フラッシュ」メモリ)、RAMドライブなどとして実装されてもよい。
図1のサーバ(152)の例は、1つまたはそれ以上の入力/出力(input/output:「I/O」)アダプタ(178)を含む。I/Oアダプタは、たとえばコンピュータ表示スクリーンなどの表示デバイスへの出力を制御するためのソフトウェア・ドライバおよびコンピュータ・ハードウェアなど、ならびにキーボードおよびマウスなどのユーザ入力デバイス(181)からのユーザ入力などを通じて、ユーザオリエンテッド入力/出力を実装する。図1のサーバ(152)の例はビデオ・アダプタ(209)を含むが、これは表示スクリーンまたはコンピュータ・モニタなどの表示デバイス(180)へのグラフィック出力のために特別に設計されたI/Oアダプタの例である。ビデオ・アダプタ(209)は、高速ビデオ・バス(164)と、バス・アダプタ(158)と、同じく高速バスであるフロント・サイド・バス(162)とを通じてプロセッサ(156)に接続されている。
図1の例示的サーバ(152)は、他のコンピュータとのデータ通信、およびデータ通信ネットワーク(図1には示さず)とのデータ通信のための通信アダプタ(167)を含む。こうしたデータ通信は、RS−232接続、ユニバーサル・シリアル・バス(Universal Serial Bus:「USB」)などの外部バス、およびIPデータ通信ネットワークなどのデータ通信ネットワークを通じて、ならびに当業者が考えるその他のやり方で連続的に行われてもよい。通信アダプタはハードウェア・レベルのデータ通信を実装し、それを通じて1つのコンピュータが、直接またはデータ通信ネットワークを通じて、別のコンピュータにデータ通信を送る。本発明の実施形態に従うVM移行に関与するサーバにおいて有用な通信アダプタの例は、ワイヤード・ダイヤルアップ通信のためのモデム、ワイヤード・データ通信ネットワーク通信のためのイーサネット(R)(IEEE802.3)アダプタ、および無線データ通信ネットワーク通信のための802.11アダプタを含む。
サーバ(152)のみがプロセッサ(156)、RAM(168)、バス・アダプタ(158)、通信アダプタ(167)などを含むものとして示されているが、図1の例のブレード・サーバ(108)のいずれも、より特定的にはサーバ(128)も類似のコンポーネントを含んでもよいことを当業者の読者は認識するだろう。
図1のBladeCenter(R)(IBM社の登録商標)(100)のスイッチ(134)は、ネットワーク・デバイスすなわちコンピュータ・ネットワークにおけるデータを仲介するユニットの例である。ネットワーキング・デバイスは、ネットワーク機器、中間システム(Intermediate Systems:IS)または網間接続装置(InterWorking Units:IWUs)とも呼ばれてもよい。最終受信機であるか、またはデータを生成するユニットは、ホストまたはデータ端末機器と呼ばれる。
ネットワーキング・デバイスの例は以下を含む。
ゲートウェイ:異なるプロトコルを用いる別のネットワークとインタフェースするネットワーク・ノードにおけるデバイス。開放型システム間相互接続(Open System Interconnection:「OSI」)の第4層から第7層で動作する。
ルータ:データ・パケットをその行先に向けて転送するための次のネットワーク・ポイントを決定する専用のネットワーク・デバイス。典型的にOSI第3層で動作する。
ブリッジ:複数のネットワーク・セグメントをデータ・リンク層に沿って接続するデバイス。OSI第2層で動作する。
スイッチ:1つのネットワーク・セグメントからのトラフィックを、特定のラインまたは「リンク」、すなわちそのセグメントを別のネットワーク・セグメントに接続する対象となる単数または複数の行先に割り当てるデバイス。スイッチはハブとは異なり、ネットワーク・トラフィックを分割して、ネットワーク上のすべてのシステムに送るのではなく異なる行先に送る。OSI第2層で動作する。
多層スイッチ:OSI第2層におけるスイッチングに加えて、より上のプロトコル層での機能を提供するスイッチ。
ハブ:複数のセグメントをともに接続して、それらをあたかも単一のセグメントであるかのように動作させるデバイス。ハブを用いるとき、すべての付加デバイスは同じブロードキャスト・ドメインおよび同じコリジョン・ドメインを共有する。したがって、1度に送信できるのはハブに接続された1つのコンピュータのみである。ネットワーク・トポロジに依存して、ハブはネットワーク・オブジェクト(ワークステーション、サーバなど)の間のレベル1OSIモデル接続を提供する。加えてハブは、個々のノード間の専用接続を提供するスイッチに比べ、すべてのオブジェクトに共有される帯域幅を提供してもよい。OSI第1層で動作する。
リピータ:受け取ったデジタル信号を増幅または再生し、一方でそのデジタル信号をネットワークの1つの部分から別の部分にセットするデバイス。OSI第1層で動作する。
プロトコル変換器:たとえば非同期伝送と同期伝送など、2つの異なるタイプの伝送を互いに変換するハードウェア・デバイス。
ブリッジ・ルータ:ルータおよびブリッジの機能の組み合わせで動作するデバイス。OSI第2層およびOSI第3層の両方で動作する。
デジタル媒体受信機:コンピュータ・ネットワークをホーム・シアタに接続するデバイス。
図1の例におけるスイッチ(134)は、ブレード・サーバ(108、152および128も含む)を、互いとのデータ通信のため、ならびにルータ(130)およびVMMM(102)とのデータ通信のために結合する。
図1の仮想マシン管理モジュール(102)(「VMMM」)は、図1の例におけるネットワーク・サーバ(108、152および128も含む)間の仮想マシン移行を行うために構成された、コンピュータ・ハードウェアおよびソフトウェアの集約を含む自動計算機のモジュールである。加えてVMMMは、移行技術に関わらず、他の仮想マシン管理も行っていてもよい。すなわちVMMM(102)は、作業負荷、冗長性または可用性のバランスを取る態様で、サーバ間でのVMの割り当てを管理してもよい。VMMM(102)は、リソース割り当てを管理するか、または別の管理モジュールとともに作業して動作特徴、すなわちスロットリング・サーバ(throttling servers)などを制御することによって、VMの動作を管理してもよい。VMMM(102)はさらに、仮想マシンの割り当て解除を管理して、仮想マシンの電源を完全に切るのではなく待機モードにするかどうかなどを選択してもよい。これらは、本発明の実施形態に従うVM移行のために動作するVMMMが行い得る数多くのタスクのうちのほんのわずかである。
図1の例におけるVMMM(102)は、最初に特定のサーバ上に1つまたはそれ以上のVMを確立することによって、本発明の実施形態に従って図1のBladeCenter(R)(IBM社の登録商標)(100)内のブレード・サーバ(108)間でVMを移行させてもよい。説明の目的のために、図1の例におけるVMMM(102)はサーバ(152)上に仮想マシン(114)および仮想マシン(116)を確立すると考える。次いでVMMMは、ネットワーキング・デバイスすなわちスイッチ(134)に、データ通信のためにネットワーク・デバイスを特定のサーバに結合しているリンクのリンク統計(112)を問い合わせてもよい。リンクは、本明細書においてこの用語が記載されるとき、状況によってはデバイス間のデータ通信を支持するための2つのデバイス間の物理的または論理的結合を示す。リンク統計は、サーバ(108、152、128)を互いのサーバおよびスイッチ(134)に結合しているリンクを通過するデータ通信を記述する。
次いでVMMM(102)は、リンク統計(112)に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断してもよく、もしネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していれば、VMMMはその特定のサーバ(152)上で実行している仮想マシン、たとえばVM(114)を、たとえばサーバ(128)などの行先サーバに移行させてもよい。
図1のデータ・センタ(120)においてVM移行を行うVMMM(102)の例として、VMMM(102)は最初にサーバ(152)上にVM(114)およびVM(116)を確立し、サーバ(128)上にはVMを確立しないものと考える。サーバ(152)およびサーバ(128)を含むサーバ(108)がネットワーク・スイッチ(134)を介して互いにデータ通信メッセージを渡し合う際に、ネットワーク・スイッチ(134)はそのデータ通信をモニタし、問い合わせを介してVMMM(102)によってアクセス可能な予め規定されたメモリ領域にリンク統計を保存する。VMMM(102)は時々スイッチ(134)にリンク統計(112)を問い合わせ、サーバ(152)およびスイッチ(134)を結合しているリンクが劣化しているかどうかを判断する。もしそのリンクが劣化していれば、VMMM(102)はVM(114)およびVM(116)をサーバ(128)に移行し、それはここではVM(118)およびVM(119)と示される。サーバ(128)において現在ハイパーバイザが実行中でなければ、VMMMはVM(118、119)を確立する前にまずサーバ(128)においてハイパーバイザ(142)を開始してもよい。VMMM(102)はVMに加えて、サーバ(152)のVM(114、116)において実行されているユーザレベル・アプリケーション(122〜125)もサーバ(128)のVM(118、119)に移行させてもよい。図1の例においては、ユーザレベル・アプリケーション(122〜125)が移行されて、ユーザレベル・アプリケーション(126、127、129および131)と示されている。
本明細書において通信リンクを説明するために用いられる「劣化している(degrading)」という用語は、リンクが標準以下のレベルで動作しているかもしれないこと、および故障に近いかもしれないことを示す。本明細書において、「劣化している」という用語は、VM移行が事後対応の態様ではなく予防的態様で行われること、すなわち緩和に焦点をおいた態様で行われることを示すために用いられている。つまり、図1の例のVMMMはリンクの故障後にVMを移行させるのではなく、完全な故障の前にVMを移行させることによって、もしリンクが完全に故障すれば起こり得るデータ通信および生産性などの損失を緩和する。このやり方によって、サーバおよびVMの可用性が増加する。当業者の読者はさらに、データ通信をモニタリングするステップおよびリンクが劣化しているかどうかを判断するステップが、VMを支持して使用可能にしているハイパーバイザによって行われるのではなく、ネットワーク・デバイスおよびVMMMによって行われていることを認識するだろう。このやり方によって、ハイパーバイザおよびハイパーバイザが動作しているサーバに、データ通信をモニタリングしたりデータ通信リンクが劣化しているかどうかを判断したりするステップの負担がかからず、サーバの動作の効率が上がり、動作のオーバーヘッドが減少する。
リンクは、たとえばデータ通信パケットにおける周期的冗長検査(Cyclical Redundancy Check:CRC)エラーをもたらす信号エラーを引き起こす電磁干渉、および連結シンボル信号がケーブル特徴に対してスイッチ・ハードウェアを不整合させる原因となる物理的ケーブルの経時変化などを含むさまざまな原因によって劣化し得る。これらはリンク劣化の原因として可能性のある多くの要因のうちのほんのわずかな例であり、こうした原因の各々は十分に本発明の範囲内にある。
図1に示される例示的なシステムを構成するサーバおよびその他のデバイスの配置は説明のためのものであって、制限のためのものではない。本発明のさまざまな実施形態に従って有用なデータ処理システムは、当業者が考えるように、図1に示されていない付加的なサーバ、ルータ、その他のデバイス、およびピア・トゥ・ピア・アーキテクチャを含んでもよい。こうしたデータ処理システムにおけるネットワークは、たとえばTCP(伝送制御プロトコル(Transmission Control Protocol))、IP(インターネット・プロトコル(Internet Protocol))、HTTP(ハイパーテキスト転送プロトコル(HyperText Transfer Protocol))、WAP(無線アクセス・プロトコル(Wireless Access Protocol))、HDTP(ハンドヘルド・デバイス移送プロトコル(Handheld Device Transport Protocol))、および当業者が考えるようなその他のものなどを含む多くのデータ通信プロトコルを支持してもよい。図1に示されているものに加えて、さまざまなハードウェア・プラットフォームにおいて本発明のさまざまな実施形態が実装されてもよい。
図2は、本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるための例示的なシステムのネットワーク図を示す。図2の例示的システムは図1の例に示されるシステムと以下の点で類似である。すなわち、図2のシステムもサーバ(152、128)と、スイッチ(134)の形のネットワーク・デバイスと、VMMM(102)とを含み、これらはすべてデータ通信ネットワークのローカル・エリア・ネットワーク(local area network:「LAN」)(101)を介して互いに結合されるかまたはデータ通信している。サーバ(152、128)およびVMMM(102)は、データ通信のために他のサーバ(150)にも結合されている。
図2のシステム例におけるサーバ(152、128および150)は、データ通信のためにデータ通信リンクを介してスイッチ(134)に結合されている。サーバ(152)はデータ通信のためにリンク(192)を通じてデータ通信ネットワーク(101)およびスイッチ(134)に結合され、サーバ(128)はデータ通信のためにリンク(194)を通じてデータ通信ネットワーク(101)およびスイッチ(134)に結合され、他のサーバ(150)のうちの少なくとも1つはデータ通信のためにリンク(190)を通じてデータ通信ネットワーク(101)およびスイッチ(134)に結合される。リンクは、本明細書においてこの用語が記載されるとき、状況によってはデバイス間のデータ通信を支持するための2つのデバイス間の物理的または論理的結合を示す。たとえばサーバをスイッチに結合するイーサネット(R)・ケーブルは、「リンク」の一例であり得る。たとえばサーバとスイッチのポートなど、2つの端点によって指定される論理的結合もリンクの一例であり得る。ネットワーク・デバイスとサーバとの間の関係を説明するために本明細書において用いられる「結合される(coupled)」という用語は、サーバとネットワーク・デバイスとの間の直接または別様のあらゆる接続を説明するために示される。つまり、ネットワーク・デバイスとサーバとの間の関係を説明するときの「結合される」という用語は、ネットワーク・デバイスとネットワーク・デバイスとの直接的な物理的接続に限定されず、他のネットワーク・デバイスを通じた間接的な接続も含み得る。
図2のシステムにおいて、サーバ(152、128および150)は、図1に示されて説明されたサーバと類似のコンポーネントを含む、すなわちプロセッサ(156)、RAM(168)、バス・アダプタ(158)、通信アダプタ(178)などを含むコンピュータとして実装される。図2の例におけるスイッチ(134)も、サーバ(152および128)と類似のタイプのコンピュータ、すなわち自動計算機として実装される。スイッチ(134)は、RAM(168)に結合されたプロセッサ(156)を含む。このスイッチはもちろんより多くのコンポーネント、ソフトウェアおよびハードウェアを含んでもよいが、説明を明確にするために図2の例においてはRAMおよびプロセッサのみが示されている。スイッチ(134)のRAM(168)にはトラフィック・モニタ(202)が保存されている。トラフィック・モニタ(202)はコンピュータ・プログラム命令のモジュールであり、これが実行されることによって、ネットワーク・スイッチ(134)はサーバ(152、128、150)を互いのサーバおよびスイッチ(134)に結合しているリンク(190、192、194)を通過するサーバ(152、128、150)間のデータ通信をモニタし、サーバを互いのサーバおよびスイッチに結合しているリンクを通過するサーバ間のデータ通信を記述するリンク統計(112)を管理情報ベース(「MIB」)(204)に保存する。リンク統計の例は、各リンクに対する、特定のデバイスからそのリンクに沿って送信されたバイト数、特定のデバイスによってそのリンクに沿って受信されたバイト数、そのリンクに沿って運ばれたエラーのバイト数、およびそのリンクに沿って伝播されたシンボル・エラーのインスタンスなどを含む。
上述のとおり、リンク統計はMIBに保存されてもよい。MIBは、通信ネットワーク内のエンティティを管理するために用いられる仮想データベースである。このデータベースは階層的(木構造)であり、エントリはオブジェクト識別子によってアドレス指定されている。インターネット文書コメント要求(Request For Comments:「RFCs」)においてMIBが考察されており、特にRFC1155「TCP/IPに基づくインターネットのための管理情報の構造および識別(Structure and Identification of Management Information for TCP/IP based internets)」ならびにその2つの関連項目、RFC1213「TCP/IPに基づくインターネットのネットワーク管理のための管理情報ベース(Management Information Base for Network Management of TCP/IP−based internets)」およびRFC1157「簡単なネットワーク管理プロトコル(A Simple Network Management Protocol)」に考察されている。
図1に関して上述したとおり、スイッチ(134)に加えて、VMMM(102)も自動計算機すなわちコンピュータとして実装されてもよい。したがってさらなる説明のために、図2はコンピュータとして実装されるVMMM(102)の例を示す。図2のVMMM(102)の例は、サーバ(152、128)のコンポーネントと類似のコンポーネントを含み、すなわちプロセッサ(156)、バス・アダプタ(158)、通信アダプタ(178)、RAM(168)などを含む。VMMM(102)のRAM(168)には仮想マシン・アロケータ(110)が保存されている。VMアロケータ(110)はコンピュータ・プログラム命令のモジュールであって、これが実行されるときに、本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンが移行される。VMアロケータ(110)の例は、最初に特定のサーバ上に1つまたはそれ以上の仮想マシン(114、116)を確立し、データ通信のためにネットワーク・デバイス(134)をその特定のサーバ(152)に結合しているリンク(192)のリンク統計(112)をネットワーキング・デバイス(134)に問い合わせ、そのリンク統計(112)に依存して、ネットワーク・デバイス(134)を特定のサーバ(152)に結合しているリンク(192)が劣化しているかどうかを判断し、もしリンク(192)が劣化していれば、特定のサーバ(152)上で実行している仮想マシン(114、116)を行先サーバ(128または150)に移行させることによって、図2のシステムにおけるサーバ(152、128および150)間でVMを移行させてもよい。
VMアロケータ(110)は、仮想マシン(114、116)の移行に加えて、VM(114、116)内で実行されるユーザレベル・アプリケーション(122、123、124、125)も移行させてもよい。たとえば図2のシステムにおいて、VMアロケータ(110)は、サーバ(152)上のVM(114)をサーバ(128)上のVM(118)に移行させてもよい。VMアロケータ(110)はさらに、VM(114)内で実行されるユーザレベル・アプリケーション(122、123)をVM(118)内で実行されるユーザレベル・アプリケーション(126、127)に移行させてもよい。類似の態様で、VMアロケータ(110)は、サーバ(152)上のVM(116)をサーバ(128)上のVM(119)に移行させてもよい。VMアロケータ(110)はさらに、VM(116)内で実行されるユーザレベル・アプリケーション(124、125)をVM(119)内で実行されるユーザレベル・アプリケーション(129、131)に移行させてもよい。
図2に示される例示的なシステムを構成するサーバおよびその他のデバイスの配置は説明のためのものであって、制限のためのものではない。本発明のさまざまな実施形態に従って有用なデータ処理システムは、当業者が考えるように、図2に示されていない付加的なサーバ、ルータ、その他のデバイス、およびピア・トゥ・ピア・アーキテクチャを含んでもよい。こうしたデータ処理システムにおけるネットワークは、たとえばTCP(伝送制御プロトコル)、IP(インターネット・プロトコル)、HTTP(ハイパーテキスト転送プロトコル)、WAP(無線アクセス・プロトコル)、HDTP(ハンドヘルド・デバイス移送プロトコル)、および当業者が考えるようなその他のものなどを含む多くのデータ通信プロトコルを支持してもよい。図2に示されているものに加えて、さまざまなハードウェア・プラットフォームにおいて本発明のさまざまな実施形態が実装されてもよい。
さらなる説明のために、図3は本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるための例示的な方法を示す流れ図を示す。図3の方法において、サーバ(312、318)はデータ通信のためのデータ通信リンク(192、194)を通じて、ネットワーキング・デバイス(310)を含むデータ通信ネットワークに結合されている。ネットワーキング・デバイスは、本明細書においてこの用語が用いられるとき、データ通信のために他のデバイスを結合することができ、かつそれら他のデバイスを互いのデバイスおよびネットワーク・デバイスに結合するリンクを通過するデータ通信を記述するリンク統計を提供できる自動計算機を示す。ネットワーキング・デバイスの例は、当業者の読者が考えるように、ネットワーク・スイッチ、ネットワーク・ルータ、ハブなどを含む。
図3の方法は、仮想マシン管理モジュール(102)によって特定のサーバ(312)上に1つまたはそれ以上の仮想マシン(316)を確立する(302)ステップを含む。仮想マシン管理モジュール(102)によって特定のサーバ(312)上に1つまたはそれ以上の仮想マシン(316)を確立する(302)ステップは、特定のサーバ上でハイパーバイザを実行し、特定の構成の仮想マシン、すなわち当業者の読者が考えるようなプロセッサ数、メモリ・リソースなどを有する仮想マシンを支持するようにハイパーバイザを構成することによって行われてもよい。
加えて図3の方法は、データ通信のためにネットワーク・デバイス(310)を特定のサーバ(312)に結合しているリンク(192)のリンク統計(112)をVMMM(102)からネットワーキング・デバイス(310)に問い合わせる(304)ステップを含む。ネットワーキング・デバイス(310)にリンク統計(112)を問い合わせる(304)ステップは、たとえばMIB(204)に関する問い合わせを受け取るためのネットワーク・アドレスまたはポートとして予め指定されたネットワーク・デバイスのネットワーク・アドレスまたはポートに要求を送ることなどを含むさまざまなやり方で行われてもよく、この要求は特定のリンクを識別するオブジェクト識別子か、または特定のサーバを識別するオブジェクト識別子を含む。VMMMがリンク統計(112)を問い合わせすることができる別のやり方は、ネットワーク・デバイスに保存されたデータ通信トラフィックに関するすべてのデータを要求して、その要求したデータからリンク統計(112)を導き出すことである。
加えて図3の方法は、VMMM(102)がそのリンク統計(112)に依存して、ネットワーク・デバイス(310)を特定のサーバ(312)に結合しているリンク(192)が劣化しているかどうかを判断し(306)、もしネットワーク・デバイス(310)を特定のサーバ(312)に結合しているリンク(192)が劣化していなければ、予め規定された時間だけ待って(308)から再びネットワーク・デバイスに問い合わせるステップを含む。すなわち図3の方法において、VMMM(102)は周期的にネットワーク・デバイス(310)にリンク統計(112)をポーリングするように構成される。
もしネットワーク・デバイス(310)を特定のサーバ(312)に結合しているリンク(192)が劣化していれば、図3の方法は、特定のサーバ(312)上で実行している仮想マシン(316)を行先サーバ(318)に移行させる(314)ステップを続ける。特定のサーバ(312)上で実行している仮想マシン(316)を行先サーバ(318)に移行させる(314)ステップは、たとえば特定のサーバ(312)のメモリからVMを表すデータをコピーして、そのデータを行先サーバ(318)のメモリに書込むことによって特定のサーバ(312)上で動作するVMのインスタンスの正確なコピーを確実にすること、デフォルト仮想マシンの予め構成されたイメージ(特定のVM(316)を生成するために用いられたのと同じイメージ)をロードすること、特定のVM(316)のさまざまな属性を指定する構成ファイルを特定のサーバ(312)から検索し、その属性を用いて行先サーバ(318)上に別のVM(336)を開始させることなどを含むさまざまなやり方で行われてもよい。仮想マシンを移行させる(314)ステップは、仮想マシン内で実行されるあらゆるアプリケーションを移行させるステップも含んでもよい。
さらなる説明のために、図4は、本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるためのさらなる例示的な方法を示す流れ図を示す。図4の方法は図3の方法と類似であり、特定のサーバ(312)上に1つまたはそれ以上の仮想マシン(316)を確立する(302)ステップと、ネットワーキング・デバイス(310)に問い合わせる(304)ステップと、リンク(192)が劣化しているかどうかを判断する(306)ステップと、もしリンク(192)が劣化していれば仮想マシン(316)を行先サーバ(318)に移行させる(314)ステップとを同様に含む。
しかし、図4の方法が図3の方法と異なる点は、図4の方法が、サーバを互いのサーバおよびネットワーク・デバイス(310)に結合しているリンク(192、194)を通過するサーバ間のデータ通信をネットワーク・デバイス(310)によってモニタリングする(402)ステップと、サーバを互いのサーバおよびネットワーク・デバイスに結合しているリンクを通過するサーバ間のデータ通信を記述するリンク統計(112)を、VMMM(102)によるアクセスが可能な管理情報ベース(「MIB」)に保存する(406)ステップとを含むことである。ネットワーク・デバイス(310)は、さまざまなやり方でデータ通信をモニタしてもよい。モニタリングするステップによって、当業者の読者が考えるように、各リンクに対する、ネットワーク・デバイスから特定のリンクに沿って送信されたバイト数、ネットワーク・デバイスによって特定のリンクに沿って受信されたバイト数、特定のリンクから受信されたエラーのバイト数、およびシンボル・エラーのインスタンスの数などが得られる。
さらなる説明のために、図5は、本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるためのさらなる例示的な方法を示す流れ図を示す。図5の方法は図3の方法と類似であり、特定のサーバ(312)上に1つまたはそれ以上の仮想マシン(316)を確立する(302)ステップと、ネットワーキング・デバイス(310)に問い合わせる(304)ステップと、リンク(192)が劣化しているかどうかを判断する(306)ステップと、もしリンク(192)が劣化していれば仮想マシン(316)を行先サーバ(318)に移行させる(314)ステップとを同様に含む。
しかし、図5の方法が図3の方法と異なる点は、図5の方法において、もしリンク(192)が劣化していれば仮想マシン(316)を行先サーバ(318)に移行させる(314)ステップが、ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計をネットワーク・デバイスに問い合わせる(502)ステップと、そのリンク統計に依存して、劣化していないリンクを識別する(508)ステップと、その劣化していないリンクによってネットワーク・デバイスに結合されているサーバを、特定のサーバ上で実行している仮想マシンに対する行先サーバ(318)として選択する(510)ステップとをさらに含むことである。すなわち図5の方法において、VMMMは、劣化しているリンクのために仮想マシンを特定のサーバ(312)から、劣化しているリンクを介してネットワークおよびネットワーク・デバイス(310)に結合されていない別のサーバに移行させる。劣化していないリンクを伴うサーバが複数存在するとき、VMMMは、ラウンド・ロビン・スタイル選択アルゴリズムに従うやり方、行先サーバとして選択すべき次のサーバを指定する規則の組に従うやり方、作業負荷のバランスを取るための最適化ルーチンによるやり方、および当業者の読者が考えるようなその他のやり方を含むさまざまなやり方で、特定のVM(316)に対する行先サーバ(318)としてサーバを選択(510)してもよい。
さらなる説明のために、図6は、本発明の実施形態に従ってネットワーク・サーバ間で仮想マシンを移行させるためのさらなる例示的な方法を示す流れ図を示す。図6の方法は図3の方法と類似であり、特定のサーバ(312)上に1つまたはそれ以上の仮想マシン(316)を確立する(302)ステップと、ネットワーキング・デバイス(310)に問い合わせる(304)ステップと、リンク(192)が劣化しているかどうかを判断する(306)ステップと、もしリンク(192)が劣化していれば仮想マシン(316)を行先サーバ(318)に移行させる(314)ステップとを同様に含む。
しかし、図6の方法が図3の方法と異なる点は、図6の方法において、仮想マシンを移行させる(314)ステップは、劣化していないリンクが利用可能なときにのみ行われることである。すなわち図6の方法において、仮想マシン(316)を移行させる(314)ステップは、ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計(604)をネットワーク・デバイスに問い合わせる(602)ステップと、ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計(604)に依存して、ネットワーク・デバイス(310)が故障していると判断する(606)ステップとを含む。つまり、他のすべてのリンクに対するリンク統計が劣化リンクを示すとき、すなわち劣化していないと考えられるリンクがないとき、VMMMは1つのリンクを支持するハードウェアまたはソフトウェアではなく、ネットワーク・デバイス全体が故障していると判断する。
加えて図6の方法は、ネットワーク・サーバ間のデータ通信のためのフェールオーバ・ネットワーク・デバイス(616)を選択する(608)ステップと、特定のサーバ上の仮想マシンを移行させない(610)ステップとを含む。フェールオーバ・ネットワーク・デバイス(616)を選択するステップは、たとえばフェールオーバ・デバイスのリスト上に指定された次に利用可能なデバイスを選択することなどによるさまざまなやり方で行われてもよい。フェールオーバ・ネットワーク・デバイス(616)を選択する(608)ステップはさらに、故障していると判断されたネットワーク・デバイス(310)を通さずに、リンク(612および614)を確立することなどによって、フェールオーバ・ネットワーク・デバイス(616)を通るデータ通信を再ルーティングするステップを含んでもよい。
図6の方法においては、サーバ(312)に起こり得るハードウェアまたはソフトウェア・データ通信障害ではなく、ネットワーク・デバイス(310)が故障している。したがって、サーバ(312)がフェールオーバ・ネットワーク・デバイス(616)を介してデータ通信できる限り、仮想マシン(316)を別のサーバに移行させる必要はない。
上記のとおり、本発明の実施形態に従ってVMを移行させるステップは特に、VMMMがリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断するステップを含む。さらなる説明のために、図7は、本発明の実施形態に従って、VMMMがリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断する(306)ための例示的な方法を示す流れ図を示す。
図7の方法において、ネットワーク・デバイスが集めるリンク統計はいくつかのタイムスタンプを押されたエントリ(702)を含み、その各々はネットワーク・デバイスを特定のサーバに結合しているリンク上で受け取られたエラーのバイトを表す。図7の例において、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断する(306)ステップは、エラーのバイトを表すタイムスタンプを押されたエントリからビット・エラー率(bit error rate)(706)を算出し(704)、算出されたビット・エラー率(706)が予め定められた閾値(710)よりも大きいかどうかを判断する(708)ことによって行われる。もしビット・エラー率(706)が予め定められた閾値(710)以下であれば、図7の方法を行うVMMMはそのリンクが劣化していないと判断する(714)。しかし、もし算出されたビット・エラー率(706)が予め定められた閾値(710)よりも大きければ、VMMMはネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していると判断する(712)。
図8は、本発明の実施形態に従って、VMMMがリンク統計に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断する(306)ためのさらなる例示的な方法を示す流れ図を示す。図8の方法において、ネットワーク・デバイスが集めて図8の方法を行うVMMMに提供するリンク統計は、ネットワーク・デバイスを特定のサーバに結合しているリンク上で受け取られたテスト・データのシンボル・エラー(802)を記述する情報を含む。シンボル・エラー(802)とは、テスト・パターンにおいて受信側に送信されたシンボルの変更である。テスト・パターンの一例は、サーバからネットワーク・デバイスに周期的に送られるデータのバイトを含む。ネットワーク・デバイスおよびサーバの両方が、データのバイトの適切な形成を認識している。データのテスト・バイトを形成するビットのいずれか1つが誤っていれば、ネットワーク・スイッチはそのインスタンスをシンボル・エラーとして記録する。たとえば、サーバからネットワーク・スイッチに送られたデータのバイトを含むテスト・パターンがビット・パターン11111111を有しており、10001010として受け取られたと考える。ネットワーク・デバイスはシンボル・エラーのインスタンスを記録し、場合によってはそのシンボル・エラーのインスタンスに含まれるビット・エラーの数を示す。この例において、ネットワーク・デバイスは、シンボル・エラーの現在のインスタンスにおいて5つのビット・エラーが起こったことを示してもよい。
ネットワーク・デバイスを特定のサーバに結合しているリンクが劣化しているかどうかを判断する(306)ステップは、シンボル・エラー(802)を記述する情報に依存して、シンボル・エラーの頻度(806)を算出する(804)ステップと、シンボル・エラー(802)を記述する情報に依存して、ネットワーク・デバイスを特定のサーバに結合しているリンク上のシンボル・エラー(802)の頻度(806)が予め定められた閾値(810)よりも大きいかどうかを判断する(808)ステップとを含む。もしシンボル・エラー(802)の頻度(806)が予め定められた閾値(810)以下であれば、VMMMはそのリンクが劣化していないと判断する(814)。もしシンボル・エラー(802)の頻度(806)が予め定められた閾値(810)よりも大きければ、VMMMはネットワーク・デバイスを特定のサーバに結合しているリンクが劣化していると判断する(812)。
当業者に認識されるように、本発明の局面はシステム、方法またはコンピュータ・プログラム製品として具現化されてもよい。したがって本発明の局面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアおよびハードウェアの局面を組み合わせた実施形態の形を取ってもよく、本明細書においてこれらはすべて一般的に「回路」、「モジュール」または「システム」と呼ばれることがある。さらに、本発明の局面は、コンピュータ読取り可能プログラム・コードが具現化された、1つまたはそれ以上のコンピュータ読取り可能媒体(単数または複数)において具現化されるコンピュータ・プログラム製品の形を取ってもよい。
1つまたはそれ以上のコンピュータ読取り可能媒体(単数または複数)のあらゆる組み合わせが使用されてもよい。コンピュータ読取り可能媒体は、コンピュータ読取り可能信号媒体またはコンピュータ読取り可能記憶媒体であってもよい。コンピュータ読取り可能記憶媒体は、たとえば電子、磁気、光学、電磁気、赤外、または半導体のシステム、装置、もしくはデバイス、または前述のもののあらゆる好適な組み合わせなどであってもよいがそれに限定されない。コンピュータ読取り可能記憶媒体のより特定的な例(非網羅的なリスト)は以下を含み得る。すなわち、1つまたはそれ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、消去可能プログラマブル・リード・オンリ・メモリ(EPROM(erasable programmable read−only memory)またはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(compact disc read−only memory:CD−ROM)、光学記憶装置、磁気記憶装置、または前述のもののあらゆる好適な組み合わせである。この文書の文脈において、コンピュータ読取り可能記憶媒体は、命令実行システム、装置またはデバイスによって、またはそれに関連して使用されるためのプログラムを含有または保存できるあらゆる有形の媒体であってもよい。
コンピュータ読取り可能信号媒体は、たとえばベースバンド内または搬送波の部分などとしてコンピュータ読取り可能プログラム・コードが具現化された伝播データ信号を含んでもよい。こうした伝播信号は、電磁気信号、光学信号、またはそのあらゆる好適な組み合わせを含むがそれに限定されないさまざまな形のいずれかを取ってもよい。コンピュータ読取り可能信号媒体は、コンピュータ読取り可能記憶媒体ではなく、命令実行システム、装置またはデバイスによって、またはそれに関連して使用されるプログラムを通信、伝播または移送できるあらゆるコンピュータ読取り可能媒体であってもよい。
コンピュータ読取り可能媒体において具現化されるプログラム・コードは、無線、ワイヤライン、光ファイバ・ケーブル、RFなど、または前述のもののあらゆる好適な組み合わせを含むがそれに限定されないあらゆる適切な媒体を用いて伝送されてもよい。
本発明の局面に対する動作を行うためのコンピュータ・プログラム・コードは、オブジェクト指向プログラミング言語、たとえばJava(R)、Smalltalk(R)、C++など、および従来の手続き型プログラミング言語、たとえば「C」プログラミング言語または類似のプログラミング言語などを含む、1つまたはそれ以上のプログラミング言語のあらゆる組み合わせで書かれていてもよい。プログラム・コードは、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(wide area network:WAN)を含むあらゆるタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、(たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータへの接続が行われてもよい。
本発明の実施形態に従う方法、装置(システム)およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の局面を上述した。流れ図もしくはブロック図またはその両方の各ブロック、ならびに流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装され得ることが理解されるだろう。これらのコンピュータ・プログラム命令が、汎用コンピュータもしくは専用コンピュータのプロセッサ、またはマシンを生成するためのその他のプログラマブル・データ処理装置に与えられることによって、そのコンピュータのプロセッサまたはその他のプログラマブル・データ処理装置を介して実行された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能/動作を実装するための手段を生成するようにしてもよい。
これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスに特定の態様で機能するよう指示できるコンピュータ読取り可能媒体の中に保存されることによって、コンピュータ読取り可能媒体中に保存された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能/動作を実現する命令を含む製造品を生成するようにしてもよい。
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスにロードされることによって、そのコンピュータ、その他のプログラマブル装置またはその他のデバイスにおいて一連の動作ステップを行わせることにより、コンピュータまたはその他のプログラマブル装置において実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能/動作を実装するためのプロセスを提供するような、コンピュータに実装されるプロセスを生成してもよい。
図面中の流れ図およびブロック図は、本発明のさまざまな実施形態に従うシステム、方法およびコンピュータ・プログラム製品の実装可能なアーキテクチャ、機能および動作を例示するものである。これに関して、流れ図またはブロック図における各ブロックは、指定された論理機能(単数または複数)を実装するための1つまたはそれ以上の実行可能な命令を含むモジュール、セグメント、またはコードの部分を表していてもよい。さらに、いくつかの代替的な実装においては、ブロック中に示される機能が図面に示される以外の順序で起こることがあることに留意すべきである。たとえば、連続して示される2つのブロックは、伴われる機能に依存して、実際には実質的に同時に実行されてもよいし、それらのブロックがときには逆の順序で実行されてもよい。さらに、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能もしくは動作を行う専用ハードウェア・ベース・システム、または専用ハードウェアとコンピュータ命令との組み合わせによって実装され得ることが注目される。
前述の説明から、本発明のさまざまな実施形態において多くの修正および変更が行われてもよいことを当業者は理解するだろう。

Claims (13)

  1. ネットワーク・サーバ間で仮想マシンを移行させるための方法であって、前記サーバはデータ通信のためにデータ通信ネットワークに結合されており、前記ネットワークはネットワーク・デバイスを含み、前記方法は、
    仮想マシン管理モジュール(「VMMM」)によって特定のサーバ上に1つまたはそれ以上の仮想マシンを確立するステップと、
    データ通信のために前記ネットワーク・デバイスを前記特定のサーバに結合しているリンクのリンク統計を前記VMMMから前記ネットワーク・デバイスに問い合わせるステップと、
    前記VMMMが前記リンク統計に依存して、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化しているかどうかを判断するステップと、
    もし前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化していれば、前記特定のサーバ上で実行している仮想マシンを行先サーバに移行させるステップと
    を含み、前記ネットワーク・デバイスを前記行先サーバに結合するリンクのリンク統計が、当該リンクが劣化していないことを示す、方法。
  2. 前記特定のサーバ上で実行している仮想マシンを行先サーバに移行させるステップはさらに、
    前記ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計を前記ネットワーク・デバイスに問い合わせるステップと、
    前記リンク統計に依存して、劣化していないリンクを識別するステップと、
    前記劣化していないリンクによって前記ネットワーク・デバイスに結合されているサーバを、前記特定のサーバ上で実行している前記仮想マシンに対する前記行先サーバとして選択するステップと
    を含む、請求項1に記載の方法。
  3. 仮想マシンを移行させるステップは、劣化していないリンクが利用可能なときにのみ前記仮想マシンを移行させるステップをさらに含み、前記ステップは、
    前記ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計を前記ネットワーク・デバイスに問い合わせるステップと、
    前記ネットワーク・デバイスを他のサーバに結合しているリンクの前記リンク統計に依存して、前記ネットワーク・デバイスが故障していると判断するステップと、
    前記ネットワーク・サーバ間のデータ通信のためのフェールオーバ・ネットワーク・デバイスを選択するステップと、
    前記特定のサーバ上の前記仮想マシンを移行させないステップと
    を含む、請求項1または2に記載の方法。
  4. 前記リンク統計は、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンク上で受け取られたエラーのバイトを表す複数のタイムスタンプを押されたエントリを含み、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化しているかどうかを判断するステップはさらに、
    エラーのバイトを表す前記タイムスタンプを押されたエントリからビット・エラー率を算出するステップと、
    前記算出されたビット・エラー率が予め定められた閾値よりも大きいかどうかを判断するステップと、
    もし前記算出されたビット・エラー率が前記予め定められた閾値よりも大きければ、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化していると判断するステップと
    を含む、請求項1から3のいずれか1項に記載の方法。
  5. 前記リンク統計は、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンク上で受け取られたテスト・データのシンボル・エラーを記述する情報を含み、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化しているかどうかを判断するステップはさらに、
    シンボル・エラーを記述する前記情報に依存して、前記シンボル・エラーの頻度を算出するステップと、
    シンボル・エラーを記述する前記情報に依存して、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンク上のシンボル・エラーの頻度が予め定められた閾値よりも大きいかどうかを判断するステップと、
    もしシンボル・エラーの前記頻度が前記予め定められた閾値よりも大きければ、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化していると判断するステップと
    を含む、請求項1から4のいずれか1項に記載の方法。
  6. 前記サーバを互いのサーバおよび前記ネットワーク・デバイスに結合しているリンクを通過する前記サーバ間のデータ通信を前記ネットワーク・デバイスによってモニタリングするステップと、
    前記サーバを互いのサーバおよび前記ネットワーク・デバイスに結合している前記リンクを通過する前記サーバ間の前記データ通信を記述するリンク統計を管理情報ベース(「MIB」)に保存するステップと
    をさらに含む、請求項1から5のいずれか1項に記載の方法。
  7. ネットワーク・サーバ間で仮想マシンを移行させるための装置であって、前記サーバはデータ通信のためにデータ通信ネットワークに結合されており、前記ネットワークはネットワーク・デバイスを含み、前記装置はコンピュータ・プロセッサと、前記コンピュータ・プロセッサに動作的に結合されたコンピュータ・メモリとを有し、前記装置は、
    仮想マシン管理モジュール(「VMMM」)によって特定のサーバ上に1つまたはそれ以上の仮想マシンを確立するための手段と、
    データ通信のために前記ネットワーク・デバイスを前記特定のサーバに結合しているリンクのリンク統計を前記VMMMから前記ネットワーク・デバイスに問い合わせるための手段と、
    前記VMMMが前記リンク統計に依存して、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化しているかどうかを判断するための手段と、
    もし前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化していれば、前記特定のサーバ上で実行している仮想マシンを行先サーバに移行させるための手段と
    を含み、前記ネットワーク・デバイスを前記行先サーバに結合するリンクのリンク統計が、当該リンクが劣化していないことを示す、装置。
  8. 前記特定のサーバ上で実行している仮想マシンを行先サーバに移行させるための前記手段はさらに、
    前記ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計を前記ネットワーク・デバイスに問い合わせるための手段と、
    前記リンク統計に依存して、劣化していないリンクを識別するための手段と、
    前記劣化していないリンクによって前記ネットワーク・デバイスに結合されているサーバを、前記特定のサーバ上で実行している前記仮想マシンに対する前記行先サーバとして選択するための手段と
    を含む、請求項7に記載の装置。
  9. 仮想マシンを移行させるための前記手段は、劣化していないリンクが利用可能なときにのみ前記仮想マシンを移行させるための手段をさらに含み、前記手段は、
    前記ネットワーク・デバイスを他のサーバに結合しているリンクのリンク統計を前記ネットワーク・デバイスに問い合わせるための手段と、
    前記ネットワーク・デバイスを他のサーバに結合しているリンクの前記リンク統計に依存して、前記ネットワーク・デバイスが故障していると判断する手段と、
    前記ネットワーク・サーバ間のデータ通信のためのフェールオーバ・ネットワーク・デバイスを選択するための手段と、
    前記特定のサーバ上の前記仮想マシンを移行させない手段と
    を含む、請求項7または8に記載の装置。
  10. 前記リンク統計は、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンク上で受け取られたエラーのバイトを表す複数のタイムスタンプを押されたエントリを含み、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化しているかどうかを判断するための前記手段はさらに、
    エラーのバイトを表す前記タイムスタンプを押されたエントリからビット・エラー率を算出するための手段と、
    前記算出されたビット・エラー率が予め定められた閾値よりも大きいかどうかを判断するための手段と、
    もし前記算出されたビット・エラー率が前記予め定められた閾値よりも大きければ、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化していると判断する手段と
    を含む、請求項7から9のいずれか1項に記載の装置。
  11. 前記リンク統計は、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンク上で受け取られたテスト・データのシンボル・エラーを記述する情報を含み、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化しているかどうかを判断するための前記手段はさらに、
    シンボル・エラーを記述する前記情報に依存して、前記シンボル・エラーの頻度を算出するための手段と、
    シンボル・エラーを記述する前記情報に依存して、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンク上のシンボル・エラーの頻度が予め定められた閾値よりも大きいかどうかを判断するための手段と、
    もしシンボル・エラーの前記頻度が前記予め定められた閾値よりも大きければ、前記ネットワーク・デバイスを前記特定のサーバに結合している前記リンクが劣化していると判断する手段と
    を含む、請求項7から10のいずれか1項に記載の装置。
  12. 前記サーバを互いのサーバおよび前記ネットワーク・デバイスに結合しているリンクを通過する前記サーバ間のデータ通信を前記ネットワーク・デバイスによってモニタリングするための手段と、
    前記サーバを互いのサーバおよび前記ネットワーク・デバイスに結合している前記リンクを通過する前記サーバ間の前記データ通信を記述するリンク統計を管理情報ベース(「MIB」)に保存するための手段と
    をさらに含む、請求項7から11のいずれか1項に記載の装置。
  13. コンピュータ・プログラムであって、コンピュータ・システムにロードされてそこで実行されるときに、請求項1から6のいずれか1項に記載の方法のすべての前記ステップを前記コンピュータ・システムに行わせるためのコンピュータ・プログラム・コードを含む、コンピュータ・プログラム。
JP2013510604A 2010-05-20 2011-05-17 ネットワーク・リンク動作の劣化を検出した際にネットワーク・サーバ間で仮想マシンを移行させる Active JP5889284B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/784,061 2010-05-20
US12/784,061 US8224957B2 (en) 2010-05-20 2010-05-20 Migrating virtual machines among networked servers upon detection of degrading network link operation
PCT/EP2011/057998 WO2011144633A1 (en) 2010-05-20 2011-05-17 Migrating virtual machines among networked servers upon detection of degrading network link operation

Publications (2)

Publication Number Publication Date
JP2013533660A JP2013533660A (ja) 2013-08-22
JP5889284B2 true JP5889284B2 (ja) 2016-03-22

Family

ID=44513327

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013510604A Active JP5889284B2 (ja) 2010-05-20 2011-05-17 ネットワーク・リンク動作の劣化を検出した際にネットワーク・サーバ間で仮想マシンを移行させる

Country Status (8)

Country Link
US (2) US8224957B2 (ja)
JP (1) JP5889284B2 (ja)
CN (1) CN102934087B (ja)
CA (1) CA2783452C (ja)
DE (1) DE112011101705B4 (ja)
GB (1) GB2494325B (ja)
TW (1) TW201211895A (ja)
WO (1) WO2011144633A1 (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation
US8671238B2 (en) * 2010-07-13 2014-03-11 Vmware, Inc. Robust live migration using shared filesystem
US8458510B2 (en) 2010-08-12 2013-06-04 International Business Machines Corporation LPAR creation and repair for automated error recovery
US9542215B2 (en) * 2011-09-30 2017-01-10 V3 Systems, Inc. Migrating virtual machines from a source physical support environment to a target physical support environment using master image and user delta collections
US8689054B1 (en) * 2011-07-29 2014-04-01 Emc Corporation Increased distance of virtual machine mobility over asynchronous distances
ES2567726T3 (es) * 2011-08-01 2016-04-26 Huawei Technologies Co., Ltd. Método de configuración de política de red, dispositivo de gestión y dispositivo de centro de gestión de red
US10042656B2 (en) 2011-08-01 2018-08-07 Avocent Corporation System and method for providing migrateable virtual serial port services
KR101281825B1 (ko) * 2011-09-07 2013-08-23 주식회사 팬택 클라우드 시스템에서 가상 인터페이스를 이용하는 보안 강화 장치 및 방법
JP5874728B2 (ja) * 2011-09-14 2016-03-02 日本電気株式会社 リソース最適化方法、ipネットワークシステムおよびリソース最適化プログラム
US9183102B2 (en) * 2011-09-30 2015-11-10 Alcatel Lucent Hardware consumption architecture
US8826074B2 (en) * 2011-09-30 2014-09-02 Alcatel Lucent Live module diagnostic testing
US9736005B2 (en) 2011-12-22 2017-08-15 International Business Machines Corporation Duplicate IP address detection by a DHCP relay agent
US8972542B2 (en) * 2011-12-22 2015-03-03 International Business Machines Corporation Extending a DHCP relay to backup a DHCP server
WO2013097151A1 (zh) * 2011-12-29 2013-07-04 华为技术有限公司 一种资源调度方法及设备
JP5919937B2 (ja) * 2012-03-26 2016-05-18 日本電気株式会社 仮想化システム、管理サーバ、マイグレーション方法、マイグレーションプログラム業務間通信を考慮した仮想マシンのマイグレーション方法
US9223501B2 (en) * 2012-04-23 2015-12-29 Hitachi, Ltd. Computer system and virtual server migration control method for computer system
US20130326053A1 (en) * 2012-06-04 2013-12-05 Alcatel-Lucent Usa Inc. Method And Apparatus For Single Point Of Failure Elimination For Cloud-Based Applications
WO2014000787A1 (en) * 2012-06-27 2014-01-03 Qatar Foundation An arrangement configured to migrate a virtual machine in the event of an attack
US9172587B2 (en) 2012-10-22 2015-10-27 International Business Machines Corporation Providing automated quality-of-service (‘QoS’) for virtual machine migration across a shared data center network
US9118681B2 (en) * 2013-03-08 2015-08-25 Telefonaktiebolaget L M Ericsson (Publ) Mist networks
US10506026B1 (en) * 2013-03-13 2019-12-10 Amazon Technologies, Inc. Resource prestaging
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9444748B2 (en) 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9104643B2 (en) * 2013-03-15 2015-08-11 International Business Machines Corporation OpenFlow controller master-slave initialization protocol
US9118984B2 (en) 2013-03-15 2015-08-25 International Business Machines Corporation Control plane for integrated switch wavelength division multiplexing
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9870268B2 (en) * 2013-08-05 2018-01-16 Amazon Technologies, Inc. Virtual computing instance migration
US20150071091A1 (en) * 2013-09-12 2015-03-12 Alcatel-Lucent Usa Inc. Apparatus And Method For Monitoring Network Performance
CN103516554B (zh) * 2013-10-22 2017-01-18 杭州华三通信技术有限公司 一种vm迁移的方法和设备
WO2015112859A1 (en) * 2014-01-24 2015-07-30 Indiscine, Llc Systems and methods for personal omic transactions
US9998320B2 (en) * 2014-04-03 2018-06-12 Centurylink Intellectual Property Llc Customer environment network functions virtualization (NFV)
US10922112B2 (en) 2014-05-21 2021-02-16 Vmware, Inc. Application aware storage resource management
US10089128B2 (en) * 2014-05-21 2018-10-02 Vmware, Inc. Application aware service policy enforcement and autonomous feedback-based remediation
JP6413517B2 (ja) * 2014-09-04 2018-10-31 富士通株式会社 管理装置、マイグレーション制御プログラム、情報処理システム
US10176004B2 (en) * 2014-11-18 2019-01-08 International Business Machines Corporation Workload-aware load balancing to minimize scheduled downtime during maintenance of host or hypervisor of a virtualized computing system
US9535803B2 (en) 2015-02-23 2017-01-03 Red Hat Israel, Ltd. Managing network failure using back-up networks
CN104869023B (zh) 2015-05-29 2019-02-26 华为技术有限公司 一种时间校正方法、装置及系统
WO2017058143A1 (en) * 2015-09-28 2017-04-06 Hewlett Packard Enterprise Development Lp Protocol conversion for servers and chassis
US10346201B2 (en) * 2016-06-15 2019-07-09 International Business Machines Corporation Guided virtual machine migration
JP2019049818A (ja) * 2017-09-08 2019-03-28 富士通株式会社 情報処理装置、情報処理システム、情報処理システムの制御方法及びライブマイグレーション制御プログラム
KR101981334B1 (ko) * 2017-09-14 2019-05-22 에스케이텔레콤 주식회사 분산형 데이터 패킷 처리가 적용된 이동통신 시스템 및 방법
US10445129B2 (en) * 2017-10-31 2019-10-15 Vmware, Inc. Virtual computing instance transfer path selection
US11144354B2 (en) 2018-07-31 2021-10-12 Vmware, Inc. Method for repointing resources between hosts
US10852803B2 (en) 2018-09-26 2020-12-01 Facebook, Inc. Power loss siren
CN115858503B (zh) * 2023-02-28 2023-05-09 江西师范大学 一种基于迁移链表的异构数据库迁移管理方法及系统

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6970913B1 (en) * 1999-07-02 2005-11-29 Cisco Technology, Inc. Load balancing using distributed forwarding agents with application based feedback for different virtual machines
US7441045B2 (en) * 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US8204082B2 (en) 2000-06-23 2012-06-19 Cloudshield Technologies, Inc. Transparent provisioning of services over a network
US7934020B1 (en) 2003-09-19 2011-04-26 Vmware, Inc. Managing network data transfers in a virtual computer system
US8156490B2 (en) * 2004-05-08 2012-04-10 International Business Machines Corporation Dynamic migration of virtual machine computer programs upon satisfaction of conditions
JP4909675B2 (ja) * 2006-08-17 2012-04-04 エヌ・ティ・ティ・コミュニケーションズ株式会社 伝送装置、伝送方法、及びプログラム
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
JP5317010B2 (ja) 2006-11-24 2013-10-16 日本電気株式会社 仮想マシン配置システム、仮想マシン配置方法、プログラム、仮想マシン管理装置およびサーバ装置
US7844839B2 (en) 2006-12-07 2010-11-30 Juniper Networks, Inc. Distribution of network communications based on server power consumption
US8291411B2 (en) * 2007-05-21 2012-10-16 International Business Machines Corporation Dynamic placement of virtual machines for managing violations of service level agreements (SLAs)
US20090007099A1 (en) 2007-06-27 2009-01-01 Cummings Gregory D Migrating a virtual machine coupled to a physical device
US7966614B2 (en) * 2007-07-24 2011-06-21 International Business Machines Corporation Controlling an availability policy for a virtual machine based on changes in a real world environment
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US20090172125A1 (en) 2007-12-28 2009-07-02 Mrigank Shekhar Method and system for migrating a computer environment across blade servers
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8201166B2 (en) 2008-04-30 2012-06-12 Hewlett-Packard Development Company, L.P. Virtualization platform configured with virtual connect control
US8385202B2 (en) * 2008-08-27 2013-02-26 Cisco Technology, Inc. Virtual switch quality of service for virtual machines
JP2010086049A (ja) * 2008-09-29 2010-04-15 Hitachi Ltd 管理計算機及びその運用方法
US8261266B2 (en) * 2009-04-30 2012-09-04 Microsoft Corporation Deploying a virtual machine having a virtual hardware configuration matching an improved hardware profile with respect to execution of an application
US8135818B2 (en) * 2009-06-22 2012-03-13 Red Hat Israel, Ltd. Automatic virtual machine migration in mixed SBC/CBC environment
US8289960B2 (en) * 2009-06-22 2012-10-16 Citrix Systems, Inc. Systems and methods for N-core tracing
US8311032B2 (en) * 2009-12-03 2012-11-13 International Business Machines Corporation Dynamically provisioning virtual machines
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation

Also Published As

Publication number Publication date
DE112011101705B4 (de) 2015-03-05
TW201211895A (en) 2012-03-16
GB2494325B (en) 2018-09-26
CA2783452C (en) 2018-05-29
CA2783452A1 (en) 2011-11-24
GB2494325A (en) 2013-03-06
US20120221887A1 (en) 2012-08-30
US8495208B2 (en) 2013-07-23
CN102934087B (zh) 2015-10-21
CN102934087A (zh) 2013-02-13
GB201221274D0 (en) 2013-01-09
US20110289205A1 (en) 2011-11-24
DE112011101705T5 (de) 2013-03-28
JP2013533660A (ja) 2013-08-22
US8224957B2 (en) 2012-07-17
WO2011144633A1 (en) 2011-11-24

Similar Documents

Publication Publication Date Title
JP5889284B2 (ja) ネットワーク・リンク動作の劣化を検出した際にネットワーク・サーバ間で仮想マシンを移行させる
US9348653B2 (en) Virtual machine management among networked servers
US10956288B2 (en) Server clustering in a computing-on-demand system
US10715411B1 (en) Altering networking switch priority responsive to compute node fitness
TWI598746B (zh) 伺服器系統及其電腦實現之方法
US11190440B2 (en) Methods and apparatus to configure and manage network resources for use in network-based computing
US8386825B2 (en) Method and system for power management in a virtual machine environment without disrupting network connectivity
US8775590B2 (en) Reactive monitoring of guests in a hypervisor environment
US8244924B2 (en) Discovery and configuration of device configurations
US11444871B1 (en) End-to-end path selection using dynamic software-defined cloud interconnect (SDCI) tunnels
US11418453B2 (en) Path visibility, packet drop, and latency measurement with service chaining data flows
US8543680B2 (en) Migrating device management between object managers
US9674078B2 (en) Assigning communication paths among computing devices utilizing a multi-path communication protocol
US20130111094A1 (en) Management of target devices
CN117271064A (zh) 一种虚拟机管理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160216

R150 Certificate of patent or registration of utility model

Ref document number: 5889284

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150