Назад |
Перейти на главную страницу
Считаются ли bcache и / или dm-cache стабильными для производства в 2016 году?
Я хотел бы использовать Linux-кеширование SSD (dm-cache или bcache) с производственными серверами Debian Jessie. (ядро 3.16)
Мой вопрос: надежны ли модули dm-cache и bcache в linux 3.16? Нужно ли мне обновить ядро до более новой версии?
Я также нашел это тревожное сообщение о bcache: https://lkml.org/lkml/2015/12/22/154
Обратите внимание, что я полностью понимаю, что подразумевает выбор режима кэширования (обратная запись / сквозная запись) с точки зрения надежности и потери данных, мой вопрос больше о программной ошибке в этих модулях
Февраль 2018 г., продолжение после более чем 1 года использования bcache на сервере непрерывной интеграции (экземпляр jenkins выполняет много интенсивных заданий!)
Конфигурация сервера (по сути стек хранилища)
Оборудование:
- 2 x 480 ГБ SSD (Samsung SM863 MLC корпоративного уровня)
- 2 жестких диска по 4 ТБ (Seagate Constellation ES.3 SATA)
- Dell R730 - Dual Xeon E52670 - ОЗУ 128 ГБ
- Нет аппаратный RAID, аппаратный бак записи без батарейного / флеш-памяти, вот где функция обратной записи bcache становится интересной.
Программное обеспечение:
- настроен в сентябре 2016 г., перезагружаться не было
- Debian Jessie с ядром 4.6 (из официального jessie-backport на момент последнего обновления)
- софт MD raid 10
- 1 устройство raid10 для 2 SSD
- 1 устройство raid10 на 2 HDD
- 2 LVM VG поверх 2 рейдовых устройства
- устройство "кэширования" bcache, созданное на логическом томе на SSD_RAID10 VG
- «резервное» устройство bcache, созданное на логическом томе на HDD_RAID10 VG
- кеш bcache настроен как обратная запись
Нагрузка
- много вакансий Дженкинса (непрерывная интеграция)
- Задания с интенсивным использованием ЦП, смешанные с периодами интенсивного ввода-вывода
- перед использованием bcache такие периоды, когда средняя задержка ввода-вывода регулярно увеличивается выше 5 секунд (!!!)
- реальная нагрузка на этот сервер началась всего год назад (~ февраль 2017 г.)
Объем ввода-вывода, выданный на устройстве bcache согласно / proc / diskstats)
- 350 ТБ записано
- 6 ТБ чтения (я дважды проверил это, я думаю, что большой объем ОЗУ очень помогает кэшировать чтения на уровне VFS)
Результат
- рок стабильный! машину ни разу не перезагружали (время безотказной работы 525 дней), повреждений не обнаружено.
- процент попаданий высок! 78% в среднем за все время и продолжает расти: более 80% в последние месяцы
- обратная запись очень помогает: задержка диска теперь на порядок ниже, к сожалению, у меня нет точных мер для этого, но вычисления больше не останавливаются из-за всплесков записи. Объем грязных данных превышает 5 ГБ, тогда как аппаратный кэш записи RAID обычно имеет размер от 512 МБ до 1 ГБ)
Вывод
- bcache стабильно работает в этой конфигурации (но 1 машина, 1 конфигурация, 1 машинный год, этого недостаточно для обобщения, но это хорошее начало!)
- bcache очень эффективен при этой рабочей нагрузке, а режим обратной записи, похоже, эффективно заменяет аппаратный RAID-кеш записи (но имейте в виду, что надежность при потере питания не проверялась)
- по моему личному мнению, bcache недооценен, и с его помощью можно было бы упаковать интересное решение, но обратите внимание, что исходный автор теперь разрабатывает bcachefs (файловая система, основанная на работе bcache) и больше не улучшает bcache
я смотрел на ваша ссылка и прошел через все патчи, и вручную проверил, что каждый из них был объединен в ванильное ядро 4.9.0, причем последний патч был объединен в 2016-10-27 04:31:17 UTC. Этот последний патч появился в 4.9.0, выпущенном 2016-12-11 19:17:54 UTC. И все они также присутствуют в ядре 4.4, доступном в Ubuntu 14.04, перенесенном с 16.04, linux-lts-xenial_4.4.0-67.88
.
И я бы не стал слишком зацикливаться на «снижении стоимости хранения SSD», так как также уменьшается стоимость хранения HDD. Вы все еще можете использовать оба вместе, чтобы сэкономить деньги. Или вместо SSD вы можете получить NVMe, что еще быстрее.
И уровень повреждения из-за ошибок может по-прежнему не равняться нулю, но даже если ошибки остаются, скорость достаточно низка, поэтому вам не нужно беспокоиться, если у вас есть резервные копии, которые вы должны иметь независимо от того, используете ли вы кеширование или RAID.
Я думаю, что снижение стоимости SSD-хранилища и увеличение емкости и диапазона доступных опций являются хорошим аргументом в пользу использования твердотельного хранилища там, где оно вам нужно, и отказа от идеи выборочного (и потенциально ошибочного) кэширования.
Если вы заполните некоторые подробности об окружающей среде, потребностях в емкости и многом другом, это может помочь лучше ответить.