Для чого (BB-контролер) BBU?


13

Мені цікаво, яка мета BBU. Моє перше розуміння полягало в тому, що це дозволяє кешу записати дані на диск під час відключення живлення. Але деякі технічні характеристики кажуть, що BBU може зберігати свої дані до 72 год. Я очікую, що дані будуть записані на диск протягом мілісекунд (враховуючи, що диск теж має потужність).

Тож чи повинен BBU захищати не кеш, а весь диск теж на кілька секунд? Хіба це не буде ще більш безпечним, адже дані кешу записуються на диск, а не в кеш-пам'яті і знову чекають живлення? Через секунду або близько того диск може бути вимкнений.


Хоча батареї RAID не живлять фактичні накопичувачі, у нашому світі є щось, що нагадує те, що ви спочатку уявляли: деякі SSD-диски сервера мають "суперконденсатори", які забезпечують резервне живлення для запису кешованих записів протягом мілісекунд після відключення живлення.
Skyhawk

Відповіді:


17

Він не працює з дисками, він просто зберігає дані в кеші протягом (до цього випадку) до 72 годин, поки ви не повернете машину на лінію. Коли ви живите машину назад, вона записує вміст кешу назад на диски.

Все, що вона робить - це захист від відключення електроенергії. Якщо (з якихось причин) машина втрачає живлення без чистого видалення даних на диск, акумулятор підтримує вміст кешу живим, поки ви не зможете перезапустити машину.

Це не ДБЖ для дисків, оскільки диски можуть знаходитися у зовнішньому масиві дисків або навіть у іншому ланцюзі живлення. Навіть ДБЖ може вийти з ладу.


1
Тож відмінність ДБЖ для дисків полягає в тому, що він розроблений за сценарієм, коли диски не в одній ланцюзі живлення? У всіх інших випадках (контролер і диски в одному ланцюзі) ДБЖ був би кращим? Я все одно вважаю за краще, щоб останні команди записувалися на диск, а не чекали в кеш-пам'ять під час відключення живлення.
tanascius

Тож купуйте ІБП для свого сервера і тоді! BBU не має достатньої потужності для запуску масиву накопичувачів. Це дає вам достатньо велике вікно, щоб отримати резервну потужність та заощадити зміни. Більшість відключень дуже короткі, і більшість людей не потребують додаткових витрат ДБЖ на нежиттєві машини.
JamesRyan

1
Все, що BBU робить, - це зберігати дані в кеш-пам'яті до перезавантаження комп'ютера. Контролер знає, що було передано на диск (диск сигналізує, що операція закінчена). Все, що не перекинулося на диск, зберігається до перезавантаження машини.
ЗанепокоєнийOfTunbridgeWells

13

Це працює так:

Більшість операційних систем мають системний виклик, який дозволяє так звану "синхронну запис". Це означає, що під час операції запису, якщо запис завершився, гарантовано, що він був зроблений на диску.

Отже, синхронне записування не кешоване. Він блокує додаток до його завершення. Цей вид операцій, очевидно, повільніше, ніж кешоване записування, яке зберігає дані в пам'яті ОС, поки диск не працює в режимі очікування, а потім записує дані.

Деякі критичні програми, такі як програмне забезпечення баз даних, виконують синхронні записи для критичних даних, оскільки напівзаписане оновлення у разі втрати електроенергії може завдати шкоди цілісності бази даних.

Контролери RAID, як відомо, повільно працюють з записом RAID-5, тому це стає проблемою, якщо ваше програмне забезпечення використовує багато синхронних записів. З цієї причини контролери RAID-5 оснащені власними кешами.

Що робить контролер RAID, це він записує дані в свій кеш, а ЛЕЖЕ в ОС, кажучи, що він передав дані на диск, тоді як дані фактично все ще знаходяться в кеш-RAID.

Але що робити, якщо живлення було втрачено, поки дані все ще були в буфері контролера RAID? На дисках у вас є напівзаписані та, ймовірно, непослідовні дані.

Ви можете сказати, що така поведінка перемагає мету синхронного запису ... якщо це було б нормально, щоб кешоване записування тоді програмне забезпечення додатка не запитувало б синхронізувати спочатку.

Компроміс такий: контролер RAID все ще лежить в ОС, що він передав дані на диск, але для захисту цих критичних даних у разі відключення живлення, контролер RAID має батарею, яка зберігає кеш-пам'ять живим протягом деякого часу, поки живлення не зможе відновлено.

Тож після повернення живлення та розкручування та ініціалізації дисків контролер все ще зберігає ці дані у своєму кеші завдяки батареї та може закінчити запис транзакції на диск.

Всі щасливі.

Ось чому контролери RAID зазвичай не дозволяють вам вмикати кеш запису, якщо у вас немає функціонального та зарядженого акумуляторного блоку.


