| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 | 
							- .\" 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-12-02" "" "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.
 
- Archives compressed with zstd are not compatible with borg < 1.1.4.
 
- .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.
 
- .
 
 
  |