इनकोड तालिका आम तौर पर resizable क्यों नहीं है?


19

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

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

लेकिन कोई भी (जो मुझे पता है) वास्तव में ऐसा करता है, इसलिए शायद एक पकड़ है जो मुझे याद आ रही है। किसी भी विचार यह क्या हो सकता है?


4
आपने अभी-अभी VMS में मास्टर फाइल डायरेक्टरी और फाइल -11 के इंडेक्स को प्रबलित किया है, NTFS में मास्टर फाइल टेबल के अग्रदूत।
JdeBP

मैंने एमएफटी के लिए अग्रदूत को पुष्ट किया? ठंडा!
मार्क VY

जवाबों:


26

कहते हैं कि आपने इनोड टेबल को एक फाइल बनाया है; फिर अगला सवाल यह है कि आप उस फ़ाइल के बारे में जानकारी कहाँ संग्रहीत करते हैं? इस प्रकार आपको MS-DOS विभाजन तालिका की तरह "वास्तविक" इनकोड और "विस्तारित" इनकोड की आवश्यकता होगी। यह देखते हुए, आपको केवल एक (या शायद कुछ - जैसे, आपकी पत्रिका फ़ाइल होना चाहिए) की आवश्यकता होगी। लेकिन आपके पास वास्तव में विशेष मामले, अलग कोड होंगे। उस फ़ाइल का कोई भी भ्रष्टाचार विनाशकारी होगा। और विचार करें कि, जर्नल करने से पहले, यह उन फ़ाइलों के लिए आम था, जिन्हें लिखा जा रहा था उदा, जब बिजली भारी क्षतिग्रस्त हो गई थी। आपके फ़ाइल संचालन को बहुत अधिक मजबूत बनाम बिजली की विफलता / दुर्घटना / आदि होना चाहिए। की तुलना में वे थे, जैसे, ext2।

पारंपरिक यूनिक्स फाइल सिस्टम को एक सरल (और अधिक मजबूत) समाधान मिला: प्रत्येक एक्स ब्लॉक में एक इनकोड ब्लॉक (या ब्लॉकों का समूह) डालें। फिर आप उन्हें साधारण अंकगणित द्वारा खोजते हैं। बेशक, फिर अधिक जोड़ना संभव नहीं है (संपूर्ण फाइलसिस्टम के पुनर्गठन के बिना)। और यहां तक ​​कि अगर आप इनोड ब्लॉक को खो देते हैं / भ्रष्ट कर देते हैं, तो जब आप लिख रहे थे कि बिजली विफल हो गई है, तो यह केवल कुछ इनोड खो रहा है - फाइल सिस्टम के एक बड़े हिस्से से बेहतर।

अधिक आधुनिक डिजाइन बी-ट्री वेरिएंट जैसी चीजों का उपयोग करते हैं । Btrfs, XFS और ZFS जैसे आधुनिक फाइल सिस्टम इनोड सीमा से ग्रस्त नहीं हैं।


2
जब आप कहते हैं "इनोड सीमा से ग्रस्त नहीं हैं", तो क्या इसका मतलब है कि नए इनोड्स को पूरी तरह से पीछे के दृश्य आवंटित किए जाते हैं, या किसी को "विस्तार-टेबल-अब-कृपया" जैसी कमांड चलाने की आवश्यकता है?
मार्क VY

3
@ मार्की पूरी तरह से पर्दे के पीछे (अगर वास्तव में इनोड्स का इस्तेमाल किया जाता है)।
derobert

ठीक है, इसलिए मेरा ज्ञान स्पष्ट रूप से समय के पीछे है। विस्तृत उत्तर के लिए धन्यवाद। मैंने कभी नहीं सोचा कि बिजली के नुकसान या इसी तरह के मामले में क्या होगा। इसलिए मेरा प्यारा हैक बहुत खतरनाक है जब तक कि "फाइल करने के लिए अपील" फाइल सिस्टम में पहले से ही एक परमाणु ऑपरेशन नहीं है। जो आप दावा करते हैं कि पुराने दिनों में बहुत दुर्लभ था।
मार्क वीवाई

मुझे याद है XFS और btrfs बहुत कभी कभी हल्के फाइल सिस्टम भ्रष्टाचार से पीड़ित - बहुत ZFS? यह कुछ के लिए जोखिम नहीं है, लेकिन यह महत्वपूर्ण डेटा, और गतिशील आवंटन की लागत के लिए एक जोखिम हो सकता है। इस दुकान पर XFS के लिए, किसी भी माध्यम से किसी फ़ाइल सिस्टम को सिकोड़ने के लिए इसका सौदा-तोड़ने का मुद्दा एक पूर्ण अक्षमता थी।
user2066657

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

17

कई फाइल सिस्टम में एक गतिशील रूप से आवंटन योग्य इनकोड तालिका (या इसके नैतिक समतुल्य) (XFS, BTRFS, ZFS, VxFS ...) होती है।

हालांकि, मूल यूनिक्स यूएफएस में फाइल सिस्टम के निर्माण के समय और इनसे प्राप्त होने वाले फाइल सिस्टम थे (लिनक्स EXT, सोलारिस यूएफएस) अक्सर योजना को जारी रखते थे। यह लागू करने के लिए मजबूत और सरल है। इतने सारे उपयोग के मामले एक अच्छा फिट हैं, कि एक नई फाइलसिस्टम को डिजाइन करना सिर्फ इस बात से बचने के लिए कि एक समस्या को सही ठहराना आसान नहीं है।


कंप्यूटिंग में इतनी प्रगति लोगों द्वारा आसान-से-औचित्य-सुलझाने की समस्याओं को हल करने के लिए की गई है, हालांकि।
user253751

2
लेकिन यह भी, आसान-से-समाधान-समाधानों में बहुत प्रगति नहीं है :) प्रारंभिक "जटिल" फ़ाइल सिस्टम - NT युग NTFS, reiserfs - उनके पास असफल होने का एक तरीका था जब वे असफल रहे ....
randandboneman

6

फाइलसिस्टम हैं जो डायनामिक रूप से आवंटित करते हैं: मेरे सिर के ऊपर, कम से कम वेरिटास VxFS (= HP-UX की डिफ़ॉल्ट फाइलसिस्टम, और सोलारिस पर उपलब्ध विकल्पों में से एक) और XFS (RHEL 7 पर मानक फाइल टाइप) उस तरफ। Btrfs और IBM के JFS भी।

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