アーカイブ (コンピュータ)

アーカイブとはコンピュータにおいてデータ群を纏めて一体で保存することを指す。データと、ファイル作成日時や作成者などの付随するメタデータを関連づけ長期間保存する目的で用いられる。巻物化。

一つ以上のファイルとメタデータとをアーカイブ化したファイルをアーカイブファイルと呼ぶ。加えて可逆データ圧縮を併用し、アーカイブファイルのサイズを縮小する場合がある。

1. 特徴
-----

アーカイブはデータの書き換えを想定せずオリジナルのファイルを長期間保存する。バックアップと似た概念でしばしば混同されるが、バックアップはデータの最新版を保存して災害時にロールバックしやすくするものである。

電子メールを例に考える。1年前のメールは今日届いたメールにくらべて重要度は低いが、後で検索・閲覧できるようにしておく事も必要となる。この過去のメールは然程素早く取り出せる必要がないとすれば、「今日のメールは高速アクセスできるストレージへ」、「過去メールは低速だがメディアが安価なストレージへ」と階層化して保存する手法が考えられる。これは階層型ストレージ管理技術と呼ばれ、データの検索性を保持したままストレージのコストを抑えられる。メールアーカイブの身近な例はGmailにある。見終わったメールを削除ではなくアーカイブすることで、受信メールには表示されないが検索するだけで閲覧出来る。

2. ファイルアーカイバ
------------

一つ以上のファイルとメタデータを一つのファイルへ変換するユーティリティソフトウェア。単にアーカイバと呼ぶこともある。

2.1. UNIXにおけるアーカイバ
------------------

ar、tar、cpioなどのコマンドラインツールを使いアーカイブファイルを作成する。これらは圧縮機能を持たない。

2.1.1. アーカイブファイルの圧縮
-------------------

UNIXではgzip、bzip2、xzなどの追加のツールと組み合わせて圧縮を行う。圧縮の過程でファイル名に拡張子が追加される。たとえば、ファイル一式をtarでアーカイブして、作成されたアーカイブファイルをgzipで圧縮したファイルの拡張子は.tar.gzとなる。

2.2. Windowsにおけるアーカイバ
---------------------

Microsoft Windowsに標準で組み込まれているアーカイバ や、WinRARや7-zipなどの多くのサードパーティのアーカイブソフトウェアは、グラフィカルユーザーインターフェイスを使用して操作を行う。また、コマンドラインインターフェイスも提供するものもあるが、Windowsには標準搭載されていない。Windowsで利用するアーカイバは、アーカイブ機能と圧縮機能の両方を一緒に行う。ソリッド圧縮は、Windows自体はサポートしていないが、WinRARと7-zipなどサードパーティの製品では提供されるものもある。

3. アーカイブファイル
------------

ファイルアーカイバによって変換されたファイルをアーカイブファイルと呼ぶ。日本語では書庫とも呼ばれる。アーカイブファイルを作成する工程をアーカイブあるいは書庫化と呼ぶ。アーカイブファイルのファイル形式はarやtarが代表的である。関連項目も参照。アーカイブファイルから元のファイルを取り出す操作を展開、解凍、または抽出と呼ぶ。

3.1. ファイル圧縮
-----------

アーカイブではファイル圧縮することが多い。ただし、ファイル圧縮は必ずしもアーカイブファイルを作成することを意味しない。ZIP等。その一方でアーカイブファイルの中から１つのファイルだけを解凍することを考慮したフォーマットもある。例えばZIPでは圧縮した後にアーカイブする。他にも圧縮時にデータを決まったサイズのブロックに分けて符号化することで、目的のファイル周辺だけを解凍して取得可能にする方式もある。

ファイルをデータ圧縮する場合には可逆圧縮が用いられる。ファイル圧縮の方式の中には、複数のファイルを1つにまとめて扱えるようにするアーカイブ機能を兼ね備えるものもある。

ファイル圧縮は、パーソナルコンピューターの分野では1980年代後半頃からパソコン通信の発達とともにLHAやZIPなどの圧縮方式が誕生した。

3.1.1. 主な圧縮アーカイブ形式
------------------

ZIP - パーソナルコンピューターの分野で普及している圧縮形式。圧縮方式は主にDeflate法が使用される。
7z - 7-Zipで扱うことの出来る多機能な高圧縮形式。オープンソース。圧縮方式は主にLZMA法が使用される。
RAR - マルチメディア系の圧縮が得意な高圧縮形式
ZPAQ - 増分バックアップやロールバックに対応した圧縮最重視の超高圧縮形式
CAB  - Windowsが標準で利用できる圧縮形式
GCA, DGCA  - テキストデータに強い日本産圧縮形式
LHA - 純日本産の圧縮形式。LZHとも
StuffIt - Macintosh系列で利用される圧縮形式
Compact Pro - Macintosh系列で利用された圧縮形式。開発は終了している。

3.1.2. 主なストリーミング圧縮形式
--------------------

複数ファイルの圧縮ではtarなどの無圧縮アーカイブ形式と共に使われる。例えばtarでアーカイブした後にgzipで圧縮した場合は拡張子が .tar.gz となる。Webブラウザで使える形式も存在する 。

pack  - UNIXの初期からある形式。今ではほとんど使われず、compressに取って代わられている。
compress★  - packの置き換えとして商用UNIXで標準で使われている形式。今ではほとんど使われず、gzipに取って代わられている。
gzip☆  - 商用UNIXに標準のcompressにはLZWアルゴリズムの特許の問題があり、フリーの代用品として開発された。圧縮方式はDeflate法が使用される。
Deflate☆ - HTTPプロトコルで使われている圧縮方式。gzipと同じアルゴリズムだがヘッダが異なる。
bzip  - 特許問題のために配布が中止された高圧縮形式。算術符号使用。
bzip2  - 主にUNIXで使われるオープンソースの高圧縮形式。bzipの後継として開発された。
xz  - bzip2と同様に主にUNIXで使われるLZMAアルゴリズムによるオープンソースの高圧縮形式。圧縮率だけでなく圧縮と解凍の高速さも目指したものが存在する。

LZO  - 古くから存在する高速な圧縮形式。
Snappy   - Googleの開発した高速な圧縮形式。
LZ4  - 高速な圧縮形式。Unityで使われている。NVIDIAがGPU実装のnvcompを提供している。
Zstandard  - Facebookの開発した高速な圧縮形式。
Brotli☆  - Googleの開発した高速な圧縮形式。
LZFSE  - Appleの開発した高速な圧縮形式。
Kraken - RAD Game Toolsの開発した高速な圧縮形式。PlayStation 5がKrakenのアクセラレータを搭載している。
LZHAM  - 圧縮率が高いながらも解凍が比較的高速な圧縮形式。

3.2. エラーの検出と回復
--------------

アーカイブファイルには、エラー検出のためのパリティチェックやチェックサムが含まれることがある。たとえば、zipファイルは巡回冗長検査を実装している。RARアーカイブには、冗長なエラー訂正データが含まれる。

アーカイブファイルには、特に複数ファイルアーカイブ内の欠落ファイルの回復において、追加のエラー検出と回復を可能にする個別のパリティアーカイブファイルが付随する場合がある。

4. 脚注
-----

5. 関連項目
-------

バックアップ
階層型ストレージ管理
レプリケーション
文書管理システム
データ圧縮、可逆圧縮
ウェブアーカイブ