Günlük kaydı dosya sistemleri elektrik kesintisinden sonra yolsuzluğa karşı garanti veriyor mu?


Yanıtlar:


21

Garantisi yok. Günlük Dosyalama Sistemi daha dayanıklıdır ve yolsuzluğa daha az eğilimlidir, ancak bağışıklık kazanmaz.

Tüm bir dergi, yakın zamanda dosya sistemine yapılan işlemlerin bir listesidir. Önemli olan, dergi girişinin işlemlerin gerçekleşmesinden önce yapılmasıdır . Çoğu işlemin birden fazla adımı vardır. Örneğin bir dosyayı silmek, örneğin dosya sisteminin içindekiler tablosundaki dosyanın girişini silmeyi ve ardından sürücüdeki kesimleri serbest olarak işaretlemeyi gerektirebilir. İki adım arasında bir şey olursa, günlüklenmiş bir dosya sistemi derhal anlatabilir ve her şeyi tutarlı tutmak için gerekli temizliği yapabilir. Bu, hataları bulmak için birimin tüm içeriğine bakması gereken, günlüğe kaydedilmemiş bir dosya sistemi için geçerli değildir.

Bu günlük kaydı, günlüğe kaydetmekten çok yolsuzluğa daha az eğilimli olmakla birlikte, yolsuzluk hala olabilir. Örneğin, sabit disk mekanik olarak arızalıysa veya dergiye yazıyorsa arıza veya kesintiye uğramışsa.

Günlük tutmanın temel önceliği, bir dergi girişi yazmanın, genellikle tarif ettiği fiili işlemden çok daha hızlı olmasıdır. Bu nedenle, işletim sistemi (günlük) bir yazı siparişi veren ve bunu yerine getiren sabit sürücü arasındaki süre normal bir yazma için olduğundan çok daha kısadır: işlerin yanlış gitmesi için daha dar bir pencere, ancak hala bir pencere vardır.

daha fazla okuma


Lütfen bunun neden doğru olduğunu biraz açıklayabilir misiniz? Belki de belirli bir senaryoda yolsuzluğun nasıl olacağını gösteren bir örnek verebilirsiniz.
Nathan Osman

1
@ George Edison Genişletilmiş cevabımı gör.
Andrew Lambert

2
Bu son bit yanlış; işlerin ters gitmesi için bir pencere yoktur. Yapmaya başlamadan önce ne yapmak üzere olduğunu kaydettiği için, işlem sırasında hangi noktada gerçekleştiğine bakılmaksızın elektrik kesintisinden sonra işlem yeniden başlatılabilir. Bu bir sipariş meselesi, zamanlama değil.
psusi

@ psusi hala derginin yazısının kesileceği bir pencere var. Dergi yazıları OS'ye atomik görünebilir ancak yine de diske yazarlar.
Andrew Lambert

5
@Amazed onlar atomik çünkü sıra numaraları ve / veya sağlama toplamları, bu nedenle dergi girişi ya tamamen yazılmış ya da değil. Tamamen yazılmazsa, sistem yeniden başlatıldıktan sonra basitçe göz ardı edilir ve fs üzerinde başka hiçbir değişiklik yapılmadığı için tutarlı kalır.
psusi

18

Yok hayır.

Meta veri günlüğü adı verilen en yaygın günlük kaydı türü, verilerin değil yalnızca dosya sisteminin bütünlüğünü korur. Bu xfs, ve varsayılan modda ext3/ içerir .ext4data=ordered

Günlük kaydı olmayan bir dosya sistemi çökerse, bir fscksonraki önyüklemede kullanılarak kontrol edilir . Dosya sistemindeki fsckher düğmeyi tarar , kullanılmış olarak işaretlenmiş ancak erişilemez (yani dosya adı yoktur) olan blokları arar ve kullanılmayan olarak bu blokları işaretler. Bunu yapmak uzun zaman alıyor.

Meta veri günlüğü dosya sistemi ile, bir yapmak yerine, fsckdeğişimin ortasında hangi blokları olduğunu bilir, böylece tüm bölümleri aramadan ücretsiz olarak işaretleyebilir.

Veri günlüğü adı verilen daha az yaygın bir günlük türü vardır ext3; bu data=journalseçenek , seçeneğe bağlı kalırsanız ne olur .

Tüm verilerinizi yalnızca mantıksal işlemlerin bir listesini değil, aynı zamanda her yazının içeriğini de dergiye yazarak korumaya çalışır. Ancak verilerinizi iki kez yazdığından, daha yavaş olabilir.

Diğerlerinin de belirttiği gibi, bu bir garanti değildir, çünkü sabit sürücü işletim sistemine hala sabit sürücünün önbelleğindeyken verileri depoladığını söylemiş olabilir.

