"डिस्क कोटा पार हो गया" जब / tmp के लिए लिख रहा था, लेकिन बहुत सारे स्थान (linux)


9

मेरे पास एक वीपीएस है। यह कुख्यात समानताएं plesk के साथ प्रबंधित है।

आज मैंने संदेश देखना शुरू कर दिया (वर्डप्रेस के माध्यम से, लेकिन कमांड लाइन शेल से भी), यह कहते हुए: "डिस्क कोटा पार हो गया"।

user@machine:~$ echo aaa > /tmp/aaa
-bash: /tmp/aaa: Disk quota exceeded

लेकिन मशीन पर बहुत सारी जगह है, और केवल 1 विभाजन है।

user@machine:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vzfs             100G   24G   77G  24% /

मैंने / tmp / * से सभी फ़ाइलों को हटा दिया, लेकिन फिर भी।

मैं "vzfs" के बारे में कुछ नहीं जानता, शायद यह अपराधी है?

क्या गलत हो सकता है? और इसे कैसे ठीक कर सकते हैं?

समाधान!

(यदि आप समानताएं Plesk का उपयोग नहीं करते हैं, तो @ Adalee का उत्तर देखें)

मेरे मामले में, समानांतर प्रणाली के लिए प्रासंगिक @deltik समाधान देखें।

df -i ने तुरंत इनोडेस का एक नया नंबर दिया: 18,446,744,069,620,218,961 जो एक वर्डप्रेस वेबसाइट के लिए पागल है।

मैंने आगे पता लगाया और पाया कि क्यूमेल की कतार इनोड्स से भरी हुई है (यह मेरी मशीन को स्पैम में उपयोग करने के लिए कुछ हैकर के अटैचमेंट्स के साथ भरी हुई है, और विफलता के उत्तर)

