(57)【特許請求の範囲】
【請求項１】
複数の拠点間を接続するネットワーク装置であって、
前記複数の拠点は、第１の拠点と第２の拠点とを含み、
前記第１の拠点には、
第１のプロセッサ、前記第１のプロセッサに接続される第１のメモリ、及び前記第１のプロセッサに接続される第１のインタフェースを有する複数の計算機と、
第２のコントローラ、複数の記憶媒体、及び第２のインタフェースを有する第１のストレージシステムと、
第３のプロセッサ、前記第３のプロセッサに接続される第３のメモリ、並びに、前記第３のプロセッサに接続され、前記複数の計算機及び前記第１のストレージシステムに接続するための第３のインタフェースを有する第１のネットワーク装置とが含まれ、
前記第２の拠点には、
第４のプロセッサ、前記第４のプロセッサに接続される第４のメモリ、及び前記第４のプロセッサに接続される第４のインタフェースを有する複数の計算機と、
第５のコントローラ、複数の記憶媒体、及び第５のインタフェースを有する第２のストレージシステムと、
第６のプロセッサ、前記第６のプロセッサに接続される第６のメモリ、並びに、前記第６のプロセッサに接続され、前記複数の計算機及び前記第２のストレージシステムに接続するための第６のインタフェースを有する第２のネットワーク装置とが含まれ、
前記第１のネットワーク装置は、前記第２のネットワーク装置と接続するための第７のインタフェースを有し、
前記第２のネットワーク装置は、前記第１のネットワーク装置と接続するための第８のインタフェースを有し、
前記第１のメモリ及び第４のメモリは、計算機の物理資源を割り当てることによって仮想計算機を生成し、前記仮想計算機を管理する仮想化部を実現するためのプログラムを格納し、
前記仮想化部は、前記仮想計算機のレジスタ情報及び前記仮想計算機に割り当てられる仮想メモリ上の情報を、当該仮想化部が実行される計算機とは異なる他の計算機に送信することによって、計算機間で前記仮想計算機を移行させるライブマイグレーション処理部を有し、
前記第１のストレージシステム及び前記第２のストレージシステムは、前記仮想計算機に割り当てる記憶領域を生成し、
前記第３のメモリ及び前記第６のメモリは、前記仮想計算機と前記記憶領域との間のアクセスを管理するアクセス処理部を実現するためのプログラム、及び、前記仮想計算機と前記記憶領域との接続関係を管理する接続管理情報を格納し、
前記第１の拠点に含まれる前記複数の計算機は、第１の仮想化部によって管理される第１の仮想計算機が稼動する第１の計算機を含み、
前記第２の拠点に含まれる前記複数の計算機は、第２の計算機を含み、
前記第１のネットワーク装置の前記アクセス処理部は、
前記第１の仮想化部から、前記第１の計算機から前記第２の計算機へ前記第１の仮想計算機を移行するためのライブマイグレーション処理の開始通知を受信し、
前記第１のストレージシステムによって生成され、かつ、前記第１の計算機上で稼動する前記第１の仮想計算機に割り当てられた第１の記憶領域にアクセスするための第１のポートを特定し、
前記第２のストレージシステムによって生成され、かつ、前記第２の計算機上で稼動する前記第１の仮想計算機に割り当てられた第２の記憶領域にアクセスするための第２のポートを特定し、
前記第１の仮想計算機から送信されるアクセス要求を転送する装置のアドレスを取得し、
前記第１のポートと、前記第２のポートと、前記アクセス要求を転送する装置のアドレスとを対応づけることによって変換情報を生成し、
前記変換情報に基づいて、前記ライブマイグレーション処理が実行された後に前記第２の計算機上で稼動する前記第１の仮想計算機から送信される前記アクセス要求を制御することを特徴とするネットワーク装置。
【請求項２】
前記接続管理情報は、任意の計算機上で稼動する前記仮想計算機の識別子と、前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子とが対応づけられた情報であり、
前記変換情報は、移行元の計算機上で稼動する前記仮想計算機の識別子と、前記移行元の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、移行先の計算機上で稼動する前記仮想計算機の識別子と、前記移行先の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、前記アクセス要求を転送する前記ネットワーク装置のアドレスとが対応づけられた情報であり、
前記第２のネットワーク装置の前記アクセス処理部は、
前記第１のネットワーク装置から前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第１のネットワーク装置のアドレスを取得し、
前記ライブマイグレーション処理の開始通知を、前記第２の計算機上で実行される第２の仮想化部に転送し、
前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを対応づけたエントリを前記接続管理情報に追加し、
前記追加されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
前記第１のネットワーク装置から、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを取得し、
前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子と、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第１のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項１に記載のネットワーク装置。
【請求項３】
前記第２のネットワーク装置は、
前記第２の計算機上で稼動する前記第１の仮想計算機から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記接続管理情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
前記フラグが付与されている場合には、前記変換情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記変換情報から検索されたエントリから、前記第１のネットワーク装置のアドレスを取得し、
前記第１のネットワーク装置のアドレス宛に前記読み出し要求を転送することを特徴とする請求項２に記載のネットワーク装置。
【請求項４】
前記第２のネットワーク装置は、
前記フラグを付与した後に、前記第２の記憶領域のブロックに対応するビットマップを生成し、
前記接続管理情報から検索されたエントリに前記フラグが付与されていると判定された場合に、前記ビットマップを取得し、
前記読み出し要求を解析して、読み出し対象となるデータが格納されるブロックを特定し、
前記ビットマップを参照して、前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されているか否かを判定し、
前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されている場合には、前記第２の記憶領域から前記読み出し対象となるデータを読み出すために、前記第２のストレージシステムに前記読み出し要求を送信し、
前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されていない場合には、前記第１の記憶領域から前記読み出し対象となるデータを読み出すために、前記第１のネットワーク装置に前記読み出し要求を転送することを特徴とする請求項３に記載のネットワーク装置。
【請求項５】
前記第２のネットワーク装置は、
前記第１のネットワーク装置から、前記第１の記憶領域から読み出された前記読み出し対象となるデータを受信した場合に、前記読み出し対象となるデータの複製を一時的に保持し、
前記接続管理情報を参照して、前記受信した読み出し対象となるデータを前記第２の計算機上で稼動する前記第１の仮想計算機に転送し、
前記変換情報を参照して、前記一時的に保持された読み出し対象となるデータの複製を前記第２の記憶領域に転送し、
前記一時的に保持された読み出し対象となるデータが書き込まれたブロックに対応するビットを特定し、
前記ビットマップの前記特定されたビットに、前記アクセス済みを示す情報を設定することを特徴とする請求項４に記載のネットワーク装置。
【請求項６】
前記第２のネットワーク装置は、
前記第２の計算機上で稼動する前記第１の仮想計算機から書き込み要求を受信した場合に、前記書き込み要求を解析して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記接続管理情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
前記フラグが付与されている場合には、前記変換情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記変換情報から検索されたエントリから、前記第１のネットワーク装置のアドレスを取得し、
前記第２の記憶領域に書き込み対象となるデータを書き込むために、前記第２のストレージシステムに前記書き込み要求を送信し、
前記第１の記憶領域に前記書き込み対象となるデータを書き込むために、前記第１のネットワーク装置のアドレス宛に前記書き込み要求を転送することを特徴とする請求項２に記載のネットワーク装置。
【請求項７】
前記接続管理情報は、任意の計算機上で稼動する前記仮想計算機の識別子と、前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子とが対応づけられた情報であり、
前記変換情報は、移行元の計算機上で稼動する前記仮想計算機の識別子と、前記移行元の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、移行先の計算機上で稼動する前記仮想計算機の識別子と、前記移行先の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、前記アクセス要求を転送する前記ネットワーク装置のアドレスとが対応づけられた情報であり、
前記第１のネットワーク装置の前記アクセス処理部は、
前記第１の仮想化部から、前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を、前記第２のネットワーク装置に転送し、
前記接続管理情報を参照して、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とが対応づけられたエントリを検索し、
前記検索されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
前記第２のネットワーク装置から送信される宛先情報を受信し、
前記受信した宛先情報を解析して、前記第２のネットワーク装置のアドレスと、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記第１の仮想化部から前記第１の記憶領域のログアウト要求を受信した場合に、当該ログアウト要求を解析して、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを取得し、
前記第１の仮想化部に前記ログアウト要求を受け付けた旨の応答を送信し、
前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子と、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第２のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項１に記載のネットワーク装置。
【請求項８】
前記第１のネットワーク装置は、
前記第２のネットワーク装置から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第２のネットワーク装置のアドレスとを取得し、
前記変換情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第２のネットワーク装置のアドレスとに対応するエントリを検索し、
前記検索されたエントリから、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを取得し、
前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを含めて、前記読み出し要求を前記第１のストレージシステムに転送することを特徴とする請求項７に記載のネットワーク装置。
【請求項９】
前記第１のネットワーク装置は、
前記第２のネットワーク装置から、前記第２の計算機上で稼動する前記第１の仮想計算機を前記第１の計算機へ移行するためのライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第２のネットワーク装置のアドレスを取得し、
当該ライブマイグレーション処理の開始通知を前記第１の仮想化部に転送し、
前記第１の仮想化部から前記第１の記憶領域へのログイン要求を受信した場合に、当該ログイン要求を解析して、前記第１のポートの識別子と、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子とを取得し、
前記接続管理情報を参照して、前記第１のポートの識別子と、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子とに対応するエントリを検索し、
前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
前記接続管理情報から検索されたエントリに前記フラグが付与されている場合には、前記第１の仮想化部に前記ログイン要求を受け付けた旨の応答を送信し、
前記接続管理情報から検索されたエントリに付与された前記フラグを削除し、
前記変換情報を参照して、前記第２のネットワーク装置のアドレスと、前記第１のポートの識別子とに対応するエントリを検索し、
前記変換情報から検索されたエントリを前記変換情報から削除することを特徴とする請求項８に記載のネットワーク装置。
【請求項１０】
複数の計算機と、ストレージシステムと、ネットワーク装置とから構成される複数の拠点を含むネットワークシステムであって、
前記複数の拠点は、第１の拠点と第２の拠点を含み、
前記第１の拠点には、
第１のプロセッサ、前記第１のプロセッサに接続される第１のメモリ、及び前記第１のプロセッサに接続される第１のインタフェースを有する複数の計算機と、
第２のコントローラ、複数の記憶媒体、及び第２のインタフェースを有する第１のストレージシステムと、
第３のプロセッサ、前記第３のプロセッサに接続される第３のメモリ、並びに、前記第３のプロセッサに接続され、前記複数の計算機及び前記第１のストレージシステムに接続するための第３のインタフェースを有する第１のネットワーク装置とが含まれ、
前記第２の拠点には、
第４のプロセッサ、前記第４のプロセッサに接続される第４のメモリ、及び前記第４のプロセッサに接続される第４のインタフェースを有する複数の計算機と、
第５のコントローラ、複数の記憶媒体、及び第５のインタフェースを有する第２のストレージシステムと、
第６のプロセッサ、前記第６のプロセッサに接続される第６のメモリ、並びに、前記第６のプロセッサに接続され、前記複数の計算機及び前記第２のストレージシステムに接続するための第６のインタフェースを有する第２のネットワーク装置とが含まれ、
前記第１のネットワーク装置は、前記第２のネットワーク装置と接続するための第７のインタフェースを有し、
前記第２のネットワーク装置は、前記第１のネットワーク装置と接続するための第８のインタフェースを有し、
前記第１のメモリ及び前記第４のメモリは、計算機の物理資源を割り当てることによって仮想計算機を生成し、前記仮想計算機を管理する仮想化部を実現するためのプログラムを格納し、
前記仮想化部は、前記仮想計算機のレジスタ情報及び前記仮想計算機に割り当てられる仮想メモリ上の情報を、当該仮想化部が実行される計算機とは異なる他の計算機に送信することによって、計算機間で前記仮想計算機を移行させるライブマイグレーション処理部を有し、
前記第１のストレージシステム及び前記第２のストレージシステムは、前記仮想計算機に割り当てる記憶領域を生成し、
前記ネットワークシステムは、前記仮想計算機と前記記憶領域との間のアクセスを管理するアクセス処理部、及び、前記仮想計算機と前記記憶領域との接続関係を管理する接続管理情報を備え、
前記第１の拠点に含まれる前記複数の計算機は、第１の仮想化部によって管理される第１の仮想計算機が稼動する第１の計算機を含み、
前記第２の拠点に含まれる前記複数の計算機は、第２の計算機を含み、
前記アクセス処理部は、
前記第１の仮想化部から、前記第１の計算機から前記第２の計算機へ前記第１の仮想計算機を移行するためのライブマイグレーション処理の開始要求を受信し、
前記第１のストレージシステムによって生成され、かつ、前記第１の計算機上で稼動する前記第１の仮想計算機に割り当てられた第１の記憶領域にアクセスするための第１のポートを特定し、
前記第２のストレージシステムによって生成され、かつ、前記第２の計算機上で稼動する前記第１の仮想計算機に割り当てられた第２の記憶領域にアクセスするための第２のポートを特定し、
前記第１の仮想計算機から送信されるアクセス要求を転送する装置のアドレスを取得し、
前記第１のポートと、前記第２のポートと、前記アクセス要求を転送する装置のアドレスとを対応づけることによって変換情報を生成し、
前記変換情報に基づいて、前記ライブマイグレーション処理が実行された後に前記第２の計算機上で稼動する前記第１の仮想計算機から送信される前記アクセス要求を制御することを特徴とするネットワークシステム。
【請求項１１】
前記接続管理情報は、任意の計算機上で稼動する前記仮想計算機の識別子と、前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子とが対応づけられた情報であり、
前記変換情報は、移行元の計算機上で稼動する前記仮想計算機の識別子と、前記移行元の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、移行先の計算機上で稼動する前記仮想計算機の識別子と、前記移行先の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、前記アクセス要求を転送する前記ネットワーク装置のアドレスとが対応づけられた情報であり、
前記アクセス処理部は、
前記第１のネットワーク装置から前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第１のネットワーク装置のアドレスを取得し、
前記ライブマイグレーション処理の開始通知を、前記第２の計算機上で実行される第２の仮想化部に転送し、
前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記第２の計算機で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを対応づけたエントリを前記接続管理情報に追加し、
前記追加されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
前記第１のネットワーク装置から、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを取得し、
前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子と、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第１のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項１０に記載のネットワークシステム。
【請求項１２】
前記アクセス処理部は、
前記第２の計算機上で稼動する前記第１の仮想計算機から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記接続管理情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
前記フラグが付与されている場合には、前記変換情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記変換情報から検索されたエントリから、前記第１のネットワーク装置のアドレスを取得し、
前記第１のネットワーク装置のアドレス宛に前記読み出し要求を転送することを特徴とする請求項１１に記載のネットワークシステム。
【請求項１３】
前記アクセス処理部は、
前記フラグを付与した後に、前記第２の記憶領域のブロックに対応するビットマップを生成し、
前記接続管理情報から検索されたエントリに前記フラグが付与されていると判定された場合に、前記ビットマップを取得し、
前記読み出し要求を解析して、読み出し対象となるデータが格納されるブロックを特定し、
前記ビットマップを参照して、前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されているか否かを判定し、
前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されている場合には、前記第２の記憶領域から前記読み出し対象となるデータを読み出すために、前記第２のストレージシステムに前記読み出し要求を送信し、
前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されていない場合には、前記第１の記憶領域から前記読み出し対象となるデータを読み出すために、前記第１のネットワーク装置に前記読み出し要求を転送することを特徴とする請求項１２に記載のネットワークシステム。
【請求項１４】
前記アクセス処理部は、
前記第１のネットワーク装置から、前記第１の記憶領域から読み出された前記読み出し対象となるデータを受信した場合に、前記読み出し対象となるデータの複製を一時的に保持し、
前記接続管理情報を参照して、前記受信した読み出し対象となるデータを前記第２の計算機上で稼動する前記第１の仮想計算機に転送し、
前記変換情報を参照して、前記一時的に保持された読み出し対象となるデータの複製を前記第２の記憶領域に転送し、
前記一時的に保持された読み出し対象となるデータが書き込まれたブロックに対応するビットを特定し、
前記ビットマップの前記特定されたビットに、前記アクセス済みを示す情報を設定することを特徴とする請求項１３に記載のネットワークシステム。
【請求項１５】
前記アクセス処理部は、
前記第２の計算機上で稼動する前記第１の仮想計算機から書き込み要求を受信した場合に、前記書き込み要求を解析して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記接続管理情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
前記フラグが付与されている場合には、前記変換情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とに対応するエントリを検索し、
前記変換情報から検索されたエントリから、前記第１のネットワーク装置のアドレスを取得し、
前記第２の記憶領域に書き込み対象となるデータを書き込むために、前記第２のストレージシステムに前記書き込み要求を送信し、
前記第１の記憶領域に前記書き込み対象となるデータを書き込むために、前記第１のネットワーク装置のアドレス宛に前記書き込み要求を転送することを特徴とする請求項１１に記載のネットワークシステム。
【請求項１６】
前記アクセス処理部は、
前記第１の仮想化部から、前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を、前記第２のネットワーク装置に転送し、
前記接続管理情報を参照して、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とが対応づけられたエントリを検索し、
前記検索されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
前記第２のネットワーク装置から送信される宛先情報を受信し、
前記受信した宛先情報を解析して、前記第２のネットワーク装置のアドレスと、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子とを取得し、
前記第１の仮想化部から前記第１の記憶領域のログアウト要求を受信した場合に、当該ログアウト要求を解析して、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを取得し、
前記第１の仮想化部に前記ログアウト要求を受け付けた旨の応答を送信し、
前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子と、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第２のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項１１に記載のネットワークシステム。
【請求項１７】
前記アクセス処理部は、
前記第２のネットワーク装置から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第２のネットワーク装置のアドレスとを取得し、
前記変換情報を参照して、前記第２の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第２のポートの識別子と、前記第２のネットワーク装置のアドレスとに対応するエントリを検索し、
前記検索されたエントリから、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを取得し、
前記第１の計算機上で稼動する前記第１の仮想計算機の識別子と、前記第１のポートの識別子とを含めて、前記読み出し要求を前記第１のストレージシステムに転送することを特徴とする請求項１６に記載のネットワークシステム。
【請求項１８】
前記アクセス処理部は、
前記第２のネットワーク装置から、前記第２の計算機上で稼動する前記第１の仮想計算機を前記第１の計算機へ移行するためのライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第２のネットワーク装置のアドレスを取得し、
当該ライブマイグレーション処理の開始通知を前記第１の仮想化部に転送し、
前記第１の仮想化部から前記第１の記憶領域へのログイン要求を受信した場合に、当該ログイン要求を解析して、前記第１のポートの識別子と、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子とを取得し、
前記接続管理情報を参照して、前記第１のポートの識別子と、前記第１の計算機上で稼動する前記第１の仮想計算機の識別子とに対応するエントリを検索し、
前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
前記接続管理情報から検索されたエントリに前記フラグが付与されている場合には、前記第１の仮想化部に前記ログイン要求を受け付けた旨の応答を送信し、
前記接続管理情報から検索されたエントリに付与された前記フラグを削除し、
前記変換情報を参照して、前記第２のネットワーク装置のアドレスと、前記第１のポートの識別子とに対応するエントリを検索し、
前記変換情報から検索されたエントリを前記変換情報から削除することを特徴とする請求項１７に記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
拠点間の異なる計算機へのライブマイグレーション処理を実現するネットワーク装置及びネットワークシステムに関する。
【背景技術】
【０００２】
近年、サーバのハードウェア資源を効率的に活用するために、サーバが備えるハードウェアを仮想化し、仮想化されたハードウェアを用いて複数のＯＳ（Ｏｐｅｒａｔｉｏｎ  Ｓｙｓｔｅｍ）を動作させる仮想計算機技術が実用化されている。仮想計算機技術では、計算資源、メモリ資源、及びＩ/Ｏ資源の管理とスケジュールが必要となる。これを制御するプログラムがハイパバイザである。
【０００３】
ハイパバイザが備える機能としてライブマイグレーションが知られている。ライブマイグレーションを用いることで、仮想計算機は無停止でサーバ間を移行することができる。これによって、システム全体で負荷分散、ハードウェア資源の集約、サーバのメンテナンスなどを、サービスを止めることなく実現することができる。
【０００４】
ライブマイグレーションを実現するためには移行元サーバと移行先サーバが共有できる記憶領域があることが前提条件となる。ライブマイグレーションでは仮想計算機が使用する仮想メモリの情報及びレジスタ情報が移行対象であり、大容量のストレージ領域は移行対象とならないためである。したがって、このような前提条件から物理的に離れた拠点に配置されたサーバ間のライブマイグレーションは実現が難しかった。
【０００５】
前述した課題を解決するために、拠点間を高速な専用線を用いて接続し、移行元の記憶領域と移行先の記憶領域とを同期させる方法が考えられる。しかし、当該方法は、常に、移行元の拠点と移行先の拠点において記憶領域を確保する必要がある。また、当該方法は、拠点間のネットワーク帯域にも常に負荷がかかり、運用コストが高くなるという欠点がある。
【０００６】
前述した課題を解決する方法として、例えば、特許文献１に記載の方法が知られている。特許文献１に記載の方法では、仮想計算機が利用しているストレージ領域を無停止で移行する手段をハイパバイザが実現している。すなわち、ライブマイグレーションの前処理としてストレージ領域に格納されるデータを移動させた後、ハイパバイザが、ライブマイグレーションを実行することによって、拠点間の仮想計算機を停止することなく移行を実現している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００９／００３７６８０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１に記載の方法では、移行対象となるストレージ領域が大きい場合、ストレージ領域に対する更新頻度が高い場合、又は拠点間が長距離でネットワーク上の遅延が大きい場合はストレージ領域の移行が完了するまでに時間がかかることが考えられる。
【０００９】
ストレージ移行に時間がかかると、負荷分散を目的としたライブマイグレーションを実行できないという課題がある。また、特許文献１ではハイパバイザがストレージ領域の移行を実行するため、移行元のサーバの負荷が高くなってしまうという課題もある。
【００１０】
さらに、仮想計算機を一時的に別拠点に移行する場合にも、仮想計算機が使用する全てのストレージ領域を移行させる必要があり、拠点間のネットワークに対して不必要な負荷がかかることも課題となる。
【００１１】
本発明は、ストレージ領域を移行させることなく、また、ハイパバイザ及びネットワークに対する負荷を増大させることなくライブマイグレーションを実行するためのネットワークシステム及びネットワーク装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の代表的な一例を示せば以下の通りである。すなわち、複数の拠点間を接続するネットワーク装置であって、前記複数の拠点は、第１の拠点と第２の拠点とを含み、前記第１の拠点には、第１のプロセッサ、前記第１のプロセッサに接続される第１のメモリ、及び前記第１のプロセッサに接続される第１のインタフェースを有する複数の計算機と、第２のコントローラ、複数の記憶媒体、及び第２のインタフェースを有する第１のストレージシステムと、第３のプロセッサ、前記第３のプロセッサに接続される第３のメモリ、並びに、前記第３のプロセッサに接続され、前記複数の計算機及び前記第１のストレージシステムに接続するための第３のインタフェースを有する第１のネットワーク装置とが含まれ、前記第２の拠点には、第４のプロセッサ、前記第４のプロセッサに接続される第４のメモリ、及び前記第４のプロセッサに接続される第４のインタフェースを有する複数の計算機と、第５のコントローラ、複数の記憶媒体、及び第５のインタフェースを有する第２のストレージシステムと、第６のプロセッサ、前記第６のプロセッサに接続される第６のメモリ、並びに、前記第６のプロセッサに接続され、前記複数の計算機及び前記第２のストレージシステムに接続するための第６のインタフェースを有する第２のネットワーク装置とが含まれ、前記第１のネットワーク装置は、前記第２のネットワーク装置と接続するための第７のインタフェースを有し、前記第２のネットワーク装置は、前記第１のネットワーク装置と接続するための第８のインタフェースを有し、前記第１のメモリ及び第４のメモリは、計算機の物理資源を割り当てることによって仮想計算機を生成し、前記仮想計算機を管理する仮想化部を実現するためのプログラムを格納し、前記仮想化部は、前記仮想計算機のレジスタ情報及び前記仮想計算機に割り当てられる仮想メモリ上の情報を、当該仮想化部が実行される計算機とは異なる他の計算機に送信することによって、計算機間で前記仮想計算機を移行させるライブマイグレーション処理部を有し、前記第１のストレージシステム及び前記第２のストレージシステムは、前記仮想計算機に割り当てる記憶領域を生成し、前記第３のメモリ及び前記第６のメモリは、前記仮想計算機と前記記憶領域との間のアクセスを管理するアクセス処理部を実現するためのプログラム、及び、前記仮想計算機と前記記憶領域との接続関係を管理する接続管理情報を格納し、前記第１の拠点に含まれる前記複数の計算機は、第１の仮想化部によって管理される第１の仮想計算機が稼動する第１の計算機を含み、前記第２の拠点に含まれる前記複数の計算機は、第２の計算機を含み、前記第１のネットワーク装置の前記アクセス処理部は、前記第１の仮想化部から、前記第１の計算機から前記第２の計算機へ前記第１の仮想計算機を移行するためのライブマイグレーション処理の開始通知を受信し、前記第１のストレージシステムによって生成され、かつ、前記第１の計算機上で稼動する前記第１の仮想計算機に割り当てられた第１の記憶領域にアクセスするための第１のポートを特定し、前記第２のストレージシステムによって生成され、かつ、前記第２の計算機上で稼動する前記第１の仮想計算機に割り当てられた第２の記憶領域にアクセスするための第２のポートを特定し、前記第１の仮想計算機から送信されるアクセス要求を転送する装置のアドレスを取得し、前記第１のポートと、前記第２のポートと、前記アクセス要求を転送する装置のアドレスとを対応づけることによって変換情報を生成し、前記変換情報に基づいて、前記ライブマイグレーション処理が実行された後に前記第２の計算機上で稼動する前記第１の仮想計算機から送信される前記アクセス要求を制御することを特徴とする。
【発明の効果】
【００１３】
物理的に離れている拠点に配置された計算機間のライブマイグレーション処理を実現できる。また、変換情報に基づいて、移行後の仮想計算機からのアクセス要求を移行元の記憶領域に転送することができる。これによって、短時間で仮想計算機を移行させ、また、ネットワークの負荷及び仮想化部の負荷を低減できる。さらに、移行先の仮想計算機が移行元のストレージにアクセスすることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態におけるネットワークシステムの構成例を示す説明図である。
【図２】本発明の実施形態におけるネットワーク装置のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【図３】本発明の実施形態おけるサーバのハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【図４】本発明の実施形態におけるＦＣフレームの構造の一例を示す説明図である。
【図５Ａ】本発明の実施形態における接続管理テーブルの一例を示す説明図である。
【図５Ｂ】本発明の実施形態における接続管理テーブルの一例を示す説明図である。
【図６Ａ】本発明の実施形態における拠点接続管理テーブルの一例を示す説明図である。
【図６Ｂ】本発明の実施形態における拠点接続管理テーブルの一例を示す説明図である。
【図７Ａ】本発明の実施形態におけるサーバ管理テーブルの一例を示す説明図である。
【図７Ｂ】本発明の実施形態におけるサーバ管理テーブルの一例を示す説明図である。
【図８Ａ】本発明の実施形態における監視テーブルの一例を示す説明図である。
【図８Ｂ】本発明の実施形態における監視テーブルの一例を示す説明図である。
【図９】本発明の実施形態における変換テーブルの一例を示す説明図である。
【図１０】本発明の実施形態におけるライブマイグレーション処理の実行前の処理の流れを説明するシーケンス図である。
【図１１】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図１２】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図１３】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図１４】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図１５Ａ】本発明の実施形態におけるライブマイグレーション処理の流れを説明するシーケンス図である。
【図１５Ｂ】本発明の実施形態におけるライブマイグレーション処理の流れを説明するシーケンス図である。
【図１６】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図１７】発明の実施形態における接続管理テーブルの一例を示す説明図である。
【図１８】本発明の実施形態における変換テーブルの一例を示す説明図である。
【図１９】発明の実施形態における接続管理テーブルの一例を示す説明図である。
【図２０】本発明の実施形態における変換テーブルの一例を示す説明図である。
【図２１】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図２２】発明の実施形態における接続管理テーブルの一例を示す説明図である。
【図２３】発明の実施形態における接続管理テーブルの一例を示す説明図である。
【図２４】本発明の実施形態における変換テーブルの一例を示す説明図である。
【図２５Ａ】本発明の実施形態におけるライブマイグレーション実行後の処理の流れを説明するシーケンス図である。
【図２５Ｂ】本発明の実施形態におけるライブマイグレーション実行後の処理の流れを説明するシーケンス図である。
【図２６】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図２７】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図２８】本発明の実施形態におけるネットワーク装置が実行する処理を説明するフローチャートである。
【図２９】本発明の実施形態におけるネットワーク装置が実行する処理を説明するフローチャートである。
【図３０Ａ】本発明の実施形態におけるライブマイグレーション実行後に再度実行されるライブマイグレーション処理の流れを説明するシーケンス図である。
【図３０Ｂ】本発明の実施形態におけるライブマイグレーション処理後に再度実行されるライブマイグレーション処理の流れを説明するシーケンス図である。
【図３１】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図３２】本発明の実施形態における監視テーブルの一例を示す説明図である。
【図３３】本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。
【図３４】本発明の実施形態における監視テーブルの一例を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を用いて説明する。
【００１６】
本発明の実施形態では、２つの拠点間で仮想計算機の移行させる場合について説明する。具体的には、任意の拠点に配置されたサーバ上で稼動する仮想計算機を別の拠点に配置されたサーバに移行させ、その後、元のサーバに仮想計算機を移行させる場合を説明する。なお、以下では、仮想計算機をＶＭと記載する。
【００１７】
図１は、本発明の実施形態におけるネットワークシステムの構成例を示す説明図である。
【００１８】
ネットワークシステムは、複数の拠点から構成される。図１に示す例では、ネットワークシステムは、２つの拠点５００−１、５００−２を含む。拠点５００−１と拠点５００−２とは、ＷＡＮ６００を介して接続される。以下、拠点５００−１及び拠点５００−２を区別しない場合、拠点５００と記載する。
【００１９】
拠点５００−１は、サーバ２００−１、サーバ２００−２、ネットワーク装置１００−１、ストレージ３００−１及びストレージ３００−２から構成される。サーバ２００−１上ではＶＭ１（４００−１）及びＶＭ３（４００−３）が稼動しており、サーバ２００−２上ではＶＭ２（４００−２）が稼動している。
【００２０】
また、拠点５００−２は、サーバ２００−３、ネットワーク装置１００−２、及びストレージ３００−３から構成される。サーバ２００−３上ではＶＭ４（４００−４）が稼動している。
【００２１】
以下、サーバ２００−１、サーバ２００−２，及びサーバ２００−３を区別しない場合、サーバ２００と記載する。ネットワーク装置１００−１及びネットワーク装置１００−２を区別しない場合、ネットワーク装置１００と記載する。ストレージ３００−１、ストレージ３００−２及びストレージ３００−３を区別しない場合、ストレージ３００と記載する。また、ＶＭ４００−１、ＶＭ４００−２、ＶＭ４００−３及びＶＭ４００−４を区別しない場合、ＶＭ４００と記載する。
【００２２】
ネットワーク装置１００は、拠点５００内の通信を管理する。また、ネットワーク装置１００は、各拠点５００を接続する。なお、ネットワーク装置１００の構成については、図２を用いて後述する。
【００２３】
サーバ２００は、ＶＭ４００を生成し、また、ＶＭ４００を管理するハイパバイザ２５０（図３参照）を備える。ハイパバイザ２５０は、ＮＰＩＶ（Ｎ  Ｐｏｒｔ  ＩＤ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を用いて、ＶＭ４００ごとにファブリックログインを実行する。これによって、各ＶＭ４００がストレージ３００にアクセスすることができる。なお、サーバ２００の構成については、図３を用いて後述する。
【００２４】
ストレージ３００は、サーバ２００が使用する記憶領域を提供する記憶媒体である。ストレージ３００は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）などから構成される。ストレージ３００は論理的に複数の記憶領域に分割されており、それぞれの記憶領域を論理ユニットとして管理する。なお、論理ユニットには識別子として論理ユニット番号が付与される。
【００２５】
図１に示す例では、サーバ２００−１及びサーバ２００−２は、ＬＡＮ７００−１を介して互いに接続される。また、ネットワーク装置１００−１は、ＬＡＮ７００−１に接続され、各拠点５００のサーバ２００間の通信を中継する。
【００２６】
サーバ２００−１及びサーバ２００−２は、ネットワーク装置１００−１と直接接続され、当該ネットワーク装置１００−１を経由して、ストレージ３００−１及びストレージ３００−２にアクセスする。
【００２７】
ストレージ３００−１及びストレージ３００−２は、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）８００−１を介して、ネットワーク装置１００−１に接続される。なお、ＳＡＮ８００−１には、１以上のファイバチャネルスイッチ（図示省略）が含まれる。
【００２８】
また、サーバ２００−１、サーバ２００−２、及びネットワーク装置１００−１にはそれぞれ、グローバルなＩＰアドレスが割り当てられる。具体的には、サーバ２００−１にはＩＰアドレス「２００．１．１．２」が割り当てられ、サーバ２００−２にはＩＰアドレス「２００．１．１．３」が割り当てられ、ネットワーク装置１００−１にはＩＰアドレス「２００．１．２．１」が割り当てられる。
【００２９】
また、サーバ２００上のハイパバイザ２５０は、ＮＰＩＶ（Ｎ  Ｐｏｒｔ  ＩＤ  Ｖｉｒｔｕａｌｉｚａｔｉｏｎ）を用いて、ＶＭ４００毎にログイン処理を実行し（ファブリックログイン）、ＶＭ４００毎のポートアドレスを取得する。
【００３０】
なお、拠点５００−２についても同様の構成であるため説明を省略する。
【００３１】
本実施形態では、拠点５００−１のサーバ２００−１上で稼動するＶＭ３（４００−３）を拠点５００−２のサーバ２００−３に移行させ、その後、元のサーバ２００−１にＶＭ３（４００−３）を移行させる処理について説明する。
【００３２】
なお、本実施形態では、サーバ２００とネットワーク装置１００とはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いて通信し、各ストレージ３００は、ＦＣＰ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ  Ｐｒｏｔｏｃｏｌ）を用いて通信する。
【００３３】
また、各ネットワーク装置１００の間でストレージデータを送受信する場合には、ＦＣＩＰ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）を用いて通信する。
【００３４】
なお、ネットワークシステムにおける通信方法は一例であって、各装置間で通信できれば、どのようなプロトコルを用いてもよい。
【００３５】
図２は、本発明の実施形態におけるネットワーク装置１００のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【００３６】
ネットワーク装置１００は、プロセッサ１１０、メモリ１２０、ＬＡＮ＿ＩＦ１３０、サーバ＿ＩＦ１４０−１〜１４０−ｎ、ＳＡＮ＿ＩＦ１５０、及びＷＡＮ＿ＩＦ１６０を備える。
【００３７】
プロセッサ１１０は、メモリ１２０に格納されるプログラムを実行する。プロセッサ１１０がプログラムを実行することによってネットワーク装置１００が備える機能を実現することができる。
【００３８】
メモリ１２０は、プロセッサ１１０によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。
【００３９】
本実施形態のメモリ１２０は、アクセス処理部９００、接続管理テーブル９１０、拠点接続管理テーブル９２０、サーバ管理テーブル９３０、監視テーブル９４０、及び変換テーブル９５０を備える。なお、メモリ１２０は、その他のプログラム及びテーブルを含んでいてもよい。
【００４０】
アクセス処理部９００は、ライブマイグレーション処理におけるＶＭ４００とストレージ３００とのアクセスを管理する。ライブマイグレーション処理では、ＶＭ４００のレジスタ情報及びメモリ１２０上に格納されるＶＭ４００の情報が移行対象となる。
【００４１】
接続管理テーブル９１０は、サーバ２００とストレージ３００との接続を管理するための情報を格納する。なお、接続管理テーブル９１０の詳細については図５Ａ及び図５Ｂを用いて後述する。
【００４２】
拠点接続管理テーブル９２０は、他の拠点５００におけるネットワーク装置１００及びサーバ２００の接続先を管理するための情報を格納する。なお、拠点接続管理テーブル９２０の詳細については図６Ａ及び図６Ｂを用いて後述する。
【００４３】
サーバ管理テーブル９３０は、ネットワーク装置１００とサーバ２００との接続を管理するための情報を格納する。なお、サーバ管理テーブル９３０の詳細については図７Ａ及び図７Ｂを用いて後述する。
【００４４】
監視テーブル９４０は、フレーム及びパケットをフィルタリングするための情報を格納する。なお、監視テーブル９４０の詳細については図８Ａ及び図８Ｂを用いて後述する。
【００４５】
変換テーブル９５０は、フィルタリングされたフレーム及びパケットを転送するための情報を格納する。なお、変換テーブル９５０の詳細については図９を用いて後述する。
【００４６】
メモリ１２０は、前述したテーブル以外に、論理ユニットへのアクセスを管理するために、当該論理ユニットのブロックに対応するビットマップを格納する。当該ビットマップは一時的に作成されるものであり、各ビットマップを一意に識別するための識別子が付与される。
【００４７】
なお、メモリ１２０には、フレーム及びＩＰパケットの転送処理、及びフレーム及びＩＰパケットの変換処理などを実行するスイッチ処理部を備えるが、本発明には直接関係しないため省略している。
【００４８】
ＬＡＮ＿ＩＦ１３０は、ＬＡＮ７００に接続するためのインタフェースである。サーバ＿ＩＦ１４０−１〜１４０−ｎは、サーバ２００と接続するためのインタフェースである。
【００４９】
ＳＡＮ＿ＩＦ１５０は、ＳＡＮ８００に接続するためのインタフェースである。ＷＡＮ＿ＩＦ１６０は、ＷＡＮ６００と接続するためのインタフェースである。
【００５０】
なお、ネットワーク装置１００は、拠点５００間を管理する管理ネットワークに接続するための制御インタフェースなどの他のハードウェアを備えていてもよい。
【００５１】
なお、本実施形態では、プログラムを実行することによってアクセス処理部９００を実現しているが、アクセス処理部９００が備える機能をＡＳＩＣ及びＦＰＧＡのようなハードウェアを用いて実現してもよい。
【００５２】
図３は、本発明の実施形態おけるサーバ２００のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
【００５３】
サーバ２００は、プロセッサ２１０、メモリ２２０、ＬＡＮ＿ＩＦ２３０、及びＩ／Ｏ＿ＩＦ２４０−１〜２４０−ｎを備える。
【００５４】
プロセッサ２１０は、メモリ２２０に格納されるプログラムを実行する。プロセッサ２１０がプログラムを実行することによってサーバ２００が備える機能を実現することができる。
【００５５】
メモリ２２０は、プロセッサ２１０によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。本実施形態のメモリ２２０は、ハイパバイザ２５０を格納する。
【００５６】
ハイパバイザ２５０は、サーバ２００が備える物理リソースを割り当てることによってＶＭ４００を生成し、生成されたＶＭ４００を管理する。ＶＭ４００は、各種業務を実行する。ＶＭ４００上では、ＯＳ（図示省略）及びアプリケーション（図示省略）が実行される。また、ハイパバイザ２５０は、ライブマイグレーション処理を実行するライブマイグレーション機能を有する。
【００５７】
ＬＡＮ＿ＩＦ２３０は、ＬＡＮ７００に接続するためのインタフェースである。Ｉ／Ｏ＿ＩＦ２４０−１〜２４０−ｎは、ネットワーク装置１００又はその他の外部装置に接続するためのインタフェースである。
【００５８】
図４は、本発明の実施形態におけるＦＣフレームの構造の一例を示す説明図である。
【００５９】
ＦＣフレーム１０００は、Ｈｅａｄｅｒ１１００、Ｐａｙｌｏａｄ１２００及びＣＲＣ１３００から構成される。
【００６０】
Ｈｅａｄｅｒ１１００は、主に転送制御に用いられる情報を格納する。具体的には、Ｈｅａｄｅｒ１１００は、Ｒ＿ＣＴＬ１１１０、Ｄ＿ＩＤ１１２０、Ｓ＿ＩＤ１１３０、及びＴＹＰＥ１１４０を格納する。
【００６１】
Ｒ＿ＣＴＬ１１１０はフレーム種別を格納する。Ｄ＿ＩＤ１１２０は、宛先のポートアドレスを格納する。Ｓ＿ＩＤ１１３０は、送信元のポートアドレスを格納する。ＴＹＰＥ１１４０は、Ｐａｙｌｏａｄ１２００に格納されるデータの種別を示す情報を格納する。
【００６２】
Ｐａｙｌｏａｄ１２００は、データ本体の内容を格納する。ＣＲＣ１３００は、フレーム単位の誤り検出用の冗長情報を格納する。
【００６３】
ＦＣフレーム１０００がポート情報の送受信に用いられるＥｘｔｅｎｄｅｄ＿ｌｉｎｋ＿ｓｅｒｖｉｃｅｓの場合、Ｒ＿ＣＴＬ１１１０には「０ｘ２２」、ＴＹＰＥ１１４０には「０ｘ０１」が格納される。
【００６４】
また、Ｐａｙｌｏａｄ１２００に格納されるＬＳ＿ｃｏｍｍａｎｄ＿ｃｏｄｅ１２１０には、ＦＬＯＧＩ（Ｆａｂｒｉｃ  Ｌｏｇｉｎ）フレームであれば「０ｘ０４」、ＰＬＯＧＩ（Ｐｏｒｔ  Ｌｏｇｉｎ）フレームであれば「０ｘ０３」、ＰＬＯＧＯ（Ｐｏｒｔ  Ｌｏｇｏｕｔ）フレームであれば「０ｘ０５」、ＡＣＣ（Ａｃｃｅｐｔ）フレームであれば「０ｘ０２」、ＲＪＴ（Ｒｅｊｅｃｔ）フレームであれば「０ｘ０１」が格納される。
【００６５】
ＦＣフレーム１０００がＦＣ−４のＳＣＳＩコマンドフレームの場合、Ｒ＿ＣＴＬ１１１０には、ＦＣＰ＿ＣＭＮＤであれば「０ｘ０６」、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームであれば「０ｘ０５」、ＦＣＰ＿ＤＡＴＡフレームであれば「０ｘ０１」、ＦＣＰ＿ＲＳＰフレームであれば「０ｘ０７」が格納される。なお、ＴＹＰＥ１１４０にはすべて「０ｘ０８」が格納される。
【００６６】
ＦＣＰ＿ＣＭＮＤフレームには、論理ユニット番号を示すＬＵＮ１２２０及びＣＤＢ１２３０が格納される。
【００６７】
ここで、ＣＤＢ１２３０は、命令を示すＯｐｅｒａｔｉｏｎ１２３１、論理ブロックアドレスを示すＬＢＡ１２３２、転送するブロック長を示すＴｒａｎｓｆｅｒ＿ｌｅｎｇｔｈ１２３３から構成される。例えば、Ｏｐｅｒａｔｉｏｎ１２３１に「０ｘ２８」、「０ｘＡ８」、「０ｘ８８」、又は「０ｘ７Ｆ」が格納される場合にはリード系コマンドを表し、また、Ｏｐｅｒａｔｉｏｎ１２３１に「０ｘ０Ａ」、「０ｘ２Ａ」、「０ｘＡＡ」、又は「０ｘ８Ａ」が格納される場合にはライト系コマンドを表す。
【００６８】
図５Ａ及び図５Ｂは、本発明の実施形態における接続管理テーブル９１０の一例を示す説明図である。
【００６９】
図５Ａは、ネットワーク装置１００−１が保持する接続管理テーブル９１０を示す。また、図５Ｂは、ネットワーク装置１００−２が保持する接続管理テーブル９１０を示す。
【００７０】
接続管理テーブル９１０は、サーバ２００とストレージ３００との接続状態を管理するためのテーブルである。接続管理テーブル９１０は、サーバ＿ＩＦ＿ＩＤ９１１、サーバポート９１２、ストレージポート９１３、ＬＵＮ９１４、状態９１５及びビットマップ＿ＩＤ９１６を含む。
【００７１】
サーバ＿ＩＦ＿ＩＤ９１１は、サーバ＿ＩＦ１４０の識別子を格納する。
【００７２】
サーバポート９１２は、ＶＭ４００に割り当てられたサーバポートの識別番号を格納する。なお、ＶＭ４００は、サーバ＿ＩＦ＿ＩＤ９１１に対応するサーバ＿ＩＦ１４０に接続されるサーバ２００上で稼動するＶＭ４００である。本実施形態では、サーバポート９１２がＶＭ４００の識別子となる。
【００７３】
ストレージポート９１３は、ＶＭ４００に割り当てられたストレージポートの識別番号を格納する。なお、ＶＭ４００は、サーバ＿ＩＦ＿ＩＤ９１１に対応するサーバ＿ＩＦ１４０に接続されるサーバ２００上で稼動するＶＭ４００である。ＶＭ４００は、割り当てられたストレージポートを使用してＬＵにアクセスする。
【００７４】
ＬＵＮ９１４は、ＶＭ４００がアクセスする論理ユニットの識別番号を格納する。ＶＭ４００は、サーバ＿ＩＦ＿ＩＤ９１１に対応するサーバ＿ＩＦ１４０に接続されるサーバ２００上で稼動するＶＭ４００である。
【００７５】
状態９１５は、ライブマイグレーション処理の状態を示す情報を格納する。具体的には、「ｎｏ」、「実行中」、「移行元」、又は「移行先」のいずれかが格納される。なお、エントリ作成時には「ｎｏ」が格納される。
【００７６】
「ｎｏ」は、ライブマイグレーション処理が実行されていない状態を示す。「実行中」は、ライブマイグレーション処理が実行中である状態を示す。
【００７７】
「移行元」は、移行元のＶＭ４００としてライブマイグレーション処理が完了した状態を示す。「移行先」は、移行先のＶＭ４００としてライブマイグレーション処理が完了した状態を示す。
【００７８】
ビットマップ＿ＩＤ９１６は、ＶＭ４００がアクセスする論理ユニットのアクセス状態を管理するビットマップの識別子を格納する。なお、ライブマイグレーション処理が実行されていない場合、ビットマップ＿ＩＤ９１６には何も格納されない。
【００７９】
図６Ａ及び図６Ｂは、本発明の実施形態における拠点接続管理テーブル９２０の一例を示す説明図である。
【００８０】
図６Ａは、ネットワーク装置１００−１が保持する拠点接続管理テーブル９２０を示す。また、図６Ｂは、ネットワーク装置１００−２が保持する拠点接続管理テーブル９２０を示す。
【００８１】
拠点接続管理テーブル９２０は、移行先の候補となるサーバ２００を管理するためのテーブルである。拠点接続管理テーブル９２０に設定される情報は、予め管理者によって設定される。なお、ネットワーク装置１００がネットワークから必要な情報を取得し、取得された情報に基づいて拠点接続管理テーブル９２０を生成してもよい。
【００８２】
拠点接続管理テーブル９２０は、サーバ＿ＩＰ９２１及びネットワーク装置＿ＩＰ９２２を含む。
【００８３】
サーバ＿ＩＰ９２１は、移行先の拠点のネットワーク装置１００に接続されるサーバ２００のＩＰアドレスを格納する。ネットワーク装置＿ＩＰ９２２は、移行先のネットワーク装置１００のＩＰアドレスを格納する。
【００８４】
本実施形態では、サーバ２００−１上で稼動するＶＭ４００の移行先として、ネットワーク装置１００−２に接続されるサーバ２００−３が指定されている。また、ネットワーク装置１００−２に接続される２００−３上で稼動するＶＭ４００の移行先として、ネットワーク装置１００−１に接続されるサーバ２００−１及びサーバ２００−２が指定されている。
【００８５】
したがって、図６Ａに示す拠点接続管理テーブル９２０には、ネットワーク装置１００−２及びサーバ２００−３のＩＰアドレスが格納される。また、図６Ｂに示す拠点接続管理テーブル９２０には、ネットワーク装置１００−１、サーバ２００−１及びサーバ２００−２のＩＰアドレスが格納される。
【００８６】
図７Ａ及び図７Ｂは、本発明の実施形態におけるサーバ管理テーブル９３０の一例を示す説明図である。
【００８７】
図７Ａは、ネットワーク装置１００−１が保持するサーバ管理テーブル９３０を示す。また、図７Ｂは、ネットワーク装置１００−２が保持するサーバ管理テーブル９３０を示す。
【００８８】
サーバ管理テーブル９３０は、サーバ＿ＩＦ１４０とサーバ２００との接続関係を管理するためのテーブルである。サーバ管理テーブル９３０は、サーバ＿ＩＦ＿ＩＤ９３１及びサーバ＿ＩＰ９３２を含む。
【００８９】
サーバ＿ＩＦ＿ＩＤ９３１は、サーバ＿ＩＦ１４０の識別子を格納する。
【００９０】
サーバ＿ＩＰ９３２は、サーバ＿ＩＦ＿ＩＤ９３１に対応するサーバ＿ＩＦ１４０に接続されるサーバ２００のＩＰアドレスを格納する。
【００９１】
図８Ａ及び図８Ｂは、本発明の実施形態における監視テーブル９４０の一例を示す説明図である。
【００９２】
図８Ａは、ネットワーク装置１００−１が保持する監視テーブル９４０を示す。また、図８Ｂは、ネットワーク装置１００−２が保持する監視テーブル９４０を示す。
【００９３】
監視テーブル９４０は、ライブマイグレーション処理の対象となるサーバ２００を把握するためのテーブルである。監視テーブル９４０は、ソース＿ＩＰ９４１、宛先＿ＩＰ９４２及び属性９４３を含む。
【００９４】
ソース＿ＩＰ９４１は、移行元のサーバ２００のＩＰアドレスを格納する。宛先＿ＩＰ９４２は、移行先のサーバ２００のＩＰアドレスを格納する。
【００９５】
属性９４３は、監視テーブル９４０を保持するネットワーク装置１００の属性を示す情報を格納する。属性は、監視テーブル９４０を管理するネットワーク装置１００が移行元の拠点５００又は移行先の拠点５００の何れに属するかを示す情報である。具体的には、移行元の拠点５００を示す「Ｓｏｕｒｃｅ」、又は、移行先の拠点５００を示す「Ｄｅｓｔｉｎａｔｉｏｎ」のいずれかが格納される。
【００９６】
図９は、本発明の実施形態における変換テーブル９５０の一例を示す説明図である。
【００９７】
転送元９５１は、自拠点５００から送信されるフレーム及びＩＰパケットを特定するための情報を格納する。
【００９８】
変換テーブル９５０は、転送元９５１及び転送先９５２を含む。
【００９９】
転送元９５１は、転送元のＶＭ４００を特定するための情報を格納する。具体的には、転送元９５１は、サーバポート９５３、ストレージポート９５４及びＬＵＮ９５５を含む。
【０１００】
サーバポート９５３はサーバポート９１２と同一のものであり、ストレージポート９５４はストレージポート９１３と同一のものであり、また、ＬＵＮ９５５はＬＵＮ９１４と同一のものであるため説明を省略する。
【０１０１】
転送先９５２は、ＩＰパケットを転送する他の拠点５００の情報を格納する。転送先９５２は、サーバポート９５６、ストレージポート９５７、ＬＵＮ９５８、及び転送先＿ＩＰ９５９を含む。
【０１０２】
サーバポート９５６はサーバポート９１２と同一のものであり、ストレージポート９５７はストレージポート９１３と同一のものであり、また、ＬＵＮ９５８はＬＵＮ９１４と同一のものであるため説明を省略する。
【０１０３】
転送先＿ＩＰ９５９は、他の拠点５００に含まれるネットワーク装置１００のＩＰアドレスを格納する。
【０１０４】
［ライブマイグレーション処理の実行前］
まず、ライブマイグレーション処理の実行前のネットワークシステムの動作について説明する。
【０１０５】
図１０は、本発明の実施形態におけるライブマイグレーション処理の実行前の処理の流れを説明するシーケンス図である。
【０１０６】
図１０では、拠点５００−１のサーバ２００−１における処理を例に説明する。以下、サーバ２００−１を主語にしている場合、サーバ２００−１のハイパバイザ２５０が処理を実行することを示す。
【０１０７】
ステップＳ１００〜ステップＳ１０５までの処理はログイン処理である。ステップＳ１０６〜ステップＳ１０８までの処理は、読み出し処理である。ステップＳ１０９〜ステップＳ１１２までの処理は、書き込み処理である。ステップＳ１１３〜ステップＳ１１５までの処理は、ログアウト処理である。
【０１０８】
まず、サーバ２００−１は、サーバ２００−１上で稼動するＶＭ１（４００−１）がストレージ３００へアクセスするためのログイン処理を実行する。
【０１０９】
サーバ２００−１は、ＳＡＮ８００−１に接続されるストレージ３００にログインするために、ＳＡＮ８００−１に対してＦＬＯＧＩフレームを送信する（ステップＳ１００）。当該処理によってサーバポートのアドレスが取得される。
【０１１０】
ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチに、受信したＦＬＯＧＩフレームを転送する。
【０１１１】
ＳＡＮ８００−１に含まれるスイッチは、ＦＬＯＧＩフレームを受信すると、サーバ２００−１に対してＡＣＣフレームを送信する（ステップＳ１０１）。ＡＣＣフレームはログインを受け付けた旨を示すフレームである。
【０１１２】
ネットワーク装置１００−１は、サーバ２００−１に、受信したＡＣＣフレームを転送する。このとき、ネットワーク装置１００−１は、接続管理テーブル９１０を更新する（ステップＳ１０２）。具体的な更新処理については図１１を用いて後述する。
【０１１３】
次に、サーバ２００−１は、アクセス先のストレージポートのアドレスを取得するために、ＰＬＯＧＩフレームをストレージ３００に対して送信する（ステップＳ１０３）。
【０１１４】
ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチに受信したＰＬＯＧＩフレームを転送する。さらに、ＳＡＮ８００−１に含まれるスイッチは、ストレージ３００に受信したＰＬＯＧＩフレームを転送する。
【０１１５】
ストレージ３００は、ＰＬＯＧＩフレームを受信すると、サーバ２００−１に対してＡＣＣフレームを送信する（ステップＳ１０４）。ＡＣＣフレームはログインを受け付けた旨を示すフレームである。
【０１１６】
ＳＡＮ８００−１に含まれるスイッチは、ＡＣＣフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。
【０１１７】
さらに、ネットワーク装置１００−１は、ＡＣＣフレームを受信すると、当該フレームをサーバ２００−１に転送する。このとき、ＰＬＯＧＩフレームを受信したネットワーク装置１００−１は、接続管理テーブル９１０を更新する（ステップＳ１０５）。具体的な更新処理については図１２を用いて後述する。
【０１１８】
以上の処理によって、接続管理テーブル９１０に必要な情報が格納される。したがって、ネットワーク装置１００−１は、接続管理テーブル９１０を参照することによって、ＶＭ４００がどのストレージ３００にアクセスするかを把握できる。
【０１１９】
次に、読み出し処理について説明する。
【０１２０】
サーバ２００−１は、データの読み出しを示すＦＣＰ＿ＣＭＮＤフレームをストレージ３００に対して送信する（ステップＳ１０６）。
【０１２１】
ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをＳＡＮ８００−１に含まれるスイッチに転送する。このとき、ネットワーク装置１００−１は、接続管理テーブル９１０を更新する（ステップＳ１０７）。具体的な更新処理については図１３を用いて後述する。
【０１２２】
また、ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをストレージ３００に転送する。
【０１２３】
ストレージ３００は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、所定のデータを読み出し、読み出されたデータを含むＦＣＰ＿ＤＡＴＡフレームをサーバ２００−１に対して送信する（ステップＳ１０８）。
【０１２４】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。また、ネットワーク装置１００−１は、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをサーバ２００−１に転送する。
【０１２５】
次に、書き込み処理について説明する。
【０１２６】
サーバ２００−１は、データの書き込みを示すＦＣＰ＿ＣＭＮＤフレームをストレージ３００に対して送信する（ステップＳ１０９）。
【０１２７】
ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをＳＡＮ８００−１に含まれるスイッチに転送する。また、ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをストレージ３００に対して転送する。
【０１２８】
ストレージ３００は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、データの書き込みを受け付け可能である旨を知らせるＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームをサーバ２００−１に対して送信する（ステップＳ１１０）。
【０１２９】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。また、ネットワーク装置１００−１は、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、当該フレームをサーバ２００−１に転送する。
【０１３０】
サーバ２００−１は、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、書き込むデータを含むＦＣＰ＿ＤＡＴＡフレームをストレージ３００に対して送信する（ステップＳ１１１）。
【０１３１】
ネットワーク装置１００−１は、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをＳＡＮ８００−１に含まれるスイッチに転送する。また、ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをストレージ３００に転送する。
【０１３２】
ストレージ３００は、サーバ２００−１から送信されるＦＣＰ＿ＤＡＴＡフレームを全て受信すると、正常にデータが書き込まれた旨を示すＦＣＰ＿ＲＳＰフレームをサーバ２００−１に対して送信する（ステップＳ１１２）。
【０１３３】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。また、ネットワーク装置１００−１は、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをサーバ２００−１に転送する。
【０１３４】
次に、ログアウト処理について説明する。
【０１３５】
サーバ２００−１は、ポートログアウトを示すＰＬＯＧＯフレームをストレージ３００に対して送信する（ステップＳ１１３）。
【０１３６】
ネットワーク装置１００−１は、ＰＬＯＧＯフレームを受信すると、当該フレームをＳＡＮ８００−１に含まれるスイッチに転送する。また、ＳＡＮ８００−１に含まれるスイッチは、ＰＬＯＧＯフレームを受信すると、当該フレームをストレージ３００に転送する。
【０１３７】
ストレージ３００は、ＰＬＯＧＯフレームを受信すると、ログアウトが完了した旨を示すＡＣＣフレームをサーバ２００−１に対して送信する（ステップＳ１１４）。
【０１３８】
ＳＡＮ８００−１に含まれるスイッチは、ＡＣＣフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。また、ネットワーク装置１００−１は、ＡＣＣフレームを受信すると、当該フレームをサーバ２００−１に転送する。
【０１３９】
このとき、ネットワーク装置１００−１は、接続管理テーブル９１０を更新する（ステップＳ１１５）。なお、具体的な更新処理については、図１４を用いて後述する。
【０１４０】
次に、ネットワーク装置１００の処理について説明する。
【０１４１】
図１１は、本発明の実施形態のネットワーク装置１００−１が実行する処理を説明するフローチャートである。図１１では、ＦＬＯＧＩフレームを受信したネットワーク装置１００−１の処理を示している。
【０１４２】
ネットワーク装置１００−１は、サーバ２００−１からＦＬＯＧＩフレームを受信すると（ステップＳ２００）、当該フレームをＳＡＮ８００−１に含まれるスイッチに転送する（ステップＳ２０１）。ネットワーク装置１００−１は、フレームのＲ＿ＣＴＬ１１１０、ＴＹＰＥ１１４０及びＰａｙｌｏａｄ１２００を参照することによってＦＬＯＧＩフレームであるか否かを判定できる。
【０１４３】
以下、同様の方法を用いて処理が実行されるためフレームの判定処理の説明は省略する。
【０１４４】
ＦＬＯＧＩフレームの転送後、ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチから送信される応答フレームを待つ。
【０１４５】
ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチから応答フレームを受信すると（ステップＳ２０２）、当該応答フレームの種別を判定する（ステップＳ２０３）。具体的には、ネットワーク装置１００−１は、受信した応答フレームがＡＣＣフレーム又はＲＪＴフレームの何れであるかを判定する。ここで、ＲＪＴフレームは、要求を拒絶する旨を示すフレームである。
【０１４６】
応答フレームがＲＪＴフレームであると判定された場合、ネットワーク装置１００−１は、ステップＳ２０５に進む。
【０１４７】
応答フレームがＡＣＣフレームであると判定された場合、ネットワーク装置１００−１は、サーバポートの識別子を接続管理テーブル９１０に登録し（ステップＳ２０４）、ステップＳ２０５に進む。具体的には、以下のような処理が実行される。
【０１４８】
ネットワーク装置１００−１は、ＦＬＯＧＩフレームを送信したサーバ２００−１が接続されるサーバ＿ＩＦ１４０を特定する。次に、ネットワーク装置１００は、接続管理テーブル９１０にエントリを生成し、生成されたエントリのサーバ＿ＩＦ＿ＩＤ９１１に特定されたサーバ＿ＩＦ１４０の識別子を格納する。
【０１４９】
ネットワーク装置１００−１は、ＡＣＣフレームのＤ＿ＩＤ１１２０を取得し、生成されたエントリのサーバポート９１２に取得されたＤ＿ＩＤ１１２０を格納する。さらに、ネットワーク装置１００−１は、生成されたエントリの状態９１５に「ｎｏ」を格納する。
【０１５０】
以上がステップＳ２０４の処理である。
【０１５１】
次に、ネットワーク装置１００−１は、受信した応答フレームをサーバ２００に送信し（ステップＳ２０５）、処理を終了する。
【０１５２】
なお、一定期間内に応答フレームが受信されない場合、ネットワーク装置１００−１は、サーバ２００−１にエラーを通知して処理を終了する。
【０１５３】
図１２は、本発明の実施形態のネットワーク装置１００−１が実行する処理を説明するフローチャートである。図１２では、ＰＬＯＧＩフレームを受信したネットワーク装置１００−１の処理を示している。
【０１５４】
ネットワーク装置１００−１は、サーバ２００−１からＰＬＯＧＩフレームを受信すると（ステップＳ２１０）、当該フレームをＳＡＮ８００−１に含まれるスイッチに転送する（ステップＳ２１１）。なお、受信したフレームの判定方法はステップＳ２００と同一である説明を省略する。
【０１５５】
ＰＬＯＧＩフレームの転送後、ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチから送信される応答フレームを待つ。
【０１５６】
ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチから応答フレームを受信すると（ステップＳ２１２）、当該応答フレームの種別を判定する（ステップＳ２１３）。具体的には、ネットワーク装置１００−１は、受信したフレームがＡＣＣフレーム又はＲＪＴフレームの何れであるかが判定される。
【０１５７】
応答フレームがＲＪＴフレームであると判定された場合、ネットワーク装置１００−１は、ステップＳ２１５に進む。
【０１５８】
応答フレームがＡＣＣフレームであると判定された場合、ネットワーク装置１００−１は、接続管理テーブル９１０にストレージポートを登録し（ステップＳ２１４）、ステップＳ２１５に進む。具体的には以下のような処理が実行される。
【０１５９】
ネットワーク装置１００−１は、ＡＣＣフレームを解析して、Ｄ＿ＩＤ１１２０及びＳ＿ＩＤ１１３０を取得する。
【０１６０】
さらに、ネットワーク装置１００−１は、サーバ＿ＩＦ１４０の識別子及びＤ＿ＩＤ１１２０に基づいて、接続管理テーブル９１０から対応するエントリを検索する。なお、サーバ＿ＩＦ１４０の識別子は、ＰＬＯＧＩフレームを受信したサーバ＿ＩＦ１４０の識別子である。
【０１６１】
ネットワーク装置１００は、検索されたエントリのストレージポート９１３に取得されたＳ＿ＩＤ１１３０を格納する。
【０１６２】
以上がステップＳ２１４の処理である。
【０１６３】
次に、ネットワーク装置１００−１は、受信した応答フレームをサーバ２００−１に送信し（ステップＳ２１５）、処理を終了する。
【０１６４】
なお、一定期間内に応答フレームが受信されない場合、ネットワーク装置１００−１は、サーバ２００−１にエラーを通知して処理を終了する。
【０１６５】
図１３は、本発明の実施形態のネットワーク装置１００−１が実行する処理を説明するフローチャートである。図１３では、ＦＣＰ＿ＣＭＮＤフレームを受信したネットワーク装置１００−１の処理を示している。
【０１６６】
ネットワーク装置１００−１は、サーバ２００−１からＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームを解析する。具体的には、以下のような処理を実行する。
【０１６７】
ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームを受信したサーバ＿ＩＦ１４０を特定し、特定されたサーバ＿ＩＦ１４０の識別子を取得する。また、ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームから、Ｄ＿ＩＤ１１２０、Ｓ＿ＩＤ１１３０及びＬＵＮ１２２０を取得する。
【０１６８】
ネットワーク装置１００−１は、接続管理テーブル９１０から、取得されたサーバ＿ＩＦ１４０の識別子、Ｄ＿ＩＤ１１２０、及びＳ＿ＩＤ１１３０と一致するエントリを検索する。ネットワーク装置１００−１は、検索されたエントリの状態９１５が「ｎｏ」であるか否かを判定する。
【０１６９】
これは、状態９１５が「ｎｏ」でない場合には、ＦＣＰ＿ＣＭＮＤフレームを他の拠点に転送するために変換テーブル９５０を参照する必要があるためである。ここでは、ライブマイグレーション処理が実行されていないため検索されたエントリの状態９１５が「ｎｏ」であると判定される。
【０１７０】
エントリの状態９１５が「ｎｏ」であると判定された場合、ネットワーク装置１００−１は、通常の転送処理を実行することとなる。
【０１７１】
ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームをＳＡＮ８００−１に含まれるスイッチに転送する（ステップＳ２２１）。
【０１７２】
ネットワーク装置１００−１は、接続管理テーブル９１０を参照して、対応するエントリにＬＵＮが登録されているか否かを判定する（ステップＳ２２２）。具体的には、ネットワーク装置１００−１は、ステップＳ２２０において検索されたエントリのＬＵＮ９１４にＬＵＮが格納されているか否かを判定する。ＬＵＮが登録させていると判定された場合、ネットワーク装置１００は、処理を終了する。
【０１７３】
ＬＵＮが登録されていないと判定された場合、ネットワーク装置１００−１は、ＬＵＮ１２２０を登録して（ステップＳ２２３）、処理を終了する。具体的には、ネットワーク装置１００−１は、対応するエントリのＬＵＮ９１４に取得されたＬＵＮ１２２０を格納する。
【０１７４】
図１４は、本発明の実施形態のネットワーク装置１００−１が実行する処理を説明するフローチャートである。図１４では、ＰＬＯＧＯフレームを受信したネットワーク装置１００−１の処理を示している。
【０１７５】
ネットワーク装置１００−１は、サーバ２００−１からＰＬＯＧＯフレームを受信すると（ステップＳ２３０）、当該フレームをＳＡＮ８００−１に含まれるスイッチに転送する（ステップＳ２３１）。その後、ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチから送信される応答フレームを待つ。
【０１７６】
ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチから応答フレームを受信すると（ステップＳ２３２）、当該応答フレームの種別を判定する（ステップＳ２３３）。具体的には、ネットワーク装置１００−１は、受信したフレームがＡＣＣフレーム又はＲＪＴフレームの何れであるかが判定される。
【０１７７】
応答フレームがＲＪＴフレームであると判定された場合、ネットワーク装置１００−１は、ステップＳ２３５に進む。
【０１７８】
応答フレームがＡＣＣフレームであると判定された場合、ネットワーク装置１００−１は、接続管理テーブル９１０から対応するエントリを削除し（ステップＳ２３４）、ステップＳ２３５に進む。なお、対応するエントリの検索方法は、ステップＳ２１４と同一の方法であるため説明を省略する。
【０１７９】
ネットワーク装置１００−１は、受信した応答フレームをサーバ２００−１に転送し（ステップＳ２３５）、処理を終了する。
【０１８０】
なお、一定期間内に応答フレームが受信されない場合、ネットワーク装置１００−１は、サーバ２００−１にエラーを通知して処理を終了する。
【０１８１】
なお、ネットワーク装置１００−１は、前述した以外のフレームを受信した場合には、フレームの転送処理を実行する。フレームの転送処理は公知の技術を用いればよいため説明を省略する。
【０１８２】
図１０に示す処理が終了すると、図５Ａ及び図５Ｂに示すような接続管理テーブル９１０が生成される。
【０１８３】
［ライブマイグレーション処理実行時］
サーバ２００−１上で稼動するＶＭ３（４００−３）をサーバ２００−３へ移行するライブマイグレーション処理を説明する。
【０１８４】
図１５Ａ及び図１５Ｂは、本発明の実施形態におけるライブマイグレーション処理の流れを説明するシーケンス図である。
【０１８５】
サーバ２００−１は、ＶＭ３（４００−３）のライブマイグレーションの開始メッセージを含むＩＰパケットをサーバ２００−３に対して送信する（ステップＳ３００）。当該ＩＰパケットには、移行元としてサーバ２００−１のＩＰアドレスが格納され、また移行先としてサーバ２００−３のＩＰアドレスが格納される。
【０１８６】
なお、サーバ２００−１は、管理者からライブマイグレーション処理の実行命令を受け付けた場合、又は、所定の実行条件に該当した場合に、前述したＩＰパケットを送信する。例えば、予め設定された時刻になることを実行条件とすることが考えられる。
【０１８７】
ネットワーク装置１００−１は、ＷＡＮ６００を介してＩＰパケットをネットワーク装置１００−２に転送する。このとき、ネットワーク装置１００−１は、監視テーブル９４０及び接続管理テーブル９１０を更新する（ステップＳ３０１、ステップＳ３０２）。具体的な更新処理については図１６を用いて後述する。
【０１８８】
なお、ネットワーク装置１００−１は、ＬＡＮ＿ＩＦ１３０からＩＰパケットを受信しているため、ネットワーク装置１００−１が属する拠点が移行元であることを認識できる。
【０１８９】
ネットワーク装置１００−１は、監視テーブル９４０を参照することによって、ライブマイグレーションの対象となるサーバ２００間で送受信されるフレーム及びＩＰパケットを判別することができる。
【０１９０】
ネットワーク装置１００−２は、ＩＰパケットを受信すると、移行先のサーバ２００−３に当該ＩＰパケットを転送する。このとき、ネットワーク装置１００−２は、監視テーブル９４０を更新する（ステップＳ３０３）。具体的な更新処理については図２１を用いて後述する。
【０１９１】
ネットワーク装置１００−２は、監視テーブル９４０を参照することによって、ライブマイグレーションの対象となるサーバ２００間で送受信されるフレーム及びＩＰパケットを判別することができる。
【０１９２】
なお、ネットワーク装置１００−２は、ＷＡＮ＿ＩＦ１６０からＩＰパケットを受信しているため、ネットワーク装置１００−２が属する拠点が移行先であることを認識できる。
【０１９３】
サーバ２００−３は、ＩＰパケットを受信すると、ＶＭ３（４００−３）に割り当てる記憶領域を確保するためにログイン処理を実行する（ステップＳ３０４〜ステップＳ３０８）。なお、ステップＳ３０４〜ステップＳ３０８の処理は、ステップＳ１００〜ステップＳ１０４と同一の処理であるため説明を省略する。
【０１９４】
ネットワーク装置１００−２は、ログイン処理の完了後、接続管理テーブル９１０、及び変換テーブル９５０を更新する（ステップＳ３０９、ステップＳ３１０）。具体的な更新処理については図２１を用いて後述する。
【０１９５】
また、ネットワーク装置１００−２は、新たに割り当てられた記録領域のブロックに対応するビットマップを生成する（ステップＳ３１１）。その後、ネットワーク装置１００−２は、ＷＡＮ６００を介してＤｅｓｔｉｎａｔｉｏｎ情報を含むＩＰパケットをネットワーク装置１００−１に対して送信する（ステップＳ３１２）。
【０１９６】
ネットワーク装置１００−１は、Ｄｅｓｔｉｎａｔｉｏｎ情報を含むＩＰパケットを受信すると、監視テーブル９４０及び接続管理テーブル９１０を更新する（ステップＳ３１３、ステップＳ３１４）。具体的な更新処理については図１６を用いて後述する。
【０１９７】
なお、Ｄｅｓｔｉｎａｔｉｏｎ情報には、ステップＳ３０４〜ステップＳ３０８の処理によって取得されたサーバポート及びストレージポートが含まれる。
【０１９８】
ライブマイグレーション処理では、ハイパバイザ２５０がメモリ２２０上で管理するＶＭ３（４００−３）の情報を、移行先のサーバ２００−３に転送する（ステップＳ３１５）。なお、ライブマイグレーション処理は、公知の技術であるため説明を省略する。
【０１９９】
なお、移行対象となるデータは、ＶＭ４００のレジスタ情報及びメモリ１２０上に格納されるＶＭ４００の情報である。したがって、ストレージ３００−１に格納される情報より容量が小さいため短時間で移行できる。
【０２００】
このとき、ストレージ３００−１に格納される情報は、ストレージ３００−３には移行されていない。
【０２０１】
サーバ２００−１は、ライブマイグレーション処理の完了後、ＰＬＯＧＯフレームをストレージ３００−１に対して送信する（ステップＳ３１６）。これは、ＶＭ３（４００−３）に割り当てられた記憶領域を開放するための処理である。
【０２０２】
ネットワーク装置１００−１は、ＰＬＯＧＯフレームを受信すると、接続管理テーブル９１０及び変換テーブル９５０を更新する（ステップＳ３１７、ステップＳ３１８）。具体的な更新処理については図１６を用いて後述する。
【０２０３】
ストレージ３００−１には、ＶＭ３（４００−３）が使用していたデータが格納されている。そこで、本実施形態では、当該ストレージ３００−１に格納されるデータは、移行元の拠点５００−１にそのまま残す。すなわち、移行元のストレージ３００−１に格納されるデータは、移行先のストレージ３００−３には移行されない。
【０２０４】
ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチにＰＬＯＧＯフレームを転送せず、ストレージ３００−１の代わりにＡＣＣフレームをサーバ２００−１に対して送信する（ステップＳ３１９）。
【０２０５】
これによって、サーバ２００−１は、処理が正常に終了したものと認識する。一方、ストレージ３００−１には、ＶＭ３（４００−３）が使用していたデータがそのまま残ることとなる。
【０２０６】
次に、ネットワーク装置１００の処理について説明する。
【０２０７】
図１６は、本発明の実施形態のネットワーク装置１００−１が実行する処理を説明するフローチャートである。
【０２０８】
ネットワーク装置１００−１は、ライブマイグレーション処理の開始メッセージを含むＩＰパケットを受信すると（ステップＳ４００）、当該ＩＰパケットを解析する。具体的には、以下のような処理が実行される。
【０２０９】
ネットワーク装置１００−１は、受信したＩＰパケットがＦＣＩＰパケットであるか否かを判定する。これは、ＩＰパケットがＦＣＩＰパケットである場合には、フレームの転送処理が必要であるためである。ここでは、ＩＰパケットがＦＣＩＰパケットではないと判定される。
【０２１０】
ネットワーク装置１００−１は、ＩＰパケットから送信元のサーバ２００−１のＩＰアドレス及び送信先のサーバ２００−３のＩＰアドレスを取得する。
【０２１１】
ここで、ネットワーク装置１００−１は、ＬＡＮ＿ＩＦ１３０を介して当該ＩＰパケットを受信しているため、ネットワーク装置１００−１が属する拠点５００−１が移行元であることが分かる。
【０２１２】
以上がステップＳ４００の処理である。
【０２１３】
次に、ネットワーク装置１００−１は、ＷＡＮ６００を介して受信したＩＰパケットをネットワーク装置１００−２に転送する（ステップＳ４０１）。
【０２１４】
ネットワーク装置１００−１は、監視テーブル９４０に新たなエントリを追加する（ステップＳ４０２）。具体的には、以下のような処理が実行される。
【０２１５】
ネットワーク装置１００−１は、監視テーブル９４０にエントリを生成し、当該エントリのソース＿ＩＰ９４１に取得されたサーバ２００−１のＩＰアドレスを格納し、また、宛先＿ＩＰ９４２に取得されたサーバ２００−３のＩＰアドレスを格納する。
【０２１６】
また、ネットワーク装置１００−１は、生成されたエントリの属性９４３に「Ｓｏｕｒｃｅ」を格納する。
【０２１７】
ステップＳ４０２の処理が完了すると、監視テーブル９４０は図８Ａに示すような状態になる。
【０２１８】
以上がステップＳ４０２における更新処理である。
【０２１９】
次に、ネットワーク装置１００−１は、接続管理テーブル９１０を更新する（ステップＳ４０３）。具体的には、以下のような処理が実行される。
【０２２０】
ネットワーク装置１００−１は、監視テーブル９４０を参照し、サーバ管理テーブル９３０からサーバ＿ＩＰ９３２がソース＿ＩＰ９４１と一致するエントリを検索する。ネットワーク装置１００−１は、検索されたエントリからサーバ＿ＩＦ＿ＩＤ９３１を取得する。
【０２２１】
ネットワーク装置１００−１は、接続管理テーブル９１０からサーバ＿ＩＦ＿ＩＤ９１１が取得されたサーバ＿ＩＦ＿ＩＤ９３１と一致するエントリを検索する。
【０２２２】
ネットワーク装置１００−１は、検索されたエントリの状態９１５が「ｎｏ」であるか否かを判定する。
【０２２３】
検索されたエントリの状態９１５が「ｎｏ」であると判定された場合、ネットワーク装置１００−１は、状態９１５を「実行中」に変更する。検索されたエントリの状態９１５が「ｎｏ」でないと判定された場合、ネットワーク装置１００−１は、状態９１５の変更を行わない。
【０２２４】
図１７は、ステップＳ４０３の処理が完了した後の接続管理テーブル９１０の状態を示す。
【０２２５】
以上がステップＳ４０３の更新処理である。
【０２２６】
ネットワーク装置１００−１は、ＩＰパケットを転送した後、ネットワーク装置１００−２装置からの応答を待つ。
【０２２７】
ネットワーク装置１００−１は、Ｄｅｓｔｉｎａｔｉｏｎ情報を含むＩＰパケットを受信すると（ステップＳ４０４）、変換テーブル９５０を更新する（ステップＳ４０５）。具体的には、以下のような処理が実行される。
【０２２８】
ネットワーク装置１００−１は、ＩＰパケットがＦＣＩＰパケットであるか否かを判定する。ここでは、ＩＰパケットはＦＣＩＰパケットではないと判定される。ネットワーク装置１００−１は、Ｄｅｓｔｉｎａｔｉｏｎ情報からサーバポート及びストレージポートの識別子を取得し、また、ＩＰパケットから送信元のサーバ２００−３のＩＰアドレスを取得する。
【０２２９】
ネットワーク装置１００−１は、変換テーブル９５０にエントリを生成し、生成されたエントリのサーバポート９５６、ストレージポート９５７に取得されたサーバポート及びストレージポートの識別子を格納する。また、ネットワーク装置１００−１は、生成されたエントリの転送先＿ＩＰ９５９に取得されたサーバ２００−３のＩＰアドレスを格納する。
【０２３０】
図１８は、ステップＳ４０５の処理が完了した後の変換テーブル９５０の状態を示す。これによって、ネットワーク装置１００−１は、データの転送先を特定できる。
【０２３１】
以上がステップＳ４０５の更新処理である。
【０２３２】
次に、ネットワーク装置１００−１は、監視テーブル９４０から対応するエントリを削除する（ステップＳ４０６）。
【０２３３】
具体的には、ネットワーク装置１００−１は、監視テーブル９４０から宛先＿ＩＰ９４２が取得されたサーバ２００−３のＩＰアドレスと一致するエントリを検索する。ネットワーク装置１００−１は、検索されたエントリを監視テーブル９４０から削除する。
【０２３４】
ネットワーク装置１００−１は、ＰＬＯＧＯフレームを受信すると（ステップＳ４０７）、接続管理テーブル９１０を更新する（ステップＳ４０８）。具体的には、以下のような処理が実行される。
【０２３５】
ネットワーク装置１００−１は、ＰＬＯＧＯフレームを受信したサーバ＿ＩＦ１４０の識別子を特定する。さらに、ネットワーク装置１００−１は、受信したＰＬＯＧＯフレームを解析して、ストレージポートに対応するＤ＿ＩＤ１１２０、及びサーバポートに対応するＳ＿ＩＤ１１３０を取得する。
【０２３６】
ネットワーク装置１００−１は、接続管理テーブル９１０からサーバ＿ＩＦ１４０の識別子、Ｄ＿ＩＤ１１２０及びＳ＿ＩＤ１１３０に一致するエントリを検索する。
【０２３７】
ネットワーク装置１００−１は、検索されたエントリの状態９１５を「実行中」から「Ｓｏｕｒｃｅ」に変更する。
【０２３８】
さらに、ネットワーク装置１００−１は、接続管理テーブル９１０からサーバ＿ＩＦ１４０の識別子に一致するエントリを検索する。なお、状態９１５が「Ｓｏｕｒｃｅ」に変更されたエントリは検索処理からは除かれる。
【０２３９】
ネットワーク装置１００−１は、検索されたエントリの状態９１５を「実行中」から「ｎｏ」に変更する。
【０２４０】
図１９は、ステップＳ４０８の処理が完了した後の接続管理テーブル９１０の状態を示す。
【０２４１】
以上がステップＳ４０８の更新処理である。
【０２４２】
次に、ネットワーク装置１００−１は、変換テーブル９５０を更新する（ステップＳ４０９）。具体的には、以下のような処理が実行される。
【０２４３】
ネットワーク装置１００−１は、ＰＬＯＧＯフレームを解析し、Ｄ＿ＩＤ１１２０、Ｓ＿ＩＤ１１３０及びＬＵＮ１２２０を取得する。
【０２４４】
次に、ネットワーク装置１００−１は、ステップＳ４０５において生成したエントリのサーバポート９５３、ストレージポート９５４及びＬＵＮ９５５に取得されたＳ＿ＩＤ１１３０、Ｄ＿ＩＤ１１２０、及びＬＵＮ１２２０を格納する。
【０２４５】
図２０は、ステップＳ４０９の処理が完了した後の変換テーブル９５０の状態を示す。
【０２４６】
以上がステップＳ４０９の更新処理である。
【０２４７】
次に、ネットワーク装置１００−１は、サーバ２００−１にＡＣＣフレームを送信し（ステップＳ４１０）、処理を終了する。
【０２４８】
図２１は、本発明の実施形態のネットワーク装置１００−２が実行する処理を説明するフローチャートである。
【０２４９】
ネットワーク装置１００−２は、ライブマイグレーションの開始メッセージを含むＩＰパケットを受信すると（ステップＳ４２０）、当該ＩＰパケットを解析する。具体的には、以下のような処理が実行される。
【０２５０】
ネットワーク装置１００−２は、ＩＰパケットがＦＣＩＰパケットであるか否かを判定する。ここでは、ＩＰパケットはＦＣＩＰパケットではないと判定される。ネットワーク装置１００−２は、ＩＰパケットから送信元のサーバ２００−１のＩＰアドレス及び送信先のサーバ２００−３のＩＰアドレスを取得する。
【０２５１】
ここで、ネットワーク装置１００−２は、ＷＡＮ＿ＩＦ１６０を介して当該ＩＰパケットを受信しているため、ネットワーク装置１００−２が属する拠点５００−２が移行先であることが分かる。
【０２５２】
以上がステップＳ４２０の処理である。
【０２５３】
次に、ネットワーク装置１００−２は、ＬＡＮ７００−２を介して受信したＩＰパケットをサーバ２００−３に転送する（ステップＳ４２１）。また、ネットワーク装置１００−２は、監視テーブル９４０に新たなエントリを追加する（ステップＳ４２２）。具体的には、以下のような処理が実行される。
【０２５４】
ネットワーク装置１００−２は、監視テーブル９４０にエントリを生成し、当該エントリのソース＿ＩＰ９４１にサーバ２００−１のＩＰアドレスを格納し、また、宛先＿ＩＰ９４２にサーバ２００−３のＩＰアドレスを格納する。
【０２５５】
また、ネットワーク装置１００−２は、生成されたエントリの属性９４３に「Ｄｅｓｔｉｎａｔｉｏｎ」を格納する。
【０２５６】
ステップＳ４２２の処理が完了すると、監視テーブル９４０は図８Ｂに示すような状態になる。
【０２５７】
以上がステップＳ４２２における更新処理である。
【０２５８】
次に、ネットワーク装置１００−２は、接続管理テーブル９１０を更新する（ステップＳ４２３）。具体的には、ネットワーク装置１００−２は、図１１及び図１２に示す処理を実行する。
【０２５９】
図２２は、ステップＳ４２３の処理が完了した後の接続管理テーブル９１０の状態を示す。
【０２６０】
ネットワーク装置１００−２は、ビットマップを生成する（ステップＳ４２４）。このとき、当該ビットマップには一意な識別子が付与される。
【０２６１】
ネットワーク装置１００−２は、接続管理テーブル９１０及び変換テーブル９５０を更新する（ステップＳ４２５、ステップＳ４２６）。具体的には、以下のような処理が実行される。
【０２６２】
ネットワーク装置１００−２は、ステップＳ４２３において生成されたエントリのビットマップ＿ＩＤ９１６にビットマップの識別子を格納し、当該エントリの状態９１５を「ｎｏ」から「Ｄｅｓｔｉｎａｔｉｏｎ」に変更する。
【０２６３】
また、ネットワーク装置１００−２は、接続管理テーブル９１０を参照して、ステップＳ４２３において生成されたエントリのサーバポート９１２及びストレージポート９１３を取得する。
【０２６４】
ネットワーク装置１００−２は、拠点接続管理テーブル９２０から、ネットワーク装置＿ＩＰ９２２が監視テーブル９４０のソース＿ＩＰ９４１と一致するエントリを検索する。ネットワーク装置１００−２は、検索されたエントリのネットワーク装置＿ＩＰ９２２を取得する。
【０２６５】
ネットワーク装置１００−２は、変換テーブル９５０に新たにエントリを生成し、生成されたエントリのサーバポート９５３及びストレージポート９５４に取得されたサーバポート９１２及びストレージポート９１３を格納する。
【０２６６】
また、ネットワーク装置１００−２は、生成されたエントリの転送先＿ＩＰ９５９に、取得されたネットワーク装置＿ＩＰ９２２を格納する。
【０２６７】
図２３は、ステップＳ４２５の処理が完了した後の接続管理テーブル９１０の状態を示す。図２４は、ステップＳ４２６の処理が完了した後の変換テーブル９５０の状態を示す。
【０２６８】
以上がステップＳ４２５、及びステップＳ４２６の更新処理である。
【０２６９】
次に、ネットワーク装置１００−２は、Ｄｅｓｔｉｎａｔｉｏｎ情報を含むＩＰパケットをネットワーク装置１００−１に送信し（ステップＳ４２７）、監視テーブル９４０から対応するエントリを削除して処理を終了する（ステップＳ４２８）。
【０２７０】
具体的には、ネットワーク装置１００−２は、監視テーブル９４０からＩＰパケットの送信先及び送信元のＩＰアドレスと一致するエントリを検索する。ネットワーク装置１００−２は、検索されたエントリを監視テーブル９４０から削除する。
【０２７１】
なお、ステップＳ４２６において、ネットワーク装置１００−２は、ネットワーク装置１００−１に問い合わせることによって、ＶＭ３（４００−３）についての情報を取得してもよい。具体的には、ネットワーク装置１００−２は、拠点５００−１におけるサーバポート、ストレージポート及びＬＵＮを取得する。
【０２７２】
［ライブマイグレーション処理の完了後］
ライブマイグレーション処理が完了した後のネットワークシステムの処理について説明する。
【０２７３】
図２５Ａ及び図２５Ｂは、本発明の実施形態におけるライブマイグレーション処理後の処理の流れを説明するシーケンス図である。
【０２７４】
まず、図２５Ａを用いてデータの書き込み処理について説明する。
【０２７５】
サーバ２００−３は、データの書き込みを示すＦＣＰ＿ＣＭＮＤフレームをストレージ３００−３に対して送信する（ステップＳ５００）。
【０２７６】
ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームを受信すると接続管理テーブル９１０を更新する（ステップＳ５０１）。
【０２７７】
ネットワーク装置１００−２は、受信したＦＣＰ＿ＣＭＮＤフレームをＳＡＮ８００−２に含まれるスイッチに転送する。さらに、ネットワーク装置１００−２は、同一のＦＣＰ＿ＣＭＮＤフレームをカプセル化してＦＣＩＰパケットに変換し、変換テーブル９５０を参照して、ネットワーク装置１００−１に対して転送する（ステップＳ５０２）。
【０２７８】
これは、移行される前に使用されていたストレージ３００−１にも同一のデータを反映させるためである。
【０２７９】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをストレージ３００−３に転送する。
【０２８０】
ストレージ３００−３は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、応答としてＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームをサーバ２００−３に対して送信する（ステップＳ５０３）。
【０２８１】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、当該フレームをネットワーク装置１００−２に転送する。ネットワーク装置１００−２は、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、当該フレームを転送することなく移行元の拠点から送信されるＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを待つ。
【０２８２】
これは、移行元のストレージ３００−１にもデータを反映させるために、当該ストレージ３００−１の書き込み許可を待つ必要があるためである。
【０２８３】
一方、ネットワーク装置１００−１は、ＦＣＩＰパケットを受信すると、当該ＦＣＩＰパケットをデカプセル化してＦＣＰ＿ＣＭＮＤフレームに変換し、当該フレームを解析して変換テーブル９５０を更新する（ステップＳ５０４）。
【０２８４】
また、ネットワーク装置１００−１は、変換されたＦＣＰ＿ＣＭＮＤフレームをストレージ３００−１に対して転送する（ステップＳ５０５）。
【０２８５】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをストレージ３００−１に転送する。
【０２８６】
ストレージ３００−１は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、ネットワーク装置１００−１に対してＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを送信する（ステップＳ５０６）。
【０２８７】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。
【０２８８】
ネットワーク装置１００−１は、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、当該フレームをカプセル化してＦＣＩＰパケットに変換し、変換テーブル９５０を参照して当該ＦＣＩＰパケットをネットワーク装置１００−２に対して転送する（ステップＳ５０７）。
【０２８９】
ネットワーク装置１００−２は、ＦＣＩＰパケットを受信すると、当該パケットをデカプセル化してフレームに変換する。ここで、ネットワーク装置１００−２は、２つめのＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信したことを契機に、当該ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームをサーバ２００−３に転送する。
【０２９０】
サーバ２００−３は、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、書き込むデータを含むＦＣＰ＿ＤＡＴＡフレームをストレージ３００−３に対して送信する（ステップＳ５０８）。
【０２９１】
ネットワーク装置１００−２は、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをストレージ３００−３に転送する。さらに、ネットワーク装置１００−２は、同一のＦＣＰ＿ＤＡＴＡフレームをカプセル化してＦＣＩＰパケットに変換し、変換テーブル９５０を参照して、ネットワーク装置１００−１に対して転送する（ステップＳ５０９）。
【０２９２】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをストレージ３００−３に転送する。
【０２９３】
ストレージ３００−３は、ＦＣＰ＿ＤＡＴＡフレームを受信すると、応答としてＦＣＰ＿ＲＳＰフレームをネットワーク装置１００−２に対して送信する（ステップＳ５１０）。
【０２９４】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをネットワーク装置１００−２に転送する。ネットワーク装置１００−２は、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームを転送することなく移行元の拠点５００から送信されるＦＣＰ＿ＲＳＰフレームを待つ。
【０２９５】
これは、移行元のストレージ３００−１にもデータが反映されたことを確かめるためである。
【０２９６】
一方、ネットワーク装置１００−１は、ＦＣＩＰパケットを受信すると、当該ＦＣＩＰパケットをデカプセル化してＦＣＰ＿ＤＡＴＡフレームに変換し、当該フレームをストレージ３００−１に対して転送する（ステップＳ５１１）。
【０２９７】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをストレージ３００−１に転送する。
【０２９８】
ストレージ３００−１は、ＦＣＰ＿ＤＡＴＡフレームを受信すると、応答としてＦＣＰ＿ＲＳＰフレームをネットワーク装置１００−１に対して送信する（ステップＳ５１２）。
【０２９９】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。
【０３００】
ネットワーク装置１００−１は、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをカプセル化してＦＣＩＰパケットに変換し、変換テーブル９５０を参照して当該ＦＣＩＰパケットをネットワーク装置１００−２に対して転送する（ステップＳ５１３）。
【０３０１】
ネットワーク装置１００−２は、ＦＣＩＰパケットを受信すると、当該パケットをデカプセル化してフレームに変換する。ここで、ネットワーク装置１００−２は、２つめのＦＣＰ＿ＲＳＰフレームを受信したことを契機に、当該ＦＣＰ＿ＲＳＰフレームをサーバ２００−３に転送する。
【０３０２】
このとき、ネットワーク装置１００−２は、ビットマップを更新し、データの書き込みを終了する（ステップＳ５１４）。具体的には、データが書き込まれたブロックに対応するビットが更新される。
【０３０３】
次に、図２５Ｂを用いてデータの読み出し処理について説明する。
【０３０４】
まず、サーバ２００−３は、データの読み出しを示すＦＣＰ＿ＣＭＮＤフレームをストレージ３００−３に対して送信する（ステップＳ５１５）。
【０３０５】
ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、ビットマップを参照して対象となるデータがストレージ３００−３に格納されるか否かを判定する。これは、ライブマイグレーション処理の実行直後では、ストレージ３００−３にデータが格納されておらず、ストレージ３００−１にデータが格納されているためである。
【０３０６】
ここでは、ストレージ３００−３に要求されたデータが格納されていない場合を想定する。したがって、ネットワーク装置１００−２は、移行元の拠点からデータを取得するための処理を実行する。
【０３０７】
ネットワーク装置１００−２は、受信したＦＣＰ＿ＣＭＮＤフレームをカプセル化してＦＣＩＰパケットに変換し、変換テーブル９５０を参照して、変換されたＦＣＩＰパケットをネットワーク装置１００−１に対して転送する。
【０３０８】
ネットワーク装置１００−１は、ＦＣＩＰパケットを受信すると、当該パケットをデカプセル化してフレームに変換し、変換されたＦＣＰ＿ＣＭＮＤフレームをストレージ３００−１に対して転送する（ステップＳ５１６）。
【０３０９】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをストレージ３００−１に転送する。
【０３１０】
ストレージ３００−１は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、所定のデータを読み出し、読み出されたデータを含むＦＣＰ＿ＤＡＴＡフレームをネットワーク装置１００−１に対して送信する（ステップＳ５１７）。
【０３１１】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。
【０３１２】
ネットワーク装置１００−１は、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをカプセル化してＦＣＩＰパケットに変換し、変換テーブル９５０を参照して、変換されたＦＣＩＰパケットをネットワーク装置１００−２に対して転送する（ステップＳ５１８）。
【０３１３】
ネットワーク装置１００−２は、ＦＣＩＰパケットを受信すると、当該パケットをデカプセル化してフレームに変換し、変換テーブル９５０を参照して、ＦＣＰ＿ＤＡＴＡフレームをサーバ２００−３に転送する。これによって、サーバ２００−３から要求されたデータが読み出されたことになる。
【０３１４】
また、このとき、ネットワーク装置１００−２は、受信したＦＣＰ＿ＲＳＰフレームを一時的にバッファリングする（ステップＳ５１９）。これは、移行元のストレージ３００−１から読み出されたデータを移行先のストレージ３００−３に反映させるためである。
【０３１５】
一方、ストレージ３００−１は、全てのデータが読み出されるとＦＣＰ＿ＲＳＰフレームをネットワーク装置１００−１に対して送信する（ステップＳ５２０）。
【０３１６】
ＳＡＮ８００−１に含まれるスイッチは、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをネットワーク装置１００−１に転送する。
【０３１７】
ネットワーク装置１００−１は、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをカプセル化してＦＣＩＰパケットに変換し、変換テーブル９５０を参照して、変換されたパケットをネットワーク装置１００−２に対して転送する（ステップＳ５２１）。
【０３１８】
ネットワーク装置１００−２は、ＦＣＩＰパケットを受信すると、当該パケットをデカプセル化してフレームに変換し、変換テーブル９５０を参照して、変換されたＦＣＰ＿ＲＳＰフレームをサーバ２００−３に転送する。
【０３１９】
また、ネットワーク装置１００−２は、ＦＣＰ＿ＲＳＰフレームの受信を契機に、バッファリングされたデータをストレージ３００−３に書き込む。まず、ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームをストレージ３００−３に対して送信する（ステップＳ５２２）。
【０３２０】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをストレージ３００−３に転送する。
【０３２１】
ストレージ３００−３は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、応答としてＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームをネットワーク装置１００−２に対して送信する（ステップＳ５２３）。
【０３２２】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、当該フレームをネットワーク装置１００−２に転送する。
【０３２３】
ネットワーク装置１００−２は、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、バッファリングされたデータを含むＦＣＰ＿ＤＡＴＡフレームをサーバ２００−３に対して送信する（ステップＳ５２４）。
【０３２４】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをストレージ３００−３に転送する。
【０３２５】
ストレージ３００−３は、ＦＣＰ＿ＣＭＮＤフレームを受信し、全てのデータが書き込まれると、応答としてＦＣＰ＿ＲＳＰフレームをネットワーク装置１００−２に対して送信する（ステップＳ５２５）。
【０３２６】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをネットワーク装置１００−２に転送する。
【０３２７】
ネットワーク装置１００−２は、ＦＣＰ＿ＲＳＰフレームを受信すると、ビットマップを更新する（ステップＳ５２６）。
【０３２８】
以上の処理によって、移行元のストレージ３００−１から読み出されたデータは、移行先のストレージ３００−３に反映されるため、以後同一のデータは、ストレージ３００−３から読み出されこととなる。具体的には以下のような処理になる。
【０３２９】
サーバ２００−３は、データの読み出しを示すＦＣＰ＿ＣＭＮＤフレームをストレージ３００−３に対して送信する（ステップＳ５２７）。
【０３３０】
ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、ビットマップを参照して対象となるデータがストレージ３００−３に格納されるか否かを判定する。ここでは、ストレージ３００−３に対象となるデータが格納されるものと想定する。
【０３３１】
ネットワーク装置１００−２は、受信したＦＣＰ＿ＣＭＮＤフレームをストレージ３００−３に対して転送する。
【０３３２】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＣＭＮＤフレームを受信すると、当該フレームをストレージ３００−３に転送する。
【０３３３】
ストレージ３００−３は、ＦＣＰ＿ＣＭＮＤフレームを受信すると、所定のデータを読み出し、読み出されたデータを含むＦＣＰ＿ＤＡＴＡフレームをサーバ２００−３に対して送信する（ステップＳ５２８）。
【０３３４】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをネットワーク装置１００−２に転送する。
【０３３５】
ネットワーク装置１００−２は、ＦＣＰ＿ＤＡＴＡフレームを受信すると、当該フレームをサーバ２００−３に転送する。
【０３３６】
ストレージ３００−２は、全てのデータが読み出されるとＦＣＰ＿ＲＳＰフレームをサーバ２００−３に対して送信する（ステップＳ５２９）。
【０３３７】
ＳＡＮ８００−２に含まれるスイッチは、ＦＣＰ＿ＲＳＰフレームを受信すると、当該フレームをネットワーク装置１００−２に転送する。
【０３３８】
ネットワーク装置１００−２は、ＦＣＰ＿ＲＳＰフレームを受信すると、当該ＦＣＰ＿ＲＳＰフレームをサーバ２００−３に転送して処理を終了する。
【０３３９】
前述のような処理によってＶＭ４００は、移行先と移行元のストレージの共有が可能となる。
【０３４０】
すなわち、ライブマイグレーション処理後において、ネットワーク装置１００は、読み出し要求を受けると、移行先の拠点５００、すなわち自拠点５００のストレージ３００に存在するデータについては自拠点５００のストレージ３００から読み出し、自拠点５００のストレージ３００に存在しないデータについては移行元の拠点５００のストレージ３００から読み出すように制御する。これによって、移行元のストレージ３００に格納されたデータを移行先でも共有することが可能となる。
【０３４１】
また、ネットワーク装置１００は、一度読み出されたデータを自拠点５００のストレージ３００に書き込みことによって、同一データを高速に読み出せるようにする。
【０３４２】
一方、ネットワーク装置１００は、書き込み要求を受けると、自拠点５００のストレージ３００及び他の拠点のストレージ３００の両方にデータを書き込むように制御する。これによって、移行先のストレージ３００における更新データが、移行元のストレージ３００にも反映されるため、データの整合性を保つことができる。
【０３４３】
次に、ネットワーク装置１００の処理について説明する。
【０３４４】
図２６及び図２７は、本発明の実施形態のネットワーク装置１００−２が実行する処理を説明するフローチャートである。
【０３４５】
図２６は、図２５Ａに示すシーケンス図におけるネットワーク装置１００−２の処理の流れを示す。図２７は、図２５Ｂに示すシーケンス図におけるネットワーク装置１００−２の処理の流れを示す。
【０３４６】
まず、図２６を用いて書き込み処理について説明する。
【０３４７】
ネットワーク装置１００−２は、サーバ２００−３からデータの書き込みを示すＦＣＰ＿ＣＭＮＤフレームを受信すると、ＦＣＰ＿ＣＭＮＤフレームを解析する。具体的には以下のような処理が実行される。
【０３４８】
まず、ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームを受信したサーバ＿ＩＦ１４０を特定し、特定されたサーバ＿ＩＦ１４０の識別子を取得する。また、ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームを解析して、Ｄ＿ＩＤ１１２０、及びＳ＿ＩＤ１１３０を取得する。
【０３４９】
ネットワーク装置１００−２は、接続管理テーブル９１０から、取得されたサーバ＿ＩＦ１４０の識別子、Ｄ＿ＩＤ１１２０、及びＳ＿ＩＤ１１３０に一致するエントリを検索する。
【０３５０】
ネットワーク装置１００−２は、検索されたエントリの状態９１５が「ｎｏ」であるか否かを判定する。ここでは、エントリの状態９１５が「Ｄｅｓｔｉｎａｔｉｏｎ」であるため、検索されたエントリの状態９１５が「ｎｏ」でないと判定される。
【０３５１】
また、エントリの状態９１５が「Ｄｅｓｔｉｎａｔｉｏｎ」であるため、ネットワーク装置１００−２は、移行元及び移行先のストレージ３００にフレームを転送する必要があると判定する。
【０３５２】
なお、ネットワーク装置１００−２は、解析結果として、ＣＤＢ１２３０の情報も合わせて取得する。
【０３５３】
次に、ネットワーク装置１００−２は、当該ＦＣＰ＿ＣＭＮＤフレームをＳＡＮ８００−２に含まれるスイッチに転送する（ステップＳ６０１）。また、ネットワーク装置１００−２は、接続管理テーブル９１０を参照してＬＵＮが登録されているか否かを判定する（ステップＳ６０２）。ステップＳ６０２の処理はステップ２２２と同一であるため説明を省略する。
【０３５４】
ＬＵＮが登録させていると判定された場合、ネットワーク装置１００は、ステップＳ６０４に進む。
【０３５５】
ＬＵＮが登録されていないと判定された場合、ネットワーク装置１００は、対応するエントリのＬＵＮ９１４にＬＵＮを格納する（ステップＳ６０３）。なお、ステップＳ６０３の処理は、ステップＳ２２３と同一であるため説明を省略する。
【０３５６】
ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームをカプセル化してＦＣＩＰパケットに変換し、当該ＦＣＩＰパケットをネットワーク装置１００−１に対して転送する（ステップＳ６０４）。具体的には、以下のような処理が実行される。
【０３５７】
ネットワーク装置１００−２は、変換テーブル９５０から、サーバポート９５３及びストレージポート９５４が、取得されたＳ＿ＩＤ１１３０及びＤ＿ＩＤ１１２０と一致するエントリを検索する。ネットワーク装置１００−２は、検索されたエントリの転送先＿ＩＰ９５９を取得する。
【０３５８】
ネットワーク装置１００−２は、取得された転送先＿ＩＰ９５９のＩＰアドレスを宛先としてＩＰヘッダに含め、当該ＩＰヘッダを付与することによってＦＣＰ＿ＣＭＮＤフレームをＦＣＩＰパケットに変換する。
【０３５９】
ネットワーク装置１００−２は、変換されたＦＣＩＰパケットをネットワーク装置１００−１に転送する。ここでは、ネットワーク装置１００−１のＩＰアドレス「２００．１．２．１」宛にＦＣＩＰパケットが転送される。
【０３６０】
以上がステップＳ６０４の処理である。
【０３６１】
次に、ネットワーク装置１００−２は、ストレージ３００−３及びストレージ３００−１から送信されるＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを待つ（ステップＳ６０５）。
【０３６２】
ネットワーク装置１００−２は、ストレージ３００−３及びストレージ３００−１のそれぞれからＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると、接続管理テーブル９１０を参照して、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームをサーバ２００−３に転送する（ステップＳ６０６）。具体的には以下のような処理が実行される。
【０３６３】
まず、ネットワーク装置１００−２は、ネットワーク装置１００−１から受信したＦＣＩＰパケットをデカプセル化してＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームに変換する。
【０３６４】
ネットワーク装置１００−２は、変換されたＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを解析してＤ＿ＩＤ１１２０及びＳ＿ＩＤ１１３０を取得する。
【０３６５】
ネットワーク装置１００−２は、接続管理テーブル９１０から、サーバポート９１２及びストレージポート９１３が、取得されたＳ＿ＩＤ１１３０及びＤ＿ＩＤ１１２０と一致するエントリを検索する。ネットワーク装置１００−２は、検索されたエントリのサーバ＿ＩＦ＿ＩＤ９１１を取得する。
【０３６６】
ネットワーク装置１００−２は、取得されたサーバ＿ＩＦ＿ＩＤ９１１に対応するサーバ＿ＩＦ１４０を特定し、当該サーバ＿ＩＦ１４０に接続されるサーバ２００−３にＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを転送する。
【０３６７】
以上がステップＳ６０６の処理である。
【０３６８】
次に、ネットワーク装置１００−２は、ＦＣＰ＿ＤＡＴＡフレームを受信すると（ステップＳ６０７）、転送する必要があるか否かを判定する。具体的には、ステップＳ６００と同一の処理が実行される。ここでは、エントリの状態９１５が「Ｄｅｓｔｉｎａｔｉｏｎ」であるため、転送する必要があると判定される。
【０３６９】
したがって、ネットワーク装置１００−２は、ＦＣＰ＿ＤＡＴＡフレームをＳＡＮ８００−２に含まれるスイッチ、及び、ネットワーク装置１００−１に転送する（ステップＳ６０８）。なお、ステップＳ６０８の処理は、ステップＳ６０１及びステップＳ６０４と同一であるため説明を省略する。
【０３７０】
ネットワーク装置１００−２は、ストレージ３００−３及びストレージ３００−１からＦＣＰ＿ＲＳＰフレームを受信するまで待つ（ステップＳ６０９）。
【０３７１】
ネットワーク装置１００−２は、ストレージ３００−３及びストレージ３００−１のそれぞれからＦＣＰ＿ＲＳＰフレームを受信すると、接続管理テーブル９１０を参照してＦＣＰ＿ＲＳＰフレームをサーバ２００−３に転送する（ステップＳ６１０）。なお、ステップＳ６１０の処理は、ステップＳ６０６と同一であるため説明を省略する。
【０３７２】
ネットワーク装置１００−２は、ビットマップを更新し（ステップＳ６１１）、処理を終了する。具体的には以下のような処理が実行される。
【０３７３】
ネットワーク装置１００−２は、ステップＳ６００において取得されたＣＤＢ１２３０のＬＢＡ１２３２及びＴｒａｎｓｆｅｒ＿ｌｅｎｇｔｈ１２３３に基づいて、データが書き込まれた領域を特定する。
【０３７４】
ネットワーク装置１００−２は、特定された領域のブロックに対応するビットにチェックを入れる。
【０３７５】
以上がステップＳ６１１の処理である。
【０３７６】
次に、図２７を用いて読み出し処理について説明する。
【０３７７】
ネットワーク装置１００−２は、サーバ２００−３からデータの読み出しを示すＦＣＰ＿ＣＭＮＤフレームを受信すると、読み出しの対象となるデータがストレージ３００−３に格納されているか否かを判定する（ステップＳ６２０）。具体的には以下のような処理が実行される。
【０３７８】
まず、ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームを受信したサーバ＿ＩＦ１４０を特定し、特定されたサーバ＿ＩＦ１４０の識別子を取得する。また、ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームを解析して、Ｄ＿ＩＤ１１２０、及びＳ＿ＩＤ１１３０を取得する。
【０３７９】
ネットワーク装置１００−２は、接続管理テーブル９１０から、取得されたサーバ＿ＩＦ１４０の識別子、Ｄ＿ＩＤ１１２０、及びＳ＿ＩＤ１１３０に一致するエントリを検索する。
【０３８０】
ネットワーク装置１００−２は、検索されたエントリの状態９１５が「ｎｏ」であるか否かを判定する。ここでは、エントリの状態９１５が「Ｄｅｓｔｉｎａｔｉｏｎ」であるため、検索されたエントリの状態９１５が「ｎｏ」でないと判定される。
【０３８１】
ネットワーク装置１００−２は、エントリの状態９１５が「Ｄｅｓｔｉｎａｔｉｏｎ」であるため、移行先のストレージ３００−３にデータが格納されているか判定する。
【０３８２】
まず、ネットワーク装置１００−２は、検索されたエントリのビットマップ＿ＩＤ９１６から識別子を参照して、対応するビットマップを取得する。
【０３８３】
ネットワーク装置１００−２は、ＦＣＰ＿ＣＭＮＤフレームから、ＬＢＡ１２３２及びＴｒａｎｓｆｅｒ＿ｌｅｎｇｔｈ１２３３を取得する。ネットワーク装置１００−２は、取得されたＬＢＡ１２３２及びＴｒａｎｓｆｅｒ＿ｌｅｎｇｔｈ１２３３に基づいて読み出し対象のブロックを特定する。
【０３８４】
ネットワーク装置１００−２は、取得されたビットマップを参照して、特定されたブロックに対応するビットのすべてにチェックがあるか否かを判定する。
【０３８５】
対応するビットのすべてにチェックがある場合、ネットワーク装置１００−２は、読み出し対象となるデータがストレージ３００−３に格納されていると判定する。一方、一以上のビットにチェックがない場合、読み出し対象となるデータがストレージ３００−３に格納されていないと判定される。
【０３８６】
以上がステップＳ６２０の処理である。
【０３８７】
読み出しの対象となるデータがストレージ３００−３に格納されていないと判定された場合、ネットワーク装置１００−２は、変換テーブル９５０を参照し、ＦＣＰ＿ＣＭＮＤフレームをカプセル化したＦＣＩＰパケットをネットワーク装置１００−１に対して送信する（ステップＳ６２１）。
【０３８８】
これは、移行前のＶＭ３（４００−３）が使用していたストレージ３００−１からデータを取得するためである。なお、ＦＣＩＰパケットの変換及び送信先の決定方法は、ステップＳ６０４と同一であるため説明を省略する。
【０３８９】
ネットワーク装置１００−２は、ネットワーク装置１００−１から送信されるＦＣＰ＿ＤＡＴＡフレームの受信を待つ。
【０３９０】
ネットワーク装置１００−２は、ＦＣＰ＿ＤＡＴＡフレームがカプセル化されたＦＣＩＰパケットを受信すると（ステップＳ６２２）、当該ＦＣＩＰパケットをデカプセル化してＦＣＰ＿ＤＡＴＡフレームに変換する。
【０３９１】
ネットワーク装置１００−２は、変換テーブル９５０を参照して、サーバ２００−３に変換されたＦＣＰ＿ＤＡＴＡフレームを転送する（ステップＳ６２３）。また、ネットワーク装置１００−２は、ＦＣＰ＿ＤＡＴＡフレームをメモリ１２０上にバッファリングする（ステップＳ６２４）。なお、ＦＣＰ＿ＤＡＴＡフレームの転送方法は、ステップＳ６０６と同一であるため説明を省略する。
【０３９２】
ネットワーク装置１００−２は、読み出されたデータをストレージ３００−３に反映させるため、書き込みを示すＦＣＰ＿ＣＭＮＤフレームをストレージ３００−３に送信する（ステップＳ６２５）。なお、ネットワーク装置１００−２は、ステップＳ６２４の検索結果を用いることによって転送先のストレージ３００−３を特定できる。
【０３９３】
ネットワーク装置１００−２は、ストレージ３００−３からＦＣＰ＿ＸＦＥＲ＿ＲＤＹフレームを受信すると（ステップＳ６２６）、バッファリングされたＦＣＰ＿ＤＡＴＡフレームをストレージ３００−３に送信する（ステップＳ６２７）。
【０３９４】
ネットワーク装置１００−２は、ストレージ３００−３からＦＣＰ＿ＲＳＰフレームを受信すると（ステップＳ６２８）、ビットマップを更新し（ステップＳ６２９）、処理を終了する。具体的には、データが反映されたブロックに対応するビットが更新される。なお、更新するビットの特定方法は、ステップＳ６１１と同一の方法を用いればよい。
【０３９５】
ステップＳ６２０において、読み出しの対象となるデータがストレージ３００−３に格納されていると判定された場合、ネットワーク装置１００−２は、接続管理テーブル９１０を参照して、ＦＣＰ＿ＣＭＮＤフレームをストレージ３００−３に転送する（ステップＳ６３０）。
【０３９６】
ネットワーク装置１００−２は、ストレージ３００−３からＦＣＰ＿ＤＡＴＡフレームを受信すると（ステップＳ６３１）、接続管理テーブル９１０を参照して、サーバ２００−３に受信したＦＣＰ＿ＤＡＴＡフレームを転送する（ステップＳ６３２）。
【０３９７】
ネットワーク装置１００−２は、ストレージ３００−３からＦＣＰ＿ＲＳＰフレームを受信すると（ステップＳ６３３）、接続管理テーブル９１０を参照して、サーバ２００−３に受信したＦＣＰ＿ＲＳＰフレームを転送し（ステップＳ６３４）、処理を終了する。
【０３９８】
図２８は、本発明の実施形態におけるネットワーク装置１００−１が実行する処理を説明するフローチャートである。
【０３９９】
図２８では、図２５Ａ及び図２５Ｂに示すシーケンス図におけるネットワーク装置１００−１の処理の流れを示す。
【０４００】
ネットワーク装置１００−１は、ネットワーク装置１００−２からＩＰパケットを受信すると（ステップＳ７００）、ＦＣＰ＿ＣＭＮＤフレームがカプセル化されたＩＰパケットであるか否かを判定する（ステップＳ７０１）。
【０４０１】
具体的には、ネットワーク装置１００−１は、ＦＣＩＰパケットをデカプセル化してフレームに変換し、変換されたフレームがＦＣＰ＿ＣＭＮＤフレームであるか否かを判定する。なお、ネットワーク装置１００−２は、ＩＰヘッダから送り先のＩＰアドレスを取得する。
【０４０２】
ＦＣＰ＿ＣＭＮＤフレームでないと判定された場合、ネットワーク装置１００−１は、ステップＳ７０４に進む。
【０４０３】
ＦＣＰ＿ＣＭＮＤフレームであると判定された場合、ネットワーク装置１００−１は、当該フレームの転送先のＬＵＮが変換テーブル９５０に登録されているか否かを判定する（ステップＳ７０２）。具体的には以下のような処理が実行される。
【０４０４】
ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームを解析して、Ｓ＿ＩＤ１１３０、Ｄ＿ＩＤ１１２０を取得する。
【０４０５】
ネットワーク装置１００−１は、変換テーブル９５０の転送先９５２を参照して、取得されたＩＰアドレス、Ｓ＿ＩＤ１１３０及びＤ＿ＩＤ１１２０情報と一致するエントリを検索する。
【０４０６】
ネットワーク装置１００−１は、検索されたエントリのＬＵＮ９５８にＬＵＮが格納されているか否かを判定する。
【０４０７】
検索されたエントリのＬＵＮ９５８にＬＵＮが格納されている場合には、転送先のＬＵＮが変換テーブル９５０に登録されていると判定される。
【０４０８】
以上がステップＳ７０２の処理である。
【０４０９】
転送先のＬＵＮが変換テーブル９５０に登録されていると判定された場合、ネットワーク装置１００−１は、ステップＳ７０４に進む。
【０４１０】
転送先のＬＵＮが変換テーブル９５０に登録されていていないと判定された場合、ネットワーク装置１００−１は、対応するエントリのＬＵＮ９５８に、ＦＣＰ＿ＣＭＮＤフレームのＬＵＮ１２２０を格納する（ステップＳ７０３）。
【０４１１】
ネットワーク装置１００−１は、変換テーブル９５０を参照して、ＦＣＰ＿ＣＭＮＤフレームを変換する（ステップＳ７０４）。具体的には、以下のような処理を実行する。
【０４１２】
ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームを解析して、変換テーブル９５０の転送先９５２を参照して、対応するエントリを検索する。なお、検索方法はステップＳ７０２と同一の方法であるため説明を省略する。
【０４１３】
ネットワーク装置１００−１は、対応するエントリのサーバポート９５３、ストレージポート９５４、及びＬＵＮ９５５を取得する。
【０４１４】
ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームのＳ＿ＩＤ１１３０の値を、取得されたストレージポート９５４の値に変換する。ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームのＤ＿ＩＤ１１２０の値を、取得されたサーバポート９５３の値に変換する。さらに、ネットワーク装置１００−１は、ＦＣＰ＿ＣＭＮＤフレームのＬＵＮ１２２０の値を、取得されたＬＵＮ９５５の値に変換する。
【０４１５】
以上がステップＳ７０４の処理である。
【０４１６】
ネットワーク装置１００−１は、変換されたＦＣＰ＿ＣＭＮＤフレームをＳＡＮ８００−１に含まれるスイッチに転送し（ステップＳ７０５）、処理を終了する。
【０４１７】
図２９は、本発明の実施形態におけるネットワーク装置１００−１が実行する処理を説明するフローチャートである。
【０４１８】
図２９では、図２５Ａ及び図２５Ｂに示すシーケンス図におけるネットワーク装置１００−１の処理の流れを示す。
【０４１９】
ネットワーク装置１００−１は、ＳＡＮ８００−１に含まれるスイッチからフレームを受信すると（ステップＳ７１０）、フレームを解析して転送する必要があるか否かを判定する。なお、判定処理はステップＳ６００と同一である。ここでは、転送する必要があると判定されたものとする。
【０４２０】
ネットワーク装置１００−１は、変換テーブル９５０を参照して受信したフレームをＦＣＩＰパケットに変換する（ステップＳ７１１）。具体的には以下のような処理が実行される。
【０４２１】
ネットワーク装置１００−１は、受信したフレームを解析して、Ｓ＿ＩＤ１１３０及びＤ＿ＩＤ１１２０を取得する。ネットワーク装置１００−１は、変換テーブル９５０の転送元９５１を参照して、取得されたＳ＿ＩＤ１１３０及びＤ＿ＩＤ１１２０と一致するエントリを検索する。
【０４２２】
ネットワーク装置１００−１は、検索されたエントリからサーバポート９５６、ストレージポート９５７、及び転送先＿ＩＰ９５９を取得する。
【０４２３】
ネットワーク装置１００−１は、受信したフレームのＳ＿ＩＤ１１３０に取得されたストレージポート９５７の値を格納し、また、Ｄ＿ＩＤ１１２０に取得されたサーバポート９５６を格納する。
【０４２４】
さらに、ネットワーク装置１００−１は、受信したフレームをカプセル化してＦＣＩＰパケットに変換し、当該ＦＣＩＰパケットの送信先のアドレスに取得された転送先＿ＩＰ９５９を格納する。
【０４２５】
以上がステップＳ７１１の処理である。
【０４２６】
ネットワーク装置１００−１は、変換されたＦＣＩＰパケットをネットワーク装置１００−２に転送し（ステップＳ７１２）、処理を終了する。
【０４２７】
［元のサーバへＶＭを移行する場合の処理］
次に、再度、移行元にＶＭ４００に移行させるライブマイグレーション処理について説明する。
【０４２８】
図３０Ａ及び３０Ｂは、本発明の実施形態におけるライブマイグレーション実行後に再度実行されるライブマイグレーション処理の流れを説明するシーケンス図である。
【０４２９】
サーバ２００−３は、ＶＭ３（４００−３）のライブマイグレーションの開始メッセージを含むＩＰパケットをサーバ２００−１に対して送信する（ステップＳ８００）。当該ＩＰパケットには、移行元としてサーバ２００−３のＩＰアドレスが格納され、また移行先としてサーバ２００−１のＩＰアドレスが格納される。
【０４３０】
ネットワーク装置１００−２は、ＷＡＮ６００を介して受信したＩＰパケットをネットワーク装置１００−１に転送する。このとき、ネットワーク装置１００−２は、監視テーブル９４０及び接続管理テーブル９１０を更新する（ステップＳ８０１、ステップＳ８０２）。具体的な更新処理については図３１を用いて後述する。
【０４３１】
なお、ネットワーク装置１００−２は、ＬＡＮ＿ＩＦ１３０からＩＰパケットを受信しているため、ネットワーク装置１００−２が属する拠点が移行元であることを認識できる。
【０４３２】
ネットワーク装置１００−２は、監視テーブル９４０を参照することによって、ライブマイグレーションの対象となるサーバ２００間で送受信されるフレーム及びＩＰパケットを判別することができる。
【０４３３】
ネットワーク装置１００−１は、ＩＰパケットを受信すると、移行先のサーバ２００−１に当該ＩＰパケットを転送する。このとき、ネットワーク装置１００−１は、監視テーブル９４０を更新する（ステップＳ８０３）。具体的な更新処理については図３３を用いて後述する。
【０４３４】
ネットワーク装置１００−１は、監視テーブル９４０を参照することによって、ライブマイグレーションの対象となるサーバ２００間で送受信されるフレーム及びＩＰパケットを判別することができる。
【０４３５】
なお、ネットワーク装置１００−１は、ＷＡＮ＿ＩＦ１６０からＩＰパケットを受信しているため、ネットワーク装置１００−１が属する拠点が移行先であることを認識できる。
【０４３６】
サーバ２００−１は、ＩＰパケットを受信すると、ＶＭ３（４００−３）に割り当てる記憶領域を確保するためにＰＬＯＧＩフレームをネットワーク装置１００−１に送信する（ステップＳ８０４）。なお、ＰＬＯＧＩフレームのＳ＿ＩＤ１１３０には、移行前のＶＭ３（４００−３）が使用していたポートアドレスが含まれ、ＰＬＯＧＩフレームのＤ＿ＩＤ１１２０には移行前のＶＭ３（４００−３）が使用していたストレージポートが格納される。ハイパバイザ２５０は、マイグレーション前にログインしていたストレージ３００の情報を保持しており、当該情報を用いてログイン処理が実行される。
【０４３７】
ネットワーク装置１００−１は、ＰＬＯＧＩフレームを受信すると、ＡＣＣフレームをサーバ２００−１に送信する（ステップＳ８０５）。このとき、ネットワーク装置１００−２は、ＰＬＯＧＩフレームを解析することによって、移行前のＶＭ３（４００−３）に割り当てられていたストレージ３００−１が存在することを認識できる。
【０４３８】
また、ネットワーク装置１００−１は、接続管理テーブル９１０、及び変換テーブル９５０を更新する（ステップＳ８０６、Ｓ８０７）。具体的な更新処理については図３３を用いて後述する。
【０４３９】
ネットワーク装置１００−１は、ＷＡＮ６００を介して切り戻し通知を含むＩＰパケットをネットワーク装置１００−２に対して送信する（ステップＳ８０８）。また、ネットワーク装置１００−１は、監視テーブル９４０を更新する（ステップＳ８０９）。
【０４４０】
ネットワーク装置１００−２は、切り戻し通知を含むＩＰパケットを受信すると、接続管理テーブル９１０、変換テーブル９５０、及び監視テーブル９４０を更新する（ステップＳ８１０、ステップＳ８１２、ステップＳ８１３）。具体的な更新処理については図３１を用いて後述する。
【０４４１】
また、ネットワーク装置１００−２は、ビットマップを削除する（ステップＳ８１１）。
【０４４２】
その後、ライブマイグレーション処理が実行される（ステップＳ８１４）。ライブマイグレーション処理では、ハイパバイザ２５０がメモリ２２０上で管理するＶＭ３（４００−３）の情報を、移行先のサーバ２００−１に転送する。なお、ライブマイグレーション処理は、公知の技術であるため説明を省略する。当該処理によって、ＶＭ３（４００−３）が、サーバ２００−３からサーバ２００−１に瞬時に移行される。
【０４４３】
サーバ２００−３は、ライブマイグレーション処理の完了後、ＰＬＯＧＯフレームをストレージ３００−３に対して送信する（ステップＳ８１５）。これは、ＶＭ３（４００−３）に割り当てられた記憶領域を開放するための処理である。
【０４４４】
ネットワーク装置１００−１は、ＰＬＯＧＯフレームを受信すると、当該フレームをストレージ３００−３に転送する。
【０４４５】
ストレージ３００−３は、ＰＬＯＧＯフレームを受信すると、ＡＣＣフレームをサーバ２００−１に対して送信する（ステップＳ８１６）。
【０４４６】
ネットワーク装置１００−２は、ＡＣＣフレームを受信すると、接続管理テーブル９１０を更新し（ステップＳ８１７）、当該フレームをサーバ２００−３に転送する。
【０４４７】
なお、ステップＳ８１５、ステップＳ８１６、及びステップＳ８１７の処理は、ステップＳ１０３、ステップＳ１０４、及びステップＳ１０５と同一の処理であるため説明を省略する。
【０４４８】
次に、ネットワーク装置１００の処理について説明する。
【０４４９】
図３１は、本発明の実施形態のネットワーク装置１００−２が実行する処理を説明するフローチャートである。
【０４５０】
ネットワーク装置１００−２は、ライブマイグレーションの開始メッセージを含むＩＰパケットを受信すると（ステップＳ９００）、当該ＩＰパケットを解析する。具体的には、ネットワーク装置１００−２は、ＩＰパケットから送信元のサーバ２００−３のＩＰアドレス及び送信先のサーバ２００−１のＩＰアドレスを取得する。
【０４５１】
ここで、ネットワーク装置１００−２は、ＬＡＮ＿ＩＦ１３０を介して当該ＩＰパケットを受信しているため、ネットワーク装置１００−２が属する拠点５００−２が移行元であることが分かる。
【０４５２】
ネットワーク装置１００−２は、ＷＡＮ６００を介して受信したＩＰパケットをネットワーク装置１００−１に転送する（ステップＳ９０１）。
【０４５３】
ネットワーク装置１００−２は、監視テーブル９４０に新たなエントリを追加する（ステップＳ９０２）。具体的には、以下のような処理が実行される。
【０４５４】
ネットワーク装置１００−２は、監視テーブル９４０にエントリを生成し、当該エントリのソース＿ＩＰ９４１に取得されたサーバ２００−３のＩＰアドレスを格納し、また、宛先＿ＩＰ９４２に取得されたサーバ２００−１のＩＰアドレスを格納する。
【０４５５】
また、ネットワーク装置１００−２は、生成されたエントリの属性９４３に「Ｓｏｕｒｃｅ」を格納する。
【０４５６】
図３２は、ステップＳ９０２の処理が完了した後の監視テーブル９４０の状態を示す。
【０４５７】
以上がステップＳ９０２における更新処理である。
【０４５８】
次に、ネットワーク装置１００−２は、接続管理テーブル９１０を更新する（ステップＳ９０３）。具体的には、以下のような処理が実行される。
【０４５９】
ネットワーク装置１００−２は、サーバ管理テーブル９３０からサーバ＿ＩＰ９３２がソース＿ＩＰ９４１と一致するエントリを検索する。ネットワーク装置１００−１は、検索されたエントリからサーバ＿ＩＦ＿ＩＤ９３１を取得する。
【０４６０】
ネットワーク装置１００−２は、接続管理テーブル９１０からサーバ＿ＩＦ＿ＩＤ９１１が取得されたサーバ＿ＩＦ＿ＩＤ９３１と一致するエントリを検索する。
【０４６１】
ネットワーク装置１００−２は、検索されたエントリの状態９１５が「ｎｏ」であるか否かを判定する。
【０４６２】
検索されたエントリの状態９１５が「ｎｏ」であると判定された場合、ネットワーク装置１００−２は、状態９１５を「実行中」に変更する。検索されたエントリの状態９１５が「ｎｏ」でないと判定された場合、ネットワーク装置１００−２は、状態９１５の変更を行わない。
【０４６３】
以上がステップＳ９０３の更新処理である。
【０４６４】
ネットワーク装置１００−２は、ＩＰパケットを転送した後、ネットワーク装置１００−１装置からの応答を待つ。
【０４６５】
ネットワーク装置１００−２は、切り戻し通知を含むＩＰパケットを受信すると（ステップＳ９０４）、接続管理テーブル９１０を更新する（ステップＳ９０５）。具体的には、以下のような処理が実行される。
【０４６６】
ネットワーク装置１００−２は、ＩＰパケットを解析して、宛先のＩＰアドレス、サーバポート、ストレージポート、及びＬＵＮを取得する。
【０４６７】
ネットワーク装置１００−２は、サーバ管理テーブル９３０から、サーバ＿ＩＰ９３２が取得されたＩＰアドレスと一致するエントリを検索する。ネットワーク装置１００−２は、検索されたエントリからサーバ＿ＩＦ＿ＩＤ９３１を取得する。
【０４６８】
ネットワーク装置１００−２は、接続管理テーブル９１０から、取得されたサーバ＿ＩＦ＿ＩＤ９３１、サーバポート、ストレージポート、及びＬＵＮと一致するエントリを検索する。さらに、ネットワーク装置１００−２は、検索されたエントリの中から状態９１５を「Ｄｅｓｔｉｎａｔｉｏｎ」であるエントリを検索する。
【０４６９】
ネットワーク装置１００−２は、検索されたエントリの状態９１５を「Ｄｅｓｔｉｎａｔｉｏｎ」から「ｎｏ」に変更し、また、ビットマップ＿ＩＤ９１６から識別子を削除する。
【０４７０】
以上がステップＳ９０５の更新処理である。
【０４７１】
次に、ネットワーク装置１００−２は、ビットマップ＿ＩＤ９１６と対応するビットマップを削除する（ステップＳ９０６）。
【０４７２】
ネットワーク装置１００−２は、変換テーブル９５０から対応するエントリを削除する（ステップＳ９０７）。具体的には以下のような処理が実行される。
【０４７３】
ネットワーク装置１００−２は、変換テーブル９５０の転送元９５１を参照して、取得されたサーバポート、ストレージポート、及びＬＵＮと一致するエントリを検索する。
【０４７４】
ネットワーク装置１００−２は、検索されたエントリを変換テーブル９５０から削除する。
【０４７５】
以上がステップＳ９０７の処理である。
【０４７６】
次に、ネットワーク装置１００−２は、監視テーブル９４０から対応するエントリを削除する（ステップＳ９０８）。その後、ネットワーク装置１００−２は、ＰＬＯＧＯフレームを待つ。
【０４７７】
ネットワーク装置１００−２は、ＰＬＯＧＯフレームを受信すると、ログアウト処理を実行し、処理を終了する（ステップＳ９０９）。なお、ログアウト処理は、図１４と同一の処理であるため説明を省略する。
【０４７８】
移行元に再度移行させる場合、移行先のストレージ３００に格納されるデータは移行されない。これは、ネットワーク装置１００が、移行元のストレージ３００にも同様の更新データが反映することによって、移行先のストレージに格納されるデータとの整合性が保たれているためである。したがって、移行先のデータを移行させる必要がない。
【０４７９】
図３３は、本発明の実施形態のネットワーク装置１００−１が実行する処理を説明するフローチャートである。
【０４８０】
ネットワーク装置１００−１は、ライブマイグレーションの開始メッセージを含むＩＰパケットを受信すると（ステップＳ９２０）、当該ＩＰパケットを解析する。具体的には、ネットワーク装置１００−１は、ＩＰパケットから送信元のサーバ２００−３のＩＰアドレス及び送信先のサーバ２００−１のＩＰアドレスを取得する。
【０４８１】
ここで、ネットワーク装置１００−１は、ＷＡＮ＿ＩＦ１６０を介して当該ＩＰパケットを受信しているため、ネットワーク装置１００−１が属する拠点５００−１が移行先であることが分かる。
【０４８２】
ネットワーク装置１００−１は、ＬＡＮ７００−１を介して受信したＩＰパケットをサーバ２００−１に転送する（ステップＳ９２１）。
【０４８３】
ネットワーク装置１００−１は、監視テーブル９４０に新たなエントリを追加する（ステップＳ９２２）。具体的には、以下のような処理が実行される。
【０４８４】
ネットワーク装置１００−１は、監視テーブル９４０にエントリを生成し、当該エントリのソース＿ＩＰ９４１に取得されたサーバ２００−３のＩＰアドレスを格納し、また、宛先＿ＩＰ９４２に取得されたサーバ２００−１のＩＰアドレスを格納する。
【０４８５】
また、ネットワーク装置１００−２は、生成されたエントリの属性９４３に「Ｄｅｓｔｉｎａｔｉｏｎ」を格納する。
【０４８６】
図３４は、ステップＳ９２２の処理が完了した後の監視テーブル９４０の状態を示す。
【０４８７】
以上がステップＳ９２２における更新処理である。その後、ネットワーク装置１００−１は、ＰＬＯＧＩフレームを待つ。
【０４８８】
ネットワーク装置１００−１は、ＰＬＯＧＩフレームを受信すると（ステップＳ９２３）、接続管理テーブル９１０を更新する（ステップＳ９２４）。具体的には以下のような処理が実行される。
【０４８９】
ネットワーク装置１００−１は、ＰＬＯＧＩフレームを解析して、サーバポート、ストレージポート、及びＬＵＮを取得する。
【０４９０】
ネットワーク装置１００−１は、接続管理テーブル９１０から、取得されたサーバポート、ストレージポート、及びＬＵＮと一致するエントリを検索する。ネットワーク装置１００−１は、検索されたエントリの状態９１５が「ｎｏ」であるか否かを判定する。
【０４９１】
検索されたエントリの状態９１５が「ｎｏ」である場合は通常のログイン処理（図１２）が実行される。一方、エントリの状態９１５が「Ｓｏｕｒｃｅ」であると判定された場合、ネットワーク装置１００−１は、状態９１５を「Ｓｏｕｒｃｅ」から「ｎｏ」に変更し、ログイン処理を行わずにＡＣＣフレームを送信することになる。
【０４９２】
なお、ここでは、状態９１５が「Ｓｏｕｒｃｅ」であるため、検索されたエントリの状態９１５が「ｎｏ」でないと判定される。
【０４９３】
以上がステップＳ９２４の処理である。
【０４９４】
次に、ネットワーク装置１００−１は、ＡＣＣフレームをサーバ２００−１に送信する（ステップＳ９２５）。ここでは、ＶＭ３（４００−３）に割り当てられていたストレージ３００−１をそのまま用いるため、ＰＬＯＧＩフレームはストレージ３００−１に転送されない。すなわち、通常のログイン処理を省略できる。
【０４９５】
ネットワーク装置１００−１は、変換テーブル９５０から対応するエントリを削除する（ステップＳ９２６）。具体的には以下のような処理が実行される。
【０４９６】
ネットワーク装置１００−１は、変換テーブル９５０を参照して、取得されたストレージポート、及びサーバ２００−１のＩＰアドレスと一致するエントリを検索する。
【０４９７】
ネットワーク装置１００−１は、検索されたエントリを変換テーブル９５０から削除する。
【０４９８】
以上がステップＳ９２６の処理である。
【０４９９】
次に、ネットワーク装置１００−１は、切り戻し通知を含むＩＰパケットをネットワーク装置１００−２に対して送信する（ステップＳ９２７）。なお、切り戻し通知には、サーバポート９１２及びストレージポート９１３が含まれる。
【０５００】
ネットワーク装置１００−１は、監視テーブル９４０から対応するエントリを削除し（ステップＳ９２８）、処理を終了する。
【０５０１】
なお本実施形態におけるフローチャートを用いて説明した処理の順番は、整合性が保たれる範囲で入れ替え可能である。例えば、フレームの転送処理と、接続管理テーブル９１０の更新処理とは入れ替えることができる。
【０５０２】
本発明の一形態によれば、ライブマイグレーション処理に伴って、ネットワーク装置１００が、移行先のＶＭ４００が移行元のストレージ３００にアクセスできるように制御できるため、物理的に離れた拠点間のライブマイグレーション処理を実現できる。
【０５０３】
また、本実施形態におけるライブマイグレーション処理では、ストレージ３００に格納されたデータは移行させないため、瞬時にＶＭ４００を移行することができる。また、予めストレージ３００のデータを移行先のストレージに反映する必要がないため、ネットワーク負荷をかけることがない。
【０５０４】
また、ネットワーク装置１００が、移行先のストレージ３００において更新されたデータを移行元のストレージにも反映することによって、元のサーバ２００にＶＭ４００を移行させた後もデータとの整合性が保たれる。
【０５０５】
また、移行後のＶＭ４００からのアクセス要求に対して、ネットワーク装置１００が移行元のストレージ３００及び移行先のストレージ３００にアクセスできるように制御しているため、既存のハイパバイザ２５０の構成を変更する必要がない。また、ハイパバイザ２５０の処理負荷をあげることなくライブマイグレーション処理が実現できる。
【０５０６】
［変形例］
ネットワーク装置１００−１が、ＶＭ４００とストレージ３００との間のアクセス処理を実行していたが、ハイパバイザ２５０が同様の処理を実行してもよい。具体的には、ハイパバイザ２５０が、アクセス処理部９００、接続管理テーブル９１０、拠点接続管理テーブル９２０、サーバ管理テーブル９３０、監視テーブル９４０、及び変換テーブル９５０を備えていてもよい。
【０５０７】
なお、ハイパバイザ２５０は、アクセス処理に必要な情報をネットワーク装置１００に問い合わせることによって取得でき、当該情報を用いて同様の処理を実現できる。
【０５０８】
また、ネットワークシステムにアクセス処理部９００を備える計算機を備える構成でもよい。この場合、アクセス処理部９００を備える計算機が、各拠点のネットワーク装置１００から必要な情報を取得することによって、同様の処理が実現できる。
【符号の説明】
【０５０９】
１００  ネットワーク装置
１１０  プロセッサ
１２０  メモリ
１３０  ＬＡＮ＿ＩＦ
１４０  サーバ＿ＩＦ
１５０  ＳＡＮ＿ＩＦ
１６０  ＷＡＮ＿ＩＦ
２００  サーバ
２１０  プロセッサ
２２０  メモリ
２３０  ＬＡＮ＿ＩＦ
２４０  Ｉ／Ｏ＿ＩＦ
２５０  ハイパバイザ
３００  ストレージ
４００  ＶＭ
５００  拠点
６００  ＷＡＮ
７００  ＬＡＮ
８００  ＳＡＮ
９００  アクセス処理部
９１０  接続管理テーブル
９２０  拠点接続管理テーブル
９２１  サーバ＿ＩＰ
９３０  サーバ管理テーブル
９４０  監視テーブル
９５０  変換テーブル
【図２】
0005643990.tif 000002
【図３】
0005643990.tif 000003
【図４】
0005643990.tif 000004
【図５Ａ】
0005643990.tif 000005
【図５Ｂ】
0005643990.tif 000006
【図６Ａ】
0005643990.tif 000007
【図６Ｂ】
0005643990.tif 000008
【図７Ａ】
0005643990.tif 000009
【図７Ｂ】
0005643990.tif 000010
【図８Ａ】
0005643990.tif 000011
【図８Ｂ】
0005643990.tif 000012
【図９】
0005643990.tif 000013
【図１０】
0005643990.tif 000014
【図１１】
0005643990.tif 000015
【図１２】
0005643990.tif 000016
【図１３】
0005643990.tif 000017
【図１４】
0005643990.tif 000018
【図１５Ａ】
0005643990.tif 000019
【図１５Ｂ】
0005643990.tif 000020
【図１６】
0005643990.tif 000021
【図１７】
0005643990.tif 000022
【図１８】
0005643990.tif 000023
【図１９】
0005643990.tif 000024
【図２０】
0005643990.tif 000025
【図２１】
0005643990.tif 000026
【図２２】
0005643990.tif 000027
【図２３】
0005643990.tif 000028
【図２４】
0005643990.tif 000029
【図２５Ａ】
0005643990.tif 000030
【図２５Ｂ】
0005643990.tif 000031
【図２６】
0005643990.tif 000032
【図２７】
0005643990.tif 000033
【図２８】
0005643990.tif 000034
【図２９】
0005643990.tif 000035
【図３０Ａ】
0005643990.tif 000036
【図３０Ｂ】
0005643990.tif 000037
【図３１】
0005643990.tif 000038
【図３２】
0005643990.tif 000039
【図３３】
0005643990.tif 000040
【図３４】
0005643990.tif 000041
【図１】
0005643990.tif 000042