बैकअप, भाग 4: अवलोकन और परीक्षण zbackup, restic, borgbackup


यह आलेख बैकअप सॉफ़्टवेयर उपकरणों पर चर्चा करेगा जो डेटा घटकों को अलग-अलग घटकों (चंक्स) में तोड़कर, एक रिपॉजिटरी बनाते हैं।


रिपॉजिटरी घटकों को अतिरिक्त रूप से संकुचित और एन्क्रिप्ट किया जा सकता है, और सबसे महत्वपूर्ण बात - दोहराई गई बैकअप प्रक्रियाओं के साथ - फिर से पुन: उपयोग किया जाता है।


एक समान रिपॉजिटरी में एक बैकअप संबंधित घटकों की एक नामित श्रृंखला है, उदाहरण के लिए, विभिन्न हैश फ़ंक्शन के आधार पर।


कई समान समाधान हैं, मैं 3 पर ध्यान केंद्रित करूंगा: zbackup, borgbackup और restic।


अपेक्षित परिणाम


चूंकि सभी आवेदकों को एक तरह से या किसी अन्य को रिपॉजिटरी के निर्माण की आवश्यकता होती है, इसलिए सबसे महत्वपूर्ण कारकों में से एक रिपॉजिटरी के आकार का अनुमान होगा। आदर्श मामले में, इसका आकार स्वीकृत कार्यप्रणाली के अनुसार 13 जीबी से अधिक नहीं होना चाहिए, या इससे भी कम - अच्छे अनुकूलन के अधीन।


टार आर्काइव्स का उपयोग किए बिना, साथ ही साथ rsync और sshfs जैसे अतिरिक्त उपकरणों के बिना ssh / sftp के साथ काम करने के बिना, सीधे फ़ाइलों का बैकअप लेने में सक्षम होना अत्यधिक वांछनीय है।


बैकअप व्यवहार:


  1. रिपॉजिटरी का आकार परिवर्तनों के आकार के बराबर या कम होगा।
  2. संपीड़न और / या एन्क्रिप्शन का उपयोग करते समय एक बड़े प्रोसेसर लोड की उम्मीद है, और नेटवर्क और डिस्क सबसिस्टम पर एक बड़ा लोड होने की संभावना है यदि संग्रह और / या एन्क्रिप्शन प्रक्रिया बैकअप स्टोरेज सर्वर पर काम करेगी।
  3. यदि आप रिपॉजिटरी को नुकसान पहुंचाते हैं, तो नया बैकअप बनाते समय, और पुनर्स्थापित करने का प्रयास करते समय विलंबित त्रुटि दोनों की संभावना है। रिपॉजिटरी की अखंडता को सुनिश्चित करने या इसकी अखंडता की जांच के लिए अंतर्निहित साधनों का उपयोग करने के लिए अतिरिक्त उपायों की योजना बनाना आवश्यक है।

टार के साथ काम एक संदर्भ मूल्य के रूप में स्वीकार किया जाता है, जैसा कि पिछले लेखों में से एक में दिखाया गया था।


Zbackup परीक्षण


Zbackup ऑपरेशन का सामान्य तंत्र यह है कि कार्यक्रम इनपुट पर आपूर्ति की गई डेटा स्ट्रीम में समान डेटा वाले क्षेत्रों को ढूंढता है, फिर यह उन्हें वैकल्पिक रूप से संपीड़ित करता है और एन्क्रिप्ट करता है, प्रत्येक क्षेत्र को केवल 1 बार बचाता है।


समर्पण के लिए, एक स्लाइडिंग विंडो के साथ 64-बिट रिंग हैश फ़ंक्शन मौजूदा डेटा ब्लॉकों के साथ संयोग के लिए बाइट-चेक करने के लिए उपयोग किया जाता है (यह rsync में कैसे लागू किया जाता है) के समान।


संपीड़न के लिए, बहु-थ्रेडेड निष्पादन में lzma और lzo का उपयोग किया जाता है, और एन्क्रिप्शन के लिए - एईएस। नवीनतम संस्करणों में पुराने डेटा को रिपॉजिटरी से हटाने का भविष्य में एक अवसर है।
कार्यक्रम न्यूनतम निर्भरता के साथ C ++ में लिखा गया है। लेखक स्पष्ट रूप से यूनिक्स-वे से प्रेरित था, इसलिए बैकअप बनाते समय प्रोग्राम स्टैड पर डेटा प्राप्त करता है, बहाल करते समय स्टडआउट को एक समान डेटा स्ट्रीम देता है। इस प्रकार, अपने बैकअप समाधान लिखते समय zbackup का उपयोग एक बहुत अच्छे "ईंट" के रूप में किया जा सकता है। उदाहरण के लिए, लेख के लेखक, यह कार्यक्रम लगभग 2014 से घरेलू मशीनों के लिए मुख्य बैकअप उपकरण है।


एक नियमित टार का उपयोग डेटा स्ट्रीम के रूप में किया जाएगा, जब तक कि अन्यथा न कहा जाए।


आइए देखें कि क्या परिणाम होंगे:

कार्य का सत्यापन 2 संस्करणों में किया गया था:


  1. एक रिपॉजिटरी बनाई जाती है और स्रोत डेटा के साथ सर्वर पर zbackup लॉन्च किया जाता है, फिर रिपॉजिटरी की सामग्री को बैकअप स्टोरेज सर्वर में स्थानांतरित कर दिया जाता है।
  2. बैकअप स्टोरेज सर्वर पर एक रिपॉजिटरी बनाई गई है, बैकअप स्टोर सर्वर पर ssh के माध्यम से zbackup लॉन्च किया गया है, डेटा इसे पाइप के माध्यम से दिया गया है।

पहले विकल्प के परिणाम निम्नानुसार थे: 43m11s - जब एक अनएन्क्रिप्टेड रिपॉजिटरी और lzma कंप्रेसर का उपयोग करते हुए, 19m13s - जब कंप्रेसर के साथ lzo की जगह।


स्रोत डेटा के साथ सर्वर पर लोड निम्नानुसार था (लज़मा के साथ उदाहरण दिखाया गया है, लोज़ो के साथ एक ही तस्वीर के बारे में था, लेकिन rsync का अनुपात लगभग एक चौथाई था):



यह स्पष्ट है कि इस तरह की बैकअप प्रक्रिया केवल अपेक्षाकृत दुर्लभ और छोटे परिवर्तनों के लिए उपयुक्त है। Zbackup के संचालन को 1 थ्रेड तक सीमित करना भी अत्यधिक वांछनीय है, अन्यथा प्रोसेसर पर बहुत अधिक भार होगा, क्योंकि कार्यक्रम कई सूत्र में काम करने में बहुत अच्छा है। डिस्क लोड छोटा था, जो सामान्य तौर पर, आधुनिक ssd- आधारित डिस्क सबसिस्टम के साथ ध्यान देने योग्य नहीं होगा। आप दूरस्थ सर्वर पर रिपॉजिटरी डेटा को सिंक्रनाइज़ करने की प्रक्रिया की शुरुआत भी स्पष्ट रूप से देख सकते हैं, गति नियमित rsync के बराबर है और बैकअप स्टोरेज सर्वर के डिस्क सबसिस्टम के प्रदर्शन पर निर्भर करता है। दृष्टिकोण का नकारात्मक पक्ष स्थानीय भंडार का भंडारण है और, परिणामस्वरूप, डेटा का दोहराव।


व्यवहार में अधिक दिलचस्प और व्यावहारिक बैकअप स्टोरेज सर्वर पर तुरंत zbackup चलाने के साथ दूसरा विकल्प है।


सबसे पहले, हम lzma कंप्रेसर के साथ एन्क्रिप्शन का उपयोग किए बिना ऑपरेशन की जांच करेंगे:



प्रत्येक परीक्षण चलाने का समय:


लॉन्च 1लॉन्च 2लॉन्च 3
39m45s40m20s40m3s
7m36s8m3s7m48s
15m35s15m48s15m38s

यदि आप एईएस का उपयोग करके एन्क्रिप्शन को सक्रिय करते हैं, तो परिणाम बहुत करीब हैं:



एन्क्रिप्शन के साथ, उसी डेटा पर ऑपरेटिंग समय:


लॉन्च 1लॉन्च 2लॉन्च 3
43m40s44m12s44m3s
8m3s8m15s8m12s
15m0s15m40s15m25s

यदि एन्क्रिप्शन को lzo पर संपीड़न के साथ जोड़ा जाता है, तो यह इस तरह से होता है:



काम का समय:


लॉन्च 1लॉन्च 2लॉन्च 3
18m2s18m15s18m12s
5m13s5m24s5m20s
8m48s9m3s8m51s

परिणामी भंडार का आकार अपेक्षाकृत समान था और इसकी मात्रा 13GB थी। इसका मतलब है कि डुप्लीकेशन सही तरीके से काम कर रहा है। इसके अलावा, पहले से ही संपीड़ित डेटा पर, लोज़ो का उपयोग एक मूर्त प्रभाव देता है, कुल परिचालन समय के संदर्भ में, ज़बैकअप बारीकी से दोहराव / डुप्लिकेट के करीब पहुंचता है, हालांकि, यह लाइब्रिक्स-आधारित लोगों से 2-5 गुना पीछे है।


लाभ स्पष्ट हैं - बैकअप स्टोरेज सर्वर पर डिस्क स्थान की बचत। रिपॉजिटरी की जाँच के लिए उपकरणों के रूप में - वे zbackup द्वारा प्रदान नहीं किए जाते हैं, यह एक असफल-सुरक्षित डिस्क सरणी या क्लाउड प्रदाता का उपयोग करने के लिए अनुशंसित है।


सामान्य तौर पर, एक बहुत अच्छी धारणा, इस तथ्य के बावजूद कि परियोजना लगभग 3 साल की है (अंतिम फीचर अनुरोध लगभग एक साल पहले था, लेकिन बिना उत्तर के)।


परीक्षण बोर्गबैकअप


बोर्गबैकअप अटारी का एक कांटा है, एक और ज़बैकअप जैसी प्रणाली है। यह अजगर में लिखा गया है, इसमें ज़बैकअप के समान सुविधाओं की एक सूची है, लेकिन इसके अलावा कैसे पता चलता है:


  • फ़्यूज़ के माध्यम से माउंट बैकअप
  • भंडार सामग्री की जाँच करें
  • क्लाइंट-सर्वर मोड में काम करें
  • डेटा के लिए विभिन्न कंप्रेशर्स का उपयोग करें, साथ ही इसे कंप्रेस करते समय फ़ाइल प्रकार की अनुमानी परिभाषा।
  • एन्क्रिप्शन, ऐस और ब्लेक के लिए 2 विकल्प
  • के लिए निर्मित उपकरण

प्रदर्शन की जाँच

borgbackup बेंचमार्क crud ssh: // backup_server / repo / path local_dir


परिणाम इस प्रकार हैं:


