Кэширование hdd на ssd. Дисковая система: HDD, SSD и NVMe

Детальное исследование влияния SSD-кэширования на производительность жестких дисков

Почти два года назад в свет вышел топовый на тот момент чипсет Intel Z68 , а вместе с ним дебютировала и технология Smart Response. Казалось бы, новая, но на деле имеющая глубокие корни - идея совместить в одной системе сильные стороны традиционных винчестеров и твердотельных накопителей давно витала в воздухе. Что для этого нужно? Нужно к винчестеру добавить некоторый объем флэша в качестве кэш-буфера. В идеальном случае в него со временем должны попасть секторы, к которым система обращается чаще всего, что и приведет к серьезному повышению производительности - доступ к SSD осуществляется быстрее. А на винчестере будут просто лежать данные и редко выполняемый код, благо его емкости для такого достаточно, а скорость запуска редко используемых программ не слишком критична. Еще более идеальным вариантом, конечно, является использование SSD большой емкости, но это решение идеально лишь с точки зрения производительности - стоимость хранения информации на твердотельных накопителях в разы выше, чем на винчестерах. А гибридизация позволяет обойтись относительно небольшим количеством флэша, что недорого и, в идеале, почти столь же быстро, как и использование одного только SSD.

Производители винчестеров подошли к решению вопроса со своей стороны, встраивая флэш-буфер прямо в винчестеры. С такими решениями мы уже знакомились и, в общем и целом, пришли к выводу, что они оправданы. Правда, до последнего времени они встречались лишь среди ноутбучных моделей, в чем есть большой смысл: сделать в условиях ноутбука гибридную систему своими руками (т. е. из нескольких накопителей) не всегда возможно. Поэтому надо ужиматься в один корпус, причем такой, который поместится в ноутбук, что всегда заставляло идти на компромиссы. В частности, те же Seagate Momentus XT содержали лишь 4 ГБ флэш-памяти в первом поколении и 8 ГБ - во втором. А вот в настольном компьютере гибкость больше. Можно, в общем-то, и просто поставить SSD гигабайт так на 240, чтоб туда все программы влезли, и большой винчестер для данных. А можно взять SSD поменьше и воспользоваться Smart Response. Тем более, что год назад количество «пригодных» чипсетов сильно увеличилось : к Z68 добавились новые Z77, H77 (несколько более дешевый), корпоративный Q77 и некоторое количество ноутбучных модификаций. Словом, есть где развернуться.

Поэтому сегодня мы решили более подробно исследовать работу технологии Smart Response. Вкратце-то мы с ней уже познакомились когда изучали Z68, но именно, что вкратце. А вот теперь - посмотрим подробно: что ускоряет, как ускоряет, что замедляет…

Что ускоряем?

В качестве рабочего тела мы решили взять Western Digital Green WD30EZRX, уже знакомый нам по одной из предыдущих статей . Очень хороший, как нам кажется, объект - «зеленая» серия (стало быть, не самая высокая производительность), да и в ее рамках накопитель не самый выдающийся из-за использования пластин низкой (с точки зрения современности) плотности. В общем, как мы уже убедились, использование его в роли системного и единственного - не слишком оправдано. Но может быть, Smart Response позволит нам переломить ситуацию?

Чем ускоряем?

Производители SSD постепенно раскачались, и сегодня выпускают уже немалое количество специальных кэширующих серий накопителей. Хотя, в принципе, подходят и обычные. Тем более, у многих энтузиастов остались некогда купленные твердотельные накопители емкостью 32-64 ГБ (на что, очень может быть, в Intel и рассчитывали, запуская Z68). Но мы решили подойти к вопросу «честно» и взяли кэширующий SSD AData Premier Pro SP300. Впрочем, ориентацию на подобное применение в основном выдает только его емкость в 32 ГБ и интерфейс mSATA. А так - вполне типичный твердотельный накопитель на базе уже немного устаревшего контроллера LSI SandForce SF-2141 с прошивкой версии 5.0.2a. В общем, если кому-то нужен небольшой SSD с таким интерфейсом (например, к такой вот плате в пару), то можно пользоваться. Мы же сегодня используем SP300 по прямому назначению:)

Как ускоряем?

Для работы технологии требуется плата на соответствующем чипсете, как минимум Windows Vista, установленный Intel Rapid Storage и RAID-режим дискового контроллера. Абсолютно все эти условия нашим стандартным тестом выполняются. В том числе, и RAID-режим, который мы используем всегда (даже для одиночных накопителей) как раз ради совместимости (т. е. пригодности для сравнения) результатов.

А дальше - все просто. Обнаружив наличие свободного SSD после загрузки компьютера, Intel Rapid Storage предлагает включить «ускорение работы». Далее нужно выбрать SSD, кэшируемый накопитель (если их несколько, как в нашем случае), определиться с выделяемой для кэширования емкостью (20 ГБ или весь объем SSD, но не более 64 ГБ - это полезно, если хочется «откусить» кусочек от большого накопителя, а оставшуюся часть использовать «нормальным» образом) и, самое главное, выбрать режим кэширования. Последних два: Enhanced и Maximized, отличающихся подходом к записи. Первый (который и выбран по умолчанию) ее, фактически, не кэширует - данные попадают на SSD только по решению драйвера: в основном по критерию частоты использования. Второй же, по сути, встраивает SSD между винчестером и системой: практически все операции записи перенаправляются именно на твердотельный накопитель, а на винчестер копируются уже с него - большими порциями и спустя определенный промежуток времени. Понятно, что вести они должны себя по-разному: в первом случае остается больше места для быстрого запуска программ, зато второй в теории должен позволять сильно ускорить операции записи со случайным доступом. Однако в нем больше вероятность вытеснения полезных данных чем-нибудь, что планировалось просто «сбросить и забыть», да к тому же есть определенная вероятность потерять данные: а вдруг SSD выйдет из строя до того, как успеют обновиться файлы на винчестере? В общем, Intel рекомендует использовать Enhanced, но мы, естественно, проверили оба режима.

