Что нужно, чтобы настроить технологию SSD-кэширования
Мы уже не раз писали про успех и популярность твердотельных накопителей, про так как их выбрать, а также про наиболее эффективное их использование - в частности, про SSD-кэширование. В последнее время это одно из самых популярных методов их применения.
Итак, в чем же состоит эта технология и чего она позволяет добиться?
Разная скорость дисковых подсистем
Если нам нужно устроить дисковую подсистему размером, скажем, в 20 терабайт, то в самом бюджетном исполнении она будет строится на двух 3.5"-жестких дисках по десять терабайт каждый - минимальном их количестве с максимальным пространством на каждом. Мы получим минимум IOPS на чтение и запись, т.е. эта система будет работать сравнительно медленно.
Быстрее будет работать система на двенадцати 1.8-терабайтовых 2.5"-жестких дисках. По сути, мы получим в десять раз быстрее работающую систему, правда, стоить она будет раз в пять дороже минимум.
Наконец, непревзойденной (и редко когда нужной) скоростью будет обладать система на SSD - стоить она будет чуть более чем в двадцать раз дороже, чем первый вариант, но быстродействие будет показывать на три порядка выше - в полторы тысячи раз!
Но в двадцать раз переплачивать обычно никто не хочет, а повышение скорости - очень соблазнительная возможность, поэтому твердотельные накопители приспособили под своеобразный кэш дисковых подсистем. Что это и с чем его едят?
Технология SSD-кэширования
Этот прием стал возможен благодаря тому, что среди данных почти всегда есть те, что используются чаще других. Всегда есть самые популярные страницы сайта, к которым чаще других обращается сервер, самый актуальный операционный период, с которым работают через 1С-сервер, и т.д. Хитрость очень простая: завести небольшое количество, скажем, 10% от дисковой подсистемы, SSD (хватит и пары дисков в RAID 1), и настроить через контроллер алгоритм кэширования - хорошие контроллеры чаще всего его обеспечивают. С его помощью все "горячие данные" будут проходить через твердотельный накопитель с соответствующей скоростью.
Алгоритм очень простой:
- Сервер запрашивает у контроллера чтение блока данных, контроллер ищет его в SSD-кэше.
- Если блок найден, контроллер читает его.
- Если блок не найден, контроллер ищет его на жестких дисках, записывает копию в твердотельный кэш - в следующий раз он там и будет найден.
А что делать, если места в кэше уже нет? Ведь мы используем сравнительно немного памяти, пусть и очень быстрой. В таком случае самый ранний блок обращения к SSD-кэшу записывается на жесткий диск, а новый заменяет его.
Пройдет совсем немного времени - и на твердотельных накопителях скопятся самые "горячие" данные. Кстати, если такой метод кэширования нужно будет использовать и для чтения, и для записи, то горячие данные только там и будут храниться, и их обязательно надо будет резервировать с помощью RAID-массивов - 1, 10 или 5.
Резюме
Система из двух жестких дисков - дешевая, но не очень сердитая. На дюжине жестких дисков - многократно быстрее, но сильно дороже, на твердотельных накопителях - в десятки раз дороже, но быстрее на порядки.
А что же SSD-кэш? А он оказывается самым выигрышным вариантом: мы можем взять к тем же двум жестким 10-терабайтникам два терабайтных SSD и, в зависимости от его марки и работы контроллера, получим вариант дешевле, чем с дюжиной дисков (т.е. второй по дешевизне!) но производительнее в десятки раз.
Конечно, это будет пятая или даже десятая часть скорости дисковой системы на твердотельных накопителях, зато очень доступная и гораздо более практичная.
Только помните: при SSD-кэшировании обязательно нужно использовать RAID-массивы с избыточностью, ТОЛЬКО серверные накопители (они технические отличаются от остальных). Если же у вас остаются сомнения в предложенной процедуре - вы можете самостоятельно тестировать производительность такой системы с помощью программы iometer.