JP2015529861A - 複数の性能指標に基づきアクセス先を決定する分散バックアップシステム - Google Patents

複数の性能指標に基づきアクセス先を決定する分散バックアップシステム Download PDF

Info

Publication number
JP2015529861A
JP2015529861A JP2015510540A JP2015510540A JP2015529861A JP 2015529861 A JP2015529861 A JP 2015529861A JP 2015510540 A JP2015510540 A JP 2015510540A JP 2015510540 A JP2015510540 A JP 2015510540A JP 2015529861 A JP2015529861 A JP 2015529861A
Authority
JP
Japan
Prior art keywords
backup
restore
module
file
request
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
JP2015510540A
Other languages
English (en)
Other versions
JP5913738B2 (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 JP2015529861A publication Critical patent/JP2015529861A/ja
Application granted granted Critical
Publication of JP5913738B2 publication Critical patent/JP5913738B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ファイルシステムデータを重複して持ち、かつ、性能の異なる複数のストレージ装置からなるバックアップシステムにおいて、小サイズファイルのバックアップやファイルのオンデマンドリストアにかかる処理時間を短縮する。【解決手段】ストレージ装置と、複数のバックアップ装置を備える分散バックアップシステムにおいて、前記ストレージ装置は複数の性能指標に基づき前記バックアップ装置を選択する機能を備え、バックアップ又はリストアに係る要求データ転送サイズを考慮することにより前記選択を実行する。【選択図】図21

Description

本発明は、データを複数の装置へバックアップするストレージシステムのバックアップ方法、リストア方法に関する。
企業の基幹システムや金融システム、電子商取引など、ビジネスの様々な場所で情報システムが用いられている。これらのシステムでは、機器の不具合や故障に伴うサービスの停止時間を短縮することが求められる。
このような要求に応えるため、ストレージの技術分野では、オンデマンドリストアが提案されている。オンデマンドリストアは、アプリケーションやエンドユーザなどのストレージ装置利用者がデータを使用する際に初めて、バックアップ装置からリストアするものである。オンデマンドリストア技術は、従来必要だったサービス再開前にストレージ装置に全データをリストアする作業を不要にするため、サービスの停止時間を短縮できる。
ところで、耐障害性強化や高性能化のため、複数のストレージ装置にバックアップする分散バックアップシステムが用いられる。分散バックアップシステムは、1つのデータを複数のバックアップ装置に複製することで、データを冗長保存する。このような分散バックアップシステムに対して、バックアップやリストアを高速に行いたいという要求がある。
このような要求を満たす手段として、例えば特許文献1には、データベースのバックアップを行うに際して、予め設定された選択条件に基づいて、複数のバックアップ装置から最適なバックアップ装置を選択し、バックアップ・リストアする方法が開示されている。性能が異なるバックアップ装置に対し、選択条件を「接続回線の速度(帯域幅)が所定の閾値よりも高いこと」とすることで、複数の装置から接続回線の速度(帯域幅)の大きい装置を選択し、バックアップやリストアをすることができる。そうすることで、接続回線の速度(帯域幅)が性能のボトルネックになるような、大量データのバックアップ・リストア処理に必要な時間が短縮される。
特開2005−4243号公報
しかしながら、上述の特許文献1に開示された方法では、小サイズのファイルをバックアップする場合や、ファイルのオンデマンドリストアを行う場合に、最適なバックアップ装置を選択することができない。
従来利用されてきたファイルシステムのバックアップやリストアでは、ストレージ装置は、ファイルシステム全体をまとめたアーカイブファイルをバックアップ装置と送受信する。一般にアーカイブファイルのサイズは大きく、数GBや数TBとなる場合がある。
このような従来のバックアップに比べ、ファイル単位のバックアップでは数KB程度の小サイズのファイルをバックアップ装置に送信する場合がある。また、従来のリストアに比べ、ファイルのオンデマンドリストアでは、一度のリストアで数KB程度の小サイズのデータをリストアすることが多い。例えば、ストレージ装置の利用者が、ファイルのメタデータやデータの一部だけにアクセスした場合、ストレージ装置は、利用者がアクセスしたい数KBのデータのみをバックアップ装置からリストアすることになる。
一般に、数KB程度の小サイズのデータを転送する際に、帯域幅の大きい経路を使用しても、小さい経路を使用しても転送時間は変わらない。小サイズのデータを転送する時間のうち大部分はプロトコル処理にかかる時間であり、データを転送する時間ではないからである。したがって、帯域幅に応じて装置を選択する、特許文献1に開示された方法では、ファイル単位のバックアップやファイルのオンデマンドリストアに適した装置を選択することはできない。
以上のことから、解決しようとする課題は、ファイルシステムデータを重複して持つバックアップシステムにおいて、バックアップやファイルのオンデマンドリストアに適した装置を選択し、ファイル単位のバックアップやファイル単位のリストアにかかる処理時間を短縮することである。
上述の課題を解決するために、本発明は、複数のバックアップ装置と、該バックアップ装置を選択するストレージ装置を備える分散バックアップシステムにおいて、該ストレージ装置が、該バックアップ装置毎における応答時間及び帯域幅を保持し、リストアを行う送信元となるバックアップ装置を選択する際に、リストア要求に係るデータの転送サイズが所定の閾値を上回るか否かを判定し、前記判定の結果上回る場合には前記帯域幅に基づいて、また、前記判定の結果下回る場合には前記応答時間に基づいて、選択する機能を備えるものである。
本発明によれば、小サイズのファイルバックアップやファイルのオンデマンドリストアを高速化し、処理時間を短縮することができる。
第1の実施例における分散バックアップシステムの構成例を示すブロック図である。 第1の実施例におけるストレージ装置200の構成を示すブロック図である。 第1の実施例における複数のバックアップ装置300の内の1つの構成を示すブロック図である。 第1の実施例におけるファイルサーバプログラム400の構成を示すブロック図である。 第1の実施例におけるファイル操作プログラム500の構成を示すブロック図である。 第1の実施例におけるバックアッププログラム600の構成を示すブロック図である。 第1の実施例におけるオンデマンドリストアプログラム700の構成を示すブロック図である。 第1の実施例におけるバックアップ装置選択プログラム800の構成を示すブロック図である。 第1の実施例におけるバックアップ装置管理プログラム900の構成を示すブロック図である。 第1の実施例におけるオブジェクトサーバプログラム1000の構成を示すブロック図である。 第1の実施例におけるオブジェクト操作プログラム1100の構成を示すブロック図である。 第1の実施例におけるリストア進捗管理テーブル1200の一例を示す図である。 第1の実施例における装置選択条件設定テーブル1300の一例を示す図である。 第1の実施例における構成定義テーブル1400の一例を示す図である。 第1の実施例におけるオブジェクト配置管理テーブル1500の一例を示すク図である。 第1の実施例における性能測定テーブル1600の一例を示す図である。 第1の実施例における装置選択条件設定画面1700の一例を示す図である。 第1の実施例におけるバックアップモジュール603の処理フローである。 第1の実施例におけるバックアップ取得時の装置選択モジュール804の処理フローである。 第1の実施例におけるリストアモジュール703の処理フローである。 第1の実施例におけるリストア処理時の装置選択モジュール804の処理フローである。 第2の実施例におけるバックアップ取得時の装置選択モジュール804の処理フローである。 第2の実施例におけるリストア処理時の装置選択モジュール804の処理フローである。 第3の実施例における性能測定テーブル2400の一例を示す図である。 第3の実施例におけるバックアップモジュール603の処理フローである。 第3の実施例におけるバックアップ取得時の装置選択モジュール804の処理フローである。 第3の実施例におけるリストアモジュール703の処理フローである。 第3の実施例におけるリストア処理時の装置選択モジュール804の処理フローである。 第4の実施例におけるオブジェクト配置管理テーブル2900の一例を示す図である。 第4の実施例におけるリストア進捗管理テーブル3000の一例を示す図である。 第4の実施例におけるリストアモジュール703の処理フローである。 第5の実施例における分散バックアップシステムの構成例を示すブロック図である。 第5の実施例における中継ストレージ装置3300の構成を示すブロック図である。 第5の実施例における中継リストアプログラム3400の構成例を示すブロック図である。 第5の実施例における構成定義テーブル3500の一例を示す図である。 第5の実施例における性能測定テーブル3600の一例を示す図である。 第5の実施例におけるリストアモジュール703の処理フローの一部である。 第5の実施例におけるリストアモジュール703の処理フローの一部である。 第5の実施例における中継リストアモジュール3404の処理フローである。
以下、1つのストレージ装置が持つファイルシステムを3つのバックアップ装置に分散バックアップするシステムを例として、本実施形態を説明する。
実施例1では、ファイルシステムのバックアップやリストアのために使用されるバックアップ装置へのアクセスに際して、転送されるデータのサイズが所定の閾値を上回るか否かを判定し、上回った場合は帯域幅が最大のバックアップ装置を、下回った場合は応答時間が最小のバックアップ装置を、それぞれ通信先として選択する。このようなバックアップ装置を選択する機能は、バックアップ元またはリストア先となるストレージ装置に内蔵される。
以下、実施例1を詳細に説明する。
図1は、本実施例における分散バックアップシステムの構成例を示すブロック図である。
クライアント計算機100は、ストレージ装置200で提供されるファイル共有サービスを利用するエンドユーザによって使用される計算機である。
管理端末110は、ストレージ装置200と第nバックアップ装置300(ただしn=1、2、3)を管理する計算機である。管理端末110は、ストレージ装置200と第nバックアップ装置300(ただしn=1、2、3)とを管理する管理者によって使用される。
ストレージ装置200は、ファイル共有サービスをクライアント計算機100へ提供する計算機である。また、ストレージ装置200は、複数のバックアップ装置300へデータをバックアップする。また、複数のバックアップ装置300からデータをリストアする。
複数のバックアップ装置300は、ファイルのバックアップサービスをストレージ装置200へ提供する計算機である。
ネットワーク120は、クライアント計算機100と、管理端末110と、ストレージ装置200と、複数のバックアップ装置300とを相互に接続するネットワークである。ネットワーク120は、例えば、LAN(Local Area Network)やSAN(Storage Area Network)である。
図2は、ストレージ装置200の構成を示すブロック図である。
ストレージ装置200は、CPU210と、タイマ220と、ネットワークI/Oインターフェース230と、ディスクI/Oインターフェース240と、ディスクドライブ250と、メモリ260と、それらを接続する内部的な通信路(例えば、バス)を有する計算機である。
CPU210は、メモリ260に格納されたプログラムを実行する。タイマ220は、プログラムを定期的に実行する。ネットワークI/Oインターフェース230は、クライアント計算機100と、管理端末110と、複数のバックアップ装置300との通信に使用される。ディスクI/Oインターフェース240は、ディスクドライブ250との通信に使用される。ディスクドライブ250は、ストレージ装置200が読み書きするデータを格納するために使用され、ファイルシステム251を格納する。ファイルシステム251は、ディレクトリを使うことで階層的にファイルを管理するシステムである。メモリ260は、プログラムやデータを格納する。例えば、ファイルサーバプログラム400と、ファイル操作プログラム500と、バックアッププログラム600と、オンデマンドリストアプログラム700と、バックアップ装置選択プログラム800と、バックアップ装置管理プログラム900とが格納される。
ファイルサーバプログラム400は、クライアント計算機100に対してファイル共有サービスを提供するプログラムである。例えば、NFS(Network File System)サーバプログラムやCIFS(Common Internet File System)サーバプログラムである。
ファイル操作プログラム500は、ファイルシステム251に格納されたファイルやディレクトリを操作するプログラムである。
バックアッププログラム600は、複数のバックアップ装置300にファイルやディレクトリを複製するプログラムである。
オンデマンドリストアプログラム700は、複数のバックアップ装置300が格納するデータから、ストレージ装置200にファイルやディレクトリを再構成するプログラムである。オンデマンドリストアプログラム700は、ストレージ装置200に、複数のバックアップ装置300に格納されたデータ位置を示す情報を格納することで、クライアント計算機100がデータに透過的にアクセス可能にし、クライアント計算機100から要求されたとき、該要求されたデータを複数のバックアップ装置300からストレージ装置200にリストアする。
バックアップ装置選択プログラム800は、バックアップやリストアの際に通信を行うバックアップ装置を複数のバックアップ装置300から選択するプログラムである。
バックアップ装置管理プログラム900は、アクセス可能なバックアップ装置やデータの配置、装置の性能を管理するプログラムである。
なお、ストレージ装置200が用いるデータ格納媒体としてディスクドライブを示したが、SSD(Solid State Drive)であってもよい。また、ストレージ装置200としてデータ格納媒体を内蔵する装置を示したが、外部記憶装置を組み合わせてもよい。例えば、SAN(Storage Area Network)経由で接続されたディスクアレイ装置を用いてもよい。
図3は、複数のバックアップ装置300の内の1つとして第nバックアップ装置300の構成を示すブロック図である。
この第nバックアップ装置300は、CPU310と、ネットワークI/Oインターフェース320と、ディスクI/Oインターフェース330と、ディスクドライブ340と、メモリ350と、それらを接続する内部的な通信路(例えば、バス)を有する計算機である。
CPU310は、メモリ350に格納されたプログラムを実行する。ネットワークI/Oインターフェース320は、管理端末110と、ストレージ装置200との通信に使用される。ディスクI/Oインターフェース330は、ディスクドライブ340との通信に使用される。ディスクドライブ340は、第nバックアップ装置300が読み書きするデータを格納するために使用され、それにはオブジェクトストア341が格納される。オブジェクトストア341は、データをオブジェクトとして管理するシステムである。メモリ350は、プログラムやデータを格納する。例えば、オブジェクトサーバプログラム1000とオブジェクト操作プログラム1100とが格納される。
オブジェクトサーバプログラム1000は、ストレージ装置200に対してオブジェクト単位のストレージサービスを提供するプログラムである。HTTP(Hypertext Trasfer Protocol)やHTTPS(Hypertext Trasfer Protocol over Secure Socket Layer)をインターフェースとして用いるストレージサービスを提供するプログラムである。
オブジェクト操作プログラム1100は、オブジェクトストア341に格納されたオブジェクトを操作するプログラムである。
なお、複数のバックアップ装置300が用いるデータ格納媒体としてディスクドライブを示したが、SSD(Solid State Drive)であってもよい。また、ストレージ装置200としてデータ格納媒体を内蔵する装置を示したが、外部記憶装置を組み合わせてもよい。例えば、SAN(Storage Area Network)経由で接続されたディスクアレイ装置を用いてもよい。
図4は、ファイルサーバプログラム400の構成を示すブロック図である。
ファイルサーバプログラム400は、ファイル要求受信モジュール401と、ファイル応答送信モジュール402とを備える。
ファイル要求受信モジュール401は、クライアント計算機100やストレージ装置200からファイル操作要求があった場合に実行される。ファイル操作要求とは、ファイル作成要求、ディレクトリ作成要求、メタデータ読み込み要求、メタデータ書き込み要求、データ読み込み要求、データ書き込み要求のいずれかである。ファイル要求受信モジュール401は、受信したファイル操作要求を、ファイル操作プログラム500に送信する。
ファイル応答送信モジュール402は、ファイル操作プログラム500から受信したファイル操作要求の処理結果を、クライアント計算機100やストレージ装置200に応答する。
図5は、ファイル操作プログラム500の構成を示すブロック図である。ファイル操作要求には、ファイルシステム251に格納されるファイルまたはディレクトリの場所を示すパスが含まれる。例えば、パスは、/mnt/filesystem/dir/file.txtのような/で区切られた文字列である。
ファイル操作プログラム500は、ファイル作成モジュール501と、ディレクトリ作成モジュール502と、メタデータ読み込みモジュール503と、メタデータ書き込みモジュール504と、データ読み込みモジュール505と、データ書き込みモジュール506を備える。
ファイル作成モジュール501は、ファイル作成要求を受信した場合に実行され、要求の発行元が指定したパスにファイルを作成するもので、その後、その処理が成功したか否かをファイルサーバプログラム400に応答する。
ディレクトリ作成モジュール502は、ディレクトリ作成要求を受信した場合に実行され、要求の発行元が指定したパスにディレクトリを作成するもので、その後、その処理が成功したか否かをファイルサーバプログラム400に応答する。
メタデータ読み込みモジュール503は、メタデータ読み込み要求を受信した場合に実行され、要求の発行元が指定したパスのファイルまたはディレクトリのメタデータを読み込むもので、その後、その処理が成功したか否かと、処理が成功した場合は読み込んだ属性の内容を、ファイルサーバプログラム400に応答する。対象がディレクトリの場合は、ディレクトリに格納されたファイルやディレクトリへのパスのリストも読み込む。
メタデータ書き込みモジュール504は、メタデータ書き込み要求を受信した場合に実行され、要求の発行元が指定したパスのファイルまたはディレクトリに、指定したメタデータを書き込むもので、その後、その処理が成功したか否かを、ファイルサーバプログラム400に応答する。対象がディレクトリの場合は、ディレクトリに格納されたファイルやディレクトリへのパス追加やパスのリネームをする。
データ読み込みモジュール505は、データ読み込み要求を受信した場合に実行され、要求の発行元が指定したパスのファイルから、ファイルの内容を読み込むもので、その後、その処理が成功したか否かと、処理が成功した場合は読み込んだデータとを、ファイルサーバプログラム400に応答する。
データ書き込みモジュール506は、データ書き込み要求を受信した場合に実行され、要求の発行元が指定したパスのファイルへ、ファイルの内容を書き込むもので、その後、その処理が成功したか否かをファイルサーバプログラム400に応答する。
なお、ファイル操作プログラム500は、ファイル操作に必要なデータがファイルシステム251にあるか否かを確認するため、オンデマンドリストアプログラム700に対して、リストア要求を発行する。オンデマンドリストアプログラム700からリストア応答を受信し、ファイル操作に必要なデータ全てがファイルシステム251にリストアされた後、ファイル操作要求を処理する。ファイル操作に必要なデータとは、ファイルまたはディレクトリのパスに示された全てのファイルまたはディレクトリである。例えば、/mnt/filesystem/dir/file.txtのファイル作成要求を受信した場合は、/mnt、/mnt/filesystem、/mnt/filesystem/dir/の3つのディレクトリがファイル操作に必要なデータである。ファイル操作プログラム500は、オンデマンドリストアプログラム700に/mnt、/mnt/filesystem、/mnt/filesystem/dir/の3つのリストア要求を順に送信する。ファイル操作プログラム500は、オンデマンドリストアプログラム700が/mnt/filesystem/dir/のリストアを完了した後、/mnt/filesystem/dir/file.txtのファイル作成を開始する。
図6は、バックアッププログラム600の構成を示すブロック図である。
バックアッププログラム600は、バックアップ要求受信モジュール601と、バックアップ応答送信モジュール602と、バックアップモジュール603とを備える。
バックアップ要求受信モジュール601は、管理端末110やタイマ220からバックアップ要求があった場合に実行され、受信したバックアップ要求を、バックアップモジュール603に送信する。
バックアップ応答送信モジュール602は、バックアップモジュール603から受信したバックアップ要求の処理結果を、管理端末110やタイマ220に応答する。
バックアップモジュール603は、バックアップ要求を受信した場合に実行され、ファイルシステム251に格納されたファイルまたはディレクトリを第nバックアップ装置300にバックアップする。バックアップモジュール603が行う処理の詳細は、図18で後述する。
図7は、オンデマンドリストアプログラム700の構成を示すブロック図である。
オンデマンドリストアプログラム700は、リストア要求受信モジュール701と、リストア応答送信モジュール702と、リストアモジュール703と、リストア進捗管理モジュール704と、リストア進捗管理テーブル1200とを備える。
リストア要求受信モジュール701は、管理端末110やファイル操作プログラム500からリストア要求があった場合に実行され、受信したリストア要求をリストアモジュール703に送信する。
リストア応答送信モジュール702は、リストアモジュール703から受信したリストア要求の処理結果を、管理端末110やファイル操作プログラム500に応答する。
リストアモジュール703は、リストア要求受信モジュール701からリストア要求を受信した場合に実行され、複数のバックアップ装置300に格納されたオブジェクトからファイルシステム251にファイルやディレクトリをリストアする。リストアモジュール703が行う処理の詳細は、図20で後述する。
リストア進捗管理モジュール704は、リストアモジュール703によって実行され、ファイルシステム251に格納されるべきファイルやディレクトリのリストアが完了した否かを管理する。
リストア進捗管理テーブル1200は、リストア進捗管理モジュール704から操作され、リストアの進捗状況を格納する。
図8は、バックアップ装置選択プログラム800の構成を示すブロック図である。
バックアップ装置選択プログラム800は、装置選択要求受信モジュール801と、装置選択応答送信モジュール802と、装置選択条件設定モジュール803と、装置選択モジュール804と、装置選択条件設定テーブル805とを備える。
装置選択要求受信モジュール801は、管理端末110から装置選択条件設定要求があった場合と、バックアッププログラム600やオンデマンドリストアプログラム700から装置選択要求があった場合とに実行され、装置選択条件設定要求を装置選択条件設定モジュール803に、装置選択要求を装置選択モジュール804に、それぞれ送信する。
装置選択応答送信モジュール802は、装置選択条件設定モジュール803から受信した装置選択条件設定要求の処理結果を管理端末110に、装置選択モジュール804から受信した装置選択要求の処理結果をバックアッププログラム600やオンデマンドリストアプログラム700に、それぞれ応答する。
装置選択条件設定モジュール803は、装置選択条件設定要求を受信した場合に実行され、装置選択を行う条件を装置選択条件設定テーブル1300に設定する。
装置選択モジュール804は、装置選択要求を受信した場合に実行され、設定された装置選択条件(例えば、装置選択条件設定テーブル1300)と装置情報(例えば、後述の構成定義テーブル1400、オブジェクト配置管理テーブル1500、性能測定テーブル1600)に基づいて装置を選択する。
装置選択条件設定テーブル1300は、装置選択条件設定モジュール803から操作され、装置選択に用いる条件を格納する。
図9は、バックアップ装置管理プログラム900の構成を示すブロック図である。
バックアップ装置管理プログラム900は、装置管理要求受信モジュール901と、装置管理応答送信モジュール902と、構成定義モジュール903と、オブジェクト配置管理モジュール904と、性能測定モジュール905と、冗長度設定モジュール906と、構成定義テーブル1400と、オブジェクト配置管理テーブル1500と、性能測定テーブル1600とを備える。
装置管理要求受信モジュール901は、管理端末110やタイマ220、バックアッププログラム600、オンデマンドリストアプログラム700、バックアップ装置選択プログラム800から装置管理要求があった場合に実行される。ここで、装置管理要求とは、構成更新要求、オブジェクト配置更新要求、性能更新要求、構成参照要求、性能参照要求、オブジェクト配置参照要求、オブジェクト配置復旧要求のいずれかである。構成更新要求とオブジェクト配置復旧要求は、管理端末110から送信される。性能更新要求は、タイマ220から定期的に送信される。オブジェクト配置更新要求は、バックアッププログラム600から送信される。構成参照要求と性能参照要求、オブジェクト配置参照要求は、バックアッププログラム600とオンデマンドリストアプログラム700、装置選択プログラム800から送信される。
装置管理要求受信モジュール901は、装置管理要求を適切なモジュールに送信するもので、構成更新要求と構成参照要求を構成定義モジュール903に、オブジェクト配置更新要求とオブジェクト配置参照要求をオブジェクト配置管理モジュール904に、性能更新要求と性能参照要求を性能測定モジュール905に、それぞれ送信する。
装置管理応答送信モジュール902は、構成定義モジュール903、オブジェクト配置管理モジュール904、性能測定モジュール905から受信した装置管理要求の処理結果を、要求送信元の端末やタイマ、プログラムに応答する。
構成定義モジュール903は、構成更新要求または構成参照要求を受信した場合に実行され、構成更新要求を受信した場合には、構成定義テーブル1400を更新し、その結果を装置管理応答送信モジュール902に送信し、構成参照要求を受信した場合には、構成定義テーブル1400の情報を読み出し、その結果を装置管理応答送信モジュール902に送信する。
オブジェクト配置管理モジュール904は、オブジェクト配置更新要求またはオブジェクト配置参照要求、オブジェクト配置復旧要求を受信した場合に実行され、オブジェクト配置更新要求を受信した場合には、オブジェクト配置管理テーブル1500を更新し、その結果を装置管理応答送信モジュール902に送信し、オブジェクト配置参照要求を受信した場合には、オブジェクト配置管理テーブル1500を読み出し、その結果を装置管理応答送信モジュール902へ送信し、オブジェクト配置復旧要求を受信した場合には、1つまたは複数のバックアップ装置と通信し、オブジェクト配置管理テーブル1500を読み出し、メモリ260にオブジェクト配置管理テーブル1500をリストアする。
性能測定モジュール905は、性能更新要求または性能参照要求を受信した場合に実行され、性能更新要求を受信した場合には、複数のバックアップ装置300とテストデータの送受信を行うことで各バックアップ装置の性能を測定し、小サイズ(例えば4KB)のファイルをテストデータとした測定結果を応答時間として、大サイズ(例えば100MB)のファイルをテストデータとした測定結果を帯域幅として、それぞれ性能測定テーブル1600を更新し、その結果を装置管理応答送信モジュール902に送信する。性能参照要求を受信した場合には、性能測定テーブル1600を読み出し、その結果を装置管理応答送信モジュール902に送信する。また、性能測定モジュール905は、タイマ220から定期的に送られる性能更新要求により、定期的、例えば10分に1回などの頻度で実行される。
冗長度設定モジュール906は、バックアップ取得時に冗長性を持たせる場合に実行される。すなわち、(バックアップ数+1)として冗長度が設定される。
構成定義テーブル1400は、構成定義モジュール903から操作され、複数のバックアップ装置300のアクセス先を格納する。
オブジェクト配置管理テーブル1500は、オブジェクト配置管理モジュール904から操作され、ファイルの格納先を管理する。
性能測定テーブル1600は、性能測定モジュール905から操作され、複数の性能指標について各装置の性能値を格納する。
図10は、オブジェクトサーバプログラム1000の構成を示すブロック図である。
オブジェクトサーバプログラム1000は、オブジェクト要求受信モジュール1001と、オブジェクト応答送信モジュール1002とを備える。
オブジェクト要求受信モジュール1001は、ストレージ装置200からオブジェクト操作要求があった場合に実行され、受信したオブジェクト操作要求をオブジェクト操作プログラム1100に送信する。ここで、オブジェクト操作要求とは、オブジェクト格納要求、オブジェクト取得要求のいずれかである。
オブジェクト応答送信モジュール1002は、オブジェクト操作プログラム1100から受信したオブジェクト操作要求の処理結果を、ストレージ装置200に応答する。
図11は、オブジェクト操作プログラム1100の構成を示すブロック図である。オブジェクト操作要求には、オブジェクトストア341に格納されるオブジェクトの場所を示すUUID(Universally Unique Identifier)が含まれる。UUIDは、「e46367」、「e858b7」、「749bdb」のような固定長のランダムな文字列である。
オブジェクト操作プログラム1100は、オブジェクト格納モジュール1101と、オブジェクト取得モジュール1102とを備える。
オブジェクト格納モジュール1101は、オブジェクト格納要求を受信した場合に実行され、オブジェクト格納要求に含まれる内容を、オブジェクト格納要求に含まれるUUIDに対応づけて、オブジェクトストア341に格納する。このとき、内容のデータとメタデータを別々の関連づけられたUUIDのオブジェクトとして格納する。ここで、別々の関連づけられたUUIDとは、例えば、データに対応づけるUUIDが「e46367」であるとき、メタデータに対応づけるUUIDを「e46367_metadata」とすることを意味する。その後、オブジェクト格納モジュール1101は、その処理が成功したか否かをオブジェクトサーバプログラム1000に応答する。
オブジェクト取得モジュール1102は、オブジェクト取得要求を受信した場合に実行され、オブジェクト取得要求に含まれるUUIDに対応づけられたオブジェクトをオブジェクトストア341から読み出し、その後、その処理が成功したか否かと、処理が成功した場合は読み込んだ内容とを、オブジェクトサーバプログラム1000に応答する。
図12は、リストア進捗管理テーブル1200の一例を示す図である。
リストア進捗管理テーブル1200のエントリは、パス1201、ファイルID1202、メタデータ1203、データ1204からなる。
パス1201は、ファイルシステム251に格納される各ファイルまたは各ディレクトリのパスを格納する。
ファイルID1202は、ファイルシステム251に格納される各ファイルまたは各ディレクトリに関連づけられる一意のIDを格納する。ファイルID1202に格納する値としてUUIDを示したが、ファイルまたはディレクトリの名前やパスであってもよい。ここで、ファイルIDの値「TOP_DIR」はファイルシステムの最上位ディレクトリを示すものとする。
メタデータ1203は、ファイルまたはディレクトリのメタデータがリストアされたか否かの情報を格納する。メタデータ1203にチェックが入っている場合、ファイルシステム251にファイルまたはディレクトリのメタデータが存在することを示す。メタデータ1203が空欄の場合、ファイルまたはディレクトリのメタデータがファイルシステム251に存在しないことを示す。メタデータ1203の値として、メタデータ単位で存在するか否かを格納する場合を示したが、メタデータの一部が存在するか否かを格納するように構成してもよい。例えば、メタデータのうち、ファイルサイズや読み込み時刻、更新時刻、アクセス制御情報(例えば、パーミッションやACL(Access Control List)、ACE(Access Control Entry))の単位で存在するか否かを格納してもよいし、メタデータのうち、特定のオフセット単位で存在するか否かを格納してもよい。
データ1204は、ファイルのデータがリストアされたか否かの情報を格納する。データ1204にチェックが入っている場合、ファイルシステム251にファイルのデータが存在することを示す。データ1204が空欄の場合、ファイルのデータがファイルシステム251に存在しないことを示す。データ1204の値として、全てのデータが存在するか否かを格納する場合を示したが、データの一部が存在するか否かを格納するように構成してもよい。例えば、データのうち、ファイルシステム251にデータが存在するオフセットを格納するように構成してもよい。なお、ディレクトリはデータを持たないため、常にデータ1204にチェックが入るものとする。
図13は、装置選択条件設定テーブル1300の一例を示す図である。
装置選択条件設定テーブル1300のエントリは、項目1301と閾値1302からなる。
項目1301は、装置選択の条件として使用する項目を格納する。項目1301の値として、バックアップ装置に送信するファイルまたはディレクトリのサイズを示す転送サイズを示したが、ファイルまたはディレクトリのメタデータ(例えば、ファイルサイズや読み込み時刻、更新時刻、アクセス制御情報)を設定してもよい。
閾値1302は、装置選択の条件として使用する項目の、閾値として用いる値を格納する。閾値1302の値として1MBを示したが、項目によって適切な値を格納するように構成してもよい。例えば、ファイルまたはディレクトリの読み込み時刻や更新時刻の場合は、「2012−04−01 12:00」などの時刻や、UNIX(登録商標)時間のような時刻をある日時からの秒数で表した表現「1333540800」などを格納すればよいし、ファイルまたはディレクトリのアクセス制御情報の場合は、「所有者が読み込み権限を持っている」などを示す値を格納すればよい。
図14は、構成定義テーブル1400の一例を示す図である。
構成定義テーブル1400は、装置番号1401とアクセスID1402からなる。
装置番号1401は、バックアップ装置に与えられる一意の番号を格納する。
アクセスID1402は、バックアップ装置にアクセスするために必要なIDを格納する。アクセスID1402の値として、IPv4(Internet Protocol version 4)アドレスを示したが、IPv6(Internet Protocol version 6)アドレスであってもよいし、DNS(Domain Name Server名)であってもよい。
図15は、オブジェクト配置管理テーブル1500の一例を示す図である。
オブジェクト配置管理テーブル1500は、パス1501、ファイルID1502、装置番号1503、1504、1505からなる。
パス1501は、ファイルシステム251に格納される各ファイルまたは各ディレクトリのパスを格納する。
ファイルID1502は、ファイルシステム251に格納される各ファイルまたは各ディレクトリに関連づけられる一意のIDを格納する。ファイルID1502に格納する値としてUUIDを示したが、ファイルまたはディレクトリの名前やパスであってもよい。ここで、ファイルIDの値「TOP_DIR」はファイルシステムの最上位ディレクトリを示すものとする。
装置番号1503、1504、1505は、各装置番号が示すバックアップ装置に、ファイルまたはディレクトリがバックアップされたか否かの情報を格納する。装置番号1503の「装置番号1」が第1バックアップ装置に、装置番号1504の「装置番号2」が第2バックアップ装置に、装置番号1505の「装置番号3」が第3バックアップ装置に、それぞれ対応する。例えば、装置番号1503にチェックが入っている場合、第1バックアップ装置300にそのファイルまたはディレクトリのバックアップが存在することを示す。装置番号1503が空欄の場合、そのファイルまたはディレクトリのバックアップが第1バックアップ装置300に存在しないことを示す。装置番号1504、装置番号1505についても同様である。
なお、オブジェクト配置管理テーブル1500は、全てのバックアップ装置のオブジェクト配置に関する情報を格納し、バックアップ作成時に更新されるものである。実施例1ではバックアップ装置が3つのため、装置番号1、2、3のみの情報を格納する。例えば、バックアップ装置が10の場合は、装置番号1、2、…、10の情報を格納する。
図16は、性能測定テーブル1600の一例を示す図である。
性能測定テーブル1600は、観点1601、装置番号1602、1603、1604からなる。
観点1601は、性能測定における指標の名前を格納する。指標として、プロトコルの処理時間を示す応答時間と、装置へのデータ転送の最大速度を示す帯域幅がある。
装置番号1602、1603、1604は、各装置番号が示すバックアップ装置に対する性能値を格納する。装置番号1602の「装置番号1」が第1バックアップ装置に、装置番号1603の「装置番号2」が第2バックアップ装置に、装置番号1604の「装置番号3」が第3バックアップ装置に、それぞれ対応する。
図17は、装置選択条件設定画面1700の一例を示す図である。管理者が管理端末110を使って、転送サイズが1MB以下の場合に、応答時間の短い装置を選択するよう設定する例を示している。
図18は、バックアップモジュール603の処理フローである。
バックアップモジュール603は、バックアップ要求受信モジュール601からバックアップ要求を受信した場合に、CPU210で実行される。バックアップ要求には、バックアップすべきファイルシステム251の情報が含まれる。ファイルシステム251の情報とは、例えば、「/mnt/filesystem/」のようなファイルシステムパスである。
バックアップ要求を受信すると、バックアップモジュール603は、オブジェクト配置管理テーブル1500を使って、バックアップするファイルまたはディレクトリを決定する(S1801)。
このステップ(S1801)において、バックアップモジュール603は、次の(18a)から(18e)の処理を実行する。
(18a) オブジェクト配置管理モジュール904に対してオブジェクト配置参照要求を発行し、オブジェクト配置管理テーブル1500を取得する。
(18b) ファイルシステム251を走査する。
(18c) 走査して検出した各ファイルまたは各ディレクトリのパス1501に対し、ファイルID1502が格納されているかどうかを判断する。
(18d) ファイルID1502が格納されていないパス1501を見つけると、パス1501が示すファイルまたはディレクトリがバックアップされていないと判断し、パス1501をバックアップ対象リストに記述する。
(18e) 全てのファイルシステム251の走査を終えると、バックアップモジュール603は、S1802に進む。
次に、バックアップモジュール603は、ファイルまたはディレクトリに関連づけるファイルIDを決定する(S1802)。
このステップ(S1802)において、バックアップモジュール603は、次の(18f)から(18h)の処理を実行する。
(18f) バックアップ対象リストから取り出した1つのパス1501に関連づけるファイルIDを生成する。
(18g) オブジェクト配置管理モジュール904に対しオブジェクト配置更新要求を送信し、オブジェクト配置管理テーブル1500のファイルID1502に格納する。
(18h) オブジェクト配置管理モジュール904からオブジェクト配置更新要求に対する応答を受信すると、S1803へ進む。ここで、ファイルID1502は、ランダムに生成されるUUIDである。
次に、バックアップモジュール603は、バックアップ装置選択プログラム800に対し、装置選択要求を発行する(S1803)。
このステップ(S1803)において、バックアップモジュール603は、次の(18i)(18j)の処理を実行する。
(18i) 装置選択要求にファイルのパスを含めて、バックアップ装置選択プログラム800に送信する。
(18j) 装置選択処理(図19)がバックアップ装置選択プログラム800によって行われた後、選択された1つまたは複数のバックアップ装置の装置番号を含む装置選択応答を得ると、S1804へ進む。装置選択処理の詳細は、図19により後述する。
次に、バックアップモジュール603は、選択した装置に、ファイルまたはディレクトリを格納する(S1804)。
このステップ(S1804)において、バックアップモジュール603は、次の(18k)(18l)の処理を実行する。
(18k) 装置選択応答に含まれる装置番号の示すバックアップ装置に、オブジェクト格納要求を発行する。
(18l) オブジェクト格納要求に対する応答を受け取り、S1805へ進む。
次に、バックアップモジュール603は、オブジェクト配置を更新する(S1805)。
このステップ(S1805)において、バックアップモジュール603は、次の(18m)(18n)の処理を実行する。
(18m) オブジェクト配置管理モジュール904にオブジェクト配置更新要求を送信し、オブジェクト配置管理テーブル1500の、バックアップを実行した装置番号に対応する部分にチェックをつける。
(18n) オブジェクト配置管理モジュール904から、オブジェクト配置更新要求に対する応答を受信すると、S1806に進む。
次に、バックアップモジュール603は、ファイルシステム251に格納されたすべてのファイルまたはディレクトリのバックアップが完了したか否かを調べる(S1806)。
このステップ(S1806)において、バックアップモジュール603は、次の(18o)から(18q)の処理を実行する。
(18o) バックアップ対象リストから、バックアップしたパスを削除し、それ以外に他のパスが記述されているか否かを調べる。
(18p) 他のパスが記述されていない場合、バックアップが完了したと判断する(Yes)。
(18q) 他のパスが記述されている場合、バックアップモジュール603はバックアップが完了していないと判断し(No)、S1802に戻る。
次に、S1806でYesの場合、バックアップモジュール603は、全てのバックアップ装置に、オブジェクト配置管理テーブル1500を送信する(S1807)。
最後に、バックアップモジュール603は、バックアップ応答送信モジュール602に、バックアップが完了したか否かを処理結果として送信し、バックアップ処理を終了する。
また、バックアップ処理は、複数のプロセスやスレッドから、並列処理されてもよい。この場合、各ファイルまたは各ディレクトリが、それぞれ別々の装置にバックアップされる場合がある。なぜなら、第1のプロセスが実行するバックアップ処理がバックアップ中のバックアップ装置の性能が低下するため、第2のプロセスが実行するバックアップ装置の選択では、別の、より高い性能のバックアップ装置が選択されうるからである。
図19は、バックアップ取得時の装置選択モジュール804の処理フローである。
装置選択モジュール804は、バックアップモジュール603から装置選択要求を受信した場合に、CPU210で実行される。装置選択要求には、要求データのサイズを意味する転送サイズが含まれる。すなわち、転送サイズは、ディレクトリまたはファイルのメタデータサイズか、ファイルのデータの一部または全てである。
装置選択モジュール804は、転送サイズが閾値よりも小さいか否かを判断する(S1901)。すなわち、装置選択モジュール804は、装置選択条件設定テーブル1300から、転送サイズの閾値を取得し、転送サイズと閾値を比較し、転送サイズの方が小さい場合はS1902へ、それ以外の場合はS1903へ進む。
転送サイズが閾値より小さい場合に、装置選択モジュール804は、応答時間が最小のものから冗長度分を含めた装置番号を取得する(S1902)。すなわち、装置選択モジュール804は、性能測定モジュール905に対して性能参照要求を送信し性能測定テーブル1600を取得すると共に、冗長度設定モジュール906に対して冗長度参照要求を送信し設定された冗長度を取得し、それらに基づき観点1601から応答時間のエントリを探し、装置番号1602、1603、1604に格納された値のうち最小の値を探し、その装置番号を冗長度分を含めて取得する。最後に、装置選択モジュール804は、装置選択要求に対する応答にその装置番号を、冗長度分を含めて要求元に送信する。なお、応答に含める冗長度分の装置番号は、最小の値に対応するものだけでなく、小さい順に複数(例えば2つ)であってもよい。
転送サイズが閾値に等しいかそれより大きい場合に、装置選択モジュール804は、帯域幅が最大のものから冗長度分を含めた装置番号を取得する(S1903)。すなわち、装置選択モジュール804は、性能測定モジュール905に対して性能参照要求を送信し、性能測定テーブル1600を取得すると共に、冗長度設定モジュール906に対して冗長度参照要求を送信し設定された冗長度を取得し、それらに基づき観点1601から帯域幅のエントリを探し、装置番号1602、1603、1604に格納された値のうち最大の値を探し、その装置番号を冗長度分を含めて取得する。最後に、装置選択モジュール804は、装置選択要求に対する応答にその装置番号を、冗長度分を含めて要求元に送信する。なお、応答に含める冗長度分の装置番号は、最大の値に対応するものだけでなく、大きい順に複数(例えば2つ)であってもよい。
図20は、リストアモジュール703の処理フローである。
リストアは、ストレージ装置200が故障などで喪失した場合に行われる。そのため、リストアの開始前に、ストレージ装置200の代替装置が設置される必要がある。まず、作業員(例えば管理者)は、ストレージ装置200の代替装置を用意し、ネットワーク120と接続する。次に、作業員は、管理端末110を用いて構成定義モジュール903に対し構成更新要求を送信し、構成定義テーブル1400を作成する。最後に、作業員は、管理端末110を用いてオブジェクト配置管理モジュール904に対して、オブジェクト配置復旧要求を送信し、いずれかのバックアップ装置からオブジェクト配置管理テーブル1500を取得する。
リストアモジュール703は、リストア要求受信モジュール701からリストア要求を受信した場合に、CPU210で実行される。リストア要求には、リストアすべきファイルまたはディレクトリのパスとファイル操作要求が含まれる。
まず、リストアモジュール703は、要求データがリストア済みか否かを判定する(S2001)。ここで、要求データとは、ファイル操作プログラム500がファイル操作要求の実行に必要なデータであり、ディレクトリのメタデータ、ファイルのメタデータ、ファイルのデータのいずれかである。
このステップ(S2001)において、リストアモジュール703は、次の(20a)から(20d)の処理を実行する。
(20a) リストア進捗管理モジュール704に対しリストア進捗参照要求を送信し、リストア進捗管理テーブル1200を取得する。
(20b) リストア進捗管理テーブル1200から、リストアすべきファイルまたはディレクトリのパス1201が格納されたエントリを探し、対応するメタデータ1203と1204にチェックが入っているかを確認する。
(20c) メタデータ1203とデータ1204との両方にチェックが入っていた場合に限り、ファイルシステム251にリストア済みと判断し(Yes)、リストア処理を完了する。
(20d) そうでない場合、リストアすべきファイルまたはディレクトリはファイルシステム251にリストアされていないと判断し(No)、 S2002に進む。
次に、リストアモジュール703は、リストア要求に含まれるパスが示すファイルまたはディレクトリをもつ全ての装置の装置番号を取得する(S2002)。
このステップ(S2002)において、リストアモジュール703は、次の(20e)(20f)の処理を実行する。
(20e) オブジェクト配置管理モジュール904に対しオブジェクト配置参照要求を送信し、オブジェクト配置管理テーブル1500を取得する。
(20f) オブジェクト配置管理テーブル1500から、リストアすべきファイルまたはディレクトリ1501が格納されたエントリを探し、チェックが入っている装置番号を取得する。
次に、リストアモジュール703は、バックアップ装置選択プログラム800に対し、装置選択要求を発行する(S2003)。装置選択処理がバックアップ装置選択プログラム800によって行われた後、リストアモジュール703は、選択された1つのバックアップ装置の装置番号を含む装置選択応答を得ると、S2004へ進む。装置選択処理の詳細は、図21により後述する。
次に、リストアモジュール703は、リストア対象がファイルかディレクトリか、ファイル操作要求が何かに基づいて、適切な要求データを、選択した装置からリストアする(S2004)。
このステップ(S2004)において、リストアモジュール703は、次の(20g)から(20l)の処理を実行する。
(20g) リストア対象がファイルかディレクトリかを調べる。リストア対象がファイルの場合、ファイル操作要求が何かをさらに調べる。
(20h) ファイル操作要求がファイル作成要求またはディレクトリ作成要求の場合、リストアを行わない。
(20i) ファイル操作要求がメタデータ読み込み要求またはメタデータ書き込み要求の場合、要求データをファイルのメタデータとする。
(20j) ファイル操作要求がデータ読み込み要求、データ書き込み要求の場合、要求データをファイルのメタデータとファイルのデータとする。
(20k) リストア対象がディレクトリの場合、メタデータを要求データとする。要求データを決定すると、選択したバックアップ装置に、要求データのUUIDを含めたオブジェクト取得要求を送信する。
(20l) バックアップ装置から応答を受信すると、応答に含まれるデータを使って、ファイルシステム251にファイルまたはディレクトリをリストアし、S2005へ進む。
次に、リストアモジュール703は、リストア進捗を更新する(S2005)。
このステップ(S2005)において、リストアモジュール703は、次の(20m)(20n)の処理を実行する。
(20m) リストア進捗管理モジュール704にリストア進捗更新要求を送信し、リストア進捗管理テーブル1200の、リストアしたファイルまたはディレクトリのメタデータ1203やデータ1204にチェックをつける。
(20n) リストア進捗管理モジュール704から、リストア進捗管理要求に対する応答を受信すると、リストア処理を完了する。
図21は、リストア処理時の装置選択モジュール804の処理フローである。
装置選択モジュール804は、リストアモジュール703から装置選択要求を受信した場合に、CPU210で実行される。装置選択要求には、要求データのサイズを意味する転送サイズが含まれる。すなわち、転送サイズは、ディレクトリまたはファイルのメタデータサイズか、ファイルのデータの一部または全てである。
装置選択モジュール804は、転送サイズが閾値よりも小さいか否かを判断する(S2101)。すなわち、装置選択モジュール804は、装置選択条件設定テーブル1300から、転送サイズの閾値を取得し、転送サイズと閾値を比較し、転送サイズの方が小さい場合(Yes)はS2102へ、それ以外の場合(No)はS2103へ進む。
転送サイズが閾値より小さい場合に、装置選択モジュール804は、応答時間が最小のものからその装置番号を取得する(S2102)。すなわち、装置選択モジュール804は、性能測定モジュール905に対して性能参照要求を送信し、性能測定テーブル1600を取得し、観点1601から応答時間のエントリを探し、装置番号1602、1603、1604に格納された値のうち最小の値を探し、その装置番号を取得する。最後に、装置選択モジュール804は、装置選択要求に対する応答にその装置番号を含めて、要求元に送信する。なお、応答に含める装置番号は、最小の値に対応するものだけでなく、小さい順に複数(例えば2つ)であってもよく、勿論複数ではなく1つでもよい。
転送サイズが閾値に等しいかそれより大きい場合に、装置選択モジュール804は、帯域幅が最大のものからその装置番号を取得する(S2103)。すなわち、装置選択モジュール804は、性能測定モジュール905に対して性能参照要求を送信し、性能測定テーブル1600を取得し、観点1601から帯域幅のエントリを探し、装置番号1602、1603、1604に格納された値のうち最大の値を探し、その装置番号を取得する。最後に、装置選択モジュール804は、装置選択要求に対する応答にその装置番号を含めて、要求元に送信する。なお、応答に含める装置番号は、最大の値に対応するものだけでなく、大きい順に複数(例えば2つ)であってもよく、勿論複数ではなく1つでもよい。
以上が、実施例1の説明である。
実施例1によれば、応答時間と帯域幅という複数の性能指標に基づき、通信先のバックアップ装置を選択することが可能になるため、小サイズのデータに適した装置を選択することと、大サイズのデータに適した装置を選択することとを両立し、バックアップやリストアにかかる時間を短縮することができる。また、上記応答時間と帯域幅という複数の性能指標以外に、データ保存に係るリスクの面からバックアップ装置間の物理的距離やストレージ装置とバックアップ装置間の物理的距離を性能指標に加えることができる。その場合には、性能測定テーブルにおける観点1601として、物理的距離を加えることで対応することになる。
また、実施例1では、性能測定モジュール905は、性能更新要求を受信した場合に、各バックアップ装置とテストデータを送受信して性能測定を行うとしたが、その代わりに、性能測定をバックグラウンドで実行し、性能更新要求を受信した場合に性能測定テーブルを更新するように構成してもよい。ここで、バックグラウンドで実行する場合、テストデータを送受信するのではなく、実際にデータをバックアップまたはリストアすることで性能を測定してもよい。この場合、最初のバックアップまたはリストアの際は、テストデータを使って性能測定を行い、その後、各バックアップ装置に対して順番にバックアップまたはリストアを行って、性能測定を行う。なぜなら、バックアップまたはリストアを開始したばかりのときは性能測定が行われていないし、各バックアップ装置に対して順番に行わなければ、性能測定を実施されないバックアップ装置が存在してしまうからである。もちろん、各バックアップ装置を順番に選択して性能測定を行うことと、バックアップまたはリストア時間が短縮される期待のあるバックアップ装置を選択することを併用してもよい。このような構成下で、例えば、ユーザアクセスに応じたリストアを行うオンデマンドリストアプログラムを動作させつつ、バックグラウンドでファイルシステム内の全てのファイルまたはディレクトリをリストアするバッチリストアプログラムを動作させる場合、バッチリストアプログラムが性能測定を行い、性能測定テーブルを更新させ、その性能測定結果をオンデマンドリストアやバッチリストアにおける装置選択に利用する形態となる。
そしてまた、実施例1では、バックアップ装置はオブジェクトストアを用いる構成としたが、ストレージ装置と同様のファイルシステムであってもよい。実施例1のうち、ファイルIDをパスに、オブジェクトサーバプログラムをファイルサーバプログラムに、オブジェクト操作プログラムをファイル操作プログラムに、それぞれ置き換えることで、適切に動作する。加えて、バックアップの冗長度設定をファイル毎に行うことも可能である。
次に、実施例2を説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略または簡略する。
実施例2では、実施例1で述べた方法でバックアップまたはリストアする際に行う装置選択処理において、複数の性能指標から装置毎のファイルの予想転送時間を計算しその最も短い装置を選択する。
以下、実施例2を詳細に説明する。
端的に言えば、実施例2では、実施例1の構成のうち、バックアップ装置選択プログラム800の一部である、装置選択モジュール804が異なる。
図22は、実施例2におけるバックアップ取得時の装置選択モジュール804の処理フローである。
装置選択モジュール804は、バックアップモジュール603から装置選択要求を受信した場合に、CPU210で実行される。
装置選択モジュール804は、バックアップ装置ごとに、ファイルの予想転送時間を計算する(S2201)。まず、装置選択モジュール804は、性能測定モジュール905に対して性能参照要求を送信し、性能測定テーブル1600を取得すると共に、冗長度設定モジュール906に対して冗長度参照要求を送信し設定された冗長度を取得する。次に、装置選択モジュール804は、装置選択要求に含まれる転送サイズs[MB]と、取得した性能測定テーブル1600からあるバックアップ装置の応答時間l[msec]及び帯域幅b[MB/s」を使って、データをそのバックアップ装置に送った場合の予想転送時間を(l/1000+s/b)秒を計算する。全てのバックアップ装置について、予想転送時間を計算し終えると、S2202へ進む。
装置選択モジュール804は、予想転送時間が小さい順に冗長度の数分の装置番号を取得する(S2202)。装置選択モジュール804は、計算した各バックアップ装置に関する予想転送時間から、最小の値のものを探し、小さい順に冗長度分の装置番号を取得する。最後に、装置選択モジュール804は、装置選択要求に対する応答にその装置番号を含めて、要求元に送信する。
図23は、実施例2におけるリストア処理時の装置選択モジュール804の処理フローである。
装置選択モジュール804は、リストアモジュール703から装置選択要求を受信した場合に、CPU210で実行される。
装置選択モジュール804は、バックアップ装置ごとに、ファイルの予想転送時間を計算する(S2301)。まず、装置選択モジュール804は、性能測定モジュール905に対して性能参照要求を送信し、性能測定テーブル1600を取得する。次に、装置選択モジュール804は、装置選択要求に含まれる転送サイズs[MB]と、取得した性能測定テーブル1600からあるバックアップ装置の応答時間l[msec]及び帯域幅b[MB/s」を使って、データをそのバックアップ装置に送った場合の予想転送時間を(l/1000+s/b)秒を計算する。全てのバックアップ装置について、予想転送時間を計算し終えると、S2302へ進む。
装置選択モジュール804は、予想転送時間が最小の装置番号を取得する(S2302)。装置選択モジュール804は、計算した各バックアップ装置に関する予想転送時間から、最小の値のものを探し、その装置番号を取得する。最後に、装置選択モジュール804は、装置選択要求に対する応答にその装置番号を含めて、要求元に送信する。
以上が、実施例2の説明である。
実施例2によれば、応答時間と帯域幅という複数の性能指標に基づいて計算した値から、データ通信を行うバックアップ装置を選択することが可能になるため、小サイズのデータに適した装置を選択することと、大サイズのデータに適した装置を選択することとの両立を図り、バックアップやリストアにかかる時間を短縮することができる。
次に、実施例3を説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略または簡略する。
実施例3では、ストレージ装置は、複数のバックアップ要求または複数のリストア要求を処理する。ストレージ装置は、バックアップまたはリストアする際に複数の装置を選択し、さらに、選択した複数の装置に対しバックアップ要求またはリストア要求を適切に分配する。
以下、実施例3を詳細に説明する。
端的に言えば、実施例3では、実施例1の構成のうち、バックアッププログラム600の一部であるバックアップモジュール603と、オンデマンドリストアプログラム700の一部であるリストアモジュール703と、バックアップ装置選択プログラム800の一部である装置選択モジュール804と、バックアップ装置管理プログラム900の一部である性能測定モジュール905と性能測定テーブル1600と、が異なる。
性能測定モジュール905は、性能更新要求を受信した場合、実施例1で示した2つの性能指標である応答時間と帯域幅に加えて、単位時間あたりに処理可能なバックアップオペレーション数を示すバックアップ処理性能と、単位時間あたりに処理可能なリストアオペレーション数を示すリストア処理性能とを測定する。まず、性能測定モジュール905は、小サイズ(例えば4KB)の複数(例えば100)のファイルをテストデータとして、あるバックアップ装置に送信する。そのバックアップ装置への送信が完了したら、性能測定モジュール905は、送信したデータ数をかかった時間で割った値を、バックアップ処理性能とする。次に、性能測定モジュール905は、送信した小サイズの複数のファイルを、そのバックアップ装置から受信する。そのバックアップ装置から受信が完了したら、性能測定モジュール905は、受信したデータ数をかかった時間で割った値を、リストア処理性能とする。性能測定モジュール905は、このようなバックアップ処理性能とリストア処理性能の測定を全てのバックアップ装置に対して順番に行い、最後に、性能測定テーブル1600を更新する。
図24は、性能測定テーブル2400の一例を示す図である。
性能測定テーブル2400は、観点2401、装置番号2402、2403、2404からなる。
観点2401には、性能測定における指標の名前を格納する。指標として、プロトコルの処理時間を示す応答時間と、装置へのデータ転送の最大速度を示す帯域幅と、単位時間あたりに処理可能なバックアップオペレーション数を示すバックアップ処理性能と、単位時間あたりに処理可能なリストアオペレーション数を示すリストア処理性能がある。
装置番号2402、2403、2404には、各装置番号が示すバックアップ装置に対する性能値を格納する。
図25は、バックアップモジュール603の処理フローである。
バックアップモジュール603は、バックアップ要求受信モジュール601からバックアップ要求を受信した場合に、CPU210で実行される。バックアップ要求には、バックアップすべきファイルシステム251のパスが含まれる。
バックアップ要求を受信すると、バックアップモジュール603は、オブジェクト配置管理テーブル1500を使って、バックアップするファイルまたはディレクトリを決定する(S2501)。このステップで行う処理は、S1801と同様である。全てのファイルシステム251の走査を終えると、バックアップモジュール603は、S2502に進む。
次に、バックアップモジュール603は、ファイルまたはディレクトリ毎に関連づけるファイルIDを決定する(S2502)。
このステップ(S2502)において、バックアップモジュール603は、次の(25a)から(25c)の処理を実行する。
(25a) バックアップ対象リストから取り出した所定単位分(例えば、10個分)のパス1501に関連づけるファイルIDを生成する。
(25b) オブジェクト配置管理モジュール904に対しオブジェクト配置更新要求を送信し、オブジェクト配置管理テーブル1500のファイルID1502に格納する。
(25c) オブジェクト配置管理モジュール904からオブジェクト配置更新要求に対する応答を受信すると、S2503へ進む。
次に、バックアップモジュール603は、バックアップ装置選択プログラム800に対し、装置選択要求を発行する(S2503)。
このステップ(S2503)において、バックアップモジュール603は、次の(25d)(25e)の処理を実行する。
(25d) 装置選択要求に所定単位分(例えば、10個分)のファイルまたはディレクトリのパスを含めて、バックアップ装置選択プログラム800に送信する。
(25e) 装置選択処理がバックアップ装置選択プログラム800によって行われた後、各ファイルまたは各ディレクトリをバックアップすべき装置の装置番号を複数含む装置選択応答を得ると、S2504へ進む。装置選択処理の詳細は、図26により後述する。
次に、バックアップモジュール603は、選択した装置に、ファイルまたはディレクトリを格納する(S2504)。
このステップ(S2504)において、バックアップモジュール603は、次の(25f)(25g)の処理を実行する。
(25f) 複数のファイルまたはディレクトリを、装置選択応答に含まれる装置番号の示すバックアップ装置に、オブジェクト格納要求を発行する。
(25g) オブジェクト格納要求に対する応答を受け取り、S2505へ進む。
次に、バックアップモジュール603は、オブジェクト配置を更新する(S2505)。このステップは、S1805と同様である。バックアップモジュール603は、オブジェクト配置管理モジュール904から、オブジェクト配置更新要求に対する応答を受信すると、S2506に進む。
次に、バックアップモジュール603は、ファイルシステム251に格納されたすべてのファイルまたはディレクトリのバックアップが完了したか否かを調べる(S2506)。このステップは、S1806と同様である。バックアップが完了していれば(Yes)、バックアップモジュール603は、全てのバックアップ装置に、オブジェクト配置管理テーブル1500を送信する(S2507)。
最後に、バックアップモジュール603は、バックアップ応答送信モジュール602に、バックアップが完了したか否かを処理結果として送信し、バックアップ処理を終了する。
S2506において、他のパスが記述されている場合、バックアップモジュール603はバックアップが完了していないと判断し(No)、S2502に戻る。
図26は、バックアップ取得時の装置選択モジュール804の処理フローである。
装置選択モジュール804は、バックアップモジュール603から装置選択要求を受信した場合に、CPU210で実行される。装置選択要求には、所定単位分の例えば10個分のファイルまたはディレクトリのパスと、それぞれの要求データのサイズを意味する転送サイズと、が含まれる。すなわち、転送サイズは、ディレクトリまたはファイルのメタデータサイズか、ファイルのデータの一部または全てである。
装置選択モジュール804は、転送サイズが閾値よりも小さいか否かを判断する(S2601)。すなわち、装置選択モジュール804は、装置選択条件設定テーブル1300から、転送サイズの閾値を取得し、転送サイズとその閾値を比較し、転送サイズの方が小さい場合(Yes)はS2602へ、それ以外の場合(No)はS2605へ進む。
転送サイズが閾値よりも小さい場合(Yes)、装置選択モジュール804は、応答時間の短い順に装置番号を並べ替える(S2602)。
このステップ(S2602)において、装置選択モジュール804は、次の(26a)(26b)の処理を実行する。
(26a) 性能測定モジュール905に対して性能参照要求を送信し、性能測定テーブル2400を取得する。
(26b) 観点2401から応答時間のエントリを探し、装置番号2402、2403、2404に格納された応答時間の値の小さい順に並び替える。以下、並び替えた後、性能測定テーブル2400に格納された値を応答時間の小さい順にl(1)、l(2)、l(3)、バックアップ処理性能をp(1)、p(2)、p(3)と表現する。
次に、装置選択モジュール804は、応答時間とバックアップ処理性能と冗長度に応じて使用する装置を決定する(S2603)。ここで、転送サイズが閾値よりも小さい数をm(ただし、0<m≦10を満たす自然数)、冗長度をr(ただし、0<r≦nを満たす自然数)、第iバックアップ装置(ただし、0<i≦nを満たす自然数)の応答時間内に処理できる全バックアップ装置の要求処理数の総和は、S(i)=l(i)×{p(1)+p(2)+…+p(i)}/1000とする。装置選択モジュール804は、与えられたmとrに対して、S(i−1)<mr≦S(i)とi≧rを満たすiを求め、第iバックアップ装置までを使用することを決定する。なお、S(0)=0とする。例えば、m=4、r=2のとき、S(1)=l(1)×p(1)/1000=10×100/1000=1、S(2)=l(2)×{p(1)+p(2)}/1000=50×(100+100}/1000=10であるから、i=2を求め、これはr=2以上の値である。このとき、装置選択モジュール804は、第1バックアップ装置と、第2バックアップ装置を使用し、第3バックアップ装置を使用しないこととなる。なお、上記計算において、もしS(i−1)<mr≦S(i)をみたすiが、i<rであった場合は、i=rと求めるものとする。
次に、装置選択モジュール804は、応答時間とバックアップ処理性能と冗長度に応じて要求数の配分を決定する(S2604)。要求数の配分は、最大で処理性能の比となり、かつ、同じデータが同じバックアップ装置に格納されないように、応答時間の短い順に使用する装置を割り当てることで決定される。例えば、バックアップ処理においてm=4、r=2のとき、第1バックアップ装置と第2バックアップ装置に、それぞれ4つの要求を配分する。このために、装置選択モジュール804は、次の(26c)から(26g)の処理を行う。
(26c) 性能測定テーブル2400から、第1バックアップ装置と第2バックアップ装置のバックアップ処理性能の比を求め、1:1を得る。
(26d) S(2)=10より10個以下の要求を処理することから、最大で5:5になるようにすることを決定する。
(26e) r=2であることから、第1バックアップ装置に格納したデータを第2バックアップ装置にも格納するため、要求は4つずつとなることを決定する。
(26f) 4つの要求を応答時間の短い第1バックアップ装置に配分し、残りの4つの要求を2番目に応答時間が短い第2バックアップ装置に配分する。
(26g) 配分を決定した後、装置選択要求に対する応答に、閾値が転送サイズよりも小さいパスに装置番号を、決定した配分に基づいて対応づけた情報を含め、要求元に送信する。
なお、バックアップ装置数iが冗長度rよりも大きい場合は、冗長化したデータは最も応答時間が短いバックアップ装置と2番目に応答時間が短いバックアップ装置に格納するものとする。
転送サイズが閾値に等しいかそれより大きい場合(No)に、装置選択モジュール804は、転送サイズが小さい順にファイルをソートする(S2605)。装置選択モジュール804は、装置選択要求に含まれる転送サイズが小さい順にファイルパスを並び替えた後、S2606へ進む。
次に、装置選択モジュール804は、各バックアップ装置のバックアップ総量を計算する(S2606)。ここで、バックアップ装置のバックアップ総量Tとは、そのバックアップ装置に転送する転送サイズの総和である。あるバックアップ装置のバックアップ総量は、全ファイルの転送サイズの総和と、各バックアップ装置の帯域に対するそのバックアップ装置の帯域割合と、ストレージ装置200に設定された冗長度と、の積で求める。例として、冗長度2に設定されたストレージ装置200が、性能測定テーブル1600が示す帯域幅をもつバックアップ装置に、1GBのファイル10個をバックアップする場合の第1バックアップ装置のバックアップ総量T(1)を計算する。全ファイルの転送サイズの総和は、1×10=10(GB)、第1バックアップ装置の帯域割合は、100/(100+1000+10)=0.090であることから、T(1)=10×0.090×2=1.8(GB)と計算される。以下同様に、T(2)=2×10×1000/(100+1000+10)=18(GB)、T(3)=2×10×10/(100+1000+10)=0.18(GB)と計算される。なお、例において、計算の有効数字は2桁とし、3桁目以下は切り捨てた。
次に、装置選択モジュール804は、バックアップ総量に応じて、バックアップ装置と要求の配分を決定する(S2607)。
このステップ(S2607)において、装置選択モジュール804は、次の(26h)から(26l)の処理を実行する。
(26h) S2605で並び替えたファイルパス順に、1個のファイルパスを取得する。
(26i) バックアップ総量がファイルサイズと同じか大きいバックアップ装置を、バックアップ総量が小さい順に、冗長度と同じ数だけ選択し、ファイルパスの示すファイルのバックアップ先とする。このとき、バックアップ総量が転送サイズよりも小さいバックアップ装置を、それ以降の処理におけるファイルのバックアップ先の候補から外す。
(26j) バックアップ先として選択したバックアップ装置のバックアップ総量から、バックアップするファイルの転送データ量の差をとり、そのバックアップ装置の新しいバックアップ総量とする。
(26k) S2605で並び替えたファイルパス順で、次の1個のファイルパスを取得し、上で述べた方法と同様の方法で全てのファイルパスについてバックアップ装置を決定する。ただし、バックアップ総量がファイルサイズよりも大きいバックアップ装置が1つも見つからない場合、最後に残った冗長度と同じ数のバックアップ装置をバックアップ先とする。
(26l) 装置選択要求に対する応答に、ファイルパスと対応づけて選択した装置番号を含めて、要求元に送信する。例えば、冗長度2に設定されたストレージ装置200が、性能測定テーブル1600が示す帯域幅をもつバックアップ装置に、1GBのファイル10個をバックアップする場合は次のようになる。まず、1つ目のファイル(サイズ1GB)を取得し、次に、各バックアップ装置のバックアップ総量T(1)=1.8、T(2)=18、T(3)=0.18をもとに、1GBと同じか大きいバックアップ装置である第1バックアップ装置と第2バックアップ装置を候補とする。次に、それらの候補から、バックアップ総量が小さい順に、冗長度2と同じ数のバックアップ装置を選択することで、第1バックアップ装置と第2バックアップ装置をバックアップ先とする。次に、新しいT(1)=1.8−1=0.8、T(2)=18−1=17、T(3)=0.18とする。このような処理を、装置選択モジュール804は、装置選択要求に含まれる全てのファイルパスに対して行うことで、ファイルパス毎に選択した装置番号を得ることができる。
図27は、リストアモジュール703の処理フローである。
リストアモジュール703は、リストア要求受信モジュール701からリストア要求を受信した場合に、CPU210で実行される。リストア要求には、リストアすべきファイルまたはディレクトリのパスとファイル操作要求が含まれる。
まず、リストアモジュール703は、要求データがリストア済みか否かを判定する(S2701)。このステップは、S1901と同様である。リストアモジュール703は、ファイルシステム251にリストア済みの場合(Yes)、リストア処理を完了する。そうでない場合(No)、 S2702に進む。
次に、リストアモジュール703は、受信したリストア要求をメモリ260にバッファし、このバッファしたリストア要求をカウントアップ(+1)し(S2702)、続いて、このカウントアップ値、すなわち要求数が所定単位分として例えば10以上あるか確認する(S2703)。それが例えば10以上ある場合(Yes)、S2704へ進む。それ以外の場合(No)、リストア要求に応答することなく、リストア処理を完了する。勿論、この要求数が10に満たなくても、所定時間が経過したらS2704へ進めることができる。
次に、リストアモジュール703は、所定単位分の例えば10個分のファイルまたはディレクトリをもつ複数の装置の装置番号を取得する(S2704)。
このステップ(S2704)において、リストアモジュール703は、次の(27a)(27b)の処理を実行する。
(27a) オブジェクト配置管理モジュール904に対しオブジェクト配置参照要求を送信し、オブジェクト配置管理テーブル1500を取得する。
(27b) オブジェクト配置管理テーブル1500から、リストアすべき全てのファイルまたはディレクトリ1501が格納されたエントリを探し、それぞれチェックが入っている装置番号を取得する。
次に、リストアモジュール703は、バックアップ装置選択プログラム800に対し、装置選択要求を発行する(S2705)。装置選択処理がバックアップ装置選択プログラム800によって行われた後、リストアモジュール703は、選択された1つのバックアップ装置の装置番号を含む装置選択応答を得ると、S2706へ進む。装置選択処理の詳細は、図28により後述する。
次に、リストアモジュール703は、リストア対象がファイルかディレクトリか、ファイル操作要求が何かに基づいて、適切な要求データを、選択した装置からリストアする(S2706)。
このステップ(S2706)において、リストアモジュール703は、次の(27c)から(27e)の処理を実行する。
(27c) S2004と同様の方法で、リストア対象がファイルかディレクトリかを調べ、全ての要求データを決定する。
(27d) 選択したバックアップ装置に、全ての要求データのUUIDを含めたオブジェクト取得要求を送信する。
(27e) バックアップ装置から応答を受信すると、応答に含まれるデータを使って、ファイルシステム251に全てのファイルまたはディレクトリをリストアし、S2707へ進む。
次に、リストアモジュール703は、リストア進捗を更新する(S2707)。すなわち、リストアモジュール703は、S2005と同様の方法で、リストア進捗管理テーブル1200を更新し、リストア処理を完了する。
図28は、リストア処理における装置選択モジュール804の処理フローである。
装置選択モジュール804は、転送サイズが閾値よりも小さいか否かを判断する(S2801)。装置選択モジュール804は、S2601と同様の方法で、転送サイズとその閾値を比較し、転送サイズの方が小さい場合(Yes)はS2802へ、それ以外の場合(No)はS2805へ進む。
転送サイズが閾値よりも小さい場合(Yes)、装置選択モジュール804は、応答時間の短い順に装置番号を並べ替える(S2802)。すなわち、装置選択モジュール804は、S2602と同様の方法で、バックアップ装置の装置番号を応答時間の値の小さい順に並び替える。以下、並び替えた後、応答時間の小さい順にl(1)、l(2)、l(3)、バックアップ処理性能またはリストア処理性能をp(1)、p(2)、p(3)と表現する。
次に、装置選択モジュール804は、応答時間とリストア処理性能に応じて使用する装置を決定する(S2803)。ここで、転送サイズが閾値よりも小さい数をm(ただし、0<m≦10を満たす自然数)とすると、第iバックアップ装置(ただし、0<i≦nを満たす自然数)の応答時間内に処理できる全バックアップ装置の要求処理数の総和は、S(i)=l(i)×{p(1)+p(2)+…+p(i)}/1000と表せる。装置選択モジュール804は、与えられたmに対して、S(i−1)<m≦S(i)を満たすiを求め、第iバックアップ装置までを使用することを決定する。ここで、S(0)=0とする。例えば、m=7のとき、S(1)=l(1)×p(1)/1000=10×100/1000=1、S(2)=l(2)×{p(1)+p(2)}/1000=50×(100+100)/1000=10であるから、装置選択モジュール804はi=2と求める。このとき、装置選択モジュール804は、第1バックアップ装置と、第2バックアップ装置を使用し、第3バックアップ装置を使用しない。
次に、装置選択モジュール804は、応答時間と処理性能に応じて要求数の配分を決定する(S2804)。要求数の配分は、最大で処理性能の比となるように、応答時間の短い順に使用する装置を割り当てることで決定される。例えば、m=7のとき、第1バックアップ装置と第2バックアップ装置に、それぞれ5つと2つの要求を配分する。このために、装置選択モジュール804は、次の(28a)から(28d)の処理を行う。
(28a) 性能測定テーブル2400から、第1バックアップ装置と第2バックアップ装置のバックアップ処理性能の比を求め、1:1を得る。
(28b) S(2)=10であることから、最大で5:5になるようにすることを決定する。(28c) 5つの要求を応答時間の短い第1バックアップ装置に配分し、残りの2つの要求をより2番目に応答時間が短い第2バックアップ装置に配分する。
(28d) 配分を決定した後、装置選択要求に対する応答に、閾値が転送サイズよりも小さいパスに装置番号を、決定した配分に基づいて対応づけた情報を含め、要求元に送信する。
転送サイズが閾値に等しいかそれより大きい場合(No)に、装置選択モジュール804は、転送サイズが小さい順にファイルをソートする(S2805)。すなわち、装置選択モジュール804は、装置選択要求に含まれる転送サイズが小さい順にファイルパスを並び替えた後、S2806へ進む。
次に、装置選択モジュール804は、各バックアップ装置のリストア総量を計算する(S2806)。ここで、バックアップ装置のリストア総量Tとは、そのバックアップ装置に要求する転送サイズの総和である。あるバックアップ装置のリストア総量は、全ファイルの転送サイズの総和と、各バックアップ装置の帯域に対するそのバックアップ装置の帯域割合と、の積で求める。例として、ストレージ装置200が、性能測定テーブル1600が示す帯域幅をもつバックアップ装置から、1GBのファイル10個をリストアする場合の第1バックアップ装置のバックアップ総量T(1)を計算する。全ファイルの転送サイズの総和は、1×10=10(GB)、第1バックアップ装置の帯域割合は、100/(100+1000+10)=0.090であることから、T(1)=10×0.090=0.90(GB)と計算される。以下同様に、T(2)=10×1000/(100+1000+10)=9.0(GB)、T(3)=10×10/(100+1000+10)=0.090(GB)と計算される。なお、例において、計算の有効数字は2桁とし、3桁目以下は切り捨てた。
次に、装置選択モジュール804は、リストア総量に応じて、バックアップ装置と要求の配分を決定する(S2807)。
このステップに(S2807)おいて、装置選択モジュール804は、次の(28e)から(28i)の処理を実行する。
(28e) S2805で並び替えたファイルパス順に、1個のファイルパスを取得する。
(28f) リストア総量がファイルサイズと同じか大きく、最もリストア容量が小さいバックアップ装置を、ファイルパスの示すファイルのリストア元とする。このとき、リストア総量が転送サイズよりも小さいバックアップ装置を、それ以降の処理におけるファイルのバックアップ先の候補から外す。
(28g) バックアップ先として選択したバックアップ装置のリストア総量から、バックアップするファイルの転送データ量の差をとり、そのバックアップ装置の新しいバックアップ総量とする。
(28h) S2805で並び替えたファイルパス順で、次の1個のファイルパスを取得し、上で述べた方法と同様の方法で全てのファイルパスに対してバックアップ装置を決定する。 (28i) 装置選択要求に対する応答に、ファイルパスと対応づけて選択した装置番号を含めて、要求元に送信する。例えば、ストレージ装置200が、性能測定テーブル1600が示す帯域幅をもつバックアップ装置から、1GBのファイル10個をリストアする場合は次のようになる。まず、装置選択モジュール804は、1つ目のファイル(サイズ1GB)を取得する。次に、装置選択モジュール804は、各バックアップ装置のリストア総量T(1)=0.90、T(2)=9.0、T(3)=0.090をもとに、1GBと同じか大きく、最もリストア総量の大きいバックアップ装置である第2バックアップ装置をリストア元に決定する。次に、新しいT(1)=0.90、T(2)=9.0−1=8.0、T(3)=0.090とする。このような処理を、装置選択モジュール804は、装置選択要求に含まれる全てのファイルパスに対して行うことで、ファイルパス毎に選択した装置番号を得ることができる。
以上が、実施例3の説明である。
実施例3によれば、ストレージ装置にメタデータに対する読み込みや書き込みが集中した場合に起こるバースト的な小サイズのオンデマンドリストアに対して、各リストアにかかる時間を低減し、応答時間を短縮することができる。
実施例3では、バックアップやリストア時に処理を開始する要求数として10を用いたが、5や20などの別の数値であってもよいし、CPUコア数などの並列処理に影響するハードウェア構成に応じて、装置毎に設定してもよい。
次に、実施例4を説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略または簡略する。
実施例4では、バックアップ装置がオブジェクトのバージョン管理を行う場合に、複数の性能指標に基づいてリストア先を選択しつつ、特定のバージョンのファイルシステムをリストアする。ここで、バージョン管理とは、格納された全てのオブジェクトの履歴データを保持する仕組みである。
以下、実施例4を詳細に説明する。
端的に言えば、実施例4では、実施例1の構成のうち、オブジェクトサーバプログラム1000と、オブジェクト操作プログラム1100と、オブジェクト操作プログラム1100と、バックアッププログラム600の一部であるバックアップモジュール603と、オンデマンドリストアプログラム700の一部であるリストアモジュール703と、オブジェクト配置管理テーブル1500と、リストア進捗管理モジュール704と、が異なる。
オブジェクトサーバプログラム1000は、実施例1の場合に加えて、バージョン管理されたオブジェクトをサービスする。オブジェクトサーバプログラム1000は、実施例1と同様に、オブジェクト要求受信モジュール1001と、オブジェクト応答送信モジュール1002とを備える。オブジェクト要求受信モジュール1001が受信するオブジェクト操作要求には、実施例1で述べたUUIDに加えて、バージョンIDを含む。バージョンIDとは、「1」や「2」のような順序づけられた数値である。オブジェクト要求受信モジュール1001は、受信したオブジェクト操作要求を、オブジェクト操作プログラム1100に送信する。オブジェクト応答送信モジュール1002は、実施例1と同様である。
オブジェクト操作プログラム1100は、実施例1の場合に加えて、バージョン管理されたオブジェクトの操作を行うことができる。オブジェクト操作プログラム1100は、実施例1と同様に、オブジェクト格納モジュール1101と、オブジェクト取得モジュール1102とを備える。オブジェクト格納モジュール1101は、オブジェクト格納要求に含まれる内容を、オブジェクト格納要求に含まれるUUIDとバージョンIDに対応づけて、オブジェクトストア341に格納する。オブジェクト取得モジュール1102は、オブジェクト取得要求に含まれるUUIDとバージョンIDに対応づけられたオブジェクトをオブジェクトストア341から読み出す。
バックアッププログラム600は、実施例1の場合に加えて、オブジェクトのバージョンIDを指定してバックアップを行う。バックアッププログラム600は、実施例1と同様に、バックアップ要求受信モジュール601とバックアップ応答送信モジュール602とを備える。バックアップ要求受信モジュール601は、受信したバックアップ要求にバージョンIDを加えて、バックアップモジュール603に送信する。バックアップ応答送信モジュール602およびバックアップモジュール603は、実施例1と同様である。
図29は、オブジェクト配置管理テーブル2900の一例を示す図である。
オブジェクト配置管理テーブル2900は、パス2901、ファイルID2902、バージョンID2903と、格納完了日時2904と、装置番号2905、2906、2907からなる。パス2901とファイルID2902、装置番号2905、2906、2907は、実施例1と同様である。バージョンID2903は、オブジェクトに関連づけられる一意のバージョンのIDを格納する。 格納完了日時2904は、オブジェクトがバックアップ装置に格納された日時を格納する。
図30は、リストア進捗管理テーブル3000の一例を示す図である。
リストア進捗管理テーブル3000のエントリは、パス3001、ファイルID3002、バージョンID3003、メタデータ3004、データ3005からなる。パス3001と、ファイルID3002と、メタデータ3004と、データ3005と、は、実施例1と同様である。バージョンID3003は、オブジェクトに関連づけられる一意のバージョンIDを格納する。また、バージョンIDを通し番号で付与することも可能である。
図31は、リストアモジュール703の処理フローである。
リストアモジュール703が受信するリストア要求には、リストアすべきファイルまたはディレクトリのパスと、リストアすべきファイルまたはディレクトリがストレージ装置200に存在した時刻(リストア対象時刻)と、ファイル操作要求とが含まれる。
まず、リストアモジュール703は、要求データがリストア済みか否かを判定する(S3101)。
このステップ(S3101)において、リストアモジュール703は、次の(31a)から(31f)の処理を実行する。
(31a) オブジェクト配置管理モジュール904に対しオブジェクト配置参照要求を送信し、オブジェクト配置管理テーブル2900を取得する。
(31b) オブジェクト配置管理テーブル2900から、リストアすべきファイルまたはディレクトリのパスと一致し、かつ、リストア対象時刻よりも新しく現在時刻に最も近い格納完了時刻をもつエントリを探し、そのバージョンIDを取得する。
(31c) リストア進捗管理モジュール704に対しリストア進捗参照要求を送信し、リストア進捗管理テーブル3000を取得する。
(31d) リストア進捗管理テーブル3000から、リストアすべきファイルまたはディレクトリのパス3001とバージョンID3003との両方が一致するエントリを探し、対応するメタデータ3004と3005にチェックが入っているかを確認する。
(31e) メタデータ3004とデータ3005との両方にチェックが入っていた場合に限り、ファイルシステム251にリストア済みと判断し(Yes)、リストア処理を完了する。
(31f) そうでない場合、リストアすべきファイルまたはディレクトリはファイルシステム251にリストアされていないと判断し(No)、S3102に進む。
次に、リストアモジュール703は、取得したバージョンIDに対応するファイルまたはディレクトリをもつ全ての装置の装置番号を取得する(S3102)。リストアモジュール703は、オブジェクト配置管理テーブル2900から、リストアすべきファイルまたはディレクトリが格納されたエントリを探し、チェックが入っている装置番号を取得する。
次に、リストアモジュール703は、バックアップ装置選択プログラム800に対し、装置選択要求を発行する(S3103)。装置選択処理がバックアップ装置選択プログラム800によって行われた後、リストアモジュール703は、選択された1つのバックアップ装置の装置番号を含む装置選択応答を得ると、S3104へ進む。装置選択処理の詳細は、実施例1の場合の図21と同様である。
次に、リストアモジュール703は、リストア対象がファイルかディレクトリか、ファイル操作要求が何かに基づいて、適切な要求データを、選択した装置からリストアする(S3104)。実施例1で述べた方法で要求データを決定すると、リストアモジュール703は、このステップ(S3104)で次の(31g)から(31j)の処理を実行する。
(31g) 選択したバックアップ装置に、要求データのUUIDとバージョンIDを含めたオブジェクト取得要求を送信する。
(31h) バックアップ装置から応答を受信すると、応答に含まれるデータを使って、ファイルシステム251にファイルまたはディレクトリをリストアし、S3105へ進む。
次に、リストアモジュール703は、リストア進捗を更新する(S3105)。
このステップ(S3105)において、リストアモジュール703は以下の処理を実行する。
(31i) リストア進捗管理モジュール704にリストア進捗更新要求を送信し、リストア進捗管理テーブル3000の、リストアしたファイルまたはディレクトリのメタデータ3004やデータ3005にチェックをつける。
(31j) リストア進捗管理モジュール704から、リストア進捗管理要求に対する応答を受信すると、リストア処理を完了する。
以上が、実施例4の説明である。
実施例4によれば、バージョン管理機能を有するバックアップ装置を用いた場合に、任意の時刻でストレージ装置に存在したファイルまたはディレクトリをリストアするのにかかる時間を低減することができる。
次に、実施例5を説明する。以下、実施例1との相違点を主に説明し、実施例1との共通点については、説明を省略または簡略する。
実施例5では、ストレージ装置とバックアップ装置とは異なる中継ストレージ装置を用いる。リストアの際、ストレージ装置は、バックアップ装置から直接、または、中継ストレージ装置を経由して間接的に、データをリストアする。
以下、実施例5を詳細に説明する。
端的に言えば、実施例5では、実施例1の構成に加え新たに中継ストレージ装置を備え、さらに、実施例1の構成のうち、オンデマンドリストアプログラム700の一部であるリストアモジュールと703と、バックアップ装置管理プログラム900の一部である構成定義モジュール903と構成定義テーブル1400と、バックアップ装置管理プログラム900の一部である性能測定モジュール905と性能測定テーブル1600と、が異なる。
図32は、実施例5における分散バックアップシステムの構成例を示すブロック図である。
クライアント計算機100と、管理端末110と、ストレージ装置200と、複数のバックアップ装置300と、ネットワーク120とは、実施例1と同様である。中継ストレージ装置3300は、ストレージ装置200に対し中継リストアサービスを提供する計算機である。ここで、中継リストアサービスとは、第nバックアップ装置300から、第nバックアップ装置に格納されたデータを受信し、ストレージ装置200に送信するサービスである。
図33は、中継ストレージ装置3300の構成を示すブロック図である。
中継ストレージ装置3300は、CPU3310と、ネットワークI/Oインターフェース3320と、ディスクI/Oインターフェース3330と、ディスクドライブ3340と、メモリ3350と、それらを接続する内部的な通信路3360(例えば、バス)を有する計算機である。
CPU3310は、メモリ3350に格納されたプログラムを実行する。ネットワークI/Oインターフェース3320は、ストレージ装置200と第nバックアップ装置300との通信に使用される。ディスクI/Oインターフェース3330は、ディスクドライブ3340との通信に使用される。ディスクドライブ3340は、中継ストレージ装置3300が読み書きするデータを格納するために使用される。ディスクドライブ3340には、オブジェクトストア3341が格納される。オブジェクトストア3341は、実施例1におけるオブジェクトストア341と同様の、データをオブジェクトとして管理するシステムである。メモリ3350は、プログラムやデータを格納する。例えば、オブジェクトサーバプログラム3351とオブジェクト操作プログラム3352と、中継リストアプログラム3400と、が格納される。
オブジェクトサーバプログラム3351は、実施例1におけるオブジェクトサーバプログラム1000と同様の、ストレージ装置200に対してオブジェクト単位のストレージサービスを提供するプログラムである。
オブジェクト操作プログラム3352は、オブジェクトストア3341に格納されたオブジェクトを操作するプログラムである。
なお、中継ストレージ装置3300が用いるデータ格納用媒体としてディスクドライブを示したが、SSD(Solid State Drive)であってもよい。また、ストレージ装置200としてデータ格納媒体を内蔵する装置を示したが、外部記憶装置を組み合わせてもよい。例えば、SAN(Storage Area Network)経由で接続されたディスクアレイ装置を用いてもよい。
図34は、中継リストアプログラム3400の構成例を示すブロック図である。
中継リストアプログラム3400は、中継リストア要求受信モジュール3401と、中継リストア応答送信モジュール3402と、性能測定モジュール3403と、中継リストアモジュール3404と、を備える。
中継リストア要求受信モジュール3401は、オンデマンドリストアプログラム700から中継リストア要求があった場合に実行される。中継リストア要求受信モジュール3401は、受信したリストア要求を、中継リストアモジュール3404に送信する。
中継リストア応答送信モジュール3402は、中継リストアモジュール3404から受信した中継リストア要求の処理結果を、オンデマンドリストアプログラム700に応答する。
性能測定モジュール3403は、ストレージ装置200がもつ性能測定モジュール905から性能測定要求があった場合に実行される。性能測定モジュール3403は、全てのバックアップ装置と中継ストレージ装置3300との間の性能情報(応答時間と帯域幅)を測定し、その結果を性能測定モジュール905に応答する。
中継リストアモジュール3404は、オンデマンドリストアプログラム700から中継リストア要求を受信した場合に実行される。中継リストアモジュール3404は、第nバックアップ装置300に格納されたオブジェクトを取得し、オブジェクトストア3341に複製する。中継リストアモジュール3404が行う処理の詳細は、図39で後述する。
図35は、構成定義テーブル3500の一例を示す図である。
構成定義テーブル3500は、装置番号3501と、アクセスID3502と、役割3503と、からなる。装置番号3501とアクセスID3502は、実施例1で述べたものと同様である。役割3503は、 分散バックアップシステムを構成する計算機の役割が、バックアップ装置であるか中継ストレージ装置であるかを定義する。
図36は、性能測定テーブル3600の一例を示す図である。
性能測定テーブル3600は、観点3601、装置番号3602、3603、3604、3605、3606及び3607からなる。観点3601と装置番号3602、3603、3604は、実施例1と同様に、第nバックアップ装置300とストレージ装置200との間の通信に関する性能情報を格納する。装置番号3605、3606、3607は、中継ストレージ装置3300とストレージ装置200との間の通信に関する性能情報と、第nバックアップ装置300と中継ストレージ装置3300との間の通信に関する性能情報と、を含む性能情報を格納する。例えば、装置番号3605の応答時間フィールドには、第1バックアップ装置と中継ストレージ装置3300との間の応答時間と中継ストレージ装置3300とストレージ装置200との間の応答時間とを足しあわせた数値が格納される。また、装置番号3605の帯域幅フィールドには、第1バックアップ装置と中継ストレージ装置3300との間の帯域幅と中継ストレージ装置3300とストレージ装置200との間の帯域幅のうち、より小さい帯域幅の値が格納される。
性能測定モジュール905は、実施例1と同様の方法で、第nバックアップ装置300とストレージ装置200との間の性能を測定し、性能測定テーブル3600の装置番号3602、3603、3604を更新する。さらに、性能測定モジュール905は、中継ストレージ装置3300に性能測定要求を送信し、その応答によって得た第nバックアップ装置300と中継ストレージ装置3300との間の性能情報と、性能測定モジュール905が測定する中継ストレージ装置3300とストレージ装置200との間の性能情報とを使って、性能測定テーブル3600の装置番号3605、3606、3607を更新する。
図37と図38は、リストアモジュール703の処理フローである。
実施例5では、リストアに際して、作業員(例えば管理者)はストレージ装置200の代替装置として中継ストレージ装置3300を用意し、ネットワーク120と接続する。次に、作業員は、管理端末110を用いて構成定義モジュール903に対し構成更新要求を送信し、バックアップ装置300と中継ストレージ装置3300とを含む構成定義テーブル3500を作成する。最後に、作業員は、オブジェクト配置管理モジュール904に対して、管理端末110を用いてオブジェクト配置復旧要求を送信し、いずれかのバックアップ装置からオブジェクト配置管理テーブル1500を取得する。
リストアモジュール703は、リストア要求受信モジュール701からリストア要求を受信した場合に、CPU210で実行される。リストア要求には、リストアすべきファイルまたはディレクトリのパスとファイル操作要求が含まれる。
まず、リストアモジュール703は、要求データがリストア済みか否かを判定する(S3701)。実施例1の場合と同様の方法で、ファイルシステム251にリストア済みと判断した場合(Yes)、リストア処理を完了する。そうでない場合(No)、リストアモジュール703は、S3702に進む。
次に、リストアモジュール703は、ファイルまたはディレクトリをもつ全ての装置の装置番号を取得する(S3702)。実施例1と同様の方法で、リストアモジュール703は、リストアすべきファイルまたはディレクトリが格納された装置の装置番号を取得する。
次に、リストアモジュール703は、バックアップ装置選択プログラム800に対し、装置選択要求を発行する(S3703)。装置選択処理として実施例1と同様の処理がバックアップ装置選択プログラム800によって行われた後、リストアモジュール703は、選択された1つのバックアップ装置の装置番号と種別(バックアップ装置またはリストア装置)を含む装置選択応答を得ると、S3704へ進む。
次に、リストアモジュール703は、選択された装置がバックアップ装置か中継ストレージ装置かを判別し、バックアップ装置の場合(Yes)S3707へ、中継ストレージ装置の場合(No)S3705へ進む。
中継ストレージ装置が選択された場合、リストアモジュール703は、中継ストレージ装置3300に中継リストア要求を送信する(S3705)。中継リストア要求には、リストアすべきファイルまたはディレクトリのファイルIDと、そのファイルまたはディレクトリをもつ装置へのアクセスIDと、が含まれる。中継リストア要求を送信したら、リストアモジュール703は、中継ストレージ装置3300からの応答を待つ。
次に、リストアモジュール703は、中継ストレージ装置3300から中継リストア応答を受信する(S3706)。中継リストア応答には、リストアすべきファイルまたはディレクトリのリストアが完了したか否かが含まれる。中継リストア応答を受信したら、リストアモジュール703は、S3707へ進む。
次に、リストアモジュール703は、実施例1と同様の方法で、ファイル操作要求の処理に必要な要求データを、選択した装置からリストアする(S3707)。バックアップ装置から要求データを受信すると、リストアモジュール703は、ファイルシステム251にファイルまたはディレクトリをリストアし、S3708へ進む。
次に、リストアモジュール703は、実施例1と同様の方法で、リストア進捗を更新する(S3708)。リストアモジュール703は、リストア進捗管理モジュール704から、リストア進捗管理要求に対する応答を受信すると、リストア処理を完了する。
図39は、中継リストアモジュール3404の処理フローである。
中継リストアモジュール3404は、リストアモジュール703から中継リストア要求を受信した場合に、CPU3310で実行される。中継リストア要求には、リストアすべきファイルまたはディレクトリのファイルIDと、そのファイルまたはディレクトリをもつ装置へのアクセスIDと、が含まれる。
まず、中継リストアモジュール3404は、受信した中継リストア要求から、リストア元となるバックアップ装置へのアクセスIDを取得し、アクセス先のバックアップ装置とする(S3901)。
次に、中継リストアモジュール3404は、バックアップ装置がもつオブジェクトを複製する(S3902)。すなわち、中継リストアモジュール3404は、受信した中継リストア要求から、複製すべきファイルまたはディレクトリのファイルIDを取得し、バックアップ装置がもつオブジェクトを、オブジェクトストア3341に複製する。
次に、中継リストアモジュール3404は、中継リストア要求に対する応答をストレージ装置200へ送信し(S3903)、それにより中継リストア処理を完了する。中継リストア応答には、中継リストアが成功したか否かが含まれる。
以上が、実施例5の説明である。
実施例5によれば、バックアップ装置とストレージ装置間の通信が遅い場合に、中継ストレージ装置を用いてトラフィックをバイパスすることにより、ファイルまたはディレクトリをリストアするのにかかる時間を低減することができる。また、同時に、ストレージ装置がリストア処理で忙しい場合に、ストレージ装置の障害で下がってしまったファイルまたはディレクトリの冗長性を、高速に高めることができる。
実施例5では、中継ストレージ装置をバックアップ装置と異なる別のストレージ装置としたが、中継ストレージ装置とバックアップ装置を1つのストレージ装置として構成してもよい。
実施例5では、1台の中継ストレージ装置を用いる構成を説明したが、2台以上の複数の中継ストレージ装置を用いてもよい。この場合においても、前記ストレージ装置選択プログラムによって、適切に選ぶことができる。
実施例5では、中継ストレージ装置がオブジェクトストアを有するものとして説明したが、オブジェクトストアでなくファイルシステムを有してもよい。中継ストレージ装置がファイルシステムを有する場合、ファイルIDをパスに、オブジェクトサーバプログラムをファイルサーバプログラムに、オブジェクト操作プログラムをファイル操作プログラムにそれぞれ変更すればよい。
100:クライアント計算機
200:ストレージ装置
300:第nバックアップ装置(ただしn=1、2、3)
400:ファイルサーバプログラム
500:ファイル操作プログラム
600:バックアッププログラム
700:オンデマンドリストアプログラム
800:バックアップ装置選択プログラム
900:バックアップ装置管理プログラム
1000:オブジェクトサーバプログラム
1100:オブジェクト操作プログラム
1200、3000:リストア進捗管理テーブル
1300:装置選択条件設定テーブル
1400、3500:構成定義テーブル
1500、2900:オブジェクト配置管理テーブル
1600、2400、3600:性能測定テーブル
3300:中継ストレージ装置
3400:中継リストアプログラム

Claims (14)

  1. 複数のバックアップ装置と、
    性能指標保持手段及びバックアップ装置選択手段を有するストレージ装置と、
    を備え、
    前記性能指標保持手段は、当該性能指標として前記バックアップ装置毎における応答時間及び帯域幅を保持し、
    前記バックアップ装置選択手段は、
    リストア要求に係るデータの転送サイズが所定の閾値を上回るか否かを判定し、前記判定の結果上回る場合には前記帯域幅に基づき該リストアに係る送信元となるバックアップ装置を選択し、前記判定の結果下回る場合には前記応答時間に基づき該リストアに係る送信元となるバックアップ装置を選択する
    ことを特徴とする分散バックアップシステム。
  2. 請求項1記載の分散バックアップシステムであって、
    前記バックアップ装置選択手段は、前記応答時間及び前記転送サイズを前記帯域幅で除算した値を加算して前記バックアップ装置毎の予想転送時間を算出し、該予想転送時間の小さい順にバックアップ装置を選択する
    ことを特徴とする分散バックアップシステム。
  3. 請求項1記載の分散バックアップシステムであって、
    前記所定の閾値とする転送サイズを設定可能とするユーザインタフェース装置を設けることを特徴とする分散バックアップシステム。
  4. 請求項1に記載の分散バックアップシステムであって、
    オンデマンドリストアの処理実行に並行して、テストデータの送受信又はバッチリストアの処理実行を動作させて性能を測定し、前記性能の測定に基づいて前記性能指標の値を更新する手段を備える
    ことを特徴とする分散バックアップシステム。
  5. 請求項1に記載の分散バックアップシステムであって、
    前記ファイルシステムのバックアップを取得する場合には、前記バックアップ装置選択手段を当該バックアップ取得に係る通信先として前記バックアップ装置を選択するように動作させ、その場合の前記転送サイズは前記バックアップ取得のために要求されるデータの転送サイズである
    ことを特徴とする分散バックアップシステム。
  6. 請求項5記載の分散バックアップシステムであって、
    前記バックアップを取得するに当たって冗長度を設定し、
    前記バックアップ装置選択手段は、該設定した冗長度分も含めてバックアップ装置を選択する
    ことを特徴とする分散バックアップシステム。
  7. 請求項1記載の分散バックアップシステムが複数のリストア要求を処理する場合であって、
    単位時間あたりに処理可能なリストアオペレーション数を示すリストア処理性能を測定する手段を設け、
    前記バックアップ装置選択手段は、前記転送サイズが所定の閾値を上回るか否かを判定し、上回る場合には、前記帯域幅を基に前記各バックアップ装置毎に算出したリストア総量に応じて前記リストア要求数の配分と前記バックアップ装置の選択を決定し、下回る場合には、前記応答時間と前記リストア処理性能に応じて前記リストア要求数の配分と前記バックアップ装置の選択を決定する
    ことを特徴とする分散バックアップシステム。
  8. 請求項7記載の分散バックアップシステムが複数のバックアップ取得要求を処理する場合であって、
    単位時間あたりに処理可能なバックアップオペレーション数を示すバックアップ処理性能を測定する手段を設け、
    前記バックアップ装置選択手段は、前記転送サイズが所定の閾値を上回るか否かを判定し、上回る場合には、前記帯域幅を基に前記各バックアップ装置毎に算出したバックアップ総量に応じて前記バックアップ要求数の配分と前記バックアップ装置の選択を決定し、下回る場合には、前記応答時間と前記バックアップ処理性能及び冗長度に応じて前記バックアップ要求数の配分と前記バックアップ装置の選択を決定する
    ことを特徴とする分散バックアップシステム。
  9. 請求項1記載の分散バックアップシステムであって、
    前記ファイルシステムのバージョンを管理する管理手段を設け、
    前記バックアップ装置選択手段は、リストアすべきバージョンのファイルシステムをもつバックアップ装置を前記判定の対象とする
    ことを特徴とする分散バックアップシステム。
  10. 請求項1記載の分散バックアップシステムであって、
    前記ストレージ装置及び前記選択されたバックアップ装置とは異なる中継ストレージ装置を備え、
    前記性能指標保持手段は、前記中継ストレージ装置における応答時間及び帯域幅も前記性能指標として保持し、
    前記バックアップ装置選択手段は、前記リストアを前記バックアップ装置から間接的に経由して行うために前記中継ストレージ装置を選択することも可能にした
    ことを特徴とする分散バックアップシステム。
  11. 請求項10記載の分散バックアップシステムであって、
    前記中継ストレージ装置は、前記選択されたバックアップ装置を除く前記複数のバックアップ装置のうちのひとつである、
    ことを特徴とする分散バックアップシステム。
  12. 請求項10記載の分散バックアップシステムであって、
    前記バックアップ装置選択手段により中継ストレージ装置が選択された場合には、前記ストレージ装置から前記中継ストレージ装置に中継リストア要求が送信される
    ことを特徴とする分散バックアップシステム。
  13. 複数のバックアップ装置毎における応答時間及び帯域幅を保持するステップと、
    該リストアのために要求されるデータの転送サイズが所定の閾値を上回るか否かを判定するステップと、
    前記判定の結果上回る場合には前記帯域幅に基づき該リストアに係る通信元となるバックアップ装置を選択するステップと、
    前記判定の結果下回る場合には前記応答時間に基づき該リストアに係る通信元となるバックアップ装置を選択するステップと、
    を有することを特徴とする分散バックアップシステムにおけるリストア方法。
  14. 請求項13記載の分散バックアップシステムにおけるリストア方法であって、
    前記応答時間及び帯域幅を保持する対象として中継リストア装置を加え、
    前記バックアップ装置を選択するステップにより該中継リストア装置が選択された場合には、該中継リストア装置に中継リストア要求を送信するステップ、
    を設けたことを特徴とする分散バックアップシステムにおけるリストア方法。
JP2015510540A 2012-09-20 2012-09-20 複数の性能指標に基づきアクセス先を決定する分散バックアップシステム Expired - Fee Related JP5913738B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/005971 WO2014045316A1 (en) 2012-09-20 2012-09-20 Distributed backup system for determining access destination based on multiple performance indexes

Publications (2)

Publication Number Publication Date
JP2015529861A true JP2015529861A (ja) 2015-10-08
JP5913738B2 JP5913738B2 (ja) 2016-04-27

Family

ID=47010675

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015510540A Expired - Fee Related JP5913738B2 (ja) 2012-09-20 2012-09-20 複数の性能指標に基づきアクセス先を決定する分散バックアップシステム

Country Status (3)

Country Link
US (1) US20140081919A1 (ja)
JP (1) JP5913738B2 (ja)
WO (1) WO2014045316A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017142605A (ja) * 2016-02-09 2017-08-17 株式会社日立製作所 バックアップリストアシステム及びリストア方法
JP2021081883A (ja) * 2019-11-15 2021-05-27 富士通株式会社 メモリバックアップ制御装置、ストレージ制御装置及び制御情報作成プログラム
US11134121B2 (en) 2017-07-12 2021-09-28 Hitachi, Ltd. Method and system for recovering data in distributed computing system
JP2023501656A (ja) * 2020-01-06 2023-01-18 アーミク カンパニー,リミテッド データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725996B1 (en) * 2012-12-18 2020-07-28 EMC IP Holding Company LLC Method and system for determining differing file path hierarchies for backup file paths
JP6248435B2 (ja) * 2013-07-04 2017-12-20 富士通株式会社 ストレージ装置、およびストレージ装置の制御方法
US9535612B2 (en) * 2013-10-23 2017-01-03 International Business Machines Corporation Selecting a primary storage device
US9442803B2 (en) * 2014-06-24 2016-09-13 International Business Machines Corporation Method and system of distributed backup for computer devices in a network
CN105302702B (zh) * 2014-06-30 2019-09-13 腾讯科技(深圳)有限公司 终端性能的检测方法及装置
US10691552B2 (en) * 2015-10-12 2020-06-23 International Business Machines Corporation Data protection and recovery system
US9710367B1 (en) * 2015-10-30 2017-07-18 EMC IP Holding Company LLC Method and system for dynamic test case creation and documentation to the test repository through automation
US10162709B1 (en) * 2016-11-23 2018-12-25 Amazon Technologies, Inc. Incremental backups for removable media
EP3751532A1 (en) * 2019-06-13 2020-12-16 Rohde & Schwarz GmbH & Co. KG Remote access and control system and corresponding method
US11403024B2 (en) * 2019-08-28 2022-08-02 Cohesity, Inc. Efficient restoration of content
US11816004B2 (en) * 2020-02-28 2023-11-14 EMC IP Holding Company LLC Systems and methods for file level prioritization during multi-object data restores
US11556427B1 (en) * 2021-09-30 2023-01-17 Dell Products, L.P. Multi-backup network informed policy creation
US11977448B2 (en) * 2022-05-25 2024-05-07 Netapp, Inc. Directory restore from remote object store
US11977433B2 (en) 2022-09-27 2024-05-07 Hitachi, Ltd. Failure area identification system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005004243A (ja) * 2003-06-09 2005-01-06 Tkc Corp データベースバックアップ方法、およびその方法をコンピュータに実行させるプログラム、データベースバックアップシステム、データサーバ、管理サーバ
JP2005122611A (ja) * 2003-10-20 2005-05-12 Hitachi Ltd ストレージ装置及びバックアップ取得方法
US7061929B1 (en) * 2000-03-31 2006-06-13 Sun Microsystems, Inc. Data network with independent transmission channels
JP2008146627A (ja) * 2006-12-12 2008-06-26 Hitachi Ltd 複数のデータセンタにおけるストレージリソース管理のための方法および装置
JP2009145967A (ja) * 2007-12-11 2009-07-02 Hitachi Ltd バックアップ装置及び方法並びにファイル読出し装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2391717A1 (en) * 2002-06-26 2003-12-26 Ibm Canada Limited-Ibm Canada Limitee Transferring data and storing metadata across a network
US8230066B2 (en) * 2002-11-04 2012-07-24 International Business Machines Corporation Location independent backup of data from mobile and stationary computers in wide regions regarding network and server activities
US8095590B1 (en) * 2004-07-27 2012-01-10 Novell, Inc. Techniques for distributing data
FR2878673B1 (fr) * 2004-11-26 2007-02-09 Univ Picardie Jules Verne Etab Systeme et procede de sauvegarde distribuee perenne
JP4204619B2 (ja) * 2005-01-21 2009-01-07 パナソニック株式会社 バックアップシステム、中継装置、情報端末、バックアップ装置
US8688780B2 (en) * 2005-09-30 2014-04-01 Rockwell Automation Technologies, Inc. Peer-to-peer exchange of data resources in a control system
JP4782825B2 (ja) * 2006-04-10 2011-09-28 インターナショナル・ビジネス・マシーンズ・コーポレーション データの保存先を複数のテープ記録装置から選択するための装置、方法及びプログラム
US8769055B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7061929B1 (en) * 2000-03-31 2006-06-13 Sun Microsystems, Inc. Data network with independent transmission channels
JP2005004243A (ja) * 2003-06-09 2005-01-06 Tkc Corp データベースバックアップ方法、およびその方法をコンピュータに実行させるプログラム、データベースバックアップシステム、データサーバ、管理サーバ
JP2005122611A (ja) * 2003-10-20 2005-05-12 Hitachi Ltd ストレージ装置及びバックアップ取得方法
JP2008146627A (ja) * 2006-12-12 2008-06-26 Hitachi Ltd 複数のデータセンタにおけるストレージリソース管理のための方法および装置
JP2009145967A (ja) * 2007-12-11 2009-07-02 Hitachi Ltd バックアップ装置及び方法並びにファイル読出し装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017142605A (ja) * 2016-02-09 2017-08-17 株式会社日立製作所 バックアップリストアシステム及びリストア方法
US11134121B2 (en) 2017-07-12 2021-09-28 Hitachi, Ltd. Method and system for recovering data in distributed computing system
JP2021081883A (ja) * 2019-11-15 2021-05-27 富士通株式会社 メモリバックアップ制御装置、ストレージ制御装置及び制御情報作成プログラム
JP2023501656A (ja) * 2020-01-06 2023-01-18 アーミク カンパニー,リミテッド データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム
JP7387116B2 (ja) 2020-01-06 2023-11-28 アーミク カンパニー,リミテッド データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム

Also Published As

Publication number Publication date
JP5913738B2 (ja) 2016-04-27
US20140081919A1 (en) 2014-03-20
WO2014045316A1 (en) 2014-03-27

Similar Documents

Publication Publication Date Title
JP5913738B2 (ja) 複数の性能指標に基づきアクセス先を決定する分散バックアップシステム
US11507305B2 (en) Concurrently performing normal system operations and garbage collection
US7788303B2 (en) Systems and methods for distributed system scanning
US7836029B2 (en) Systems and methods of searching for and determining modified blocks in a file system
US7467268B2 (en) Concurrent data restore and background copy operations in storage networks
KR100834162B1 (ko) 스트라이핑을 사용한 데이터 저장 방법 및 장치
EP2815304B1 (en) System and method for building a point-in-time snapshot of an eventually-consistent data store
JP4186456B2 (ja) 分散ファイル共有システムおよびその制御方法
CN107209714B (zh) 分布式存储系统及分布式存储系统的控制方法
US20220114064A1 (en) Online restore for database engines
JP5822452B2 (ja) ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
US10909143B1 (en) Shared pages for database copies
US20200310964A1 (en) Marking impacted similarity groups in garbage collection operations in deduplicated storage systems
KR101078287B1 (ko) 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법
US20200310965A1 (en) Deleting data in storage systems that perform garbage collection
WO2015156000A1 (ja) 計算機システム、データの検査方法及び計算機
JP5236129B2 (ja) ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
US10073874B1 (en) Updating inverted indices
US9047309B1 (en) Dynamic snapshot mounting
JP5174255B2 (ja) ストレージサービス提供装置、システム、サービス提供方法、及びサービス提供プログラム
US20200341853A1 (en) Efficient method to index scheduled backup of same target and the corresponding files
ELomari et al. New data placement strategy in the HADOOP framework
Brinkmann et al. Snapshots and continuous data replication in cluster storage environments
KR102716820B1 (ko) 하둡(hdfs)에서의 데이터 보호 장치 및 그 방법
US20240004712A1 (en) Fencing off cluster services based on shared storage access keys

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160307

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160401

R150 Certificate of patent or registration of utility model

Ref document number: 5913738

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees