Btrfs स्नैपशॉट की संख्या पर व्यावहारिक सीमा?


23

मैं अपने डेटा ड्राइव पर btrfs का उपयोग करने पर विचार कर रहा हूं ताकि समय आधारित स्नैपशॉट लेने के लिए मैं स्नैपर , या स्नैपर जैसी चीज़ का उपयोग कर सकूं । मुझे विश्वास है कि यह मुझे अपने डेटा के पुराने संस्करणों को ब्राउज़ करने देगा। यह मेरे वर्तमान ऑफ साइट बैकअप के अलावा होगा क्योंकि एक ड्राइव विफलता डेटा और स्नैपशॉट को मिटा देगी।

मेरी समझ से btrfs के स्नैपशॉट बहुत अधिक जगह नहीं लेते हैं (मेटा डेटा और ब्लॉक जो बदल गए हैं, साथ ही साथ कुछ ओवरहेड), इसलिए अंतरिक्ष एक बाधा नहीं लगता है।

अगर मेरे पास एक लाख स्नैपशॉट्स हैं (उदाहरण के लिए, दो साल तक हर मिनट एक स्नैपशॉट), तो यह कहर पैदा करेगा, मान लें कि मेरे पास डेटा, परिवर्तित डेटा और मेटा डेटा के लिए पर्याप्त डिस्क स्थान है?

यदि स्नैपशॉट की संख्या पर एक व्यावहारिक सीमा है, तो क्या यह फ़ाइलों की संख्या और / या फ़ाइलों के आकार पर निर्भर करता है?

जवाबों:


16

जैसा कि कोई व्यक्ति जो अब लगभग वर्षों से एक btrfsफाइल सिस्टम का उपयोग कर रहा है, मैं सुरक्षित रूप से कह सकता हूं कि स्नैपशॉट की संख्या पर व्यावहारिक सीमा नहीं लगती है जो आसानी से पहुंचा जा सकता है। हालांकि कुछ चेतावनी भी हैं। फाइलसिस्टम विखंडन को जन्म दे सकता है। इसलिए यह सलाह दी जाती है कि निर्मित ऑनलाइन डीफ़्रैग्मेन्टेशन सुविधा का उपयोग करें । इसके अलावा, कोई भी इसका अच्छा उपयोग कर सकता हैArch Linux2btrfsbtrfsbtrfs संपीड़न सुविधा । इन उपायों में सबसे अधिक प्रदर्शन के मुद्दों का ध्यान रखना चाहिए जो कि बहुत सारे स्नैपशॉट बनाने से काफी हद तक सभ्य कंप्यूटर पर समझदारी से उत्पन्न हो सकते हैं।

जैसा कि आप जानते हैं कि btrfsसबवोल्यूम को फाइल सिस्टम के रूप में माना जाता है और इसलिए स्नैपशॉट की संख्या वास्तव में सीमित है: अर्थात् फाइलों के आकार के अनुसार। btrfsविकी के अनुसार पहुंचने वाली अधिकतम फाइलों की संख्या 2^64 byte == 16 EiB[1] है

इन सीमाओं के अलावा, संभावित रूप से हमेशा समस्याएं हो सकती हैं जब आप तुरंत पहचान किए बिना अंतरिक्ष से बाहर चले जाते हैं क्योंकि btrfsफाइल सिस्टम पर मुक्त स्थान की जांच कभी-कभी मुश्किल हो सकती है, अर्थात बिना किसी btrfsफाइल सिस्टम पर मुक्त स्थान को मापने के विभिन्न तरीकों के बीच अंतर करने में सक्षम हो सकता है। आसानी से ट्रैक का उपयोग करें कि वास्तव में कितनी मात्रा में स्थान बचा है। इस परिदृश्य को रोकने का एक संभावित तरीका कोटा का उपयोग है। यह सुनिश्चित करता है कि उपयोगकर्ता (या उपयोगकर्ता यदि यह केवल एक है) केवल एक निश्चित राशि का उपयोग कर सकता है। इस अवधारणा पर यहाँ और यहाँ भी बहुत चर्चा की गई है

अंतिम लेकिन कम से कम चेतावनी नहीं: मैं btrfsफाइलसिस्टम का कोई विशेषज्ञ नहीं हूं और केवल इन चीजों के बारे में तब पढ़ता हूं जब मेरे पास कुछ समय पहले एक ही सवाल था। इसके अलावा, वहाँ हमेशा समस्या है कि btrfsएक "तेजी से आगे बढ़ रहा है लक्ष्य" (अच्छा शब्द एक Arch Linuxविकी पृष्ठ से चुराया जा रहा है मुझे लगता है।) इसलिए चीजें बदल सकती हैं।


1
Im उनमें से एक के रूप में अच्छी तरह से गोद ले, और यह धमाकेदार है।
13

हां बहुत धमाकेदार :)
मार्क के कोवान

1
आपको एक BTRFS वॉल्यूम पर 100 स्नैपशॉट से नीचे रहने का प्रयास करना चाहिए। अन्यथा आप प्रदर्शन समस्याओं का सामना कर सकते हैं, खासकर स्नैपशॉट को हटाने पर। स्नैपशॉट बनाना कम लागत है, लेकिन उन्हें हटाना नहीं है। इसके अलावा, ध्यान दें कि स्नैपशॉट का उपयोग करने के साथ डीफ़्रैग्मेन्टेशन करने की सिफारिश स्नैपशॉट की अंतरिक्ष दक्षता को समाप्त कर देगी। डिफ्रैगिंग रिफ्लिंक्स को तोड़ता है और उपयोग किए गए स्थान को गुणा करता है।
मोनिका सेलियो

@MountX आप एक जवाब में इस पर विस्तृत कर सकते हैं। एक वॉल्यूम पर 100 स्नैपशॉट दो साल के लिए एक सप्ताह भी नहीं है।
स्ट्रॉन्गबैड

@StrongBad - मुझे समस्या के जवाब में BTRFS मेलिंग सूची से वह जानकारी मिली। हर कोई इस बात से सहमत था कि कई सैकड़ों या हजारों स्नैपशॉट होना एक बुरा विचार है। अधिक तकनीकी उत्तर के लिए, आपको BTRFS मेलिंग सूची पर पूछना होगा।
मोनिका सेलियो

5

जबकि तकनीकी रूप से स्नैपशॉट की संख्या पर कोई सीमा नहीं है, मैंने BTRFS मेलिंग सूची पर पूछा :

(व्यावहारिक) उत्तर कुछ हद तक इस बात पर निर्भर करता है कि आप btrfs का उपयोग कैसे करते हैं।

Btrfs में बहुत अधिक स्नैपशॉट (या वास्तव में रिफ़लिंक स्नैपशॉट का उपयोग करने के कारण स्केलिंग समस्याएँ होती हैं, रिफ्लिंक का उपयोग करने वाला डिडअप समान स्केलिंग समस्याएँ ट्रिगर कर सकता है), और स्नैपशॉट के प्रति सिंगल टू लो-डिजिट प्रति स्नैपडॉट सबवोल्यूम उस कारण के लिए मजबूत अनुशंसा है।

लेकिन स्केलिंग मुद्दे मुख्य रूप से btrfs मेंटेनेंस कमांड्स को स्वयं प्रभावित करते हैं, बैलेंस, चेक, सबवोल्यूम डिलीट। जबकि लाखों स्नैपशॉट उदाहरण के लिए प्रभावी रूप से अविश्वसनीय रूप से संतुलन बनाएंगे (यह काम की तरह होगा लेकिन इसमें महीनों लग सकते हैं), फ़ाइलों को पढ़ने और सहेजने जैसी सामान्य फाइलसिस्टम का संचालन प्रभावित नहीं होता है, सिवाय इसके कि विखंडन एक मुद्दा बन जाता है ( थ्रॉ गाय फाइलसिस्टम जैसे कि btrfs को विखंडन के लिए नोट किया जाता है, जब तक कि इसे कम करने के लिए डीफ़्रैग जैसे कदम नहीं उठाए जाते)।

ऐसा प्रतीत होता है कि स्नैपशॉट को टाइम मशीन / स्नैपर के समान एक अभिलेखीय बैकअप के रूप में उपयोग करना एक अच्छा विचार नहीं है।


टाइम मशीन एक अभिलेखीय बैकअप नहीं है, यह एक बैकअप है। मैं आपका निष्कर्ष साझा नहीं करता। बैकअप की तरह टाइम मशीन के लिए btrfs स्नैपशॉट का उपयोग करना एक बहुत अच्छा विचार हो सकता है (क्योंकि लिनक्स कर्नेल एक निर्देशिका को लिंक करने में सक्षम नहीं है, इस प्रकार हर स्नैप के लिए पूर्ण निर्देशिका संरचना को फिर से बनाने का कारण बनता है, जो काफी डिस्क स्थान उपयोग का कारण बन सकता है)। एक बैकअप डिवाइस पर बैकअप के लिए, अतिरिक्त उपकरणों को जोड़ने की इच्छा के बिना, एक बैलेंस कमांड चलाने का एक उद्देश्य भी नहीं है। Btrfs सूची उत्तर भी यह समझाने की कोशिश करता है।
प्रो बैकअप

