Genel olarak konuşursak, sorunuza doğrudan cevap olarak, sürücünün kendisinin yazma önbelleği etkin olarak düzgün çalışmasına ilişkin hatalara sahip olduğu SATA sürücülerinin büyük markalarının farkında değilim. Yani, yalnızca sürücü perspektifinden, sürücü önbelleğe alma perspektifinden yapması gereken şeyi yapar. Ben de işaret etmesini bile yazma önbelleği olan etkin, fiziksel olarak güncellenmektedir dönen medyaya SATA kablosu üzerinde bir disk yazma gelen gecikme çok kısa (~ 50 100ms tipik kadar) hala olduğunu. Kirli önbellek verilerinin sadece saniyeler boyunca orada olacağı gibi değil ..... sürücü sürekli olarak önbellekten kirli veri almaya çalışıyorfiziksel ortama mümkün olan en kısa sürede. Bu sadece veri güvenliği meselesi değil, gelecekteki yazımları gecikmeksizin kabul etmeye hazır olmaktan biridir (yani: yazı yazmak).
Önbelleğe alma etkinleştirildiğinde ortaya çıkan sorun, SATA kablosu üzerinden sürücüye yazma sırasının ve dönen ortama yazma sırasının aynı olmamasıdır. Bu, önbelleğin tüm içeriği diske dönüştürülmeden önce güç kaybına veya sistem çökmesine sahip OLMADAN ASLA bir soruna neden olamaz. Neden? ->
Burada ortaya çıkabilecek sorun, dosya sistemi ve / veya veritabanı dosya içeriği işlem dayanıklılığı ile ilgili bu sıra dışı kayıp yazma ile ilgilidir. Gerçekte, potansiyel olarak bozuk olan yazma işlemleri teorik olarak medyaya çok özel bir sırada gerçekleşen disk yazma işlemleri tarafından garanti edilecek olan işlem mantığının bütünlüğünü bozabilir.
Şimdi, elbette, dosya sistemi tasarımcıları, veritabanları, RAID denetleyicileri, vb. Yazma önbelleğe alma ile ilgili olarak bu fenomenin farkındadır (veya kesinlikle farkında olmalıdır). Yazma önbelleği, çoğu rasgele erişim türü G / Ç senaryolarında performans açısından son derece arzu edilir. Aslında, yazma önbelleği kullanılabilir olması, daha gelişmiş Yerel Komut Kuyruğu ( NCQ)) daha yeni SATA ve son birkaç nesil PATA uygulamasında desteklenir. Bu nedenle, bu tür kritik zamanlarda fiziksel ortama sipariş vermeyi garanti etmek için, dosya sistemi ve / veya uygulama, vb. Özellikle medyaya yazma önbelleklerinin temizlenmesini isteyebilir. Bu senkronizasyon talebinin tamamlanmasının ardından - (potansiyel olarak) dosya arabellekleri, OS disk önbellekleme, fiziksel disk önbellekleme vb. Bekleyen her şey, doğru kritik işlemlerde işlem sistemi tasarımı başına medyada yer alır. Yani, programcılar doğru aramaları en üstte yaparlarsa ve bu yazılım ve donanım katmanları zincirinin her elemanı işlerini doğru bir şekilde yaptıysa bu doğru olur. ie: Bu konuda sürücüde, RAID denetleyicilerinde, disk sürücülerinde, işletim sistemi önbelleklerinde, dosya sisteminde, veritabanı motorunda vb. bir hata yoktur. Bu, hepsinin tam olarak çalışması gereken bir çok yazılım. Buna ek olarak, bu konuda doğruluğun doğrulanması çok zordur, çünkü neredeyse her durumda yazma sırası hiç önemli değildir .... ve elektrik kesintisi ve çökme senaryolarının oluşturulması zor testlerdir. Bu nedenle, sonunda, bu terimin çeşitli katmanlarından ve / veya anlamlarından bir veya daha fazlasında "yazma önbelleğe almayı kapatma" .... bazı sorunları "düzeltme" üne sahiptir. Aslında, RAID denetleyicisinin veya OS Disk Önbelleklerinin veya Sürücünün vb. Yazma önbellekleme davranışlarını kapatmak, sistemdeki bir veya daha fazla hatayı ve bu tür kaynağın kaynağını önler. ve elektrik kesintisi ve çökme senaryolarının oluşturulması zor testlerdir. Bu nedenle, sonunda, bu terimin çeşitli katmanlarından ve / veya anlamlarından bir veya daha fazlasında "yazma önbelleğe almayı kapatma" .... bazı sorunları "düzeltme" üne sahiptir. Aslında, RAID denetleyicisinin veya OS Disk Önbelleklerinin veya Sürücünün vb. Yazma önbellekleme davranışlarını kapatmak, sistemdeki bir veya daha fazla hatayı ve bu tür kaynağın kaynağını önler. ve elektrik kesintisi ve çökme senaryolarının oluşturulması zor testlerdir. Bu nedenle, sonunda, bu terimin çeşitli katmanlarından ve / veya anlamlarından bir veya daha fazlasında "yazma önbelleğe almayı kapatma" .... bazı sorunları "düzeltme" üne sahiptir. Aslında, RAID denetleyicisinin veya OS Disk Önbelleklerinin veya Sürücünün vb. Yazma önbellekleme davranışlarını kapatmak, sistemdeki bir veya daha fazla hatayı ve bu tür kaynağın kaynağını önler.
Her neyse, sorunun özüne dönersek: SATA altında, tüm disk okuma / yazma komutlarının ve temizleme önbellek komutlarının özel işlenmesi SATA belirtimleri tarafından iyi tanımlanmıştır . Ayrıca, disk üreticileri her bir sürücü modeli veya sürücü ailesi için, bunların uygulanmasını ve Seagate Barracuda diskleri için bu örnek gibi bu kurallara uyumu açıklayan ayrıntılı belgelere sahip olmalıdır . Özellikle, SATA SET ÖZELLİKLERİNİN ayrıntılarına bakınsürücü işletim modunu ve özellikle seçenek 82h'yi kontrol eden komut, sürücü düzeyinde önbelleğe almayı devre dışı bırakmak için kullanılabilir, çünkü varsayılan, bildiğim tüm sürücülerde kesinlikle önbelleğe yazma özelliğidir. Önbelleği gerçekten devre dışı bırakmak istiyorsanız, bu komut her sürücü sıfırlama veya başlatma işleminin başında yapılmalıdır ve genellikle işletim sisteminiz için disk sürücülerinin kontrolü altındadır. İşletim sistemi sürücünüzü bu modu bir IOCTL ve / veya Kayıt Defteri Ayarı türü aracılığıyla ayarlamaya teşvik edebilirsiniz, ancak bu büyük ölçüde değişir.