यदि उदाहरण के लिए 5 बिलियन फ़ाइलों के हस्तांतरण के साथ, एक्स 4 विभाजन में 4 बिलियन फ़ाइलों की सीमा पार हो गई तो क्या होगा?
यदि उदाहरण के लिए 5 बिलियन फ़ाइलों के हस्तांतरण के साथ, एक्स 4 विभाजन में 4 बिलियन फ़ाइलों की सीमा पार हो गई तो क्या होगा?
जवाबों:
संभवतः, आपको "डिवाइस पर कोई स्थान नहीं छोड़ा" त्रुटि का कुछ स्वाद दिखाई देगा:
# truncate -s 100M foobar.img
# mkfs.ext4 foobar.img
Creating filesystem with 102400 1k blocks and 25688 inodes
---> number of inodes determined at mkfs time ^^^^^
# mount -o loop foobar.img loop/
# touch loop/{1..25688}
touch: cannot touch 'loop/25678': No space left on device
touch: cannot touch 'loop/25679': No space left on device
touch: cannot touch 'loop/25680': No space left on device
और व्यवहार में आपने इस सीमा को "4 बिलियन फ़ाइलों" की तुलना में बहुत जल्दी मारा। दोनों के साथ अपने फाइलसिस्टम की जाँच करें df -h
और df -i
यह पता लगाने के लिए कि कितना स्थान बचा है।
# df -h loop/
Filesystem Size Used Avail Use% Mounted on
/dev/loop0 93M 2.1M 84M 3% /dev/shm/loop
# df -i loop/
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/loop0 25688 25688 0 100% /dev/shm/loop
इस उदाहरण में, यदि आपकी फाइलें औसतन 4K आकार की नहीं हैं, तो आप संग्रहण-स्थान की तुलना में बहुत जल्दी इनोड-स्पेस से बाहर निकल जाते हैं। यह एक और अनुपात निर्दिष्ट करने के लिए संभव है ( mke2fs -N number-of-inodes
या -i bytes-per-inode
या -T usage-type
में परिभाषित के रूप में /etc/mke2fs.conf
)।
git repack
तो अलग-अलग ऑब्जेक्ट्स को एक पैक फ़ाइल में संयोजित करने के लिए प्रत्येक गिट रिपॉजिटरी में चलने का प्रयास करें ।
touch
, कोई फैंसी नहीं echo
, आप एक महत्वपूर्ण बिंदु और अक्सर बनाई गई गलत धारणा भी दिखाते हैं: खाली फ़ाइलों के साथ डिस्क भरना संभव है।
git repack
किसी भी कार्यक्षमता को ढीला नहीं करता है, यह अभी भी कार्यात्मक रूप से एक ही गैटो रेपो है, tar
यह कई कार्यक्रमों के लिए अपठनीय बनाता है जो एक परियोजना या गिट रिपॉजिटरी की उम्मीद करता है
एक बार सीमा समाप्त हो जाने के बाद, फ़ाइलों को बनाने के बाद के प्रयास विफल हो जाएंगे ENOSPC
, यह दर्शाता है कि लक्ष्य फ़ाइल सिस्टम में नई फ़ाइलों के लिए कोई जगह नहीं है।
आपके द्वारा वर्णित परिदृश्य में, यह आम तौर पर एक बार सीमा समाप्त होने के बाद स्थानांतरण को रद्द कर देगा।