Bu cevap, @ lechlukasz ve @ db48x'in yanı sıra yorumlarda yapılan bazı noktaların yanı sıra kendi düşüncelerimin bir birleşimidir .
İleriye giden basit yol, birleştirilmiş bir dosya sistemi ve ayrı meta veri yaklaşımıdır.
ZFS veya Btrfs gibi anında veri karma ve doğrulama yapan bir dosya sistemi kullanarak (büyük ilerlemeler kaydedilmiş olsa da, Btrfs şu anda üretim için hazır sayılmaz), makul olabilirsiniz veriler işletim sistemi hatası olmadan diskten okunabiliyorsa, okunan verilerin diske dosya sistemi tarafından belirtilen şekilde yazıldığından emin olun. Periyodik "fırçalama" işlemlerini gerçekleştirerek, tüm veriler dosya sisteminin ne olması gerektiği fikrine karşı okunur ve doğrulanır.
Ancak, bu yalnızca diskteki bozulmaya karşı koruma sağlar (okunamayan bloklar, açık donanım yazma hataları, verilerin parçalarını doğrudan blok aygıtında bozan geçersiz yazma işlemleri vb.). Dosyalarda çalışmak için amaçlanan işletim sistemi olanakları aracılığıyla çalışan bir yazılım hatasına, yanlış kullanıcı işlemine veya kötü amaçlı yazılımlara karşı koruma sağlamaz, bu tesislerde bu tür hatalar olmadığı varsayılır.
İkincisine karşı korumak için başka bir koruma katmanına ihtiyacınız var. Kullanıcı uygulamasının perspektifinden veri sağlama veya sağlama, yukarıda belirtilen risklerin çoğuna karşı korunmaya yardımcı olur, ancak ayrı olarak gerçekleştirilmesi gerekir (yazılımda yerleşik bir işlem eylemi olarak veya tamamen ayrı bir işlem olarak).
Bugünün donanımı ve büyük miktarlarda veri depolamak için pratik olanlarla (katı hal diskleri / SSD'lerin aksine döner tabla sabit diskleri), SHA1 gibi karmaşık karma algoritmalar bile büyük ölçüde G / Ç'ye bağlı olacaktır - yani, hız verinin karma olduğu bilgisayar işlemcisinin karma değerini hesaplama becerisi yerine depolama sisteminin okuma hızının bir fonksiyonu olacaktır. 2012 yılında orta seviye bir tüketici bilgisayarı hakkında yaklaşık 150 GB veri üzerinde bir kullanıcı alanı MD5 karma işlemi yürütme denemesi yaptım ve diski yaklaşık 40 dakika boyunca kesintisiz olarak kullandıktan sonra bitti. Bu rakamları 100 katına kadar ölçeklendirdiğinizde, aynı donanımda yaklaşık üç gün içinde 15 TB'lik bir koleksiyonun MD5 karmasını elde edersiniz. Okuma aktarım hızı ekleyerek (kolayca gerçekleştirilebilir örn.Örneğin RAID 0 , RAID 10'u oluşturan RAID 1 ile kombinasyon halinde daha yüksek okuma / yazma performansı elde etmek için yaygın olarak kullanılan artıklık olmadan şeritlemedir ), tamamlanma süresi aynı miktarda veri için azaltılabilir.
İkisini birleştirerek, her iki dünyanın da en iyisini elde edersiniz: dosya sistemi, dosyayı okurken aldığınız şeyin gerçekten yazılan şey olduğuna dair güvence verir ve verilerin tümünün üzerinde ayrı bir sabitlik kontrol işlemi gerçekleştirilebilir. saklananlar hala arşivde yutulanlarla eşleşir. İkisi arasındaki herhangi bir tutarsızlık (dosya sistemi dosyanın iyi olduğunu söyler, sabitlik kontrolü bunun olmadığını söyler), arşivin amaçlanan çalışma modunun dışında, ancak işletim sisteminin tesislerinde değiştirilerek ikincil bir dosyadan geri yükleme isteğinde bulunan bir dosyayı gösterir. kopya (yedek). Bu nedenle, sabitlik kontrolü daha uzun bir zaman aralığında çalışabilir, bu da çok büyük arşivler için gerekli hale gelir, ancak okumaların başarılı olması durumunda herhangi bir çevrimiçi erişimin donanımda bozulmayacağı garanti edilir. Prensip olarak, arşiv yazılımı, tutarsızlıkları okuma hataları olarak bildirmek için dosya sistemine güvenebilir ve kullanıcı dosyayla çalışırken ve dosyanın yutulanla eşleşmediğini belirten uygun bir ileti görüntülediğinden arka planda ayrı bir sabitleme denetimi gerçekleştirebilir arşivin içine. Bir blok karma dosya sistemi kullanmak, böyle bir şemanın algılanan performans üzerinde minimum etkisi olurken, içeriğin doğru olduğundan emin olabilirsiniz.