BTRFS सबवोल्यूम का नाम कैसे बदलें?


24

मेरे पास एक BTRFS फाइल सिस्टम है जिसमें उसमें सबवॉल्म्स का एक सेट है। अब तक सब ठीक है। मुझे एक सबवॉल्म का नाम बदलने की जरूरत है, दुर्भाग्य से btrfsकार्यक्रम मुझे एक सबवोल्यूम का नाम बदलने की अनुमति नहीं देता है। Google के साथ खोज करने पर कुछ परिणाम मिले हैं, एक ने कहा कि मैं बस कर सकता हूं mv, दूसरे ने कहा कि मैं बस snapshotएक नए नाम के लिए और पुराने सबवोल्यूम को हटा सकता हूं । इससे पहले कि मैं अपने विभाजन को दुर्घटनाग्रस्त करूँ और इसे बैकअप से पुनः लोड करूँ (यह काफी बड़ा है), मेरा प्रश्न यह है:

  • वर्तमान में एक सबवोल्यूम का नाम बदलने का सबसे अच्छा तरीका क्या है?
  • क्या यह सिर्फ ठीक है mv, या यह कुछ आंतरिक संरचनाओं को अमान्य कर देगा?
  • एक नया स्नैपशॉट बना रहा है और पुराने सबवोल्यूम को जाने का रास्ता निकाल रहा है, या इसमें कुछ कमियां हैं?

मुझे पता है कि सब कुछ अभी भी प्रयोगात्मक है, लेकिन मेरे उद्देश्यों के लिए यह काफी अच्छा काम कर रहा है (अब तक, और मेरे पास प्रत्येक दिन के लिए वृद्धिशील बैकअप है)।


1
सुनकर खुशी हुई कि आपके लिए btrfs अच्छा काम कर रहा है। यह मेरे लिए भी बहुत अच्छा काम कर रहा है। कोई समस्या नहीं।
मोनिका सेलियो के लिए माउंटेनएक्स

जवाबों:


16

बस mvयह। उबंटू समुदाय के प्रलेखन में यह अनुशंसित तरीका है ।

और यह स्पष्ट करने के लिए कि ऐसा करने का सही तरीका क्यों है, यहाँ btrfs sysadmin गाइड का एक उद्धरण है:

स्नैपशॉट्स

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


8

ध्यान देने योग्य कुछ महत्वपूर्ण बातें हैं। नम:

btrfs Subvolume - स्वतंत्र डेटा कंटेनर insideफ़ाइल सिस्टम। इसे मौजूदा FS की निर्देशिका के रूप में दर्शाया गया है । यदि आप नया सबवोल्यूम बनाते हैं, तो यह खाली हो जाएगा, फाइल सिस्टम के अंदर तार्किक डेटा ब्लॉक का उपयोग करने के लिए तैयार है। उपयोग करने के लिए बहुत सुविधाजनक है जहां डेटा को तार्किक रूप से अलग किया जाना चाहिए जैसे विभिन्न वीएम या अलग-अलग सबवॉल्म पर अलग-अलग क्लाइंट। यह सिर्फ सबवोल्यूम डिलीट कमांड के साथ सभी लॉजिकल डेटा ब्लॉक very fastको हटाने की अनुमति देता है ।

btrfs स्नैपशॉट - existingओएस स्नैपशॉट किए गए पल में अपने सभी डेटा के साथ सबवोल्यूम की एक प्रति । सेटिंग्स या परिवर्तनों को बदलने के लिए परिचालन बैकअप के रूप में इस्तेमाल किया जा सकता है, उदाहरण के लिए सबवोल्यूम स्नैपशॉट बनाएं, परिवर्तन करें (वीएम या डेटा), परीक्षण करें कि क्या सबकुछ ठीक है, कुछ अनुग्रह अवधि के बाद स्नैपशॉट को हटा दें। नोट करने के लिए महत्वपूर्ण: स्नैपशॉट को केवल ( -rस्विच) पढ़ा जा सकता है और इस प्रकार एफएस परिवर्तनों के वृद्धि ब्लॉकों के रूप में इस्तेमाल किया जा सकता है और संभवतः बिल्कुल दूसरे बीटीआरएफएस में स्थानांतरित किया जा सकता है!

वर्तमान (2016-12-30) BTRFS सीमाएँ:

सबवॉल्म्स के बीच डेटा को कॉपी या मूव करना, जैसे mv dir1/dataset1 dir_subvolume1/किसी दूसरे सबवॉल्म में डेटा को कॉपी करने के लिए सभी वास्तविक io का उत्पादन करता है और मूव के मामले में, मूल एक को हटा देता है। और केवल संदर्भ बनाकर और BTRFS की गाय सुविधा का उपयोग करके टन डेटा की बहुत कुशल नकल:

cp -a --reflink=always dir1/dataset1 dir_subvolume1/

और यदि आवश्यक हो:

rm -rf dir1/dataset1

पढ़ें केवल Subvolume स्नैपशॉट का नाम बदला जा सकता है (ले जाया गया mv) मौजूदा निर्देशिका स्तर पर, लेकिन इसका नाम बदला नहीं जा सकता / अलग-अलग उपनिर्देशिका स्तर पर ले जाया जा सकता है। उदाहरण के mv /btrfs/subvol_snap1 /btrfs/.snaphotsलिए संभव नहीं है, बहुत अधिक स्पष्ट त्रुटि पैदा नहीं करता है mv: cannot move 'subvol_snap1' to '.snapshots/subvol_snap1': Read-only file system:। इस तरह के स्नैपशॉट को स्थानांतरित करने में सक्षम होने के लिए, आपको नए रीड-ओनली स्नैपशॉट को केवल नए पसंदीदा स्थान पर बनाने की आवश्यकता है और फिर पुराने को हटा दें:

btrfs sub snap -r /btrfs/subvol_snap1 /btrfs/.snaphots/subvol_snap1
btrfs sub del /btrfs/subvol_snap1

अधिक आसान लाइव के लिए:

btrfs sub list /btrfs

मुझे उम्मीद है कि यह सभी नए btrfs प्रशंसकों के लिए समय की बचत करेगा :)


4

यदि आप रूट वॉल्यूम को नेस्टेड सबवोल्यूम में बदलना चाहते हैं, तो आपको इसे स्नैपशॉट करना होगा और फिर find $ROOT_VOL -xdev -deleteरूट वॉल्यूम की पिछली सामग्री को हटाने के लिए करना होगा । रिवर्स हेरफेर (रूट वॉल्यूम के लिए एक सबवोल्यूम का नाम बदलना) संभव नहीं लगता है।

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