Найти тему
Hwp.ru

Изучаем SSD и RAM кэширование в серверах Synology: как добиться максимальной скорости

Оглавление

Большинство серверных программ, начиная от баз данных и заканчивая front-end с web-интерфейсом используют кэширование в ОЗУ, а значит могут вообще не зависеть от дисковой системы при любых нагрузках.

Источник: hwp.ru

Современный корпоративный NAS - это не просто файлохранилка, но и вычислительный узел, на котором развёрнута контейнерная (Docker) и хост-виртуализация (гипервизор), а поскольку данные в такой системе хранятся на том же хосте, где и обрабатываются, запуская какое-либо приложение на гипервизоре Synology VMM, мы можем рассчитывать на определённые бонусы со стороны ОЗУ.

Во-первых, это кэширование в ОЗУ Diskstation/Rackstation всех файловых операций чтения виртуальной машины стандартным Linux-овским кэшем.

Во-вторых, это ускорение операций записи, которое достигается за счёт отсутствия прослойки между гипервизором и операционной системой. Например, при подключении хоста ESXi 6.x к NAS-у по протоколу NFS, все операции записи обязательно синхронизируются гипервизором VMware, что приводит к снижению скорости.

В-третьих, на Synology мы можем установить кэширующий сервер Redis, причем как в виртуальную машину, так и в саму DSM через community-пакеты или docker. С третьего пункта и начнём.

1.Самый действенный способ - использовать Redis

Если у вас уже есть готовая инфраструктура с серверами VMware vSphere, и вы приобретаете NAS только для хранения бэкапов или в качестве основной СХД, посмотрите на память: Synology RackStation RS18017xs+ имеет в базе 16 ГБ ОЗУ, которые можно расширить до 128 ГБ. Вся операционная система DSM (DiskStation Manager) редко требует более 2 ГБ ОЗУ, поэтому неиспользуемую память можно отдать под Redis.

-2

Это NoSQL сервер, который хранит данные в памяти, периодически сбрасывая свою базу на диск. При перезагрузке Redis восстанавливает базу с диска, загружая данные в ОЗУ, и даже при отключении электроэнергии, после перезагрузки вам доступны все данные с момента последней синхронизации. Внутрь Redis можно запихнуть не только строки, но и файлы, и если ваше приложение постоянно обращается к каталогу с десятками тысяч маленьких файликов (например при машинном обучении), то вы наверняка знаете, что в этом случае тормозит любая современная файловая система, а Redis - нет.

-3

Пример с Redis наглядно демонстрирует, что сегодня рассматривать СХД только в качестве файлохранилки можно в двух случаях: когда речь идёт о домашнем 2-дисковом NAS-е или наоборот, когда мы говорим о мощной инфраструктуре банков или авиакомпаний.

Ну и не забывайте, что Synology DSM может использовать защиту данных Redis-а снэпшотами на уровне файловой системы Btrfs. Конечно, использование Redis потребует от вас небольшую переработку приложения, что не всегда возможно, поэтому давайте посмотрим работу встроенного кэширования Synology DSM.

2. Кэширование в ОЗУ самого NAS-а

Даже если виртуалка под Windows или Linux занимает на диске сотни гигабайт, активно используются единицы или десятки гигабайт дискового пространства: логи и файлы баз данных, часто запрашиваемые файлы, в общем всё то, что не кэшируется в памяти самой гостевой операционной системы или приложения. Часто запрашиваемые блоки данных хранятся в ОЗУ самой Synology DSM, что мы многократно видели в синтетических тестах прямого файлового доступа.

-4

Эффективность кэширования в ОЗУ На этой диаграмме - идеальный вариант доступа к тестовой области объёмом 16 ГБ.

3. SSD кэш в реализации Synology

SSD кэш в реализации Synology SSD-кэш может работать в двух режимах: только чтение и чтение/запись. В первом случае вам достаточно и 1 твердотельного накопителя, а во втором случае - потребуется как минимум пара для объединения в «зеркало». Кэширующие SSD можно объединить и в более сложные массивы, в том числе RAID 5, главное чтобы для кэширования записи поддерживалась отказоустойчивость.

-5

Повторим наш тест, для чего сначала будем использовать 1 SSD в режиме кэша чтения, а затем 2 SSD в режиме кэша чтения/записи, объединив их в зеркальный RAID 1.

