JP6476932B2 - ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 - Google Patents

ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 Download PDF

Info

Publication number
JP6476932B2
JP6476932B2 JP2015018372A JP2015018372A JP6476932B2 JP 6476932 B2 JP6476932 B2 JP 6476932B2 JP 2015018372 A JP2015018372 A JP 2015018372A JP 2015018372 A JP2015018372 A JP 2015018372A JP 6476932 B2 JP6476932 B2 JP 6476932B2
Authority
JP
Japan
Prior art keywords
storage device
data
migration
identification information
order
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
JP2015018372A
Other languages
English (en)
Other versions
JP2016143221A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015018372A priority Critical patent/JP6476932B2/ja
Priority to US14/972,712 priority patent/US9977620B2/en
Publication of JP2016143221A publication Critical patent/JP2016143221A/ja
Application granted granted Critical
Publication of JP6476932B2 publication Critical patent/JP6476932B2/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Description

本発明は、ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法に関する。
ストレージシステムには、複数のストレージ装置間でネットワークを介してデータの移行処理を行なうものが知られている。
このようなストレージシステムにおいては、データの移行先のストレージ装置に対して、データの移行元のストレージ装置からの移行処理が完了していないデータに対するアクセス要求が発生する場合がある。このような場合には、データの移行先のストレージ装置は、ネットワークを介して、データの移行元のストレージ装置からデータを取得する技術が知られている。
特開2009−140053号公報 特開2011−123891号公報
しかしながら、アクセス対象のデータを移行元のストレージ装置から取得する場合には、ネットワーク中の経路がボトルネックとなり、発生したアクセス要求をすぐに処理できないという課題がある。
1つの側面では、本発明は、ストレージ装置間のデータ移行中におけるデータアクセス性能を向上させることを目的とする。
このため、このストレージ装置は、通信可能に接続される他のストレージ装置からデータを移行されるストレージ装置であって、複数のデータが格納される記憶装置と、前記記憶装置に格納されている前記複数のデータのデータ毎の重複度を決定する重複度決定部と、前記重複度決定部によって決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記他のストレージ装置に送信する順序を決定する順序決定部と、を備える。
開示の制御装置によれば、ストレージ装置間のデータ移行中におけるデータアクセス性能を向上させることができる。
実施形態の一例としてのストレージシステムの機能構成を模式的に示す図である。 実施形態の関連技術としてのストレージシステムにおけるデータ移行処理の第1の例を示す図である。 実施形態の関連技術としてのストレージシステムにおけるデータ移行処理の第2の例を示す図である。 実施形態の一例としてのストレージシステムにおける仮想環境を例示する図である。 実施形態の一例としてのストレージシステムにおけるハッシュ値送信順序の決定処理を説明する図である。 実施形態の一例としてのストレージシステムにおける移行先ストレージ装置に格納されたデータに対するアクセス処理を説明する図である。 実施形態の一例としてのストレージシステムにおける移行元ストレージ装置に格納されたデータに対するアクセス処理を説明する図である。 実施形態の一例としてのストレージシステムにおけるハッシュ値の通知処理を説明する図である。 実施形態の一例としてのストレージシステムにおけるハッシュ値の通知処理を説明する図である。 実施形態の一例としてのストレージシステムにおけるデータ移行処理を説明する図である。 実施形態の一例としてのストレージシステムにおけるLRUリスト作成処理の第1の例を説明するフローチャートである。 実施形態の一例としてのストレージシステムにおけるLRUリスト作成処理の第1の例の詳細を説明するフローチャートである。 実施形態の一例としてのストレージシステムにおけるLRUリスト作成処理の第2の例を説明するフローチャートである。 実施形態の一例としてのストレージシステムにおける転送ハッシュ値選択処理を説明するフローチャートである。
以下、図面を参照してストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法に係る一実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
以下、図中において、同一の各符号は同様の部分を示しているので、その説明は省略する。
〔A〕実施形態の一例
〔A−1〕システム構成
図1は、実施形態の一例としてのストレージシステムの機能構成を模式的に示す図である。
図1に示すストレージシステム100は、図示しないホスト装置に対して記憶領域を提供するものであり、ストレージ装置1及びストレージ装置2を備える。ストレージシステム100は、ストレージ装置1とストレージ装置2との間でデータの移行処理を行なう機能を備える。以下、本実施形態の一例においては、ストレージ装置2からストレージ装置1へデータを移行する例について示す。また、以下、ストレージ装置1を「移行先ストレージ装置1」といい、ストレージ装置2を「移行元ストレージ装置2」という場合がある。
移行先ストレージ装置1と移行元ストレージ装置2とは、例えばWide Area Network(WAN)5を介して互いに通信可能に接続される。
ユーザ4は、図示しないホスト装置を介して、ストレージ装置1,2に対して、データInput/Output(I/O)の指示や移行先ストレージ装置1と移行元ストレージ装置2との間のデータ移行処理の指示を発行する。
ストレージ装置1,2は、後述する複数の記憶装置31を搭載し、図示しないホスト装置に対して記憶領域を提供する装置であり、例えばRedundant Arrays of Inexpensive Disks(RAID)を用いて複数の記憶装置31にデータを分散し、冗長化した状態で保存する。
以下、本実施形態の一例におけるストレージ装置1,2が備える機能構成を説明する前に、図2及び図3を参照しながら、本実施形態の関連技術としてのストレージシステム100a,100bにおけるデータ移行処理について説明する。
図2は、実施形態の関連技術としてのストレージシステムにおけるデータ移行処理の第1の例を示す図である。
図2に示すストレージシステム100aは、図示しないホスト装置に対して記憶領域を提供するものであり、移行先ストレージ装置1a及び移行元スレージ装置2aを備える。
移行先ストレージ装置1aと移行元ストレージ装置2aとは、例えばWAN5を介して互いに通信可能に接続される。
以下、移行先ストレージ装置1aと移行元ストレージ装置2aとをまとめてストレージ装置1a,2aという場合がある。
ストレージ装置1a,2aは、図示しない複数の記憶装置を搭載し、図示しないホスト装置に対して記憶領域を提供する装置であり、例えばRAIDを用いて図示しない複数の記憶装置にデータを分散し、冗長化した状態で保存する。
図2に示す例において、移行先ストレージ装置1aはデータ移行処理におけるデータ移行先のストレージ装置として機能し、移行元ストレージ装置2aはデータ移行処理におけるデータ移行元のストレージ装置として機能する。
移行先ストレージ装置1aが備える図示しないCentral Processing Unit(CPU)は、運用中Virtual Machine(VM)6a及び移行先VM7aを展開する。
運用中VM6aは、ストレージシステム100aにおいて業務運用中のVMであり、2つのアプリケーション(APP)61a,2つのOperating System(OS)62a及び2つの仮想ディスク(vDISK)63aを含む。
APP61aは、データ移行処理の実行等の機能を有するソフトウェアである。
OS62aは、移行先ストレージ装置1aのハードウェアの管理などの基本機能を実現するシステムソフトウェアである。
仮想ディスク63aは、移行先ストレージ装置1aが備える図示しない記憶装置の記憶領域をストレージシステム100aが備える図示しないホスト装置に認識可能な状態で提供する論理記憶領域である。
移行先VM7aは、ストレージシステム100aにおいて業務運用前の状態であり、移行元ストレージ装置2aからデータを移行されるVMである。移行先VM7aは、APP71a,OS72a及び仮想ディスク73aを含む。なお、図2に示す例において、仮想ボリューム73aは、データ移行処理が完了しておらず、データが格納されていないため、破線で示されている。
移行先VM7aのAPP71a,OS72a及び仮想ディスク73aは、運用中VM6aのAPP61a,OS62a及び仮想ディスク63aと同様の機能を備える。よって、移行先VM7aのAPP71a,OS72a及び仮想ディスク73aが備える機能の説明は、省略する。
移行元ストレージ装置2aが備える図示しないCPUは、移行元VM8aを展開する。
移行元VM8aは、移行先ストレージ装置1aに対するデータ移行対象のデータが格納されたVMであり、APP81a,OS82a及び仮想ディスク83aを含む。
移行元VM8aのAPP81a,OS82a及び仮想ディスク83aは、運用中VM6aのAPP61a,OS62a及び仮想ディスク63aと同様の機能を備える。よって、移行元VM8aのAPP81a,OS82a及び仮想ディスク83aが備える機能の説明は、省略する。
図2に示す例において、運用中VM6aに含まれる論理ボリューム63aには、データA1が格納されている。
移行先ストレージ装置1aは、WAN5を介して、データA1を識別するためのハッシュ値を移行元ストレージ装置2aに送信する(符号A2参照)。言い換えれば、移行先ストレージ装置1aは、移行元ストレージ装置2aに対して、データA1が移行先ストレージ装置1aに格納されているというデータ移行処理にあたってのヒント情報を送信する。
移行元ストレージ装置2aは、移行先ストレージ装置1aから受信したハッシュ値が移行元VM8aの仮想ディスク83aに格納されているデータによって識別されるハッシュ値と同一であるかを判定する。そして、移行元ストレージ装置2aは、ハッシュ値が同一であると判定した場合に、同一であると判定したハッシュ値を移行先ストレージ装置1aに対して送信する(符号A3参照)。
このように、図2の符号A2及びA3で示した処理によれば、WAN5を経由してハッシュ値のみを送受信することにより、ストレージ装置1a,2a間のデータ転送量を減少させ、データ移行処理を高速に実行することができる。
しかしながら、移行先ストレージ装置1aが運用中の仮想ディスク63aに格納されたデータのうちどのデータに関するハッシュ値を移行元ストレージ装置2aに送信するかは、運用中の仮想ディスク63aに格納されたデータに基づき推定しなければならないという問題がある。つまり、移行先ストレージ装置1aは、ストレージシステム100aの運用開始時から運用中の仮想ディスク63aに格納されているデータと、既に移行元ストレージ装置2aからデータ移行処理が完了して運用中の仮想ディスク63aに格納されているデータとに基づき、ハッシュ値を選択しなければならない。
図3は、実施形態の関連技術としてのストレージシステムにおけるデータ移行処理の第2の例を示す図である。
図3に示すストレージシステム100bは、図示しないホスト装置に対して記憶領域を提供するものであり、移行先ストレージ装置1b及び移行元スレージ装置2aを備える。図3に示すストレージシステム100bは図2に示した移行元ストレージ装置2aと同様の移行元ストレージ装置2aを備えるため、移行元ストレージ装置2aが備える機能構成の図示は簡単のため省略する。
移行先ストレージ装置1bと移行元ストレージ装置2aとは、例えばWAN5を介して互いに通信可能に接続される。
以下、移行先ストレージ装置1bと移行元ストレージ装置2aとをまとめてストレージ装置1b,2aという場合がある。
ストレージ装置1b,2aは、図示しない複数の記憶装置を搭載し、図示しないホスト装置に対して記憶領域を提供する装置であり、例えばRAIDを用いて図示しない複数の記憶装置にデータを分散し、冗長化した状態で保存する。
図3に示す例において、移行先ストレージ装置1bはデータ移行処理におけるデータ移行先のストレージ装置として機能し、移行元ストレージ装置2aはデータ移行処理におけるデータ移行元のストレージ装置として機能する。
移行先ストレージ装置1bが備える図示しないCPUは、運用中VM6b及び移行先VM7bを展開する。
図3に示す運用中VM6b及び移行先VM7bは、図2に示した運用中VM6a及び移行先VM7aとそれぞれ同様の機能を備える。ただし、図3に示す運用中VM6bは、図2に示した運用中VM6aとは異なり、キャッシュ領域64bを含む。よって、キャッシュ領域64b以外の運用中VM6b及び移行先ディスクグループ7bに含まれる機能の説明は、省略する。
キャッシュ領域64bは、移行先ストレージ装置1bが備える図示しないメモリの領域に対応づけられた領域である。キャッシュ領域64bには、運用中の仮想ディスク63bに対するI/Oに応じて、複数のデータ(エントリメンバ)がLeast Recently Used(LRU) やLeast Frequently Used (LFU)等の順に格納される。
図3に示す例において、キャッシュ領域64bには、1つのデータ#1,1つのデータ#2,2つのデータ#3及び3つのデータ#4が格納される(符号B参照)。具体的には、キャッシュ領域64bには、データ#1〜#4が最近使われた順であるデータ#1,データ#2,データ#3,データ#4,データ#4,データ#3,データ#4を特定できるように格納される。この場合に、移行先ストレージ1bは、移行元ストレージ装置2aに対して、データ#1〜#4を識別するためのハッシュ値をデータ#1,データ#2,データ#3,データ#4の順に送信する。なお、ストレージ装置1b,2a間のハッシュ値の送受信処理は、図2の符号A2及びA3で示した処理と同様であるため、その説明は省略する。
このように、図3の符号Bで示した処理によれば、キャッシュ値の送受信を移行先ストレージ装置1bで最近使われた順に行なうことにより、移行先ストレージ装置1bで最近使われたデータのデータ移行処理を早期に完了させることができる。一般に、最近使われたデータはよく使われるデータの可能性が高いため、最近使われたデータから順にデータ移行処理を行なうことでI/O処理に必要なデータが移行済みである確率を上げ、I/O処理の高速化に寄与する。
しかしながら、移行対象のデータに移行先ストレージ装置1bで最近使われたデータが含まれていない場合には、移行先ストレージ装置1b(移行先VM7b)で使用したいデータのデータ移行処理を早期に完了することができないという問題がある。例えば、図3の符号Bで示した例においては、移行先ストレージ装置1bは、移行元ストレージ装置2aに対して、最初にデータ#1,データ#2の順に対応するハッシュ値を送信する。しかし、移行先ストレージ装置1bが最初に送信したハッシュ値に対応するデータ#1,#2と同一のデータが移行元ストレージ装置2aに格納されていない場合には、データ#3,#4についての移行処理が完了する時刻が遅れてしまう。そして、データ#3,#4に対するI/Oが発生した場合に、移行先ストレージ装置1bは、発生したI/Oの処理に時間を要するという問題がある。
図4は、実施形態の一例としてのストレージシステムにおける仮想環境を例示する図である。
図4に示す本実施形態の一例としてのストレージシステム100おいて、移行先ストレージ装置1が備えるCPU11(図1を用いて後述)は、運用中VM6及び移行先VM7を展開する。
図4に示す例において、運用中VM6は、ストレージシステム100において業務運用中のVMであり、2つのアプリケーション(APP)61,2つのOS62,2つの仮想ディスク(vDISK)63及び1つのキャッシュ領域64を含む。
APP61は、データ移行処理の実行等の機能を有するソフトウェアである。
OS62は、移行先ストレージ装置1のハードウェアの管理などの基本機能を実現するシステムソフトウェアである。
仮想ディスク63は、移行先ストレージ装置1が備える記憶装置31(図1を用いて後述)の記憶領域をストレージシステム100が備える図示しないホスト装置に認識可能な状態で提供する論理記憶領域である。
キャッシュ領域64は、移行先ストレージ装置1が備えるメモリ12(図1を用いて後述)においてキャッシュメモリとして使われる領域に対応づけられた領域である。キャッシュ領域64には、運用中の仮想ディスク63に対するI/Oに応じて、複数のデータ(エントリメンバ)がLRU やLFU等の使用実績順に格納される。
以下、本実施形態の一例において、LRUのアルゴリズムに基づいてデータがキャッシュ領域64に格納されている例について説明する。
移行先VM7は、ストレージシステム100において業務運用前の状態であり、移行元ストレージ装置2からデータを移行されるVMである。移行先VM7は、APP71,OS72及び仮想ディスク73を含む。なお、図4に示す例において、仮想ボリューム73は、データ移行処理が完了しておらず、データが格納されていないため、破線で示されている。
移行先VM7のAPP71,OS72及び仮想ディスク73は、運用中VM6のAPP61,OS62及び仮想ディスク63と同様の機能を備える。よって、移行先VM7のAPP71,OS72及び仮想ディスク73が備える機能の説明は、省略する。
移行元ストレージ装置2が備えるCPU21(図1を用いて後述)は、移行元VM8を展開する。
移行元VM8は、移行先ストレージ装置1に対するデータ移行対象のデータが格納されたVMであり、APP81,OS82及び仮想ディスク83を含む。
移行元VM8のAPP81,OS82及び仮想ディスク83は、運用中VM6のAPP61,OS62及び仮想ディスク63と同様の機能を備える。よって、移行先VM8のAPP81,OS82及び仮想ディスク83が備える機能の説明は、省略する。
次に、図1を参照しながら、本実施形態の一例におけるストレージ装置1,2が備える機能構成について説明する。
移行先ストレージ装置1は、Controller Module(CM)10及びDisk Enclosure(DE)30を備える。
DE30は、CM10とアクセスパスで通信可能に接続されており、複数(図示する例では3つ)の記憶装置31を備える。
記憶装置31は、データを読み書き可能に格納する既知の装置であり、例えば、Hard Disk Drive(HDD)やSolid State Drive(SSD)である。
CM10は、種々の制御を行なう制御装置であり、図示しないホスト装置からのストレージアクセス要求(アクセス制御信号:以下、ホストI/Oという)に従って、各種制御を行なう。なお、図1に示す例において移行先ストレージ装置1は1つのCM10のみを備えることとしているが、これに限定されるものではなく、移行先ストレージ装置1はシステムの冗長化のために2つ以上のCM10を備えても良い。CM10は、CPU(コンピュータ)11,メモリ(記憶装置)12,Communication Adaptor(CA)13,Network Interface Card(NIC)14及びDevice Adaptor(DA)15を備える。
CA13は、CM10を図示しないホスト装置と通信可能に接続するインタフェースコントローラである。
NIC14は、移行先ストレージ装置1を例えばWAN5等の外部ネットワークに接続する通信アダプタである。
DA15は、CM10とDE30とを通信可能に接続するためのインタフェースであり、例えばFiber Channel(FC)アダプタである。CM10は、このDA15を介して、記憶装置31に対するデータの書き込みや読み出しを行なう。
メモリ12は、Read Only Memory(ROM)及びRandom Access Memory(RAM)を含む記憶装置である。メモリ12のROMには、Basic Input/Output System(BIOS)等のプログラムが書き込まれている。メモリ12上のソフトウェアプログラムは、CPU11に適宜読み込まれて実行される。また、メモリ12のRAMは、一次記録メモリ(キャッシュメモリ)あるいはワーキングメモリとして利用される。
CPU11は、種々の制御や演算を行なう処理装置であり、メモリ12に格納されたOSやプログラムを実行することにより、種々の機能を実現する。すなわち、CPU11は、図1に示すように、移行済みデータ判定部111,移行処理部112,キャッシュ処理部113,重複度決定部114,順序決定部115及びハッシュ値送信部(送信部)116として機能する。
なお、これらの移行済みデータ判定部111,移行処理部112,キャッシュ処理部113,重複度決定部114,順序決定部115及びハッシュ値送信部116としての機能を実現するためのプログラム(制御プログラム)は、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
移行済みデータ判定部111,移行処理部112,キャッシュ処理部113,重複度決定部114,順序決定部115及びハッシュ値送信部116としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ12)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU11)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
移行済みデータ判定部111は、移行元ストレージ装置2から移行先ストレージ装置1への移行対象のデータが移行先ストレージ装置1の記憶装置31に移行済みであるかを判定する。
移行処理部112は、移行先ストレージ装置1と移行元ストレージ装置2との間のデータの移行処理を行なう。具体的には、移行処理部112は、WAN5及びNIC14を介して移行元ストレージ装置2から送信されてきた移行対象のデータを取得し、取得したデータを記憶装置31に格納することにより、データの移行処理を行なう。
また、移行処理部112は、移行対象のデータを識別するためのハッシュ値(識別情報)を移行元ストレージ装置2から受信する。具体的には、移行処理部112は、WAN5及びNIC14を介して移行元ストレージ装置2よって送信されたハッシュ値を受信する。
更に、移行処理部112は、移行元ストレージ装置2に格納されたデータに対するアクセス処理を行なう。具体的には、移行済みデータ判定部111によって移行対象のデータが移行先ストレージ装置1に移行済みでないと判定された場合に、NIC14及びWAN5を介して移行元ストレージ装置2の記憶装置31が格納するデータに対するアクセス処理を行なう。
キャッシュ処理部113は、移行先ストレージ装置1の記憶装置31に格納されたデータに対するアクセス処理を行なう際に、アクセス対象のデータをLRUやLFU等の使用実績順にメモリ12に一時的に格納する。具体的には、キャッシュ処理部113は、移行済みデータ判定部111によって移行対象のデータが移行先ストレージ装置1に移行済みであると判定された場合に、アクセス対象のデータをメモリ12のキャッシュ領域64(図4を参照)に一時的に格納する。また、キャッシュ処理部113は、移行処理部112よって移行先ストレージ装置1から取得された移行対象のデータ又はハッシュ値をメモリ12のキャッシュ領域64に一時的に格納する。
図5は、実施形態の一例としてのストレージシステムにおけるハッシュ値送信順序の決定処理を説明する図である。
以下、図5に示す例において、データ#1〜#4を識別するためのハッシュ値をハッシュ値#1〜#4とそれぞれ示す。
図5に示す例において、キャッシュ処理部113は、データ#1〜#4が最近使われた順を特定できるように、データ#1〜#4をキャッシュ領域64に格納する。具体的には、キャッシュ処理部113は、データ#1,データ#2,データ#3,データ#4,データ#4,データ#3,データ#4の順を特定できるように、データ#1〜#4をキャッシュ領域64に格納する。
以下、最近使われた順に一列に並べられたデータの配列を、LRUリストという場合がある。
重複度決定部114は、メモリ12のキャッシュ領域64に格納された複数のデータの重複度を決定する。具体的には、重複度決定部114は、キャッシュ領域64に含まれる同一のデータの数(重複数)を算出し、同一のデータ毎に算出した数(重複数)を重複度として決定する。
図5に示す例において、重複度決定部114は、データ#4,#3,#2,#1の重複度が3,2,1,1であるとそれぞれ決定する(符号C1参照)。
順序決定部115は、重複度決定部114によって決定された重複度に基づき、複数のハッシュ値を移行元ストレージ装置2に送信する順序を決定する。また、順序決定部115は、重複度決定部114によって決定された重複度が同一である複数のデータがある場合には、重複度が同一である複数のデータの使用実績に基づき、順序を決定する。
図5に示す例において、順序決定部115は、重複度決定部114によって決定された重複度に基づき、複数のハッシュ値をハッシュ値#4,#3,#1,#2に順に、移行元ストレージ装置2に送信することを決定する(符号C2参照)。ここで、データ#1,#2の重複度はともに1であるため、順序決定部115は、データ#2よりも最近使われたデータ#1に対応するハッシュ値#1をハッシュ値#2よりも先に送信することを決定する。
以下、重複度毎に一列に並べられたデータの配列を、重複度毎のLRUリストという場合がある。
ハッシュ値送信部116は、順序決定部115によって決定された順序に基づき、複数のハッシュ値をNIC14及びWAN5を介して移行元ストレージ装置2に送信する。
図5に示す例において、ハッシュ値送信部116は、順序決定部115によって決定された順序に基づき、複数のハッシュ値をハッシュ値#4,#3,#1,#2の順に、移行元ストレージ装置2に送信する。
図1に示すように、移行元ストレージ装置2は、CM20及びDE30を備える。
CM20は、種々の制御を行なう制御装置であり、図示しないホスト装置からのホストI/Oに従って、各種制御を行なう。なお、図1に示す例において移行元ストレージ装置2は1つのCM20のみを備えることとしているが、これに限定されるものではなく、移行元ストレージ装置2はシステムの冗長化のために2つ以上のCM20を備えても良い。CM20は、CPU21,メモリ22,CA23,NIC24及びDA25を備える。
CM20が備えるメモリ22,CA23,NIC24及びDA25はCM10が備えるメモリ12,CA13,NIC14及びDA15とそれぞれ同様の機能を備えるため、メモリ22,CA23,NIC24及びDA25の説明は省略する。
CPU21は、種々の制御や演算を行なう処理装置であり、メモリ22に格納されたOSやプログラムを実行することにより、種々の機能を実現する。すなわち、CPU21は、図1に示すように、移行処理部211,キャッシュ処理部212,ハッシュ値受信部(受信部)213及びハッシュ値判定部(判定部)214として機能する。
なお、これらの移行処理部211,キャッシュ処理部212,ハッシュ値受信部213及びハッシュ値判定部214としての機能を実現するためのプログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体から図示しない読取装置を介してプログラムを読み取って内部記録装置または外部記録装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。
移行処理部211,キャッシュ処理部212,ハッシュ値受信部213及びハッシュ値判定部214としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ22)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU21)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行してもよい。
ハッシュ値受信部213は、WAN5及びNIC24を介して、移行先ストレージ装置1のハッシュ値送信部116によって送信された複数のハッシュ値を受信する。
ハッシュ値判定部214は、ハッシュ値受信部213によって受信された複数のハッシュ値のそれぞれについてと、移行元ストレージ装置2の記憶装置31に格納される複数のデータを識別するためのハッシュ値とが同一であるかを判定する。具体的には、ハッシュ値判定部214は、ハッシュ値受信部213によって受信された複数のハッシュ値を取得する。また、ハッシュ値判定部214は、キャッシュ処理部212に対してハッシュ値の取得要求を行なうことにより、記憶装置31に格納されたデータを識別するためのハッシュ値を取得する。そして、ハッシュ値判定部214は、ハッシュ値受信部213から取得したハッシュ値と、キャッシュ処理部212から取得されたハッシュ値とが同一であるかを判定する。ハッシュ値判定部214は、ハッシュ値受信部213によって受信された複数のハッシュ値についてこれらが受信された順に、ハッシュ値が同一であるかの判定をそれぞれ行なう。
キャッシュ処理部212は、キャッシュメモリに対するデータのリード/ライトの制御を行なう。
キャッシュ処理部212は、移行元ストレージ装置2の記憶装置31に格納されたデータに対するアクセス処理を行なう際に、アクセス対象のデータをメモリ22のキャッシュメモリ領域に一時的に格納する。具体的には、キャッシュ処理部212は、データ移行処理211から記憶装置31に対するアクセス処理に基づき、アクセス対象のデータをメモリ22のキャッシュメモリ領域に一時的に格納する。また、キャッシュ処理部212は、ハッシュ値判定部214からのハッシュ値の取得要求に基づき、記憶装置31に格納されたデータを識別するためのハッシュ値をメモリ22のキャッシュ領域に一時的に格納する。
移行処理部211は、移行先ストレージ装置1と移行元ストレージ装置2との間のデータの移行処理を行なう。具体的には、移行処理部211は、NIC24及びWAN5を介して移行先ストレージ装置1に移行対象のデータを送信することにより、データの移行処理を行なう。
また、移行処理部211は、移行対象のデータを識別するためのハッシュ値を移行先ストレージ装置1に送信する。具体的には、移行処理部211は、複数のハッシュ値のうち、ハッシュ値判定部214によって同一であると判定されたハッシュ値をNIC24及びWAN5を介して移行先ストレージ装置1に通知することによって、移行先ストレージ装置1にデータを移行する。移行処理部211は、ハッシュ値判定部214によって複数のハッシュ値が同一であると判定された順に、ハッシュ値の通知を行なう。
更に、移行処理部211は、移行元ストレージ装置2に格納されたデータに対するアクセス処理を行なう。具体的には、移行先ストレージ装置1の移行済みデータ判定部111によって移行対象のデータが移行先ストレージ装置1に移行済みでないと判定された場合に、WAN5及びNIC24を介して、移行先ストレージ装置1からの要求を受信する。そして、移行処理部211は、キャッシュ処理部212を介して、移行元ストレージ装置2の記憶装置31が格納するデータに対するアクセス処理を行なう。
〔A−2〕動作
上述の如く構成された実施形態の一例としてのストレージシステムにおける移行先ストレージ装置に格納されたデータに対するアクセス処理を、図6に示す図(符号D1〜D3)に従って説明する。
ユーザ4は、図示しないホスト装置を介して、ストレージ装置1にデータのアクセス指示を行なう(符号D1参照)。
移行済みデータ判定部111は、アクセス対象のデータが移行先ストレージ装置1に移行済みであるかを判定する。図6に示す例においては、アクセス対象のデータが移行先ストレージ装置1に移行済みであるため、移行済みデータ判定部111は、キャッシュ処理部113を介して、アクセス対象のデータに対するアクセスを行なう(符号D2参照)。
キャッシュ処理部113は、アクセス対象のデータを移行先ストレージ装置1の記憶装置31から読み出し、読み出したデータをメモリ12のキャッシュ領域64に格納する(符号D3参照)。
移行済み判定部111は、キャッシュ領域64に書き込まれたアクセス対象のデータを読み出し(符号D2参照)、図示しないホスト装置に送信することにより(符号D1参照)、処理は終了する。
このように、移行先ストレージ装置1に格納されたデータに対するアクセス処理は、移行先ストレージ装置1の筐体内に閉じて行なわれる。
次に、実施形態の一例としてのストレージシステムにおける移行元ストレージ装置に格納されたデータに対するアクセス処理を、図7に示す図(符号E1〜E7)に従って説明する。すなわち、図7を用いて、移行元ストレージ装置2から移行先ストレージ装置1へのデータ移行処理が行なわれていないデータに対するアクセス処理について示す。
ユーザ4は、図示しないホスト装置を介して、ストレージ装置1にデータのアクセス指示を行なう(符号E1参照)。
移行済みデータ判定部111は、アクセス対象のデータが移行先ストレージ装置1に移行済みであるかを判定する。図7に示す例においては、アクセス対象のデータが移行先ストレージ装置1に移行されていないため、移行済みデータ判定部111は、移行処理部112を介して、移行元ストレージ装置2からデータを取得する(符号E2参照)。
移行処理部112は、NIC14及びWAN5を介して、移行元ストレージ装置2にデータアクセス要求を送信する(符号E3及び符号E4参照)。
移行元ストレージ装置2の移行処理部211は、WAN5及びNIC24を介して、移行先ストレージ装置1からデータアクセス要求を受信する(符号E4及びE5参照)。そして、移行処理部211は、キャッシュ処理部212を介して、アクセス対象のデータに対するアクセスを行なう(符号E6参照)。
キャッシュ処理部212は、アクセス対象のデータを記憶装置31から読み出し、読み出したデータをメモリ22に格納する(符号E7参照)。
移行処理部211は、メモリ22に格納されたアクセス対象のデータを読み出し(符号E6)、読み出したデータをNIC24及びWAN5を介して移行先ストレージ装置1に送信する(符号E5及びE4参照)。
移行先ストレージ装置1の移行処理部112は、WAN5及びNIC14を介して、移行元ストレージ装置2から送信されたアクセス対象のデータを受信する(符号E4及びE3参照)。
移行済み判定部111は、アクセス対象のデータを移行処理部112から取得し(符号E2参照)、図示しないホスト装置に送信することにより(符号E1参照)、処理は終了する。
このように、移行元ストレージ装置に格納されたデータに対するアクセス処理は、移行先ストレージ装置1からWAN5を介して移行元ストレージ装置2に対して行なわれる。
次に、実施形態の一例としてのストレージシステムにおけるハッシュ値の通知処理を、図8及び図9に示す図(符号F1〜F15)に従って説明する。具体的には、図8には符号F1〜F9の処理を示し、図9にはF10〜F15の処理を示す。
移行先ストレージ装置1のキャッシュ処理部113は、キャッシュ領域64に格納された複数のデータを読み出す(図8の符号F1参照)。
重複度決定部114は、キャッシュ処理部113によって読み出された複数のデータの重複度を決定する(図8の符号F2参照)。
順序決定部115は、重複度決定部114によって決定された重複度に基づき、複数のハッシュ値を移行元ストレージ装置2に送信する順序を決定する(図8の符号F3参照)。また、順序決定部115は、重複度決定部114によって決定された重複度が同一である複数のデータがある場合には、これらの重複度が同一である複数のデータの使用実績に基づき、順序を決定する。
ハッシュ値送信部116は、順序決定部115によって決定された順序に基づき、複数のハッシュ値をNIC14及びWAN5を介して移行元ストレージ装置2に送信する(図8の符号F4及びF5参照)。
移行元ストレージ装置2のハッシュ値受信部213は、WAN5及びNIC24を介して、移行先ストレージ装置1のハッシュ値送信部116によって送信された複数のハッシュ値を受信する(図8の符号F5及びF6参照)。
キャッシュ処理部212は、記憶装置31に格納された移行対象の複数のデータのハッシュ値をメモリ22に一時的に格納する(図8の符号F7参照)。
ハッシュ値判定部214は、ハッシュ値受信部213によって受信された複数のハッシュ値を取得する(図8の符号F8参照)。また、ハッシュ値判定部214は、キャッシュ処理部212に対してハッシュ値の取得要求を行なうことにより、記憶装置31に格納されたデータを識別するためのハッシュ値を取得する(図8の符号F9参照)。そして、ハッシュ値判定部214は、ハッシュ値受信部213から取得したハッシュ値と、キャッシュ処理部212から取得したハッシュ値とが同一であるかを判定する。ハッシュ値判定部214は、ハッシュ値受信部213によって複数のハッシュ値が受信された順に、ハッシュ値が同一であるかの判定を行なう。
移行処理部211は、複数のハッシュ値のうち、ハッシュ値判定部214によって同一であると判定されたハッシュ値をハッシュ値判定部214から取得する(図9の符号F10参照)。そして、移行処理部112は、NIC24及びWAN5を介して移行先ストレージ装置1に取得したハッシュ値を通知する(図9の符号F11及びF12)。移行処理部211は、ハッシュ値判定部214によって複数のハッシュ値が同一であると判定された順に、移行先ストレージ装置1に対してハッシュ値の通知を行なう。
移行先ストレージ装置1の移行処理部112は、WAN5及びNIC14を介して移行元ストレージ装置2よって送信されたハッシュ値を受信する(図9の符号F12及びF13参照)。そして、移行処理部112は、キャッシュ処理部113を介して、受信したハッシュ値によって特定される移行対象のデータを記憶装置31に書き込む(図9の符号F14)。
キャッシュ処理部113は、移行対象のデータをキャッシュ領域64に一時的に格納した後、移行対象のデータを記憶装置31に格納する(図9の符号F15参照)。これにより、移行元ストレージ装置2から移行先ストレージ装置1へのデータ移行処理は、終了する。
このように、ハッシュ値の通知処理は、移行元ストレージ装置2から移行先ストレージ装置1に対して、データではなくハッシュ値のみが送信されることによって行なわれる。これにより、ストレージ装置1,2間におけるデータ移行処理を高速化することができる。
なお、移行元ストレージ装置2の記憶装置31に格納されているが、移行元ストレージ装置2のハッシュ値受信部213によって移行先ストレージ装置1から受信されなかったハッシュ値に対応するデータは、以下のように行なわれるデータ移行処理によって移行先ストレージ装置1に送信される。
次に、実施形態の一例としてのストレージシステムにおけるデータ移行処理を、図10に示す図(符号G1〜G7)に従って説明する。
移行元ストレージ装置2のキャッシュ処理部212は、移行対象のデータを記憶装置31から読み出し、読み出したデータをメモリ22に格納する(符号G1参照)。
移行処理部211は、メモリ22に格納された移行対象のデータを読み出し(符号G2)、読み出したデータをNIC24及びWAN5を介して移行先ストレージ装置1に送信する(符号G3及びG4参照)。
移行先ストレージ装置1の移行処理部112は、WAN5及びNIC14を介して、移行元ストレージ装置2から送信された移行対象のデータを受信する(符号G4及びG5参照)。そして、移行処理部112は、キャッシュ処理部113を介して、移行対象のデータの書き込み処理を行なう(符号G6参照)。
キャッシュ処理部113は、移行対象のデータをキャッシュ領域64に一時的に格納した後、移行対象のデータを記憶装置31に格納することにより(符号G7参照)、処理は終了する。
このように、データ移行処理は、移行元ストレージ装置2からWAN5を介して移行先ストレージ装置1に対して行なわれる。
次に、実施形態の一例としてのストレージシステムにおけるLRUリスト作成処理の第1の例を、図11に示すフローチャート(ステップS1〜S2)に従って説明する。具体的には、図11においては、キャッシュ領域64においてデータ(キャッシュエントリ)の重複除去がサポートされていない場合のLRUリスト作成処理を説明する。
重複度決定部114は、例えばメモリ12に記録されるインデックスカウンタの値を0に設定する(ステップS1)。ここで、インデックスカウンタの値とは、重複度毎のLRUリストにおいても、キャッシュエントリを元のLRUリストの順番通りに並べるために各キャッシュエントリに対して定義するインデックス用のカウンタ値である。
重複度決定部114及び順序決定部115は、データ#1,#2,#3,#4,#4,#3,#4にインデックス1,2,3,4,5,6,7をそれぞれ対応づけることにより、最近使われた順にキャッシュエントリを処理する(ステップS2及び符号H参照)。そして、処理は終了する。
次に、図11のステップS2に示した処理の詳細を、図12を用いて説明する。図12は、実施形態の一例としてのストレージシステムにおけるLRUリスト作成処理の第1の例の詳細を説明するフローチャート(ステップS11〜S16)である。
重複度決定部114は、重複度kのLRUリストにおいて、処理対象のキャッシュエントリと同一のデータを持つキャッシュエントリが存在するかを判定する(ステップS11)。
重複度kのLRUリストに同一のデータをもつキャッシュエントリが存在する場合には(ステップS11のYesルート参照)、重複度決定部114は、重複度kのLRUリストから重複度k+1のLRUリストに処理対処のキャッシュエントリを移動させる(ステップS12)。
順序決定部115は、処理対象のキャッシュエントリのインデックスをキーとして、重複度k+1のLRUリストを降順にソートし(ステップS13)、処理は終了する。
ステップS11において、重複度kのLRUリストに同一のデータをもつキャッシュエントリが存在しない場合には(ステップS11のNoルート参照)、重複度決定部114は、処理対象のキャッシュエントリをコピーする。そして、重複度決定部114は、現在のインデックスカウンタの値を処理対象のキャッシュエントリのインデックスとして定義し、処理対象のキャッシュエントリを重複度1のLRUリストに登録する(ステップS14)。
順序決定部115は、処理対象のキャッシュエントリのインデックスをキーとして、重複度1のLRUリストを降順にソートする(ステップS15)。
順序決定部115は、インデックスカウンタをインクリメントし(ステップS16)、処理は終了する。
次に、実施形態の一例としてのストレージシステムにおけるLRUリスト作成処理の第2の例を、図13に示すフローチャート(ステップS21)に従って説明する。具体的には、図13においては、キャッシュ領域64においてキャッシュエントリの重複除去がサポートされている場合のLRUリスト作成処理を説明する。
重複度決定部114は、LRUリストにおいてキャッシュエントリが最近使われた順に、重複度kのキャッシュエントリを重複度kのLRUリストの先頭に登録する(ステップS21)。
図13に示す例において、LRUリストにはデータ#1,#2,#3,#4の順にキャッシュエントリが登録されており、データ#1,#2,#3,#4の重複度は、それぞれ1,1,2,3である。このような場合に、重複度決定部114は、複数のキャッシュエントリを重複度毎に分類することにより(符号I参照)、重複度毎のLRUリストを作成する。
つまり、図13に示すように、キャッシュ領域64においてキャッシュエントリの重複除去がサポートされている場合には、移行先ストレージ装置1のCPU11は、順序決定部115としての機能を備えなくても良い。
次に、実施形態の一例としてのストレージシステムにおける転送ハッシュ値選択処理を、図14に示すフローチャート(ステップS31〜S35)に従って説明する。
重複度決定部114及び順序決定部115は、図11又は図13を用いて示した処理を実行することにより、重複度毎のLRUリストを作成する(ステップS31)。
ハッシュ値送信部116は、既に移行元ストレージ装置2に転送済みのハッシュ値によって識別されるデータを重複度毎のLRUリストから削除する(ステップS32)。
ハッシュ値送信部116は、いずれの重複度毎のLRUリストも空であるかを判定する(ステップS33)。
いずれの重複度毎のLRUリストも空である場合には(ステップS33のYesルート参照)、処理は終了する。
一方、いずかの重複度毎のLRUリストにデータが登録されている場合には(ステップS33のNoルート参照)、ハッシュ値送信部116は、重複度が最大のLRUリストから最近使われたデータを選択する(ステップS34)。そして、ハッシュ値送信部116は、選択したハッシュ値を移行元ストレージ装置2に送信する。
ハッシュ値送信部116は、選択したデータを重複度毎のLRUリストから削除し(ステップS35)、処理は終了する。
〔A−3〕効果
このように、上述した実施形態の一例におけるストレージ装置1(ストレージシステム100)によれば、例えば以下の作用効果を奏することができる。
重複度決定部114は、メモリ12のキャッシュ領域64に格納された複数のデータの重複度を決定する。そして、順序決定部115は、重複度決定部114によって決定された重複度に基づき、複数のデータを識別するための複数のハッシュ値を移行元ストレージ装置2に送信する順序を決定する。
これにより、ストレージ装置1,2間のデータ移行中においてデータアクセスに要する時間を減少させることができる。具体的には、移行先ストレージ装置1において重複度の高いデータから順にハッシュ値を移行元ストレージ装置2に送信するため、データアクセス頻度が高いと推測されるデータを早期に移行先ストレージ装置1に移行することができる。また、これにより、ホスト装置から移行元ストレージ装置2へのアクセス量を減少させることができる。
順序決定部115は、重複度決定部114によって決定された重複度が同一である複数のデータがある場合には、重複度が同一である複数のデータの最近使われた(使用実績)順に基づき、複数のハッシュ値を移行元ストレージ装置2に送信する順序を決定する。
これにより、重複度が同一のデータについても、適切な順番でデータ移行処理を行なうことができる。
ハッシュ値判定部214は、ハッシュ値受信部213によって受信された複数のハッシュ値と、移行元ストレージ装置2に格納される複数のデータを識別するためのハッシュ値とが同一であるかを判定する。そして、移行処理部211は、複数のハッシュ値のうち、ハッシュ値判定部214によって同一であると判定されたハッシュ値を移行先ストレージ装置1に通知することによって、移行先ストレージ装置1にデータを移行する。
これにより、ストレージ装置1,2間におけるネットワーク負荷を減少させることができる。
ハッシュ値判定部214は、ハッシュ値受信部213によって複数のハッシュ値が受信された順に、ハッシュ値が同一であるかの判定を行なう。また、移行処理部211は、ハッシュ値判定部214によって複数のハッシュ値が同一であると判定された順に、移行先ストレージ装置1に対するハッシュ値の通知を行なう。
これにより、適切な順番でデータ移行処理を行なうことができる。
〔B〕その他
開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
〔C〕付記
(付記1)
通信可能に接続される他のストレージ装置からデータを移行されるストレージ装置であって、
複数のデータが格納される記憶装置と、
前記記憶装置に格納された前記複数のデータの重複度を決定する重複度決定部と、
前記重複度決定部によって決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記他のストレージ装置に送信する順序を決定する順序決定部と、
を備えることを特徴とする、ストレージ装置。
(付記2)
前記順序決定部は、前記重複度決定部によって決定された前記重複度が同一である複数のデータがある場合には、当該重複度が同一である複数のデータの使用実績に基づき、前記順序を決定する、
ことを特徴とする、付記1に記載のストレージ装置。
(付記3)
前記記憶装置は、前記複数のデータが一時的に格納されるキャッシュメモリである、
ことを特徴とする、付記1又は2に記載のストレージ装置。
(付記4)
通信可能に接続される他のストレージ装置からデータを移行されるストレージ装置に備えられるコンピュータに、
前記ストレージ装置に備えられる記憶装置に格納された複数のデータの重複度を決定し、
決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記他のストレージ装置に送信する順序を決定する、
処理を実行させることを特徴とする、制御プログラム。
(付記5)
決定された前記重複度が同一である複数のデータがある場合には、当該重複度が同一である複数のデータの使用実績に基づき、前記順序を決定する、
処理を前記コンピュータに実行させることを特徴とする、付記4に記載の制御プログラム。
(付記6)
前記記憶装置は、前記複数のデータが一時的に格納されるキャッシュメモリである、
ことを特徴とする、付記4又は5に記載の制御プログラム。
(付記7)
第1ストレージ装置と第2ストレージ装置とを有し、前記第2ストレージ装置から前記第1ストレージ装置に対してデータを移行するストレージシステムであって、
前記第1ストレージ装置は、
複数のデータが格納される記憶装置と、
前記記憶装置に格納された前記複数のデータの重複度を決定する重複度決定部と、
前記重複度決定部によって決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記第2ストレージ装置に送信する順序を決定する順序決定部と、
前記順序決定部によって決定された前記順序に基づき、前記複数の識別情報を前記第2ストレージ装置に送信する送信部と、
を備え、
前記第2ストレージ装置は、
前記送信部によって送信された前記複数の識別情報を受信する受信部と、
前記受信部によって受信された前記複数の識別情報と、当該第2ストレージ装置に格納される複数のデータを識別するための複数の識別情報とが同一であるかを判定する判定部と、
前記複数の識別情報のうち、前記判定部によって同一であると判定された識別情報を前記第1ストレージ装置に通知することによって、前記第1ストレージ装置にデータを移行する移行処理部と、
を備えることを特徴とする、ストレージシステム。
(付記8)
前記順序決定部は、前記重複度決定部によって決定された前記重複度が同一である複数のデータがある場合には、当該重複度が同一である複数のデータの使用実績に基づき、前記順序を決定する、
ことを特徴とする、付記7に記載のストレージシステム。
(付記9)
前記記憶装置は、前記複数のデータが一時的に格納されるキャッシュメモリである、
ことを特徴とする、付記7又は8に記載のストレージシステム。
(付記10)
前記判定部は、前記受信部によって前記複数の識別情報が受信された順に、前記判定を行ない、
前記移行処理部は、前記判定部によって複数の識別情報が同一であると判定された順に、前記通知を行なう、
ことを特徴とする、付記7〜9のいずれか1項に記載のストレージシステム。
(付記11)
第1ストレージ装置と第2ストレージ装置とを有し、前記第2ストレージ装置から前記第1ストレージ装置に対してデータを移行するストレージシステムにおけるデータ転送方法であって、
前記第1ストレージ装置は、
当該第1ストレージ装置に備えられる記憶装置に格納された複数のデータの重複度を決定し、
決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記第2ストレージ装置に送信する順序を決定し、
決定された前記順序に基づき、前記複数の識別情報を前記第2ストレージ装置に送信し、
前記第2ストレージ装置は、
前記第1ストレージ装置によって送信された前記複数の識別情報を受信し、
受信された前記複数の識別情報と、当該第2ストレージ装置に格納される複数のデータを識別するための複数の識別情報とが同一であるかを判定し、
前記複数の識別情報のうち、同一であると判定された識別情報を前記第1ストレージ装置に通知することによって、前記第1ストレージ装置にデータを移行する、
ことを特徴とする、データ転送方法。
(付記12)
前記第1ストレージ装置は、決定された前記重複度が同一である複数のデータがある場合には、当該重複度が同一である複数のデータの使用実績に基づき、前記順序を決定する、
ことを特徴とする、付記11に記載のデータ転送方法。
(付記13)
前記記憶装置は、前記複数のデータが一時的に格納されるキャッシュメモリである、
ことを特徴とする、付記11又は12に記載のデータ転送方法。
(付記14)
前記第2ストレージ装置は、
前記複数の識別情報が受信された順に、前記判定を行ない、
複数の識別情報が同一であると判定された順に、前記通知を行なう、
ことを特徴とする、付記11〜13のいずれか1項に記載のデータ転送方法。
100 ストレージシステム
1 移行先ストレージ装置(第1ストレージ装置)
10 CM
11 CPU(コンピュータ)
111 移行済みデータ判定部
112 移行処理部
113 キャッシュ処理部
114 重複度決定部
115 順序決定部
116 ハッシュ値送信部(送信部)
12 メモリ(記憶装置)
13 CA
14 NIC
15 DA
2 移行元ストレージ装置(第2ストレージ装置)
21 CPU
211 移行処理部
212 キャッシュ処理部
213 ハッシュ値受信部(受信部)
214 ハッシュ値判定部(判定部)
22 メモリ
23 CA
24 NIC
25 DA
30 DE
31 記憶装置
4 ユーザ
5 WAN
6 運用中VM
61 APP
62 OS
63 仮想ディスク
64 キャッシュ領域
7 移行先VM
71 APP
72 OS
73 仮想ディスク
8 移行元VM
81 APP
82 OS
83 仮想ディスク
100a ストレージシステム
1a 移行先ストレージ装置
2a 移行元ストレージ装置
6a 運用中VM
61a APP
62a OS
63a 仮想ディスク
7a 移行先VM
71a APP
72a OS
73a 仮想ディスク
8a 移行元VM
81a APP
82a OS
83a 仮想ディスク
100b ストレージシステム
1b 移行先ストレージ装置
6b 運用中VM
61b APP
62b OS
63b 仮想ディスク
64b キャッシュ領域
7b 移行先VM
71b APP
72b OS
73b 仮想ディスク