Методика тестирования

Методика подробно описана в отдельной статье . Там можно познакомиться с используемым аппаратным и программным обеспечением.

Тестирование

Буферизованные операции



Тот самый случай, когда ускориться ничего в принципе не может, зато может замедлиться: одно дело - записать что-то в буфер винчестера, и совсем другое - хаотические метания драйвера в попытках понять, нет ли этих данных на SSD (при чтении) и что вообще с ними надо делать (при записи). В общем итоге, как и следовало ожидать, ничего хорошего.

Время доступа

Запросы идут по всем 3 терабайтам винчестера, так что нет ничего удивительного, что в SSD они ничего не находят. Но хоть медленнее не становится - и то хорошо.

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



В AS SSD та же картина. Только запись ускорилась сравнительно с Everest в «обычных» режимах, но не в Maximized - там уже и улучшать-то нечего:)

Последовательные операции

С определенного момента читать начинаем с SSD, а не с винчестера, а первый у нас пошустрее (хоть и не какая-нибудь модель «реактивной» производительности), так что все ускоряется. А вот в Maximized все плохо из-за усложненной логики: сначала драйвер проверяет, не были ли эти данные недавно записаны на SSD, а потом уже обращается к винчестеру, так что порцесс замедляется.

При записи картина обратная - тут уже режим Maximized способен немного увеличить производительность. Особенно на небольших блоках, что для SSD является более удобной операцией. А вот Enhanced лишь замедляет процесс: ведь нужно не только записать данные на винчестер, но и провести анализ, не стоит ли их сразу же и в кэш поместить.

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

Случайный доступ

Что естественно, при чтении данных все ведут себя одинаковым образом: запросы-то непосредственно к винчестеру. Но есть и нюансы: как видим, при большом количестве запросов гибридный накопитель из-за накладных программных расходов оказывается медленнее, чем собственно винчестер. Не так чтобы очень - каких-то 15%. Но и этим пренебрегать не стоит.

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




Что особенно отчетливо наблюдается в шаблонах баз данных, где Enhanced не дает ничего (почти ничего - немного, все же, скорость падает), а Maximized умудряется замедлить винчестер (хотя, казалось бы, куда уж дальше). Впрочем, как раз при большой доле операций записи все варианты приходят к общему знаменателю, так что это немного другая проблема - слишком запутанные алгоритмы.

Производительность в приложениях

Вот, собственно, то, ради чего все затевалось - производительность вырастает в два и более раз. Даже VelociRaptor в PCMark7 набирает лишь 2737 баллов, а это самый быстрый винчестер в настольном сегменте - так что, казалось бы, вот оно счастье. Но не будем спешить открывать шампанское - у нас еще много тестов.

На трассе «защитника» выигрыш в скорости уже приблизился к трехкратному.

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

И звездный час технологии - тут даже порядок величин разный. Одиночный SSD, конечно же, в пару раз быстрее (если говорить о высокопроизводительных моделях), но это уже разы. А от «обычных» винчестеров гибридную систему отделяет уже порядок величин.

На «игровой» трассе прирост скромнее, но он все-таки есть. Причем такой, что, опять же, даже самым быстрым винчестерам нечего ловить рядом с «зеленой» моделью, ускоренной при помощи Smart Response.

Приехали. Даже если не обращать внимание на то, что Maximized «завалил» работу на шаблоне ContentCreation (это-то легко поддается объяснению), остальные результаты оптимизма тоже не вызывают. Почему же так различается поведение PCMark7 и NASPT? А они работают по-разному. В PCMark7 есть семь записанных трасс, имеющих не такой уж большой суммарный объем. Причем прогоняются они по три раза, и первый - столь же медленный, как и при использовании винчестера. Однако ко второму все данные уже оказываются на SSD, так что тестируем мы по большей части именно его. Причем, заметим, три трассы все равно ускорить не удалось.

В NASPT тоже используется многократный запуск тестов, но всех - включая и шаблоны, «ворочающие» файлами по 32 ГБ. Таким образом, между двумя исполнениями «рабочих» шаблонов в обе стороны успевает «пролететь» пара сотен гигабайт. И каким бы умным ни был драйвер, в подобном раскладе, судя по всему, его мыслительных способностей недостаточно для того, чтобы разобраться, что надо держать в кэше, а что «записали и забыли». Если немного изменить методику тестирования, «прогоняя» несколько раз только группы из указанных шаблонов, подыграв тем самым технологии, все становится замечательно - начиная со второго раза скорость резко возрастает. Однако очевидно, что в реальной жизни бывает всякое: и «хорошие» ситуации, и «плохие», так что неудивительно, что и в тестировании оказались и те, и другие.

Эту диаграмму мы помещаем, скорее, из озорства, однако раз уж у нас есть результаты, то почему бы на них не посмотреть? А пример весьма показательный и открытым текстом намекающий на то, что пытаться ускорить при помощи Smart Response несистемные диски смысла не имеет. Впрочем, остановимся на этом вопросе чуть более подробно.

Работа с большими файлами

Как и следовало ожидать, никакого эффекта - кэширование при помощи технологии Smart Response не упреждающее. Да и упреждающее не слишком бы помогло при последовательном (пусть и многопоточном в одном тесте) чтении объема данных, равного полному объему флэш-кэша.