फिक्सिंग केमेल यहाँ प्रासंगिक नहीं है, लेकिन मेरा समाधान प्रासंगिक है:

  1. क्यूमेल की सेवा बंद कर दी
  2. मैं ओवर-कोटा सिस्टम में qmhandle को डाउनलोड करने में सक्षम नहीं था , इसलिए मुझे करना पड़ा
  3. स्क्रिप्ट को दूसरी वेबसाइट पर निकालें और अपलोड करें,
  4. इस आदेश के साथ कतार हटाएं:
  5. perl <(wget -O - http://link.to.my/script.pl ) -D

इस तरह से यह स्क्रिप्ट सीधे वेब से चल रही है (जो एक सुरक्षित अभ्यास नहीं है, लेकिन मैंने स्क्रिप्ट को खुद से रखा है), अन्य अनुभाग विकल्पों के साथ।

जानने के लिए धन्यवाद @deltik और तुरंत मौके पर इस अजीबोगरीब सेटअप को पहचानने के लिए, और आगे निदान के लिए साधन प्रदान करना !!!


लिनक्स में उपयोगकर्ता या समूह आधारित डिस्क कोटा आवंटन सेटिंग्स हैं। साथ ही उन्हें चेक यूनिक्स / लिनक्स पर सेटअप उपयोगकर्ता और समूह डिस्क कोटा के 5 चरण
DavidPostill

1
हां, vzfs(OpenVZ "वर्चुअल" फाइलसिस्टम) इसका कारण हो सकता है। मैंने कई OpenVZ प्रदाताओं को देखा है जो असंभव सस्ते सर्वर बेचते हैं, लेकिन उन पर असंभव रूप से बेवकूफ सीमाएं निर्धारित करते हैं।
user1686

यदि आपके पास कोई समाधान है, भले ही विशिष्ट हो, कृपया इसे उत्तर के रूप में पोस्ट करें। आप हमेशा किसी और के उत्तर को स्वीकार कर सकते हैं।
डैनियल बी

जवाबों:


15

आपके पास एक VZFS फाइलसिस्टम है, जिसका अर्थ है कि आपका VPS एक समानताएं वर्चुअज़ो वर्चुअल मशीन है। वर्चुअज़ो में होस्टिंग प्रदाता कई मापदंडों पर सीमाएं निर्धारित कर सकता है, जिसमें आपको वीजेडएस के साथ मिलने वाले आवंटन भी शामिल हैं।

कारण: इनोड से बाहर (सबसे आम)

सैकड़ों Virtuozzo VPS ग्राहकों के साथ काम करने के बाद, जिनके पास फ़ाइलों को बनाने में असमर्थ होने का मुद्दा था, भले ही वहाँ बहुत सारे खाली स्थान दिखाई दिए, उनमें से अधिकांश अपनी इनोड सीमा तक पहुंच गए थे। इनोड आवंटन ( Inodes), उपयोग किए गए इनोड्स ( IUsed), शेष इनोड्स ( IFree), और उपयोग किए गए इनोड्स का प्रतिशत ( ) देखने के लिए इस कमांड को चलाएँ IUse%:

df -i

100% इनोड उपयोग होने से बहुत कुछ होता है। मेरे अनुभव में सामान्य कारण:

  • स्पैम ईमेल बाउंसबैक
  • आउटबाउंड स्पैम ईमेल पंक्तिबद्ध हैं
  • बहुत सारे इनबाउंड ईमेल संग्रहीत हैं
  • कुछ उपयोगकर्ता session.gc_maxlifetimeसौ से अधिक वर्षों के लिए अपने PHP सत्र कचरा संग्रह ( ) की स्थापना करते हैं
  • बहुत सारी सामान्य कैश फाइलें
  • वर्डप्रेस प्लगइन W3 कुल कैश में ऑब्जेक्ट कैश सक्षम किया गया
  • Magento त्रुटि लॉग (हर त्रुटि के लिए एक नई फ़ाइल उत्पन्न होती है)
  • अन्य खराब कॉन्फ़िगर या खराब डिज़ाइन किए गए प्रोग्राम / स्क्रिप्ट जो फ़ाइलों का एक गुच्छा बनाते हैं और उन्हें हटाना भूल जाते हैं

समस्या निवारण

यदि आप पाते हैं कि आप कम या बाहर हैं, लेकिन पता नहीं है कि उनमें से अधिकांश कहां हैं, तो मेरे पास यह बैश वन-लाइनर है जो वर्तमान निर्देशिका को खोजता है और 1 की फ़ोल्डर गहराई पर इनोड को गिनता है:

for i in $(find $(pwd) -maxdepth 1 -type d | sort); do echo -e "$(find "$i" | wc -l)\t: $(readlink -f "$i")"; done | sort -nr

आप चालू कामकाजी निर्देशिका को /तब तक बदलते रह सकते हैं जब तक आप अपने इनोड आवंटन का उपयोग करके अपराधी को ढूंढ नहीं लेते।

व्याख्या

आपका VPS एक VZFS फाइलसिस्टम पर है, जो Parallels Virtuozzo का हिस्सा है (OpenVZ नहीं, जो समान और उसी तकनीक पर आधारित है, लेकिन OpenVZ VZFS का उपयोग नहीं करेगा)।

जिस तरह से वर्जुज़ो वीजेडएफएस में फाइलों को स्टोर करता है, इनोड्स अक्सर सीमित होते हैं, क्योंकि वे एक्सपी 4 या एक्सएफएस जैसे अन्य फाइल सिस्टम पर होंगे। मेजबान इन सभी फाइलों को ट्रैक करता है, और यह होस्टिंग प्रदाता के लिए फायदेमंद होगा कि वह एक भी VPS को सैकड़ों लाखों इनकोड न लेने दे। परिणामस्वरूप, होस्टिंग प्रदाता कम आयतन की सीमा निर्धारित कर सकता है, जैसे कि 1,000,000 आयोड।

सैकड़ों ग्राहकों के साथ काम करने के बाद, जिन्होंने Virtuozzo पर अपने इनोड आवंटन को समाप्त कर दिया, ये "रहस्यमय" डिस्क कोटा मुद्दे अब और आश्चर्यचकित नहीं करते हैं।

कारण: अन्य Virtuozzo सीमाएँ

मेरे द्वारा काम किए गए Virtuozzo VPS ग्राहकों का एक बहुत छोटा प्रतिशत, फाइलसिस्टम मुद्दों के साथ काम किया है क्योंकि वे अन्य सीमाएं मारते हैं। आप इस कमांड के साथ सीमा के कुछ (लेकिन सभी नहीं) देख सकते हैं:

cat /proc/user_beancounters

समस्या निवारण

यदि failcntस्तंभ का मान 0 से अधिक है या heldस्तंभ का मान संबंधित limitमान के बराबर है , तो आपने एक सीमा मार दी है।

आप देख सकते हैं कि OpenVZ के विकि पर प्रत्येक पैरामीटर क्या है । एक पैरामीटर "प्राथमिक", "माध्यमिक" या "सहायक" हो सकता है।

आगे की सहायता के लिए आपको अपने होस्टिंग प्रदाता से संपर्क करना चाहिए यदि आप पाते हैं कि आप heldएक सीमा तक गिनती में कमी नहीं कर सकते हैं जो आपके वीपीएस तक पहुंच गई है।

इस उत्तर को बहुत विस्तार दिया जा सकता है जिसके आधार पर सेम को अधिकतम किया गया था, क्योंकि विभिन्न लक्षणों तक पहुंचने के लिए अलग-अलग सीमाएं होती हैं।

कारण: सीमा (एस) हिट होने के बाद कम हो गई

के बारे में /proc/user_beancountersया df -i, कभी-कभी, एक वर्चुअज़ो सिस्टम प्रशासक मूल्य के limitनीचे एक पैरामीटर को कम कर सकता है held

उदाहरण के लिए, यदि diskinodesपैरामीटर की मूल सीमा 1,500,000 थी और आपने सीमा को हिट कर दिया था, तो आपके होस्टिंग प्रदाता में कोई व्यक्ति आपकी इनोड लिमिट को 1,000,000 पर सेट करता है, तो आपको एक विचित्र इनोड रिपोर्ट दिखाई देगी, df -iजिसका कोई अर्थ नहीं है।

अपने अंत में, आप 18,446,744,069,620,218,961 की तरह अनुचित रूप से बड़ी संख्या देख सकते हैं ।

मैं इसे होस्टिंग प्रदाता से एक भयावह व्यवहार मानता हूं, खासकर अगर वे आपको सूचित नहीं करते हैं, क्योंकि आपके द्वारा देखे जाने वाले असामान्य मूल्य सुपरयूज़ो / ओपनवीजेड के साथ अनुभव नहीं करते हैं, जो भ्रामक है। सलाह ( उदाहरण , दूसरा उदाहरण )।

समस्या निवारण

अपने होस्टिंग प्रदाता से संपर्क करें। उन्हें दिखाओ कि तुमने क्या पाया और उनके साथ काम करने के लिए अपनी नीचे की सीमा को प्राप्त करें।

यदि वे आपकी सहायता करने से इंकार करते हैं, तो अपने होस्टिंग प्रदाता को खोदें और एक और ऐसा लगाएं जो Virtuozzo / OpenVZ वर्चुअलाइजेशन का उपयोग नहीं करता है। KVM वर्चुअलाइजेशन, वीएमवेयर वर्चुअलाइजेशन, एक्सएन वर्चुअलाइजेशन, या नंगे धातु सर्वर वर्चुअज्जो / ओपनवीजेड की तुलना में बहुत कम सीमा के अधीन होंगे।

व्याख्या

आपका होस्टिंग प्रदाता किसी अलर्ट की ऑडिटिंग या प्रतिक्रिया दे रहा होगा और पाया कि आपका VPS बहुत अधिक विशिष्ट संसाधन का उपयोग कर रहा था (लगभग हमेशा इनोड्स सीमा, जो diskinodesउनके अंत में पैरामीटर है)।

होस्टिंग प्रदाता में एक अनुभवहीन Virtuozzo व्यवस्थापक का मानना ​​है कि वे वास्तविक संसाधन उपयोग की तुलना में कुछ कम करने के लिए सीमा को कम करके समस्या को कैप कर सकते हैं। इनोड्स के मामले में, आपके पास कम आवंटन हो सकता है, जैसे कि 1,000,000, भले ही आपका वास्तविक वर्तमान उपयोग 1,500,000 की तरह अधिक हो।

उनके नियंत्रण कक्ष में Virtuozzo व्यवस्थापक आपके वास्तविक उपयोग और नई सीमा को देखेगा, लेकिन आप फर्जी संख्याओं को देखेंगे जो संभवतः उस तरीके से बहुत अधिक अनुचित हैं जो कि Virtuozzo virtualizes।

एक लापरवाह Virtuozzo व्यवस्थापक आपको इस बदलाव के बारे में सूचित नहीं करेगा, यही कारण है कि यदि आपके साथ ऐसा होता है, तो आपको अपने होस्टिंग प्रदाता से संपर्क करना चाहिए।


मुझे नहीं पता कि 18,446,744,069,620,218,961 किसी साइट के लिए इनकोड की स्वीकार्य संख्या है जो वर्डप्रेस चलाता है ...
बेरी तिकाला

@ फेसबेकला: क्या उपयोग किए गए इनोड की संख्या या फाइलसिस्टम द्वारा समर्थित इनोड की कुल संख्या है? यदि आप कमांड का पूरा आउटपुट प्रदान कर सकते हैं, तो हम सुनिश्चित हो सकते हैं। अब तक आपने जो कुछ भी लिखा था, उसके आधार पर ऐसा लगता है कि आपके होस्ट के पास इनकोड सीमा निर्धारित नहीं है, जिसका अर्थ है कि मैं गलत होगा। मेरे पास आपके लिए एक अद्यतन उत्तर होगा जो कि पुण्युज्जो की सीमाओं को आगे बढ़ाता है।
डेल्टिक

@BerryTsakala: यह सिर्फ मेरे लिए हुआ है कि आपका मेजबान कुछ भयावह कर रहा है और उम्मीद है कि आप ध्यान नहीं देंगे। मैं विवरण के साथ शीघ्र ही अपना उत्तर अपडेट करूंगा।
डेल्टिक

धन्यवाद! मैंने पहले ही निरर्थक फ़ाइलों को हटाना शुरू कर दिया था। मुझे यह भी पता चला कि एक स्पैमर सिस्टम का दुरुपयोग करता है, और ईमेल क्यूमेल की कतार को भर रहे हैं।
बेरी त्सकाला

BTW, इनोड का योग नहीं है: df -i 100 ट्रिलियन गुना बड़ा है, जबकि tje राशि खोज ... कमांड के माध्यम से लौटी है। क्या आप जानते हैं कि विसंगति का पता कैसे लगाया जाए?
बेरी त्सकाला

4

"डिस्क कोटा पार हो गया" का अर्थ यह नहीं है कि आपकी डिस्क पर कोई स्थान उपलब्ध नहीं है, लेकिन आपको इतनी जगह का उपयोग करने की अनुमति नहीं है।

सामान्य तौर पर, कोटा प्रशासक द्वारा निर्धारित कुछ सीमाएँ होती हैं - अधिकतम प्रक्रियाएँ जिन्हें आप चला सकते हैं, आप कितनी जगह ले सकते हैं, आपके पास कितनी फाइलें हो सकती हैं, आदि। डिस्क कोटा अधिकतम संख्या में इनोड और डिस्क ब्लॉक के लिए सेट किया जा सकता है।

चलाने की कोशिश करें quotaऔर quota -g(वैकल्पिक रूप से, आप चला सकते हैं repquota -uऔर repqouta -g) यह देखने के लिए कि क्या आपका उपयोगकर्ता इस तरह से प्रतिबंधित है और कैसे। यदि हाँ, तो आप उन कोटा को संपादित कर सकते हैं edquotaया उन्हें quotaoffकमांड से बंद कर सकते हैं । आपको अपनी सेटिंग्स के आधार पर इसके लिए रूट के रूप में लॉग इन करना पड़ सकता है।

यह साइट कुछ उदाहरणों को शामिल करती है कि कोटा के साथ कैसे काम किया जाए और इसमें उपयोगी कमांड के लिए मैनुअल पेज के लिंक भी शामिल हैं।

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