Claims (6)

  1. 通信可能に接続される他のストレージ装置からデータを移行されるストレージ装置であって、
    複数のデータが格納される記憶装置と、
    前記記憶装置に格納されている前記複数のデータのデータ毎の重複度を決定する重複度決定部と、
    前記重複度決定部によって決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記他のストレージ装置に送信する順序を決定する順序決定部と、
    を備えることを特徴とする、ストレージ装置。
  2. 前記順序決定部は、前記重複度決定部によって決定された前記重複度が同一である複数のデータがある場合には、当該重複度が同一である複数のデータの使用実績に基づき、前記順序を決定する、
    ことを特徴とする、請求項1に記載のストレージ装置。
  3. 前記記憶装置は、前記複数のデータが一時的に格納されるキャッシュメモリである、
    ことを特徴とする、請求項1又は2に記載のストレージ装置。
  4. 通信可能に接続される他のストレージ装置からデータを移行されるストレージ装置に備えられるコンピュータに、
    前記ストレージ装置に備えられる記憶装置に格納されている複数のデータのデータ毎の重複度を決定し、
    決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記他のストレージ装置に送信する順序を決定する、
    処理を実行させることを特徴とする、制御プログラム。
  5. 第1ストレージ装置と第2ストレージ装置とを有し、前記第2ストレージ装置から前記第1ストレージ装置に対してデータを移行するストレージシステムであって、
    前記第1ストレージ装置は、
    複数のデータが格納される記憶装置と、
    前記記憶装置に格納されている前記複数のデータのデータ毎の重複度を決定する重複度決定部と、
    前記重複度決定部によって決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記第2ストレージ装置に送信する順序を決定する順序決定部と、
    前記順序決定部によって決定された前記順序に基づき、前記複数の識別情報を前記第2ストレージ装置に送信する送信部と、
    を備え、
    前記第2ストレージ装置は、
    前記送信部によって送信された前記複数の識別情報を受信する受信部と、
    前記受信部によって受信された前記複数の識別情報と、当該第2ストレージ装置に格納される複数のデータを識別するための複数の識別情報とが同一であるかを判定する判定部と、
    前記複数の識別情報のうち、前記判定部によって同一であると判定された識別情報を前記第1ストレージ装置に通知することによって、前記第1ストレージ装置にデータを移行する移行処理部と、
    を備えることを特徴とする、ストレージシステム。
  6. 第1ストレージ装置と第2ストレージ装置とを有し、前記第2ストレージ装置から前記第1ストレージ装置に対してデータを移行するストレージシステムにおけるデータ転送方
    法であって、
    前記第1ストレージ装置は、
    当該第1ストレージ装置に備えられる記憶装置に格納されている複数のデータのデータ毎の重複度を決定し、
    決定された前記重複度に基づき、前記複数のデータを識別するための複数の識別情報を前記第2ストレージ装置に送信する順序を決定し、
    決定された前記順序に基づき、前記複数の識別情報を前記第2ストレージ装置に送信し、
    前記第2ストレージ装置は、
    前記第1ストレージ装置によって送信された前記複数の識別情報を受信し、
    受信された前記複数の識別情報と、当該第2ストレージ装置に格納される複数のデータを識別するための複数の識別情報とが同一であるかを判定し、
    前記複数の識別情報のうち、同一であると判定された識別情報を前記第1ストレージ装置に通知することによって、前記第1ストレージ装置にデータを移行する、
    ことを特徴とする、データ転送方法。
