Pavel.Odintsov

Pavel.Odintsov
Рейтинг
169
Регистрация
13.05.2009
Glueon:
Тогда это вообще опасно использовать в продакшене на мой взгляд. Выйгрышь только в том, что если какой-то клиент начнет бомбить мелкими IO операциями реакция у системы будет более адекватной + имеем удобный бэкап. Если нет батарейке делать нечего ... Клиенты загрузут за улетевшие данные после hard-reset'a. :)

simfs на мой взгляд более опасен :) Миллионы миллионов айнодов на хост-ноде очень часто приводят к повереждениям фс и ровно также выносит куски контейнеров.

Так что - it depends, но изоляция у ploop крутая :)

netwind:
не понятно почему именно кеши усиливают вероятность, а хардверные рейды нет. Вы же не читаете данные в обход кешей ? Если flashcache сделан как устройство dm, как вообще можно прочитать мимо ? там же почти всегда что-то несовместное.
Или дело только в том, что с кешами плотность размещения VPS еще больше и операций записи больше?

А про какие кэши вопрос? С flashcache есть несколько человек в багтрекере опенвз, у которых убило полностью все данные - можете спросить специфику у них, я не специалист по данной теме, ничего сказать не могу.

Друзья! С радостью сообщеам о множественных улучшениях в нашей системе уведомления о технических работах, теперь все без исключения клиенты информируются о проблеме в максимально короткие сроки :)

Но мы также активно работаем над уменьшением числа работ и в скором времени сможем отказаться от солидной части даунтаймов вообще! :)

Да, ситуацию еще может усугубить fsck. Он может решить пойти подправить немного экстентов, на которых лежит ploop, а так как это не простые файлы, для которых повреждение нескольких блоков можно пережить - все разлетается.

netwind:
Pavel.Odintsov, не понятна суть явления. каким именно образом данные приходят в негодность ?

ploop - очень простой формат, в нем нет журналирования, нет бэкапа суперблока (BAT). А суперблок - это кусок данных в начале диска в 1Мб.

Если туда будет идти запись и в это время вырубится питание, то он повредится и вся тушка придет в негодность, так как только в BAT хранится маппинг между виртуальными секторами и реальным их положением в образ-файле.

Как воркэраундом может быть вариант - бэкапить суперблок самостоятельно или, в иделае, бэкапить тушки целиком, всегда.

Glueon, лучше в обоих случаях, но очень требовательно к работе железа - то есть ECC, RAID с батарейкой, хорошо резервированное питание - нужно обязательно. А также, разумеется, никаких flashcache/bcache и прочих - убьет данные, почти гарантированно.

kxk:
Pavel.Odintsov, Отличная утилита, спасибо Павел

Спасибо за спасибо :)

Там решительно больше ядер. Без повышения цены тот же 2670v3 дает в 2х процовом конфиге +4 ядра относительно 2670v2 А это +8 ядер логических (то есть 40 против 48 логических), вполне немало.

А то, что DDR4 дороже.... ну она еще и БЫСТРЕЕ.

Так что я не был бы так ориентирован к новой платформе. Скорее текущие e5 платформы надо отправлять на свалку, очевидно, v2 новых процов не будет.

ThePriest:
По умолчанию MySQL работает совсем не так. MySQL пишет в
сю историю в бинарный лог файл, буфер скидывается на диск после каждой транзакции.

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit

The default value of 1 is required for full ACID compliance. With this value, the log buffer is written out to the log file at each transaction commit and the flush to disk operation is performed on the log file.

Эта батарейка стоимостью 500 баксов тут будет бесполезна.

Чтобы данные были в сохранности - нужно знать как работает ПО, никакая батарейка вас не спасет.

Хорошо, если мы включим sysvar_innodb_flush_log_at_trx_commit, то на каждую транзакцию будет вызываться fflush, верно? В данном случае это отчасти поможет, если SSD не будет нагло врать, что flush сделан, а на самом деле он не сделал. Ситуация когда диск врет о реальном сбросе данных - крайне распространенная и используется производителями для "видимого ускорения" работы диска, даже есть тулзы как это проверить.

Но даже если с MySQL Innodb это поможет, то на сервере есть еще файловая система (почти всегда ext4) у которой стандартный коммит аж 5 секунд (commit=nrsec) и она с радостью потеряет если не базы, то сопутствующие файлы ну или сама покрашится, это довольно легко.

Мораль - аппаратный/программный RAID, батарейки при наличии денег, максимально стабильный по питанию ДЦ и регулярные бэкапы :)

Проблема не столько в кэше самих дисков, его можно отключить при желании, а в поведении страничного кэша почти любой современной ОС, когда данные пушатся блоками (когда наберется 10-20-50 записей или пройдет какое-то время), а не по мере реальной записи.

То есть, пишет тут MySQL что-то на диск раз запсисал - данные еще в памяти, два записал - снова в памяти, три записал - пошел пуш на диск. И ели до реального пуша данных еще не дошло и кончилось электричество - с данными можно прощаться. Ну и файловая система может разлететься, журнал ФС пишется зачастую даже чаще чем реальные данные.

Всего: 1955