बहुत सारी बड़ी फ़ाइलों को हटाने के बाद, एक बड़ी देरी के साथ मुक्त स्थान बढ़ता है


15

कल, मैंने अपने घर / मीडिया सर्वर पर 71 जीबी फाइलें डिलीट की हैं।
फ्री स्पेस इससे पहले: 117 जीबी के
बाद फ्री स्पेस: 126 जीबी

इसलिए, 71 जीबी अतिरिक्त खाली जगह होने के बजाय, मेरे पास केवल 9 जीबी था। मैंने डबल-चेक किया है कि कोई भी फाइल नहीं खुली थी और मैंने वास्तव में 71 जीबी डिलीट कर दिया है और फ्री स्पेस वास्तव में केवल 9 जीबी ही बढ़ा है।

मैंने सिंक करने की भी कोशिश की, लेकिन कोई असर नहीं हुआ।

ऐसा पहली बार नहीं हुआ है। वास्तव में, मैंने इस व्यवहार को वर्षों से देखा है। पहले ext3 पर, अब ext4 पर।
जब ऐसा होता है, तो मैं मुक्त स्थान को अनमाउंट करके और फिर फाइल सिस्टम को रिमूव करके पुनः प्राप्त कर सकता हूं। इन मामलों में, बिना समय के लगभग 2 मिनट लगते हैं।

आजकल, मैं आसानी से फाइल सिस्टम को अनमाउंट और रिमूव नहीं कर सकता, क्योंकि यह स्थायी रूप से मेरे वीडियो रिकॉर्डर सॉफ्टवेयर, मेरे परिवार के लिए स्वयं के सर्वर, और कुछ और सेवाओं में व्यस्त है, जो मैंने अभी तक नहीं किया था। और मैं रात में 3 बजे उठना नहीं चाहता हूं, बस अनमाउंट और रिमाउंट करना है।

नहीं, 'पर' उपयोगिता नहीं चलेगी क्योंकि सेवाओं में से एक नॉन रेज्युमेबल लॉन्ग रनिंग टास्क करती है और इस तरह एक अच्छे पल को खोजने के लिए मैन्युअल स्टेट चेक की जरूरत होती है, जब इसे बंद किया जा सकता है, यानी एक काम अभी खत्म हुआ था।

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

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

फाइलसिस्टम को रूट ( mkfs -m 0) के लिए 0% आरक्षित के साथ बनाया गया था । के अनुसार fsck -f(मैं हमेशा अनमाउंट और रिमाउंट के बीच ऐसा कर रहा हूं), फाइल सिस्टम दूषित नहीं है, और स्मार्ट डायग्नोस्टिक्स विस्तारित परीक्षण के अनुसार, हार्डवेयर भी ठीक है।

[संपादित करें]

tune2fs 1.42 (29-Nov-2011)  
Filesystem volume name:   bigdata  
Last mounted on:          /bigdata  
Filesystem UUID:          6aebd17a-e064-41dc-9c68-c9a3acbe4f66  
Filesystem magic number:  0xEF53  
Filesystem revision #:    1 (dynamic)  
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize  
Filesystem flags:         signed_directory_hash   
Default mount options:    user_xattr acl  
Filesystem state:         clean  
Errors behavior:          Continue  
Filesystem OS type:       Linux  
Inode count:              121413632  
Block count:              485645568  
Reserved block count:     0  
Free blocks:              29081276  
Free inodes:              121382378  
First block:              0  
Block size:               4096  
Fragment size:            4096  
Reserved GDT blocks:      908  
Blocks per group:         32768  
Fragments per group:      32768  
Inodes per group:         8192  
Inode blocks per group:   512  
Flex block group size:    16  
Filesystem created:       Tue Dec 25 23:42:35 2012  
Last mount time:          Fri Jan  3 17:37:36 2014  
Last write time:          Fri Jan  3 17:37:36 2014  
Mount count:              37  
Maximum mount count:      -1  
Last checked:             Thu Apr 18 17:03:40 2013  
Check interval:           0 (<none>)  
Lifetime writes:          14 TB  
Reserved blocks uid:      0 (user root)  
Reserved blocks gid:      0 (group root)  
First inode:              11  
Inode size:           256  
Required extra isize:     28  
Desired extra isize:      28  
Journal inode:            8  
Default directory hash:   half_md4  
Directory Hash Seed:      be2b977e-5127-4843-9123-fe33b6d7b573  
Journal backup:           inode blocks  

[/ संपादित करें]

तो यहाँ मेरे 2 प्रश्न हैं:

  1. यहाँ क्या हो रहा है? अंतरिक्ष को umount पर या तुरंत हटाने के बजाय देरी से क्यों मुक्त किया गया है?
  2. वहाँ कुछ मैं अंतरिक्ष मुक्त कराने को गति प्रदान कर सकते हैं तो अभी unmounting और remounting के बिना?

यह मेरे लिए बहुत कुछ खुशबू आ रही है जैसे फ़ाइल (ओं) अभी भी कुछ द्वारा खुले हैं। आप कैसे पुष्टि कर रहे हैं कि डिलीट करने के बाद कोई भी फाइल नहीं खुली है? lsof | grep -i deletedआमतौर पर यह जांचने का सबसे अच्छा तरीका है।
गैरेट