JP2015018372A 2015-02-02 2015-02-02 ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法 Active JP6476932B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015018372A JP6476932B2 (ja) 2015-02-02 2015-02-02 ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法
US14/972,712 US9977620B2 (en) 2015-02-02 2015-12-17 Storage device and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015018372A JP6476932B2 (ja) 2015-02-02 2015-02-02 ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法

Publications (2)

Publication Number Publication Date
JP2016143221A JP2016143221A (ja) 2016-08-08
JP6476932B2 true JP6476932B2 (ja) 2019-03-06

Family

ID=56553105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015018372A Active JP6476932B2 (ja) 2015-02-02 2015-02-02 ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法

Country Status (2)

Country Link
US (1) US9977620B2 (ja)
JP (1) JP6476932B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102507743B1 (ko) * 2016-02-04 2023-03-09 삼성전자주식회사 메모리 관리 방법 및 그 전자 장치
US10795860B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC WAN optimized micro-service based deduplication
US10795859B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC Micro-service based deduplication
US10459633B1 (en) 2017-07-21 2019-10-29 EMC IP Holding Company LLC Method for efficient load balancing in virtual storage systems
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
US10860212B1 (en) * 2017-07-21 2020-12-08 EMC IP Holding Company LLC Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier
US10949088B1 (en) 2017-07-21 2021-03-16 EMC IP Holding Company LLC Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US11113153B2 (en) 2017-07-27 2021-09-07 EMC IP Holding Company LLC Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US10481813B1 (en) 2017-07-28 2019-11-19 EMC IP Holding Company LLC Device and method for extending cache operational lifetime
US10929382B1 (en) 2017-07-31 2021-02-23 EMC IP Holding Company LLC Method and system to verify integrity of a portion of replicated data
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
US10817204B1 (en) * 2017-10-11 2020-10-27 EMC IP Holding Company LLC Migration of versioned data between storage devices
JP7306665B2 (ja) * 2018-03-01 2023-07-11 Necソリューションイノベータ株式会社 ストレージ装置、データ移行方法、プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US8768895B2 (en) * 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
JP4871850B2 (ja) 2007-12-04 2012-02-08 株式会社日立製作所 仮想計算機システム及び仮想計算機移行制御方法
US8850426B2 (en) 2009-12-13 2014-09-30 International Business Machines Corporation Managing remote deployment of a virtual machine and service request to be processed by the virtual machines based on network bandwith and storage connectivity
WO2012081099A1 (ja) * 2010-12-15 2012-06-21 富士通株式会社 データ移行プログラム、計算機およびデータ移行方法
JP5632408B2 (ja) * 2012-02-27 2014-11-26 日本電信電話株式会社 データ移行装置およびその動作方法
US9575978B2 (en) * 2012-06-26 2017-02-21 International Business Machines Corporation Restoring objects in a client-server environment

