JP5020673B2 - 重複したファイルの記憶を防ぐコンピュータシステム - Google Patents

重複したファイルの記憶を防ぐコンピュータシステム Download PDF

Info

Publication number
JP5020673B2
JP5020673B2 JP2007082052A JP2007082052A JP5020673B2 JP 5020673 B2 JP5020673 B2 JP 5020673B2 JP 2007082052 A JP2007082052 A JP 2007082052A JP 2007082052 A JP2007082052 A JP 2007082052A JP 5020673 B2 JP5020673 B2 JP 5020673B2
Authority
JP
Japan
Prior art keywords
file
logical storage
ldev
files
migration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007082052A
Other languages
English (en)
Other versions
JP2008242788A (ja
Inventor
泰明 中村
英夫 田渕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007082052A priority Critical patent/JP5020673B2/ja
Priority to CN200710169354.9A priority patent/CN101276366B/zh
Priority to EP08250064A priority patent/EP1975823A3/en
Priority to US11/972,659 priority patent/US7900000B2/en
Publication of JP2008242788A publication Critical patent/JP2008242788A/ja
Priority to US13/037,766 priority patent/US8151066B2/en
Priority to US13/437,959 priority patent/US8407431B2/en
Application granted granted Critical
Publication of JP5020673B2 publication Critical patent/JP5020673B2/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • 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

Description

本発明は、電子的なファイルの記憶制御技術に関する。
例えば、NAS(Network Attached Storage)ノード(例えばファイルサーバ)がファイルを管理し、そのファイルの実体は、NASノード内或いはNASノード外の記憶装置に格納される。
一般に、ファイルの内容が同じであっても、ファイル名が異なっていれば、記憶装置に記憶される。この場合、全く同じ内容のファイル(つまり、内容が完全に重複したファイル)が記憶装置に記憶されるので、その分、無駄に記憶容量が消費されることになる。そこで、重複したファイルの記憶を防ぐための記憶制御技術として、例えば、特許文献1及び2に開示の技術がある。特許文献1及び2には、例えば以下の開示がある。
ホストと記憶装置がある。ホストには、アプリケーションと、専用のAPI(Application
Program Interface)とがある。記憶装置は、その専用のAPIとやり取りする。ホストのAPIは、アプリケーションからファイルの格納要求を受けた場合、そのファイルのファイル名と後述のコンテンツアドレスとの対応付けが管理されていなければ、そのファイルを記憶装置に送信し、一方、その対応付けが管理されていれば、そのコンテンツアドレスを記憶装置に送信する。記憶装置は、ホストのAPIからファイルを受信した場合、ファイルの中身(コンテンツ)からハッシュ値を生成する。そのハッシュ値が、コンテンツアドレスである。記憶装置は、受信したファイルを記憶し、生成されたコンテンツアドレスと、そのファイルの物理的な記憶位置とを対応付けて管理し、そのコンテンツアドレスをホストのAPIに返す。ホストのAPIは、記憶装置から受信したコンテンツアドレスと、上記送信したファイルのファイル名とを対応付けて管理する。一方、記憶装置は、ホストのAPIからコンテンツアドレスを受信した場合、そのコンテンツアドレスに対応付けられている物理的な記憶位置からファイルを取得し、取得したファイルをホストのAPIに返送する。
特開2005-235171号公報 特開2005-174339号公報
特許文献1及び2に開示の技術によれば、記憶装置で生成されたハッシュ値がコンテンツアドレスとして使用される。このため、記憶装置に対してコンテンツアドレスでファイルを指定するために、ホスト等の上位装置に専用のAPIが必須となる。
本発明の一つの目的は、上位装置に専用のAPIを必要としなくても、重複したファイルの記憶を防げるようにすることにある。
本発明の更なる目的は、後の記載から明らかになるであろう。
一以上の第一の論理記憶デバイスに記憶される複数のファイルの内容にそれぞれ固有の値である複数の内容固有値が算出される。複数の内容固有値に二以上の同一の内容固有値が含まれているか否かが判定される。二以上の同一の内容固有値がある場合、それら二以上の内容固有値のうちの第一の内容固有値に対応した第一のファイルのアクセス先が、それら二以上の内容固有値のうちの第二の内容固有値に対応した第二のファイルが記憶されている位置に切り替えられる。
本発明の一つの実施形態では、計算機と、複数のファイルが記憶される一以上の第一の論理記憶デバイスを備えた第一のストレージシステムとが備えられる。計算機が、複数のファイルの内容にそれぞれ固有の値である複数の内容固有値を算出する固有値算出部と、複数のファイルにそれぞれ対応した複数の内容固有値を前記第一のストレージシステムに送信する固有値送信部とを備えることができる。第一のストレージシステムが、複数の内容固有値に二以上の同一の内容固有値が含まれているか否かを判定する重複判定部と、二以上の同一の内容固有値がある場合、それら二以上の内容固有値のうちの第一の内容固有値に対応した第一のファイルのアクセス先を、それら二以上の内容固有値のうちの第二の内容固有値に対応した第二のファイルが記憶されている位置に切り替える切替制御部とを備えることができる。
一つの実施形態では、固有値算出部は、前記複数のファイルをアーカイブ対象とする契機で、複数の内容固有値を算出することができる。具体的には、例えば、固有値算出部は、複数のファイルをアーカイブ対象とする契機で、第一のストレージシステムに対してアクセスリクエストを送信するNASノードが利用するファイルシステムが管理するファイルの格納位置を示す情報(例えばi-node情報)を基に、ファイルの内容についてハッシュ関数を用いて内容固有値を算出することができる。
一つの実施形態では、固有値算出部は、複数のファイルをアーカイブ対象とする契機で、一以上の第一の論理記憶デバイスの更新を第一のストレージシステムに禁止させることができる。アーカイブ対象とされる複数のファイルは、ファイル単位、ディレクトリ単位、ファイルシステム単位、第一の論理記憶デバイス単位など種々の単位で指定することができる。また、「アーカイブ対象」とは、ここでは、更新不可の対象、という意味とすることができる。更新不可の対象とする複数のファイルを記憶する一以上の第一の論理記憶デバイスの各々が、更新禁止とさせられる。
一つの実施形態では、複数の内容固有値にそれぞれ対応付けられた複数の保持期限がある。切替制御部は、二以上の同一の内容固有値にそれぞれ対応した二以上の保持期限のうち、第一の保持期限に比して遅い第二の保持期限に対応した第二のファイルが記憶されている位置に、第一の保持期限に対応した第一のファイルのアクセス先を切り替えることができる。
一つの実施形態では、第一のストレージシステムに、一以上の第二の論理記憶デバイスを備えた第二のストレージシステムが接続される。第一のストレージシステムが、一以上の第二の論理記憶デバイスにそれぞれ対応付けられた一以上の仮想的な論理記憶デバイスと、一以上の第一の論理記憶デバイスに記憶されている各ファイルの実体をマイグレーション先の一以上の仮想的な論理記憶デバイスを介して一以上の第二の論理記憶デバイスに書込むマイグレーション実行部とを更に備えることができる。マイグレーション実行部が、二以上の同一の内容固有値にそれぞれ対応した二以上のファイルのうち、第一のファイルの実体を一以上の第二の論理記憶デバイスのいずれにも書込まず、第二のファイルの実体を前記一以上の第二の論理記憶デバイスのいずれかに書込むことができる。切替制御部が、第一のファイルのアクセス先を、第二のファイルの実体が書込まれた位置にすることができる。
一つの実施形態では、マイグレーションの開始前は、前記複数のファイルを記憶する前記一以上の第一の論理記憶デバイスの各々が更新不可とすることができる。また、マイグレーションの完了後は、一以上の仮想的な論理記憶デバイスの各々は更新可であるが、マイグレーションの対象となった複数のファイルの各々は更新不可とすることができる。
一つの実施形態では、切替制御部は、更に、前記一以上の第二の論理記憶デバイスのデバイス特性に基づいて、アクセス先の切替を制御することができる。
一つの実施形態では、二以上の同一の内容固有値にそれぞれ対応した二以上のファイルのうち、最も遅い保持期限に対応した第一のファイルと他のファイルである第二のファイルとのマイグレーション先が、第一種のデバイス特性(例えば低速という特性)を有する第一の第二論理記憶デバイスに対応した第一の仮想的な論理記憶デバイスであるとする。第二のファイルの保持期限に比して保持期限が遅い第三のファイルのマイグレーション先が、第一種のデバイス特性に比して優れた第二種のデバイス特性(例えば高速という特性)を有する第二の第二論理記憶デバイスに対応した第二の仮想的な論理記憶デバイスであるとする。この場合、切替制御部は、第二のファイルのアクセス先を第三のファイルの実体が記憶される位置に切り替えることができる。また、マイグレーション実行部は、第一のファイルの実体を第一の仮想的な論理記憶デバイスを介して第一の第二論理記憶デバイスに書き、第二のファイルの実体を第一の第二論理記憶デバイスに書き込まず、第三のファイルの実体を第二の仮想的な論理記憶デバイスを介して第二の第二論理記憶デバイスに書込むことができる。
一つの実施形態では、切替制御部は、例えば第一の第二論理記憶デバイスに障害が発生した等の理由により、第一の第二論理記憶デバイスからの第一のファイルの実体の読出しが不可能な場合、第一のファイルのアクセス先を第三のファイルの実体が記憶されている位置に切替えることができる。また、切替制御部は、例えば第二の第二論理記憶デバイスに障害が発生した等の理由により、第二の第二論理記憶デバイスからの第三のファイルの実体の読出しが不可能な場合、第三のファイルのアクセス先を第一のファイルの実体が記憶されている位置に切替えることができる。
一つの実施形態では、計算機が、記憶領域と、完全性チェック部とを更に備えることができる。また、第一のストレージシステムが、計算機から受信した複数の内容固有値を記憶する記憶領域を更に備えることができる。固有値算出部が、複数の内容固有値を計算機の記憶領域に格納することができる。完全性チェック部は、複数のファイルから選択されたファイルに対応する、計算機の記憶領域に記憶されている複数の内容固有値のうちの内容固有値と、第一のストレージシステムの記憶領域に記憶されている、上記選択されたファイルに対応する内容固有値とを比較することができる。
一つの実施形態では、第一のストレージシステムが、節約容量通知部を更に備えることができる。節約容量通知部が、第一のファイルのアクセス先が切替えられたことにより節約された記憶容量を算出し、その記憶容量を示す情報を計算機に通知することができる。
請求項1記載のコンピュータシステム。
一つの実施形態では、切替制御部が、複数のファイルにそれぞれ対応した複数のレコードを有する切替管理テーブルを更新することで、アクセス先の切替を行うことができる。一つのファイルに対応する一つの前記レコードには、レコードIDと、そのファイルの位置情報と、参照先のレコードIDとが記録されるフィールドがある。切替制御部が、前記第一のファイルに対応した第一のレコードにおいて、参照先のレコードIDを、第二のファイルに対応した第二のレコード上のレコードIDに更新することができる。レコードには、更に、切替えるか否かを意味するフラグを用意することができる。切替制御部は、例えば、アクセス先が切替えられる第一のファイルに対応したフラグをOnにすることができる。
一つの実施形態では、切替管理テーブルの一つのレコードには、ファイルの保持期限と、ファイルのアクセス属性とが更に記録されてもよい。切替制御部は、二以上の同一の内容固有値にそれぞれ対応した二以上の保持期限のうち、第一の保持期限に比して遅い第二の保持期限に対応した前記第二のファイルの前記第二のレコード上の参照先レコードIDを、前記第一の保持期限に対応した前記第一のファイルの前記第一のレコード上のIDに更新し、且つ、前記第一及び第二のレコード上のアクセス属性をリードオンリーに設定することができる。この場合、第一のストレージシステムは、第一及び第二のレコード上の位置情報が示す位置を指定したライトアクセスを受けても、その位置に対する書込みを実行しないようにすることができる。
前述した複数の実施形態のうちの任意の二以上を組み合わせることもできる。前述した計算機は、第一のストレージシステムを管理するための管理計算機であっても良いし、第一のストレージシステムにアクセスリクエストを送信するNASノードであっても良い。また、前述した計算機が有する各部が、第一のストレージシステムに備えられても良い。
前述した各部(例えば、固有値算出部、重複判定部、切替制御部など)は、各手段と言い換えてもよい。各部は、ハードウェア(例えば回路)、コンピュータプログラム、或いはそれらの組み合わせ(例えば、コンピュータプログラムを読み込んで実行する一又は複数のCPU)によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源(例えばメモリ)から読み込むことができる。その記憶資源には、CD−ROMやDVD(Digital Versatile Disk)等の記録媒体を介してインストールすることもできるし、インターネットやLAN等の通信ネットワークを介してダウンロードすることもできる。
以下、図面を参照して、本発明の幾つかの実施形態を詳細に説明する。なお、以下の説明では、第一のストレージシステムを「プライマリストレージシステム」と呼び、第二のストレージシステムを「セカンダリストレージシステム」と呼ぶ。プライマリストレージシステム内の要素(例えばメモリ)を、「内部要素」と言い、プライマリストレージシステムの外に存在するセカンダリストレージシステム内の要素を、「外部要素」と言う場合がある。また、同種の要素については、同一の親番号を用いて説明し、同種の要素を区別して説明する場合には、親番号と子符合を用いて説明する。
<第一の実施形態>。
図1は、本発明の第一の実施形態に係るコンピュータシステムの構成例を示すブロック図である。
第一の通信ネットワーク(例えばSAN(Storage Area Network))105に、NASノード10とプライマリストレージシステム600が接続される。第二の通信ネットワーク104(例えばSAN)に、プライマリストレージシステム600とセカンダリストレージシステム40が接続される。第三の通信ネットワーク(例えばLAN(Local
Area Network))107に、NASノード(例えばファイルサーバ)10と、クライアント301と、プライマリストレージシステム600と、管理端末106とが接続される。複数の通信ネットワーク105、104及び107のうちの少なくとも二つが一つの通信ネットワークでも良い。各通信ネットワーク105、104及び107は、種々の通信ネットワークを採用することができる。複数の通信ネットワーク105、104及び107のうちの少なくとも一つを専用線としても良い。
クライアント301、NASノード10及び管理端末106のうちの少なくとも一つは、例えば、CPU(Central Processing Unit)やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えば、パーソナルコンピュータ、ワークステーション、メインフレーム等として構成される。
クライアント301は、NASノード10に対して、一般的なプロトコル(例えば、NFS(Network
File System)或いはCIFS(Common Internet File System))で、ファイルアクセスリクエスト(ファイルのリードリクエスト、或いはファイルのライトリクエスト)を、NASノード10に送信することができる。
NASノード10は、クライアント301からファイルアクセスリクエストを受信し、受信したファイルアクセスリクエストに従うファイルの実体(例えば複数のデータブロック)をプライマリストレージシステム600内の論理的な記憶装置(以下、Logical Deviceを略して「LDEV」と言うことがある)に書込む或いはLDEVからそのファイルの実体を読み出すためのブロックアクセスリクエストを作成し、作成したブロックアクセスリクエストを送信する。NASノード10に代えて他種のファイル管理装置が採用されても良い。
プライマリストレージシステム600は、例えば、アレイ状に配列された多数のディスク400を備えるRAID(Redundant Array of Independent (or Inexpensive) Disks)システムとすることができる。但し、これに限らず、プライマリストレージシステム600を、他種のストレージ仮想化装置、例えば、通信ネットワークを構成するスイッチ(具体例としては、高機能化されたインテリジェント型のファイバチャネルスイッチ)として構成することもできる。プライマリストレージシステム600は、後述のように、セカンダリストレージシステム40の有する記憶資源を自己のLDEVとしてNASノード10に提供するものであるから、自己が直接支配するローカルな記憶デバイスを有していなくても良い。
プライマリストレージシステム600は、コントローラ部20と、ディスク部30とに大別することができる。コントローラ部20は、例えば、チャネルアダプタ(以下、CHA)21と、ディスクアダプタ(以下、DKA)22と、SVP(Service Processor)23と、キャッシュメモリ24と、共有メモリ25と、接続部26とを備えている。
CHA21は、通信ポート207を介して外部の装置(例えば、NASノード10やセカンダリストレージシステム40)との間のデータ通信を行うものである。CHA21は、例えば、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成されている。CHA21には、そのCHA21を識別するためのネットワークアドレス(例えばWWN(World Wide Name))が割り当てられている。CHA21には、NASノード10に接続されたCHA21Aと、セカンダリストレージシステム40に接続されたCHA21Bとがある。CHA21Aと21Bは、一体になっていてもよい。
DKA22は、ディスク部30に備えられたディスク(以下、内部ディスク)400に接続するための通信ポート220を有し、その通信ポート220を介して、内部ディスク400と通信することができる。DKA22は、CPUやメモリ等を備えたマイクロコンピュータシステムとして構成されている。DKA22は、CHA21Aからキャッシュメモリ24に書かれたデータを内部ディスク400に書込んだり、内部ディスク400から読み出したデータをキャッシュメモリ24に書込んだりすることができる。また、DKA22は、内部ディスク400との間でデータ入出力を行う場合、論理的なアドレスを物理的なアドレスに変換することができる。
キャッシュメモリ24は、例えば揮発性又は不揮発性のメモリであり、NASノード10から受信し内部LDEV31或いは外部LDEV42に転送されるデータや、内部LDEV31或いは外部LDEV42から読出されたデータを一時的に記憶することができる。
共有メモリ25は、例えば不揮発性のメモリであり、プライマリストレージシステム600での制御に関する情報(以下、制御情報)が格納される。制御情報としては、例えば、後述するコンテンツ識別子管理テーブル、アドレスマップ管理テーブル、及びエクステント管理テーブルがある。
接続部26は、CHA21、DKA22、キャッシュメモリ24及び共有メモリ25を相互に接続させる。接続部26は、例えば、高速スイッチング動作によってデータ伝送を行う超高速クロスバスイッチ等のような高速バスとして構成することができる。
ディスク部30には、アレイ状に配列された複数の内部ディスク400が含まれている。内部ディスク400としては、例えば、ハードディスク、フレキシブルディスク、光ディスクなどのディスク型記憶装置とすることができる。内部ディスク400に代えて、他種の記憶装置、例えば、磁気テープ、半導体メモリ(例えばフラッシュメモリ)を用いることもできる。内部ディスク400の記憶領域上には、論理的な記憶装置(内部LDEV)31が設けられる。内部LDEV31は、物理的な内部ディスク400が有する記憶資源を用いて設定された、実体としてのLDEVであるのに対し、LDEV132は、内部ディスク400を用いて設定されたLDEVではなく、仮想的なLDEVである。以下、内部LDEV31をリアル内部LDEV31と呼び、LDEV132を、バーチャル内部LDEV132と呼ぶ。リアル内部LDEV31にアクセスが発生した場合には、内部ディスク400にアクセスが行われるが、バーチャル内部LDEV132にアクセスが発生した場合には、外部LDEV42にアクセスが行われる。なお、この種の技術は、外部接続技術と呼ばれることがあり、例えば、バーチャル内部LDEV132と外部LDEV42のそれぞれのLUN(Logical Unit Number)が1対1で対応付けられても良いし、例えば、特開2005−107645号公報(US出願番号10/769805号、US出願番号11/471556号)に開示の技術が援用されても良い。
SVP23は、プライマリストレージシステム600の保守又は管理を行うための情報処理端末(例えばノート型のパーソナルコンピュータ)である。SVP23は、例えば、内部LAN410を介して、CHA21内のプロセッサ(例えばCPU)や、DKA22内のプロセッサに接続されている。SVP23は、プライマリストレージシステム600内の障害発生を監視してディスプレイ画面に表示したり、内部ディスク400の閉塞処理等を指示したりするようになっている。SVP23は、遠隔の管理端末106から操作することができる。
セカンダリストレージシステム40は、プライマリストレージシステム600のような構成であっても良いし、プライマリストレージシステム600よりも簡易な構成であっても良い。セカンダリストレージシステム40は、例えば、通信ポート41を持ったCHA217と、1又は複数のディスク(以下、外部ディスク)500とを備えている。外部ディスク500の記憶領域上には、外部LDEV42が備えられている。外部LDEV42は、プライマリストレージシステム600の内部LDEV132として扱われるようになっている。
以上が、本実施形態に係る計算機システムの構成例である。なお、上記の説明は一例であって、他の構成が採用されてもよい。例えば、共有メモリ25とキャッシュメモリ24は、別々のメモリでなく、一つのメモリに共有メモリ領域とキャッシュメモリ領域とが設けられても良い。また、例えば、コントローラ部20は、CPU、メモリ及び通信ポートを備えた回路基盤であっても良い。この場合、CPUが、複数のCHAやDKAによって行われる処理を実行することができる。また、CHA21Aに代えて、NASノード10の機能を有するCHA、言い換えれば、NASとして機能できるCHA(以下、便宜上、Embedded NASを略して「E−NAS」と言う)が、プライマリストレージシステム600に搭載されても良い。この場合、E−NASが、クライアント301からファイルリクエストを受信し、そのファイルアクセスリクエストからブロックアクセスリクエストを作成し処理しても良い。
以下、本実施形態について更に詳細に説明する。
図2Aは、プライマリストレージシステム600のコントローラ部20内のCPUで実行されるコンピュータプログラムの一例を示す。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するCPUによって処理が行われるものとする。
例えば、LDEV間でのマイグレーションを実行するマイグレーション実行プログラム701、ファイルが重複しているか否かを判定しエクステント管理テーブルの更新を行う判定制御プログラム705、NASノード10からのブロックアクセスリクエストの処理を制御するアクセス制御プログラム707、及び、LDEV管理テーブルを提供するテーブル提供プログラム709がある。これらのコンピュータプログラム701、705、707及び709が、SVP23内の記憶資源、CHA21A内の記憶資源、CHA21B内の記憶資源、DKA22内の記憶資源、内部ディスク400、共有メモリ25及びキャッシュメモリ24のうちの一つ又は複数に存在しても良い。また、これらのコンピュータプログラム701、705、707及び709は、SVP23内のCPU、CHA21A内のCPU、CHA21B内のCPU、及び、DKA22内のCPUのうちの一つ又は複数で実行されても良い。
図2Bは、アドレスマップ管理テーブルの構成例を示す。
アドレスマップ管理テーブル801は、バーチャル内部LDEV132と外部LDEV42との対応付けを管理するためのテーブルであり、プライマリストレージシステム600内の記憶資源(例えば共有メモリ25)に記憶される。このテーブル801には、例えば、バーチャル内部LDEV132の識別子(LDEV番号(VDEV番号))8011と、それに対応付けられている外部LDEV42に対応したWWN(World Wide Name)(ポート番号など他種の情報でも良い)8012と、その外部LDEV42に対応したLUN(Logical
Unit Number)8013とが記録される。
図2Cは、LDEV管理テーブルの構成例を示す。
LDEV管理テーブル803は、例えば、プライマリストレージシステム600内の記憶資源(例えば共有メモリ25)に記憶される。LDEV管理テーブル803は、内部LDEV31、132に関する情報が記録されるテーブルである。このテーブル803の一つのレコードには、例えば、一つの内部LDEV(以下、図2Cの説明おいて「対象内部LDEV」と言う)について、ポート番号8031、LUN8032、LDEV番号8033、アクセス属性8034、LDEV種別8035及び使用状態8036が記録される。ポート番号8031は、対象内部LDEVに対応したポートの識別子(例えばWWN)である。LUN8032は、対象内部LDEVに対応したLUNである。LDEV番号8033は、対象内部LDEVの番号である。ポート番号8031及びLUN8032がブロックアクセスコマンドで指定されていれば、それらに対応付けられている内部LDEVへのアクセスが実行される。アクセス属性8034は、対象内部LDEVに対するアクセスの種類を制限するための情報であり、例えば、その情報としては、リード/ライト(読み出し及び書込みの両方が許可)、リードオンリー(読み出しは許可だが書込みは禁止)などがある。アクセス制御プログラム707は、アクセス属性8034“リードオンリー”に対応した内部LDEVに対してブロックライトコマンドを受信しても、その内部LDEVに対する更新を実行しない。LDEV種別8035は、対象内部LDEVの種別を示す情報であり、例えば、リアル内部LDEVである(“R”)かバーチャル内部LDEVである(“V”)である。使用状態8036は、対象内部LDEVの使用状態を示す情報であり、例えば、“使用中”と“未使用”がある。
図3は、管理端末106の構成例を示す。
管理端末106の記憶資源(例えばメモリ及びディスク装置のうちの少なくとも一つ)713には、管理端末106のCPU711で実行されるユーティリティプログラム715が記憶される。この実施形態では、ユーティリティプログラム715は管理端末106で実行されるが、それに代えて、NASノード10など他のコンピュータで実行されても良い。
ユーティリティプログラム715は、例えば、情報収集プログラム717と、ハッシュ作成プログラム719と、ユーザインタフェース(UI)制御プログラム721とを含む。
情報収集プログラム717は、図4に示すように、NASノード10やプライマリストレージシステム600から所定種類の情報を収集する。収集される情報の一例を、図5及び図6に示す。図5に例示する情報は、NASノード10のファイルシステムプログラム721が管理する、ディレクトリファイル情報のテーブル(以下、ディレクトリファイル管理テーブル)811及び813である。ファイルシステムプログラム721は、一又は複数の内部LDEVのファイルシステムを利用するコンピュータプログラムである。テーブル811のiノード情報が示す、テーブル813のアドレスに記載の内容を参照することで、ファイルの取得が可能である。図6に例示する情報は、NASノード10のボリュームマネージャ723が管理する情報(ファイルやディレクトリを格納する論理ボリュームに関する情報)が記録されたテーブル831と、プライマリストレージシステム600で管理されているLDEV管理テーブル833(図2C参照)の一部であるLDEV管理テーブル部分833である。テーブル831の各レコードには、ファイルシステムのディレクトリポイント名8313と、デバイスファイル名8312と、ディスクグループ名8311とが記録されている。また、テーブル部分833には、各内部LDEV31、132について、ポート番号8331、LUN8332及びLDEV番号8333(例えば、それぞれ、図2Cの8031、8032及び8033と同じ値)が記録されている。ファイルシステムのディレクトリポイント名8313と、デバイスファイル名8312と、ディスグループ名8311との組み合わせが、一つの内部LDEVに対応する。どの組み合わせがどの内部LDEVに対応するかは、例えば、デバイスファイル名8312中の数値から特定することができる(例えば、c0が、プライマリストレージシステム600を意味し、t1が、ポート番号“1”を意味し、d1が、LUN“1”であることを意味する)。具体的には、例えば、図4、図5及び図6の例によれば、“/usr”をルートディレクトリとするファイルシステムに対応する内部LDEVは、ポート番号“1”、LUN“1”及びLDEV番号“1”(00:01)に対応した内部LDEVであることがわかる。前述した論理ボリュームとは、ボリュームマネージャ723が認識する論理的な記憶デバイスのことであり、プライマリストレージシステム600内の内部LDEV31、132に対応する。
ハッシュ作成プログラム719は、一つの内部LDEVについて、図7に例示するコンテンツ識別子管理テーブル835を作成する。このテーブル835の一レコードは、一ファイルに対応する。一つのレコードには、そのレコードに対応したファイルそれ自体のハッシュ値(言い換えれば、ファイルの内容の識別子)8351と、そのファイルを構成するブロックデータが格納されている位置(内部LDEV内での位置)を示すアドレス(例えばブロック番号)8352と、そのファイルのファイル名8353と、そのファイルのファイルアドレス(例えば、iノードが管理するそのファイルのアドレス(例えばそのファイルを格納したディレクトリまでのパス名))8354と、そのファイルの保持期限8355とが記録される。ハッシュ作成プログラム719は、NASノード10から収集されたiノード情報(ディレクトリファイル管理テーブル811及び813に記録された情報)から、ファイルの内容を特定し、そのファイルの内容をハッシュ化することで(ハッシュ関数を利用することで)、そのファイルのハッシュ値を算出する。以下、そのハッシュ値を、「コンテンツ識別子」と言うことがある。保持期限8355は、例えば、後述の図18Aに例示のGUIを介してユーザから入力された情報である。また、保持期限8355は、ユーザからの入力に代えて、ファイルに予め設定されていて、その予め設定されている値がコピーされたものであっても良い。また、保持期限8355に代えて、保持期間を示す情報が採用されても良い。保持期限であっても保持期間であっても、結局は、ファイルがいつまで保存されるべきかを示す情報である。
UI制御プログラム721は、図5及び図6に例示した情報を基に、図18Aに例示するGUI(Graphical User Interface)を、表示装置(例えば管理端末160が備えた表示装置)に表示することができる。UI制御プログラム721は、例えば、GUIに、複数のLDEVに関する情報を表示し、複数のLDEVのうちのユーザ所望の選択を受け付け、ユーザに選択されたLDEVに格納されている一以上のディレクトリ及び/又は一以上のファイルに関する情報を表示することができる。また、UI制御プログラム721は、一以上のファイルの各々について、保持期限を示す情報の入力を受付け、或るファイルについて保持期限を示す情報が入力された場合は、入力された情報を、そのファイルを格納するLDEVに対応したコンテンツ識別子管理テーブル835における保持期限8355として登録する。
以下、本実施形態に係るコンピュータシステムで行われる処理の流れを説明する。なお、以下の説明では、図6に例示したテーブル831とテーブル部分883との対応付けが済んでおり、その後の収集対象の情報は図5に例示した情報であるとする。また、図9や図10等において、LDEV内の四角形及びFSP(ファイルシステムプログラム)内の四角形は、ファイルを示す。そして、塗りつぶしパターンの同じ四角形は、内容が同じファイルであり、故に、ファイルの内容のハッシュ値も同じであるとする。
<図8のS101:アーカイブ指示>。
ユーティリティプログラム715の情報収集プログラム717が、NASノード10やプライマリストレージシステム600に、情報の問合せを発行する。NASノード10は、その問合せの受信に応答して、所定のコンピュータプログラム(例えばエージェントプログラム)が、図5に例示したテーブル811、813や、図6に例示したテーブル831を、ユーティリティプログラム715に送信する。プライマリストレージシステム600では、情報の問合せの受信に応答して、テーブル提供プログラム709が、LDEV管理テーブル部分833を、ユーティリティプログラム715に送信する。情報収集プログラム717が、図6に例示したように、テーブル831にLDEV管理テーブル部分883を対応付ける。ファイル、ディレクトリ及び内部LDEV31、132の対応関係は、図5や図6に例示した情報から、どのファイルやどのディレクトリがどの内部LDEVに格納されているかがわかる。
情報収集の完了に応答して、UI制御プログラム721が、図18Aに例示したGUIを表示し、そのGUIを介して、内部LDEV単位、ディレクトリ単位、及びファイル単位のうちの少なくとも一つの単位で、アーカイブ指示をユーザから受け付ける。ユーザ所望の内部LDEV、ディレクトリ及びファイルのうちの少なくとも一つを指定したアーカイブ指示を受けたならば、図9に例示するように、UI制御プログラム721は、その指定された内部LDEV、又は、その指定されたディレクトリ或いはファイルを格納している内部LDEV(以下、それらの内部LDEVを「アーカイブ指示対象の内部LDEV」と総称することがある)についての、LDEV管理テーブル803におけるアクセス属性8034を、“リードオンリー”に設定する。図9の例では、内部LDEV#1と内部LDEV#2が、アーカイブ指示対象の内部LDEVであり、各内部LDEVについて、アクセス属性8034“リードオンリー”が設定されるとする。なお、「内部LDEV#1」という記載は、LDEV番号8033が“1”(00:11)である内部LDEVを意味する。
アクセス属性8034“リードオンリー”を設定することに代えて、他の方法で、アーカイブ指示対象の内部LDEVに書込みがされないようにすることができる。例えば、プライマリストレージシステム600が、アーカイブ指示対象の内部LDEVの指定を受けた後に、その内部LDEVを指定したブロックアクセスコマンドを受けた場合、書込み不可やビジー等の所定の応答を返すことで、書込みを抑止しても良い。
また、例えば、UI制御プログラム721は、ユーザ所望のファイルについて、保持期限を、図18Aに例示したGUIを介して受け付けることもできる。受け付けた場合、UI制御プログラム721は、ファイル名8353と保持期限8355との対応関係を記憶資源713に記憶させておき、コンテンツ識別子管理テーブル835が作成されたときに、その保持期限8355をそのテーブル835に登録することができる。
また、例えば、UI制御プログラム721は、図18Aに例示したGUIを介して、マイグレーション元とする内部LDEVの指定を受け付けても良い。それに代えて、UI制御プログラム721は、アーカイブ指示の対象として指定された内部LDEV(又は、その対象として指定されたファイル又はディレクトリを記憶している内部LDEV)を、ユーザからの格別の指示無しに、マイグレーション元の内部LDEVとしても良い。
また、例えば、内部LDEV単位でアーカイブ対象を指定し、且つ、図6に例示したテーブル831及びテーブル部分833との対応付けが完了していれば、このS101では、情報収集が行われず、次のS102において、図5に例示したテーブル811及び813がNASノード10から取得されても良い。
<図8のS102:ファイル重複判定/アドレス切替制御>。
例えば、S101においてアクセス属性8034“リードオンリー”の設定が完了したことに応答して、ハッシュ作成プログラム719が、アーカイブ指示対象の各内部LDEV毎に、コンテンツ識別子管理テーブル835を作成する。一つの内部LDEVについて説明すると、例えば、ハッシュ作成プログラム719は、図5に例示したテーブル311及び313を参照して、その内部LDEVに格納されている全てのファイルの各々について、ファイルの内容のハッシュ値を算出し、且つ、ファイルの実体の記憶位置(例えば内部LDEV内のブロックを識別するためのブロック番号)等を特定し、算出したハッシュ値8351と、特定したアドレス(物理的な記憶位置)8352、ファイル名8353、及びファイルアドレス8354を、コンテンツ識別子管理テーブル835に記録する。また、ハッシュ作成プログラム719が、記憶資源713に記憶されている保持期限(S101でユーザからGUIを介して入力された保持期限)8355を、コンテンツ識別子管理テーブル835に記録する。
図10に例示するように、ハッシュ作成プログラム719は、アーカイブ指示対象の各内部LDEV毎のコンテンツ識別子管理テーブル835を、プライマリストレージシステム600に送信し、プライマリストレージシステム600が、それを受信する。判定制御プログラム705が、受信したコンテンツ識別子管理テーブル835を、プライマリストレージシステム600内の記憶資源(例えば共有メモリ25)に記憶させる。
判定制御プログラム705が、アーカイブ指示対象の各内部LDEV毎のコンテンツ識別子管理テーブル835を基に、アーカイブ指示対象の各内部LDEV毎のエクステント管理テーブルを作成する。エクステント管理テーブルの一例を図11に示す。エクステント管理テーブル861の一つのレコード(以下、エクステントレコード)は、コンテンツ識別子管理テーブル835の一つのレコード(以下、ハッシュレコード)に対応しており、故に、一つのファイルに対応する。一つのエクステントレコードには、ID8611、アドレス8612、アクセス属性8613、保持期限8614、切替フラグ8615、エクステントID8616、及びVDEV番号8617が記録される。ID8611は、例えば、対応するハッシュレコードの通番である。アドレス8612は、対応するハッシュレコードに記録されているアドレス8352の複製である。アクセス属性8613は、対応するファイルについてのアクセス属性を示す情報(例えば、ライト/リード、リードオンリー)である。エクステント管理テーブル861が作成された直後は、全てのエクステントレコードには、例えば、そのテーブル861に対応した内部LDEVについてのアクセス属性8034の複製が記録される。保持期限8614は、例えば、対応するハッシュレコードに記録されている保持期限8355の複製である。切替フラグ8615は、アドレス切替するか(On)か否か(Off)を示すフラグである。エクステントID8616は、切替フラグ“On”の場合に設定される値であり、参照すべきID8611を示す。VDEV番号8617は、切替フラグ8615“On”の場合に設定される値であり、参照すべきLDEV番号(VDEV番号)8011(アドレスマップ管理テーブル801に記録されているLDEV番号(VDEV番号)8011)を示す。エクステント管理テーブル861が作成された直後は、全てのエクステントレコードでは、切替フラグ8615は“Off”になり、エクステントID8616及びVDEV番号8617の記憶領域はブランクとなるか或いは無効値が設定される。
判定制御プログラム705が、図12に示すように、重複したファイルの有無を判定したり、アドレス切替制御を行ったりする。具体的には、図13に例示するアドレス制御処理が実行される。
すなわち、判定制御プログラム705が、記憶された全てのコンテンツ識別子管理テーブル835から選択したコンテンツ識別子管理テーブル835を参照し(S1)、そのテーブル835から選択したハッシュ値(以下、選択ハッシュ値)8351と一致するハッシュ値(以下、一致ハッシュ値)8351を、そのコンテンツ識別子管理テーブル835から検索する(S2)。そのテーブル835から一致ハッシュ値8351が見つからず(S3:NO、S4:YES)、且つ、まだ参照していない他のコンテンツ識別子管理テーブル835があれば(S5:NO)、判定制御プログラム705は、他のコンテンツ識別子管理テーブル835を参照し(S6)、そのテーブル835から一致ハッシュ値8351を検索する。
一致ハッシュ値8351が見つかった場合(S3:YES)、判定制御プログラム705は、一方の保持期限8355(選択ハッシュ値8351に対応した保持期限8355)と、他方の保持期限8355(一致ハッシュ値8351に対応した保持期限8355)とを参照し比較する(S7)。一方の保持期限8355が示す期間の方が長ければ、S11に進む。一方の保持期限8355が示す期間の方が短ければ、判定制御プログラム705は、一方の切替フラグ8615(選択ハッシュ値8351に対応した切替フラグ8615)を“On”に設定する(S9)。また、判定制御プログラム705は、一致ハッシュ値8351が他のコンテンツ識別子管理テーブル835から見つかったのであれば、そのテーブル835に対応した内部LDEVのLDEV番号を、一方のVDEV番号8617(選択ハッシュ値8351に対応した切替フラグ8615)として記録する(S10)。
S11では、判定制御プログラム705は、現在の参照対象のテーブル835の全てのハッシュレコードを参照したか否かを判断し、参照していなければ(S11:NO)、S2に戻り、参照したのであれば(S11:YES)、S12に進む。S12では、判定制御プログラム705は、未参照のコンテンツ識別子管理テーブル835の有無を判定し、あれば(S12:YES)、未参照のテーブル835を参照し(S13)、無ければ(S12:NO)、終了となる。
図13を参照した説明において、図14Aに例示するように、選択ハッシュ値8351のあるコンテンツ識別子管理テーブル835から一致ハッシュ値8351が見つかった場合、そのテーブル835に対応するエクステント管理テーブル861は、例えば図14Bのように更新される。すなわち、選択ハッシュ値8351に対応したID8611が“1”で、一致ハッシュ値8351に対応したID8611が“0”とすると、ID8611“1”に対応した保持期限8614“2010.01.01”の方が、ID8611“0”に対応した保持期限8614“2020.01.01”より早いので、ID8611“1”に対応した切替フラグ8615が“On”とされ、それに対応したエクステントID8616は“0”とされる。これにより、ID“1”に対応したファイルを指定したファイルアクセスリクエストがクライアント301から送信された場合には、ID“0”に対応したファイルがクライアント301に提供されることになる。
一方、図13を参照した説明において、図15Aに例示するように、選択ハッシュ値8351のある第一のコンテンツ識別子管理テーブル835と異なる第二のコンテンツ識別子管理テーブル835から一致ハッシュ値8351が見つかった場合、第一のコンテンツ識別子管理テーブル835に対応した第一のエクステント管理テーブル861と、第二のコンテンツ識別子管理テーブル835に対応した第二のエクステント管理テーブル861は、例えば、図15Bのように更新される。すなわち、選択ハッシュ値8351に対応したID8611が“10”(第二のエクステント管理テーブル861にある)で、一致ハッシュ値8351に対応したID8611が“0”(第一のエクステント管理テーブル861にある)とすると、ID8611“10”に対応した保持期限8614“2010.01.01”の方が、ID8611“0”に対応した保持期限8614“2020.01.01”より早いので、ID8611“1”に対応した切替フラグ8615が“On”とされ、それに対応したエクステントID8616は“0”とされる。更に、ID“10”に対応したVDEV番号8617が、第一のエクステント管理テーブル861に対応した内部LDEVのLDEV番号“01”とされる。
以上が、図8のS102についての説明である。なお、作成されたコンテンツ識別子管理テーブル835を基に、このS102において、後述の図8のS103で、セカンダリストレージシステム40に対するマイグレーションを実行する前に、重複する複数のファイルのうちの一つのファイル以外の一以上のファイルの実体を、ユーティリティプログラム715又は判定制御プログラム705が削除しても良い。また、削除ではなく、ファイルの実体を指すリンク(例えば、シンボリックリンク或いはショートカット)に置き換えても良い。この場合、先にアクセス属性8613“リードオンリー”として設定されたものは、削除或いはリンク置き換えのため、ユーティリティプログラム715又は判定制御プログラム705が一旦、アクセス属性8613の設定を解除し、削除或いはリンク置き換え処理終了後、再度、アクセス属性8613“リードオンリー”として設定してもよい。このS102において、先に削除或いはリンク置き換えが行われた場合、図8のS103でのマイグレーションは、単純にLDEV間(論理ボリューム間)のマイグレーションが行われれば良い。そうではない場合には、後述するように、マイグレーション元のエクステント管理テーブル861の切替フラグ8615を基に、マイグレーションが行われれば良い。
<図8のS103:LDEV間のマイグレーション>。
例えば図13を参照して説明した処理の流れが完了したことに応答して、プライマリストレージシステム600内のマイグレーション実行プログラム701が、図16Aに示す通り、アーカイブ指示対象のリアル内部LDEV#1、#2内のデータのマイグレーション先を、バーチャル内部LDEV#3、#4に決定することができる。
本実施形態では、アーカイブ指示前は、リアル内部LDEVにファイルが記憶され、リアル内部LDEVに対して、ファイルのリードやライトが実行される。そのため、アーカイブ指示対象の内部LDEVは、リアル内部LDEVであり、それ故、マイグレーション元の内部LDEVも、リアル内部LDEVである。それに対し、マイグレーション先は、図16Aに例示した通り、バーチャル内部LDEVとされる。具体的には、例えば、マイグレーション前において、図16Bに例示するように、LDEV管理テーブル803において、LDEV番号8033“3”及び“4”にそれぞれ対応したLDEV種別8035はいずれも“V”であり且つ使用状態8036は“未使用”であり、それ故、図16Cに例示するように、アドレスマップ管理テーブル801では、LDEV番号(VDEV番号)8011が、“03”及び“04”であるとする。この場合、マイグレーション実行プログラム701は、LDEV管理テーブル803を参照して、リアル内部LDEV#1、#2のそれぞれに記憶されているデータのマイグレーション先を、バーチャル内部LDEV#3、#4に決定する。また、そのとき、マイグレーション実行プログラム701は、LDEV番号8033“3”及び“4”にそれぞれ対応した使用状態8036を“使用中”に更新することができる。なお、マイグレーション先は、上記のように自動で決定されても良いし、UI制御プログラム721が表示するGUIを介して手動で決定されても良い。
マイグレーション実行プログラム701は、リアル内部LDEV#1、#2内のデータを、バーチャル内部LDEV#3、#4にマイグレーションすることを開始する。マイグレーション中において、もし、NASノード10が、リアル内部LDEV#1に格納されているファイルを指定したファイルリードリクエストをクライアント301から受信した場合、NASノード10は、プライマリストレージシステム600に、内部LDEV#1を指定したブロックリードリクエストを送信する。LDEV管理テーブル803は、例えば図16Cに例示した通りなので、アクセス制御プログラム707は、そのブロックリードリクエストに従って、リアル内部LDEV#1からデータを読み出してNASノード10に送信する。つまり、マイグレーション中であっても、クライアント301は、NASノード10を通じて、アーカイブ対象のファイルを読み出すことが可能である。
マイグレーション実行プログラム701は、例えば、或るアドレス8612から特定される、リアル内部LDEV#1内の位置にあるデータを、バーチャル内部LDEV#3にマイグレーションする場合、そのアドレス8612に対応した切替フラグ8615を参照し、その切替フラグ8615が“Off”の場合は、そのデータを、バーチャル内部LDEV#3にマイグレーションし、その切替フラグ8615が“On”の場合は、そのデータを、バーチャル内部LDEV#3にマイグレーションしない(例えばそのデータを削除して良い)。つまり、重複したファイルのうちの一つのファイル以外の一以上のファイルのデータは、マイグレーション先のバーチャル内部LDEVにマイグレーションされない。言い換えれば、マイグレーション元のリアル内部LDEVに記憶されているデータ量よりもマイグレーション先のバーチャル内部LDEVに書き込むデータ量を少なくすることができる。なお、例えばバーチャル内部LDEV#3にマイグレーションされたデータは、マイグレーション実行プログラム701により、アドレスマップ管理テーブル801から、そのバーチャル内部LDEV#3に対応した外部LDEVが特定され、特定された外部LDEVのWWN8012やLUN8013を指定したブロックライトコマンドが、プライマリストレージシステム40に送信される。
マイグレーションが完了した場合、マイグレーション実行プログラム701は、図17に示すように、マイグレーション元とマイグレーション先のLDEV番号を交換する。具体的には、例えば、マイグレーション実行プログラム701は、LDEV管理テーブル803において、図22Aに示すように、マイグレーション元のポート番号8031、LUN8032及びLDEV番号8033とマイグレーション先のポート番号8031、LUN8032及びLDEV番号8033を交換する(更に、図22Aに示すように、内部LDEV#3、#4の使用状態8036を“未使用”に変更しても良い)。また、マイグレーション実行プログラム701は、図22Bに示すように、アドレスマップ管理テーブル801において、マイグレーション先の内部LDEVのLDEV番号(VDEV番号)8011に、マイグレーション元のLDEV番号8033を、新たなLDEV番号(VDEV番号)8011として上書きする。
この後、例えば、図17に示すように、NASノード10が、バーチャル内部LDEV#2に格納されているファイルを指定したファイルリードリクエストをクライアント301から受信した場合、NASノード10は、プライマリストレージシステム600に、バーチャル内部LDEV#2とそのアクセス先アドレスとを指定したブロックリードリクエストを送信する。LDEV管理テーブル803及びアドレスマップ管理テーブル801は、それぞれ図22A及び図22Bに例示した通りである。また、バーチャル内部LDEV#2に対応したエクステント管理テーブル861では、そのアクセス先アドレスに対応した切替フラグ8615が“On”になっていて、VDEV番号8617が、バーチャル内部LDEV#1のVDEV番号になっていて、そのアクセス先アドレスに対応したエクステントID8616がある。バーチャル内部LDEV#1に対応したエクステント管理テーブル861の、上記対応したエクステントID8616がID8611として記録されているレコードから、アドレス8612が特定される。このため、アクセス制御プログラム707は、NASノード10から受信したブロックリードリクエストに従って、バーチャル内部LDEV#1に対応した外部LDEVの、上記特定されたアドレス8612に対応した位置からデータを読み出して、NASノード10に送信することができる。つまり、内部LDEV#2内のファイルであって、内部LDEV#1に対応した外部LDEVにファイル実体が存在するファイルが、アクセス先として指定された場合には、内部LDEV#2に対応した外部LDEVにアクセスされるのではなく、内部LDEV#2、#1に対応したエクステント管理テーブル861やアドレスマップ管理テーブル801により、内部LDEV#1に対応した外部LDEVにアクセスされる(つまり、アクセス経路が切替えられる)。
また、バーチャル内部LDEV#1、#2に対応したエクステント管理テーブル861に記載のアドレス8612には、アクセス属性8613“リードオンリー”が対応付けられている。そのため、マイグレーションされたデータは、書き込み不可であるが、バーチャル内部LDEV#1、#2のアクセス属性8034“リード/ライト”となっているので、マイグレーションされたデータが記憶されている位置以外の位置には、データを書きこむことができる。つまり、マイグレーション前は、内部LDEV単位でアクセス属性“リードオンリー”が設定されるが、マイグレーション後は、ファイル単位でアクセス属性“リードオンリー”が設定されることになる。例えば、ユーティリティプログラム715によって表示される、図18Aに例示のGUIにおいて、ファイル名“file1.txt”のファイルのみをアーカイブ対象として指定してアーカイブ指示を出した後、そのファイルについてマイグレーションが行われた場合には、図18BのGUIに表れるように、そのファイルのアクセス属性は、マイグレーション先で“リードオンリー”となる。
以上が、第一の実施形態についての説明である。
なお、コンテンツ識別子管理テーブル835に記録されるハッシュ値は、ファイル単位でアーカイブ対象が指定された場合には、指定されたファイルのハッシュ値が記録され、ディレクトリ単位でアーカイブ対象が指定された場合には、指定されたディレクトリ内の各ファイルのハッシュ値が記録される。マイグレーションされるデータも、アーカイブ対象として指定されたファイル(或いは、アーカイブ対象として指定されたディレクトリ内のファイル)とすることができる。
また、マイグレーション実行プログラム701が、図17に示すように、内部LDEV#1、#2に対応したエクステント管理テーブル861において、切替フラグ8615“On”に対応したアドレス8612から特定されるブロック分の容量(例えば、ブロック長512バイトとブロックの数との積)を、移行対象データ量から減算した値を、実際の移行対象データ量として報告することができる。より具体的には、例えば、第一のファイルのアクセス先が第二のファイルに切替えられる場合、第一のファイルが削除されたならば、その第一のファイルの実体が記憶されていたブロックの数を基に、節約された記憶容量が算出されても良い。また、例えば、第一のファイルがリンク置き換えされて対処されたのであれば、第一のファイルの実体が記憶されていたブロックの数から、置き換えられたリンクの情報を記憶したブロックの数を差し引いた値を基に、節約された記憶容量が算出されても良い。
また、例えば、ユーティリティプログラム715が、NASノード10で実行されても良い。ユーティリティプログラム715は、アーカイブ指示対象の各内部LDEV毎のコンテンツ識別子管理テーブル835を、NASノード10の記憶資源に保存しても良い。或るファイルのリードアクセスが実行される場合、ユーティリティプログラム715或いは判定制御プログラム705が、そのリード対象のファイルに対応したハッシュレコード上の、ユーティリティプログラム715が保存したコンテンツ識別子管理テーブル835にあるハッシュ値8351と、プライマリストレージシステム600の記憶資源に記憶されているコンテンツ識別子管理テーブル835における、そのリード対象のファイルに対応したハッシュレコード上のハッシュ値8351とを比較し、同じ値であれば、リード対象のファイルの内容が正しいと判断し、そのファイルの読み出しを行い、違う値であれば、リード対象のファイルの内容が正しくないと判断し、その判断結果をリードアクセス元に回答しても良い。また、リードする場合に代えて、例えば、ファイルの保持期限が所定期間より遅い場合には、所定のタイミングで、上記の比較判断が実行されても良い。
上述した第一の実施形態によれば、アーカイブ対象となる複数のファイルの中に重複したファイルの有無が判定され、重複したファイルが見つかった場合には、重複したファイルのうちの少なくとも一つが残り、重複したファイルのうちの少なくとも一つが排除される。しかし、NASノード10には、重複したファイルがそのまま存在するように見える。エクステント管理テーブル861とアドレスマップ管理テーブル801に記録する情報を更新することで、排除されたファイルのアクセス先は、残されたファイルの実体のアクセス先に対応付けられる。これにより、ハッシュ値そのものをファイルのアドレスと使用する必要がなくなり、故に、NASノード10に専用のAPIを備える必要を無くすことができる。
また、第一の実施形態によれば、セカンダリストレージシステム40に格納されたファイルに関するアクセス属性など、ファイルのリポジトリに関する情報が、プライマリストレージシステム600に集約される。このため、アーカイブ対象のファイルが増えて記憶容量を増やしたい場合には、アーカイブ用のストレージシステムとしてセカンダリストレージシステム40を増設すれば良い。すなわち、アーカイブのための記憶容量を増やす場合、特殊な機能を備えた機器の導入は不要となり、既存製品のストレージシステムを有効に活用することができる。
また、第一の実施形態によれば、アーカイブ指示が発行された場合には、リアル内部LDEV31からバーチャル内部LDEV132へのマイグレーションが行われ、その後、マイグレーション元のポート番号8031、LUN8032及びLDEV番号8033とマイグレーション先のポート番号8031、LUN8032及びLDEV番号8033が交換される。このため、アーカイブ対象のファイルのマイグレーション後でも、NASノード10はマイグレーション先を意識することなく、マイグレーション前と同様の場所を指定すれば、マイグレーション前と同様のデータを取得することができる。
<第二の実施形態>。
以下、本発明の第二の実施形態を説明する。その際、第一の実施形態との相違点を主に説明し、第一の実施形態との共通点については説明を省略或いは簡略する。
例えば、一又は複数のセカンダリストレージシステム40に、複数の外部LDEVが存在し、それら複数の外部LDEVの特性(以下、外部LDEV特性)が異なっているとする。外部LDEV特性は、どんな種類の外部記憶装置(例えば外部ディスク500)を利用して外部LDEVが用意されたかによって異なる。外部LDEV特性としては、例えば、性能(例えば転送速度)、信頼性、価格及び記憶装置種類(例えば、ハードディスク、フラッシュメモリ)のうちの少なくとも一つを採用することができる。具体的には、例えば、外部記憶装置が高速且つ高信頼であれば、その外部記憶装置を利用して用意された外部LDEVの外部LDEV特性は、高速/高信頼となる。また、例えば、外部記憶装置が低速且つ低価格であれば、その外部記憶装置を利用して用意された外部LDEVの外部LDEV特性は、低速/低価格となる。以下の説明では、第一〜第三のバーチャル内部LDEVにそれぞれ対応した第一〜第三の外部LDEVがあり、第一の外部LDEVの外部LDEV特性が高速/高信頼であり、第二及び第三の外部LDEVの外部LDEV特性が低速/低価格であるとする。また、第一〜第三のバーチャル内部LDEVに3つの重複したファイル(第一〜第三のファイル)がそれぞれマイグレーションされるとする。しかし、実際にマイグレーションされる(つまり外部LDEVにファイルのデータ(実体)が書かれる)かどうかは、後述の排除判定基準によって制御される。また、以下の説明において、保持期限8614が遅い/早いとは、保持期限8614が示す期限が遅い(つまりより将来である)/早い、ということである。
図19Aに示すように、第一の実施形態では、重複したファイルのうちのどのファイルの実体を残しどのファイルの実体を排除(例えば削除或いはリンクの置き換え)するかの基準(以下、排除判定基準)は、ファイルの保持期限8614のみである。このため、例えば、ケース1のように、第一のファイルの保持期限8614が3つの重複したファイルのうち最も遅ければ、第一のファイルが第一の外部LDEVに書き込まれ、第二及び第三のファイルは、第二及び第三の外部LDEVに書き込まれない。このため、3つの重複したファイルの実体は、少なくとも、第一のファイルの保持期限8614が到達するまで、第一の外部LDEV(高速/高信頼の外部LDEV)で保存されることになる。しかし、ケース2のように、第三のファイルの保持期限8614が3つの重複したファイルのうち最も遅いとすると、3つの重複したファイルの実体は、第三の外部LDEV(低速/低価格の外部LDEV)で保存されることになる。このため、最も遅い期限まで保存されなければならないファイルの実体が、低速/低価格の外部LDEVで保存され続けることになる。
そこで、図19Bに示すように、第二の実施形態では、上記排除判定基準として、保持期限8614に加えて、外部LDEV特性も採用される。具体的には、例えば、図20に示すように、アドレスマップ管理テーブル801´の各レコードに、外部LDEV特性8014が記録され、このテーブル801´を参照することにより、どのバーチャル内部LDEVがどんな外部LDEV特性の外部LDEVに対応付けられているかを特定することが可能となる。図19Bに示すように、ケース1であれば、第一のファイルの保持期限8614が最も遅く、且つ、第一のファイルは第一のバーチャル内部LDEVにマイグレーションされるので、結果的に、3つの重複したファイルの実体は、図19Aと同様に、第一の外部LDEVのみに書き込まれる。しかし、例えば、ケース2では、第三のファイルの保持期限8614が最も遅く、第三のファイルは、それの保持期限8614が最も遅いので、第三のファイルの実体が第三の外部LDEVに書かれ、且つ、第一のファイルについては、そのマイグレーション先が高速/高信頼の外部LDEVに対応していることが考慮されて、第一のファイルの実体が第一の外部LDEVに書き込まれる。また、第二のファイルについては、それの保持期限8614が最短であるため、実体は排除され、第一のファイルの実体と第三のファイルの実体とのうちのいずれかにアクセスされるようアドレス切替制御が行われる。どちらにアクセスされるようにするかは、保持期限8614が最も遅い第三のファイルの実体でも良いが、アクセス競合を考慮して、図19Bに示すように、第一のファイルの実体とされても良い。また、例えば、第一の外部LDEVで障害が発生した等の理由で、第一のファイルの実体が取得できない場合には、第一及び第二のファイルのアクセス先を第三のファイルに切替えるためにエクステント管理テーブル861を更新しても良い。これにより、ファイルを参照できないことを回避することができる。
図21は、第二の実施形態でのアドレス制御処理の流れの一例を示す。
判定制御プログラム705が、アーカイブ対象の全ての内部LDEVに対応した全てのコンテンツ識別子管理テーブル835を参照し、二以上の同一のハッシュ値8351を検索する(S51)。もし、そのようなハッシュ値8351が見つからなければ、終了となって良い。
判定制御プログラム705は、二以上の同一のハッシュ値8351に対応した複数のファイルのマイグレーション先である一以上のバーチャル内部LDEVの少なくとも一つ或いは全てについて、外部LDEV属性8014が対応付けられていなければ(S52:NO)、S61に進み、それら一以上のバーチャル内部LDEVについて、外部LDEV属性8014が対応付けられていれば(S52:YES)、S54或いはS56に進む。
S61で、判定制御プログラム705は、二以上の同一のハッシュ値8351に対応した複数のファイルの保持期限8614から、最も遅い保持期限8614を選択する。具体的には、例えば、二以上の同一のハッシュ値8351のうちの選択ハッシュ値8351と一致ハッシュ値とのうち、保持期限8614が早いハッシュ値8351に対応した切替フラグ8615を“On”にしエクステントID8616を更新し、必要に応じて、VDEV番号8617を更新する。これを、判定制御プログラム705は、二以上の同一のハッシュ値8351の各々を選択ハッシュ値8351として実行する。その結果、二以上の同一のハッシュ値8351に対応した複数のファイルに、最も遅い保持期限8614が一つしかなければ、その保持期限8614が選択されて、S62に進む。もし、最も遅い保持期限8614(つまり同一の保持期限8614)が複数個あれば、図21のS70に示すように、判定制御プログラム705は、切替フラグ8615“On”が多い保持期限8614(すなわち、アドレス切替元がたくさん存在するファイルに対応した保持期限8614)を、最も遅い保持期限8614として選択する。もし、切替フラグ8615“On”の数が同数であれば、判定制御プログラム705は、任意に選択した一つの保持期限8614(例えば比較元の保持期限8614)を最も遅い保持期限8614として選択する。
S62で、判定制御プログラム705は、S61で選択されなかった保持期限8614に対応する一以上のファイルがS61で選択された保持期限8614に対応するファイルにアクセスされるよう、各エクステント管理テーブル861を更新する。具体的には、例えば、判定制御プログラム705は、選択された保持期限8614に対応する切替フラグ8615を“Off”のまま変更せず、選択されなかった他の保持期限8614に対応する切替フラグ8615を“On”とする。また、判定制御プログラム705は、切替フラグ8615“On”に対応したエクステントID8616を、選択された保持期限8614に対応したレコード上のID8611に変更する。また、判定制御プログラム705は、切替フラグ8615“On”に対応したVDEV番号8167を必要に応じて更新する。
S52でYESの後、S54に進むケースとしては、一以上の内部LDEVに対応付けられている一以上の外部LDEV特性8014が全て“高速/高信頼”のケースである。S56に進むケースとしては、それら一以上の外部LDEV特性8014に“高速/高信頼”と“低速/低価格”とが混在するケースである。もし、一以上の外部LDEV特性8014が全て“低速/低価格”であれば、S54と同様の処理を、“低速/低価格”にについて行えば良い。
S54では、判定制御プログラム705は、二以上の同一のハッシュ値8351に対応した複数のファイル(“高速/高信頼”に対応した複数のファイル)の保持期限8614から、最も遅い保持期限8614を選択する。もし、最も遅い保持期限8614(つまり同一の保持期限8614)が複数個あれば、図21のS70を実行する。
S55で、判定制御プログラム705は、S54で選択されなかった保持期限8614に対応する一以上のファイルがS54で選択された保持期限8614に対応するファイルにアクセスされるよう、各エクステント管理テーブル861を更新する。
S56では、判定制御プログラム705は、二以上の同一のハッシュ値8351に対応した複数のファイルの保持期限8614のうち、外部LDEV特性8014“低速/低価格”に対応した一以上の保持期限8614から、最も遅い保持期限8614を選択する。もし、最も遅い保持期限8614(つまり同一の保持期限8614)が複数個あれば、図21のS70を実行する。また、このS56において、“高速/高信頼”に対応した一以上の保持期限8614から最も遅い保持期限8614も選択されて良い。
S57では、判定制御プログラム705は、“高速/高信頼”について選択された最も遅い保持期限8614(以下、高速側期間8614)と、“低速/低価格”について選択された最も遅い保持期限8614(以下、低速側期間8614)とを比較する。
S57の比較の結果、低速側期間8614の方が高速側期間8614より長ければ(S58:YES)、判定制御プログラム705は、低速側期間8614に対応した切替フラグ8615は“Off”のままとし、“低速/低価格”についての他の保持期限8614に対応した切替フラグ8615を“On”とし、且つ、該他の保持期限8614に対応したファイルのアクセス先を、高速側期間8614に対応したファイルとするよう、該他の保持期限8614に対応したエクステントID8616等を更新する(S59)。
S57の比較の結果、低速側期間8614が高速側期間8614以下であれば(S58:NO)、判定制御プログラム705は、低速側期間8614に対応した切替フラグ8615と、“低速/低価格”についての他の保持期限8614に対応した切替フラグ8615を全て“On”とし、且つ、“低速/低価格”についての全てのファイルのアクセス先を、高速側期間8614に対応したファイルとするよう、それら全てのファイルに対応したエクステントID8616等を更新する(S60)。
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、ユーティリティプログラム715は、NASノード10にあっても良いし、プライマリストレージシステム600にあっても良い。また、NASノード10が利用するファイルシステム管理情報(図5に例示した情報)は、プライマリストレージシステム600内の記憶資源(例えば内部LDEV)に格納されていても良い。また、例えば、NASノード10及び/又は管理端末106がプライマリストレージシステム600に含まれても良い。また、例えば、仮想LDEVで複数のファイルが重複しているが故に、それら複数のファイルのうちの一以上の或るファイルが外部LDEVに格納され、それら複数のファイルのうちの一以上の或るファイル以外のファイル(以下、他のファイル)が外部LDEVに格納されなかった場合、仮想LDEVにおいて他のファイルが存在する記憶領域に対応した、外部LDEVにおける記憶領域は、占有されていない記憶領域となるが、その占有されていない記憶領域は、利用可能とされても良い(例えば、占有されていない記憶領域に、何らかの情報が記憶されても良い)。
図1は、本発明の第一の実施形態に係るコンピュータシステムの構成例を示すブロック図である。 図2Aは、プライマリストレージシステムのコントローラ部内のCPUで実行されるコンピュータプログラムの一例を示す。図2Bは、アドレスマップ管理テーブルの構成例を示す。図2Cは、LDEV管理テーブルの構成例を示す。 図3は、管理端末の構成例を示す。 図4は、NASノード及びプライマリストレージシステムからの情報収集を示す。 図5は、NASノードのファイルシステムプログラムが管理する、ディレクトリファイル情報のテーブルの一例を示す。 図6は、ファイルやディレクトリを格納する論理ボリュームに関する情報が記録されたテーブルと、プライマリストレージシステムで管理されているLDEV管理テーブルの一部分とを示す。 図7は、コンテンツ識別子管理テーブルの構成例を示す。 図8は、第一の実施形態に係るコンピュータシステムで行われる処理の流れの概要を示す。 図9は、図8のS101でアーカイブ対象の内部LDEVにアクセス属性“リードオンリー”を設定することを示す図である。 図10は、図8のS102でコンテンツ識別子管理テーブルが作成されてプライマリストレージシステムに送信されることを示す図である。 図11は、エクステント管理テーブルの構成例を示す。 図12は、図8のS102で重複ファイルの有無の判定が行われることを示す図である。 図13は、図8のS102で実行されるアドレス制御処理の流れの一例を示す。 図14Aは、一つのエクステント管理テーブルに選択ハッシュ値と一致ハッシュ値があることを示す。図14Bは、図14Aのケースでのその一つのエクステント管理テーブルの更新結果の一例を示す。 図15Aは、異なるエクステント管理テーブルに選択ハッシュ値と一致ハッシュ値があることを示す。図15Bは、図15Aのケースにおける、選択ハッシュ値のあるエクステント管理テーブルの更新結果の一例を示す。 図16Aは、図8のS103でのLDEV間マイグレーションを示す。図16Bは、マイグレーション前のLDEV管理テーブルの一例を示す。図16Cは、マイグレーション中のLDEV管理テーブルの一例を示す。図16Dは、マイグレーション前及びマイグレーション中のアドレスマップ管理テーブルの一例を示す。 図17は、マイグレーション後のアクセス経路を示す。 図18Aは、UI制御プログラムによって表示される、マイグレーション前のGUIの一例を示す。図18Bは、マイグレーション後のGUIの一例を示す。 図19Aは、第一の実施形態での排除判定基準とそれに従うアドレス切替の結果を示す。図19Bは、第二の実施形態での排除判定基準とそれに従うアドレス切替の結果を示す。 図20は、第二の実施形態でのアドレスマップ管理テーブルの構成例を示す。 図21は、第二の実施形態でのアドレス制御処理の流れの一例を示す。 図22Aは、第一の実施形態でのマイグレーション後のLDEV管理テーブルの一例を示す。図22Bは、マイグレーション後のアドレスマップ管理テーブルの一例を示す。
符号の説明
10…NASノード 20…コントローラ部 21…チャネルアダプタ(CHA) 22…ディスクアダプタ(DKA) 23…SVP(Service Processor) 24…キャッシュメモリ 25…共有メモリ 30…ディスク部 31…リアル内部LDEV 132…バーチャル内部LU 40…セカンダリストレージシステム 42…外部LDEV 32…内部LDEV 600…プライマリストレージシステム

Claims (10)

  1. 計算機と、
    前記計算機及び第二のストレージシステムと接続され、複数のファイルが記憶される一以上の第一の論理記憶デバイスを備えた第一のストレージシステムと
    を備え、
    前記計算機が、
    前記複数のファイルの中に含まれる複数のファイルについての前記第二のストレージシステムへのアーカイブ指示を受信した場合に、前記アーカイブ指示の対象である前記複数のファイルのそれぞれの固有値である複数の内容固有値を算出する固有値算出部と、
    前記アーカイブ指示の対象である前記複数のファイルにそれぞれ対応した複数の内容固有値を前記第一のストレージシステムに送信する固有値送信部と
    を備え、
    前記第一のストレージシステムが、
    前記アーカイブ指示の対象である前記複数のファイルにそれぞれ対応した前記複数の内容固有値に二以上の同一の内容固有値が含まれているか否かを判定する重複判定部と、
    二以上の同一の内容固有値がある場合、前記二以上の同一の内容固有値にそれぞれ対応した二以上の保持期限のうち、第一の保持期限に比して遅い第二の保持期限に対応した第二のファイルが記憶されている位置に、前記第一の保持期限に対応した第一のファイルのアクセス先を切り替える切替制御部と
    を備える、
    コンピュータシステム。
  2. 前記固有値算出部は、前記アーカイブ指示を受信する契機で、前記アーカイブ指示の対象である前記複数のファイルが記憶されている前記一以上の第一の論理記憶デバイスの更新を前記第一のストレージシステムに禁止させる、
    請求項記載のコンピュータシステム。
  3. 前記第二のストレージシステムは、一以上の第二の論理記憶デバイスを備え、
    前記第一のストレージシステムが、
    前記一以上の第二の論理記憶デバイスにそれぞれ対応付けられた一以上の仮想的な論理記憶デバイスと、
    前記一以上の第一の論理記憶デバイスに記憶されている各ファイルの実体をマイグレーション先の前記一以上の仮想的な論理記憶デバイスを介して前記一以上の第二の論理記憶デバイスに書込むマイグレーション実行部と
    を更に備え、
    前記マイグレーション実行部が、前記二以上の同一の内容固有値にそれぞれ対応した二以上のファイルのうち、前記第一のファイルの実体を前記一以上の第二の論理記憶デバイスのいずれにも書込まず、前記第二のファイルの実体を前記一以上の第二の論理記憶デバイスのいずれかに書込み、
    前記切替制御部が、前記第一のファイルのアクセス先を、前記第二のファイルの実体が書込まれた位置にする、
    請求項1記載のコンピュータシステム。
  4. 前記マイグレーションの開始前は、前記複数のファイルを記憶する前記一以上の第一の論理記憶デバイスの各々が更新不可であり、前記マイグレーションの完了後は、前記一以上の仮想的な論理記憶デバイスの各々は更新可であるが、前記マイグレーションの対象となった前記複数のファイルの各々は更新不可である、
    請求項記載のコンピュータシステム。
  5. 前記切替制御部は、前記二以上の同一の内容固有値にそれぞれ対応した二以上のファイルのうち、前記第一のファイルと前記第二のファイルとのマイグレーション先が、第一種のデバイス特性を有する第一の第二論理記憶デバイスに対応した第一の仮想的な論理記憶デバイスであり、前記第一のファイルの保持期限に比して保持期限が遅い第三のファイルのマイグレーション先が、前記第一種のデバイス特性に比して優れた第二種のデバイス特性を有する第二の第二論理記憶デバイスに対応した第二の仮想的な論理記憶デバイスである場合、前記第のファイルのアクセス先を前記第二のファイルではなく前記第三のファイルの実体が記憶される位置に切り替え、
    前記マイグレーション実行部は、前記第のファイルの実体を前記第一の仮想的な論理記憶デバイスを介して前記第一の第二論理記憶デバイスに書き、前記第のファイルの実体を前記第一の第二論理記憶デバイスに書き込まず、前記第三のファイルの実体を前記第二の仮想的な論理記憶デバイスを介して前記第二の第二論理記憶デバイスに書込む、
    請求項記載のコンピュータシステム。
  6. 前記切替制御部は、以下の(1)及び(2)の少なくとも一方を実行する、
    (1)前記第一の第二論理記憶デバイスからの前記第のファイルの実体の読出しが不可能な場合、前記第のファイルのアクセス先を前記第三のファイルの実体が記憶されている位置に切替える、
    (2)前記第二の第二論理記憶デバイスからの前記第三のファイルの実体の読出しが不可能な場合、前記第三のファイルのアクセス先を前記第のファイルの実体が記憶されている位置に切替える、
    請求項記載のコンピュータシステム。
  7. 前記計算機が、記憶領域と、完全性チェック部を更に備え、
    前記第一のストレージシステムが、前記計算機から受信した前記複数の内容固有値を記憶する記憶領域を更に備え、
    前記固有値算出部が、前記複数の内容固有値を前記計算機の記憶領域に格納し、
    前記完全性チェック部は、前記アーカイブ指示の対象である前記複数のファイルから選択されたファイルに対応する、前記計算機の記憶領域に記憶されている前記複数の内容固有値のうちの内容固有値と、前記第一のストレージシステムの前記記憶領域に記憶されている、前記選択されたファイルに対応する内容固有値とを比較する、
    請求項1記載のコンピュータシステム。
  8. 前記第一のストレージシステムが、節約容量通知部を更に備え、
    前記節約容量通知部が、前記第一のファイルのアクセス先が切替えられたことにより節約された記憶容量を算出し、その記憶容量を示す情報を前記計算機に通知する、
    請求項1記載のコンピュータシステム。
  9. 前記切替制御部が、前記アーカイブ指示の対象である前記複数のファイルにそれぞれ対応した複数のレコードを有する切替管理テーブルを更新することで、アクセス先の切替を行い、
    一つのファイルに対応する一つの前記レコードには、レコードIDと、そのファイルの位置情報と、参照先のレコードIDとが記録されるフィールドがあり、
    前記切替制御部が、前記第一のファイルに対応した第一のレコードにおいて、前記参照先のレコードIDを、前記第二のファイルに対応した第二のレコード上のレコードIDに更新する、
    請求項1記載のコンピュータシステム。
  10. 前記第二のストレージシステムは、一以上の第二の論理記憶デバイスを備え、
    前記第一のストレージシステムが、
    前記一以上の第二の論理記憶デバイスにそれぞれ対応付けられた一以上の仮想的な論理記憶デバイスと、
    前記一以上の第一の論理記憶デバイスに記憶されている各ファイルの実体をマイグレーション先の前記一以上の仮想的な論理記憶デバイスを介して前記一以上の第二の論理記憶デバイスに書込むマイグレーション実行部と、
    アクセス制御部と
    を更に備え、
    前記切替管理テーブルの一つのレコードには、ファイルの保持期限と、ファイルのアクセス属性とが記録され、
    前記固有値算出部は、前記アーカイブ指示を受信する契機で、前記アーカイブ指示の対象である前記複数のファイルが記憶されている前記一以上の第一の論理記憶デバイスの更新を前記第一のストレージシステムに禁止させ、
    前記マイグレーション実行部が、前記二以上の同一の内容固有値にそれぞれ対応した二以上のファイルのうち、前記第一のファイルの実体を前記一以上の第二の論理記憶デバイスのいずれにも書込まず、前記第二のファイルの実体を前記一以上の第二の論理記憶デバイスのいずれかに書込み、
    前記切替制御部は、前記二以上の同一の内容固有値にそれぞれ対応した二以上の保持期限のうち、第一の保持期限に比して遅い第二の保持期限に対応した前記第二のファイルの前記第二のレコード上の参照先レコードIDを、前記第一の保持期限に対応した前記第一のファイルの前記第一のレコード上のIDに更新し、且つ、前記第一及び第二のレコード上のアクセス属性をリードオンリーに設定し、
    前記アクセス制御部は、前記第一及び第二のレコード上の位置情報が示す位置を指定したライトアクセスを受けても、その位置に対する書込みを実行しない、
    請求項記載のコンピュータシステム。

JP2007082052A 2007-03-27 2007-03-27 重複したファイルの記憶を防ぐコンピュータシステム Expired - Fee Related JP5020673B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2007082052A JP5020673B2 (ja) 2007-03-27 2007-03-27 重複したファイルの記憶を防ぐコンピュータシステム
CN200710169354.9A CN101276366B (zh) 2007-03-27 2007-11-26 防止文件重复存储的计算机系统
EP08250064A EP1975823A3 (en) 2007-03-27 2008-01-08 Computer system preventing storage of duplicate files
US11/972,659 US7900000B2 (en) 2007-03-27 2008-01-11 Computer system preventing storage of duplicate files
US13/037,766 US8151066B2 (en) 2007-03-27 2011-03-01 Computer system preventing storage of duplicate files
US13/437,959 US8407431B2 (en) 2007-03-27 2012-04-03 Computer system preventing storage of duplicate files

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007082052A JP5020673B2 (ja) 2007-03-27 2007-03-27 重複したファイルの記憶を防ぐコンピュータシステム

Publications (2)

Publication Number Publication Date
JP2008242788A JP2008242788A (ja) 2008-10-09
JP5020673B2 true JP5020673B2 (ja) 2012-09-05

Family

ID=39643408

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007082052A Expired - Fee Related JP5020673B2 (ja) 2007-03-27 2007-03-27 重複したファイルの記憶を防ぐコンピュータシステム

Country Status (4)

Country Link
US (3) US7900000B2 (ja)
EP (1) EP1975823A3 (ja)
JP (1) JP5020673B2 (ja)
CN (1) CN101276366B (ja)

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407448B1 (en) * 2008-05-06 2013-03-26 Emc Corporation Shared storage I/O elimination through mapping client integration into a hypervisor
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
JP5162701B2 (ja) * 2009-03-05 2013-03-13 株式会社日立ソリューションズ 統合重複排除システム、データ格納装置、及びサーバ装置
US9154385B1 (en) 2009-03-10 2015-10-06 Hewlett-Packard Development Company, L.P. Logical server management interface displaying real-server technologies
US8676946B1 (en) 2009-03-10 2014-03-18 Hewlett-Packard Development Company, L.P. Warnings for logical-server target hosts
US9547455B1 (en) 2009-03-10 2017-01-17 Hewlett Packard Enterprise Development Lp Allocating mass storage to a logical server
US8832235B1 (en) * 2009-03-10 2014-09-09 Hewlett-Packard Development Company, L.P. Deploying and releasing logical servers
US8549123B1 (en) 2009-03-10 2013-10-01 Hewlett-Packard Development Company, L.P. Logical server management
US8612439B2 (en) 2009-06-30 2013-12-17 Commvault Systems, Inc. Performing data storage operations in a cloud storage environment, including searching, encryption and indexing
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
EP2414926A1 (en) * 2009-09-18 2012-02-08 Hitachi, Ltd. Storage system for eliminating duplicated data
JP5427533B2 (ja) * 2009-09-30 2014-02-26 株式会社日立製作所 階層ストレージ管理システムにおける重複ファイルの転送方法及びシステム
US9213410B2 (en) * 2010-03-26 2015-12-15 Hewlett-Packard Development Company L.P. Associated file
US8972358B2 (en) * 2010-06-10 2015-03-03 Nec Corporation File storage apparatus, file storage method, and program
US8578109B2 (en) 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US20120150818A1 (en) 2010-12-14 2012-06-14 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
JP5708107B2 (ja) * 2011-03-23 2015-04-30 日本電気株式会社 重複ファイル検出装置
US10073656B2 (en) * 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US20130254501A1 (en) * 2012-03-23 2013-09-26 Hitachi Computer Peripherals Co., Ltd. Storage apparatus and data storage method
US8688652B2 (en) 2012-04-05 2014-04-01 International Business Machines Corporation Increased in-line deduplication efficiency
US9628438B2 (en) * 2012-04-06 2017-04-18 Exablox Consistent ring namespaces facilitating data storage and organization in network infrastructures
US9218376B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Intelligent data sourcing in a networked storage system
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9552382B2 (en) 2013-04-23 2017-01-24 Exablox Corporation Reference counter integrity checking
CN103294794B (zh) * 2013-05-23 2017-07-28 上海爱数信息技术股份有限公司 一种在线归档和访问文件的系统
JP2016526717A (ja) 2013-06-12 2016-09-05 エグザブロックス・コーポレーション ハイブリッドガベージコレクション
EP3011428A4 (en) 2013-06-19 2017-02-22 Exablox Corporation Data scrubbing in cluster-based storage systems
US9934242B2 (en) 2013-07-10 2018-04-03 Exablox Corporation Replication of data between mirrored data sites
KR20150043650A (ko) * 2013-10-14 2015-04-23 삼성전자주식회사 기부 서비스를 제공하는 서버 장치와 디스플레이 장치 및 그 서비스 제공 방법
US10248556B2 (en) 2013-10-16 2019-04-02 Exablox Corporation Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
US9985829B2 (en) 2013-12-12 2018-05-29 Exablox Corporation Management and provisioning of cloud connected devices
WO2015096847A1 (en) * 2013-12-23 2015-07-02 Huawei Technologies Co., Ltd. Method and apparatus for context aware based data de-duplication
US9774582B2 (en) 2014-02-03 2017-09-26 Exablox Corporation Private cloud connected device cluster architecture
US9830324B2 (en) 2014-02-04 2017-11-28 Exablox Corporation Content based organization of file systems
WO2015130799A1 (en) * 2014-02-28 2015-09-03 Intelligent Intellectual Property Holdings 2 Llc System and method for storage virtualization
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
JPWO2016038714A1 (ja) * 2014-09-11 2017-04-27 株式会社東芝 ファイルシステム、データ重複排除方法、及びファイルシステムのためのプログラム
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10176098B2 (en) * 2014-11-17 2019-01-08 Hitachi, Ltd. Method and apparatus for data cache in converged system
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US20170060924A1 (en) 2015-08-26 2017-03-02 Exablox Corporation B-Tree Based Data Model for File Systems
US20170193003A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. Redundant and robust distributed deduplication data storage system
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
JP6651915B2 (ja) * 2016-03-09 2020-02-19 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US9846553B2 (en) 2016-05-04 2017-12-19 Exablox Corporation Organization and management of key-value stores
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
CN107391761B (zh) * 2017-08-28 2020-03-06 苏州浪潮智能科技有限公司 一种基于重复数据删除技术的数据管理方法及装置
FR3082029B1 (fr) * 2018-06-05 2020-07-10 Thales Controleur de partage de ressources d'une plate-forme informatique et procede associe de partage des ressources
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
CN110334065B (zh) * 2019-07-11 2022-02-11 中国联合网络通信集团有限公司 一种文件处理方法和系统
US20210173811A1 (en) 2019-12-04 2021-06-10 Commvault Systems, Inc. Optimizing the restoration of deduplicated data stored in multi-node replicated file systems
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5202982A (en) * 1990-03-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for the naming of database component files to avoid duplication of files
WO1999009480A1 (en) * 1997-07-29 1999-02-25 Telebackup Systems, Inc. Method and system for nonredundant backup of identical files stored on remote computers
US6477544B1 (en) * 1999-07-16 2002-11-05 Microsoft Corporation Single instance store for file systems
US6389433B1 (en) * 1999-07-16 2002-05-14 Microsoft Corporation Method and system for automatically merging files into a single instance store
KR100860821B1 (ko) * 2000-02-18 2008-09-30 이엠씨 코포레이션 공통부분 요소분화 시스템에 사용하기 위한 컴퓨팅 시스템, 식별자 설정 방법 및 컴퓨터 판독가능 프로그램을 구비한 기록 매체
US7496604B2 (en) * 2001-12-03 2009-02-24 Aol Llc Reducing duplication of files on a network
JP4307202B2 (ja) 2003-09-29 2009-08-05 株式会社日立製作所 記憶システム及び記憶制御装置
US9075851B2 (en) 2003-12-09 2015-07-07 Emc Corporation Method and apparatus for data retention in a storage system
US7444389B2 (en) * 2003-12-09 2008-10-28 Emc Corporation Methods and apparatus for generating a content address to indicate data units written to a storage system proximate in time
JP2006092124A (ja) * 2004-09-22 2006-04-06 Fujitsu Ltd 記憶装置、記憶制御方法および記憶制御プログラム
US7401080B2 (en) * 2005-08-17 2008-07-15 Microsoft Corporation Storage reports duplicate file detection
US20070050423A1 (en) * 2005-08-30 2007-03-01 Scentric, Inc. Intelligent general duplicate management system
JP2007082052A (ja) 2005-09-16 2007-03-29 Seiko Epson Corp 静電型超音波トランスデューサ及びその製造方法

Also Published As

Publication number Publication date
US20110153692A1 (en) 2011-06-23
US7900000B2 (en) 2011-03-01
EP1975823A2 (en) 2008-10-01
US20080244199A1 (en) 2008-10-02
CN101276366A (zh) 2008-10-01
CN101276366B (zh) 2015-07-22
US8151066B2 (en) 2012-04-03
US20120191928A1 (en) 2012-07-26
US8407431B2 (en) 2013-03-26
JP2008242788A (ja) 2008-10-09
EP1975823A3 (en) 2009-08-19

Similar Documents

Publication Publication Date Title
JP5020673B2 (ja) 重複したファイルの記憶を防ぐコンピュータシステム
US7441096B2 (en) Hierarchical storage management system
US9116913B2 (en) File storage system and file cloning method
US9558205B2 (en) Method for creating clone file, and file system adopting the same
US8447941B2 (en) Policy based data migration control method for storage device
US7681002B2 (en) Storage controller and storage control method
US7594084B2 (en) File storage control device and method
JP4787315B2 (ja) データコンテナの中身をクラスタの複数のボリュームにわたってストライピングするためのストレージシステム・アーキテクチャ
US8510526B2 (en) Storage apparatus and snapshot control method of the same
US7343465B2 (en) Storage system
JP4451293B2 (ja) 名前空間を共有するクラスタ構成のネットワークストレージシステム及びその制御方法
US8204858B2 (en) Snapshot reset method and apparatus
US8271559B2 (en) Storage system and method of controlling same
JP2004110218A (ja) Dbms向け仮想ボリューム作成・管理方法
JP2004295457A (ja) 記憶装置
JP2008152807A (ja) 計算機システム
JP2007226347A (ja) 計算機システム、計算機システムの管理装置、及びデータのリカバリー管理方法
JP2005228170A (ja) 記憶装置システム
US20130138705A1 (en) Storage system controller, storage system, and access control method
US20140122661A1 (en) Computer system and file server migration method
US20060059188A1 (en) Operation environment associating data migration method
US20080154777A1 (en) Storage control device for protecting an electronic protection object with protection capability required by the protection object
WO2016013075A1 (ja) ストレージ、計算機およびその制御方法
US20210103400A1 (en) Storage system and data migration method
US20070124366A1 (en) Storage control method for managing access environment enabling host to access data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111202

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120613

R150 Certificate of patent or registration of utility model

Ref document number: 5020673

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150622

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees