Untuk apa BBU (raid-controller-)?


13

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.


Walaupun baterai RAID tidak memberi daya pada drive yang sebenarnya, ada sesuatu di dunia kami yang menyerupai apa yang Anda bayangkan: beberapa SSD tingkat server memiliki "superkapasitor" yang menyediakan daya cadangan untuk melakukan cached cache selama milidetik setelah kegagalan daya.
Skyhawk

Jawaban:


17

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.


1
Jadi perbedaannya dengan UPS untuk disk adalah bahwa ia dirancang untuk skenario di mana disk tidak berada pada rangkaian daya yang sama? Dalam semua kasus lain (pengontrol dan disk dalam satu rangkaian) UPS akan lebih unggul? Saya masih lebih suka bahwa perintah terakhir ditulis ke disk daripada menunggu di cache selama listrik mati.
tanascius

Jadi belilah UPS untuk server Anda juga! BBU tidak memiliki cukup daya untuk menjalankan berbagai drive. Ini memberi Anda jendela yang cukup besar bagi Anda untuk mendapatkan daya cadangan dan untuk menyimpan perubahan. Kebanyakan pemadaman sangat singkat dan kebanyakan orang tidak membutuhkan biaya tambahan dari UPS untuk alat berat yang tidak vital.
JamesRyan

1
Yang dilakukan BBU hanyalah menyimpan data dalam cache sampai Anda me-restart komputer. Pengontrol tahu apa yang telah dibuang ke disk (disk memberi sinyal bahwa operasi telah selesai). Apa pun yang tidak dibuang ke disk akan dipertahankan hingga mesin dihidupkan ulang.
ConcernedOfTunbridgeWells

13

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.


Saya akan bertanya tentang lokasi controller. Apakah itu bagian dari papan ibu atau dimasukkan ke dalam hard drive?
Valentin Tihomirov

Juga, saya ingin tahu bagaimana OS dapat mengirim proper shutdownpermintaan jika RAID berbohong ketika flush dikeluarkan?
Valentin Tihomirov

@ValentinTihomirov Tidak ada hal seperti properatau impropershutdown. OS mengeluarkan sinyal powerdown dan PSU melakukannya, setelah daya dimatikan. Ketika daya dimatikan, begitu juga memori yang tidak stabil dan semua isinya hilang!
PF4Public

4

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.


Terima kasih atas informasinya, tetapi saya bukan Sysadmin dan mungkin tidak akan pernah merancang RAID profesional ... Saya hanya ingin tahu tentang BBU :)
tanascius

3

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.


Tetapi ketika saya memiliki UPS untuk drive + controller - untuk apa saya perlu BBU? Hanya untuk scneario di mana UPS gagal juga?
tanascius

Pertanyaan bagus. Jika Anda tahu bahwa server SELALU akan dimatikan dengan anggun maka saya tidak yakin akan perlunya BBU juga.
John Gardeniers

2
BBU biasanya untuk konfigurasi penulisan kembali. Beberapa pengontrol RAID tidak akan mengaktifkan write-back tanpa kehadiran BBU. Namun, saya pikir itu mungkin ide yang buruk untuk mengasumsikan bahwa server Anda akan selalu dimatikan dengan benar.
ConcernedOfTunbridgeWells

2

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.


1

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.


1

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.