Also Published As

Publication number Publication date
JP2016143221A (ja) 2016-08-08
US9977620B2 (en) 2018-05-22
US20160224274A1 (en) 2016-08-04

Similar Documents

Publication Publication Date Title
JP6476932B2 (ja) ストレージ装置,制御プログラム,ストレージシステム及びデータ転送方法
JP5456063B2 (ja) アロケートオンライトのスナップショットを用いた、ダイナミックストレージ階層化のための方法及びシステム
US9389810B2 (en) Performance-based grouping of storage devices in a storage system
JP4749140B2 (ja) データマイグレーション方法及びシステム
US7900013B2 (en) Method and computer for determining storage device
JP2008217216A (ja) 負荷分散方法及び計算機システム
US9971527B2 (en) Apparatus and method for managing storage for placing backup data into data blocks based on frequency information
JP4905511B2 (ja) 記憶装置の制御部及び制御方法
JP2010086049A (ja) 管理計算機及びその運用方法
JP5104855B2 (ja) 負荷分散プログラム、負荷分散方法、及びストレージ管理装置
JP2015505623A (ja) ステージング・エリアを管理するためのコンピュータ実施プロセス、コンピュータ・プログラム製品、装置
JP2015026112A (ja) ストレージ制御装置、制御プログラム及び制御方法
JP6867578B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9535791B2 (en) Storage control device, non-transitory computer-readable recording medium having stored therein program, and control method
US20160224273A1 (en) Controller and storage system
US20130031320A1 (en) Control device, control method and storage apparatus
US20180307427A1 (en) Storage control apparatus and storage control method
US20140297981A1 (en) Information processing system, storage device, and backup method
JP7404988B2 (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
JP7200746B2 (ja) 制御装置、及び制御プログラム
US20150324127A1 (en) Storage control apparatus and storage control method
US10592349B2 (en) Storage control device and storage apparatus
US20140059305A1 (en) Management apparatus, storage device, and initialization method
US20130151808A1 (en) Allocation device, allocation method and storage device
JP2009294699A (ja) ストレージ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6476932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150