BBWC: теоретично гарна ідея, але хтось коли-небудь зберігав ваші дані?


26

Мені знайоме, що призначений BBWC (керований кеш-пам'ять запису) - і раніше використовував їх на своїх серверах навіть з хорошим ДБЖ. Є гостро невдачі, від яких це не забезпечує захист. Мені цікаво зрозуміти, чи це насправді пропонує якусь реальну користь на практиці.

(Примітка. Я спеціально шукаю відповіді від людей, які мали BBWC та мали збої / збої та чи допомогла BBWC відновлення чи ні)

Оновлення

Після зворотного зв'язку тут я все більше скептично ставлюсь до того, чи додає BBWC якусь цінність.

Щоб мати будь-яку впевненість у цілісності даних, файлова система ОБОВ'ЯЗКОВО знати, коли дані були здійснені в енергонезалежних сховищах (не обов'язково диск - точка, до якої я повернусь). Варто зазначити, що дуже багато дисків лежать, коли дані були зроблені на диску ( http://brad.livejournal.com/2116715.html ). Хоча здається розумним припустити, що відключення кеш-диска може зробити диски більш чесними, все ще немає гарантії, що це теж має місце.

Через типово великі буфери в BBWC, бар'єр може зажадати значно більше даних для запису на диск, тому спричиняючи затримки при записі: загальна порада - відключити бар'єри при використанні енергонезалежного кешу зворотного запису (і відключити кешування диска). Однак це могло б підірвати цілісність операції запису - тільки тому, що більше даних зберігається в енергонезалежних сховищах, це не означає, що вони будуть більш послідовними. Дійсно, без певного розмежування між логічними транзакціями, можливо, є менше можливостей для забезпечення узгодженості, ніж інакше.

Якщо BBWC повинен був визнати бар'єри в точці, коли дані вводяться в енергонезалежне сховище (а не на диск), то, здавалося б, вони задовольнять вимогу цілісності даних без штрафу за продуктивність - це означає, що бар'єри все ж повинні бути включені. Однак оскільки ці пристрої, як правило, проявляють поведінку, що відповідає передачі даних у фізичний пристрій (значно повільніше з бар'єрами) та широко розповсюдженим порадам щодо відключення бар'єрів, тому вони не можуть вести себе таким чином. ЧОМУ НІ?

Якщо введення / виведення в ОС моделюється як серія потоків, то існує деяка область для мінімізації ефекту блокування бар'єру запису, коли кешування запису управляється ОС - оскільки на цьому рівні лише логічна транзакція (єдиний потік ) потребує вчинення. З іншого боку, BBWC, не знаючи, які біти даних складають транзакцію, повинен був би зафіксувати весь кеш на диску. Чи реально реалізувати це ядро ​​/ файлові системи на практиці, знадобиться набагато більше зусиль, ніж я зараз хочу інвестувати.

Поєднання дисків, що розказують фіб про те, що було вчинено, і раптова втрата влади, безсумнівно, призводить до корупції - і з структурованою файловою системою Journalling або log, яка не робить повного fsck після відключення, малоймовірно, що корупція буде виявлена, а не зроблена спроба її відремонтувати.

Що стосується режимів виходу з ладу, на моєму досвіді більшість раптових відключень електроенергії виникають через втрату електромережі (легко пом'якшується за допомогою ДБЖ та керованого відключення). Люди, які витягують неправильний кабель із стійки, мають на увазі поганий гіген-центр даних (маркування та управління кабелем). Існують деякі типи раптових втрат електроенергії, які не перешкоджають ДБЖ - збій у блоці живлення або VRM, BBWC з бар'єрами забезпечують цілісність даних у разі відмови тут, однак наскільки поширені такі події? Дуже рідко судячи з відсутності відповідей тут.

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

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


3
На файлових серверах NetApp протягом багатьох років було кеш-пам'ять запису NVRAM, і у мене дуже багато тих, хто втрачає владу і не сміття їх файлових систем. Важко довести, що щось врятувало одне, бо оскільки один був врятований, катастрофа не сталася; які докази ви б шукали?
MadHatter підтримує Моніку

Можливо, ви також повинні подумати про помилки режимів кеш-пам'яті, керованої батареєю, кеш-версією кеша запису без акумулятора.
Стефан Ласевський

1
Не опитування - я витратив багато часу на дослідження цього - і можу знайти багато інформації про те, що повинен зробити BBWC - але дуже мало інформації про те, які переваги були реалізовані на практиці. Зауважте, що єдина відповідь, яку я мав нижче, де хтось каже, що BBWC зберегла свої дані, - це те, коли не було керованого відключення у разі відключення електроенергії. Поки що ніщо не спростовувало мої підозри, що: хоча BBWC може зберігати ваші дані за певних обставин, ці обставини можна уникнути іншими способами.
symcbean

1
Ні, це свідчення того, що відсутність BBWC може втратити ваші дані . Доводячи , що - і я підозрюю , більшість далекомагістральних сисадмінів на цій системі є історії , де летючі дані були втрачені в подачі електроенергії; Я, безумовно, це роблю - я б не довів, що наявність BBWC може зберегти ваші дані , про що і вимагала ОП.
MadHatter підтримує Моніку

1
Деякий подальший аналіз та моделювання свідчать про те, що BBWC + відсутність бар'єрів може призвести до виявлення корупції з будь-яким планувальником вводу-виводу, окрім NOOP (я можу помилитися з цим, але я дуже намагався знайти evidenece, щоб запропонувати інше). Дивіться також symcbean.blogspot.co.uk/2014/03/…
symcbean

Відповіді:


34

Звичайно. У мене був кеш-пам'ять, керований акумулятором (BBWC), а пізніше кеш-пам'ять запису (FBWC) захист даних під час польоту після аварій та раптових втрат електроенергії.

На серверах HP ProLiant типовим повідомленням є:

POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator

Що означає: " Ей, у кеші запису є дані, які пережили перезавантаження / втрату потужності !! Я зараз запитую це на диск !! "

Цікавим випадком був мій посмертний стан системи, яка втратила силу під час торнадо , послідовність масиву:

POST Error: 1793-Drive Array - Array Accelerator Battery Depleted - Data Loss
POST Error: 1779-Drive Array Controller Detects Replacement Drives
POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator

Помилка POST 1793 року унікальна. - Поки система використовувалася, живлення було перервано, коли дані знаходились у пам'яті Arce Accelerator. Однак через те, що це був смерч, живлення не було відновлено протягом чотирьох днів, тому батареї масиву були вичерпані, а дані всередині були втрачені. На сервері було два RAID-контролери. Інший контролер мав блок FBWC, який працює набагато довше, ніж акумулятор. Цей привід відновився належним чином. Деякі пошкодження даних призвели до масиву, підтримуваного порожньою батареєю.


Незважаючи на велику кількість часу роботи батареї на об'єкті, чотири дні без живлення та небезпечних умов нікому не було можливо безпечно закрити сервери. введіть тут опис зображення


5
Дуже інформативна, хороша робота щодо збереження цих результатів настільки довго.
deed02392

Цікаво! Цікаво, чи планує HP включити до контролерів Smart Arrays той самий кеш-пам'ять, без акумулятора, який вони вклали у P2000
Габріель Талавера

4
@GabrielTalavera Так, HP використовує кеш-пам'ять (конденсатори) кеш-пам'яті з 2010 року. Більше немає батарей.
ewwhite

Те саме тут, використовуючи Adaptec;) Більше не турбуйтеся і регулярні заміни.
TomTom

Спасибі ewwhite - саме таку річ, яку я шукаю. Одне питання: що сталося з владою АБЖ? Невже ваш ДБЖ не збиває систему при низькому рівні?
symcbean

10

Так, був такий випадок.

Сервер "без ДБЖ" в центрі обробки даних (з ЦОД, що має ДБЖ). Помилка PDU - система сильно вийшла з ладу. Немає втрати даних.

І це в основному це. Хороша річ про BBWC - це те, що він знаходиться в машині. Майте ДБЖ - повірте, іноді хтось робить щось дурне (наприклад, потягнувши неправильний кабель). Джерело ДБЖ є зовнішнім. О, ТОЙ кабель;)


Дякую TomTom Таким чином, це дозволяє перенести свої дані до наступного бар'єру, а не повертати їх до попереднього (якщо ви не використовуєте файлові системи, що керуються журналом чи журнал). Це один із ключових моментів, які я намагаюся тут оцінити. Здавалося б, це дає дещо краще збереження для ролі сервера файлів, але це не допомагає з цілісністю файлової системи або OLTP DB.
symcbean

Швидко це було б - OLTP побудований таким чином, щоб виправити помилки живлення сервера витончено до тих пір, поки записи журналу гостро записуються;) І оскільки обмеження швидкості вводу-виводу журналу обмежується, "фальшиві записи" (повідомляє він рейдер-контролер) дають швидкість - але на ризик втрати даних, якщо ви не є енергонезалежним кешем.
TomTom

