[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5976842B2 - 計算機システム、及び、計算機システムの仮想サーバ移行制御方法 - Google Patents

計算機システム、及び、計算機システムの仮想サーバ移行制御方法 Download PDF

Info

Publication number
JP5976842B2
JP5976842B2 JP2014551866A JP2014551866A JP5976842B2 JP 5976842 B2 JP5976842 B2 JP 5976842B2 JP 2014551866 A JP2014551866 A JP 2014551866A JP 2014551866 A JP2014551866 A JP 2014551866A JP 5976842 B2 JP5976842 B2 JP 5976842B2
Authority
JP
Japan
Prior art keywords
volume
physical server
migration
server
storage device
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
JP2014551866A
Other languages
English (en)
Other versions
JP2015520423A (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
Publication of JP2015520423A publication Critical patent/JP2015520423A/ja
Application granted granted Critical
Publication of JP5976842B2 publication Critical patent/JP5976842B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、計算機システム、及び、計算機システムの仮想サーバ移行制御方法に係り、詳しくは、複数の物理サーバ間で仮想サーバを移行することに合わせて、複数のストレージ装置間で仮想サーバが使用する記憶領域を移行させることを特徴とする計算機システム、及び、その仮想サーバ移行方法に関するものである。
近年、サーバ仮想化技術が普及し、複数の仮想サーバを単一のハードウェア(物理サーバ)上に統合することが一般的となっている。さらに、単に設備投資を削減する目的にとどまらず、設定済み仮想サーバのテンプレート管理によって、ユーザへのサーバの導入をたかだか、仮想サーバが使用する仮想ディスクのコピーの作成のみで完了させてしまう技術や、障害発生および負荷の不均衡などのホットスポットを検出して、動的に、仮想サーバの論理構成を変更することによって、ホットスポットを解消する技術が開発される等情報システムをより柔軟に運用することが可能となっている。
しかし、サーバ仮想化とは、新たな抽象化層を物理サーバに導入することであり、これにより、物理サーバの構成管理が複雑化する側面がある。例えば、従来のサーバ仮想化技術を用いない場合と比較して、どのサーバがどのボリュームを使用しているのかを、物理サーバやストレージ装置の構成情報のみから把握することは困難になった。
したがって、必然的に、これら仮想サーバにおいて、時々刻々と変化する記憶領域と仮想サーバとの接続関係や仮想サーバのリソース使用状況を仮想サーバ管理ソフトウェアにより管理される必要が生じる。また、仮想サーバの重要な構成要素の一つである、ストレージ資源の管理のために、仮想サーバ管理ソフトウェアの機能を拡張することがこころみられており、そのために、仮想記憶域やストレージ装置を操作する機能を仮想サーバ管理ソフトウェアに持たせる手法がとられている。
例えば、あるサーバ仮想化ソフトウェアベンダが提供している、ストレージとの連携を果たす機能は、ストレージベンダとの協業に基づいて、仮想サーバ管理ソフトウェアやサーバ仮想化ソフトウェアに、提携ベンダ製のストレージ装置が解釈できるコマンドを送受信する動作を持たせたものとなっている。これにより、ストレージ装置が、仮想サーバが使用しているボリュームを検出し、従来はサーバ仮想化ソフトウェアが行っていた記憶域のコピーなどの処理を肩代わりすることができるようになっている。
また、ある仮想サーバ管理ソフトウェアは、業界標準のストレージ管理プロトコルSMI−S (Storage Management Initiative − Specification)を使ってストレージ装置を管理する機構を実装している。これにより、SMI−Sをサポートする物理サーバであれば、仮想サーバが使用しているボリュームを物理サーバ内で特定でき、仮想サーバの構成変更と連携させて、ストレージ装置が持つコピー機能やシンプロビジョニング機能を利用することができる。
仮想サーバ管理ソフトウェアが提供する機能により、仮想サーバを異なる物理サーバへ移行でき、そして、仮想サーバの仮想記憶域(仮想ディスク)を異なるストレージ装置へ移行することができる。同移行方式は、物理サーバ間のネットワークやストレージ装置間のネットワークを経由して、仮想サーバが利用しているデータを転送元から転送先に転送することにより、仮想サーバが実行する業務に対して致命的な悪影響が無いようにしている(特許文献1)。
なお、ファイバチャネルインタフェースで他のディスクアレイ(外部ストレージ)を接続し、その論理ボリュームをマッピングすることにより、機種の異なる複数のディスクアレイを1つのディスクアレイであるかのように扱うことが知られている(特許文献2)。
米国特許第7484208号 特許第4704659号
既述の仮想記憶域の移行においては、計算機システムは、業務に必要なデータの転送と、移行に必要なデータの転送とを、物理サーバを経由して同じネットワークで行うために、いずれかの性能劣化が避けられない。
また、計算機システムは、移行のために、物理サーバの演算リソースを消費しなければならず、通常業務に必要な演算性能の劣化を避けることができない。近年、情報システムへの依存度が高まるにつれ、システムが抱えるデータ量は増大の一途を辿っており、仮想サーバ移行においても、仮想記憶域の移行にかかる作業負荷や所要時間が課題となっている。このように、仮想サーバを柔軟に運用するためには、仮想サーバが使用する記憶領域を効率的に運用管理することが求められている。
計算機システムが、大量の仮想サーバを新しい環境に移行しようとしても、ストレージ装置の機能を利用することにより、ストレージ装置を跨って仮想ディスクを効率的に移行できる。これにより、物理サーバ上の仮想化ソフトウェアが主体となっていた従来の移行機能に比べて、情報システムの業務における性能への悪影響を極小化すると同時に、より高速な仮想サーバ、及び、仮想ディスクの移行の処理が可能となる。
ストレージ装置を管理するためのストレージ管理ソフトウェアによってストレージ装置の機能が適用される対象は、一般に、ボリュームと呼ばれる論理的な単位であり、そして、一つのボリュームにはファイル化された仮想ディスクが複数格納されている可能性がある。ボリュームは物理サーバにストレージ資源を割り当てるときの基本的な単位である。
ストレージ管理ソフトウェアは、どの物理サーバ(仮想サーバ)にどのボリュームが割り当てられているかを知ることができても、仮想サーバの移行に伴ってストレージ装置間を移行されるべき対象の仮想ディスク(ファイル)がどのボリュームに格納されているかまでをすぐには把握できない。
ストレージ管理ソフトウェアが、ファイルシステムを調べることによりボリューム内にどの仮想ディスクが格納されているかを判別できたとしても、使用状況、例えば、ボリュームが実際に仮想サーバへ接続されて、仮想ディスクが使用されていたか否かまでを知ることができない。このように、ストレージ管理ソフトウェアは、ボリュームに保持される情報としての、仮想ディスクまでを意識しておらず、計算機システムが、移行処理の際に、ストレージの機能を単に使用するだけでは、移行の後で、移行前の仮想サーバとその仮想ディスクの接続関係を維持することができない。
さらに、ストレージの機能によって、仮想サーバの移行に伴って仮想ディスクが移行される元のボリュームと移行先ボリュームの識別子が異なる場合がある。ベンダや機種が異なるストレージ装置を跨る場合、識別子を付与する規則が異なる可能性があるため、移行先ボリュームを物理サーバは移行元と同じボリュームであると認識できなくなる可能性がある。
物理サーバの仮想化ソフトウェアが使用する識別子は、ストレージの機能を設定するためのストレージ管理ソフトウェアが管理用途のためにボリュームに付与した識別子と異なる可能性がある。これは、ストレージ機能がベンダ独自のものであった場合に特に顕著である等、ストレージ機能が特殊な管理体系を必要としていた場合に生じる。
したがって、計算機システムが、ストレージの機能を使用して仮想ディスクを移行する際には、システム管理者が移行後のボリュームの内容を逐一確認し、大量の仮想サーバの中から移行対象となる仮想サーバの仮想ディスクを特定した上で、移行先仮想サーバへ仮想ディスクを再度接続しなければならないなど、作業量が増大し、人手に頼ることで再接続作業を誤る危険性も高まるなど、管理者への負荷が大きいものであった。
また、仮想化プログラムには仮想サーバを異なる物理サーバ上に移行する、仮想サーバ移行機能を有するものが多い。この移行は、システム管理者によって行われることもあるが、例えば、負荷分散機能により、自動的に実行されることもある。これにより、仮想サーバの物理サーバ上の配置は任意のタイミングで変更されることがあり、いざ、仮想サーバを移行しようとしたときには、仮想サーバや仮想ディスクが他の物理サーバやストレージ装置に移動してしまっていることが考えられる。そこで、仮想サーバ移行機能が働かないように負荷分散設定を解除するなどの方法が考えられるが、これでは本来サーバ仮想化技術が提供していたシステムの柔軟性が損なわれる上に、管理者に余分な負担が強いられるという課題がある。したがって、計算機システムは仮想サーバの移行機能をキャンセルし難いため、一層、仮想サーバの移行の後で、移行前の仮想サーバとその仮想ディスクの接続関係を維持することができないことになる。
そこで、本発明は、複数の物理サーバ間で仮想サーバを移行させる際、複数のストレージ装置間の連携機構を利用して、仮想サーバが使用している記憶領域を複数のストレージ装置間で移行させても、移行前の仮想サーバと記憶領域との接続関係を仮想サーバの移行後にも維持することができる計算機システム、及び、複数の物理サーバ間で仮想サーバを移行させるための制御方法を提供することを目的とするものである。
既述の目的を達成するために、本発明に係る計算機システム及びそれの仮想サーバ移行制御方法は、仮想サーバの移行元のハードウエア・ソフトウェア環境から仮想サーバおよび仮想ディスクの構成情報を取得しておき、構成情報を用いてボリュームを対象としたストレージ機能による移行設定を行い、さらに構成情報を用いて移行先における仮想サーバおよび仮想ディスクの接続関係の再構築を行うことを特徴とするものである。
本発明によれば、複数の物理サーバ間で仮想サーバを移行させる際、複数のストレージ装置間の連携機構を利用して、仮想サーバが使用している記憶領域を複数のストレージ装置間で移行させても、移行前の仮想サーバと記憶領域との接続関係を仮想サーバの移行後にも維持することができる計算機システム、及び、複数の物理サーバ間で仮想サーバを移行させるための制御方法を提供することができる。
本発明の実施形態における計算機システムのブロック構成図である。 ストレージ装置のブロック構成図である。 管理計算機のブロック構成図である。 ボリューム定義テーブルを示す。 割り当て管理テーブルを示す。 ストレージドメイン定義テーブルを示す。 ポート管理テーブルを示す。 仮想ディスク管理テーブルを示す。 本発明の実施形態における物理サーバ情報を示す。 ボリューム管理テーブルを示す。 ストレージドメイン管理テーブルを示す。 ボリュームマッピングテーブルを示す。 ゾーン管理テーブルを示す。 移行対象マッピングテーブルを示す。 ボリューム接続設計テーブルを示す。 本発明の実施形態における管理対象となる装置の接続構成を示す。 仮想サーバと仮想ディスクとの接続関係を示す第1のブロック図である。 仮想サーバと仮想ディスクとの接続関係を示す第2のブロック図である。 本発明の第1の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムのブロック図である。 図16の計算機システムの処理フローダイアグラムである。 本発明の第2の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムのブロック図である。 図18の計算機システムの処理フローダイアグラムである。 本発明の第3の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムのブロック図である。 図20の計算機システムの処理フローダイアグラムである。 本発明の第4の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムの第1のブロック図である。 本発明の第4の実施形態における、仮想サーバ及び仮想ディスクを移行するための計算機システムの第2のブロック図である。 図24は本発明の第四の実施形態における処理フローダイアグラムを示す。
(実施形態1)
本実施形態は、仮想サーバおよびその仮想ディスクを異なる物理サーバおよびストレージ装置へ移行する方法を提供する。
1.物理構成および論理構成
図1(a)は、本実施形態の計算機システムの構成を示す。本計算機システムは、第1の物理サーバ10、第2の物理サーバ20、第1のストレージ装置100、第2のストレージ装置200、および管理コンピュータ500を、それぞれ一つ以上含む。
第1の物理サーバ10は、仮想化プログラム14およびオペレーティングシステム13をメモリ12に格納し、CPU11は、それらプログラムによって要求される処理を行う。第1の物理サーバ10は、イーサネット(登録商標)インタフェース16、およびファイバチャネルインタフェース15を備える。
第1の物理サーバ10は、インターネットインタフェース(イーサネット(登録商標)インタフェース)16を介して、より正確にはイーサネット(登録商標)インタフェース16が備える一つ以上のネットワークポートを使用して、他の物理サーバ、または、クライアントコンピュータと接続し、内部で稼働するプログラムが使用するデータの送受信を他の物理サーバ等と行う。
イーサネット(登録商標)インタフェース16は単一であってもよいし、別のコンピュータを接続する機能を有するものであれば、管理用、サービス用など用途により複数備えていてもよい。また、同インタフェースはイーサネット(登録商標)規格に限るものではなく、別のコンピュータと接続する機能を実現することができれば、他の規格に準拠するものであってもよい。
第1の物理サーバ10は、ファイバチャネルインタフェース15を介して、より正確にはファイバチャネルインタフェース15が備える一つ以上のネットワークポートを使用して、ストレージ装置またはネットワーク機器(例えば、ファイバチャネルスイッチ55)と相互に接続し、内部で稼働するプログラムが使用するデータの送受信をストレージ装置等と行う。
ファイバチャネルインタフェース15は一つであってもよいし、ストレージ装置やストレージ装置との間に介在するネットワーク機器と相互に接続できるのであれば、用途により複数備えてもよい。また、同インタフェースはファイバチャネル規格に限るものではなく、ストレージ装置と接続するための機能有するものであれば、例えばイーサネット(登録商標)やインフィニバンド、FCoE(Fibre Channel over Ethernet(登録商標))など他の規格に準拠するものであってもよい。
第1の物理サーバ10は、ハードウェアを制御し、さらに上位に位置するプログラムにより情報処理を実現するための基本的なプログラムである、オペレーティングシステム(Operating System,OS)13を稼働させている。
また、同物理サーバ10上には仮想化プログラム14が稼働しており、一つのハードウェアを論理的に一つ以上の仮想的な領域に分割する機能を実現している。仮想化プログラム14により分割された仮想的なハードウェア領域で、仮想サーバ(Virtual Machine,VM)が稼働し、仮想サーバ上でアプリケーションプログラムが稼働している。アプリケーションプログラムが稼働するために、仮想サーバ内部で、適切なOSを稼働させるようにしてもよい。ハードウェアを抽象化するという点において、OS13と仮想化プログラム14の機能は類似しており、仮想化プログラム14はOS13の一部分として物理サーバに実装されてもよい。
第2の物理サーバ20は、第1の物理サーバ10と協調して、仮想サーバや仮想ディスクの移行処理を行うための基本的な構成(仮想化プログラム14やOS13)を持つという点で、第1の物理サーバと同じハードウェア構成を有している。ただし、その他の目的の部分で、第2の物理サーバは、第1の物理サーバ10と異なる構成を有していてもよい。第1のストレージ装置100は、SAN上の機器(例えば、第1の物理サーバ10)に対し、ボリュームと呼ばれる論理的な単位ごとに構成される記憶域を提供する。第1のストレージ装置100は、HDD101等の記憶装置等の各構成要素を集中的に制御するストレージコントローラ150を備える。
図1(b)に示すように、ストレージコントローラ150は、ファイバチャネルインタフェース155を介して、より正確にはファイバチャネルインタフェース155上のネットワークポートを使用して、第1の物理サーバ10上のプログラム、及び/又は、アプリケーションによる処理が必要とするデータを送受信する。
本実施形態では、ストレージコントローラ150は、SCSI(Small Computer System Interface)規格に従って物理サーバへ記憶域を提供する。ストレージコントローラ150は、物理記憶装置である例えばHDD101やSSD102と接続するためのSATA(Serial Advanced Technology Attachment)インタフェース157またはSAS(Serial Attached SCSI)インタフェース156、および管理コンピュータ500と接続するためのイーサネット(登録商標)インタフェース154を備える。これら物理記憶装置および別のコンピュータへ接続するためのネットワークインタフェースについては、本実施形態に述べる規格に限定するものではなく、それぞれ同じ目的を達成することのできる機能を有するものであれば別の規格に準拠するものでもよい。
ストレージコントローラ150のメモリ152には、応答プログラム160、リダイレクトプログラム161、ボリューム制御プログラム162、ボリューム定義テーブル163、割り当て管理テーブル164、ストレージドメイン定義テーブル165、ストレージ管理プロバイダ166、およびポート管理テーブル167が格納され、CPU151によりそれらプログラムの処理に必要な演算が行われる。キャッシュ153は物理記憶装置(HDD101やSSD102)に対してデータの読み込みおよび書き込みを行う際に、一時的にデータを保存する。
応答プログラム160は、物理サーバや他のストレージ装置からの少なくともREAD CAPACITY/READ/WRITEコマンドに応答する。
リダイレクトプログラム161は、本実施形態において外部接続と称するストレージ仮想化機能を提供するもので、第1のストレージ装置100へのアクセスを他のストレージ装置へリダイレクトする処理を実装する。同プログラムの詳細な挙動については後述する。
ボリューム制御プログラム162は、第1のストレージ装置100が備える物理記憶装置の記憶域をボリュームとして物理サーバに提供するための、ボリュームの生成・削除・構成変更処理を実装したものである。各ボリュームの構成は、ボリューム制御プログラム162によりボリューム定義テーブル163上のレコードとして管理される。
図2に示すボリューム定義テーブル163は、ボリュームを装置内、システム内で一意に識別するためのデバイス識別子163a、属性を表すボリュームタイプ163b、当該ボリュームが他のボリュームと関連付けられている場合に関連元ボリュームを表すソースデバイス163c、物理サーバへ接続されているか否かを示すホスト割り当てフラグ163d、および現在のボリュームの状態を示すステータス163eを記録する各フィールドを有する。
ボリューム制御プログラム162はボリュームごとにキャッシュ153の有効/無効化を設定でき、これを、ボリューム定義テーブル163においてステータス163eとして保持してもよいし、キャッシュの設定を保持するフィールドを別に有してもよい。ボリューム定義テーブル163で管理されるボリュームタイプ163bについては、第1のストレージ装置100が提供する機能と合わせて後述する。
前述の通り、物理記憶装置の各領域は、ボリュームとして管理される。図3に示す割り当て管理テーブル164は、ボリュームにおける番地(セグメント番号)と、物理記憶装置(物理ディスクドライブ)のLBA(Logical Block Addressing)とを関連づける役割を持ち、ボリューム制御プログラム162により作成・変更される。物理サーバからボリュームへのアクセスは、ボリュームセグメント番号164aを指定して実行され、応答プログラム160が同割り当て管理テーブル164の各フィールドを参照して実際の物理ディスクドライブ上のLBA領域を特定し、アクセスを行うことでデータの読み書きが可能となる。図3におけるテーブルの各フィールドは、ボリュームがRAID(Redundant Arrays of Independent Disks)技術を用いて構成される場合の一例を夫々示している。
物理サーバによるボリュームへのアクセスは、ボリューム制御プログラム162により編集される、ストレージドメイン定義テーブル165(図4参照)が定めるアクセス範囲に従って制御される。ストレージ装置は複数の物理サーバに対してストレージ資源を提供しており、様々な物理サーバが非同期に発行する読み書き結果ボリューム内に保持するデータの整合性を保証するため、物理サーバとボリュームを関連付けてアクセスを制御する必要がある。これは、一般にLUNマスキングと呼ばれる、ファイバチャネルを用いたストレージ管理における基本的な技術により実現される。
本実施形態においては、ストレージドメイン定義テーブル165は、ストレージ装置側のネットワークポート名165bに対し、一つ以上の物理サーバのネットワークポート名165cを指定することにより、物理サーバがストレージ装置にアクセス可能な範囲を定義しており、これをストレージドメインと呼ぶことにする。ストレージドメインにはストレージ装置内で一意なドメイン名165aが付与される。
同時に、ボリュームごとに一意なLUN(Logical Unit Number,論理ユニット番号)165dが設定されており、ホスト(物理サーバ)ポート名フィールド165cに含まれる物理サーバからは、このLUN165dにより、ボリュームがディスクドライブとして識別される。このようにボリュームがストレージドメインと関連づけられる際には、必ずLUN154dが設定されるが、他方で、どのボリュームとも関連づけられていないストレージドメインが存在してもよい。ボリュームと物理サーバ(のネットワークポート)をLUNにより関連づけた論理的なアクセス経路がパスと呼ばれ、パスは、ストレージ装置内で一意なパス識別子165fを持つ。
ストレージ管理プロバイダ166(図1(b)参照)は、管理コンピュータ500からストレージ装置100が管理されるためのインタフェースを提供する。具体的には、ストレージ管理プロバイダ166は、管理コンピュータ500上のストレージ管理プログラムに、ストレージ装置100内のボリューム制御プログラム162の操作や、ボリューム定義テーブル163やストレージドメイン定義テーブル165を参照させるといった手続きを、遠隔から実行させるためのコマンドあるいはAPI(Application Program Interface)を提供する。
同管理プロバイダ166は、ストレージ装置を提供するベンダにより、当初から組み込まれている。ストレージ管理プロバイダ166と通信する手段は、ストレージ管理機能を実現できるものに限り、HTML、XMLといった言語、或いは、SMI−Sなどの管理プロトコルを用いる。ストレージ管理インタフェースは、物理サーバ10やファイバチャネルスイッチ55などにも実装され、管理コンピュータの管理ソフトウェアによる構成の参照および設定を可能にする。
管理プロバイダ166をストレージコントローラに実装するための形態としては、OS上で動作するアプリケーションソフトウェアやエージェントであってもよいし、または、ストレージ装置を制御するために用いられる他のプログラムの一部の機能であってもよい。さらには、専用のハードウェア(集積回路チップなど)に実装されてもよい。
ストレージコントローラ150内のファイバチャネルインタフェース155に搭載される全てのポートは、ボリューム管理プログラム162により、ポート管理テーブル167(図5)で管理されている。ポート管理テーブル167は、各ポートに一意なポート名167a、管理者によって任意に設定されるエイリアス167b、ポート属性167c、および到達可能なポート名のリスト167dを保持する。ポート属性167cは、ポート名167aで識別されるポートに付与されるものである。
ポート属性167cには、例えば、ポートが物理サーバからのアクセスを受け付けるときには、「Target」が、ポートが外部接続用に構成されている場合は、「External」が設定される。到達可能なポート名リスト167dは、当該ポートとデータ送受信可能な状態にあるポート名を保持する。したがって、論理的に、両ポートの接続性が確保されていれば、実際にデータの送受信が両ポート間で行われていなくても、ポート名リスト167dにポート情報を記載することができる。ただし、後述のように、ネットワークスイッチがゾーンによってアクセス制御を行って、データの送受信が許可されていない範囲には、たとえ、ストレージのポートに物理的に接続されているポートであっても、当該ポートはポート名リスト167dに記載されてはならない。
また、図4に示すストレージドメイン定義テーブルにおいてストレージドメインを定義する際には、管理者は、ストレージ側ポート名165bに対応するレコードをポート管理テーブル167から取得し、当該ストレージ側ポートと接続するポートをポート名リスト167dの中から選択して、これをホスト側ポート名165cとしてもよい。
第1のストレージ装置100のストレージコントローラ150内の各プログラムにより、ストレージの特徴的な機能が実現される。この特徴的な機能の一つとしての外部接続機能は次のように実現される。第2のストレージ装置200のボリュームが、第1のストレージ装置と第2のストレージ装置間のネットワーク52を介して、第1のストレージ装置内100のボリュームであるかのように第1の物理サーバ10に提供される。
従来は、第1と第2のストレージ装置との間で、長時間を必要とする、ボリューム間データコピーが行わなければ、第2のストレージ装置が提供するボリュームを、第1の物理サーバが利用できなかったが、外部接続機能は、ボリューム間データコピーを必要としないものであって、第1の物理サーバ10から第1のストレージ装置100へ行われたアクセスを、第1のストレージ装置100および第2のストレージ装置200を相互接続するネットワークへリダイレクトし、さらには、第2のストレージ装置200からの応答を第1のストレージ装置100が中継して第1の物理サーバへ応答することにより実現される。
外部接続機能をストレージ装置に実装する方法として、次のことが想定される。外部接続を適用する対象となる第2のストレージ装置200内のボリュームを、第2の物理サーバ20への接続するポートとは論理的に異なるポートから利用できるようにしておく。このときのやり方は、物理サーバに対してボリュームを提供する場合と同じである。さらに、第1のストレージ装置100と第2のストレージ装置200の間を相互に接続するネットワーク(例えば通信路52)を設け、対象ボリュームを第1のストレージ装置100内のある外部接続用ボリュームへ論理的に関連づけておく。
この外部接続用ボリュームは、第1のストレージ装置100内に定義されていながら、実際の物理記憶装置(例えば、物理ドライブ101、102)が割り当てられないという点で仮想ボリュームと呼ばれる。ただし、仮想ボリュームであっても、第1のストレージ装置100内の他のボリュームと同じようにキャッシュやコピー機能を利用できる。外部接続用のボリュームの定義はボリューム制御プログラム162により行われ、ボリューム定義テーブル163に登録される。例えば、図2においてデバイス識別子163aが「20:01」のボリュームを外部接続用ボリュームとすると、ボリュームタイプ163bには「External」が設定され、ソースデバイスフィールド163cには、第2のストレージ装置200内のボリュームへアクセスするために必要な情報が登録される。
図2は、ソースデバイスフィールド163cは、第1のストレージ装置のストレージポート(エイリアス「SPort#2」)からLUN1を介してアクセスできるボリュームが、第2のストレージ装置200にある(物理記憶装置を持つ)ボリュームであることを示している。これにより、第1の物理サーバ10から外部接続用ボリューム「20:01」へアクセスが発行されたときには、応答プログラム160がボリュームタイプフィールド163bを参照して、外部接続されたボリュームであることを判別し、リダイレクトプログラム161がソースデバイスへアクセスを転送することにより第2のストレージ装置200内のボリュームの読み書きが可能となる。
ストレージのコピー機能としては、SANを経由してストレージ装置間でボリュームの複製を作成するレプリケーション機能、広域ネットワークを利用して異なるサイトのストレージ装置間でボリュームの複製を作成するリモートコピー機能、ストレージ装置内部でボリュームの複製を作成するボリュームバックアップ機能がある。
ストレージの容量を効率化機能としては、特定ボリュームへの変更部分のみを別ボリュームとして保存するボリュームスナップショット機能、複数のボリュームを束ねてプール化し、物理サーバからの書き込み要求に応じてボリュームよりも細かな単位ごとにボリュームへ容量を追加していくボリュームシンプロビジョニング機能がある。
ストレージの移行機能としては、ボリュームのコピーと、識別情報の切り替え、および、アクセス経路の切り替えを連動させて、筐体内に定義されたあるボリュームが保持する内容を、別のボリュームへ無停止で移行するオンラインボリュームマイグレーション機能がある。
これらの機能はボリュームを対象として適用され、ボリューム管理テーブル557のボリュームタイプ557dにおいて管理される。
第2のストレージ装置200は、ストレージ資源をボリュームとして物理サーバ20に提供するという機能性を実現する点で、第1のストレージ装置100と同様の構成を有する。ただし、外部接続機能は本実施形態の移行方式に必須ではないため、第1のストレージ装置は同機能を備えなくてもよい。その他のストレージ特有の機能の搭載状態は、第1のストレージ装置と第2のストレージ装置との間で同じでなくともよい。
ファイバチャネルを用いた通信路(ストレージエリアネットワーク)50は、第1の物理サーバ10を、第1のストレージ装置100が提供するストレージ資源へアクセスさせ、第1の物理サーバ10が使用するデータを転送させるためのものである。同ネットワークには、複数の物理サーバ10または複数のストレージ装置100を相互に接続させるために、例えば、ファイバチャネルスイッチ55が存在していてもよい。また、同ネットワークに接続された装置が解釈可能であれば、物理サーバ10上のアプリケーションによる利用を目的とするのではなく、例えば、装置自体を制御するための制御情報を転送する目的で同ネットワークが使用されてもよい。
さらに、以下に記述する全てのネットワークを構成するための接続規格はファイバチャネルに限るものではなく、物理サーバとストレージ装置、ストレージ装置同士の相互接続が可能であれば、例えば、イーサネット(登録商標)やインフィニバンドなど他の規格に準拠するに代えてもよい。
ファイバチャネルを用いた通信路51は、第2の物理サーバ20を第2のストレージ装置200が提供するストレージ資源へアクセスさせ、第2の物理サーバ20が使用するデータを第2の物理サーバに転送するためのネットワークである。
さらに、第1のストレージ装置100と第2のストレージ装置200を相互に接続し、第1のストレージ装置に外部接続機能を使用可能にさせる目的で、通信路50および通信路51の間に、通信路52が設けられている。図1(a)に示す通り、通信路52はファイバチャネルスイッチ55およびファイバチャネルスイッチ65を相互に接続する形態から構成されてもよいし、第1のストレージ装置100のネットワークポートと第2のストレージ装置200のネットワークポートとを直接的に接続する形態から構成されてもよい。上記ストレージ装置間を相互に接続すること以外、例えば、第1の物理サーバ10と第2のストレージ装置200との相互の通信は必須ではないために、この相互通信を可能とすることは通信路52を追加する理由にはならない。
ファイバチャネルを用いたネットワークは、個々のネットワークアダプタ(ホストバスアダプタ、HBA)上の各ネットワークポートに、WWN(World Wide Name)と呼ばれる一意なアドレスを静的に持つ。WWNは複数の装置に跨って一つであり、同じネットワーク上で重複しない。また、ネットワークポートがネットワークに接続された際には、トポロジに応じて、アービトレイテッドループ物理アドレス、またはネイティブアドレス識別子と呼ばれる動的なアドレスがポートに付与される。これらのアドレスは、アクセス制御により許可される範囲内で公開されており、同一のネットワークへ論理的に接続された任意の機器から参照され得る。本実施形態は、特に断らない限り、WWNやそのエイリアス(ネットワーク上の機器において使用される別名)を用いるが、本実施形態が開示する技術および方法は、付与されるアドレスの種別により限定されるものではない。前述のアドレスは、IPネットワークにおける、MACアドレスとIPアドレスに相当するものであり、本実施形態の適用範囲をファイバチャネルに限定するものではない。
図1(a)に示すように、管理コンピュータ500は、少なくともメモリ512上のプログラムを実行するためのCPU511、および、情報システムの他の装置と通信を行うためのイーサネット(登録商標)インタフェース516を備え、他の装置の管理のために必要な処理を行う。
管理コンピュータ500がイーサネット(登録商標)インタフェース516を介して、正確には、インタフェース上のネットワークポートを使用して、接続する通信路90は、主に、管理コンピュータ500が情報システムの他の装置(例えば第1の物理サーバ10、第1のストレージ装置100、ファイバチャネルスイッチ55など)の構成を管理するために、必要なデータを当該他の装置と送受信するためのネットワークを構成する。
このネットワークは単一である必要はない。クライアントコンピュータが要求する処理に必要なネットワークが構成されるために、例えば、物理的に異なるイーサネット(登録商標)インタフェースまたは同インタフェースが備えるネットワークポートが別途用意されてもよいし、ネットワークが仮想LAN技術を用いて論理的に分割されるものでもよい。物理サーバ同士が相互に通信を行うための、同種のネットワークが存在してもよい。また、通信路90に、各装置を相互に接続するためのイーサネット(登録商標)スイッチ91などが存在してもよい。
管理コンピュータ500はメモリ512上に、それぞれ少なくとも一つ以上のOS513および管理プログラム514と、少なくとも一つ以上の移行制御プログラム515を格納する。詳細なプログラム構成を図1(c)に示す。管理プログラム514は、それぞれ少なくとも一つ以上の物理サーバ管理プログラム551、ストレージ管理プログラム556、ネットワーク管理プログラム554に分類される。管理プログラム514が移行制御プログラム515と適切に通信できるのであれば、これらプログラムは、異なる管理コンピュータ500や管理コンピュータ以外の他の装置に存在して動作してもよいし、管理対象に応じて複数の場所に分かれていてもよい。管理プログラム514は、各装置を開発・製造したベンダにより提供されるか、あるいは、開発・製造された装置と互換性を持つものである。
物理サーバ管理プログラム551は、物理サーバおよび物理サーバに構成された仮想サーバを管理する。例えば、第1の物理サーバ10に対しては、この物理サーバ上の仮想化ソフトウェア14またはOS13が実装する物理サーバ管理プロバイダと通信することにより、物理サーバの構成情報および性能情報を取得し、そして、その構成を変更する。物理サーバ管理プロバイダは、サーバを提供するベンダにより、当初から物理サーバに組み込まれている。物理サーバ管理プログラム551は、主に、仮想ディスク管理テーブル552および物理サーバ情報553を用いて、物理サーバの構成および性能情報を管理する。仮想ディスク管理テーブル552の詳細を図6に示す。仮想ディスク管理テーブル552は、仮想サーバに接続された仮想ディスクの配置を記録するためのものであり、仮想サーバが配置されている物理サーバ識別子552a、仮想サーバ識別子552b、ボリューム共有グループ552c、仮想ディスク識別子552d、仮想ディスクタイプ552e、ファイルシステムにおける仮想ディスク位置を示すパス552f、格納先論理ボリューム552g、物理サーバに対する格納先ディスクドライブの接続位置552h、同ディスクドライブに付与されたデバイス識別子552i、およびネットワークインタフェース上の接続先ポート名552jを保持する。これらの構成情報は全て物理サーバ上のOSまたは仮想化プログラムから取得することができる。
ボリューム共有グループ552cは、複数の物理サーバから同一のボリュームへ接続する構成のことを指し、負荷分散やメンテナンスのために、物理サーバ間で仮想サーバの移行を可能にするための物理サーバのグループのことである。
仮想ディスクには複数の形式がある。第1の形式は、物理サーバにマウントされたボリューム(物理サーバは物理ディスクドライブと認識)内にファイルが格納されている形式である。物理サーバはボリュームを物理ディスクドライブと認識する。第1の形式の仮想ディスクには、例えば、固定容量、可変容量、さらに差分容量で夫々作成されることが可能なファイルが含まれる。第2の形式は、ボリュームを仮想サーバに物理ディスクドライブとして接続する形式である。
仮想ディスクがファイル形式から構成されているのであれば、仮想ディスク管理テーブル552は、さらにディレクトリ構造上の位置を示すパス552fを保持する。物理サーバからディスクドライブ内をさらに一つ以上の論理ボリューム(あるいはパーティション)に分割してファイルシステムが構成されることがあり、物理サーバは、これを管理するために格納先となる論理ボリューム552gを保持する。
ディスクドライブの接続位置552hは、SCSI規格に従い、OSまたは仮想化プログラムが決定するLUNに、ターゲットおよびSCSIバスの識別番号を組み合わせて表現される。
SAN(例えば通信路50や通信路51)に接続するために使用されているポート名(WWN)は接続先ポート名フィールド552jに保持される。接続先ポート名552jについて、複数のアクセス経路が存在する場合、例えば、信頼性や性能を高める目的でマルチパスまたはリンクアグリゲーションが導入されている場合においては、フィールド552jに複数のポート名を登録するか、複数レコードに分割して保持してもよい。
ディスクドライブには、オペレーティングシステムまたは仮想化プログラムにより、例えば、物理サーバがストレージ装置から取得できるデバイス識別子163aを用いて、一意なデバイス番号552iが付与される。
仮想ディスク管理テーブルは、さらに、内蔵ディスクドライブかあるいはSANを経由したストレージ装置か、を判別するフラグや、それらの接続インタフェースの種類(例えばIDEやSCSIなど)、ファイルシステムの種類を保持してもよいし、あるいはファイル形式の仮想ディスクがネットワーク上のファイルサーバに保持されている場合には、それを判別するフラグを保持してもよい。ただし、これらの構成情報は、物理サーバ上のOSまたは仮想化プログラムにより管理可能なものに限られる。
図7に示す物理サーバ情報553は、物理サーバおよび仮想サーバの性能情報を記録する目的で、物理サーバごとに作成されたレコードと、当該物理サーバ上の仮想サーバについて作成されたテーブルが関連付けられたものである。
物理サーバの性能情報には、例えば、物理サーバ識別子553aに対応する、論理CPUコア数553c、メモリ容量553d、ネットワーク帯域553e、ディスクIO帯域553f、およびSAN接続用のポート名リスト553gが、物理サーバ管理プログラム551によって情報が取得された時刻553bととともに保持される。これらの物理サーバの性能情報には、必要に応じて、物理サーバ管理プログラム551が取得できるものに限って、他のパラメータが保持されてもよい。
仮想サーバの性能情報には、例えば、物理サーバ上の仮想サーバ識別子553hに対応して割り当てられた、論理CPUコア数553j、CPUの平均利用率553k、メモリ容量554m、ネットワーク帯域553n、ネットワーク平均転送量553p、ディスクIO帯域553q、ディスク平均IO量553r、ディスク使用率553sと、が、仮想サーバの状態(例えば稼働中、停止中など)553iとともに保持される。仮想サーバの性能情報には、必要に応じて、物理サーバ管理プログラム551が取得できるものに限って、他のパラメータが保持されてもよい。
例えば、仮想化プログラム14が、仮想サーバに割り当てるメモリを仮想サーバ等の負荷に応じて動的に変更する技術(メモリバルーニング)を用いている場合、動的メモリ容量を仮想サーバ性能情報に加えてもよい。物理サーバ管理プログラム551は、これら物理サーバ上の仮想サーバについての性能情報を総計することにより、物理サーバ上で消費されているリソースの利用量や、性能を算出する。ただし、仮想化プログラムやOSが仮想サーバとは別に物理サーバのリソースを消費する場合は、このことを計算に加味してもよい。
ストレージ管理プログラム556は、ストレージ装置を管理する。例えば、ストレージ管理プログラムは、第1のストレージ装置100のストレージコントローラ150内に備わっているストレージ管理プロバイダ166と通信することにより、ストレージ装置の構成情報を取得し、そして、その構成変更を行うことができる。
本実施形態において、ストレージ管理プログラム556は、ボリューム管理テーブル557、ストレージドメイン管理テーブル558、およびボリュームマッピングテーブル559を用いて、ストレージ装置の構成を管理する(図1(c)参照)。その他、必要であればストレージコントローラ150が有する割り当て管理テーブル164や、ポート管理テーブル167を参照し、これらの設定を変更することができる。
図8に示すボリューム管理テーブル557は、ストレージ装置がストレージコントローラに備えるボリューム定義テーブル163の内容に相当する構成情報を保持する。ただし、ボリューム管理テーブルは、ボリューム定義テーブル163の内容に加えて、ストレージ装置を一意に識別するためのストレージシリアル番号557b、および、ストレージ管理プログラム556が対象とする全てのストレージ装置についてのボリュームを一意に識別するためのボリューム名557aを保持する。
これらの識別子を加えるのは、例えば、第1のストレージ装置100のボリューム定義テーブル163が同装置内のボリュームについてのみ管理するのに対し、ボリューム管理テーブル557は、一つ以上のストレージ装置についてボリュームを管理する必要があるためである。
ボリューム名557aは一意であれば、ストレージ管理プログラム556の管理計算機への実装に応じて命名規則が異なってもよい。例えば、ストレージ管理プログラム556は、ボリューム管理テーブル557にレコードを追加する時にボリューム名を連番となるように生成してもよいし、あるいは、ストレージシリアル番号557bとデバイス識別子557cを組み合わせてボリューム名を生成してもよい。
また、ストレージ管理プログラム556は、ボリューム制御プログラム162を操作し、ボリュームごとにキャッシュの有効化/無効化を設定でき、この情報を同ボリューム管理テーブル557に保持してもよい。
図9に示すストレージドメイン管理テーブル558は、ストレージ装置がストレージコントローラに備えるストレージドメイン定義テーブル165の内容に相当する構成情報を保持する。ストレージドメイン管理テーブル558は、ボリューム管理テーブル557の場合と同じ理由で、さらに、ストレージ装置を一意に識別するためのストレージシリアル番号558b、および、全てのストレージ装置についてボリュームを一意に識別するためのボリューム名558gを保持する。
図10に示すボリュームマッピングテーブル559は、管理計算機又はサーバが複数のストレージ装置に跨ってストレージ機能を使用するのに備えて、ボリューム間の接続関係を保持する。同テーブルは、マッピング元ストレージシリアル番号559a、マッピング元ボリューム名559b、マッピング元ポート名559c、マッピング先ストレージシリアル番号559f、マッピング先ボリューム名559g、マッピング先ポート名559hを、マッピングタイプ559dおよびステータス559eとともに保持する。
例えば、始めのレコードは、シリアル番号「201」の装置内にあるボリューム名「10220」のボリュームを外部接続機能により、シリアル番号「101」の装置内のボリューム名「00401」のボリュームへ対応付けており、状態が「オンライン」であることを示している。これにより、ボリューム名「00401」で管理される(仮想)ボリュームへのアクセスは、外部接続機能によりボリューム名「10220」で管理されるボリュームへ正常にリダイレクトされている状態であることがわかる。また、二行目のレコードは、ストレージ装置間を跨るボリュームコピー(レプリケーション)の適用を示した例である。
ネットワーク管理プログラム554は、ネットワーク装置を管理する。例えば、ファイバチャネルスイッチ55が備えるネットワーク管理プロバイダと通信することにより、ネットワーク装置から構成情報を取得し、そして、その構成情報の変更を行う。同管理プロバイダは、ネットワーク装置を提供するベンダにより、当初から装置へ組み込まれているものである。
本実施形態において、ネットワーク管理プログラム554は、主にゾーン管理テーブル555を用いて、ファイバチャネルスイッチ55により制御されるアクセス範囲を管理する(図1(c)参照)。
前述したストレージドメインのように、ストレージ装置内では、物理サーバからアクセスし得る範囲を制御する技術が用いられている。同様の目的で、ネットワーク上のスイッチは、ストレージ装置や物理サーバを跨ってアクセス可能な範囲を制御する機能を備える。
ファイバチャネルを用いたストレージネットワーク管理においては、ゾーニングと呼ばれるアクセス制御技術が知られている。ゾーニングには、大別して二つの方式がある。一つはスイッチが備えるネットワークポート名(またはエイリアス)を用いて、特定のポートに物理的に接続されたネットワーク上の装置のみに相互接続を許可する固定的な範囲(ゾーン)を定義する、ハードウェアゾーニングである。もう一つは、ネットワーク上の装置が有するネットワークポート名(またはエイリアス)を用いて、物理的にスイッチのどのポートに接続されていても、当該ポート名を持つ装置のみが相互接続できる範囲を定義する、ソフトウェアゾーニングである。
図11に示すゾーン管理テーブル555は、ゾーンを一意に識別するためのゾーン名555a、ファイバチャネルスイッチを一意に識別するためのスイッチ識別子555b、および一つ以上のポートを表すポート名リスト555dとともにゾーンタイプ555c(ハードウェアゾーンまたはソフトウェアゾーン)を保持する。いずれのゾーンタイプであっても、同じ形式のテーブルにより管理され得る。
移行制御プログラム515は、本発明に特徴的なプログラムであり、物理サーバ管理プログラム551、ストレージ管理プログラム556、ネットワーク管理プログラム554と連携して、仮想サーバの物理サーバ間移行と、仮想ディスクのストレージ装置間移行を実現する。移行は、移行元と移行先との相互接続が可能な接続手段(例えばIPネットワークやプロセス間通信など)と、公開される管理用インタフェースを用いて行われる。移行制御プログラム515は、対象マッピングテーブル549およびボリューム接続設計テーブル550を用いて、仮想サーバと仮想ディスクの接続関係を管理し、移行の前後でこの接続関係を維持するように動作する。
図12に示す対象マッピングテーブル549は仮想サーバと仮想ディスク、さらにはボリュームとの接続関係を管理するためのものであり、少なくとも、物理サーバ管理プログラム551が認識し得る仮想ディスクの数に等しいレコードを保持する。したがって各レコードには、物理サーバ識別子549a、仮想サーバ識別子549c、仮想ディスク識別子549d、および格納先ボリューム名549kを必ず含む。
移行に必要であれば、管理ソフトウェア514から間接的に取得できるもの、または、管理プロバイダから直接的に取得できるものに限り、他の識別パラメータを同レコードに含んでもよい。例えば、ボリューム共有グループ549b、ファイルシステム上のパス549e、ディスクドライブの接続位置549f、物理サーバ側ポート549g、ゾーン名549h、ストレージ側ポート549i、ストレージドメイン549jなどを含む。
また、物理サーバ管理プログラム551、ストレージ管理プログラム556、ネットワーク管理プログラム554が複数あり、識別子が重複する恐れのあるときには、同対象マッピングテーブル549を作成する移行制御プログラム515により、重複しないものへ変更する手続きを含んでもよい。
図13に示すボリューム接続設計テーブル550は、移行対象のボリュームを、移行先において物理サーバへどのように接続するかという設定を保持するものである。同テーブル550は、移行された(または、移行が予定された)ボリューム名550aに対し、移行先ボリューム名550b、移行先の物理サーバ識別子550c、ディスクドライブの接続位置550e、接続先物理サーバのポート550dを保持し、移行先においてボリュームと物理サーバ上のポートの間に定義されるパスと等しい数のレコードが作成されている。
2.構成情報の取得方法
管理コンピュータが、ストレージ装置の機能を使用して、仮想サーバの移行を行うには、移行元の或る仮想サーバが移行対象に指定されたときに、このストレージ機能を適用すべきボリューム、すなわち、当該仮想サーバが使用している仮想ディスクを格納している移行対象ボリュームを特定する必要がある。ところが、前述の通り、ストレージ、サーバ、ネットワーク等の各装置を管理するためのプログラムは、基本的には、サーバ・ネットワーク・ストレージといったそれぞれが担当する層を管理するように特化され、かつ、そのように設計されている。そのため、システムを構成する複数の層を跨って管理を行うことができるプログラムは一般に存在しない。
さらに、ストレージ管理プログラム556が移行対象ボリュームに対してストレージ機能を適用するには、管理者は、ストレージ管理プログラム556が解釈可能な識別子(例えば、ボリューム名557a)により対象ボリュームを指定しなければならない。しかし、仮想ディスクの所在を管理する物理サーバ管理プログラム551が、物理ディスクドライブとしてボリュームを特定するために使用している識別子は、ストレージ管理プログラム556が使用する識別子と同じであるとの保証はない。例えば、物理サーバはSCSI Inquiryコマンドの応答が含むデバイス識別子又はこれを基にボリューム固有の識別子(例えば、デバイス番号552i)を生成するのに対し、ストレージ管理プログラム556は、独自に管理用の論理的な識別子としてボリューム名557aを生成している。
この理由として、ストレージ装置に、物理サーバに、公開しないボリュームが存在するため、これらボリュームを論理的に区別しなければならないこと等があげられる。例えば、コピーされたボリュームなど、コピー元ボリュームと物理的に異なるボリュームにコピー元ボリュームのデバイス識別子を引き継がせ、物理サーバが構成変更を意識させないようにアクセス先ボリュームを変更する機能、即ち、オンラインボリュームマイグレーション機能をストレージ装置に実装する際には、SCSI規格が定めるデバイス識別子は同じになるが、ストレージ管理上、コピー元ボリュームとコピー先ボリュームとは違うボリュームとして操作されなくてはならず、デバイス識別子(物理サーバへ公開する識別子)とは別に管理用の識別子を持たなければならない。
そこで、管理コンピュータは、デバイス固有の識別子に基づくのではなく、ボリュームを物理サーバに接続する際の位置情報をもとに、ボリュームの識別、ボリュームの特定を行う。例えば、SCSI規格においてHBAポートごとに付与される、LUNが位置情報に該当する。デバイス固有の識別子が全ての装置を跨って一意であるのに対し、LUNはイニシエータ(物理サーバ側)のポートに対して一意である。
デバイス固有の識別子が必ず一意であることと併せて、デバイス固有の識別子は、ボリュームに記録された内容と一対一に対応させることができる。デバイス固有の識別子は、例えば、複数の物理サーバからボリュームを共有するときや、同一ボリュームに対して複数パスを制御するマルチパスソフトウェアを構成するときに、物理サーバから見てボリュームの同一性を識別するために使用される。サーバは、接続されたボリュームの内容を全て読み込んで、ボリューム同士を比較するまでもなく、Inquiryコマンドにより、デバイス固有の識別子をもとに、ボリュームの同一性を調べることができる。このようなデバイス固有の識別子はふつう、サーバ装置内部での識別動作に使用されており、装置外の管理プログラムに対して公開されていない。そのため、このデバイス固有の識別子を調べる場合は、Inquiryコマンドを発行し得るプログラム(エージェント)を物理サーバに導入し、特別にインタフェースを設ける必要がある。
一方で、LUNは、物理サーバからアクセスが可能なように、単に何番目に接続されているボリューム(論理ユニット)かを示す動的なアドレスの一種であり、複数のサーバを跨ってボリュームの内容を識別する用途には使われない。例えば、ある物理サーバにマウントされていたボリュームを、以前とは異なるLUNを付与して、他の物理サーバで使用することができるようにする等、物理サーバがボリュームに接続する際のルートを変更することができる。
ポートを表す識別子と、LUNは、SCSIプロトコルが定める、各装置間での接続を実現するために必要なアドレス情報であり、管理コンピュータ500上の管理プログラム514により、各装置の管理プロバイダを経由して容易に取得できる。このように、管理プロバイダや管理プログラムがアドレス情報の特定を装置外のネットワークを経由する点でアウトオブバンド方式である。
図14に物理サーバ10、ファイバチャネルスイッチ55、ストレージ装置100の構成を例示する。管理サーバ500上の管理プログラム514は、各装置上の管理プロバイダ14c、55a、166を通して各装置における構成情報を取得する。
仮想サーバ17は、仮想化プログラム14が提供する論理空間17a上で稼働する。仮想化プログラム14の実装方式は多様である。物理サーバが備えるハードウェアは、ある論理的に分割されたハードウェアとしてユーザに提供される。論理的に分割されたハードウェアは論理空間17a上で動作する。
同図に示すように、例えば、ディスクへのアクセスは、ストレージスタック14aと呼ばれる階層化された構造によって抽象化されたハードウェアを介して行われる。ハードウェアが分割された論理空間で稼働することを内容とする仮想サーバもまた同様に、仮想サーバのOSが実現するストレージスタック17bを介して、仮想ディスクへアクセスする。
同図の場合、仮想サーバ17が使用する仮想ディスク14eは、仮想プログラム14のストレージスタックによって、論理ボリューム14d上に定義されるファイルシステムのファイルとして管理される。仮想サーバ17からは、仮想ディスク14eがストレージスタック17bを経由して接続された物理ディスクドライブであるかのように認識される。
仮想化プログラム14の実装の如何によっては、主に、論理ボリュームに対するアクセスがストレージスタックの複数のレイヤを介することによるオーバヘッドを避ける目的で、ファイル形式を介さず直接的に論理ボリュームへのアクセスを提供する形式もある(パススルーディスク形式)。
ストレージスタック14aの論理ボリュームマネージャ以下の階層では、記憶域は一つのボリューム(または物理ディスクドライブ)として管理されている。マルチパスドライバは、同一のボリュームに対する複数のパスを制御し、ディスクアクセスの負荷分散やフェイルオーバを実現する。デバイスドライバやポートドライバは、ストレージ装置やネットワークアダプタの差異を吸収し、それら機器のサーバへの実装の方式によらず、上位層からは同様にREAD/WRITEコマンドによるアクセスされることを可能にする。
前述の通り、管理コンピュータは、ボリュームの特定情報として、ボリュームの接続の位置の特定情報である、デバイスドライバ(または論理ボリュームマネージャ)から取得できるLUNと、ポートドライバから取得できるポートWWNとを用いている。マルチパスドライバにより使用されるパスが動的に変更される場合、ポート情報が上位レイヤに対し隠蔽されることがあるため、マルチパスドライバが管理しているパス制御情報を参照して、現在使用されているポートが特定される。
一方、ストレージ装置100にはストレージドメイン100bが定義されており、ストレージドメインは、ホスト(物理サーバ10)側ポート15aと関連づけられている。さらに、同ストレージドメイン100bにおいて、ボリューム100aを物理サーバ10(またはホスト側ポート15a)に対してどのLUNで提供するかが定義されている。
また、仮想化プログラム14は、仮想サーバ17が使用している仮想ディスク14eが、どのLUNを付与された物理ディスクドライブに格納されているかの情報を保持している。ここで、ホスト側ポート15aについて、物理サーバ10で使用しているLUNと、ストレージ装置100側で設定しているLUNとを比較することにより、仮想サーバ17が使用しているストレージ装置100内のボリュームが一意に特定される。
ファイバチャネルスイッチ55は、ゾーンによりネットワーク上の複数の機器に対する、各種のアクセス制御を行っている。複数の装置が仮想サーバ、仮想ディスクの移行に関係する場合、例えば、移行元のスイッチと移行先のスイッチで、共有ボリュームに同じようにアクセスできるようにゾーンを構成してもよい。そのためには、ネットワーク管理プログラム554が、管理プロバイダ55aを介してゾーン構成情報を取得し、ゾーン管理テーブル55を作成しておく必要がある。
仮想サーバと仮想ディスク、および、仮想ディスクを格納するボリュームは、必ず一対一に対応するとは限らない。そこで、仮想サーバをサーバ間で移行し、それに伴い、仮想ディスクをストレージ間で移行する際には、複数の仮想サーバと複数のボリュームの相互の依存関係が加味されることが必要である。そこで、仮想サーバとボリュームの関係を示す構成例を説明する。図15(a)に示すように、仮想サーバが複数の仮想ディスクを持つこと、あるいは複数の仮想ディスクが同じボリュームに格納されていること、さらには、仮想ディスクの種別により、依存関係は多様に存在する。
図15(a)において、仮想サーバ702aは、複数の仮想ディスク702gおよび702iを別のボリューム702fおよび702hに格納する。したがって、仮想サーバ702aが移行対象に指定された場合は、ボリューム702fおよび702hの両方も移行対象となることを管理コンピュータは検出する。
さらに、ボリューム702hは仮想サーバ702bが使用している仮想ディスク702jをも格納しているため、仮想サーバ702aが移行対象に指定された場合は、仮想サーバ702bも移行対象となる可能性がある。
また、同様に同一のボリューム702kを共有している仮想サーバ702cおよび仮想サーバ702dが異なる物理サーバ上にあった場合、管理コンピュータは、これを適切に検出して移行を行わなければならない。
複数の仮想化プログラムが同じボリュームを共有する際には、ボリューム共有サービス14bが動作する(ボリューム共有サービス14bの詳細については実施形態2において後述する)。
これら仮想サーバとボリュームの依存関係は、仮想ディスク管理テーブル552が保持する対応関係が総合的に解析されることによって明らかとなる。
さらに、仮想サーバ702eのように、仮想ディスクがファイル形式ではなく、ボリューム702oを直接的に利用するパススルーディスク形式であった場合についても同様である。これら仮想ディスクの種別は、仮想ディスク管理テーブル552の仮想ディスクタイプ552eから判別される。
一方、図15(b)に示すように、ストレージの機能も仮想サーバの移行に合わせて移行対象となる。仮想サーバ702pはボリューム702sを使用しているが、702sおよび702tはボリュームバックアップ機能を使用しているコピーペアの関係にあるため、必要に応じて、これら二つのボリュームは移行先ストレージ装置に同時に移行される。
仮想サーバ702qが使用しているボリューム702vは、ボリュームスナップショット機能を使用して作成した、親ボリューム702uのスナップショット(子)であるため、移行の際に、スナップショットを親ボリューム702uに統合されるか、あるいは、スナップショット関係が維持されたまま両方のボリュームが同時に移行される。
さらに、仮想サーバ702rが使用しているボリューム702xは、もともとボリューム702wに外部接続されたもの、または、ストレージ装置間でコピーされたものであるため、必要に応じて統合されるか、または、両者の関係が維持されたまま移行されればよい。これらの構成は、ボリューム管理テーブル557およびボリュームマッピングテーブル559から明らかである。
このように、仮想サーバ、仮想ディスク、および、ボリュームは多様な依存関係を有する。図1の計算機システムの移行方式では、これらの依存関係を検出する方法を提供する。ただし、検出された依存関係をもとに、同時移行の必要が生じる組み合わせを列挙するのに留め、実際の移行を進むか否かを管理者に委ねてもよい。
3.移行方法
移行のためのシステムを図16に示す。管理コンピュータの移行制御プログラム515は、第2の物理サーバ20(ソース物理サーバ:仮想サーバ移行元)上で稼働していた仮想サーバ700aを、第1の物理サーバ10(デスティネーション物理サーバ:仮想サーバ移行先)へ移行する。同時に、仮想サーバ700aが使用する仮想ディスクを格納していた第2のストレージ装置200内のボリューム700bを、第1のストレージ装置100内のボリューム700dへと移行し、移行元仮想サーバ700aで元々使用されていた仮想ディスク700gを移行先仮想サーバ700fに再接続する。これにより、計算機システムは、仮想サーバおよびその仮想ディスクの移行前の接続関係を維持しながら、ストレージ装置の機能、換言すれば、複数のストレージ間の連携機能であり、例えば、既述の外部接続機能を利用して、仮想サーバ及び仮想ディスクを移行元とは異なる物理サーバおよびストレージ装置へ移行することができる。
移行前の状態では、第2の物理サーバ20と第2のストレージ装置200とは相互に接続され、仮想サーバ700aは第2の物理サーバ20上で、仮想サーバ700aの仮想ディスクは、第2のストレージ装置200で稼働していた。このとき、第2の物理サーバ20、第2のネットワークスイッチ65、第2のストレージ装置200は、それぞれ管理コンピュータ500上の物理サーバ管理プログラム551、ネットワーク管理プログラム554、ストレージ管理プログラム556により管理されている。
移行の処理を行うために、移行制御プログラム515は、それら管理プログラム514を通じて、移行元である第2の物理サーバ20、第2のストレージ装置200、第2のネットワークスイッチ65から夫々の構成情報を取得する。取得した構成情報を、移行制御プログラム515は、対象マッピングテーブル549において管理し、移行管理者が移行したい仮想サーバ700aを指定すると、対応する仮想ディスクを格納するボリューム700bを特定する。
続けて、管理者は、管理コンピュータ500に対して、移行先物理サーバ、そして、必要に応じてストレージ装置を指定する。指定した内容を移行制御プログラム515はボリューム接続設計テーブル550に保持する。同テーブルには、移行先物理サーバのみならず、論理的な位置やネットワークポートに関するフィールドがあるが、これらは移行制御プログラム515が特定のアルゴリズムにしたがって算出するようにしてもよいし、管理者が設定してもよい。アルゴリズムは公知の内容でよく、少なくとも移行対象仮想サーバについて物理サーバ情報553を参照し見積もった要求リソースの総容量を、移行先物理サーバおよび移行先ストレージ装置が空き容量として有するか否かを判別できる能力を有するものであればよい。
移行先として第1の物理サーバ10および第1のストレージ装置100が指定、或いは、決定されたとき、移行制御プログラム515は、各管理プログラム514を経由して、第1のネットワークスイッチ55を含む各装置を操作し、第1のストレージ装置100のストレージ資源を第1の物理サーバ10へ正常に提供できるよう通信路を設定する。この設定には、第1のネットワークスイッチ55におけるゾーニングや、第1のストレージ装置100におけるストレージドメインの設定が含まれる。必要であれば、管理コンピュータ或いは管理者は、移行処理の前に第1の物理サーバ10、第1のストレージ装置100、および第1のネットワークスイッチ55を、それぞれの管理プログラム514の管理対象として新規に登録しておき、各装置を管理コンピュータ500から操作可能な状態にする手順を行ってもよい。この登録が既にある場合には、装置の論理構成を正確にするために、管理コンピュータは、最新の構成情報を取得する手順を実施し、各管理テーブルを更新しておくようにしてもよい。
管理コンピュータは、ボリューム700bが保持するデータをストレージ装置200,100間で移行させるために、第1のストレージ装置100と第2のストレージ装置間の連携機能、例えば、第1のストレージ装置100が有する外部接続機能を使用する。対象マッピングテーブル549において移行対象のボリューム700bを識別するボリューム名549kは、もともとストレージ管理プログラム556で付与していた識別子557aであるため、管理コンピュータは、ボリューム名を使用してストレージ管理プログラム556から第1のストレージ装置100の外部接続機能の設定を行うことができる。
管理コンピュータは、第2の物理サーバ20上の仮想サーバ700aと全ての仮想ディスクとの接続700cを切断し、仮想サーバ700aを第1の物理サーバ10に移行する。移行手段は、第2の物理サーバ20の仮想化プログラム24が有する仮想サーバを、静止化する機能(仮想サーバを一時的に停止し、管理用の情報やメモリの内容を、ファイル形式で保存する機能)を使ってネットワーク(通信路90)上を転送してもよいし、第1の物理サーバ10に主要な設定情報を引き継いで、移行元仮想サーバとは別の仮想サーバを作成する方法でもよい。
主要な設定情報とは、例えば、仮想サーバの識別子や所有者などの管理に関わる情報や、仮想CPU数、仮想メモリや仮想記憶域のインタフェース構成などの仮想ハードウェアに関わる情報のことであり、少なくとも、移行対象仮想サーバが達成すべき機能を再現するための目的を果たすものである。これらの設定情報は仮想ディスク管理テーブル552、および、物理サーバ情報553において管理され、移行元・移行先物理サーバに反映される。ただし、仮想サーバの再作成が行なわれることにより、仮想サーバの識別子が変更される場合は、それに合わせて、管理コンピュータは、仮想ディスク管理テーブル552における仮想サーバ識別子552bや、対象マッピングテーブル549における仮想サーバ識別子549cを修正する。
ボリューム700bが第1のストレージ装置100へ移行され、第1の物理サーバからボリューム700dとして識別されるようになった後、移行制御プログラム515は、ボリューム700d内に格納する仮想ディスク700gを、第1の物理サーバ10に移行した仮想サーバ700fへ再度接続する。
移行の後において、仮想サーバと仮想ディスクとの適切な接続関係を再現するために、移行制御プログラム515は、移行元で作成しておいた対象マッピングテーブル549を参照し、同一レコードに記載された仮想サーバ識別子549cに対応する仮想ディスク識別子549dを持つ仮想ディスクを検出する。ここで移行制御プログラム515が検出した仮想ディスク識別子549dは、移行先物理サーバを管理する物理サーバ管理プログラム551に送信され、仮想ディスク管理テーブル552に設定され、次いで、この設定情報は、物理サーバ管理プログラム551から仮想サーバの移行先物理サーバ内のエージェントプログラムに送られ、当該物理サーバのメモリの管理テーブルに反映される。
仮想ディスク識別子549dが仮想ディスクに記載されておらず、識別子を調べることができない場合は、ファイルシステム上のパス549eを使用すればよい。ただし、論理ボリューム上の位置(マウントポイントやドライブレターなど)は、ボリューム接続設計テーブル550を参照し、移行先の設定に合わせて変換する必要がある。
移行先物理サーバに対する仮想ディスク管理テーブル552に設定された値は、既述のとおり、移行先物理サーバ管理プログラム551により実際に物理サーバ上のOSや仮想化プログラムへ反映される。同様に、例えば、ディスクドライブの位置など、ボリューム接続設計テーブル550に設定されている値は、移行制御プログラム515を介して物理サーバ管理プログラム551によって設定される。さらに、仮想ディスク管理テーブル552や物理サーバ情報553に設定されるべき情報であり、対象マッピングテーブル549およびボリューム接続設計テーブル550で保持されていない値は、仮想サーバと仮想ディスクとの接続関係の再設定に直接必要とされない付加的な情報である。そのため、前述の接続関係に関わる情報が物理サーバに反映されるときに、移行先物理サーバ100上のOSや仮想化プログラムにより、この情報が自動的に補完されてもよいし、移行制御プログラム515や物理サーバ管理プログラム551によって自動的に補完されてもよい。
詳細な移行手順について、図17に示す処理フローダイアグラムにより説明する。ステップ701aにおいて、移行作業を実施する管理者は、移行制御プログラム515に、移行対象の仮想サーバを指定する。
移行制御プログラム515は、物理サーバ管理プログラム551を用いて、移行元である第2の物理サーバ20の仮想サーバ識別子552bおよびその仮想ディスク識別子552dなどの管理情報を事前に取得しておく。物理サーバ管理プログラム551は、常に最新の構成情報を管理できるように、第2の物理サーバ20上の管理プロバイダを定期的に呼び出して管理テーブルを更新するが、移行の際にこの更新作業を行ってもよい。
移行制御プログラム515は、ステップ701aにおいて、管理プログラム514から情報を取得するための認証に必要であれば、管理プログラム514に登録された管理者権限の入力を管理者に求めてもよい。既述のように、管理コンピュータが、計算機システムを構成する各装置からその構成情報を取得するのは、アウトオブバンド方式に基づいているために、セキュリティを高め、管理ネットワーク90において送受信される情報の第三者による傍受を防止することが重要となる。
同ステップ701aにおいて、移行制御プログラム515は、まず空の対象マッピングテーブル549を作成し、管理者が仮想サーバを移行対象に指定したことを契機に、一つのレコードを作成する。当該レコードには、物理サーバ識別子549a、仮想サーバ識別子549c、仮想ディスク識別子549d、ファイルシステム上のパス549e、ディスクドライブ位置549f、ホスト側ポート549gなど、移行元物理サーバ20に関連する情報が仮想ディスク管理テーブル552から複写される。
ステップ701bにおいて、移行制御プログラム515は、物理サーバ管理プログラム551、ストレージ管理プログラム556、および、ネットワーク管理プログラム554が提供する第2の物理サーバ20、第2のストレージ装置200、および、ファイバチャネルスイッチ65の各構成情報を参照し、ステップ701aにおいて指定された移行対象仮想サーバおよび仮想ディスクについて、対象マッピングテーブル549を編集し、移行対象ボリューム名549kを特定する。
対象マッピングテーブル549には、ステップ701aにおいて、移行対象となる仮想ディスクが格納されているディスクドライブの位置549fと、ホスト側ポート549gが保持されている。これらの情報に対し、移行制御プログラム515は、ストレージ管理プログラム556を経由する等してストレージドメイン管理テーブル558を参照し、ホスト側ポート名リスト558dおよびLUN558eと比較することにより、移行対象のボリューム名558gを特定する。
特定されたボリューム名558gは、対象マッピングテーブル549のボリューム名フィールド549kに複写される。また、移行対象ボリュームが接続されているポート549i、ストレージドメイン549j、さらには対応するゾーン名548hについても、特定されたボリュームに関連するストレージ側ポート558c、ストレージドメイン名558a、ゾーン名555aの値が複写される。
ここで、移行制御プログラム515は、前述の図15(a)および(b)に示すような、仮想サーバと仮想ディスク等の依存関係を検出し、同時に移行すべき仮想サーバおよびボリュームを新たなレコードとして対象マッピングテーブル549へ追加してもよい。その依存関係が検出される方法として、移行制御プログラム515が、特定されたボリュームをキー値として、仮想ディスク管理テーブル552やボリューム管理テーブル557を検索し、同時に移行すべき仮想サーバの情報を逆引きすることがある。
ステップ701cにおいて、管理者は移行制御プログラム515に対し、移行対象仮想サーバごとに少なくとも移行先である第1の物理サーバ10、および、必要であれば移行先となる第1のストレージ装置100を指定する。移行先ボリュームは、後述するように自動的に作成されるので、本ステップでは指定されない。このために、移行制御プログラム515は、物理サーバ管理プログラム551およびストレージ管理プログラム556を通じて、各装置の構成情報を事前に取得しておく。
さらに、移行制御プログラム515はステップ701bにおいて特定された移行対象ボリュームについて、管理者の指定に従ってボリューム接続設計テーブル550を作成する。ボリューム接続設計テーブル550は、どの第1の物理サーバ10の、どの位置に移行先ボリュームを接続するかという移行設定を保持する。ボリューム接続設計テーブル550には、移行対象のボリューム名550aに対し、管理者が入力するか、または、移行制御プログラム515が特定のアルゴリズムに従って入力した移行先物理サーバ識別子550c、移行先ストレージシリアル番号550d、ディスクドライブ位置550e、ホスト側ポート名550fが記入される。
移行制御プログラム515は、ストレージ管理プログラム556に、他のボリュームと重複しないボリュームを移行先ボリュームとして発行させ、ストレージ管理プログラム556は、移行先ボリューム名フィールド550bにこれを記入する。ボリューム接続設計テーブル550の設定項目を入力するための方法は、例えば、次のようなものである。
ステップ701aにおいて管理者が移行対象として指定した仮想サーバについて、管理者が、ステップ701bにおいて作成された対象マッピングテーブル549を参照することで、移行対象ボリューム名549fを取得でき、これによって、ボリューム接続設計テーブル550の移行対象ボリューム名550aが判明する。
ステップ701cにおいて、管理者が、移行先物理サーバ550cを指定すると、移行制御プログラム515は、移行先物理サーバ550cが使用するポート名を物理サーバ情報553のポート名リスト553gから取得する。
移行制御プログラム515は、これをキーにして、移行先ストレージ装置100におけるストレージドメイン管理テーブル558のホスト側ポート名リスト558dと比較する。移行先物理サーバのポート名を含むストレージドメインが既に定義されている場合は、移行先物理サーバ550cに接続されているボリューム名558gやそのLUN558e、ストレージドメイン名558aがわかる。この場合、既存のストレージドメインにおいて他の既存ボリュームと重複しないようにLUNを付与して新たな移行先ボリュームを定義すればよい。
ストレージドメイン管理テーブル558に、該当するレコードが存在しない場合は、移行制御プログラム515は、ポート管理テーブル167から、移行先物理サーバが接続可能なポート名167dに移行先物理サーバ10のポート名を含むレコードを検索する。これにより、移行制御プログラム515が移行先物理サーバと接続するポートを検出できれば、管理者は、当該ストレージ側ポートに新しくストレージドメインを作成して移行先ボリュームを新たに定義する。
ストレージ側ポートの使用状況は、ポート管理テーブル167において管理されており、ストレージ管理プログラム556はこれを参照することができる。ただし、これらボリューム接続設計テーブル550に定義される構成情報は、ステップ701cの段階では装置へ未だ反映されないため、装置の構成変更は実際には行われない。
以上により、移行制御プログラム515は、移行先ストレージシリアル番号550d、ディスクドライブ位置550eを設定できる。移行先物理サーバと移行先ボリュームの間には、物理サーバ10が備えるポート数やストレージ装置100が備えるポートの数によって、複数のパスが存在してもよく、ボリューム接続設計テーブル550には、定義されるパスの数だけレコードが作成される。
ステップ701dにおいて、移行制御プログラム515は、ネットワーク管理プログラム554を用いてファイバチャネルスイッチ55および65の構成情報を取得して、SAN上で外部接続用の経路が構成可能であり、かつボリューム接続設計テーブル550に指定された構成が可能であることを確認する。より具体的には、移行制御プログラム515は、ファイバチャネル上のゾーン構成と、ストレージ装置におけるストレージドメイン構成を参照し、ストレージ装置間の外部接続700eおよび移行先ストレージ装置100から移行先物理サーバ10へストレージ資源を提供する際の物理的な接続性とが得られることや、これが各装置の仕様に制限されないこと、識別子が重複しないことを検証する。
検証結果が不適である場合、移行制御プログラム515は、仮想サーバの移行のための当該仮想サーバの指定を解除するか、管理者によって指定された値を変更することによって、対象マッピングテーブル549およびボリューム接続設計テーブル550を修正する。
ステップ701eにおいて、移行制御プログラム515は、対象マッピングテーブル549およびボリューム接続設計テーブル550を基に、移行のための設定を作業者に対して提示する。移行制御プログラム515は、移行のための設定に対して、管理者からの承認が得られれば次のステップ701fに進むが、得られない場合はステップ701aへ戻り、再度、この設定をやり直す。なお、管理者の承認が得られた場合、仮想化プログラム14が有する仮想サーバ移行機能により移行対象の仮想サーバが、移行先以外の他の物理サーバ20へ移行されることを禁止するようにしてもよい。
ステップ701fにおいて、移行制御プログラム515は、ストレージ管理プログラム556を通じ、ボリューム接続設計テーブル550にしたがってボリュームマッピングテーブル559、ストレージドメイン管理テーブル558、およびボリューム管理テーブル557を設定する。ストレージ管理プログラム556は、移行制御プログラム515が施した設定にしたがって第1のストレージ装置100および第2のストレージ装置200の構成を変更し、移行対象ボリュームに対して外部接続機能を適用する。
即ち、移行制御プログラム515は、ストレージ管理プログラム556を介して、ファイバチャネルインタフェース700eで第1のストレージ装置100および第2のストレージ装置200を接続し、移行先ボリューム700bを仮想ボリュームとして設定し、移行対象ボリューム700bを移行先ボリューム700dにマッピングし、そして、後述のとおり移行先仮想サーバ700fを移行先ボリューム700dに接続することによって、移行先仮想サーバ700fは移行先ボリューム700dにアクセスすることによって移行対象ボリューム700bにアクセスすることができる。
ステップ701gにおいて、ストレージ管理プログラム556は、外部接続のための設定を完了すると、移行制御プログラム515に対して完了通知を発行する。
外部接続の後、さらに移行対象ボリュームの実体が第2のストレージ装置200から第1のストレージ装置100に移行される必要がある場合には、移行制御プログラム515は、ストレージ管理プログラム556を介して、第1のストレージ装置100の装置内コピー機能を使って、移行対象ボリューム700dの複製ボリュームを作成し、移行対象ボリューム700bから複製ボリュームへのコピーが完了したところで、複製ボリュームを正ボリュームとしての新たな移行先ボリュームに設定すればよい。移行制御プログラムは、装置内コピー機能に代えて、第1のストレージ装置100及び/又は第2のストレージ装置200のオンライマイグレーション機能を使って、移行対象ボリューム700bを、移行先ボリューム700d(仮想ボリューム)を介して、第1のストレージ装置100の他の実ボリューム(新たな移行先ボリューム)にコピーすることもでき、この形態では、ボリュームを停止させることなくボリュームの移行が可能になる。新たな移行先ボリュームが設定されると、第1のストレージ装置100と第2のストレージ装置との外部接続は解放されて、仮想ボリューム703dと移行済仮想ボリューム703gとの接続が解放され、その際、新たな移行先ボリュームと仮想ボリューム703gとの接続が設定される。
ステップ701hでは、移行制御プログラム515は、物理サーバ管理プログラム551を用いて、移行対象ボリューム700bを使用する全ての移行元仮想サーバ700aと当該移行元サーバが接続する仮想ディスクとの当該接続を切断し、仮想サーバ700aを削除する。
ステップ701iにおいて、移行制御プログラム515は、物理サーバ管理プログラム551を用いて、移行先物理サーバ10上に移行元仮想サーバ700aと同じ識別子を持つ仮想サーバ700fを復元する。前述の通り、ステップ701iは仮想サーバの識別子を変更するようにしてもよい。この場合、物理サーバ管理プログラム551は、変更した識別子を再度登録し直す。
ステップ701jにおいて、移行制御プログラム515は、ボリューム接続設計テーブルに保持されている情報にしたがい、ストレージ管理プログラム556を用いて、移行先物理サーバ10から移行先ボリューム700dへのパスを設定する。
ステップ701kにおいて、移行制御プログラム515は、対象マッピングテーブル549を参照し、物理サーバ管理プログラム551を用いて、仮想ディスク700gと仮想サーバ700fの接続関係700hを復元する。
ステップ701jにおいてパスが設定されると、移行先物理サーバ10は、移行先ボリューム700dを検出することができる。この段階では、復元された仮想サーバ700fには仮想ディスクが接続されておらず、移行先物理サーバ10の仮想ディスク管理テーブル552について、仮想ディスク識別子552dやそのタイプ552eに値が記入されていない。
そこで、ステップ701kでは、移行制御プログラム515は、検出された移行先ボリューム700dの中から適切な仮想ディスク700gを選び出し、仮想ディスク管理テーブル552に記入する。このとき、適切な仮想ディスク700gを選ぶには、検出された移行先ボリューム700d内の仮想ディスク識別子を調べ、対象マッピングテーブル549に保持されている仮想ディスク識別子549dに合致するものを選んでもよいし、ファイルシステム上のパス549eとして保持されているファイル名に合致するものを選んでもよい。
ただし、ファイルシステム上のパス549eは、移行の前後でドライブレター等ファイルシステム上の位置が変化していることを加味し、移行制御プログラム515は、ボリューム接続設計テーブル550が保持するディスクドライブ位置550eに等しいものへ変換した上でファイル名(またはファイルシステム上のパス)の照合処理を行う。仮想ディスク管理テーブル552において設定した仮想ディスクの識別子を元に、仮想化プログラム14に変更が反映され、仮想サーバ700fは仮想ディスク700gを使用して稼働できるようになる。
本実施形態が提供する移行システムは、ストレージ装置が有する移行機能を活用して、仮想サーバ、および、仮想ディスクを異なる物理サーバおよびストレージ装置へ移行することができる。また、移行先仮想サーバを再作成する方法は、移行元および移行先物理サーバ間に大容量のデータ転送用ネットワーク(通信路90)を敷設することを必要とせず、移行に伴う、イーサネット(登録商標)ワーク構成への変更を最小限にとどめることができる。また、管理者は移行対象の仮想サーバと移行先物理サーバを指定するだけでよく、ストレージ装置の機能を使用するための設定作業のための他の作業負荷は生じない。
またさらに、この実施形態によれば、第1のストレージ装置と第2のストレージ装置との間の外部接続によって、第2のストレージ装置は、移行対象ボリュームから移行先ボリュームへのコピーの完了を待たずして、仮想サーバが移行される先の物理サーバへ移行元ボリュームを提供することができる。
(実施形態2)
第2の実施形態では、仮想化プログラムが提供する仮想サーバ移行機能と、ストレージ装置が提供する外部接続機能と、を連携させて、仮想サーバおよびその仮想ディスクを無停止で移行させるシステムが提供される。本実施形態は、仮想化プログラムによる仮想サーバ無停止移行機能を利用する。同移行機能は、移行元および移行先の物理サーバ上の仮想化プログラムが、仮想ディスクを格納したボリュームを共有し、仮想サーバの状態や設定情報、メモリ上のデータがネットワーク経由で転送されるだけで、仮想サーバを停止することなくその移行を可能にするというものである。
仮想サーバを無停止で異なる物理サーバ上へ移行するには、仮想サーバで実行中のアプリケーションの状態やメモリ上で使用中のデータを転送し引き継ぐ必要があり、仮想化プログラムが協調して動作する仕組みが必要となる。
また、この仮想化プログラムが提供する移行機能は、複数物理サーバに対する負荷分散機能や、高信頼化機能(フェイルオーバ機能)と合わせて使用される場合も多く、仮想ディスクの移行時間を待つことが許されないために、仮想ディスクを格納するボリュームを共有する構成をとる。
本実施形態の物理構成および論理構成は、図1に示す実施形態1の構成と同じである。ただし、共有ボリュームを構成するために、移行元となる第2の物理サーバ20および移行先となる第1の物理サーバ10の仮想化プログラム14では、図14に示すボリューム共有サービス14bが必ず稼働している。また、同一のボリュームを共有する物理サーバは一つのグループとし、仮想ディスク管理テーブル552において、ボリューム共有グループ名552cにより識別される(図6参照)。
ボリュームを共有するには、ボリュームに保持したデータの一貫性を保証する仕組みが必要である。これは、複数の物理サーバから無秩序に書き込みが行われた場合、ある物理サーバが使用している記憶領域が、他の物理サーバによって上書きされてしまうためである。
そこで、同じボリューム共有グループに属する複数の物理サーバ上のボリューム共有サービス14bは、ストレージスタック14aにおけるファイルシステム層や、論理ボリューム層で排他制御を行ってボリュームに保存されるデータの整合性を保証する。例えば、ファイルシステム層において各物理サーバや各仮想サーバがアクセスしてよい領域を排他的に設ける、あるいは論理ボリューム層やデバイスドライバ層で、ボリュームに予約やロックを行い、一つの物理サーバが一時的にボリュームを占有する、といった仕組みがある。そのため本実施形態においては、例えば通信路90を使用してボリューム共有サービス14bが記憶域の予約に関する制御情報を送受信する。あるいは、ストレージ装置が、ボリュームに対するロック情報(例えばSCSI規格で定義される予約)を、複数の物理サーバ装置間で同期させる仕組みを備える。
本実施形態において提供される仮想サーバおよび仮想ディスクの移行方法の概念図を図18に示す。移行前の状態において第2の物理サーバ20上の仮想サーバ703aは、第2のストレージ装置200内のボリューム703bに格納されている仮想ディスクを使用していたとする。本実施形態では仮想サーバ703aが移行対象に指定された場合、移行制御プログラム515は管理プログラムから構成情報を取得し、ボリューム703bを特定する。続けて、移行制御プログラム515は、ボリューム703bを第1のストレージ装置100内の仮想ボリューム703dへ関連づけるよう、外部接続設定700eを行う。
さらに、移行制御プログラム515は、同ボリューム703dを第1の物理サーバ10から利用可能にすることで、第1の物理サーバ10および第2の物理サーバ20の両方から同じボリューム703bにアクセスできるようにし、同ボリューム703bを共有ボリュームに設定する。そして、仮想化プログラム14および24の間で仮想サーバ無停止移行機能703hを利用し、第2の物理サーバ20上の仮想サーバ703aを第1の物理サーバ10上へ移行する。
本実施形態では、仮想化プログラムが有する仮想サーバ無停止移行機能により、仮想サーバと仮想ディスクの接続関係が管理・維持されるため、実施形態1におけるステップ701kのようにこれを再構築する手順は不要である。
移行制御プログラム515は、ボリューム703b内に仮想ディスクを格納する、全ての仮想サーバを移行し終えたとき、共有ボリューム設定を解除する。必要であれば、移行制御プログラム515は、第1のストレージ装置100が有するオンラインボリュームマイグレーション機能を使用して、移行元ボリューム703bが保持するデータを第1のストレージ装置100内の別のボリュームへ移行する手順を行ってもよい。
仮想サーバ移行機能703hが、共有ボリュームの排他制御を行うために、ストレージ装置が有するボリュームのロック機能を必要とする場合、移行元ボリューム703bに対するロック状態を取得し、第1のストレージ装置100内の仮想ボリューム703dに対するロック状態と同期させてもよい。例えば、移行制御プログラム515が、ストレージ管理プログラム556を用いて、移行元ボリューム703b、および、仮想ボリューム703dに対するロック状態を管理し、さらに、物理サーバ管理プログラム551を用いて、仮想化プログラム24および14のボリューム共有サービスのロック制御と同期させる。また、移行制御プログラム515が、外部接続703eを設定した際に、ストレージ装置100においてボリューム703bおよび703d間のロック状態の整合をとるようにしてもよい。
また、共有ボリュームが構成される際には、ボリュームに複数の物理サーバから別々の経路によりアクセスされる環境で、夫々の物理サーバがアクセスするボリュームが実は同じボリュームであることが認識されなければならない。ボリュームの同一性とは、本質的には、夫々のボリュームが保持している属性等の内容が同じであることを指し、共有ボリュームが構成されるための事前要件として内容の確認が行われる必要がある。
しかし、一般に、ボリュームが実装されるための処理には多くのコストを要するために、移行制御プログラム515が、ボリュームの内容を全て読み込み比較する、という識別手法は現実的でない。そこで、次に述べる二通りのアプローチがある。
一つは、複数のボリュームに同じ一意な識別情報を書き込んでおくことである。この結果、外部接続によるマッピングが施されたボリュームの組(例えば、ボリューム703bおよび703d)は、夫々が別のストレージ装置に存在しても、同一の識別情報を有するために、物理サーバに同一のボリュームと識別される。
他のアプローチは、物理サーバがボリュームの識別に使用するボリュームに固有なデバイス識別子(SCSI Inquiry応答に含まれるボリューム固有の識別子)を用いるものである。
ボリュームに固有なデバイス識別子は、全てのボリュームに対して一意であるから、ボリュームの保持する内容と一対一に対応する。外部接続によりお互いにマッピングされたボリュームの組(例えば、ボリューム703bおよび703d)では、夫々のデバイス識別子が異なるために、両者のボリュームが同一ボリュームとは認識されない。このように、デバイス識別子が同じであることを要求する、ボリュームの実装システムでは、共有ボリュームを構成するための要件としての、マッピング703eが行われる際に、仮想ボリューム703dが移行元ボリューム703bの識別子を引き継ぐ手順を移行手順に追加される。識別子の引き継ぎについては実施形態3にて後述する。
さらに、異なるストレージ装置を経由して共有ボリュームが構成されるために、移行期間中に移行元および移行先両方のストレージ装置にアクセスが行われる場合は、夫々のストレージがキャッシュを持つことによりデータの不整合が発生する可能性がある。キャッシュは、ストレージ装置がボリュームの内容を更新する前に、高速な記憶装置(キャッシュメモリ)にデータを一時的に保存し、物理サーバのリード・ライトアクセスに対する応答性能を高めるための仕組みである。
仮想サーバが、第2のストレージ装置200から移行対象ボリュームへアクセスした場合は1段階のキャッシュとなるが、第1のストレージ装置100からアクセスした場合には、外部接続機能703fにより2段階のキャッシュを経ることになる。キャッシュはストレージ装置ごとに独立しているため、ストレージ装置100でキャッシュしたデータが、外部接続を経由して共有ボリューム703bに記録されるのと非同期で、ストレージ装置200でキャッシュしたデータが共有ボリューム703bに記録されることにより、共有ボリューム703bのデータに不整合が生じるおそれがある。したがって、仮想サーバの移行の際に、外部接続機能を持つ方の装置(本実施形態ではストレージ装置100)でキャッシュを無効化することとした。
このための詳細な手順を、図19に示す処理フローダイアグラムに基づいて説明する。ステップ701aからステップ701fは実施形態1における処理と同じである。ただし、ステップ701bが、移行制御プログラム515が物理サーバ管理プログラム551を用いて、仮想化プログラム24および14の両方においてボリューム共有サービス14bが有効化されているか、ボリューム共有が可能かを検証する手順を含んでもよい。
ステップ704gにおいて、外部接続設定が完了すると、ストレージ管理プログラム556は、移行制御プログラム515に対して設定完了通知を発行し、物理サーバ10からマッピング先仮想ボリューム703dへのパスを設定する。移行制御プログラム515は、物理サーバ管理プログラム551を用いて、必要であれば、ボリューム共有サービス14dを有効化し、ボリューム703bを共有ボリュームとして構成する。
ステップ704hにおいて、移行制御プログラム515は、物理サーバ管理プログラム551を用いて、対象マッピングテーブル549に定義された仮想サーバ703aを第1の物理サーバ10へ移行する。
ステップ704iにおいて、移行制御プログラム515は、対象マッピングテーブル549の仮想サーバ識別子549cを、物理サーバ管理プログラム551を通じて物理サーバ情報553から取得できる移行元物理サーバ20上の仮想サーバ識別子553hと比較して、移行対象ボリューム703bを使用する全ての仮想サーバ703aが移行されたか否かを判定する。移行元物理サーバ20上に、移行対象仮想サーバ703aが残っていれば、移行制御プログラム515は、ステップ704hへ戻って仮想サーバの無停止移行処理を繰り返す。
ステップ704jにおいて、移行制御プログラム515は、物理サーバ管理プログラム551を用いて、移行元物理サーバ20におけるボリューム共有構成を解除し、移行元物理サーバ20からボリューム703bへのアクセスを遮断する。ステップ704jが、ストレージ管理プログラム556により当該パス設定を解除する手順や、ネットワーク管理プログラム554によりゾーン構成を変更してアクセスを禁止する手順を含んでもよい。
ステップ704kにおいて、移行制御プログラム515は、既述のとおり、ストレージ管理プログラム556により、ボリューム703bの内容をオンラインボリュームマイグレーション機能により第1のストレージ装置100内の別のボリュームに移行する。
本実施形態による構成情報の管理システムは、移行対象に指定した仮想サーバが使用しているボリュームに対して、選択的かつ自動的にストレージの機能を適用する。したがって、このシステムは、仮想化プログラムが有する仮想サーバの無停止移行機能と連携して、ストレージ装置が有する外部接続機能やオンラインボリュームマイグレーション機能を活用しながら、仮想サーバを停止することなくこれを移行できる。また、実施形態3に述べるマルチパスソフトウェアの導入が不要である。
(実施形態3)
第3の実施形態は、ストレージ装置のボリューム無停止移行機能を用いた、仮想サーバおよびその仮想ディスクの移行方法を提供する。ストレージ装置のボリューム無停止移行機能とは、外部接続されたボリュームに対するパス交替とボリューム識別子の引継ぎにより、移行対象のボリュームを異なるストレージ装置へボリュームに対する仮想サーバのアクセスを無停止で移行する機能である。
外部接続機能は、例えば、第2のストレージ装置200内にあるボリュームを、第1のストレージ装置100内の仮想ボリュームであるかのように関連付ける技術であるため、ボリュームが保持する内容は同一であっても、物理サーバから認識できるボリュームの識別子(SCSI Inquiry応答に含まれるデバイス識別子)は異なる。
そこで、外部接続が設定される際に、仮想ボリュームがボリュームの識別子を引き継ぐことにより、物理サーバからボリュームの変更を意識させることなく、ストレージ装置間でボリュームを移行させることができる。さらに、移行制御プログラム515は、物理サーバからのボリューム703bに対するアクセスを停止することなく、ボリュームにアクセスするためのストレージ装置側ポートを切り替える必要があるため、切り替え先ポートに切り替え元ポート名を引き継がせ、マルチパスドライバによりアクセスパスを動的に切り替える処理を行う。
移行制御プログラム515は、ポート識別情報を引き継ぐために、例えば、ポートに複数のポート識別子を付与できるNPIV(N_Port ID Virtualization)を利用する。
本実施形態に係る移行方法の概念を図20に示す。本実施形態は、通信路52を、移行元および移行先ネットワークを相互接続するために、両者の間に敷設する点において、前述の第1および第2の実施形態と異なる。これは、第1の物理サーバ10が第2のストレージ装置200へ接続する、または、第2の物理サーバ20が第1のストレージ装置100へ接続する必要が生じるためである。
移行対象として仮想サーバ705aが指定されると、管理コンピュータ500上の移行制御プログラム515により、仮想サーバ705aが利用している第2のストレージ装置200内にあるボリューム705bが特定される。
移行制御プログラム515は、ストレージ管理プログラム556を用いて、ボリューム705bを移行先となる第1のストレージ装置100内のボリューム705dへの外部接続705eを設定する。さらに、ボリューム識別子705fをボリューム705dへ付与する(705g)。
外部接続に続く一連の処理が完了した後、移行制御プログラム515は、仮想化プログラム24が有するストレージスタックのうち、マルチパスドライバ層で、アクセスを移行元のストレージ装置200へのパス705cから移行先のストレージ装置100へのパス705iへ切り替えると、仮想化プログラム24のファイルシステム層や仮想サーバ705aにアクセス先ボリュームが変更されたことを察知されずに、ボリューム705bに対するアクセスを継続させることができる。
ただし、移行元ストレージ装置100のストレージコントローラ150内のキャッシュが有効になっている場合、実施形態2と同様に、キャッシュ上のデータを移行対象ボリューム705bへ適用するタイミングの如何によっては、ボリュームが保持するデータに不整合が生じる可能性がある。そのため、移行制御プログラム515は、第1のストレージ装置100におけるキャッシュを無効化しておくことで、このキャッシュの不整合を回避する必要がある。
このボリューム移行処理により、ボリューム705bが移行先ストレージ装置100からアクセス可能となるため、移行制御プログラム515は、仮想化プログラム24および14が提供する仮想サーバ移行機能を使用するなどして、第1の物理サーバ100へ移行対象仮想サーバ705aを移行する。このとき、ボリューム705dを共有ボリュームとして構成する。この仮想サーバの移行方法については第2の実施形態で記載した方法と同じである。詳細な移行手順を図21に示す処理フローダイアグラムにおいて説明する。ステップ701aからステップ701eは実施形態1における処理と同じである。
ただし、ステップ701bは、移行制御プログラム515が物理サーバ管理プログラム551を用いて、仮想化プログラム24および14の両方においてボリューム共有サービス14bが有効化されているか、ボリューム共有が可能かを検証する手順を含んでもよい。さらに、マルチパスドライバにより実現されるパス交替機能が利用可能かを調べる手順を含んでも良い。
ステップ706fは、移行元物理サーバ20へパス交替機能を導入する。既に複数パスを制御できるマルチパスドライバが移行元物理サーバ20に導入されているか、または、OSのパス交替機能が有効化されていれば、このステップは省略されてもよい。ただし、交替パスの導入について、物理サーバの再起動を必要とする実装形態が一般的であるため、このステップの開始までに、それを完了させておかなければならない。
ステップ706gにおいて、移行制御プログラム515は、ストレージ管理プログラム556を通じ、ボリューム接続設計テーブル550にしたがってボリュームマッピングテーブル559を設定する。ストレージ管理プログラム556は、ボリュームマッピングテーブル559にしたがって第1のストレージ装置100および第2のストレージ装置200の構成を変更し、移行対象ボリュームに対して外部接続機能を適用する。
ステップ706hにおいて、外部接続設定が完了すると、ストレージ管理プログラム556は、移行制御プロラグム515に対して設定完了通知を発行し、移行元ボリューム705bの識別情報705fを移行先ボリューム705dへ複写する(706h)。
ステップ706iにおいて、移行制御プログラム515は、ストレージ管理プログラム556を用いて、移行元ボリューム705bが物理サーバ20への接続に使用していたポート名を、移行先ボリューム705dが使用するポートへ引き継がせる。さらに、移行元物理サーバ20上のポートに対し、移行先仮想ボリューム705dへ接続するパス705iを定義する。
次に、移行制御プログラム515は、物理サーバ管理プログラム551を用いて、新たに設定されたパスをステップ706fにおいて構成された交替パスに加え、一方、接続が確立された段階で移行元ボリューム705bへの既存のパス705cを削除する。これにより、移行制御プログラム515は、移行対象仮想サーバ705aからのボリューム705bに対するアクセスを停止させることなく、アクセス先を移行元ストレージ装置200から移行先ストレージ装置100に変更する。以降のステップ704gから704kは、第2の実施形態において仮想化プログラム24および14の有する機能を用いて仮想サーバ無停止移行を行う手順と同じである。
本実施形態に述べた移行手順は、まずボリュームの無停止移行を行った後で、仮想化プログラムが有する仮想サーバ無停止移行機能を使用した。しかしながら、これを逆の順で行っても、本実施形態において必要となる機能には差異が生じず、同様に仮想サーバおよび仮想ディスクの移行が実現されるため、必ずしも上述の移行手順に限定されるものではない。
本実施形態が提供する移行方法は、異なるストレージ装置を経由して共有ボリュームを構成する必要がなく、実施形態2において片側のキャッシュを無効化することによる性能劣化を切り替え時にのみ来たすという程度に不利益を最小限にとどめることができる。
(実施形態4)
第4の実施形態は、仮想化プログラムが有する仮想ディスク無停止移行機能と、ストレージ装置の外部接続機能とを連携させた、仮想サーバおよびその仮想ディスクの移行方法を提供する。本実施形態は、実施形態3に述べるようなボリューム識別子の引き継ぎを行わない。仮想化プログラムの中には、ファイル形式の仮想ディスクを別のボリュームに、当該ボリュームに対する仮想サーバからのアクセスを無停止で移行する機能を有するものがある。外部接続機能を使用すると、マッピング先(移行先)ボリュームにはマッピング元(移行元)ボリュームとは別の識別子が付与される。そのため、物理サーバからは外部接続されたこれらのボリュームを、内容は同じであっても別のものとして識別する。そこで、移行制御プログラム515は、外部接続によりマッピングされたボリュームの組に対して、仮想化プログラムが有する仮想ディスク無停止移行機能を用いて、ボリューム内部の仮想ディスクを移行する。
第4の実施形態によって提供される移行方法のシステムは、上記ボリューム間の仮想ディスク無停止移行のコピー動作を、実際にはコピーさせず、ストレージ装置が有する外部接続機能により代替する。代替処理の実現にあたっては、図22に示すように、仮想化プログラム24およびストレージコントローラ250に、本実施形態に特徴的な構造である、インタセプタ515aおよびコマンドトラッカ(150aおよび250a)が追加される。後述するように、コマンドトラッカ150a、250aは、物理サーバがボリュームに対して要求コマンドを発行されたことを検出・解釈し、コマンドを応答する機能を実現する。
ここで、仮想化プログラムが提供する仮想ディスク無停止移行機能の通常の動作、即ち、インタセプタ515aやコマンドトラッカが存在しない形態での動作を説明する。移行制御プログラム515は、仮想ディスクを格納しているボリュームとは別のボリュームを仮想化プログラム24に認識させ、利用可能な状態にしておく。仮想ディスクの移行は、物理サーバ管理プログラム551が、仮想化プログラム24に対し、ある仮想サーバの仮想ディスクを指定し、別のボリュームへ移動するよう要求することから開始される。
仮想ディスクのボリューム上の位置は、ファイルシステム707hにおいて、どのボリュームの、どの記録先番地(セグメント番号)に当たるかを認識することによって管理されている。仮想化プログラム24は、ファイルシステム707hで管理している当該仮想ディスクの記録先番地を参照し、移行先の記録先番地の指定と合わせて、仮想ディスクの移行処理を行うコマンドを生成する。このコマンドは、データムーバ707iと呼ばれる、コピー処理を担当するコンポーネントへ伝えられる。データムーバ707iはストレージ装置に対してSCSIコマンドを発行し、仮想ディスクを保持するデータ領域を、移行元ボリュームから移行先ボリュームへコピーするようストレージ装置へ要求する。
ストレージ装置では、移行元ストレージコントローラ250において、データムーバ707iからコピーを要求するSCSIコマンドを受け、移行先ストレージコントローラ150と連携してコピー処理を行う。必要であれば、コピー処理の進捗状況が、ストレージコントローラ150や250から、データムーバ707iへ逐次通知される。コピーが完了すれば、移行先ストレージコントローラ150がその旨をデータムーバ707iに対し応答する。コピー完了応答を受けたデータムーバ707iは、ファイルシステム707hにおいて管理されている仮想ディスクの記録先番地を変更する。これにより、当該仮想サーバは、移行先のボリュームにある仮想ディスクを使用して稼働するようになる。以上が、仮想ディスク無停止移行機能を使用した際に行われる、通常の移行動作である。
本実施形態の概念を図23に示す。同図において、移行が行われる以前には、第2の物理サーバ20上の仮想サーバ708aが使用する仮想ディスク708bが、第2のストレージ装置200内のボリューム708c内に格納されている。本実施形態は、通信路52を、移行元および移行先ネットワークを相互接続する目的で敷設する点において、前述の第1および第2の実施形態と異なる。これは、第2の物理サーバ20が第1のストレージ装置100へ接続する必要が生じるためである。
仮想サーバ708aが移行対象に指定され、ボリューム708dが移行先ボリュームに指定された場合、まず、ボリューム708cが移行対象であることが特定され、ボリューム708cは、移行先である第1のストレージ装置100が有する外部接続機能を用いて、移行先ボリューム708dへマッピングされる。
次に、移行先ボリューム708dがストレージ管理プログラム556により移行元物理サーバ20へ接続されると、ボリュームの識別子が異なるために、仮想化プログラム24は移行元ボリューム708cとは別のボリュームとして認識する。ただし、このとき、移行元物理サーバ20上の仮想化プログラム24が認識するファイルシステムに対し、移行制御プログラム515によって制御されるインタセプタ515aが干渉し、ボリューム708d内の全ての仮想ディスク708hの存在が隠蔽される。これにより、ボリューム708dが追加されたときには、仮想ディスクを全く保持しない、空の新規追加ボリュームとしてファイルシステムに認識される。
なお、このように、インタセプタ515aは、ファイルシステムが保持/管理しているファイル(仮想ディスク)の記録先番地を制御する機能を持つ。ファイルシステムは、ファイルを抽象化したメタデータ(例えば、ファイルの開始番地と記録長)として管理しており、読み込みの際に参照する、あるいは新規書き込みの際に空の記録先番地を問い合わせるなどの場合にメタデータを使用する。インタセプタ515aはこのメタデータを作成・消去したり、書き換えたりすることができる。例えば、実際には記録済みファイルのメタデータを削除して空であるように見せかけたり、空きの領域として特定の番地を応答して新規書き込み先を指定したり、といった制御を可能とする。
さらに、物理サーバ管理プログラム551が第2の物理サーバ20上の仮想化プログラム24に対して、仮想ディスク708bを、ボリューム708dへコピーするよう要求する。この仮想ディスクをコピーする際に第2の物理サーバ20から発行されるSCSIコマンドは移行元のコマンドトラッカ250aによりトラップされるために実際のコピー708fは行われず、即座に移行先のコマンドトラッカ150aが、仮想化プログラム24に対しコピー処理の完了を応答する。コマンドトラッカ250aがトラップ動作を行うか否かを決定する条件判定のために必要であれば、コマンドトラッカ250aが第2のストレージ装置200から第1のストレージ装置100へのコピーを実施する前に、移行先のストレージ装置100が移行先および移行元ボリュームが外部接続されたボリュームの組であることを検出する手順をさらに行ってもよい。
移行先ボリューム708dは始め、空のボリュームとして物理サーバ20へマウントされる。データが作成される時や移動される時には、仮想化プログラム24内のデータムーバ707iが、何も記録されていない空白の領域から、データの記録先番地を選び出す。仮想化プログラム24は、ボリューム708cおよびボリューム708dが同じ内容をもつことを知らないため、仮想ディスク708bが存在する番地とは関係なく別の番地をコピー先として確保してしまう可能性がある。これを避けるために、インタセプタ515aは、論理ボリュームマネージャの下層にあるデータムーバ707iによって行われる、このコピー先番地を指定する手順に干渉し、708dにおける仮想ディスクのコピー先番地が必ずボリューム708cにおけるコピー元番地と同じになるよう制御する。これにより、ボリューム708cおよび708dのデータ配置は必ず同じとなる。
仮想化プログラム24が仮想ディスク移行708fの完了通知を受け取った時には、データムーバ707iにより正常な手続きとして仮想ディスクの記録先番地が変更されており、仮想ディスク708bが隠蔽され、仮想ディスク708hの番地がファイルシステムに公開される。
上記の一連の操作により、実際には仮想ディスクのコピーを行うことなく、仮想化プログラム24には仮想ディスクが移行されたように認識される。詳細な移行手順について、図24に示す処理フローダイアグラムにおいて説明する。
ステップ701aからステップ701eは実施形態3における処理と同じである。ステップ709fにおいて、移行制御プログラム515は、ストレージ管理プログラム556を通じ、ボリューム接続設計テーブル550にしたがってボリュームマッピングテーブル559を設定する。ストレージ管理プログラム556は、ボリュームマッピングテーブル559にしたがって第1のストレージ装置100および第2のストレージ装置200の構成を変更し、移行対象ボリュームに対して外部接続機能を適用する。ただし、必要であれば、ステップ709fに、移行制御プログラム515により、移行元物理サーバ20に対してインタセプタ515aを導入する手順や、移行元ストレージ装置200に対してコマンドトラッカ250aの有効化を指令する手順を含んでもよい。
ステップ709gにおいて、ストレージ管理プログラム556は、移行先ボリューム708dを物理サーバ20へ接続するパス708gを定義する。次に、移行制御プログラム515は、物理サーバ管理プログラム551を用いて、新たに接続されたボリューム708dを仮想化プログラム24から検出させる。このとき、仮想化プログラム24は、ボリューム固有のデバイス識別子が異なるために、移行先ボリューム708dを、移行元ボリューム708cとは異なるボリュームとして認識する。また、このとき、インタセプタ515aが移行先ボリューム708d内の仮想ディスクの存在を隠蔽するため、移行先ボリューム708dは空のボリュームと認識される。これにより、システムは、移行元ボリューム708cが格納する仮想ディスクに対して仮想化プログラム24が有する仮想ディスク無停止移行機能が適用できる状態となる。
ステップ709hにおいて、移行制御プログラム515は、対象マッピングテーブル549およびボリューム接続設計テーブル550を参照し、物理サーバ管理プログラム551を用いて、移行対象ボリューム708c内の仮想ディスクについて移行要求を発行させる。移行すべき仮想ディスクは対象マッピングテーブル549の、仮想ディスク識別子549dにより特定できる。このとき、前述の方法により、実際にはコピー動作を行うことなく仮想ディスクは移行先ボリューム708dへ移行される。
ステップ709iにおいて、移行制御プログラム515は、物理サーバ管理プログラム551を用いて、移行対象ボリューム708cを参照し、移行対象の仮想ディスクが残っているかを判別する。残っていなければ次のステップに進むが、残っていれば前のステップ709hへ戻り、仮想ディスクの移行を反復的に行う。
以降のステップは、移行先ボリューム708dを用いて共有ボリュームを構成し、移行元物理サーバ20上の全ての仮想サーバ708aを、移行先物理サーバ10へ移行するものであり、実施形態3における704gからステップ704kと同じである。
本実施形態が提供する移行方法により、移行先ボリュームが移行元ボリュームから識別情報を引き継ぐ機能を持たない場合においても、無停止に対象ボリュームを移行できる。
なお、ボリュームの移行とは、仮想サーバの移行先物理サーバから移行対象ボリュームの仮想ディスクにアクセスできる状態をいい、移行先ストレージ装置の実ボリュームを移行先ボリュームとして設定して、移行対象ボリュームが移行される場合の他、移行対象ボリュームが移行先ストレージ装置の仮想ボリュームにマッピングされる状態を含むものである。
10:第1の物理サーバ
11:CPU
12:メモリ
13:オペレーティングシステム
14:仮想化プログラム
15:ファイバチャネルインタフェース
16:イーサネット(登録商標)インタフェース
17:仮想サーバ
20:第2の物理サーバ
50:第1のストレージエリアネットワーク
51:第2のストレージエリアネットワーク
90:管理ネットワーク
100:第1のストレージ装置
150:第1のストレージコントローラ
160:応答プログラム
161:リダイレクトプログラム
162:ボリューム制御プログラム166:ストレージ管理プロバイダ
200:第2のストレージ装置
250:第2のストレージコントローラ
500:管理コンピュータ
515:移行制御プログラム
549:対象マッピングテーブル
550:ボリューム接続設計テーブル
551:物理サーバ管理プログラム
554:ネットワーク管理プログラム
556:ストレージ管理プログラム

Claims (12)

  1. 第1の物理サーバと、第1のストレージ装置と、それらを接続する第1のネットワークと、を有する第1のシステムと、
    第2の物理サーバと、第2のストレージ装置と、それらを接続する第2のネットワークと、を有する第2のシステムと、
    前記第1のシステムと前記第2のシステムとを管理する管理計算機と、
    を備える計算機システムであって、
    前記管理計算機は、
    前記第2の物理サーバから前記第1の物理サーバへ移行されるべき仮想サーバを指定する情報を受け付けると、前記仮想サーバが使用する記憶領域を格納するとともに、前記第2のストレージ装置に存在する移行対象ボリュームを特定し、
    前記第2のストレージ装置と前記第1のストレージ装置間の外部接続機能によって、前記第1のストレージ装置に、前記移行対象ボリュームに関連付けて前記移行対象ボリュームの移行先となる移行先ボリュームを設定し、
    前記仮想サーバと前記移行対象ボリュームに格納されている前記記憶領域との接続関係を特定し、
    前記仮想サーバを前記第2の物理サーバから第1の物理サーバに移行させる際、前記移行先ボリュームに前記接続関係を設定し、
    前記管理計算機は、さらに、
    前記第1の物理サーバと前記第2の物理サーバ夫々の構成情報を管理する第1の管理プログラムと、
    前記第1のストレージ装置と前記第2のストレージ装置夫々の構成情報を管理する第2の管理プログラムと、
    を備え、
    前記第1の管理プログラムが前記第2の物理サーバから取得した構成情報であって、前記第2の物理サーバが前記移行対象ボリュームに接続する際の当該移行対象ボリュームの位置情報として、前記第2の物理サーバのポートのポート情報と、当該ポートを前記移行対象ボリュームに対応させるLUNとを含む、第1の構成情報における前記ポート情報及び前記LUNと、前記第2の管理プログラムが前記第2のストレージ装置から取得した構成情報であって、前記第2の物理サーバを前記第2のストレージ装置にアクセス可能にするための第1のドメイン情報として、前記ポート情報と前記LUNとを含む、第2の構成情報における前記ポート情報及び前記LUNと、を照合することにより、前記移行対象ボリュームの識別情報を取得し、
    前記第1の管理プログラムは、前記第1の物理サーバから、前記第1の物理サーバが使用するポートのポート情報を含む第3の構成情報を取得し、
    前記第2の管理プログラムは、前記第1のストレージ装置から、前記第1の物理サーバと前記第2の物理サーバとを含む複数のサーバが使用する各ポートのポート名と、当該ポートに提供する前記第1のストレージ装置のLUNの情報とを有する第2のドメイン情報を含む第4の構成情報を取得し、
    前記管理計算機は、
    第3の構成情報から前記第1の物理サーバが使用するポート名を取得し、
    前記第2のドメイン情報に前記第1の物理サーバが使用するポート名が含まれるか否かについて前記第2のドメイン情報が有するポート名と比較し、
    前記第2のドメイン情報に前記第1の物理サーバが使用するポート名が含まれる場合、前記第2のドメイン情報に含まれる全てのボリューム情報と重複しないようにボリュームごとに一意なLUNを設定して前記移行先ボリュームを定義し、
    前記第2のドメイン情報に前記第1の物理サーバが使用するポート名が含まれない場合、前記第1の物理サーバが使用するポートに接続された前記第1のストレージ装置のポートに前記移行先ボリュームを定義する、
    計算機システム。
  2. 第1のストレージ装置と前記第2のストレージ装置とがファイバチャネルインタフェースで接続され、
    前記管理計算機は、
    前記第1のストレージ装置に仮想ボリュームを前記移行先ボリュームとして設定し、
    前記移行先ボリュームに前記移行対象ボリュームをマッピングすることにより、前記移行対象ボリュームに前記移行先ボリュームを関連付け、
    前記第2の物理サーバの前記仮想サーバと前記移行対象ボリュームとの接続を切断し、
    前記第1の物理サーバから前記移行先ボリュームへのパスを設定し、
    前記移行先ボリュームに前記接続関係を持つように前記記憶領域を前記第1の物理サーバの前記仮想サーバに接続し、
    前記第1の物理サーバの前記仮想サーバが前記移行先ボリュームにアクセスすることにより、前記移行対象ボリュームの前記記憶領域にアクセスできるにする、請求項1記載の計算機システム。
  3. 前記管理計算機は、前記第1の物理サーバに前記第2の物理サーバの前記仮想サーバを作成する、請求項2記載の計算機システム。
  4. 前記管理計算機は、前記第1のストレージ装置に前記移行先ボリュームとは異なる他ボリュームを設定し、
    当該移行先ボリュームを前記第1のストレージ装置のコピー機能によって前記他ボリュームにコピーし、
    前記他ボリュームに前記第1の物理サーバの前記仮想サーバを接続する、請求項2記載の計算機システム。
  5. 前記第1の物理サーバはサーバを仮想化する第1の仮想化プログラムを有し、
    前記第2の物理サーバはサーバを仮想化する第2の仮想化プログラムを有し、
    前記管理計算機は、
    前記第1の仮想化プログラムと前記第2の仮想化プログラムとに、前記移行対象ボリュームを共有させ、
    前記仮想サーバを前記第2の物理サーバから前記第1の物理サーバに無停止で移行し、
    前記第2の仮想化プログラムからの前記移行対象ボリュームに対する前記共有を解除し、
    前記第2の物理サーバから前記移行対象ボリュームに対するアクセスを遮断し、
    前記移行対象ボリュームと前記移行先ボリュームに同一の識別情報を設定する、請求項2記載の計算機システム。
  6. 前記管理計算機は、
    前記第2の物理サーバが前記移行対象ボリュームにアクセスする際、前記第1の物理サーバも前記移行先ボリュームを介して前記移行対象ボリュームにアクセスできるようにするとともに、前記第1のストレージ装置の前記移行対象ボリュームに対するキャッシュデータを無効化する、請求項5記載の計算機システム。
  7. 前記管理計算機は、
    前記移行対象ボリュームが前記第2の物理サーバへの接続に使用していたポート名を前記移行先ボリュームに対するポートに引き継がせ、
    前記移行対象ボリュームの識別情報を移行先ボリュームに複写し、
    前記第2の物理サーバを前記移行先ボリュームに接続するパスを前記第2の物理サーバと前記移行対象ボリュームとを接続するパスの交替パスとして設定し、
    前記第2の物理サーバを前記移行先ボリュームに接続するパスが確立された段階で、前記第2の物理サーバと前記移行対象ボリュームとのパスを削除し
    前記仮想サーバを前記第2の物理サーバから前記第1の物理サーバに無停止で移行する、請求項2記載の計算機システム。
  8. 前記第1の物理サーバはサーバを仮想化する第1の仮想化プログラムを有し、
    前記第2の物理サーバはサーバを仮想化する第2の仮想化プログラムを有し、
    前記管理計算機は、
    前記第1の仮想化プログラムと前記第2の仮想化プログラムとに、前記移行先ボリュームを共有させ、
    前記第2の仮想化プログラムからの前記移行先ボリュームに対する前記共有を解除し、
    前記第2の物理サーバから前記移行先ボリュームに対するアクセスを遮断する、請求項7記載の計算機システム。
  9. 前記第2の物理サーバと前記第2のストレージ装置とを接続するネットワークと前記第1の物理サーバと前記第1のストレージ装置とを接続するネットワークとを相互接続する通信路を有する、請求項7記載の計算機システム。
  10. 前記管理計算機は、
    前記第2の物理サーバに前記移行先ボリュームを接続するパスを設定し、
    前記第2の物理サーバのサーバ仮想化プログラムに前記移行先ボリュームを認識させ、この際、当該サーバ仮想化プログラムは、前記移行先ボリュームに前記移行対象ボリュームとは異なる識別子が設定されていることから、当該移行先ボリュームを前記移行対象ボリュームとは異なるボリュームと認識し、さらに、当該移行先ボリュームの前記仮想サーバが使用する記憶領域の存在が隠された空のボリュームとして認識するものであり、
    前記第2の物理サーバに、前記移行対象ボリュームの前記記憶領域を前記移行対象ボリュームへコピーすることを要求し、この際、前記第2のストレージ装置は、前記記憶領域を前記移行対象ボリュームから前記移行先ボリュームにコピーすることなく、前記第2の物理サーバに対して前記コピーの要求に対する応答を行い、前記記憶領域を前記移行対象ボリュームから前記移行先ボリュームに移行されたように前記第2の物理サーバに認識させる、請求項2記載の計算機システム。
  11. 前記移行対象ボリュームがスナップショットである場合、前記管理計算機は、
    前記スナップショットの親ボリュームを前記移行対象ボリュームとともに移行する、請求項記載の計算機システム。
  12. 第1の物理サーバと、第1のストレージ装置と、それらを接続する第1のネットワークと、を有する第1のシステムと、
    第2の物理サーバと、第2のストレージ装置と、それらを接続する第2のネットワークと、を有する第2のシステムと、
    前記第1のシステムと前記第2のシステムとを管理する管理計算機と、
    を備え、前記第2の物理サーバから前記第1の物理サーバに仮想サーバを移行することに合わせて、前記第1のストレージ装置と前記第2のストレージ装置との間の外部接続機能により、前記仮想サーバが使用する記憶領域を前記第2のストレージ装置から前記第1のストレージ装置に移行する、計算機システムにおける仮想サーバの移行制御方法であって、
    前記管理計算機は、
    前記第2の物理サーバから前記第1の物理サーバへ移行されるべき前記仮想サーバを指定する情報を受け付けると、前記仮想サーバが使用する記憶領域を格納するとともに、前記第2のストレージ装置に存在する移行対象ボリュームを特定し、
    前記第2のストレージ装置と前記第1のストレージ装置間の外部接続機能によって、前記第1のストレージ装置に、前記移行対象ボリュームに関連付けて前記移行対象ボリュームの移行先となる移行先ボリュームを設定し、
    前記仮想サーバと前記移行対象ボリュームに格納されている前記記憶領域との接続関係を特定し、
    前記仮想サーバを前記第2の物理サーバから第1の物理サーバに移行させる際、前記移行先ボリュームに前記接続関係を設定し、
    前記第1の物理サーバと前記第2の物理サーバ夫々の構成情報を管理する第1の管理プログラムと、前記第1のストレージ装置と前記第2のストレージ装置夫々の構成情報を管理する第2の管理プログラムとに基づいて、前記第1の管理プログラムが前記第2の物理サーバから取得した構成情報であって、前記第2の物理サーバが前記移行対象ボリュームに接続する際の当該移行対象ボリュームの位置情報として、前記第2の物理サーバのポートのポート情報と、当該ポートを前記移行対象ボリュームに対応させるLUNとを含む、第1の構成情報を取得させる一方、前記第2の管理プログラムが前記第2のストレージ装置から取得した構成情報であって、前記第2の物理サーバを前記第2のストレージ装置にアクセス可能にするための第1のドメイン情報として、前記ポート情報と前記LUNとを含む、第2の構成情報を取得させ、
    前記第1の構成情報における前記ポート情報及び前記LUNと、第2の構成情報における前記ポート情報及び前記LUNと、を照合することにより、前記移行対象ボリュームの識別情報を取得し、
    前記第1の管理プログラムは、前記第1の物理サーバから、前記第1の物理サーバが使用するポートのポート情報を含む第3の構成情報を取得し、
    前記第2の管理プログラムは、前記第1のストレージ装置から、前記第1の物理サーバと前記第2の物理サーバとを含む複数のサーバが使用する各ポートのポート名と、当該ポートに提供する前記第1のストレージ装置のLUNの情報とを有する第2のドメイン情報を含む第4の構成情報を取得し、
    前記管理計算機は、
    第3の構成情報から前記第1の物理サーバが使用するポート名を取得し、
    前記第2のドメイン情報に前記第1の物理サーバが使用するポート名が含まれるか否かについて前記第2のドメイン情報が有するポート名と比較し、
    前記第2のドメイン情報に前記第1の物理サーバが使用するポート名が含まれる場合、前記第2のドメイン情報に含まれる全てのボリューム情報と重複しないようにボリュームごとに一意なLUNを設定して前記移行先ボリュームを定義し、
    前記第2のドメイン情報に前記第1の物理サーバが使用するポート名が含まれない場合、前記第1の物理サーバが使用するポートに接続された前記第1ストレージ装置のポートに前記移行先ボリュームを定義する、
    計算機システムにおける仮想サーバの移行制御方法。
JP2014551866A 2012-04-23 2012-04-23 計算機システム、及び、計算機システムの仮想サーバ移行制御方法 Expired - Fee Related JP5976842B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/002785 WO2013160933A1 (en) 2012-04-23 2012-04-23 Computer system and virtual server migration control method for computer system

Publications (2)

Publication Number Publication Date
JP2015520423A JP2015520423A (ja) 2015-07-16
JP5976842B2 true JP5976842B2 (ja) 2016-08-24

Family

ID=49381187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014551866A Expired - Fee Related JP5976842B2 (ja) 2012-04-23 2012-04-23 計算機システム、及び、計算機システムの仮想サーバ移行制御方法

Country Status (3)

Country Link
US (1) US9223501B2 (ja)
JP (1) JP5976842B2 (ja)
WO (1) WO2013160933A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130290542A1 (en) * 2012-04-30 2013-10-31 Racemi, Inc. Server Image Migrations Into Public and Private Cloud Infrastructures
EP2867763B1 (en) * 2012-06-29 2017-09-27 Mpstor Limited Data storage with virtual appliances
JP5880315B2 (ja) * 2012-07-02 2016-03-09 富士通株式会社 システム管理装置、システムの管理方法、及びシステムの管理プログラム
JP2014142678A (ja) * 2013-01-22 2014-08-07 Hitachi Ltd 仮想サーバ移行計画作成方法およびシステム
US9960979B1 (en) * 2013-03-12 2018-05-01 Western Digital Technologies, Inc. Data migration service
US9888042B2 (en) * 2013-05-21 2018-02-06 Citrix Systems, Inc. Systems and methods for multipath transmission control protocol connection management
US9043576B2 (en) 2013-08-21 2015-05-26 Simplivity Corporation System and method for virtual machine conversion
US9305071B1 (en) * 2013-09-30 2016-04-05 Emc Corporation Providing virtual storage processor (VSP) mobility with induced file system format migration
US9461969B2 (en) 2013-10-01 2016-10-04 Racemi, Inc. Migration of complex applications within a hybrid cloud environment
US9727357B2 (en) * 2013-10-01 2017-08-08 International Business Machines Corporation Failover detection and treatment in checkpoint systems
EP3125122B1 (en) * 2014-03-28 2017-10-11 Ntt Docomo, Inc. Virtualized resource management node and virtual machine migration method
US9658897B2 (en) 2014-06-23 2017-05-23 International Business Machines Corporation Flexible deployment and migration of virtual machines
US9473353B2 (en) 2014-06-23 2016-10-18 International Business Machines Corporation Cluster reconfiguration management
US10089011B1 (en) * 2014-11-25 2018-10-02 Scale Computing Zero memory buffer copying in a reliable distributed computing system
JP6393612B2 (ja) * 2014-12-26 2018-09-19 株式会社日立製作所 システムのバックアップ装置及びバックアップ方法
US9794112B2 (en) * 2015-08-06 2017-10-17 Drivescale, Inc. Method and system for balancing storage data traffic in converged networks
US20170123943A1 (en) * 2015-10-30 2017-05-04 Netapp, Inc. Distributed data storage and processing techniques
US20170123714A1 (en) * 2015-10-31 2017-05-04 Netapp, Inc. Sequential write based durable file system
JP6686560B2 (ja) 2016-03-09 2020-04-22 富士通株式会社 情報処理装置、ストレージ装置、情報処理システム、及び処理プログラム
US10394491B2 (en) * 2016-04-14 2019-08-27 International Business Machines Corporation Efficient asynchronous mirror copy of thin-provisioned volumes
US10430121B2 (en) 2016-08-22 2019-10-01 International Business Machines Corporation Efficient asynchronous mirror copy of fully provisioned volumes to thin-provisioned volumes
US10592155B2 (en) * 2018-04-10 2020-03-17 International Business Machines Corporation Live partition migration of virtual machines across storage ports
JP6878369B2 (ja) * 2018-09-03 2021-05-26 株式会社日立製作所 ボリューム配置管理装置、ボリューム配置管理方法、及びボリューム配置管理プログラム
US10901645B1 (en) 2019-09-06 2021-01-26 International Business Machines Corporation Converting small extent storage pools into large extent storage pools in place
US11586391B2 (en) 2020-12-16 2023-02-21 Nutanix, Inc. Technique for efficient migration of live virtual disk across storage containers of a cluster
JP7253007B2 (ja) * 2021-05-28 2023-04-05 株式会社日立製作所 ストレージシステム

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4704659B2 (ja) 2002-04-26 2011-06-15 株式会社日立製作所 記憶装置システムの制御方法および記憶制御装置
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
JP5057656B2 (ja) * 2005-05-24 2012-10-24 株式会社日立製作所 ストレージシステム及びストレージシステムの運用方法
US8196138B2 (en) * 2007-04-19 2012-06-05 International Business Machines Corporation Method and system for migrating virtual machines between hypervisors
US8479194B2 (en) * 2007-04-25 2013-07-02 Microsoft Corporation Virtual machine migration
US7836332B2 (en) * 2007-07-18 2010-11-16 Hitachi, Ltd. Method and apparatus for managing virtual ports on storage systems
JP4958673B2 (ja) * 2007-07-26 2012-06-20 株式会社日立製作所 ストレージシステム及びこれの管理方法
JP4871850B2 (ja) * 2007-12-04 2012-02-08 株式会社日立製作所 仮想計算機システム及び仮想計算機移行制御方法
JP2009145931A (ja) * 2007-12-11 2009-07-02 Hitachi Ltd 仮想計算機と物理計算機との間のマイグレーション方法及びその計算機システム
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
JP5227125B2 (ja) * 2008-09-24 2013-07-03 株式会社日立製作所 ストレージシステム
US20100082922A1 (en) * 2008-09-30 2010-04-01 Vmware, Inc. Virtual machine migration using local storage
WO2010095174A1 (en) * 2009-02-19 2010-08-26 Hitachi, Ltd. Storage system, and remote copy control method therefor
US8478801B2 (en) * 2009-05-20 2013-07-02 Vmware, Inc. Efficient reconstruction of virtual disk hierarchies across storage domains
JP5378510B2 (ja) * 2009-05-26 2013-12-25 株式会社日立製作所 管理システム
US8613085B2 (en) * 2009-07-22 2013-12-17 Broadcom Corporation Method and system for traffic management via virtual machine migration
JP5378946B2 (ja) * 2009-10-26 2013-12-25 株式会社日立製作所 サーバ管理装置およびサーバ管理方法
JP5427574B2 (ja) * 2009-12-02 2014-02-26 株式会社日立製作所 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム
US8363666B2 (en) * 2010-02-22 2013-01-29 Cisco Technology, Inc. Multiple network architecture providing for migration of devices
US8271814B2 (en) * 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle
JP5190084B2 (ja) * 2010-03-30 2013-04-24 株式会社日立製作所 仮想マシンのマイグレーション方法およびシステム
US8984507B2 (en) * 2010-04-26 2015-03-17 International Business Machines Corporation Cross architecture virtual machine migration
JP5684815B2 (ja) * 2010-04-30 2015-03-18 株式会社日立製作所 計算機システム及びその制御方法
US8224957B2 (en) * 2010-05-20 2012-07-17 International Business Machines Corporation Migrating virtual machines among networked servers upon detection of degrading network link operation
US8423646B2 (en) * 2010-07-09 2013-04-16 International Business Machines Corporation Network-aware virtual machine migration in datacenters
US8543786B2 (en) * 2010-09-29 2013-09-24 Hitachi, Ltd. Computer system and computer system management method for adding an unused real volume to a pool
JP5595530B2 (ja) * 2010-10-14 2014-09-24 株式会社日立製作所 データ移行システム及びデータ移行方法
US8478961B2 (en) * 2011-03-02 2013-07-02 International Business Machines Corporation Dynamic migration of virtual machines based on workload cache demand profiling
WO2012147124A1 (en) * 2011-04-26 2012-11-01 Hitachi, Ltd. Server apparatus and method of controlling information system
US9424144B2 (en) * 2011-07-27 2016-08-23 Microsoft Technology Licensing, Llc Virtual machine migration to minimize packet loss in virtualized network
WO2013133842A1 (en) * 2012-03-08 2013-09-12 Empire Technology Development Llc Secure migration of virtual machines

Also Published As

Publication number Publication date
US9223501B2 (en) 2015-12-29
JP2015520423A (ja) 2015-07-16
US20130282887A1 (en) 2013-10-24
WO2013160933A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
JP5976842B2 (ja) 計算機システム、及び、計算機システムの仮想サーバ移行制御方法
JP4842593B2 (ja) ストレージ仮想化装置のデバイス制御引継ぎ方法
US8966211B1 (en) Techniques for dynamic binding of device identifiers to data storage devices
US7171522B2 (en) Storage system including storage adaptors having cache memories and grasping usage situation of each cache memory and equalizing usage of cache memories
US8051262B2 (en) Storage system storing golden image of a server or a physical/virtual machine execution environment
US7203730B1 (en) Method and apparatus for identifying storage devices
JP4297747B2 (ja) ストレージ装置
US9083724B2 (en) System iteratively reducing I/O requests during migration of virtual storage system
US8452923B2 (en) Storage system and management method thereof
US20140351545A1 (en) Storage management method and storage system in virtual volume having data arranged astride storage device
US20140143391A1 (en) Computer system and virtual server migration control method for computer system
US20130067569A1 (en) Methods and structure for managing visibility of devices in a clustered storage system
US20070234116A1 (en) Method, apparatus, and computer product for managing operation
US9262087B2 (en) Non-disruptive configuration of a virtualization controller in a data storage system
US9063661B1 (en) Automated updating of parameters and metadata in a federated storage environment
CN113849136B (zh) 一种基于国产平台的自动化fc块存储处理方法和系统
WO2014061054A1 (en) Storage system and method of controlling storage system
JP4734259B2 (ja) 運用管理プログラム、運用管理方法および運用管理装置
JP4734258B2 (ja) 運用管理プログラム、運用管理方法および運用管理装置
JP4275700B2 (ja) リソース交換処理プログラムおよびリソース交換処理方法
US8838768B2 (en) Computer system and disk sharing method used thereby
US9612769B1 (en) Method and apparatus for automated multi site protection and recovery for cloud storage
JP5182350B2 (ja) 運用管理プログラム、運用管理方法および運用管理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160425

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160720

R150 Certificate of patent or registration of utility model

Ref document number: 5976842

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees