क्या लिनक्स में एक्स-फाइलसिस्टम को अपने लिए कम जगह का उपयोग करने का एक तरीका है?


48

मेरे पास बाहरी और आंतरिक एचडीडी का एक गुच्छा है जो मैं लिनक्स सिस्टम पर उपयोग करता हूं। मेरे पास केवल लिनक्स सिस्टम है, इसलिए लिनक्स फाइल-सिस्टम का उपयोग करना केवल समझ में आता है, है ना? हालांकि मैं वर्तमान में हर जगह NTFS का उपयोग कर रहा हूं, क्योंकि यह मुझे HDDs से सबसे अधिक उपयोग करने योग्य स्थान देता है।

मैं अब लिनक्स फाइल-सिस्टम पर स्विच करना चाहूंगा, हालांकि ज्यादातर अनुमतियों और संगतता के कारण (जैसे कि मैं लिनक्स के तहत आकार बदलने के लिए अपने एलयूकेएस एनक्रिप्टेड एनटीएफएस विभाजन को प्राप्त नहीं कर सकता, मुझे विंडोज के तहत chkdsk बताता रहता है)।

हालाँकि जब मैंने उन HDDs को स्वरूपित किया तो मैंने अलग-अलग फाइल सिस्टम और हर लिनक्स फाइल सिस्टम के एक समूह की कोशिश की, यहाँ तक कि ext2 जो कि मुझे पता है कि कोई पत्रकारिता नहीं है, अपने लिए बहुत सारी जगह का उपयोग करता है। मुझे सटीक मान याद नहीं हैं, लेकिन यह 100GB से अधिक था कि NTFS ने मुझे 2TB HDD पर अधिक मिला, जो बहुत कुछ है।

तो मेरा सवाल यह है कि क्या एक्स-फाइलसिस्टम बनाने के लिए अपने लिए कम जगह का उपयोग करने का कोई तरीका है? या वहाँ एक और फाइलसिस्टम है (मैंने ext2, ext3, ext4, NTFS और vfat की कोशिश की है - उनमें से कोई भी सही लिनक्स समर्थन और महान उपयोग करने योग्य स्थान के साथ प्रयोग करने योग्य स्थान NTFS की पेशकश के करीब भी नहीं आया था)?

मैं कैसे और क्यों filesystems (विशेष रूप से ext2 जो कोई जर्नलिंग है) के बारे में सुनने के लिए प्यार करता हूँ NTFS की तुलना में बहुत अधिक जगह का उपयोग करें और मुझे नहीं पता कि कहां और क्या पूछना है। मैं ज्यादातर जर्नलिंग के बिना ext4 का उपयोग करने का एक तरीका पसंद करता हूं और कुछ और जो इस जगह का उपयोग करता है, अगर यह संभव है।



4
मेरे पास है, और यह बताता है कि अतिरिक्त स्थान का उपयोग क्या है लेकिन NTFS और ext के बीच का अंतर MUCH है जो रीसेरफ़ेट्स और ext के बीच की तुलना में बड़ा है, और मैं सोच रहा हूं कि क्या इसे छोटा करने का कोई तरीका है। उदाहरण के लिए 1TB HDD पर मैं NTFS के साथ 989GB का उपयोग करने में सक्षम हूं। ext4 मुझे लगभग 909GB देगा।
कंफ़ेद्दी

काफी उचित। निर्णय प्रश्न और उत्तर भी ज्ञानवर्धक है।
जाकगोल्ड

3
आप वास्तव में कैसे मापते हैं कि अंतरिक्ष उपलब्ध है? यह महत्वपूर्ण है क्योंकि आप जिन मूल्यों को देखते हैं, उनके आधार पर या उदाहरण के लिए 5% आरक्षण का प्रभाव नहीं देखा जा सकता है जैसा कि जुड़े हुए प्रश्न में कहा गया है
eMBee

2
ध्यान रखें कि ext3 और ext4 जैसे फाइल सिस्टम पर जर्नलिंग एक अच्छी बात है। बाहरी ड्राइव पर बिजली खोना या दुर्घटना होने पर उसे अनप्लग करना बहुत आसान है, अगर यह USB है, जब ऐसा होता है, तो यह अक्सर कोई बड़ी बात नहीं होती है क्योंकि यह पत्रिका का उपयोग करने वाले को तब ही ठीक करता है जब वह वापस शुरू होता है। उस सुरक्षा जाल के बिना, चीजें बहुत खराब होंगी। यह सिर्फ अधिक का मामला नहीं है बेहतर है।
जो

जवाबों:


97

