Trim для windows 2003

Настройка SSD под Windows XP/2003

Все ниже описанное нагло содрано с одного из форумов в чистом виде, за исключением шага про установку Windows XP.

Поскольку SSD это рокет сайенс, а winxp это уже почти пережиток прошлого, совмещение этих двух вещей порождает взрыв мозга. Заморочившись, я порылся в Интернете и ничего не нашел – т.е. пишут много, но для нубов (чтоб было понятно) ничего нет. Поэтому плоды взрыва собственного мозга я собрал здесь, на всеобщее обозрение. Если есть что добавить – вэлком!

PS. Если не заморачиваться, можно просто воткнуть и почти все будет хорошо. Правда потенциально могут быть затыки, повышенный износ SSD и производительность меньше заявленной. Если у вас win7, то можно просто воткнуть и все будет нормально.

Выравниваем партицию по блокам SSD.

В SSD запись и стирание производится более крупными, чем в HDD блоками, поэтому невыровненная относительно данных блоков партиция и кластеры файловой системы могут привести к потере производительности и повышенному износу диска, поскольку для добавления инфы контроллеру диска придется чаще считывать-модифицировать-записывать эти блоки (особенно заметно на файлах небольшого размера). На некоторых SSD фирмы OCZ прирост производительности заявлен до 300% (см. http://www.ocztechnologyforum.com/forum/showthread.php?t=48309).

Лечится выравниванием партиции по границе блока SSD и установкой кластера файловой системы равным размеру блока. Для большинства дисков размер блока 4кб (4096 байт). Калькулятор для определения, выравнена ли ваша партиция по блокам диска лежит здесь: http://www.techpowerup.com/articles/other/157

Для нового SSD процесс достаточно прост. Я пользовался схемой описанной по первой ссылке (http://www.ocztechnologyforum.com/forum/showthread.php?t=48309).

Если по-русски, то делать нужно следующее:

  • Скачать diskpar.exe (http://kb.wisc.edu/images/group14/4556/diskpar.exe)
  • Подключить SSD к рабочему компу
  • Через «Управление Дисками» (Пуск – Панель Управления – Администрирование – Управление Компьютером – Управление Дисками) найти номер нового диска и убедиться, что на нем нет разделов (если есть – удалить, иначе diskpar не будет работать)
  • Через консоль (пуск – выполнить – cmd) запустить diskpar.exe с атрибутами «-i x», где x – номер SSD в системе, который мы нашли на предыдущем шаге. Убедиться, что на диске нет разделов (diskpar напишет текст, оканчивающийся на «End of partition information. Total existing partitions: 0»).
  • Через консоль запустить diskpar.exe с атрибутами «-s x», где x – номер SSD в системе. Ответить “y” на два вопроса, которые задаст diskpar, на третий вопрос указать начало партиции (в секторах) как 2048, на четвертый указать размер партиции.
  • Отформатировать партицию в ntfs с размером кластера 4096 байт через управление дисками

Пример текста при работе с diskpar (в данном примере ssd является диском 1):

C:\Install>diskpar -i 1
—- Drive 1 Geometry Infomation —-
Cylinders = 4139
TracksPerCylinder = 240
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 32041820160 (Bytes) = 30557 (MB)

End of partition information. Total existing partitions: 0

C:\Install>diskpar -s 1
Set partition can only be done on a raw drive.
You can use Disk Manager to delete all existing partitions
Are you sure drive 1 is a raw device without any partition? (Y/N) y

—- Drive 1 Geometry Infomation —-
Cylinders = 4139
TracksPerCylinder = 240
SectorsPerTrack = 63
BytesPerSector = 512
DiskSize = 32041820160 (Bytes) = 30557 (MB)

We are going to set the new disk partition.

All data on this drive will be lost. continue (Y/N)? y

Please specify starting offset (in sectors): 2048
Please specify partition length (in MB) (Max = 30556): 30556

Done setting partition.
—- New Partition information —-
StatringOffset = 1048576
PartitionLength = 32041304064
HiddenSectors = 128
PartitionNumber = 1
PartitionType = 7

You now should use Disk Manager to format this partition

Лирическое отступление: значение partition starting offset в разных источниках указывается разное (от 65536 до 1048576), я предлагаю использовать последнее т.к. это значение, используемое win7 для ssd, кроме того это значение более универсальное (раздел, начинающийся на 1048576 выровнен по 65536, но не наоборот).

У меня не было под рукой только один sata-шлейф, поэтому я весь процесс проделал, запустившись с live cd. В моей сборке не было «Управления дисками», поэтому номер диска пришлось угадывать (если в системе нет других дисков – 0 будет правильной догадкой). Удаления разделов я избежал, так как на новом ssd никаких разделов не было. Форматировал я через пуск – выполнить – «format c: /fs:ntfs /a:4096», где «с» нужно заменить на букву ssd. Если в используемой сборке live cd есть «Управления дисками», то просто следуем по шагам выше.

Настраиваем WinXP/2003

Устанавливаем в реестре следующие параметры:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Session Manager\Memory Management\PrefetchParameters] «EnablePrefetcher»=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOpt imizeFunction] «Enable»=»N»
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\OptimalLayout] «EnableAutoLayout»=dword:00000000