При записи данных Smart Response сильно замедляет работу. В максимальной степени - при использовании режима Maximized, что понятно: попытка реализовать отложенную запись 32 ГБ данных при помощи флэшки на те же 32 ГБ изначально обречена на провал. Ну а в режиме Enhanced этой проблемы нет, но есть другая: драйверу надо данные не только записывать, но и анализировать для последующего (возможного) использования. Так что неудивительно, что «прямая запись» оказывается самой быстрой - тут-то никаких сложностей нет.

Вот что иногда может улучшиться - так это производительность псевдослучайной записи одновременно с чтением. И то - незначительно. При последовательном же доступе к информации Smart Response немного замедляет работу. Тоже - незначительно.

Общий средний балл

Несмотря на все виденное выше, мы получили вполне уверенный прирост от Smart Response в среднем. Почему? Ну, как мы видели, в том же PCMark7 выигрыш очень весомый, что оказалось лишь частично скомпенсировано проигрышем в других тестах. К тому же низкоуровневая синтетика часто ведет себя очень интересным образом, причем далеко не все выкрутасы SR были показаны выше. Для примера рассмотрим пару шаблонов AS SSD, активно используемых нами в тестах SSD, но обычно «спрятанных с глаз» при тестировании винчестеров.

Все просто - тест работает с файлом размером 1 ГБ, который, естественно, мгновенно оказывается на SSD, так что в режиме Enhanced мы, практически, SSD и измерили. Maximized из-за своей специфики медленно работает с одним потоком чтения (накладные расходы сравнимы с основными), хотя даже тут «ускоряет» винчестер в 4 раза. Ну а на 64 потоках - во все 20 раз.

Запись практически ничего не дает Enhanced, поскольку данные все равно приходится записывать в файл на винчестере, зато если выбрать режим Maximized, получаем подтверждение рекламы Smart Response: ваш HDD будет работать как SSD! :) Такие результаты, естественно, тоже сказались на среднем балле, хотя, как видим, общий итог не такой уж и внушительный.

С подробными же результатами всех тестов, как мы и обещали, можно познакомиться, скачав таблицу в формате Microsoft Excel .

Итого

Анонс Z68 и Smart Response заинтересовал многих красотой идеи: берем маленький и дешевый SSD, емкий винчестер и… Получаем быструю гибридную систему хранения данных, собравшую в себе плюсы обеих технологий. Многим нравилось, что SSD вроде как будет кэшировать весь винчестер, что казалось преимуществом по сравнению с использованием SSD и HDD по отдельности - когда дисковая система четко разделена на «быструю» и «медленную» части. Словом, сплошной профит. Однако реальное положение дел оказалась чуть-чуть более сложным и неоднозначным.

Во-первых, как мы видим, от кэширования всего жесткого диска больше вреда, чем пользы - многие «типично винчестерные» операции замедляются, а не ускоряются. Во-вторых, дала трещину концепция «маленький и дешевый», поскольку сильно упали цены на твердотельные накопители. Работать над Smart Response в Intel начали порядка трех лет назад (может, двух с половиной, но не меньше - два года назад уже готовые продукты появились), когда стоимость 1 ГБ информации на твердотельном накопителе составляла порядка 3 долларов. Сейчас она упала ниже одного доллара, причем, поскольку снижение происходило в основном за счет увеличения плотности новых микросхем, цена от объема зависит нелинейным образом - чем больше, тем относительно дешевле. В практическом смысле это приводит к тому, что сегодня твердотельные накопители на 32 и 128 ГБ по цене различаются всего в два раза, а в абсолютных цифрах вся экономия скукоживается до примерно 50 долларов. А что такое 128 ГБ? Это емкость, достаточная для операционной системы и большого количества прикладных программ. У многих пользователей еще и на хранение данных при этом место останется. Ну а для той информации, скорость доступа к которой не критична, в настольной системе можно просто использовать винчестер большого объема. Самое же главное, что такой подход дает предсказуемость, которой не может похвастаться Smart Response, т. е., независимо от сценариев работы, программы всегда запускаются быстро . А не как получится:) В гибридной же системе может быть почти так же быстро, как с SSD, а может быть и столь же медленно, как при использовании одного лишь винчестера. Говоря простым языком, если какой-нибудь геймер день за днем играет в одну и ту же игру, то от Smart Response он получит такой прирост, как мы выше видели на трассе «Gaming» PCMark7 - ускорение в весомые два-три раза. А вот если у него установлен десяток игр, и каждый раз он выбирает из них одну случайным образом (что называется, «под настроение»), то получит он… шиш с маслом, который нам продемонстрировал NASPT: данные в флэш-кэше будут постоянно меняться, так что загрузка уровней, к примеру, останется столь же медленной, как и при использовании только винчестера: ведь, в основном, именно он и будет работать.

С другой стороны, назвать технологию бесполезной мы тоже не можем - все зависит от сценария использования. В том же игровом компьютере может быть интересной схема с двумя SSD и винчестером. Просто потому, что современные игры велики по объему, и держать их на основном твердотельном накопителе накладно - слишком большой и дорогой требуется. Но проблем можно избежать. К примеру, ставим SSD на 128 ГБ - под систему и основные приложения. Для игр и прочих «тяжелых» программ, которые не поместятся на первом накопителе, используем быстрый винчестер относительно небольшой емкости, дополнительно ускоренный при помощи SSD на 32 ГБ. А для хранения всяких мультимедийных данных, типа фильмов и прочего (что нынче нередко «живет» в больших количествах и на игровых компьютерах) - еще один винчестер. Большой по объему, низкооборотистый (стало быть, экономичный) и безо всяких «бустеров», которые при таком сценарии использования могут только помешать, но не помочь. Сложно? Дорого? Да, но вполне реализуемо. И такой способ использования разных технологий как раз и позволяет получить тот максимум, на который они способны.

