(Raid-controller-) BBU ne içindir?


13

Bir BBU'nun amacının ne olduğunu merak ediyorum. İlk anlayışım, bir elektrik kesintisi sırasında önbelleğin verileri diske yazmasını sağlamasıydı. Ancak bazı spesifikasyonlar bir BBU'nun verilerini 72 saate kadar tutabileceğini söylüyor. Verilerin diske milisaniye içinde yazılmasını beklerdim (diskin hala gücü olduğu da göz önünde bulundurulur).

Öyleyse bir BBU sadece önbelleği değil, tüm diski de birkaç saniye korumalı mı? Önbellek verileri önbellekte kalmak ve tekrar güç beklemek yerine diske yazıldığından daha güvenli olmaz mıydı? Bir saniye kadar sonra disk kapatılabilir.


RAID piller gerçek sürücülere güç sağlamasa da, dünyamızda hayal ettiğiniz şeylere benzeyen bir şey var: bazı sunucu sınıfı SSD'lerde, bir elektrik kesintisinden sonra önbellek yazma işlemlerini gerçekleştirmek için yedek güç sağlayan "süper kapasitörler" vardır.
Skyhawk

Yanıtlar:


17

Disklere güç vermez, makineyi tekrar çevrimiçi duruma getirene kadar önbellekteki verileri (bu durumda) 72 saate kadar tutar. Makineyi yedeklediğinizde, önbelleğin içeriğini disklere yazar.

Tek yaptığı bir elektrik kesintisine karşı korumaktır. (Herhangi bir nedenden dolayı), verileri diske temiz bir şekilde temizlemeden makine gücünü kaybederse, pil, makineyi yeniden başlatana kadar önbellek içeriğini canlı tutar.

Diskler bir harici disk dizisinde veya farklı bir güç devresinde olabileceğinden, diskler için bir UPS değildir. Bir UPS bile arıza yapabilir.


1
Diskler için bir UPS'in farkı, disklerin aynı güç devresinde olmadığı bir senaryo için tasarlanmasıdır? Diğer tüm durumlarda (bir devrede kontrolör ve diskler) bir UPS daha üstün olur mu? Yine de bir elektrik kesintisi sırasında önbellekte beklemek yerine son komutların diske yazılmasını tercih ederim.
tanascius

Sunucunuz için de bir UPS alın! Bir BBU'nun bir dizi sürücüyü çalıştırmak için yeterli gücü yoktur. Gücü geri alabilmeniz ve değişiklikleri kaydetmeniz için yeterince geniş bir pencere sağlar. Çoğu kesinti çok kısadır ve çoğu insan hayati olmayan makineler için ek bir UPS masrafına ihtiyaç duymaz.
JamesRyan

1
Bilgisayarı yeniden başlatana kadar BBU'nun yaptığı tek şey verileri önbellekte tutmaktır. Kontrolör, diske neyin temizlendiğini bilir (disk, işlemin bittiğini bildirir). Diske boşaltılamayan her şey, makine yeniden başlatılana kadar korunur.
ConcernedOfTunbridgeWells

13

Şöyle çalışır:

Çoğu işletim sistemi, "eşzamanlı yazma" adı verilen bir sistem çağrısına sahiptir. Bu, bir yazma işlemi sırasında, bir yazma işlemi tamamlandıysa, diskin kararlı olduğu garanti edilir.

Bu nedenle eşzamanlı yazma önbelleğe alınmaz. Tamamlanıncaya kadar uygulamayı engeller. Bu tür bir işlem, disk yeterince boşta olana kadar verileri OS belleğinde tutan ve daha sonra verileri yazan önbellek yazma işleminden açıkça daha yavaştır.

Veritabanı yazılımı gibi bazı kritik yazılımlar, kritik veriler için eşzamanlı yazma işlemleri gerçekleştirir, çünkü güç kaybı durumunda yarı yazılı güncelleme veritabanı bütünlüğüne zarar verebilir.

RAID denetleyicileri, RAID-5 yazma işlemleri ile kötü bir şekilde yavaştır, bu nedenle uygulama yazılımınız çok sayıda senkronize yazma kullanıyorsa bu bir sorun haline gelir. Bu nedenle, RAID-5 denetleyicileri kendi önbellekleriyle donatılmıştır.

RAID denetleyicisinin yaptığı, verileri önbelleğine ve işletim sistemine LIES olarak yazarak veriyi diske işlediğini söylerken, veriler aslında RAID önbelleğinde olduğunu söyler.

Peki ya veriler hala RAID denetleyicisinin arabelleğindeyken güç kesilirse? Diskleriniz hakkında yarı yazılı ve muhtemelen tutarsız verileriniz olur.

Bu davranışın eşzamanlı bir yazma amacını yendiğini söyleyebilirsiniz ... önbelleğe alınmış bir yazma işlemi tamamsa, uygulama yazılımı ilk etapta bir senkronizasyon yazma istemez.

Uzlaşma şudur: RAID denetleyicisi hala verileri diske işlediği işletim sistemine aittir, ancak bir güç kesintisi durumunda bu kritik verileri korumak için RAID denetleyicisinde, güç sağlanana kadar önbelleği bir süre canlı tutan bir pil bulunur. restore.

Güç geri geldikten ve diskler döndükten ve başlatıldıktan sonra, denetleyici pil sayesinde önbelleğinde hala bu verilere sahiptir ve işleminizi diske yazmayı bitirebilir.

Herkes mutlu.

Bu nedenle, RAID denetleyicileri, işlevsel ve şarj edilmiş bir pil biriminiz olmadığı sürece yazma önbelleğini etkinleştirmenize izin vermez.


