Son zamanlarda SATA sürücüleri ile ilgili önbellek yazma, NCQ, bellenim hataları, engeller vb. Hakkında okudum ve elektrik kesintisi durumunda verilerimi güvende tutacak en iyi ayarın ne olduğundan emin değilim.
Anladığım kadarıyla NCQ, sürücünün performansı optimize etmek için yazma işlemlerini yeniden düzenlemesine izin verirken, çekirdeği hangi isteklerin fiziksel olarak yazıldığı konusunda bilgilendirir.
Yazma önbelleği sürücünün çok daha hızlı bir istekte bulunmasını sağlar, çünkü verilerin fiziksel diske yazılmasını beklemez.
Nasıl NCQ ve Write cache mix burada emin değilim ...
Dosya sistemleri, özel olarak dergiler, belirli bir isteğin ne zaman yazıldığından emin olmalıdır. Ayrıca, kullanıcı alanı işlemi belirli bir dosyanın sifonunu zorlamak için fsync () kullanır. Dosya sistemi verilerin diske yazıldığından emin olana kadar bu fsync () çağrısı geri dönmemelidir.
Yalnızca SAS sürücülerinde gördüğüm, sürücüyü önbelleği atlamaya ve doğrudan diske yazmaya zorlayan bir özellik (FUA, Force Unit Access) var. Diğer her şey için, çekirdek tarafından sürücüde önbellek sifonunu tetikleyebilen bir mekanizma olan yazma engelleri vardır. Bu, tüm önbelleği yalnızca kritik verileri değil, yazılmaya zorlar , böylece fsync () ile kötüye kullanılması durumunda tüm sistemi yavaşlatır.
Daha sonra bellenim hataları olan veya veri fiziksel olarak yazıldığında kasıtlı olarak yatan sürücüler var.
Bunu söyledikten sonra, sürücüleri / dosya sistemlerini kurmanın birkaç yolu vardır: A) NCQ ve Yazma önbelleği devre dışı B) Sadece NCQ etkin C) Sadece Önbellek yazma etkin D) Hem NCQ hem de yazma önbelleği etkin
Engelleri etkin sayıyorum .. BTW, gerçekten etkin olup olmadığını nasıl kontrol edebilirim?
Güç kaybı durumunda, diske aktif olarak yazarken, tahminim B seçeneği (NCQ, önbellek yok) hem dosya sistemi günlüğü hem de veriler için güvenlidir. Bir performans cezası olabilir.
Bariyer veya FUA kullanılıyorsa, seçenek D (NCQ + önbellek) dosya sistemi günlüğü ve fsync () kullanan uygulamalar için güvenli olacaktır. Önbellekte bekleyen veriler için kötü olurdu ve bunu tespit etmek (sağlama toplamı) dosya sistemine bağlıdır ve en azından dosya sistemi (umarım) kararsız bir durumda olmayacaktır. Performans açısından, daha iyi olmalı.
Ancak sorum şu, bir şey eksik mi? Dikkate alınacak başka bir değişken var mı? Bunu doğrulayabilecek ve sürücülerimin olması gerektiği gibi davrandığı bir araç var mı?