यह उत्तर @ lechlukasz और @ db48x का एक संयोजन है , जिसमें टिप्पणियों में किए गए कुछ बिंदुओं के साथ-साथ मेरे अपने विचारों को भी शामिल किया गया है।
आगे का सरल मार्ग एक संयुक्त फाइल-सिस्टम और अलग-मेटाडेटा दृष्टिकोण है।
एक फ़ाइल प्रणाली का उपयोग करके जो डेटा हैशिंग और सत्यापन पर उड़ान भरती है, जैसे कि ZFS या Btrfs (ध्यान दें कि हालांकि बहुत अग्रिम किए गए हैं, Btrfs को इस समय उत्पादन उपयोग के लिए तैयार नहीं माना जाता है), आप यथोचित रूप से उपयोग कर सकते हैं। सुनिश्चित करें कि यदि डेटा को ऑपरेटिंग सिस्टम के बिना डिस्क से पढ़ा जा सकता है, तो डेटा रीड को फ़ाइल सिस्टम द्वारा इच्छित तरीके से डिस्क पर लिखा गया था। समय-समय पर "स्क्रब" ऑपरेशन चलाकर, सभी डेटा को फ़ाइल सिस्टम के विचार के खिलाफ पढ़ा और सत्यापित किया जाता है कि यह क्या होना चाहिए।
हालाँकि, यह केवल ऑन-डिस्क भ्रष्टाचार (अपठनीय ब्लॉक, एकमुश्त हार्डवेयर त्रुटियों को लिखने से बचाता है, अवैध रूप से डेटा के भ्रष्ट भागों को ब्लॉक डिवाइस आदि पर लिखता है)। यह एक सॉफ्टवेयर बग, गलत उपयोगकर्ता संचालन, या दुर्भावनापूर्ण सॉफ़्टवेयर से सुरक्षा नहीं करता है जो फ़ाइलों के साथ काम करने के लिए इच्छित ऑपरेटिंग सिस्टम सुविधाओं के माध्यम से काम करता है, यह मानते हुए कि वे सुविधाएं ऐसे बग से मुक्त हैं।
उत्तरार्द्ध से बचाने के लिए, आपको सुरक्षा की एक और परत की आवश्यकता है। उपयोगकर्ता के एप्लिकेशन के दृष्टिकोण से डेटा की जाँच या हैशिंग उपर्युक्त कई जोखिमों से बचाने में मदद करेगा, लेकिन अलग से प्रदर्शन करने की आवश्यकता है (या तो सॉफ़्टवेयर में अंतर्निहित प्रक्रिया कार्रवाई के रूप में, या पूरी तरह से अलग प्रक्रिया के रूप में)।
आज के हार्डवेयर के साथ और बड़ी मात्रा में डेटा (सॉलिड-स्टेट डिस्क्स / SSDs के विपरीत हार्ड डिस्क को कताई करते हुए) के लिए व्यावहारिक है, यहां तक कि SHA1 जैसे जटिल हैशिंग एल्गोरिदम भी काफी हद तक I / O-बाध्य होंगे - यानी गति जिस पर डेटा हैश किया जाता है वह भंडारण प्रणाली की रीड स्पीड का एक फ़ंक्शन होगा, न कि हैश की गणना करने के लिए कंप्यूटर के प्रोसेसर की क्षमता से। मैंने एक उपयोगकर्ता-स्पेस एमडी 5 हैशिंग प्रक्रिया को लगभग 150 जीबी डेटा पर चलाने का एक प्रयोग किया था, जो 2012 में एक मध्य स्तरीय उपभोक्ता पीसी था, और यह लगभग 40 मिनट के लिए मूल रूप से बिना किसी रुकावट के डिस्क का उपयोग करने के बाद समाप्त हो गया। उन आंकड़ों को 100 गुना तक बढ़ाते हुए, आपको उसी हार्डवेयर पर लगभग तीन दिनों के समय में 15 टीबी संग्रह का एमडी 5 हैश मिल जाएगा। रीड ट्रांसफर रेट जोड़कर (जिसे आसानी से पूरा किया जा सकता है उदाउदाहरण के लिए RAID 0 अतिरेक के बिना पट्टी कर रहा है, आमतौर पर उच्चतर पढ़ने / लिखने के प्रदर्शन को संभवतः RAID 1 बनाने के साथ संयोजन में उपयोग किया जाता है RAID 10 ), पूरा होने का समय डेटा की समान मात्रा के लिए कम किया जा सकता है।
दोनों को मिलाकर, आप दोनों दुनियाओं में सर्वश्रेष्ठ हैं: फ़ाइल सिस्टम आपको यह आश्वासन देता है कि फ़ाइल पढ़ने के दौरान आपको जो प्राप्त हुआ था, वह वास्तव में क्या लिखा गया था, और एक अलग फिक्सिंग-चेकिंग प्रक्रिया पूरे संग्रह पर चल सकती है यह सुनिश्चित करती है कि डेटा संग्रहीत अभी भी मेल खाता है जो संग्रह में जोड़ा गया था। दोनों के बीच कोई असंगतता (फ़ाइल सिस्टम कहता है कि फ़ाइल ठीक है, शुद्धता जाँच यह कहती है कि यह नहीं है) एक फ़ाइल को दिखाएगा जो संग्रह के इच्छित मोड के बाहर संशोधित किया गया है लेकिन ऑपरेटिंग सिस्टम की सुविधाओं के भीतर, एक द्वितीयक से पुनर्स्थापना का संकेत देता है कॉपी (बैकअप)। इस प्रकार से जाँच की अवधि लंबे समय के अंतराल पर चल सकती है, जो बहुत बड़े अभिलेखागार के लिए आवश्यक हो जाती है, लेकिन किसी भी ऑनलाइन एक्सेस को अभी भी गारंटी दी जाती है कि यदि रीड सफल होता है तो हार्डवेयर पर भ्रष्ट न हो। सिद्धांत में, संग्रह सॉफ़्टवेयर असंगतताओं को रिपोर्ट करने के लिए फ़ाइल सिस्टम पर भरोसा कर सकता है, क्योंकि त्रुटियों को पढ़ा जा सकता है, और पृष्ठभूमि में एक अलग फिक्सिटी चेक किया जा सकता है क्योंकि उपयोगकर्ता फ़ाइल के साथ काम कर रहा है और एक उपयुक्त संदेश प्रदर्शित कर रहा है जो इंगित करता है कि फ़ाइल मेल नहीं खाती थी। संग्रह में। ब्लॉक-हैशिंग फाइल सिस्टम का उपयोग करते हुए, ऐसी योजना का कथित प्रदर्शन पर कम से कम प्रभाव होगा, जबकि यह सुनिश्चित करने के लिए कि सामग्री सही है।