वहाँ ext4 के लिए एक 'त्वरित' प्रारूप के रूप में ऐसी बात है?


28

विंडोज में, NTFS के साथ प्रारूपित करना बहुत तेज़ है। मेरे पास एक कम शक्ति वाली लिनक्स मशीन है, जिसमें थोड़ी सी रैम है। 2TB वॉल्यूम को ext4 में फ़ॉर्मेट करने में लंबा समय लगता है।

क्या प्रारूप को गति देने के लिए मैं कुछ कर सकता हूं? मैं कल्पना नहीं कर सकता कि क्या इतना लंबा समय लगता है? (क्या इतना समय लगता है)


1
क्या आप इसे प्रारूपित करने के लिए उपयोग कर रहे हैं?
tacotuesday

वर्कअराउंड के रूप में। इसे एक छोटे lvm वॉल्यूम के रूप में बनाने की कोशिश करें, और इसे आवश्यकतानुसार बढ़ाएं? यह किसी भी तरह प्रारंभिक ओवरहेड को कम कर देगा।
सेरेक्स

1
या XFS का उपयोग करें यदि फाइलसिस्टम निर्माण समय वास्तव में आपको परेशान करता है - mkfs.xfs mkfs.ext4 की तुलना में बहुत तेज है (क्योंकि यह - या - करने की आवश्यकता नहीं है)। लेकिन mkfs कुछ ऐसा है जो आप आमतौर पर केवल एक बार फाइलसिस्टम के अनुसार करते हैं - अनुकूलन करने के लिए बेहतर चीजें हैं।
कैस

या ZFS का उपयोग करें। ZFS के साथ फाइल सिस्टम बनाना तात्कालिक के पास है, चाहे उनका आकार कुछ भी हो।
jlliagre

केवल ZFS का उपयोग करें यदि आपके पास एंटरप्राइज क्लास हार्डवेयर है, विशेष रूप से यदि आपके पास ईसीसी रैम है और आपके पास यूपीएस है। यह है की सिफारिश नहीं इन आवश्यकताओं को बिना ZFS उपयोग करने के लिए। स्मृति समता त्रुटि और / या पावर विफलता के बाद आप पुनर्प्राप्त करने में सक्षम नहीं हो सकते हैं। इस मामले में आपकी सभी मात्रा खो जाएगी। आपको चेतावनी दी गई है।
रिचर्ड गोम्स

जवाबों:


16

सख्त जवाब

समाधान जैसे -E lazy_itable_initपरिणाम नहीं बदलते हैं, केवल प्रक्रिया को गति देते हैं। यह वही है जो स्पष्ट रूप से अभी तक पूछा गया है कई मामलों में लोगों को और अधिक की आवश्यकता है।

अतिरिक्त बोनस

ज्यादातर मामलों में आप वास्तव में कुछ विकल्प चाहते हैं जो आपके उपयोग पैटर्न से मेल खाते हों और न केवल फाइल सिस्टम निर्माण में तेजी लाते हैं बल्कि तेजी से उपयोग और अधिक उपयोग करने योग्य स्थान की अनुमति देते हैं।