Затем отключаем функцию «Hibernate» (спящий режим) в XP следующим образом.

Нажмите кнопку «Start/Пуск», откройте «Control Panel/Панель управления».
Откройте «Power Options/Электропитание».
Выберите вкладку «Hibernate/Спящий режим».
Снимите галочку с опции «Enable Hibernate/Включить спящий режим».
Нажмите кнопку «OK».
Отключив функцию «Hibernate», вы избежите создания файла для спящего режима в Windows XP. Этим вы не только освободите место, но и предотвратите процесс записи, связанный с созданием файла для спящего режима.

Читайте также:  Поменять системное время линукс

Затем вам нужно будет отключить восстановление системы, выполнив следующие инструкции с web-сайта Microsoft.

Нажмите «Start/Пуск», правой кнопкой мыши щёлкните по «My Computer/Мой компьютер» и выберите «Properties/Свойства».
В открывшемся диалоговом окне «System Properties/Свойства системы» выберите вкладку «System Restore/Восстановление системы».
Поставьте галочку напротив опции «Turn Off System Restore on All Drives/Отключить восстановление системы на всех дисках».
Нажмите кнопку «OK».
В появившемся окне сообщений подтвердите свой выбор кнопкой «Yes».

Через какое-то время диалоговое окно «System Properties/Свойства системы» закроется.

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

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

Нажмите «Start/Пуск», правой кнопкой мыши щёлкните по «My Computer/Мой компьютер» и выберите «Properties/Свойства».
В открывшемся диалоговом окне «System Properties/Свойства системы» выберите вкладку «Hardware/Оборудование».
Щёлкните по кнопке «Device Manager/Диспетчер устройств».
Раскройте опцию «Disk Drives/Дисковые устройства».
Дважды щёлкните по флэш-накопителю eSATA.
Выберите вкладку «Policies/Политика».
Снимите галочку с опции «Enable write caching on the disk/Разрешить кэширование записи на диск».
Нажмите кнопку «OK».

Это позволяет отключить функцию кэширования файла во время записи. Опять же, это экономит циклы записи на накопитель.

Следующей функцией XP, которую полезно отключить, является функция записи в параметры файла времени последнего доступа. Нажмите «Start/Пуск», «Run/Выполнить», введите в командную строку «cmd» и нажмите клавишу «Enter»:
Введите команду «fsutil behavior set disablelastaccess 1? и нажмите «Enter».

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

Отключение индексирования диска.

Нажмите кнопку «Start/Пуск», откройте «Control Panel/Панель управления».
Выберите «Administrative Tools/Администрирование».
Откройте «Computer Management/Управление компьютером».
Раскройте «Services and Application/Службы и приложения».
Щёлкните правой кнопкой мыши по «Indexing Service/Служба индексирования» и выберите «Properties/Свойства».
На вкладке «Generation/Генерация» снимите галочку с опции «Index files with unknown extensions/Индексировать файлы с неизвестными расширениями».
Нажмите кнопку «OK».

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

