Назад | Перейти на главную страницу

Кластер MySQL на SSD

Мы планируем реализовать кластер MySQL с четырьмя узлами и рассматриваем возможность использования SSD в качестве хранилища. Мы хотели бы получить высокий уровень производительности и очень низкую задержку при дисковом вводе-выводе из небольшого кластера, поэтому мы рассматриваем SSD. Есть ли у кого-нибудь опыт работы с MySQL или MySQL Cluster на SSD или создание рейд-групп SSD, которые могли бы поделиться своим опытом или мыслями?

Как вы знаете, SSD отлично подходят для работы в условиях высокой пропускной способности. Для серверов баз данных они очень хорошо справляются с хранением журналов транзакций, а также любых постоянно обращающихся индексов, в дополнение к тому, что они очень быстро обслуживают запросы.

TRIM, а не конец света

TRIM не так важен для баз данных по нескольким причинам:

  • Базы данных, как правило, относятся к типу данных «несколько больших файлов». В зависимости от того, как вы просматриваете SHRINK, эти файлы могут уменьшиться, а могут и не стать меньше.
  • Журналы транзакций постоянно записываются, очищаются и перезаписываются.
  • В Linux нет поддержки TRIM «на лету», так как все происходит по запросу.
  • FSTrim приостанавливает ввод-вывод при обнаружении удаленных блоков, что может вызвать временные всплески задержки, пока он выполняет свою работу.

Следует обратить внимание на третий пункт. Поскольку TRIM предоставляется по запросу, вы получите максимальную производительность при вызове fstrim сразу после очистки журналов транзакций. Однако это приведет к кратковременному периоду, когда операции ввода-вывода для вашего тома транслога не могут быть зафиксированы. Если вы достаточно чувствительны, чтобы использовать для этого твердотельные накопители, такое событие может стать для вас преградой.

Поскольку TRIM является второстепенной функцией, вы можете игнорировать тот факт, что большинство RAID-контроллеров еще не поддерживают ее, и тот факт, что все, кроме последних ядер Linux (новее 2.6.39 IIRC), могут поддерживать ее программно.

Качество имеет значение

Одна из самых важных вещей, о которой нужно знать, - это то, что вы используете уровень предприятия SSD диски. Это диски на основе MLC Flash с высокопрочными флеш-ячейками (~ 30-40 тыс. Циклов стирания / программирования) и большим количеством запасных блоков для защиты от износа блоков. Если вы используете твердотельные накопители по какой-то причине, вы собираетесь выполнять для них вычисления с высокой пропускной способностью, поэтому вам нужны устройства, которые не выйдут из строя менее чем через год. Они доставят вас туда.

SLC Flash на самом деле лучше (100K + циклы стирания / программирования), но разница в цене - это то, что побуждает людей переходить на MLC. Да, в наши дни они действительно выпускают MLC корпоративного уровня! Но если ваши диски будут разряжаться в течение 3 лет, SLC продлит срок службы ваших устройств.

Выравнивание и RAID

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

Однако с каждым новым поколением твердотельные накопители становятся все более интеллектуальными в борьбе с износом. Обработка одного и того же набора логических кластеров с помощью операций записи становится все менее опасной, поскольку сами твердотельные накопители становятся умнее.

Что касается программного RAID, Linux и вспомогательные утилиты уже несколько лет поддерживают SSD. В самом последнем ядре есть много лучшая поддержка, чем то, что сейчас продается в Enterprise Linux, так что имейте в виду. LVM уже пару лет поддерживает TRIM (и, следовательно, осведомленность о SSD). MD-RAID только недавно получил TRIM. XFS и Btrfs получили поддержку TRIM в 2.6.39, EXT получили стабильную поддержку в 2.6.36 и экспериментальную поддержку к концу 20-х годов.

Заменить парами

Из-за того, как работает износ, пара SSD в зеркальной паре выйдет из строя примерно в одно и то же время. Итак, когда кто-то идет, замените оба как можно скорее.