-6

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

-7

Получается, что NAS не нужно упрашивать сохранить данные в кэше: SSD выходят на максимальную скорость уже через 3-4 минуты, а ОЗУ - через 10-15 минут. Кроме того, SSD-кэш активнее освобождает данные и перестраивается между нагрузками, хотя на диаграммах этого не показать.

-8
-9

Кстати, Synology DSM постоянно отслеживает здоровье SSD-шек и предупредит, когда накопитель лучше заменить. Для HDD производства Seagate есть расширенная диагностика через систему IronWolf Health Management (читайте подробнее в нашем обзоре), но это сравнительно новая технология, и насколько она полезна, покажет время. Изменим паттерн на SQL, и посмотрим на поведение массива.

-10

Внимательные читатели заметили, что для SQL-паттерна мы не приводим диаграмму для 16-гигабайтной области раздела. Конечно, можно было бы махнуть рукой и сказать: "итак всё понятно - нужно ставить минимум 2 SSD", но мы не будем торопиться с выводами, а запустим OLTP тест в реальном приложении в виртуальной машине.

3. Тест Sysbench OLTP

Проведём этот тест трижды: сначала виртуалка работает на хосте под VMware ESXi 6.7, подключенном по iSCSI, потом то же самое, но с NFS, а затем перенесём виртуалку в Synology Virtual Machine Manager, используя для миграции пакет Synology Active Backup for Business.

-11

Тесты показывают, что сетевой трафик составляет 500-600 Мбит/с, но дисковая активность проявляется только в операциях записи, а значит Synology DSM одинаково хорошо кэширует и операции блочного доступа и операции файлового доступа, что не удивительно, поскольку iSCSI LUN-ы хранятся в виде файлов.

-12

В данном случае SSD кэширование не даёт особых преимуществ из-за того, что часть виртуального диска, на котором лежит файл базы данных, легко умещается в ОЗУ NAS-а. Давайте создадим ситуацию, в которой объём базы данных сильно превышает свободную память Rackstation RS18017xs+.

-13

И вот здесь SSD кэш сглаживает негативный эффект от нехватки памяти, хотя всё равно показатели чтения хуже, чем в предыдущем тесте. Нам нужно убедиться, что на скорость влияет именно отсутствие лишней памяти, а не гипервизор Synology VMM, для чего мы должны запустить тот же самый тест на самом NAS-е.

-14

Углубляясь в настройки буферизации на уровне приложения и экспериментируя с параметром InnoDB Buffer Pool Size, я заметил, что при значениях от 1 ГБ до 6 ГБ, производительность существенно не меняется, так что выгоднее отдавать этот объём памяти NAS-у.

Какие SSD выбирать?

Постарайтесь для SSD-кэширования выбирать накопители на основе MLC или SLC, но никак не 3D NAND TLC. По возможности, выбирайте SSD бизнес-класса, а в обзорах обращайте внимание на распределение IOPS по времени, как в нашем обзоре NVME SSD. Имейте ввиду, что ваш SSD обязательно должен быть в списке совместимости Synology, и тогда за дисковый массив можно не переживать.

Выводы

Какие выводы можно сделать из нашего тестирования? Прежде всего, обратите внимание на то, насколько агрессивно Synology DSM записывает данные на SSD. Буквально считанные минуты под нагрузкой - и они копируются на SSD накопители, ускоряя и NFS подключения, и iSCSI LUN-ы. По синтетическим тестам, SSD работают даже быстрее ОЗУ, но на деле выходит совсем иначе: чем большое объём горячих данных в вашей инфраструктуре, тем больше памяти нужно установить в NAS, не важно, используются ли в нём жесткие диски, SSD или гибридные массивы.

Ну и наш пример с Redis-ом показывает, что если вы вступили на путь добра и решили вместо старой SAN-СХД установить современный умный NAS с виртуализацией, то используйте его возможности по-максимуму: совсем не обязательно стараться забить все отсеки хранилища твердотельными дисками - можно просто добавить поддержку NoSQL баз данных в ваш софт и на самой простой модели Synology серии Rackstation получить чудо-скорость, которую ещё очень много лет не дадут никакие SSD.

Источник: www.hwp.ru