Новая файловая система ExtremeFFS для SSD-дисков
5 ноября 2008 года компания SanDisk Corporation представила новейшую файловую систему ExtremeFFS (Extreme Flash File System) для накопителей на базе твердотельной памяти (SSD), обеспечивающую существенный прирост производительности и надежности. По заявлениям компании SanDisk Corporation, эта патентованная система нового поколения для управления флэш-памятью позволяет достичь стократного увеличения скорости произвольной записи в существующих устройствах и будет поставляться с продукцией SanDisk в 2009 году.
Как показывают первые результаты тестирования SSD-дисков различных производителей, преимущество SSD-дисков над традиционными HDD-дисками отнюдь не очевидно, особенно если речь идет об операции выборочной (случайной) записи. Кроме того, до сих пор одним из наиболее слабых мест SSD-дисков является количество циклов перезаписи памяти.
Проблема заключается в том, что флэш-память типа NAND может выдержать порядка 100 тыс. циклов перезаписи информации. Для того чтобы оценить время жизни (время наработки на отказ) флэш-памяти, в которой не используются специальные технологии его продления, рассмотрим простейший случай, когда каждый логический сектор флэш-памяти жестко связан с физическим сектором. Напомним, что логический сектор — это минимальный объем памяти, доступный операционной системе. Для всех операционных систем логический сектор флэш-памяти составляет 512 байт. Под физическим сектором флэш-памяти понимают наименьший размер доступной для записи физической памяти. В случае если необходимо обновить содержимое логического сектора, первоначально нужно стереть информацию соответствующего физического сектора. Кроме того, во флэш-памяти различают еще и минимальный физический блок стираемой памяти (Physical Erase Unit), то есть блок памяти, который может быть стерт за одну операцию. Один Physical Erase Unit может содержать несколько физических секторов памяти.
Теперь рассмотрим случай, когда в ОС используется файловая система FAT. В этом случае при операциях записи на флэш-память FAT-таблицы будут постоянно модифицироваться. Проблема в том, что FAT-таблицы располагаются в строго определенном месте, то есть всегда соотносятся с одними и теми же логическими секторами памяти, а следовательно, с одними и теми же физическими секторами. Но часто повторяющиеся операции перезаписи одних и тех же физических секторов флэш-памяти приводят к тому, что время жизни всей памяти существенно сокращается. Для того чтобы продемонстрировать актуальность этой проблемы, рассмотрим пример записи файлов размером 8 Мбайт. Предположим, что Physical Erase Unit имеет размер 16 Кбайт (типичное значение для флэш-памяти типа NAND), а размер кластера (физический сектор памяти) равен 2 Кбайт (предполагается файловая система FAT16).
Файл размером 8 Мбайт потребует 4 K кластеров (по 2 Кбайт на кластер), а размер FAT-таблицы, соответствующей этому файлу, составит 8 Кбайт (по 2 байт на каждый кластер).
Поскольку FAT-таблица обновляется при записи каждого нового кластера, запись файла размером 8 Мбайт потребует 4096 обновлений FAT-таблицы. С учетом того, что минимальный физический блок стираемой памяти имеет размер 16 Кбайт, при каждом обновлении FAT-таблица будет стираться и перезаписываться полностью. Понятно, что для достижения 100 тыс. операций перезаписи FAT-таблицы достаточно всего 25 раз записать файл размером 8 Мбайт в одно и то же место флэш-памяти.
Из этого следует, что если физические секторы флэш-памяти жестко связаны с логическими секторами, то это приводит к быстрому износу флэш-памяти.
Производители SSD-дисков по-разному решают проблему повышения их долговечности (многое зависит от прошивки контроллера SSD-диска), однако единого стандарта для реализации алгоритма записи для SSD-дисков пока нет.
Один из способов повышения износостойкости флэш-памяти был предложен компанией SanDisk еще в 1994 году. Именно тогда она представила файловую систему для флэш-накопителей TrueFFS, которая применялась крупнейшими производителями мобильных телефонов. Впоследствии файловая система TrueFFS использовалась в операционной системе Windows в качестве стандарта Flash Transition Layer (FTL) для карт флэш-памяти PCMCIA.
Идея файловой системы TrueFFS заключалась в том, чтобы избежать жесткой привязки логических секторов к физическим, применяя вместо этого динамическую связь. В файловой системе TrueFFS логические секторы связываются не с физическими, а с виртуальными секторами. А вместо минимального физического блока стираемой памяти (Physical Erase Unit) оперируют виртуальными блоками стираемой памяти (Virtual Erase Unit), которые, в свою очередь, состоят из виртуальных секторов. Каждый виртуальный сектор, содержащий данные, отображается на физический сектор памяти (связан с физическим сектором). В случае если виртуальный блок стираемой памяти не содержит данных в виртуальных секторах, то отображения виртуального блока стираемой памяти на физический блок стираемой памяти не происходит.
Виртуальные блоки стираемой памяти представляют последовательностью физических блоков стираемой памяти, содержащей записанные данные. Все физические блоки стираемой памяти, не представляемые виртуальными блоками стираемой памяти, группируются в особый пул, из которого они могут выделяться динамически по циклическому алгоритму. Когда виртуальный сектор требует выделить физический сектор памяти, из пула выделяется свободный блок стираемой физической памяти.
В результате, даже если какое-либо приложение постоянно обновляет данные одних и тех же логических секторов памяти, в операциях стирания и записи всегда используются разные физические секторы памяти, равномерно распределенные по всему объему флэш-памяти, что значительно увеличивает износостойкость памяти. В результате время жизни флэш-памяти можно оценить по следующей формуле:
К примеру, если размер флэш-памяти равен 1 Гбайт и ежедневно записывается также 1 Гбайт данных, то время жизни флэш-памяти составит примерно 205 лет.
Мы не зря остановились на особенностях файловой системы TrueFFS, поскольку предлагаемая сегодня компанией SanDisk новая файловая система ExtremeFFS для SSD-дисков является своего рода логическим развитием системы TrueFFS. Ее основная идея опять-таки заключается в том, что нет жесткого соответствия между логическими и физическими секторами. Эта файловая система применяет страничный (page-based) алгоритм работы с памятью, не предусматривающий жесткого соответствия между физическим и логическим размещением данных. При записи сектора данных SSD-накопитель размещает эти данные на наиболее оптимальном и удобном участке. По заявлениям представителей компании SanDisk, использование файловой системы ExtremeFFS позволяет не только повысить износостойкость флэш-памяти, но и значительно увеличить скорость произвольной записи (возможно стократное увеличение скорости), а кроме того, повышается надежность хранения данных.
В файловой системе ExtremeFFS вся флэш-память организована в физические блоки (секторы) размером 512 Кбайт. Каждый такой сектор состоит из так называемых страниц. Под страницей понимают минимальный размер физической флэш-памяти, которая может быть считана или записана. В случае флэш-памяти SanDisk размер страницы составляет 8 Кбайт.
Обычно операция записи страницы флэш-памяти сопровождается предварительным стиранием содержимого страницы, то есть операция записи — это считывание страницы с последующей перезаписью. Такая операция считывания страницы с последующей перезаписью может занимать порядка 100 мс. Если же речь идет о записи данных в пустую страницу, то эта операция не требует предварительного удаления содержимого страницы и занимает примерно 1 мс, то есть производится в 100 раз быстрее, чем операция считывания с последующей перезаписью. Идея технологии ExtremeFFS как раз и заключается в том, чтобы избежать использования операции записи страницы флэш-памяти с предварительным стиранием ее содержимого, заменив ее на запись пустых страниц памяти. Достигается это за счет того, что все страницы памяти помечаются как свободные, занятые или измененные (отмеченные к удалению данных). Поскольку логические секторы не привязаны к физическим, когда производится операция случайной записи некоторого логического сектора, контроллер выделяет для записи имеющуюся свободную страницу, а занятую страницу, соответствующую этому логическому сектору, помечает как измененную.
Поскольку флэш-память является многоканальной (от 4 до 10 каналов между контроллером и чипами флэш-памяти), операции чтения, записи и удаления информации могут производиться одновременно.
Таким образом, в системе ExtremeFFS применяется полностью неблокируемая архитектура (fully non-blocking architecture), в которой все каналы NAND могут работать независимо друг от друга: часть каналов может использоваться в режиме чтения, а оставшаяся часть — в режиме записи или очистки памяти.
Отметим, что технология ExtremeFFS теоретически позволяет в 100 раз ускорить лишь операции выборочной записи. Скорость последовательной записи, а также скорость последовательного чтения и выборочного чтения при этом не увеличивается.
Однако нужно отметить, что при работе операционной системы Windows Vista, которая не оптимизирована под применение SSD-дисков, осуществляется большое количество операций выборочной записи блоками как раз по 8 Кбайт. Использование в этом случае технологии ExtremeFFS может заметно повысить производительность всей системы в целом.
Еще одним важным элементом ExtremeFFS является механизм локализации контента в зависимости от характера использования данных (usage-based content localization), с помощью которого система управления памятью выявляет типовой характер работы с данными и со временем специально оптимизирует локализацию данных для обеспечения максимальной производительности и повышения надежности их хранения.
Помимо системы управления памятью ExtremeFFS компания SanDisk представила две новые метрики — virtual RPM (vRPM) и LDE, с помощью которых конечные пользователи смогут оценивать свои SSD-накопители.
Метрика vRPM позволяет сравнить производительность SSD-накопителей с традиционными дисковыми накопителями, а параметр LDE позволяет определить долговечность и ресурс твердотельного накопителя.
Одной из характеристик традиционных жестких дисков является частота вращения (Rotation Per Minute, RPM), которая косвенно влияет и на производительность дисков. Твердотельные SSD-накопители также нуждаются в простой метрике для оценки их производительности и для сравнения с традиционными HDD-дисками. С помощью предложенного параметра vRPM — виртуальной частоты вращения — пользователи смогут сравнивать SSD- и HDD-накопители. Параметр vRPM позволяет ответить на вопрос, какой должна быть частота вращения у дискового накопителя, чтобы он мог обеспечить уровень производительности данного SSD-накопителя.
Метрика LDE (Long-Term Data Endurance) — это показатель надежности длительного хранения данных, который выражается простым числом. Во многом этот показатель можно сравнить со степенью износа протектора автомобильных шин.
Параметр LDE отражает общее количество операций записи данных, возможных на протяжении всего срока службы SSD-накопителя. SanDisk планирует указывать LDE на своих новых SSD-решениях и настоятельно рекомендует другим производителям последовать ее примеру. Многие производители ПК и поставщики SSD-решений уже изучили и прокомментировали предложенную SanDisk концепцию, и SanDisk направила свое предложение и техническую документацию в JEDEC — ведущую организацию, занимающуюся стандартизацией твердотельных накопителей.