В общем, как видим, несмотря на снижение цен на флэш-память (и, соответственно, твердотельные накопители), технология Smart Response до сих пор имеет право на жизнь, поскольку в некоторых сценариях использования увеличивает производительность системы хранения данных. Важно только учитывать, что панацеей на все случаи жизни она не является: где-то полезна, а где-то и напротив - вредна. Таким образом, прежде чем ей пользоваться, стоит заранее взвесить все pro и contra, понять, что именно вы собираетесь сделать и как это должно работать. Впрочем, это верно для всех современных технологий.

В статьях про СХД из "конспекта админа" практически не рассматривались технологии софтовой организации дискового массива. Кроме того, за кадром остался целый пласт относительно дешевых сценариев ускорения хранилищ с помощью твердотельных дисков.


Поэтому в этой статье рассмотрю три неплохих варианта использования SSD-дисков для ускорения подсистемы хранения.

Почему просто не собрать массив из SSD – немного теории и рассуждений на тему

Чаще всего твердотельные накопители рассматривают просто как альтернативу HDD, с большей пропускной способностью и IOPS. Однако, такая замена "в лоб" часто стоит слишком дорого (брендовые диски HP, например, стоят от $2 000), и в проект возвращаются привычные накопители SAS. Как вариант, быстрые диски просто используются точечно.


В частности, удобным выглядит использование SSD для системного раздела или для раздела с базами данных – с конкретным выигрышем в производительности можно ознакомится в соответствующих материалах . Из этих же сравнений видно, что при использовании обычных HDD узким местом является производительность диска, а в случае SSD сдерживать будет уже интерфейс. Поэтому замена одного лишь диска не всегда даст такую же отдачу, как комплексный апгрейд.


В серверах используют SSD с интерфейсом SATA, либо более производительные SAS и PCI-E. Большинство представленных на рынке серверных SSD с интерфейсом SAS продаются под брендами HP, Dell и IBM. К слову, даже в брендовых серверах можно использовать диски OEM-производителей Toshiba, HGST (Hitachi) и других, которые позволяют сделать апгрейд максимально дешевым при схожих характеристиках.


С широким распространением SSD был разработан отдельный протокол доступа к дискам, подключенным к шине PCI-E – NVM Express (NVMe). Протокол разработан с нуля и значительно превосходит своими возможностями привычные SCSI и AHCI. С NVMe обычно работают твердотельные диски с интерфейсами PCI-E, U.2 (SFF-8639) и некоторые M.2, которые быстрее обычных SSD более чем вдвое . Технология относительно новая, но со временем она обязательно займет свое место в самых быстрых дисковых системах.


Немного про DWPD и влияние этой характеристики на выбор конкретной модели.

При выборе твердотельных дисков с интерфейсом SATA следует обращать внимание на параметр DWPD, который определяет долговечность диска. DWPD (Drive Writes Per Day) – это допустимое количество циклов перезаписи всего диска в сутки на протяжении гарантийного периода. Иногда встречается альтернативная характеристика TBW/PBW (TeraBytes Written, PetaBytes Written) – это заявленный объем записи на диск на протяжении гарантийного периода. В SSD для домашнего использования показатель DWPD может быть меньше единицы, в так называемых "серверных" SSD - 10 и более.


Такая разница возникает из-за разных типов памяти:

    SLC NAND . Самый простой тип – в каждой ячейке памяти хранится один бит информации. Поэтому такие диски надежны и обладают хорошей производительностью. Но приходится использовать больше ячеек памяти, что негативно влияет на стоимость;

    MLC NAND . В каждой ячейке хранится уже два бита информации – самый популярный тип памяти.

    eMLC NAND . То же самое что и MLC, но повышена устойчивость к перезаписи благодаря более дорогим и качественным чипам.

  • TLC NAND . В каждой ячейке хранится по три бита информации – диск максимально дешев в производстве, но обладает наименьшими производительностью и долговечностью. Чтобы компенсировать потери по скорости, для внутреннего кэша часто используется память SLC.

Таким образом, при точечной замене обычных дисков твердотельными логично использовать MLC-модели в RAID 1, что даст отличную скорость при том же уровне надежности.


Считается, что использование RAID совместно с SSD – не лучшая идея. Теория основывается на том, что SSD в RAID изнашиваются синхронно и в определенный момент могут выйти из строя все диски разом, особенно при ребилде массива. Однако, с HDD ситуация точно такая же. Разве что, испорченные блоки магнитной поверхности не дадут даже прочитать информацию, в отличие от SSD.

По-прежнему высокая стоимость твердотельных накопителей заставляет задуматься об альтернативном их использовании, помимо точечной замены или использования СХД на базе одних лишь SSD.

Расширяем кэш RAID-контроллера

От размера и скорости кэша RAID-контроллера зависит скорость работы массива в целом. Расширить этот кэш можно с помощью SSD. Технология напоминает решение Smart Response от Intel.


При использовании подобного кэша данные, которые используются чаще, хранятся на кэширующих SSD, с которых производится чтение или дальнейшая запись на обычный HDD. Режимов работы обычно два, аналогично привычному RAID: write-back и write-through.


В случае write-through ускоряется только чтение, а при write-back – чтение и запись.


Подробнее об этих параметрах вы можете прочитать под спойлером.

    При настройке кэша write-through запись проводится как в кэш, так и на основной массив. Это не влияет на операции записи, но ускоряет чтение. К тому же, перебои питания или всей системы для целостности данных уже не так страшны;

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

