Saya akrab dengan apa yang ingin dilakukan BBWC (cache tulis yang didukung baterai) - dan sebelumnya menggunakannya di server saya bahkan dengan UPS yang baik. Ada beberapa kegagalan yang tidak bisa dilindungi. Saya ingin tahu apakah itu benar-benar menawarkan manfaat nyata dalam praktik.
(NB Saya secara khusus mencari tanggapan dari orang-orang yang memiliki BBWC dan mengalami crash / kegagalan dan apakah BBWC membantu pemulihan atau tidak)
Memperbarui
Setelah umpan balik di sini, saya semakin ragu apakah BBWC menambah nilai.
Untuk memiliki kepercayaan tentang integritas data, sistem file HARUS tahu kapan data telah berkomitmen untuk penyimpanan non-volatil (belum tentu disk - titik saya akan kembali ke). Perlu dicatat bahwa banyak disk berbohong tentang kapan data telah dikomit ke disk ( http://brad.livejournal.com/2116715.html ). Meskipun tampaknya masuk akal untuk berasumsi bahwa menonaktifkan cache di-disk mungkin membuat disk lebih jujur, masih belum ada jaminan bahwa ini adalah masalahnya.
Karena buffer besar biasanya dalam BBWC, penghalang dapat secara signifikan membutuhkan lebih banyak data untuk dikomit ke disk sehingga menyebabkan keterlambatan penulisan: saran umum adalah untuk menonaktifkan penghalang saat menggunakan cache tulis kembali yang tidak mudah menguap (dan untuk menonaktifkan on- caching disk). Namun ini tampaknya akan merusak integritas operasi penulisan - hanya karena lebih banyak data disimpan di penyimpanan non-volatil tidak berarti bahwa itu akan lebih konsisten. Memang, bisa dibilang tanpa demarkasi antara transaksi logis tampaknya ada lebih sedikit kesempatan untuk memastikan konsistensi daripada sebaliknya.
Jika BBWC mengakui hambatan pada saat data memasuki penyimpanan non-volatil (daripada berkomitmen untuk disk) maka akan tampak memenuhi persyaratan integritas data tanpa penalti kinerja - menyiratkan bahwa hambatan masih harus diaktifkan. Namun karena perangkat ini umumnya menunjukkan perilaku yang konsisten dengan membilas data ke perangkat fisik (secara signifikan lebih lambat dengan penghalang) dan saran luas untuk menonaktifkan penghalang, oleh karena itu mereka tidak dapat berperilaku dengan cara ini. KENAPA TIDAK?
Jika I / O dalam OS dimodelkan sebagai serangkaian aliran maka ada beberapa ruang untuk meminimalkan efek pemblokiran penghalang tulis ketika cache tulis dikelola oleh OS - karena pada level ini hanya transaksi logis (aliran tunggal) ) perlu dilakukan. Di sisi lain, BBWC yang tidak tahu bit data mana yang membentuk transaksi harus mengkomit seluruh cache ke disk. Apakah kernel / sistem file benar-benar menerapkan ini dalam praktiknya akan membutuhkan lebih banyak usaha daripada yang ingin saya investasikan saat ini.
Kombinasi disk yang memberi tahu banyak hal tentang apa yang telah dilakukan dan kehilangan daya secara tiba-tiba tidak diragukan lagi mengarah pada korupsi - dan dengan sistem file Jurnal atau log terstruktur yang tidak melakukan fsck penuh setelah pemadaman, kecil kemungkinan korupsi akan terdeteksi apalagi upaya dilakukan untuk memperbaikinya.
Dalam hal mode kegagalan, dalam pengalaman saya pemadaman listrik yang paling tiba-tiba terjadi karena kehilangan daya listrik (mudah dikurangi dengan UPS dan shutdown yang dikelola). Orang-orang menarik kabel yang salah dari rak menyiratkan hygene pusat data yang buruk (pelabelan dan manajemen kabel). Ada beberapa jenis peristiwa kehilangan daya tiba-tiba yang tidak dicegah oleh UPS - kegagalan pada PSU atau VRM, BBWC dengan hambatan akan memberikan integritas data jika terjadi kegagalan di sini, namun seberapa umum kejadian seperti itu? Sangat jarang dinilai dari kurangnya tanggapan di sini.
Tentu saja memindahkan toleransi kesalahan yang lebih tinggi di stack secara signifikan lebih mahal BBWC - namun menerapkan server sebagai cluster memiliki banyak manfaat lain untuk kinerja dan ketersediaan.
Cara alternatif untuk mengurangi dampak kehilangan daya secara tiba-tiba adalah dengan menerapkan SAN - AoE menjadikan ini proposisi praktis (saya tidak benar-benar melihat maksudnya di iSCSI) tetapi sekali lagi ada biaya yang lebih tinggi.