123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- .\" Man page generated from reStructuredText.
- .
- .
- .nr rst2man-indent-level 0
- .
- .de1 rstReportMargin
- \\$1 \\n[an-margin]
- level \\n[rst2man-indent-level]
- level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
- -
- \\n[rst2man-indent0]
- \\n[rst2man-indent1]
- \\n[rst2man-indent2]
- ..
- .de1 INDENT
- .\" .rstReportMargin pre:
- . RS \\$1
- . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
- . nr rst2man-indent-level +1
- .\" .rstReportMargin post:
- ..
- .de UNINDENT
- . RE
- .\" indent \\n[an-margin]
- .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
- .nr rst2man-indent-level -1
- .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
- .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
- ..
- .TH "BORG-COMPRESSION" 1 "2023-09-14" "" "borg backup tool"
- .SH NAME
- borg-compression \- Details regarding compression
- .SH DESCRIPTION
- .sp
- It is no problem to mix different compression methods in one repo,
- deduplication is done on the source data chunks (not on the compressed
- or encrypted data).
- .sp
- If some specific chunk was once compressed and stored into the repo, creating
- another backup that also uses this chunk will not change the stored chunk.
- So if you use different compression specs for the backups, whichever stores a
- chunk first determines its compression. See also borg recreate.
- .sp
- Compression is lz4 by default. If you want something else, you have to specify what you want.
- .sp
- Valid compression specifiers are:
- .INDENT 0.0
- .TP
- .B none
- Do not compress.
- .TP
- .B lz4
- Use lz4 compression. Very high speed, very low compression. (default)
- .TP
- .B zstd[,L]
- Use zstd (\(dqzstandard\(dq) compression, a modern wide\-range algorithm.
- If you do not explicitly give the compression level L (ranging from 1
- to 22), it will use level 3.
- .TP
- .B zlib[,L]
- Use zlib (\(dqgz\(dq) compression. Medium speed, medium compression.
- If you do not explicitly give the compression level L (ranging from 0
- to 9), it will use level 6.
- Giving level 0 (means \(dqno compression\(dq, but still has zlib protocol
- overhead) is usually pointless, you better use \(dqnone\(dq compression.
- .TP
- .B lzma[,L]
- Use lzma (\(dqxz\(dq) compression. Low speed, high compression.
- If you do not explicitly give the compression level L (ranging from 0
- to 9), it will use level 6.
- Giving levels above 6 is pointless and counterproductive because it does
- not compress better due to the buffer size used by borg \- but it wastes
- lots of CPU cycles and RAM.
- .TP
- .B auto,C[,L]
- Use a built\-in heuristic to decide per chunk whether to compress or not.
- The heuristic tries with lz4 whether the data is compressible.
- For incompressible data, it will not use compression (uses \(dqnone\(dq).
- For compressible data, it uses the given C[,L] compression \- with C[,L]
- being any valid compression specifier.
- .TP
- .B obfuscate,SPEC,C[,L]
- Use compressed\-size obfuscation to make fingerprinting attacks based on
- the observable stored chunk size more difficult. Note:
- .INDENT 7.0
- .IP \(bu 2
- You must combine this with encryption, or it won\(aqt make any sense.
- .IP \(bu 2
- Your repo size will be bigger, of course.
- .IP \(bu 2
- A chunk is limited by the constant \fBMAX_DATA_SIZE\fP (cur. ~20MiB).
- .UNINDENT
- .sp
- The SPEC value determines how the size obfuscation works:
- .sp
- \fIRelative random reciprocal size variation\fP (multiplicative)
- .sp
- Size will increase by a factor, relative to the compressed data size.
- Smaller factors are used often, larger factors rarely.
- .sp
- Available factors:
- .INDENT 7.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- 1: 0.01 .. 100
- 2: 0.1 .. 1,000
- 3: 1 .. 10,000
- 4: 10 .. 100,000
- 5: 100 .. 1,000,000
- 6: 1,000 .. 10,000,000
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- Example probabilities for SPEC \fB1\fP:
- .INDENT 7.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- 90 % 0.01 .. 0.1
- 9 % 0.1 .. 1
- 0.9 % 1 .. 10
- 0.09% 10 .. 100
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .sp
- \fIRandomly sized padding up to the given size\fP (additive)
- .INDENT 7.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- 110: 1kiB (2 ^ (SPEC \- 100))
- \&...
- 120: 1MiB
- \&...
- 123: 8MiB (max.)
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .UNINDENT
- .sp
- Examples:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .nf
- .ft C
- borg create \-\-compression lz4 REPO::ARCHIVE data
- borg create \-\-compression zstd REPO::ARCHIVE data
- borg create \-\-compression zstd,10 REPO::ARCHIVE data
- borg create \-\-compression zlib REPO::ARCHIVE data
- borg create \-\-compression zlib,1 REPO::ARCHIVE data
- borg create \-\-compression auto,lzma,6 REPO::ARCHIVE data
- borg create \-\-compression auto,lzma ...
- borg create \-\-compression obfuscate,110,none ...
- borg create \-\-compression obfuscate,3,auto,zstd,10 ...
- borg create \-\-compression obfuscate,2,zstd,6 ...
- .ft P
- .fi
- .UNINDENT
- .UNINDENT
- .SH AUTHOR
- The Borg Collective
- .\" Generated by docutils manpage writer.
- .
|