Daha fazla bilgi için Wikipedia Günlük Kayıt Dosya Sistemi makalesine ve ext4 belgelerinin Veri Modu bölümüne bakın .


1
Dosya sistemi bozulması ve veri bozulması arasındaki ayrım için +1. Bu küçük ayrım pratikte bir sersem.
SplinterReality

Kusura bakma cehaletim ama data=journalbir özellik olarak hiçbir anlam ifade etmiyor mu?
boehj

Yine, işletim sistemi sürücünün verileri ne zaman önbelleğe alacağını bilir ve tutarlı bir fs elde etmek için gerektiğinde temizlemeye zorlar. Tabii ki veri dosyanız, güç kesildiğinde yazarken uygulamanın bu kadar dikkatsizce yapılmadığı ve eğer veri kullanıp kullanmamanız durumunda geçerli olursa, kaybolabilir veya bozulabilir.
psusi

@psusi program verilerini yazılı olarak ne kadar dikkatli değil, sessizce bozuk sabit diskler bol OKUMA veri stackoverflow.com/q/34141117/3338098
user3338098

@ user3338098, sessizce bozulan verilerin korkunç şekilde kırıldığını ve hiç kullanılmaması gerektiğini ve yanlış şeyi yapan yazılımın yol açtığı yolsuzluktan tamamen farklı bir konuşma olduğunu söylüyor.
psusi

8

Bir elektrik kesintisi meydana gelirse dosya sistemi tutarlılığını garanti edemez, çünkü donanımın ne yapacağını bilmiyor.

Bir sabit sürücü veriyi yazma için tamponlar ancak işletim sistemine verileri yazdığını ve uygun yazma engellerini desteklemediğini söylerse, daha önceki bir yazının tabağa vurmadığı, ancak daha sonraki bir yazının sıra dışı yazma işlemi olabilir vardır. Daha fazla ayrıntı için bu sunucu hatası yanıtına bakın.

Ayrıca, kafanın manyetik bir HDD üzerindeki konumu elektro mıknatıslarla kontrol edilir. Yazma ortasında güç kesilirse, kafalar hareket ederken bazı verilerin yazmaya devam etmesi, dosya sisteminin asla yazmayı amaçlamadığı bloklardaki verileri bozması mümkündür.


Sürücünün ürün yazılımı, kafayı geri çekerken yazıyı askıya alacak kadar akıllı değil mi?
Nathan Osman

@ George: Bu sürücüye bağlı olacak. Dışarıda çok şey var ve (ucuz) sürücünüzün işleri ne kadar iyi yaptığını bilmiyorsunuz.
camh

1
Sabit sürücü, işletim sistemine önbelleğin arkasına bir yazı yazıp kullanmadığını söyler ve işletim sistemi doğru sırayla temizlendiğinden emin olmak için önlemler alır. Ayrıca sürücüler, güç kesildiğinde yazmayı durduracak şekilde tasarlanmıştır. Sektörün elektrik kesintisi sırasında yazıldığı, ecc güncellemesini tamamlamadığı (ancak doğru şekilde kolayca yeniden yazılabilir), ancak rasgele sektörlerin elektrik kesintisinde bozulduğunu duymadıkları için bozulduğu bazı durumlar gördüm.
psusi

3

Tam olarak bir günlük kaydı dosya sistemi olmayan ancak ZFS, elektrik kesintisinden sonra yolsuzluğa karşı tasarımla garanti altına alıyor.

Devam eden bir yazının ortada olduğu gibi kesintiye uğraması önemli değil, bu durumda, sağlama toplamı kesinlikle hatalı olacak ve blok göz ardı edilecektir. Dosya sistemi yazma üzerine kopyalandığından önceki doğru veriler (veya meta veriler) hala disktedir ve bunun yerine kullanılacaktır.


2

Cevap çoğu durumda hayır:

  • Daha önce mikel dedi çoğu dosya sistemlerini günlük kaydı yapabilirsiniz yalnızca koruma dosyası meta (dosya, Büyüklüğü, izinler, vb adı gibi bilgileri) değil, dosya verileri (dosyanın içeriğini). Bu oluyor çünkü dosya verilerinin korunması çok yavaş (pratikte işe yaramaz) bir dosya sistemi ile sonuçlanıyor.
  • Günlük ayrıca sabit diskte depolanan özel bir dosya türü olduğundan, bir güç kesintisinden sonra zarar görebilir. Bu nedenle, dergi bozulmuşsa, dosya sistemi, elektrik kesintisi gerçekleştiğinde gerçekleşen tamamlanmamış işlemleri tamamlayamaz.

Hangi olaylar bozuk bir dergiye yol açabilir? Aklıma gelen tek şey kötü sektörlerdi - başka bir şey var mı?
Nathan Osman

Bu doğru, donanım arızaları olağan durumdur.
sakisk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.