SSDнакопитель Plextor M5 Pro 256 Гбайт
Совсем недавно компания Plextor анонсировала новую серию SSD-накопителей М5 Pro, которая вначале будет дополнять серию Plextor M3 Pro, а потом и заменит ее. В этой статье мы подробно рассмотрим SSD-накопитель Plextor M5 Pro и расскажем о результатах его тестирования.
Технические характеристики
В большинстве современных SSD-накопителей используется 8-канальный контроллер SandForce 2000-й серии (SandForce второго поколения) с поддержкой интерфейса SATA 6 Гбит/с. Этот контроллер позволяет реализовать максимальную скорость последовательного чтения и записи свыше 500 Мбайт/с (при размере блока более 128 Кбайт). Скорость случайного чтения блоков по 4 Кбайт достигает 60 000 IOPS, а скорость случайной записи — 20 000 IOPS (в устоявшемся режиме).
Хотя контроллер SandForce (особенно модель SF-2281) сегодня очень популярен среди производителей SSD-накопителей, это не единственный контроллер для SSD-накопителей с интерфейсом SATA 6 Гбит/с. Есть и другие модели, например Marvell 88SS9174 и Marvell 88SS9187, — на их основе тоже производятся SSD-накопители.
SSD-накопитель Plextor M5 Pro основан именно на контроллере Marvell 88SS9187 третьего поколения. Этот контроллер базируется на двухъядерном ARM-процессоре, что позволяет путем изменения прошивки гибко варьировать его характеристики. Как и контроллер SandForce второго поколения, Marvell Marvell 88SS9187 является восьмиканальным и поддерживает команду TRIM.
Контроллер также реализует функцию SMART и функцию динамического выравнивания износа Dynamic Wear leveling. Кроме того, он поддерживает функцию сбора мусора (Garbage Collection), которая в данном случае называется технологией True Speed. На сайте компании Plextor об этой технологии сообщают, что она предупреждает значительное падение производительности, характерное для некоторых SSD после интенсивного и длительного использования.
Итак, давайте подробнее ознакомимся с техническими характеристиками SSD-накопителя Plextor M5 Pro.
Всего в линейке M5 Pro выпускаются три модели накопителей: объемом 128, 256 и 512 Гбайт. Понятно, что их технические и скоростные характеристики немного различаются.
Так, в модели емкостью 128 Гбайт размер буфера контроллера на основе памяти DDR3-1333 составляет 256 Мбайт; в модели емкостью 256 Гбайт — 512 Мбайт, а емкостью 512 Гбайт — 768 Мбайт.
Во всех накопителях серии M5 Pro используются микросхемы NAND-флэшпамяти типа MLC (с многоуровневыми ячейками) от компании Toshiba. В модели емкостью 256 Гбайт установлено восемь микросхем емкостью по 32 Гбайт (контроллер восьмиканальный). Можно предположить, что и в других моделях накопителей применяются восемь микросхем памяти, но другой емкости.
Согласно спецификации, при подключении по интерфейсу SATA 6 Гбит/с максимальная скорость последовательного чтения всех моделей накопителей Plextor M5 Pro составляет до 540 Мбайт/с (при использовании файловой системы NTFS). Максимальная скорость последовательной записи для модели емкостью 128 Гбайт может достигать 340 Мбайт/с, а для моделей емкостью 256 и 512 Гбайт — 450 Мбайт/с.
В режиме случайной записи блоками по 4 Кбайт производительность, которая традиционно измеряется в количестве операций вводавывода в секунду (IOPS), составляет до 82 000 IOPS для накопителя емкостью 128 Гбайт и до 86 000 IOPS — для накопителей емкостью 256 и 512 Гбайт.
В режиме случайного чтения блоками по 4 Кбайт производительность составляет до 91 000 IOPS для накопителя емкостью 128 Гбайт и до 94 000 IOPS — для накопителей емкостью 256 и 512 Гбайт.
Остается добавить, что среднее время наработки накопителя на отказ составляет 2 400 000 часов, а предоставляемая гарантия — пять лет.
Рекламные материалы, представленные на сайте производителя, сообщают, что накопители серии M5 Pro — это профессиональные накопители, предназначенные для корпоративного сектора и опытных пользователей, которым необходима высокая производительность, надежность и абсолютная целостность данных.
Кроме того, как следует из рекламных материалов, накопители серии M5 Pro предоставляют двойную защиту данных уровня предприятия. Применение современного 128-разрядного кода исправления ошибок, реализованного в контроллере Marvell, позволяет автоматически проверять и корректировать точность данных, считываемых с флэшпамяти. Второй уровень защиты по чтению, обеспечиваемый алгоритмом приостановки передачи данных (Robust Data Hold-out Algorithm), реализованный в прошивке Plextor, позволяет добиться максимальной целостности данных при различных нагрузках.
Для защиты данных в контроллер встроена функция аппаратного шифрования данных по алгоритму AES с применением максимального, 256-битного уровня шифрования, соответствующая стандарту правительства США. Этот уровень шифрования твердотельных накопителей имеет более надежную защиту в сравнении с программным шифрованием.
Остается отметить, что на каждый SSD-накопитель серии M5 Pro предоставляется пятилетняя гарантия.
Что касается комплектации поставки накопителей серии M5 Pro с формфактором 2,5-дюйма, то они поставляются вместе с переходником, позволяющим устанавливать накопитель в 3,5-дюймовый отсек. Кроме того, предусмотрены компактдиск с утилитой для клонирования данных Acronis True Image HD и инструкция по установке и подключению. Это ПО позволяет быстро и легко заменить HDD-диск на SSD-накопитель без потери данных.
Корпус накопителя M5 Pro, выполненный из текстурированного алюминия, весьма прочный и не продавливается даже при сильном нажатии на него. Отличительной особенностью дизайна SSD-накопителей серии M5 Pro является их толщина — она составляет всего 7 мм, что позволяет использовать их в ультрабуках.
Несомненным преимуществом накопителей серии Plextor M5 Pro является то, что их можно перепрошивать, то есть обновлять прошивку контроллера. На момент тестирования на сайте производителя для накопителей серии Plextor M5 Pro была выложена прошивка версии 1.0.1 (для накопителей разного объема прошивки различные), которую мы и прошили на нашем тестовом образце емкостью 256 Гбайт.
Методика тестирования
Для тестирования SSD-накопителя PLEXTOR M5 Pro емкостью 256 Гбайт мы использовали стенд следующей конфигурации:
- процессор — Intel Core i7-3770K;
- системная плата — ASUS P8Z77-V Pro;
- чипсет системной платы — Intel Z77 Express;
- накопитель с операционной системой — Intel SSD 520 Series (240 Гбайт);
- режим работы SATA — AHCI;
- драйвер дисков — Intel RST 10.6;
- контроллер диска — интегрированный в чипсет контроллер SATA 6 Гбит/с.
В ходе тестирования применялась операционная система Windows 7 Ultimate (64 bit). Дополнительно устанавливался драйвер Intel RST 10.6, а тестируемый SSD-накопитель подключался к порту SATA 6 Гбит/с, который был реализован через контроллер, интегрированный в чипсет. К еще одному SATA-порту подключался SSD-накопитель, на который устанавливались операционная система и все необходимые для тестирования приложения. Для всех SATA-портов задавался режим работы AHCI.
Для тестирования мы использовали утилиту IOmeter версии 2008.06.18, которая представляет собой очень мощный инструмент для анализа производительности накопителей (как HDD, так и SSD) и фактически является отраслевым стандартом для измерения производительности накопителей.
Тестирование SSD-накопителя с помощью утилиты IOmeter мы проводили без создания на нем логического раздела, чтобы не привязывать результаты тестирования к конкретной файловой системе.
При тестировании исследовалась зависимость скорости выполнения операций последовательного и случайного чтения, а также последовательной и случайной записи от размера блока данных.
Также анализировалась зависимость производительности накопителя (IOPs) в операциях случайного чтения и записи от глубины очереди задач для блоков размером 4 Кбайт.
Кроме того, мы проверили накопитель на предмет старения, то есть выяснили, как меняется со временем его производительность в операциях случайной записи.
Для определения скорости последовательного чтения, случайного чтения и последовательной записи использовались запросы на передачу данных блоками следующих размеров: 512 байт, 1, 2, 4, 8, 16, 32, 64, 128, 256, 512 Кбайт, 1, 2, 4, 8, 16 и 32 Мбайт. В этих тестах в настройках IOmeter глубина очереди задачи (# of Outstanding I/Os) задавалась равной 4, что типично для пользовательских приложений.
Для анализа зависимости производительности накопителя в операциях случайного чтения и записи от глубины очереди задач применялись блоки размером 4 Кбайт, а глубина очереди задач задавалась равной 1, 2, 4, 8, 16, 32 и 64. Отметим, что результаты этого теста особенно важны, если накопитель используется в сервере, RAID-массиве или NAS-системе.
Для проверки накопителя на предмет старения мы построили график зависимости изменения скорости случайной записи от времени для блоков размером 4 Кбайт. Время тестирования составляло 10 часов, а результат фиксировался через каждую минуту. Перед началом теста накопитель искусственно приводился к состоянию нового. Для этого на накопителе создавался логический раздел максимального размера, который форматировался, а затем удалялся.
Результаты тестирования
Анализ результатов тестирования мы начнем с теста старения SSD-накопителя. Однако прежде напомним, почему некоторые SSD-накопители подвержены эффекту старения и в чем он заключается. Дело в том, что флэшпамять NAND логически организована в виде страниц и блоков. Страница имеет размер 4 Кбайт и представляет собой минимальный объем флэшпамяти, к которому можно обратиться для чтения или записи. Блок памяти обычно состоит из 128 страниц и является минимальным объемом флэшпамяти, который можно удалить.
Собственно, причина старения SSD-накопителей заключается в двух простых фактах. Вопервых, в SSD-накопителях запись и чтение данных производятся страницами, а удаление данных — только блоками. Вовторых, для того чтобы перезаписать данные в страницу флэшпамяти (то есть записать данные в страницу памяти, которая ранее уже была записана), нужно прежде очистить ее (выполнить операцию удаления данных, а потом уже операцию записи). То есть в SSD-накопителях данные могут записываться только в пустые страницы памяти.
Запись на SSD-накопитель в основном происходит последовательно, поэтому существует большая разница между записью на новый диск (на который данные еще не записывались) и на уже заполненный диск. Отметим, что, с точки зрения пользователя, заполненный диск может быть пустым, поскольку удаление данных с диска на уровне операционной системы еще не означает их реального удаления из флэшпамяти.
При случайной записи на пустой (или частично занятый) SSD-накопитель все данные пишутся последовательно в страницы памяти, заполняя тем самым блоки памяти. Причем даже в случае, если производится перезапись данных, они последовательно записываются в следующие по порядку свободные страницы памяти, а в таблице соответствия логических и физических адресов те страницы, куда эти данные были записаны ранее, помечаются как содержащие устаревшие данные (помечаются к удалению).
Естественно, при таком последовательном алгоритме записи неизбежна ситуация, когда весь диск заполнится, то есть на нем не останется блоков со свободными страницами, а будут лишь блоки, содержащие страницы с актуальными данными, и страницы, помеченные к удалению.
Казалось бы, почему нельзя записывать новые данные в те страницы флэшпамяти, которые содержат устаревшие данные и помечены на удаление? Можно, но для того, чтобы произвести запись данных в занятую страницу памяти, предварительно ее нужно очистить, причем если запись и чтение во флэшпамяти осуществляются страницами, то удаление возможно только блоками. И если нам потребуется очистить какую-то страницу памяти, то придется стереть весь блок, в котором находится эта страница. Но данный блок может содержать как страницы, помеченные к удалению (страницы с устаревшими данными), так и страницы с актуальными данными, которые удалять нельзя. Для того чтобы использовать блоки со страницами, помеченными к удалению, применяется метод переноса данных с помощью пустых и резервных блоков. Даже если пустых блоков в SSD-накопителе уже не осталось, всегда есть определенное количество резервных блоков, используемых для переноса данных. Чтобы удалить страницу с устаревшими данными, прежде нужно переместить из соответствующего блока страницы с актуальными данными в резервный свободный блок и уже потом удалить весь блок, содержащий страницы с устаревшими данными. В результате мы получаем частично занятый блок с перемещенными данными, доступный для записи, и пустой блок, который становится резервным. Однако из-за такого перемещения данных приходится записывать на SSD-накопитель больше данных, чем требуется. К примеру, если нужно записать всего одну страницу (4 Кбайт) и для этого нет свободного блока, то прежде необходимо найти блок со страницами, помеченными к удалению. Если имеется блок, в котором помечена на удаление всего одна страница, то нужно переместить из этого блока в резервный блок остальные 127 страниц и дополнить его той одной страницей, которую нужно было записать. Затем блок со страницей, помеченной на удаление, стирается и становится резервным. Получается, что для записи всего одной страницы (4 Кбайт) приходится записывать 128 страниц (512 Кбайт), и это не считая того, что требуется время еще и на чтение всего блока, и на его стирание. Именно поэтому скорость записи на новый и на уже заполненный накопители может различаться.
Рассмотренный пример несколько идеализирован: в реальности перемещение данных, то есть избавление от блоков со страницами, помеченными к удалению, происходит по мере заполнения диска, причем с помощью как пустых, так и резервных блоков. Эта процедура получила название «сбора мусора» (Garbage Collection).
Существуют различные алгоритмы процедуры Garbage Collection, и разница между ними заключается в том, каким именно образом выбирается блок, используемый для перемещения данных. Понятно, что это должен быть блок, содержащий как можно больше страниц памяти, помеченных к удалению. Именно в этом случае можно минимизировать количество операций записи. Кроме того, учитывая, что количество циклов перезаписи ячеек флэшпамяти ограниченно, процедура Garbage Collection с выбором блока с оптимальным количеством страниц, помеченных к удалению, позволяет продлить время жизни SSD-накопителя.
Казалось бы, что мешает просто выбрать блок с максимальным количеством страниц, помеченных к удалению? Но для этого нужно просмотреть всю таблицу соответствия физических и логических адресов, а это довольно трудоемкая операция для контроллера, которая требует достаточно много процессорных циклов. Такой способ выбора блоков на удаление не оптимален и ведет к снижению производительности, поэтому используются алгоритмы окна, когда анализируются не все блоки, а лишь некоторая их часть (окно блоков), с наибольшей вероятностью содержащая блок с максимальным количеством страниц, помеченных к удалению.
Итак, эффект старения SSD-накопителей заключается в том, что скорость записи на пустой SSD-накопитель выше скорости записи на заполненный (c точки зрения контроллера) накопитель. Понятно, что эффект старения может проявляться лишь в падении скорости записи, но скорость чтения изменяться при этом не будет, то есть теоретически скорость чтения данных с нового и ранее использовавшегося накопителей должна быть одинаковой.
Ну а теперь посмотрим, меняется ли со временем скорость случайной записи SSD-накопителя Plextor M5 Pro.
На рис. 1 представлен график изменения во времени скорости случайной записи блоками по 4 Кбайт. Как видите, скорость случайной записи на самом деле меняется от времени, несмотря на заверения производителя, что она стабильна.
Впрочем, мы немного отвлеклись от темы. Тот факт, что накопитель Plextor M5 Pro подвержен старению, налагает определенные ограничения на методику его тестирования. Если скорость случайного и последовательного чтения не должна зависеть от состояния накопителя (новый или ранее использовавшийся), то вот со скоростью случайной и последовательной записи всё не так просто.
Собственно, скорость случайной записи зависит и от начального состояния накопителя, и от того, как долго длится тест. Скорость последовательной записи зависит также от того, как именно раньше применялся накопитель. Более того, длительный тест на скорость последовательной записи меняет сценарий использования накопителя, что может выражаться даже в возрастании скорости последовательной записи.
Действительно, если на накопителе предварительно в течение долгого времени осуществлялись операции последовательной записи, то при дальнейшей последовательной записи процедура перемещения данных не должна повлиять на скорость и результат не должен сильно отличаться от результата с новым накопителем. Если на накопителе предварительно в течение долгого времени осуществлялись операции случайной записи, то в будущем при последовательной записи доминирующим фактором, который может отразиться на скорости, станет процедура перемещения данных. В то же время если процедуру последовательной записи проводить долго, то в конечном счете количество разрозненных страниц памяти, помеченных к удалению, станет небольшим, а скорость последовательной записи возрастет и станет практически такой же, как и в случае с новым накопителем.
С измерением скорости последовательной записи всё несколько проще. Если использовать новый накопитель или накопитель, на который предварительно последовательно записывали данные, то скорость последовательной записи не будет меняться со временем.
А вот с измерением скорости случайной записи всё сложнее. Если начинать измерения на новом (ранее не использовавшемся) накопителе, то скорость случайной записи будет меняться со временем — в таком случае непонятно, что именно следует понимать под скоростью случайной записи.
Казалось бы, нужно проводить измерения на ранее использовавшемся накопителе, тогда скорость случайной записи не будет меняться со временем. Тем более что такой накопитель легко создать, если применять в утилите IOmeter операцию случайной записи в течение долгого времени. Собственно, время, на протяжении которого необходимо осуществлять операцию случайной записи для приведения накопителя к состоянию ранее использовавшегося, зависит и от размера накопителя, и от скорости случайной записи. Это время легко подсчитать, исходя из соображения, что ранее использовавшийся накопитель — это такой накопитель, для которого объем записанных в совокупности данных превышает объем накопителя минимум в полтора раза.
Говоря о ранее использовавшемся и новом накопителях, отметим, что привести любой накопитель к состоянию нового (то есть к состоянию накопителя, у которого все блоки памяти пустые) довольно просто. Если на накопителе не был создан логический раздел, то его нужно создать и отформатировать, после чего удалить. Если же речь идет о накопителе с логическим разделом, то его нужно просто удалить, а затем создать вновь и отформатировать.
Впрочем, вернемся к проблеме измерения скорости случайной записи на SSD-накопителе Plextor M5 Pro. Идея измерить скорость случайной записи на накопителе, приведенном к состоянию ранее использовавшегося, увы, не слишком проста в реализации. Дело в том, что в этом накопителе реализована функция «мгновенного восстановления». Конечно же, это не означает, что после продолжительного применения накопителя его производительность остается как новая, как об этом говорится в прессрелизе, но не учитывать ее наличие нельзя. То есть как только накопитель остается без работы, он начинает активно самовосстанавливаться, занимаясь перемещением данных и оптимизацией таблицы соответствия физических и логических адресов. В результате если накопитель оставить на продолжительное время, а потом опять начать его тестировать, то вначале он будет вести себя как новый, но только в течение весьма непродолжительного времени, после чего его производительность упадет до уровня ранее использовавшегося.
В принципе, с помощью утилиты IOmeter можно измерить зависимость скорости случайной записи от размера блока для накопителя, приведенного к состоянию ранее использовавшегося, но для этого не нужно учитывать результаты первых нескольких минут (утилита IOmeter это позволяет). Именно поэтому измерение скорости случайной записи мы проводили только для ранее использовавшегося накопителя Plextor M5 Pro.
При измерении скорости случайной записи перед началом тестирования накопитель был приведен к состоянию ранее использовавшегося. Первоначально накопитель тестировался с размером блока 512 байт в течение 3 мин, но результаты данного теста не учитывались. Этот дополнительный прогон был необходим для того, чтобы привести скорость случайной записи к установившемуся значению после простоя накопителя и его последующего самовосстановления.
Аналогичная проблема старения возникает и при измерении скорости выполнения операций вводавывода для случайной записи от числа одновременных запросов вводавывода. А потому более корректно проводить этот тест для ранее использовавшегося накопителя. То есть перед началом тестирования накопитель приводился к состоянию ранее использовавшегося, а затем тестировался в течение 3 мин с числом одновременных запросов вводавывода равным 1, но результаты данного теста не учитывались (дабы привести скорость случайной записи к установившемуся значению после простоя накопителя и его последующего самовосстановления). И уже после этого проводилось тестирование с фиксацией результатов.
Кроме того, чтобы наглядно продемонстрировать разницу между производительностью нового и ранее использовавшегося накопителя Plextor M5 Pro, мы также провели измерение скорости выполнения операций вводавывода для случайной записи от числа одновременных запросов вводавывода для нового накопителя. Во избежание негативного эффекта старения накопителя в ходе самого тестирования мы поступали следующим образом. Для каждого числа одновременных запросов вводавывода тест производился в течение 1 мин (за это время накопитель не успевает устареть и скорость не меняется). После этого накопитель приводился к состоянию нового и тест повторялся для следующего значения числа одновременных запросов вводавывода.
Сводные результаты тестирования SSD-накопителя Plextor M5 Pro представлены на рис. 2-4.
Прежде всего отметим, что скорость последовательного чтения и скорость случайного чтения оказались абсолютно одинаковы для любого размера блока, именно поэтому мы приводим один график, соответствующий и последовательному, и случайному чтению.
Как видите, максимальная скорость последовательного и случайного чтения составляет 539 Мбайт/с (см. рис. 2). Характерно, что максимальные значения скорости чтения достигаются при размере блока 64 Кбайт. Еще раз подчеркнем, что для операций чтения нет разницы, о каком накопителе идет речь — новом или ранее использовавшемся.
Рис. 1. График временного изменения скорости случайной записи блоками по 4 Кбайт
Максимальная скорость последовательной записи нового накопителя достигает 425 Мбайт/с при размере блока 128 Кбайт (см. рис. 3).
Рис. 2. Зависимость скорости чтения от размера блока
А вот максимальная скорость случайной записи, которая, как мы уже отмечали, измерялась для ранее использовавшегося накопителя, составляет только 10 Мбайт/с и достигается при размере блока 16 Кбайт. Как видите, скорость случайной записи — это ахиллесова пята накопителя Plextor M5 Pro.
На рис. 4 представлена зависимость скорости выполнения операций вводавывода для случайного чтения и случайной записи от числа одновременных запросов вводавывода (# of Outstanding I/Os).
Рис. 4. Зависимость скорости выполнения операций ввода-вывода
для случайного чтения и случайной записи от числа одновременных
запросов ввода-вывода (# of Outstanding I/Os)
Как уже отмечалось, тест на скорость случайной записи выполнялся как для нового, так и для ранее использовавшегося накопителя. Итак, производительность случайной записи для нового и ранее использовавшегося накопителей различается в несколько десятков раз.
В заключение еще раз отметим, что если накопитель Plextor M5 Pro протестировать с применением других тестов, не учитывающих эффекта старения, то можно получить другие, возможно, лучшие результаты. Однако, как нам кажется, предлагаемая нами методика тестирования с использованием утилиты IOmeter является самой объективной и правильной. Недаром все ведущие производители SSD-накопителей указывают скоростные характеристики своих изделий именно по данным утилиты IOmeter.