Saya bertanya-tanya apa tujuan BBU. Pemahaman pertama saya adalah, itu memungkinkan cache untuk menulis data ke disk selama listrik mati. Tetapi beberapa spesifikasi mengatakan bahwa BBU dapat menyimpan datanya hingga 72 jam. Saya berharap data akan ditulis ke disk dalam milidetik (mengingat, bahwa disk masih memiliki kekuatan juga).
Jadi haruskah BBU tidak hanya melindungi cache, tetapi seluruh disk untuk beberapa detik juga? Bukankah itu lebih aman, karena data cache ditulis ke disk alih-alih berada di dalam cache dan menunggu kekuatan lagi? Setelah sekitar satu detik, disk dapat dimatikan.
raid
hardware-raid
controller
bbu
tanascius
sumber
sumber
Jawaban:
Itu tidak menyalakan disk, itu hanya menyimpan data dalam cache untuk (dalam hal ini) hingga 72 jam sampai Anda membawa mesin kembali ke jalur. Ketika Anda menyalakan mesin kembali itu akan menulis isi cache kembali ke disk.
Yang dilakukannya hanyalah melindungi dari kegagalan daya. Jika (karena alasan tertentu) mesin kehilangan daya tanpa membersihkan data ke disk dengan bersih, baterai menjaga konten cache tetap hidup sampai Anda dapat menghidupkan ulang mesin.
Ini bukan UPS untuk disk, karena disk bisa berada dalam array disk eksternal, atau bahkan pada rangkaian daya yang berbeda. Bahkan UPS bisa gagal.
sumber
Ini berfungsi seperti ini:
Sebagian besar sistem operasi memiliki panggilan sistem yang memungkinkan apa yang disebut "tulis sinkron". Ini berarti bahwa selama operasi penulisan, jika penulisan telah selesai maka dijamin bahwa itu berkomitmen untuk disk.
Oleh karena itu, penulisan sinkron tidak di-cache. Itu memblokir aplikasi sampai selesai. Operasi semacam ini jelas lebih lambat dari cache yang menyimpan data dalam memori OS sampai disk cukup menganggur dan kemudian menulis data.
Beberapa perangkat lunak penting, seperti perangkat lunak basis data, melakukan penulisan sinkron untuk data penting karena pemutakhiran setengah tertulis jika kehilangan daya dapat merusak integritas basis data.
Pengontrol RAID terkenal lambat dengan penulisan RAID-5 sehingga ini menjadi masalah jika perangkat lunak aplikasi Anda menggunakan banyak penulisan sinkron. Untuk alasan ini, pengontrol RAID-5 dilengkapi dengan cache mereka sendiri.
Apa yang dilakukan oleh pengontrol RAID adalah ia menulis data ke cache dan sebaliknya KEBOHONGAN ke OS, mengatakan bahwa ia melakukan data ke disk sedangkan data sebenarnya masih dalam cache RAID.
Tetapi bagaimana jika daya terputus saat data masih dalam buffer RAID controller? Anda akan memiliki data yang setengah tertulis dan mungkin tidak konsisten pada disk Anda.
Anda dapat mengatakan bahwa perilaku ini mengalahkan tujuan penulisan sinkron ... jika OK untuk memiliki cache di-cache maka perangkat lunak aplikasi tidak akan meminta sinkronisasi menulis di tempat pertama.
Komprominya adalah ini: Pengontrol RAID masih terletak pada OS yang melakukan data ke disk, tetapi untuk melindungi data penting ini jika terjadi kegagalan daya, pengontrol RAID memiliki baterai yang menjaga cache tetap hidup selama beberapa waktu hingga daya dapat pulih.
Jadi setelah daya kembali dan disk berputar dan menginisialisasi, controller masih memiliki data dalam cache berkat baterai dan dapat selesai menulis transaksi Anda ke disk.
Semua orang senang.
Inilah sebabnya mengapa pengontrol RAID biasanya tidak akan membiarkan Anda mengaktifkan cache tulis kecuali Anda memiliki unit baterai fungsional dan terisi daya.
sumber
proper shutdown
permintaan jika RAID berbohong ketika flush dikeluarkan?proper
atauimproper
shutdown. OS mengeluarkan sinyal powerdown dan PSU melakukannya, setelah daya dimatikan. Ketika daya dimatikan, begitu juga memori yang tidak stabil dan semua isinya hilang!Perlu disebutkan bahwa beberapa pengontrol disk yang lebih baru sekarang datang dengan cache flash berkecepatan tinggi yang menyimpan data lebih lama dari 72 jam biasanya, seringkali juga jauh lebih besar (~ 1GB). Jika Anda membutuhkan detail bagian, beri tahu saya.
sumber
Pikirkan cache BBU itu sebagai menambahkan tingkat perlindungan yang serupa dengan yang diberikan oleh sistem file journaled. Itu ada di sana untuk memungkinkan transaksi, tulis sederhana dalam kasus ini, harus diselesaikan jika mereka terganggu oleh kegagalan daya. Setelah daya turun, pengontrol tidak dapat terus menulis, karena itu akan menghasilkan hasil yang benar-benar tidak dapat diprediksi. Sebagai gantinya, ia menyimpan data selama ia bisa dan akan selesai menulisnya jika / saat daya menyala kembali. Yang tidak dilakukan adalah bertindak seperti UPS untuk drive.
sumber
Mendapatkan baterai $ 100 adalah suatu keharusan, terutama pada server DB, meskipun jarang terjadi kegagalan daya. Bahkan jika Anda memiliki transaksi diaktifkan , dan server Anda kehilangan daya sebelum perubahan itu meninggalkan cache dan berkomitmen untuk disk, Anda akan dibiarkan dengan kueri yang tidak lengkap, atau data yang rusak.
sumber
Jika server Anda mogok, hang atau seseorang menarik kabel daya, BBU akan melindungi Anda dari data yang rusak atau hilang, jika Anda menggunakan cache-tulis. Menggunakan USV hanya melindungi Anda dari kegagalan daya.
Jika Anda tidak ingin menggunakan cache-tulis, Anda tidak perlu BBU.
sumber
Kartu RAID dapat memiliki cache 1 GB; meskipun biasanya tidak semua akan digunakan untuk cache tulis, Anda dapat menganggapnya akan menyimpan antrian yang cukup lama dari data tidak tertulis.
Sistem file dan basis data berasumsi bahwa penulisan sinkron mereka tidak dipesan ulang meskipun terjadi kegagalan daya. Biasanya penulisan sinkron hanya akan kembali setelah data ada di disk, tetapi ini relatif lambat. Kartu RAID meningkatkan kinerja dengan mengelompokkan penulisan yang lebih kecil menjadi satu dan memesan kembali agar tidak terlalu acak.
Jika tidak ada BBU, kegagalan daya di bawah beban akan memiliki hasil yang menghancurkan, dengan menulis kartu RAID telah berjanji akan hilang di sana (seperti dalam kasus filesystem, Anda mungkin memiliki referensi ke file atau direktori baru, tetapi kekurangan kata file atau direktori, meskipun sistem file secara khusus membuat file baru sebelum referensi untuk menghindarinya), mengharuskan Anda untuk memulihkan dari cadangan atau hanya berharap data Anda tidak terlalu kacau. Lebih buruk lagi, jika seseorang menghapus file rahasia dan orang lain membuat file yang dapat dibaca dunia, mungkin saja sebagian isi dari file rahasia tersebut ditemukan dalam file yang dapat dibaca dunia. Setelah Anda mematahkan asumsi sistem file dibangun, segala sesuatu mungkin terjadi.
Menganggap UPS menjamin daya yang tidak terputus adalah naif; bagaimana jika mesin macet dan Anda perlu menarik kabel listriknya, atau ada yang terjatuh?
Disk SATA konsumen (dan SSD) kadang-kadang juga menulis cache sinkron, tetapi cache mereka jauh lebih kecil dan penggunaan konsumen kurang menuntut sehingga mereka biasanya bisa lolos begitu saja.
Pengontrol RAID modern juga memiliki flash, yang digunakan untuk menyalin konten cache tulis jika terjadi kegagalan daya, sehingga baterai tidak perlu bertahan lebih dari beberapa detik.
sumber