Для работы обычно требуется специальная лицензия или аппаратный ключ. Вот конкретные названия технологии у популярных на рынке производителей:

    LSI (Broadcom) MegaRAID CacheCade. Позволяет использовать до 32 SSD под кэш, суммарным размером не более 512 ГБ, поддерживается RAID из кэширующих дисков. Есть несколько видов аппаратных и программных ключей, стоимость составляет около 20 000 р;

    Microsemi Adaptec MaxCache. Позволяет использовать до 8 SSD в кэше в любой конфигурации RAID. Отдельно лицензию покупать не нужно, кэш поддерживается в адаптерах серии Q;

  • HPE SmartCache в серверах ProLiant восьмого и девятого поколения. Актуальная стоимость доступна по запросу.

Схема работы SSD-кэша предельно проста – часто используемые данные перемещаются или копируются на SSD для оперативного доступа, а менее популярная информация остается на HDD. Как итог, скорость работы с повторяющимися данными значительно возрастает.


В качестве иллюстрации работы RAID-кэша на базе SSD можно привести следующие графики:



StorageReview – сравнение производительности разных массивов при работе с базой данных: использованы обычные диски и их альтернатива на базе LSI CacheCade.


Но если есть аппаратная реализация, то наверняка существует и программный аналог за меньшие деньги.

Быстрый кэш без контроллера

Помимо программного RAID существует и программный SSD-кэш. В Windows Server 2012 появилась интересная технология Storage Spaces, которая позволяет собирать RAID-массивы из любых доступных дисков. Накопители объединяются в пулы, на которых уже размещаются тома данных – схема напоминает большинство аппаратных систем хранения. Из полезных возможностей Storage Spaces можно выделить многоярусное хранение (Storage Tiers) и кэш записи (write-back cache).



Storage Tiers позволяет создавать один пул из HDD и SSD, где более востребованные данные хранятся на SSD. Рекомендованное соотношение количества SSD к HDD 1:4-1:6. При проектировании стоит учитывать и возможность зеркалирования или четности (аналоги RAID-1 и RAID-5), так как в каждой части зеркала должно быть одинаковое количество обычных дисков и SSD.


Кэш записи в Storage Spaces ничем не отличается от обычного write-back в RAID-массивах. Только здесь необходимый объем "откусывается" от SSD и по умолчанию составляет один гигабайт.

Традиционная система хранения подразумевает размещение данных на жестких дисках HDD и твердотельных дисках SSD. В последние годы емкости HDD растут стремительными темпами. Однако, скорость их при случайном доступе по-прежнему мала. Для некоторых приложений, таких как базы данных, облачные технологии или виртуализация, требуется как высокая скорость доступа, так и большой объем. Получается, что использование только HDD не приемлемо, а использование SSD неоправданно дорого. Использование SSD только в качестве кэша является лучшим соотношением цена/производительность для системы в целом. В этом случае сами данные будут располагаться на емких HDD, а дорогие SSD будут давать прирост производительности при случайном доступе к этим данным.

Чаще всего SSD-кэш будет полезен в следующих случаях:

  1. Когда скорость работы HDD в IOPS при чтении является узким местом.
  2. Когда операций ввода/вывода на чтение существенно больше, чем на запись.
  3. Когда объем часто используемых данных меньше размера SSD.

Решение

SSD-кэширование – это дополнительный кэш для увеличения производительности. Один или несколько SSD должны быть назначены виртуальному диску (луну) для использования в качестве кэша. Обратите внимание, что эти SSD будут недоступны для хранения данных. В настоящее время размер SSD-кэша ограничен 2.4ТБ.

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

SSD-кэш делится на группы – блоки, каждый блок делится на субблоки. Характер операций ввода/вывода для виртуального диска определяет выбор размера блока и субблока.

Заполнение кэша

Чтение данных с HDD и запись их на SSD называется заполнением кэша. Эта операция выполняется в фоновом режиме сразу же после того, как хост производит операции чтения или записи. Работа кэша ограничена двумя параметрами:

  • Populate-on-read threshold
  • Populate-on-write threshold

Эти значения больше нуля. Если они равны нулю, то кэш на чтение или запись не работает. В соответствии с этими значениями каждый блок соотносится с его счетчиком чтения или записи. Когда хост производит операцию чтения, и данные расположены в кэше, счетчик чтения увеличивается. Если в кэше нет данных и счетчик чтения больше или равен значению Populate-on-read threshold, то данные копируются в кэш. Если же значение счетчика меньше Populate-on-read threshold, то данные читаются мимо кэша. Для операций записи ситуация аналогична.

Сценарии работы SSD-кэша

Тип ввода/вывода

Тип ввода/вывода определяет конфигурацию SSD-кэша. Эта конфигурация выбирается администратором и определяет параметры блока, субблока, populate-on-read threshold и populate-on-write threshold. Имеются три заранее определенные конфигурации согласно типам ввода/вывода: базы данных, файловая система и web-сервисы. Администратору необходимо выбрать конфигурацию SSD-кэша для виртуального диска. В процессе работы можно сменить тип конфигурации, но в этом случае содержимое кэша будет сброшено. Если предопределенные конфигурации не подходят под используемый профиль нагрузки, то имеется возможность задать собственные значения параметров.



Размер блока влияет на время «прогрева» кэша, т.е. когда наиболее востребованные данные переместятся на SSD. Если данные расположены на HDD близко друг к другу, то лучше использовать блок большого размера. Если же данные расположены хаотично, то логичнее использовать блок малого размера.