Нажмите «Start/Пуск», правой кнопкой мыши щёлкните по «My Computer/Мой компьютер» и выберите «Properties/Свойства».
В открывшемся диалоговом окне «System Properties/Свойства системы» выберите вкладку «Advanced/Дополнительно».
Откройте параметры быстродействия.
Выберите вкладку «Advanced/Дополнительно».
Выберите значение «System Cache/Системный кэш» в группе «Memory usage/Использование памяти».
Нажмите кнопку «Change/Изменить» в группе «Virtual Memory/Виртуальная память».
Задайте значение «No Paging file/Без файла подкачки».
Нажмите кнопку «OK».

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

  • Главная
  • Можно ли эффективно использовать SSD без поддержки TRIM?

Можно ли эффективно использовать SSD без поддержки TRIM?

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

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

Чтобы понять, для чего нужен TRIM и что это, раздутый маркетологами термин или насущная необходимость, разберемся как работает SSD. Мы не будем вдаваться в технические подробности и сознательно упростим модель до уровня достаточного для понимания происходящих процессов.

Первоначально вспомним, как воспринимают диск разные подсистемы ПК, участвующие в работе с ним. Приложения и ОС взаимодействуют с файловой системой, работая на уровне кластеров и таблицы файлов. О том, что находится ниже ОС не имеет никакого представления. Файловая система воспринимает диск как некоторое блочное устройство стандартного формата, также не сильно вникая в его внутреннюю суть, отдавая все вопросы на откуп драйверу контроллера запоминающих устройств. Тот, в свою очередь, воспринимает диск как некоторое LBA-устройство, не зная его внутренней структуры. О том, как именно конфигурация LBA соответствует физической конфигурации устройства знает только контроллер диска, который в свою очередь не имеет ни малейшего представления о файлах, разделах, кластерах и т.п.

Физически пространство SSD делится на страницы, которые являются минимально адресуемым участком памяти, для того, чтобы изменить ячейку памяти, необходимо считать страницу, изменить в ней необходимые данные и записать ее на прежнее место. Здесь возникает первая сложность, в отличие от HDD, в SSD писать можно только в заранее очищенные ячейки. При этом технически очистить отдельную страницу нельзя, очистке подвергаются только группы страниц, объединяемые в блоки.

Читайте также:  Windows не опознает планшет

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

А вот SSD не может взять и просто так записать измененные данные. Для этого ему потребуется считать куда-то весь блок, очистить его и вернуть все данные назад. Поэтому вместо изменения и записи 4 КБ данных SSD придется записать 512 КБ данных, что не самым лучшим образом скажется на ресурсе ячеек. Кроме того, операция стирания ячеек достаточно медленная, по сравнению с записью в чистые ячейки и именно необходимостью стирания перед записью объясняется деградация производительности SSD.

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

Это позволяет SSD сразу записывать измененные данные, не вызывая каждый раз процедуру очистки и не перезаписывая остальные данные блока. Это будет продолжаться до тех пор, пока не кончатся свободные ячейки.

Несложно заметить, что через некоторое время на диске вперемешку окажутся свободные, занятые и доступные к очистке страницы. Здесь вступает в действие алгоритм внутренней оптимизации, именуемый «сборкой мусора». Он перемещает данные на SSD таким образом, чтобы сгруппировать доступные к очистке страницы в отдельные блоки и очистить их.

Именно от эффективности данного механизма зависит, как долго диск сможет поддерживать высокую производительность при интенсивной записи на него. Основное условие высокой скорости записи на SSD — это наличие свободных ячеек. Эффективность алгоритма уборки мусора отвечает за то, как быстро доступные к очистке ячейки будут становиться свободными.

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

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

Заметьте, мы до сих пор ни словом не обмолвились о команде TRIM. Может быть это какая-то передовая технология, включение которой поможет резко изменить ситуацию? К сожалению — нет! Для чего тогда нужен TRIM?

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

В этом случае SSD будет полностью считывать блок в память, очищать его и заново записывать измененные данные.

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

Для того, чтобы файловая система сообщила контроллеру, что эти данные удалены и придумали команду TRIM, ее задача — пометить страницы с удаленными данными как доступные к очистке, а дальше в дело вступит все тот-же сборщик мусора.

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