@ProBackup btrfs सूची का उत्तर कहता है कि स्नैपशॉट की संख्या को एकल से कम संदेह-अंकों तक रखें, जो स्नैपर के लिए आर्क डिफ़ॉल्ट वास्तव में नहीं करता है। जबकि साधारण सेटअप के लिए btrfs-balance की आवश्यकता नहीं है, बहुत सारे उपयोगकर्ता btrfs-check के विचार को पसंद करते हैं, भले ही उन्हें कभी भी इसकी आवश्यकता न हो, और यदि आप जिस तरह से स्नैच्यूज़ करते हैं, वैसे ही सबवोल्यूम डिलीट करना महत्वपूर्ण लगता है।
स्ट्रॉन्गबैड

@ProBackup अभिलेखीय बैकअप शायद टाइम मशीन के लिए सही शब्द नहीं है। ऐसा लगता है कि टाइम मशीन सिर्फ एक वृद्धिशील बैकअप से अधिक है, लेकिन मैं इसे स्नैपशॉट आधारित बैकअप जैसे स्नैपर या rsnapshot कहकर सहज नहीं था, लेकिन शायद यह बेहतर होगा। इस क्षेत्र के बारे में बहुत कुछ जानने के बाद आपको यह शब्द संपादित करने में खुशी होगी।
स्ट्रॉन्गबैड

मैंने स्नैपर के होमपेज पर जो पढ़ा है, उसमें से स्नैपर एक बैकअप टूल नहीं है। इसके बावजूद कि स्नैपर समय में वापस जा सकता है, इसका मतलब यह नहीं है कि यह टाइम मशीन की तरह है। आवश्यक अंतर यह है कि टाइम मशीन सभी डेटा की प्रतियों को एक अलग माध्यम से संग्रहीत करती है, जहाँ स्नैपर भी प्रतिलिपि नहीं बना सकता है।
प्रो बैकअप

@ProBackup अंत में, एक उत्तर लिखें और बताएं कि मेलिंग सूची पर उत्तर के बारे में मेरे निष्कर्ष गलत क्यों हैं। इस तरह हम देख सकते हैं कि समुदाय कैसा महसूस करता है।
स्ट्रॉन्गबैड

3

आपके पास कुल 2 64 स्नैपशॉट और सबवोल्यूम हो सकते हैं।

btrfsडिजाइन विकि पृष्ठ कहते हैं (empahsis मेरा):

Subvolumes मूल रूप से एक नामित btree है जो फ़ाइलों और निर्देशिकाओं को रखता है। वे पेड़ की जड़ों के पेड़ के अंदर इनोड हैं और गैर-रूट मालिक और समूह हो सकते हैं। सबवॉल्म्स को ब्लॉकों का कोटा दिया जा सकता है, और एक बार इस कोटा तक पहुंचने के बाद कोई नया लिखना अनुमति नहीं है। सब ब्लॉक और फ़ाइल सबवूल्स के अंदर मौजूद विस्तार स्नैपशॉट की अनुमति देने के लिए गिना जाता है। एफएस पर 2 से 64 उपवस्त्र बनाए जा सकते हैं।

स्नैपशॉट सबवॉल्म के समान हैं , लेकिन उनका रूट ब्लॉक शुरू में एक और सबवोल्यूम के साथ साझा किया जाता है। जब स्नैपशॉट लिया जाता है, तो रूट ब्लॉक पर संदर्भ संख्या में वृद्धि की जाती है, और राइट ट्रांजेक्शन सिस्टम पर कॉपी स्नैपशॉट या स्रोत सबवोल्यूम में किए गए परिवर्तनों को सुनिश्चित करता है। स्नैपशॉट लेखन योग्य हैं, और उन्हें किसी भी समय फिर से स्नैपशॉट किया जा सकता है। यदि केवल स्नैपशॉट पढ़े जाते हैं, तो उनका ब्लॉक कोटा निर्माण समय पर एक पर सेट हो जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.