JP4890048B2 - 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法 - Google Patents

記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法 Download PDF

Info

Publication number
JP4890048B2
JP4890048B2 JP2006047799A JP2006047799A JP4890048B2 JP 4890048 B2 JP4890048 B2 JP 4890048B2 JP 2006047799 A JP2006047799 A JP 2006047799A JP 2006047799 A JP2006047799 A JP 2006047799A JP 4890048 B2 JP4890048 B2 JP 4890048B2
Authority
JP
Japan
Prior art keywords
file
migration
storage device
controller
bitmap
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
JP2006047799A
Other languages
English (en)
Other versions
JP2007226596A (ja
JP2007226596A5 (ja
Inventor
暁 室谷
誠一 檜垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006047799A priority Critical patent/JP4890048B2/ja
Priority to US11/412,885 priority patent/US20070204119A1/en
Priority to EP06254559A priority patent/EP1826662A3/en
Publication of JP2007226596A publication Critical patent/JP2007226596A/ja
Publication of JP2007226596A5 publication Critical patent/JP2007226596A5/ja
Application granted granted Critical
Publication of JP4890048B2 publication Critical patent/JP4890048B2/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/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
    • G06F3/0649Lifecycle management
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、記憶制御装置及び記憶制御装置を用いてデータをマイグレートさせる方法に関する。
企業等では、管理すべきデータが日々増大するが、一般的に、生成後一定時間の経過したデータは、その使用頻度が低下する。データの価値は、時間の経過につれて減少するため、利用価値の少なくなったデータは、高速な記憶装置から低速な記憶装置に移されるべきである。高速な記憶装置は、一般的に高価であり、使用可能な容量には限りがあるためである。
そこで、ディスク装置上のファイルを、所定のタイミングで、磁気テープ装置に移動させるようにしたデータマイグレーション処理方法も提案されている(特許文献1)。この文献に記載の技術では、マイグレート候補を検索してリストを作成する処理と、作成されたリストに基づいてディスク装置内のファイルを一定量だけ磁気テープ装置に移動させる処理とを分離し、それぞれの処理を非同期で実行させている。
特開2003−15917号公報
前記文献に記載の技術では、ファイル情報を収集する処理とマイグレートを実行する処理とを分離し、マイグレートに要する時間の短縮を図っている。しかし、ボリュームサイズが大きくなればなるほど、ファイルツリーの全検索等を行うために時間がかかり、マイクロプロセッサの負荷も増大する。
特に、例えば、高速な記憶領域と低速な記憶領域とを結合させて一つの仮想ボリュームを構築する場合、この仮想ボリュームのサイズは、通常のボリュームよりも大きくなる。そして、例えば、NAS(Network Attached Storage)と呼ばれるファイルサーバでは、この大サイズの仮想ボリューム上にファイルシステムを構築可能なため、マイグレート処理に過大な負荷がかかるという問題がある。
本発明は、上記問題点に鑑みてなされたもので、その目的は、仮想ボリュームを構成する各論理的記憶デバイスの更新状態を管理することにより、マイグレート対象のデータを比較的簡単に特定し、効率的にデータをマイグレートできるようにした記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法を提供することにある。本発明の他の目的は、仮想ボリュームを構成する各論理的記憶デバイスの更新状態を、キャッシュメモリ上の管理単位で管理することにより、ファイルコントローラに過大な負荷を与えることなく、マイグレート対象のファイルを間接的に特定し、この特定されたファイルのデータを移動させることができるようにした記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法を提供することにある。本発明の更なる目的は、ブロックコントローラ内で非更新ビットマップを生成し、ファイルコントローラ内でマイグレート対象ビットマップを生成し、これら各ビットマップをファイルコントローラ及びブロックコントローラがメモリ間コピーを用いて共有することにより、特別なコマンドを使用せずに、比較的簡単にデータのマイグレートを行うことができる記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法を提供することにある。本発明のさらなる目的は、後述する実施形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明に従う記憶制御装置は、ファイルコントローラ及びブロックコントローラを備えた記憶制御装置であって、各ファイルに関する情報をそれぞれ管理し、上位装置からのファイルアクセス要求をキャッシュメモリを利用して処理するファイル管理部と、第1物理的記憶デバイス上に設けられる第1論理的記憶デバイスと第1物理的記憶デバイスとは異なる性能を有する第2物理的記憶デバイス上に設けられる第2論理的記憶デバイスとを一つの仮想ボリュームとして結合させ、この仮想ボリュームをファイル管理部に提供するボリューム管理部と、第1論理的記憶デバイス及び第2論理的記憶デバイスの更新状態を、所定の管理単位でそれぞれ管理する更新管理部と、管理単位での更新状態及びファイル管理部により管理される各ファイルの情報に基づいて、マイグレート対象となるデータを特定し、この特定されたデータを第1論理的記憶デバイスと第2論理的記憶デバイスとの間で移動させるための指示を発行するマイグレート制御部と、マイグレート制御部からの指示に基づき、第1論理的記憶デバイスと第2論理的記憶デバイスとの間で、管理単位で、データを移動させるマイグレート実行部と、を備える。
本発明の一態様では、管理単位には、キャッシュメモリにおけるデータ管理単位であるセグメント単位が用いられ、更新管理部は、セグメント単位で、各論理的記憶デバイスの更新状態を、更新ビットマップによってそれぞれ管理する。
本発明の一態様では、更新管理部は、所定周期毎に、各論理的記憶デバイス毎に更新ビットマップをそれぞれ作成し、かつ、所定期間内に作成された複数の更新ビットマップの論理和に基づいて、所定期間内に更新されなかった非更新セグメントを検出するための非更新ビットマップを生成し、マイグレート制御部は、非更新ビットマップ及びファイル管理部により管理される各ファイルの情報に基づいて、非更新セグメントに記憶されているデータをマイグレート対象のデータとして特定するためのマイグレート対象ビットマップを作成し、このマイグレート対象ビットマップに基づいて、マイグレート対象のデータを第1論理的記憶デバイスと第2論理的記憶デバイスとの間で移動させるための指示をマイグレート実行部に発行する。
本発明の一態様では、マイグレート制御部は、非更新ビットマップに含まれる非更新セグメントのうち、予め設定されたマイグレーションポリシーに合致する非更新セグメントのみを、マイグレート対象ビットマップに登録する。
本発明の一態様では、マイグレート制御部は、マイグレート対象ビットマップに登録された非更新セグメント毎に、前記指示を発行する。
本発明の一態様では、マイグレート制御部は、マイグレート対象ビットマップを複数のセグメント範囲に分割し、これらセグメント範囲毎に、当該セグメント範囲に含まれている非更新セグメントについて一括して、前記指示を発行する。
本発明の一態様では、ファイルコントローラは、ファイル管理部と、ボリューム管理部及びマイグレート制御部を備えており、ブロックコントローラは、更新管理部及びマイグレート実行部を備えており、非更新ビットマップ及びマイグレート対象ビットマップは、ファイルコントローラとブロックコントローラとにより共有されている。
本発明の一態様では、ファイルコントローラのキャッシュメモリが接続される内部バスとブロックコントローラの他のメモリが接続される内部バスとは、ブリッジ回路を介して結合されており、非更新ビットマップ及びマイグレート対象ビットマップは、内部バスを介したメモリ間コピーを用いることにより、ファイルコントローラとブロックコントローラとに共有されている。
本発明の一態様では、更新管理部は、ファイルコントローラ内に設けられている。
本発明の他の観点に従う記憶制御装置を用いたデータマイグレーション方法は、ファイルコントローラ及びブロックコントローラを備えた記憶制御装置を用いて、データをマイグレートさせるためのデータマイグレーション方法であって、ファイルコントローラによって、第1物理的記憶デバイス上に設けられる第1論理的記憶デバイスと第2物理的記憶デバイス上に設けられる第2論理的記憶デバイスとを一つの仮想ボリュームとして結合させ、この仮想ボリュームを、上位装置からのファイルアクセス要求をキャッシュメモリを利用して処理するためのファイル管理部に提供するステップと、ブロックコントローラによって、各論理的記憶デバイスの更新状態を、所定周期毎に更新ビットマップをそれぞれ作成することにより、キャッシュメモリにおけるデータ管理単位であるセグメント単位で管理するステップと、ブロックコントローラによって、所定期間内に作成された複数の更新ビットマップの論理和に基づいて、所定期間内に更新されなかった非更新セグメントを検出するための非更新ビットマップを生成して記憶させるステップと、非更新ビットマップをファイルコントローラとブロックコントローラとが共有するステップと、ファイルコントローラによって、非更新ビットマップ及びファイル管理部により管理されている各ファイルの情報に基づいて、非更新セグメントに記憶されているファイルをマイグレート対象のデータとして特定するためのマイグレート対象ビットマップを作成して記憶させるステップと、マイグレート対象ビットマップをファイルコントローラとブロックコントローラとが共有するステップと、ファイルコントローラによって、マイグレート対象ビットマップに登録された非更新セグメントに記憶されているファイルへの更新を禁止させるステップと、ファイルコントローラによって、マイグレート対象ビットマップに登録された非更新セグメントに記憶されているデータを第1論理的記憶デバイスから第2論理的記憶デバイスに移動させるための指示を、ブロックコントローラに発行させるステップと、ブロックコントローラによって、発行された指示及びマイグレート対象ビットマップに基づいて、第1論理的記憶デバイスに記憶されたデータを、一つまたは複数のセグメント単位で、第2論理的記憶デバイスに移動させるステップと、ファイルコントローラによって、データの移動が完了した場合には、更新が禁止されたファイルの更新禁止を解除するステップと、を実行する。
本発明のさらに別の観点に従う記憶制御装置は、ファイルアクセスを担当するファイルコントローラと、ブロックアクセスを担当するブロックコントローラと、このブロックコントローラによりそれぞれ使用される高速物理的記憶デバイス及び低速物理的記憶デバイスとを備える。この記憶制御装置では、ファイルコントローラの有するキャッシュメモリとブロックコントローラの有する他のメモリとは、ファイルコントローラの内部バスとブロックコントローラの内部バスとをブリッジ回路を介して結合することにより接続されている。ファイルコントローラは、ファイルシステムと、ボリューム管理部及びマイグレート制御部を備え、ブロックコントローラは、更新管理部及びマイグレート実行部を備えている。
そして、ファイルシステムは、上位装置からのファイルアクセス要求をキャッシュメモリを利用して処理し、ボリューム管理部は、高速物理的記憶デバイス上に設けられる高速論理的記憶デバイスが前半部分に、低速物理的記憶デバイス上に設けられる低速論理的記憶デバイスが後半部分にそれぞれ位置するようにして、高速論理的記憶デバイスと低速論理的記憶デバイスとから一つの仮想ボリュームを生成し、この仮想ボリュームをファイル管理部に提供する。
更新管理部は、高速論理的記憶デバイス及び低速論理的記憶デバイスの更新状態をキャッシュメモリのデータ管理単位であるセグメント毎にそれぞれ管理し、所定周期毎に、各論理的記憶デバイスのそれぞれについて更新ビットマップを生成し、かつ、所定期間内に生成された各更新ビットマップの論理和に基づいて、所定期間内に更新されなかった非更新セグメントを検出するための非更新ビットマップを生成して他のメモリに記憶させ、他のメモリに記憶された非更新ビットマップは、メモリ間コピーによって、他のメモリからキャッシュメモリにコピーされる。
マイグレート制御部は、キャッシュメモリに記憶された非更新ビットマップに含まれる非更新セグメントに記憶されているファイルの属性をファイルシステムに問い合わせることにより、マイグレートさせるべきマイグレート対象セグメントを特定するためのマイグレート対象ビットマップを生成して、このマイグレート対象ビットマップをキャッシュメモリに記憶させ、キャッシュメモリに記憶されたマイグレート対象ビットマップは、メモリ間コピーによって、キャッシュメモリから他のメモリにコピーされる。
マイグレート制御部は、マイグレート対象セグメントに登録された非更新セグメントに記憶されているデータを、高速論理的記憶デバイスから低速記憶デバイスに移動させるための指示をマイグレート実行部に発行し、マイグレート実行部は、発行された指示及びマイグレート対象ビットマップに基づいて、高速論理的記憶デバイスに記憶されたデータを、一つまたは複数のセグメント単位で、低速論理的記憶デバイスに移動させ、ファイルシステムは、マイグレート対象データの移動が完了するまでの間、上位装置から当該マイグレート対象データへの更新を禁止する。
本発明の機能、手段、ステップの全部または一部は、例えば、マイクロコンピュータにより実行されるコンピュータプログラムとして構成可能な場合がある。そして、このコンピュータプログラムは、例えば、ハードディスク、光ディスク、半導体メモリ等の記憶媒体に固定して配布することができる。または、コンピュータプログラムをインターネット等の通信ネットワークを介して、配信することもできる。
以下、図面に基づき、本発明の実施の形態を説明する。図1は、本実施形態の全体概念を示す説明図である。この記憶制御装置1は、例えば、「ファイルコントローラ」としてのNAS制御部2と、「ブロックコントローラ」としてのストレージ制御部3と、記憶部4とを備えて構成される。
NAS制御部2は、例えば、第1メモリM1と、非更新ビットマップ2Aと、マイグレート対象ビットマップ2Bと、ファイル管理部2Cと、マイグレート制御部2D及びボリューム管理部2Eを備えて構成することができる。
第1メモリM1は、ストレージ制御部3内の第2メモリM2と接続されており、コマンド等を用いずに、メモリ間コピーによって記憶内容を転送可能となっている。第1メモリM1には、非更新ビットマップ2A及びマイグレート対象ビットマップ2Bがそれぞれ記憶される。ここで、非更新ビットマップ2Aは、ストレージ制御部3によって生成され、第1メモリM1にも記憶される。マイグレート対象ビットマップ2Bは、NAS制御部2によって生成され、第2メモリM2にも記憶される。各ビットマップ2A,2Bについては、後述する。
ファイル管理部2Cは、「ファイルシステム」に該当する。ファイル管理部2Cは、「上位装置」としてのクライアントマシン6から発行されたファイルアクセス要求を処理するものである。なお、クライアントマシン6は、ホストコンピュータ(「ホスト」と略記する場合がある)と呼ぶこともできる。
マイグレート制御部2Dは、それぞれ異なるタイミングで作成された複数の非更新ビットマップ2Aに基づいて、一度も更新されていない非更新セグメントを特定し、マイグレート対象ビットマップ2Bを作成する。マイグレート制御部2Dは、非更新セグメントに記憶されているファイルの属性情報をファイル管理部2Cに問合せ、マイグレートさせるべきセグメントを決定する。そして、マイグレート制御部2Dは、決定されたセグメントについてのマイグレート実行を、ストレージ制御部3に要求する。
ボリューム管理部2Eは、高速領域5A及び低速領域5Bを有する仮想ボリューム5を生成し、ファイル管理部2Cに提供するものである。仮想ボリューム5の構成は、さらに後述する。
ストレージ制御部3は、例えば、第2メモリM2と、非更新ビットマップ3Aと、マイグレート対象ビットマップ3Bと、入出力処理部(図中「I/O処理部」)3Cと、マイグレート実行部3D及び更新管理部3Eを備えて構成することができる。
第2メモリM2は、例えば、他のキャッシュメモリとして構成される。NAS制御部2の内部バスとストレージ制御部3の内部バスとは接続されているため、第2メモリM2と第1メモリM1との間で情報を共有することができる。第2メモリM2には、非更新ビットマップ3A及びマイグレート対象ビットマップ3Bが記憶されている。上述のように、第2メモリM2内の非更新ビットマップ3Aと第1メモリM1内の非更新ビットマップ2Aとは同一内容であり、同様に、第2メモリM2内のマイグレート対象ビットマップ3Bと第1メモリM1内のマイグレート対象ビットマップ2Bとは同一内容である。
入出力処理部3Cは、NAS制御部2からの要求に従って、記憶部4内のボリューム4Aまたは4Bにアクセスすることにより、所定のデータを各ボリューム4A,4Bから読み出したり、所定のデータを各ボリューム4A,4Bに書き込んだりする。
マイグレート制御部2Dは、マイグレート対象ビットマップ3Bに基づいて、セグメント単位で、データのマイグレートを実行するものである。データマイグレーション方法については後述する。
更新管理部3Eは、入出力処理部3Cによる仮想ボリューム5へのアクセスに基づいて、即ち、クライアント6による仮想ボリューム5の使用状況に基づいて、各ボリューム4A,4B毎に非更新ビットマップ3Aを作成する。更新管理部3Eは、例えば、毎日所定の時刻に、非更新ビットマップ3Aを作成することができる。また、更新管理部3Eは、所定期間内に作成された非更新ビットマップ3Aのみを第2メモリM2に保存させることができ、所定期間の過ぎた非更新ビットマップ3Aは第2メモリM2内から削除させることもできる。
更新管理部3Eは、例えば、ボリュームレプリケーション機能やスナップショット作成機能に使用されることもできる。また、例えば、NAS制御部2がスナップショット作成を行うような場合、更新管理部3EをNAS制御部2内に設けることもできる。
記憶部4は、例えば、複数のディスクドライブ4C,4Dを備えている。第1のディスクドライブ4Cは、例えば、FC(Fibre Channel)ディスクのような比較的高速のデバイスとして構成される。第2のディスクドライブ4Dは、例えば、ATA(AT Attachment)ディスクのような比較的低速のデバイスとして構成される。この場合、ディスクドライブ4Cの方が、ディスクドライブ4Dよりも高速かつ高性能である。なお、ディスクドライブ4C,4Dは、ハードディスクドライブに限定されない。例えば、半導体メモリドライブ、光ディスクドライブ、光磁気ディスクドライブ等の種々のデバイスを利用することができる。
例えば、一つまたは複数の第1ディスクドライブ4Cの有する記憶領域によって、第1物理的記憶デバイス4Eが生成される。RAID(Redundant Array of Independent Disks)構成のレベルによっても相違するが、複数の記憶領域を集めて冗長化することにより、物理的な記憶デバイス4Eが生成される。この記憶デバイス4Eを、第1物理的記憶デバイス4Eと呼ぶ。そして、例えば、この第1物理的記憶デバイス4Eから一つまたは複数の第1論理的記憶デバイス4Aを生成することができる。
上記同様に、一つまたは複数の第2ディスクドライブ4Dの有する記憶領域によって、第2物理的記憶デバイス4Fが生成される。そして、第2物理的記憶デバイス4Fに基づいて、一つまたは複数の第2論理的記憶デバイス4Bを生成することができる。これらの各論理的記憶デバイス4A,4Bは、論理ボリューム(Logical Unit)とも呼ばれる。
仮想ボリューム5は、第1論理的記憶デバイス4Aと第2論理的記憶デバイス4Bとを仮想的に結合させることにより、構成されている。この仮想化は、ボリューム管理部2Eによって行われる。ファイル管理部2Cは、ボリューム管理部2Eを介して、この仮想ボリューム5の構成を認識することができる。
仮想ボリューム5は、その前半部分に位置する高速領域5Aと、その後半部分に位置する低速領域5Bとに大別される。高速領域5Aは、高速な論理的記憶デバイスである第1論理的記憶デバイス4Aに対応付けられている。低速領域5Bは、低速な論理的記憶デバイスである第2論理的記憶デバイス4Bに対応付けられている。高速領域5Aは、クライアント6によって現在使用されている情報価値の高いデータ群が記憶されており、低速領域5Bには、情報価値の低下したデータ群が記憶されている。
このように、仮想ボリューム5は、それぞれ性能の異なる複数種類の論理的記憶デバイス4A,4Bから構成されているが、クライアント6は、仮想ボリューム5の詳細な構造まで認識することなく、一つのボリュームとして利用可能である。
次に、この記憶制御装置1の動作を説明する。クライアント6から仮想ボリューム5に記憶されている所定のファイルの読出しを要求された場合、NAS制御部2は、論理的記憶デバイス4Aまたは4Bにおける格納先アドレス等を明示して、ストレージ制御部3に所定のファイルの読出しを要求する。ストレージ制御部3の入出力処理部3Cは、所定のファイルに対応するデータを論理的記憶デバイス4Aまたは4Bのいずれかから読出して、NAS制御部2内の第1メモリM1に記憶させる。
クライアント6から仮想ボリューム5へ所定のファイル(ファイルデータ)の書込みが要求された場合、NAS制御部2は、論理的記憶デバイス4Aの書込み先アドレス等を明示して、ストレージ制御部3に所定のファイルの書込みを要求する。入出力処理部3Cは、ファイルデータを論理的記憶デバイス4Aに記憶させる。
更新管理部3Eは、高速領域5A(即ち、論理的記憶デバイス4A)へのデータ書込みを監視しており、更新されたセグメントの更新フラグを”1”にセットする。セグメントとは、キャッシュメモリ(この例では、第2メモリM2)上でデータを管理するための単位である。更新管理部3Eは、第1論理的記憶デバイス4Aの各セグメント毎に、更新されたか否かを識別するための更新フラグをセットすることにより、更新ビットマップを生成する。同様に、更新管理部3Eは、第2論理的記憶デバイス4Bにおける更新状況を管理することもできる。このように、更新管理部3Eは、例えば、毎日の更新状況を、各論理的記憶デバイス4A,4Bの各セグメント毎にそれぞれ管理する。なお、キャッシュメモリ上のデータ管理単位としては、セグメントに限らず、他のサイズ(ブロック単位等)で管理してもよい。各セグメントは、それぞれ複数のブロックから構成可能である。
例えば、一週間等の所定期間分の更新ビットマップが蓄積されると、更新管理部3Eは、各更新ビットマップのORを演算することにより、所定期間更新されていないセグメントを検出する。ここでは、この所定期間更新されていないセグメントを非更新セグメントと呼ぶ。更新管理部3Eは、各更新ビットマップのOR演算することにより、非更新ビットマップ3Aを生成し、第2メモリM2に記憶させる。この非更新ビットマップ3Aは、メモリ間コピーにより、第1メモリM1にも記憶される。なお、NAS制御部2が、各更新ビットマップに基づいて、非更新ビットマップ2Aを生成し、この非更新ビットマップ2Aを第2メモリM2にコピーさせる構成でもよい。
マイグレート制御部2Dは、第1メモリM1に記憶された非更新ビットマップに基づいて、非更新セグメントに記憶されているデータの属性を、ファイル管理部2Cに問い合わせることができる。ファイル管理部2Cは、問い合わせされた非更新セグメント内に、データの全部または一部が記憶されているファイルを特定し、この特定されたファイルの属性を回答する。属性としては、例えば、ファイルサイズ、ファイルの所有者、参照日時等を挙げることができる。
マイグレート制御部2Dは、非更新セグメントに記憶されているデータ(ファイルデータ)の属性に基づいて、非更新ビットマップ2Aに登録されている各非更新セグメントのうち、マイグレート対象となるセグメントを決定する。例えば、マイグレート制御部2Dは、所定期間更新されていないセグメントであっても、最近参照されているセグメントの場合は、マイグレート対象から除外することができる。
なお、マイグレート制御部2Dは、データの属性を問わずに、全ての非更新セグメントをマイグレート対象として選択することもできる。非更新ビットマップ2Aに登録されている非更新セグメントのうち、いずれの非更新セグメントをマイグレート対象セグメントとして選択するかは、マイグレーションポリシーによって定めることができる。そして、マイグレーションポリシーは、ユーザが自由に定義することもできる。
このようにして、マイグレート制御部2Dにより、マイグレート対象のセグメントを特定したビットマップ2Bが生成される。このマイグレート対象ビットマップ2Bは、第2メモリM2にもコピーされる。
マイグレート実行部3Dは、第2メモリM2内のマイグレート対象ビットマップ3Bに基づいて、マイグレート対象のセグメントを1つずつ、または複数個まとめて、データマイグレーションを実行する。即ち、マイグレート実行部3Dは、マイグレート対象のセグメントに記憶されているデータを、第1論理的記憶デバイス4Aから第2論理的記憶デバイス4Bにコピーする。これにより、仮想ボリューム5において、高速領域5A内のデータが低速領域5Bに移され、高速領域5Aの空き容量が増大する。そして、空き容量の増加した高速領域5A(第1論理的記憶デバイス4A)には、情報価値の高い新たなファイルデータが書き込まれる。
本実施形態は、このように構成されるため、以下の効果を奏する。本実施形態では、ファイルそのものをファイル単位で直接移動させるのではなく、論理的記憶デバイス4A,4Bに記憶されているファイルデータをセグメント単位で移動させ、結果的に、擬似的にファイル単位の移動を実現する。従って、従来技術のように、ファイルツリーの全てを検索してマイグレート対象を特定し、ファイル毎に移動させる必要がない。これにより、NAS制御部2がマイグレート対象を特定するための負荷を軽減することができ、NAS制御部2のコンピュータ資源を本来のNASサービスに割り当てることができ、使い勝手も向上する。
本実施形態では、セグメント単位で移動の可否を判断し、セグメント単位でデータを移動させるため、移動前後の整合性を維持するための更新排他制御を行う期間を短くすることができる。従って、移動対象のデータを速やかに利用することができ、使い勝手が向上する。
本実施形態では、マイグレート対象のデータを特定するための処理を、ストレージ制御部3による非更新セグメントを検出する処理と、NAS制御部2による非更新セグメントの中からマイグレート対象セグメントを選択する処理との2つの処理に分割し、これら非更新セグメントの検出処理とマイグレート対象セグメントの選択処理とを、非同期で実行させる構成とした。従って、NAS制御部2とストレージ制御部3とが協働で、マイグレート対象の特定処理を行うことができ、NAS制御部2に負荷が集中するのを防止することができる。
本実施形態では、NAS制御部2は、マイグレート対象のデータを特定し、実際のデータマイグレーションはストレージ制御部3で実行する。従って、NAS制御部2がファイルのデータを読み出して、この読出したデータを移動先の論理的記憶デバイス4Bに書き込む必要がない。即ち、データマイグレーションは、NAS制御部2を経由することなく、ストレージ制御部3内で実行される。これにより、データマイグレーションに関するNAS制御部2の負荷をより一層低減することができる。
本実施形態では、スナップショット作成等に利用される既存の更新管理部3Eを用いて、マイグレート対象を特定するための前処理(非更新セグメントの検出処理)を行う構成とした。従って、ストレージ制御部3の構成を大幅に変更することなく、セグメント単位のデータマイグレーションを実現することができる。
本実施形態では、NAS制御部2内の第1メモリM1とストレージ制御部3内の第2メモリM2との間で、非更新ビットマップ2A,3A及びマイグレート対象ビットマップ2B,3Bを共有する構成とした。従って、例えば、コマンドを用いて情報交換を行う必要がなく、情報共有のための構成を簡素化することができる。そして、各制御部2,3に負担をかけずに、非更新ビットマップ2A,3A及びマイグレート対象ビットマップ2B,3Bを共有することができる。
本実施形態では、各更新ビットマップはストレージ制御部3内で保持し、これら各更新ビットマップから生成される非更新ビットマップ3A(2A)を、NAS制御部2と共有する構成とした。従って、第1メモリM1の記憶領域を効率的に使用できる。なお、NAS制御部2内で非更新ビットマップ2Aを作成する構成でもよい。以下、本実施形態を詳細に説明する。
図2は、記憶制御装置10の全体構成を示す構成説明図である。先に、図1との対応関係を説明すると、図2中の記憶制御装置10は図1中の記憶制御装置1に、図2中のNASノード100は図1中のNAS制御部2に、図2中のストレージコントローラ200は図1中のストレージ制御部3に、図2中の記憶部300は図1中の記憶部4に、図2中のクライアント20は図1中のクライアント6に、それぞれ対応する。
記憶制御装置10は、例えば、NASノード100と、ストレージコントローラ200及び記憶部300を備えて構成される。記憶制御装置10は、例えば、LAN等の通信ネットワークCN1を介して、一つまたは複数のクライアントマシン20と、管理端末30とに接続されている。クライアントマシン20は、記憶制御装置10を利用してファイルの入出力を行うためのコンピュータ装置である。管理端末30は、記憶制御装置10を管理するためのコンピュータ装置である。管理端末30は、例えば、記憶制御装置10の構成変更等を指示したり、記憶制御装置10の各種状態を確認することができる。
NASノード100は、例えば、マイクロプロセッサ(以下、「プロセッサ」)110と、メモリ120と、ネットワークインターフェース(以下、インターフェースを「I/F」と略記する場合がある)部130と、内部バス140と、ブリッジ回路150とを備えて構成される。
プロセッサ110は、所定のコンピュータプログラムを読み込んで、所定の機能を実現するものである。プロセッサ110は、NASとしてのデータ処理サービスを実現するほかに、後述のように、データマイグレーション処理を行う。
メモリ120は、例えば、RAM(Random Access Memory)やフラッシュメモリ等から構成される。メモリ120内には、LVM定義テーブルT1と非更新ビットマップT2及びマイグレート対象ビットマップT3が記憶されている。メモリ120は、プロセッサ110等ともに内部バス140に接続されている。また、メモリ120は、内部バス140及びブリッジ回路150を介して、ストレージコントローラ200の内部バス240にも接続されている。従って、メモリ120は、ストレージコントローラ200内のキャッシュメモリ220にも接続されており、コマンドを用いることなく、各メモリ120,220間で、各種情報T1〜T3を共有可能となっている。
ネットワークI/F部130は、通信ネットワークCN1を介して、各クライアント20や管理端末30と通信を行うためのものである。ブリッジ回路150は、NASノード100の内部バス140とストレージコントローラ200の内部バス240とを接続するための回路である。
ストレージコントローラ200は、例えば、プロセッサ210と、キャッシュメモリ220と、ドライブI/F部230及び内部バス240とを備えて構成される。プロセッサ210は、所定のコンピュータプログラムを読み込んで、所定の機能を実現する。所定の機能としては、ブロック単位のデータの入出力処理や、更新管理処理、マイグレート実行処理等が挙げられる。
キャッシュメモリ220は、クライアント20によって使用されるユーザデータや、各種の制御情報、管理情報を記憶するものである。キャッシュメモリ220には、上述のメモリ120と同様に、LVM定義テーブルT1と非更新ビットマップT2及びマイグレート対象ビットマップT3がそれぞれ記憶されている。
記憶部300は、例えば、ディスクアレイエンクロージャとして構成されるもので、複数のディスクドライブ310,311を備えている。第1の種類のディスクドライブ310は、例えば、FCディスク等のように、比較的高速かつ高性能のドライブである。第2の種類のディスクドライブ311は、例えば、ATAディスク等のように、比較的低速のドライブである。
本実施例では、FCディスク310から構成される論理的記憶デバイス330(図3参照)内に、新しいユーザデータを格納し、ATAディスク311から構成される論理的記憶デバイス331(図3参照)内に、情報価値の低下した旧データを保存する。情報価値の低下した旧データを直ちに削除することはできないため、FCディスク310の数よりも多い数のATAディスク311が記憶部300に設けられている。
図3は、NASノード100のソフトウェア構成及び階層記憶の構成を模式的に示す説明図である。NASノード100は、例えば、ファイルシステム(NASのOS)111と、論理ボリュームマネージャ(「LVM」と略記)112及びマイグレートツール113とを備えている。
ファイルシステム111は、ファイル群を管理し、ファイルの共有サービスをクライアント20に提供するものである。LVM112は、仮想ボリューム340を管理するためのものである。マイグレートツール113は、マイグレート制御を行うものである。
本記憶制御装置10の提供する階層記憶について説明する。第1論理的記憶デバイス330と第2論理的記憶デバイス331とを論理的に結合させることにより、仮想的な一つのボリューム340が構成されている。
第1論理的記憶デバイス330は、第1ディスクドライブ310(以下、FCディスク310とも呼ぶ)に由来する。一つまたは複数のFCディスク310の提供する記憶領域をRAID構成に基づいて仮想化することにより、第1物理的記憶デバイス320(図中「FC領域320」)が形成される。この第1物理的記憶デバイス320の全部または一部の記憶領域から、第1論理的記憶デバイス330が生成される。
同様に、第2論理的記憶デバイス331は、第2ディスクドライブ311(以下、ATAディスクとも呼ぶ)に由来する。一つまたは複数のATAディスク311の提供する記憶領域をRAID構成に基づいて仮想化することにより、第2物理的記憶デバイス321(図中「ATA領域321」)が生成される。この第2物理的記憶デバイス321の全部または一部の記憶領域から、第2論理的記憶デバイス331が生成される。なお、以下の説明では、各論理的記憶デバイス330,331を論理ボリューム330,331と呼ぶ場合がある。
上述の通り、仮想ボリューム340は、その前半部分に論理ボリューム330を、その後半部分に論理ボリューム331を配置するようにして、構成されている。前半、後半とは、仮想ボリューム340の先頭アドレスに近い領域を前半部分と呼び、前半部分に続く他の領域を後半部分と呼ぶ。
図4は、仮想ボリューム340内の構成を模式的に示す説明図である。上述の通り、仮想ボリューム340の前半部分には、FCディスク310に由来する論理ボリューム330が対応付けられている。この論理ボリューム330には、iノード管理領域330A及び第1ファイルデータ領域330Bが設けられている。iノード管理領域330Aの詳細は、さらに後述する。第1ファイルデータ領域330Bは、ユーザデータを記憶するための記憶領域である。第1ファイルデータ領域330Bには、クライアント20によって使用されている比較的情報価値の高いユーザデータが記憶されている。
仮想ボリューム340の後半部分には、ATAディスク311に由来する論理ボリューム331が対応付けられている。この論理ボリューム331には、第2ファイルデータ領域331Aが設けられている。第2ファイルデータ領域331Aには、情報価値の低下したユーザデータが保存されている。
第1ファイルデータ領域330Bの先頭アドレスをSA1、第2ファイルデータ領域331Aの先頭アドレスをSA2とする。LVM112は、仮想ボリューム340の構成を認識しており、仮想ボリューム340のアドレス空間が、実際にはどの論理ボリューム330,331のどのアドレス空間に割り当てられているのかを把握している。LVM112は、仮想ボリューム340内の前半部分のアドレス空間と後半部分のアドレス空間が連続するように、論理ブロックアドレス(LBA)やセグメント番号を管理する。なお、LVM112は、スナップショット機能等を備えることもできる。スナップショットとは、指示された時点における記憶内容の静止化イメージである。
図5は、iノード管理領域330A等の構成を示す説明図である。iノード管理領域330Aには、仮想ボリューム340内に記憶されたファイル群を管理するための情報が記憶されている。例えば、iノード管理領域330Aには、iノード番号と、他のiノード情報と、ATAフラグと、セグメント番号(図中では、番号を「#」で表記する場合がある)と、オフセットアドレスが対応付けられて記憶されている。
iノード番号とは、ファイルシステム上でファイルを識別するための番号である。仮想ボリューム340内の各ファイル(ユーザデータ)は、iノード番号によって、その格納位置が特定される。
他のiノード情報とは、各iノード番号で特定される各ファイル(ディレクトリを含む場合もある)の属性を示す情報である。ファイルの属性情報としては、例えば、所有者名、ファイルサイズ、アクセスタイム等を挙げることができる。
ATAフラグとは、そのiノード番号で特定されるファイルが、各論理ボリューム330,331のいずれに記憶されているかを識別するための情報である。本実施例では、データマイグレーションが実行されると、高速な論理ボリューム330内のデータは、低速な論理ボリューム331に移される。ファイルデータが論理ボリューム330に記憶されている場合、そのATAフラグには”0”がセットされる。ファイルデータが論理ボリューム331に記憶されている場合、そのATAフラグには”1”がセットされる。従って、ATAフラグは、データ格納先の論理ボリュームを特定する役割と、マイグレートの実行の有無を識別する役割を担う。
セグメント番号及びオフセットアドレスは、iノード番号で特定されたファイルの格納先を示すためのアドレス情報である。本実施例では、ATAフラグとセグメント番号及びオフセットアドレスによって、ファイルデータの格納先を特定する。上述のように、ATAフラグの値によって、ファイルデータが格納されている論理ボリュームを特定することができる。そして、セグメント番号とオフセットアドレスによって、その論理ボリュームのどこにファイルデータが格納されているかを特定することができる。
なお、iノード管理領域330Aで管理されるセグメント番号と、各ビットマップT2,T3,T4のセグメント番号とは完全に一致している。即ち、NASノード100で管理するセグメント番号と、ストレージコントローラ200で管理するセグメント番号とは一致しており、NASノード100からストレージコントローラ200にセグメント番号等を通知するだけで、セグメント単位のデータ移動を行えるようになっている。
セグメント番号にセグメントサイズ(例えば、1MB)を乗算した値が、ATAフラグで示された論理ボリューム内での格納先を示す。図5に示す例では、iノード番号”2”のルートディレクトリは、ATAフラグが”0”、セグメント番号が”000001h”、セグメントサイズが1MB、オフセットアドレスが”aa”であるから、このルートディレクトリは、論理ボリューム330内のセグメント000001hの先頭からaa分だけオフセットした位置を先頭アドレスとして、記憶されていることになる。即ち、このルートディレクトリは、第1ファイルデータ領域330Bに記憶されている。
同様に、iノード番号”100”を有する”/usr/dir1/file1.txt”は、ATAフラグが”0”、セグメント番号が”000025h”、オフセットアドレスが”dd”であるから、このファイルのデータは、第1ファイルデータ領域330Bの先頭アドレスSA1から、1MB×25+ddだけ離れた箇所に記憶されている。このファイル”/usr/dir1/file1.txt”を論理ボリューム330から論理ボリューム331に移動させる場合、このファイルのATAフラグには”1”がセットされる。また、このファイルのセグメント番号及びオフセットアドレスは、コピー先のセグメント番号及びオフセットアドレスに、それぞれ変更される。
論理ボリューム331の先頭アドレスは、SA2である。従って、第2ファイルデータ領域331A内では、SA2+セグメント番号×セグメントサイズ+オフセットアドレスによって、格納先が特定される。
図6は、LVM定義テーブルT1の構成を示す説明図である。LVM定義テーブルT1は、仮想ボリューム340を管理するためのものである。上述のように、NASノード100及びストレージコントローラ200は、同一内容のLVM定義テーブルT1をそれぞれ保持している。LVM定義テーブルT1は、例えば、FC領域管理テーブルT1AとATA領域管理テーブルT1Bとを備えて構成される。図6中、ファイルシステム111を「FS」と略記する。
FC領域管理テーブルT1Aは、仮想ボリューム340を構成するFC領域を管理するためのテーブルである。このテーブルT1Aは、例えば、ファイルシステム111が認識するLUN(Logical Unit Number)と、NASノード100が認識するFC領域を識別するための情報と、NASノード100が認識するFC領域上のLUNと、ストレージコントローラ200が認識するFC領域上のLUNとを対応付けることにより、構成されている。
ファイルシステム111が認識するLUNとは、仮想ボリューム340に設定されているLUNである。図3では一つの仮想ボリューム340のみを示しているが、本実施例では、複数の仮想ボリューム340を設けることができる。
NASノード100が認識するFC領域を識別するための情報とは、仮想ボリューム340におけるFC領域部分、即ち、論理ボリューム330に対応付けられている前半部分を識別するための情報である。
NASノード100が認識するFC領域上のLUNとは、仮想ボリューム340の前半部分を構成するFC領域に対応付けられている論理ボリューム330にアクセスするための情報である。論理ボリューム330,331は、それぞれ2種類のLUNを備える。一つのLUNは、NASノード100から認識される値であり、他の一つは、ストレージコントローラ200から認識される値である。NASノード100が認識するFC領域上のLUNは、例えば、”c#t#d#”の形式で表現される。”c#”は、ドライブI/Fの番号を示し、”t#”は、SCSI(Small Computer System Interface)ターゲット番号を示す。”d#”は、LUNの値を示す。
ストレージコントローラ200が認識するFC領域上のLUNは、上述のように、ストレージコントローラ200内において使用されるLUNを示す。
ATA領域管理テーブルT1Bは、仮想ボリューム340を構成するATA領域を管理するためのテーブルである。このATA領域管理テーブルT1Bも、上述のFC領域管理テーブルT1Aと同様に、構成されている。即ち、ATA領域管理テーブルT1Bは、例えば、ファイルシステム111が認識するLUNと、NASノード100が認識するATA領域を識別するための情報と、NASノード100が認識するATA領域上のLUNと、ストレージコントローラ200が認識するATA領域上のLUNとを対応付けることにより、構成されている。
LVM定義テーブルT1の構成から明らかなように、本実施例の仮想ボリューム340は、そのFC領域及びATA領域の構成を変更可能となっている。即ち、仮想ボリューム340には、その前半部分のFC領域に、FCディスク310にそれぞれ由来する複数の論理ボリューム330を対応付けることができる。また、仮想ボリュームの後半部分のATA領域にも、ATAディスク311にそれぞれ由来する複数の論理ボリューム331を対応付けることができる。
つまり、後述の実施例に示すように、複数の論理ボリューム330を結合して、仮想ボリューム340内のFC領域を拡張することができる。また、複数の論理ボリューム331を結合して、仮想ボリューム340内のATA領域を拡張することもできる。
FC領域及びATA領域のサイズを拡張する場合、それぞれの領域内で、セグメント番号が連続するように、セグメント番号が管理される。即ち、ある論理ボリューム330(1)と別の論理ボリューム330(2)とを結合させて仮想ボリューム340内のFC領域を構成する場合、論理ボリューム330(1)の終端セグメント番号の次の値を、論理ボリューム330(2)の先頭セグメント番号とする。
FC領域内及びATA領域内で、セグメント番号がそれぞれ連続していればよく、FC領域とATA領域との間で、セグメント番号が連続している必要はない。ビットマップT2〜T3も、各領域単位でそれぞれ管理される。
次に、記憶制御装置10の動作について説明する。まず、図7は、非更新ビットマップT2を生成するための処理を示すフローチャートである。この処理は、ストレージコントローラ200によって実行される。なお、図中ではステップを「S」と略記する。また、各フローチャートは、本発明の理解及び実施に必要な程度で処理の概要を示しており、実際のプログラムとは相違する。
図8は、図7に示す処理の流れを模式的に示す説明図である。以下、図7及び図8を適宜参照しながら、非更新ビットマップ生成処理を説明する。ストレージコントローラ200は、所定の周期で(例えば、毎日)、仮想ボリューム340の更新状態を管理する更新ビットマップT4を作成する(S1)。
この更新ビットマップT4は、FC領域及びATA領域内のセグメント毎に、”1”または”0”の値をセットすることにより、生成される。更新フラグに”1”がセットされた場合は、そのセグメントが更新されたことを示す。更新フラグに”0”がセットされている場合は、そのセグメントが更新されていないことを示す。ストレージコントローラ200は、クライアント20によって更新されたセグメントについて、更新フラグを”1”にセットする。
このようにして作成された更新ビットマップT4は、キャッシュメモリ220内に記憶される(S2)。図8において、符号T4に添えられた()内の数字は、作成の順番(作成日)を示す。ストレージコントローラ200は、所定期間であるn日間が経過すると、このn日間に作成された各更新ビットマップT4(1)〜T4(n)の各セグメント毎にそれぞれOR演算を行い、非更新ビットマップT2を作成する(S3)。
非更新ビットマップT2では、あるセグメントがn日間内に1回でも更新されている場合、そのセグメントの非更新フラグには”0”がセットされる。別のセグメントがn日間内に1回も更新されなかった場合、そのセグメントの非更新フラグには”1”がセットされる。
このようにして生成された非更新ビットマップT2は、キャッシュメモリ220に記憶され、そして、キャッシュメモリ220からNASノード100内のメモリ120にもコピーされる(S4)。ストレージコントローラ200は、n+1日間以上経過した古い更新ビットマップT4をキャッシュメモリ220から削除する(S5)。
図8を参照する。詳細は別のフローチャートと共に説明するが、マイグレートツール113は、メモリ120に記憶された非更新ビットマップT2に基づいて、非更新セグメントに記憶されているデータの属性をファイルシステム111に問い合わせる。マイグレートツール113は、データの属性が予め設定されたポリシー113Aに合致するか否かを判断する。
マイグレートツール113は、ポリシー113Aに合致する非更新セグメントをマイグレート対象のセグメントとして選択し、このマイグレート対象のセグメントに””1”をセットする。このようにして、マイグレート対象ビットマップT3が生成され、メモリ120に記憶される。そして、このマイグレート対象ビットマップT3は、メモリ120からキャッシュメモリ220にコピーされる。
図9は、マイグレーションポリシー113Aを設定するために使用されるマイグレーションポリシー設定テーブルT5の一例を示す説明図である。マイグレーションポリシー設定テーブルT5は、例えば、予め登録されている一つまたは複数のポリシー内容と、各ポリシーを選択するか否かを示す選択フラグとを対応付けることにより構成される。
ポリシーの内容としては、例えば、「n2(n2≦n)日間以上参照されていないファイルを移動させる。」、「アーカイブ対象として予め指定されているファイルを移動させる。」、「ファイルサイズがDS1以下のファイルを移動させる。」、「ファイルサイズがDS2以上のファイルを移動させる。」、「予め指定された特定の所有者のファイルを移動させる。」等を挙げることができる。ポリシーの内容は、予め設定しておくこともできるし、ユーザによる自由な設定を許可することもできる。また、クライアント20または管理端末30からポリシーの内容を設定可能な構成とすることもできる。
ユーザは、マイグレーションポリシー設定テーブルT5に登録されているポリシーの中から、所望のポリシーをいずれか一つまたは複数選択することができる。ユーザにより選択されたポリシーには、その選択フラグに”1”がセットされる。選択されたポリシーを結合することにより、マイグレーションポリシー113Aが生成される。なお、ユーザは、必ずしも一つ以上のポリシーを選択する必要はない。一つもポリシーが選択されなかった場合、非更新ビットマップT2内の全ての非更新セグメントが、データマイグレーションの対象となる。
図10は、仮想ボリューム340内に設けられるファイルツリーに、新たなファイルを追加する場合の処理を示すフローチャートである。クライアント20がファイルの追加を指示すると(S11)、NASノード100のファイルシステム111は、新たに追加されるファイルのためのiノードをiノード管理領域330Aに確保する(S12)。
ファイルシステム111は、新たに追加されるファイルのデータを格納する範囲(記憶領域)を、仮想ボリューム340内のFC領域内に確保する(S13)。即ち、ファイルシステム111は、格納すべきデータのサイズに応じて、仮想ボリューム340の有するFC領域内の空きセグメントまたは使用されているセグメント内の未使用領域を、必要なだけ確保する。
続いて、ファイルシステム111は、ファイルデータを格納する範囲に関する情報(図中、格納先情報と示す)を特定する(S14)。即ち、ファイルシステム111は、ファイルデータが記憶される先頭セグメントの番号とオフセットアドレス及びファイルサイズをそれぞれ特定する。
次に、ファイルシステム111は、S14で特定された格納先情報を仮想ボリューム340上の格納先情報に変換し(S15)、LVM112にファイルデータの格納を指示する(S16)。この格納指示には、仮想ボリューム340におけるデータ格納先の先頭アドレスと、ファイルサイズ及びファイルデータが含まれている。
LVM112は、仮想ボリューム340における格納先情報を、LVM定義テーブルT1を参照して、論理ボリューム330に記憶させるための情報に変換し、ストレージコントローラ200にファイルデータの格納を指示する(S17)。この指示には、格納先の論理ボリューム330を特定する情報と、格納先の論理ボリューム330における格納先先頭アドレスと、ファイルサイズ及びファイルデータが含まれる。
ストレージコントローラ200は、LVM112からの指示を受領すると、LVM112から受け取ったファイルデータを、LVM112から指示された所定の領域に記憶させる(S18)。ストレージコントローラ200は、ファイルデータの記憶されたセグメントについて、更新ビットマップT4の更新フラグを”1”にセットし(S19)、LVM112に処理完了を通知する(S20)。
LVM112は、ストレージコントローラ200からの処理完了を受領すると、ファイルシステム111に処理完了を報告する(S21)。ファイルシステム111は、LVM112からファイルデータの記憶が正常に完了した旨の報告を受け取ると、この新たに書き込まれたファイルデータに関するiノード情報を更新する(S22)。これにより、クライアント20は、ファイルの追加が完了した旨を認識する(S23)。
図11は、仮想ボリューム340内のファイルを更新する場合の処理を示すフローチャートである。ファイル更新の前に、クライアント20は、仮想ボリューム340から対象のファイルデータを読み出し、そのファイルを部分的に書き換える等して、ファイルの更新を指示する。ファイルデータの読出し処理は、ファイルの更新処理から容易に理解されるため、説明を省略する。
クライアント20がファイルの更新を要求すると(S31)、ファイルシステム111は、更新を要求されたファイルのiノード情報に基づいて、ファイルデータの更新範囲を特定する(S32)。以下、ファイルデータ中の更新される範囲のデータを更新データと呼ぶ。ファイルシステム111は、更新データのセグメント番号及びオフセットアドレスを、仮想ボリューム340におけるアドレス情報に変換し(S33)、LVM112に更新データの格納を指示する(S34)。この指示には、仮想ボリュームにおけるアドレス情報とデータサイズ及び更新データが含まれている。
LVM112は、ファイルシステム111からの指示に基づいて、仮想ボリューム340上のアドレス情報を論理ボリューム330におけるアドレス情報に変換し、ストレージコントローラ200に更新データの格納を指示する(S35)。この指示には、論理ボリューム330におけるアドレス情報とデータサイズ及び更新データが含まれる。
ストレージコントローラ200は、LVM112からの指示に従って、論理ボリューム330の指定されたアドレスに更新データを格納させる(S36)。そして、ストレージコントローラ200は、更新データが格納されたセグメントについて、更新ビットマップT4の更新フラグを”1”にセットし(S37)、LVM112に処理完了を通知する(S38)。
LVM112は、ストレージコントローラ200から処理完了を通知されると、ファイルシステム111に処理完了を報告する(S39)。ファイルシステム111は、LVM112からの処理完了報告を受領すると、更新データに関するファイルのiノード情報を更新する(S40)。そして、クライアント20は、ファイルの更新が正常に完了したことを確認する(S41)。
図12は、データマイグレーション処理を示すフローチャートである。この処理は、例えば、一日に一回実行させることができる。まず、データマイグレーションの実施に先立って、マイグレート対象ビットマップT3が生成される(S50)。
即ち、マイグレートツール113は、非更新ビットマップT2及びマイグレーションポリシー113Aに基づいて、非更新セグメントのうちマイグレーションポリシー113Aに合致するセグメントを抽出し、マイグレート対象ビットマップT3を生成する。マイグレート対象ビットマップT3を生成する際に、マイグレートツール113は、非更新セグメントにデータが記憶されているファイルの属性について、ファイルシステム111に問い合わせることができる。このようにして生成されたマイグレート対象ビットマップT3は、NASノード100内のメモリ120に記憶され、メモリ120からストレージコントローラ200内のキャッシュメモリ220にコピーされる。
マイグレートツール113は、メモリ120内に記憶されているマイグレート対象ビットマップT3を参照し(S51)、最初のセグメントを一つ指定する(S52)。ファイルシステム111は、マイグレートツール113によりマイグレート対象として指定されたセグメントに関して、iノード管理領域330Aを参照し(S53)、指定されたセグメントにデータを格納しているファイルを特定する(S54)。ファイルシステム111は、指定されたセグメントにデータを格納しているファイルについて、「更新排他ロック」を設定する(S55)。更新排他ロックとは、クライアント20によるファイルへの更新を禁止する処理である。データマイグレート中に、移動元のデータが更新されるのを防止し、移動の前後でデータの整合性を維持するために、更新を禁止する。
マイグレートツール113は、マイグレート対象のファイルへの更新が禁止されたことを確認すると、ストレージコントローラ200に向けて、データのマイグレート実行を指示する(S56)。この指示には、ストレージコントローラ200によって認識されているFC領域上のLUN及びセグメント番号が含まれる。
ストレージコントローラ200は、マイグレートツール113からの指示を受領すると、LVM定義テーブルT1を参照し(S57)、指定されたFC領域に対応するATA領域を特定する(S58)。そして、ストレージコントローラ200は、そのATA領域において、次の空きセグメントの番号を確保する(S59)。ATA領域では、空いているセグメントから順番に使用され、隙間が空かないようにデータが記憶されていく。
ストレージコントローラ200は、移動元のセグメントからデータを読出し、このデータをS59で確保した空きセグメントに記憶させる(S60)。そして、ストレージコントローラ200は、データのコピーされたセグメントの番号、即ち、データの移動先のセグメント番号をマイグレートツール113に通知する(S61)。
マイグレートツール113は、ストレージコントローラ200からデータ移動先のセグメント番号を受領すると、移動されたファイルに関する情報の切替を、ファイルシステム111に指示する(S62)。この指示には、S61で通知されたデータ移動先のセグメント番号が含まれる。
ファイルシステム111は、移動されたファイル、即ち、S55で更新排他ロックの設定されたファイルについて、iノード領域330Aに登録されている情報を一部書き換える(S63)。具体的には、ファイルシステム111は、移動されたファイルのATAフラグを”0”から”1”に変更し、格納先のセグメント番号を移動先のセグメント番号に変更する。また、ファイルシステム111は、移動元のセグメント番号、即ち、FC領域上でマイグレート対象として指定されたセグメント番号のステータスを、空きセグメントに変更する。そのセグメントは、別のデータの格納に直ちに使用可能となる。
ファイルシステム111が、S55で設定した更新排他ロックを解除すると(S64)、マイグレートツール113は、S52で選択された一つのセグメントのデータ移動が完了したことを確認する(S65)。マイグレート対象ビットマップT3に登録されたマイグレート対象のセグメントを全て移動させるまで、S52〜S65のステップが繰り返される。
本実施例は上述のように構成されるので、以下の効果を奏する。本実施例では、ファイルデータをセグメント単位で移動させるため、移動元のボリュームに格納されたファイルツリーを全検索等する必要がない。これにより、NASノード100の負荷を低減することができ、データマイグレーション時のNASノード100の性能低下を抑制して、使い勝手を高めることができる。
本実施例の記憶制御装置10では、複数の論理ボリューム330,331を結合させて大きな仮想ボリューム340を構築可能であるから、仮想ボリューム340内に、多量のファイルを有するファイルツリーが構築されやすい。しかし、比較的大きなファイルツリーが形成された場合でも、本実施例によれば、NASノード100の負荷増大を抑制して、効率的にデータマイグレートを行うことができる。
本実施例では、セグメント単位で移動の可否を判断し、セグメント単位でデータを移動させるため、更新排他ロックの設定時間を短縮できる。従って、クライアント20は、移動後のデータを速やかに利用することができ、使い勝手が向上する。
本実施例では、セグメント単位でデータを移動させるため、データの移動が完了した場合に、移動元のセグメントを空きセグメントとして直ちに再利用することができ、使い勝手が向上する。
本実施例では、ストレージコントローラ200による非更新セグメントの検出処理(非更新ビットマップT2の生成処理)と、NASノード100によるマイグレート対象セグメントの選択処理(マイグレート対象ビットマップT3の生成処理)とを非同期に実行させることにより、データマイグレート対象を決定する。従って、NASノード100とストレージコントローラ200とが協働で、マイグレート対象を特定することができ、NASノード100に負荷が集中するのを防止することができる。
本実施例では、NASノード100は、マイグレート対象のデータを特定し、実際のデータマイグレーションはストレージコントローラ200で実行する。従って、NASノード100の負荷をより一層軽減することができる。
本実施例では、スナップショット作成等にも利用される既存の更新ビットマップT4をを利用して、マイグレート対象を特定するための前処理(非更新セグメントの検出処理)を行う。従って、ストレージコントローラ200の構成を大幅に変更することなく、セグメント単位のデータマイグレーションを実現することができる。
本実施例では、NASノード100内のメモリ120とストレージコントローラ200内のキャッシュメモリ220との間で、非更新ビットマップT2及びマイグレート対象ビットマップT3を共有する構成とした。従って、例えば、コマンドを用いて各ビットマップT2,T3を転送する必要がない。これにより、比較的簡易な構成で、かつ、NASノード100及びストレージコントローラ200の負荷を増大させずに、各ビットマップT2,T3を共有することができる。
本実施例では、各更新ビットマップT4はストレージコントローラ200内で保持し、これら各更新ビットマップから生成される非更新ビットマップT2を、NASノード100と共有する。従って、NASノード100のメモリ資源を効率的に使用できる。
図13,図14に基づいて、第2実施例を説明する。本実施例では、マイグレート対象ビットマップT3を複数のエリアに分割し、各エリア毎にセグメント単位でのデータ移動を行う。本実施例及び後述の各実施例は、第1実施例の変形例に相当する。
図13は、マイグレート対象ビットマップT3について、複数のセグメント範囲を設定する様子を示す説明図である。図13の上側に示すように、マイグレート対象ビットマップT3に、セグメント範囲AS1〜AS3を設定し、各セグメント範囲AS1〜AS3毎に、セグメント単位でのデータマイグレートを実行する。
図13の下側には、セグメント範囲のサイズを決定するための処理を示すフローチャートが示されている。この処理は、図14中のS71の詳細を示す。まず、マイグレートツール113は、クライアント20からファイルシステム111への現在のアクセス要求の負荷を検出する(S711)。
マイグレートツール113は、検出された負荷に基づいて、閾値セグメント数を決定する(S712)。閾値セグメント数とは、セグメント範囲AS1〜AS3に含まれるマイグレート対象セグメントの上限値である。マイグレート対象のセグメントが多いほど、そのセグメント範囲のデータマイグレーションが完了するまでの時間が長くなるため、各セグメント範囲AS1〜AS3に含まれるマイグレート対象セグメントの数を制限する。
そして、マイグレートツール113は、各セグメント範囲AS1〜AS3内のマイグレート対象セグメントの数が、閾値セグメント数以下となるように、各セグメント範囲AS1〜AS3を決定する(S713)。なお、上記の例では、NASノード100の現在の負荷状態に基づいて、閾値セグメント数を算出するものと述べたが、これに限らず、閾値セグメント数を固定値としてもよいし、ユーザによって指定可能としてもよい。また、セグメント範囲の数は、3個に限られず、2個以上であればよい。
図14は、本実施例によるデータマイグレーション処理を示す。この処理は、例えば、一日に一回実行させることができる。前記同様に、データマイグレーションの実施に先立って、マイグレート対象ビットマップT3が生成される(S70)。マイグレートツール113は、図13と共に述べたように、マイグレート対象ビットマップT3に複数のセグメント範囲AS1〜AS3を設定する(S71)。
マイグレートツール113が最初のセグメント範囲AS1を一つ指定すると(S72)、ファイルシステム111は、iノード管理領域330Aを参照し(S73)、指定されたセグメント範囲AS1に含まれるマイグレート対象セグメントにファイルデータが記憶されているファイル群を特定する(S74)。ファイルシステム111は、その特定されたファイル群について、更新排他ロックを設定する(S75)。
マイグレートツール113は、ストレージコントローラ200に向けて、データのマイグレート実行を指示する(S76)。この指示には、ストレージコントローラ200によって認識されているFC領域上のLUN及びセグメント範囲AS1が含まれる。マイグレートツール113は、セグメント範囲AS1の先頭セグメント番号及び最終セグメント番号を示すことにより、または、先頭セグメント番号及びセグメント数を示すことにより、セグメント範囲AS1をストレージコントローラ200に通知することができる。
前記実施例と同様に、ストレージコントローラ200は、マイグレートツール113からの指示を受領すると、LVM定義テーブルT1を参照し(S77)、指定されたFC領域に対応するATA領域を特定する(S78)。ストレージコントローラ200は、指示されたセグメント範囲AS1に含まれるマイグレート対象セグメントの中から、データを移動させるセグメントを降順で決定する(S79)。
ストレージコントローラ200は、ATA領域において、次の空きセグメントの番号を確保し(S80)、移動元のセグメントのデータを確保した空きセグメントに記憶させる(S81)。ストレージコントローラ200は、このデータがコピーされたセグメントの番号を、新セグメント番号リストに登録する(S82)。新セグメント番号リストは、データ移動先のセグメントの番号を特定するための情報である。
ストレージコントローラ200は、指定されたセグメント範囲AS1について、各マイグレート対象セグメントのデータ移動が完了したか否かを判定する(S83)。指定されたセグメント範囲AS1内の全てのマイグレート対象セグメントについて、ATA領域への移動が完了するまで、S79〜S82のステップが繰り返され、新セグメント番号リストが更新されていく。指定されたセグメント範囲AS1についてデータの移動が完了すると、ストレージコントローラ200は、新セグメント番号リストをマイグレートツール113に通知する(S84)。
マイグレートツール113は、ストレージコントローラ200から受領した新セグメント番号リストをファイルシステム111に通知し、移動されたファイルに関する情報の切替を指示する(S85)。
ファイルシステム111は、指定されたセグメント範囲AS1に含まれるマイグレート対象セグメントを降順で選択し(S86)、選択されたセグメントに関するATAフラグ及びセグメント番号をそれぞれ更新する(S87)。移動前のセグメント番号は、新セグメント番号リストに登録された移動先セグメント番号に書き換えられる。また、ファイルシステム111は、ATAフラグを”1”に更新したセグメントを、空きセグメントとして登録する。
ファイルシステム111は、ATAフラグ及びセグメント番号を更新したセグメントについて、更新排他ロックを解除する(S88)。ファイルシステム111は、指定されたセグメント範囲AS1内の全ての更新排他ロックが解除されるまで、S86〜S88のステップを繰り返す。
ファイルシステム111が、セグメント範囲AS1についての処理を完了すると、マイグレートツール113は、S72で選択されたセグメント範囲AS1内のデータ移動が完了したことを確認する(S90)。全てのセグメント範囲についてデータ移動が完了するまで、S72〜S90のステップが繰り返される。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、マイグレート対象ビットマップT3に複数のセグメント範囲AS1〜AS3を設定し、セグメント範囲毎にデータを移動させる構成とした。従って、複数のマイグレート対象セグメントを一括して処理することができる。これにより、FC領域内における空きセグメントの数を速やかに増加させることができる。
また、複数のマイグレート対象セグメントを一括して扱うため、NASノード100とストレージコントローラ200との間の情報交換頻度を低減し、NASノード100の負荷をより一層低減することができる。
さらに、複数のセグメントのデータを一括して移動させるため、データマイグレーションに要する時間を低減することができる。
また、本実施例では、各セグメント範囲AS1〜AS3に含まれるマイグレート対象セグメントの数を調整するため、各セグメント範囲のデータ移動が完了するまでの時間を、比較的短くすることができる。
図15〜図17に基づいて、第3実施例を説明する。本実施例では、仮想ボリューム340の構成を変更する場合について説明する。LVM定義テーブルT1の説明で述べたように、仮想ボリューム340の構成は変更可能である。
図15は、NASノード100のソフトウェア構成及び階層記憶の構成を模式的に示す説明図である。仮想ボリューム340のFC領域には、それぞれFCディスク310に由来する複数の論理ボリューム330(LU0,LU2)が対応付けられている。仮想ボリューム340のATA領域には、それぞれATAディスク311に由来する複数の論理ボリューム331(LU1,LU3)が対応付けられている。
図16は、FC領域及びATA領域を複数の論理ボリュームから構成する場合のセグメントの管理状態を模式的に示す説明図である。図16(a)は、FC領域を一つの論理ボリューム(LU0)から構成し、ATA領域を一つの論理ボリューム331(LU1)から構成する場合を示す。この場合、FC領域の先頭セグメント番号は、論理ボリューム330(LU0)の先頭セグメント番号に一致し、FC領域の終端セグメント番号は、論理ボリューム330(LU0)の終端セグメント番号に一致する。同様に、ATA領域の先頭セグメント番号は、論理ボリューム331(LU1)の先頭セグメント番号に一致し、ATA領域の終端セグメント番号は、論理ボリューム331の終端セグメント番号に一致する。
図16(b)は、ATA領域に、別の論理ボリューム331(LU3)を追加した場合を示す。ATA領域の先頭セグメント番号に変化はない。ATA領域の終端セグメント番号は、追加された論理ボリューム331(LU3)の終端セグメント番号となる。ここで、留意すべきは、ATA領域の前側に位置する論理ボリューム331(LU1)の終端セグメント番号に続けて、追加された論理ボリューム331(LU3)の先頭セグメント番号が位置する点である。即ち、ATA領域内のセグメントは、セグメント番号が連続するように管理されている。
同様に、FC領域に別の論理ボリューム330(LU2)を追加する場合も、FC領域内でセグメント番号が連続するようにして管理される。なお、各ビットマップT2,T3,T4は、FC領域とATA領域のそれぞれに対応するように管理される。
本実施例では、FC領域のサイズには限界値が存在する。即ち、FC領域は、ATA領域の先頭アドレスとして設定されたSA2まで、サイズを拡張することができる。仮に、SA2の値が2TBであるとすると、現在のFC領域に1TBのボリュームを割り当てている場合は、さらに1TBのボリュームを追加可能である。SA2の値をより大きく設定すれば、その分だけFC領域のサイズを拡張することができる。なお、ATA領域は、記憶制御装置10が管理可能な最大サイズまで拡張可能である。
図17は、仮想ボリューム340の容量を増加するための処理を示すフローチャートである。この処理は、例えば、管理端末30から指示して実行させることができる。まず、記憶制御装置10は、FC領域またはATA領域のいずれに対して容量の増加が指示されたのかを判定する(S111)。
FC領域の容量増加が指示された場合、記憶制御装置10は、FC領域に容量を追加可能であるか否かを判定する(S112)。FC領域のサイズが限界値(SA2)に達している場合(S112:NO)、記憶制御装置10は、容量の増加ができない旨を管理端末30に通知する(S113)。
FC領域に容量を追加可能な場合(S112:YES)、記憶制御装置10は、新たな容量をFC領域に追加し、FC領域内のセグメント番号を連続させ(S114)、LVM定義テーブルT1を更新させる(S115)。
ATA領域の容量追加が指示された場合、記憶制御装置10は、新たな容量をATA領域に追加し、ATA領域内のセグメント番号を連続させ(S116)、LVM定義テーブルT1を更新させる(S117)。
このように構成される本実施例も前記第1実施例と同様の効果を奏する。これに加えて、本実施例では、クライアント20による仮想ボリューム340の利用状況等に応じて、仮想ボリューム340の構成を変更することができ、使い勝手が向上する。
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、各実施例を適宜組み合わせることができる。
本発明の実施形態の概念を示す説明図である。 記憶制御装置のハードウェア構成を示す説明図である。 NASノードのソフトウェア構成及び階層記憶の構成を示す説明図である。 仮想ボリュームの構成を示す説明図である。 iノード管理領域の構成を示す説明図である。 LVM定義テーブルの構成を示す説明図である。 非更新ビットマップを生成する処理を示すフローチャートである。 更新ビットマップから非更新ビットマップを経てマイグレート対象ビットマップを生成する様子を示す説明図である。 マイグレーションポリシー設定テーブルを示す説明図である。 ファイル追加処理を示すフローチャートである。 ファイル更新処理を示すフローチャートである。 データマイグレーション処理を示すフローチャートである。 第2実施例に係り、(a)は、マイグレート対象ビットマップを複数のセグメント範囲毎に処理する様子を、(b)はセグメント範囲を設定するためのフローチャートを、それぞれ示す。 データマイグレーション処理を示すフローチャートである。 本発明の第3実施例に係り、仮想ボリュームの各領域を複数の論理ボリュームから構成可能であることを示す階層記憶の説明図である。 領域の容量を追加する場合のセグメント番号の様子を示す説明図である。 領域に容量を追加する場合の処理を示すフローチャートである。
符号の説明
1…記憶制御装置、2…制御部、2A,3A…非更新ビットマップ、2B,3B…マイグレート対象ビットマップ、2C…ファイル管理部、2D…マイグレート制御部、2E…ボリューム管理部、3…ストレージ制御部、3C…入出力処理部、3D…マイグレート実行部、3E…更新管理部、4…記憶部、4A,4B…論理ボリューム(論理的記憶デバイス)、4C,4D…ディスクドライブ、4E,4F…物理的記憶デバイス、5…仮想ボリューム、5A…高速領域、5B…低速領域、6…クライアントマシン、10…記憶制御装置、20…クライアントマシン、30…管理端末、100…NASノード、110…プロセッサ、111…ファイルシステム、112…論理ボリュームマネージャ(LVM)、113…マイグレートツール、113A…マイグレーションポリシー、120…メモリ、130…ネットワークインターフェース部、140…内部バス、150…ブリッジ回路、200…ストレージコントローラ、210…プロセッサ、220…キャッシュメモリ、230…ドライブインターフェース部、240…内部バス、300…記憶部、310,311…ディスクドライブ、320,321…物理的記憶デバイス、330,331…論理ボリューム(論理的記憶デバイス)、330A…iノード管理領域、330B,331A…ファイルデータ領域、340…仮想ボリューム、AS1〜AS3…セグメント範囲、M1,M2…メモリ、T1…LVM定義テーブル、T2…非更新ビットマップ、T3…マイグレート対象ビットマップ、T4…更新ビットマップ、T5…マイグレーションポリシー設定テーブル

Claims (9)

  1. ファイルコントローラ及びブロックコントローラを備えた記憶制御装置であって、
    各ファイルに関する情報をそれぞれ管理し、上位装置からのファイルアクセス要求をキャッシュメモリを利用して処理するファイル管理部と、
    第1物理的記憶デバイス上に設けられる第1論理的記憶デバイスと前記第1物理的記憶デバイスとは異なる性能を有する第2物理的記憶デバイス上に設けられる第2論理的記憶デバイスとを一つの仮想ボリュームとして結合させ、この仮想ボリュームを前記ファイル管理部に提供するボリューム管理部と、
    前記第1論理的記憶デバイス及び前記第2論理的記憶デバイスの更新状態を、所定の管理単位でそれぞれ管理する更新管理部と、
    前記管理単位での更新状態及び前記ファイル管理部により管理される前記各ファイルの情報に基づいて、マイグレート対象となるデータを特定し、この特定されたデータを前記第1論理的記憶デバイスと前記第2論理的記憶デバイスとの間で移動させるための指示を発行するマイグレート制御部と、
    前記マイグレート制御部からの指示に基づき、前記第1論理的記憶デバイスと前記第2論理的記憶デバイスとの間で、前記管理単位で、データを移動させるマイグレート実行部と、を備え、
    前記管理単位には、前記キャッシュメモリにおけるデータ管理単位であるセグメント単位が用いられ、
    前記更新管理部は、前記セグメント単位で、前記各論理的記憶デバイスの更新状態を、更新ビットマップによってそれぞれ管理し、
    前記更新管理部は、所定周期毎に、前記各論理的記憶デバイス毎に前記更新ビットマップをそれぞれ作成し、かつ、所定期間内に作成された前記複数の更新ビットマップの論理和に基づいて、前記所定期間内に更新されなかった非更新セグメントを検出するための非更新ビットマップを生成し、
    前記マイグレート制御部は、前記非更新ビットマップ及び前記ファイル管理部により管理される前記各ファイルの情報に基づいて、前記非更新セグメントに記憶されているデータをマイグレート対象のデータとして特定するためのマイグレート対象ビットマップを作成し、このマイグレート対象ビットマップに基づいて、前記マイグレート対象のデータを前記第1論理的記憶デバイスと前記第2論理的記憶デバイスとの間で移動させるための指示を前記マイグレート実行部に発行する記憶制御装置。
  2. 前記マイグレート制御部は、前記非更新ビットマップに含まれる非更新セグメントのうち、予め設定されたマイグレーションポリシーに合致する非更新セグメントのみを、前記マイグレート対象ビットマップに登録する請求項に記載の記憶制御装置。
  3. 前記マイグレート制御部は、前記マイグレート対象ビットマップに登録された非更新セグメント毎に、前記指示を発行する請求項に記載の記憶制御装置。
  4. 前記マイグレート制御部は、前記マイグレート対象ビットマップを複数のセグメント範囲に分割し、これらセグメント範囲毎に、当該セグメント範囲に含まれている前記非更新セグメントについて一括して、前記指示を発行する請求項に記載の記憶制御装置。
  5. 前記ファイルコントローラは、前記ファイル管理部と、前記ボリューム管理部及び前記マイグレート制御部を備えており、
    前記ブロックコントローラは、前記更新管理部及び前記マイグレート実行部を備えており、
    前記非更新ビットマップ及び前記マイグレート対象ビットマップは、前記ファイルコントローラと前記ブロックコントローラとにより共有されている請求項に記載の記憶制御装置。
  6. 前記ファイルコントローラの前記キャッシュメモリが接続される内部バスと前記ブロックコントローラの他のメモリが接続される内部バスとは、ブリッジ回路を介して結合されており、
    前記非更新ビットマップ及び前記マイグレート対象ビットマップは、前記内部バスを介したメモリ間コピーを用いることにより、前記ファイルコントローラと前記ブロックコントローラとに共有されている請求項に記載の記憶制御装置。
  7. 前記更新管理部は、前記ファイルコントローラ内に設けられている請求項に記載の記憶制御装置。
  8. ファイルコントローラ及びブロックコントローラを備えた記憶制御装置を用いて、データをマイグレートさせるためのデータマイグレーション方法であって、
    前記ファイルコントローラによって、第1物理的記憶デバイス上に設けられる第1論理的記憶デバイスと第2物理的記憶デバイス上に設けられる第2論理的記憶デバイスとを一つの仮想ボリュームとして結合させ、この仮想ボリュームを、上位装置からのファイルアクセス要求をキャッシュメモリを利用して処理するためのファイル管理部に提供するステップと、
    前記ブロックコントローラによって、前記各論理的記憶デバイスの更新状態を、所定周期毎に更新ビットマップをそれぞれ作成することにより、前記キャッシュメモリにおけるデータ管理単位であるセグメント単位で管理するステップと、
    前記ブロックコントローラによって、所定期間内に作成された前記複数の更新ビットマップの論理和に基づいて、前記所定期間内に更新されなかった非更新セグメントを検出するための非更新ビットマップを生成して記憶させるステップと、
    前記非更新ビットマップを前記ファイルコントローラと前記ブロックコントローラとが共有するステップと、
    前記ファイルコントローラによって、前記非更新ビットマップ及び前記ファイル管理部により管理されている各ファイルの情報に基づいて、前記非更新セグメントに記憶されているファイルをマイグレート対象のデータとして特定するためのマイグレート対象ビットマップを作成して記憶させるステップと、
    前記マイグレート対象ビットマップを前記ファイルコントローラと前記ブロックコントローラとが共有するステップと、
    前記ファイルコントローラによって、前記マイグレート対象ビットマップに登録された非更新セグメントに記憶されているファイルへの更新を禁止させるステップと、
    前記ファイルコントローラによって、前記マイグレート対象ビットマップに登録された非更新セグメントに記憶されているデータを前記第1論理的記憶デバイスから前記第2論理的記憶デバイスに移動させるための指示を、前記ブロックコントローラに発行させるステップと、
    前記ブロックコントローラによって、前記発行された指示及び前記マイグレート対象ビットマップに基づいて、前記第1論理的記憶デバイスに記憶されたデータを、一つまたは複数のセグメント単位で、前記第2論理的記憶デバイスに移動させるステップと、
    前記ファイルコントローラによって、前記データの移動が完了した場合には、更新が禁止されたファイルの更新禁止を解除するステップと、
    を実行するデータマイグレーション方法。
  9. ファイルアクセスを担当するファイルコントローラと、ブロックアクセスを担当するブロックコントローラと、このブロックコントローラによりそれぞれ使用される高速物理的記憶デバイス及び低速物理的記憶デバイスとを備えた記憶制御装置であって、
    前記ファイルコントローラの有するキャッシュメモリと前記ブロックコントローラの有する他のメモリとは、前記ファイルコントローラの内部バスと前記ブロックコントローラの内部バスとをブリッジ回路を介して結合することにより接続されており、
    前記ファイルコントローラは、ファイルシステムと、ボリューム管理部及びマイグレート制御部を備え、
    前記ブロックコントローラは、更新管理部及びマイグレート実行部を備え、
    前記ファイルシステムは、上位装置からのファイルアクセス要求を前記キャッシュメモリを利用して処理し、
    前記ボリューム管理部は、前記高速物理的記憶デバイス上に設けられる高速論理的記憶デバイスが前半部分に、前記低速物理的記憶デバイス上に設けられる低速論理的記憶デバイスが後半部分にそれぞれ位置するようにして、前記高速論理的記憶デバイスと前記低速論理的記憶デバイスとから一つの仮想ボリュームを生成し、この仮想ボリュームを前記ファイル管理部に提供し、
    前記更新管理部は、前記高速論理的記憶デバイス及び前記低速論理的記憶デバイスの更新状態を前記キャッシュメモリのデータ管理単位であるセグメント毎にそれぞれ管理し、所定周期毎に、前記各論理的記憶デバイスのそれぞれについて更新ビットマップを生成し、かつ、所定期間内に生成された前記各更新ビットマップの論理和に基づいて、前記所定期間内に更新されなかった非更新セグメントを検出するための非更新ビットマップを生成して前記他のメモリに記憶させ、
    前記他のメモリに記憶された前記非更新ビットマップは、メモリ間コピーによって、前記他のメモリから前記キャッシュメモリにコピーされ、
    前記マイグレート制御部は、前記キャッシュメモリに記憶された前記非更新ビットマップに含まれる前記非更新セグメントに記憶されているファイルの属性を前記ファイルシステムに問い合わせることにより、マイグレートさせるべきマイグレート対象セグメントを特定するためのマイグレート対象ビットマップを生成して、このマイグレート対象ビットマップを前記キャッシュメモリに記憶させ、
    前記キャッシュメモリに記憶された前記マイグレート対象ビットマップは、前記メモリ間コピーによって、前記キャッシュメモリから前記他のメモリにコピーされ、
    前記マイグレート制御部は、前記マイグレート対象セグメントに登録された前記非更新セグメントに記憶されているデータを、前記高速論理的記憶デバイスから前記低速記憶デバイスに移動させるための指示を前記マイグレート実行部に発行し、
    前記マイグレート実行部は、前記発行された指示及び前記マイグレート対象ビットマップに基づいて、前記高速論理的記憶デバイスに記憶されたデータを、一つまたは複数のセグメント単位で、前記低速論理的記憶デバイスに移動させ、
    前記ファイルシステムは、前記マイグレート対象データの移動が完了するまでの間、前記上位装置から当該マイグレート対象データへの更新を禁止する、
    記憶制御装置。

JP2006047799A 2006-02-24 2006-02-24 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法 Expired - Fee Related JP4890048B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006047799A JP4890048B2 (ja) 2006-02-24 2006-02-24 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
US11/412,885 US20070204119A1 (en) 2006-02-24 2006-04-28 Storage control device, and data migration method using storage control device
EP06254559A EP1826662A3 (en) 2006-02-24 2006-08-31 Storage control device, and data migration method using storage control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006047799A JP4890048B2 (ja) 2006-02-24 2006-02-24 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法

Publications (3)

Publication Number Publication Date
JP2007226596A JP2007226596A (ja) 2007-09-06
JP2007226596A5 JP2007226596A5 (ja) 2009-01-22
JP4890048B2 true JP4890048B2 (ja) 2012-03-07

Family

ID=38066619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006047799A Expired - Fee Related JP4890048B2 (ja) 2006-02-24 2006-02-24 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法

Country Status (3)

Country Link
US (1) US20070204119A1 (ja)
EP (1) EP1826662A3 (ja)
JP (1) JP4890048B2 (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328734A (ja) * 2006-06-09 2007-12-20 Hitachi Ltd ストレージ装置及びストレージ装置の制御方法
GB0614515D0 (en) * 2006-07-21 2006-08-30 Ibm An apparatus for managing power-consumption
JP5028218B2 (ja) * 2007-10-30 2012-09-19 株式会社日立製作所 記憶制御装置、ストレージシステム及び記憶制御装置の制御方法
US7921179B1 (en) * 2008-01-15 2011-04-05 Net App, Inc. Reducing latency of access requests in distributed storage systems having a shared data set
US8074020B2 (en) * 2008-02-13 2011-12-06 International Business Machines Corporation On-line volume coalesce operation to enable on-line storage subsystem volume consolidation
JP2009266106A (ja) * 2008-04-28 2009-11-12 Hitachi Ltd 管理装置及び管理方法
JP4833273B2 (ja) * 2008-12-09 2011-12-07 富士通株式会社 ストレージ装置、リストア方法およびリストアプログラム
KR101405729B1 (ko) * 2009-01-23 2014-06-10 엘에스아이 코포레이션 동적 저장장치 계층화 방법 및 시스템
US8983938B1 (en) * 2009-02-06 2015-03-17 Hewlett-Packard Development Company, L.P. Selecting a command file
DE102009030135A1 (de) * 2009-06-24 2010-12-30 Dr. Ing. H.C. F. Porsche Aktiengesellschaft Hybridantriebsstrang
JP2013011919A (ja) 2009-09-17 2013-01-17 Hitachi Ltd ストレージ装置及びそのスナップショット制御方法
WO2011036015A1 (en) 2009-09-24 2011-03-31 International Business Machines Corporation Data storage using bitmaps
CN102511036B (zh) 2009-09-25 2015-09-30 国际商业机器公司 数据存储
WO2011068699A1 (en) * 2009-12-04 2011-06-09 Marvell World Trade Ltd. Virtualization of storage devices
EP2513811B1 (en) * 2009-12-14 2018-03-28 Citrix Systems, Inc. Methods and systems for optimizing a process of archiving at least one block of a virtual disk image
US8762667B2 (en) * 2010-02-01 2014-06-24 International Business Machines Corporation Optimization of data migration between storage mediums
CN102667772B (zh) 2010-03-01 2015-05-20 株式会社日立制作所 文件级分级存储管理***、方法和设备
US8595440B2 (en) 2010-03-31 2013-11-26 Hitachi Solutions, Ltd. File server apparatus, management method of storage system, and program
EP2569710A4 (en) * 2010-05-13 2014-01-22 Hewlett Packard Development Co MIGRATION OF A FILE SYSTEM
WO2011145137A1 (en) * 2010-05-18 2011-11-24 Hitachi, Ltd. Storage apparatus and control method thereof for dynamic migration of small storage areas
JPWO2013141308A1 (ja) * 2012-03-22 2015-08-03 日本電気株式会社 分散ストレージシステム、ストレージ制御方法およびプログラム
JP5987104B2 (ja) * 2013-03-18 2016-09-06 株式会社日立製作所 計算機システム、ストレージシステムの管理システム及び管理方法
US20150193246A1 (en) * 2014-01-06 2015-07-09 Siegfried Luft Apparatus and method for data center virtualization
JP6256133B2 (ja) 2014-03-18 2018-01-10 富士通株式会社 ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム
JP5991701B2 (ja) 2014-10-28 2016-09-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストレージ管理方法、ストレージ管理システム、コンピュータ・システムおよびプログラム
WO2016139749A1 (ja) * 2015-03-03 2016-09-09 株式会社日立製作所 計算機システム、及び、記憶制御方法
JP6818982B2 (ja) 2015-06-01 2021-01-27 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd ファイルを格納する方法
JP6330840B2 (ja) * 2016-03-29 2018-05-30 日本電気株式会社 ストレージ管理システムおよびストレージ管理方法
US10649684B2 (en) * 2017-03-16 2020-05-12 Arm Limited Memory access monitoring
US10976950B1 (en) * 2019-01-15 2021-04-13 Twitter, Inc. Distributed dataset modification, retention, and replication
JP7050707B2 (ja) * 2019-03-15 2022-04-08 Necプラットフォームズ株式会社 ストレージ制御装置、ストレージシステム、ストレージ制御方法、及び、ストレージ制御プログラム
US20220405253A1 (en) * 2021-06-22 2022-12-22 Samsung Electronics Co., Ltd. Mechanism for managing a migration of data with mapped page and dirty page bitmap sections

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944381A (ja) * 1995-07-31 1997-02-14 Toshiba Corp データ格納方法およびデータ格納装置
JP3614328B2 (ja) * 1999-09-28 2005-01-26 三菱電機株式会社 ミラーディスク制御装置
JP2001337850A (ja) * 2000-05-25 2001-12-07 Hitachi Ltd 記憶装置および記憶装置の制御方法
US6766430B2 (en) * 2000-07-06 2004-07-20 Hitachi, Ltd. Data reallocation among storage systems
JP4115093B2 (ja) * 2000-07-06 2008-07-09 株式会社日立製作所 計算機システム
US6981005B1 (en) * 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US6804690B1 (en) * 2000-12-27 2004-10-12 Emc Corporation Method for physical backup in data logical order
JP4322031B2 (ja) * 2003-03-27 2009-08-26 株式会社日立製作所 記憶装置
US7149859B2 (en) * 2004-03-01 2006-12-12 Hitachi, Ltd. Method and apparatus for data migration with the efficient use of old assets
US7441096B2 (en) * 2004-07-07 2008-10-21 Hitachi, Ltd. Hierarchical storage management system
JP4867235B2 (ja) * 2004-10-26 2012-02-01 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム

Also Published As

Publication number Publication date
EP1826662A2 (en) 2007-08-29
JP2007226596A (ja) 2007-09-06
EP1826662A3 (en) 2010-01-20
US20070204119A1 (en) 2007-08-30

Similar Documents

Publication Publication Date Title
JP4890048B2 (ja) 記憶制御装置及び記憶制御装置を用いたデータマイグレーション方法
JP6708929B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
JP5955870B2 (ja) 仮想ディスクの最適圧縮のための方法、コンピュータ可読記憶媒体及びシステム
US20060047926A1 (en) Managing multiple snapshot copies of data
JP5685676B2 (ja) 計算機システム及びデータ管理方法
JP5592493B2 (ja) ストレージネットワークシステム及びその制御方法
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
US8719533B2 (en) Storage apparatus, computer system, and data migration method
JP2006350599A (ja) ストレージシステム及びストレージシステムのデータマイグレーション方法
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
US20080270698A1 (en) Data migration including operation environment information of a host computer
JP2016085666A (ja) ストレージ管理方法、ストレージ管理システム、コンピュータ・システムおよびプログラム
US11108864B2 (en) System and method for client policy assignment in a data storage system
US10049117B2 (en) Defragmentation-less deduplication
US11579983B2 (en) Snapshot performance optimizations
JP4755244B2 (ja) 情報生成方法、情報生成プログラム及び情報生成装置
JP7112437B2 (ja) ストレージシステムおよびデータ移行方法
JP2010231567A (ja) ストレージスイッチ、記憶領域サイズ変更方法
JP4915365B2 (ja) データ格納方法及びその装置、複製データ格納方法及びその装置並びにそれらの制御プログラム
JP2015014963A (ja) ストレージ制御装置、制御プログラム及び制御方法
JP2016143166A (ja) 制御装置,ストレージシステム及び制御プログラム
JP2020177274A (ja) ストレージ装置、ストレージシステムおよびプログラム
JP6157158B2 (ja) 情報処理装置、その制御方法及びプログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110527

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111214

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees