(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-08
(45)【発行日】2023-12-18
(54)【発明の名称】情報処理システム、情報処理方法、及びプログラム
(51)【国際特許分類】
G06F 16/185 20190101AFI20231211BHJP
【FI】
G06F16/185
(21)【出願番号】P 2021191766
(22)【出願日】2021-11-26
【審査請求日】2022-07-08
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000176
【氏名又は名称】弁理士法人一色国際特許事務所
(72)【発明者】
【氏名】寺住 法遵
【審査官】原 秀人
(56)【参考文献】
【文献】特開2015-082126(JP,A)
【文献】特開2002-032284(JP,A)
【文献】米国特許第10877931(US,B1)
【文献】国際公開第2016/121084(WO,A1)
【文献】やまねひでき,Ubuntu万全バックアップ&リストア,日経Linux ,日本,日経BP,2019年06月08日,第21巻第4号通巻227号,pp. 52-57
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
オブジェクトストレージを利用してデータを管理する情報処理装置を含んで構成される情報処理システムであって、
前記データの前記情報処理装置への復元に用いる一群のオブジェクトを前記情報処理装置にダウンロードするに際し、
前記一群のオブジェクトの夫々を
、前記オブジェクト毎に通信ネットワークを介して前記情報処理装置にダウンロードし、
前記一群のオブジェクトの夫々
の前記ダウンロードを、前記通信ネットワークを介した通信に用いるプロトコルの同一性検証機能による同一性検証を行いつつ行い、
前記同一性検証に失敗した前記オブジェクトについては当該オブジェクトを特定する情報を記憶し、
前記同一性検証に失敗している前記オブジェクトを対象として
前記同一性検証機能による同一性検証を行いつつ前記情報処理装置へのダウンロードを再実行する、
情報処理システム。
【請求項2】
請求項1に記載の情報処理システムであって、
前記プロトコルはHTTPS(Hyper Text Transfer Protocol
Secure)である、
情報処理システム。
【請求項3】
請求項1に記載の情報処理システムであって、
前記一群のオブジェクトの夫々は、ファイルシステムのディレクトリツリーを構成する各階層のディレクトリのデータ、及び前記ディレクトリの夫々に格納されているファイルのデータである、
情報処理システム。
【請求項4】
請求項
3に記載の情報処理システムであって、
前記情報処理装置は、ダウンロードした前記オブジェクトを用いて前記ファイルシステムを復元する、
情報処理システム。
【請求項5】
請求項1に記載の情報処理システムであって、
前記一群のオブジェクトのオブジェクト毎のダウンロードの進捗状況を示す情報を生成して出力する、
情報処理システム。
【請求項6】
請求項
1に記載の情報処理システムであって、
前記情報処理装置は
、ファイルシステムのサービスを通信可能に接続する他の情報処理装置に提供するNAS装置(Network Attached Storage)である、
情報処理システム。
【請求項7】
請求項1に記載の情報処理システムであって、
前記データの復元に用いる前記オブジェクトの一覧である復元対象オブジェクト一覧と、
前記同一性検証に成功した前記オブジェクトの一覧である復元済オブジェクト一覧と、
を記憶し、
前記再実行に際し、前記復元対象オブジェクト一覧に記載されている前記オブジェクトのうち、前記復元済オブジェクト一覧に記載されている前記オブジェクトを除くオブジェクトを対象として前記情報処理装置へのダウンロードを行う、
情報処理システム。
【請求項8】
請求項7に記載の情報処理システムであって、
前記情報処理装置は、プロセッサ、主記憶装置、補助記憶装置、及び通信装置を備え、互いに通信可能に接続される複数のノードを備え、
前記ノードの夫々の前記補助記憶装置が提供する記憶領域に前記データは格納され、
前記補助記憶装置によって提供され、前記ノードの夫々によって共有される記憶領域に前記復元済オブジェクト一覧が格納され、
少なくともいずれかの前記ノードの前記主記憶装置に、前記オブジェクトストレージを操作するためのプログラム群と前記復元対象オブジェクト一覧が格納される、
情報処理システム。
【請求項9】
オブジェクトストレージを利用してデータを管理する情報処理装置を含んで構成される情報処理システムによる情報処理方法であって、
前記情報処理システムが、
前記データの前記情報処理装置への復元に用いる一群のオブジェクトを前記情報処理装置にダウンロードするに際し、
前記一群のオブジェクトの夫々を
、前記オブジェクト毎に通信ネットワークを介して前記情報処理装置にダウンロードするステップ、
前記一群のオブジェクトの夫々
の前記ダウンロードを、前記通信ネットワークを介した通信に用いるプロトコルの同一性検証機能による同一性検証を行いつつ行うステップ、
前記同一性検証に失敗した前記オブジェクトについては当該オブジェクトを特定する情報を記憶するステップ、及び、
前記同一性検証に失敗している前記オブジェクトを対象として
前記同一性検証機能による同一性検証を行いつつ前記情報処理装置へのダウンロードを再実行するステップ、
を実行する、情報処理方法。
【請求項10】
オブジェクトストレージを利用してデータを管理する情報処理装置を含んで構成される情報処理システムで実行されるプログラムであって、
前記データの前記情報処理装置への復元に用いる一群のオブジェクトを前記情報処理装置にダウンロードするに際し、
前記一群のオブジェクトの夫々を
、前記オブジェクト毎に通信ネットワークを介して前記情報処理装置にダウンロードする機能、
前記一群のオブジェクトの夫々
の前記ダウンロードを、前記通信ネットワークを介した通信に用いるプロトコルの同一性検証機能による同一性検証を行いつつ行う機能、
前記同一性検証に失敗した前記オブジェクトについては当該オブジェクトを特定する情報を記憶する機能、及び、
前記同一性検証に失敗している前記オブジェクトを対象として
前記同一性検証機能による同一性検証を行いつつ前記情報処理装置へのダウンロードを再実行する機能、
を実現するためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
クラウドが提供するストレージサービスの一つとして、オブジェクトを単位としてデータを管理するオブジェクトストレージがある。オブジェクトストレージは、例えば、スケーラビリティに優れる、オブジェクトはフラットな記憶空間であるバケット(コンテナ)に格納される、オブジェクトは固有のID(URI(Uniform Resource Identifier))
を付与されて識別される、オブジェクトへのアクセスはREST(Representational State Transfer)等のステートレスなプロトコル(HTTPS(Hypertext Transfer Protocol Secure)により行われる、更新頻度が比較的少ない膨大なデータの管理に向いている
、といった特徴を有する。
【0003】
非特許文献1には、クラウドサービスが提供するオブジェクトストレージからオブジェクトを復元(リストア、ダウンロード)する際に行われるオブジェクトの同一性検証(整合性検証)に関する処理について記載されている。
【先行技術文献】
【非特許文献】
【0004】
【文献】"AWS CLI S3 FAQ",[online],Amazon Web Services, Inc. or its affiliates,[令和3年11月15日検索],インターネット<URL:https://docs.aws.amazon.com/cli/latest/topic/s3-faq.html>
【発明の概要】
【発明が解決しようとする課題】
【0005】
図12に非特許文献1に記載の仕組みを用いた処理の一例を示す。同図には、クライアントの拠点に存在するNAS(Network Attached Storage)装置100にインターネット等の通信ネットワークを介してオブジェクトを復元する場合を例示している。
【0006】
この例では、まず、NAS装置100が、CLI(Command Line Interface)等のユーザインタフェースを介してユーザからリストア指示を受け付けると、オブジェクトストレージ200に対してオブジェクト220(本体データとメタデータを含む)のダウンロード要求を送信する(S1111)。オブジェクトストレージ200は、上記ダウンロード要求に応じて該当のオブジェクト220をNAS装置100に送信(ダウンロード)する(S1112)。
【0007】
NAS装置100は、ダウンロードされたオブジェクト220についてハッシュ値(MD5等)を算出し(S1113)、算出したハッシュ値を、ダウンロードされたオブジェクト220に付与されているハッシュ値(例えば、HTTPS通信のレスポンスヘッダに付与されている、オブジェクトストレージ200側で算出されたハッシュ値)と比較することにより、同一性検証(「損傷チェック」、「改竄チェック」、「整合性検証」等とも称される。)を行う(S1114)。検証の結果、両者が一致することが確認された場合は(S1115)、受け付けたリストア指示についての処理は終了する。一方、両者が不一致であった場合(オブジェクトのダウンロードに失敗した場合)(S1116)、NAS装置100は、ダウンロードされたオブジェクトを削除して(S1117)、以上と同様の処理(S1112~S1117)を再実行(リトライ)する(S1118)。
【0008】
上記の復元処理では、NAS装置100が行うハッシュ値の算出処理(S1113)の負荷が大きく、とくに復元しようとするデータのサイズが大きい場合や復元に必要なオブジェクトの数が多い場合、リソースの消費量が大きく処理時間が長大化してしまうという課題がある。また、オブジェクトのダウンロードに失敗した場合の再実行(リトライ)にはハッシュ値が再度計算されるため、この場合は処理時間が更に長くなる。
【0009】
本発明は、このような背景に鑑みてなされたものであり、オブジェクトストレージにオブジェクトとして管理されているデータを、当該データを利用する装置に効率よく迅速にダウンロードして復元することが可能な、情報処理システム、情報処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するための本発明のうちの一つは、オブジェクトストレージを利用してデータを管理する情報処理装置を含んで構成される情報処理システムであって、 前記データの前記情報処理装置への復元に用いる一群のオブジェクトを前記情報処理装置にダウンロードするに際し、前記一群のオブジェクトの夫々を、前記オブジェクト毎に通信ネットワークを介して前記情報処理装置にダウンロードし、前記一群のオブジェクトの夫々の前記ダウンロードを、前記通信ネットワークを介した通信に用いるプロトコルの同一性検証機能による同一性検証を行いつつ行い、 前記同一性検証に失敗した前記オブジェクトについては当該オブジェクトを特定する情報を記憶し、 前記同一性検証に失敗している前記オブジェクトを対象として前記同一性検証機能による同一性検証を行いつつ前記情報処理装置へのダウンロードを再実行する。
【0011】
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
【発明の効果】
【0012】
本発明によれば、オブジェクトストレージにオブジェクトとして管理されているデータを、当該データを利用する装置に効率よく迅速にダウンロードして復元することができる。
【図面の簡単な説明】
【0013】
【
図2】NAS装置が備える機能の一例を示す図である。
【
図3】NAS装置やクライアント装置の実現に用いる情報処理装置のハードウェア構成の一例を示すブロック図である。
【
図4】復元処理の一例を説明するUMLシーケンス図である。
【
図5B】メタデータに記述される内容の一例である。
【
図7A】復元処理(初回時)の一例を説明するフローチャートである。
【
図7B】ルートディレクトリ復元処理(初回時)の一例を説明するフローチャートである。
【
図8】復元処理(再実行時)の一例を説明するフローチャートである。
【
図9】下位階層復元処理(再実行時)の一例を説明するフローチャートである。
【
図12】NAS装置に通信ネットワークを介してオブジェクトを復元する際に行われる処理の一例を示す図である。
【発明を実施するための形態】
【0014】
以下、図面を適宜参照しつつ本発明の実施形態について説明する。以下の記載及び図面は、本発明を説明するための例示であり、説明の明確化のため、適宜、省略及び簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。とくに限定しない限り、各構成要素は単数でも複数でも構わない。
【0015】
以下の説明において、同一の又は類似する構成に同一の符号を付して重複した説明を省略することがある。また、以下の説明において、符号の前に付した「S」の文字は処理ステップの意味である。また、以下の説明において、「情報」、「一覧」、「キュー」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。また、以下の説明において、「ネットワーク」のことを適宜「NW」と略記する。
【0016】
図1に、一実施形態として説明する情報処理システム1の概略的な構成を示している。同図に示すように、情報処理システム1は、クラウドシステム2により提供されるオブジェクトストレージ200、及びデータのバックアップ等の目的でオブジェクトストレージ200を利用する各拠点3に設けられたNAS装置100を含む。
【0017】
クラウドシステム2のHTTPS通信部230は、ローカルNW7を介して各拠点3のローカルNW7と通信可能に接続されている。オブジェクトストレージ200は、HTTPS通信部230、通信NW5、及びローカルNW7を介して各拠点3のNAS装置100と通信する。
【0018】
通信NW5は、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)である。通信NW5は、各種公衆無線通信網や専用線等の通信基盤(
通信インフラストラクチャ)により実現される。
【0019】
各拠点3において、NAS装置100は、NAS装置100のサービスを利用する一つ以上のクライアント装置30とローカルNW7を介して通信可能に接続している。NAS装置100は、例えば、接続しているクライアント装置30に対してファイルサーバのサービス(NFS(Network File System)/CIFS(Common Internet File System)サービス等)を提供する。
【0020】
オブジェクトストレージ200は、バケット210と称される(「コンテナ」と称されることもある。)空間(データの格納領域)に一つ以上のオブジェクト220を管理する。バケット210は、複数設けられることもある。一つのオブジェクト220は、例えば、一つの本体データ221と一つのメタデータ222とを含む。
【0021】
HTTPS通信部230は、通信NW5を介して各拠点3のNAS装置100との間でHTTPS(Hypertext Transfer Protocol Secure)に従った通信を行う。HTTPS通信部230は、例えば、NAS装置100から送られてくるダウンロード要求を受信すると、オブジェクトストレージ200に上記ダウンロード要求を転送する。また、HTTPS通信部230は、オブジェクトストレージ200からNAS装置100へのデータの転送(例えば、NAS装置100にダウンロードするデータの転送)を中継する。
【0022】
NAS装置100は、オブジェクトストレージ200をデータの格納場所(データの管理領域、データの記憶領域)として利用する。NAS装置100は、例えば、オブジェクトストレージ200を、自身がクライアント31に提供しているファイルシステムのデータ(以下、「ファイルシステムデータ」と称する。)のバックアップ先として利用する。NAS装置100は、オブジェクトストレージ200に関する設定や状態確認を行うためのユーザインタフェース(CLI(Command Line Interface)、GUI(Graphical User
Interface)等)をNAS装置100の管理者等のユーザに提供する。
【0023】
図2に、NAS装置100が備える主な機能を示している。同図に示すように、NAS装置100は、記憶部110、ユーザインタフェース120、NAS機能提供部130、バックアップ処理部140、復元処理部150、及び通信処理部160の各機能を有する。尚、復元処理部150は、ルートディレクトリ復元部151及び下位階層データ復元部152の各機能を含む。
【0024】
上記機能のうち、記憶部110は、ファイルシステムデータ111、転送キュー112、復元対象オブジェクト一覧113、及び復元済オブジェクト一覧114の各情報(データ)を記憶する。
【0025】
このうちファイルシステムデータ111は、前述のファイルシステムデータ(実体データ(ディレクトリやファイルのデータ)、ファイルシステムの各種管理用データ等)である。
【0026】
転送キュー112には、NAS装置100がオブジェクトストレージ200からダウンロードしようとするオブジェクト220の識別子(URI(Uniform Resource Identifier)。以下、「オブジェクトID」と称する。)が登録される。転送キュー112へのオ
ブジェクトIDのキューイング(転送キュー112への登録及び削除)は、例えば、FIFO(First In First Out)で行われる。尚、NAS装置100は、オブジェクトストレージ200へのデータのアップロードも行うが、アップロードに関する機能の実現は公知の技術により行われるものとして本実施形態では説明を省略する。
【0027】
復元対象オブジェクト一覧113には、オブジェクトストレージ200からの復元の対象となるデータのオブジェクト220のオブジェクトIDの一覧が格納される。復元対象オブジェクト一覧113の情報は、例えば、通信NW5を介してオブジェクトストレージ200から随時提供される。
【0028】
復元済オブジェクト一覧114には、オブジェクトストレージ200からのオブジェクト220のダウンロードに成功(データの復元に成功)したオブジェクト220(以下、「復元済オブジェクト」と称する。)のオブジェクトIDの一覧が格納される。
【0029】
上記機能のうち、ユーザインタフェース120は、ユーザ6に対してNAS装置100の制御や監視を行うためのユーザインタフェース(CLI、GUI等)を提供する。ユーザインタフェース120の全部又は一部は、例えば、API(Application Programming Interface)等としてクラウドシステム2が提供するものであってもよい。ユーザインタ
フェース120は、例えば、ユーザ6から、ファイルシステムデータ111のオブジェクトストレージ200へのバックアップ指示(アップロード指示)や、ファイルシステムデータ111のオブジェクトストレージ200からのリストア指示(ダウンロード指示(データ復元指示))を受け付ける。
【0030】
NAS機能提供部130は、クライアント装置30に対して各種サービス(ファイルサーバの提供、ファイル共有環境の提供、ファイルアクセスコントロール等)を提供する。
【0031】
バックアップ処理部140は、ファイルシステムデータ111のオブジェクトストレージ200へのバックアップ(アップロード)に関する処理を行う。
【0032】
復元処理部150は、ファイルシステムデータ111のオブジェクトストレージ200からのリストア(ダウンロード、データの復元)に関する処理を行う。復元処理部150
の機能の詳細については後述する。尚、復元処理部150の機能を実現するためのソフトウェアは、例えば、クラウドシステム2が提供する、オブジェクトストレージ200を利用するためのSDK(Software Development Kit)を用いて構築される。
【0033】
通信処理部160は、オブジェクトストレージ200やクライアント装置30との間の通信(通信NW5やローカルNW7を介した通信)に関する処理を行う。通信処理部160は、オブジェクトストレージ200との間でHTTPSによる通信を行う。
【0034】
図3は、NAS装置100やクライアント装置30の実現に用いる情報処理装置のハードウェア構成例を示すブロック図である。例示する情報処理装置10は、プロセッサ11、主記憶装置12(メモリ)、補助記憶装置13、入力装置14、出力装置15、及び通信装置16を備える。情報処理装置10の例として、パーソナルコンピュータ、オフィスコンピュータ、サーバ装置、スマートフォン、タブレット、汎用機(メインフレーム)等がある。
【0035】
情報処理装置10は、その全部又は一部が、例えば、クラウドシステムによって提供される仮想サーバのように、仮想化技術やプロセス空間分離技術等を用いて提供される仮想的な情報処理資源を用いて実現されるものであってもよい。また、情報処理装置10によって提供される機能の全部又は一部は、例えば、クラウドシステムがAPI等を介して提供するサービスによって実現してもよい。また、情報処理装置10によって提供される機能の全部又は一部は、例えば、SaaS(Software as a Service)、PaaS(Platform as a Service)、IaaS(Infrastructure as a Service)等を利用して実現される
ものであってもよい。
【0036】
プロセッサ11は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable
Gate Array)、ASIC(Application Specific Integrated Circuit)、AI(Artificial Intelligence)チップ等を用いて構成されている。
【0037】
主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read
Only Memory)、RAM(Random Access Memory)、不揮発性メモリ(NVRAM(Non Volatile RAM))等である。NAS装置100やクライアント装置30において実現される機能は、プロセッサ11が、主記憶装置12に格納(記憶)されているプログラムを読み出して実行することにより実現される。
【0038】
補助記憶装置13は、例えば、SSD(Solid State Drive)、ハードディスクドライ
ブ、光学式記憶装置(CD(Compact Disc)、DVD(Digital Versatile Disc)等)、ストレージシステム、ICカード、SDカードや光学式記録媒体等の非一時的な記録媒体の読取/書込装置、クラウドサーバの非一時的な記憶領域等である。補助記憶装置13には、記録媒体の読取装置や通信装置16を介して、非一時的な記録媒体や非一時的な記憶装置を備えた他の情報処理装置からプログラムやデータを読み込むことができる。補助記憶装置13に格納(記憶)されているプログラムやデータは主記憶装置12に随時読み込まれる。
【0039】
入力装置14は、外部からの情報の入力を受け付けるインタフェースであり、例えば、キーボード、マウス、タッチパネル、カードリーダ、ペン入力方式のタブレット、音声入力装置等である。
【0040】
出力装置15は、処理経過や処理結果等の各種情報を外部に出力するインタフェースである。出力装置15は、例えば、上記の各種情報を可視化する表示装置(液晶モニタ、L
CD(Liquid Crystal Display)、グラフィックカード等)、上記の各種情報を音声化する装置(音声出力装置(スピーカ等))、上記の各種情報を文字化する装置(印字装置等)である。尚、例えば、情報処理装置10が通信装置16を介して他の装置との間で情報の入力や出力を行う構成としてもよい。
【0041】
入力装置14と出力装置15は、ユーザとの間の対話処理(情報の受け付け、情報の提供等)を実現するユーザインタフェースを構成する。
【0042】
通信装置16は、他の装置との間の通信を実現する装置である。通信装置16は、通信NW5やローカルNW7を介して、所定の通信プロトコルに準拠した他の装置との間の通信を実現する、有線方式又は無線方式の通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール等である。
【0043】
情報処理装置10には、例えば、オペレーティングシステム、ファイルシステム、DBMS(DataBase Management System)(リレーショナルデータベース、NoSQL等)、KVS(Key-Value Store)等が導入されていてもよい。
【0044】
続いて、NAS装置100が、オブジェクトストレージ200からファイルシステムデータ111を復元(リストア)する際に行う処理について説明する。
【0045】
図4は、オブジェクトストレージ200にオブジェクト220としてバックアップされているデータを利用してNAS装置100にファイルシステムデータ111を復元する際に情報処理システム1において行われる処理(以下、「復元処理S400」と称する。)の概略を説明するシーケンス図(UMLシーケンス図(UML:Unified Modeling Language))である。以下、同図とともに復元処理S400について説明する。尚、復元処理S400の開始時において、オブジェクトストレージ200には、過去にバックアップされたファイルシステムデータ111のオブジェクト220群が格納されているものとする。尚、本実施形態では、復元の対象となるファイルシステムデータ111の構成要素(ディレクトリ及びファイル)毎にオブジェクト220が作成されるものとする。
【0046】
図5Aに、オブジェクトストレージ200に格納されているオブジェクト220(本体データ221、メタデータ222)の一例を示す。また、
図5Bに、メタデータ222に記述される内容の例(key、value)を示す。尚、図示していないが、各オブジェクト220には、夫々のオブジェクトIDを示す情報が付帯する。
【0047】
図4に示すように、ファイルシステムデータ111の復元に際し、NAS装置100の復元処理部150は、ユーザインタフェース120を介してユーザからファイルシステムデータ111の復元(リストア)の開始指示を受け付ける(S411)。復元処理部150は、開始指示を受け付けると、まず復元対象オブジェクト一覧113を生成する(S412)。
【0048】
図6Aに復元対象オブジェクト一覧113の一例を示す。例示する復元対象オブジェクト一覧113は、復元の対象となる各オブジェクト220のオブジェクトID(以下、「復元対象オブジェクトID」と称する。)の一覧を含む。尚、復元対象オブジェクト一覧113は、オブジェクト220に関する他の情報(オブジェクトのデータサイズ等)を含んでいてもよい。
【0049】
図4に戻り、続いて、復元処理部150は、復元対象のファイルシステムデータ111のうちルートディレクトリのデータを復元する処理(以下、「ルート復元処理(初回時)S413」と称する。)を行う。具体的には、復元処理部150は、ルートディレクトリ
のオブジェクト220をオブジェクトストレージ200からダウンロードし、ダウンロードしたオブジェクト220に基づきルートディレクトリのデータをファイルシステムデータ111としてNAS装置100の記憶領域(記憶ボリューム)に復元する。ここで上記のダウンロードは、HTTPS通信により行われ、HTTPS通信の同一性検証(「損傷チェック」、「改竄チェック」、「整合性検証」等とも称される。)の機能により、ダウンロードしたオブジェクト220について同一性検証が行われる。復元処理部150は、ルート復元処理(初回時)S413によりルートディレクトリの復元に成功した場合、当該ルートディレクトリが復元済であることを示す情報を復元済オブジェクト一覧114に格納する。
【0050】
続いて、復元処理部150は、復元対象のファイルシステムデータ111のうちルートディレクトリの下位の各階層のディレクトリやファイルを復元する処理(以下、「下位階層復元処理(初回時)S414」と称する。)を行う。具体的には、復元処理部150は、ルートディレクトリの下位の各階層のディレクトリやファイルの夫々のオブジェクト220をオブジェクトストレージ200からダウンロードし、ダウンロードした各オブジェクト220に基づき、ルートディレクトリの下位の各階層のディレクトリやファイルをファイルシステムデータ111としてNAS装置100の記憶領域(記憶ボリューム)に復元する。ここで上記のダウンロードは、HTTPS通信により行われ、HTTPS通信の前述した同一性検証の機能によりダウンロードしたオブジェクト220について同一性検証が行われる。復元処理部150は、下位階層復元処理(初回時)S414により、ディレクトリやファイルの復元に成功した場合、当該ディレクトリや当該ファイルが復元済であることを示す情報を復元済オブジェクト一覧114に格納する。
【0051】
図6Bに、復元済オブジェクト一覧114の一例を示す。同図に示すように、例示する復元済オブジェクト一覧213は、復元済のオブジェクト220のオブジェクトID(以下、「復元済オブジェクトID」と称する。)の一覧を含む。尚、復元済オブジェクト一覧114は、オブジェクト220に関する他の情報(オブジェクトのデータサイズ等)を含んでいてもよい。
【0052】
図4に戻り、続いて、復元処理部150は、復元済オブジェクト一覧114の復元済オブジェクトIDの一覧を取得し(S415)、復元対象オブジェクト一覧214から、取得した復元済オブジェクトIDと同じ復元対象オブジェクトIDを削除(無効化)する(S416)。これにより復元対象オブジェクト一覧214には、復元に失敗したオブジェクト220のオブジェクトIDが、復元対象オブジェクトとして残存することになる。
【0053】
復元に失敗したオブジェクトが存在しない場合、即ちファイルシステムデータ111の全ての復元が完了し、復元済オブジェクト一覧114に有効な復元対象のオブジェクト220が一つも含まれなくなった場合、処理はS419に進み、復元処理部150が復元完了報告を出力して復元処理は終了する。
【0054】
一方、ルートディレクトリのオブジェクト220のオブジェクトIDが復元対象オブジェクト一覧214に残存している場合、即ちルートディレクトリの復元に失敗している場合、処理はS417に進む。また、ルートディレクトリのオブジェクト220のオブジェクトIDは復元対象オブジェクト一覧214に残存していない場合(即ちルートディレクトリの復元には成功している)が、ルートディレクトリの下位階層のディレクトリ又はファイルのオブジェクト220のオブジェクトIDが復元対象オブジェクト一覧214に残存している場合(即ち下位階層のディレクトリ又はファイルの復元に失敗している場合)、処理はS418に進む。
【0055】
S417では、復元処理部150は、ルートディレクトリの復元を再実行する(以下、
この処理を「ルート復元処理(再実行時)S417」と称する)。ルート復元処理(再実行時)S417の内容については前述したルート復元処理(初回時)S413と同様である。ルート復元処理(再実行時)S417の実行後、復元処理部150は、S418の処理を実行する。
【0056】
S418では、復元処理部150は、ルートディレクトリの下位階層のディレクトリやファイルのオブジェクト220(復元対象オブジェクト一覧214に残存しているオブジェクトIDのオブジェクト)をダウンロードする処理(以下、「下位階層復元処理(再実行時)S418」と称する。)を実行する。
【0057】
以上の処理の結果、ファイルシステムデータ111の復元に成功すると、NAS装置100は、復元結果として「復元成功」を示す情報を出力し、ファイルシステムデータ111の復元に失敗すると、NAS装置100は、復元結果として「復元失敗」を示す情報を出力する(S419)。
【0058】
以上のように、本実施形態の情報処理システム1においては、オブジェクトストレージ200からNAS装置100へのファイルシステムデータ111の復元に際し、ダウンロードしたオブジェクトの同一性の検証がHTTPS通信における同一性検証機能を利用して行われるので、効率よく迅速にファイルシステムデータ111をNAS装置100に復元することができる。また、一部のデータの復元に失敗してオブジェクトのダウンロードを再実行(リトライ)する際は既に復元に成功しているデータ(ディレクトリやファイル)のオブジェクトについてはダウンロードの対象から除外され、また、再実行時においてもダウンロードしたオブジェクトの同一性の検証がHTTPS通信における同一性検証機能を利用して行われるので、再実行時も効率よく迅速にデータを復元することができる。
【0059】
続いて、
図4に示した復元処理S400の要部について順に説明する。
【0060】
図7Aは、
図4のルート復元処理(初回時)S413並びに下位階層復元処理(初回時)S414(以下、「復元処理(初回時)S700」と称する。)を説明するフローチャートである。以下、同図とともに復元処理(初回時)S700について説明する。
【0061】
まず、復元処理部150は、ルートディレクトリのオブジェクト220をオブジェクトストレージ200から取得する処理(以下、「ルートディレクトリ復元処理(初回時)S705」と称する。)を試みる。
【0062】
図7Bは、ルートディレクトリ復元処理(初回時)S705の詳細を説明するフローチャートである。以下、同図とともにルートディレクトリ復元処理(初回時)S705について説明する。
【0063】
まず、復元処理部150は、ルートディレクトリのオブジェクト220のオブジェクトIDを転送キュー112に登録する(S751)。
【0064】
続いて、復元処理部150は、オブジェクトストレージ200にHTTPSにおけるGET命令を送信し、ルートディレクトリのオブジェクト220をオブジェクトストレージ200から取得(ダウンロード)する(S752)。このとき、ダウンロードされるオブジェクト220についてHTTPSによる同一性検証が行われる。
【0065】
続いて、復元処理部150は、ルートディレクトリのオブジェクト220の復元に成功したか否か(同一性検証に成功したか否か)を判定する(S753)。尚、同一性検証に失敗した場合はルートディレクトリのオブジェクト220の復元は失敗となる。復元処理
部150が選択中のオブジェクト220の復元に成功したと判定した場合(S753:YES)、処理はS754に進む。一方、復元処理部150が選択中のオブジェクト220の復元に失敗したと判定した場合(S753:NO)、ルートディレクトリ復元処理(初回時)S705は終了し、処理は
図7AのS711Sに進む。
【0066】
S754では、復元処理部150は、ルートディレクトリのオブジェクト220のオブジェクトIDを復元済オブジェクト一覧213に追記する。その後、ルートディレクトリ復元処理(初回時)S705は終了し、処理は
図7AのS711Sに進む。
【0067】
図7Aに戻り説明を続ける。同図に示すS711SからS711Eの処理は、ファイルシステムデータ111により実現されるファイルシステムのディレクトリツリーを構成する各ディレクトリを順次選択し、選択したディレクトリの夫々について繰り返し実行されるループ処理である。尚、初回のループ処理では、復元処理部150は、ルートディレクトリを選択するものとする。
【0068】
S712では、復元処理部150は、選択中のディレクトリの直下に存在する、ディレクトリとファイルのオブジェクト220のオブジェクトID(S412で生成した復元対象オブジェクト一覧113に記載されている、選択中のディレクトリの直下の全てのオブジェクト220のオブジェクトID)を転送キュー112に登録する。
【0069】
続いて、復元処理部150は、転送キュー112が空である(オブジェクト220(オブジェクトID)が一つも登録されていない)か否かを判定する(S713)。転送キュー112が空であれば(S713:YES)、復元処理部150は、未処理のディレクトリを選択してS711S~S711Eのループ処理を再度実行する。一方、転送キュー112が空でなければ(S713:NO)、処理はS714に進む。
【0070】
S714では、復元処理部150は、転送キューからオブジェクト220(オブジェクトID)を一つ選択する。
【0071】
続いて、復元処理部150は、オブジェクトストレージ200にHTTPSにおけるGET命令を送信し、選択中のオブジェクト220をオブジェクトストレージ200から取得(ダウンロード)する(S715)。このとき、ダウンロードされるオブジェクト220についてHTTPSによる同一性検証が行われる。
【0072】
続いて、復元処理部150は、選択中のオブジェクト220の復元に成功したか否か(同一性検証に成功したか否か)を判定する(S716)。尚、同一性検証に失敗した場合は当該オブジェクト220の復元は失敗となる。復元処理部150が選択中のオブジェクト220の復元に成功したと判定した場合(S716:YES)、処理はS717に進む。一方、復元処理部150が選択中のオブジェクト220の復元に失敗したと判定した場合(S716:NO)、処理はS713に戻る。
【0073】
S717では、復元処理部150は、選択中のオブジェクト220のオブジェクトIDを復元済オブジェクト一覧213に追記する。その後、処理はS713に戻る。
【0074】
尚、以上に説明した復元処理(初回時)S700は一例に過ぎず、ディレクトリツリーを構成するディレクトリ及びファイルの全体を網羅するものであれば他のアルゴリズムを採用してもよい。例えば、ディレクトリの入れ子構造(ネスト構造)に起因する繰り返し処理のアルゴリズムとして再帰的なアルゴリズムを採用してもよい。
【0075】
図8は、
図4のルート復元処理(再実行時)S417並びに下位階層復元処理(再実行
時)S418の処理(以下、「復元処理(再実行時)S800」と称する。)を説明するフローチャートである。以下、同図とともに復元処理(再実行時)S800について説明する。
【0076】
まず、復元処理部150は、復元対象オブジェクト一覧113から、復元済オブジェクト一覧114の復元済オブジェクトIDを削除(無効化)する(S811)。
【0077】
続いて、復元処理部150は、復元対象オブジェクト一覧113にルートディレクトリのオブジェクト220のオブジェクトIDがあるか否かを判定する(S812)。復元処理部150が、復元対象オブジェクト一覧113にルートディレクトリのオブジェクト220のオブジェクトIDがあると判定した場合(S812:YES)、処理はS813に進む。復元処理部150が、復元対象オブジェクト一覧113にルートディレクトリのオブジェクト220のオブジェクトIDがない(ルートディレクトリは復元済)と判定した場合(S812:NO)、処理はS817に進む。
【0078】
S813では、復元処理部150は、ルートディレクトリのオブジェクト220をオブジェクトストレージ200から取得(ダウンロード)する。このとき、ダウンロードされるオブジェクト220についてHTTPSによる同一性検証が行われる。
【0079】
続いて、復元処理部150は、ルートディレクトリの復元に成功したか否かを判定する(S814)。尚、同一性検証に失敗した場合はオブジェクト220の復元は失敗となる。復元処理部150がルートディレクトリの復元に成功したと判定した場合(S814:YES)、処理はS817に進む。一方、復元処理部150がルートディレクトリの復元に失敗したと判定した場合(S814:NO)、処理はS815に進む。
【0080】
S815では、復元処理部150は、この時点でルートディレクトリの取得を試みた回数(以下、「リトライ回数」と称する。)が、予め設定されている限度回数(以下、「リトライ限度」と称する。)に達しているか否かを判定する。復元処理部150は、リトライ回数がリトライ限度に達していると判定した場合(S815:YES)、復元に失敗した旨を示す情報を出力し(S816)、復元処理(再実行時)S800を終了する。一方、復元処理部150が、リトライ回数がまだリトライ限度に達していないと判定した場合(S815:NO)、処理はS813に戻る。
【0081】
S817では、復元処理部150は、ルートディレクトリの下位階層のディレクトリやファイルの復元処理を再実行(リトライ)する処理(以下、「下位階層復元処理(再実行時)S817」と称する。)を実行する。下位階層復元処理(再実行時)S817の詳細については後述する。
【0082】
続いて、復元処理部150は、下位階層復元処理(再実行時)S817によりルートディレクトリの下位階層の全てのディレクトリとファイルの復元に成功したか否か(復元対象オブジェクト一覧214が空(有効なオブジェクトIDが一つも登録されていない)か否か)を判定する(S818)。復元処理部150が下位階層の全てのディレクトリとファイルの復元に成功したと判定した場合(S818:YES)、復元処理(再実行時)S800を終了する。一方、復元処理部150が下位階層のディレクトリとファイルの復元に失敗した(復元対象オブジェクト一覧214に有効なオブジェクトIDが残存する)と判定した場合(S818:NO)、処理はS819に進む。
【0083】
S819では、復元処理部150は、この時点で下位階層のディレクトリやファイルの取得を試みた回数(以下、「リトライ回数」と称する。)が、予め設定されている限度回数(以下、「リトライ限度」と称する。)に達しているか否かを判定する。復元処理部1
50は、リトライ回数がリトライ限度に達していると判定した場合(S819:YES)、復元に失敗した旨を示す情報を出力し(S820)、復元処理(再実行時)S800を終了する。一方、復元処理部150が、リトライ回数がまだリトライ限度に達していないと判定した場合(S819:NO)、処理はS817に戻る。
【0084】
図9は、
図8における下位階層復元処理(再実行時)S817の詳細を説明するフローチャートである。以下、同図とともに下位階層復元処理(再実行時)S817について説明する。
【0085】
同図に示すS911S~S911Eの処理は、復元対象オブジェクト一覧113に有効に登録されているディレクトリのオブジェクト220(復元対象オブジェクトID)を復元処理部150が上位階層から一つずつ順に選択し、選択したオブジェクト220の夫々について繰り返し実行されるループ処理である。
【0086】
S912では、復元処理部150は、選択中のディレクトリのオブジェクトIDと、復元対象オブジェクト一覧113に有効に登録されている選択中のディレクトリの直下に存在するファイルのオブジェクトIDを転送キューに登録する。尚、選択中のディレクトリがルートディレクトリの直下のディレクトリである場合は復元対象オブジェクト一覧113に有効に登録されている当該ディレクトリと同じ階層のファイルのオブジェクトIDも転送キューに登録する。
【0087】
続いて、復元処理部150は、転送キュー112が空(オブジェクトIDが一つも登録されていない)であるか否かを判定する(S913)。転送キュー112が空であると判定すると(S913:YES)、復元処理部150は、復元対象オブジェクト一覧113の未処理のディレクトリを選択してS911S~S911Eのループ処理を再度実行する。一方、転送キュー112が空でなければ(S913:NO)、処理はS914に進む。
【0088】
S914では、復元処理部150は、転送キュー112からオブジェクトIDを一つ選択する。
【0089】
続いて、復元処理部150は、選択中のオブジェクトIDのオブジェクト220をオブジェクトストレージ200から取得(ダウンロード)する(S915)。このとき、ダウンロードされるオブジェクト220についてHTTPSによる同一性検証が行われる。
【0090】
続いて、復元処理部150は、選択中のオブジェクトIDのオブジェクト220の復元に成功したか否かを判定する。尚、復元処理部150は、S915で同一性検証に成功していれば、当該オブジェクト220の復元に成功したと判定し、S915で同一性検証に失敗していれば、当該オブジェクト220の復元に失敗したと判定する。復元処理部150が、当該オブジェクト220の復元に成功したと判定した場合(S916:YES)、処理はS917に進む。一方、復元処理部150が、当該オブジェクト220の復元に失敗したと判定した場合(S916:NO)、処理はS913に戻る。
【0091】
S917では、復元処理部150は、選択中のオブジェクトIDを復元済オブジェクト一覧114に追記するとともに、当該オブジェクトIDを転送キュー112から削除(無効化)する。
【0092】
尚、以上に説明した下位階層復元処理(再実行時)S817は一例に過ぎず、ルートディレクトリの下位に存在するファイル及びディレクトリの全体を網羅するものであれば他のアルゴリズムを採用してもよい。例えば、ディレクトリの入れ子構造(ネスト構造)に起因する繰り返し処理のアルゴリズムとして再帰的なアルゴリズムを採用してもよい。
【0093】
以上、実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、様々な変形例が含まれ、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることや、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。
【0094】
例えば、
図10は、NAS装置100の他の構成例である。例示するNAS装置100は、夫々が情報処理装置として機能する複数のノード101a~cを有する。各ノード101a~cは夫々、プロセッサ11、主記憶装置12、補助記憶装置13、及び通信装置16を備える。各ノード101a~cは、夫々の通信装置16により内部通信ネットワーク1015を介して互いに通信可能に接続されている。各ノード101a~cの補助記憶装置13が提供する記憶領域によって各ノード101a~cからアクセス可能な、共有ボリューム102及び管理用ボリューム103が構成されている。共有ボリューム102には、ファイルシステムのファイルシステムデータ111が格納される。上記ファイルシステムは、各ノード101a~cによって実現されてクライアント装置30に提供される。管理用ボリューム103には、復元済オブジェクト一覧114と管理情報1021が格納される。管理情報1021には、NAS装置100からオブジェクトストレージ200にアクセスする際の認証情報等やオブジェクト220とファイルシステムデータ211との対応関係を示す情報等が格納される。オブジェクトストレージ200を利用したファイルシステムデータ111のバックアップを行うノード101(同図では「ノードa」)の主記憶装置12には、
図2に示した各種機能を実現するためのプログラムやデータ(復元対象オブジェクト一覧113、転送キュー112等)が格納される。
【0095】
また、例えば、
図11は、
図4に示した復元処理S400の実行中にNAS装置100がユーザ6に提示する画面(以下、「復元処理進捗状況提示画面1100」と称する。)の一例である。例示する復元処理進捗状況提示画面1100には、復元対象データを示す情報1111、復元処理開始日時1112、処理を開始してからの経過時間1113、復元処理の進捗状況1114、及び復元済のオブジェクトのオブジェクトIDの一覧1115が表示されている。尚、オブジェクトIDの一覧1115は、
図6Bに示した復元済オブジェクト一覧114の内容に基づく。ユーザは、復元処理進捗状況提示画面1100を参照することで、復元処理の進捗状況を容易に確認することができる。
【符号の説明】
【0096】
1 情報処理システム、2 クラウドシステム、3 拠点、5 通信NW、6 ユーザ、7 ローカルNW、30 クライアント装置、100 NAS装置、110 記憶部、111 ファイルシステムデータ、112 転送キュー、113 復元対象オブジェクト一覧、114 復元済オブジェクト一覧、120 ユーザインタフェース、130 NAS機能提供部、140 バックアップ処理部、150 復元処理部、151 ルートディレクトリ復元部、152 下位階層データ復元部、160 通信処理部、200 オブジェクトストレージ、210 バケット、220 オブジェクト、230 HTTPS通信部、221 本体データ、222 メタデータ、S400 復元処理、S700 復元処理(初回時)、S800 復元処理(再実行時)、S817 下位階層復元処理(再実行時)