JPWO2013061463A1 - ストレージシステム、及びオブジェクト管理方法 - Google Patents

ストレージシステム、及びオブジェクト管理方法 Download PDF

Info

Publication number
JPWO2013061463A1
JPWO2013061463A1 JP2013540594A JP2013540594A JPWO2013061463A1 JP WO2013061463 A1 JPWO2013061463 A1 JP WO2013061463A1 JP 2013540594 A JP2013540594 A JP 2013540594A JP 2013540594 A JP2013540594 A JP 2013540594A JP WO2013061463 A1 JPWO2013061463 A1 JP WO2013061463A1
Authority
JP
Japan
Prior art keywords
storage device
nas storage
nas
management information
file
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.)
Granted
Application number
JP2013540594A
Other languages
English (en)
Other versions
JP5735124B2 (ja
Inventor
小笠原 裕
裕 小笠原
荒井 仁
仁 荒井
蟹江 誉
誉 蟹江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2013061463A1 publication Critical patent/JPWO2013061463A1/ja
Application granted granted Critical
Publication of JP5735124B2 publication Critical patent/JP5735124B2/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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]

Abstract

ストレージシステムは、第1のNASストレージ装置で管理されているオブジェクトの移行の第2のNASストレージ装置及び第3のNASストレージ装置を含む。第2のNASストレージ装置は、プロセッサと、データを記憶可能な記憶媒体とを含む。第2のNASストレージ装置のプロセッサは、第1のNASストレージ装置から移行が開始されたオブジェクトについて、オブジェクトの実体を第3のNASストレージ装置に移行させる前において、第1のNASストレージ装置におけるオブジェクトのパス情報をオブジェクトの管理情報に含めて記憶媒体に記憶させる。また、プロセッサは、オブジェクトの実体を第1のNASストレージ装置から受け取り、第3のNASストレージ装置に移行させた後に、オブジェクトの管理情報に、第3のNASストレージ装置におけるオブジェクトの実体へのパス情報を格納させ、管理情報を第3のNASストレージ装置に反映させる。

Description

本発明は、例えば、第1のNAS(Network Attached Storage)ストレージ装置で管理されているオブジェクト(ファイル、ディレクトリ)の移行先とする第2のNASストレージ装置及び第3のNASストレージ装置を備えるストレージシステム等に関する。
従来、NASストレージ装置で管理されているファイルやディレクトリなどのオブジェクトを他のNASストレージ装置に移行することが行われている。
例えば、特許文献1には、最新の更新時から一定時間経過したことを契機として、該当するファイルをNAS装置(A)からNAS装置(B)にマイグレーションすることが開示されている。また、特許文献1には、マイグレートされたファイルは、NAS装置(B)上のファイルシステムのファイルとして格納され、NAS装置(A)では、該当するファイルは、マイグレート先のファイルを指し示す情報が記録されたスタブに置き換えられることが開示されている。
特開2011−039805号公報
例えば、第1のNASストレージ装置に管理されているファイルを、第2のNASストレージ装置及び第2のNASストレージに対するアーカイブ用の第3のNASストレージ装置を含むストレージシステムに対して、移行することが行われることがある。
この際に、第1のNASストレージ装置から第2のNASストレージ装置にファイルを移行しつつ、第2のNASストレージ装置から第3のNASストレージ装置に対してファイルを移行し、第2のNASストレージ装置においては、ファイルを第3のNASストレージ装置のファイルを指し示すスタブとすることが行われる。
このような処理の途中において、例えば、第2のNASストレージ装置において、障害等が発生した場合には、第2のNASストレージ装置の記憶媒体を交換した後に、再度、第1のNASストレージ装置からのファイルの移行を開始しなければならず、リストア処理に長時間を要するという問題があった。
本発明は、上記課題に鑑みなされたものであり、その目的は、NASストレージ装置からのデータ移行中に障害が発生した場合において、リストア処理を迅速に実行できるようにするための技術を提供することにある。
本発明の一観点に係るストレージシステムは、第1のNAS(Network Attached Storage)ストレージ装置で管理されているオブジェクトを移行させるための第2のNASストレージ装置及び第3のNASストレージ装置を含む。第2のNASストレージ装置は、プロセッサと、データを記憶可能な記憶媒体とを含む。第2のNASストレージ装置のプロセッサは、第1のNASストレージ装置から移行が開始されたオブジェクトについて、オブジェクトの実体を第3のNASストレージ装置に移行させる前において、第1のNASストレージ装置におけるオブジェクトのパス情報をオブジェクトの管理情報に含めて記憶媒体に記憶させる。また、プロセッサは、オブジェクトの実体を第1のNASストレージ装置から受け取り、第3のNASストレージ装置に移行させた後に、オブジェクトの管理情報に、第3のNASストレージ装置におけるオブジェクトの実体へのパス情報を格納させ、管理情報を第3のNASストレージ装置に反映させる。
図1は、本発明の一実施形態に係るストレージシステムの処理の概要を示す図である。図1Aは、本発明の一実施形態に係るストレージシステムのファイルの移行時の処理の概要を示す図である。図1Bは、本発明の一実施形態に係るストレージシステムのディレクトリの移行時の処理の概要を示す図である。 図2は、本発明の一実施形態に係るストレージシステムの構成図である。 図3は、本発明の一実施形態に係るオブジェクトの管理構造の第1の例を説明する図である。図3Aは、本発明の一実施形態に係るオブジェクトの管理構造を説明する図である。図3Bは、本発明の一実施形態に係るオブジェクトの管理構造の具体例を示す図である。 図4は、本発明の一実施形態に係るオブジェクトの管理構造の第2の例を説明する図である。 図5は、本発明の一実施形態に係るカスタムメタデータの一例を説明する図である。 図6は、本発明の一実施形態に係るダミー状態のオブジェクトの管理構造の一例を示す図である。 図7は、本発明の一実施形態に係るスタブ状態のオブジェクトの管理構造の一例を示す図である。 図8は、本発明の一実施形態に係る実体状態のオブジェクトの管理構造の第1の例を示す図である。 図9は、本発明の一実施形態に係る実体状態のオブジェクトの管理構造の第2の例を示す図である。 図10は、本発明の一実施形態に係るデータ移行開始処理のフローチャートである。 図11は、本発明の一実施形態に係るファイルスタブ化処理のフローチャートである。 図12は、本発明の一実施形態に係るファイル実体化処理のフローチャートである。 図13は、本発明の一実施形態に係るディレクトリ実体化処理のフローチャートである。 図14は、本発明の一実施形態に係る実体移行処理のフローチャートである。 図15は、本発明の一実施形態に係るオンデマンドリストア処理の概要を説明する図である。 図16は、本発明の一実施形態に係る全オブジェクトリストア処理の概要を説明する図である。 図17は、本発明の一実施形態に係るリネーム処理の概要を説明する図である。 図18は、本発明の一実施形態に係るリネーム処理のフローチャートである。 図19は、本発明の一実施形態に係るリストア処理の第1のフローチャートである。 図20は、本発明の一実施形態に係るリストア処理の第2のフローチャートである。 図21は、本発明の一実施形態に係るリストア処理の第3のフローチャートである。 図22は、本発明の一実施形態に係るリストア処理の第4のフローチャートである。 図23は、本発明の変形例に係るオブジェクト削除処理のフローチャートである。 図24は、本発明の変形例に係るリストア処理のフローチャートである。
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えばLANアダプタ、FCアダプタ)を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有するシステム(例えば、NASストレージ装置)が行う処理としても良い。プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムは、プログラムソースからインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
まず、本発明の一実施形態のストレージシステムの概要について説明する。
ストレージシステムは、図2に示すように、第1のNASストレージ装置100、第2のNASストレージ装置200、第3のNASストレージ装置300を備える。ストレージシステムにおいては、第1のNASストレージ装置100に格納されたファイル、ディレクトリ等のオブジェクトを第2のNASストレージ装置200及び第3のNASストレージ装置300に移行する。つまり、第1のNASストレージ装置100がファイル移行元ストレージ装置であり、第2のNASストレージ装置200と第3のNASストレージ装置300とがファイル移行先ストレージ装置となる。
ここで、第1のNASストレージ装置100からオブジェクトを移行する処理について、ファイルの移行処理と、ディレクトリの移行処理とに分けて説明する。
図1は、本発明の一実施形態に係るストレージシステムの処理の概要を示す図である。図1Aは、ファイルの移行時の処理の概要を第2のNASストレージ装置200に着目した図であり、図1Bは、ディレクトリの移行時の処理の概要を第2のNASストレージ装置200に着目した図である。
ファイルの移行が開始される出発点においては、図1Aに示すように、第2のNASストレージ装置200には、ファイル等は格納されていない(時点T1)。ファイルの移行が開始されると、第2のNASストレージ装置200は、第1のNASストレージ装置100のファイルの管理情報に基づいて、ダミー状態のファイルの管理情報(ダミーファイル:図6参照)と、第1のNASストレージ装置100でのファイルのパス情報を含むカスタムメタデータ(図5参照)とを作成する(時点T2)。
第2のNASストレージ装置200は、ダミーファイルを第3のNASストレージ装置300に格納させるとともに、カスタムメタデータを格納させる(時点T3)。ここで、第2のNASストレージ装置200に障害が発生した場合であっても、第3のNASストレージ装置300に格納されたカスタムメタデータのパス情報を利用することにより、第1のNASストレージ装置100におけるファイルを特定してリストアに利用することができる。
次いで、第2のNASストレージ装置200は、第1のNASストレージ装置100のファイルの管理情報に基づいて、ダミーファイルに対して、第1のNASストレージ装置のパス情報を含む拡張属性データ及び拡張属性データへのポインタを追加することにより、管理情報をスタブ化してスタブファイル(図7参照)とする(時点T4)。第2のNASストレージ装置200は、スタブファイルを第3のNASストレージ装置300に格納させる(時点T5)。
次いで、第2のNASストレージ装置200は、第1のNASストレージ装置100から対応するファイルの実体(ファイル実体)を取得し、ファイルを実体化して実体ファイル(ファイル実体及び管理情報:図8参照)とする(時点T6)。なお、第2のNASストレージ装置200において新たに作成されたファイルについては、作成後に時点T6と同様な状態となる。
次いで、第2のNASストレージ装置200は、実体ファイルを第3のNASストレージ装置300に格納させる(時点T7)。この後、第2のNASストレージ装置200は、対応するファイル実体を自身の記憶媒体から削除し、管理情報にファイル実体の第3のNASストレージ装置のパス情報を格納してスタブファイル(図9参照)とし、第3のNASストレージ装置300にスタブファイルを格納させる(時点T8)。ここで、第2のNASストレージ装置200に障害が発生した場合であっても、第3のNASストレージ装置300に格納されたスタブファイルのパス情報を利用することにより、第3のNASストレージ装置300におけるファイルを特定してリストアに利用することができる。
一方、ディレクトリの移行が開始される出発点においては、図1Bに示すように、第2のNASストレージ装置200には、ディレクトリは格納されていない(時点T10)。ディレクトリの移行が開始されると、第2のNASストレージ装置200は、第1のNASストレージ装置100のディレクトリの管理情報に基づいて、ディレクトリのダミー状態の管理情報(ダミーディレクトリ:図6参照)と、第1のNASストレージ装置でのディレクトリのパス情報を含むカスタムメタデータ(図5参照)とを作成する(時点T11)。
第2のNASストレージ装置200は、ダミーディレクトリを第3のNASストレージ装置300に格納させるとともに、カスタムメタデータを格納させる(時点T12)。ここで、第2のNASストレージ装置200に障害が発生した場合であっても、第3のNASストレージ装置300に格納されたカスタムメタデータのパス情報を利用することにより、第1のNASストレージ装置100におけるディレクトリを特定してリストアに利用することができる。
次いで、第2のNASストレージ装置200は、第1のNASストレージ装置100から対応するディレクトリの実体(ディレクトリ実体:dentryリスト)を取得し、ディレクトリを実体化して実体ディレクトリ(ディレクトリ実体及び管理情報:図3参照)とする(時点T13)。なお、第2のNASストレージ装置200において新たに作成されたディレクトリについては、作成後に時点T13と同様な状態となる。
次いで、第2のNASストレージ装置200は、実体ディレクトリを第3のNASストレージ装置300に格納させる(時点T14)。この後、第2のNASストレージ装置200は、対応するディレクトリ実体を自身の記憶媒体から削除し、管理情報にディレクトリ実体の第3のNASストレージ装置のパス情報を格納してスタブディレクトリとし、第3のNASストレージ装置300にスタブディレクトリを格納させる(時点T15)。ここで、第2のNASストレージ装置200に障害が発生した場合であっても、第3のNASストレージ装置300に格納されたスタブディレクトリのパス情報を利用することにより、第3のNASストレージ装置300におけるディレクトリを特定してリストアに利用することができる。
次に、本発明の一実施形態に係るストレージシステムついて詳細に説明する。
図2は、本発明の一実施形態に係るストレージシステムの構成図である。
ストレージシステムは、クライアントコンピュータ(クライアント)10と、第1のNASストレージ装置100と、第2のNASストレージ装置200と、第3のNASストレージ装置300とを備える。クライアント10、第1のNASストレージ装置100、第2のNASストレージ装置200、及び第3のNASストレージ装置300は、LAN(Local Area Network)スイッチ110を介して、相互に接続されている。
クライアント10は、メモリ11と、CPU12と、HDD13と、LANアダプタ14を含む。メモリ11と、CPU12と、HDD13と、LANアダプタ14とは、システムバス15を介して接続されている。
メモリ11は、CPU12によって実行されるプログラムや、CPU12によって利用されるデータを記憶する。本実施形態では、メモリ11は、ファイルI/Oアプリケーション11aを記憶する。ファイルI/Oアプリケーション11aは、ファイルに対するI/Oの指示や、ファイルの新規作成、ファイル、ディレクトリの名称変更、リストア指示、ファイル、ディレクトリの移行指示等をユーザから受け付けて、対応する装置と通信する機能を有する。CPU12は、メモリ11に格納されたプログラムを実行することにより、各種処理を行う。HDD13は、各種情報を記憶する。LANアダプタ14は、LANスイッチ110を介しての他の装置との通信を仲介する。
第1のNASストレージ装置100は、例えば、既知のNASストレージ装置であり、メモリ101と、LANアダプタ102と、CPU103と、HDD104とを含む。メモリ101と、LANアダプタ102と、CPU103と、HDD104とは、システムバス105を介して接続されている。
メモリ101は、CPU103によって実行されるプログラムや、CPU103によって利用されるデータを記憶する。本実施形態では、メモリ101は、ファイルストレージ制御プログラム101aを記憶する。ファイルストレージ制御プログラム101aは、ファイルシステムを管理するための既知のプログラムであり、ファイルに対するI/O処理や、ファイル、ディレクトリの管理情報の送信処理等の機能を有する。CPU103は、メモリ101に格納されたプログラムを実行することにより、各種処理を行う。HDD104は、ファイル、ディレクトリの情報(管理情報、実体)を記憶する。なお、ファイル、ディレクトリの管理情報は、例えば、既存のinode構造体を含んでいてもよい。LANアダプタ102は、LANスイッチ110を介しての他の装置との通信を仲介する。
第2のNASストレージシステム200は、NASヘッド210と、ストレージ装置220とを含む。NASヘッド210と、ストレージ装置220とは、FC(Fibre Channel)スイッチ230を介して通信可能に接続されている。
NASヘッド210は、LANアダプタ211と、メモリ212と、CPU213と、HDD214と、FCアダプタ215とを含む。LANアダプタ211、メモリ212、CPU213、HDD214、及びFCアダプタ215は、システムバス216を介して接続されている。LANアダプタ211は、LANスイッチ110を介しての他の装置との通信を仲介する。メモリ212は、CPU213によって実行されるプログラムや、CPU213によって利用されるデータを記憶する。本実施形態では、メモリ212は、管理プログラム212aと、スタブ管理プログラム212bと、メタデータ管理プログラム212cとを記憶する。管理プログラム212aは、ファイル、ディレクトリの管理に関わる処理や、ファイル、ディレクトリのデータの送受信処理等を実行するためのプログラムである。スタブ管理プログラム212bは、ダミーオブジェクト(ダミーファイル、ダミーオブジェクト)をスタブ化する処理、スタブオブジェクトを更新する処理、スタブオブジェクトを他の装置(例えば、第3のNASストレージ装置)に送信する処理を実行するためのプログラムである。メタデータ管理プログラム212cは、オブジェクト管理情報(inode構造体等)のメタデータ(例えば、inode番号、オブジェクトモード等)の作成、更新等の処理を実行するためのプログラムである。
CPU213は、メモリ212に格納されたプログラムに従って各種処理を実行する。HDD214は、各種情報を記憶する。FCアダプタ215は、FCスイッチ230を介しての他の装置(ストレージ装置220)との通信を仲介する。
ストレージ装置220は、CPU221と、FCアダプタ222と、コントローラ223と、メモリ224と、記憶媒体225とを含む。CPU221と、コントローラ223と、メモリ224と、記憶媒体225とは、システムバス226を介して通信可能に接続されている。
FCアダプタ222は、FCスイッチ230を介しての他の装置(NASヘッド210)との通信を仲介する。メモリ224は、記憶媒体225に書き込むデータ、記憶媒体225から読み出すデータを一時的にキャッシュする。また、メモリ224は、CPU221によって実行されるプログラムや、CPU221によって利用されるデータを記憶する。コントローラ223は、記憶媒体225へのデータの書込み、記憶媒体225からのデータの読み出しを制御する。CPU221は、メモリ224に記憶されたプログラムに従って各種処理を実行する。記憶媒体225は、ファイルシステム名225aと、ファイルシステム225bとを記憶する。ファイルシステム225bには、オブジェクト(ファイル、ディレクトリ等)の実体と、オブジェクトを管理する管理情報とが記憶される。記憶媒体225は、1以上の記憶媒体で構成されていてもよく、記憶媒体としては、SSD(Solid State Drive)装置、HDD装置(SAS:Serial Attached SCSI)、HDD装置(SATA:Serial ATA)のいずれであってもよい。
第3のNASストレージシステム300は、NASヘッド310と、ストレージ装置320とを含む。NASヘッド310と、ストレージ装置320とは、FCスイッチ330を介して通信可能に接続されている。
NASヘッド310は、LANアダプタ311と、メモリ312と、CPU313と、HDD314と、FCアダプタ315とを含む。LANアダプタ311、メモリ312、CPU313、HDD314、及びFCアダプタ315は、システムバス316を介して接続されている。LANアダプタ311は、LANスイッチ110を介しての他の装置との通信を仲介する。メモリ312は、CPU313によって実行されるプログラムや、CPU313によって利用されるデータを記憶する。本実施形態では、メモリ312は、管理プログラム312aを記憶する。管理プログラム312aは、ファイル、ディレクトリの管理に関わる処理や、ファイル、ディレクトリのデータの送受信処理等を実行するためのプログラムである。
CPU313は、メモリ312に格納されたプログラムに従って各種処理を実行する。HDD314は、各種情報を記憶する。FCアダプタ315は、FCスイッチ330を介しての他の装置(ストレージ装置320)との通信を仲介する。
ストレージ装置320は、CPU321と、FCアダプタ322と、コントローラ323と、メモリ324と、記憶媒体325とを含む。CPU321と、コントローラ323と、メモリ324と、記憶媒体325とは、システムバス326を介して通信可能に接続されている。
FCアダプタ322は、FCスイッチ330を介しての他の装置(NASヘッド310)との通信を仲介する。メモリ324は、記憶媒体325に書き込むデータ、記憶媒体325から読み出すデータを一時的にキャッシュする。また、メモリ324は、CPU321によって実行されるプログラムや、CPU321によって利用されるデータを記憶する。コントローラ323は、記憶媒体325へのデータの書込み、記憶媒体325からのデータの読み出しを制御する。CPU321は、メモリ324に記憶されたプログラムに従って各種処理を実行する。記憶媒体325は、第2のNASストレージ装置200の一つのファイルシステムに対応するネームスペース(記憶領域)の名称であるネームスペース名325aと、ネームスペース325bとを記憶する。ネームスペース325bには、第2のNASストレージ装置200から送信されてきたオブジェクト(ファイル、ディレクトリ等)の実体、オブジェクトを管理する管理情報、後述するカスタムメタデータ等が記憶される。記憶媒体325は、1以上の記憶媒体で構成されていてもよい。記憶媒体としては、SSD(Solid State Drive)装置、HDD装置(SAS:Serial Attached SCSI)、HDD装置(SATA:Serial ATA)のいずれであってもよい。なお、本実施形態では、記憶媒体325の記憶容量は、第2のNASストレージ装置200の記憶媒体225の記憶容量よりも大きい。
図3は、本発明の一実施形態に係るオブジェクトの管理構造の第1の例を説明する図である。図3Aは、本発明の一実施形態に係るオブジェクトの管理構造を説明する図である。図3Bは、本発明の一実施形態に係るオブジェクトの管理構造の具体例を示す図である。図3A、図3Bは、オブジェクトがディレクトリである場合の管理構造を示している。
ディレクトリの管理構造には、inode構造体400、dentryリスト410、拡張属性データ420(図4参照)、及びカスタムメタデータ440(図5参照)が含まれる。ここで、dentryリスト410が、ディレクトリの実体(ディレクトリ実体)であり、inode構造体400、拡張属性データ420、カスタムメタデータ440が、ディレクトリの管理情報である。dentryリスト410、拡張属性データ420、及びカスタムメタデータ440については、ディレクトリの状態によって存在しない場合がある。
inode構造体400は、inode番号と、オブジェクトモードと、各種メタデータと、オブジェクト実体へのポインタと、拡張属性データへのポインタと、カスタムメタデータへのポインタとを格納する。
inode番号には、対応するオブジェクトを示すinode番号が格納される。ここで、ファイルシステムの最上位のディレクトリ(ルートディレクトリ)のinode番号は、例えば、“1“である。オブジェクトモードには、当該inode構造体400に対応するオブジェクトの種類が格納される。同図においては、ディレクトリを示すinode構造体であるので、ディレクトリであることを示す情報が格納される。各種メタデータには、オブジェクトの作成日時等が格納される。オブジェクト実体へのポインタには、オブジェクト実体、ディレクトリの場合には、dentryリスト410へのポインタが格納される。ポインタとしては、例えば、記憶媒体上の物理アドレスがある。なお、オブジェクトの実体が存在しない状態、例えば、オブジェクトがダミー状態の場合には、オブジェクト実体へのポインタには、何も設定されない。
拡張属性データへのポインタには、対応する拡張属性データへのポインタが格納される。
ポインタとしては、例えば、記憶媒体上の物理アドレスがある。なお、ディレクトリが拡張属性データの存在しない状態、例えば、ダミー状態である場合には、拡張属性データへのポインタには、何も設定されない。カスタムメタデータへのポインタには、対応するカスタムメタデータ440へのポインタが格納される。ポインタとしては、例えば、記憶媒体上の物理アドレスがある。なお、オブジェクトに対応するカスタムメタデータが存在しない場合には、カスタムメタデータへのポインタには、何も設定されない。
オブジェクトの実体であるdentryリスト410は、オブジェクト名(ディレクトリ名/ファイル名)と、inode番号と、uuidとを対応付けて格納する。オブジェクト名は、ディレクトリの直下に属するオブジェクトの名称を格納する。inode番号は、対応するオブジェクトのinode番号を格納する。uuidは、対応するオブジェクト(管理構造)が格納されている第3のNASストレージ装置上の位置情報(uuid)を格納する。第3のNASストレージ装置300は、このuuidと、オブジェクトの管理構造中での情報種別(inode構造体、オブジェクト実体、拡張属性データ、カスタムメタデータ等の種別)とに基づいて、記憶媒体325のネームスペース325b中の対応する管理構造中の情報の格納位置を特定することができるようになっている。したがって、第3のNASストレージ装置300(具体的には、CPU313)は、uuidと種別情報との指定を受け取ると、対応する情報に対する処理(記憶媒体325からの読み出し、更新)を実行することができる。
dentryリスト410には、例えば、図3Bに示すように、各情報が格納される。図3Bに示すdentryリスト410の一番上のエントリによると、ディレクトリの直下に属するオブジェクトとしては、“file1”があり、そのオブジェクトのinode番号は、“30”であり、第3のNASストレージ装置300では、“uuid1”で示される位置にオブジェクトが格納されていることがわかる。その他のエントリについてもディレクトリの直下に属するオブジェクトである。
図4は、本発明の一実施形態に係るオブジェクトの管理構造の第2の例を説明する図である。図4は、オブジェクトがファイルである場合の管理構造を示している。
ファイルの管理構造には、inode構造体400、拡張属性データ420、カスタムメタデータ440(図5参照)、及びファイルの実体のデータ(ファイル実体)430が含まれる。ここで、inode構造体400、拡張属性データ420、及びカスタムメタデータ440が、ファイルの管理情報である。ファイル実体430、拡張属性データ420、及びカスタムメタデータ440については、ファイルの状態によって存在しない場合がある。
ファイルのinode構造体400は、図3Aで示したディレクトリのinode構造体と構造的には同様であるが格納される内容が異なっている。ここでは、異なる点のみを記載する。オブジェクトモードには、ファイルを示すinode構造体であるので、ファイルであることを示す情報が格納される。オブジェクト実体へのポインタには、ファイル実体430へのポインタが格納される。なお、ファイル実体が存在しない状態、例えば、オブジェクトがダミー状態の場合には、オブジェクト実体へのポインタには、何も設定されない。
拡張属性データ420は、ネームスペースと、第3のNASストレージ装置上のパス情報と、第2のNASストレージ装置上のパス情報と、第1のNASストレージ装置上のパス情報と、スタブビットと、オブジェクト変更ビットと、データ送信済みビットとを格納する。
ネームスペースは、第3のNASストレージ装置300の格納領域であるネームスページの名称である。第3のNASストレージ装置上のパス情報は、第3のNASストレージ装置300の格納領域におけるオブジェクトの格納パスである。第2のNASストレージ装置上のパス情報は、第2のNASストレージ装置200上のオブジェクトの格納パスである。第1のNASストレージ装置上のパス情報は、第1のNASストレージ装置100上のオブジェクトの格納パスである。スタブビットは、第3のNASストレージ装置300にスタブ化されたオブジェクトが格納されているか否かを示すフラグビットである。オブジェクト変更ビットは、第3のNASストレージ装置300にオブジェクト実体が移行された後に、オブジェクト実体が変更されたか否かを示すフラグビットである。データ送信済みビットは、第3のNASストレージ装置300にファイル実体が移行されたか否かを示すフラグビットである。
図5は、本発明の一実施形態に係るカスタムメタデータの一例を説明する図である。
カスタムメタデータ440は、第1のNASストレージ装置内パス情報と、ダミーオブジェクト判定フラグとを格納する。第1のNASストレージ装置内パス情報は、対応するオブジェクトのNASストレージ装置100内の格納パスである。ダミーオブジェクト判定フラグは、対応するオブジェクトがダミーオブジェクトであるか否かを示すフラグである。ダミーオブジェクトの場合には、ダミーオブジェクトフラグが“1”(ON)となる。
図6は、本発明の一実施形態に係るダミー状態のオブジェクトの管理構造の一例を示す図である。
ここで、ダミー状態のオブジェクトをダミーオブジェクトといい、オブジェクトがファイルの場合には、ダミーファイルといい、オブジェクトがディレクトリの場合には、ダミーディレクトリということもある。ダミーオブジェクトの管理構造は、inode構造体400を含み、拡張属性データ420、オブジェクトの実体(ファイル実体430、dentryリスト410)を含まない。inode構造体400には、inode番号、オブジェクトモードは設定されているが、オブジェクト実体へのポインタ及び拡張属性データへのポインタは、設定されていない。
図7は、本発明の一実施形態に係るスタブ状態のオブジェクトの管理構成の一例を示す図である。
ここで、スタブ状態のオブジェクトをスタブオブジェクトといい、オブジェクトがファイルの場合には、スタブファイルといい、オブジェクトがディレクトリの場合には、スタブディレクトリということもある。スタブオブジェクトの管理構造は、inode構造体400と、拡張属性データ420とを含み、オブジェクトの実体(ファイル実体430、dentryリスト410)を含まない。inode構造体400には、inode番号、オブジェクトモード、拡張属性データへのポインタは設定されているが、オブジェクト実体へのポインタは、設定されていない。また、拡張属性データ420には、その時点の状態に応じて、第1のNASストレージ装置上のパス情報、第2のNASストレージ装置上のパス情報、第3のNASストレージ装置上のパス情報の少なくともいずれかに一つに対応するオブジェクト実体の格納パスが格納される。
図8は、本発明の一実施形態に係る実体状態のオブジェクトの管理構成の第1の例を示す図である。図8は、図1に示す時点T6における実体状態のオブジェクトの管理構成を示している。
ここで、実体状態のオブジェクトを実体オブジェクトといい、オブジェクトがファイルの場合には、実体ファイルといい、オブジェクトがディレクトリの場合には、実体ディレクトリということもある。実体オブジェクトの管理構造は、inode構造体400と、拡張属性データ420と、オブジェクト実体(ファイル実体430又はdentryリスト410)とを含む。inode構造体400には、inode番号、オブジェクトモード、実体へのポインタ、拡張属性データへのポインタが設定されている。拡張属性データ420には、第1のNASストレージ装置上のパス情報に、第1のNASストレージ装置における対応するオブジェクト実体の格納パスが格納される。
図9は、本発明の一実施形態に係る実体状態のオブジェクトの管理構成の第2の例を示す図である。図9は、図1に示す時点T7における実体状態のオブジェクトの管理構成を示している。
実体オブジェクトの管理構造は、inode構造体400と、拡張属性データ420と、オブジェクト実体(ファイル実体430又はdentryリスト410)とを含む。inode構造体400には、inode番号、オブジェクトモード、実体へのポインタ、拡張属性データへのポインタが設定されている。拡張属性データ420には、第2のNASストレージ装置上のパス情報に、第2のNASストレージ装置200における対応するオブジェクト実体の格納パスが格納され、第3のNASストレージ装置上のパス情報に、第3のNASストレージ装置300における対応するオブジェクト実体の格納パスが格納される。
次に、本発明の一実施形態に係るストレージシステムにおける処理動作について説明する。
図10は、本発明の一実施形態に係るデータ移行開始処理のフローチャートである。
データ移行開始処理は、第2のNASストレージ装置200のCPU213がクライアント10からデータ移行の指示を受領したことにより開始される。ここで、データ移行の指示としては、所定のオブジェクトのみを移行させる指示であるオンデマンド移行指示と、全てのオブジェクトを移行させる全オブジェクト移行指示とがある。オンデマンド移行処理とは、クライアントコンピュータから第2のNASストレージ装置200がオブジェクトへFile読み出し/書き込みなどの指示を受領した場合に第1のNASストレージ装置100から対象のオブジェクトを移行する処理である。
第2のNASストレージ装置200のCPU213は、第1のNASストレージ装置100に対して、ルートディレクトリ(共有ディレクトリ)の管理情報(データ移行定義:inode構造体及びdentryリスト)を要求し、管理情報を読み込む(ステップS1)。ここで、ルートディレクトリの管理情報は、例えば、第1のNASストレージ装置100に対して、ルートディレクトリのinode番号(例えば、1)を指定することにより、取得することができる。また、第1のNASストレージ装置100におけるdentryリストには、少なくともオブジェクト名と、対応するオブジェクトのinode番号とが格納されている。
次いで、CPU213は、取得した管理情報中のdentryリストを参照することにより、ルートディレクトリの直下のオブジェクトの走査を開始する(ステップS2)。次いで、CPU213は、オブジェクト(ファイル、ディレクトリ)を検出し(ステップS3)、記憶媒体225のファイルシステム225b内に、検出したオブジェクトに対応するダミーオブジェクト、すなわち、同一名のダミーオブジェクト(図6参照)を作成する(ステップS4)。次いで、CPU213は、ダミーオブジェクトを第3のNASストレージ装置300に送信して格納させるとともに、対応するオブジェクトの第1のNASストレージ装置内の格納パスと、ダミーオブジェクトであることを示すダミーオブジェクト判定フラグとを含むカスタムメタデータ440を作成し、カスタムメタデータ440を第3のNASストレージ装置300に送信して格納させる(ステップS5)。ここで、第3のNASストレージ装置300に対してダミーオブジェクトを格納させた場合においては、CPU213は、第3のNASストレージ装置300から対応するオブジェクトを格納する位置情報(uuid)を取得し、このuuidを、当該オブジェクトをエントリとして含むdentryリスト410における当該オブジェクトのuuidとして設定する。次いで、CPU213は、ファイルスタブ化処理(図11参照)に処理を進める。
図11は、本発明の一実施形態に係るファイルスタブ化処理のフローチャートである。
ファイルスタブ化処理では、CPU213は、第3のNASストレージ装置300上に作成した対応するオブジェクトのカスタムメタデータ440を取得し、参照する(ステップS10)。ここで、カスタムメタデータ440は、CPU213が第3のNASストレージ装置300に対して、対応するオブジェクトのuuidと、カスタムメタデータ440を示す情報種別とを含む情報取得要求を送信することにより、第3のNASストレージ装置300から取得することができる。
次いで、CPU213は、カスタムメタデータ440中のダミーオブジェクト判定フラグに基づいて、当該エントリ(オブジェクト)がダミーオブジェクトであるか否かを判定し(ステップS11)、ダミーオブジェクトでない場合(ステップS11でNo)には、ファイル実体化処理(図12参照)に処理を進める。
一方、ダミーオブジェクトである場合(ステップS11でYes)には、CPU213は、当該エントリのオブジェクトがディレクトリであるか否かを判定する(ステップS12)。オブジェクトがディレクトリである場合(ステップS12でYes)には、CPU213は、ディレクトリ実体化処理(図13参照)に処理を進める。一方、オブジェクトがディレクトリでない、すなわちファイルである場合(ステップS12でNo)には、CPU213は、第1のNASストレージ装置100から対応するオブジェクト(ここでは、ファイル)のパス情報を取得し(ステップS13)、当該パス情報に基づいて、ダミーファイルをスタブ化してスタブファイル(図7参照)を生成する。ここで、ダミーファイルをスタブ化してスタブファイルを生成する際には、当該ファイルの拡張属性データ420を記憶媒体225に用意し、inode構造体400の拡張属性データポインタに用意した拡張属性データ420へのポインタを設定し、拡張属性データ420の第1のNASストレージ装置上のパス情報に、取得したパス情報を格納する。なお、図7に示すスタブファイルは、第1のNASストレージ装置100におけるファイルのパスが“/dir1/dir11/file1”であることを示している。
次いで、CPU213は、スタブファイルを第3のNASストレージ装置300に転送して、対応するファイルのスタブファイルとして格納させ(ステップS15)、ファイル実体化処理(図12参照)に処理を進める。
図12は、本発明の一実施形態に係るファイル実体化処理のフローチャートである。
ファイル実体化処理では、CPU213は、記憶媒体225から対応するファイルのスタブファイルを読み込み(ステップS21)、当該ファイルのファイル実体が第1のNASストレージ装置100から第2のNASストレージ装置200に未移行であるか否かを判定する(ステップS22)。ここで、ファイル実体が未移行であるか否かは、inode構造体400のオブジェクト実体へのポインタがあるか否かにより判定できる。
ファイル実体が未移行でない場合(ステップS22でNo)には、CPU213は、処理をステップS29に進める一方、ファイル実体が未移行である場合(ステップS22でYes)には、CPU213は、スタブファイルから対応するファイルの第1のNASストレージ装置100の格納パスを取得し、当該格納パスを用いて、第1のNASストレージ装置100から対応するファイル実体を読み出す(ステップS23)。
次いで、CPU213は、読み出したファイル実体を記憶媒体225内の特定領域内に格納し、inode構造体400のオブジェクト実体へのポインタに格納先のアドレスを設定し(ステップS24)、拡張属性データ420の第2のNASストレージ装置上のパス情報に、ファイル実体を格納した経路パスを格納する(ステップS25)。本実施形態では、経路パスとしては、第1のNASストレージ装置100の経路パスと同一の経路パスとしている。
次いで、CPU213は、このファイルに対応するカスタムメタデータ440において、ダミーオブジェクト判定フラグを、ダミーオブジェクトでないことを示すフラグに変更し、当該カスタムメタデータ440を第3のNASストレージ装置300に送信して、当該カスタムメタデータ440を新たなカスタムメタデータ440として格納させ、さらに、このファイルの管理情報中のinode構造体400及び拡張属性データ420を第3のNASストレージ装置300に転送して、格納させる(ステップS26)。
次いで、CPU213は、記憶媒体225におけるファイルシステムに与えられた記憶領域における記憶領域の消費量(領域消費量)が、上限閾値を超過しているか否かを判定し(ステップS27)、上限閾値を超過していない場合(ステップS27でNo)には、記憶領域に余裕があることを示しているので、ステップS29に処理を進める一方、上限閾値を超過している場合(ステップS27でYes)には、領域消費量を低減するための実体移行処理(図14)を実行し(ステップS28)、その処理終了後に、ステップS29に処理を進める。なお、本実施形態では、第1のNASストレージ装置100から第2のNASストレージ装置200へ1つのオブジェクト実体の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定するようにしているが、例えば、実体が転送されている際に、常に領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよく、また、所定のデータ単位(ブロック)の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよい。
ステップS29では、CPU213は、当該移行処理がオンデマンド処理であるか否かを判定し、オンデマンド処理である場合(ステップS29でYes)には、処理を終了する。
一方、オンデマンド処理でない場合、すなわち、全オブジェクト移動の場合(ステップS29でNo)には、CPU213は、全オブジェクトの移行処理が完了したか否かを判定し(ステップS30)、全オブジェクトの移行処理が完了した場合(ステップS30でYes)には、処理を終了する一方、全オブジェクトの移行処理が完了していない場合(ステップS30でNo)には、処理していない次のエントリのオブジェクトを処理対象として(ステップS31)、図10のステップS3に処理を進める。
図13は、本発明の一実施形態に係るディレクトリ実体化処理のフローチャートである。
ディレクトリ実体化処理では、CPU213は、第1のNASストレージ装置100から対応するオブジェクト(ここでは、ディレクトリ)のパス情報を取得し(ステップS41)、対応するオブジェクトの拡張属性データ420を記憶媒体225に用意し、inode構造体400の拡張属性データポインタに用意した拡張属性データ420へのポインタを設定し、拡張属性データ420の第1のNASストレージ装置上のパス情報に、取得したパス情報を格納する(ステップS42)。
次いで、CPU213は、第1のNASストレージ装置100から対応するオブジェクト(ここでは、ディレクトリ)のdentryリストを取得する(ステップS43)。ここで、dentryリストは、ディレクトリの第1のNASストレージ装置100でのinode番号を含めたdentryリスト要求指示を送信することにより取得することができる。
次いで、CPU213は、取得したdentryリストに基づいて、記憶媒体225のdentryリスト領域にdentryリスト410を作成して格納するとともに、inode構造体400のオブジェクト実体へのポインタにdentryリスト410を格納したアドレスを格納する(ステップS44)。これにより、第2のNASストレージ装置200において、対応するディレクトリが実体化される。
次いで、CPU213は、対応するオブジェクトの拡張属性データ420の第2のNASストレージ装置上のパス情報に、dentryリスト410を格納したパス情報(本実施形態では、第1のNASストレージ装置100でのパス情報と同一)を格納する(ステップS45)。次いで、CPU213は、このディレクトリに対応するカスタムメタデータ440において、ダミーオブジェクト判定フラグを、ダミーオブジェクトでないことを示すフラグに変更し、当該カスタムメタデータ440を第3のNASストレージ装置300に送信して、当該カスタムメタデータ440を新たなカスタムメタデータ440として格納させ、さらに、このディレクトリの管理情報中のinode構造体400及び拡張属性データ420を第3のNASストレージ装置300に転送して、格納させる(ステップS46)。
次いで、CPU213は、記憶媒体225におけるファイルシステムに与えられた記憶領域における記憶領域の消費量(領域消費量)が、上限閾値を超過しているか否かを判定し(ステップS47)、上限閾値を超過していない場合(ステップS47でNo)には、記憶領域に余裕があることを示しているので、ステップS49に処理を進める一方、上限閾値を超過している場合(ステップS47でYes)には、領域消費量を低減するための実体移行処理(図14)を実行し(ステップS48)、その処理終了後に、ステップS49に処理を進める。なお、本実施形態では、第1のNASストレージ装置100から第2のNASストレージ装置200へ1つのオブジェクト実体の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定するようにしていたが、例えば、実体が転送されている際に、常に領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよく、また、所定のデータ単位(ブロック)の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよい。
ステップS49では、CPU213は、当該移行処理がオンデマンド処理であるか否かを判定し、オンデマンド処理である場合(ステップS49でYes)には、当該ディレクトリの配下のオブジェクトを処理対象とし(ステップS51)、図10のステップS3に処理を進める。
一方、オンデマンド処理でない場合、すなわち、全オブジェクト移動の場合(ステップS49でNo)には、CPU213は、処理していない次のエントリのオブジェクトを処理対象として(ステップS50)、図10のステップS3に処理を進める。
図14は、本発明の一実施形態に係る実体移行処理のフローチャートである。
実体移行処理においては、CPU213は、第1のNASストレージ装置100から第2のNASストレージ装置200へのデータ移行を一時停止させて、データ移行を完了したオブジェクトを特定する情報をログとして、メモリ212に格納する(ステップS61)。
次いで、CPU213は、第2のNASストレージ装置200に存在し、且つ第3のNASストレージ装置300に移行されていない全てのオブジェクト実体の移行を実行する(ステップS62)。本実施形態では、第1のNASストレージ装置100から第2のNASストレージ装置200に移行中のオブジェクトだけでなく、第2のNASストレージ装置200で新たに作成したオブジェクトについても実体を移行する対象としている。
次いで、CPU213は、移行したオブジェクトの拡張属性データ420の第1のNASストレージ装置上のパス情報に格納されている経路パスを削除する(ステップS63)。次いで、CPU213は、所定の移行ポリシーに該当するオブジェクトの拡張属性データ420の第3のNASストレージ装置上のパス情報に、当該オブジェクトを格納した第3のNASストレージ装置300の経路パスを格納する(ステップS64)。これにより、オブジェクトの管理構造は、図9に示すようになる。ここで、移行ポリシーとしては、例えば、第1のNASストレージ装置100から第2のNASストレージ装置200に移行した後に、クライアント10から所定期間にわたってアクセスがないオブジェクトを移行対象とするポリシーがある。
次いで、CPU213は、このオブジェクトに対応するカスタムメタデータ440において、ダミーオブジェクト判定フラグを、ダミーオブジェクトでないことを示すフラグに変更し、このカスタムメタデータ440を第3のNASストレージ装置300に送信して、このカスタムメタデータ440を新たなカスタムメタデータ440として格納させ、さらに、このオブジェクトの管理情報中のinode構造体400及び拡張属性データ420を第3のNASストレージ装置300に転送して、格納させる(ステップS65)。
次いで、CPU213は、第2のNASストレージ装置200の記憶媒体225上の送信元のオブジェクト実体の使用領域を解放し(ステップS66)、当該オブジェクト実体の消費量を、第2のNASストレージ装置200上の領域消費量から減算する(ステップS67)。
次いで、CPU213は、領域消費量が下限閾値を超過しているか否かを判定し(ステップS68)、下限閾値を超過している場合(ステップS68でYes)には、さらに、領域消費量を低減する必要があるので、ステップS64に処理を進める。一方、下限閾値を超過していない場合(ステップS68でNo)には、CPU213は、メモリ212のログからデータ移行を完了したオブジェクトを特定する情報を取得して、当該情報により特定されるオブジェクトの次の順番のオブジェクトに対するデータ移行を再開し(ステップS69)、実体移行処理を終了する。
次に、本実施形態に係るストレージシステムにおいて、第2のNASストレージ装置200に障害が発生し、第2のNASストレージ装置200の記憶媒体225の交換後に実行されるリストア処理について説明する。
リストア処理としては、指定されたある特定のオブジェクトを利用できるようにリストアするオンデマンドリストア処理と、全てのオブジェクトをリストアする全オブジェクトリストア処理とがある。
図15は、本発明の一実施形態に係るオンデマンドリストア処理の概要を説明する図である。図15においては、実体化したオブジェクトについては、実線で示し、ダミー状態又はスタブ状態のオブジェクトについては、破線で示している。
図15に示すように第3のNASストレージ装置300に、オブジェクトが管理されている場合において、第2のNASストレージ装置200に対して、“File11”を利用できるようにするオンデマンドリストア指示があると、リストア処理により、指定された“File11”及びその経路となるオブジェクト(“/dir1”、“/dir11”)と、最上位のディレクトリ(“/dir1”)の直下の他のディレクトリ(“/dir12”)は、実体化される。また、最上位のディレクトリ(“/dir1”)の直下のファイル(“File1”)については、ダミー化、又はスタブ化される。それ以外のオブジェクト(“File12“)については、領域1501に示すように、ダミー化も、スタブ化もされない。
図16は、本発明の一実施形態に係る全オブジェクトリストア処理の概要を説明する図である。図16においては、実体化したオブジェクトについては、実線で示し、ダミー状態又はスタブ状態のオブジェクトについては、破線で示している。
図16に示すように第3のNASストレージ装置300に、オブジェクトが管理されている場合において、第2のNASストレージ装置200に対して、全オブジェクトリストア指示があると、リストア処理により、第3のNASストレージ装置300に格納されている全てのオブジェクトが、同様な状態で第2のNASストレージ装置200にリストアされる。
図17は、本発明の一実施形態に係るリネーム処理の概要を説明する図である。図17においては、実体化したオブジェクトについては、実線で示し、ダミー状態又はスタブ状態のオブジェクトについては、破線で示している。
第1のNASストレージ装置100において、図17に示すようにオブジェクトが管理されている場合を例に説明する。ここで、第1のNASストレージ装置100のオブジェクトを第2のNASストレージ装置200及び第3のNASストレージ装置300に移行する処理が実行されると、移行処理の途中においては、第2のNASストレージ装置200及び第3のNASストレージ装置300におけるオブジェクトは、例えば、図16に示すようになる。
このような時点において、例えば、第2のNASストレージ装置200において、“/dir11”を“/dir99”にリネームする指示があった場合には、図17に示すように、“/dir11”であったディレクトリが“/dir99”として管理されるようになる。この時点では、“File11”のファイル名は、“/dir1/dir99/File11”となる。この場合に、ファイル名を使用してリストアしようとすると、該当するファイルが第1のNASストレージ装置100においては、特定できない。この場合には、例えば、ディレクトリ“/dir11”及びその配下のオブジェクトを第1のNASストレージ装置100から第2のNASストレージ装置200に移行した後、ディレクトリ“/dir11”を“/dir99”にリネームすることで実現できるが、処理時間がかかる問題がある。
これに対して、本実施形態では、当該ファイルに対応するカスタムメタデータ440に、第1のNASストレージ装置100における経路パスである“/dir1/dir11/File11”をそのまま維持管理し、カスタムメタデータ440のこの経路パスを利用して、リネームしたディレクトリ(/dir99)の配下のファイルの実体を第1のNASストレージ装置100から短時間で移行することができる。なお、拡張属性に格納される第1のNASストレージ装置100における経路パスである“/dir1/dir11/File11”を用いてもよい。この場合には、ダミーファイルをリストアし、その後スタブ化することにより第2のNASストレージ装置でも拡張属性を参照できるようになる。そして、第2のNASストレージ装置における拡張属性を用いることにより、第3のNASストレージ装置におけるストレージカスタムメタデータ440をリストアのつど参照しなくてもよいという効果がある。
さらに、カスタムメタデータ440中の経路パスを利用しているので、例えば、第2のNASストレージ装置200において、リネーム前と同じ名称の別のディレクトリ“/dir11”が作成された場合であっても、当該ディレクトリに対応する第1のNASストレージ装置100の経路パスが存在しないので、第1のNASストレージ装置100からデータが移行されてしまうことを防止できる。
図18は、本発明の一実施形態に係るリネーム処理のフローチャートである。
リネーム処理においては、第2のNASストレージ装置200のCPU213は、クライアント10からリネーム対象のオブジェクトのパス名及び変更後のオブジェクト名を受け付け(ステップS71)、当該オブジェクトの上位ディレクトリのdentryリスト410において、当該オブジェクトのオブジェクト名を、受け付けた変更後のオブジェクト名に変更する(ステップS72)。次いで、CPU213は、上位ディレクトリの変更後のdentryリスト410を、第3のNASストレージ装置300に送信し、第3のNASストレージ装置300の対応するディレクトリのdentryリスト410を変更後のdentryリスト410に更新させる(ステップS73)。これにより、第2のNASストレージ装置200及び第3のNASストレージ装置300においては、変更後のオブジェクト名でオブジェクトを特定することができるようになる。また、このリネーム処理においては、リネーム対象のオブジェクトに対応するカスタムメタデータ440中の第1のNASストレージ装置100の経路パスを変更することなく維持しているので、リネーム後であっても、第1のNASストレージ装置100における対応するオブジェクトを特定することができる。
次に、本発明の一実施形態に係るリストア処理について説明する。
図19は、本発明の一実施形態に係るリストア処理の第1のフローチャートである。図20は、本発明の一実施形態に係るリストア処理の第2のフローチャートである。図21は、本発明の一実施形態に係るリストア処理の第3のフローチャートである。図22は、本発明の一実施形態に係るリストア処理の第4のフローチャートである。
リストア処理は、例えば、第1のNASストレージ装置100から第2のNASストレージ装置200に対してオブジェクトのデータを移行している途中に、第2のNASストレージ装置200に障害が発生し、第2のNASストレージ装置200の記憶媒体225が交換された後に実行されることとなる。
リストア処理では、第2のNASストレージ装置200のCPU213が、クライアント10等からリストア指示を受領した場合に開始される。なお、リストア処理には以下の2つの処理がある。
1)第2のNASストレージ装置から第3のNASストレージ装置にデータを全リストアする場合:この場合には、指示に従って第2のNASストレージ装置から第3のNASストレージ装置にデータを全てリストアする。この時、第3のNASストレージ装置にデータが移行されていない場合には、第1のNASストレージ装置からデータをリストアする。第1のNASストレージ装置から第2のNASストレージ装置にデータを全リストアする設定になっている場合には、データをリストアするが、第1のNASストレージ装置から第2のNASストレージ装置にデータをオンデマンドリストアする場合には、第2のNASストレージ装置から第3のNASストレージ装置へのデータの全リストア処理とは別に、クライアントコンピュータから第2のNASストレージ装置のオブジェクトへのアクセスがあった場合にリストアする。
2)オンデマンド:この場合には、クライアントコンピュータから第2のNASストレージ装置のオブジェクトへのアクセスがあった場合に第1のNASストレージ装置又は第2のNASストレージ装置からリストアする。
リストア処理が開始されると、CPU213は、最上位ディレクトリ(ルートディレクトリ)のダミーオブジェクトを記憶媒体225に作成する(ステップS81)。具体的には、CPU213は、inode番号“1”、オブジェクトモードがディレクトリを示すinode構造体400を作成する。
次いで、CPU213は、第3のNASストレージ装置300から最上位ディレクトリの管理情報(inode構造体400、dentryリスト410)を取得し(ステップS82)、取得した最上位ディレクトリの管理情報に基づいて、第2のNASストレージ装置200の最上位ディレクトリのオブジェクトを実体化する(ステップS83)。具体的には、CPU213は、取得したinode構造体400の実体へのポインタが示す記憶媒体225の記憶領域に、取得したdentryリスト410を格納するとともに、このポインタを記憶媒体252の最上位ディレクトリのinode構造体400に格納する。
次いで、CPU213は、dentryリスト410に存在するすべてのオブジェクトについてのダミーオブジェクトを作成し(ステップS84)、作成したダミーオブジェクトの一つ(dentryリスト410のエントリの一つ)を対象とする処理に移行する(ステップS85)。
CPU213は、処理対象のオブジェクトに対応するカスタムメタデータ440を第3のNASストレージ装置300から取得し、当該カスタムメタデータ440中のダミーオブジェクト判定フラグを確認する(ステップS86)。ここで、オブジェクトのカスタムメタデータ440は、dentryリスト410における当該オブジェクトのuuidと、カスタムメタデータ440を示す種別とを含むデータ取得要求を、第3のNASストレージ装置300に送信することで取得することができる。なお、オブジェクトに関する他の情報に対しても、オブジェクトに対応するuuidと、対象の情報を示す種別を含めて、第3のNASストレージ装置300に送信することで、取得、更新、削除等をすることができる。
CPU213は、ダミーオブジェクト判定フラグに基づいて、対応するオブジェクトが第3のNASストレージ装置300でダミーであるか否を判定し(ステップS87)、オブジェクトがダミーである場合(ステップS87でYes)には、当該オブジェクトがディレクトリであるか否かを判定する(ステップS88)。ディレクトリであるか否かについては、例えば、第3のNASストレージ装置300からオブジェクトに対応するinode構造体400を取得し、inode構造体400のオブジェクトモードを参照することにより把握することができる。
オブジェクトがディレクトリでない場合、すなわち、ファイルである場合(ステップS88でNo)には、CPU213は、カスタムメタデータ440中の第1のNASストレージ装置内のパス情報に格納された格納パスを用いて、第1のNASストレージ装置100からこのファイルのinode構造体400を取得し(ステップS89)、第2のNASストレージ装置200に記憶しているダミーファイルをスタブ化してスタブファイル(図7を参照)を作成する(ステップS90)。具体的に、CPU213は、対応するファイルの拡張属性データ420を記憶媒体225に格納するとともに、inode構造体400の拡張属性データポインタに格納した拡張属性データ420へのポインタを設定し、拡張属性データ420の第1のNASストレージ装置上のパス情報に、カスタムメタデータ中の格納パスを格納する。
次いで、CPU213は、作成したスタブファイルを第3のNASストレージ装置300に転送して、対応するファイルのスタブファイルとして格納させ(ステップS91)、ステップS99に処理を進める。なお、第2のNASストレージ装置200が、全オブジェクトリストアを実行するように設定されている場合には、ステップS91において、更に第1のNASストレージ装置100からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225にファイル実体を格納する。
一方、オブジェクトがディレクトリである場合(ステップS88でYes)には、CPU213は、カスタムメタデータ400中の第1のNASストレージ装置内のパス情報に格納された格納パスを用いて、第1のNASストレージ装置100からこのファイルのinode構造体及びdentryリストを取得し(ステップS92)、第2のNASストレージ装置200に記憶しているダミーオブジェクトを実体化して実体オブジェクト(図3を参照)を作成する(ステップS93)。具体的に、CPU213は、記憶媒体225に、取得したdentryリストに基づいて、dentryリスト410を作成するとともに、対応するオブジェクトの拡張属性データ420を作成する。更に、CPU213は、inode構造体400の実体へのポインタに、作成したdentryリスト410へのポインタを設定し、inode構造体400の拡張属性データポインタに作成した拡張属性データ420へのポインタを設定し、拡張属性データ420の第1のNASストレージ装置上のパス情報に、カスタムメタデータ440の格納パスを格納する。
次いで、CPU213は、このディレクトリの管理情報中のinode構造体400及び拡張属性データ420を第3のNASストレージ装置300に転送して、格納させ(ステップS94)、ステップS99に処理を進める。
一方、ダミーオブジェクト判定フラグに基づいて、対応するオブジェクトがダミーでない場合(ステップS87でNo)には、当該オブジェクトがディレクトリであるか否かを判定する(ステップS95)。
この結果、オブジェクトがディレクトリである場合(ステップS95でYes)には、CPU213は、第3のNASストレージ装置300からディレクトリに対応するinode構造体400と、dentryリスト410とを取得し(ステップS96)、第2のNASストレージ装置200に実体オブジェクト(図3を参照)を作成し(ステップS97)、ステップS99に処理を進める。具体的に、CPU213は、取得したinode構造体400を記憶媒体225にコピーするとともに、取得したdentryリスト410を、取得したinode構造体400の実体へのポインタの示す記憶媒体225の記憶領域に格納する。
一方、オブジェクトがディレクトリでない場合、すなわち、ファイルである場合(ステップS95でNo)には、CPU213は、第3のNASストレージ装置300からスタブファイル、すなわち、ファイルに対応するinode構造体400と、拡張属性データ420とを取得し、第2のNASストレージ装置200の記憶媒体225に、inode構造体400と、拡張属性データ420とをリストアし(ステップS98)、ステップS99に処理を進める。なお、第2のNASストレージ装置200が、全オブジェクトリストアを実行するように設定されている場合には、ステップS98において、更に第3のNASストレージ装置300からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225の所定の領域にファイル実体を格納する。
ステップS99では、CPU213は、最上位のディレクトリの直下の全てのオブジェクトに対して処理済か否かを判定し、全てのオブジェクトに対して処理済でない場合(ステップS99でNo)には、次のエントリに対する処理に移行し(ステップS100)、ステップS86の処理に進む。一方、全てのオブジェクトに対して処理済である場合(ステップS99でYes)には、図20に示すステップS110に処理を進める。この時点までの処理により、最上位ディレクトリと、その直下のオブジェクトについて、スタブ化、又は実体化がされる。なお、第2のNASストレージ装置200が、オンデマンドリストアを実行するように設定されている場合には、オブジェクトがファイルのときに、ファイルのスタブ化にかかわる処理(ステップS89〜S91、S98)は、実行しない。
図20のステップS110では、CPU213は、第3のNASストレージ装置から第2のNASストレージ装置へのリストアが全オブジェクトリストアを実行する設定であるか否かを判定し(ステップS110)、全オブジェクトリストアを実行する設定である場合(ステップS110でYes)には、次のエントリのパスを指定し、ステップS113に処理に進める一方、全オブジェクトリストアを実行する設定でない場合、すなわち、オンデマンドリストアを実行する設定である場合(ステップS110でNo)には、この状態で処理を終了し、その後、クライアント10からオンデマンドリストア処理要求を受信した場合(ステップS112)には、ステップS113に処理を進める。なお、オンデマンドリストア処理要求には、リストアの目的のファイルのパスの指定が含まれている。
ステップS113では、CPU213は、第3のNASストレージ装置300から指定されたパスのオブジェクト(オンデマンドリストアを実行する設定の場合には、指定されたパスのディレクトリ)の管理情報を取得し(ステップS113)、取得した管理情報に基づいて、第2のNASストレージ装置200に対応するオブジェクトのダミーオブジェクトを作成する(ステップS114)。次いで、CPU213は、対応するオブジェクトのカスタムメタデータ440を第3のNASストレージ装置300から取得し、カスタムメタデータ440のダミーオブジェクト判定フラグに基づいて、当該オブジェクトが第3のNASストレージ装置300でダミーであるか否かを判断し(ステップS115)、図21のステップS121に処理を進める。
図21のステップS121で、当該オブジェクトがダミーである場合(ステップS121でYes)には、CPU213は、第1のNASストレージ装置100から第2のNASストレージ装置200への移行が全オブジェクト移行を実行する設定であるか、又は、オンデマンドリストアを実行する設定であるかを判定し(ステップS122)、いずれでもない場合(ステップS122でNo)には、ステップS139に処理を進める。
一方、第1のNASストレージ装置100から第2のNASストレージ装置200への移行が全オブジェクト移行を実行設定である、又は、オンデマンドリストアを実行する設定である場合(ステップS122でYes)には、CPU213は、対応するオブジェクトがディレクトリであるか否かを判定する(ステップS123)。
オブジェクトがディレクトリでない場合、すなわち、ファイルである場合(ステップS123でNo)には、CPU213は、カスタムメタデータ440中の第1のNASストレージ装置内のパス情報に格納された格納パスを用いて、第1のNASストレージ装置100からこのファイルのinode構造体400を取得し(ステップS124)、第2のNASストレージ装置200に記憶しているダミーファイルをスタブ化してスタブファイル(図7を参照)を作成する(ステップS125)。
次いで、CPU213は、作成したスタブファイルを第3のNASストレージ装置300に転送して、対応するファイルのスタブファイルとして格納させ(ステップS126)、第1のNASストレージ装置100からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225にファイル実体を格納し(ステップS127)、ステップS139に処理を進める。
一方、オブジェクトがディレクトリである場合(ステップS123でYes)には、CPU213は、カスタムメタデータ440中の第1のNASストレージ装置内のパス情報に格納された格納パスを用いて、第1のNASストレージ装置100からこのファイルのinode構造体及びdentryリストを取得し(ステップS128)、第2のNASストレージ装置200に記憶しているダミーオブジェクトを実体化して実体オブジェクト(図3を参照)を作成する(ステップS129)。
次いで、CPU213は、このディレクトリの管理情報中のinode構造体400及び拡張属性データ420を第3のNASストレージ装置300に転送して、格納させ(ステップS130)、ステップS139に処理を進める。
一方、ダミーオブジェクト判定フラグに基づいて、対応するオブジェクトがダミーでない場合(ステップS121でNo)には、当該オブジェクトがディレクトリであるか否かを判定する(ステップS131)。
この結果、オブジェクトがディレクトリである場合(ステップS131でYes)には、CPU213は、第3のNASストレージ装置300からディレクトリに対応するinode構造体400と、dentryリスト410とを取得し(ステップS132)、第2のNASストレージ装置200に実体オブジェクト(図3を参照)を作成し(ステップS133)、ステップS139に処理を進める。
一方、オブジェクトがディレクトリでない場合、すなわち、ファイルである場合(ステップS131でNo)には、CPU213は、第3のNASストレージ装置300にオブジェクト実体があるか否かを判定する(ステップS134)。
この結果、第3のNASストレージ装置300にオブジェクト実体がある場合(ステップS134でYes)には、第3のNASストレージ装置300からファイルに対応するinode構造体400と、拡張属性データ420とを取得し、第2のNASストレージ装置200の記憶媒体225に、inode構造体400と、拡張属性データ420とをリストアし(ステップS135)、第3のNASストレージ装置300からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225にファイル実体を格納し(ステップS136)、ステップS139に処理を進める。
一方、第3のNASストレージ装置300にオブジェクト実体がない場合(ステップS134でNo)には、CPU213は、第3のNASストレージ装置300からファイルに対応するinode構造体400と、拡張属性データ420とを取得し、第2のNASストレージ装置200の記憶媒体225に、inode構造体400と、拡張属性データ420とをリストアする(ステップS137)。次いで、CPU213は、拡張属性データ420の第1のNASストレージ装置上のパス情報の経路パスに基づいて、第1のNASストレージ装置100からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225にファイル実体を格納し(ステップS138)、ステップS139に処理を進める。
ステップS139では、CPU213は、所定のオブジェクトに対する処理が終了したか否かを判定する。ここで、所定のオブジェクトとは、全オブジェクトリストアを実行する設定の場合には、全てのオブジェクトであり、オンデマンドリストアの実行をする設置の場合には、目的ファイルを格納するディレクトリである。
この結果、所定のオブジェクトに対する処理が終了していない場合(ステップS139でNo)には、CPU213は、処理対象を次のエントリ(オンデマンドリストアを実行する設定の場合には、指定されたパスにおける次(下位)のディレクトリ)に移行し(ステップS140)、図20のステップS113に処理を進める。一方、所定のオブジェクトに対する処理が終了している場合(ステップS139でYes)には、CPU213は、全オブジェクトリストアであるか否かを判定し(ステップS141)、全オブジェクトリストアを実行する設定である場合(ステップS141でYes)には、処理を終了する一方、全オブジェクトリストアを実行する設定でない場合、すなわちオンデマンドリストアを実行する設定の場合(ステップS141でNo)には、図22のステップS151に処理を進める。この時点においては、例えば、オンデマンドリストアの目的のファイルのパスが“dir0/dir1/dir2/file1”である場合には、dir0、dir1、dir2のディレクトリが実体化されている状態となっている。
図22のステップS151では、CPU213は、第3のNASストレージ装置300からオンデマンドリストアの目的のファイルの管理情報を取得し(ステップS151)、取得した管理情報に基づいて、第2のNASストレージ装置200に対応するファイルのダミーファイルを作成する(ステップS152)。次いで、CPU213は、対応するファイルのカスタムメタデータ440を第3のNASストレージ装置300から取得し、カスタムメタデータ440のダミーオブジェクト判定フラグに基づいて、当該ファイルが第3のNASストレージ装置300でダミーであるか否かを判断する(ステップS153)。
この結果、当該ファイルがダミーである場合(ステップS154でYes)には、CPU213は、カスタムメタデータ440中の第1のNASストレージ装置内のパス情報に格納された格納パスを用いて、第1のNASストレージ装置100からこのファイルのinode構造体400を取得し(ステップS155)、第2のNASストレージ装置200に記憶しているダミーファイルをスタブ化してスタブファイル(図7を参照)を作成する(ステップS156)。
次いで、CPU213は、作成したスタブファイルを第3のNASストレージ装置300に転送して、対応するファイルのスタブファイルとして格納させ(ステップS157)、第1のNASストレージ装置100からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225にファイル実体を格納し(ステップS158)、処理を終了する。
一方、ファイルがダミーでない場合(ステップS154でNo)には、CPU213は、第3のNASストレージ装置300に格納されている当該ファイルに対応する拡張属性データ420を取得し、拡張属性データ420のデータ送信済ビットがONであるか否かを判定する(ステップS159)。
この結果、データ送信済ビットがONである場合(ステップS159でYes)には、第3のNASストレージ装置300からファイルに対応するinode構造体400と、拡張属性データ420とを取得し、第2のNASストレージ装置200の記憶媒体225に、inode構造体400と、拡張属性データ420とをリストアし(ステップS160)、第3のNASストレージ装置300からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225にファイル実体を格納し(ステップS161)、処理を終了する。
一方、データ送信済ビットがONでない場合(ステップS159でNo)には、CPU213は、第3のNASストレージ装置300からファイルに対応するinode構造体400と、拡張属性データ420とを取得し、第2のNASストレージ装置200の記憶媒体225に、inode構造体400と、拡張属性データ420とをリストアする(ステップS162)。次いで、CPU213は、拡張属性データ420の第1のNASストレージ装置上のパス情報の経路パスに基づいて、第1のNASストレージ装置100からファイル実体を取得し、第2のNASストレージ装置200の記憶媒体225にファイル実体を格納し(ステップS163)、処理を終了する。ステップS151〜S163の処理により、第2のNASストレージ装置200の記憶媒体225には、オンデマンドリストアの目的のファイルのファイル実体がリストアされることとなる。
次に、本発明の一実施形態に係るストレージシステムにおける変形例について説明する。なお、変形例に係るストレージシステムにおける各構成は、図2に示すストレージシステムと同様であるので、図2の符号を用いて説明する。
変形例に係るストレージシステムにおいては、全オブジェクトリストア処理において、第2のNASストレージ装置200において削除されたオブジェクトについては、リストアしないようにしている。
図23は、本発明の変形例に係るオブジェクト削除処理のフローチャートである。
オブジェクト削除処理では、第2のNASストレージ装置200のCPU213が、クライアント10からオブジェクトを対象とする削除要求を受け取ると(ステップS171)、第3のNASストレージ装置300から削除対象のオブジェクトの拡張属性データ420を読み込み(ステップS172)、拡張属性データ420に、第1のNASストレージ装置100のパス情報が格納されているか否かを判定する(ステップS173)。
この結果、第1のNASストレージ装置100のパス情報が格納されている場合(ステップS173でYes)には、CPU213は、第3のNASストレージ装置300内の拡張属性データ420を削除させ(ステップS174)、第3のNASストレージ装置300のカスタムメタデータ440のダミーオブジェクト判定フラグをダミーオブジェクトであることを示すフラグに設定し(ステップS175)、第2のNASストレージ装置200の記憶媒体225内の削除リストに当該オブジェクトの第1のNASストレージ装置100における経路パスを追加し(ステップS176)、ステップS181の処理に進める。
一方、第1のNASストレージ装置100のパス情報が格納されていない場合(ステップS173でNo)には、CPU213は、拡張属性データ420中の第3のNASストレージ装置300のパス情報を検索し(ステップS177)、第3のNASストレージ装置300内の拡張属性データ420、オブジェクト実体を削除させ(ステップS178)、第3のNASストレージ装置300のカスタムメタデータ440のダミーオブジェクト判定フラグをダミーオブジェクトであることを示すフラグに設定し(ステップS179)、第2のNASストレージ装置200の記憶媒体225内の削除リストに、当該オブジェクトのカスタムメタデータ440中の第1のNASストレージ装置100における経路パスを追加し(ステップS180)、ステップS181の処理に進める。
ステップS181では、CPU213は、記憶媒体225の削除リストを第3のNASストレージ装置300に転送して、格納させる。
図24は、本発明の変形例に係るリストア処理のフローチャートである。
変形例に係るリストア処理は、第1実施形態に係る図21に示すフローチャートの処理を、図24に示すフローチャートに置き換えたものである。ここでは、図21に示す処理と異なる部分について説明する。
ステップS122で、第1のNASストレージ装置100から第2のNASストレージ装置200への移行が全オブジェクト移行であった、又は、オンデマンドリストアである場合(ステップS122でYes)には、CPU213は、第3のNASストレージ装置300から削除リストを取得し、対応するオブジェクトの第1のNASストレージ装置100での経路パスが、削除リストに含まれているか否かを判定する(ステップS191)。
この結果、対応するオブジェクトの第1のNASストレージ装置100での経路パスが、削除リストに含まれていない場合(ステップS191でNo)には、CPU213は、ステップS123に処理を進める。一方、対応するオブジェクトの第1のNASストレージ装置100での経路パスが、削除リストに含まれている場合(ステップS191でYes)には、対応するオブジェクトが第2のNASストレージ装置200で削除されており、リストアする必要がないことを意味しているとして、オブジェクトのスタブ化や、実体化をすることなく、ステップS139に処理を進める。これにより、第2のNASストレージ装置200で削除されたオブジェクトに対するスタブ化、実体化の処理の実行を防ぐことができるので、リストア処理を効率化することができる。
以上、本発明の実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
100 第1のNASストレージ装置、200 第2のNASストレージ装置、300 第3のNASストレージ装置。

Claims (12)

  1. 第1のNAS(Network Attached Storage)ストレージ装置で管理されているオブジェクトを移行させるための第2のNASストレージ装置及び第3のNASストレージ装置を含むストレージシステムであって、
    前記第2のNASストレージ装置は、プロセッサと、データを記憶可能な記憶媒体とを含み、
    前記プロセッサは、
    前記第1のNASストレージ装置から移行が開始されたオブジェクトについて、前記オブジェクトの実体を前記第3のNASストレージ装置に移行させる前において、前記第1のNASストレージ装置における前記オブジェクトのパス情報を、前記オブジェクトの管理情報に含めて前記記憶媒体に記憶させ、
    前記オブジェクトの実体を前記第1のNASストレージ装置から受け取り、前記第3のNASストレージ装置に移行させた後に、前記オブジェクトの前記管理情報に、前記第3のNASストレージ装置における前記オブジェクトの実体へのパス情報を格納させ、前記管理情報を前記第3のNASストレージ装置に反映させる
    ストレージシステム。
  2. 前記プロセッサは、
    前記オブジェクトの前記管理情報を更新した場合には、前記オブジェクトの前記管理情報を、前記第3のNASストレージ装置に反映させる
    請求項1に記載のストレージシステム。
  3. 前記プロセッサは、
    前記第1のNASストレージ装置におけるオブジェクトの移行を開始した場合に、前記オブジェクトに対するダミー状態の管理情報を前記記憶媒体に格納し、
    ダミー状態の前記管理情報を前記第3のNASストレージ装置に反映させる
    請求項2に記載のストレージシステム。
  4. 前記プロセッサは、
    前記ダミー状態の管理情報を前記第3のNASストレージ装置に反映させた後に、前記オブジェクトの前記第1のNASストレージ装置におけるパス情報を前記第3のNASストレージ装置に記憶させる
    請求項3に記載のストレージシステム。
  5. 前記プロセッサは、
    前記オブジェクトがファイルである場合において、ダミー状態の管理情報を前記第3のNASストレージ装置に反映させた後に、前記記憶媒体の前記オブジェクトの管理情報に対して、前記オブジェクトの前記第1のNASストレージ装置における前記オブジェクトへのパス情報を格納してスタブ状態とし、
    スタブ状態の前記管理情報を前記第3のNASストレージ装置に反映させる
    請求項4に記載のストレージシステム。
  6. 前記プロセッサは、
    前記オブジェクトがファイルである場合において、スタブ状態の管理情報を前記第3のNASストレージ装置に反映させた後に、前記第1のNASストレージ装置から前記オブジェクトの実体を取得して前記記憶媒体に格納するとともに、前記管理情報に前記オブジェクトの実体へのポインタを登録し、
    前記管理情報と、前記オブジェクトの実体を前記第3のNASストレージ装置に反映させる
    請求項5に記載のストレージシステム。
  7. 前記プロセッサは、
    前記オブジェクトがディレクトリである場合において、ダミー状態の管理情報を前記第3のNASストレージ装置に反映させた後に、前記管理情報に前記オブジェクトの前記第1のNASストレージ装置における前記オブジェクトへのパス情報を格納し、
    前記第1のNASストレージ装置から前記オブジェクトの実体を取得して前記記憶媒体に格納するとともに、前記管理情報に前記オブジェクトの実体へのポインタを登録し、
    前記管理情報と、前記オブジェクトの実体を前記第3のNASストレージ装置に反映させる
    請求項6に記載のストレージシステム。
  8. 前記プロセッサは、
    前記第1のNASストレージ装置から移行が開始されたオブジェクトについて、前記オブジェクトの実体を前記第3のNASストレージ装置に移行させる前において、前記移行対象のオブジェクトの前記第1のNASストレージ装置におけるパス情報を前記第3のNASストレージ装置に記憶させ、
    前記オブジェクトの名称変更を受け付け、
    前記名称変更を受け付けたオブジェクトの名称を記憶している管理情報における前記オブジェクトの名称を変更させ、
    前記第3のNASストレージ装置に、前記オブジェクトの前記第1のNASストレージ装置におけるパス情報を記憶させた状態を維持させつつ、前記管理情報を反映させる
    請求項1に記載のストレージシステム。
  9. 前記プロセッサは、
    前記第2のNASストレージ装置の前記記憶媒体を新たな記憶媒体に交換した後において、リストア候補のオブジェクトについての管理情報を前記第3のNASストレージ装置から取得し、前記管理情報に第3のNASストレージ装置におけるパス情報が含まれている場合には、前記パス情報に基づいて、前記第3のNASストレージ装置からオブジェクトの実体を取得し、前記記憶媒体に格納し、
    前記管理情報に前記第3の前記管理情報に第3のNASストレージ装置におけるパス情報が含まれていないが、前記第1のNASストレージ装置におけるパス情報が含まれている場合には、前記パス情報に基づいて、前記第1のNASストレージ装置からオブジェクトの実体を取得し、前記記憶媒体に格納する
    請求項1に記載のストレージシステム。
  10. 前記プロセッサは、
    オブジェクトの削除要求を受け付けた場合に、削除対象のオブジェクトの前記第1のNASストレージ装置におけるパス情報を特定し、前記パス情報を前記第3のNASストレージ装置に記憶させ、
    前記第2のNASストレージ装置の前記記憶媒体を新たな記憶媒体に交換した後において、前記第3のNASストレージ装置から削除対象のオブジェクトの前記第1のNASストレージ装置における前記パス情報を取得し、
    リストア候補のオブジェクトの前記第1のNASストレージ装置におけるパス情報が、削除対象のオブジェクトの前記第1のNASストレージ装置におけるパス情報と一致する場合には、前記オブジェクトについては、前記第1のNASストレージ装置からオブジェクトの実体を取得して前記記憶媒体に格納する処理を実行しない
    請求項9に記載のストレージシステム。
  11. 前記プロセッサは、
    前記削除対象のオブジェクトの前記第1のNASストレージ装置におけるパス情報を1以上含む削除リストを作成し、
    当該削除リストを前記第3のNASストレージ装置に格納させておき、
    前記第2のNASストレージ装置の前記記憶媒体を新たな記憶媒体に交換した後において、前記削除リストを前記第3のNASストレージ装置から取得し、
    前記削除リスト中のパス情報を用いて、リストア候補のオブジェクトの前記第1のNASストレージ装置におけるパス情報と、削除対象のオブジェクトの前記第1のNASストレージ装置におけるパス情報との一致を判断する
    請求項10に記載のストレージシステム。
  12. 第1のNASストレージ装置で管理されているオブジェクトを移行させるための第2のNASストレージ装置及び第3のNASストレージ装置を含むストレージシステムにおけるオブジェクト管理方法であって、
    前記第2のNASストレージ装置では、
    前記第1のNASストレージ装置から移行が開始されたオブジェクトについて、前記オブジェクトの実体を前記第3のNASストレージ装置に移行させる前において、前記前記第1のNASストレージ装置のパス情報を、前記オブジェクトの管理情報に含めて前記記憶媒体に記憶させ、
    前記オブジェクトの実体を前記第1のNASストレージ装置から受け取り、前記第3のNASストレージ装置に移行させた後に、前記オブジェクトの前記管理情報に、前記第3のNASストレージ装置における前記オブジェクト実体へのパス情報を格納させる、前記管理情報を前記第3のNASストレージ装置に反映させる
    オブジェクト管理方法。