Размер субблока также влияет на время прогрева кэша. Больший его размер уменьшает время заполнения кэша, но увеличивает время реакции на запрос с хоста. Помимо этого, размер субблока также влияет на загрузку процессора, пропускную способность памяти и канала.


Для расчета примерного времени прогрева кэша можно воспользоваться следующим методом.

  • Т – время прогрева кэша в секундах
  • I – значение IOPS для HDD при случайном доступе
  • S – размер блока ввод/вывода
  • D – количество HDD
  • C – полный объем SSD
  • P - populate-on-read threshold или populate-on-write threshold

Тогда T = (C*P) / (I*S*D)
Для примера: 16 дисков с 250 IOPS, один SSD 480ГБ в качестве кэша, характер нагрузки – web-сервисы (64КБ) и populate-on-read threshold = 2.
Тогда время прогрева будет Т = (480ГБ*2) / (250*64КБ*16) ≈ 3932 сек ≈ 65.5 мин

Тестирование

Для начала рассмотрим процесс создания SSD-кэша

  1. После создания виртуального диска нажмите ↓, затем Set SSD Caching
  2. Выберите Enable
  3. Выберите конфигурацию из ниспадающего списка
  4. Нажмите Select Disks и выберите SSD, которые будут использоваться в качестве кэша
  5. Нажмите ОК

Ограничения

  • Только SSD могут использоваться в качестве кэша
  • SSD может быть назначен только одному виртуальному диску в каждый момент времени
  • Поддерживается до 8 SSD на один виртуальный диск
  • Поддерживается общий объем до 2.4ТБ SSD на систему
  • Для SSD-кэширования требуется лицензия, которая приобретается отдельно от системы

Результаты

Тестовая конфигурация:

  • HDD Seagate Constellation ES ST1000NM0011 1TB SATA 6Gb/s (x8)
  • SSD Intel SSD DC3500, SSDSC2BB480G4, 480GB, SATA 6Gb/s (x5)
  • RAID 5
  • I/O Type Database Service (8KB)
  • I/O pattern 8KB, random read 90% + write 10%
  • Virtual disk 2TB

Согласно формуле время прогрева кэша T = (2ТБ*2) / (244*8КБ*8) ≈ 275036 сек ≈ 76.4 ч




Введение

По мере развития бизнеса возможности приложений с интенсивными рабочими потоками часто ограничиваются характеристиками жестких дисков (HDD). Несмотря на то, что емкости HDD резко возросли, скорость выполнения операций произвольного ввода/вывода (I/O) не увеличивалась в том же темпе. Однако, теперь возможно ускорить обработку потоков с интенсивным чтением данных, таких, как при онлайн транзакциях (On-Line Transaction Processing - OLTP), в сетевых и файловых серверах, базах данных, применяя новую технологию кэширования, Infortrend SSD Cache, которая использует высокую скорость и малую задержку твердотельных дисков для повышения скорости считывания часто требующихся жизненно важных данных. Скорость чтения для SSD значительно выше по сравнению с HDD и, следовательно, SSD Cache может существенно улучшить характеристики произвольного чтения и снизить время отклика.

Применимость настоящего документа

Семейство EonStor DS

Что такое SSD Cache?

Кэш-память - это компонент, который прозрачно накапливает данные, так что следующие обращения к ним могут обслуживаться более эффективно. Он имеет решающее значение для хранилища, особенно в применениях с интенсивным чтением данных. Без включения SSD Cache емкость кэш-памяти контроллера ограничена. SSD Cache позволяет использовать быстрые SSD для наращивания пула кэш-памяти системы хранения и накапливания часто запрашиваемых данных. С увеличением емкости SSD Cache частота попадания в кэш также увеличивается. Другими словами, все больше и больше “горячих” данных будет храниться в SSD Cache, будущие обращения к этим данным будут обслуживаться более эффективно и, следовательно, характеристики чтения будут улучшаться.

Почему Infortrend SSD Cache?

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

1.Улучшение характеристик чтения

SSD Cache использует интеллектуальный алгоритм, чтобы ускорить обработку интенсивных потоков с произвольным чтением данных, таких, как OLTP и обращения к базам данных. В таких ситуациях SSD Cache может существенно увеличить общую скорость чтения. Например, SSD Cache может в 2,5 раза увеличить значение IOPS при OLTP по сравнению с той же системой без SSD Cache. В то же время задержки также уменьшаются и, следовательно, степень улучшения характеристик зависит от действительных рабочих потоков приложения и поведения пользователя.

2.Интеллектуальное ПО и алгоритм управления

Интеллектуальное ПО автоматически анализирует модель доступа к данным и распознает последовательные и произвольные операции чтения/записи. Данные последовательного чтения или записи не заносятся в пул SSD Cache, в нем накапливаются только данные произвольного чтения, чтобы SSD использовались наиболее эффективно. Если более точно, то встроенное ПО автоматически перемещает копии наиболее часто требующихся данных из кэш-памяти контроллера в пул SSD Cache в соответствующее время. Эти “горячие” данные впоследствии будут считаны из SSD Cache, если система получит запрос на их чтение. Разработанны Infortrend алгоритм оптимизирует цикличность копирования данных в SSD, так что для этой цели можно применять и сравнительно дешевые SSD. Это решение не только улучшает характеристики чтения, но и продлевает срок службы жестких дисков за счет уменьшения количества циклов чтения и записи.

3.Простой интуитивный интерфейс пользователя

Функции SSD Cache полностью интегрированы в Infortrend SANWatch и RAIDWatch GUI. Они очень просто настраиваются, управляются и обслуживаются. Например, пользователь может наблюдать за состоянием пула SSD Cache и легко проверять оставшийся срок службы для каждого SSD.