Я б запитав про розташування контролера. Це частина материнської плати або вбудована в жорсткий диск?
Валентин Тихомиров

Також я хотів би знати, як ОС може надсилати proper shutdownзапит, якщо RAID лежить до нього, коли видається флеш?
Валентин Тихоміров

@ValentinTihomirov Там немає такого поняття , як properі improperвиключення. ОС видає сигнал відключення живлення, а БП робить це, після цього живлення відключається. Як живлення відключається, так і втрачається енергонезалежна пам'ять і весь її вміст!
PF4Public

4

Варто згадати, що деякі нові дискові контролери тепер оснащені кеш-пам’яттю швидкої флеш-пам'яті, яка зберігає дані набагато довше, ніж звичайні 72 години, часто теж набагато більше (~ 1 Гб). Якщо вам потрібні деталі деталей, дайте мені знати.


Дякую за інформацію, але я не Sysadmin і, ймовірно, ніколи не буду розробляти професійний RAID ... Мені просто цікаво про BBU :)
tanascius

3

Подумайте, що кеш BBU додає аналогічний рівень захисту тому, який надає файлова система, що перебуває в журналі. Це там для того, щоб дозволити завершити транзакції, прості записи в цьому випадку, якщо вони перериваються відключенням живлення. Після падіння потужності контролер не може продовжувати записувати, оскільки це призведе до абсолютно непередбачуваних результатів. Натомість він зберігає дані стільки, скільки зможе, і закінчить їх записувати, якщо / коли живлення відновиться. Те, що він не робить - це як ДБЖ для накопичувачів.


Але коли у мене є ДБЖ для накопичувачів + контролер - для чого мені потрібен BBU? Тільки для scneario, де UPS також працює?
танацій

Гарне питання. Якщо ви знаєте, що сервер ЗАВЖДИ буде вимкнено, тоді я також не переконаний у необхідності BBU.
Джон Гарденєр

2
BBU, як правило, часто використовується для конфігурації запису. Деякі контролери RAID не включатимуть запис без наявності BBU. Однак я думаю, що, мабуть, погана ідея припускати, що ваш сервер завжди буде відключений належним чином.
Занепокоєний

2

Отримати, що акумулятор у 100 доларів США є обов'язковим, особливо на сервері БД, навіть якщо відключення живлення рідкісні. Навіть якщо у вас активовані транзакції , і ваш сервер втрачає живлення до того, як ці зміни покинуть кеш-пам'ять і перенесуться на диск, вам залишиться незавершений запит або пошкоджені дані.


1

Якщо ваш сервер виходить з ладу, висить або хтось підтягує кабель живлення, BBU захистить вас від пошкоджених або втрачених даних, якщо ви використовуєте кеш-запис. Використання USV лише захищає вас від відключення електроенергії.

Якщо ви не хочете використовувати кеш-запис, вам не потрібен BBU.


1

RAID-карта може мати 1 Гб кешу; незважаючи на те, що він зазвичай не буде використовуватися для кешу запису, ви можете припустити, що він буде зберігати досить довгу чергу неписаних даних.

Файлові системи та бази даних припускають, що їх синхронні записи не впорядковуються навіть у разі відключення живлення. Зазвичай синхронне записування повернеться лише після того, як дані на диску, але це відносно повільно. Карти RAID покращують продуктивність, групуючи менші записи разом і переупорядковуючи їх менш випадковими.

Якщо не було BBU, відключення живлення під навантаженням призвело б до катастрофічних результатів, оскільки пише, що RAID-карта обіцяла її втратити (як, наприклад, у випадку з файловою системою, ви можете мати посилання на новий файл або каталог, але не вистачає сказаного файл або каталог, навіть якщо файлова система спеціально створила новий файл перед будь-якими посиланнями на нього, щоб уникнути цього), вимагаючи відновлення із резервних копій або просто сподіваюся, що ваші дані не надто сильно зіпсовані. Ще гірше, якщо хтось видалив секретний файл, а хтось інший створив файл, який читається у всьому світі, може статися, що частина вмісту секретного файлу знайдеться у файлі, доступному для читання у світі. Коли ви порушите припущення, на яких побудована файлова система, можливо все.

Якщо припустити, що ДБЖ гарантує безперебійне живлення, це наївність; що робити, якщо машина виходить з ладу, і вам потрібно витягнути шнур живлення, або хтось на ньому вимикається?

Споживчі SATA-диски (і SSD-диски) іноді кешують також синхронні записи, але їх кеші набагато менші, а використання споживачів менш вимогливе, тому вони зазвичай можуть відмовитися від нього.

Сучасні контролери RAID також мають спалах, на який вони копіюють вміст кешу запису у разі відключення живлення, тому акумулятору не потрібно працювати більше декількох секунд.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.