JP2013540594A 2011-10-28 2011-10-28 ストレージシステム、及びオブジェクト管理方法 Expired - Fee Related JP5735124B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/074970 WO2013061463A1 (ja) 2011-10-28 2011-10-28 ストレージシステム、及びオブジェクト管理方法

Publications (2)

Publication Number Publication Date
JPWO2013061463A1 true JPWO2013061463A1 (ja) 2015-04-02
JP5735124B2 JP5735124B2 (ja) 2015-06-17

Family

ID=48167326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013540594A Expired - Fee Related JP5735124B2 (ja) 2011-10-28 2011-10-28 ストレージシステム、及びオブジェクト管理方法

Country Status (5)

Country Link
US (2) US8725695B2 (ja)
EP (1) EP2728484A4 (ja)
JP (1) JP5735124B2 (ja)
CN (1) CN103748564B (ja)
WO (1) WO2013061463A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017072965A (ja) * 2015-10-07 2017-04-13 株式会社バッファロー アーカイブシステム、アーカイブ装置およびアーカイブするためのコンピュータプログラム

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9092446B2 (en) * 2012-11-29 2015-07-28 Hitachi, Ltd. Storage system and file management method
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US20150026462A1 (en) * 2013-03-15 2015-01-22 Dataguise, Inc. Method and system for access-controlled decryption in big data stores
WO2014196077A1 (ja) * 2013-06-07 2014-12-11 株式会社日立製作所 ファイルストレージ装置及びデータ管理方法
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
DE102013114214A1 (de) * 2013-12-17 2015-06-18 Fujitsu Technology Solutions Intellectual Property Gmbh POSIX-kompatibles Dateisystem, Verfahren zum Erzeugen einer Dateiliste und Speichervorrichtung
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US10210191B2 (en) * 2014-03-20 2019-02-19 International Business Machines Corporation Accelerated access to objects in an object store implemented utilizing a file storage system
US20150268989A1 (en) * 2014-03-24 2015-09-24 Sandisk Enterprise Ip Llc Methods and Systems for Extending the Object Store of an Application Virtual Machine
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
WO2016030972A1 (ja) * 2014-08-27 2016-03-03 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法及びサーバ装置及びサーバ装置の制御方法
US10282273B1 (en) 2015-08-06 2019-05-07 Mesosphere, Inc. Application monitoring using workload metadata
US10949569B2 (en) * 2018-10-17 2021-03-16 International Business Machines Corporation Adaptive on-device storage management across multiple applications
US10346085B1 (en) * 2019-02-07 2019-07-09 Semperis Distributed restore anywhere for directory services
CN113672558B (zh) * 2021-08-29 2023-08-29 中盾创新数字科技(北京)有限公司 一种基于soa的档案管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004025404A2 (en) * 2002-09-10 2004-03-25 Exagrid Systems, Inc. Method and apparatus for server share migration and server recovery using hierarchical storage management
US20090300079A1 (en) * 2008-05-30 2009-12-03 Hidehisa Shitomi Integrated remote replication in hierarchical storage systems
US20110040729A1 (en) * 2009-08-12 2011-02-17 Hitachi, Ltd. Hierarchical management storage system and storage system operating method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4319017B2 (ja) * 2003-12-02 2009-08-26 株式会社日立製作所 ストレージシステムの制御方法、ストレージシステム、及び記憶装置
US7293133B1 (en) * 2003-12-31 2007-11-06 Veritas Operating Corporation Performing operations without requiring split mirrors in a multi-class file system
US7386752B1 (en) * 2004-06-30 2008-06-10 Symantec Operating Corporation Using asset dependencies to identify the recovery set and optionally automate and/or optimize the recovery
US8315973B1 (en) * 2004-09-28 2012-11-20 Symantec Operating Corporation Method and apparatus for data moving in multi-device file systems
CA2954888C (en) * 2005-06-24 2019-06-04 Catalogic Software, Inc. System and method for high performance enterprise data protection
US7657796B1 (en) * 2005-09-30 2010-02-02 Symantec Operating Corporation System and method for distributed storage verification
CA2632935C (en) * 2005-12-19 2014-02-04 Commvault Systems, Inc. Systems and methods for performing data replication
US7962709B2 (en) * 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
US7461222B2 (en) * 2006-02-14 2008-12-02 Hitachi, Ltd. Method for mirroring data between clustered NAS systems
JP4772569B2 (ja) * 2006-04-07 2011-09-14 株式会社日立製作所 共通名前空間においてディレクトリ単位のマイグレーションを実行するシステム及び方法
US7526668B2 (en) * 2006-06-08 2009-04-28 Hitachi, Ltd. Failover method of remotely-mirrored clustered file servers
US7882393B2 (en) * 2007-03-28 2011-02-01 International Business Machines Corporation In-band problem log data collection between a host system and a storage system
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
US20100153740A1 (en) * 2008-12-17 2010-06-17 David Dodgson Data recovery using error strip identifiers
JP5331555B2 (ja) * 2009-04-23 2013-10-30 株式会社日立製作所 データ移行システムおよびデータ移行方法
US8352422B2 (en) * 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
WO2013171787A2 (en) * 2012-05-15 2013-11-21 Hitachi, Ltd. File storage system and load distribution method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004025404A2 (en) * 2002-09-10 2004-03-25 Exagrid Systems, Inc. Method and apparatus for server share migration and server recovery using hierarchical storage management
JP2005538469A (ja) * 2002-09-10 2005-12-15 イグザグリッド システムズ, インコーポレイテッド 階層型格納管理を用いるサーバシェア移送およびサーバ回復のための方法および装置
US20090300079A1 (en) * 2008-05-30 2009-12-03 Hidehisa Shitomi Integrated remote replication in hierarchical storage systems
JP2009289252A (ja) * 2008-05-30 2009-12-10 Hitachi Ltd 階層ストレージシステムでのリモート複製
US20110040729A1 (en) * 2009-08-12 2011-02-17 Hitachi, Ltd. Hierarchical management storage system and storage system operating method
JP2011039805A (ja) * 2009-08-12 2011-02-24 Hitachi Ltd 階層管理ストレージシステムおよびストレージシステムの運用方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017072965A (ja) * 2015-10-07 2017-04-13 株式会社バッファロー アーカイブシステム、アーカイブ装置およびアーカイブするためのコンピュータプログラム

