लिनक्स - कोटा प्रति निर्देशिका?


21

मेरे पास निम्नलिखित परिदृश्य हैं:

डिस्क स्थान के बहुत से एकल विभाजन / के रूप में घुड़सवार /।

निर्देशिकाओं की एक श्रृंखला है (/ pg / tbs1, / pg / tbs2, / pg / tbs3 और इसी तरह), और मैं इन निर्देशिकाओं के कुल आकार को सीमित करना चाहूंगा।

एक विकल्प कुछ बड़ी फाइलें बनाना है, और फिर उन्हें mkfs, और लूपबैक पर माउंट करें, और फिर कोटा सेट करें, लेकिन यह विस्तार को थोड़ा समस्याग्रस्त बनाता है।

क्या प्रति निर्देशिका कोटा कार्य करने का कोई अन्य तरीका है?

linux  quota 

लूपबैक के माध्यम से फाइल माउंट करना वास्तव में विस्तार की समस्या पेश नहीं करता है। आप बस अंतर्निहित फ़ाइल का विस्तार करेंगे और फिर फ़ाइल resize2fsसिस्टम को विकसित करने के लिए उपयोग करेंगे। मुझे लगता है कि LVM का उपयोग करना एक बेहतर उपाय है, लेकिन आपने जो प्रस्ताव दिया है, उसकी सीमाएँ आपके विचार से नहीं हैं।
लार्क्स

यह भी btrfs और zfs
हैंशेंरिक

जवाबों:


17

यदि आप ext3 का उपयोग करने के लिए मजबूर हैं, तो LVM का उपयोग करना संभवतः आपका सबसे अच्छा समाधान है। प्रति प्रोजेक्ट एक नया फाइलसिस्टम बनाएं। यह कुछ इस तरह दिखेगा:

# Create a 10g filesystem for "project1" in volume group "vg0"
lvcreate -L 10g -n project1 vg0

# Create an ext3 filesystem.
mke2fs -j /dev/vg0/project1

# Mount it (obviously you would want this in /etc/fstab)
mount /dev/vg0/project1 /projects/project1

प्रोजेक्ट फाइलसिस्टम को बढ़ाना आसान है:

# Add 2GB to the volume.
lvextend -L +2g /dev/vg0/project1

# Grow the filesystem.
resize2fs /dev/vg0/project1

6

यदि आप समूह की अनुमतियों पर भरोसा नहीं करते हैं, तो आप प्रत्येक "कोटा निर्देशिका" के लिए एक अलग UNIX समूह का उपयोग कर सकते हैं, फिर प्रत्येक निर्देशिका पर sgid बिट सेट करें (इसलिए बनाई गई फ़ाइलें और निर्देशिकाएं प्राथमिक समूह के बजाय निर्देशिका के समूह से संबंधित होंगी निर्माता उपयोगकर्ता), और समूह कोटा का उपयोग करें।


5

हाँ। XFS फाइलसिस्टम और प्रोजेक्ट कोटा देखें। अन्य फाइल सिस्टम इस सुविधा की पेशकश नहीं करते हैं।


दुर्भाग्य से मैं अंतर्निहित fs नहीं बदल सकता। लेकिन यह जानना अच्छा है कि XFS में यह क्षमता है।

5

मैं वास्तव में कुछ समय के लिए ऐसा करना चाहता था क्योंकि मैं अपने सभी वर्चुअल मेल उपयोगकर्ताओं के लिए सिस्टम उपयोगकर्ता बनाना नहीं चाहता था। ZFS फाइल सिस्टम कोटा के साथ बहुत अच्छा होगा, और zfs-fuse हर दिन प्रगति करता है, लेकिन जो मैं चाहता था वह बहुत हल्का समाधान था। अंत में मैंने एक FUSE फाइल सिस्टम लिखने का फैसला किया जिसे मैं किसी अन्य फाइल सिस्टम पर एक परत के रूप में माउंट कर सकता हूं (कोई भी आधार निर्देशिका वास्तव में काम करेगी)। कोटा के प्रबंधन के लिए इसकी एक उपयोगिता है जिसे आसानी से लिपिबद्ध किया जा सकता है और चूंकि कोटा मान केवल निर्देशिका या फ़ाइलों पर xattrs के रूप में संग्रहीत किए जाते हैं, एक माउंटपॉइंट कोटा की एक मनमानी संख्या के लिए समर्थन प्रदान कर सकता है।

मैं थोड़ी देर के लिए मेल सर्वर पर इसका परीक्षण कर रहा हूं और हाल ही में निर्णय लिया गया है कि यह किशोरावस्था में पहुंच गया है और जंगली में रिलीज होने के लिए तैयार है। यदि आप उत्सुक हैं, तो आप http://code.google.com/p/fusequota/ पर इसे देख सकते हैं । मैं किसी भी प्रतिक्रिया की बहुत सराहना करूंगा।



मेरे लिए Git दर्पण ने काम नहीं किया। कोई त्रुटि नहीं है, लेकिन मैं कोटा को पार कर सकता हूं (ext4 पर आरोह विकल्प rw, रिलेटाइम, डेटा = ऑर्डर किया गया)
टाइमडेल्स

3

प्रत्येक साझा फ़ोल्डर के लिए नया फाइलसिस्टम IMHO ओवरकिल है। प्रत्येक साझा किए गए फ़ोल्डर के लिए नया समूह बनाएं, इस समूह के लिए साझा फ़ोल्डर के स्वामी समूह को सेट करें, समूह के लिए एक चिपचिपा बिट सेट करें (ताकि हर नई फ़ाइल और निर्देशिका में इस समूह का स्वामी हो) और फ़ाइलों और फ़ोल्डरों पर अनुमतियों के लिए acl सूचियों का उपयोग करें। फिर इन समूहों के लिए कोटा निर्धारित करें।


1

मैं प्रति निर्देशिका उद्धरण सेट करने के लिए किसी भी विधि से अवगत नहीं हूं।

लेकिन सीमित आकार के साथ फाइल-सिस्टम बनाने के आपके विचार के साथ। यह एक ऐसी जगह हो सकती है जहां lvm एक अच्छा समाधान होगा।

आप बैकअप कर सकते हैं / फिर से इंस्टॉल कर सकते हैं और lvm का उपयोग कर सकते हैं , केवल अपने तार्किक संस्करणों के लिए आवश्यक न्यूनतम स्थान आवंटित कर सकते हैं। Lvm लॉजिकल वॉल्यूम को बढ़ाना बहुत आसान है ।

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