डिफ़ॉल्ट रूप से, ext2 और इसके उत्तराधिकारी मूल उपयोगकर्ता द्वारा उपयोग के लिए 5% फाइल सिस्टम को आरक्षित करते हैं। यह विखंडन को कम करता है, और यह कम संभावना बनाता है कि व्यवस्थापक या किसी भी रूट-स्वामित्व वाले डेमॉन को काम करने के लिए कोई जगह नहीं छोड़ी जाएगी।

ये आरक्षित ब्लॉक आपकी डिस्क को भरने से प्रोग्राम को रूट के रूप में नहीं चलने से रोकते हैं। क्या ये विचार क्षमता के नुकसान को सही ठहराते हैं, इस बात पर निर्भर करता है कि फाइलसिस्टम का उपयोग किस लिए किया जाता है।

5% राशि 1980 के दशक में सेट की गई थी जब डिस्क बहुत छोटे थे, लेकिन बस के रूप में छोड़ दिया गया था। आजकल 1% शायद सिस्टम स्थिरता के लिए पर्याप्त है।

कमांड के -mविकल्प का उपयोग करके आरक्षण को बदला जा सकता है tune2fs:

tune2fs -m 0 /dev/sda1

यह आरक्षित ब्लॉक प्रतिशत को 0% (0 ब्लॉक) पर सेट करेगा।

वर्तमान मान प्राप्त करने के लिए (दूसरों के बीच), कमांड का उपयोग करें:

tune2fs -l <device> 

10
यह प्रयोग करने योग्य स्थान में पूरी तरह से अंतर की व्याख्या करेगा (2TB के 5% 100GB हैं)। डिस्क का उपयोग रूट या सिस्टम-फ़ाइल से संबंधित किसी भी चीज़ के लिए नहीं किया जाएगा, इसलिए मुझे लगता है कि इसे अक्षम करने के लिए इसे सहेजना होगा। हालांकि मुझे एक सवाल मिला: रूट-स्वामित्व वाले कार्यक्रम कैसे जानते हैं कि गैर-रूट कार्यक्रमों की तुलना में अधिक खाली स्थान है? dfगैर-रूट बनाम रूट के रूप में चलने से कोई अंतर नहीं दिखता है।
कॉन्फ़ेटी

12
@confetti: क्योंकि VFS डिस्क को एक त्रुटि के साथ लिखने के अपने प्रयासों को अस्वीकार नहीं करता है (जब तक कि वॉल्यूम वास्तव में पूर्ण नहीं है, निश्चित रूप से)।
इग्नासियो वाज़केज़-अब्राम्स

1
tune2fs -l <device>इस मूल्य को दूसरों के बीच देना चाहिए। 5% राशि 1980 के दशक में सेट की गई थी जब डिस्क बहुत छोटे थे, लेकिन बस के रूप में छोड़ दिया गया था। आजकल 1% शायद सिस्टम स्थिरता के लिए पर्याप्त है।
harrymc 19

7
XFS में 5% या 8192 ब्लॉक (32 MiB) का भंडार होता है, इसलिए फ़ाइल सिस्टम के आकार की तुलना में आरक्षित राशि आमतौर पर छोटी होती है।
माइकल हैम्पटन

5
स्पष्टीकरण के लिए आप सभी को बहुत बहुत धन्यवाद। इससे मुझे बहुत समझने में मदद मिली। मेरी डिस्क पहले इसके अंतिम बाइट के लिए पूरी तरह से भर जाती थी, फिर भी मेरा सिस्टम पूरी तरह से विफल नहीं हुआ, अब मैं समझता हूं कि क्यों।
कंफ़ेद्दी

3

यदि आप जिस डेटा को उस पर संग्रहीत करने का इरादा रखते हैं, वह संपीड़ित है, तो btrfs के साथ घुड़सवार compress=zstd(या compress-force=zstd) प्रोब्बल के लिए महत्वपूर्ण रूप से कम डिस्क स्थान का उपयोग करेगा।

  • यह आपके डेटा को डिस्क में लिखने से पहले btrfs को पारदर्शी रूप से संपीड़ित करेगा, और इसे वापस पढ़ने पर पारदर्शी रूप से इसे विघटित करेगा। फाइल सिस्टम निर्माण के सभी इनोड्स को पूर्व-आबंटित करें, btrfs उन्हें आवश्यकतानुसार बनाते हैं, मुझे लगता है कि कुछ स्थान भी बचा सकता है।

1
क्या आपको इस उत्तर में और जानकारी जोड़ने का मन है? (यह कैसे काम करता है, यह क्या करता है, शायद एक संदर्भ ...)
कंफ़ेद्दी

