JP5684815B2 - 計算機システム及びその制御方法 - Google Patents

計算機システム及びその制御方法 Download PDF

Info

Publication number
JP5684815B2
JP5684815B2 JP2012532188A JP2012532188A JP5684815B2 JP 5684815 B2 JP5684815 B2 JP 5684815B2 JP 2012532188 A JP2012532188 A JP 2012532188A JP 2012532188 A JP2012532188 A JP 2012532188A JP 5684815 B2 JP5684815 B2 JP 5684815B2
Authority
JP
Japan
Prior art keywords
computer
storage
page
virtual
cpu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012532188A
Other languages
English (en)
Other versions
JP2013517539A (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 JP2013517539A publication Critical patent/JP2013517539A/ja
Application granted granted Critical
Publication of JP5684815B2 publication Critical patent/JP5684815B2/ja
Active 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0608Saving storage space on storage systems
    • 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/0629Configuration or reconfiguration of storage systems
    • 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]

Description

本発明は計算機システムに係り、特に、計算機の仮想化技術とストレージの階層化技術とを利用した計算機システムと、そのデータ格納制御方法に関するものである。
情報ライフサイクル管理の考え方に基づくソルーションの一つとして、ストレージの階層化技術がある。この技術は、情報の利用価値に応じて、情報を保存する先のストレージを性能、コスト、そして、信頼性によって階層に分けるというものであり、例えば、ストレージを、Tier(層)1、Tier2、Tier3からなる3層に階層化することが一般的に行われている。
Tier1は、最も情報価値が高い、生成されて現在活用されている最中の情報を保存するストレージである。高性能で高信頼性を有するファイバチャネルストレージがTier1として利用されている。Tier1はオンラインストレージとも呼ばれている。
Tier2は、活用されることを終えたが、再利用のために検索、参照されるようなデータを保存するものである。大容量で低コストであるストレージ、例えば、ATAやSATAのストレージがTier2として利用されている。
Tier3は、アクセスがほぼ無いデータを格納するために特化されたストレージであり、容量単価が低いテープドライブが利用されている。Tier3はオフラインストレージとも呼ばれ、Tier2はTier1とTier3の中間であるため、ニアラインストレージと呼ばれている。本発明に関連する先行技術として、例えば、特開2008−305288号公報に記載されたものが存在する。
特開2008−305288号公報
ストレージの性能をさらに優先する観点から、近年、Tier0という階層も提唱されている。Tier0として代表的なのは、フラッシュメモリである。一方、最近では、フラッシュメモリのビットコストの低下が進展しているため、従来のストレージの階層化技術も変貌して、ストレージの階層がTier0とTier2に二極化する傾向もみられている。
したがって、複数の計算機がネットワークに接続している計算機システムにおいては、計算機にTier0のストレージを直結して各計算機のオンライデータを専用のTier0のストレージに保存し、ネットワークにTier2のストレージを有するNASを接続して、各計算機のニアラインデータをTier2のストレージに保存することが提唱されている。
一方、計算機のリソースを仮想化し、計算機に複数の仮想機械(Virtual Machine(バーチャルマシン):VM)を設定する仮想化技術が普及しつつある。計算機の計画的な保守、計算機のCPUの負荷分散、計算機の消費電力削減等を目的として、VMを複数の計算機間で移動させることも行われる。
仮想化機能を備えた複数の計算機がネットワークを介して接続されている計算機システムに、既述のようなストレージの階層化制御が適用されていると、VMが複数の計算機間を移動する際、複数の計算機に対するストレージの階層化制御の統一性が乱れて、計算機システムにおけるデータ管理品質が低下するおそれがある。例えば、移動後のVMが移動前のデータに迅速にアクセスできず、移動後のVMが正常に機能しない。
そこで、この発明の目的は、仮想化機能を備えた複数の計算機がネットワークを介して接続され、ストレージの階層化制御が適用された計算機システムにおいて、VMが複数の計算機間を移動しても、複数の計算機に対するストレージの階層化制御の品質を維持し、計算機システムにおけるデータ管理を向上させた計算機システム、及び、そのデータ格納制御方法を提供することにある。
本発明は、この目的を達成するために、第1の記憶装置に直結された第1の計算機と、第2の記憶装置に直結された第2の計算機と、前記第1の計算機及び前記第2の計算機にネットワークを介して接続された外部ストレージ装置と、を備える計算機システムであって、前記第1の記憶装置及び前記第2の記憶装置の性能は、前記外部ストレージ装置の性能よりも高く、前記第1の計算機は第1の仮想領域を提供するように構成され、当該第1の仮想領域は、各々のアクセス頻度に基づいてそれぞれに前記第1の記憶装置の記憶領域と前記外部ストレージ装置の記憶領域の何れかが割り当てられた複数の仮想ページを含み、前記第2の計算機は第2の仮想領域を提供するように構成され、当該第2の仮想領域は、各々のアクセス頻度に基づいてそれぞれに前記第2の記憶装置の記憶領域と前記外部ストレージ装置の記憶領域の何れかが割り当てられた複数の仮想ページを含み、前記第1の計算機が前記第1の仮想領域を前記第2の計算機に移行させる場合、当該第2の計算機は、前記第1の仮想領域に含まれ、アクセス頻度が第1の値よりも高い第1の仮想ページに格納されているデータの移行先として、前記第2の記憶装置を選択し、前記第1の仮想領域に含まれ、アクセス頻度が前記第1の値よりも低い第2の仮想ページに格納されているデータの移行先として、前記外部ストレージ装置を選択し、前記第1の仮想ページに格納されているデータの移行先として選択された前記第2の記憶装置に割り当てられた第3の仮想ページのアクセス頻度が、前記第1の値よりも低い場合、前記第2の記憶装置に割り当てられた前記第3の仮想ページに格納されているデータを前記外部ストレージ装置に移行する、計算機システムである。
本発明によれば、仮想化機能を備えた複数の計算機がネットワークを介して接続され、ストレージの階層化制御が適用された計算機システムにおいて、VMが複数の計算機間を移動しても、複数の計算機に対するストレージの階層化制御の品質を維持し、計算機システムにおけるデータ管理を向上させた計算機システムとそのデータ格納制御方法を提供することができる。
計算機システムの第1の実施形態を示すハードウエアのブロック図である。 計算機の詳細を示すハードウエアブロック図である。 管理端末の詳細を示すハードウエアブロック図である。 複数の計算機間をVMが移動する前の状態を示す計算機システムのブロック図である。 複数の計算機間でVMが移動された後の計算機システムのブロック図である。 移動先計算機において、デステージが行われた後の計算機システムのブロック図である。 それぞれが計算機に直結する直結ストレージ間で、VMの移動後、データの移動が行われた後の計算機システムのブロック図である。 移動元計算機SV1においてデステージが行われた後の状態に係る計算機システムのブロック図を示す。 VMの管理・制御情報を規定するVMテーブルである。 仮想LUの管理・制御情報を規定する仮想LUテーブルである。 外部ストレージの特性を示す外部ストレージテーブルである。 VMから仮想LUへのアクセスを直結ストレージ、又は、外部ストレージに対するアクセスする変換するための管理・制御情報を規定したマッピングマッピングテーブル、同マッピングテーブルのデータ構造例である。 直結ストレージの管理・制御情報を規定した直結ストレージページテーブルである。 外部ストレージの実ページの管理・制御情報を規定する、外部ストレージページテーブルである。 計算機の管理・制御情報を規定する計算機テーブルである。 VMの管理・制御情報を規定するVMテーブルである。 外部ストレージの管理・制御情報を規定する外部ストレージテーブルである。 計算機システムに計算機を追加するためのGUIの例である。 外部ストレージ追加画面に係るGUIの一例である。 VMを計算機に追加するためのGUIの一例である。 計算機の内部ライト処理のフローチャートである。 計算機が実行するページ割当処理のフローチャートである。 計算機が、ストレージの階層間でデータを緊急に移行する処理のフローチャートである。 計算機が実行する内部リード処理のフローチャートである。 計算機1が実行する外部ライト処理のフローチャートである。 計算機1が実行する外部リード処理のフローチャートである。 計算機がストレージの階層間でデータを移行する処理の第1の形態に係るフローチャートである。 計算機がストレージの階層間でデータを移行する処理の第2の形態に係るフローチャートである。 VMが複数の計算機間を移動する過程での、計算機システムにおける通信シーケンスについてのタイムチャートである。 VMの移動先計算機での移行先決定テーブルである。 VMの状態に関するテーブルある。 管理端末のVM移動画面の例である。 管理端末のVM状態表示画面の例である。 VMの移動先計算機において更新されたVMテーブルである。 VMの移動先計算機において更新された仮想LUテーブルである。 VMの移動先計算機において更新されたマッピングテーブルマッピングテーブルである。 VMの移動先計算機において更新された外部ストレージページテーブルである。 VMの移動先計算機でのデステージ処理が完了した後のマッピングテーブルマッピングテーブルである。 VMの移動先計算機でのデステージ処理が完了した後の直結ストレージテーブルである。 VMの移動先計算機でのデステージ処理が完了した後の外部ストレージページテーブルである。 直結ストレージ間移行処理が完了した後のテーブルである。 直結ストレージ間移行処理が完了した後のテーブルである。 図30のデステージ処理が完了した後のマッピングテーブルマッピングテーブルである。 図30のデステージ処理が完了した後の直結ストレージテーブルである。 図30のデステージ処理が完了した後の外部ストレージテーブルである。 移行先決定テーブルの作成フローチャートである。 移動先計算機の直結ストレージから外部ストレージへのデステージ処理のフローチャートである。 直結ストレージ間でのデータ移行を示すフローチャートである。 移動元計算機の直結ストレージから外部ストレージへのデステージ処理を説明するフローチャートである。 外部ストレージを増設した後の計算機システムのブロック図である。 複数の外部ストレージ間でのデータ移行を実行するフローチャート例を示す。 計算機の変形を説明するブロック図である。 計算機システムの他の実施形態に係るハードウエアブロック図である。 図34の実施形態に係る計算機と計算機に直結するストレージの詳細なブロック図である。 仮想LUの管理・制御情報を規定する仮想LUテーブルの他の例の管理テーブルである。
次に、本発明の実施形態を添付図面に従って説明する。図1は、計算機システムの第1の実施形態を示すハードウエアブロック図である。このシステムは、計算機1と、計算機1に直結される直結ストレージ2と、外部ストレージ3と、管理者が直結ストレージ2及び外部ストレージ3を管理するための管理端末(或いは管理計算機)4と、そして、計算機1と外部ストレージ3と管理端末4とを相互に接続するネットワーク5と、を備えている。計算機1とこれに直結するストレージ2によって各サイトでのストレージシステムが構成されることになる。
計算機1、外部ストレージ3、及び、管理端末4は、ネットワーク5に、銅ケーブルや光ファイバケーブル等の通信線22を介して接続している。計算機1と直結ストレージ2とは、銅ケーブルや光ファイバケーブル等の通信線23によって接続されている。
計算機1のストレージ制御プログラム(後述)は、VMが、直結ストレージ2、及び、外部ストレージ3の論理化された記憶領域にアクセスするための、論理ボリューム(LU:Logical Unit)を設定している。後述のとおり、この論理ボリュームは容量が仮想化されたもの、すなわち、実容量を有しない仮想的なボリュームである。この仮想ボリュームには、例えば、シン・プロビジョニング(Thin Provisioning)によって、直結ストレージ2又は外部ストレージ3からストレージリソースが割当てられる。
直結ストレージ2は、Tier0に相当するものであって、例えば、SSD
(Solid State Disk)のように、高速、高性能、高信頼性の記憶媒体を1つ以上備えたものを備えている。もっとも、直結ストレージ2がTier1に相当するものでることを妨げるものではない。
外部ストレージ3はTier2に相当するものであって、SASやSATAのハードディスクドライブのように、低速ではあるものの低コストの記憶媒体を1つ以上備えている。もっとも、直結ストレージ2がTier0である場合に、外部ストレージをTier1であってもよい。直結ストレージ2、及び、外部ストレージ3は、RAIDによって構成されていることが好ましいが、これに限るものではない。
ネットワーク5は有線でも無線でもかまわない。ネットワーク5が無線の場合、通信線22は不要である。また、ネットワーク5はEthernet、IP(Internet Protocol)ネットワーク、FC(Fibre Channel)ネットワーク、或いは、その他のネットワークでもよい。さらに、管理端末4、計算機1及び、外部ストレージ3を相互に接続する管理ネットワークがネットワーク5とは別であってもよい。
図2は、計算機1のハードウエアブロック図である。計算機1は、演算装置(CPU)11、揮発性の主メモリ12、計算機1と通信線22とを接続するネットワークインタフェース(NW IF)13、例えば、HDDなどの不揮発性の記憶装置14、計算機1と通信線23とを接続するデバイスインタフェース(デバイスIF)15、そして、CPU11と、主メモリ12とNW IF13と、HDD14と、デバイスIF15とを相互接続するバス等の通信線21と、を備えている。
HDD14は、プログラムや情報テーブルを記憶しており、CPU11は、プログラム、情報テーブルをHDD14から主メモリ12にマウントして、プログラムの実行やテーブルの参照等を行う。図2は、主メモリ12に格納されたプログラム及びテーブルを示している。
ストレージを制御するためのストレージ制御プログラム38は、階層制御プログラム31、分散制御プログラム32、内部I/O制御プログラム33、外部I/O制御プログラム34、管理端末通信プログラム35から構成されている。主メモリ12は、さらに、OSを含むアプリケーションプログラム36とVM制御プログラムから構成される。
従来、ストレージ制御プログラム38は、直結ストレージ2や外部ストレージ3において実行されていたが、計算機1は、ストレージ制御プログラム38を、アプリケーションプログラム36と共に自身の演算装置11によって実行するため、計算機1に直結された直結ストレージ2と、ネットワーク5を介して接続された外部ストレージ3との間で階層ストレージ管理(Hierarchical Storage Management)を可能にした。
以下、アプリケーションプログラム36、VM制御プログラム37、及びストレージ制御プログラム38の動作概要を説明する。各計算機のCPU11は、VM制御プログラム37を実行することによって、仮想的な計算機であるVMを計算機に1つ以上設定できる。そして、CPU11は、VM制御プログラム37に基づき、VMを実行主体として、アプリケーションプログラム36を実行する。VM制御プログラム37は、計算機の制御リソースを仮想化しているために、VMを複数の計算機の間で移動させることができる。
VM制御プログラム37は、VMに既述の仮想ボリュームを提供する。この仮想ボリュームを後述のように、仮想LUと呼ぶ。CPU11がアプリケーションプログラム36に基づき仮想LUにアクセスしてこれにデータを書き込む際、CPU11は、VM制御プログラム37に基づき、データ及びそのデータのアドレスを主メモリ12に退避し、その後、CPU11は、ストレージ制御プログラム38に基づき、そのデータを主メモリ12から、仮想LUに対応された、直結ストレージ2、又は、外部ストレージ3へ転送する。
一方、CPU11がアプリケーションプログラム36に基づき、仮想LUからデータを読み込む時、CPU11はVM制御プログラム37に基づき、そのデータのアドレスを主メモリ12に退避し、その後、CPU11はストレージ制御プログラム38に基づき、そのアドレスのデータを直結ストレージ2、又は外部ストレージ3から主メモリ12に転送する。
HDD14には、VMテーブル41、仮想LUテーブル42、外部ストレージテーブル43、マッピングテーブルマッピングテーブル44、直結ストレージページテーブル45、外部ストレージページテーブル46、そして、移行先決定テーブル47等の各種管理テーブルが格納されている。各テーブルの詳細は後述する。
図3は、管理端末4のハードウエアブロック図を示す。管理端末4は、CPU11、主メモリ12、NW IF13、HDD14、マウスやキーボード等の入力装置16、ディスプレイ等の出力装置17、及び、通信線21を備えている。
HDD14には、画面制御プログラム51、VM移動プログラム52、計算機通信プログラム53及び外部ストレージ通信プログラム54等のプログラムが格納される。また、HDD14には、計算機テーブル61、VMテーブル62、外部ストレージテーブル63及び状態テーブル44等のテーブルが格納されている。
CPU11は、これらのプログラムをHDD14Aから主メモリ21に複製して実行する。CPU11はさらにテーブルをHDD14Aから主メモリ21に複製して参照する。また、主メモリ21のテーブルは、CPU11により書き換えられ、そして、HDD14に複製される。
以後の説明において、ハードウエアの構成要素を示す符号について、VMの移動元計算機が有する構成要素の符号には[a]を付し、VMの移動先計算機の構成要素の符号には[b]を付し、管理端末の構成要素の符号には[c]を付すことによってお互いを区別することとする。例えば、CPU11aはVMの移動元計算機のものであり、CPU11bはVMの移動先計算機のものであり、CPU11cは管理端末のものである。
次に、複数の計算機間でのVMの移動と、VMの移動に伴う仮想LUの移動、及びデータの移動の動作について説明する。図4Aは複数の計算機間をVMが移動する前の状態を示す計算機システムのブロック図である。IDがSV1である計算機は、IDがDS1である直結ストレージに接続している。計算機SV1には、IDがVM1のVMが動作している。また、計算機SV1はIDがVL1である仮想LUを設定しており、VM1は仮想LU(VL1)にアクセスする。仮想LU(VL1)は、1つ以上のページからなる。ページとは、LUを構成する記憶領域の単位である。仮想ボリュームのページが記憶資源を有するのではなく、仮想LUのページにはストレージのLUのページが割り当てられる。仮想LUのページを仮想ページと呼ぶ。これに対して、ストレージのLUは記憶資源を有しているために、これを実LUと呼び、実LUのページを実ページと呼ぶ。
仮想LU(LV1)は、少なくとも、IDがVP11、VP12及びVP13である3つの仮想ページを有している。計算機SV1に直接接続した直結ストレージDS1は、IDがRL1である実LUを有し、これを計算機SV1に提供する。実LU(RL1)は、少なくとも、IDがRP11及びRP12である2つの実ページを有している。実ページRP11は仮想ページVP11に割当てられており、実ページRP12は仮想ページVP12に割当てられている。
IDがES1である外部ストレージ3は、ネットワーク5を介して計算機SV1にIDがRL3である実LUを提供する。実LU(RL3)は、少なくとも、IDがRP31及びRP32である実ページを有する。仮想ページVP11及び仮想ページVP12は、仮想VP13と比較して、VM1からのアクセス頻度が高いとする。そのため、仮想ページVP11及び仮想ページVP12に対するライトデータは、高速・高性能である直結ストレージDS1の実ページRP11及び実ページRP12にそれぞれ格納される。また、仮想ページVP13に対するライトデータは、低速・低性能である外部ストレージES1の実LU(RL3)の実ページRP31に格納される。
IDがSV2である計算機には、IDがDS2であるストレージが直接接続されている。計算機SV2では、IDがVM2であるVMが動作している。VM2は、IDがVL2である仮想LUにアクセスする。仮想LU(VL2)は、少なくとも、IDがVP21である仮想ページを有している。直結ストレージDS2は、計算機SV1に、IDがRL2である実LUを提供する。実LU(RL2)は、少なくとも、IDがRP21である実ページを有している。仮想ページVP21に対するデータは、実ページRP21に格納されている。これは、仮想ページVP21に実ページRP21が割り当てられからである。仮想ページVP21のアクセス頻度は、仮想ページVP12、及び、仮想ページVP13よりは高いが、仮想ページVP11より低いとする。
外部ストレージES1は、さらに、IDがRL4である実LUを有している。実LU(RL4)は、少なくとも、IDがRP41である実ページを有している。実ページRP41はまだどの仮想ページにも割り当てられていない。
図4Bは、複数の計算機間でVMが移動された後の計算機システムのブロック図である。管理者は、管理端末4を介して、計算機SV1から計算機SV2へ、VM1を移動すると、その移動に伴い、仮想LU(VL1)と、仮想LUの仮想ページVP11、VP12、及び、VP13が、計算機SV1から計算機SV2へ移動する。したがって、VMが移動する前、計算機SV1に存在していた、VMがVMに割当られたデータにアクセスするための管理・制御情報がVMの移動先である計算機SV2で再現できることになる。VMが移動直後、仮想ページと実ページとの対応関係はVMの移動前と同じである。
これに対して、図5Aは、移動先計算機において、デステージが行われた後の計算機システムのブロック図を示す。デステージとは、直結ストレージ2内の実ページのデータが外部ストレージ3の実ページへ移行されることである。VM1が計算機SV1から計算機SV2に移動して、VM1が仮想LU(VL1)の仮想ページにアクセスしようとすると、VM1は仮想計算機SV2からネットワーク5を経由し、さらに、計算機SV1から直結ストレージDS1の実ページにアクセスしなければならず、レイテンシが増大する。特に、アクセス頻度が高い仮想ページ(VP11)ほどこの傾向が大きくなる。このレイテンシを避けるためには、仮想LU(VL1)の仮想ページ、特に、VM1〜のアクセス頻度が高い仮想ページVP11のデータは計算機SV2の直結ストレージDS2の実ページにあることがよい。
そこで、管理端末4は、仮想ページVP11のために、直結ストレージDS2に空きページを作る必要から、仮想ページVP11よりアクセス頻度の低い仮想ページVP21に割り当てられた実ページRP21のデータを、直結ストレージDS2から外部ストレージES1の実LU(RL4)の未使用ページであるRP41にデステージする。そして、管理端末4は、先ず、仮想ページVP21に実ページRP41を再割り当てし、仮想ページVP21の実ページRP21に対する割り当てを解除する。
図5Bは、直結ストレージDS1の実ページRP11のデータが直結ストレージDS2の実ページRP21に直接移行された後の計算機システムのブロック図である。デステージにより、直結ストレージDS2に「空き」ページ(実ページRP21)が生成されたため、管理端末4は、VM1が使用する直結ストレージDS1内の実ページのうち、アクセス頻度の高い実ページRP11のデータを直結ストレージDS2内の実ページRP21へ移行する。そして、管理端末4は、仮想ページVP11と実ページRP11の割当を解除し、次いで、仮想ページVP11を直結ストレージDS2の実ページRP21に再割り当てする。
図6は、移動元計算機SV1においてデステージが行われた後の状態に係る計算機システムのブロック図を示す。計算機DS1には、計算機DS2に移動したVM1がアクセスする仮想ページVP12に割り当てられた実ページRP12がまだ存在している。この実ページは、計算機SV1に存在する他のVMがアクセスする仮想ページのために空ける方が好ましい。そこで、実ページRP12のデータが、外部ストレージES1内の空き実ページRP32にデステージされる。そして、管理端末4は仮想ページVP12に実ページRP32を再割り当てし、仮想ページVP12を実ページRP12の割り当てから解放する。
なお、移動するVM1がアクセスする全ての仮想ページのアクセス頻度が、移動先計算機上で動作するVMがアクセスする仮想ページのアクセス頻度より低い場合、直結ストレージ間でのデータ移行、及び、移動先計算機におけるデステージは実行されない。アクセス頻度の高い仮想ページには、より高速のストレージである、直結ストレージを割当てるようにするためである。また、直結ストレージ間でのデータ移行は、移動先計算機におけるデステージの後に実行されるが、移動元計算機におけるデステージは、直結ストレージ間でのデータ移行より前に実行されてもよい。
既述の実施形態では、VM毎に仮想LUが存在することを前提としたが、複数のVMが一つ又は複数の仮想LUを共有するようにしてもよい。その場合、CPU11a,11bは、どのVMが仮想LUのどの領域を使用するかを、VM制御プログラム37からストレージ制御プログラム38へ、特別なAPIを介して受け渡す必要がある。このようなAPIの例として、VMWare社の「vStorage API」がある。そのために、図36に示すように、仮想LUテーブル42にはエントリ424が追加され、エントリ424には、VMが使用する領域の範囲を示す情報、例えば、先頭アドレスと最後尾アドレスのペアが格納される。
次に、図7から図10までを用いて、既述の管理テーブルの構造を説明する。これらのテーブルは配列構造を持ち、1つ以上のレコードを格納する。ただし、データ構造が配列構造に限定されるものではない。
図7Aは、VMの管理・制御情報を規定するVMテーブル41(図2)のデータ構造の例を示すものである。VMテーブル41は、計算機1において動作するVMの数分のレコードを有する。本テーブルのレコードは、VMのIDが格納されるエントリ411、VMに割り当てられたWWNが格納されるエントリ412、VMがアクセスする外部ストレージのIDとそのLUNがそれぞれ格納されるエントリ413とエントリ414とから構成される。VMに割当てられたWWNを仮想WWNと呼ぶ。VMテーブル41aは計算機SV1のVMに対してのものであり、VMテーブル41bは計算機SV2に対するものである。以後、テーブルを示す符号の末尾が「a」は、VM移動元計算機SV1のテーブルであることを示し、テーブルを示す符号の末尾が「b」は、VM移動元計算機SV2のテーブルであることを示す。a,bの区別がない場合は、管理端末のテーブルであるか、移動元計算機及び移動先計算機に共通のものであることを示す。
図7Bは、仮想LUの管理・制御情報を規定する仮想LUテーブル42のデータ構造の例を示す。このテーブルは、計算機1に設定されたVMの数分のレコードを有する。このテーブルのレコードには、VMがアクセスする仮想LUのLUNが格納されるエントリ421、仮想LUに設定されたWWNが格納されるエントリ422、及び、仮想LUの仮想容量が格納されるエントリ423から構成される。仮想LUテーブル42a及び仮想LUテーブル42bは、それぞれ、計算機SV1及び計算機SV2の仮想LUテーブルである。
図7Cは、外部ストレージ3の特性を示す外部ストレージテーブルのデータ構造を示す一例である。このテーブルは、外部ストレージの数分のレコードを有する。このテーブルのレコードには、外部ストレージ3のIDが格納されるエントリ431、及び、外部ストレージ3のWWNが格納されるエントリ432がある。計算機SV1及び計算機SV2は、同じ内容の外部ストレージテーブル43を備えている。
図8Aは、VMから仮想LUへのアクセスを直結ストレージ2、又は、外部ストレージ3に対するアクセスする変換するための管理・制御情報を規定したマッピングテーブルマッピングテーブル44のデータ構造の例を示す。このテーブルは、計算機1がアクセスする仮想LUを構成する仮想ページ数分のレコードを有する。
このテーブルのレコードには、仮想ページを含む仮想LUのLUNが格納されるエントリ441と、仮想ページのIDが格納されるエントリ442と、VMから仮想ページにアクセスされた頻度が格納されるエントリ443と、仮想ページのデータが実際に格納されるストレージのIDが格納されるエントリ444と、データが実際に格納される実LUのLUNが格納されるエントリ445と、データが実際に格納される実ページのIDが格納されるエントリ446とがある。マッピングテーブルマッピングテーブル44a及びマッピングテーブルマッピングテーブル44bは、それぞれ計算機SV1及び計算機SV2のテーブルである。
図8Bは直結ストレージの管理・制御情報を規定した直結ストレージページテーブル45のデータ構造の例である。このテーブルは、直結ストレージ2を構成する実ページ数分のレコードを有する。このテーブルのレコードには、直結ストレージのIDが格納されるエントリ451と、実LUのLUNが格納されるエントリ452と、実ページのIDが格納されるエントリ453と、実ページの状態が格納されるエントリ454とが存在する。実ページの状態には、未割当を表す[Not Assigned]、実ページが仮想ページに対して割当済みを表す[Assigned]、及び、割当ての予約がされていることを示す[Reserved]がある。直結ストレージページテーブル45a及び45bは、それぞれ計算機SV1及び計算機SV2のテーブルである。
図9は、外部ストレージの実ページの管理・制御情報を規定する、外部ストレージページテーブル46(図2)のデータ構造の例である。このテーブルは、計算機1がアクセスする外部ストレージ3の実LUを構成する実ページ数分のレコードを有する。このテーブルのレコードには、レコードに対応する実ページを含む外部ストレージ3のIDが格納されるエントリ461と、実ページを含む実LUのLUNが格納されるエントリ462と、実ページのIDが格納されるエントリ463、及び、実ページの状態が格納されるエントリ464とがある。実ページの状態には、未割当を表す[Not Assigned]、及び、割当済みを表す[Assigned]がある。外部ストレージページテーブル46a及び46bは、それぞれ計算機SV1及び計算機SV2のテーブルである。移行先決定テーブル47の説明は図21Aにおいて後述する。
図10Aは、計算機の管理・制御情報を規定する、管理装置4の計算機テーブル61(図3)のデータ構造の例を示す。このテーブルは、計算機システムに存在する計算機の数分のレコードを有する。テーブルのレコードには、計算機1のIDが格納されるエントリ611と、計算機1のIPアドレスが格納されるエントリ612と、計算機のWWNが格納されるエントリ613とがある。
図10Bは、VMの管理・制御情報を規定する、管理装置4のVMテーブル62(図3)のデータ構造の例である。このテーブルは、システム内のVMの数分のレコードを有する。テーブルの各レコードは、当該レコードに対応するVMのIDが格納されるエントリ621、及び、VMが動作する計算機1のIDが格納されるエントリ622とから構成される。
図10Cは、外部ストレージの管理・制御情報を規定する、管理端末4の外部ストレージテーブル63(図3)のデータ構造の例を示す。このテーブルは、外部ストレージ3数分のレコードを有する。テーブルのレコードは、外部ストレージ3のIDが格納されるエントリ631、外部ストレージ3のIPアドレスが格納されるエントリ632、及び、外部ストレージのWWNが格納されるエントリ633と、がある。状態テーブル64の説明は図21Bにおいて後述する。
図11と図12とを用いて、管理端末4のCPU11が、画面制御プログラム51に基づいて出力装置17に表示するグラフィカルユーザインタフェース(GUI)を説明する。さらに、計算機1の主メモリ12a.12bや管理端末4の主メモリ12cに格納されるテーブルの初期化処理の動作を説明する。
図11Aは、計算機システムに計算機を追加するための画面1100の例を示す。管理者は、計算機1を新たにネットワーク5に接続するたびにこの画面を利用する。この画面は、追加される計算機1のIDが入力される領域1101、計算機1のIPアドレスが入力される領域1102、計算機1にアクセスするためのWWNが入力される領域1103、計算機1に直結される直結ストレージ2のIDが入力される領域1104、直結ストレージ2に作成される実LUのLUNが入力される領域1105、実LUの容量が入力される領域1106、管理者が計算機1を追加するためのボタン1107、及び管理者が計算機1の追加を取りやめるためのボタン1108とから構成される。
管理者がボタン1107をクリックすると、管理端末4のCPU11cは、画面制御プログラム51に基づき、領域1101、領域1102、及び領域1103に入力されたデータを用いて新しいレコードを計算機テーブル61(図10A)に追加する。
また、管理端末4のCPU11cは、計算機通信プログラム53に基づき、領域1101に入力されたIDを持つ計算機1に対して、直結ストレーにLUを作成するU作成要求を送信する。この要求の送信先IPアドレスは領域1102に入力されたIPアドレスである。この要求には、領域1104、領域1105、及び領域1106に入力されたデータが含まれる。なお、直結ストレージが管理ネットワークに接続されている場合には、この作成要求を直結ストレージに直に送ってもよい。
計算機1がこの要求を受信すると、計算機1のCPU11は、管理端末通信プログラム35に基づき、この要求に含まれるデータを取り出す。次に、計算機1のCPU11は、内部I/O制御プログラム33に基づき、領域1104に入力されたIDを持つ直結ストレージ2に、領域1105に入力されたLUNと領域1106に入力された容量を持つ実LUを作成する。
次に、計算機1のCPU11は、内部I/O制御プログラム33に基づき、1つ以上のレコードを直結ストレージページテーブル45(図8B)に追加する。レコードの数は、領域1106に入力されたデータ、すなわち、作成された直結ストレージ2の実LUの容量をページのサイズで割った数である。各レコードのエントリ451には、領域1104に入力されたデータ、すなわち、直結ストレージ2のIDを、エントリ452には領域1105、すなわち、作成された実LUのLUNを、エントリ453には、レコードに対応するページのIDを、エントリ454には未割当を表す値、例えば、「Not Assigned」がそれぞれ格納される。ページのIDは、自動的に採番される。そして、計算機1のCPU11は、管理端末通信プログラム35に基づき、管理端末4へ直結ストレージ内にLUを作成した旨の応答を送信する。管理端末4がこの応答を受信すると、管理端末4のCPU11は、画面制御プログラム51に基づき、画面1100を消去する。
図11Bは、外部ストレージ追加画面1110の例を示す。この画面は、追加される外部ストレージ3のIDが入力される領域1111、外部ストレージ3のIPアドレスが入力される領域1112、外部ストレージ3にアクセスするためのWWNが入力される領域1113、管理者が外部ストレージ3を追加するためのボタン1114、及び、管理者が外部ストレージ3の追加を取りやめるためのボタン1115を有している。
管理者がボタン1114をクリックすると、管理端末4のCPU11cは、画面制御プログラム51に基づき、領域1111、領域1112、及び、領域1113に入力されたデータを用いて新しいレコードを外部ストレージテーブル63(図10C)に追加する。
また、管理端末4のCPU11cは、計算機通信プログラム53に基づき、計算機テーブル61(図10A)に登録されている全ての計算機1に対して、外部ストレージ追加要求を送信する。この要求には、領域1111及び領域1113に入力されたデータが含まれる。
計算機1がこの要求を受信すると、計算機1のCPU11は、管理端末通信プログラム
35に基づき、この要求に含まれるデータを取り出す。次に、計算機1のCPU11は、外部I/O制御プログラム34に基づき、1つのレコードを外部ストレージテーブル43(図7C)に追加する。追加されるレコードのエントリ431には領域1111に入力されたデータ、すなわち、外部ストレージ3のIDが、エントリ432には領域1113に入力されたデータ、すなわち、外部ストレージ3のWWNがそれぞれ格納される。そして、計算機1のCPU11は、管理端末通信プログラム35に基づき、管理端末4へ外部ストレージ追加応答を送信する。管理端末4が全ての計算機1から外部ストレージ追加応答を受信すると、管理端末4のCPU11cは、画面制御プログラム51に基づき、画面1110を消去する。
図12は、VMを計算機に追加するために、管理装置4の設定画面1200の例を示す。画面は、VMを追加する計算機1を選択する領域1201、VMのIDを入力する領域1202、VMが利用する仮想WWNを入力する領域1203、VMがアクセスする仮想LUのLUNを入力する領域1204、仮想LUの仮想容量を入力する領域1205、VMがアクセスする外部ストレージ3のIDを選択する領域1206、VMがアクセスする外部ストレージ3内の実LUのLUNを入力する領域1207、実LUの容量を入力する領域1208、管理者がVMを追加するためのボタン1209、及び管理者がVMの追加を取りやめるためのボタン1210を有している。
管理者がボタン1209をクリックすると、管理端末4のCPU11cは、画面制御プログラム51に基づき、領域1201、及び、領域1102に入力されたデータを用いて新しいレコードをVMテーブル62(図10B)に追加する。
また、管理端末4のCPU11cは、外部ストレージ通信プログラム54に基づき、領域1206で選択されたIDを持つ外部ストレージ3に対して、領域1207に入力されたLUNと領域1208に入力された容量を持つ実LUの作成要求を送信する。管理端末4がこの要求に対応する応答を外部ストレージ3から受信すると、管理端末4のCPU11は、計算機通信プログラム53に基づき、領域1201で選択されたIDを持つ計算機1に対して、VM追加準備要求を送信する。この要求には、領域1202、領域1203、領域1204、領域1205、領域1206、領域1207及び領域1208に入力或いは選択されたデータが含まれる。
計算機1がこの要求を受信すると、計算機1のCPU11は、管理端末通信プログラム35に基づき、この要求に含まれるデータを取り出す。次に、計算機1のCPU11は、外部I/O制御プログラム34に基づき、1つ以上のレコードを外部ストレージページテーブル46(図9)に追加する。
追加するレコードの数は、領域1208に入力されたデータ、すなわち、作成された外部ストレージ3の実LUの容量を実ページのサイズで割った数である。追加したレコードのエントリ461には領域1206で選択されたデータ、すなわち外部ストレージ3のID、エントリ462には領域1207で入力されたデータ、すなわち、作成された実LUのLUN、エントリ463には実LUのLUNに対応するページのID、エントリ464には未割当を表す値、例えば「Not Assigned」がそれぞれ格納される。ページのIDは、自動的に採番される。
次に、計算機1のCPU11は、外部I/O制御プログラム34に基づき、1つのレコードをVMテーブル41(図7A)に追加する。追加されたレコードのエントリ411に領域1202に入力されたデータ、すなわち、追加されるVMのIDを、エントリ412に領域1203に入力されたデータ、すなわち、追加されるVMが利用する仮想WWNを、エントリ413には領域1206で選択されたデータ、すなわち追加されるVMがアクセスする外部ストレージ3のIDを、エントリ414には領域1207に入力されたデータ、すなわち、追加されるVMがアクセスする外部ストレージ3内の実LUのLUNをそれぞれ格納する。
次に、計算機1のCPU11は、内部I/O制御プログラム33に基づき、1つのレコードを仮想LUテーブル42(図7B)に追加する。追加するレコードのエントリ421に、領域1204に入力したデータ、すなわち、追加するVMに提供される仮想LUのLUNを、エントリ422に、領域1203に入力したデータ、すなわち、追加するVMが利用する仮想WWNを、エントリ423に、領域1205に入力したデータ、すなわち、前記仮想LUの仮想容量をそれぞれ格納する。
次に、計算機1のCPU11は、内部I/O制御プログラム33に基づき、1つ以上のレコードをマッピングテーブルマッピングテーブル44(図8A)に追加する。追加されるレコードの数は、領域1205に入力したデータ、すなわち、仮想LUの仮想容量をページのサイズで割った数である。追加する各レコードのエントリ441には領域1204に入力したデータ、すなわち、仮想LUのLUNを、エントリ442にはレコードに対応するページのIDを、エントリ443には未だアクセスしていない事を表すデータ、すなわち、「0」を、エントリ444、エントリ445、及びエントリ446にはまだ仮想ページに実ページが割り当てられていない事を表すデータ、例えば「N/A」をそれぞれ格納する。ページのIDは、自動的に採番される。そして、計算機1のCPU11は、管理端末通信プログラム35に基づき、管理端末4へVMの追加の準備が完了した旨の応答を送信する。
管理端末4がこの応答を受信すると、管理端末4のCPU11は、計算機通信プログラム53に基づき、領域1201で選択されたIDを持つ計算機1に対して、VMを追加する要求を送信する。この要求には、領域1202、領域1203及び領域1204に入力されたデータが含まれる。計算機1がこの要求を受信すると、計算機1のCPU11は、管理端末通信プログラム35を実行して、この要求に含まれるデータを取り出す。次に、計算機1のCPU11は、VM制御プログラム37に基づき、領域1202に入力されたIDを持つVMを作成する。このVMは、領域1203に入力された仮想WWNを用いて、領域1204に入力されたLUNを持つ仮想LUにアクセスする。そして、計算機1のCPU11は、管理端末通信プログラム35に基づき、管理端末4へVMを追加した旨の応答を送信する。
管理端末4が計算機1からVM追加応答を受信すると、管理端末4のCPU11cは、画面制御プログラム51に基づき、画面1200を消去する。
図13から図19までを用いて、計算機1の動作を説明する。図13は、計算機1のCPU11が内部I/O制御プログラム33に基づいて、内部ライト処理を実行するフローチャートの例を示す。この処理は、計算機1のVMがアプリケーションプログラム36を実行して仮想LUへのデータの書き込みが発生した場合に開始される。
まず、計算機1のCPU11は、書き込まれるデータのアドレスからそのデータに対応する仮想ページを特定する。そして、CPU11は、マッピングテーブルマッピングテーブル44(図8A)を参照して、その仮想ページに実ページが既に割り当てられているかを調べる(S1301)。もし、まだ割り当てられていない場合、CPU11は、図14において後述するページ割当処理を実行する(S1302)。既に割り当てられている場合、CPU11は、マッピングテーブルマッピングテーブル44を参照して、割り当てられた実ページが直結ストレージ2の実ページか否かを調べる(S1303)。
この判定結果が直結ストレージ2の実ページである場合、CPU11は、直結ストレージ2の実ページに対してデータをライトする(S1304)。直結ストレージ2の実ページではない場合、CPU11は、マッピングテーブルマッピングテーブル44を参照して、割り当てられた実ページが外部ストレージ3の実ページか否かを調べる(S1305)。外部ストレージ3の実ページの場合、CPU11は、外部ストレージ3へデータをライトするする(S1306)。
外部ストレージ3の実ページではない場合、CPU11は、他の計算機1へデータをライトする(S1307)。S1304、S1306或いはS1307が完了後、CPU11は、マッピングテーブル44のS1301で特定された仮想ページに対応するレコードのアクセス頻度(443)を更新し(S1308)、本処理を終了する。
なお、CPUは、仮想ページを直結ストレージへ割当てるべきか外部ストレージへ割当てるべきかの区別を、マッピングテーブル44の、実ページに対応するレコードのストレージID444を見て、当該実ページが直結ストレージの実ページか外部ストレージの実ページかを判定することに基づいて実行する。
図14は、計算機1のCPU11が、内部I/O制御プログラム33に基づいて実行するページ割当処理のフローチャート例を示す。まず、CPU11は、直結ストレージページテーブル45を参照して、まだ割り当てられていない実ページを選択する(S1401)。
CPU11は、この選択が出来たか否かで処理を分岐する(S1402)。選択出来なかった場合、図15で詳しく説明する階層間データ緊急移行処理を実行し(S1403)、本処理を終了する。選択出来た場合、CPU11は、直結ストレージページテーブル45(図8B)の、選択された実ページに対応するレコードを更新する(S1404)。すなわち、レコードのエントリ454を、割当済みを表すデータ例えば[Assigned]に変更する。
次に、CPU11は、マッピングテーブル44のS1301で特定された仮想ページに対応するレコードを更新する(S1405)。すなわち、レコードのエントリ443を最新のアクセス頻度の値に、エントリ444を直結ストレージ2のIDに、エントリ445を直結ストレージ2に作成された実LUのLUNに、エントリ446をS1401で選択された実ページのIDにそれぞれ変更する。最後に、CPU11は、S1401で選択された実ページにデータをライトする(S1406)。
図15は、計算機1のCPU11が、階層制御プログラム31に基づいて、ストレージの階層間でデータを緊急に移行する処理のフローチャートの一例である。まず、CPU11は、マッピングテーブル44を参照し、直結ストレージ2の割り当て済み実ページのうち、最もアクセス頻度の低い実ページを選択し(S1501)、その実ページのデータをリードする(S1502)。
次に、CPU11は、外部ストレージページテーブル46(図9)を参照し、まだ割り当てられていない実ページを選択する(S1503)。CPU11は、この選択が出来たか否かで処理を分岐する(S1504)。選択出来なかった場合、直結ストレージ2にも外部ストレージ3にも空き容量がないため、CPU11は、エラーの発生を管理者に通知する(S1509)。この通知は、例えば、電子メールやイベントログで行われる。
選択が出来た場合、CPU11は、S1502でリードされたデータを、S1503で選択された実ページにライトし(S1505)、S1501で選択された実ページのデータを初期化する(S1506)。この初期化は、例えば、CPU11が、実ページの全ての記憶領域に0を書き込むことで行われる。
CPU11は、マッピングテーブル44(図8A)及び、外部ストレージページテーブル46(図9)を更新する(S1508)。すなわち、マッピングテーブル44のレコードのうち、S1501で選択された実ページが割り当てられている仮想ページに対応するレコードのエントリ444を外部ストレージ3のIDに、エントリ445を外部ストレージ3の実LUのLUNに、エントリ446をS1503で選択された実ページのIDにそれぞれ変更する。
また、マッピングテーブル44のレコードのうち、S1301で特定された仮想ページに対応するレコードのエントリ443を最新のアクセス頻度の値に、エントリ444を直結ストレージ2のIDに、エントリ445を直結ストレージ2に作成された実LUのLUNに、エントリ446をS1501で選択された仮想ページに割り当てられていた直結ストレージ2の実ページのIDにそれぞれ変更する。
計算機1のCPUは、外部ストレージページテーブル46(図9)の、S1503で選択された実ページに対応するレコードのエントリ464を、割当済みを表すデータにそれぞれ変更する。最後に、CPU11が、S1501で選択された実ページへデータをライトして(S1507)、本処理を終了する。
図16は、計算機1のCPU11が内部I/O制御プログラム33に基づいて実行する内部リード処理のフローチャートの一例である。本処理は、計算機1のVMがアプリケーションプログラム36に基づいて仮想LUからデータを読み込む時に実行される。
まず、CPU11は、読み込まれるデータのアドレスからそのデータに対応する仮想ページを特定する。そして、CPU11は、マッピングテーブル44(図8A)を参照して、その仮想ページに実ページが既に割り当てられているかを調べる(S1601)。割り当てられていない場合、CPU11は、0データを主メモリ12に送信して(S1602)、処理を終了する。
既に割り当てられている場合、CPU11は、マッピングテーブル44を参照して、割り当てられた実ページが直結ストレージ2の実ページか否かを調べる(S1603)。直結ストレージ2の実ページの場合、CPU11は、直結ストレージ2の実ページからデータをリードする(S1604)。
直結ストレージ2の実ページではない場合、CPU11は、マッピングテーブル44を参照して、割り当てられた実ページが外部ストレージ3の実ページか否かを調べる(S1605)。外部ストレージ3の実ページの場合、CPU11は、外部ストレージ3からデータをリードする(S1606)。
外部ストレージ3の実ページではない場合、CPU11は、他の計算機1からデータをリードする(S1607)。S1604、S1606或いはS1607が完了後、CPU11は、マッピングテーブル44のS1601で特定された仮想ページに対応するレコードのエントリ443(アクセス頻度)を更新する(S1608)。
最後に、CPU11は、リードされたデータを主メモリ12に送信し(S1609)、処理を終了する。その後、CPU11がアプリケーションプログラム36に基づいて、主メモリ21に転送されたデータを読み出し、アプリケーションプログラムの様々な処理を実行する。なお、アクセス頻度に代わる特性としては、データの重要性、データの作成日付などがある。
図17Aは、計算機1のCPU11が外部I/O制御プログラム34に基づいて実行する外部ライト処理のフローチャートの一例である。この処理は、計算機1が他の計算機1のVMから書き込み要求を受領した時に実行される。
まず、CPU11は、書き込まれるデータのアドレスからそのデータに対応する仮想ページを特定する。そして、CPU11は、マッピングテーブル44を参照して、その仮想ページに直結ストレージ2の実ページが既に割り当てられているかを調べる(S1701)。仮想ページに直結ストレージの実ページが割り当てられていない場合、CPU11は、直結ストレージに他の計算機から受信したデータを書き込めないためにエラーを管理者に通知して(S1702)、この処理を終了する。一方、既に割り当てられている場合、CPU11は、S1701で特定された実ページにデータをライトして(S1703)、この処理を終了する。
図17Bは、計算機1のCPU11が外部I/O制御プログラム34に基づいて実行する外部リード処理のフローチャート例を示す。この処理は、計算機1が他の計算機1のVMから読み込み要求を受領した時に実行される。まず、CPU11は、読み込まれるべきデータのアドレスからそのデータに対応する仮想ページを特定する。
そして、CPU11は、マッピングテーブル44(図8A)を参照して、その仮想ページに直結ストレージ2の実ページが既に割り当てられているかを調べる(S1711)。まだ、割り当てがない場合、CPU11は、0データを他の計算機1へ送信し(S1712)、この処理を終了する。既に割り当てがあった場合、CPU11は、S1711で特定された実ページからデータをリードし(S1713)、そのデータを他の計算機1へ送信し(S1714)、この処理を終了する。
図18は、計算機1のCPU11が、階層制御プログラム31に基づいて、ストレージの階層間でデータを移行する処理の第1の形態に係るフローチャートである。本処理は、直結ストレージ2の空き容量、或いは、空き実ページを増やす目的で、CPU11が、直結ストレージ2に格納された比較的アクセス頻度の低いデータを外部ストレージ3へ移行する処理である。本処理は、予め決められた、或いは、管理者により入力された時間間隔で実行される。或いは、本処理は、直結ストレージ2の空きページ数が予め決められた、或いは、管理者により入力された閾値を下回った時に実行されてもよい。
まず、計算機1のCPU11は、直結ストレージページテーブル45(図8B)を参照し、直結ストレージ2の1つの実ページを選択する(S1801)。
次に、CPU11は、マッピングテーブル44(図8A)を参照し、S1801で選択された実ページが割り当てられた仮想ページのアクセス頻度が、予め決められた、或いは、管理者により入力された閾値より低いか否かを調べる(S1802)。アクセス頻度が所定のものより高い、CPU11は、S1808にジャンプする。一方、アクセス頻度が低い場合、CPU11は、外部ストレージページテーブル46を参照し、まだ割り当てられていない実ページを選択する(S1803)。
CPU11は、この選択が出来たか否かで処理を分岐する(S1804)。外部ストレージ3に空き容量がないため、選択が失敗した場合、CPU11はこの処理を終了する。選択が成功すると、CPU11は、S1801で選択された、直結ストレージの実ページのデータをReadし、そのデータをS1803で選択された、外部ストレージの実ページへWriteする(S1805)。さらに、CPU11は、S1801で選択された、直結ストレージの実ページのデータを初期化する(S1806)。
次いで、CPU11は、マッピングテーブル44(図8A)、直結ストレージページテーブル45(図8B)、及び、外部ストレージページテーブル46(図9)を更新する(S1807)。すなわち、マッピングテーブル44のレコードのうち、S1801で選択された実ページが割り当てられた仮想ページに対応するレコードのエントリ444を外部ストレージ3のIDに、エントリ445を外部ストレージ3の実LUのLUNに、エントリ446をS1803で選択された実ページのIDにそれぞれ変更する。また、直結ストレージページテーブル45の、S1801で選択された実ページに対応するレコードのエントリ454を、未割当を表すデータに変更する。さらに、外部ストレージページテーブル46の、S1803で選択された実ページに対応するレコードのエントリ464を、割当済を表すデータに変更する。CPU11は、S1801からS1807までの処理を、直結ストレージ2の全ての実ページに対して繰り返す(S1808)。
図19は、計算機1のCPU11が階層制御プログラム31に基づいて実行するストレージ階層間でデータを移行する処理の第2の形態に係るフローチャートである。本処理は、外部ストレージ3に格納された比較的アクセス頻度の高いデータに対する,VMからのアクセス性能を高める目的で、CPU11が、外部ストレージ3に格納された比較的アクセス頻度の高いデータを直結ストレージ2へ移行する。
本処理は、図18の階層間データ移行処理の直後に実行される。或いは、本処理は、予め決められた、また、管理者により入力された時間間隔で実行されても良い。また、本処理は、外部ストレージ3の空きページ数が予め決められた、或いは、管理者により入力された閾値を下回った時に実行されてもよい。
まず、CPU11は、外部ストレージページテーブル46(図9)を参照し、外部ストレージ3の1つの実ページを選択する(S1901)。次に、CPU11は、マッピングテーブル44(図8A)を参照し、S1901で選択された実ページが割り当てられた仮想ページのアクセス頻度が、予め決められた、或いは、管理者により入力された閾値より高いか否かを調べる(S1902)。
アクセス頻度が低い場合、CPU11は、S1908の処理にジャンプする。アクセス頻度が高い場合、CPU11は、直結ストレージページテーブル45を参照し、まだ、割り当てられていない実ページを選択する(S1903)。CPU11は、この選択が出来たか否かで処理を分岐する(S1904)。
直結ストレージ2に空き容量がないため、この選択が失敗すると、CPU11は、本処理を終了する。選択が成功すると、CPU11は、S1901で選択した、外部ストレージの実ページのデータをリードし、そのデータをS1903で選択した、直結ストレージの実ページへライトする(S1905)。
次に、CPU11は、S1901で選択された実ページのデータを初期化する(S1906)。さらに、CPU11は、マッピングテーブル44、直結ストレージページテーブル45、及び、外部ストレージページテーブル46を更新する(S1907)。すなわち、マッピングテーブル44のレコードのうち、S1901で選択された実ページが割り当てられた仮想ページに対応するレコードのエントリ444を直結ストレージ2のIDに、エントリ445を直結ストレージ2の実LUのLUNに、エントリ446をS1903で選択された実ページのIDにそれぞれ変更する。
また、直結ストレージページテーブル45の、S1903で選択された実ページに対応するレコードのエントリ454を、割当済を表すデータに変更する。さらに、外部ストレージページテーブル46の、S1901で選択された実ページに対応するレコードのエントリ464を、未割当を表すデータに変更する。CPU11は、S1901からS1907までの処理を、外部ストレージ3の実LUのうち、計算機1が使用する全ての実LUの全ての実ページに対して繰り返す(S1908)。
以下に、VMが移動する際の計算機システムの動作を説明する。図21Bは、VMの状態に関するテーブル64のデータ構造の例である。本テーブルは、移動中のVMの数分のレコードを有する。本テーブルの各レコードは、移動中のVMのIDが格納されるエントリ641、VMに関係するデータの状態が格納されるエントリ642から構成される。
図22Aは、管理端末4のCPU11cが、画面制御プログラム51に基づいて出力装置17に表示するVM移動画面2200の画面の例である。管理者は、VMを計算機間で移動させる時、このGUIを利用する。この画面は、VMの移動元の計算機1のIDを選択する領域2201、移動させるVMのIDを選択する領域2202、VMの移動先の計算機1のIDを選択する領域2203、管理者がVMを移動させるためのボタン2204、及び、管理者がVMの移動を取りやめるためのボタン2205から構成される。
管理者がボタン2204をクリックすると、管理端末4のCPU11cは、VM移動プログラム52に基づき、領域2202で選択されたVMに対応する、状態テーブル64のエントリ642を、VM移動中を表すステイタス、例えば、「VM移動中」に更新する。図4Aは、管理者がボタン2204を操作する前(VMが移動する前)での計算機システムの状態を示している。
図22Bは、管理端末4の状態表示画面2210の画面例を示す。本画面は、移動されるVMのIDが表示される領域2211、VMがアクセスするデータの状態が表示される領域2212、及び、VMの移動を途中で取り消すためのボタン2213から構成される。管理端末4のCPU11cは、状態テーブル64を更新した後、画面制御プログラム51に基づいて出力装置17に本画面を表示する。領域2212にはVM移動中を表すメッセージ、例えば、「VM移動中」が表示される。
図20は、VMが複数の計算機間を移動する過程での、計算機システムにおける通信シーケンスについてのタイムチャートの例である。図20は、図4A〜図6に対応するものである。すなわち、VM1は、計算機SV1から計算機SV2に移動し、それに伴い、ストレージ間でのデータ移動処理実行される。VMの移動元となる計算機1を移動元計算機、VMの移動先となる計算機1を移動先計算機という。移動元計算機はSV1であり、移動先計算機はSV2である。
管理端末4のCPU11cは、状態表示画面2210(図22B)を表示した後、計算機通信プログラム53に基づき、領域2201で選択された移動元計算機(SV1)へVM移動要求2001を送信する。この要求には、領域2202で選択されたデータ、すなわち、移動するVMのID、及び、領域2203で選択されたデータ、すなわち、移動先計算機のIDが含まれる。また、この要求には、移動先計算機SV2のIPアドレス(図10A)も含まれる。
移動元計算機SV1がVM移動要求2001を受信すると、移動元計算機SV1のCPU11aは、管理端末通信プログラム35に基づき、この要求からデータを取り出す。次に、CPU11aは、分散制御プログラム32に基づき、仮想LUを計算機SV1から計算機SV2に移動するための要求2002を、移動先計算機SV2に送信する。
この要求には、VMテーブル41a(図7A)のレコードのうち、移動されるVM(VM1)に対応するレコードのデータ(仮想WWNが[00000001]、外部ストレージIDが[ES1]、そのLUNが[RL3])が含まれる。また、この要求には、仮想LUテーブル42a(図7B)のレコードのうち、VMに提供される仮想LUに対応するレコードのデータが含まれる。さらに、この要求には、マッピングテーブル44a(図8A)のレコードのうち、仮想LUに対応するレコードのデータが含まれる。さらにまた、この要求には、外部ストレージページテーブル46a(図9)のレコードのうち、VMが利用する実LUに対応するレコードのデータが含まれる。
移動先計算機(SV2)が仮想LU移動要求2002を受信すると、移動先計算機(SV2)のCPU11bは、分散制御プログラム32に基づき、この要求からデータを取り出し、取り出されたデータに基づき、VMテーブル41b(図7A)、仮想LUテーブル42b(図7b)、マッピングテーブル44b(図8A)及び外部ストレージテーブル46b(図9)を更新する。
そこで、この更新後の、計算機SV2のテーブルのデータ構造の例を説明する。VMテーブル41b(図23A)にはレコード4101が、仮想LUテーブル42b(図23B)にはレコード4201が、マッピングテーブル44b(図23C)には3つのレコード4401が、外部ストレージページテーブル46b(図23D)には2つのレコード4601がそれぞれ追加される。
次に、VMの移動先計算機(SV2)のCPU11bは、分散制御プログラム32に基づき、移行先決定テーブル47を作成する。移行先決定テーブルとは、VMの移動に伴い、ストレージ間でのデータの移行先をVMが移動された計算機が決定するために活用されるテーブルである。図21Aは、移行先決定テーブル47のデータ構造例を示す。本テーブルは、計算機1で動作するVMに提供される仮想LUのLUNが格納されるエントリ471、仮想LUに対応する仮想ページのIDが格納されるエントリ472、仮想ページのアクセス頻度が格納されるエントリ473、移行元のストレージのIDが格納されるエントリ474、移行先のストレージのIDが格納されるエントリ475から構成される。この移行先決定テーブル47の作成処理を、図27に基づいて説明する。
図27は、移動先計算機のCPU11bが分散制御プログラム32に基づいて実行する移行先ストレージを決定する処理のフローチャートの一例である。まず、CPU11bは、マッピングテーブル44b(図8A)から実ページが割り当てられている仮想ページに対応するレコードをアクセス頻度の高い順に取り出す。
次に、CPU11bは、取り出されたレコードのデータに基づき移行先決定テーブル47(図21A)にレコードを追加する。追加されるレコードのエントリ471には取り出されたレコードのエントリ441のデータが、エントリ472には取り出されたレコードのエントリ442のデータが、エントリ473には取り出されたレコードのエントリ443のデータが、エントリ474には取り出されたレコードのエントリ444のデータが、エントリ475には未決定を表すデータ、例えば「TBD」がそれぞれ格納される。以上の処理を、マッピングテーブル44bの、実ページが割り当てられている仮想ページに対応する全てのレコードに対して実行する(S2701)。
次に、CPU11bは、移行先決定テーブル47の、直結ストレージDS2の実LUのページ数分のレコードをアクセス頻度の高い順に選択する(S2702)。そして、CPU11bは、それらのレコードのエントリ475移動先計算機SV2の直結ストレージ2のID(DS2)を格納する(S2703)。最後に、CPU11bは、残りのレコードのエントリ475に外部ストレージ3のIDを格納する(S2704)。これは、VMの移動によってDS2の実ページの消費を抑制するという配慮のためである。
なお、変形例として、たとえば、DS2のRP21をRP41にマイグレーションすることなくそのままにし、RP11にDS2の空の実ページを割当てることも考えられる。
移動先計算機(SV2)のCPU11bは、このように移行先決定テーブル47(図21A)を作成した後、仮想LU移動要求に対する応答2003を移動元計算機(SV1)に送信する。 移動元計算機(SV1)が仮想LU移動応答2003を受信すると、移動元計算機(SV1)のCPU11aは、VM制御プログラム37に基づき、移動先計算機(SV2)に対して、VM移動要求2004を送信する。
移動先計算機(SV2)がVM移動要求2004を受信すると、移動先計算機(SV2)のCPU11aは、仮想LU移動要求2002に含まれている情報を利用して、VM制御プログラム37に基づき、移動されたVMを作成し、VM移動の応答2005を移動元計算機(SV1)に送信する。
移動元計算機(SV1)がVM移動応答2005を受信すると、移動元計算機SV1のCPU11aは、移動されたVMを停止し、VMを削除する処理を行う。CPU11aは、分散制御プログラム32に基づき、VMテーブル41a、仮想LUテーブル42a、マッピングテーブル44a、及び外部ストレージページテーブル46aを更新する。すなわち、CPU11aはこれらのテーブルのレコードのうち、移動先計算機SV2に送信したレコードを削除する。そして、CPU11aは、管理端末通信プログラム35に基づき、管理端末4にVM移動の応答2006を送信する。図4Bは、この時点でのシステムを示している。
次いで、移動されたVMのデータの状態は、VM移動中から移動先計算機SV2におけるデステージ中に遷移する。従って、管理端末4のCPU11cは、VM移動プログラム52に基づき、状態テーブル(図21B)のエントリ642を移動先計算機におけるデステージ中を表すデータ、例えば、「移動先計算機におけるデステージ中」に変更し、そして、画面制御プログラム51に基づき、領域2202(図22A)を移動先計算機SV2におけるデステージ中を表すメッセージ、例えば、「移動先計算機におけるデステージ中」に変更する。その後、管理端末4のCPU11cは、計算機通信プログラム53に基づいて、移動先計算機SV2に移動先計算機デステージ要求2007を送信する。
移動先計算機SV2が移動先計算機デステージ要求2007を受信すると、移動先計算機SV2のCPU11bは、分散制御プログラム32に基づき、デステージ処理1を実行する。デステージ処理1とは、移動先計算機SV2の直結ストレージDS2から外部ストレージES1へのデステージ処理のことである。
図28は、デステージ処理1のフローチャートの例を示す。まず、移動先計算機SV2のCPU11bは、移行先決定テーブル47(図21A)を参照し、移行元ストレージが移動先計算機SV2の直結ストレージDS2であり、かつ、移行先ストレージが外部ストレージES1である仮想ページを1つ選択する(S2801)。
次に、CPU11bは、外部ストレージページテーブル46b(図9)を参照し、外部ストレージ3の未割当の実ページを選択する(S2802)。CPU11bは、この選択が出来たか否かによって、処理を分岐する(S2803)。選択が出来なかった場合、CPU11bは、エラーが発生したことを管理者に通知する(S2804)。選択が出来た場合、CPU11bは、S2801で選択された仮想ページに割り当てられた、直結ストレージDS2の実ページのデータをリードし、S2802で選択された、外部ストレージの実ページへライトする(S2805)。次に、CPU11bは、S2801で選択された実ページのデータを初期化する(S2806)。
そして、CPU11bは、マッピングテーブル44b(図8A)、直結ストレージページテーブル45b(図8B)、及び、外部ストレージページテーブル46b(図9)を更新する(S2807)。すなわち、マッピングテーブル44bのレコードのうち、S2801で選択された仮想ページに対応するレコードのエントリ444を外部ストレージ3のIDに、エントリ445を外部ストレージES1の実LUのLUNに、エントリ446をS2802で選択された実ページのIDにそれぞれ変更する。
また、直結ストレージページテーブル45bの、S2801で選択された、仮想ページに割り当てられた実ページに対応するレコードのエントリ454を、予約済を表すデータ、例えば、「Reserved」に変更する。さらに、外部ストレージページテーブル46bの、S2802で選択された実ページに対応するレコードのエントリ464を、割当済を表すデータに変更する。
移動先計算機SV2のCPU11bは、S2801からS2807までの処理を、移行元ストレージが移動先計算機の直結ストレージ2であり、かつ移行先ストレージが外部ストレージ3である全ての実ページに対して繰り返す(S2808)。
図24に、デステージ処理1が完了した後の、テーブルのデータ構造例を示す。マッピングテーブル44b(図24A)のレコード4402が、直結ストレージページテーブル45b(図24B)のレコード4502が、外部ストレージページテーブル46b(図24C)のレコード4602が、それぞれ変更される。移動先計算機(SV2)のCPU11は、デステージ処理1を完了すると、移動先計算機デステージ応答2008を管理端末4へ送信する。図5Cは、この時点での計算機システムを示している。
次に、移動されたVMに関係するデータの状態は、移動先計算機におけるデステージ中から直結ストレージ間移行中に遷移する。従って、管理端末4のCPU11cは、VM移動プログラム52に基づき状態テーブル(図21B)のエントリ642を、直結ストレージ間移行中を表すデータ、例えば、「直結ストレージ間移行中」に変更し、また、画面制御プログラム51に基づき領域2202を、直結ストレージ間移行中を表すメッセージ、例えば、「直結ストレージ間移行中」に変更する。その後、管理端末4のCPU11cは、計算機通信プログラム53に基づいて、移動先計算機SV2に直結ストレージ間移行要求2009を送信する。
移動先計算機SV2が直結ストレージ間移行要求2009を受信すると、移動先計算機SV2のCPU11bは、分散制御プログラム32に基づき、直結ストレージ間でのデータ移行処理を実行する。図29は、直結ストレージ間移行処理のフローチャートの例を示す。まず、移動先計算機SV2のCPU11bは、移行先決定テーブル47(図21A)を参照し、移行元ストレージが移動元計算機SV1の直結ストレージDS1であり、かつ移行先ストレージが移動先計算機SV2の直結ストレージDS2である仮想ページを1つ選択する(S2901)。この結果、仮想ページVP11が線なくされる。
次に、CPU11bは、直結ストレージページテーブル45b(図8B)を参照し、直結ストレージDS2の予約済ページを選択する(S2902)。この予約は、図28のステップs2807で行われている。予約済みページの選択に代えて、未割当の実ページを選択することでもよい。CPU11bは、この選択が出来たか否かによって、処理を分岐する(S2903)。選択が出来なかった場合、CPU11bは、エラーが発生したことを管理者に通知する(S2904)。
選択が出来た場合、CPU11bは、S2901で選択された仮想ページに割り当てられた、移行元ストレージDS1の実ページのデータをリードし、S2902で選択された、移行先ストレージDS2の実ページへライトする(S2905)。CPU11bは、S2901で選択された仮想ページに割り当てられた、移行元ストレージDS1の実ページについて、データの初期化と割り当て解放を移動元計算機SV1に要求する(S2906)。この要求に対応する応答を移行元計算機SV1のCPU11aから受信すると、CPU11bは、マッピングテーブル44b(図8A)及び直結ストレージページテーブル45b(図8B)を更新する(S2907)。
すなわち、マッピングテーブル44bのレコードのうち、S2901で選択された仮想ページに対応するレコードのエントリ444を直結ストレージDS2のIDに、エントリ445を直結ストレージDS2の実LUのLUNに、エントリ446をS2902で選択された実ページのIDにそれぞれ変更する。
また、直結ストレージページテーブル45bの、S2902で選択された実ページに対応するレコードのエントリ454を、割当済を表すデータに変更する。CPU11bは、S2901からS2907までの処理を、移行元ストレージが移動元計算機SV1の直結ストレージDS1であり、かつ、移行先ストレージが移動先計算機SV2の直結ストレージDS2である全ての実ページに対して繰り返す(S2908)。
図25に、直結ストレージ間移行処理が完了した後の、テーブルのデータ構造例を示す。マッピングテーブル44bのレコード4403が、移動元計算機の直結ストレージのページテーブル45aのレコード4503aが、移動先計算機の直結ストレージのページテーブル45bのレコード4503bが、それぞれ変更される。
移動先計算機SV2のCPU11bは、直結ストレージ間移行処理を完了すると、直結ストレージ間移行応答2010を管理端末4へ送信する。図5Aは、この時点でのシステムを示している。
ここで、移動されたVMのデータの状態は、直結ストレージ間移行中から移動元計算機におけるデステージ中に遷移する。従って、管理端末4のCPU11cは、VM移動プログラム52に基づき、状態テーブル64(図21B)のエントリ642を移動元計算機におけるデステージ中を表すデータ、例えば、「移動元計算機におけるデステージ中」に変更し、また、画面制御プログラム51に基づき領域2202を移動元計算機におけるデステージ中を表すメッセージ、例えば、「移動元計算機におけるデステージ中」に変更する。その後、管理端末4のCPU11は、計算機通信プログラム53に基づいて、移動先計算機(SV2)に移動元計算機デステージ要求2011を送信する。
移動先計算機SV2が移動元計算機デステージ要求2011を受信すると、移動先計算機SV2のCPU11bは、分散制御プログラム32に基づき、デステージ処理2を実行する。デステージ処理2とは、移動元計算機の直結ストレージ2から外部ストレージ3へのデステージ処理のことである。
図30は、デステージ処理2のフローチャートの例を示す。まず、移動先計算機CPU11bは、移行先決定テーブル47(図21)を参照し、移行元ストレージが移動元計算機SV1の直結ストレージDS1であり、かつ、移行先ストレージが外部ストレージES1である仮想ページを1つ選択する(S3001)。
次に、CPU11bは、外部ストレージページテーブル46b(図9)を参照し、外部ストレージ3の未割当の実ページを選択する(S3002)。CPU11bは、この選択が出来たか否かによって、処理を分岐する(S3003)。
選択が出来なかった場合、CPU11bは、エラーが発生したことを管理者に通知する(S3004)。選択が出来た場合、CPU11bは、S3001で選択された仮想ページに割り当てられた、直結ストレージDS1の実ページのデータをリードし、S3002で選択された、外部ストレージES1の実ページへライトする(S3005)。
次に、CPU11bは、S3001で選択された仮想ページに割り当てられた実ページについて、データの初期化と割り当ての解放を移動元計算機SV1に要求する(S3006)。この要求に対応する応答を受信すると、CPU11bは、マッピングテーブル44b(図26A)、及び、外部ストレージページテーブル46b(図26c)を更新する(S3007)。
すなわち、マッピングテーブル44bのレコードのうち、S3001で選択された仮想ページに対応するレコードのエントリ444を外部ストレージ3のIDに、エントリ445を外部ストレージ3の実LUのLUNに、エントリ446をS3002で選択された実ページのIDにそれぞれ変更する。
また、外部ストレージページテーブル46bの、S3002で選択された実ページに対応するレコードのエントリ454を、割当済を表すデータに変更する。CPU11bは、S3001からS3007までの処理を、移行元ストレージDS1が移動元計算機SV1の直結ストレージであり、かつ、移行先ストレージが外部ストレージES1である全ての実ページに対して繰り返す(S3008)。
次に、デステージ処理2(図30)が完了した後の、テーブルデータの構造例を説明する。移動先計算機SV2のマッピングテーブル44b(図26A)のレコード4404が、移動元計算機SV1の直結ストレージページテーブル45a(図26B)のレコード4504が、移動先計算機SV2の外部ストレージページテーブル46b(図26C)のレコード4604が、それぞれ変更される。なお、上記のS3005の説明では、移動先計算機SV2が、移動元計算機SV1から、直結ストレージDS1のデータをリードし、外部ストレージES1へデータ移行を行う、としたが、移動先計算機SV2が、移動元計算機SV1に対して直結ストレージDS1から外部ストレージES1へのデータ移行を指示してもよい。なお、移動元計算機デステージ要求2011が移動元計算機に送られことを妨げない。
移動先計算機SV2のCPU11bは、デステージ処理2を完了すると、移動元計算機デステージ応答2012を管理端末4へ送信し、移行先決定テーブル47(図21A)のデータをクリアする。図6は、この時点での計算機システムの状態を示している。
最後に、管理端末4が移動元計算機デステージ応答2012を受信すると、管理端末4のCPU11cは、VM移動プログラム52に基づき、VMテーブル62(図10B)を変更する。すなわち、VMテーブル62の移動対象となったVMに該当するレコードのエントリ632を、移動先計算機1のID(SV1)に変更する。
なお、VM移動の理由が、例えば計画的な保守の場合、管理者は、VMを移動先計算に移動した後、移動元計算機に再移動する可能性が高い。この場合、そのVMのデータを移動元計算機の直結ストレージ2に残しておき、かつデステージ処理2を実行しないようにすると、移動時のデータ移行に要する時間を短縮でき、かつ再移動時のデータ移行を不要化できる。本明細書では、このような動作モードを「高速再移動モード」と呼ぶ。この場合、VM移動画面2200に、管理者が高速再移動モードでの動作を指示するためのチェックボックスが追加される。
また、図29で説明された直結ストレージ間移行処理のS2906にて、CPU11bは、S2901で選択された仮想ページに割り当てられた、移動先計算機の実ページを暫定的に利用不可とする事を移動元計算機に要求する。そして、S2907にて、CPU11bは、マッピングテーブル44bのレコードのうち、S2901で選択された仮想ページに対応するレコードを更新する前に、そのレコードの内容を主メモリ21bに退避する。そのレコードの内容は、例えば、マッピングテーブル44b(図8B)に追加されたエントリ447に退避されてもよい。そして、VMが移動元計算機に再移動する時、エントリ447に退避された内容に従って、S2901で選択された仮想ページと、その仮想ページに元々割り当てられていた実ページ(移動元計算機の直結ストレージ2内の実ページ)との対応関係を回復する。
以上説明したように、既述の実施形態に係る計算機システムによれば、VMが、第1のストレージシステムから第2のストレージシステムに移動された際、移動先のストレージシステムは、自身のVMのデータも含めて、移動元ストレージシステムのVMのデータを移動先ストレージシステムの階層化された記憶領域に格納するため、VMが複数の計算機間を移動しても、複数の計算機に対するストレージの階層化制御の品質を維持し、計算機システムにおけるデータ管理を向上させることができる。
次に、本発明の第2の実施形態について、図31及び図32を用いて、第1の実施形態と相違する部分に限って説明する。第2の実施形態では、計算機システムの共有ストレージに外部ストレージES2が増設された時(図31)、計算機SV1又は計算機SV2のCPU11が、ストレージ制御プログラム38に基づいて、以前から存在していた外部ストレージ3のデータを増設された外部ストレージ3へ移行することで、性能及び容量を拡張する。
まず、図31を用いて、本実施形態におけるシステムの動作例を説明する。計算機SV1にはVM1が動作している。VM1は仮想LU(VL1)へアクセスする。仮想LU(VL1)は、少なくとも、VP11、VP12、及びVP13から構成される。直結ストレージDS1は計算機SV1に直結されており、計算機SV1に実LU(RL1)を提供する。実LU(RL1)は、少なくとも、実ページRP11から構成される。外部ストレージES1は、ネットワーク5を介して計算機SV1に実LU(RL3)を提供する。実LU(RL3)は、少なくとも、実ページRP31及びRP32から構成される。仮想ページVP11には実ページRP11が、仮想ページVP12には実ページRP31が、仮想ページVP13には実ページRP32がそれぞれ割り当てられている。
他方、計算機SV2ではVM2が動作する。VM2は仮想LU(VL2)へアクセスする。仮想LU(VL2)は、少なくとも、花王ページVP21及びVP22から構成される。直結ストレージDS2は計算機SV2に直結されており、計算機SV2に実LU(RL2)を提供する。実LU(RL2)は、少なくとも、実ページRP21から構成される。外部ストレージES1は、ネットワーク5を介して計算機SV2に実LU(RL4)を提供する。実LU(RL4)は、少なくとも実ページRP41から構成される。仮想ページVP21には実ページRP41が、仮想ページVP22には実ページRP21がそれぞれ割り当てられている。
管理者が、IDがES2である外部ストレージ3をネットワーク5に接続したものとする。外部ストレージES2は、ネットワーク5を介して計算機SV1にIDがRL5である実LUを提供する。実LU(RL5)は、少なくとも、IDがRP51である実ページ)から構成される。実LU(RL3)の空き容量が少なくなった、或いは、実LU(RL3)へのアクセス頻度が高く外部ストレージES1の性能が低下したといった理由により、実LU(RL3)を構成する実ページであるRP32のデータが実ページRP51に移行される。この移行を、外部ストレージ間移行という。そして、仮想ページVP13には、実ページRP51が再割り当てされて、仮想ページVP13に対する実ページRP32の割り当ては解除される。
図32は、計算機SV1のCPU11aが分散制御プログラム32に基づいて実行する外部ストレージ間でのデータ移行処理を実行するフローチャートの例である。本処理は、管理者が外部ストレージ追加画面1110を用いて、2つ目以降の外部ストレージES1をシステムに追加した時に実行される。まず、CPU11aは、追加された外部ストレージES2にLUの作成を要求し、外部ストレージページテーブル46a(図9)にレコードを追加する(S3201)。
次に、CPU11は、既に存在していた外部ストレージES1の実LUのうち、追加された外部ストレージES2へデータ移行する実LUを選択する(S3202)。次に、CPU11aは、S3202で選択された実LUを構成する実ページのうち、データ移行する実ページを選択する(S3203)。CPU11aは、S3201で作成された実LUの実ページのうち、未割当の実ページを選択する(S3204)。CPU11aは、S3203で選択された実ページのデータをReadし、S3204で選択された実ページへWriteし(S3205)、S3203で選択された実ページのデータを初期化する。そして、CPU11aは、マッピングテーブル44a及び外部ストレージページテーブル46aを更新する(S3206)。CPU11aは、S3203からS3206までの処理を全ページに対して実行する(S3207)。さらに、CPU11aは、S3201からS3207までの処理を全ての実LUに対して実行する(S3208)。
次に、本発明の第3の実施形態について、図33を用いて、第1の実施形態と相違する部分について説明する。第3の実施形態では、高速だが高価な記憶媒体を備えるストレージが計算機1に直結されるのではなく、計算機1に内蔵されることを特徴としている。
図33は、計算機1の変形例を示すブロック図である。計算機1は、CPU11、主メモリ12、NW IF13、HDD14、内部ストレージ6及びバス等の通信線21から構成される。内部ストレージ3は、計算機1に内蔵されている以外は第1の実施形態の直結ストレージ2と同様である。
次に、本発明の第4の実施形態について、図34及び図35を用いて、第1一の実施形態と相違する部分について説明する。第4の実施形態では、第1の実施例において、計算機が実行するとして説明したプログラムを直結ストレージ2のCPU11が実行する。
図34は、本実施形態のシステムの構成例を示す。このシステムの構成要素は第1の実施形態と同じであるが、直結ストレージ2が通信線22によってネットワーク5と接続される点のみ、第1の実施形態と異なる。
図35は、本実施形態の計算機1及び直結ストレージ22の構成例を示す。計算機1のCPU11は、アプリケーションプログラム36、及び、VM制御プログラム37を実行する。そして、CPU11がアプリケーションプログラム36に基づき仮想LUにデータを書き込む時、CPU11はVM制御プログラム37に基づき、そのデータの書き込み要求を直結ストレージ2へ送信する。他方、CPU11がアプリケーションプログラム36に基づき仮想LUからデータを読み込む時、CPU11はVM制御プログラム37に基づき、そのデータの読み込み要求を直結ストレージ2へ送信する。
直結ストレージ2は、CPU11、主メモリ12、NW IF13、デバイスIF15、通信線21及び1つ以上の不揮発性メモリ18から構成される。不揮発性メモリは、例えば、フラッシュメモリ、PRAM(Phase change RAM)、SSDであってもよい。直結ストレージ2のCPU11は、ストレージ制御プログラム38を実行する。また、直結ストレージ2の主メモリ12は、VMテーブル41、仮想LUテーブル42、外部ストレージテーブル43、マッピングテーブル44、直結ストレージページテーブル45、外部ストレージページテーブル46及び移行先決定テーブル47等のテーブルが格納される。
直結ストレージ2のCPU11は、ストレージ制御プログラム38に基づき、第1の実施形態において計算機1のCPU11が実行した各種処理を実行する。
本発明は、計算機の仮想化技術とストレージの階層化技術とを利用した計算機システムと、そのデータ格納制御方法を提供するものである。
1:計算機1
2:直結ストレージ
3:外部ストレージ
4:管理端末
5:ネットワーク