मैंने सिर्फ एक परीक्षण किया। उपयोग किए बिना भी -E lazy_itable_init, 2TB फाइल सिस्टम के निर्माण के समय के नीचे के विकल्प 16 मिनट 2 सेकंड से 1 मिनट 21 सेकंड (इंटेल i7 2.2GHz पर कर्नेल 3.5.0 64 बिट, USB2 कनेक्शन पर 2TB डिस्क - SATA शायद तेज हो जाएगा। ।

एक फाइलसिस्टम के लिए जो बड़ी फ़ाइलों को रखेगा, मैं इस संयोजन का उपयोग करता हूं:

mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4

जहां -T largefile4विकल्प /etc/mke2fs.confआम तौर पर कुछ शामिल हैं:

    inode_ratio = 4194304
    blocksize = -1

एक है man mke2fsइन विकल्पों में से प्रत्येक पर जानकारी के लिए।

यहाँ प्रासंगिक अर्क हैं:

               sparse_super
                      Create a filesystem with fewer superblock backup copies (saves space on large filesystems).

               large_file
                      Filesystem can contain files that are greater than 2GB.  (Modern kernels set this feature  automatically
                      when a file > 2GB is created.)

   -i bytes-per-inode
          Specify  the  bytes/inode ratio.  mke2fs creates an inode for every bytes-per-inode bytes of space on the disk.  The
          larger the bytes-per-inode ratio, the fewer inodes will be created.  This value generally shouldn't be smaller  than
          the blocksize of the filesystem, since in that case more inodes would be made than can ever be used.  Be warned that
          it is not possible to expand the number of inodes on a filesystem after it is created, so be  careful  deciding  the
          correct value for this parameter.

-m 0केवल रूट के लिए 5% आरक्षित नहीं करने के लिए कहता है, जो डेटा (बूट / रूट नहीं) फाइल सिस्टम के लिए ठीक है। 2TB डिस्क के 5% का मतलब 100Gb है। यह एक बहुत महत्वपूर्ण अंतर है।


1
ध्यान दें कि फाइलसिस्टम को 95% से अधिक प्राप्त करने की अनुमति देने से अत्यधिक विखंडन हो सकता है, प्रदर्शन को काफी धीमा कर सकता है। अगर कुछ भी, अगर किसी को अपने डेटा विभाजन के प्रदर्शन की परवाह है, तो इसे 10% तक बढ़ा दिया जाना चाहिए
मतिजा नालिस

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

दूसरे शब्दों में, यदि औसत फ़ाइल का आकार 4MB से छोटा है, तो "-T bigfile4" का उपयोग न करें। विशाल ड्राइव के लिए मैं अब उपयोग -T hugeकरता हूं जो समाप्त होता है inode_ratio = 65536। यदि संदेह है, तो बस सेट न करें -iया -Tउन बुद्धिमान लोगों को जाने दें जिन्होंने ext2 / 3/4 आपके लिए चुना है। आप हाउसकीपिंग के लिए अंतरिक्ष के एक ज्ञात छोटे हिस्से को आरक्षित करेंगे और (जब तक आप लाखों बहुत छोटी फ़ाइलों को संग्रहीत नहीं करते हैं) आपको वास्तविक भंडारण स्थान के मनमाने प्रतिशत को बर्बाद न करने की गारंटी दी जाती है। जैसा कि लोग लिखते हैं, फैंसी सॉफ्टवेयर अच्छा है, लेकिन एक अच्छा फाइल सिस्टम उबाऊ होना चाहिए और बस काम करना चाहिए।
स्टीफन गौरिचोन

मेरे मामले पर, mkfs.ext4अधिक तेजी से (समय: है real 0m16.001s) की तुलना में mkfs.ext3(समय: real 2m10.336s)।
कुन्नूर

19

ध्वज जोड़ें -E lazy_itable_init

यहाँ मैन पेज क्या कहता है:

यदि सक्षम और uninit_bg सुविधा सक्षम है, तो इनकोड तालिका को mke2fs द्वारा पूरी तरह से आरंभ नहीं किया जाएगा। यह फ़ाइलसिस्टम इनिशियलाइज़ेशन को विशेष रूप से गति प्रदान करता है, लेकिन इसे कर्नेल के लिए बैकग्राउंड में फाइलसिस्टम को इनिशियलाइज़ करने की आवश्यकता होती है जब फाइलसिस्टम पहली बार माउंट होता है। यदि विकल्प मान छोड़ दिया जाता है, तो यह आलसी इनोड टेबल सारणीकरण को सक्षम करने के लिए 1 को डिफॉल्ट करता है।


3
तकनीकी रूप से यह वास्तव में प्रारूप को तेज नहीं बनाता है, लेकिन यह आपको फाइल सिस्टम को माउंट करने और उपयोग करने देता है जबकि प्रारूप पृष्ठभूमि में समाप्त होता है।
वायज़ार्ड

बहुत बहुत धन्यवाद! यह वास्तव में अच्छी तरह से wo4ked, डॉक्स / आदमी मेरे लिए स्पष्ट नहीं थे जब तक पता नहीं था कि क्या देखना है! बहुत बहुत धन्यवाद!
अटक

मैंने न्यूनतम कर्नेल संस्करण के बारे में संदर्भ देखा है, जो इसका उपयोग करने के लिए न्यूनतम आवश्यक है?
एक्सर्स

8

डिफ़ॉल्ट है एक त्वरित प्रारूप; एक अतिरिक्त * वॉल्यूम के लिए संरचना सेट करना NTFS वॉल्यूम की तुलना में अधिक समय लेता है, क्योंकि उनमें से अधिक है। आप सुपरब्लॉक की संख्या को कम कर सकते हैं, लेकिन यहां तक ​​कि केवल इतनी दूर जाता है।


जानकारी के लिए धन्यवाद, मेरे डिवाइस ने लगभग 20 घंटे पहले 2TB USB2 डिस्क को स्वरूपित करना शुरू कर दिया था, यह अभी भी चल रहा है - डिवाइस कम शक्ति वाला है, सोचो रास्पबेरी पाई 64MB RAM के साथ। प्रारूप को शुरू करने के लिए मुझे उसी USB डिस्क को पेजिंग सेटअप करना था जिसे प्रारूपित किया जा रहा है, क्या मैं इसे गति देने के लिए कुछ भी कर सकता हूं? अगर मैं प्रदर्शन को एक या दो घंटे के भीतर करवा पाऊं तो मुझे बहुत अच्छा लगेगा?
अटक गया

2
lazy_itable_init ने मेरे लिए चाल चली, यह डिफ़ॉल्ट नहीं है और प्रारूपण को बहुत तेज बनाता है
अटक

4

यदि आप ज्यादातर बड़ी फ़ाइलों को संग्रहीत कर रहे हैं, तो आप प्रति बाइट्स की संख्या को इनोड में बढ़ा सकते हैं, इस प्रकार निर्मित इनोड की संख्या को कम कर सकते हैं। इससे निर्माण समय में काफी तेजी आ सकती है।

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