JP5643990B2 - ネットワーク装置及びネットワークシステム - Google Patents

ネットワーク装置及びネットワークシステム Download PDF

Info

Publication number
JP5643990B2
JP5643990B2 JP2011167104A JP2011167104A JP5643990B2 JP 5643990 B2 JP5643990 B2 JP 5643990B2 JP 2011167104 A JP2011167104 A JP 2011167104A JP 2011167104 A JP2011167104 A JP 2011167104A JP 5643990 B2 JP5643990 B2 JP 5643990B2
Authority
JP
Japan
Prior art keywords
network device
identifier
computer
virtual machine
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011167104A
Other languages
English (en)
Other versions
JP2013030085A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2011167104A priority Critical patent/JP5643990B2/ja
Priority to US13/553,656 priority patent/US8972988B2/en
Publication of JP2013030085A publication Critical patent/JP2013030085A/ja
Application granted granted Critical
Publication of JP5643990B2 publication Critical patent/JP5643990B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Description

拠点間の異なる計算機へのライブマイグレーション処理を実現するネットワーク装置及びネットワークシステムに関する。
近年、サーバのハードウェア資源を効率的に活用するために、サーバが備えるハードウェアを仮想化し、仮想化されたハードウェアを用いて複数のOS(Operation System)を動作させる仮想計算機技術が実用化されている。仮想計算機技術では、計算資源、メモリ資源、及びI/O資源の管理とスケジュールが必要となる。これを制御するプログラムがハイパバイザである。
ハイパバイザが備える機能としてライブマイグレーションが知られている。ライブマイグレーションを用いることで、仮想計算機は無停止でサーバ間を移行することができる。これによって、システム全体で負荷分散、ハードウェア資源の集約、サーバのメンテナンスなどを、サービスを止めることなく実現することができる。
ライブマイグレーションを実現するためには移行元サーバと移行先サーバが共有できる記憶領域があることが前提条件となる。ライブマイグレーションでは仮想計算機が使用する仮想メモリの情報及びレジスタ情報が移行対象であり、大容量のストレージ領域は移行対象とならないためである。したがって、このような前提条件から物理的に離れた拠点に配置されたサーバ間のライブマイグレーションは実現が難しかった。
前述した課題を解決するために、拠点間を高速な専用線を用いて接続し、移行元の記憶領域と移行先の記憶領域とを同期させる方法が考えられる。しかし、当該方法は、常に、移行元の拠点と移行先の拠点において記憶領域を確保する必要がある。また、当該方法は、拠点間のネットワーク帯域にも常に負荷がかかり、運用コストが高くなるという欠点がある。
前述した課題を解決する方法として、例えば、特許文献1に記載の方法が知られている。特許文献1に記載の方法では、仮想計算機が利用しているストレージ領域を無停止で移行する手段をハイパバイザが実現している。すなわち、ライブマイグレーションの前処理としてストレージ領域に格納されるデータを移動させた後、ハイパバイザが、ライブマイグレーションを実行することによって、拠点間の仮想計算機を停止することなく移行を実現している。
米国特許出願公開第2009/0037680号明細書
しかし、特許文献1に記載の方法では、移行対象となるストレージ領域が大きい場合、ストレージ領域に対する更新頻度が高い場合、又は拠点間が長距離でネットワーク上の遅延が大きい場合はストレージ領域の移行が完了するまでに時間がかかることが考えられる。
ストレージ移行に時間がかかると、負荷分散を目的としたライブマイグレーションを実行できないという課題がある。また、特許文献1ではハイパバイザがストレージ領域の移行を実行するため、移行元のサーバの負荷が高くなってしまうという課題もある。
さらに、仮想計算機を一時的に別拠点に移行する場合にも、仮想計算機が使用する全てのストレージ領域を移行させる必要があり、拠点間のネットワークに対して不必要な負荷がかかることも課題となる。
本発明は、ストレージ領域を移行させることなく、また、ハイパバイザ及びネットワークに対する負荷を増大させることなくライブマイグレーションを実行するためのネットワークシステム及びネットワーク装置を提供することを目的とする。
本発明の代表的な一例を示せば以下の通りである。すなわち、複数の拠点間を接続するネットワーク装置であって、前記複数の拠点は、第1の拠点と第2の拠点とを含み、前記第1の拠点には、第1のプロセッサ前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のインタフェースを有する複数の計算機と、第2のコントローラ複数の記憶媒体、及び第2のインタフェースを有する第1のストレージシステムと、第3のプロセッサ前記第3のプロセッサに接続される第3のメモリ、並びに、前記第3のプロセッサに接続され、前記複数の計算機及び前記第1のストレージシステムに接続するための第3のインタフェースを有する第1のネットワーク装置とが含まれ前記第2の拠点には、第4のプロセッサ、前記第4のプロセッサに接続される第4のメモリ、及び前記第4のプロセッサに接続される第4のインタフェースを有する複数の計算機と、第5のコントローラ、複数の記憶媒体、及び第5のインタフェースを有する第2のストレージシステムと、第6のプロセッサ、前記第6のプロセッサに接続される第6のメモリ、並びに、前記第6のプロセッサに接続され、前記複数の計算機及び前記第2のストレージシステムに接続するための第6のインタフェースを有する第2のネットワーク装置とが含まれ、前記第1のネットワーク装置は、前記第2のネットワーク装置と接続するための第7のインタフェースを有し、前記第2のネットワーク装置は、前記第1のネットワーク装置と接続するための第8のインタフェースを有し、前記第1のメモリ及び第4のメモリは、計算機の物理資源を割り当てることによって仮想計算機を生成し、前記仮想計算機を管理する仮想化部を実現するためのプログラムを格納し、前記仮想化部は、前記仮想計算機のレジスタ情報及び前記仮想計算機に割り当てられる仮想メモリ上の情報を、当該仮想化部が実行される計算機とは異なる他の計算機に送信することによって、計算機間で前記仮想計算機を移行させるライブマイグレーション処理部を有し前記第1のストレージシステム及び前記第2のストレージシステムは、前記仮想計算機に割り当てる記憶領域を生成し、前記第3のメモリ及び前記第6のメモリは、前記仮想計算機と前記記憶領域との間のアクセスを管理するアクセス処理部を実現するためのプログラム、及び、前記仮想計算機と前記記憶領域との接続関係を管理する接続管理情報を格納し、前記第1の拠点に含まれる前記複数の計算機は、第1の仮想化部によって管理される第1の仮想計算機が稼動する第1の計算機を含み、前記第2の拠点に含まれる前記複数の計算機は、第2の計算機を含み、前記第1のネットワーク装置の前記アクセス処理部は、前記第1の仮想化部から、前記第1の計算機から前記第2の計算機へ前記第1の仮想計算機を移行するためのライブマイグレーション処理の開始通知を受信し、前記第1のストレージシステムによって生成され、かつ、前記第1の計算機上で稼動する前記第1の仮想計算機に割り当てられた第1の記憶領域にアクセスするための第1のポートを特定し、前記第2のストレージシステムによって生成され、かつ、前記第2の計算機上で稼動する前記第1の仮想計算機に割り当てられた第2の記憶領域にアクセスするための第2のポートを特定し、前記第1の仮想計算機から送信されるアクセス要求を転送する装置のアドレスを取得し、前記第1のポートと、前記第2のポートと、前記アクセス要求を転送する装置のアドレスとを対応づけることによって変換情報を生成し、前記変換情報に基づいて、前記ライブマイグレーション処理が実行された後に前記第2の計算機上で稼動する前記第1の仮想計算機から送信される前記アクセス要求を制御することを特徴とする。
物理的に離れている拠点に配置された計算機間のライブマイグレーション処理を実現できる。また、変換情報に基づいて、移行後の仮想計算機からのアクセス要求を移行元の記憶領域に転送することができる。これによって、短時間で仮想計算機を移行させ、また、ネットワークの負荷及び仮想化部の負荷を低減できる。さらに、移行先の仮想計算機が移行元のストレージにアクセスすることが可能となる。
本発明の実施形態におけるネットワークシステムの構成例を示す説明図である。 本発明の実施形態におけるネットワーク装置のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。 本発明の実施形態おけるサーバのハードウェア構成及びソフトウェア構成の一例を示すブロック図である。 本発明の実施形態におけるFCフレームの構造の一例を示す説明図である。 本発明の実施形態における接続管理テーブルの一例を示す説明図である。 本発明の実施形態における接続管理テーブルの一例を示す説明図である。 本発明の実施形態における拠点接続管理テーブルの一例を示す説明図である。 本発明の実施形態における拠点接続管理テーブルの一例を示す説明図である。 本発明の実施形態におけるサーバ管理テーブルの一例を示す説明図である。 本発明の実施形態におけるサーバ管理テーブルの一例を示す説明図である。 本発明の実施形態における監視テーブルの一例を示す説明図である。 本発明の実施形態における監視テーブルの一例を示す説明図である。 本発明の実施形態における変換テーブルの一例を示す説明図である。 本発明の実施形態におけるライブマイグレーション処理の実行前の処理の流れを説明するシーケンス図である。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態におけるライブマイグレーション処理の流れを説明するシーケンス図である。 本発明の実施形態におけるライブマイグレーション処理の流れを説明するシーケンス図である。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 発明の実施形態における接続管理テーブルの一例を示す説明図である。 本発明の実施形態における変換テーブルの一例を示す説明図である。 発明の実施形態における接続管理テーブルの一例を示す説明図である。 本発明の実施形態における変換テーブルの一例を示す説明図である。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 発明の実施形態における接続管理テーブルの一例を示す説明図である。 発明の実施形態における接続管理テーブルの一例を示す説明図である。 本発明の実施形態における変換テーブルの一例を示す説明図である。 本発明の実施形態におけるライブマイグレーション実行後の処理の流れを説明するシーケンス図である。 本発明の実施形態におけるライブマイグレーション実行後の処理の流れを説明するシーケンス図である。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態におけるネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態におけるネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態におけるライブマイグレーション実行後に再度実行されるライブマイグレーション処理の流れを説明するシーケンス図である。 本発明の実施形態におけるライブマイグレーション処理後に再度実行されるライブマイグレーション処理の流れを説明するシーケンス図である。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態における監視テーブルの一例を示す説明図である。 本発明の実施形態のネットワーク装置が実行する処理を説明するフローチャートである。 本発明の実施形態における監視テーブルの一例を示す説明図である。
以下、本発明の実施形態について図面を用いて説明する。
本発明の実施形態では、2つの拠点間で仮想計算機の移行させる場合について説明する。具体的には、任意の拠点に配置されたサーバ上で稼動する仮想計算機を別の拠点に配置されたサーバに移行させ、その後、元のサーバに仮想計算機を移行させる場合を説明する。なお、以下では、仮想計算機をVMと記載する。
図1は、本発明の実施形態におけるネットワークシステムの構成例を示す説明図である。
ネットワークシステムは、複数の拠点から構成される。図1に示す例では、ネットワークシステムは、2つの拠点500−1、500−2を含む。拠点500−1と拠点500−2とは、WAN600を介して接続される。以下、拠点500−1及び拠点500−2を区別しない場合、拠点500と記載する。
拠点500−1は、サーバ200−1、サーバ200−2、ネットワーク装置100−1、ストレージ300−1及びストレージ300−2から構成される。サーバ200−1上ではVM1(400−1)及びVM3(400−3)が稼動しており、サーバ200−2上ではVM2(400−2)が稼動している。
また、拠点500−2は、サーバ200−3、ネットワーク装置100−2、及びストレージ300−3から構成される。サーバ200−3上ではVM4(400−4)が稼動している。
以下、サーバ200−1、サーバ200−2,及びサーバ200−3を区別しない場合、サーバ200と記載する。ネットワーク装置100−1及びネットワーク装置100−2を区別しない場合、ネットワーク装置100と記載する。ストレージ300−1、ストレージ300−2及びストレージ300−3を区別しない場合、ストレージ300と記載する。また、VM400−1、VM400−2、VM400−3及びVM400−4を区別しない場合、VM400と記載する。
ネットワーク装置100は、拠点500内の通信を管理する。また、ネットワーク装置100は、各拠点500を接続する。なお、ネットワーク装置100の構成については、図2を用いて後述する。
サーバ200は、VM400を生成し、また、VM400を管理するハイパバイザ250(図3参照)を備える。ハイパバイザ250は、NPIV(N Port ID Virtualization)を用いて、VM400ごとにファブリックログインを実行する。これによって、各VM400がストレージ300にアクセスすることができる。なお、サーバ200の構成については、図3を用いて後述する。
ストレージ300は、サーバ200が使用する記憶領域を提供する記憶媒体である。ストレージ300は、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)などから構成される。ストレージ300は論理的に複数の記憶領域に分割されており、それぞれの記憶領域を論理ユニットとして管理する。なお、論理ユニットには識別子として論理ユニット番号が付与される。
図1に示す例では、サーバ200−1及びサーバ200−2は、LAN700−1を介して互いに接続される。また、ネットワーク装置100−1は、LAN700−1に接続され、各拠点500のサーバ200間の通信を中継する。
サーバ200−1及びサーバ200−2は、ネットワーク装置100−1と直接接続され、当該ネットワーク装置100−1を経由して、ストレージ300−1及びストレージ300−2にアクセスする。
ストレージ300−1及びストレージ300−2は、SAN(Storage Area Network)800−1を介して、ネットワーク装置100−1に接続される。なお、SAN800−1には、1以上のファイバチャネルスイッチ(図示省略)が含まれる。
また、サーバ200−1、サーバ200−2、及びネットワーク装置100−1にはそれぞれ、グローバルなIPアドレスが割り当てられる。具体的には、サーバ200−1にはIPアドレス「200.1.1.2」が割り当てられ、サーバ200−2にはIPアドレス「200.1.1.3」が割り当てられ、ネットワーク装置100−1にはIPアドレス「200.1.2.1」が割り当てられる。
また、サーバ200上のハイパバイザ250は、NPIV(N Port ID Virtualization)を用いて、VM400毎にログイン処理を実行し(ファブリックログイン)、VM400毎のポートアドレスを取得する。
なお、拠点500−2についても同様の構成であるため説明を省略する。
本実施形態では、拠点500−1のサーバ200−1上で稼動するVM3(400−3)を拠点500−2のサーバ200−3に移行させ、その後、元のサーバ200−1にVM3(400−3)を移行させる処理について説明する。
なお、本実施形態では、サーバ200とネットワーク装置100とはIP(Internet Protocol)を用いて通信し、各ストレージ300は、FCP(Fiber Channel Protocol)を用いて通信する。
また、各ネットワーク装置100の間でストレージデータを送受信する場合には、FCIP(Fiber Channel over Internet Protocol)を用いて通信する。
なお、ネットワークシステムにおける通信方法は一例であって、各装置間で通信できれば、どのようなプロトコルを用いてもよい。
図2は、本発明の実施形態におけるネットワーク装置100のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
ネットワーク装置100は、プロセッサ110、メモリ120、LAN_IF130、サーバ_IF140−1〜140−n、SAN_IF150、及びWAN_IF160を備える。
プロセッサ110は、メモリ120に格納されるプログラムを実行する。プロセッサ110がプログラムを実行することによってネットワーク装置100が備える機能を実現することができる。
メモリ120は、プロセッサ110によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。
本実施形態のメモリ120は、アクセス処理部900、接続管理テーブル910、拠点接続管理テーブル920、サーバ管理テーブル930、監視テーブル940、及び変換テーブル950を備える。なお、メモリ120は、その他のプログラム及びテーブルを含んでいてもよい。
アクセス処理部900は、ライブマイグレーション処理におけるVM400とストレージ300とのアクセスを管理する。ライブマイグレーション処理では、VM400のレジスタ情報及びメモリ120上に格納されるVM400の情報が移行対象となる。
接続管理テーブル910は、サーバ200とストレージ300との接続を管理するための情報を格納する。なお、接続管理テーブル910の詳細については図5A及び図5Bを用いて後述する。
拠点接続管理テーブル920は、他の拠点500におけるネットワーク装置100及びサーバ200の接続先を管理するための情報を格納する。なお、拠点接続管理テーブル920の詳細については図6A及び図6Bを用いて後述する。
サーバ管理テーブル930は、ネットワーク装置100とサーバ200との接続を管理するための情報を格納する。なお、サーバ管理テーブル930の詳細については図7A及び図7Bを用いて後述する。
監視テーブル940は、フレーム及びパケットをフィルタリングするための情報を格納する。なお、監視テーブル940の詳細については図8A及び図8Bを用いて後述する。
変換テーブル950は、フィルタリングされたフレーム及びパケットを転送するための情報を格納する。なお、変換テーブル950の詳細については図9を用いて後述する。
メモリ120は、前述したテーブル以外に、論理ユニットへのアクセスを管理するために、当該論理ユニットのブロックに対応するビットマップを格納する。当該ビットマップは一時的に作成されるものであり、各ビットマップを一意に識別するための識別子が付与される。
なお、メモリ120には、フレーム及びIPパケットの転送処理、及びフレーム及びIPパケットの変換処理などを実行するスイッチ処理部を備えるが、本発明には直接関係しないため省略している。
LAN_IF130は、LAN700に接続するためのインタフェースである。サーバ_IF140−1〜140−nは、サーバ200と接続するためのインタフェースである。
SAN_IF150は、SAN800に接続するためのインタフェースである。WAN_IF160は、WAN600と接続するためのインタフェースである。
なお、ネットワーク装置100は、拠点500間を管理する管理ネットワークに接続するための制御インタフェースなどの他のハードウェアを備えていてもよい。
なお、本実施形態では、プログラムを実行することによってアクセス処理部900を実現しているが、アクセス処理部900が備える機能をASIC及びFPGAのようなハードウェアを用いて実現してもよい。
図3は、本発明の実施形態おけるサーバ200のハードウェア構成及びソフトウェア構成の一例を示すブロック図である。
サーバ200は、プロセッサ210、メモリ220、LAN_IF230、及びI/O_IF240−1〜240−nを備える。
プロセッサ210は、メモリ220に格納されるプログラムを実行する。プロセッサ210がプログラムを実行することによってサーバ200が備える機能を実現することができる。
メモリ220は、プロセッサ210によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。本実施形態のメモリ220は、ハイパバイザ250を格納する。
ハイパバイザ250は、サーバ200が備える物理リソースを割り当てることによってVM400を生成し、生成されたVM400を管理する。VM400は、各種業務を実行する。VM400上では、OS(図示省略)及びアプリケーション(図示省略)が実行される。また、ハイパバイザ250は、ライブマイグレーション処理を実行するライブマイグレーション機能を有する。
LAN_IF230は、LAN700に接続するためのインタフェースである。I/O_IF240−1〜240−nは、ネットワーク装置100又はその他の外部装置に接続するためのインタフェースである。
図4は、本発明の実施形態におけるFCフレームの構造の一例を示す説明図である。
FCフレーム1000は、Header1100、Payload1200及びCRC1300から構成される。
Header1100は、主に転送制御に用いられる情報を格納する。具体的には、Header1100は、R_CTL1110、D_ID1120、S_ID1130、及びTYPE1140を格納する。
R_CTL1110はフレーム種別を格納する。D_ID1120は、宛先のポートアドレスを格納する。S_ID1130は、送信元のポートアドレスを格納する。TYPE1140は、Payload1200に格納されるデータの種別を示す情報を格納する。
Payload1200は、データ本体の内容を格納する。CRC1300は、フレーム単位の誤り検出用の冗長情報を格納する。
FCフレーム1000がポート情報の送受信に用いられるExtended_link_servicesの場合、R_CTL1110には「0x22」、TYPE1140には「0x01」が格納される。
また、Payload1200に格納されるLS_command_code1210には、FLOGI(Fabric Login)フレームであれば「0x04」、PLOGI(Port Login)フレームであれば「0x03」、PLOGO(Port Logout)フレームであれば「0x05」、ACC(Accept)フレームであれば「0x02」、RJT(Reject)フレームであれば「0x01」が格納される。
FCフレーム1000がFC−4のSCSIコマンドフレームの場合、R_CTL1110には、FCP_CMNDであれば「0x06」、FCP_XFER_RDYフレームであれば「0x05」、FCP_DATAフレームであれば「0x01」、FCP_RSPフレームであれば「0x07」が格納される。なお、TYPE1140にはすべて「0x08」が格納される。
FCP_CMNDフレームには、論理ユニット番号を示すLUN1220及びCDB1230が格納される。
ここで、CDB1230は、命令を示すOperation1231、論理ブロックアドレスを示すLBA1232、転送するブロック長を示すTransfer_length1233から構成される。例えば、Operation1231に「0x28」、「0xA8」、「0x88」、又は「0x7F」が格納される場合にはリード系コマンドを表し、また、Operation1231に「0x0A」、「0x2A」、「0xAA」、又は「0x8A」が格納される場合にはライト系コマンドを表す。
図5A及び図5Bは、本発明の実施形態における接続管理テーブル910の一例を示す説明図である。
図5Aは、ネットワーク装置100−1が保持する接続管理テーブル910を示す。また、図5Bは、ネットワーク装置100−2が保持する接続管理テーブル910を示す。
接続管理テーブル910は、サーバ200とストレージ300との接続状態を管理するためのテーブルである。接続管理テーブル910は、サーバ_IF_ID911、サーバポート912、ストレージポート913、LUN914、状態915及びビットマップ_ID916を含む。
サーバ_IF_ID911は、サーバ_IF140の識別子を格納する。
サーバポート912は、VM400に割り当てられたサーバポートの識別番号を格納する。なお、VM400は、サーバ_IF_ID911に対応するサーバ_IF140に接続されるサーバ200上で稼動するVM400である。本実施形態では、サーバポート912がVM400の識別子となる。
ストレージポート913は、VM400に割り当てられたストレージポートの識別番号を格納する。なお、VM400は、サーバ_IF_ID911に対応するサーバ_IF140に接続されるサーバ200上で稼動するVM400である。VM400は、割り当てられたストレージポートを使用してLUにアクセスする。
LUN914は、VM400がアクセスする論理ユニットの識別番号を格納する。VM400は、サーバ_IF_ID911に対応するサーバ_IF140に接続されるサーバ200上で稼動するVM400である。
状態915は、ライブマイグレーション処理の状態を示す情報を格納する。具体的には、「no」、「実行中」、「移行元」、又は「移行先」のいずれかが格納される。なお、エントリ作成時には「no」が格納される。
「no」は、ライブマイグレーション処理が実行されていない状態を示す。「実行中」は、ライブマイグレーション処理が実行中である状態を示す。
「移行元」は、移行元のVM400としてライブマイグレーション処理が完了した状態を示す。「移行先」は、移行先のVM400としてライブマイグレーション処理が完了した状態を示す。
ビットマップ_ID916は、VM400がアクセスする論理ユニットのアクセス状態を管理するビットマップの識別子を格納する。なお、ライブマイグレーション処理が実行されていない場合、ビットマップ_ID916には何も格納されない。
図6A及び図6Bは、本発明の実施形態における拠点接続管理テーブル920の一例を示す説明図である。
図6Aは、ネットワーク装置100−1が保持する拠点接続管理テーブル920を示す。また、図6Bは、ネットワーク装置100−2が保持する拠点接続管理テーブル920を示す。
拠点接続管理テーブル920は、移行先の候補となるサーバ200を管理するためのテーブルである。拠点接続管理テーブル920に設定される情報は、予め管理者によって設定される。なお、ネットワーク装置100がネットワークから必要な情報を取得し、取得された情報に基づいて拠点接続管理テーブル920を生成してもよい。
拠点接続管理テーブル920は、サーバ_IP921及びネットワーク装置_IP922を含む。
サーバ_IP921は、移行先の拠点のネットワーク装置100に接続されるサーバ200のIPアドレスを格納する。ネットワーク装置_IP922は、移行先のネットワーク装置100のIPアドレスを格納する。
本実施形態では、サーバ200−1上で稼動するVM400の移行先として、ネットワーク装置100−2に接続されるサーバ200−3が指定されている。また、ネットワーク装置100−2に接続される200−3上で稼動するVM400の移行先として、ネットワーク装置100−1に接続されるサーバ200−1及びサーバ200−2が指定されている。
したがって、図6Aに示す拠点接続管理テーブル920には、ネットワーク装置100−2及びサーバ200−3のIPアドレスが格納される。また、図6Bに示す拠点接続管理テーブル920には、ネットワーク装置100−1、サーバ200−1及びサーバ200−2のIPアドレスが格納される。
図7A及び図7Bは、本発明の実施形態におけるサーバ管理テーブル930の一例を示す説明図である。
図7Aは、ネットワーク装置100−1が保持するサーバ管理テーブル930を示す。また、図7Bは、ネットワーク装置100−2が保持するサーバ管理テーブル930を示す。
サーバ管理テーブル930は、サーバ_IF140とサーバ200との接続関係を管理するためのテーブルである。サーバ管理テーブル930は、サーバ_IF_ID931及びサーバ_IP932を含む。
サーバ_IF_ID931は、サーバ_IF140の識別子を格納する。
サーバ_IP932は、サーバ_IF_ID931に対応するサーバ_IF140に接続されるサーバ200のIPアドレスを格納する。
図8A及び図8Bは、本発明の実施形態における監視テーブル940の一例を示す説明図である。
図8Aは、ネットワーク装置100−1が保持する監視テーブル940を示す。また、図8Bは、ネットワーク装置100−2が保持する監視テーブル940を示す。
監視テーブル940は、ライブマイグレーション処理の対象となるサーバ200を把握するためのテーブルである。監視テーブル940は、ソース_IP941、宛先_IP942及び属性943を含む。
ソース_IP941は、移行元のサーバ200のIPアドレスを格納する。宛先_IP942は、移行先のサーバ200のIPアドレスを格納する。
属性943は、監視テーブル940を保持するネットワーク装置100の属性を示す情報を格納する。属性は、監視テーブル940を管理するネットワーク装置100が移行元の拠点500又は移行先の拠点500の何れに属するかを示す情報である。具体的には、移行元の拠点500を示す「Source」、又は、移行先の拠点500を示す「Destination」のいずれかが格納される。
図9は、本発明の実施形態における変換テーブル950の一例を示す説明図である。
転送元951は、自拠点500から送信されるフレーム及びIPパケットを特定するための情報を格納する。
変換テーブル950は、転送元951及び転送先952を含む。
転送元951は、転送元のVM400を特定するための情報を格納する。具体的には、転送元951は、サーバポート953、ストレージポート954及びLUN955を含む。
サーバポート953はサーバポート912と同一のものであり、ストレージポート954はストレージポート913と同一のものであり、また、LUN955はLUN914と同一のものであるため説明を省略する。
転送先952は、IPパケットを転送する他の拠点500の情報を格納する。転送先952は、サーバポート956、ストレージポート957、LUN958、及び転送先_IP959を含む。
サーバポート956はサーバポート912と同一のものであり、ストレージポート957はストレージポート913と同一のものであり、また、LUN958はLUN914と同一のものであるため説明を省略する。
転送先_IP959は、他の拠点500に含まれるネットワーク装置100のIPアドレスを格納する。
[ライブマイグレーション処理の実行前]
まず、ライブマイグレーション処理の実行前のネットワークシステムの動作について説明する。
図10は、本発明の実施形態におけるライブマイグレーション処理の実行前の処理の流れを説明するシーケンス図である。
図10では、拠点500−1のサーバ200−1における処理を例に説明する。以下、サーバ200−1を主語にしている場合、サーバ200−1のハイパバイザ250が処理を実行することを示す。
ステップS100〜ステップS105までの処理はログイン処理である。ステップS106〜ステップS108までの処理は、読み出し処理である。ステップS109〜ステップS112までの処理は、書き込み処理である。ステップS113〜ステップS115までの処理は、ログアウト処理である。
まず、サーバ200−1は、サーバ200−1上で稼動するVM1(400−1)がストレージ300へアクセスするためのログイン処理を実行する。
サーバ200−1は、SAN800−1に接続されるストレージ300にログインするために、SAN800−1に対してFLOGIフレームを送信する(ステップS100)。当該処理によってサーバポートのアドレスが取得される。
ネットワーク装置100−1は、SAN800−1に含まれるスイッチに、受信したFLOGIフレームを転送する。
SAN800−1に含まれるスイッチは、FLOGIフレームを受信すると、サーバ200−1に対してACCフレームを送信する(ステップS101)。ACCフレームはログインを受け付けた旨を示すフレームである。
ネットワーク装置100−1は、サーバ200−1に、受信したACCフレームを転送する。このとき、ネットワーク装置100−1は、接続管理テーブル910を更新する(ステップS102)。具体的な更新処理については図11を用いて後述する。
次に、サーバ200−1は、アクセス先のストレージポートのアドレスを取得するために、PLOGIフレームをストレージ300に対して送信する(ステップS103)。
ネットワーク装置100−1は、SAN800−1に含まれるスイッチに受信したPLOGIフレームを転送する。さらに、SAN800−1に含まれるスイッチは、ストレージ300に受信したPLOGIフレームを転送する。
ストレージ300は、PLOGIフレームを受信すると、サーバ200−1に対してACCフレームを送信する(ステップS104)。ACCフレームはログインを受け付けた旨を示すフレームである。
SAN800−1に含まれるスイッチは、ACCフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。
さらに、ネットワーク装置100−1は、ACCフレームを受信すると、当該フレームをサーバ200−1に転送する。このとき、PLOGIフレームを受信したネットワーク装置100−1は、接続管理テーブル910を更新する(ステップS105)。具体的な更新処理については図12を用いて後述する。
以上の処理によって、接続管理テーブル910に必要な情報が格納される。したがって、ネットワーク装置100−1は、接続管理テーブル910を参照することによって、VM400がどのストレージ300にアクセスするかを把握できる。
次に、読み出し処理について説明する。
サーバ200−1は、データの読み出しを示すFCP_CMNDフレームをストレージ300に対して送信する(ステップS106)。
ネットワーク装置100−1は、FCP_CMNDフレームを受信すると、当該フレームをSAN800−1に含まれるスイッチに転送する。このとき、ネットワーク装置100−1は、接続管理テーブル910を更新する(ステップS107)。具体的な更新処理については図13を用いて後述する。
また、SAN800−1に含まれるスイッチは、FCP_CMNDフレームを受信すると、当該フレームをストレージ300に転送する。
ストレージ300は、FCP_CMNDフレームを受信すると、所定のデータを読み出し、読み出されたデータを含むFCP_DATAフレームをサーバ200−1に対して送信する(ステップS108)。
SAN800−1に含まれるスイッチは、FCP_DATAフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。また、ネットワーク装置100−1は、FCP_DATAフレームを受信すると、当該フレームをサーバ200−1に転送する。
次に、書き込み処理について説明する。
サーバ200−1は、データの書き込みを示すFCP_CMNDフレームをストレージ300に対して送信する(ステップS109)。
ネットワーク装置100−1は、FCP_CMNDフレームを受信すると、当該フレームをSAN800−1に含まれるスイッチに転送する。また、SAN800−1に含まれるスイッチは、FCP_CMNDフレームを受信すると、当該フレームをストレージ300に対して転送する。
ストレージ300は、FCP_CMNDフレームを受信すると、データの書き込みを受け付け可能である旨を知らせるFCP_XFER_RDYフレームをサーバ200−1に対して送信する(ステップS110)。
SAN800−1に含まれるスイッチは、FCP_XFER_RDYフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。また、ネットワーク装置100−1は、FCP_XFER_RDYフレームを受信すると、当該フレームをサーバ200−1に転送する。
サーバ200−1は、FCP_XFER_RDYフレームを受信すると、書き込むデータを含むFCP_DATAフレームをストレージ300に対して送信する(ステップS111)。
ネットワーク装置100−1は、FCP_DATAフレームを受信すると、当該フレームをSAN800−1に含まれるスイッチに転送する。また、SAN800−1に含まれるスイッチは、FCP_DATAフレームを受信すると、当該フレームをストレージ300に転送する。
ストレージ300は、サーバ200−1から送信されるFCP_DATAフレームを全て受信すると、正常にデータが書き込まれた旨を示すFCP_RSPフレームをサーバ200−1に対して送信する(ステップS112)。
SAN800−1に含まれるスイッチは、FCP_RSPフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。また、ネットワーク装置100−1は、FCP_RSPフレームを受信すると、当該フレームをサーバ200−1に転送する。
次に、ログアウト処理について説明する。
サーバ200−1は、ポートログアウトを示すPLOGOフレームをストレージ300に対して送信する(ステップS113)。
ネットワーク装置100−1は、PLOGOフレームを受信すると、当該フレームをSAN800−1に含まれるスイッチに転送する。また、SAN800−1に含まれるスイッチは、PLOGOフレームを受信すると、当該フレームをストレージ300に転送する。
ストレージ300は、PLOGOフレームを受信すると、ログアウトが完了した旨を示すACCフレームをサーバ200−1に対して送信する(ステップS114)。
SAN800−1に含まれるスイッチは、ACCフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。また、ネットワーク装置100−1は、ACCフレームを受信すると、当該フレームをサーバ200−1に転送する。
このとき、ネットワーク装置100−1は、接続管理テーブル910を更新する(ステップS115)。なお、具体的な更新処理については、図14を用いて後述する。
次に、ネットワーク装置100の処理について説明する。
図11は、本発明の実施形態のネットワーク装置100−1が実行する処理を説明するフローチャートである。図11では、FLOGIフレームを受信したネットワーク装置100−1の処理を示している。
ネットワーク装置100−1は、サーバ200−1からFLOGIフレームを受信すると(ステップS200)、当該フレームをSAN800−1に含まれるスイッチに転送する(ステップS201)。ネットワーク装置100−1は、フレームのR_CTL1110、TYPE1140及びPayload1200を参照することによってFLOGIフレームであるか否かを判定できる。
以下、同様の方法を用いて処理が実行されるためフレームの判定処理の説明は省略する。
FLOGIフレームの転送後、ネットワーク装置100−1は、SAN800−1に含まれるスイッチから送信される応答フレームを待つ。
ネットワーク装置100−1は、SAN800−1に含まれるスイッチから応答フレームを受信すると(ステップS202)、当該応答フレームの種別を判定する(ステップS203)。具体的には、ネットワーク装置100−1は、受信した応答フレームがACCフレーム又はRJTフレームの何れであるかを判定する。ここで、RJTフレームは、要求を拒絶する旨を示すフレームである。
応答フレームがRJTフレームであると判定された場合、ネットワーク装置100−1は、ステップS205に進む。
応答フレームがACCフレームであると判定された場合、ネットワーク装置100−1は、サーバポートの識別子を接続管理テーブル910に登録し(ステップS204)、ステップS205に進む。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、FLOGIフレームを送信したサーバ200−1が接続されるサーバ_IF140を特定する。次に、ネットワーク装置100は、接続管理テーブル910にエントリを生成し、生成されたエントリのサーバ_IF_ID911に特定されたサーバ_IF140の識別子を格納する。
ネットワーク装置100−1は、ACCフレームのD_ID1120を取得し、生成されたエントリのサーバポート912に取得されたD_ID1120を格納する。さらに、ネットワーク装置100−1は、生成されたエントリの状態915に「no」を格納する。
以上がステップS204の処理である。
次に、ネットワーク装置100−1は、受信した応答フレームをサーバ200に送信し(ステップS205)、処理を終了する。
なお、一定期間内に応答フレームが受信されない場合、ネットワーク装置100−1は、サーバ200−1にエラーを通知して処理を終了する。
図12は、本発明の実施形態のネットワーク装置100−1が実行する処理を説明するフローチャートである。図12では、PLOGIフレームを受信したネットワーク装置100−1の処理を示している。
ネットワーク装置100−1は、サーバ200−1からPLOGIフレームを受信すると(ステップS210)、当該フレームをSAN800−1に含まれるスイッチに転送する(ステップS211)。なお、受信したフレームの判定方法はステップS200と同一である説明を省略する。
PLOGIフレームの転送後、ネットワーク装置100−1は、SAN800−1に含まれるスイッチから送信される応答フレームを待つ。
ネットワーク装置100−1は、SAN800−1に含まれるスイッチから応答フレームを受信すると(ステップS212)、当該応答フレームの種別を判定する(ステップS213)。具体的には、ネットワーク装置100−1は、受信したフレームがACCフレーム又はRJTフレームの何れであるかが判定される。
応答フレームがRJTフレームであると判定された場合、ネットワーク装置100−1は、ステップS215に進む。
応答フレームがACCフレームであると判定された場合、ネットワーク装置100−1は、接続管理テーブル910にストレージポートを登録し(ステップS214)、ステップS215に進む。具体的には以下のような処理が実行される。
ネットワーク装置100−1は、ACCフレームを解析して、D_ID1120及びS_ID1130を取得する。
さらに、ネットワーク装置100−1は、サーバ_IF140の識別子及びD_ID1120に基づいて、接続管理テーブル910から対応するエントリを検索する。なお、サーバ_IF140の識別子は、PLOGIフレームを受信したサーバ_IF140の識別子である。
ネットワーク装置100は、検索されたエントリのストレージポート913に取得されたS_ID1130を格納する。
以上がステップS214の処理である。
次に、ネットワーク装置100−1は、受信した応答フレームをサーバ200−1に送信し(ステップS215)、処理を終了する。
なお、一定期間内に応答フレームが受信されない場合、ネットワーク装置100−1は、サーバ200−1にエラーを通知して処理を終了する。
図13は、本発明の実施形態のネットワーク装置100−1が実行する処理を説明するフローチャートである。図13では、FCP_CMNDフレームを受信したネットワーク装置100−1の処理を示している。
ネットワーク装置100−1は、サーバ200−1からFCP_CMNDフレームを受信すると、当該フレームを解析する。具体的には、以下のような処理を実行する。
ネットワーク装置100−1は、FCP_CMNDフレームを受信したサーバ_IF140を特定し、特定されたサーバ_IF140の識別子を取得する。また、ネットワーク装置100−1は、FCP_CMNDフレームから、D_ID1120、S_ID1130及びLUN1220を取得する。
ネットワーク装置100−1は、接続管理テーブル910から、取得されたサーバ_IF140の識別子、D_ID1120、及びS_ID1130と一致するエントリを検索する。ネットワーク装置100−1は、検索されたエントリの状態915が「no」であるか否かを判定する。
これは、状態915が「no」でない場合には、FCP_CMNDフレームを他の拠点に転送するために変換テーブル950を参照する必要があるためである。ここでは、ライブマイグレーション処理が実行されていないため検索されたエントリの状態915が「no」であると判定される。
エントリの状態915が「no」であると判定された場合、ネットワーク装置100−1は、通常の転送処理を実行することとなる。
ネットワーク装置100−1は、FCP_CMNDフレームをSAN800−1に含まれるスイッチに転送する(ステップS221)。
ネットワーク装置100−1は、接続管理テーブル910を参照して、対応するエントリにLUNが登録されているか否かを判定する(ステップS222)。具体的には、ネットワーク装置100−1は、ステップS220において検索されたエントリのLUN914にLUNが格納されているか否かを判定する。LUNが登録させていると判定された場合、ネットワーク装置100は、処理を終了する。
LUNが登録されていないと判定された場合、ネットワーク装置100−1は、LUN1220を登録して(ステップS223)、処理を終了する。具体的には、ネットワーク装置100−1は、対応するエントリのLUN914に取得されたLUN1220を格納する。
図14は、本発明の実施形態のネットワーク装置100−1が実行する処理を説明するフローチャートである。図14では、PLOGOフレームを受信したネットワーク装置100−1の処理を示している。
ネットワーク装置100−1は、サーバ200−1からPLOGOフレームを受信すると(ステップS230)、当該フレームをSAN800−1に含まれるスイッチに転送する(ステップS231)。その後、ネットワーク装置100−1は、SAN800−1に含まれるスイッチから送信される応答フレームを待つ。
ネットワーク装置100−1は、SAN800−1に含まれるスイッチから応答フレームを受信すると(ステップS232)、当該応答フレームの種別を判定する(ステップS233)。具体的には、ネットワーク装置100−1は、受信したフレームがACCフレーム又はRJTフレームの何れであるかが判定される。
応答フレームがRJTフレームであると判定された場合、ネットワーク装置100−1は、ステップS235に進む。
応答フレームがACCフレームであると判定された場合、ネットワーク装置100−1は、接続管理テーブル910から対応するエントリを削除し(ステップS234)、ステップS235に進む。なお、対応するエントリの検索方法は、ステップS214と同一の方法であるため説明を省略する。
ネットワーク装置100−1は、受信した応答フレームをサーバ200−1に転送し(ステップS235)、処理を終了する。
なお、一定期間内に応答フレームが受信されない場合、ネットワーク装置100−1は、サーバ200−1にエラーを通知して処理を終了する。
なお、ネットワーク装置100−1は、前述した以外のフレームを受信した場合には、フレームの転送処理を実行する。フレームの転送処理は公知の技術を用いればよいため説明を省略する。
図10に示す処理が終了すると、図5A及び図5Bに示すような接続管理テーブル910が生成される。
[ライブマイグレーション処理実行時]
サーバ200−1上で稼動するVM3(400−3)をサーバ200−3へ移行するライブマイグレーション処理を説明する。
図15A及び図15Bは、本発明の実施形態におけるライブマイグレーション処理の流れを説明するシーケンス図である。
サーバ200−1は、VM3(400−3)のライブマイグレーションの開始メッセージを含むIPパケットをサーバ200−3に対して送信する(ステップS300)。当該IPパケットには、移行元としてサーバ200−1のIPアドレスが格納され、また移行先としてサーバ200−3のIPアドレスが格納される。
なお、サーバ200−1は、管理者からライブマイグレーション処理の実行命令を受け付けた場合、又は、所定の実行条件に該当した場合に、前述したIPパケットを送信する。例えば、予め設定された時刻になることを実行条件とすることが考えられる。
ネットワーク装置100−1は、WAN600を介してIPパケットをネットワーク装置100−2に転送する。このとき、ネットワーク装置100−1は、監視テーブル940及び接続管理テーブル910を更新する(ステップS301、ステップS302)。具体的な更新処理については図16を用いて後述する。
なお、ネットワーク装置100−1は、LAN_IF130からIPパケットを受信しているため、ネットワーク装置100−1が属する拠点が移行元であることを認識できる。
ネットワーク装置100−1は、監視テーブル940を参照することによって、ライブマイグレーションの対象となるサーバ200間で送受信されるフレーム及びIPパケットを判別することができる。
ネットワーク装置100−2は、IPパケットを受信すると、移行先のサーバ200−3に当該IPパケットを転送する。このとき、ネットワーク装置100−2は、監視テーブル940を更新する(ステップS303)。具体的な更新処理については図21を用いて後述する。
ネットワーク装置100−2は、監視テーブル940を参照することによって、ライブマイグレーションの対象となるサーバ200間で送受信されるフレーム及びIPパケットを判別することができる。
なお、ネットワーク装置100−2は、WAN_IF160からIPパケットを受信しているため、ネットワーク装置100−2が属する拠点が移行先であることを認識できる。
サーバ200−3は、IPパケットを受信すると、VM3(400−3)に割り当てる記憶領域を確保するためにログイン処理を実行する(ステップS304〜ステップS308)。なお、ステップS304〜ステップS308の処理は、ステップS100〜ステップS104と同一の処理であるため説明を省略する。
ネットワーク装置100−2は、ログイン処理の完了後、接続管理テーブル910、及び変換テーブル950を更新する(ステップS309、ステップS310)。具体的な更新処理については図21を用いて後述する。
また、ネットワーク装置100−2は、新たに割り当てられた記録領域のブロックに対応するビットマップを生成する(ステップS311)。その後、ネットワーク装置100−2は、WAN600を介してDestination情報を含むIPパケットをネットワーク装置100−1に対して送信する(ステップS312)。
ネットワーク装置100−1は、Destination情報を含むIPパケットを受信すると、監視テーブル940及び接続管理テーブル910を更新する(ステップS313、ステップS314)。具体的な更新処理については図16を用いて後述する。
なお、Destination情報には、ステップS304〜ステップS308の処理によって取得されたサーバポート及びストレージポートが含まれる。
ライブマイグレーション処理では、ハイパバイザ250がメモリ220上で管理するVM3(400−3)の情報を、移行先のサーバ200−3に転送する(ステップS315)。なお、ライブマイグレーション処理は、公知の技術であるため説明を省略する。
なお、移行対象となるデータは、VM400のレジスタ情報及びメモリ120上に格納されるVM400の情報である。したがって、ストレージ300−1に格納される情報より容量が小さいため短時間で移行できる。
このとき、ストレージ300−1に格納される情報は、ストレージ300−3には移行されていない。
サーバ200−1は、ライブマイグレーション処理の完了後、PLOGOフレームをストレージ300−1に対して送信する(ステップS316)。これは、VM3(400−3)に割り当てられた記憶領域を開放するための処理である。
ネットワーク装置100−1は、PLOGOフレームを受信すると、接続管理テーブル910及び変換テーブル950を更新する(ステップS317、ステップS318)。具体的な更新処理については図16を用いて後述する。
ストレージ300−1には、VM3(400−3)が使用していたデータが格納されている。そこで、本実施形態では、当該ストレージ300−1に格納されるデータは、移行元の拠点500−1にそのまま残す。すなわち、移行元のストレージ300−1に格納されるデータは、移行先のストレージ300−3には移行されない。
ネットワーク装置100−1は、SAN800−1に含まれるスイッチにPLOGOフレームを転送せず、ストレージ300−1の代わりにACCフレームをサーバ200−1に対して送信する(ステップS319)。
これによって、サーバ200−1は、処理が正常に終了したものと認識する。一方、ストレージ300−1には、VM3(400−3)が使用していたデータがそのまま残ることとなる。
次に、ネットワーク装置100の処理について説明する。
図16は、本発明の実施形態のネットワーク装置100−1が実行する処理を説明するフローチャートである。
ネットワーク装置100−1は、ライブマイグレーション処理の開始メッセージを含むIPパケットを受信すると(ステップS400)、当該IPパケットを解析する。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、受信したIPパケットがFCIPパケットであるか否かを判定する。これは、IPパケットがFCIPパケットである場合には、フレームの転送処理が必要であるためである。ここでは、IPパケットがFCIPパケットではないと判定される。
ネットワーク装置100−1は、IPパケットから送信元のサーバ200−1のIPアドレス及び送信先のサーバ200−3のIPアドレスを取得する。
ここで、ネットワーク装置100−1は、LAN_IF130を介して当該IPパケットを受信しているため、ネットワーク装置100−1が属する拠点500−1が移行元であることが分かる。
以上がステップS400の処理である。
次に、ネットワーク装置100−1は、WAN600を介して受信したIPパケットをネットワーク装置100−2に転送する(ステップS401)。
ネットワーク装置100−1は、監視テーブル940に新たなエントリを追加する(ステップS402)。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、監視テーブル940にエントリを生成し、当該エントリのソース_IP941に取得されたサーバ200−1のIPアドレスを格納し、また、宛先_IP942に取得されたサーバ200−3のIPアドレスを格納する。
また、ネットワーク装置100−1は、生成されたエントリの属性943に「Source」を格納する。
ステップS402の処理が完了すると、監視テーブル940は図8Aに示すような状態になる。
以上がステップS402における更新処理である。
次に、ネットワーク装置100−1は、接続管理テーブル910を更新する(ステップS403)。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、監視テーブル940を参照し、サーバ管理テーブル930からサーバ_IP932がソース_IP941と一致するエントリを検索する。ネットワーク装置100−1は、検索されたエントリからサーバ_IF_ID931を取得する。
ネットワーク装置100−1は、接続管理テーブル910からサーバ_IF_ID911が取得されたサーバ_IF_ID931と一致するエントリを検索する。
ネットワーク装置100−1は、検索されたエントリの状態915が「no」であるか否かを判定する。
検索されたエントリの状態915が「no」であると判定された場合、ネットワーク装置100−1は、状態915を「実行中」に変更する。検索されたエントリの状態915が「no」でないと判定された場合、ネットワーク装置100−1は、状態915の変更を行わない。
図17は、ステップS403の処理が完了した後の接続管理テーブル910の状態を示す。
以上がステップS403の更新処理である。
ネットワーク装置100−1は、IPパケットを転送した後、ネットワーク装置100−2装置からの応答を待つ。
ネットワーク装置100−1は、Destination情報を含むIPパケットを受信すると(ステップS404)、変換テーブル950を更新する(ステップS405)。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、IPパケットがFCIPパケットであるか否かを判定する。ここでは、IPパケットはFCIPパケットではないと判定される。ネットワーク装置100−1は、Destination情報からサーバポート及びストレージポートの識別子を取得し、また、IPパケットから送信元のサーバ200−3のIPアドレスを取得する。
ネットワーク装置100−1は、変換テーブル950にエントリを生成し、生成されたエントリのサーバポート956、ストレージポート957に取得されたサーバポート及びストレージポートの識別子を格納する。また、ネットワーク装置100−1は、生成されたエントリの転送先_IP959に取得されたサーバ200−3のIPアドレスを格納する。
図18は、ステップS405の処理が完了した後の変換テーブル950の状態を示す。これによって、ネットワーク装置100−1は、データの転送先を特定できる。
以上がステップS405の更新処理である。
次に、ネットワーク装置100−1は、監視テーブル940から対応するエントリを削除する(ステップS406)。
具体的には、ネットワーク装置100−1は、監視テーブル940から宛先_IP942が取得されたサーバ200−3のIPアドレスと一致するエントリを検索する。ネットワーク装置100−1は、検索されたエントリを監視テーブル940から削除する。
ネットワーク装置100−1は、PLOGOフレームを受信すると(ステップS407)、接続管理テーブル910を更新する(ステップS408)。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、PLOGOフレームを受信したサーバ_IF140の識別子を特定する。さらに、ネットワーク装置100−1は、受信したPLOGOフレームを解析して、ストレージポートに対応するD_ID1120、及びサーバポートに対応するS_ID1130を取得する。
ネットワーク装置100−1は、接続管理テーブル910からサーバ_IF140の識別子、D_ID1120及びS_ID1130に一致するエントリを検索する。
ネットワーク装置100−1は、検索されたエントリの状態915を「実行中」から「Source」に変更する。
さらに、ネットワーク装置100−1は、接続管理テーブル910からサーバ_IF140の識別子に一致するエントリを検索する。なお、状態915が「Source」に変更されたエントリは検索処理からは除かれる。
ネットワーク装置100−1は、検索されたエントリの状態915を「実行中」から「no」に変更する。
図19は、ステップS408の処理が完了した後の接続管理テーブル910の状態を示す。
以上がステップS408の更新処理である。
次に、ネットワーク装置100−1は、変換テーブル950を更新する(ステップS409)。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、PLOGOフレームを解析し、D_ID1120、S_ID1130及びLUN1220を取得する。
次に、ネットワーク装置100−1は、ステップS405において生成したエントリのサーバポート953、ストレージポート954及びLUN955に取得されたS_ID1130、D_ID1120、及びLUN1220を格納する。
図20は、ステップS409の処理が完了した後の変換テーブル950の状態を示す。
以上がステップS409の更新処理である。
次に、ネットワーク装置100−1は、サーバ200−1にACCフレームを送信し(ステップS410)、処理を終了する。
図21は、本発明の実施形態のネットワーク装置100−2が実行する処理を説明するフローチャートである。
ネットワーク装置100−2は、ライブマイグレーションの開始メッセージを含むIPパケットを受信すると(ステップS420)、当該IPパケットを解析する。具体的には、以下のような処理が実行される。
ネットワーク装置100−2は、IPパケットがFCIPパケットであるか否かを判定する。ここでは、IPパケットはFCIPパケットではないと判定される。ネットワーク装置100−2は、IPパケットから送信元のサーバ200−1のIPアドレス及び送信先のサーバ200−3のIPアドレスを取得する。
ここで、ネットワーク装置100−2は、WAN_IF160を介して当該IPパケットを受信しているため、ネットワーク装置100−2が属する拠点500−2が移行先であることが分かる。
以上がステップS420の処理である。
次に、ネットワーク装置100−2は、LAN700−2を介して受信したIPパケットをサーバ200−3に転送する(ステップS421)。また、ネットワーク装置100−2は、監視テーブル940に新たなエントリを追加する(ステップS422)。具体的には、以下のような処理が実行される。
ネットワーク装置100−2は、監視テーブル940にエントリを生成し、当該エントリのソース_IP941にサーバ200−1のIPアドレスを格納し、また、宛先_IP942にサーバ200−3のIPアドレスを格納する。
また、ネットワーク装置100−2は、生成されたエントリの属性943に「Destination」を格納する。
ステップS422の処理が完了すると、監視テーブル940は図8Bに示すような状態になる。
以上がステップS422における更新処理である。
次に、ネットワーク装置100−2は、接続管理テーブル910を更新する(ステップS423)。具体的には、ネットワーク装置100−2は、図11及び図12に示す処理を実行する。
図22は、ステップS423の処理が完了した後の接続管理テーブル910の状態を示す。
ネットワーク装置100−2は、ビットマップを生成する(ステップS424)。このとき、当該ビットマップには一意な識別子が付与される。
ネットワーク装置100−2は、接続管理テーブル910及び変換テーブル950を更新する(ステップS425、ステップS426)。具体的には、以下のような処理が実行される。
ネットワーク装置100−2は、ステップS423において生成されたエントリのビットマップ_ID916にビットマップの識別子を格納し、当該エントリの状態915を「no」から「Destination」に変更する。
また、ネットワーク装置100−2は、接続管理テーブル910を参照して、ステップS423において生成されたエントリのサーバポート912及びストレージポート913を取得する。
ネットワーク装置100−2は、拠点接続管理テーブル920から、ネットワーク装置_IP922が監視テーブル940のソース_IP941と一致するエントリを検索する。ネットワーク装置100−2は、検索されたエントリのネットワーク装置_IP922を取得する。
ネットワーク装置100−2は、変換テーブル950に新たにエントリを生成し、生成されたエントリのサーバポート953及びストレージポート954に取得されたサーバポート912及びストレージポート913を格納する。
また、ネットワーク装置100−2は、生成されたエントリの転送先_IP959に、取得されたネットワーク装置_IP922を格納する。
図23は、ステップS425の処理が完了した後の接続管理テーブル910の状態を示す。図24は、ステップS426の処理が完了した後の変換テーブル950の状態を示す。
以上がステップS425、及びステップS426の更新処理である。
次に、ネットワーク装置100−2は、Destination情報を含むIPパケットをネットワーク装置100−1に送信し(ステップS427)、監視テーブル940から対応するエントリを削除して処理を終了する(ステップS428)。
具体的には、ネットワーク装置100−2は、監視テーブル940からIPパケットの送信先及び送信元のIPアドレスと一致するエントリを検索する。ネットワーク装置100−2は、検索されたエントリを監視テーブル940から削除する。
なお、ステップS426において、ネットワーク装置100−2は、ネットワーク装置100−1に問い合わせることによって、VM3(400−3)についての情報を取得してもよい。具体的には、ネットワーク装置100−2は、拠点500−1におけるサーバポート、ストレージポート及びLUNを取得する。
[ライブマイグレーション処理の完了後]
ライブマイグレーション処理が完了した後のネットワークシステムの処理について説明する。
図25A及び図25Bは、本発明の実施形態におけるライブマイグレーション処理後の処理の流れを説明するシーケンス図である。
まず、図25Aを用いてデータの書き込み処理について説明する。
サーバ200−3は、データの書き込みを示すFCP_CMNDフレームをストレージ300−3に対して送信する(ステップS500)。
ネットワーク装置100−2は、FCP_CMNDフレームを受信すると接続管理テーブル910を更新する(ステップS501)。
ネットワーク装置100−2は、受信したFCP_CMNDフレームをSAN800−2に含まれるスイッチに転送する。さらに、ネットワーク装置100−2は、同一のFCP_CMNDフレームをカプセル化してFCIPパケットに変換し、変換テーブル950を参照して、ネットワーク装置100−1に対して転送する(ステップS502)。
これは、移行される前に使用されていたストレージ300−1にも同一のデータを反映させるためである。
SAN800−2に含まれるスイッチは、FCP_CMNDフレームを受信すると、当該フレームをストレージ300−3に転送する。
ストレージ300−3は、FCP_CMNDフレームを受信すると、応答としてFCP_XFER_RDYフレームをサーバ200−3に対して送信する(ステップS503)。
SAN800−2に含まれるスイッチは、FCP_XFER_RDYフレームを受信すると、当該フレームをネットワーク装置100−2に転送する。ネットワーク装置100−2は、FCP_XFER_RDYフレームを受信すると、当該フレームを転送することなく移行元の拠点から送信されるFCP_XFER_RDYフレームを待つ。
これは、移行元のストレージ300−1にもデータを反映させるために、当該ストレージ300−1の書き込み許可を待つ必要があるためである。
一方、ネットワーク装置100−1は、FCIPパケットを受信すると、当該FCIPパケットをデカプセル化してFCP_CMNDフレームに変換し、当該フレームを解析して変換テーブル950を更新する(ステップS504)。
また、ネットワーク装置100−1は、変換されたFCP_CMNDフレームをストレージ300−1に対して転送する(ステップS505)。
SAN800−1に含まれるスイッチは、FCP_CMNDフレームを受信すると、当該フレームをストレージ300−1に転送する。
ストレージ300−1は、FCP_CMNDフレームを受信すると、ネットワーク装置100−1に対してFCP_XFER_RDYフレームを送信する(ステップS506)。
SAN800−1に含まれるスイッチは、FCP_XFER_RDYフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。
ネットワーク装置100−1は、FCP_XFER_RDYフレームを受信すると、当該フレームをカプセル化してFCIPパケットに変換し、変換テーブル950を参照して当該FCIPパケットをネットワーク装置100−2に対して転送する(ステップS507)。
ネットワーク装置100−2は、FCIPパケットを受信すると、当該パケットをデカプセル化してフレームに変換する。ここで、ネットワーク装置100−2は、2つめのFCP_XFER_RDYフレームを受信したことを契機に、当該FCP_XFER_RDYフレームをサーバ200−3に転送する。
サーバ200−3は、FCP_XFER_RDYフレームを受信すると、書き込むデータを含むFCP_DATAフレームをストレージ300−3に対して送信する(ステップS508)。
ネットワーク装置100−2は、FCP_DATAフレームを受信すると、当該フレームをストレージ300−3に転送する。さらに、ネットワーク装置100−2は、同一のFCP_DATAフレームをカプセル化してFCIPパケットに変換し、変換テーブル950を参照して、ネットワーク装置100−1に対して転送する(ステップS509)。
SAN800−2に含まれるスイッチは、FCP_DATAフレームを受信すると、当該フレームをストレージ300−3に転送する。
ストレージ300−3は、FCP_DATAフレームを受信すると、応答としてFCP_RSPフレームをネットワーク装置100−2に対して送信する(ステップS510)。
SAN800−2に含まれるスイッチは、FCP_RSPフレームを受信すると、当該フレームをネットワーク装置100−2に転送する。ネットワーク装置100−2は、FCP_RSPフレームを受信すると、当該フレームを転送することなく移行元の拠点500から送信されるFCP_RSPフレームを待つ。
これは、移行元のストレージ300−1にもデータが反映されたことを確かめるためである。
一方、ネットワーク装置100−1は、FCIPパケットを受信すると、当該FCIPパケットをデカプセル化してFCP_DATAフレームに変換し、当該フレームをストレージ300−1に対して転送する(ステップS511)。
SAN800−1に含まれるスイッチは、FCP_DATAフレームを受信すると、当該フレームをストレージ300−1に転送する。
ストレージ300−1は、FCP_DATAフレームを受信すると、応答としてFCP_RSPフレームをネットワーク装置100−1に対して送信する(ステップS512)。
SAN800−1に含まれるスイッチは、FCP_RSPフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。
ネットワーク装置100−1は、FCP_RSPフレームを受信すると、当該フレームをカプセル化してFCIPパケットに変換し、変換テーブル950を参照して当該FCIPパケットをネットワーク装置100−2に対して転送する(ステップS513)。
ネットワーク装置100−2は、FCIPパケットを受信すると、当該パケットをデカプセル化してフレームに変換する。ここで、ネットワーク装置100−2は、2つめのFCP_RSPフレームを受信したことを契機に、当該FCP_RSPフレームをサーバ200−3に転送する。
このとき、ネットワーク装置100−2は、ビットマップを更新し、データの書き込みを終了する(ステップS514)。具体的には、データが書き込まれたブロックに対応するビットが更新される。
次に、図25Bを用いてデータの読み出し処理について説明する。
まず、サーバ200−3は、データの読み出しを示すFCP_CMNDフレームをストレージ300−3に対して送信する(ステップS515)。
ネットワーク装置100−2は、FCP_CMNDフレームを受信すると、ビットマップを参照して対象となるデータがストレージ300−3に格納されるか否かを判定する。これは、ライブマイグレーション処理の実行直後では、ストレージ300−3にデータが格納されておらず、ストレージ300−1にデータが格納されているためである。
ここでは、ストレージ300−3に要求されたデータが格納されていない場合を想定する。したがって、ネットワーク装置100−2は、移行元の拠点からデータを取得するための処理を実行する。
ネットワーク装置100−2は、受信したFCP_CMNDフレームをカプセル化してFCIPパケットに変換し、変換テーブル950を参照して、変換されたFCIPパケットをネットワーク装置100−1に対して転送する。
ネットワーク装置100−1は、FCIPパケットを受信すると、当該パケットをデカプセル化してフレームに変換し、変換されたFCP_CMNDフレームをストレージ300−1に対して転送する(ステップS516)。
SAN800−1に含まれるスイッチは、FCP_CMNDフレームを受信すると、当該フレームをストレージ300−1に転送する。
ストレージ300−1は、FCP_CMNDフレームを受信すると、所定のデータを読み出し、読み出されたデータを含むFCP_DATAフレームをネットワーク装置100−1に対して送信する(ステップS517)。
SAN800−1に含まれるスイッチは、FCP_DATAフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。
ネットワーク装置100−1は、FCP_DATAフレームを受信すると、当該フレームをカプセル化してFCIPパケットに変換し、変換テーブル950を参照して、変換されたFCIPパケットをネットワーク装置100−2に対して転送する(ステップS518)。
ネットワーク装置100−2は、FCIPパケットを受信すると、当該パケットをデカプセル化してフレームに変換し、変換テーブル950を参照して、FCP_DATAフレームをサーバ200−3に転送する。これによって、サーバ200−3から要求されたデータが読み出されたことになる。
また、このとき、ネットワーク装置100−2は、受信したFCP_RSPフレームを一時的にバッファリングする(ステップS519)。これは、移行元のストレージ300−1から読み出されたデータを移行先のストレージ300−3に反映させるためである。
一方、ストレージ300−1は、全てのデータが読み出されるとFCP_RSPフレームをネットワーク装置100−1に対して送信する(ステップS520)。
SAN800−1に含まれるスイッチは、FCP_RSPフレームを受信すると、当該フレームをネットワーク装置100−1に転送する。
ネットワーク装置100−1は、FCP_RSPフレームを受信すると、当該フレームをカプセル化してFCIPパケットに変換し、変換テーブル950を参照して、変換されたパケットをネットワーク装置100−2に対して転送する(ステップS521)。
ネットワーク装置100−2は、FCIPパケットを受信すると、当該パケットをデカプセル化してフレームに変換し、変換テーブル950を参照して、変換されたFCP_RSPフレームをサーバ200−3に転送する。
また、ネットワーク装置100−2は、FCP_RSPフレームの受信を契機に、バッファリングされたデータをストレージ300−3に書き込む。まず、ネットワーク装置100−2は、FCP_CMNDフレームをストレージ300−3に対して送信する(ステップS522)。
SAN800−2に含まれるスイッチは、FCP_CMNDフレームを受信すると、当該フレームをストレージ300−3に転送する。
ストレージ300−3は、FCP_CMNDフレームを受信すると、応答としてFCP_XFER_RDYフレームをネットワーク装置100−2に対して送信する(ステップS523)。
SAN800−2に含まれるスイッチは、FCP_XFER_RDYフレームを受信すると、当該フレームをネットワーク装置100−2に転送する。
ネットワーク装置100−2は、FCP_XFER_RDYフレームを受信すると、バッファリングされたデータを含むFCP_DATAフレームをサーバ200−3に対して送信する(ステップS524)。
SAN800−2に含まれるスイッチは、FCP_DATAフレームを受信すると、当該フレームをストレージ300−3に転送する。
ストレージ300−3は、FCP_CMNDフレームを受信し、全てのデータが書き込まれると、応答としてFCP_RSPフレームをネットワーク装置100−2に対して送信する(ステップS525)。
SAN800−2に含まれるスイッチは、FCP_RSPフレームを受信すると、当該フレームをネットワーク装置100−2に転送する。
ネットワーク装置100−2は、FCP_RSPフレームを受信すると、ビットマップを更新する(ステップS526)。
以上の処理によって、移行元のストレージ300−1から読み出されたデータは、移行先のストレージ300−3に反映されるため、以後同一のデータは、ストレージ300−3から読み出されこととなる。具体的には以下のような処理になる。
サーバ200−3は、データの読み出しを示すFCP_CMNDフレームをストレージ300−3に対して送信する(ステップS527)。
ネットワーク装置100−2は、FCP_CMNDフレームを受信すると、ビットマップを参照して対象となるデータがストレージ300−3に格納されるか否かを判定する。ここでは、ストレージ300−3に対象となるデータが格納されるものと想定する。
ネットワーク装置100−2は、受信したFCP_CMNDフレームをストレージ300−3に対して転送する。
SAN800−2に含まれるスイッチは、FCP_CMNDフレームを受信すると、当該フレームをストレージ300−3に転送する。
ストレージ300−3は、FCP_CMNDフレームを受信すると、所定のデータを読み出し、読み出されたデータを含むFCP_DATAフレームをサーバ200−3に対して送信する(ステップS528)。
SAN800−2に含まれるスイッチは、FCP_DATAフレームを受信すると、当該フレームをネットワーク装置100−2に転送する。
ネットワーク装置100−2は、FCP_DATAフレームを受信すると、当該フレームをサーバ200−3に転送する。
ストレージ300−2は、全てのデータが読み出されるとFCP_RSPフレームをサーバ200−3に対して送信する(ステップS529)。
SAN800−2に含まれるスイッチは、FCP_RSPフレームを受信すると、当該フレームをネットワーク装置100−2に転送する。
ネットワーク装置100−2は、FCP_RSPフレームを受信すると、当該FCP_RSPフレームをサーバ200−3に転送して処理を終了する。
前述のような処理によってVM400は、移行先と移行元のストレージの共有が可能となる。
すなわち、ライブマイグレーション処理後において、ネットワーク装置100は、読み出し要求を受けると、移行先の拠点500、すなわち自拠点500のストレージ300に存在するデータについては自拠点500のストレージ300から読み出し、自拠点500のストレージ300に存在しないデータについては移行元の拠点500のストレージ300から読み出すように制御する。これによって、移行元のストレージ300に格納されたデータを移行先でも共有することが可能となる。
また、ネットワーク装置100は、一度読み出されたデータを自拠点500のストレージ300に書き込みことによって、同一データを高速に読み出せるようにする。
一方、ネットワーク装置100は、書き込み要求を受けると、自拠点500のストレージ300及び他の拠点のストレージ300の両方にデータを書き込むように制御する。これによって、移行先のストレージ300における更新データが、移行元のストレージ300にも反映されるため、データの整合性を保つことができる。
次に、ネットワーク装置100の処理について説明する。
図26及び図27は、本発明の実施形態のネットワーク装置100−2が実行する処理を説明するフローチャートである。
図26は、図25Aに示すシーケンス図におけるネットワーク装置100−2の処理の流れを示す。図27は、図25Bに示すシーケンス図におけるネットワーク装置100−2の処理の流れを示す。
まず、図26を用いて書き込み処理について説明する。
ネットワーク装置100−2は、サーバ200−3からデータの書き込みを示すFCP_CMNDフレームを受信すると、FCP_CMNDフレームを解析する。具体的には以下のような処理が実行される。
まず、ネットワーク装置100−2は、FCP_CMNDフレームを受信したサーバ_IF140を特定し、特定されたサーバ_IF140の識別子を取得する。また、ネットワーク装置100−2は、FCP_CMNDフレームを解析して、D_ID1120、及びS_ID1130を取得する。
ネットワーク装置100−2は、接続管理テーブル910から、取得されたサーバ_IF140の識別子、D_ID1120、及びS_ID1130に一致するエントリを検索する。
ネットワーク装置100−2は、検索されたエントリの状態915が「no」であるか否かを判定する。ここでは、エントリの状態915が「Destination」であるため、検索されたエントリの状態915が「no」でないと判定される。
また、エントリの状態915が「Destination」であるため、ネットワーク装置100−2は、移行元及び移行先のストレージ300にフレームを転送する必要があると判定する。
なお、ネットワーク装置100−2は、解析結果として、CDB1230の情報も合わせて取得する。
次に、ネットワーク装置100−2は、当該FCP_CMNDフレームをSAN800−2に含まれるスイッチに転送する(ステップS601)。また、ネットワーク装置100−2は、接続管理テーブル910を参照してLUNが登録されているか否かを判定する(ステップS602)。ステップS602の処理はステップ222と同一であるため説明を省略する。
LUNが登録させていると判定された場合、ネットワーク装置100は、ステップS604に進む。
LUNが登録されていないと判定された場合、ネットワーク装置100は、対応するエントリのLUN914にLUNを格納する(ステップS603)。なお、ステップS603の処理は、ステップS223と同一であるため説明を省略する。
ネットワーク装置100−2は、FCP_CMNDフレームをカプセル化してFCIPパケットに変換し、当該FCIPパケットをネットワーク装置100−1に対して転送する(ステップS604)。具体的には、以下のような処理が実行される。
ネットワーク装置100−2は、変換テーブル950から、サーバポート953及びストレージポート954が、取得されたS_ID1130及びD_ID1120と一致するエントリを検索する。ネットワーク装置100−2は、検索されたエントリの転送先_IP959を取得する。
ネットワーク装置100−2は、取得された転送先_IP959のIPアドレスを宛先としてIPヘッダに含め、当該IPヘッダを付与することによってFCP_CMNDフレームをFCIPパケットに変換する。
ネットワーク装置100−2は、変換されたFCIPパケットをネットワーク装置100−1に転送する。ここでは、ネットワーク装置100−1のIPアドレス「200.1.2.1」宛にFCIPパケットが転送される。
以上がステップS604の処理である。
次に、ネットワーク装置100−2は、ストレージ300−3及びストレージ300−1から送信されるFCP_XFER_RDYフレームを待つ(ステップS605)。
ネットワーク装置100−2は、ストレージ300−3及びストレージ300−1のそれぞれからFCP_XFER_RDYフレームを受信すると、接続管理テーブル910を参照して、FCP_XFER_RDYフレームをサーバ200−3に転送する(ステップS606)。具体的には以下のような処理が実行される。
まず、ネットワーク装置100−2は、ネットワーク装置100−1から受信したFCIPパケットをデカプセル化してFCP_XFER_RDYフレームに変換する。
ネットワーク装置100−2は、変換されたFCP_XFER_RDYフレームを解析してD_ID1120及びS_ID1130を取得する。
ネットワーク装置100−2は、接続管理テーブル910から、サーバポート912及びストレージポート913が、取得されたS_ID1130及びD_ID1120と一致するエントリを検索する。ネットワーク装置100−2は、検索されたエントリのサーバ_IF_ID911を取得する。
ネットワーク装置100−2は、取得されたサーバ_IF_ID911に対応するサーバ_IF140を特定し、当該サーバ_IF140に接続されるサーバ200−3にFCP_XFER_RDYフレームを転送する。
以上がステップS606の処理である。
次に、ネットワーク装置100−2は、FCP_DATAフレームを受信すると(ステップS607)、転送する必要があるか否かを判定する。具体的には、ステップS600と同一の処理が実行される。ここでは、エントリの状態915が「Destination」であるため、転送する必要があると判定される。
したがって、ネットワーク装置100−2は、FCP_DATAフレームをSAN800−2に含まれるスイッチ、及び、ネットワーク装置100−1に転送する(ステップS608)。なお、ステップS608の処理は、ステップS601及びステップS604と同一であるため説明を省略する。
ネットワーク装置100−2は、ストレージ300−3及びストレージ300−1からFCP_RSPフレームを受信するまで待つ(ステップS609)。
ネットワーク装置100−2は、ストレージ300−3及びストレージ300−1のそれぞれからFCP_RSPフレームを受信すると、接続管理テーブル910を参照してFCP_RSPフレームをサーバ200−3に転送する(ステップS610)。なお、ステップS610の処理は、ステップS606と同一であるため説明を省略する。
ネットワーク装置100−2は、ビットマップを更新し(ステップS611)、処理を終了する。具体的には以下のような処理が実行される。
ネットワーク装置100−2は、ステップS600において取得されたCDB1230のLBA1232及びTransfer_length1233に基づいて、データが書き込まれた領域を特定する。
ネットワーク装置100−2は、特定された領域のブロックに対応するビットにチェックを入れる。
以上がステップS611の処理である。
次に、図27を用いて読み出し処理について説明する。
ネットワーク装置100−2は、サーバ200−3からデータの読み出しを示すFCP_CMNDフレームを受信すると、読み出しの対象となるデータがストレージ300−3に格納されているか否かを判定する(ステップS620)。具体的には以下のような処理が実行される。
まず、ネットワーク装置100−2は、FCP_CMNDフレームを受信したサーバ_IF140を特定し、特定されたサーバ_IF140の識別子を取得する。また、ネットワーク装置100−2は、FCP_CMNDフレームを解析して、D_ID1120、及びS_ID1130を取得する。
ネットワーク装置100−2は、接続管理テーブル910から、取得されたサーバ_IF140の識別子、D_ID1120、及びS_ID1130に一致するエントリを検索する。
ネットワーク装置100−2は、検索されたエントリの状態915が「no」であるか否かを判定する。ここでは、エントリの状態915が「Destination」であるため、検索されたエントリの状態915が「no」でないと判定される。
ネットワーク装置100−2は、エントリの状態915が「Destination」であるため、移行先のストレージ300−3にデータが格納されているか判定する。
まず、ネットワーク装置100−2は、検索されたエントリのビットマップ_ID916から識別子を参照して、対応するビットマップを取得する。
ネットワーク装置100−2は、FCP_CMNDフレームから、LBA1232及びTransfer_length1233を取得する。ネットワーク装置100−2は、取得されたLBA1232及びTransfer_length1233に基づいて読み出し対象のブロックを特定する。
ネットワーク装置100−2は、取得されたビットマップを参照して、特定されたブロックに対応するビットのすべてにチェックがあるか否かを判定する。
対応するビットのすべてにチェックがある場合、ネットワーク装置100−2は、読み出し対象となるデータがストレージ300−3に格納されていると判定する。一方、一以上のビットにチェックがない場合、読み出し対象となるデータがストレージ300−3に格納されていないと判定される。
以上がステップS620の処理である。
読み出しの対象となるデータがストレージ300−3に格納されていないと判定された場合、ネットワーク装置100−2は、変換テーブル950を参照し、FCP_CMNDフレームをカプセル化したFCIPパケットをネットワーク装置100−1に対して送信する(ステップS621)。
これは、移行前のVM3(400−3)が使用していたストレージ300−1からデータを取得するためである。なお、FCIPパケットの変換及び送信先の決定方法は、ステップS604と同一であるため説明を省略する。
ネットワーク装置100−2は、ネットワーク装置100−1から送信されるFCP_DATAフレームの受信を待つ。
ネットワーク装置100−2は、FCP_DATAフレームがカプセル化されたFCIPパケットを受信すると(ステップS622)、当該FCIPパケットをデカプセル化してFCP_DATAフレームに変換する。
ネットワーク装置100−2は、変換テーブル950を参照して、サーバ200−3に変換されたFCP_DATAフレームを転送する(ステップS623)。また、ネットワーク装置100−2は、FCP_DATAフレームをメモリ120上にバッファリングする(ステップS624)。なお、FCP_DATAフレームの転送方法は、ステップS606と同一であるため説明を省略する。
ネットワーク装置100−2は、読み出されたデータをストレージ300−3に反映させるため、書き込みを示すFCP_CMNDフレームをストレージ300−3に送信する(ステップS625)。なお、ネットワーク装置100−2は、ステップS624の検索結果を用いることによって転送先のストレージ300−3を特定できる。
ネットワーク装置100−2は、ストレージ300−3からFCP_XFER_RDYフレームを受信すると(ステップS626)、バッファリングされたFCP_DATAフレームをストレージ300−3に送信する(ステップS627)。
ネットワーク装置100−2は、ストレージ300−3からFCP_RSPフレームを受信すると(ステップS628)、ビットマップを更新し(ステップS629)、処理を終了する。具体的には、データが反映されたブロックに対応するビットが更新される。なお、更新するビットの特定方法は、ステップS611と同一の方法を用いればよい。
ステップS620において、読み出しの対象となるデータがストレージ300−3に格納されていると判定された場合、ネットワーク装置100−2は、接続管理テーブル910を参照して、FCP_CMNDフレームをストレージ300−3に転送する(ステップS630)。
ネットワーク装置100−2は、ストレージ300−3からFCP_DATAフレームを受信すると(ステップS631)、接続管理テーブル910を参照して、サーバ200−3に受信したFCP_DATAフレームを転送する(ステップS632)。
ネットワーク装置100−2は、ストレージ300−3からFCP_RSPフレームを受信すると(ステップS633)、接続管理テーブル910を参照して、サーバ200−3に受信したFCP_RSPフレームを転送し(ステップS634)、処理を終了する。
図28は、本発明の実施形態におけるネットワーク装置100−1が実行する処理を説明するフローチャートである。
図28では、図25A及び図25Bに示すシーケンス図におけるネットワーク装置100−1の処理の流れを示す。
ネットワーク装置100−1は、ネットワーク装置100−2からIPパケットを受信すると(ステップS700)、FCP_CMNDフレームがカプセル化されたIPパケットであるか否かを判定する(ステップS701)。
具体的には、ネットワーク装置100−1は、FCIPパケットをデカプセル化してフレームに変換し、変換されたフレームがFCP_CMNDフレームであるか否かを判定する。なお、ネットワーク装置100−2は、IPヘッダから送り先のIPアドレスを取得する。
FCP_CMNDフレームでないと判定された場合、ネットワーク装置100−1は、ステップS704に進む。
FCP_CMNDフレームであると判定された場合、ネットワーク装置100−1は、当該フレームの転送先のLUNが変換テーブル950に登録されているか否かを判定する(ステップS702)。具体的には以下のような処理が実行される。
ネットワーク装置100−1は、FCP_CMNDフレームを解析して、S_ID1130、D_ID1120を取得する。
ネットワーク装置100−1は、変換テーブル950の転送先952を参照して、取得されたIPアドレス、S_ID1130及びD_ID1120情報と一致するエントリを検索する。
ネットワーク装置100−1は、検索されたエントリのLUN958にLUNが格納されているか否かを判定する。
検索されたエントリのLUN958にLUNが格納されている場合には、転送先のLUNが変換テーブル950に登録されていると判定される。
以上がステップS702の処理である。
転送先のLUNが変換テーブル950に登録されていると判定された場合、ネットワーク装置100−1は、ステップS704に進む。
転送先のLUNが変換テーブル950に登録されていていないと判定された場合、ネットワーク装置100−1は、対応するエントリのLUN958に、FCP_CMNDフレームのLUN1220を格納する(ステップS703)。
ネットワーク装置100−1は、変換テーブル950を参照して、FCP_CMNDフレームを変換する(ステップS704)。具体的には、以下のような処理を実行する。
ネットワーク装置100−1は、FCP_CMNDフレームを解析して、変換テーブル950の転送先952を参照して、対応するエントリを検索する。なお、検索方法はステップS702と同一の方法であるため説明を省略する。
ネットワーク装置100−1は、対応するエントリのサーバポート953、ストレージポート954、及びLUN955を取得する。
ネットワーク装置100−1は、FCP_CMNDフレームのS_ID1130の値を、取得されたストレージポート954の値に変換する。ネットワーク装置100−1は、FCP_CMNDフレームのD_ID1120の値を、取得されたサーバポート953の値に変換する。さらに、ネットワーク装置100−1は、FCP_CMNDフレームのLUN1220の値を、取得されたLUN955の値に変換する。
以上がステップS704の処理である。
ネットワーク装置100−1は、変換されたFCP_CMNDフレームをSAN800−1に含まれるスイッチに転送し(ステップS705)、処理を終了する。
図29は、本発明の実施形態におけるネットワーク装置100−1が実行する処理を説明するフローチャートである。
図29では、図25A及び図25Bに示すシーケンス図におけるネットワーク装置100−1の処理の流れを示す。
ネットワーク装置100−1は、SAN800−1に含まれるスイッチからフレームを受信すると(ステップS710)、フレームを解析して転送する必要があるか否かを判定する。なお、判定処理はステップS600と同一である。ここでは、転送する必要があると判定されたものとする。
ネットワーク装置100−1は、変換テーブル950を参照して受信したフレームをFCIPパケットに変換する(ステップS711)。具体的には以下のような処理が実行される。
ネットワーク装置100−1は、受信したフレームを解析して、S_ID1130及びD_ID1120を取得する。ネットワーク装置100−1は、変換テーブル950の転送元951を参照して、取得されたS_ID1130及びD_ID1120と一致するエントリを検索する。
ネットワーク装置100−1は、検索されたエントリからサーバポート956、ストレージポート957、及び転送先_IP959を取得する。
ネットワーク装置100−1は、受信したフレームのS_ID1130に取得されたストレージポート957の値を格納し、また、D_ID1120に取得されたサーバポート956を格納する。
さらに、ネットワーク装置100−1は、受信したフレームをカプセル化してFCIPパケットに変換し、当該FCIPパケットの送信先のアドレスに取得された転送先_IP959を格納する。
以上がステップS711の処理である。
ネットワーク装置100−1は、変換されたFCIPパケットをネットワーク装置100−2に転送し(ステップS712)、処理を終了する。
[元のサーバへVMを移行する場合の処理]
次に、再度、移行元にVM400に移行させるライブマイグレーション処理について説明する。
図30A及び30Bは、本発明の実施形態におけるライブマイグレーション実行後に再度実行されるライブマイグレーション処理の流れを説明するシーケンス図である。
サーバ200−3は、VM3(400−3)のライブマイグレーションの開始メッセージを含むIPパケットをサーバ200−1に対して送信する(ステップS800)。当該IPパケットには、移行元としてサーバ200−3のIPアドレスが格納され、また移行先としてサーバ200−1のIPアドレスが格納される。
ネットワーク装置100−2は、WAN600を介して受信したIPパケットをネットワーク装置100−1に転送する。このとき、ネットワーク装置100−2は、監視テーブル940及び接続管理テーブル910を更新する(ステップS801、ステップS802)。具体的な更新処理については図31を用いて後述する。
なお、ネットワーク装置100−2は、LAN_IF130からIPパケットを受信しているため、ネットワーク装置100−2が属する拠点が移行元であることを認識できる。
ネットワーク装置100−2は、監視テーブル940を参照することによって、ライブマイグレーションの対象となるサーバ200間で送受信されるフレーム及びIPパケットを判別することができる。
ネットワーク装置100−1は、IPパケットを受信すると、移行先のサーバ200−1に当該IPパケットを転送する。このとき、ネットワーク装置100−1は、監視テーブル940を更新する(ステップS803)。具体的な更新処理については図33を用いて後述する。
ネットワーク装置100−1は、監視テーブル940を参照することによって、ライブマイグレーションの対象となるサーバ200間で送受信されるフレーム及びIPパケットを判別することができる。
なお、ネットワーク装置100−1は、WAN_IF160からIPパケットを受信しているため、ネットワーク装置100−1が属する拠点が移行先であることを認識できる。
サーバ200−1は、IPパケットを受信すると、VM3(400−3)に割り当てる記憶領域を確保するためにPLOGIフレームをネットワーク装置100−1に送信する(ステップS804)。なお、PLOGIフレームのS_ID1130には、移行前のVM3(400−3)が使用していたポートアドレスが含まれ、PLOGIフレームのD_ID1120には移行前のVM3(400−3)が使用していたストレージポートが格納される。ハイパバイザ250は、マイグレーション前にログインしていたストレージ300の情報を保持しており、当該情報を用いてログイン処理が実行される。
ネットワーク装置100−1は、PLOGIフレームを受信すると、ACCフレームをサーバ200−1に送信する(ステップS805)。このとき、ネットワーク装置100−2は、PLOGIフレームを解析することによって、移行前のVM3(400−3)に割り当てられていたストレージ300−1が存在することを認識できる。
また、ネットワーク装置100−1は、接続管理テーブル910、及び変換テーブル950を更新する(ステップS806、S807)。具体的な更新処理については図33を用いて後述する。
ネットワーク装置100−1は、WAN600を介して切り戻し通知を含むIPパケットをネットワーク装置100−2に対して送信する(ステップS808)。また、ネットワーク装置100−1は、監視テーブル940を更新する(ステップS809)。
ネットワーク装置100−2は、切り戻し通知を含むIPパケットを受信すると、接続管理テーブル910、変換テーブル950、及び監視テーブル940を更新する(ステップS810、ステップS812、ステップS813)。具体的な更新処理については図31を用いて後述する。
また、ネットワーク装置100−2は、ビットマップを削除する(ステップS811)。
その後、ライブマイグレーション処理が実行される(ステップS814)。ライブマイグレーション処理では、ハイパバイザ250がメモリ220上で管理するVM3(400−3)の情報を、移行先のサーバ200−1に転送する。なお、ライブマイグレーション処理は、公知の技術であるため説明を省略する。当該処理によって、VM3(400−3)が、サーバ200−3からサーバ200−1に瞬時に移行される。
サーバ200−3は、ライブマイグレーション処理の完了後、PLOGOフレームをストレージ300−3に対して送信する(ステップS815)。これは、VM3(400−3)に割り当てられた記憶領域を開放するための処理である。
ネットワーク装置100−1は、PLOGOフレームを受信すると、当該フレームをストレージ300−3に転送する。
ストレージ300−3は、PLOGOフレームを受信すると、ACCフレームをサーバ200−1に対して送信する(ステップS816)。
ネットワーク装置100−2は、ACCフレームを受信すると、接続管理テーブル910を更新し(ステップS817)、当該フレームをサーバ200−3に転送する。
なお、ステップS815、ステップS816、及びステップS817の処理は、ステップS103、ステップS104、及びステップS105と同一の処理であるため説明を省略する。
次に、ネットワーク装置100の処理について説明する。
図31は、本発明の実施形態のネットワーク装置100−2が実行する処理を説明するフローチャートである。
ネットワーク装置100−2は、ライブマイグレーションの開始メッセージを含むIPパケットを受信すると(ステップS900)、当該IPパケットを解析する。具体的には、ネットワーク装置100−2は、IPパケットから送信元のサーバ200−3のIPアドレス及び送信先のサーバ200−1のIPアドレスを取得する。
ここで、ネットワーク装置100−2は、LAN_IF130を介して当該IPパケットを受信しているため、ネットワーク装置100−2が属する拠点500−2が移行元であることが分かる。
ネットワーク装置100−2は、WAN600を介して受信したIPパケットをネットワーク装置100−1に転送する(ステップS901)。
ネットワーク装置100−2は、監視テーブル940に新たなエントリを追加する(ステップS902)。具体的には、以下のような処理が実行される。
ネットワーク装置100−2は、監視テーブル940にエントリを生成し、当該エントリのソース_IP941に取得されたサーバ200−3のIPアドレスを格納し、また、宛先_IP942に取得されたサーバ200−1のIPアドレスを格納する。
また、ネットワーク装置100−2は、生成されたエントリの属性943に「Source」を格納する。
図32は、ステップS902の処理が完了した後の監視テーブル940の状態を示す。
以上がステップS902における更新処理である。
次に、ネットワーク装置100−2は、接続管理テーブル910を更新する(ステップS903)。具体的には、以下のような処理が実行される。
ネットワーク装置100−2は、サーバ管理テーブル930からサーバ_IP932がソース_IP941と一致するエントリを検索する。ネットワーク装置100−1は、検索されたエントリからサーバ_IF_ID931を取得する。
ネットワーク装置100−2は、接続管理テーブル910からサーバ_IF_ID911が取得されたサーバ_IF_ID931と一致するエントリを検索する。
ネットワーク装置100−2は、検索されたエントリの状態915が「no」であるか否かを判定する。
検索されたエントリの状態915が「no」であると判定された場合、ネットワーク装置100−2は、状態915を「実行中」に変更する。検索されたエントリの状態915が「no」でないと判定された場合、ネットワーク装置100−2は、状態915の変更を行わない。
以上がステップS903の更新処理である。
ネットワーク装置100−2は、IPパケットを転送した後、ネットワーク装置100−1装置からの応答を待つ。
ネットワーク装置100−2は、切り戻し通知を含むIPパケットを受信すると(ステップS904)、接続管理テーブル910を更新する(ステップS905)。具体的には、以下のような処理が実行される。
ネットワーク装置100−2は、IPパケットを解析して、宛先のIPアドレス、サーバポート、ストレージポート、及びLUNを取得する。
ネットワーク装置100−2は、サーバ管理テーブル930から、サーバ_IP932が取得されたIPアドレスと一致するエントリを検索する。ネットワーク装置100−2は、検索されたエントリからサーバ_IF_ID931を取得する。
ネットワーク装置100−2は、接続管理テーブル910から、取得されたサーバ_IF_ID931、サーバポート、ストレージポート、及びLUNと一致するエントリを検索する。さらに、ネットワーク装置100−2は、検索されたエントリの中から状態915を「Destination」であるエントリを検索する。
ネットワーク装置100−2は、検索されたエントリの状態915を「Destination」から「no」に変更し、また、ビットマップ_ID916から識別子を削除する。
以上がステップS905の更新処理である。
次に、ネットワーク装置100−2は、ビットマップ_ID916と対応するビットマップを削除する(ステップS906)。
ネットワーク装置100−2は、変換テーブル950から対応するエントリを削除する(ステップS907)。具体的には以下のような処理が実行される。
ネットワーク装置100−2は、変換テーブル950の転送元951を参照して、取得されたサーバポート、ストレージポート、及びLUNと一致するエントリを検索する。
ネットワーク装置100−2は、検索されたエントリを変換テーブル950から削除する。
以上がステップS907の処理である。
次に、ネットワーク装置100−2は、監視テーブル940から対応するエントリを削除する(ステップS908)。その後、ネットワーク装置100−2は、PLOGOフレームを待つ。
ネットワーク装置100−2は、PLOGOフレームを受信すると、ログアウト処理を実行し、処理を終了する(ステップS909)。なお、ログアウト処理は、図14と同一の処理であるため説明を省略する。
移行元に再度移行させる場合、移行先のストレージ300に格納されるデータは移行されない。これは、ネットワーク装置100が、移行元のストレージ300にも同様の更新データが反映することによって、移行先のストレージに格納されるデータとの整合性が保たれているためである。したがって、移行先のデータを移行させる必要がない。
図33は、本発明の実施形態のネットワーク装置100−1が実行する処理を説明するフローチャートである。
ネットワーク装置100−1は、ライブマイグレーションの開始メッセージを含むIPパケットを受信すると(ステップS920)、当該IPパケットを解析する。具体的には、ネットワーク装置100−1は、IPパケットから送信元のサーバ200−3のIPアドレス及び送信先のサーバ200−1のIPアドレスを取得する。
ここで、ネットワーク装置100−1は、WAN_IF160を介して当該IPパケットを受信しているため、ネットワーク装置100−1が属する拠点500−1が移行先であることが分かる。
ネットワーク装置100−1は、LAN700−1を介して受信したIPパケットをサーバ200−1に転送する(ステップS921)。
ネットワーク装置100−1は、監視テーブル940に新たなエントリを追加する(ステップS922)。具体的には、以下のような処理が実行される。
ネットワーク装置100−1は、監視テーブル940にエントリを生成し、当該エントリのソース_IP941に取得されたサーバ200−3のIPアドレスを格納し、また、宛先_IP942に取得されたサーバ200−1のIPアドレスを格納する。
また、ネットワーク装置100−2は、生成されたエントリの属性943に「Destination」を格納する。
図34は、ステップS922の処理が完了した後の監視テーブル940の状態を示す。
以上がステップS922における更新処理である。その後、ネットワーク装置100−1は、PLOGIフレームを待つ。
ネットワーク装置100−1は、PLOGIフレームを受信すると(ステップS923)、接続管理テーブル910を更新する(ステップS924)。具体的には以下のような処理が実行される。
ネットワーク装置100−1は、PLOGIフレームを解析して、サーバポート、ストレージポート、及びLUNを取得する。
ネットワーク装置100−1は、接続管理テーブル910から、取得されたサーバポート、ストレージポート、及びLUNと一致するエントリを検索する。ネットワーク装置100−1は、検索されたエントリの状態915が「no」であるか否かを判定する。
検索されたエントリの状態915が「no」である場合は通常のログイン処理(図12)が実行される。一方、エントリの状態915が「Source」であると判定された場合、ネットワーク装置100−1は、状態915を「Source」から「no」に変更し、ログイン処理を行わずにACCフレームを送信することになる。
なお、ここでは、状態915が「Source」であるため、検索されたエントリの状態915が「no」でないと判定される。
以上がステップS924の処理である。
次に、ネットワーク装置100−1は、ACCフレームをサーバ200−1に送信する(ステップS925)。ここでは、VM3(400−3)に割り当てられていたストレージ300−1をそのまま用いるため、PLOGIフレームはストレージ300−1に転送されない。すなわち、通常のログイン処理を省略できる。
ネットワーク装置100−1は、変換テーブル950から対応するエントリを削除する(ステップS926)。具体的には以下のような処理が実行される。
ネットワーク装置100−1は、変換テーブル950を参照して、取得されたストレージポート、及びサーバ200−1のIPアドレスと一致するエントリを検索する。
ネットワーク装置100−1は、検索されたエントリを変換テーブル950から削除する。
以上がステップS926の処理である。
次に、ネットワーク装置100−1は、切り戻し通知を含むIPパケットをネットワーク装置100−2に対して送信する(ステップS927)。なお、切り戻し通知には、サーバポート912及びストレージポート913が含まれる。
ネットワーク装置100−1は、監視テーブル940から対応するエントリを削除し(ステップS928)、処理を終了する。
なお本実施形態におけるフローチャートを用いて説明した処理の順番は、整合性が保たれる範囲で入れ替え可能である。例えば、フレームの転送処理と、接続管理テーブル910の更新処理とは入れ替えることができる。
本発明の一形態によれば、ライブマイグレーション処理に伴って、ネットワーク装置100が、移行先のVM400が移行元のストレージ300にアクセスできるように制御できるため、物理的に離れた拠点間のライブマイグレーション処理を実現できる。
また、本実施形態におけるライブマイグレーション処理では、ストレージ300に格納されたデータは移行させないため、瞬時にVM400を移行することができる。また、予めストレージ300のデータを移行先のストレージに反映する必要がないため、ネットワーク負荷をかけることがない。
また、ネットワーク装置100が、移行先のストレージ300において更新されたデータを移行元のストレージにも反映することによって、元のサーバ200にVM400を移行させた後もデータとの整合性が保たれる。
また、移行後のVM400からのアクセス要求に対して、ネットワーク装置100が移行元のストレージ300及び移行先のストレージ300にアクセスできるように制御しているため、既存のハイパバイザ250の構成を変更する必要がない。また、ハイパバイザ250の処理負荷をあげることなくライブマイグレーション処理が実現できる。
[変形例]
ネットワーク装置100−1が、VM400とストレージ300との間のアクセス処理を実行していたが、ハイパバイザ250が同様の処理を実行してもよい。具体的には、ハイパバイザ250が、アクセス処理部900、接続管理テーブル910、拠点接続管理テーブル920、サーバ管理テーブル930、監視テーブル940、及び変換テーブル950を備えていてもよい。
なお、ハイパバイザ250は、アクセス処理に必要な情報をネットワーク装置100に問い合わせることによって取得でき、当該情報を用いて同様の処理を実現できる。
また、ネットワークシステムにアクセス処理部900を備える計算機を備える構成でもよい。この場合、アクセス処理部900を備える計算機が、各拠点のネットワーク装置100から必要な情報を取得することによって、同様の処理が実現できる。
100 ネットワーク装置
110 プロセッサ
120 メモリ
130 LAN_IF
140 サーバ_IF
150 SAN_IF
160 WAN_IF
200 サーバ
210 プロセッサ
220 メモリ
230 LAN_IF
240 I/O_IF
250 ハイパバイザ
300 ストレージ
400 VM
500 拠点
600 WAN
700 LAN
800 SAN
900 アクセス処理部
910 接続管理テーブル
920 拠点接続管理テーブル
921 サーバ_IP
930 サーバ管理テーブル
940 監視テーブル
950 変換テーブル