Claims (3)

  1. 第1の記憶装置に直結された第1の計算機と、
    第2の記憶装置に直結された第2の計算機と、
    前記第1の計算機及び前記第2の計算機にネットワークを介して接続された外部ストレージ装置と、を備える計算機システムであって、
    前記第1の記憶装置及び前記第2の記憶装置の性能は、前記外部ストレージ装置の性能よりも高く、
    前記第1の計算機は第1の仮想領域を提供するように構成され、当該第1の仮想領域は、各々のアクセス頻度に基づいてそれぞれに前記第1の記憶装置の記憶領域と前記外部ストレージ装置の記憶領域の何れかが割り当てられた複数の仮想ページを含み、
    前記第2の計算機は第2の仮想領域を提供するように構成され、当該第2の仮想領域は、各々のアクセス頻度に基づいてそれぞれに前記第2の記憶装置の記憶領域と前記外部ストレージ装置の記憶領域の何れかが割り当てられた複数の仮想ページ含み、
    前記第1の計算機が前記第1の仮想領域を前記第2の計算機に移行させる場合、当該第2の計算機は、前記第1の仮想領域に含まれ、アクセス頻度が第1の値よりも高い第1の仮想ページに格納されているデータの移行先として、前記第2の記憶装置を選択し、
    前記第1の仮想領域に含まれ、アクセス頻度が前記第1の値よりも低い第2の仮想ページに格納されているデータの移行先として、前記外部ストレージ装置を選択し、
    前記第1の仮想ページに格納されているデータの移行先として選択された前記第2の記憶装置に割り当てられた第3の仮想ページのアクセス頻度が、前記第1の値よりも低い場合、前記第2の記憶装置に割り当てられた前記第3の仮想ページに格納されているデータを前記外部ストレージ装置に移行する、
    計算機システム。
  2. 前記第1の仮想領域は、前記第1の計算機によって実行される第1のバーチャルマシンの使用のために設けられ、かつ、前記第2の仮想領域は、前記第2の計算機によって実行される第2のバーチャルマシンの使用のために設けられる、請求項に記載の計算機システム。
  3. 前記第1の計算機は、前記第2の計算機への第1のバーチャルマシンの移行要求に応じて、前記第1の仮想領域を当該第2の計算機に移行するように構成される、請求項に記載の計算機システム。