Я зауважу, що RedHat вважає, що вам слід відключити бар'єри за допомогою BBWC - хоча це підвищить продуктивність, воно не забезпечує захисту у разі раптового відключення, наприклад, втрати електроенергії - erk! access.redhat.com/site/documentation/en-US/…
symcbean

@symcbean У вашому оточенні не повинно бути раптових втрат електроенергії. Це одна з найпростіших ситуацій, щоб запобігти. Чому змушувати ваш сервер працювати як лайно 100% часу для відносно рідкого явища?
ewwhite

1
Гостро вся причина, що існує BBWC, полягає в пом'якшенні проблеми раптових втрат електроенергії. Отже, нормально не мати перепон.
TomTom

4

У мене було 2 випадки, коли кеш-пам'ять, що підтримується акумулятором, у контролерах HW RAID повністю вийшла з ладу (у двох окремих компаніях).

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

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

Після цього я сказав "ніколи більше", перейшов на програмне дзеркальне відображення диска (mdadm) в Linux + журналі fs, який має гідну стійкість проти втрати електроенергії (ext4) і ніколи не оглядався. Зрозуміло, я використовував його на серверах, які не мали надзвичайно високого використання IO.


Дякую JD: хоча не конкретно про те, про що я питав, я бачу, що це має велике значення для припущень, які люди висловлюють щодо BBWC. Це резонує з великою кількістю дискусій щодо апаратного та програмного RAID, я думаю, що я повинен роздумувати про потомство, що програмне забезпечення RAID не перешкоджає використанню контролера кешування (мінливого чи іншого).
symcbean