Claims (18)

  1. 複数の拠点間を接続するネットワーク装置であって、
    前記複数の拠点は、第1の拠点と第2の拠点とを含み、
    前記第1の拠点には、
    第1のプロセッサ前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のインタフェースを有する複数の計算機と、
    第2のコントローラ複数の記憶媒体、及び第2のインタフェースを有する第1のストレージシステムと、
    第3のプロセッサ前記第3のプロセッサに接続される第3のメモリ、並びに、前記第3のプロセッサに接続され、前記複数の計算機及び前記第1のストレージシステムに接続するための第3のインタフェースを有する第1のネットワーク装置とが含まれ
    前記第2の拠点には、
    第4のプロセッサ、前記第4のプロセッサに接続される第4のメモリ、及び前記第4のプロセッサに接続される第4のインタフェースを有する複数の計算機と、
    第5のコントローラ、複数の記憶媒体、及び第5のインタフェースを有する第2のストレージシステムと、
    第6のプロセッサ、前記第6のプロセッサに接続される第6のメモリ、並びに、前記第6のプロセッサに接続され、前記複数の計算機及び前記第2のストレージシステムに接続するための第6のインタフェースを有する第2のネットワーク装置とが含まれ、
    前記第1のネットワーク装置は、前記第2のネットワーク装置と接続するための第7のインタフェースを有し、
    前記第2のネットワーク装置は、前記第1のネットワーク装置と接続するための第8のインタフェースを有し、
    前記第1のメモリ及び第4のメモリは、計算機の物理資源を割り当てることによって仮想計算機を生成し、前記仮想計算機を管理する仮想化部を実現するためのプログラムを格納し、
    前記仮想化部は、前記仮想計算機のレジスタ情報及び前記仮想計算機に割り当てられる仮想メモリ上の情報を、当該仮想化部が実行される計算機とは異なる他の計算機に送信することによって、計算機間で前記仮想計算機を移行させるライブマイグレーション処理部を有し
    前記第1のストレージシステム及び前記第2のストレージシステムは、前記仮想計算機に割り当てる記憶領域を生成し、
    前記第3のメモリ及び前記第6のメモリは、前記仮想計算機と前記記憶領域との間のアクセスを管理するアクセス処理部を実現するためのプログラム、及び、前記仮想計算機と前記記憶領域との接続関係を管理する接続管理情報を格納し、
    前記第1の拠点に含まれる前記複数の計算機は、第1の仮想化部によって管理される第1の仮想計算機が稼動する第1の計算機を含み、
    前記第2の拠点に含まれる前記複数の計算機は、第2の計算機を含み、
    前記第1のネットワーク装置の前記アクセス処理部は、
    前記第1の仮想化部から、前記第1の計算機から前記第2の計算機へ前記第1の仮想計算機を移行するためのライブマイグレーション処理の開始通知を受信し、
    前記第1のストレージシステムによって生成され、かつ、前記第1の計算機上で稼動する前記第1の仮想計算機に割り当てられた第1の記憶領域にアクセスするための第1のポートを特定し、
    前記第2のストレージシステムによって生成され、かつ、前記第2の計算機上で稼動する前記第1の仮想計算機に割り当てられた第2の記憶領域にアクセスするための第2のポートを特定し、
    前記第1の仮想計算機から送信されるアクセス要求を転送する装置のアドレスを取得し、
    前記第1のポートと、前記第2のポートと、前記アクセス要求を転送する装置のアドレスとを対応づけることによって変換情報を生成し、
    前記変換情報に基づいて、前記ライブマイグレーション処理が実行された後に前記第2の計算機上で稼動する前記第1の仮想計算機から送信される前記アクセス要求を制御することを特徴とするネットワーク装置。
  2. 前記接続管理情報は、任意の計算機上で稼動する前記仮想計算機の識別子と、前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子とが対応づけられた情報であり、
    前記変換情報は、移行元の計算機上で稼動する前記仮想計算機の識別子と、前記移行元の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、移行先の計算機上で稼動する前記仮想計算機の識別子と、前記移行先の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、前記アクセス要求を転送する前記ネットワーク装置のアドレスとが対応づけられた情報であり、
    前記第2のネットワーク装置の前記アクセス処理部は、
    前記第1のネットワーク装置から前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第1のネットワーク装置のアドレスを取得し、
    前記ライブマイグレーション処理の開始通知を、前記第2の計算機上で実行される第2の仮想化部に転送し、
    前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを対応づけたエントリを前記接続管理情報に追加し、
    前記追加されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
    前記第1のネットワーク装置から、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを取得し、
    前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子と、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第1のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項1に記載のネットワーク装置。
  3. 前記第2のネットワーク装置は、
    前記第2の計算機上で稼動する前記第1の仮想計算機から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記接続管理情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
    前記フラグが付与されている場合には、前記変換情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記変換情報から検索されたエントリから、前記第1のネットワーク装置のアドレスを取得し、
    前記第1のネットワーク装置のアドレス宛に前記読み出し要求を転送することを特徴とする請求項2に記載のネットワーク装置。
  4. 前記第2のネットワーク装置は、
    前記フラグを付与した後に、前記第2の記憶領域のブロックに対応するビットマップを生成し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されていると判定された場合に、前記ビットマップを取得し、
    前記読み出し要求を解析して、読み出し対象となるデータが格納されるブロックを特定し、
    前記ビットマップを参照して、前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されているか否かを判定し、
    前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されている場合には、前記第2の記憶領域から前記読み出し対象となるデータを読み出すために、前記第2のストレージシステムに前記読み出し要求を送信し、
    前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されていない場合には、前記第1の記憶領域から前記読み出し対象となるデータを読み出すために、前記第1のネットワーク装置に前記読み出し要求を転送することを特徴とする請求項3に記載のネットワーク装置。
  5. 前記第2のネットワーク装置は、
    前記第1のネットワーク装置から、前記第1の記憶領域から読み出された前記読み出し対象となるデータを受信した場合に、前記読み出し対象となるデータの複製を一時的に保持し、
    前記接続管理情報を参照して、前記受信した読み出し対象となるデータを前記第2の計算機上で稼動する前記第1の仮想計算機に転送し、
    前記変換情報を参照して、前記一時的に保持された読み出し対象となるデータの複製を前記第2の記憶領域に転送し、
    前記一時的に保持された読み出し対象となるデータが書き込まれたブロックに対応するビットを特定し、
    前記ビットマップの前記特定されたビットに、前記アクセス済みを示す情報を設定することを特徴とする請求項4に記載のネットワーク装置。
  6. 前記第2のネットワーク装置は、
    前記第2の計算機上で稼動する前記第1の仮想計算機から書き込み要求を受信した場合に、前記書き込み要求を解析して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記接続管理情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
    前記フラグが付与されている場合には、前記変換情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記変換情報から検索されたエントリから、前記第1のネットワーク装置のアドレスを取得し、
    前記第2の記憶領域に書き込み対象となるデータを書き込むために、前記第2のストレージシステムに前記書き込み要求を送信し、
    前記第1の記憶領域に前記書き込み対象となるデータを書き込むために、前記第1のネットワーク装置のアドレス宛に前記書き込み要求を転送することを特徴とする請求項2に記載のネットワーク装置。
  7. 前記接続管理情報は、任意の計算機上で稼動する前記仮想計算機の識別子と、前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子とが対応づけられた情報であり、
    前記変換情報は、移行元の計算機上で稼動する前記仮想計算機の識別子と、前記移行元の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、移行先の計算機上で稼動する前記仮想計算機の識別子と、前記移行先の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、前記アクセス要求を転送する前記ネットワーク装置のアドレスとが対応づけられた情報であり、
    前記第1のネットワーク装置の前記アクセス処理部は、
    前記第1の仮想化部から、前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を、前記第2のネットワーク装置に転送し、
    前記接続管理情報を参照して、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とが対応づけられたエントリを検索し、
    前記検索されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
    前記第2のネットワーク装置から送信される宛先情報を受信し、
    前記受信した宛先情報を解析して、前記第2のネットワーク装置のアドレスと、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記第1の仮想化部から前記第1の記憶領域のログアウト要求を受信した場合に、当該ログアウト要求を解析して、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを取得し、
    前記第1の仮想化部に前記ログアウト要求を受け付けた旨の応答を送信し、
    前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子と、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第2のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項1に記載のネットワーク装置。
  8. 前記第1のネットワーク装置は、
    前記第2のネットワーク装置から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第2のネットワーク装置のアドレスとを取得し、
    前記変換情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第2のネットワーク装置のアドレスとに対応するエントリを検索し、
    前記検索されたエントリから、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを取得し、
    前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを含めて、前記読み出し要求を前記第1のストレージシステムに転送することを特徴とする請求項7に記載のネットワーク装置。
  9. 前記第1のネットワーク装置は、
    前記第2のネットワーク装置から、前記第2の計算機上で稼動する前記第1の仮想計算機を前記第1の計算機へ移行するためのライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第2のネットワーク装置のアドレスを取得し、
    当該ライブマイグレーション処理の開始通知を前記第1の仮想化部に転送し、
    前記第1の仮想化部から前記第1の記憶領域へのログイン要求を受信した場合に、当該ログイン要求を解析して、前記第1のポートの識別子と、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子とを取得し、
    前記接続管理情報を参照して、前記第1のポートの識別子と、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子とに対応するエントリを検索し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されている場合には、前記第1の仮想化部に前記ログイン要求を受け付けた旨の応答を送信し、
    前記接続管理情報から検索されたエントリに付与された前記フラグを削除し、
    前記変換情報を参照して、前記第2のネットワーク装置のアドレスと、前記第1のポートの識別子とに対応するエントリを検索し、
    前記変換情報から検索されたエントリを前記変換情報から削除することを特徴とする請求項8に記載のネットワーク装置。
  10. 複数の計算機と、ストレージシステムと、ネットワーク装置とから構成される複数の拠点を含むネットワークシステムであって、
    前記複数の拠点は、第1の拠点と第2の拠点を含み、
    前記第1の拠点には、
    第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のインタフェースを有する複数の計算機と、
    第2のコントローラ、複数の記憶媒体、及び第2のインタフェースを有する第1のストレージシステムと、
    第3のプロセッサ、前記第3のプロセッサに接続される第3のメモリ、並びに、前記第3のプロセッサに接続され、前記複数の計算機及び前記第1のストレージシステムに接続するための第3のインタフェースを有する第1のネットワーク装置とが含まれ、
    前記第2の拠点には、
    第4のプロセッサ、前記第4のプロセッサに接続される第4のメモリ、及び前記第4のプロセッサに接続される第4のインタフェースを有する複数の計算機と、
    第5のコントローラ、複数の記憶媒体、及び第5のインタフェースを有する第2のストレージシステムと、
    第6のプロセッサ、前記第6のプロセッサに接続される第6のメモリ、並びに、前記第6のプロセッサに接続され、前記複数の計算機及び前記第2のストレージシステムに接続するための第6のインタフェースを有する第2のネットワーク装置とが含まれ、
    前記第1のネットワーク装置は、前記第2のネットワーク装置と接続するための第7のインタフェースを有し、
    前記第2のネットワーク装置は、前記第1のネットワーク装置と接続するための第8のインタフェースを有し、
    前記第1のメモリ及び前記第4のメモリは、計算機の物理資源を割り当てることによって仮想計算機を生成し、前記仮想計算機を管理する仮想化部を実現するためのプログラムを格納し、
    前記仮想化部は、前記仮想計算機のレジスタ情報及び前記仮想計算機に割り当てられる仮想メモリ上の情報を、当該仮想化部が実行される計算機とは異なる他の計算機に送信することによって、計算機間で前記仮想計算機を移行させるライブマイグレーション処理部を有し
    前記第1のストレージシステム及び前記第2のストレージシステムは、前記仮想計算機に割り当てる記憶領域を生成し、
    前記ネットワークシステムは、前記仮想計算機と前記記憶領域との間のアクセスを管理するアクセス処理部、及び、前記仮想計算機と前記記憶領域との接続関係を管理する接続管理情報を備え、
    前記第1の拠点に含まれる前記複数の計算機は、第1の仮想化部によって管理される第1の仮想計算機が稼動する第1の計算機を含み、
    前記第2の拠点に含まれる前記複数の計算機は、第2の計算機を含み、
    前記アクセス処理部は、
    前記第1の仮想化部から、前記第1の計算機から前記第2の計算機へ前記第1の仮想計算機を移行するためのライブマイグレーション処理の開始要求を受信し、
    前記第1のストレージシステムによって生成され、かつ、前記第1の計算機上で稼動する前記第1の仮想計算機に割り当てられた第1の記憶領域にアクセスするための第1のポートを特定し、
    前記第2のストレージシステムによって生成され、かつ、前記第2の計算機上で稼動する前記第1の仮想計算機に割り当てられた第2の記憶領域にアクセスするための第2のポートを特定し、
    前記第1の仮想計算機から送信されるアクセス要求を転送する装置のアドレスを取得し、
    前記第1のポートと、前記第2のポートと、前記アクセス要求を転送する装置のアドレスとを対応づけることによって変換情報を生成し、
    前記変換情報に基づいて、前記ライブマイグレーション処理が実行された後に前記第2の計算機上で稼動する前記第1の仮想計算機から送信される前記アクセス要求を制御することを特徴とするネットワークシステム。
  11. 前記接続管理情報は、任意の計算機上で稼動する前記仮想計算機の識別子と、前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子とが対応づけられた情報であり、
    前記変換情報は、移行元の計算機上で稼動する前記仮想計算機の識別子と、前記移行元の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、移行先の計算機上で稼動する前記仮想計算機の識別子と、前記移行先の計算機上で稼動する前記仮想計算機に割り当てられた前記記憶領域にアクセスするためのポートの識別子と、前記アクセス要求を転送する前記ネットワーク装置のアドレスとが対応づけられた情報であり、
    前記アクセス処理部は、
    前記第1のネットワーク装置から前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第1のネットワーク装置のアドレスを取得し、
    前記ライブマイグレーション処理の開始通知を、前記第2の計算機上で実行される第2の仮想化部に転送し、
    前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記第2の計算機で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを対応づけたエントリを前記接続管理情報に追加し、
    前記追加されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
    前記第1のネットワーク装置から、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを取得し、
    前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子と、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第1のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項10に記載のネットワークシステム。
  12. 前記アクセス処理部は、
    前記第2の計算機上で稼動する前記第1の仮想計算機から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記接続管理情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
    前記フラグが付与されている場合には、前記変換情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記変換情報から検索されたエントリから、前記第1のネットワーク装置のアドレスを取得し、
    前記第1のネットワーク装置のアドレス宛に前記読み出し要求を転送することを特徴とする請求項11に記載のネットワークシステム。
  13. 前記アクセス処理部は、
    前記フラグを付与した後に、前記第2の記憶領域のブロックに対応するビットマップを生成し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されていると判定された場合に、前記ビットマップを取得し、
    前記読み出し要求を解析して、読み出し対象となるデータが格納されるブロックを特定し、
    前記ビットマップを参照して、前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されているか否かを判定し、
    前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されている場合には、前記第2の記憶領域から前記読み出し対象となるデータを読み出すために、前記第2のストレージシステムに前記読み出し要求を送信し、
    前記特定されたブロックに対応するビットにアクセス済みを示す情報が付与されていない場合には、前記第1の記憶領域から前記読み出し対象となるデータを読み出すために、前記第1のネットワーク装置に前記読み出し要求を転送することを特徴とする請求項12に記載のネットワークシステム。
  14. 前記アクセス処理部は、
    前記第1のネットワーク装置から、前記第1の記憶領域から読み出された前記読み出し対象となるデータを受信した場合に、前記読み出し対象となるデータの複製を一時的に保持し、
    前記接続管理情報を参照して、前記受信した読み出し対象となるデータを前記第2の計算機上で稼動する前記第1の仮想計算機に転送し、
    前記変換情報を参照して、前記一時的に保持された読み出し対象となるデータの複製を前記第2の記憶領域に転送し、
    前記一時的に保持された読み出し対象となるデータが書き込まれたブロックに対応するビットを特定し、
    前記ビットマップの前記特定されたビットに、前記アクセス済みを示す情報を設定することを特徴とする請求項13に記載のネットワークシステム。
  15. 前記アクセス処理部は、
    前記第2の計算機上で稼動する前記第1の仮想計算機から書き込み要求を受信した場合に、前記書き込み要求を解析して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記接続管理情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
    前記フラグが付与されている場合には、前記変換情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とに対応するエントリを検索し、
    前記変換情報から検索されたエントリから、前記第1のネットワーク装置のアドレスを取得し、
    前記第2の記憶領域に書き込み対象となるデータを書き込むために、前記第2のストレージシステムに前記書き込み要求を送信し、
    前記第1の記憶領域に前記書き込み対象となるデータを書き込むために、前記第1のネットワーク装置のアドレス宛に前記書き込み要求を転送することを特徴とする請求項11に記載のネットワークシステム。
  16. 前記アクセス処理部は、
    前記第1の仮想化部から、前記ライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を、前記第2のネットワーク装置に転送し、
    前記接続管理情報を参照して、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とが対応づけられたエントリを検索し、
    前記検索されたエントリに、前記アクセス要求の転送対象であることを示すフラグを付与し、
    前記第2のネットワーク装置から送信される宛先情報を受信し、
    前記受信した宛先情報を解析して、前記第2のネットワーク装置のアドレスと、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子とを取得し、
    前記第1の仮想化部から前記第1の記憶領域のログアウト要求を受信した場合に、当該ログアウト要求を解析して、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを取得し、
    前記第1の仮想化部に前記ログアウト要求を受け付けた旨の応答を送信し、
    前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子と、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第2のネットワーク装置のアドレスとを対応づけたエントリを前記変換情報に追加することを特徴とする請求項11に記載のネットワークシステム。
  17. 前記アクセス処理部は、
    前記第2のネットワーク装置から読み出し要求を受信した場合に、前記読み出し要求を解析して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第2のネットワーク装置のアドレスとを取得し、
    前記変換情報を参照して、前記第2の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第2のポートの識別子と、前記第2のネットワーク装置のアドレスとに対応するエントリを検索し、
    前記検索されたエントリから、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを取得し、
    前記第1の計算機上で稼動する前記第1の仮想計算機の識別子と、前記第1のポートの識別子とを含めて、前記読み出し要求を前記第1のストレージシステムに転送することを特徴とする請求項16に記載のネットワークシステム。
  18. 前記アクセス処理部は、
    前記第2のネットワーク装置から、前記第2の計算機上で稼動する前記第1の仮想計算機を前記第1の計算機へ移行するためのライブマイグレーション処理の開始通知を受信した場合に、当該ライブマイグレーション処理の開始通知を解析して、前記第2のネットワーク装置のアドレスを取得し、
    当該ライブマイグレーション処理の開始通知を前記第1の仮想化部に転送し、
    前記第1の仮想化部から前記第1の記憶領域へのログイン要求を受信した場合に、当該ログイン要求を解析して、前記第1のポートの識別子と、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子とを取得し、
    前記接続管理情報を参照して、前記第1のポートの識別子と、前記第1の計算機上で稼動する前記第1の仮想計算機の識別子とに対応するエントリを検索し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されているか否かを判定し、
    前記接続管理情報から検索されたエントリに前記フラグが付与されている場合には、前記第1の仮想化部に前記ログイン要求を受け付けた旨の応答を送信し、
    前記接続管理情報から検索されたエントリに付与された前記フラグを削除し、
    前記変換情報を参照して、前記第2のネットワーク装置のアドレスと、前記第1のポートの識別子とに対応するエントリを検索し、
    前記変換情報から検索されたエントリを前記変換情報から削除することを特徴とする請求項17に記載のネットワークシステム。
