Мені знайоме, що призначений BBWC (керований кеш-пам'ять запису) - і раніше використовував їх на своїх серверах навіть з хорошим ДБЖ. Є гостро невдачі, від яких це не забезпечує захист. Мені цікаво зрозуміти, чи це насправді пропонує якусь реальну користь на практиці.
(Примітка. Я спеціально шукаю відповіді від людей, які мали BBWC та мали збої / збої та чи допомогла BBWC відновлення чи ні)
Оновлення
Після зворотного зв'язку тут я все більше скептично ставлюсь до того, чи додає BBWC якусь цінність.
Щоб мати будь-яку впевненість у цілісності даних, файлова система ОБОВ'ЯЗКОВО знати, коли дані були здійснені в енергонезалежних сховищах (не обов'язково диск - точка, до якої я повернусь). Варто зазначити, що дуже багато дисків лежать, коли дані були зроблені на диску ( http://brad.livejournal.com/2116715.html ). Хоча здається розумним припустити, що відключення кеш-диска може зробити диски більш чесними, все ще немає гарантії, що це теж має місце.
Через типово великі буфери в BBWC, бар'єр може зажадати значно більше даних для запису на диск, тому спричиняючи затримки при записі: загальна порада - відключити бар'єри при використанні енергонезалежного кешу зворотного запису (і відключити кешування диска). Однак це могло б підірвати цілісність операції запису - тільки тому, що більше даних зберігається в енергонезалежних сховищах, це не означає, що вони будуть більш послідовними. Дійсно, без певного розмежування між логічними транзакціями, можливо, є менше можливостей для забезпечення узгодженості, ніж інакше.
Якщо BBWC повинен був визнати бар'єри в точці, коли дані вводяться в енергонезалежне сховище (а не на диск), то, здавалося б, вони задовольнять вимогу цілісності даних без штрафу за продуктивність - це означає, що бар'єри все ж повинні бути включені. Однак оскільки ці пристрої, як правило, проявляють поведінку, що відповідає передачі даних у фізичний пристрій (значно повільніше з бар'єрами) та широко розповсюдженим порадам щодо відключення бар'єрів, тому вони не можуть вести себе таким чином. ЧОМУ НІ?
Якщо введення / виведення в ОС моделюється як серія потоків, то існує деяка область для мінімізації ефекту блокування бар'єру запису, коли кешування запису управляється ОС - оскільки на цьому рівні лише логічна транзакція (єдиний потік ) потребує вчинення. З іншого боку, BBWC, не знаючи, які біти даних складають транзакцію, повинен був би зафіксувати весь кеш на диску. Чи реально реалізувати це ядро / файлові системи на практиці, знадобиться набагато більше зусиль, ніж я зараз хочу інвестувати.
Поєднання дисків, що розказують фіб про те, що було вчинено, і раптова втрата влади, безсумнівно, призводить до корупції - і з структурованою файловою системою Journalling або log, яка не робить повного fsck після відключення, малоймовірно, що корупція буде виявлена, а не зроблена спроба її відремонтувати.
Що стосується режимів виходу з ладу, на моєму досвіді більшість раптових відключень електроенергії виникають через втрату електромережі (легко пом'якшується за допомогою ДБЖ та керованого відключення). Люди, які витягують неправильний кабель із стійки, мають на увазі поганий гіген-центр даних (маркування та управління кабелем). Існують деякі типи раптових втрат електроенергії, які не перешкоджають ДБЖ - збій у блоці живлення або VRM, BBWC з бар'єрами забезпечують цілісність даних у разі відмови тут, однак наскільки поширені такі події? Дуже рідко судячи з відсутності відповідей тут.
Безумовно, переміщення відмовок вище в стеку значно дорожче BBWC - проте реалізація сервера як кластера має багато інших переваг для продуктивності та доступності.
Альтернативним способом пом’якшити вплив раптових втрат електроенергії було б впровадження SAN - AoE робить це практичним пропозицією (я не дуже бачу сенсу в iSCSI), але знову ж таки, вища вартість.