Parchive の基礎知識

PAR とは、Parchive または Parity Archive の略で、 翻訳すれば「同等品が収納された書庫」みたいな感じです。 本来のファイルが破損したり消失しても、同等品を取り出してきて、 修復・復元することができるという仕組みです。 PAR ファイルには、修復用のデータを含まず検査用のデータだけを含むインデックス・ファイルと、 検査と修復用の両方のデータを含むリカバリ・ファイルの二種類があり、同時に生成されます。 一般的には双方を区別せず、PAR ファイルと呼ぶことが多いです。

PAR1 ファイルの例:
`Data.PAR` | インデックス・ファイル
`Data.P01` | 1番目のリカバリ・ファイル
`Data.P02` | 2番目のリカバリ・ファイル
`Data.P03` | 3番目のリカバリ・ファイル
PAR2 ファイルの例:
`Data.PAR2` | インデックス・ファイル
`Data.vol0+1.PAR2` | リカバリ・ブロックを 1個含む 1番目のリカバリ・ファイル
`Data.vol1+2.PAR2` | リカバリ・ブロックを 2個含む 2番目のリカバリ・ファイル
`Data.vol3+4.PAR2` | リカバリ・ブロックを 4個含む 3番目のリカバリ・ファイル

インデックス・ファイルではファイルの破損や消失を調べることしかできませんが、 サイズがずっと小さいのが利点です。 リカバリ・ファイルは、PAR1 と PAR2 で構造が異なります。 PAR1 では並べられたソース・ファイル集合に対してリカバリ・データを計算します。 ソース・ファイルを 1個修復するためには、リカバリ・ファイルが 1個必要になり、 3個修復するならリカバリ・ファイルが 3個必要になるという単純な仕組みです。

PAR2 ではソース・ファイルごとにブロックを割り当てて、 そのブロック集合に対してリカバリ・データを計算します。 リカバリ・データを保存する際には、 リカバリ・ファイルに含まれるリカバリ・ブロックの数を変えることができます。 そのため、修復するのに必要なリカバリ・ブロック数によって、 必要なリカバリ・ファイルの個数を最小限に抑えることができます。 上記の例でいうなら、ブロックが 2個必要なら 2番目のリカバリ・ファイルだけ、 5個必要なら 1番目と 3番目のリカバリ・ファイルがあれば修復できます。