Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

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


Особенности функционирования SSD накопителей.

Особенности функционирования SSD накопителей.

       На «физическом уровне» для того чтобы прочитать блок данных с винчестера (HDD) сначала нужно вычислить, где он находится (CHS), потом переместить блок магнитных головок на нужную дорожку, подождать пока нужный сектор окажется под головкой и тогда произвести считывание. Хаотические запросы по чтению к разным областям жесткого диска еще больше сказываются на времени доступа. При таких запросах HDD вынуждены постоянно перемещать головки по всей поверхности дисков и даже использование переупорядочивание очереди команд спасает не всегда. Зато SSD-дисках все просто - вычисляем адрес нужного блока и сразу же получаем к нему доступ по чтению/записи. Никаких механических операций не требуется, всё время уходит только на трансляцию адреса и передачу блока данных. Чем быстрее флэш-память, контроллер и внешний интерфейс, тем быстрее доступ к данным.

                А вот при изменении/стирании данных в SSD накопителе уже не все так просто. Микросхемы NAND флэш-памяти оптимизированы для секторного выполнения операций. Флеш-память пишется блоками по 4 Кбайта, а стирается по 512 Кбайт. При модификации нескольких байт внутри некоторого блока контроллер выполняет следующую последовательность действий: 
- считывает блок, содержащий модифицируемый блок во внутренний буфер/кеш; 
- модифицирует необходимые байты; 
- выполняет стирание блока в микросхеме флэш-памяти; 
- вычисляет новое местоположение блока в соответствии с требованиями алгоритма перемешивания; 
- записывает блок на новое место. 
                Как только вы записали информацию, она не может быть перезаписана до тех пор, пока не будет очищена. Проблема заключается в том, что минимальный размер записываемой информации не может быть меньше 4 Кб, а стереть данные можно минимум блоками по 512 Кб. Для этого контроллер группирует и переносит данные для освобождения целого блока (вот тут и сказывается оптимизация операционной системы (ОС) для работы с HDD). 
                При удалении файлов операционная система не производит физическую очистку секторов на диске, а только помечает файлы как удаленные, и знает, что занятое ими место можно заново использовать. Работе самого накопителя HDD это никак не мешает. Хотя такой метод удаления помогает повысить производительность при работе с HDD, но при использовании SSD он становится проблемой.

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

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

                Максимум производительности демонстрируют чистые накопители, а вот в ходе их эксплуатации реальная скорость понемногу начинает снижаться. Полное стирание данных стоит ждать тогда, когда на диск будет записано данных равное количеству свободного места + объем резерва (примерно 4 Гб для 60Гб SSD). Если файл попадёт на "изношенную" ячейку, контроллер ещё не скоро перезапишет её новыми данными. 
                Раньше в интерфейсе ATA просто не было команд для физической очистки блоков данных после удаления файлов на уровне ОС (для HDD они просто не требовались), но появление SSD заставило разработчиков пересмотреть отношение к данному вопросу. В результате в спецификации ATA появилась новая команда DATA SET MANAGEMENT, более известная как Trim. Она позволяет OC на уровне драйвера собирать сведения об удаленных файлах и передавать их контроллеру накопителя. 
                В периоды простоя, SSD самостоятельно осуществляет очистку и дефрагментацию блоков отмеченных как удаленные в ОС. Контроллер перемещает данные так, чтобы получить больше предварительно стертых ячеек памяти, освобождая место для последующей записи. Это дает возможность сократить задержки, возникающие в ходе работы. Но для реализации Trim необходима поддержка этой команды прошивкой накопителя и установленным в ОС драйвером. Сейчас только самые последние модели SSD поддерживают TRIM, а для старых накопителей нужно прошить контроллер для включения поддержки этой команды (среди операционных систем команду Trim поддерживают: Windows 7, Windows Server 2008 R2, Linux 2.6.33, FreeBSD 9.0). Для остальных ОС необходимо инсталлировать дополнительные драйвера и утилиты. Например, для SSD от Intel существует специальная утилита SSD Toolbox, которая может выполнять процедуру синхронизации с ОС по расписанию. Кроме оптимизации, утилита позволяет выполнять диагностику SSD и просматривать SMART-данные всех накопителей компьютера. С помощью SMART, можно оценить текущую степень износа SSD - параметр E9 отражает оставшееся количество циклов очистки NAND-ячеек в процентах от нормативного значения. Когда величина, уменьшаясь от 100, дойдет до 1, можно ожидать скорое появление "битых" блоков. 
                Источники проблем и средства  повышения надёжности SSD. Самый большой источник проблем - это контроллер и его прошивка. По причине того, что контроллер физически расположен между интерфейсом и микросхемами памяти, вероятность его повреждения в результате сбоя или проблем с питанием очень велика. С низким ресурсом MLC-чипов успешно борются: коррекцией ошибок с помощью ECC-контроля, резервированием, контролем за износом и перемешиванием блоков данных. При этом сами данные, в большинстве случаев сохраняются. Помимо физических повреждений, при которых доступ к данным пользователя невозможен, существуют логические повреждения, при которых также нарушается доступ к содержимому микросхем памяти. Любая, даже незначительная ошибка в прошивке, может привести к полной потере данных. Структуры данных очень сложные, информация "размазывается" по нескольким чипам, плюс еще чередование, все это делает процесс восстановления данных довольно сложной задачей. Обычно в таких случаях восстановить накопитель помогает прошивка контроллера с низкоуровневым форматированием, когда заново создаются служебные структуры данных. Производители стараются постоянно дорабатывать микропрограмму, исправлять ошибки, оптимизировать работу контроллера. По этому, рекомендуется периодически обновлять прошивку накопителя для исключения возможных сбоев. 
                Восстановление данных с SSD накопителей достаточно трудоёмкий и долгий процесс по сравнению с портативными flash накопителями. Процесс поиска правильного порядка, объединения результатов и выбора необходимого сборщика (алгоритм/программа полностью эмулирующая работу контроллера SSD накопителя) для создания образа диска не лёгкая задача. Связанно это в первую очередь с увеличением числа микросхем в составе SSD накопителя, что во много раз увеличивает число возможных вариантов действий на каждом этапе восстановления данных, каждое из которых требует проверки и специализированных знаний. В силу того, что к SSD предъявляются значительно более жесткие требования по всем характеристикам (надёжность, быстродействие и т.д.), чем к мобильным флеш-накопителям, технологии и методики работы с данными, применяемые в них, достаточно сложны, что требует индивидуального подхода к каждому решению и наличию специализированных инструментов и знаний. 
                Меры и средства для эффективной работы SSD-диска. Специалисты предлагают следующие меры и средства:
                1. Чтобы SSD-диск служил долго, нужно всё, что часто меняется (временные файлы, кеш браузера, индексирование) необходимо перенести на HDD, отключить обновление времени последнего доступа к папкам и каталогам (fsutil behavior set disablelastaccess 1), отключить в ОС дефрагментацию файлов. 
                2. Перед установкой на SSD Windows XP, при форматировании диска рекомендуется выполнить "выравнивание" разделов кратным степени двойки (например, утилитой Diskpart), иначе SSD придется делать два чтения вместо одного. Кроме того, у Windows XP есть некоторые проблемы с поддержкой секторов более 512 Кбайт (в SSD по умолчанию используется 4 Кбайт) и вытекающие отсюда проблемы с производительностью (Windows Vista, Windows 7, последние версии Mac OS и Linux выравнивают диски уже правильно). 
                3. Если старая версия не поддерживает команду TRIM, то следует обновить прошивку контроллера. Установить последние версии драйвера на SATA контроллеры (например, если у вас контроллер от Intel, вы можете на 10-20% увеличить производительность, включив режим ACHI и установив Intel Matrix Storage Driver в операционной системе). 
                4. Никогда не следует использовать последние 10 - 20% свободного пространства от раздела, т. к. это может отрицательно сказаться на производительности (особенно это важно, когда работает TRIM, поскольку ему необходимо пространство для перегруппировки данных). Очень важно постоянно следить за данным фактором, ведь объем SSD очень быстро заполняется. 
                Основные преимущества SSD, которые определяют его популярность, несмотря на все его сегодняшние проблемы (высокое энергопотребление при записи блоков данных, которое растёт с ростом объёма накопителя и интенсивностью изменения данных; высокая стоимость за гигабайт по сравнению с HDD; ограниченное число циклов записи):
- высокая скорость чтения любого блока данных не зависимо физического от расположения; 
- низкое энергопотребление при чтении данных с накопителя, чем у HDD; 
- пониженное тепловыделение (внутреннее тестирование в компании Intel показало, что ноутбуки с SSD нагреваются значительно меньше, чем аналогичные с HDD); 
- бесшумность и высокая механическая надёжность;
- SSD диски отлично подойдут в качестве системного раздела, на который инсталлируется ОС и на серверах для кэширования статичных данных.


Лицензия