Согласованность данных с RAID 5 и BBWC
У меня есть несколько вопросов о RAID 5, BBWC (Battery Backed Write Cache), файловой системе (ext3) и, возможно, MySQL.
У меня есть гипотеза, и я прошу сообщество Server Fault проверить это или нет:
- Система работает, приложения работают с базой данных и используют транзакции
- Система RAID сконфигурирована с RAID5, кэшированием записи и батареей (BBWC)
С этим решением, когда ОС получает ACK для записи, данные, возможно, находятся в кэше контроллера RAID, а не в постоянной памяти (мой диск RAID).
Если появляется сбой питания и данные находятся в кэше контроллера RAID, BBWC сохраняет данные с аккумулятором. До этого все хорошо.
Но батарея имеет определенную емкость, и она не бесконечна. Если сбой питания длится более двух или трех дней, кэш RAID теряется.
Для меня это драматичный и вероятный сценарий.
Мои вопросы:
- Может ли ext3 решить эту проблему? Возможно нет
- Можно ли испортить базу данных MySQL?
- Mysql транзакции потеряны? я думаю так
Аппаратное обеспечение: HP DL380 G7
ОС: Centos 5 с ext3
4 ответа
Да, это ограничение кэша записи с резервным питанием от батареи - если батарея разряжается, ваши неписанные данные становятся пустыми. Вот почему я предпочитаю новые RAID-контроллеры на базе NVRAM. Файловые системы не могут вам помочь, потому что они думают, что данные были записаны - в лучшем случае они могут обеспечить согласованное представление данных, а не обеспечить их актуальность.
Какую часть перебоев в подаче электроэнергии вы ожидаете? Срок службы батарей составляет несколько дней. Однако, начиная с серверов G7 ProLiant, использование модуля кэш-памяти с флэш-памятью (FBWC) стало более популярным. Это простая модернизация, если у вашего контроллера Smart Array P410 его еще нет. Технология описана более подробно здесь. Задача суперконденсатора в блоке FBWC - обеспечить достаточную мощность для записи содержимого кэша записи во флэш-память, где оно будет сохраняться до восстановления питания системы. Другим преимуществом является отсутствие батарей для утилизации и утилизации. Таким образом, с точки зрения производителя, выгодно продвигать использование вспышки по сравнению с аккумуляторами старой школы.
Я бы подумал, что отключение питания на время, достаточное для того, чтобы срок службы батареи был проблемой, также означает, что есть другие проблемы инфраструктуры, о которых нужно беспокоиться. То же самое, если кто-то не доступен на месте в течение этого периода времени, чтобы обеспечить ослабление силы. Обоснованная рекомендация - защитить ваши системы надежным решением ИБП.
Что касается объема данных, содержащихся в кеше в любой момент, он обычно невелик. Кэш, вероятно, 512 МБ или 1024 МБ в вашем случае. Случайные и потоковые записи должны жить там достаточно долго, пока они не будут записаны на диск. В любой момент вы, вероятно, просматриваете несколько мегабайт данных. У меня не было серьезных повреждений после внезапного сбоя, когда данные кэша были потеряны (сбой батареи RAID). Это, вероятно, не будет проблемой для вас, если шаблон записи вашей системы ненормально тяжел и вы одновременно теряете мощность неожиданным образом... (как удар молнии). Впрочем, ext3 довольно устойчивый.
Вы должны получить ИБП, чтобы сервер мог корректно завершить работу, а BBWC вообще не нужно было использовать. Даже относительно небольшой ИБП может обеспечить несколько минут отключения, которых обычно достаточно, чтобы сбросить эти кэши на диск.
Кэш-память с флэш-поддержкой может помочь, хотя я думаю, что большинство согласится с тем, что UPS - лучшая идея.
Более дорогой вариант: вы можете рассмотреть возможность получения генератора, если вы обычно испытываете 3+ дневные отключения электроэнергии. Я обнаружил, что такие случаи очень необычны, но я вижу, что вы находитесь за прудом.
Спасибо за ваш ответ. Я знаю альтернативы, такие как FBWC, но мои вопросы основаны на моем сценарии:
На моей работе мы уже развернули это решение, и я должен предвидеть проблемы.
Вы думали, что MySQL может быть поврежден и отказался начинать с моего сценария?