@confetti इस तरह? पैचवर्क।
कर्नेल.org

मैं वास्तव में इस विचार को पसंद करता हूं, लेकिन इस बारे में अधिक जानकारी कि यह कैसे गति और प्रदर्शन को प्रभावित करेगा और इस तरह अच्छा होगा।
कंफ़ेद्दी

2
@confetti, जब से आप हार्ड ड्राइव का उपयोग कर रहे हैं, यह संभवतः प्रदर्शन में सुधार लाएगा। सीपीयू हार्ड ड्राइव की तुलना में बहुत तेज हैं कि डिस्क एक्सेस का धीमा हिस्सा डिस्क पर डेटा को बंद कर रहा है; संपीड़ित या विघटित करने में लगा समय ध्यान देने योग्य नहीं होगा।
मार्क

2
दूसरी ओर, आजकल अधिकांश प्रकार की बड़ी फाइलें (जैसे चित्र, ऑडियो, वीडियो, यहां तक ​​कि सबसे समृद्ध पाठ दस्तावेज़ प्रारूप) पहले से ही संकुचित हो जाती हैं, और आमतौर पर अतिरिक्त संपीड़न से लाभ नहीं होता है। कम से कम साधारण सामान्य-उद्देश्य वाले प्रकार का नहीं जो कि फाइल सिस्टम स्तर पर किया जाता है।
इल्मरी करोनें

3

एक अन्य बिंदु जिसके बारे में अभी तक बात नहीं की गई है वह है आपके फाइल सिस्टम पर आपके द्वारा आरक्षित किए गए इनोड की संख्या।

डिफ़ॉल्ट रूप से, mkfs कई संख्याओं को बनाता है, जो आपके फ़ाइल सिस्टम में बहुत सारी छोटी फ़ाइलों को रखना संभव बनाता है। यदि आप जानते हैं कि फाइलें बहुत बड़ी होंगी और आप एफएस पर बहुत कम संख्या में फाइलें डालेंगे, तो आप इनकोड की संख्या को कम कर सकते हैं।

ख्याल रखना! यह संख्या (रिक्ति और स्थान और संख्याओं के बीच का अनुपात) केवल फ़ाइल सिस्टम निर्माण समय पर सेट की जा सकती है। एफएस का विस्तार करते समय भी, अनुपात समान रहता है।


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

@Perkins आप सही हैं, लेकिन मुझे लगता है कि यह केवल बहुत छोटी फ़ाइलों के लिए है: डिफ़ॉल्ट ब्लॉक आकार 4kiB (IIRC) है, न्यूनतम 1 kiB है। तो जीतने के लिए बहुत ज्यादा नहीं है, सिवाय आपकी डिस्क वास्तव में उन फाइलों से भरी हुई है। लेकिन फिर भी, मैं इस कल में गोता लगा सकता हूं।
glglgl

2
या वैकल्पिक रूप से btrfs का उपयोग करें, जो आवश्यकतानुसार इनकोड बनाता है। जबकि ext4 के इनोड्स फाइलसिस्टम क्रिएशन के समय में आवंटित किए जाते हैं और निर्माण के बाद आकार में नहीं बदले जा सकते हैं, 4 बिलियन की हार्ड लिमिट के साथ, btrfs के इनोड्स को गतिशील रूप से आवश्यकतानुसार बनाया जाता है, और हार्ड लिमिट 2 ^ 64, लगभग 18.4 क्विंटल है, जो लगभग 4.6 बिलियन है। एक अधिकतम ext4 की हार्ड सीमा से कई गुना अधिक: p
हैंशेंरिक

मुझे एक यूनीनेट स्पूल स्थापित करने की याद दिलाता है। ext4 छोटे स्टोर करेगा (सीमा बहुत सारी चीजों के आधार पर 60-160 बाइट्स से होती है) इनोड के भीतर ही।
mr.spuratic

@hanshenrik ध्यान दें कि आपके पास btrfs पर एक समान अवरोधन सीमा है (इसके चारों ओर काम करने के कुछ अतिरिक्त तरीकों के साथ) इसलिए आपको अभी भी यह जानना होगा कि किस प्रकार की फाइलें (बड़ी या छोटी या दोनों) आप स्टोर करने जा रहे हैं। अपने फाइलसिस्टम को इस हिसाब से ट्यून करें कि आप उसमें से अधिक से अधिक स्टोरेज को निचोड़ना चाहते हैं। यदि आप शराबी डेटा संग्रहीत कर रहे हैं, तो स्वचालित संपीड़न की उपलब्धता काफी थोड़ी मदद करती है।
पर्किन्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.