Це працює так:
Більшість операційних систем мають системний виклик, який дозволяє так звану "синхронну запис". Це означає, що під час операції запису, якщо запис завершився, гарантовано, що він був зроблений на диску.
Отже, синхронне записування не кешоване. Він блокує додаток до його завершення. Цей вид операцій, очевидно, повільніше, ніж кешоване записування, яке зберігає дані в пам'яті ОС, поки диск не працює в режимі очікування, а потім записує дані.
Деякі критичні програми, такі як програмне забезпечення баз даних, виконують синхронні записи для критичних даних, оскільки напівзаписане оновлення у разі втрати електроенергії може завдати шкоди цілісності бази даних.
Контролери RAID, як відомо, повільно працюють з записом RAID-5, тому це стає проблемою, якщо ваше програмне забезпечення використовує багато синхронних записів. З цієї причини контролери RAID-5 оснащені власними кешами.
Що робить контролер RAID, це він записує дані в свій кеш, а ЛЕЖЕ в ОС, кажучи, що він передав дані на диск, тоді як дані фактично все ще знаходяться в кеш-RAID.
Але що робити, якщо живлення було втрачено, поки дані все ще були в буфері контролера RAID? На дисках у вас є напівзаписані та, ймовірно, непослідовні дані.
Ви можете сказати, що така поведінка перемагає мету синхронного запису ... якщо це було б нормально, щоб кешоване записування тоді програмне забезпечення додатка не запитувало б синхронізувати спочатку.
Компроміс такий: контролер RAID все ще лежить в ОС, що він передав дані на диск, але для захисту цих критичних даних у разі відключення живлення, контролер RAID має батарею, яка зберігає кеш-пам'ять живим протягом деякого часу, поки живлення не зможе відновлено.
Тож після повернення живлення та розкручування та ініціалізації дисків контролер все ще зберігає ці дані у своєму кеші завдяки батареї та може закінчити запис транзакції на диск.
Всі щасливі.
Ось чому контролери RAID зазвичай не дозволяють вам вмикати кеш запису, якщо у вас немає функціонального та зарядженого акумуляторного блоку.