Bir BBWC'nin (Batarya destekli yazma önbelleği) ne yapması amaçlandığını biliyorum - ve daha önce bunları iyi UPS'lerde bile sunucularımda kullandım. Bunun için koruma sağlamadığı kesin olarak başarısızlıklar var. Gerçekten pratikte herhangi bir gerçek yarar sağlayıp sağlamadığını anlamak merak ediyorum.
(NB Ben özellikle BBWC sahibi olan ve kaza / arıza olan ve BBWC'nin iyileşmeye yardım edip etmediği konusunda gelen cevapları arıyorum)
Güncelleştirme
Buradaki geri bildirimden sonra, bir BBWC'nin değer katıp katmadığı konusunda giderek kuşkuluyum.
Veri bütünlüğü hakkında herhangi bir güvende olmak için, dosya sistemi verilerin ne zaman geçici olmayan depolamaya bağlı olduğunu bilmelidir (zorunlu olarak disk değil - geri döneceğim bir nokta). Verilerin diske ne zaman yüklendiğiyle ilgili olarak birçok diskin yalan söylediğine dikkat etmek gerekir ( http://brad.livejournal.com/2116715.html ). Diskte önbelleğin devre dışı bırakılmasının diskleri daha dürüst yapabileceğini varsaymak makul görünse de, bunun da böyle olacağının garantisi yoktur.
Bir BBWC'deki tipik olarak büyük tamponlar nedeniyle, bir bariyer, diske gönderilmesi için önemli miktarda daha fazla veri gerektirebilir; bu nedenle yazma işlemlerinde gecikmelere neden olabilir: genel tavsiye, geçici olmayan bir yazma önbelleği kullanırken bariyerleri devre dışı bırakmak ve disk önbelleğe alma). Ancak bunun, yazma işleminin bütünlüğünü baltaladığı görülüyor - uçucu olmayan depolamada daha fazla veri tutulması, bunun daha tutarlı olacağı anlamına gelmez. Aslında, tartışmalı bir şekilde, mantıksal işlemler arasında bir ayrım yapılmadan, tutarlılık sağlama konusunda diğerlerinden daha az fırsat olduğu görülüyor.
BBWC, verilerin geçici olmayan depolamaya girdiği noktada (diske bağlı kalmak yerine) engelleri kabul ederse, o zaman performans cezası olmadan veri bütünlüğü gereksinimini karşıladığı anlaşılmaktadır - bu da engellerin hala etkinleştirilmesi gerektiğini göstermektedir. Bununla birlikte, bu cihazlar genellikle verilerin fiziksel cihaza yıkanmasıyla tutarlı davranışlar (bariyerler ile önemli ölçüde yavaş) ve bariyerleri devre dışı bırakmak için yaygın tavsiye sunduğundan, bu şekilde davranamazlar. NEDEN OLMASIN?
İşletim sistemindeki G / Ç bir dizi akış olarak modellenirse, yazma önbelleği işletim sistemi işletim sistemi tarafından yönetilirken yazma engellemesinin engelleme etkisini en aza indirmek için bir kapsam vardır; çünkü bu düzeyde yalnızca mantıksal işlem (tek bir akış ) taahhüt edilmesi gerekiyor. Öte yandan, işlemin hangi veri bitlerini oluşturduğunu bilmeyen bir BBWC tüm önbelleğini diske adamak zorunda kalacaktı. Çekirdeğin / dosya sistemlerinin bunu pratikte uygulayıp uygulamaması şu anda yatırım yapmaktan çok daha fazla çaba gerektiriyor.
Neyin yapıldığını ve şüphesiz ani güç kaybının yolsuzluğa yol açtığını söyleyen disklerin bir araya gelmesi yolsuzluğa yol açıyor - ve bir kesinti sonrasında tam bir fsck yapmayan bir Journalling ya da log yapılı dosya sistemi ile, yolsuzluğun tek başına tespit edilmesinin muhtemel olmadığı tamir için bir girişimde bulunuldu.
Arıza modları açısından, deneyimlerime göre çoğu ani elektrik kesintisi, şebeke elektriğinin kaybı nedeniyle meydana gelir (bir UPS ile kolayca azaltılabilir ve kapatma). Yanlış kabloyu raftan çeken kişiler kötü veri merkezi hijyenine (etiketleme ve kablo yönetimi) işaret eder. UPS tarafından engellenmeyen bazı ani güç kaybı olayları vardır - PSU’daki veya VRM’deki arızalar, bariyerli bir BBWC burada bir arıza durumunda veri bütünlüğü sağlar, ancak bu tür olaylar ne kadar yaygındır? Buradaki cevapların eksikliğine göre çok nadir değerlendiriliyor.
Hata toleransının yığında daha yüksek bir değere taşınması, BBWC'de çok daha pahalıdır, ancak bir sunucuyu küme olarak uygulamak, performans ve kullanılabilirlik için birçok başka yararı vardır.
Ani güç kaybının etkisini azaltmanın alternatif bir yolu da bir SAN - AoE uygulamak olacaktır. Bunu pratik bir teklif haline getirir (iSCSI'daki noktayı gerçekten göremiyorum) ancak yine de daha yüksek bir maliyet var.