Infortrend SSD Cache

Как работает Infortrend SSD Cache

Если SSD Cache включено и работает в течение некоторого времени, интеллектуальное встроенное ПО собирает статистику и немедленно обновляет записи о “температуре” данных в кэш-памяти контроллера. Основываясь на этих записях, встроенная программа автоматически копирует в соответствующее время небольшие фрагменты случайных часто требующихся данных из кэш-памяти контроллера в пул SSD Cache, используя метод последовательной записи, чтобы избежать интенсивных операций с SSD и, следовательно, увеличить срок их службы. Пока пул SSD Cache Pool не заполнится “горячими” данными, генерируемыми приложениями на хосте, метод предварительного копирования блоков на SSD с помощью зонного предсказания ускоряет операции чтения. Если размер блока данных меньше или равен 16 KB, данные копируются прямо в пул SSD, даже если они считываются только однократно. Если размер блока больше 16 KB, и программа распознает его как “горячие” данные (считываются несколько раз), то они классифицируются как часто требующиеся и сохраняются в пуле SSD. Для этих “горячих” данных будет хранится две копии - одна в SSD Cache и одна на жестких дисках.

Как правило, по получении запроса на чтение данных система проверяет, имеются ли соответствующие данные в кэш-памяти контроллера. Если запрашиваемые данные есть в кэше контроллера, система тут же возвращает их хосту. Если же запрашиваемых данных нет в кэше контроллера, то система проверяет пул SSD Cache. Если запрашиваемые данные были сохранены в SSD Cache на основании оценки их “температуры”, то система считывает эти данные прямо из SSD Cache и возвращает из хосту. В противном случае данные будут возвращены с более медленного устройства. Следовательно, чем больше попаданий в кэш, тем больше запросов будет обслужено SSD Cache, поэтому общие характеристики и среднее время отклика будут улучшаться.

Что нужно для работы SSD Cache

1. Требования к программному обеспечению и SANWatch

ПО версия 512F12 или выше

SANWatch версия 3.0.h.14 или выше

2. Лицензия на SSD Cache

SSD Cache доступно по лицензии. Infortrend также предоставляет 30-дневную пробную лицензию.

3.Соотношение между емкостью кэш-памяти контроллера и максимальным размером пула SSD Cache:

Если в системе разрешена работа SSD Cache, то кэш-память контроллера будет использовать некоторую часть пространства для сохранения “горячих” данных, и размер “горячих” записей в кэше контроллера будет определять максимальный поддерживаемый размер пула SSD. Для начальной комбинации (2 GB на контроллер) максимальный поддерживаемый размер пула SSD Cache равен 150 GB для одиночного контроллера и 300 GB для моделей с двойным избыточным контроллером.

По сравнению с SSD кэш-память контроллера более экономична. Кроме того, в кэш-память контроллера могут попадать не только считываемые, но и записываемые данные. Следовательно, мы рекомендуем пользователям EonStor DS нарастить кэш-память до 16 GB на один контроллер и приобрести подходящие SSD для кэш-пула (соответствующие вашим потребностям и бюджету), чтобы получить максимальный выигрыш в характеристиках.

4.Сброс контроллера(ов) для запуска SSD Cashe

Последний шаг запуска SSD Cache включает сброс контроллера(ов). По умолчанию, в кэш-памяти контроллера не назначается пространство для хранения “горячих” данных. Следовательно, требуется сбросить контроллер и инициализировать его так, чтобы выделить подходящее пространство для “горячих” записей. После сброса контроллера и активации функции SSD Cache управлять им очень просто. Нет необходимости сбрасывать или перегружать систему при добавлении SSD в пул или удалении из него. Эта процедура выполняется с помощью интуитивного интерфейса пользователя через SANWatch или RAIDWatch.

5.Требования к SSD

В настоящее время один контроллер поддерживаеи до 4 SSD. Если вы хотите использовать функцию SSD Cache, проверьте, пожалуйста, числится ли выбранная вами модель SSD в квалификационном списке Infortrend Qualified Vendor List (QVL). Только SSD из нашего QVL могут применяться для улучшения характеристик хранилища, как описано в этом документе.

Заключение

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

Полный текст статьи с иллюстрациями вы можете скачать в виде pdf файла.

Если вы решили приобрести твердотельный SSD накопитель, то на это может быть несколько причин:

Однако установить ССД в компьютер или ноутбук, а затем заполнить его информацией недостаточно. Необходимо также оптимизировать его работу с работой вашей OC.


Рассмотрим основные методы оптимизации SSD диска.

AHCI SATA

Технология, позволяющая использовать функцию TRIM для различных твердотельных накопителей. Ее включение производится на уровне BIOS вашего ПК или ноутбука.

Включение AHCI SATA:

  1. Открываете командную строку комбинацией клавиш win + R.
  2. Вводите команду: «regedit» (доступ в реестр).
  3. Переходите по следующему пути: HKEY_LOCAL_MACHINE → SYSTEM → CurrentControlSet → Services → storahci.
  4. Измените значение подраздела ErrorControl на 0 (по умолчанию 3), вызвав контекстное меню и нажав параметр «Modify».
  5. Перейдите в ветку с название «StartOverride» и измените его значение на 0 (по умолчанию 3).
  6. Перезагрузите ваш ПК (ноутбук), зайдите в BIOS/UEFI (как зайти в BIOS, смотрите отдельно для модели вашего ноутбука или материнской платы ПК). В разделе «storage configuration», и в подразделе «SATA port» выставить AHCI или же в разделе «SATA RAID/AHCI Mode», выставить AHCI (Для разных версий BIOS, свои разделы и подразделы).
  7. Проверьте работоспособность функции в Windows. Перейдите по следующему пути: Панель управления → Диспетчер устройств → IDE ATA/ATAPI controllers. В последнем подразделе должно появиться устройство: «Standard SATA AHCI Controller».