2
आम तौर पर जब आप फाइलें खोलते हैं, तो आप फाइल सिस्टम को umount नहीं कर सकते। इसलिए, यदि ओम्ाउंट सफल होता है, तो कोई खुली फाइलें नहीं हैं। कल को छोड़कर, जब मैंने इस पर ध्यान दिया, तो मैंने हमेशा ऑमाउंट, री-माउंट चक्र किया।
मार्कस एन।

वास्तव में यही मामला है। आपके ext4 माउंट विकल्प क्या हैं?
गैरेट

noatime, चूक
मार्कस एन।

क्या आपके पास कुछ प्रकार की बैकअप प्रणाली चल रही है जो शायद फ़ाइलों की प्रतियां, या वैकल्पिक रूप से हार्डलिंक उनके पास रख सकती हैं?
derobert

जवाबों:


9

दो कारक हैं जो बातचीत कर सकते हैं।

  • विंडोज के विपरीत आप खुली हुई फ़ाइलों को हटा सकते हैं। यदि आप स्ट्रीम की जा रही किसी मूवी को हटाते हैं, तो उसे डायरेक्ट्री से हटा दिया जाएगा, लेकिन स्ट्रीमिंग प्रोग्राम के बंद होने तक फाइल के रूप में मौजूद रहेगी। एक बार स्ट्रीमिंग सॉफ्टवेयर इसे बंद कर देता है, तो अंतरिक्ष जारी किया जाएगा। fuser -mआदेश खुली फ़ाइलों के साथ किसी भी प्रक्रियाओं की प्रक्रिया आईडी को खोजने के लिए इस्तेमाल किया जा सकता। जब वे उनके साथ किए जाते हैं, तो कुछ प्रोग्राम्स तुरंत फाइलें बंद नहीं कर सकते हैं।

  • ये दोनों जर्नल फाइल सिस्टम हैं। परिवर्तन एक पत्रिका को लिखे जाते हैं और फिर प्रतिबद्ध होते हैं। परिवर्तनों को करने में कुछ समय लग सकता है। ऑपरेटिंग सिस्टम अक्सर डिस्क परिवर्तन को कैश करेगा और केवल समय-समय पर डिस्क में बदलाव करेगा। syncकमांड चलाने से डिस्क में किसी भी लंबित परिवर्तन को फ्लश करना चाहिए। syncविकल्प के साथ डिस्क को माउंट करने से डिस्क की गति में सुधार होगा, लेकिन डिस्क को कठिन काम करता है।


1
हां, मुझे पता है कि मैं खुली हुई फ़ाइलों को हटा सकता हूं। मुझे निर्देशिका प्रविष्टियों और इनोड्स के बीच संबंधों के बारे में पता है। लेकिन मुझे यकीन है कि फाइलें खुली नहीं थीं, अन्यथा मैं फाइलसिस्टम को यूमाउंट नहीं कर पाऊंगा ... लेकिन आपका दूसरा आइटम दिलचस्प प्रतीत होता है। क्या वास्तव में डिलीट हुई फाइलों को कमिट करने में 30 मिनट से ज्यादा लग सकते हैं? 30 मिनट फ़ाइलों को हटाने और कल से एक दिन पहले बिस्तर पर जाने के बीच का समय है, इसलिए मैं यह नहीं बता सकता कि वास्तव में कितना समय लगा।
मार्कस एन।

1
@MarkusN। कुछ ऑपरेटिंग सिस्टम बहुत सारे फ़ाइल सिस्टम डेटा को कैश करते हैं। यदि स्थान की आवश्यकता नहीं है, तो वे यह सुनिश्चित करने के लिए पर्याप्त लेनदेन लॉग डेटा लिख ​​सकते हैं कि अंतरिक्ष खाली हो गया है, लेकिन अंतरिक्ष खाली करने में अपना समय लें। यदि आप बहुत सारे डेटा लिखने के बाद USB कुंजी को अनमाउंट करते हैं, तो डेटा को निकालने से पहले उसे निकालने में लंबा समय लग सकता है। यह डिस्क से सुरक्षित रूप से लिखने और अन्य कार्यों में देरी न करने के बीच एक व्यापार है।
BillThor

संपादन के लिए धन्यवाद। लेकिन जैसा कि आप मेरे मूल प्रश्न में देखते हैं, मैंने पहले ही बिना किसी प्रभाव के सिंक की कोशिश की।
मार्कस एन।

1
@MarkusN। मुझे नहीं लगता कि सिंक उतना प्रभावी है जितना एक बार था। यह संभवतया यह सुनिश्चित करता है कि जर्नल डेटा लिखा जाए, जरूरी नहीं कि सभी परिवर्तन प्रतिबद्ध हों। अनमाउंट / माउंट जर्नल को लागू करने के लिए मजबूर करेगा। मैं विलोपन के लिए समयबद्धता प्राथमिकता नहीं जानता, लेकिन मैं यह अपेक्षा करूंगा कि यह अपेक्षाकृत कम होगी। कोड की खोज आपके सवालों के अधिक जवाब दे सकती है।
BillThor

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