Если мы разместим на SSD базу данных или виртуальный жесткий диск и будем активно работать с ними, то никакой TRIM нам не нужен. Если на диске достаточно свободных ячеек и эффективно работает сборщик мусора — производительность будет поддерживаться на высоком уровне. Падение производительности произойдет только тогда, когда количество свободных ячеек уменьшится и сборщик мусора не будет успевать очищать их в необходимых количествах. Это может произойти при использовании всего доступного пространства диска и TRIM на это никак повлиять не может.

Читайте также:  Управление политиками windows server 2016

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

Здесь самое время вспомнить про корпоративные серии SSD, которые зачастую не блещут производительностью, но зато предлагают высокую надежность и поддерживают эффективную работу даже без поддержки TRIM. За счет чего это происходит? За счет большего размера резервной области. Это позволяет всегда иметь достаточный запас свободных ячеек и благотворно сказывается на эффективности работы сборщика мусора. Так как пользователь не может непосредственно писать в резервную область, то в ней могут быть страницы только трех видов: свободные, занятые и доступные к очистке. Занятых страниц, которые ФС считает свободными, там быть не может.

Обычные SSD имеют размер резервной области в 6-7% от емкости диска, этого размера явно недостаточно для поддержания высокой производительности, корпоративные диски имеют гораздо больший объем резервной области, что напрямую сказывается на их стоимости. Это позволяет им уменьшить износ каждой доступной пользователю ячейки и эффективно работать в RAID-массивах без поддержки TRIM. Хотя если вы заполните твердотельный накопитель «под завязку», то никакой TRIM вам не поможет.

А что делать владельцам обычных или «корпоративных» бюджетных дисков? Ответ прост — обеспечить диск достаточным количеством свободных ячеек. Самый простой способ сделать это — разметить не всю доступную емкость диска. Как показывает практика — резерв в 20-25% емкости накопителя позволяет эффективно использовать даже полностью заполненный диск без поддержки команды TRIM.

Чтобы убедиться в этом, мы провели небольшой эксперимент. Взяли старый SSD OCZ Agility 2 , алгоритмы уборщика мусора которого в разы уступают современным алгоритмам, полностью заполнили его на системе без поддержки TRIM, затем еще раз сделали тоже самое, только создав «резервную область» в 25% емкости накопителя.

Итак, диск очищен при помощи команды Secure Erase фирменной утилитой и все его ячейки являются свободными. Снимаем показатели быстродействия при помощи AS SSD Benchmark.

Сценарии реального использования:

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

После чего мы подключили его к виртуалке под управлением Windows Server 2003 и полностью заполнили, затем удалили все данные и вернули назад. Несмотря на то, что Windows 8.1, в которой мы производим замеры, есть поддержка TRIM — это ни на что не влияет, так как принудительно данную команду никто не посылал, а Windows 8.1 сделает это не раньше, чем запишет и удалит данные и то, только для этих страниц.

Деградация производительности на лицо:

Проседание производительности от 20 до 50% в синтетике и 30-35% в сценариях:

Теперь снова выполним Secure Erase и разметим не все пространство диска, выделив под резерв 25%:

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

Затем снова заполним диск в среде Windows Server 2003 и удалим данные, после чего еще раз выполним тест:

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

Какие выводы следует сделать из этого материала? Несмотря на то, что в сознании многих TRIM является чуть ли не панацеей и обязателен к применению, на производительность диска он не влияет. Это всего лишь способ сделать работу уборщика мусора более эффективной. На производительность диска влияет только то, какое количество свободных ячеек есть в наличии и их достаточности для обслуживания текущих операций записи.

За то, с какой скоростью диск и как эффективно диск способен очищать блоки, отвечает уборщик мусора. Более эффективный алгоритм уборщика позволяет использовать меньший размер резервной области.

Также следует помнить, что в большинстве серверных сценариев команда TRIM просто не требуется, поэтому если выбирать приходится между RAID без TRIM или одиночный диск с TRIM, выбирать следует первое. Тем более, что обеспечить высокую производительность диска несложно самостоятельно.

Использование одиночного диска с более частым бекапом также допустимо, но такое решение принимается, как правило, по экономическим соображениям.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Или подпишись на наш Телеграм-канал:

Оцените статью