本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システムは、図1に例示するように、情報処理装置10と、ネットワークストレージ20とを含んで構成され、これら情報処理装置10とネットワークストレージ20とがネットワークを介して通信可能に接続されている。またこのネットワークは、ゲートウェイGWを介してインターネットに接続されていてもよい。また、図1ではネットワークストレージ20を一つだけ図示しているが、ネットワークストレージ20は複数あってもよい。
本実施の形態においてこの情報処理装置10は、制御部11と、記憶部12と、操作部13と、表示部14と、通信部15と、記憶媒体インタフェース部16とを含んで構成される。また記憶部12は、メモリ部121と、ディスクデバイス122とを含む。
制御部11は、CPUなどのプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態では、この制御部11は、後に説明する記憶媒体インタフェース16に接続された記憶媒体からネットワークストレージ20のストレージ識別情報を参照し、当該ストレージ識別情報で識別されるネットワークストレージ20を探索する処理を行う。またこの制御部11は、当該探索の処理により見出されたネットワークストレージ20に接続されたときに、所定の方法で定めた識別名で識別されるバックアップ領域を、当該ネットワークストレージ20の記憶領域内に形成し、当該形成したバックアップ領域へ、記憶部12のディスクデバイス122に格納されている、バックアップの対象となるデータを複写する処理(バックアップ処理)を行う。またこの制御部11は、ネットワークストレージ20内に複写したデータを、ディスクデバイス122に書き出す(バックアップしたデータがもともと格納されていたディスクデバイスへ書き戻す処理や、いわゆるリカバリを行う処理、さらに、バックアップしたデータが格納されていたディスクデバイスとは異なるディスクデバイスへ書き出す処理を含む)処理(以下リストア処理という)を行ってもよい。さらに制御部11は、これらバックアップ処理やリストア処理を行ったときに、その日時を表す情報(図示しない計時用のICチップ等から取得する)と、行った処理の内容とを関連付けたログデータを生成し、ネットワークストレージ20またはディスクデバイス122の少なくとも一方に格納する。この制御部11の詳しい動作については後に述べる。
記憶部12のメモリ部121は、RAM(Random Access Memory)や、ROM(Read Only Memory)等を含んで構成される。このメモリ部121には、制御部11によって実行されるプログラムが格納される。このプログラムは、例えばディスクデバイス122から読み出されてこの記憶部12に格納されたものであってもよい。またこのプログラムは、コンピュータ可読かつ非一時的な記憶媒体に格納されて、あるいはネットワークを介して提供され、このメモリ部121や、ディスクデバイス122に格納されたものであってもよい。またこのメモリ部121は、制御部11のワークメモリとしても機能する。
ディスクデバイス122は、ハードディスクドライブやSSD(Solid State Drive)等の不揮発性記憶媒体であり、制御部11から入力される指示に従って、データを格納する。このディスクデバイス122には、一般的には制御部11によって実行されるプログラムとして、オペレーティングシステム(OS)プログラム等の基本プログラムのほか、ワードプロセッサのプログラム等のアプリケーションプログラム等が格納される。また、このディスクデバイス122には、情報処理装置10の利用者が生成するなどしたデータ(ユーザデータ)が格納される。本実施の形態のある例では、このディスクデバイス122が、バックアップの対象となるデータが格納されているディスクデバイスとして機能する。
操作部13は、マウスやキーボード等であり、利用者の指示操作を受け入れて、当該指示操作の内容を制御部11に出力する。表示部14は、ディスプレイ等であり、制御部11から入力される指示に従って情報を表示出力する。通信部15は、ネットワークインタフェース等であり、制御部11から入力される指示に従って、ネットワークを介して、指示された宛先へデータや要求を送出する。また、この通信部15は、ネットワークを介して受信したデータ等を制御部11に出力する。
記憶媒体インタフェース部16は、USBメモリやSDカード等の記憶媒体を受け入れ、制御部11から入力される指示に従って当該記憶媒体内に格納されたデータを読み出して、制御部11へ出力する。またこの記憶媒体インタフェース部16は、近距離無線通信デバイスであってもよい。この場合、この記憶媒体インタフェース部16は、制御部11から入力される指示に従い、自己との通信が可能な圏内にある記憶媒体(例えばNFCカード等)からデータを取得して制御部11へ出力する。
またネットワークストレージ20は、例えばNASであり、制御部21と、記憶部22と、ストレージ部23と、操作部24と、通信部25と、記憶媒体インタフェース部26とを含んで構成される。
ネットワークストレージ20の制御部21は、CPUなどのプログラム制御デバイスであり、記憶部22に格納されたプログラムに従って動作する。本実施の形態において、このネットワークストレージ20の制御部21は、通信部25がネットワーク等の通信手段を介して受信したデータや要求を受け入れる。制御部21は、当該要求がデータの格納の要求であれば、ストレージ部23に当該要求に係るデータを格納する。またこの制御部21は、当該要求がデータの読み出しの要求であれば、ストレージ部23に格納されているデータのうち、要求されたデータを読み出し、通信部25を制御して当該読み出したデータを要求元である機器に対して送出させる。この動作は、NASとしての一般的な動作であるので、ここでの詳しい説明は省略する。
また本実施の形態の制御部21は、記憶媒体インタフェース部26に受け入れた、USBメモリやSDカード等の記憶媒体に対して、ネットワークストレージ20のストレージ識別情報を書き込む動作を行う。また記憶媒体インタフェース部26は、後に述べるようにNFCカードのリーダライタであってもよく、その場合は、記憶媒体インタフェース部26との通信が可能な圏内にあるNFCカード等の記憶媒体に対して、ネットワークストレージ20のストレージ識別情報を書き込む動作を行ってもよい。具体的に本実施の形態のある例では、記憶部22にストレージ識別情報が記録されている。このようにNFCカードのリーダライタ等、近接通信により記憶媒体との間でのデータの読み書きを行う記憶媒体インタフェース26を用いる場合、NFCカード等の記憶媒体が当該記憶媒体インタフェース26と通信可能な圏内にある状態が、記憶媒体インタフェース26が記憶媒体を受け入れた状態に相当する。
利用者が操作部24においてストレージ識別情報の書き込み指示の操作を行うなどして、ストレージ識別情報の書き込み指示を受け入れると、制御部21は記憶部22からネットワークストレージ20のストレージ識別情報を読み出して、当該読み出したストレージ識別情報を、記憶媒体インタフェース部26に受け入れた、USBメモリやSDカード等の記憶媒体に対して書き込む。なお、ここでは操作部24においてストレージ識別情報の書き込み指示を行うものとしたが、これに代えて、またはこれとともに、例えば制御部21が提供するウェブページにおいてストレージ識別情報の書き込み指示を受け入れることとするなど、ソフトウェア的にストレージ識別情報の書き込み指示を受け入れてもよい。
さらに本実施の形態の例では、ネットワークストレージ20の制御部21は、上記ストレージ識別情報をホスト名(例えばNetBIOS名など)として設定する。
記憶部22は、メモリデバイス等であり、制御部21によって実行されるプログラムを格納している。このプログラムはコンピュータ可読、かつ非一時的な記録媒体に格納されて提供され、この記憶部22に格納されたものであってもよいし、ネットワークを介して配信され、この記憶部22に格納されたものであってもよい。本実施の形態の例では、この記憶部22は、制御部21のワークメモリとしても動作する。またこの記憶部22には、ネットワークストレージ20のストレージ識別情報が格納されている。
本実施の形態の一例では、このストレージ識別情報はネットワークストレージ20ごとに一意に定められた名称等であり、具体的には、通信部25に設定されたMAC(Media Access Control)アドレスとネットワークストレージ20のメーカー側で設定したネットワークストレージ20の型式名等とを組み合せたものとすればよい。
ストレージ部23は、ハードディスクドライブやSSD等を含むディスクデバイスであり、制御部21から入力される指示に従ってデータを格納している。このストレージ部23は、例えばRAID(Redundant Arrays of Inexpensive Disks)アレイとして構成されてもよい。
操作部24は、例えばスイッチ等であり、利用者が押下したときに、ストレージ識別情報の書き込み指示の操作が行われたものとして、制御部21に対してその旨の情報を出力する。
通信部25は、例えばネットワークインタフェースであり、制御部21から入力される指示に従って、ネットワークを介して、指示された宛先へデータを送出する。また、この通信部25は、ネットワークを介して受信したデータや要求等を制御部21に出力する。記憶媒体インタフェース部26は、USBメモリやSDカード等の記憶媒体を受け入れ、制御部21から入力される指示に従って当該記憶媒体内にデータを格納する。またこの記憶媒体インタフェース部26は、NFCカードのリーダライタであってもよく、その場合は、記憶媒体インタフェース部26との通信が可能な圏内にあるNFCカード等の記憶媒体に対し、制御部21から入力される指示に従ってデータを格納する。
次に、本実施の形態の制御部11の動作について説明する。本実施の形態の制御部11は、記憶部12に格納されたプログラムに従って動作し、機能的には図2に例示するように、識別情報読取部31と、探索処理部32と、接続処理部33と、領域形成処理部34と、バックアップ処理部35と、リストア処理部36と、初期処理部37とを含んで構成される。
識別情報読取部31は、記憶媒体インタフェース部16にて受け入れた、ネットワークストレージ20のストレージ識別情報を格納する記憶媒体から当該ストレージ識別情報を読み出す。
探索処理部32は、識別情報読取部31が読み出したストレージ識別情報をネットワークを介してブロードキャストする。探索処理部32は、当該ブロードキャストしたストレージ識別情報で識別されるネットワークストレージ20から、その通信部25に設定されたIPアドレス等、ネットワークアドレスを受信し、接続処理部33に出力する。この探索処理部32の動作は、例えばNBT(Net BIOS over TCP/IP)における名前解決の方法として広く知られた処理を利用できるので、詳しい説明を省略する。
接続処理部33は、探索処理部32から入力されたネットワークアドレスを用いて、当該ネットワークアドレスで識別されるネットワークストレージ20との通信を確立する。つまり、ネットワークストレージ20において共有設定されたストレージ部23内の記憶領域へのアクセスが可能となるように設定する。この設定もまた、例えばWindows(登録商標)ネットワークにおけるファイル共有設定と同様の動作を採用できるので、ここでの詳しい説明を省略する。
領域形成処理部34は、後に説明するバックアップ処理部35から入力される指示に従い、接続処理部33の動作によりアクセス可能となったネットワークストレージ20のストレージ部23内の記憶領域に、所定の方法で定めた識別名で識別されるバックアップ領域を形成する。具体的にこの領域形成処理部34は、利用者から識別名の入力を受けて、当該入力された識別名で識別されるバックアップ領域が既にストレージ部23内の記憶領域に形成されているか否かを調べる。そして領域形成処理部34は、ストレージ部23内の記憶領域に利用者から入力された識別名で識別されるバックアップ領域が形成されていなければ、当該識別名で識別されるバックアップ領域を形成する。ここでバックアップ領域は例えばディレクトリであり、この場合領域形成処理部34は、ストレージ部23内の記憶領域に識別名を名称としたディレクトリを形成する。そして領域形成処理部34は、ネットワークストレージ20のストレージ識別情報と、形成したバックアップ領域の識別名とを含むバックアップ設定情報を、記憶部12(の例えばディスクデバイス122)に格納する。なお、既に記憶部12にバックアップ設定情報が格納されている場合は、領域形成処理部34は、今回形成したバックアップ領域の識別名を、現用の識別名として他の識別名と区別できるような態様で(例えば最後に記録することとすればよい)追記する。
また、利用者から入力された識別名で識別されるバックアップ領域が既にストレージ部23内の記憶領域に形成されていたときには、既に同名の記憶領域が存在することを報知する表示を行い、再度別の識別名を入力するよう案内する。
なお、ここで領域形成処理部34は、利用者から識別名の入力を受けるにあたり、デフォルトとして予め定めた設定情報に基づいた識別名の候補を提示することとしてもよい。具体的にこの候補としては、利用者のユーザ名と情報処理装置10の名称(ホスト名)とを組み合わせたものとしておけばよい。
バックアップ処理部35は、バックアップを行うべき旨の指示を受けて、あるいはバックアップを行うべきタイミングとして設定された時刻が到来すると、図3に例示するバックアップの処理を開始する。具体的にこのバックアップ処理部35は、バックアップの処理を開始すると、リストア処理部36が動作中であるか否かを判断する(S11)。この判断は、例えば後に説明するリストア処理部36が動作している間、リストア中であることを表すフラグ(リストア中フラグ)を記憶部12に格納することとし、バックアップ処理部35が当該リストア中フラグが記憶部12に格納されているか否かを調べることにより行うこととすればよい。
バックアップ処理部35は、ここでリストア処理部36が動作中であると判断すると(Yesであると)、リストア中であることを表す表示を行い(S12)、処理を終了してリストア処理を続ける。
またバックアップ処理部35は、処理S11にてリストア処理部36が動作中でないと判断すると(Noであると)、ログデータ(バックアップ処理またはリストア処理を行った日時を記録した情報)と、現在日時(処理の時点の日時)とを参照し、最後にリストア処理を行ってから所定の時間内であるか否か(リストア処理の直後であるか否か)を調べる(S13)。ここで所定の時間は予め設定しておけばよく、例えば「1週間」などとしておけばよい。
ここでリストア処理の直後であると判断する(Yesである)と、バックアップ処理部35は、領域形成処理部34に対して新たなバックアップ領域を形成するよう指示して(S14)、処理S16へ移行する。また処理S13において、バックアップ処理部35はリストア処理の直後でないと判断する(Noである)と、記憶部12内にバックアップ設定情報が存在するか否かを調べる(S15)。ここでバックアップ設定情報は、領域形成処理部34に格納されたバックアップ領域の識別名を含む情報である。
この処理S13,14のように、リストア処理から所定の時間が経過する前に行われるバックアップ処理において、別のバックアップ領域を形成させるのは、後に述べるように、リストア処理に成功しなかった場合に、以前バックアップしたデータ(リストア処理を試行したデータ)が、少なくとも所定の時間内は確実に残っているようにするためである。なお、ここでは一度リストア処理を行ったデータが格納されているバックアップ領域についても、上記所定の時間が経過した後は、バックアップの対象となったデータを複写するようにしているが、一度リストア処理を行ったデータが格納されているバックアップ領域については当該バックアップ領域内のデータを永続的に保持することとしてもよい。つまり処理S13においてログデータに記録されている、最後に行われた処理がリストア処理であるか否かを判断し、リストア処理であれば処理S14に移行し、最後に行われた処理がリストア処理でなければ処理S15に移行するようにしてもよい。
バックアップ処理部35は、記憶部12にバックアップ設定情報が存在しない場合(Noの場合)は、処理S14に移行し、領域形成処理部34に対してバックアップ領域を形成するよう指示する。またバックアップ処理部35は、処理S15において、記憶部12にバックアップ設定情報が存在すると判断すると(Yesであると)、複写処理を実行する(S16)。
この複写処理では、バックアップ処理部35は、図4に例示するように、予めバックアップの対象として設定されたディスクデバイス122内の領域に格納されたデータを、バックアップ設定情報に含まれるストレージ識別情報で識別されるネットワークストレージ20(以下、対象ネットワークストレージと呼ぶ)の、バックアップ設定情報に含まれる識別名で識別されるバックアップ領域へ複写する処理(以下、実処理と呼ぶ)を開始する(S21)。
この処理S21の実処理では、同名のデータがあった場合には更新時刻のより新しいものがバックアップ領域に残るように(つまり更新時刻が新しいもののみ複写するように)してもよいし、すべてのデータを上書きして複写することとしてもよい。本実施の形態の一例において、情報処理装置10がWindows(登録商標)OSで動作している場合、この実処理は当該OSに標準機能として用意されている、robocopyコマンドを用いることで実現されてもよい。
またバックアップ処理部35は、処理S21での実処理の開始後、これと平行して(一般的なプリエンプティブマルチタスクOSであれば複写処理をバックグラウンド実行させつつ)、ネットワークを介して、対象ネットワークストレージ20へのアクセスが可能であるか否かを調べる(S22)。すなわちバックアップ処理部35は、当該バックアップ設定情報に含まれていたストレージ識別情報をホスト名とするネットワークストレージ20がネットワーク上に存在するか否かを調べる。この処理は、例えばpingコマンド等を用いることで行うことができる。
バックアップ処理部35は、ここで、対象ネットワークストレージ20へのアクセスが可能でないと判断すると(Noであると)、以下、10分間の間、繰り返して対象ネットワークストレージ20へのアクセスが可能となったか否かを調べる(S23)。この処理S23にて対象ネットワークストレージ20へのアクセスが10分間の間、一度も可能とならなかったときには(Noであれば)、処理S21にて開始した実処理を停止し(S24)、処理が失敗したものとして複写処理を終了する。
また処理S23において、対象ネットワークストレージ20へのアクセスが10分間の間に一度でも可能となったときには(Yesであれば)、バックアップ処理部35は、所定時間(例えば1分間)だけ待機して(S25)、処理S22に戻って処理を続ける。
また処理S22において、対象ネットワークストレージ20へのアクセスが可能であったと判断すると(Yesであると)、バックアップ処理部35は、対象ネットワークストレージ20のストレージ部23が正常に動作しているか否かを調べる(S26)。具体的にこの処理S26の処理は、一般的なNASが備えているエラーログの生成機能で生成されたエラーログを調べるなどして行うことができる。もっとも、対象ネットワークストレージ20がストレージ部23の状況を外部に報知する機能を有していないなどの場合は、この処理S26は必ずしも実行しなくてもよい。
バックアップ処理部35は、この処理S26において、ストレージ部23が正常に動作していないと判断すると(Noであると)、エラーを報知して処理を停止する(S27)。
またバックアップ処理部35は、この処理S26において、ストレージ部23が正常に動作していると判断すると(Yesであると)、処理S21にて開始した実処理が完了したか否かを調べ(S28)、完了していなければ(Noであれば)、処理S25に移行し、所定時間(例えば1分間)だけ待機してから処理S22に戻って処理を続ける。
また処理S28にて実処理が完了したと判断すると(Yesであると)、バックアップ処理部35は、複写処理を終了する。
処理S16における複写処理が終了すると、バックアップ処理部35は、処理が失敗したか否かを調べる(S17)。つまりバックアップ処理部35は、複写処理が失敗したものとして終了したか、または処理S21にて開始した実処理においてデータの複写がすべて失敗したとき(robocopyを用いる場合、robocopyが複写できず処理をスキップしたデータの数が全データの数と一致するとき)、処理が失敗したと判断して(Yesとして)、ログデータ(バックアップ処理またはリストア処理を行った日時を記録した情報)を参照し、最後にバックアップ処理を行った時点からの経過日時が所定の閾値を超えているか否かを調べる(S18)。ここで、最後にバックアップ処理を行った時点からの経過日時が所定の閾値を超えていれば、長期に亘りバックアップがされていない旨の警告メッセージを出力して(S19)、処理を終了する。また処理S18にて閾値を超えていなければ、そのまま処理を終了する。
また、処理S17において、処理が失敗していないと判断すると(Noであると)、バックアップ処理部35は、ログデータに現在の日時(図示しない計時用のICチップ等から取得する)とバックアップ処理を行った旨の情報(今回のバックアップ処理によりデータを複写したバックアップ領域の識別名を含める)とを関連付けて追記し(S20)、処理を終了する。
なお、このときバックアップ処理部35は、データを複写した対象ネットワークストレージ20のバックアップ領域へのリンク(参照情報)をディスクデバイス122の所定の領域に形成してもよい。具体的にWindowsOSを用いている場合、利用者のデスクトップディレクトリに、バックアップ領域へのショートカットファイルを生成する。
リストア処理部36は、リストアを行うべき旨の指示を受けると、所定の方法で定めた識別名で識別される、ネットワークストレージ20内のバックアップ領域から、当該バックアップ領域内のデータを、ディスクデバイス122の所定領域に複写する。
具体的に、このリストア処理部36は、リストア処理を行うべき旨の指示を受けると、図5に例示するリストア処理を開始する。リストア処理部36はまず、バックアップ設定情報またはログデータを参照し、過去にバックアップの対象となったデータを複写したバックアップ領域の識別名の一覧を読み出して、利用者に提示する(S31)。
利用者がこの一覧のうちからリストア処理の対象とする識別名を選択すると、リストア中であることを案内する表示を開始し、リストア処理部36はリストア複写処理を開始する。すなわちリストア処理部36は、リストア中であることを表すリストア中フラグを記憶部12内に設定する(S32)。そして情報処理装置10のオペレーティングシステムに対して、省電力モード等、リストア処理が中断されるモードにならないよう要求する(S33)。このとき、リストア処理部36はさらに、利用者に対してデータの操作を行わないよう案内する表示を行ってもよい。
そしてリストア処理部36は、接続されたネットワークストレージ20(対象ネットワークストレージ)の、利用者から指定された識別名で識別されるバックアップ領域から予めバックアップの対象として設定されたディスクデバイス122内の領域へ複写する処理(以下、リストア実処理と呼ぶ)を開始する(S34)。
この処理S34のリストア実処理では、同名のデータがあった場合にもデータを上書きして複写することとしてもよい。また、この際、上書きによって削除されるデータを一時的に名称変更するなどして退避しておき、複写完了後に削除することとしてもよい。本実施の形態の一例において、情報処理装置10がWindowsOSで動作している場合、このリストア実処理は当該OSに標準機能として用意されている、robocopyコマンドを用いることで実現されてもよい。
またリストア処理部36は、処理S34でのリストア実処理の開始後、これと平行して(一般的なプリエンプティブマルチタスクOSであれば複写処理をバックグラウンド実行させつつ)、ネットワークを介して、対象ネットワークストレージ20へのアクセスが可能であるか否かを調べる(S35)。すなわちリストア処理部36は、当該バックアップ設定情報に含まれていたストレージ識別情報をホスト名とするネットワークストレージ20がネットワーク上に存在するか否かを調べる。この処理は、例えばpingコマンド等を用いることで行うことができる。
リストア処理部36は、ここで、対象ネットワークストレージ20へのアクセスが可能でないと判断すると(Noであると)、以下、10分間の間、繰り返して対象ネットワークストレージ20へのアクセスが可能となったか否かを調べる(S36)。この処理S36にて対象ネットワークストレージ20へのアクセスが10分間の間、一度も可能とならなかったときには(Noであれば)、処理S34にて開始したリストア実処理を停止し(S37)、処理Aに移行する。この処理A以下の処理については後に述べる。
また処理S36において、対象ネットワークストレージ20へのアクセスが10分間の間に一度でも可能となったときには(Yesであれば)、リストア処理部36は、所定時間(例えば1分間)だけ待機して(S38)、処理S35に戻って処理を続ける。
また処理S35において、対象ネットワークストレージ20へのアクセスが可能であったと判断すると(Yesであると)、リストア処理部36は、利用者によりリストア処理の中止が指示されているか否かを判断する(S39)。ここで中止が指示されていた場合(Yesの場合)は、処理S34にて開始したリストア実処理を停止し(S40)、処理Bに移行する。この処理B以下の処理についても後に述べる。
さらにリストア処理部36は、この処理S39においてリストア処理の中止が指示されていない(Noである)と判断すると、処理S34にて開始したリストア実処理が完了したか否かを調べ(S41)、完了していなければ(Noであれば)、処理S38に移行し、所定時間(例えば1分間)だけ待機してから処理S35に戻って処理を続ける。
また処理S41にて実処理が完了したと判断すると(Yesであると)、リストア処理部36は、処理結果の分析処理を開始する(S42)。
この分析処理ではリストア処理部36は、図6に示すように、リストア処理部36は、リストア実処理においてデータがすべて複写されたか(robocopyを用いる場合、robocopyが複写できず処理をスキップしたデータの数と「失敗」とされたデータの数とがいずれも「0」であるか)を判断する(S51)。
リストア処理部36は、処理S51にてリストア実処理においてデータがすべて複写されたと判断される場合(Yesの場合)は処理Cに移行する。この処理Cについては後に述べる。また処理S51にてリストア実処理において複写されていないデータがあると判断される場合(Noの場合)、リストア処理部36はエラーカウンタを「1」だけインクリメントし(S52:ただしエラーカウンタが記憶部12に格納されていなければ、値「1」のエラーカウンタを記憶部12に格納する)、エラーカウンタが所定の値を超えたか否かを調べる(S53)。ここでエラーカウンタが所定の値を超えていなければ(Noであれば)、リストア処理部36は、複写に失敗したデータについて、再度複写を試みる処理を開始する(S54)。この処理もまた、情報処理装置10がWindowsOSで動作している場合、データ名を指定したrobocopyコマンドによって実現できるものである。リストア処理部36はそして、処理S38に移行し、所定時間(例えば1分間)だけ待機してから処理S35に戻って処理を続ける。
また処理S53においてエラーカウンタが所定の値を超えていれば(Yesであれば)、リストア処理部36は、複写に失敗したデータを、記憶部12のディスクデバイス122内の所定領域(例えば利用者のデスクトップに新たに形成した「リストアに失敗したデータ」といったフォルダ内)に複写できるか試みる(S55)。リストア処理部36は、処理S55においてすべてのデータの複写に成功したか否かを調べ(S56)、すべてのデータの複写に成功したならば処理Dに移行し、複写に成功しなかったデータがあれば処理Eに移行する。
次に、リストア処理部36の処理A乃至Eの動作について説明する。リストア処理部36は、処理A乃至Eのいずれを行う場合であっても、図7に例示するように、情報処理装置10のオペレーティングシステムに対して、省電力モード等、リストア処理が中断されるモードになってもよい旨、通知し、リストア中であることを表すリストア中フラグをリセットして、リストア中でないことを表すものとする(S61)。
またリストア処理部36は、ログデータに現在の日時(図示しない計時用のICチップ等から取得する)とリストア処理を行った旨の情報とを関連付けて追記する(S62)。
そしてリストア処理部36は、処理Aに移行した場合は、リストア処理中にエラーが生じたことを報知する表示を行って(S63)、処理を終了する。リストア処理部36は処理Bに移行した場合は、処理を中断したことを報知する表示を行って(S64)、処理を終了する。
リストア処理部36はさらに、処理Cに移行した場合、リストア処理に成功したことを報知する表示を行って(S65)、処理を終了する。処理Dに移行した場合、リストア処理部36は「いくつかのデータのリストアに失敗」したが、当該リストア実処理にて複写に失敗したデータについては、所定の領域に複写したことを報知する表示を行い(S66)、処理を終了する。
また処理Eに移行した場合、リストア処理部36は「いくつかのデータのリストアに失敗」したことを報知する表示を行って(S67)、処理を終了する。なお、処理S63,64,66,67の表示においては、リストアの処理をもう一度行うか否かを利用者に問い合せる表示を併せて行ってもよい。ここで利用者がリストアの処理をもう一度行うことを指示した場合、リストア処理部36は処理S31からの処理を繰り返して行う。なお、処理S66においてリストアの処理をもう一度行うかを利用者に問い合わせ、利用者がもう一度リストアの処理を行うことを指示した場合であって、このもう一度のリストア処理においてリストアに成功した場合、先のリストア実処理にて複写に失敗したデータであって、所定の領域に複写されたデータを削除する処理を行ってもよい。
またここでは報知の態様として情報の表示を行う例としたが、報知の態様はこれに限らず、音声等による報知としてもよいし、表示と音声とを併用するなどしても構わない。
初期処理部37は、この初期処理部37としての機能を実現するモジュールを含むプログラム(バックアッププログラムと呼ぶ)がインストールされたときに実行される。この初期処理部37では、ネットワークストレージ20に対するアクセスを試行する(S71)。具体的に初期処理部37は、まず識別情報読取部31に対して、記憶媒体インタフェース部16にて受け入れた、ネットワークストレージ20のストレージ識別情報を格納する記憶媒体から当該ストレージ識別情報を読み出させる。そして初期処理部37は探索処理部32に指示して、識別情報読取部31が読み出したストレージ識別情報を、ネットワークを介してブロードキャストさせる。
ここで探索処理部32が当該ブロードキャストしたストレージ識別情報で識別されるネットワークストレージ20から、その通信部25に設定されたIPアドレス等、ネットワークアドレスを受信し、接続処理部33に出力し、接続処理部33が、探索処理部32から入力されたネットワークアドレスを用いて、当該ネットワークアドレスで識別されるネットワークストレージ20との通信を確立すると、初期処理部37は、ネットワークストレージ20にログデータが格納されており、当該格納されているログデータ内に、少なくとも一度、バックアップ処理を行った旨の記録が含まれているか否かを調べる(バックアップ履歴があるか調べる:S72)。
ここでバックアップの履歴があれば(Yesならば)、初期処理部37は、バックアップ処理とリストア処理とのどちらの処理を行うかを利用者に問い合せ(S73)、利用者が「バックアップ処理」を選択したときには、バックアップ処理部35に対してバックアップ処理を開始するよう指示する(S74)。また処理S73にて、利用者が「リストア処理」を選択したときには、初期処理部37は、リストア処理部36に対してリストア処理を開始するよう指示する(S75)。
また処理S72においてバックアップ履歴がなければ(Noならば)、初期処理部37は、処理S74に移行し、バックアップ処理部35に対してバックアップ処理を開始するよう指示する。
なお、処理S72においてバックアップの履歴があった場合であっても、さらに当該バックアップ処理を行った旨の記録に含まれる、バックアップ領域の識別名を参照し、当該識別名で識別されるバックアップ領域がネットワークストレージ20に格納されているか否かを判断し、当該判断の結果、当該識別名で識別されるバックアップ領域が格納されているときに、初期処理部37は、処理S73に移行して、バックアップ処理とリストア処理とのどちらの処理を行うかを利用者に問い合せるようにしてもよい。またこの場合、初期処理部37は、バックアップ処理とリストア処理とを選択させるのではなく、リストア処理を行うか否かを問い合わせる案内を表示することとしてもよい。この場合、利用者がリストア処理を行う旨の操作を行った場合、初期処理部37は処理S75に移行して、リストア処理部36に対してリストア処理を開始するよう指示する
また上記判断の結果、上記識別名で識別されるバックアップ領域がネットワークストレージ20に格納されていなかった場合は、初期処理部37は処理S74に移行し、バックアップ処理部35に対してバックアップ処理を開始するよう指示することとしてもよい。
[動作]
本実施の形態の情報処理システムは以上の構成を備え、次のように動作する。なお、以下の例では情報処理装置10がWindowsOSにより制御されるものとする。本実施の形態のある例においては、制御部11をバックアップ処理部35やリストア処理部36、ならびに初期処理部37等として機能させるモジュールを含んだプログラム(バックアッププログラム)のインストーラと、ネットワークストレージ20のストレージ識別情報とを格納した記憶媒体が、ネットワークストレージ20とともに利用者に提供される。
利用者は、情報処理装置10が接続可能なネットワークに、ネットワークストレージ20を接続して電源を投入しておく。また利用者は、このネットワークストレージ20とともに提供された記憶媒体を情報処理装置10に接続する。情報処理装置10は、当該記憶媒体内のインストーラを、人為的操作なしに、あるいは利用者の指示により起動する。
この起動されたインストーラにより情報処理装置10の記憶部12内に格納されたプログラムが実行されると、初期処理部37としての動作が開始される。すなわち初期処理部37からの指示により識別情報読取部31が記憶媒体からストレージ識別情報を読み出し、探索処理部32が、当該ストレージ識別情報をネットワークを介してブロードキャストする。
探索処理部32が当該ブロードキャストしたストレージ識別情報で識別されるネットワークストレージ20から、その通信部25に設定されたIPアドレス等、ネットワークアドレスを受信すると、接続処理部33が当該ネットワークアドレスを用いて、当該ネットワークアドレスで識別されるネットワークストレージ20との通信を確立する。
そして初期処理部37は、ネットワークストレージ20にログデータが格納されており、当該格納されているログデータ内に、少なくとも一度、バックアップ処理を行った旨の記録が含まれているか否かを調べる。ここでは初期導入時の例としているので、バックアップ履歴は存在しない。そこで初期処理部37は、バックアップ処理部35に対してバックアップ処理を開始するよう指示する。
バックアップ処理部35はリストア中フラグを参照して、リストア中であるか否かを判断するが、ここではリストア処理が行われていないので、ログデータを参照して、最後にリストア処理を行ってから所定の時間内であるか否か(リストア処理の直後であるか否か)を調べる。ここでも、リストア処理は行われていない段階で実行されていることから、バックアップ処理部35はリストア処理の直後でないと判断することとなる。
バックアップ処理部35は記憶部12内にバックアップ設定情報が存在するか否かを調べるが、ここでは未だバックアップ設定情報が生成されていないので、バックアップ設定情報がない。そこでバックアップ処理部35は領域形成処理部34に対してバックアップ領域を形成するよう指示する。
領域形成処理部34は利用者から識別名を入力するよう促す。このとき領域形成処理部34はデフォルトの識別名として、利用者のユーザ名(WindowsOSにおけるユーザ名)と情報処理装置10の名称(ホスト名)とを組み合わせた文字列を提示する。
利用者が識別名の入力を行うと、領域形成処理部34は当該入力された識別名で識別されるバックアップ領域が既にネットワークストレージ20のストレージ部23内の記憶領域に形成されているか否かを調べる。ここでは未だバックアップ領域が形成されていないので、領域形成処理部34は利用者から指示された識別名で識別されるバックアップ領域(当該識別名を名称とするディレクトリ)を形成することとなる。領域形成処理部34は、図8に例示するような、ネットワークストレージ20のストレージ識別情報と、形成したバックアップ領域の識別名とを含むバックアップ設定情報を、記憶部12のディスクデバイス122に格納する。
その後バックアップ処理部35は、予めバックアップの対象として設定されたディスクデバイス122内の領域に格納されたデータを、バックアップ設定情報に含まれるストレージ識別情報で識別されるネットワークストレージ20(対象ネットワークストレージ)の、バックアップ設定情報に含まれる識別名で識別されるバックアップ領域へ複写する処理(実処理)を開始する。この実処理は既に述べたように、robocopyなど標準のコマンドを用いて行うこととすればよい。
ここでバックアップの対象として設定されたディスクデバイス122内の領域は、WindowsOSにおいて標準に用意される「マイドキュメント」フォルダや、「マイピクチャ」フォルダなど、事前に定められたディレクトリとしておけばよい。なお、利用者が当該事前に定められたディレクトリのうち、バックアップの対象とするディレクトリを選択可能としておいてもよい。このようにして、一部のアプリケーションプログラムに固有のディレクトリ内のファイルがバックアップされないようにしているのは、アプリケーションプログラムのバージョンによって、その構成が変更され得るディレクトリ内のファイルをバックアップし、後にリストアすることによる不具合を防止する目的によるものである。従って、そのような目的がなければ、利用者が指定した任意のディレクトリをバックアップの対象として設定しても構わない。利用者がバックアップの対象とする領域を選択あるいは設定した場合、情報処理装置10は、当該選択あるいは設定された領域を特定する情報を、バックアップ設定情報に記述しておくこととし、その後のバックアップ処理ないしリストア処理において当該バックアップ設定情報を参照して、バックアップの対象となる領域を特定する。
バックアップ処理部35は、実処理の間、ネットワークストレージ20へのアクセスが不能になっていないかを繰り返し調べる。これは例えば情報処理装置10がノート型PC等可搬性がある場合に、ネットワークストレージ20の接続されたネットワークから切り離されて移動される場合があることを考慮したものである。ここではアクセスが不能になることはないものとすると、情報処理装置10は実処理が完了するまで待機して、複写処理を終了する。
そしてバックアップ処理部35は、処理が失敗したか否かを調べる。ここれ処理が失敗していなければ、バックアップ処理部35は、ログデータ(ネットワークストレージ20または情報処理装置10の少なくとも一方に格納される)に、現在の日時とバックアップ処理を行った旨の情報(今回のバックアップ処理によりデータを複写したバックアップ領域の識別名を含める)とを関連付けて追記し、処理を終了する。
その後情報処理装置10のディスクデバイス122が破損するなどして、ディスクデバイス122を交換し、改めて制御部11をバックアップ処理部35やリストア処理部36、ならびに初期処理部37等として機能させるモジュールを含んだプログラム(バックアッププログラム)のインストーラを利用者が実行した場合の動作について説明する。
インストーラにより情報処理装置10の記憶部12内に格納されたプログラムが実行されると、初期処理部37としての動作が開始される。すなわち初期処理部37からの指示により識別情報読取部31が記憶媒体からストレージ識別情報を読み出し、探索処理部32が、当該ストレージ識別情報をネットワークを介してブロードキャストする。
探索処理部32が当該ブロードキャストしたストレージ識別情報で識別されるネットワークストレージ20から、その通信部25に設定されたIPアドレス等、ネットワークアドレスを受信すると、接続処理部33が当該ネットワークアドレスを用いて、当該ネットワークアドレスで識別されるネットワークストレージ20との通信を確立する。
そして初期処理部37は、ネットワークストレージ20にログデータが格納されており、当該格納されているログデータ内に、少なくとも一度、バックアップ処理を行った旨の記録が含まれているか否かを調べる。ここではバックアップ履歴が存在することとなり、初期処理部37は、バックアップ処理とリストア処理とのどちらの処理を行うかを利用者に問い合せ、利用者が「リストア処理」を選択するとリストア処理部36に対してリストア処理を開始するよう指示する。
リストア処理部36はログデータを参照して、過去にバックアップの対象となったデータを複写したバックアップ領域の識別名の一覧を読み出して、利用者に提示する。
利用者がこの一覧のうちからリストア処理の対象とする識別名を選択すると、リストア処理部36はリストア中であることを案内する表示を開始し、リストア複写処理を開始する。この表示においてリストア処理部36は利用者に対してデータの操作を行わないよう案内する。
リストア処理部36は、リストア中であることを表すリストア中フラグを記憶部12内に設定し、さらに情報処理装置10のオペレーティングシステムに対して、省電力モード等、リストア処理が中断されるモードにならないよう要求する。
そしてリストア処理部36は、接続されたネットワークストレージ20(対象ネットワークストレージ)の、利用者から指定された識別名で識別されるバックアップ領域から予めバックアップの対象として設定されたディスクデバイス122内の領域へ複写する処理(リストア実処理)を開始する。ここでもリストア実処理は、robocopyコマンドを用いることで実現されてもよい。
またリストア処理部36は、リストア実処理が行われている間、ネットワークストレージ20へのアクセスが不能になっていないかを繰り返し調べる。これも情報処理装置10がノート型PC等可搬性がある場合に、ネットワークストレージ20の接続されたネットワークから切り離されて移動される場合があることを考慮したものである。ここではアクセスが不能になることはないものとすると、情報処理装置10はリストア実処理が完了するまで待機する。
その後、リストア実処理が完了したと判断すると、リストア処理部36は、処理結果の分析処理を開始し、リストア実処理においてデータがすべて複写されたか(robocopyを用いる場合、robocopyが複写できず処理をスキップしたデータの数と「失敗」とされたデータの数とがいずれも「0」であるか)を判断する。ここではリストア実処理においてデータがすべて複写されたと判断したものとすると、リストア処理部36は、情報処理装置10のオペレーティングシステムに対して、省電力モード等、リストア処理が中断されるモードになってもよい旨、通知し、リストア中であることを表すリストア中フラグをリセットして、リストア中でないことを表すものとする。
またリストア処理部36は、ログデータに現在の日時(図示しない計時用のICチップ等から取得する)とリストア処理を行った旨の情報とを関連付けて追記する。そしてリストア処理部36は、リストア処理に成功したことを表す表示を行って、処理を終了する。
この後、利用者がバックアップ処理を指示すると、バックアップ処理部35としての動作においてリストア処理の直後と判断されることとなり、利用者は新たなバックアップ領域の生成を求められることとなる。すなわち、リストア処理で用いられたバックアップ領域内のデータは、そのまま維持される。
[記憶媒体の新規作成]
なお、ここで述べた例ではリストア処理を行う場合に、再度、ネットワークストレージ20とともに提供された記憶媒体を用いるものとしたが、再度のインストールを行いたいときに記憶媒体を紛失している場合もあり得る。そこで本実施の形態の例では、ネットワークストレージ20に対して記憶媒体を接続して所定の操作を行うことで、ネットワークストレージ20のストレージ識別情報を書き込ませるようにしておく。またネットワークストレージ20に予め、バックアッププログラムのインストーラ、またはインストーラをネットワークを介して取得するためのURL等を記述した情報を格納しておき、ストレージ識別情報とともにインストーラまたは上記情報を記憶媒体に書き込ませるようにしておいてもよい。
利用者は記憶媒体を紛失した場合であっても、新規に用意した記憶媒体をネットワークストレージ20に接続して所定操作を行うことで、当該新規に用意した記憶媒体にストレージ識別情報やインストーラを格納させることができる。なお、インストーラそのものでなく、インストーラを取得するためのURLが記述された情報が格納されている場合、利用者は当該URLを参照してインストーラを取得して実行するようにすればよい。
[バージョン更新への対応]
また本実施の形態において、バックアップ処理を行ったときには、ネットワークストレージ20に、バックアップ処理部35に対応するモジュールを含んだバックアッププログラムのバージョン情報を記録することとしてもよい。具体的には、バックアップ処理部35がバックアップを行ったときに、データを複写したバックアップ領域内に自己のバージョン情報を記録することとすればよい。
この例では、その後、バックアップ処理やリストア処理が行われる際に、インストールされているバックアッププログラム(行おうとしているバックアップ処理やリストア処理に係るモジュールを含んだプログラム)のバージョンと、ネットワークストレージ20側に記録されているバージョン情報とを比較し、ネットワークストレージ20に記録されているバージョン情報がインストールされているバックアッププログラムのバージョンより新しい場合には、バックアッププログラムのアップデートを利用者に促すようにすればよい。あるいは、利用者にアップデートを促すまでもなく、人為的操作を経ずに、アップデート処理を行ってもよい。
このアップデート処理では、情報処理装置10は、予め定められたURL(最も新しいバックアッププログラムが提供されているURL)からインストーラをダウンロードして、当該インストーラを実行することとすればよい。
[ログデータの利用]
また本実施の形態において、情報処理装置10またはネットワークストレージ20は、利用者から所定の操作を受けると、記憶しているログデータを予め定められた宛先(カスタマーサービス等)や、予め設定された管理者端末等にネットワークを介してメール等にて送信するようにしてもよい。あるいは、情報処理装置10またはネットワークストレージ20は、利用者から上記所定の操作を受けたときに、記憶しているログデータを、記憶媒体インタフェース部16,26に接続された記憶媒体(ストレージ識別情報が格納されたものであってもよい)に書き込むこととしてもよい。
[パスワードの設定]
さらにここまでの説明において、バックアップ処理の際に、利用者にパスワードの設定を促すようにしてもよい。この場合、情報処理装置10は、複写されるデータを当該パスワードで復号可能な態様に暗号化しておく。そしてリストア処理の際に、利用者にパスワードの入力を促し、入力されたパスワードによってリストア処理時にディスクデバイス122に複写するデータの復号を試みる。ここで復号ができなければ、パスワードが誤っている旨報知して、再度パスワードの入力を促すようにしておけばよい。
[複数のネットワークストレージを用いる場合]
またここまでの説明では、記憶媒体に格納され、バックアップ設定情報に記録されるストレージ識別情報は一つだけであるものとしてきたが、本実施の形態はこれに限られない。例えばネットワーク上にネットワークストレージ20が複数接続されている場合、ストレージ識別情報は複数あってもよい。この場合、どのネットワークストレージ20に対してバックアップ処理を行うかを利用者に予め選択させておき、選択されなかったネットワークストレージ20のストレージ識別情報はバックアップ設定情報から削除しておく。
なお利用者が複数のネットワークストレージ20を、バックアップ処理で利用するネットワークストレージ20として選択した場合、バックアップ処理においては選択された複数のネットワークストレージ20のそれぞれに対して、バックアップの対象となった領域のデータを複写する(同じ内容をそれぞれ複写する)ものとしてもよいし、ネットワークストレージ20ごとに、バックアップの対象とする領域を設定してもよい。
ネットワークストレージ20ごとに、バックアップの対象とする領域を設定する場合、バックアップ設定情報としてネットワークストレージ20のストレージ識別情報と、当該ネットワークストレージ20内に形成したバックアップ領域の識別名との組に対して、バックアップの対象とする情報処理装置10の記憶部12内の領域を特定する情報を関連付けて記録しておく。
そしてバックアップ処理の際には、当該バックアップ設定情報の記録を順次参照しながら、バックアップの対象となった領域内のデータを、当該バックアップの対象となった領域を特定する情報に関連付けられた組により識別されるネットワークストレージ20内の識別名で識別される領域へ複写することとする。
[仮想のネットワークストレージ]
また、ネットワークストレージ20を、複数の仮想的なネットワークストレージ20として動作させることができる場合がある。具体的にはネットワークストレージ20としての動作を行うサーバを、複数並列的に動作させる場合が挙げられる。この場合、各サーバにはそれぞれ予め定められた利用可能なポート番号のうちから固有のポート番号が割り当てられ、各サーバに接続するときには、ネットワークストレージ20の通信部25に割り当てられたIPアドレス等のネットワークアドレスだけでなく、サーバごとのポート番号の指定も要する。
そこでこの例の場合には、ストレージ識別情報として、ネットワークストレージ20のホスト名と使用可能なポート番号との組み合わせのすべてを記憶媒体に格納しておけばよい。さらに、ネットワークストレージ20に記憶媒体を接続して所定の操作を行ったときに、ネットワークストレージ20が、利用者において実際に起動しているサーバのポート番号と、ネットワークストレージ20のホスト名との組み合わせをストレージ識別情報として記憶媒体に格納するようにしてもよい。
[本実施の形態の効果]
本実施の形態によれば、当初ネットワーク接続情報が正しく設定されたコンピュータがなく、利用者が特別な知識を有していない場合であっても、ネットワークストレージへのバックアップの設定を容易にできる。