Kontrolörün yerini sorardım. Ana kartın bir parçası mı yoksa sabit disk sürücüsünde mi yerleşik?
Valentin Tihomirov

Ayrıca, proper shutdownfloş verildiğinde RAID ona yalan söylüyorsa işletim sisteminin nasıl istek gönderebileceğini bilmek isterim ?
Valentin Tihomirov

@ValentinTihomirov properveya improperkapatma diye bir şey yoktur . İşletim sistemi kapanma sinyalini verir ve PSU bunu kapattıktan sonra yapar. Güç kapatıldıkça, kalıcı bellek ve tüm içeriği kaybolur!
PF4Public

4

Bazı yeni disk denetleyicilerinin, verileri tipik 72 saatten çok daha uzun süre tutan yüksek hızlı flash önbellek ile geldiğini belirtmek gerekir, genellikle de çok daha büyüktür (~ 1GB). Parça detaylarına ihtiyacınız varsa bana bildirin.


Bilgi için teşekkürler, ama ben Sysadmin değilim ve muhtemelen asla profesyonel bir RAID tasarlamayacağım ... Ben sadece BBU merak ediyorum :)
tanascius

3

Bu BBU önbelleğini, günlüklü dosya sisteminin sağladığı korumaya benzer bir koruma düzeyi olarak düşünün. Bir elektrik kesintisi ile kesildikleri takdirde, işlemlerin, basit yazımların tamamlanmasına izin vermek için oradadır. Güç kesildikten sonra kontrolör yazmaya devam edemez, çünkü bu tamamen öngörülemeyen sonuçlara neden olur. Bunun yerine, verileri olabildiğince uzun tutar ve güç devam ederse / devam ettiğinde yazmayı bitirir. Yapmayan şey sürücüler için bir UPS gibi davranmaktır.


Ancak sürücüler + denetleyici için bir UPS'im olduğunda - BBU'ya ne gerek var? Sadece UPS'in başarısız olduğu bir scneario için mi?
tanascius

İyi soru. Sunucunun DAİMA nazikçe kapatılacağını biliyorsanız, o zaman ben de bir BBU ihtiyacına ikna değilim.
John Gardeniers

2
Bir BBU genellikle geri yazma yapılandırmaları içindir. Bazı RAID denetleyicileri, BBU olmadan geri yazma özelliğini etkinleştirmez. Ancak, muhtemelen sunucunuzun her zaman düzgün kapatılacağını varsaymanın kötü bir fikir olduğunu düşünüyorum.
ConcernedOfTunbridgeWells

2

Elektrik kesintileri nadir olsa da, özellikle bir DB sunucusunda 100 $ pil almak şarttır. İşlemleri etkinleştirmiş olsanız ve sunucunuz bu değişiklikler önbellekten ayrılmadan ve diske bağlanmadan önce güç kaybediyor olsa bile , eksik bir sorgu veya bozuk veriler kalır.


1

Sunucunuz çökerse, kilitlenirse veya birisi güç kablosunu çekerse, yazma önbelleği kullanıyorsanız, BBU sizi bozuk veya kayıp verilere karşı korur. Bir USV kullanmak sizi sadece elektrik kesintisinden korur.

Yazma önbelleğini kullanmak istemiyorsanız, bir BBU'ya ihtiyacınız yoktur.


1

Bir RAID kartında 1 GB önbellek olabilir; genellikle bir yazma önbelleği için kullanılmasa da, oldukça uzun bir yazılı olmayan veri kuyruğu depolayacağını varsayabilirsiniz.

Dosya sistemleri ve veritabanları, elektrik kesintisi durumunda bile eşzamanlı yazma işlemlerinin yeniden sıralanmadığını varsayar. Normalde eşzamanlı yazma yalnızca veri diskte olduktan sonra geri döner, ancak bu nispeten yavaştır. RAID kartlar, daha küçük yazıları bir araya toplayıp daha az rastgele olmalarını sağlayarak performansı artırır.

BBU olmasaydı, yük altında bir elektrik kesintisi felaketle sonuçlanacaktır, RAID kartının orada kaybolacağına söz vermişti (bir dosya sisteminde olduğu gibi, yeni bir dosya veya dizine referanslarınız olabilir, ancak eksik dosya sistemi veya dizini, dosya sistemi bundan kaçınmak için herhangi bir referanstan önce yeni dosyayı özel olarak oluştursa bile), yedeklemelerden geri yüklemenizi veya verilerinizin çok kötü bir şekilde dağılmamasını ummanızı gerektirir. Daha da kötüsü, birisi gizli bir dosyayı silmiş ve başka biri dünya tarafından okunabilir bir dosya oluşturduysa, gizli dosyanın içeriğinin bir kısmının dünya tarafından okunabilir dosyada bulunması olabilir. Dosya sisteminin kurulu olduğu varsayımları kaldırdığınızda, her şey mümkündür.

Bir UPS'in kesintisiz gücün naif olduğunu garanti etmesi; ya makine çökerse ve güç kablosunu çekmeniz gerekiyorsa ya da birileri kabloyu açarsa?

Tüketici SATA diskleri (ve SSD'ler) bazen eşzamanlı yazma işlemlerini de önbelleğe alır, ancak önbellekleri çok daha küçüktür ve tüketici kullanımı daha az talep eder, böylece genellikle ondan kurtulabilirler.

Modern RAID denetleyicilerinde, elektrik kesintisi durumunda yazma önbelleğinin içeriğini kopyaladıkları flaş vardır, bu nedenle pilin birkaç saniyeden fazla dayanması gerekmez.

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.