Рейдові картки IME, Dell та HP поскарзяться (якщо будете мати належну систему моніторингу) щодо виходу з ладу акумуляторів у BBWC.
mfinni

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

4

Здається, це потребує другої відповіді на питання ...

У мене щойно автономний хост VMware ESXi втратив диск в масиві RAID 5. Деградований масив вплинув на продуктивність на рівні VM та додатків.

Smart Array P410i in Slot 0 (Embedded)    (sn: 5001438011138950)

   array A (SAS, Unused Space: 0  MB)

      logicaldrive 1 (1.6 TB, RAID 5, Recovering, 42% complete)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, Rebuilding)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
      physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
      physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 300 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 300 GB, OK, spare)

ІТ-людина в цій фірмі не знав, що диск не вдався і важко скинув сервер ( щоб все було краще? ).

Цікавим ефектом цього для компрометованого масиву із зайнятими віртуальними машинами на вершині був такий:

Деталі стану кешу: У поточному контролері масиву були дійсні дані, що зберігаються в кеш-пам'яті резервного копіювання батареї / конденсатора в останній раз, коли він був скинутий або включений. Це вказує на те, що система, можливо, не була вимкнена граціозно. Контролер масиву автоматично записує або намагається записати ці дані на накопичувачі. Це повідомлення буде відображатися до наступного скидання або циклу живлення контролера масиву.

Тож незважаючи на те, що система була різко зупинена, дані польоту були захищені BBWC. Усі віртуальні машини відновились належним чином, і система зараз у хорошій формі.


3

Окрім того, що "зберігають свої дані", вони корисні і для інших речей. Вони також непогані у буферизації записів (у кеші), щоб покращити продуктивність підсистеми вводу-виводу, підтримуючи низький рівень черги запису диска. Це особливо важливо для серверів, де інтерактивна продуктивність є найважливішою - наприклад, Citrix XenApp або Windows Terminal Services.

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


"Я знайомий з тим, що призначений зробити BBWC (керований кеш-пам'ять запису)"
symcbean

2
Ви також сказали: "Мені цікаво зрозуміти, чи це насправді пропонує якусь реальну користь на практиці". Я дав вам (та майбутнім читачам) конкретний. З вашого запитання зовсім не було зрозуміло, що ви знали про цю вигоду. І моя відповідь не є помилковою.
mfinni

Тож чим відрізняються створені вами бали від нестабільного кешу запису?
symcbean

Очевидно, це була особливість, про яку ви знали. Але знову ж таки, ви цього не зрозуміли. @mfinni просто корисний.
deed02392

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