
ファイルを並列に保存できるものはありますか?
Tarは素晴らしいですが、テープアーカイブを使用せず、smpがあるため、アーカイブが速いもの(bzip2などの圧縮を使用)が私にとってより重要です。
答え1
私はあなたがpbzip2を探していると思います:
PBZIP2 は pthread を使用し、SMP システムでほぼ線形に近い速度向上を達成する bzip2 ブロックアライメントファイルコンプレッサの並列実装です。
見てプロジェクトホームページまたは、お気に入りのパッケージリポジトリを確認してください。
答え2
OPは並列圧縮ではなく並列アーカイブについて質問しました。
ソースデータが、異なるディレクトリ/ファイルが異なるディスク上に存在する可能性があるファイルシステムからのものである場合、または圧縮ツールの入力速度を超える単一の高速ディスクである場合は、圧縮に複数の入力ストリームを含めることが実際に役立ちます。 。フロア。
興味深い質問は、並列アーカイブの出力がどのように見えるかということです。これは単一ファイル記述子/ではなく、スレッドstdout
ごとのファイル記述子です。
これまでの例は Postgresql の並列ダンプモードでpg_dump
、ディレクトリにダンプしてスレッドはバックアップするテーブルセット (複数スレッドで使用する作業キュー) で作業します。
実際の並列アーカイバーが主流であるかどうかはわかりません。 ZFSで使用できるSolaris Tar用のハッキングがあります。http://www.maier-komor.de/mtwrite.html
複数のスレッドを正常に実行できる専用のバックアップツールがありますが、ディレクトリごとに高いレベルでワークロードを分割するツールがたくさんあります。
答え3
7zipフラグが指定されている場合は、複数のスレッドで実行できますが、-mmt
7z アーカイブに圧縮する場合にのみ実行できます。これは良い圧縮を提供しますが、通常はアーカイブを作成するのにzipよりも遅くなります。次のようにしてください。
7z a -mmt foo.7z /opt/myhugefile.dat
答え4
豚豚gzipの並列実装ですが、実際には圧縮解除ではなく圧縮には複数のプロセッサしか使用できません。