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.
sumber
Jawaban:
Yakin. Saya memiliki cache yang didukung baterai (BBWC) dan kemudian cache tulis yang didukung flash (FBWC) melindungi data dalam penerbangan setelah crash dan kehilangan daya tiba-tiba.
Pada server HP ProLiant, pesan khasnya adalah:
Yang berarti, " Hei, ada data dalam cache tulis yang selamat dari reboot / kehilangan daya !! Saya akan menulis itu kembali ke disk sekarang !! "
Kasus yang menarik adalah post-mortem saya dari sistem yang kehilangan daya saat tornado , urutan arraynya adalah:
Kesalahan 1793 POST adalah unik. - Saat sistem sedang digunakan, daya terputus saat data berada dalam memori Array Accelerator. Namun, karena fakta bahwa ini adalah tornado, daya tidak dipulihkan dalam waktu empat hari, sehingga baterai array habis dan data di dalamnya hilang. Server memiliki dua pengontrol RAID. Pengontrol lain memiliki unit FBWC, yang bertahan jauh lebih lama dari baterai. Drive itu pulih dengan benar. Beberapa data menyebabkan array yang didukung oleh baterai kosong.
Meskipun banyak runtime baterai di fasilitas itu, empat hari tanpa daya dan kondisi berbahaya membuatnya mustahil bagi siapa pun untuk mematikan server dengan aman.
sumber
Ya, ada kasus itu.
Server "tanpa UPS" di pusat data (dengan pusat data memiliki UPS). Kegagalan PDU - sistem crash keras. Tidak ada kehilangan data.
Dan pada dasarnya itu. Hal yang baik tentang BBWC adalah ada di dalam mesin. Punya UPS - percayalah, kadang-kadang seseorang melakukan sesuatu yang bodoh (seperti menarik kabel yang salah). UPS adalah eksternal. Oh, kabel ITU;)
sumber
Saya memiliki 2 kasus di mana cache yang didukung baterai di pengontrol RAID HW gagal sepenuhnya (dalam 2 perusahaan terpisah).
BBC mengandalkan ide yang tidak mengejutkan bahwa baterai bekerja. Tangkapannya adalah bahwa pada titik tertentu baterai di controller gagal dan apa yang menghancurkan adalah bahwa dalam banyak pengendali serangan HW gagal diam-diam . Kami pikir kami memiliki cache yang dilindungi terhadap kehilangan daya tetapi kami tidak.
Pada kehilangan daya, kehilangan data array RAID sangat luas sehingga semua konten disk tidak dapat dipulihkan. Segalanya hilang. Salah satu kasus melibatkan mesin yang didedikasikan sepenuhnya untuk pengujian, tetapi tetap saja.
Setelah itu saya berkata "tidak pernah lagi", beralih ke disk mirroring (mdadm) berbasis perangkat lunak di Linux berbasis fs jurnal yang memiliki ketahanan yang layak terhadap kehilangan daya (ext4) dan tidak pernah melihat ke belakang. Memang, saya sudah menggunakannya di server yang tidak memiliki penggunaan IO yang sangat tinggi.
sumber
Ini sepertinya memerlukan jawaban kedua untuk pertanyaan ...
Saya baru saja memiliki host VMware ESXi mandiri kehilangan drive dalam array RAID 5. Array yang terdegradasi memengaruhi kinerja pada level VM dan aplikasi.
Orang TI di perusahaan ini tidak menyadari bahwa drive gagal dan sulit mereset server ( untuk membuat semuanya lebih baik? ).
Efek menarik dari melakukan ini ke array yang dikompromikan dengan mesin virtual yang sibuk berjalan di atas adalah ini:
Jadi meskipun sistem dihentikan tiba-tiba, data dalam penerbangan dilindungi oleh BBWC. Semua mesin virtual pulih dengan benar dan sistem dalam kondisi baik sekarang.
sumber
Selain "menyimpan data Anda", mereka bagus untuk hal-hal lain. Mereka juga pandai buffering write (dalam cache) untuk meningkatkan kinerja subsistem IO dengan menjaga disk-write-queue tetap rendah. Ini sangat penting untuk server di mana kinerja interaktif adalah yang terpenting - misalnya, Citrix XenApp atau Windows Terminal Services.
Ini kurang penting untuk server web, atau server file. Anda mungkin tidak memperhatikan, atau bahkan terbiasa, sedikit keterlambatan. Namun, ketika Anda mengklik ikon di aplikasi Office, Anda mengharapkan respons. Demikian juga CEO Anda.
sumber