JP2011167104A 2011-07-29 2011-07-29 ネットワーク装置及びネットワークシステム Expired - Fee Related JP5643990B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011167104A JP5643990B2 (ja) 2011-07-29 2011-07-29 ネットワーク装置及びネットワークシステム
US13/553,656 US8972988B2 (en) 2011-07-29 2012-07-19 Remote virtual machine migration port management device and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011167104A JP5643990B2 (ja) 2011-07-29 2011-07-29 ネットワーク装置及びネットワークシステム

Publications (2)

Publication Number Publication Date
JP2013030085A JP2013030085A (ja) 2013-02-07
JP5643990B2 true JP5643990B2 (ja) 2014-12-24

Family

ID=47787053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011167104A Expired - Fee Related JP5643990B2 (ja) 2011-07-29 2011-07-29 ネットワーク装置及びネットワークシステム

Country Status (2)

Country Link
US (1) US8972988B2 (ja)
JP (1) JP5643990B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9450885B2 (en) * 2012-03-26 2016-09-20 Oracle International Corporation System and method for supporting live migration of virtual machines in a virtualization environment
JP6007547B2 (ja) * 2012-03-30 2016-10-12 日本電気株式会社 仮想化システム、スイッチコントローラ、ファイバチャネルスイッチ、マイグレーション方法、マイグレーションプログラム
US9990221B2 (en) 2013-03-15 2018-06-05 Oracle International Corporation System and method for providing an infiniband SR-IOV vSwitch architecture for a high performance cloud computing environment
US9723008B2 (en) 2014-09-09 2017-08-01 Oracle International Corporation System and method for providing an integrated firewall for secure network communication in a multi-tenant environment
CN104298559B (zh) * 2014-09-30 2018-03-02 深信服科技股份有限公司 物理主机系统虚拟化的方法及装置
JP6398559B2 (ja) * 2014-10-02 2018-10-03 富士通株式会社 情報共有プログラム、情報共有システム及び情報共有方法
US10721181B1 (en) * 2015-03-10 2020-07-21 Amazon Technologies, Inc. Network locality-based throttling for automated resource migration
US10013387B2 (en) * 2015-06-11 2018-07-03 Cisco Technology, Inc. Method or apparatus for flexible firmware image management in microserver
US10055241B1 (en) * 2015-09-04 2018-08-21 Cisco Technology, Inc. Virtual machine aware fibre channel

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070079098A1 (en) * 2005-10-03 2007-04-05 Hitachi, Ltd. Automatic allocation of volumes in storage area networks
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
US8239646B2 (en) 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
JP4871850B2 (ja) * 2007-12-04 2012-02-08 株式会社日立製作所 仮想計算機システム及び仮想計算機移行制御方法
JP5124430B2 (ja) * 2008-12-04 2013-01-23 株式会社エヌ・ティ・ティ・データ 仮想マシンの移行方法、サーバ、及び、プログラム
US8331362B2 (en) * 2008-12-30 2012-12-11 Juniper Networks, Inc. Methods and apparatus for distributed dynamic network provisioning
JP4972670B2 (ja) * 2009-06-05 2012-07-11 株式会社日立製作所 仮想計算機システム、そのアクセス制御方法及び通信装置
US20120173757A1 (en) * 2011-01-05 2012-07-05 International Business Machines Corporation Routing optimization for virtual machine migration between geographically remote data centers
US8407182B1 (en) * 2011-01-21 2013-03-26 Symantec Corporation Systems and methods for facilitating long-distance live migrations of virtual machines

