14.07.2017 10:42, Sergey Matveev пишет:
*** Andrey A Lyubimets <and...@nskes.ru> [2017-07-14 05:35]:
Под ZFS Вы отключаете кэш на дисках? Или это в контексте аппаратного рэйда?
Вообще конечно же отключить его не мешало бы (но мне лень :-)). Но что
будет если не отключить? Если какая-то часть данных при не запишется
внезапно, то всё-равно в них самым последним элементом идёт überblock,
создающий checkpoint. Если его не записать, то просто не будет
checkpoint-а. С точки зрения целостности системы -- абсолютно ничего
страшного. Часть ZIL-а при этом может записать, а может и нет -- просто
будет потеря данных за какое-то небольшое время (несколько секунд на
практике, по идее). Если "разсинхронизация" из-за кэша на дисках
произойдёт внутри массива, то после подключения pool всё-равно диски
будут заresilverены до того, у кого самый свежий checkpoint+ZIL успел
записаться. То бишь включённый кэш просто неприятен будет тем что данные
даже после fsync потенциально могут пропасть, но с целостностью всего
остального проблем не будет.
Информация из дискового кеша пишется на поверхность в произвольном
порядке (точнее в том, который будет быстрее с точки зрения контроллера),
поэтому последний блок может записаться раньше предыдущих.
И ни одна мне известная файловая система не переживает такую ситуацию
без fsck. Чтобы решить эту проблему, в ядре linux существует механизм
write barriers, со стороны диска поддержка появилась, кажется, в
спецификации SATA2 (в последних scsi и в sas она уже была вроде),
но поздние SATA1 диски тоже могут его поддерживать.
Заметная часть SATA2 дисков, однако, могла иметь ошибки в реализации или
вообще
не поддерживать cache flash. В ядре есть список таких дисков. И, если вы
видите в логе
сообщение типа: Mounting .... filesystem ... barriers disabled ....
- это повод задуматься о смене диска.
ZFS поддерживает данную технологию, и последнее обсуждение, которое
мне удалось найти по этой теме, относится в февралю 13-го года.
Я даже видел обсуждения, что в рейд конфигурациях zfs настолько хорошо
оптимизирует
запросы к дискам, что производительность дискового кеша выглядит, как
почти при
суммарном объеме кешей всех дисков.