मैं एक लिनक्स क्लस्टर के उपयोग के साथ कम्प्यूटेशनल रसायन विज्ञान का स्नातक छात्र हूं। क्लस्टर में एक बहुत बड़ी (25 टीबी) फाइलरवर होती है, जिसमें कई दर्जन कंप्यूट नोड्स जुड़े होते हैं। प्रत्येक गणना नोड में 8 से 24 इंटेल Xeon कोर होते हैं। प्रत्येक गणना नोड में लगभग 365 टीबी की एक स्थानीय डिस्क भी होती है।
चूंकि शोधकर्ता समूह में फाइलरवर को नियमित रूप से एक दर्जन या तो उपयोगकर्ताओं द्वारा एक्सेस किया जाता है, इसलिए फाइलसेवर का उपयोग मुख्य रूप से दीर्घकालिक फ़ाइल भंडारण के लिए किया जाता है (यह रात को बैकअप लिया जाता है, जबकि गणना नोड्स के स्थानीय डिस्क कभी भी बैकअप नहीं होते हैं)। इस प्रकार, सिस्टम प्रशासक ने हमें स्थानीय डिस्क पर सिमुलेशन चलाने का निर्देश दिया है - जिनके पास फाइलरवर की तुलना में तेज I / O है - ताकि अन्य उपयोगकर्ताओं के लिए फाइलर को धीमा न करें।
इसलिए, मैं स्थानीय डिस्क पर सिमुलेशन चलाता हूं और फिर, उनके समाप्त होने के बाद, मैं प्रक्षेपवक्र फ़ाइलों की प्रतिलिपि बनाता हूं - मैं आणविक गतिशीलता (एमडी) सिमुलेशन चला रहा हूं - भंडारण के लिए फाइलरवर में। मैं एक प्रक्षेपवक्र बुलाया फ़ाइल है मान लीजिए traj.trr
, एक नोड के स्थानीय डिस्क पर एक निर्देशिका में /home/myusername/mysimulation1/traj.trr
। दीर्घकालिक भंडारण के लिए, मैं हमेशा कॉपी traj.trr
fileserver में एक निर्देशिका करने के लिए, ~/mysimulation1/traj.trr
है, जहां ~
, fileserver में मेरी निर्देशिका का प्रतिनिधित्व करता है /export/home/myusername
। इसे कॉपी करने के बाद, फिर मैं आदतन यह du -h
सत्यापित करने के लिए उपयोग करता हूं कि /home/myusername/mysimulation1/traj.trr
फ़ाइल का आकार समान है ~/mysimulation1/traj.trr
। इस तरह, मैं कम से कम यह सुनिश्चित कर सकता हूं कि फाइलसेवर में स्थानांतरण सफल रहा। उदाहरण के लिए:
cd /home/myusername/mysimulation1/
cp -v traj.trr ~/mysimulation1/
du /home/myusername/mysimulation1/traj.trr -h
du ~/mysimulation1/traj.trr -h
यदि दोनों du -h
एक ही मानव-पठनीय फ़ाइल आकार देने के लिए कहते हैं , तो मैं यथोचित रूप से सुनिश्चित कर सकता हूं कि हस्तांतरण / प्रतिलिपि सफल रही। (मेरी विशिष्ट traj.trr
फाइलें मेरे द्वारा चलाए गए सटीक सिमुलेशन के आधार पर आकार में लगभग 15 से 20 जीबी तक होती हैं।) यदि मैं दो फ़ाइलों पर du
(यानी, -h
स्विच के बिना ) चलाता हूं, तो traj.trr
बाइट्स में उनके आकार आमतौर पर बहुत, बहुत समान हैं - - आमतौर पर सिर्फ कुछ बाइट्स के भीतर। मैं पिछले डेढ़ साल से इस समग्र पद्धति का उपयोग कर रहा हूं, कोई समस्या नहीं है।
हालांकि, हाल ही में मैं निम्नलिखित समस्या में चला गया हूं: कभी-कभीdu -h
रिपोर्ट करती है कि दोtraj.trr
फाइलें कई जीबी से आकार में भिन्न हैं। यहाँ एक उदाहरण है:
cd /home/myusername/mysimulation1/ # this is the local disk
cp -v traj.trr ~/mysimulation1/
du traj.trr -h
cd ~/mysimulation1/ # this is the fileserver
du traj.trr -h
दो कॉल से आउटपुट du -h
क्रमशः इस प्रकार है:
20G traj.trr
28G traj.trr
मेरा मानना है कि पूर्व (यानी, traj.trr
स्थानीय डिस्क में /home/myusername/mysimulation1/
) सही फ़ाइल आकार है, क्योंकि मेरे सिमुलेशन प्रक्षेपवक्र प्रत्येक के बारे में 15 से 20 जीबी होने की उम्मीद है। लेकिन फिर फाइलसेवर पर फ़ाइल वास्तव में बड़ी कैसे हो सकती है ? मैं देख सकता था कि यह कैसे छोटा हो सकता है, अगर किसी तरह cp
स्थानांतरण विफल हो गया। लेकिन मैं नहीं देखता कि यह वास्तव में बड़ा कैसे हो सकता है ।
जब मैं ऊपर के समान कमांड निष्पादित करता हूं, तो मुझे समान आउटपुट मिलता है, लेकिन बिना -h
दिए गए स्विच को du
:
20717480 traj.trr
28666688 traj.trr
क्या आप अंतर के किसी कारण के बारे में सोच सकते हैं?
यदि, कुछ संभावना नहीं है, du
तो किसी तरह से खराबी है, मैं इसके साथ ठीक हो सकता हूं। लेकिन मुझे वास्तव में यह सुनिश्चित करने की आवश्यकता है कि traj.trr
फ़ाइलरवर की प्रतिलिपि स्थानीय डिस्क पर इसके स्रोत संस्करण के लिए पूर्ण और समान है। मुझे स्थानीय फ़ाइल को हटाने की आवश्यकता है ताकि नए सिमुलेशन चलाने के लिए मेरे पास पर्याप्त स्थानीय डिस्क स्थान हो, लेकिन मैं traj.trr
फ़ाइलरवर के संस्करण को दूषित होने का जोखिम नहीं उठा सकता।
.Trr फ़ाइल स्वरूप (Gromacs आणविक गतिशीलता पैकेज से) एक द्विआधारी प्रारूप, नहीं पाठ है। इस प्रकार, मुझे यकीन नहीं है कि यदि प्रोग्राम जैसे प्रोग्राम की तुलना में फ़ाइलों को मज़बूती से रखा जा सकता है diff
।
md5sum
दो फाइलों पर चला । दो चेकसम मेल खाते हैं। तो मुझे लगता है कि इसका मतलब है कि दो फाइलें समान हैं?
ls -l
? कमांड du
रिपोर्ट करती है कि आपकी फ़ाइल के लिए डिस्क पर कितना स्थान है, न कि आपकी फ़ाइल कितनी बड़ी है। डिस्क पर आकार आपके फाइल सिस्टम और इसकी आवंटन रणनीतियों से प्रभावित हो सकता है।
ls -l -h
कहना है कि दोनों फाइलें 20 जीबी की हैं। इसी तरह, ls -l
कहते हैं कि दोनों फाइलें 21214683940 बाइट्स हैं। इसलिए मुझे लगता है कि फाइलें समान आकार की हैं, लेकिन डिस्क स्थान की एक ही राशि का उपयोग नहीं करें (तदनुसार du
)।
md5sum
या चलाने का प्रयासsha1sum
करें। क्या वे मेल खाते हैं?