Also Published As

Publication number Publication date
JP5735124B2 (ja) 2015-06-17
US20130110891A1 (en) 2013-05-02
US8725695B2 (en) 2014-05-13
CN103748564B (zh) 2016-06-29
WO2013061463A1 (ja) 2013-05-02
EP2728484A1 (en) 2014-05-07
EP2728484A4 (en) 2015-06-03
CN103748564A (zh) 2014-04-23
US20140237204A1 (en) 2014-08-21
US9501241B2 (en) 2016-11-22

Similar Documents

Publication Publication Date Title
JP5735124B2 (ja) ストレージシステム、及びオブジェクト管理方法
JP5895099B2 (ja) 移行先ファイルサーバ及びファイルシステム移行方法
US9116913B2 (en) File storage system and file cloning method
US9558205B2 (en) Method for creating clone file, and file system adopting the same
US8904136B2 (en) Optimized shrinking of virtual disks
JP5320557B2 (ja) ストレージシステム
US8543548B2 (en) Hierarchical management storage system and storage system operating method
JP4451293B2 (ja) 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
US7933936B2 (en) Method and system for automatic management of storage space
CN102870098B (zh) 经由通信网络向远程文件服务器传送文件的本地文件服务器及具有该文件服务器的存储系统
JP5873187B2 (ja) 階層化ストレージシステムの管理装置及び管理方法
US8538924B2 (en) Computer system and data access control method for recalling the stubbed file on snapshot
US20060282627A1 (en) Method and system for automatic write request suspension
US20140040331A1 (en) Computer system, file management method and metadata server
CN104081391A (zh) 使用文件克隆的单实例化方法和利用该方法的文件存储系统
US20140074776A1 (en) Re-trim of free space within vhdx
CN106484820A (zh) 一种重命名方法、访问方法及装置
JP2011191862A (ja) ファイル管理装置、ファイル管理システム、およびファイル管理プログラム
US20200073584A1 (en) Storage system and data transfer control method
WO2014109053A1 (ja) ファイルサーバ、ストレージ装置及びデータ管理方法
US20140344538A1 (en) Systems, methods, and computer program products for determining block characteristics in a computer data storage system
US20140019425A1 (en) File server and file management method
US9646012B1 (en) Caching temporary data in solid state storage devices
US10592527B1 (en) Techniques for duplicating deduplicated data
JP2014215686A (ja) データ移行方法、この方法に用いるスクリプトの生成方法、及び情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150223

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150415

R150 Certificate of patent or registration of utility model

Ref document number: 5735124

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees