| borg-compression(1) | borg backup tool | borg-compression(1) |
نام (NAME)
borg-compression - جزئیات و الگوریتمهای فشردهسازی در Borg
توضیحات (DESCRIPTION)
ترکیب روشهای فشردهسازی مختلف در یک مخزن هیچ مشکلی ایجاد نمیکند؛ عملیات حذف دادههای تکراری (deduplication) روی تکههای دادههای مبدأ انجام میشود (نه روی دادههای فشردهشده یا رمزگذاریشده).
اگر یک تکه (chunk) خاص یک بار فشرده شده و در مخزن ذخیره شده باشد، ایجاد پشتیبان دیگری که از این تکه نیز استفاده میکند، تکه ذخیرهشده را تغییر نخواهد داد. بنابراین اگر از مشخصههای فشردهسازی متفاوتی برای پشتیبانها استفاده کنید، هر نسخهای که ابتدا یک تکه را ذخیره کند، نحوه فشردهسازی آن را تعیین میکند. همچنین دستور borg recreate را ببینید.
فشردهسازی به صورت پیشفرض lz4 است. اگر روش دیگری میخواهید، باید آن را مشخص کنید.
مشخصکنندههای معتبر فشردهسازی عبارتند از:
- none
- بدون فشردهسازی (دادهها فشرده نمیشوند).
- lz4
- استفاده از فشردهسازی lz4. سرعت بسیار بالا، فشردهسازی بسیار کم. (پیشفرض)
- zstd[,L]
- استفاده از فشردهسازی zstd ("zstandard")، یک الگوریتم مدرن با دامنه گسترده. اگر سطح فشردهسازی L (از 1 تا 22) را صریحاً تعیین نکنید، از سطح 3 استفاده خواهد شد. آرشیوهای فشردهشده با zstd با نسخههای borg < 1.1.4 سازگار نیستند.
- zlib[,L]
- استفاده از فشردهسازی zlib ("gz"). سرعت متوسط، فشردهسازی متوسط. اگر سطح فشردهسازی L (از 0 تا 9) را صریحاً تعیین نکنید، از سطح 6 استفاده خواهد شد. تعیین سطح 0 (به معنی "بدون فشردهسازی" است، اما همچنان سربار پروتکل zlib را به همراه دارد) معمولاً بیفایده است؛ بهتر است از فشردهسازی none استفاده کنید.
- lzma[,L]
- استفاده از فشردهسازی lzma ("xz"). سرعت پایین، فشردهسازی بالا. اگر سطح فشردهسازی L (از 0 تا 9) را صریحاً تعیین نکنید، از سطح 6 استفاده خواهد شد. تعیین سطوح بالاتر از 6 بیفایده و غیرسازنده است؛ چرا که به دلیل اندازه بافر مورد استفاده توسط borg، بهتر فشرده نمیکند - اما چرخههای فراوانی از CPU و حافظه رم را هدر میدهد.
- auto,C[,L]
- استفاده از یک روش اکتشافی (heuristic) داخلی برای تصمیمگیری در مورد فشردهسازی یا عدم فشردهسازی هر تکه. این روش با lz4 بررسی میکند که آیا دادهها قابل فشردهسازی هستند یا خیر. برای دادههای غیرقابل فشردهسازی، از فشردهسازی استفاده نمیکند (از "none" استفاده میکند). برای دادههای قابل فشردهسازی، از فشردهسازی مشخصشده C[,L] استفاده میکند - که در آن C[,L] هر مشخصکننده فشردهسازی معتبری است. این قابلیت برای فایلهای چندرسانهای که اغلب نمیتوان آنها را بیشتر از این فشرده کرد، میتواند مفید باشد.
- obfuscate,SPEC,C[,L]
- استفاده از مبهمسازی اندازه فشردهشده برای دشوارتر کردن حملات انگشتنگاری (fingerprinting) بر اساس اندازه قابلمشاهده تکههای ذخیرهشده. توجه:
- شما باید این گزینه را با رمزگذاری (encryption) ترکیب کنید، در غیر این صورت هیچ فایدهای نخواهد داشت.
- البته اندازه مخزن شما بزرگتر خواهد شد.
- اندازه هر تکه توسط ثابت MAX_DATA_SIZE (در حال حاضر حدود 20 مبیبایت) محدود شده است.
مقدار SPEC نحوه کارکرد مبهمسازی اندازه را مشخص میکند:
تغییر اندازه معکوس تصادفی نسبی (ضربشونده / multiplicative)
اندازه دادهها نسبت به اندازه دادههای فشردهشده با یک ضریب افزایش مییابد. ضرایب کوچکتر به دفعات زیاد، و ضرایب بزرگتر به ندرت استفاده میشوند.
ضرایب موجود:
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
احتمالات نمونه برای SPEC 1:
90 % 0.01 .. 0.1 9 % 0.1 .. 1 0.9 % 1 .. 10 0.09% 10 .. 100
فاصلهگذاری با اندازه تصادفی (padding) تا اندازه مشخصشده (جمعشونده / additive)
110: 1kiB (2 ^ (SPEC - 100)) ... 120: 1MiB ... 123: 8MiB (max.)
فاصلهگذاری پدمه (Padmé padding) (قطعی / deterministic)
250: pads to sums of powers of 2, max 12% overhead
از الگوریتم پدمه (Padmé) برای فاصلهگذاری قطعی اندازه فشردهشده به مجموع توانهای 2 استفاده میکند و سربار را به 12% محدود میسازد. برای جزئیات به https://lbarman.ch/blog/padme مراجعه کنید.
مثالها:
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 ... borg create --compression obfuscate,250,zstd,3 ...
نویسندگان (AUTHORS)
The Borg Collective
| 2026-07-18 |