Функция TRIM

По умолчанию данная функция включена на windows 7 и выше, однако, лучше вручную проверить работает ли эта функция. Смысл TRIM в том, что после удаления файлов, windows передает SSD накопителю информацию, что определенная область диска не используется и ее можно очистить для записи. (в HDD данные остаются и запись производится «поверх» существующей). Со временем, если функция отключена, будет происходить падение производительности накопителя.

Проверка TRIM в Windows:

  1. Запустите командную строку, нажав комбинацию клавиш win + R.
  2. Введите команду: «fsutil behavior query disabledeletenotify».
  3. Если после ввода выводится сообщение: «DisableDeleteNotify = 0», то функция TRIM включена, если «DisableDeleteNotify = 1», то TRIM не функционирует. Если TRIM не работает, введите команду: «fsutil behavior set DisableDeleteNotify 0», затем повторите пункты 2 и 3.

Дефрагментация

Данная функция помогает оптимизировать и ускорить работу HDD, но для SSD, она оказывает пагубное влияние. Для SSD, функция «автоматическая дефрагментация» по умолчанию отключена. Чтобы проверить работает ли она необходимо:

  1. Нажать комбинацию win + R.
  2. В окне командной строки ввести команду: «dfrgui» и нажать «ОК».
  3. В открывшемся окне, выделите ваш ССД и посмотрите на пункт «Оптимизация по расписанию». Для нашего твердотельного накопителя она должна быть отключена.

Индексация

Функция Windows, помогающая выполнять быстрый поиск файлов на диске при больших объемах информации, однако, увеличивающая нагрузку по записи на SSD. Для ее отключения:

  1. Переходим в раздел «Этот компьютер», «Мой компьютер», «Компьютер» (для каждой ОС по-разному).
  2. Выбираете ваш ССД и в контекстном меню выбираете «Свойства».
  3. В открывшемся окне, снимаете флажок напротив параметра: «Разрешить индексирование содержимое файлов на этом диске в дополнение к свойствам файла».

Служба поиска

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

  1. Переходите по следующему адресу: Панель управления → Система и безопасность → Администрирование → Управление компьютером.
  2. Переходите во вкладку: «Службы».
  3. Находите службу «Windows search» и во вкладке «Тип запуска» выбираете «Отключена».

Гибернация

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

При использовании ССД смысл этой функции теряется, так как накопитель и так быстро стартует. А «Гибернация», создавая циклы «запись-перезапись», уменьшает продолжительность жизни SSD диска.

Отключение гибернации:

  1. Запускаете вновь cmd.exe сочетанием клавиш win + R.
  2. Вводите команду: «powercfg -h off».

Кэширование записи

Данная функция повышает производительность вашего твердотельного накопителя. При ее включении используется технология записи и чтения NCQ. NCQ – принимает несколько запросов одновременно, а затем организовывает их порядок выполнения таким образом, чтобы достичь максимальной производительности.

Для подключения необходимо:

  1. Вызвать командную строку комбинацией win + R
  2. Ввести команду: «devmgmt.msc».
  3. Открыть «Дисковые устройства», выбрать SSD и в контекстном меню выбрать «Свойства».
  4. Перейти во вкладку «Политика».
  5. Поставить «галочку» напротив параметра: «Разрешить кэширование записей для этого устройства».

Prefetch и Superfetch

Prefetch – технология, с помощью которой часто используемые программы загружаются в память заранее, тем самым ускоряется последующий их запуск. При этом на дисковом пространстве создается одноименный файл.

Superfetch – технология похожая на Prefetch с тем отличием, что ПК предугадывает какие приложения будут запущенны, заблаговременно загружая их в память.

Обе функции не имеют пользы при использовании SSD. Поэтому их лучше всего отключить. Для этого:

  1. Вызываем командную строку сочетанием клавиш win + R.
  2. Выполняем команду: «regedit» (переход в реестр).
  3. Переходите по пути: HKEY_LOCAL_MACHINE → SYSTEM → CurrentControlSet → Control → Session Manager → Memory Management → PrefetchParameters.
  4. Находите в подразделе реестра несколько параметров: «EnablePrefetcher» и «EnableSuperfetch», устанавливаете их значение в 0 (по умолчанию 3).

Утилита SSD Mini Tweaker

Все вышеперечисленные действия можно выполнять вручную, но руками программистов были созданы программы – твикеры, предназначение которых кастомизация ОС windows, а также отдельных ее компонентов с помощью нескольких кликов. Одной из таких программ является SSD Mini Tweaker .

SSD Mini Tweaker – программа, разновидность твикеров, позволяющая без особых усилий оптимизировать ваш SSD.

Преимущества:

  • Полная русификация.
  • Работает на всех ОС начиная с Windows 7.
  • Бесплатная.
  • Понятный интерфейс.
  • Не требует установки.

Другие способы

Такие манипуляции, как перенос кэша браузеров, файлов подкачки, временных папок Windows, бэкапа системы с SSD диска на HDD (или отключение данной возможности) являются бесполезными, так как хоть и увеличивают продолжительность жизни ССД, но ограничивают потенциал его использования.

Тем самым выполнив несложные вышеперечисленные манипуляции с вашей ОС, вы сможете продлить жизнь вашего накопителя, а также настроить его на режим максимальной производительности.