Сбой в ZFS поломал MySQL

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Violator
ефрейтор
Сообщения: 63
Зарегистрирован: 2012-03-23 11:50:37

Сбой в ZFS поломал MySQL

Непрочитанное сообщение Violator » 2012-11-27 11:22:39

Расскажу о своем недавнем сбое. Может будут версии, что можно было сделать по другому.

На сервере аппаратный raid10 (raid контроллер с кешем, но без батарейки), один пул zfs на весь диск, загрузочный, FreeBSD 8.2
После жесткого выключения питания не стартовал mysql, писал об ошибках чтения логов innodb (ib_logfileX). zpool status pool -v показал что есть ошибки в нескольких файлах баз (в которые шла запись на момент сбоя), в том числе в логах innodb.
Эти битые файлы до конца не читались и не переносились, их можно было только удалить. Способов "лечения" в инете я не нашел, scrub не помог. Пришлось удалить все битые файлы. После этого ошибок в zfs не стало (после scrub). mysql запустился, писал об ошибках в лог-файлах innodb, пытался что-то с этим сделать и перезапускался с сигналом 6 сначала раз в 10 минут, через несколько часов - почти каждую секунду. Тесть памяти сделали: все нормально.
После удаления ibdata1 mysql перезапускаться перестал, но "потерял" все innodb таблицы.
В итоге пришлось удалить все innodb файлы и перезалить их из бекапа. Опыта вытаскивания данных из innodb с помощью утилит percona пока нет и на момент сбоя изучать не было времени.

Судя по этому документу http://hub.opensolaris.org/bin/view/Com ... #whynofsck сбои в zfs возможны и избежать этого можно только используя резервирование силами zfs. Т.е. в моем случае в zfs было только одно устройство, а если бы было сделано подобие raid10 силами zfs, то скорее всего файлы не поломались бы.

Вот думаю, поможет ли мне отключение кеша на контроллере для уменьшения вероятности подобных проблем в будущем?
Последний раз редактировалось f_andrey 2012-11-27 11:29:16, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Mikl
мл. сержант
Сообщения: 131
Зарегистрирован: 2010-08-06 6:52:24
Откуда: замкадыш

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение Mikl » 2012-11-27 11:29:08

это ж не сбой в zfs)

Violator
ефрейтор
Сообщения: 63
Зарегистрирован: 2012-03-23 11:50:37

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение Violator » 2012-11-27 11:52:42

В смысле? А в чем еще?
Как лечить mysql в подобных случаях это другой вопрос. Но то, что можно просто потерять файлы в zfs для меня новость.

Аватара пользователя
Neus
капитан
Сообщения: 1961
Зарегистрирован: 2008-09-08 21:59:56

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение Neus » 2012-11-27 15:06:45

Violator писал(а): На сервере аппаратный raid10 (raid контроллер с кешем, но без батарейки), один пул zfs на весь диск, загрузочный, FreeBSD 8.2
...
Вот думаю, поможет ли мне отключение кеша на контроллере для уменьшения вероятности подобных проблем в будущем?
при отсутствии батарейки в контроллере, write-back кэш включать нельзя! правильные контроллеры его и не дадут включить :)
более того, субд после коммита транзакции должна немедленно записывать изменения на диск...
но все эти меры приводят к большому регрессу производительности
срочно в магаз за батарейкой :)

Violator
ефрейтор
Сообщения: 63
Зарегистрирован: 2012-03-23 11:50:37

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение Violator » 2012-11-27 15:35:28

Сервер у немцев. Что то я уже засомневался насчет кеша в контроллере. Без ковыряний в биосе через KVM это можно узнать?

Код: Выделить всё

# mfiutil show adapter
mfi0 Adapter:
    Product Name: LSI MegaRAID SAS 9260-4i
   Serial Number: SV13908650
        Firmware: 12.13.0-0104
     RAID Levels: JBOD, RAID0, RAID1, RAID5, RAID6, RAID10, RAID50
  Battery Backup: not present
           NVRAM: 32K
  Onboard Memory: 512M
  Minimum Stripe: 8K
  Maximum Stripe: 1M

Аватара пользователя
Neus
капитан
Сообщения: 1961
Зарегистрирован: 2008-09-08 21:59:56

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение Neus » 2012-11-27 15:57:54

в этих контроллерах кэш настраивается не в свойствах адаптера, а в свойствах тома, там гляди

Violator
ефрейтор
Сообщения: 63
Зарегистрирован: 2012-03-23 11:50:37

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение Violator » 2012-11-28 20:10:34

Код: Выделить всё

# mfiutil cache mfid0
mfi0 volume mfid0 cache settings:
      I/O caching: writes and reads
    write caching: write-back
       read ahead: adaptive
drive write cache: default
Кеш включен. Радует, что его можно отключить через mfiutil (надеюсь, болезненно).

И все таки мог я как нибудь спасти базу в данной ситуации?

Аватара пользователя
Neus
капитан
Сообщения: 1961
Зарегистрирован: 2008-09-08 21:59:56

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение Neus » 2012-11-29 9:20:19

Violator писал(а): И все таки мог я как нибудь спасти базу в данной ситуации?
я вот прежде чем поставить сервант в продакшен провел ряд экспериментов:
субд -- firebird (у него есть параметр БД -- forcewrite, когда он включен субд вызывает sync после каждого commit)
контроллер -- LSI 256мб кэш, том raid 10, без батареи
ФС -- XFS
провел 4 теста -- (кэш=on|off, forcewrite=on|off)
чо натестил отключением питания:
кэш=on, fw=off -- это полный писец
кэш=off, fw=on -- самый не убиваемый вариант :)
кэш=on, fw=on -- тут зависит от реализации драйвера, есть мнение что некоторые дрова игнорируют команду записи кэша от ОС :)
кэш=off, fw=off -- тут писец зависит от того, как часто драйвер ФС сбрасывает свой кэш на диск

итог таков -- поставил таки батарею и остановился на варианте (on,on), т.к. в firebird отключать fw для баз OLTP очень не рекомендуют...

Аватара пользователя
skeletor
майор
Сообщения: 2548
Зарегистрирован: 2007-11-16 18:22:04

Re: Сбой в ZFS поломал MySQL

Непрочитанное сообщение skeletor » 2012-11-29 16:51:43

Violator писал(а): Судя по этому документу http://hub.opensolaris.org/bin/view/Com ... #whynofsck сбои в zfs возможны и избежать этого можно только используя резервирование силами zfs.
Для защиты можно использовать zfs снапшоты, например, раз в 10 минут.Они могут помочь (правда смотря какой сбой)