JP2012532188A 2010-04-30 2010-04-30 計算機システム及びその制御方法 Active JP5684815B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/003103 WO2011135637A1 (en) 2010-04-30 2010-04-30 Computer system and control method thereof

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015005721A Division JP2015111434A (ja) 2015-01-15 2015-01-15 計算機システム及びその制御方法

Publications (2)

Publication Number Publication Date
JP2013517539A JP2013517539A (ja) 2013-05-16
JP5684815B2 true JP5684815B2 (ja) 2015-03-18

Family

ID=43495181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012532188A Active JP5684815B2 (ja) 2010-04-30 2010-04-30 計算機システム及びその制御方法

Country Status (3)

Country Link
US (2) US20110270945A1 (ja)
JP (1) JP5684815B2 (ja)
WO (1) WO2011135637A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436515B2 (en) * 2010-12-29 2016-09-06 Sap Se Tenant virtualization controller for exporting tenant without shifting location of tenant data in a multi-tenancy environment
WO2013019185A1 (en) * 2011-07-29 2013-02-07 Hewlett-Packard Development Company, L.P. Migrating virtual machines
US10359972B2 (en) * 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
JP6007547B2 (ja) * 2012-03-30 2016-10-12 日本電気株式会社 仮想化システム、スイッチコントローラ、ファイバチャネルスイッチ、マイグレーション方法、マイグレーションプログラム
JP5976842B2 (ja) * 2012-04-23 2016-08-24 株式会社日立製作所 計算機システム、及び、計算機システムの仮想サーバ移行制御方法
US9875143B2 (en) 2012-12-07 2018-01-23 Hitachi, Ltd. Computer system, management computer and management method
US9372726B2 (en) * 2013-01-09 2016-06-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
US9239730B2 (en) * 2013-01-11 2016-01-19 Red Hat Israel, Ltd. Managing connections in a distributed virtualization environment
US10031820B2 (en) * 2013-01-17 2018-07-24 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Mirroring high performance and high availablity applications across server computers
KR20140108861A (ko) * 2013-03-04 2014-09-15 삼성전자주식회사 도메인 사이의 메모리 복사를 위한 방법 및 장치
KR102039537B1 (ko) 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
JP6217302B2 (ja) * 2013-10-15 2017-10-25 富士通株式会社 ストレージ管理装置、情報処理システムおよびストレージ管理プログラム
US20160098302A1 (en) * 2014-10-07 2016-04-07 Strato Scale Ltd. Resilient post-copy live migration using eviction to shared storage in a global memory architecture
US9904627B2 (en) * 2015-03-13 2018-02-27 International Business Machines Corporation Controller and method for migrating RDMA memory mappings of a virtual machine
US10055381B2 (en) 2015-03-13 2018-08-21 International Business Machines Corporation Controller and method for migrating RDMA memory mappings of a virtual machine
US9811376B2 (en) * 2015-06-29 2017-11-07 Amazon Technologies, Inc. Virtual machine instance migration using a triangle approach
CN105117274B (zh) * 2015-09-16 2018-09-11 北京百度网讯科技有限公司 虚拟机迁移方法和装置
US9946569B1 (en) * 2016-02-08 2018-04-17 Nutanix, Inc. Virtual machine bring-up with on-demand processing of storage requests
US10108328B2 (en) 2016-05-20 2018-10-23 Vmware, Inc. Method for linking selectable parameters within a graphical user interface
US10108447B2 (en) 2016-08-30 2018-10-23 Vmware, Inc. Method for connecting a local virtualization infrastructure with a cloud-based virtualization infrastructure
US10157071B2 (en) * 2016-08-30 2018-12-18 Vmware, Inc. Method for migrating a virtual machine between a local virtualization infrastructure and a cloud-based virtualization infrastructure
US10042578B2 (en) * 2016-11-08 2018-08-07 International Business Machines Corporation Extent migration in multi-tier storage systems
JP6691302B2 (ja) * 2017-01-20 2020-04-28 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
WO2018158808A1 (ja) 2017-02-28 2018-09-07 株式会社日立製作所 情報システム、管理プログラム及び情報システムのプログラム交換方法
US10534559B2 (en) * 2018-02-14 2020-01-14 International Business Machines Corporation Heat-tiered storage system having host awareness
US10467141B1 (en) * 2018-06-18 2019-11-05 International Business Machines Corporation Process data caching through iterative feedback

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3252464B2 (ja) * 1992-08-26 2002-02-04 富士通株式会社 仮想計算機システム
US7007183B2 (en) * 2002-12-09 2006-02-28 International Business Machines Corporation Power conservation by turning off power supply to unallocated resources in partitioned data processing systems
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
JP2006072591A (ja) * 2004-09-01 2006-03-16 Hitachi Ltd 仮想計算機制御方法
JP4733399B2 (ja) 2005-01-28 2011-07-27 株式会社日立製作所 計算機システム、計算機、ストレージ装置及び管理端末
JP4741304B2 (ja) * 2005-07-11 2011-08-03 株式会社日立製作所 データマイグレーション方法又はデータマイグレーションシステム
US7422575B2 (en) * 2006-08-01 2008-09-09 Dana Dallabetta Lotion applicator
JP4235220B2 (ja) * 2006-10-25 2009-03-11 株式会社日立製作所 計算機システムおよびデータ移行方法
US8296337B2 (en) * 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
JP4295783B2 (ja) 2006-12-13 2009-07-15 株式会社日立製作所 計算機、仮想デバイスの制御方法
EP1962192A1 (en) * 2007-02-21 2008-08-27 Deutsche Telekom AG Method and system for the transparent migration of virtual machine storage
JP5246388B2 (ja) 2007-03-08 2013-07-24 日本電気株式会社 仮想装置構成システム、及びその方法
JP4400653B2 (ja) 2007-06-11 2010-01-20 株式会社日立製作所 情報システム、および、情報システムの情報保存方法
US7949637B1 (en) * 2007-06-27 2011-05-24 Emc Corporation Storage management for fine grained tiered storage with thin provisioning
US8239646B2 (en) * 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
JP5052278B2 (ja) * 2007-09-28 2012-10-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 記憶装置を制御する装置及び方法
JP4871850B2 (ja) 2007-12-04 2012-02-08 株式会社日立製作所 仮想計算機システム及び仮想計算機移行制御方法
US20090204718A1 (en) * 2008-02-08 2009-08-13 Lawton Kevin P Using memory equivalency across compute clouds for accelerated virtual memory migration and memory de-duplication
KR101478619B1 (ko) * 2008-02-27 2015-01-06 삼성전자주식회사 가상화 기술을 이용한 데이터 입출력 방법 및 장치
JP4577384B2 (ja) 2008-03-14 2010-11-10 日本電気株式会社 管理マシン、管理システム、管理プログラム、および、管理方法
JP5186982B2 (ja) 2008-04-02 2013-04-24 富士通株式会社 データ管理方法及びスイッチ装置
US8307177B2 (en) * 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
US20120030306A1 (en) * 2009-04-28 2012-02-02 Nobuharu Kami Rapid movement system for virtual devices in a computing system, management device, and method and program therefor
US8370560B2 (en) * 2009-11-16 2013-02-05 International Business Machines Corporation Symmetric live migration of virtual machines
US8560628B2 (en) * 2011-01-11 2013-10-15 International Business Machines Corporation Supporting autonomous live partition mobility during a cluster split-brained condition