CZ-BIG 96.51 MB / s (10 100.00 MB सभी-शून्य फ़ाइलें: 10.36s)
RZ-BIG 57.22 MB / s (10 100.00 MB सभी-शून्य फ़ाइलें: 17.48s)
UZ-BIG 253.63 MB / s (10 100.00 MB सभी-शून्य फ़ाइलें: 3.94s)
DZ-BIG 351.06 MB / s (10 100.00 MB सभी-शून्य फ़ाइलें: 2.85 s)
CR-BIG 34.30 MB / s (10 100.00 MB यादृच्छिक फ़ाइलें: 29.15 s)
RR-BIG 60.69 MB / s (10 100.00 MB यादृच्छिक फ़ाइलें: 16.48s)
UR-BIG 311.06 MB / s (10 100.00 MB रैंडम फाइलें: 3.21s)
DR-BIG 72.63 MB / s (10 100.00 MB यादृच्छिक फ़ाइलें: 13.77s)
CZ-MEDIUM 108.59 MB / s (1000 1.00 MB सभी-शून्य फ़ाइलें: 9.21s)
RZ-MEDIUM 76.16 MB / s (1000 1.00 MB सभी-शून्य फ़ाइलें: 13.13 s)
UZ-MEDIUM 331.27 MB / s (1000 1.00 MB सभी-शून्य फ़ाइलें: 3.02s)
DZ-MEDIUM 387.36 MB / s (1000 1.00 MB सभी-शून्य फ़ाइलें: 2.58 s)
CR-MEDIUM 37.80 MB / s (1000 1.00 MB यादृच्छिक फ़ाइलें: 26.45s)
आरआर-मेडम 68.90 एमबी / एस (1000 1.00 एमबी यादृच्छिक फ़ाइलें: 14.51s)
UR-MEDIUM 347.24 MB / s (1000 1.00 एमबी यादृच्छिक फ़ाइलें: 2.88s)
DR-MEDIUM 48.80 MB / s (1000 1.00 MB यादृच्छिक फ़ाइलें: 20.49s)
CZ-SMALL 11.72 MB / s (10000 10.00 kB सभी-शून्य फ़ाइलें: 8.53s)
RZ-SMALL 32.57 MB / s (10000 10.00 kB सभी-शून्य फ़ाइलें: 3.07s)
UZ-SMALL 19.37 MB / s (10000 10.00 kB सभी-शून्य फ़ाइलें: 5.16s)
DZ-SMALL 33.71 MB / s (10000 10.00 kB सभी-शून्य फ़ाइलें: 2.97 s)
CR-SMALL 6.85 MB / s (10000 10.00 kB रैंडम फाइलें: 14.60s)
RR-SMALL 31.27 MB / s (10000 10.00 kB रैंडम फाइलें: 3.20s)
UR-SMALL 12.28 MB / s (10000 10.00 kB रैंडम फाइलें: 8.14s)
DR-SMALL 18.78 MB / s (10000 10.00 kB रैंडम फाइलें: 5.32s)


परीक्षण के दौरान, फ़ाइल प्रकार की परिभाषा (संपीड़न ऑटो) के साथ संपीड़न में उपयोग किया जाएगा, और परिणाम निम्नानुसार होंगे:


सबसे पहले, एन्क्रिप्शन के बिना ऑपरेशन की जाँच करें:


काम का समय:


लॉन्च 1लॉन्च 2लॉन्च 3
4m6s4m10s4m5s
56s58s54s
1m26s1m34s1m30s

यदि आप रिपॉजिटरी ऑथोराइज़ेशन (प्रमाणीकृत मोड) को सक्षम करते हैं, तो परिणाम करीब होंगे:



काम का समय:


लॉन्च 1लॉन्च 2लॉन्च 3
4m11s4m20s4m12s
1m0s1m3s1m2s
1m30s1m34s1m31s

जब एन्स एन्क्रिप्शन को सक्रिय किया गया था, तो परिणाम बहुत खराब नहीं हुए:



लॉन्च 1लॉन्च 2लॉन्च 3
4m55s5m2s4m58s
1m0s1m2s1m0s
1m49s1m50s1m50s

और यदि आप ऐस को ब्लेक में बदलते हैं, तो स्थिति पूरी तरह से सुधर जाएगी:



काम का समय:


लॉन्च 1लॉन्च 2लॉन्च 3
4m33s4m43s4m40s
59s1m0s1m0s
1m38s1m43s1m40s

जैसे कि ज़बैकअप के मामले में, रिपॉजिटरी का आकार 13GB था और इससे थोड़ा कम, जो सामान्य रूप से अपेक्षित है। काम का समय बहुत प्रसन्न था, यह लाइब्रिस्क पर आधारित समाधानों के साथ तुलनीय है, बहुत व्यापक संभावनाएं प्रदान करता है। मैं पर्यावरण चर के माध्यम से विभिन्न मापदंडों को सेट करने की क्षमता से भी प्रसन्न था, जो स्वचालित मोड में बोर्गबैकअप का उपयोग करते समय बहुत गंभीर लाभ देता है। बैकअप के दौरान लोड से भी प्रसन्न: प्रोसेसर लोड को देखते हुए - 1 धागे में बोर्गबैकअप काम करता है।


उपयोग करते समय कोई विशेष minuses नहीं थे।


परीक्षण आराम


इस तथ्य के बावजूद कि रेस्टिक एक नया समाधान है (पहले 2 उम्मीदवारों को 2013 और पुराने के बाद से जाना जाता है), इसमें काफी अच्छी विशेषताएं हैं। गो में लिखा।


जब zbackup के साथ तुलना की जाती है, तो यह अतिरिक्त रूप से देता है:


  • रिपॉजिटरी की अखंडता की जाँच करना (भागों में जाँच सहित)।
  • बैकअप भंडारण के लिए समर्थित प्रोटोकॉल और प्रदाताओं की एक विशाल सूची, साथ ही क्लाउड समाधानों के लिए rclone - rsync समर्थन।
  • आपस में 2 बैकअप की तुलना।
  • फ्यूज के माध्यम से भंडार को माउंट करना।

सामान्य तौर पर, संभावनाओं की सूची बोरगबैकअप के काफी करीब है, कुछ स्थानों में अधिक, कुछ स्थानों में कम। सुविधाओं में से - एन्क्रिप्शन को अक्षम करने की क्षमता की कमी, और इसलिए, बैकअप हमेशा एन्क्रिप्ट किया जाएगा। आइए व्यवहार में देखें कि आप इस सॉफ़्टवेयर से क्या निचोड़ सकते हैं:


परिणाम इस प्रकार हैं:


काम का समय:


लॉन्च 1लॉन्च 2लॉन्च 3
5m25s5m50s5m38s
35s38s36s
1m54s2m2s1m58s

परिणाम भी rsync- आधारित समाधानों के लिए तुलनीय होते हैं और सामान्य तौर पर, बोर्गबैकअप के बहुत करीब होते हैं, लेकिन प्रोसेसर लोड अधिक होता है (कई थ्रेड वर्क) और सॉउथॉथ।


सबसे अधिक संभावना है, प्रोग्राम स्टोरेज सर्वर पर डिस्क सबसिस्टम के प्रदर्शन पर निर्भर करता है, क्योंकि यह rsync के साथ था। रिपॉजिटरी का आकार 13GB था, बिल्कुल zbackup या borgbackup की तरह, इस समाधान का उपयोग करते समय कोई स्पष्ट minuses नहीं थे।


परिणाम


वास्तव में, सभी उम्मीदवारों को करीब संकेतक मिले, लेकिन एक अलग कीमत पर। बोर्गबैकअप ने खुद को सबसे अच्छा, थोड़ा धीमा दिखाया - रेस्टिक, ज़बैकअप, शायद आपको आवेदन करना शुरू नहीं करना चाहिए,
और यदि यह पहले से ही उपयोग में है, तो बोर्गबैकअप या रेस्टिक में बदलने का प्रयास करें।


निष्कर्ष


सबसे आशाजनक समाधान के रूप में, आराम है यह वह है जिसके पास गति के लिए क्षमताओं का सबसे अच्छा अनुपात है, लेकिन अब हम सामान्य निष्कर्षों पर नहीं जाएंगे।


Borgbackup, सिद्धांत रूप में, कोई भी बदतर नहीं है, लेकिन zbackup को बदलने के लिए संभवतः बेहतर है। हालांकि, यह सुनिश्चित करने के लिए कि नियम 3-2-1 काम करता है, फिर भी zbackup का उपयोग किया जा सकता है। उदाहरण के लिए, (lib) rsync पर आधारित बैकअप टूल के अलावा।


घोषणा


बैकअप, भाग 1: आपको बैकअप की आवश्यकता क्यों है, विधियों, प्रौद्योगिकियों का अवलोकन
बैकअप, भाग 2: अवलोकन और परीक्षण rsync- आधारित बैकअप उपकरण
बैकअप, भाग 3: अवलोकन और परीक्षण दोहराव, डुप्लिकेट
बैकअप, भाग 4: अवलोकन और परीक्षण zbackup, restic, borgbackup
बैकअप, भाग 5: लिनक्स के लिए बकुला और वीम बैकअप का परीक्षण
बैकअप: पाठकों द्वारा अनुरोधित हिस्सा: AMANDA समीक्षा, UrBackup, BackupPC
बैकअप, भाग 6: बैकअप उपकरण की तुलना करना
बैकअप भाग 7: निष्कर्ष


Finnix द्वारा पोस्ट किया गया

Source: https://habr.com/ru/post/hi454734/


All Articles