Also Published As

Publication number Publication date
JP2013030085A (ja) 2013-02-07
US8972988B2 (en) 2015-03-03
US20130185721A1 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
JP5643990B2 (ja) ネットワーク装置及びネットワークシステム
US9569245B2 (en) System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts
CN110071900B (zh) 数据发送的方法及设备
US9086907B2 (en) Apparatus and method for managing virtual machine addresses
EP2605138B1 (en) Virtual computer system and control method of live migration of a virtual computer
WO2013160944A1 (en) Provisioning of resources like cpu or virtual machines or virtualized storage in a cloud computing environment
JP2011198299A (ja) プログラム、コンピュータ、通信装置および通信制御システム
GB2535558A (en) Computer system and data control method
JP2010086049A (ja) 管理計算機及びその運用方法
JP2003241903A (ja) 記憶制御装置、ストレージシステム、及びその制御方法
WO2014030229A1 (ja) ライブマイグレーションされた仮想計算機のネットワーク接続を復元する仮想計算機システム
WO2017145272A1 (ja) データ移行方法及び計算機システム
US20100064301A1 (en) Information processing device having load sharing function
US9081509B2 (en) System and method for managing a physical storage system and determining a resource migration destination of a physical storage system based on migration groups
US8762485B2 (en) Information system having computer and storage apparatus coupled to network
WO2013042269A1 (ja) 電源管理装置、電源管理方法および電源管理プログラム
JP2007048323A (ja) 仮想化制御装置およびデータ移行制御方法
JP5439435B2 (ja) 計算機システムおよびその計算機システムにおけるディスク共有方法
JP5182162B2 (ja) 計算機システム及びi/o制御方法
US20170366638A1 (en) Method of controlling a virtual machine, information processing apparatus and non-transitory computer-readable storage medium
JP2011141635A (ja) ホスト間通信を使用した仮想サーバのデータの通信方法
US20140201438A1 (en) Storage system, method of controlling a storage system and management system for storage system
US20120137085A1 (en) Computer system and its control method
US11722368B2 (en) Setting change method and recording medium recording setting change program
US8521954B2 (en) Management computer and volume configuration management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131031

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140620

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: 20141007

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141014

R150 Certificate of patent or registration of utility model

Ref document number: 5643990

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees