JP2018132814A - 計算機システムおよびリストア方法 - Google Patents

計算機システムおよびリストア方法 Download PDF

Info

Publication number
JP2018132814A
JP2018132814A JP2017024082A JP2017024082A JP2018132814A JP 2018132814 A JP2018132814 A JP 2018132814A JP 2017024082 A JP2017024082 A JP 2017024082A JP 2017024082 A JP2017024082 A JP 2017024082A JP 2018132814 A JP2018132814 A JP 2018132814A
Authority
JP
Japan
Prior art keywords
chunk
file
network
data
parallelism
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
JP2017024082A
Other languages
English (en)
Other versions
JP6924952B2 (ja
Inventor
仁志 亀井
Hitoshi Kamei
仁志 亀井
隆喜 中村
Takayoshi Nakamura
隆喜 中村
村岡 裕明
Hiroaki Muraoka
裕明 村岡
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.)
Tohoku University NUC
Hitachi Ltd
Original Assignee
Tohoku University NUC
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 Tohoku University NUC, Hitachi Ltd filed Critical Tohoku University NUC
Priority to JP2017024082A priority Critical patent/JP6924952B2/ja
Publication of JP2018132814A publication Critical patent/JP2018132814A/ja
Application granted granted Critical
Publication of JP6924952B2 publication Critical patent/JP6924952B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】リストア対象データを固定サイズで分割して取得すると、リストア速度が低下する場合がある。【解決手段】計算機システムは、その計算機システムと1以上のネットワークストレージ間のネットワーク遅延を計測する。計算機システムは、計測されたネットワーク遅延に応じたチャンクサイズおよび並列度のうちの少なくとも1つに従い、リストア対象データの少なくとも一部であるチャンクを、ネットワークを通して、1以上のネットワークストレージから取得する。計算機システムは、取得されたチャンクを基にリストア対象データをリストアする。【選択図】図15

Description

本発明は、概して、データのリストアに関する。
地震などの広域災害によってファイルサーバが壊れ、ファイルサーバへ格納されているファイルが消失することがある。そのような広域災害を想定し、耐災害性を向上させるため、一般に、ディザスタリカバリ、すなわち、ネットワークを通してファイルを遠隔地へ複製(バックアップ)しておき、災害によりファイルサーバが壊れてファイルが失われた場合、再構築したファイルサーバへ、ネットワークを通して、バックアップされたファイルを逆複製(リストア)することが行われる。リストアを高速に実施できれば、災害後のファイルサーバの利用開始までの待ち時間を短縮でき、ファイルサーバのデータを早期に利用できるようになる。
リストアを高速に実施するための1つの方法として、特許文献1に開示の方法が考えられる。特許文献1の開示するファイル転送方法は、ファイル転送前に、1つのファイルを固定サイズの断片に分割する。
US6,085,251
災害後のネットワークは不安定であり、ネットワークの遅延(典型的にはネットワーク遅延時間)が変化する可能性がある(例えば、災害が発生するとネットワークが輻輳し、ネットワークの遅延が大きくなることがある)。これによって、リストアセッションあたりの最大スループットが変化する。
さらに、遅延によって、最大スループットに達するまでの時間が異なる。また、この間に送信されるファイルのデータ量が異なる。
以上のように、ネットワークの遅延が変化することによって、ネットワークの特性が変化する。
特許文献1のファイル転送方法は、ファイルを固定サイズの断片に分割する。特許文献1では、遅延の変化は考慮されておらず、遅延の変化によるネットワーク特性の変化も考慮されていない。そのため、最大スループットに達する前に送信が終わるような大きさでファイルを分割するなど、最適なリストア速度を達成できない場合がある。これは、災害後のネットワーク、言い換えれば、一層不安定であると考えられるネットワークを通して、ファイルをリストアするケースについて、特に問題である。
このような課題は、ディザスタリカバリに限らず、ネットワークを通してファイルのようなデータをリストアする他のケースについても存在し得る。
計算機システムは、その計算機システムと1以上のネットワークストレージ間のネットワーク遅延を計測する。計算機システムは、計測されたネットワーク遅延に応じたチャンクサイズおよび並列度のうちの少なくとも1つに従い、リストア対象データの少なくとも一部であるチャンクを、ネットワークを通して、1以上のネットワークストレージから取得する。計算機システムは、取得されたチャンクを基にリストア対象データをリストアする。
本発明によると、ネットワーク遅延に応じた最適なリストア速度が期待できる。
実施例1に係るバックアップリストアシステムの構成例を示すブロック図である。 ファイルサーバの内部構成を示すブロック図である。 クラウドサーバの内部構成を示すブロック図である。 クラウドサーバ管理テーブルの構成例を示す図である。 データ送受信管理テーブルの構成例を示す図である。 格納データ管理テーブルの構成例を示す図である。 並列データリストアの概要の一例を示す模式図である。 バックアップ処理のフローを示す図である。 リストア処理のフローを示す図である。 リストア処理におけるリストアセッション毎の取得されるチャンクを示す図である。 実施例2に係るリストア処理の一例を示す模式図である。 実施例3に係るバックアップ処理およびリストア処理の一例を示す模式図である。 TCP(Transmission Control Protocol)のフロー制御の一例を示す模式図である。 一比較例に係る課題の一例を示す模式図である。 実施例1の概要の一例を示す模式図である。 実施例1の効果の一例を示す模式図である。
以降、幾つかの実施例を説明する。以降に説明する実施例は一例である、本発明はこれらの実施例に限定されるものではない。
以降の説明では、「abcテーブル」の表現にて情報を説明することがあるが、情報は、テーブル以外のデータ構成で表現されていてもよい。データ構成に依存しないことを示すために「abcテーブル」のうちの少なくとも1つを「abc情報」と呼ぶことができる。また、以降の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部または一部が1つのテーブルであってもよい。
また、以降の説明では、「インターフェース部」は、1以上のインターフェースを含む。1以上のインターフェースは、1以上の同種のインターフェースデバイス(例えば1以上のNIC(Network Interface Card))であってもよいし2以上の異種のインターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以降の説明では、「記憶部」は、1以上のメモリを含む。少なくとも1つのメモリは、揮発性メモリであってもよいし不揮発性メモリであってもよい。記憶部は、主に、プロセッサ部による処理の際に使用される。
また、以降の説明では、「プロセッサ部」は、1以上のプロセッサを含む。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。1以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以降の説明では、「kkk部」の表現にて処理部(機能)を説明することがあるが、処理部は、1以上のコンピュータプログラムがプロセッサ部によって実行されることで実現されてもよいし、1以上のハードウェア回路(例えばFPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit))によって実現されてもよい。プログラムがプロセッサ部によって処理部が実現される場合、定められた処理が、適宜に記憶部および/またはインターフェース部(例えば通信ポート)等を用いながら行われるため、処理部はプロセッサ部の少なくとも一部とされてもよい。処理部を主語として説明された処理は、プロセッサ部あるいはそのプロセッサ部を有する装置が行う処理としてもよい。また、プロセッサ部は、処理の一部または全部を行うハードウェア回路を含んでもよい。プログラムは、プログラムソースからプロセッサにインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各処理部の説明は一例であり、複数の処理部が1つの処理部にまとめられたり、1つの処理部が複数の処理部に分割されたりしてもよい。
また、以降の説明では、「計算機システム」は、1以上の物理的な計算機を含む。少なくとも1つの物理的な計算機が、仮想的な計算機(例えばVM(Virtual Machine))を実行してもよいし、SDx(Software-Defined anything)を実行してもよい。SDxとしては、例えば、SDS(Software Defined Storage)(仮想的なストレージ装置の一例)またはSDDC(Software-defined Datacenter)を採用することができる。
また、以降の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別して説明する場合は、参照符号を使用する。
また、本明細書において、ネットワークの遅延は、適宜「遅延」と省略されることがある。遅延は、典型的には、ネットワーク遅延時間(単位は典型的には「ミリ秒」)を意味する。
まず、一比較例に係る課題、および、当該課題を解決する実施例1の概要を説明する。
一比較例に係る課題は、以降の通りである。
ファイルを順次リストアするよりも並列リストアする方が、高速にリストアが可能である。具体的には、例えば、1本の通信路のネットワーク帯域が1MB/sであり、リストア対象のファイルのサイズが4MBであるとする。この場合、順次リストアにおける通信は、4秒(=4MB/(1MB/s))かかる。一方、ファイルを1MBのチャンクに分割して4並列でリストアする並列リストアにおける通信は、1秒で済む。4個の1MBチャンクが、それぞれが1MB/sのネットワーク帯域である4本の通信路を通して並列に取得されるからである。
しかしながら、固定サイズのチャンクにファイルを分割してチャンクを並列に取得する並列リストアが最適であるとは限らない。なぜなら、ネットワークの遅延によって、ネットワーク特性、例えば、リストアセッションあたりの最大スループット、および、最大スループットに達するまでの時間が、異なるからである。
特に、この課題は、単位時間当たりのデータ送受信サイズを徐々に大きくするスロースタートを含んだフロー制御が実施されるプロトコルに従う通信が行われるネットワーク、典型的には、TCP(Transmission Control Protocol)に従う通信が行われるネットワークを通してチャンクを取得するケースでは大きい。
図13は、TCPのフロー制御の一例を示す模式図である。
ファイル転送は、例えば、HTTP(Hyper Text Transfer Protocol)またはFTP(File Transfer Protocol)に従い行われるが、HTTPおよびFTPのいずれも、TCP上のプロトコルである。TCPでは、輻輳を回避するために、単位時間当たりのデータ送受信サイズを徐々に大きくするスロースタートを含んだフロー制御が実施される。
しかし、フロー制御におけるスロースタート速度(データ送受信サイズの増加量)は、図13に例示するように、遅延によって異なる(参照符号1301を参照)。また、最大帯域も、遅延によって異なる(参照符号1302を参照)。
図14は、一比較例に係る課題の一例を示す模式図である。
遅延に関わらない固定チャンクサイズのチャンクにファイルを分割して並列にチャンクをクラウドサーバ1405から取得すると、最適なリストア速度を必ずしも実現できない。具体的には、例えば、図14の左部分に例示するように、ファイルのチャンクのサイズが、遅延の割に小さすぎると、各チャンクについて、チャンクの取得が、スロースタート中に終了してしまう(スループットが最大帯域に達する前にチャンクの取得が終了してしまう)(参照符号1401を参照)。さらに、チャンクのサイズを小さくしすぎると、チャンク数がシステムのサポートする最大リストアセッション数を超えてしまう。この場合、全てのチャンクを並列にリストア処理できなくなってしまうため、合計帯域(1本の通信路の最大帯域と並列度との積)がワイヤスピード限界1350に達しない(参照符号1402を参照)ことがある。一方、例えば、図14の右部分に例示するように、遅延の割にチャンクのサイズが大きすぎても(極端には、例えばファイルを分割しないとすると)、同様に合計帯域がワイヤスピード限界1350に達しないことがある。
以上が、一比較例に係る課題である。その課題を解決する実施例1の概要は、以降の通りである。
図15は、実施例1の概要の一例を示す模式図である。
本実施例では、ファイルサーバ(リストア)103B(第2の計算機システムの一例)が、データ送受信管理テーブル213と、ファイルシステムボリューム203とを保持する。ファイルサーバ(リストア)103Bは、遅延計測プログラム(遅延計測手段の一例)212、データ送受信プログラム(取得手段の一例)210およびリストアプログラム(リストア手段の一例)209を実行する。
データ送受信管理テーブル213は、複数の遅延の各々について、チャンクサイズおよび並列度を保持する。遅延計測プログラム212は、ファイルサーバ(リストア)103Bとクラウドサーバ(ネットワークストレージの一例)105間のネットワーク遅延を計測する。データ送受信プログラム210は、計測されたネットワーク遅延に応じたチャンクサイズおよび並列度をデータ送受信管理テーブル213から特定し、リストア対象ファイルの少なくとも一部であるチャンクを、ネットワークを通して、クラウドサーバ105から取得する。リストアプログラム209は、当該リストア対象ファイルについて取得されたチャンクを基にリストア対象ファイルをファイルシステムボリューム203にリストアする。
図16は、実施例1の効果の一例を示す模式図である。
ファイルのチャンクのサイズが、遅延に対応した適切なサイズである。このため、各チャンク(チャンク1〜3の各々)について、チャンクの取得が、スロースタート中に終了してしまう(スループットが最大帯域に達する前にチャンクの取得が終了してしまう)ことが無い(参照符号1601を参照)。また、合計帯域が、ワイヤスピード限界1650に達し、結果として、リストア時間が短くなる(参照符号1402を参照)。
以上が、実施例1の概要である。以降、実施例1を詳細に説明する。なお、図13、図14および図16に例示したグラフは、簡易化した模試的なグラフ(例えば、輻輳制御に従うスループット変化を考慮しないグラフ)である。また、本実施例において、「リストア速度」は、1つのリストア(リストア対象とされた1以上のファイルのリストア)の速度である。「リストア時間」は、1つのリストアにかかる時間である。
図1は、実施例1に係るバックアップリストアシステムの構成例を示すブロック図である。
バックアップリストアシステム100は、1以上のファイルサーバ103を含む。1以上のファイルサーバ103の各々は、管理サーバ104および1以上のクラウドサーバ105と、ネットワーク102を通して相互に通信可能に接続されている。ネットワーク102は、典型的にTCPに従う通信が行われるネットワークであり、例えば、LAN(Local Area Network)やInternetである。なお、本発明では、ネットワーク102の構成形態は限定されない。
ネットワーク102に1以上のクライアント101が通信可能に接続される。1つのクライアント101を例に取る。クライアント101は、ファイルサーバ(運用)103Aまたはファイルサーバ(リストア)103Bを利用する計算機である。クライアント101を使用するエンドユーザは、クライアント101のファイルアクセスプログラム110を用いて、ファイルサーバ103Aや103Bへ接続し、ファイルサーバ103Aまたは103Bへ格納されたファイルを読み書きする。
ファイルサーバ(運用)103Aは、第1の計算機システムの一例である。ファイルサーバ(運用)103Aは、災害発生前に、クライアント101へファイルアクセスサービスを提供するサーバ装置である。一方、ファイルサーバ(リストア)103Bは、第2の計算機システムの一例である。ファイルサーバ(リストア)103Bは、災害発生後に、クライアント101へファイルアクセスサービスを提供するサーバ装置である。ファイルアクセスサービスとは、例えば、NFS(Network File System)やCIFS(Common Internet File System)といったプロトコルを用いて、ファイルの読み書きを可能としたネットワークサービスを指す。なお、本発明は、ファイルサーバ(運用)103Aおよびファイルサーバ(リストア)103Bの各々のファイルアクセスサービスの形態を限定するものではない。また、ファイルサーバ(リストア)103Bは、ファイルサーバ(運用)103Aの交換後のファイルサーバでもよい。ファイルサーバ103の構造と処理動作は、後に詳述する。
管理サーバ104は、バックアップリストアシステム100の設定等を行う計算機である。バックアップリストアシステム100の管理者は、管理サーバ104を用いて、バックアップリストアシステムを設定する。例えば、管理者は、ファイルサーバ103のIPアドレスの設定等を行う。なお、管理サーバ104の機能は、クライアント101やファイルサーバ103へ導入されても良い。本発明では、管理サーバ104の機能の導入箇所や、管理サーバ104の設置場所は、限定されない。
1以上のクラウドサーバ105として、クラウドサーバ105Aと105Bが例示されている。クラウドサーバ105Aと105Bは、ファイルサーバ(運用)103Aに格納されたファイルのバックアップを保持する計算機である。ファイルサーバ(運用)103Aが、クラウドサーバ105Aと105Bにファイルを定期的に送信し、クラウドサーバ105Aと105Bは内部ディスクへファイルを格納する。クラウドサーバ105の構造と処理動作は、後に詳述する。
災害によって、ファイルサーバ(運用)103Aが物理的に壊れ、格納していたファイルが失われた場合、ファイルサーバ(リストア)103Bが、ファイルアクセスサービスを提供する。そのため、ファイルサーバ(リストア)103Bは、ネットワーク102を通して、クラウドサーバ105Aと105Bへ保存されたファイルを取得し、内部ディスクへ格納(リストア)する。クラウドサーバ105から必要なファイルを取得できれば、ファイルサーバ(リストア)103Bは、ファイルサーバ(運用)103Aと同じようにファイルアクセスサービスを再開する。このように、バックアップリストアシステムにより、災害後にも、ファイルアクセスサービスを継続できる。
図2は、ファイルサーバ103の内部構成を示すブロック図である。
ファイルサーバ103は、ネットワークI/F201、CPU202、ファイルシステムボリューム203、メモリ205を搭載し、それらは内部通信路204によって接続されている。
ネットワークI/F201は、インターフェース部の一例である。ネットワークI/F201は、ネットワーク102と相互に接続されており、クライアント101からのファイルアクセス要求を受け付ける際に用いられる装置である。
CPU202は、プロセッサ部の一例である。CPU202は、メモリ205に格納されたプログラムを実行する装置である。
ファイルシステムボリューム203は、プログラムファイルやエンドユーザが作成したデータファイルといった情報を格納するための装置である。ファイルシステムボリューム203に代えて、外部のストレージ装置(図示せず)が採用されてもよい。例えば、ファイルサーバ(リストア)103Bによるリストア先は、ファイルサーバ(リストア)103B内のファイルシステムボリューム203に代えてまたは加えて、ファイルサーバ(リストア)103Bに接続されている外部のストレージ装置でもよい。
メモリ205は、記憶部の一例である。メモリ205は、ファイルシステムボリューム203に格納されたファイルを、CPU202が処理する際に一時的に保持するメモリ(例えば揮発性メモリ)である。CPU202がプログラムを実行する際、CPU202が、ファイルシステムボリューム203からメモリ205へプログラムファイルやデータファイルを読み込む。以降、特に明示しない限り、プログラムはCPU202によって実行されるものとする。また、プログラムは、ファイルシステムボリューム203からメモリ205へ読み込まれ、実行されるものとする。
メモリ205は、ファイル共有サーバプログラム206、ファイルシステムプログラム207、作成プログラム208、リストアプログラム209、送受信プログラム210、管理プログラム211および遅延計測プログラム212といったプログラムを格納する。また、メモリ205は、データ送受信管理テーブル213、クラウドサーバ管理テーブル214および格納データ管理テーブル215といった情報を格納する。
ファイル共有サーバプログラム206は、クライアント101のファイルアクセスプログラム110からのファイルアクセス要求を処理するプログラムである。ファイルアクセス要求として、ファイル書込み要求とファイル読出し要求とがある。ファイル書込み要求に付随して受信したファイルデータは、ファイルシステムボリューム203へデータファイル(ファイル)として格納される。ファイルシステムボリューム203に格納されているファイルのうち、未だバックアップされていないファイルは、クラウドサーバ105へバックアップされる。
ファイルシステムプログラム207は、ファイルシステムボリューム203へ格納されたファイルのデータを管理するプログラムである。ファイル共有サーバプログラム206が、ファイルアクセスプログラム110からファイルアクセス要求を受け付けると、ファイルシステムプログラム207へその要求を受け渡す。そして、ファイルシステムプログラム207は、ファイルシステムボリューム203へアクセスする。例えば、ファイルアクセスプログラム110が、ファイル共有サーバプログラム206へファイル書込み要求とファイルデータを送信する。ファイル共有サーバプログラム206は、ファイル書込み要求を受理し、ファイルデータを受信する。ファイル共有サーバプログラム206は、ファイルシステムプログラム207へファイル書込み要求とファイルデータを渡す。ファイルシステムプログラム207は、ファイルシステムボリューム203へそのファイルデータを書き込む。
作成プログラム208は、ファイルシステムボリューム203へ格納されたファイルをクラウドサーバ105へ格納する形式に変えるプログラムである。例えば、ファイルの単純複製を行う場合、作成プログラム208は、ファイルの形式を変更しない。一方、ファイルの分割複製を行う場合、作成プログラム208は、ファイルを一定の大きさの断片へ分割する。作成プログラム208の作成したデータは、後述するデータ送受信プログラム210によって、クラウドサーバ105へ送信(バックアップ)される。
リストアプログラム209は、後述するデータ送受信プログラム210を用いてクラウドサーバ105から取得したデータ(チャンク)を、元のファイルへリストアする(例えば、複数のチャンクを統合して元のファイルを作成する)プログラムである。
データ送受信プログラム210は、クラウドサーバ105とネットワーク102を通して、データを送受信するプログラムである。データ送受信プログラム210によって、ファイルやその断片がクラウドサーバ105に格納される。また、データ送受信プログラム210によって、クラウドサーバ105からファイルのチャンクが取得される。データ送受信プログラム210とクラウドサーバ105の通信には、本実施例では、HTTP(Hypertext Transfer Protocol)が用いられる。なお、本発明では、データ送受信プログラム210とクラウドサーバ105の間の通信プロトコルは限定されない。
管理プログラム211は、ファイルを送受信するクラウドサーバ105へアクセスするためのアドレスなどを設定するプログラムである。管理プログラム211は、管理者によって起動される。管理者は、管理サーバ104から、ファイルサーバ103へSSH(Secure Shell)プロトコルなどを用いて接続する。なお、管理サーバ104とファイルサーバ103の間の接続プロトコルはSSHプロトコルでなくても良い。本発明では、接続プロトコルは限定されない。さらに、ファイルサーバ103にキーボードやディスプレイといったコンソール機器が接続されている場合は、管理者は、ファイルサーバ103に直接ログインして設定してよい。
データ送受信管理テーブル213は、管理プログラム211によって設定される、ネットワーク遅延によるデータの送受信方法を定めたテーブルである。データ送受信管理テーブル213は後に詳述する。
クラウドサーバ管理テーブル214は、管理プログラム211によって設定される、クラウドサーバ105のアクセスアドレスを保持するテーブルである。クラウドサーバ管理テーブル214は、後に詳述する。
格納データ管理テーブル215は、ファイル毎にバックアップファイルを格納した格納先クラウドサーバ105を管理するテーブルである。格納データ管理テーブル215は、後に詳述する。
図3は、クラウドサーバ105の内部構成を示すブロック図である。
クラウドサーバ105は、ネットワークI/F301、CPU302、メモリ303、ファイルシステムボリューム310から構成され、それらは内部通信路307によって相互に接続されている。
ネットワークI/F301は、ネットワーク102と接続される装置である。CPU302は、メモリ303に格納されたプログラムを実行する装置である。ファイルシステムボリューム310は、プログラムファイルやバックアップデータ309を格納する装置である。
ファイルシステムプログラム304は、ファイルシステムボリューム310に格納されたバックアップデータ309をファイルとして管理するプログラムである。
データ送受信プログラム305は、ファイルサーバ103から送られてくるファイルデータを受信するプログラムである。さらに、データ送受信プログラム305は、ファイルサーバ103から、バックアップデータ309の取得要求を受理して、バックアップデータ309を送信する。バックアップデータ309は、リストア対象データの一例であり、典型的にはファイルである。
データ送受信プログラム305が、ファイルシステムボリューム310のバックアップデータ309を読み出す場合、ファイルシステムプログラム304へファイル読出し要求を送信する。ファイルシステムプログラム304はファイルシステムボリューム310からバックアップデータ309を読み出して、データ送受信プログラムへ返却する。一方、データ送受信プログラム305が、ファイルサーバ103からファイルデータを受信すると、ファイルシステムプログラム304へファイル書込み要求とファイルデータを送信する。ファイルシステムプログラム304は、バックアップデータ309としてファイルをファイルシステムボリューム310に書き込む。
図4は、クラウドサーバ管理テーブル214の構成例を示す図である。
クラウドサーバ管理テーブル214は、サイトID401、サイト名402、URL403から構成される。サイトID401、サイト名402、URL403は1つのレコード404として組で設定される。レコード404は、クラウドサーバ105毎に存在する。
サイトID401は、クラウドサーバ105のID(例えば通番)である。サイト名402は、クラウドサーバ105の名称である。URL403は、ファイルサーバ103がクラウドサーバ105へアクセスするために用いるルートパス(URL(Uniform Resource Locator))である。ファイルサーバ105は、ファイルをバックアップする場合や、バックアップされたファイルへアクセスする場合に、URL403に基づいてアクセスパスを生成する。クラウドサーバ管理テーブル214の利用方法については、後に詳述する。
図5は、データ送受信管理テーブル213の構成例を示す図である。
データ送受信管理テーブル213は、遅延501、チャンクサイズ502、並列度503から構成される。遅延501、チャンクサイズ502、並列度503はレコード504として組で設定される。レコード504は、遅延毎に存在する。
遅延501は、ネットワーク102の遅延を表す値である。また、遅延501は、代表値である。例えば、遅延501が10ミリ秒(msec)と設定されている場合、10ミリ秒以下と解釈される。ある時刻における遅延が5ミリ秒である場合、10ミリ秒の遅延のレコード504Aが選択される。なお、本発明では、遅延501の解釈は限定されない。
チャンクサイズ502は、ファイルサーバ103Bがクラウドサーバ105に格納されたファイルを取得するときのサイズである。例えば、ファイルサーバ(リストア)103Bが、クラウドサーバ105から1MBのファイルを取得する場合、チャンクサイズ502に示される0.25MBの4つのデータのかたまりとして、クラウドサーバ105から取得する。並列度503は、ファイルサーバ(リストア)103Bがクラウドサーバ105に格納されたファイルを取得する場合の並列取得数を示す。例えば、ある時刻において、ファイルサーバ(リストア)103Bが1MBのファイルを取得する際、遅延501が20ミリ秒であった場合、ファイルサーバ(リストア)103Bは、0.5MBの2つのデータのかたまりとし、2つのリストアセッションを用いて2並列でデータを取得する。データ送受信管理テーブル213の利用方法については、後に詳述する。
図5の例によれば、遅延が、相対的に小さければ、チャンクサイズは小さい、および、並列数は大きい、のうちの少なくともいずれかである。例えば、遅延501“10msec”に対応したチャンクサイズ502の値は、“10msec”より大きい値の遅延501に対応したチャンクサイズ502の値より小さい。また、例えば、遅延501“10msec”に対応した並列度503の値は、“10msec”より大きい値の遅延501に対応した並列度503の値より大きい。
また、図5の例によれば、遅延が、相対的に大きければ、チャンクサイズは大きい、および、並列数は小さい、のうちの少なくともいずれかである。例えば、遅延501“30msec”に対応したチャンクサイズ502の値は、“30msec”より小さい値の遅延501に対応したチャンクサイズ502の値より大きい。また、例えば、遅延501“30msec”に対応した並列度503の値は、“30msec”より大きい値の遅延501に対応した並列度503の値より小さい。
また、本実施例では、予め用意されたデータ送受信管理テーブル213が使用されるが、テーブル213の使用に代えてまたは加えて、遅延に応じたチャンクサイズおよび並列度のうちの少なくとも1つは、計算により決定されてもよい。また、システムのサポートする最大リストアセッション数、最大バックアップセッション数があらかじめ分かっている場合には、その値を参考にチャンクサイズ502、並列度503を決定してもよい。たとえば、並列度503は最大リストアセッション数を超えない値とし、チャンクサイズ502はファイルサイズを並列度503で除した値とする。
図6は、格納データ管理テーブル215の構成例を示す図である。
格納データ管理テーブル215は、ファイルパス601、サイズ602、格納先クラウドサーバID603から構成される。ファイルパス601、サイズ602、格納先クラウドサーバID603は、レコード604として組で管理される。レコード604は、バックアップされたファイル毎に存在する。
ファイルパス601は、ファイルサーバ103のファイルシステムボリューム203に格納されているファイルのパスを示す。例えば、あるファイルが/aaa/bbb.dbというパスでファイルシステムボリューム203へ格納されている場合、ファイルパス601にそのように記述される。格納データ管理テーブル215の利用方法については、後に詳述する。
図7は、ファイルサーバ(リストア)103Bが、あるファイルをクラウドサーバ105Aと105Bから並列にリストアする場合の、データリストア概要を示す図である。
クラウドサーバ105Aと105Bには、ファイルサーバ(運用)103Aから1MBのファイルが単純複製によって、バックアップデータ306として格納されている。つまり、クラウドサーバ105Aと105Bには、同じバックアップデータ306が格納されている。ファイルサーバ(リストア)103Bが、20ミリ秒遅延のネットワーク102を通してクラウドサーバ105Aと105Bからバックアップデータ306を取得する。この時、データ送受信管理テーブル213のレコード504B(遅延501“20msec”)のチャンクサイズ502に基づき、ファイルサーバ(リストア)103Bは、0.5MBのチャンクにして、ファイル(バックアップデータ306)を取得する。さらに、ファイルサーバ(リストア)103Bは、データ送受信管理テーブル213のレコード504Bの並列度503に基づき、2並列でデータ(チャンク)を取得する。この例では、ファイルサーバ(リストア)103Bは、クラウドサーバ105Aと105Bから並列にデータ(チャンク)を取得している。なお、チャンクサイズと並列度の積が、クラウドサーバ105Aが単位時間当たりに送信可能なデータ量以下であれば、ファイルサーバ(リストア)103Bは、クラウドサーバ105Aから当該チャンクサイズのチャンクを当該並列度で取得してもよい。本発明では、取得先のクラウドサーバ105の選択方法は限定されない。このように、ファイルサーバ(リストア)103Bは、ネットワーク102の遅延に基づいて、バックアップデータ306を取得する場合のチャンクサイズ及び並列度のうちの少なくとも1つを決定し、決定したチャンクサイズ及び並列度のうちの少なくとも1つに従いチャンクを取得する。
図8は、ファイルサーバ(運用)103Aが実行するファイルのバックアップ処理のフローを示す。
バックアップ処理は、データ送受信プログラム210と作成プログラム208が連携して実行する。ファイルサーバ(運用)103Aの管理者が、管理プログラム211に対し、ファイルシステムボリューム203に格納されているファイルのバックアップ処理を指示する。その指示は、管理プログラム211からデータ送受信プログラム210に送られる。
データ送受信プログラム210は、その指示を受け、ファイルシステムボリューム203に格納されているファイルのうちバックアップされていないファイルを1つ選択する(ステップ801)。
次に、データ送受信プログラム210は、クラウドサーバ管理テーブル214から、ステップ801で選択したファイル(図8の説明において「選択ファイル」)の送信先(バックアップ先)とするクラウドサーバ105を選択する(ステップ802)。この時、データ送受信プログラム210は、複数のクラウドサーバ105へ送信する場合は、2つ以上のクラウドサーバ105を選択する。
次に、データ送受信プログラム210は、作成プログラム208を呼び出し、複製データの作成を要求する。作成プログラム208は、単純複製の場合は、選択ファイルに変更を加えない。一方、分割複製の場合は、作成プログラム108は、選択ファイル(ファイルデータ)を1MBなどの大きさに分割する。そして、データ送受信プログラム210は、作成プログラム208が作成したバックアップ用のデータを、ステップ802で選択したクラウドサーバ105へ送信する(ステップ803)。
次に、データ送受信プログラム210は、クラウドサーバ105へ送信してバックアップが完了した選択ファイルに関する情報を、新規レコード404として格納データ管理テーブル215へ追加する(ステップ804)。
そして、データ送受信プログラム210は、バックアップされていないファイルがあるか否かを判断する(ステップ805)。ステップ805の判断結果が真の場合(ステップ805:Yes)、データ送受信プログラム210は、ステップ801から処理を続ける。一方、ステップ805の判断結果が偽の場合(ステップ805:No)、バックアップ処理フローが終了する。
以上により、ファイルサーバ(運用)103Aに格納されているファイルがクラウドサーバ105へバックアップされる。このバックアップ処理は、災害が発生する前に、定期的または不定期的(例えば、ファイルサーバ(運用)103Aに未バックアップのファイルが格納される都度)に実行される。つまり、災害発生後には、バックアップ処理が実行された時点のファイルサーバ(運用)103Aのファイルシステムボリューム203をリストアできる。
図9は、ファイルサーバ(リストア)103Bが実行するファイルのリストア処理のフローを示す。
リストア処理は、データ送受信プログラム210とリストアプログラム209が連携して実行する。
ファイルサーバ(リストア)103Bの管理者が、管理プログラム211に対し、クラウドサーバ105に格納されたバックアップデータ306のリストア処理を指示する。その指示が、管理プログラム211からデータ送受信プログラム210に送られる。
データ送受信プログラム210は、その指示を受けて、格納データ管理テーブル215を検索し、ファイルシステムボリューム203にリストアされていないファイルを1つ選択する(ステップ901)。
次に、データ送受信プログラム210は、[残量](ネットワーク102の遅延時間)と、[残量](ステップ901で選択したファイル(図9において「選択ファイル」)のうちリストアされていないデータの量)とを設定する(ステップ902)。なお、選択ファイルのリストア開始時は、遅延が不明であるため、データ送受信プログラム210は、[遅延]に、初期値(例えば、30ミリ秒)を設定する。それに代えて、データ送受信プログラム210は、ダミーデータのようなデータをネットワーク102を通して通信し、その通信に関して遅延計測プログラムによって計測された遅延時間を、[遅延]に設定してもよい。また、データ送受信プログラム210は、[残量]に、選択ファイルに対応したサイズ602の値を設定する。
次に、データ送受信プログラム210は、遅延([遅延]に設定されている値)に基づき、データ送受信管理テーブル213を検索する(ステップ903)。例えば、[遅延]が30ミリ秒のときは、データ送受信プログラム210は、遅延501“30msec”を含んだレコード504Cを選択する。なお、遅延に対応したチャンクサイズ502が示すサイズのチャンクの数が、遅延に対応した並列度503が示す並列度(値)未満の場合、データ送受信プログラム210は、ステップ901で最近選択したファイルに代えてまたは加えて、ファイル合計サイズが、遅延に対応したチャンクサイズ502が示すサイズのチャンクの数が、遅延に対応した並列度503が示す並列度(値)以上となるような、1以上のファイルを選択してもよい。
そして、データ送受信プログラム210は、レコード504Cにおけるチャンクサイズ502が示すサイズのチャンクの取得要求を、レコード504Cにおける並列度503が示す並列度分、1以上のクラウドサーバ105へ並列に送信し、その並列度分の取得要求に応答して1以上のクラウドサーバ105からチャンクを取得(受信)する(ステップ904)。なお、ステップ902からステップ906の繰り返し処理において、遅延が前回のチャンク取得時と変化しなかった場合、ステップ904では、続きのチャンクを取得する動作となる。繰り返し動作時の詳細は、図10を用いて後に詳述する。
ステップ904でクラウドサーバ105からチャンクを取得する際に、遅延計測プログラム212が、ファイルサーバ(リストア)103Bとクラウドサーバ105間の通信の遅延を計測しておく(ステップ905)。
続いて、データ送受信プログラム210は、[残量]が0より大きいか否かを判断する(ステップ906)。例えば、8MBのファイルをリストアする場合において、データ送受信プログラム210が、データ送受信管理テーブル213のレコード504Cに従い、1MBのチャンクを4並列で取得した場合、合計4MBのデータが取得されたため、未だ、4MBの残量がある。つまり、[残量]=4MBである。従って、この場合は、ステップ906の判断結果は真であり(ステップ906:Yes)、データ送受信プログラム210は、ステップ902から処理を続ける。一方、「残量」=0MBの場合は、ステップ906の判断結果は偽となり(ステップ906:No)、ステップ907へ進む。
そして、データ送受信プログラム210は、格納データ管理テーブル215を検索し、リストア対象のファイルがあれば(ステップ907:Yes)、ステップ901から処理を継続する。一方、リストア対象のファイルがなければ(ステップ907:No)、リストア処理を終了する。
図10は、1ファイルのチャンク取得の繰り返し(図9のステップ902からステップ906の繰り返し)を示す図である。8MBのファイルをリストアする場合を想定し、チャンク取得の流れを、図10を用いて説明する。なお、図10の説明において、「ループ」とは、ステップ902からステップ906にかけた処理を言う。なお、「ループ」は、リストア回数の一例である。また、図10において、白塗りのチャンクは、未処理データの少なくとも一部としてのチャンクであり、グレーのチャンクは、処理済み(取得済み)のチャンクである。
まず、データ送受信プログラム210は、ループ1回目の遅延(遅延時間)は不明のため、[遅延]の初期値として“30ミリ秒”を設定する。また、データ送受信プログラム210は、[残量]に“8MB”を設定する。そして、データ送受信管理テーブル213の遅延501が30ミリ秒であるレコード504Cを選択する。レコード504Cのチャンクサイズ502は“1MB”であり、並列度503は“4”である。そこで、データ送受信プログラム210は、リストア対象のファイルを1MBのチャンクとし、先頭4チャンクを並列に取得する。つまり、ループ1回目のチャンク取得は、チャンク1からチャンク4を並列に取得することである。結果として、4MB分のファイルデータの取得が完了する。このため、残量は4MB(=8MB−4MB)となり、故に、データ送受信プログラム210は、[残量]を“4MB”に更新する。
次のループ2回目では、ループ1回目にチャンク1からチャンク4まで取得した時の遅延(計測された遅延時間)が20ミリ秒であったとする。このため、ループ2回目までに、データ送受信プログラム210は、[遅延]を“20ミリ秒”に更新する。ループ2回目では、データ送受信プログラム210は、データ送受信管理テーブル213の遅延501が“20ミリ秒”であるレコード504Bを選択する。レコード504Bのチャンクサイズ502は“0.5MB”であり、並列度503は“2”である。そこで、データ送受信プログラム210は、4MBの残データを0.5MBのチャンクが8チャンクあるとする。そして、並列度“2”であるので、データ送受信プログラム210は、2つのチャンクAとチャンクBを並列に取得する。この時点で、ループ1回目の4MBとループ2回目の1MBが取得された状態となり、残量は3MBとなる。故に、データ送受信プログラム210は、[残量]を“3MB”に更新する。
ループ3回目では、ループ2回目にチャンクAとチャンクBを取得した時の遅延(計測された遅延時間)が20ミリ秒であったとする。このため、[遅延]は“20ミリ秒”のままとされる。つまり、データ送受信プログラム210は、遅延時間が変化しなかったと判断する。従って、ループ3回目では、データ送受信プログラム210は、遅延“20ミリ秒”に対応したチャンクサイズ“0.5MB”、並列度“2”を維持し、続きのチャンクCとチャンクDを取得する。この時点で、更に1MBが取得された状態となり、残量は2MBとなる。故に、データ送受信プログラム210は、[残量]を“2MB”に更新する。
ループ4回目とループ5回目も、遅延が“20ミリ秒”で変化していないため、データ送受信プログラム210は、遅延“20ミリ秒”に対応したチャンクサイズ“0.5MB”、並列度“2”でリストアを続ける。ループ5回目で、チャンクGとチャンクHを取得できれば、残量が0MBになるので、このファイルのリストアが完了する。
このように、遅延に対応する最適なリストア速度を達成できるように、ループ毎に、データ送受信プログラム210は、チャンクサイズと並列数を最近の遅延にあわせて変更する。このため、最適なリストア速度の維持が期待できる。
以上の実施例によれば、ネットワーク102の遅延に基づいて、チャンクサイズ(ファイルの取得サイズ)と取得の並列度が動的に変更される。それにより、ネットワーク102の最大帯域を使ってチャンクを取得することが期待できる。その結果、リストア速度の向上、言い換えれば、リストア時間の短縮を、期待できる。リストア時間を短縮することにより、災害後のファイル共有サービスを早期に再開できる。
なお、本実施例では、ファイルサーバ(運用)103A内のデータ送受信プログラム210は、ファイルサーバ(運用)103内の各ファイルを、最大並列度分のクラウドサーバ105の各々にバックアップしてよい。ファイルサーバ(リストア)103B内のデータ送受信プログラム210は、最大並列度分のクラウドサーバ105のうち、並列度分のクラウドストレージ105からそれぞれその並列度分のチャンクを並列に取得してよい。リストア元が複数のクラウドサーバ105に分散されるので、より確実に高速リストアを実現できることが期待できる。
図11を用いて、実施例2を説明する。本実施例は、実施例1の変形例に相当するため、実施例1との相違を中心に説明する。
図11は、実施例2に係るリストア処理の一例を示す模式図である。
本実施例に係るリストア方法は、サイズの小さいファイルをリストアする場合のリストア方法である。サイズの小さいファイルをリストアする場合、データ送受信管理テーブル213のチャンクサイズ502でファイルを分けると、並列度503より小さくなる場合がある。一方、並列度503でファイルを分けると、チャンクサイズ502より小さくなることもある。この場合、適切なチャンクサイズや並列数を満たすことができない。そこで、本実施例では、チャンクサイズ502が守られ、並列度は、1つのリストア処理(メインの処理)におけるリストア対象のファイルが複数とされることで満たされる。
図11では、2MBのFile1とFile2が、クラウドサーバ105Aと105Bへそれぞれバックアップされている。そして、ネットワーク102の遅延は30ミリ秒である。遅延が30ミリ秒であるため、データ送受信管理テーブル213(図5)によれば、採用されるチャンクサイズ502は“1.0MB”であり、採用される並列度503は“4”である。また、リストア対象として選択されたファイルはFile1であるとする。
この場合、File1を1MBのチャンクに分けても2並列でのリストアが限界となり、並列度“4”が満たされない。一方、File1を4並列で分けると(4分割すると)、各チャンクのサイズは0.5MBとなり、チャンクサイズ“1.0MB”が満たされない。
そこで、ファイルサーバ(リストア)103B内のデータ送受信プログラム210は、File1に加えてFile2を1MBのチャンクに分けてリストアする。これにより、合計4並列でリストアできるようになる。つまり、チャンクサイズ“1.0MB”且つ並列度“4”を満たすためには、リストア対象のサイズは、4.0MB以上(1.0x4=4.0MB)である必要がある。このため、データ送受信プログラム210は、2MBのFile1に加えて2MBのFile2もリストア対象とすることで、合計ファイルサイズが4.0MB以上であることを満たす。
この動作を達成するため、データ送受信プログラム210は、図9のステップ903で、チャンクサイズと並列度を決定した後、並列度が不足しているか否を判断する。この判断結果が真の場合は、データ送受信プログラム210は、リストア処理を別のスレッドまたはプロセスとして起動し(サブのリストア処理を起動し)、ステップ901からステップ906を動作させる。つまり、新たにリストア対象とされるファイルが選択され、処理が進む。遅延に対応した並列度が満たされるまで(リストア処理で達成される並列度の合計が、遅延に対応した並列度以上になるまで)、同様にリストア処理が起動される。ただし、リストア処理は個別に動作するのではなく、ステップ904で処理を待ち合わせする。つまり、ステップ904は、複数のリストア処理が同時に実行する。これにより、リストアの並列度を達成する。この個別のリストア処理は、リストアセッションの一例でもよい。なお、この時、並列度を調整するため、データ送受信プログラム210は、リストア処理(リストアセッション)毎にチャンクサイズと並列度を変更してもよい。例えば、データ送受信プログラム210は、全リストア処理の並列度の合計が、目的の並列度(遅延に対応した並列度)と合わない場合は、何れかのリストア処理のチャンクサイズと並列度を小さくするという調整を行ってよい。
以上のように、本実施例によると、ファイルが小さく、1つのファイルのデータ取得では、並列度を達成できない場合、複数のファイルを纏めて1つのリストア対象とすることで、並列度を達成することができる。これにより、リストア対象ファイルのファイルサイズに依存することなく、リストア速度を高めることが期待できる。
なお、上記の説明では、チャンクサイズが優先されるチャンクサイズ優先リストア処理が採用されるが、並列度が優先される並列度優先リストア処理が採用されてもよい。例えば、以下の処理が行われてもよい。
データ送受信プログラム210は、下記の処理、
(p)リストア対象ファイルを、計測された遅延に応じた並列度分のチャンクに分割すると仮定した場合に、チャンクサイズが、計測された遅延に応じたチャンクサイズ以上になるか否かを判断すること、
(q)(p)の判断結果が真の場合、リストア対象ファイルを、計測された遅延に応じた並列度分のチャンクに分割し、その分割により得られたチャンクを、計測された遅延に応じた並列度で取得すること、
を実行してよい。これにより、遅延に応じた並列度が維持される。
また、データ送受信プログラム210は、下記の処理、
(r)(q)の判断結果が偽の場合、リストア対象ファイルと、1以上の他のリストア対象ファイルとを、計測された遅延に応じた並列度分のチャンクに分割し、その分割により得られたチャンクを、計測された遅延に応じた並列度で取得すること、
を実行してよい。リストア対象ファイルと1以上の他のリストア対象ファイルとの合計サイズは、計測された遅延に応じたチャンクサイズと計測された遅延に応じた並列度との積以上である。これにより、遅延に応じたチャンクサイズが維持される。
データ送受信プログラム210は、(q)の判断結果が偽の場合であっても、上記の積以上の合計サイズが得られる他のリストア対象ファイルが無ければ、(r)に代えて、下記の処理、
(s1)リストア対象ファイルを、計測された遅延に応じたチャンクサイズのチャンクに分割し、その分割により得られたチャンクを、計測された遅延に応じた並列度未満のうちの最大並列度で取得すること、
を実行してよい。これにより、遅延に応じたチャンクサイズを最小チャンクサイズとして守り、遅延に応じた並列度未満であるがなるべく高い並列度で、チャンクを取得することができる。
データ送受信プログラム210は、下記の処理、
(s2)(q)の判断結果が偽の場合、リストア対象ファイルを、計測された遅延に応じたチャンクサイズのチャンクに分割し、その分割により得られたチャンクを、計測された遅延に応じた並列度未満のうちの最大並列度で取得することを実行すること、
を実行してよい。これにより、上記の積以上の合計サイズが得られる他のリストア対象ファイルの有無に関わらず、遅延に応じたチャンクサイズを最小チャンクサイズとして守り、遅延に応じた並列度未満であるがなるべく高い並列度で、チャンクを取得することができる。
以上が、並列度優先リストア処理の一例である。なお、データ送受信プログラム210は、チャンクサイズ優先リストア処理と並列度優先リストア処理のいずれを採用するかを選択し(例えば、リストア対象ファイルまたは計測された遅延に基づき選択し)、選択した方の処理を実行してもよい。ファイル毎に、または、遅延(例えば代表値)毎に、チャンクサイズ優先リストア処理と並列度優先リストア処理のいずれを採用するかが予め定められていてもよい。
図12を用いて、実施例3について説明する。本実施例は、実施例1の変形例に相当するため、実施例1との相違を中心に説明する。
図12は、実施例3に係るバックアップ処理およびリストア処理の一例を示す模式図である。
本実施例に係るリストア方法は、ファイルを複数のフラグメントに分割した分割リストア方法である。本実施例において、複数のフラグメントの各々は、直前のフラグメントの後側部分と、直後のフラグメントの前側部分とのうちの少なくとも1つと重なり合っている。このため、ファイルデータをリストアする際のチャンクサイズと並列度を調整することができる。
図12によれば、実施例3の概要の一例は次の通りである。すなわち、ファイルサーバ(運用)103A4MBのファイルを複数のフラグメントに分割し、その複数のフラグメントをクラウドサーバ105A及び105Bへバックアップする。ファイルサーバ(リストア)103Bが、複数のフラグメントのチャンクをクラウドサーバ105A及び105Bから並列に取得して、4MBのファイルをリストアする。
以下、詳細を説明する。
ファイルのデータは、4MBである。4MBのファイルデータが、3つのフラグメント1〜ト3に分割され、3つのフラグメント1〜3がクラウドサーバ105A及び105Bへバックアップされる。フラグメント1は、ファイルデータの0〜2MB目の部分であり、フラグメント2は、ファイルデータの1〜3MB目の部分であり、フラグメント3は、ファイルデータの2〜4MB目の部分である。これらフラグメント1〜3への分割は、作成プログラム208が実施する。各フラグメントのサイズは同じである。フラグメントサイズは、複数種類のチャンクサイズ(例えば、図5の例によれば、0.25MB、0.5MB、1.0MB)の公倍数であることが望ましい。なぜなら、1つのフラグメントから1以上のチャンクを取得するためである。更に、フラグメントサイズは、複数種類のチャンクサイズの最小公倍数のM倍(Mは2以上の整数)であることが望ましい。なぜなら、1つのフラグメントから2以上のチャンクを取得するためである)。
フラグメント1及び2は、クラウドサーバ105Aに格納される。フラグメント3は、クラウドサーバ105Bに格納される。
ファイルサーバ(リストア)103Bがファイルデータをリストアする際に、ネットワーク102の通信遅延が20ミリ秒であった場合、ファイルサーバ(リストア)103Bのデータ送受信プログラム210は、データ送受信管理テーブル213のレコード504Bを選択する。この時、チャンクサイズ502は“0.5MB”であり、並列度503は“2”である。そこで、データ送受信プログラム210は、先頭から順に0.5MB単位にフラグメント1とフラグメント3を、2並列に取得する。これにより、2並列でリストアを行い、データ送受信管理テーブル213に設定されたチャンクサイズと並列度を達成できる。
一方、ネットワーク102の通信遅延が30ミリ秒であった場合、データ送受信プログラム210は、データ送受信管理テーブル213のレコード504Cを選択する。この時、チャンクサイズ502は“1MB”であり、並列度503は“4”である。そこで、データ送受信プログラム210は、フラグメント1の前半1MBのチャンク1−1と、フラグメント2の前半1MBのチャンク2−1と、フラグメント3の前半1MBのチャンク3−1及び後半1MBのチャンク3−2を、4並列に取得する。
以上のように、本実施例によると、ファイルを複数のフラグメントに分割して複製する分割複製したファイルをリストアできる。さらに、フラグメントの範囲を一部重ね合わせることで、ネットワーク102の通信遅延が増加し、大きなチャンクかつ並列度を大きくリストアする場合でも、チャンクサイズと並列度を達成してリストアできる。
以上、幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
103:ファイルサーバ

Claims (15)

  1. 1以上のネットワークストレージからネットワークを通してリストア対象データを取得する計算機システムであって、
    前記1以上のネットワークストレージ間のネットワーク遅延を計測する遅延計測手段と、
    計測されたネットワーク遅延に応じたチャンクサイズおよび並列度のうちの少なくとも1つに従い、前記リストア対象データの少なくとも一部であるチャンクを、前記ネットワークを通して、前記1以上のネットワークストレージから取得する取得手段と、
    取得されたチャンクを基に前記リストア対象データをリストアするリストア手段と
    を備える計算機システム。
  2. 前記取得手段は、下記の処理、
    (a)前記リストア対象データのうちの未処理データを、最近計測されたネットワーク遅延に応じたチャンクサイズのチャンクに分割すること、
    (b)(a)の分割により得られたチャンクのうち、前記最近計測されたネットワーク遅延に応じた並列度分のチャンクを取得すること、
    (c)(a)の分割により得られたチャンクと前記並列度分のチャンクとの差分があるか否かを判断すること、
    (d)(c)の判断結果が真の場合、前記差分を未処理データとして(a)を実行すること、
    を実行する、
    請求項1記載の計算機システム。
  3. 前記取得手段、下記の処理、
    (h)前前記リストア対象データのうちの未処理データを、前記計測されたネットワーク遅延に応じたチャンクサイズのチャンクに分割すると仮定した場合に、チャンク数が、前記最近計測されたネットワーク遅延に応じた並列度以上になるか否かを判断すること、
    (i)(h)の判断結果が真の場合、前記リストア対象データのうちの未処理データを、前記計測されたネットワーク遅延に応じたチャンクサイズのチャンクに分割すること、
    (j)(h)の判断結果が偽の場合、前記最近計測されたネットワーク遅延に応じたチャンクサイズと前記最近計測されたネットワーク遅延に応じた並列度との積以上に合計データサイズがなるように、前記リストア対象データの他に、1以上の他のリストア対象データを選択し、前記リストア対象データとその選択した1以上の他のリストア対象データとのうちの未処理データを、前記最近計測されたネットワーク遅延に応じたチャンクサイズのチャンクに分割すること、
    (k)(i)または(j)の分割により得られたチャンクのうち、前記計測されたネットワーク遅延に応じた並列度分のチャンクを取得すること、
    を実行する、
    請求項1記載の計算機システム。
  4. 前記リストア対象データは、最大並列度分のネットワークストレージの各々に格納されており、
    前記1以上のネットワークストレージは、前記最大並列度分のネットワークストレージであり、
    前記取得手段は、前記最大並列度分のネットワークストレージのうち、並列度分のネットワークストレージからそれぞれその並列度分のチャンクを並列に取得する、
    請求項1乃至3のうちのいずれか1項に記載の計算機システム。
  5. 前記取得手段は、下記の処理、
    (p)前記リストア対象データを、前記計測されたネットワーク遅延に応じた並列度分のチャンクに分割すると仮定した場合に、チャンクサイズが、前記計測されたネットワーク遅延に応じたチャンクサイズ以上になるか否かを判断すること、
    (q)(p)の判断結果が真の場合、前記リストア対象データを、前記計測されたネットワーク遅延に応じた並列度分のチャンクに分割し、その分割により得られたチャンクを、前記計測されたネットワーク遅延に応じた並列度で取得すること、
    を実行する、
    請求項1記載の計算機システム。
  6. 前記取得手段は、下記の処理、
    (r)(q)の判断結果が偽の場合、前記リストア対象データと、1以上の他のリストア対象データとを、前記計測されたネットワーク遅延に応じた並列度分のチャンクに分割し、その分割により得られたチャンクを、前記計測されたネットワーク遅延に応じた並列度で取得すること、
    を実行し、
    前記リストア対象データと前記1以上の他のリストア対象データとの合計データサイズは、前記計測されたネットワーク遅延に応じたチャンクサイズと前記計測されたネットワーク遅延に応じた並列度との積以上である、
    請求項5記載の計算機システム。
  7. 前記取得手段は、(q)の判断結果が偽の場合であっても、前記積以上の合計サイズが得られる他のリストア対象データが無ければ、(r)に代えて、下記の処理、
    (s)前記リストア対象データを、前記計測されたネットワーク遅延に応じたチャンクサイズのチャンクに分割し、その分割により得られたチャンクを、前記計測されたネットワーク遅延に応じた並列度未満のうちの最大並列度で取得すること、
    を実行する、
    請求項6記載の計算機システム。
  8. 前記取得手段は、下記の処理、
    (s)(q)の判断結果が偽の場合、前記リストア対象データを、前記計測されたネットワーク遅延に応じたチャンクサイズのチャンクに分割し、その分割により得られたチャンクを、前記計測されたネットワーク遅延に応じた並列度未満のうちの最大並列度で取得することを実行すること、
    を実行する、
    請求項5記載の計算機システム。
  9. 複数のネットワークストレージに、前記リストア対象データを含む1以上のリストア対象データが格納されており、
    前記取得手段は、前記複数のネットワークストレージのうちの2以上のネットワークストレージから前記1以上のリストア対象データのチャンクを取得する、
    請求項1記載の計算機システム。
  10. 前記複数のネットワークストレージに、前記リストア対象データの複数のフラグメントが格納されており、
    前記複数のフラグメントの各々は、直前のフラグメントの後側部分と、直後のフラグメントの前側部分とのうちの少なくとも1つと重複しており、
    前記取得手段は、前記複数のフラグメントのチャンクを前記複数のネットワークストレージから取得する、
    請求項9記載の計算機システム。
  11. 前記取得手段は、リストアセッション毎に、最近計測されたネットワーク遅延に応じたチャンクサイズおよび並列度のうちの少なくとも1つに従いチャンクを取得する、
    請求項1乃至10のうちのいずれか1項に記載の計算機システム。
  12. 前記計測されたネットワーク遅延が、相対的に小さければ、チャンクサイズは小さい、および、並列数は大きい、のうちの少なくともいずれかであり、
    前記計測されたネットワーク遅延が、相対的に大きければ、チャンクサイズは大きい、および、並列数は小さい、のうちの少なくともいずれかである、
    請求項1乃至11のうちのいずれか1項に記載の計算機システム。
  13. 前記リストア対象データは、ファイルであり、
    前記ネットワークは、単位時間当たりのデータ送受信サイズを徐々に大きくするスロースタートを含んだフロー制御が実施されるTCP(Transmission Control Protocol)である、
    請求項1乃至12のうちのいずれか1項に記載の計算機システム。
  14. データを1以上のネットワークストレージにバックアップする第1の計算機システムと、
    前記1以上のネットワークストレージに格納されているデータのうちのリストア対象データをリストアする第2の計算機システムと
    を備え、
    前記第2の計算機システムは、
    前記1以上のネットワークストレージと前記第2の計算機システム間のネットワーク遅延を計測し、
    計測されたネットワーク遅延に応じたチャンクサイズおよび並列度のうちの少なくとも1つに従い、前記リストア対象データの少なくとも一部であるチャンクを取得し、
    取得されたチャンクを基に前記リストア対象データをリストアする、
    バックアップリストアシステム。
  15. 1以上のネットワークストレージ間のネットワーク遅延を計測し、
    計測されたネットワーク遅延に応じたチャンクサイズおよび並列度のうちの少なくとも1つに従い、前記リストア対象データの少なくとも一部であるチャンクを、ネットワークを通して、前記1以上のネットワークストレージから取得し、
    取得されたチャンクを基に前記リストア対象データをリストアする、
    リストア方法。
JP2017024082A 2017-02-13 2017-02-13 計算機システムおよびリストア方法 Active JP6924952B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017024082A JP6924952B2 (ja) 2017-02-13 2017-02-13 計算機システムおよびリストア方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017024082A JP6924952B2 (ja) 2017-02-13 2017-02-13 計算機システムおよびリストア方法

Publications (2)

Publication Number Publication Date
JP2018132814A true JP2018132814A (ja) 2018-08-23
JP6924952B2 JP6924952B2 (ja) 2021-08-25

Family

ID=63247448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017024082A Active JP6924952B2 (ja) 2017-02-13 2017-02-13 計算機システムおよびリストア方法

Country Status (1)

Country Link
JP (1) JP6924952B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023501656A (ja) * 2020-01-06 2023-01-18 アーミク カンパニー,リミテッド データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085251A (en) * 1998-04-02 2000-07-04 The United States Of America As Represented By The Secretary Of The Air Force Implementing a parallel file transfer protocol
JP2000216815A (ja) * 1999-01-21 2000-08-04 Toshiba Corp マルチリンク通信装置
JP2004531824A (ja) * 2001-03-28 2004-10-14 チャン パーク,ヤン ネットワーク環境でのファイル伝送方法
JP2012048373A (ja) * 2010-08-25 2012-03-08 Toshiba Corp 医用データストレージ装置
JP2016502774A (ja) * 2012-10-18 2016-01-28 ジラフィック テクノロジーズ エルティーディー.Giraffic Technologies Ltd. 通信リンクのスループットを動的に最大化するための輻輳制御方法。
JP2016096437A (ja) * 2014-11-13 2016-05-26 シャープ株式会社 通信装置、通信方法、通信プログラム、及びプロセッサ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085251A (en) * 1998-04-02 2000-07-04 The United States Of America As Represented By The Secretary Of The Air Force Implementing a parallel file transfer protocol
JP2000216815A (ja) * 1999-01-21 2000-08-04 Toshiba Corp マルチリンク通信装置
JP2004531824A (ja) * 2001-03-28 2004-10-14 チャン パーク,ヤン ネットワーク環境でのファイル伝送方法
JP2012048373A (ja) * 2010-08-25 2012-03-08 Toshiba Corp 医用データストレージ装置
JP2016502774A (ja) * 2012-10-18 2016-01-28 ジラフィック テクノロジーズ エルティーディー.Giraffic Technologies Ltd. 通信リンクのスループットを動的に最大化するための輻輳制御方法。
JP2016096437A (ja) * 2014-11-13 2016-05-26 シャープ株式会社 通信装置、通信方法、通信プログラム、及びプロセッサ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023501656A (ja) * 2020-01-06 2023-01-18 アーミク カンパニー,リミテッド データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム
JP7387116B2 (ja) 2020-01-06 2023-11-28 アーミク カンパニー,リミテッド データの送信および照会時の費用を最小化するためのデータアーカイビング方法およびシステム

