IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7435292データ処理装置及びデータ処理プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】データ処理装置及びデータ処理プログラム
(51)【国際特許分類】
   G06F 11/14 20060101AFI20240214BHJP
   G06F 3/06 20060101ALI20240214BHJP
【FI】
G06F11/14 669
G06F3/06 301W
G06F3/06 304F
【請求項の数】 6
(21)【出願番号】P 2020104444
(22)【出願日】2020-06-17
(65)【公開番号】P2021197007
(43)【公開日】2021-12-27
【審査請求日】2023-03-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】曽我 勝好
【審査官】漆原 孝治
(56)【参考文献】
【文献】特開2010-152781(JP,A)
【文献】特開2011-039589(JP,A)
【文献】特開2011-237950(JP,A)
【文献】特開2017-156914(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/14
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
バックアップ装置にバックアップされた複数の単位領域データを最後から取り出してリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納する格納部と、
前記格納部により格納された複数の単位領域データを先頭から取り出し、リストア先の不揮発性記憶装置において、バックアップ元の不揮発性記憶装置で格納されていた位置と同じ位置に復元する復元部と
を有することを特徴とするデータ処理装置。
【請求項2】
前記格納部は、前記複数の単位領域データについて前記リストア先の不揮発性記憶装置と前記バックアップ元の不揮発性記憶装置で共通な空き領域に格納可能な場合には該共通な空き領域に格納し、該共通な空き領域に格納可能でない場合には前記複数の単位領域データを最後から取り出して前記リストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納し、
前記復元部は、前記格納部により前記複数の単位領域データが前記共通な空き領域に格納された場合には、該複数の単位領域データを該共通な空き領域から取り出し、前記同じ位置に復元することを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記格納部は、前記複数の単位領域データをリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納する場合に、前記リストア先の不揮発性記憶装置と前記バックアップ元の不揮発性記憶装置で共通な空き領域に優先して格納することを特徴とする請求項1又は2に記載のデータ処理装置。
【請求項4】
前記格納部は、単位領域データが前記バックアップ元の不揮発性記憶装置において格納されていた元領域が前記リストア先の不揮発性記憶装置で空いている場合に、該単位領域データを前記リストア先の元領域に格納し、残りの単位領域データを前記共通な空き領域に格納することを特徴とする請求項2に記載のデータ処理装置。
【請求項5】
前記復元部は、前記格納部により前記リストア先の不揮発性記憶装置に格納先として割り当てられた空き領域に最後から格納された複数の単位領域データのうち他の単位領域データの復元により上書きされる単位領域データをメモリに一時退避した後で前記他の単位領域データを復元することを特徴とする請求項1~4のいずれか1つに記載のデータ処理装置。
【請求項6】
コンピュータに、
バックアップ装置にバックアップされた複数の単位領域データを最後から取り出してリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納し、
格納した複数の単位領域データを先頭から取り出し、リストア先の不揮発性記憶装置において、バックアップ元の不揮発性記憶装置で格納されていた位置と同じ位置に復元する 処理を実行させることを特徴とするデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置及びデータ処理プログラムに関する。
【背景技術】
【0002】
ディスク等の不揮発性記憶装置のイメージをバックアップする方法として、ファイルシステムで使用中のブロックのみをバックアップする方法がある。図12は、使用中のブロックを管理するための管理情報の一例を示す図である。図12に示すように、ファイルシステムは、管理情報91を用いてディスク92の使用中のブロックを管理する。図12では、ディスク92は、管理情報91、File1のデータ及びFile2のデータを記憶し、これらを記憶するブロックが使用中のブロックである。
【0003】
管理情報91は、ファイル名と開始位置とサイズを対応付ける情報である。ファイル名は、ファイルを識別する名前である。開始位置は、ディスク92におけるファイルの先頭を示す。図12では、開始位置はLBA(Logical Block Addressing)で示される。サイズは、ファイルの大きさをブロック数で示す。例えば、File1は、開始位置がLBA1000でサイズが10ブロックである。
【0004】
バックアッププログラムは、管理情報91を用いてディスク92のイメージをバックアップする。図13は、ディスク92のバックアップ/リストアを説明するための図である。図13に示すように、バックアッププログラムは、バックアップ元ディスク92aの使用中ブロックをファイルサーバのバックアップファイル93にバックアップする。バックアップファイル93では、容量削減のため、各ブロックのデータは圧縮されて記憶される。
【0005】
リストアプログラムは、ファイルサーバからバックアップファイル93をダウンロードしてバックアップファイル93のデータを伸張し、リストア先ディスク92bにリストアする。リストアプログラムは、バックアップ元ディスク92aにおける位置と同じ位置に各ブロックをリストアする。
【0006】
このように、バックアッププログラムはバックアップ元ディスク92aから使用中ブロックのみをバックアップし、リストアプログラムは使用中ブロックのみをリストア先ディスク92bにリストアする。したがって、バックアッププログラム/リストアプログラムは、全てのブロックをバックアップ/リストアする場合と比べて、バックアップ/リストアするデータ量及び時間を削減することができる。
【0007】
なお、バックアップに関連する従来技術として、バックアップ容量の圧迫を防止するとともに、データのバックアップ及びリストアの時間を短縮するストレージシステムがある。このストレージシステムでは、制御装置が、データとデータを特定するためのキー情報との組合せを、上書き及び削除せずに追加のみでストレージ装置に書き込むとともに、ストレージ装置に記憶されているデータに対応するキー情報の一覧を含むメタファイルを記憶する。そして、バックアップ管理装置が、制御装置に記憶されているメタファイルを所定のバックアップ記憶部にバックアップする。
【0008】
また、ユーザ種別に応じたアクセス権限を超えたデータ操作を回避しつつ、最新のデータを復元できる電子機器がある。この電子機器では、バックアップ処理部は、記憶部に記憶されたバックアップ対象の全てのデータをバックアップし、復元処理部は、ユーザの指示に応じて、バックアップデータにより記憶部のデータを復元する。復元処理部は、復元を指示したユーザの、記憶部の各種データへのアクセス権限に応じたユーザ種別に基づいて、バックアップデータにより記憶部に復元させるデータの種類を決定する。
【先行技術文献】
【特許文献】
【0009】
【文献】特開2013-228778号公報
【文献】特開2012-73770号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
図14は、図13に示したリストアを説明するための図である。図14に示すように、バックアップ元マシン94aが有するバックアップ元ディスク92aの使用中ブロックは、ファイルサーバ95が有するディスク96のバックアップファイル93にバックアップされる。そして、バックアップファイル93は、リストア先マシン94bが有するリストア先ディスク92bとは別の一時ディスク92cにダウンロードされ、一時ディスク92cからリストア先ディスク92bにリストアされる。ただし、一時ディスク92cを用意できない場合には、このようなリストアを行うことはできない。
【0011】
そこで、一時ディスク92cを使用しないでリストアを行うことが考えられる。図15は、一時ディスク92cを使用しないリストアを説明するための図である。図15に示すように、一時ディスク92cを使用しない場合には、バックアップファイル93は、リストア先ディスク92bにダウンロードされてリストアされる。
【0012】
しかしながら、バックアップファイル93をリストア先ディスク92bにダウンロードすると、リストアによってバックアップデータへの上書きが行われることがある。図16A及び図16Bは、リストアによってバックアップデータが上書きされる例を示す図である。図16A及び図16Bにおいて、網掛けのある四角は使用中ブロックを示し、網掛けのない四角は未使用ブロックを示す。
【0013】
図16Aに示すように、バックアップ元ディスク92aでは、ブロック#0~ブロック#9の10個のブロックがデータa~データjにより使用中であり、ブロック#10~ブロック#20の11個のブロックが未使用である。ここで、ブロック#n(nは0以上20以下の整数)は、LBAがnのブロックである。また、バックアップファイル93では、データa~データjはそれぞれ圧縮されてデータa’~データj’として記憶される。データa’~データj’の大きさは、ブロックの大きさの1/2である。
【0014】
また、リストア先ディスク92bでは、ブロック#0~ブロック#1の2個のブロックがデータA~データBにより使用中であり、ブロック#5~ブロック#8の4個のブロックがデータC~データFにより使用中である。ブロック#12~ブロック#15の4個のブロックがデータG~データJにより使用中であり、他の11個のブロックは未使用である。
【0015】
バックアップデータは、リストア先ディスク92bにおいて使用中のブロックが上書きされないように、未使用ブロックにダウンロードされる。具体的には、データa’~データf’は、リストア先ディスク92bのブロック#2~ブロック#4にダウンロードされ、データg’~データj’は、リストア先ディスク92bのブロック#9~ブロック#10にダウンロードされる。なお、バックアップデータは、ダウンロード時にはリストア先ディスク92bの使用中ブロックに上書きされてはならない。ダウンロード後にリストア先のコンピュータは再起動され、ダウンロードされたデータは伸張されてリストアされる。
【0016】
具体的には、図16Bに示すように、データa’がブロック#2から読み出されて伸張され、ブロック#0にデータaがリストアされ、データb’がブロック#2から読み出されて伸張され、ブロック#1にデータbがリストアされる。また、データc’がブロック#3から読み出されて伸張され、ブロック#2にデータcがリストアされ、データd’がブロック#3から読み出されて伸張され、ブロック#3にデータdがリストアされる。そして、データe’がブロック#4から読み出されて伸張され、ブロック#4にデータeがリストアされると、データf’への上書きが行われてデータf’が破壊される。このため、データfはリストアされない。
【0017】
本発明は、1つの側面では、リストアによるバックアップデータへの上書きを防ぐことを目的とする。
【課題を解決するための手段】
【0018】
1つの態様では、データ処理装置は、格納部と復元部を有する。前記格納部は、バックアップ装置にバックアップされた複数の単位領域データを最後から取り出してリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納する。前記復元部は、前記格納部により格納された複数の単位領域データを先頭から取り出し、リストア先の不揮発性記憶装置において、バックアップ元の不揮発性記憶装置で格納されていた位置と同じ位置に復元する。
【発明の効果】
【0019】
1つの側面では、本発明は、リストアによるバックアップデータへの上書きを防ぐことができる。
【図面の簡単な説明】
【0020】
図1図1は、実施例に係るデータ処理システムの構成を示す図である。
図2図2は、バックアップファイルの一例を示す図である。
図3A図3Aは、バックアップ元のシステムディスクとリストア先のシステムディスクに共通の未使用ブロックにバックアップファイルのデータを格納する例を示す図である。
図3B図3Bは、バックアップファイルの最後からブロックデータを取り出してリストア先のシステムディスクの空き領域の最後から格納する例を示す図である。
図3C図3Cは、バックアップファイルの最後から取り出したブロックデータを共通の未使用ブロックを優先してリストア先のシステムディスクの最後から格納する例を示す図である。
図3D図3Dは、リストア先の共通でない未使用ブロックが、バックアップ元では使用中ブロックだった場合、バックアップ元の使用中ブロックのデータをリストア先の同じブロックに格納する例を示す図である。
図3E図3Eは、バックアップデータを一時的にメモリに退避しながらリストアを行う例を示す図である。
図4A図4Aは、未使用ブロック情報の例を示す図である。
図4B図4Bは、使用中ブロック情報の例を示す図である。
図5図5は、バックアップ処理部によるバックアップ処理のフローを示すフローチャートである。
図6図6は、ダウンロード処理部によるダウンロード処理のフローを示すフローチャートである。
図7図7は、リストア処理部によるリストア処理のフローを示すフローチャートである。
図8図8は、部分リストア処理のフローを示すフローチャートである。
図9図9は、非共通格納処理のフローを示すフローチャートである。
図10図10は、共通格納処理のフローを示すフローチャートである。
図11図11は、リストア先マシンのハードウェア構成を示す図である。
図12図12は、使用中のブロックを管理するための管理情報の一例を示す図である。
図13図13は、ディスクのバックアップ/リストアを説明するための図である。
図14図14は、図13に示したリストアを説明するための図である。
図15図15は、一時ディスクを使用しないリストアを説明するための図である。
図16A図16Aは、リストアによってバックアップデータが上書きされる例を示す第1の図である。
図16B図16Bは、リストアによってバックアップデータが上書きされる例を示す第2の図である。
【発明を実施するための形態】
【0021】
以下に、本願の開示するデータ処理装置及びデータ処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例
【0022】
まず、実施例に係るデータ処理システムの構成について説明する。図1は、実施例に係るデータ処理システムの構成を示す図である。図1に示すように、実施例に係るデータ処理システム1は、バックアップ元マシン2と、ファイルサーバ3と、リストア先マシン4とを有する。
【0023】
バックアップ元マシン2は、システムディスク21とバックアップ処理部22とを有し、システムディスク21がバックアップされるコンピュータである。システムディスク21は、バックアップ元マシン2が動作するために必要なデータを記憶する不揮発性記憶装置である。バックアップ処理部22は、システムディスク21において使用中のブロックのデータを圧縮してファイルサーバ3にバックアップする。なお、圧縮はファイルサーバ3により行われてもよい。
【0024】
ファイルサーバ3は、バックアップ元マシン2とリストア先マシン4で共有されるファイルを記憶するコンピュータである。ファイルサーバ3は、バックアップファイル31とファイルサーバ処理部32とを有する。
【0025】
バックアップファイル31は、システムディスク21において使用中のブロックのデータをバックアップデータとして記憶するファイルである。システムディスク21において使用中のブロックのデータは圧縮されてバックアップファイル31に記憶される。バックアップファイル31は、バックアップ元マシン2とリストア先マシン4で共有される。
【0026】
図2は、バックアップファイル31の一例を示す図である。図2に示すように、バックアップファイル31は、LBAと、ブロック数と、ブロックのデータとを対応付けて記憶する。LBAは、先頭ブロックの位置を示す。ブロック数は、バックアップされたデータの大きさを示す。ブロックのデータは、バックアップされたデータである。例えば、管理情報は、LBAが「0」であるブロックを先頭に100ブロックの大きさである。
【0027】
ファイルサーバ処理部32は、システムディスク21において使用中のブロックのデータをバックアップ元マシン2から受信してバックアップファイル31に格納する。また、ファイルサーバ処理部32は、バックアップファイル31が記憶するバックアップデータをリストア先マシン4に送信する。
【0028】
リストア先マシン4は、システムディスク41とダウンロード処理部42とリストア処理部43とを有し、バックアップファイル31が記憶するバックアップデータがシステムディスク41にリストアされるコンピュータである。システムディスク41は、システムディスク21のイメージがリストアされる不揮発性記憶装置である。
【0029】
ダウンロード処理部42は、バックアップファイル31が記憶するバックアップデータをファイルサーバ3からダウンロードし、システムディスク41に格納する。リストア処理部43は、ダウンロード処理部42によりダウンロードされたバックアップデータを伸張してシステムディスク41にリストアする。
【0030】
図3A図3Eは、リストア先マシン4によるダウンロードとリストアを説明するための図である。図3Aは、バックアップ元のシステムディスク21とリストア先のシステムディスク41に共通の未使用ブロック(以降、「共通の未使用ブロック」と記載)にバックアップファイル31のデータを格納する例を示す。
【0031】
図3Aに示すように、ダウンロード処理部42は、バックアップ元の使用中ブロックの位置はリストア中に上書きされるので、バックアップファイル31のデータを格納しない。また、ダウンロード処理部42は、現状の使用中ブロックには、バックアップファイル31のデータを格納できない。このため、ダウンロード処理部42は、共通の未使用ブロックにバックアップファイル31のデータを格納する。図3Aでは、ブロック#10~ブロック#11とブロック#16~ブロック#20が共通の未使用ブロックである。
【0032】
そこで、ダウンロード処理部42は、バックアップファイル31のデータa’~データd’をリストア先のシステムディスク41のブロック#10~ブロック#11に格納する。また、ダウンロード処理部42は、バックアップファイル31のデータe’~データj’をリストア先のシステムディスク41のブロック#16~ブロック#18に格納する。
【0033】
そして、リストア処理部43は、データa’をブロック#10から読み出し、伸張してデータaを生成し、ブロック#0にリストアし(t1)、データb’をブロック#10から読み出し、伸張してデータbを生成し、ブロック#1にリストアする(t2)。そして、リストア処理部43は、データc’をブロック#11から読み出し、伸張してデータcを生成し、ブロック#2にリストアし(t3)、データd’をブロック#11から読み出し、伸張してデータdを生成し、ブロック#3にリストアする(t4)。
【0034】
そして、リストア処理部43は、データe’をブロック#16から読み出し、伸張してデータeを生成し、ブロック#4にリストアし(t5)、データf’をブロック#16から読み出し、伸張してデータfを生成し、ブロック#5にリストアする(t6)。そして、リストア処理部43は、データg’をブロック#17から読み出し、伸張してデータgを生成し、ブロック#6にリストアし(t7)、データh’をブロック#17から読み出し、伸張してデータhを生成し、ブロック#7にリストアする(t8)。そして、リストア処理部43は、データi’をブロック#18から読み出し、伸張してデータiを生成し、ブロック#8にリストアし(t9)、データj’をブロック#18から読み出し、伸張してデータjを生成し、ブロック#9にストアする(t10)。
【0035】
このように、ダウンロード処理部42が共通の未使用ブロックにバックアップファイル31のデータを格納するので、リストア処理部43はバックアップデータへの上書きをすることなくリストアを行うことができる。
【0036】
なお、ダウンロード処理部42は、未使用ブロック情報を作成することで、共通の未使用ブロックを特定する。図4Aは、未使用ブロック情報の例を示す図である。図4Aに示すように、未使用ブロック情報は、LBAとブロック数を未使用領域毎に対応付ける情報である。LBAは、未使用領域の先頭位置を示す。ブロック数は、未使用領域の大きさを示す。
【0037】
ダウンロード処理部42は、使用中ブロック情報を作成し、使用中ブロック情報と総ブロック数から、共通の未使用ブロックを特定してもよい。図4Bは、使用中ブロック情報の例を示す図である。図4Bに示すように、使用中ブロック情報は、LBAとブロック数を使用領域毎に対応付ける情報である。LBAは、使用領域の先頭位置を示す。ブロック数は、使用領域の大きさを示す。
【0038】
共通の未使用ブロックにバックアップファイル31の全データを格納することができない場合には、ダウンロード処理部42は、バックアップファイル31の最後からブロックデータを取り出してリストア先のシステムディスク41の空き領域の最後から格納する。図3Bは、バックアップファイル31の最後からブロックデータを取り出してリストア先のシステムディスク41の空き領域の最後から格納する例を示す。
【0039】
図3Bに示すように、バックアップ元のシステムディスク21の未使用ブロックは、ブロック#5~ブロック#9とブロック#15~ブロック#20である。また、リストア先のシステムディスク41の未使用ブロックは、ブロック#2~ブロック#4とブロック#9~ブロック#13とブロック#18~ブロック#20である。したがって、共通の未使用ブロックは、ブロック#9と、ブロック#18~ブロック#20の4ブロックである。一方、バックアップファイル31には5ブロックの大きさのデータa’~データj’があり、データa’~データj’全てを共通の未使用ブロックに格納することはできない。
【0040】
そこで、ダウンロード処理部42は、データj’から順番にデータa’までをシステムディスク41の未使用ブロックの最後から格納する。具体的には、ダウンロード処理部42は、データj’をシステムディスク41のブロック#20の後半分に格納し(t11)、データi’をシステムディスク41のブロック#20の前半分に格納する(t12)。そして、ダウンロード処理部42は、データh’をシステムディスク41のブロック#19の後半分に格納し(t13)、データg’をシステムディスク41のブロック#19の前半分に格納する(t14)。そして、ダウンロード処理部42は、データf’をシステムディスク41のブロック#18の後半分に格納し(t15)、データe’をシステムディスク41のブロック#18の前半分に格納する(t16)。
【0041】
そして、ダウンロード処理部42は、データd’をシステムディスク41のブロック#13の後半分に格納し(t17)、データc’をシステムディスク41のブロック#13の前半分に格納する(t18)。そして、ダウンロード処理部42は、データb’をシステムディスク41のブロック#12の後半分に格納し(t19)、データa’をシステムディスク41のブロック#12の前半分に格納する(t20)。
【0042】
そして、リストア処理部43は、データa’をブロック#12から読み出し、伸張してデータaを生成し、ブロック#0にリストアし(t21)、データb’をブロック#12から読み出し、伸張してデータbを生成し、ブロック#1にリストアする(t22)。そして、リストア処理部43は、データc’をブロック#13から読み出し、伸張してデータcを生成し、ブロック#2にリストアし(t23)、データd’をブロック#13から読み出し、伸張してデータdを生成し、ブロック#3にリストアする(t24)。
【0043】
そして、リストア処理部43は、データe’をブロック#18から読み出し、伸張してデータeを生成し、ブロック#4にリストアし(t25)、データf’をブロック#18から読み出し、伸張してデータfを生成し、ブロック#10にリストアする(t26)。そして、リストア処理部43は、データg’をブロック#19から読み出し、伸張してデータgを生成し、ブロック#11にリストアし(t27)、データh’をブロック#19から読み出し、伸張してデータhを生成し、ブロック#12にリストアする(t28)。そして、リストア処理部43は、データi’をブロック#20から読み出し、伸張してデータiを生成し、ブロック#13にリストアし(t29)、データj’をブロック#20から読み出し、伸張してデータjを生成し、ブロック#14にリストアする(t30)。
【0044】
このように、ダウンロード処理部42は、バックアップファイル31の最後からブロックデータを取り出して伸張し、リストア先のシステムディスク41の空き領域の最後から格納する。したがって、リストア処理部43は、バックアップデータへの上書きをすることなくリストアを行うことができる。なお、ダウンロード処理部42は、リストア先のシステムディスク41の空き領域の最後から格納する代わりに、リストア先のシステムディスク41に格納先として割り当てられた空き領域の最後から格納してもよい。
【0045】
また、ダウンロード処理部42は、バックアップファイル31の最後からブロックデータを取り出してリストア先のシステムディスク41の空き領域の最後から格納する場合に、共通の未使用ブロックを優先して最後から格納してもよい。図3Cは、バックアップファイル31の最後から取り出したブロックデータを共通の未使用ブロックを優先してリストア先のシステムディスク41の最後から格納する例を示す。
【0046】
図3Cに示すように、バックアップ元のシステムディスク21の未使用ブロックは、ブロック#5~ブロック#9とブロック#17~ブロック#20である。また、リストア先のシステムディスク41の未使用ブロックは、ブロック#2~ブロック#4とブロック#9~ブロック#13とブロック#20である。したがって、共通の未使用ブロックは、ブロック#9と、ブロック#20の2ブロックである。一方、バックアップファイル31には6ブロックの大きさのデータa’~データl’があり、データa’~データl’全てを共通の未使用ブロックに格納することはできない。
【0047】
そこで、ダウンロード処理部42は、データl’から順番にデータa’までを共通の未使用ブロックを優先してシステムディスク41の未使用ブロックの最後から格納する。具体的には、ダウンロード処理部42は、データl’をシステムディスク41のブロック#20の後半分に格納し(t31)、データk’をシステムディスク41のブロック#20の前半分に格納する(t32)。そして、ダウンロード処理部42は、データj’をシステムディスク41のブロック#9の後半分に格納し(t33)、データi’をシステムディスク41のブロック#9の前半分に格納する(t34)。
【0048】
そして、ダウンロード処理部42は、データh’をシステムディスク41のブロック#13の後半分に格納し(t35)、データg’をシステムディスク41のブロック#13の前半分に格納する(t36)。そして、ダウンロード処理部42は、データf’をシステムディスク41のブロック#12の後半分に格納し(t37)、データe’をシステムディスク41のブロック#12の前半分に格納する(t38)。
【0049】
そして、ダウンロード処理部42は、データd’をシステムディスク41のブロック#11の後半分に格納し(t39)、データc’をシステムディスク41のブロック#11の前半分に格納する(t40)。そして、ダウンロード処理部42は、データb’をシステムディスク41のブロック#10の後半分に格納し(t41)、データa’をシステムディスク41のブロック#10の前半分に格納する(t42)。
【0050】
そして、リストア処理部43は、データa’をブロック#10から読み出し、伸張してデータaを生成し、ブロック#0にリストアし(t51)、データb’をブロック#10から読み出し、伸張してデータbを生成し、ブロック#1にリストアする(t52)。そして、リストア処理部43は、データc’をブロック#11から読み出し、伸張してデータcを生成し、ブロック#2にリストアし(t53)、データd’をブロック#11から読み出し、伸張してデータdを生成し、ブロック#3にリストアする(t54)。そして、リストア処理部43は、データe’をブロック#12から読み出し、伸張してデータeを生成し、ブロック#4にリストアし(t55)、データf’をブロック#12から読み出し、伸張してデータfを生成し、ブロック#10にリストアする(t56)。
【0051】
そして、リストア処理部43は、データg’をブロック#13から読み出し、伸張してデータgを生成し、ブロック#11にリストアし(t57)、データh’をブロック#13から読み出し、伸張してデータhを生成し、ブロック#12にリストアする(t58)。そして、リストア処理部43は、データi’をブロック#9から読み出し、伸張してデータiを生成し、ブロック#13にリストアし(t59)、データj’をブロック#9から読み出し、伸張してデータjを生成し、ブロック#14にリストアする(t60)。そして、リストア処理部43は、データk’をブロック#20から読み出し、伸張してデータkを生成し、ブロック#15にリストアし(t61)、データl’をブロック#20から読み出し、伸張してデータlを生成し、ブロック#16にリストアする(t62)。
【0052】
このように、ダウンロード処理部42が共通の未使用ブロックを優先してバックアップデータを格納するので、リストア処理部43はバックアップデータへの上書きをすることなくリストアを行うことができる。
【0053】
また、共通の未使用ブロックに全バックアップデータを格納することができない場合に、ダウンロード処理部42は、バックアップデータを減らしてもよい。具体的には、ダウンロード処理部42は、リストア先の共通でない未使用ブロックが、バックアップ元では使用中ブロックだった場合、バックアップ元の使用中ブロックのデータをリストア先の共通でない未使用ブロックに格納する。そして、ダウンロード処理部42は、残りのバックアップデータを共通の未使用ブロックに格納する。
【0054】
図3Dは、リストア先の共通でない未使用ブロックが、バックアップ元では使用中ブロックだった場合、バックアップ元の使用中ブロックのデータをリストア先の同じブロックに格納する例を示す。
【0055】
図3Dに示すように、バックアップ元のシステムディスク21の未使用ブロックは、ブロック#5~ブロック#9とブロック#15~ブロック#20である。また、リストア先のシステムディスク41の未使用ブロックは、ブロック#2~ブロック#4とブロック#9~ブロック#13とブロック#18~ブロック#20である。したがって、共通の未使用ブロックは、ブロック#9と、ブロック#18~ブロック#20の4ブロックである。一方、バックアップファイル31には5ブロックの大きさのデータa’~データj’があり、データa’~データj’全てを共通の未使用ブロックに格納することはできない。
【0056】
そこで、ダウンロード処理部42は、リストア先の共通でない未使用ブロックであるブロック#2~ブロック#4がバックアップ元ではデータc~データeを記憶していたので、データc’~データe’を伸張してデータc~データeを生成する。そして、ダウンロード処理部42は、リストア先のブロック#2~ブロック#4にデータc~データeを格納する。同様に、ダウンロード処理部42は、リストア先の共通でない未使用ブロックであるブロック#10~ブロック#13がバックアップ元ではデータf~データiを記憶していたので、データf’~データi’を伸張してデータf~データiを生成する。そして、ダウンロード処理部42は、リストア先のブロック#10~ブロック#13にデータf~データiを格納する。
【0057】
そして、ダウンロード処理部42は、残りのバックアップデータを共通の未使用ブロックに格納する。すなわち、ダウンロード処理部42は、データa’~データb’をリストア先のブロック#9に格納し、データj’をリストア先のブロック#18に格納する。
【0058】
そして、リストア処理部43は、データa’をブロック#9から読み出し、伸張してデータaを生成し、ブロック#0にリストアし(t71)、データb’をブロック#9から読み出し、伸張してデータbを生成し、ブロック#1にリストアする(t72)。そして、リストア処理部43は、データj’をブロック#18から読み出し、伸張してデータjを生成し、ブロック#14にリストアする(t73)。
【0059】
このように、ダウンロード処理部42は、バックアップ元の使用中ブロックのデータをリストア先の共通でない未使用ブロックに格納することで、共通の未使用ブロックに格納するバックアップデータを減らすことができる。
【0060】
図3A図3Dのいずれの方法でバックアップファイル31をダウンロードしてもリストア時にバックアップデータへの上書きが発生する場合には、リストア処理部43は、バックアップデータを一時的にメモリに退避しながらリストアを行う。図3Eは、バックアップデータを一時的にメモリに退避しながらリストアを行う例を示す。
【0061】
図3Eに示すように、バックアップ元のシステムディスク21の未使用ブロックは、ブロック#5~ブロック#9とブロック#17~ブロック#20である。また、リストア先のシステムディスク41の未使用ブロックは、ブロック#1~ブロック#4とブロック#10~ブロック#14である。したがって、図3Eでは、共通の未使用ブロックは1つもない。
【0062】
そこで、ダウンロード処理部42は、データl’から順番にデータa’までをシステムディスク41の未使用ブロックの最後から格納する。具体的には、ダウンロード処理部42は、データl’~データc’をシステムディスク41のブロック#14の後半分からブロック#10の前半分に最後から格納する。また、ダウンロード処理部42は、データb’~データa’をシステムディスク41のブロック#4の後半分から前半分に最後から格納する。
【0063】
そして、リストア処理部43は、データa’をブロック#4から読み出し、伸張してデータaを生成し、ブロック#0にリストアし(t81)、データb’をブロック#4から読み出し、伸張してデータbを生成し、ブロック#1にリストアする(t82)。そして、リストア処理部43は、データc’をブロック#10から読み出し、伸張してデータcを生成し、ブロック#2にリストアし(t83)、データd’をブロック#10から読み出し、伸張してデータdを生成し、ブロック#3にリストアする(t84)。
【0064】
そして、リストア処理部43は、データe’をブロック#11から読み出し、伸張してデータeを生成し、ブロック#4にリストアし(t85)、データf’をブロック#11から読み出し、伸張してデータfを生成し、ブロック#10にリストアする(t86)。そして、リストア処理部43は、データg’をブロック#12から読み出し、伸張してデータgを生成し、ブロック#11にリストアし(t87)、データh’をブロック#12から読み出し、伸張してデータhを生成し、ブロック#12にリストアする(t88)。
【0065】
そして、リストア処理部43は、データi’をブロック#13から読み出してメモリに一時退避し(t89)、データj’をブロック#13から読み出してメモリに一時退避する(t90)。そして、リストア処理部43は、メモリに一時退避したデータi’を伸張してデータiを生成し(t91)、ブロック#13にリストアする(t91’)。
【0066】
そして、リストア処理部43は、データk’をブロック#14から読み出してメモリに一時退避し(t92)、データl’をブロック#14から読み出してメモリに一時退避する(t93)。そして、リストア処理部43は、メモリに一時退避したデータj’を伸張してデータjを生成し(t94)、ブロック#14にリストアする(t94’)。
【0067】
そして、リストア処理部43は、メモリに一時退避したデータk’を伸張してデータkを生成し(t95)、ブロック#15にリストアする(t95’)。そして、リストア処理部43は、メモリに一時退避したデータl’を伸張してデータlを生成し(t96)、ブロック#16にリストアする(t96’)。
【0068】
このように、リストア処理部43は、未処理のバックアップデータをメモリに一時退避することで、未処理のバックアップデータへの他のデータのリストアによる上書きを防ぐことができる。
【0069】
次に、データ処理システム1による処理のフローについて図5図10を用いて説明する。図5は、バックアップ処理部22によるバックアップ処理のフローを示すフローチャートである。バックアップ処理部22は、スケジュール登録や手動操作により、ユーザの指定したタイミングでバックアップ処理を開始する。
【0070】
図5に示すように、バックアップ処理部22は、バックアップ元マシン2のシステムディスク21について、使用中ブロックの情報(使用中ブロックの位置及びサイズ)を検索する(ステップS1)。そして、バックアップ処理部22は、検索した情報に基づいて、システムディスク21から、使用中ブロックのデータを読み込み(ステップS2)、読み込んだデータを圧縮する(ステップS3)。
【0071】
そして、バックアップ処理部22は、圧縮したデータをファイルサーバ3のバックアップファイル31に書き出す(ステップS4)。そして、バックアップ処理部22は、全使用中ブロックを処理したか否かを判定し(ステップS5)、未処理の使用中ブロックがある場合には、ステップS2へ戻り、全使用中ブロックを処理した場合には、バックアップ処理を終了する。
【0072】
図6は、ダウンロード処理部42によるダウンロード処理のフローを示すフローチャートである。図6に示すように、ダウンロード処理部42は、リストア先マシン4のシステムディスク41の管理情報を参照し、リストア先の未使用ブロック情報を作成する(ステップS11)。そして、ダウンロード処理部42は、バックアップファイル31を参照し、バックアップ元の使用中ブロック情報を作成する(ステップS12)。
【0073】
そして、ダウンロード処理部42は、システムディスク41の未使用ブロック情報とシステムディスク21の使用中ブロック情報に基づいて、共通の未使用ブロック情報を作成する(ステップS13)。そして、ダウンロード処理部42は、バックアップデータのサイズと共通の未使用ブロックのサイズを比較し、バックアップデータ全体を共通の未使用ブロックに格納できるか否かを判定する(ステップS14)。
【0074】
そして、バックアップデータ全体を共通の未使用ブロックに格納できる場合には、ダウンロード処理部42は、バックアップデータ全体について、共通の未使用ブロックに格納する共通格納処理を行い(ステップS15)、ダウンロード処理を終了する。
【0075】
一方、バックアップデータ全体の共通の未使用ブロックへの格納ができない場合には、ダウンロード処理部42は、リストア先の共通でない未使用ブロックに対してバックアップ元の使用中ブロックのデータを格納する部分リストア処理を行う(ステップS16)。そして、ダウンロード処理部42は、残りのバックアップデータのサイズと、共通の未使用ブロックのサイズを比較し、残りのバックアップデータを共通の未使用ブロックに格納できるか否かを判定する(ステップS17)。
【0076】
そして、残りのバックアップデータを共通の未使用ブロックに格納できる場合には、ダウンロード処理部42は、残りのバックアップデータについて、共通格納処理を行い(ステップS15)、ダウンロード処理を終了する。一方、残りのバックアップデータの共通の未使用ブロックへの格納ができない場合には、ダウンロード処理部42は、残りのバックアップデータを最後から順に、システムディスク41の未使用ブロックの最後から格納する非共通格納処理を行う(ステップS18)。
【0077】
このように、ダウンロード処理部42は、システムディスク21及びシステムディスク41の使用状態とバックアップデータとに基づいて共通格納処理、部分リストア処理及び非共通格納処理を選択することで、バックアップデータへの上書きを防ぐことができる。
【0078】
図7は、リストア処理部43によるリストア処理のフローを示すフローチャートである。図7に示すように、リストア処理部43は、システムディスク41から1ブロック分のバックアップデータを読み込み(ステップS21)、読み込んだバックアップデータを伸張する(ステップS22)。そして、リストア処理部43は、システムディスク41のバックアップ元と同じ位置に、伸張したバックアップデータを書き出す(ステップS23)。ただし、書き出し先に未処理のバックアップデータがある場合には、リストア処理部43は、未処理のバックアップデータをメモリに一時退避してから、伸張したバックアップデータを書き出す。
【0079】
そして、リストア処理部43は、全バックアップデータを処理したか否かを判定し(ステップS24)、未処理のバックアップデータがある場合には、ステップS21に戻り、全バックアップデータを処理した場合には、リストア処理を終了する。
【0080】
このように、リストア処理部43は、書き出し先に未処理のバックアップデータがある場合に未処理のバックアップデータをメモリに一時退避してから、伸張したバックアップデータを書き出すことで、未処理のバックアップデータへの上書きを防ぐことができる。
【0081】
図8は、部分リストア処理のフローを示すフローチャートである。図8に示すように、ダウンロード処理部42は、バックアップ元の使用中ブロック情報から、バックアップ元における使用中ブロックの位置を特定する(ステップS31)。そして、ダウンロード処理部42は、使用中ブロックをリストア先に格納可能か否か、すなわち、リストア先では、特定した位置のブロックは、未使用中ブロックであって共通の未使用ブロックでない、か否かを判定する(ステップS32)。
【0082】
そして、使用中ブロックをリストア先に格納可能である場合には、ダウンロード処理部42は、使用中ブロックを格納する(ステップS33)。すなわち、ダウンロード処理部42は、使用中ブロックのバックアップデータを伸張し、リストア先の特定した位置に格納する。
【0083】
そして、ダウンロード処理部42は、全バックアップデータを処理したか否かを判定し(ステップS34)、未処理のバックアップデータがある場合には、ステップS31に戻り、全バックアップデータを処理した場合には、部分リストア処理を終了する。
【0084】
このように、ダウンロード処理部42は、バックアップ元の使用中ブロックがリストア先で未使用中ブロックであって共通の未使用ブロックでない場合に、バックアップ元の使用中ブロックのバックアップデータをリストア先の同じ位置にリストアする。したがって、ダウンロード処理部42は、バックアップデータのダウンロードに必要な共通の未使用ブロックの数を減らすことができる。
【0085】
図9は、非共通格納処理のフローを示すフローチャートである。図9に示すように、ダウンロード処理部42は、バックアップファイル31の最後から順番にブロックデータを読み込み(ステップS41)、リストア先の未使用ブロックの最後から格納する(ステップS42)。このとき、ダウンロード処理部42は、リストア先の共通の未使用ブロックに優先的に格納してもよい。
【0086】
そして、ダウンロード処理部42は、全バックアップデータを処理したか否かを判定し(ステップS43)、未処理のバックアップデータがある場合には、ステップS41に戻り、全バックアップデータを処理した場合には、非共通格納処理を終了する。
【0087】
このように、ダウンロード処理部42は、バックアップファイル31の最後から順番にブロックデータを読み込み、リストア先の未使用ブロックの最後から格納するので、リストア時における未処理のバックアップデータへの上書きを減らすことができる。
【0088】
図10は、共通格納処理のフローを示すフローチャートである。図10に示すように、ダウンロード処理部42は、バックアップファイル31の先頭から順番にブロックデータを読み込み(ステップS51)、リストア先の共通の未使用ブロックの先頭から格納する(ステップS52)。
【0089】
そして、ダウンロード処理部42は、全バックアップデータを処理したか否かを判定し(ステップS53)、未処理のバックアップデータがある場合には、ステップS51に戻り、全バックアップデータを処理した場合には、共通格納処理を終了する。
【0090】
このように、ダウンロード処理部42は、バックアップファイル31の先頭から順番にブロックデータを読み込み、リストア先の共通の未使用ブロックの先頭から格納するので、リストア時における未処理のバックアップデータへの上書きを防ぐことができる。
【0091】
上述してきたように、実施例では、ダウンロード処理部42は、非共通格納処理によりバックアップファイル31をダウンロードする。すなわち、ダウンロード処理部42は、バックアップファイル31の最後からブロックデータを順番に取り出し、リストア先のシステムディスク41の空き領域の最後から格納する。そして、リストア処理部43は、ダウンロード処理部42により格納されたブロックデータを先頭から順番に取り出して伸張し、システムディスク41において、システムディスク21で格納されていたブロックと同じ位置のブロックに格納する。したがって、データ処理システム1は、リストアによるバックアップデータへの上書きを防ぐことができる。
【0092】
また、実施例では、ダウンロード処理部42は、バックアップファイル31をリストア先の共通の未使用ブロックに格納できる場合には、リストア先の共通の未使用ブロックに格納し、共通の未使用ブロックに格納できない場合に、非共通格納処理により格納する。したがって、データ処理システム1は、リストアによるバックアップデータへの上書きを防ぐことができる。
【0093】
また、実施例では、ダウンロード処理部42は、非共通格納処理において、共通の未使用ブロックに優先的に格納する。したがって、データ処理システム1は、リストアによるバックアップデータへの上書きを防ぐことができる。
【0094】
また、実施例では、ダウンロード処理部42は、リストア先の共通でない未使用ブロックがバックアップ元で使用中ブロックだと、バックアップ元の使用中ブロックのデータをリストア先の同じ位置の未使用ブロックに格納した後、共通の未使用ブロックを使用する。したがって、データ処理システム1は、リストアによるバックアップデータへの上書きを防ぐことができる。
【0095】
また、実施例では、リストア処理部43は、バックアップデータを伸張してリストアする際に、リストアによりバックアップデータが上書きされる場合には、バックアップデータをメモリに一時退避することで上書きを防ぐ。したがって、データ処理システム1は、リストアによるバックアップデータへの上書きを確実に防ぐことができる。
【0096】
なお、実施例で説明したダウンロード処理部42及びリストア処理部43をそれぞれソフトウェアによって実現することで、同様の機能を有するダウンロード処理プログラム及びリストア処理プログラムを得ることができる。そこで、ダウンロード処理プログラム及びリストア処理プログラムを含むデータ処理プログラムを実行するリストア先マシン4のハードウェアについて説明する。
【0097】
図11は、リストア先マシン4のハードウェア構成を示す図である。図11に示すように、リストア先マシン4は、メインメモリ51と、プロセッサの一例であるCPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
【0098】
メインメモリ51は、プログラムやプログラムの実行途中結果等を記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
【0099】
LANインタフェース53は、リストア先マシン4をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボード等の入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVD、CD-Rの読み書きを行う装置である。
【0100】
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
【0101】
そして、リストア先マシン4において実行されるデータ処理プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるCD-Rに記憶され、ODD57によってCD-Rから読み出されてリストア先マシン4にインストールされる。あるいは、データ処理プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベース等に記憶され、これらのデータベースから読み出されてリストア先マシン4にインストールされる。そして、インストールされたデータ処理プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
【0102】
また、実施例では、使用中ブロックのデータを圧縮してバックアップファイル31に格納する場合について説明したが、データ処理システム1は、使用中ブロックのデータを圧縮することなくバックアップファイル31に格納してもよい。
【0103】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0104】
(付記1)バックアップ装置にバックアップされた複数の単位領域データを最後から取り出してリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納する格納部と、
前記格納部により格納された複数の単位領域データを先頭から取り出し、リストア先の不揮発性記憶装置において、バックアップ元の不揮発性記憶装置で格納されていた位置と同じ位置に復元する復元部と
を有することを特徴とするデータ処理装置。
【0105】
(付記2)前記格納部は、前記複数の単位領域データについて前記リストア先の不揮発性記憶装置と前記バックアップ元の不揮発性記憶装置で共通な空き領域に格納可能な場合には該共通な空き領域に格納し、該共通な空き領域に格納可能でない場合には前記複数の単位領域データを最後から取り出して前記リストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納し、
前記復元部は、前記格納部により前記複数の単位領域データが前記共通な空き領域に格納された場合には、該複数の単位領域データを該共通な空き領域から取り出し、前記同じ位置に復元することを特徴とする付記1に記載のデータ処理装置。
【0106】
(付記3)前記格納部は、前記複数の単位領域データをリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納する場合に、前記リストア先の不揮発性記憶装置と前記バックアップ元の不揮発性記憶装置で共通な空き領域に優先して格納することを特徴とする付記1又は2に記載のデータ処理装置。
【0107】
(付記4)前記格納部は、単位領域データが前記バックアップ元の不揮発性記憶装置において格納されていた元領域が前記リストア先の不揮発性記憶装置で空いている場合に、該単位領域データを前記リストア先の元領域に格納し、残りの単位領域データを前記共通な空き領域に格納することを特徴とする付記2に記載のデータ処理装置。
【0108】
(付記5)前記復元部は、前記格納部により前記リストア先の不揮発性記憶装置に格納先として割り当てられた空き領域に最後から格納された複数の単位領域データのうち他の単位領域データの復元により上書きされる単位領域データをメモリに一時退避した後で前記他の単位領域データを復元することを特徴とする付記1~4のいずれか1つに記載のデータ処理装置。
【0109】
(付記6)コンピュータに、
バックアップ装置にバックアップされた複数の単位領域データを最後から取り出してリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納し、
格納した複数の単位領域データを先頭から取り出し、リストア先の不揮発性記憶装置において、バックアップ元の不揮発性記憶装置で格納されていた位置と同じ位置に復元する
処理を実行させることを特徴とするデータ処理プログラム。
【0110】
(付記7)前記格納する処理は、前記複数の単位領域データについて前記リストア先の不揮発性記憶装置と前記バックアップ元の不揮発性記憶装置で共通な空き領域に格納可能な場合には該共通な空き領域に格納し、該共通な空き領域に格納可能でない場合には前記複数の単位領域データを最後から取り出して前記リストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納し、
前記復元する処理は、前記格納する処理により前記複数の単位領域データが前記共通な空き領域に格納された場合には、該複数の単位領域データを該共通な空き領域から取り出し、前記同じ位置に復元することを特徴とする付記6に記載のデータ処理プログラム。
【0111】
(付記8)前記格納する処理は、前記複数の単位領域データをリストア先の不揮発性記憶装置に格納先として割り当てられた空き領域の最後から格納する場合に、前記リストア先の不揮発性記憶装置と前記バックアップ元の不揮発性記憶装置で共通な空き領域に優先して格納することを特徴とする付記6又は7に記載のデータ処理プログラム。
【0112】
(付記9)前記格納する処理は、単位領域データが前記バックアップ元の不揮発性記憶装置において格納されていた元領域が前記リストア先の不揮発性記憶装置で空いている場合に、該単位領域データを前記リストア先の元領域に格納し、残りの単位領域データを前記共通な空き領域に格納することを特徴とする付記7に記載のデータ処理プログラム。
【符号の説明】
【0113】
1 データ処理システム
2,94a バックアップ元マシン
3,95 ファイルサーバ
4,94b リストア先マシン
21 システムディスク
22 バックアップ処理部
31,93 バックアップファイル
32 ファイルサーバ処理部
41 システムディスク
42 ダウンロード処理部
43 リストア処理部
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD
91 管理情報
92,96 ディスク
92a バックアップ元ディスク
92b リストア先ディスク
92c 一時ディスク
図1
図2
図3A
図3B
図3C
図3D
図3E
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16A
図16B