Also Published As

Publication number Publication date
JP2013517539A (ja) 2013-05-16
US9785381B2 (en) 2017-10-10
WO2011135637A1 (en) 2011-11-03
US20110270945A1 (en) 2011-11-03
US20150317101A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
JP5684815B2 (ja) 計算機システム及びその制御方法
JP5749803B2 (ja) 情報記憶システム及びストレージシステム管理方法
JP4814119B2 (ja) 計算機システム、ストレージ管理サーバ、及びデータ移行方法
US8639876B2 (en) Extent allocation in thinly provisioned storage environment
JP5685676B2 (ja) 計算機システム及びデータ管理方法
US7831792B2 (en) Computer system, data migration method and storage management server
US7966470B2 (en) Apparatus and method for managing logical volume in distributed storage systems
US20170177224A1 (en) Dynamic storage transitions employing tiered range volumes
WO2012085975A1 (en) Storage system comprising multiple storage apparatuses with both storage virtualization function and capacity virtualization function
WO2014155555A1 (ja) 管理システム及び管理プログラム
US10789007B2 (en) Information processing system, management device, and control method
WO2014108933A1 (en) Resource management system and resource management method of a computer system
US20150006818A1 (en) Data access method and computer-readable storage medium storing computer program
US9524251B2 (en) Storage system, virtualization control apparatus, information processing apparatus, and method for controlling storage system
WO2016013075A1 (ja) ストレージ、計算機およびその制御方法
JP2015111434A (ja) 計算機システム及びその制御方法
US11201788B2 (en) Distributed computing system and resource allocation method
US11340820B2 (en) Storage system and data migration method of migrating group of volume and logical resources of the volume
WO2017085792A1 (ja) ストレージシステム、及びストレージシステムの制御方法
JP6019169B2 (ja) 情報記憶システム
US11782641B2 (en) Backend aware virtualized storage
US11734045B2 (en) Construction management device, information processing system, and non-transitory computer-readable storage medium
US9652165B2 (en) Storage device and data management method
Bruni et al. DB2 9 for z/OS and Storage Management
WO2018011881A1 (ja) ストレージ装置及び計算機システム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140724

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150115

R150 Certificate of patent or registration of utility model

Ref document number: 5684815

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150