Also Published As

Publication number Publication date
JP6924952B2 (ja) 2021-08-25

Similar Documents

Publication Publication Date Title
JP7098628B2 (ja) クラウドデータストアにわたるファイルシステム階層ミラーリング
US11487468B2 (en) Healing failed erasure-coded write attempts in a distributed data storage system configured with fewer storage nodes than data plus parity fragments
EP3062226B1 (en) Data replication method and storage system
US9209989B2 (en) Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
EP3612954B1 (en) Replication lag-constrained deletion of data in a large-scale distributed data storage system
US8055745B2 (en) Methods and apparatus for accessing data from a primary data storage system for secondary storage
US8601225B2 (en) Time ordered view of backup data on behalf of a host
US20160150012A1 (en) Content-based replication of data between storage units
US8683144B2 (en) Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US9075532B1 (en) Self-referential deduplication
US20230418716A1 (en) Anti-entropy-based metadata recovery in a strongly consistent distributed data storage system
US10922009B2 (en) Mirroring write operations across data storage devices
US9471586B2 (en) Intelligent selection of replication node for file data blocks in GPFS-SNC
JP6133396B2 (ja) 計算機システム、サーバ、及び、データ管理方法
US11099767B2 (en) Storage system with throughput-based timing of synchronous replication recovery
CN111225003B (zh) 一种nfs节点配置方法和装置
US11144232B2 (en) Storage system with efficient snapshot pair creation during synchronous replication of logical storage volumes
US11003541B2 (en) Point-in-time copy on a remote system
JP6924952B2 (ja) 計算機システムおよびリストア方法
US20190095106A1 (en) Low-latency lightweight distributed storage system
US11360712B2 (en) Storage system with continuous data verification for synchronous replication of logical storage volumes
US11386049B1 (en) Synchronous replication end to end latency reporting
US11256716B2 (en) Verifying mirroring of source data units to target data units
JP2004013867A (ja) 複製データベースシステム、データベース装置及びそれに用いるデータベース更新方法並びにそのプログラム
US20230034463A1 (en) Selectively using summary bitmaps for data synchronization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210715

R150 Certificate of patent or registration of utility model

Ref document number: 6924952

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115