btrfs: बहुत बड़ा मेटाडेटा आवंटित किया गया


14

मेरे पास एक 256GB SSD डिस्क है जिस पर मैंने अपने ext4 रूट FS को btrfs में बदल दिया है। मैंने ext4 बैकअप सबवॉल्म को मिटा दिया, संपीड़न को सक्षम किया और सभी फ़ाइलों पर इसे सक्षम करने के लिए पुनरावर्ती रूप से डीफ़्रेग्मेंट किया।

btrfs fi df / एक आउटपुट है जो मुझे चिंतित करता है:

Data: total=148.00GB, used=106.11GB
System: total=32.00MB, used=16.00KB
Metadata: total=65.00GB, used=2.04GB

यदि मैं आउटपुट को सही ढंग से समझता हूं, तो 65GB (मेरी डिस्क का 1/4!) मेटा-डेटा के लिए आरक्षित है और फ़ाइलों को संग्रहीत करने के लिए उपलब्ध नहीं है। यदि यह सही है, तो यह मेरी डिस्क स्थान की एक बड़ी बर्बादी होगी। क्या मैं सही तरीके से समझ रहा हूँ? क्या मेरी डिस्क के मेटाडेटा-आवंटित हिस्से का आकार बदला जा सकता है?

जवाबों:


16

पहले, सुनिश्चित करें कि आपका कर्नेल और BTRFS उपयोगकर्ता-स्थान अद्यतित है।

BTRFS FAQ के अनुसार , आप मेटाडेटा ब्लॉक आकार का आकार बदल नहीं सकते हैं। हालाँकि, आप btrfs बैलेंस स्टार्ट -m <माउंट पॉइंट> चलाने की कोशिश कर सकते हैं, जो पूरे डिस्क में मेटाडेटा को फिर से लिंक करेगा और साइड इफ़ेक्ट के रूप में, संभवतः बिना स्पेस के खाली कर सकता है।

यदि वह काम नहीं करता है, तो आपको अपने डेटा का बैकअप लेना होगा और फाइल सिस्टम को फिर से बनाना होगा। ( अधिक जानकारी के लिए इस पर एक नज़र डालें ।)


जवाब के लिए धन्यवाद। कर्नेल 3.11.2 है, btrfs- उपकरण v0.20-rc1 हैं, इसलिए मुझे नहीं लगता कि मैं यहां से बाहर हूं। मैंने एक संतुलन चलाने की कोशिश की, लेकिन फिर मैंने निम्नलिखित बग को मारा: spinics.net/lists/linux-btrfs/msg26977.html और इसके लिए नए कर्नेल को संकलित करने का मन नहीं है। : P मुझे आश्चर्य है कि क्या ये 65GB मेटाडेटा ब्लॉक हैं जिन्हें आकार नहीं दिया जा सकता है, या यदि यह शब्द किसी और चीज़ को संदर्भित करता है। अन्यथा मैं वास्तव में यह नहीं समझ पाता कि मेटाडाटा ब्लॉक पहली जगह में उस आकार के साथ कैसे बना।
Gnurou

दुर्भाग्य से, मैं केवल btrfs का उपयोगकर्ता हूं और विशेषज्ञ नहीं हूं, इसलिए मेरी मदद सीमित है। किसी भी मामले में, यह संभव है कि ext4 से रूपांतरण प्रक्रिया में कोई दोष हो।
होलीपोल

11
इसलिए, आवश्यक पैच ने इसे स्थिर कर्नेल में बनाया, और मैंने कोशिश की है कि आपने क्या सुझाव दिया है। बैलेंसिंग ने मेटा-डेटा के लिए आरक्षित क्षेत्र की मात्रा को कम करके 3GB कर दिया है, और दावा किया गया स्थान अब 'Ff' में मुक्त स्थान के रूप में दिखाई देता है। ध्यान दें कि आपको पूरी डिस्क को रिबैलेंस करने की आवश्यकता नहीं है, आप केवल मेटाडाटा को रीबेलेंस करने के लिए btrfs बैलेंस स्टार्ट -m <माउंट पॉइंट> कर सकते हैं , जो बहुत तेज है। व्यावहारिक उत्तर के लिए धन्यवाद!
गुन्नूर

मैं खुशी से मदद कर सकता है!
होलसेल

"आप मेटाडेटा ब्लॉक आकार का आकार परिवर्तन नहीं कर सकते हैं"। यह इस सवाल के लिए अप्रासंगिक है - एफएक्यू आवंटन इकाई के आकार के बारे में बात करता है, न कि मेटाडेटा के लिए आवंटित अंतरिक्ष की मात्रा।
व्लादिमीर पेंटेलेव 15

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