Чрезмерное резервирование SSD - оно все еще сохраняется?
Многочисленные (но не очень недавние) источники предполагают, что ~7% пространства SSD следует оставить нераспределенным, чтобы уменьшить износ диска. Это все еще актуально на данный момент или ситуация изменилась?
4 ответа
Windows обычно использует TRIM. Это означает, что до тех пор, пока у вас есть X% свободного места в файловой системе, диск будет видеть X% как нераспределенный.[*] Избыточное выделение ресурсов не требуется.
Исключение: исторически, SSD с контроллерами / прошивками Sandforce не восстанавливали полную производительность после TRIM:(.
Потеря производительности на полном диске может быть значительной, и даже больше, чем на некоторых других дисках. Это будет связано с высоким усилением записи и, следовательно, увеличит износ. Источник: отзывы Anandtech.
Так что это необходимо, если и только если
- Вы не уверены, что TRIM будет использоваться. AFAIK, он по-прежнему не включен по умолчанию в Linux из-за проблем с производительностью нескольких старых и плохо работающих дисков.
- ИЛИ вы беспокоитесь о заполнении диска Sandforce (и что смарт-контроллер не сможет сжать содержимое).
Включить TRIM в Linux не так уж сложно, и вы вряд ли заметите какие-либо проблемы.
К счастью, некоторые из самых популярных брендов делают свой собственный контроллер. Контроллеры Sandforce не так популярны, как раньше. Проблемы Sandforce заставляют меня скептически относиться к тому конкретному "умному" дизайну контроллера, который был очень агрессивным для своего времени. Извиняюсь перед Sandforce, но у меня нет ссылки на конкретные модели контроллеров.
[*] Файловым системам нравится иметь много свободного места, чтобы уменьшить фрагментацию. Так что TRIM великолепен, потому что вам не нужно добавлять два поля безопасности вместе, одно и то же свободное пространство помогает им обоим:). Привод может использовать незанятое пространство для повышения производительности, а также для предотвращения высокого износа, как вы говорите.
Современные контроллеры SSD достаточно интеллектуальны, поэтому избыточное выделение ресурсов обычно не требуется для повседневного использования. Однако все еще существуют ситуации, в первую очередь в средах центров обработки данных, где рекомендуется избыточное выделение ресурсов. Чтобы понять, почему избыточное выделение может быть полезным, необходимо понять, как работают SSD.
SSD-накопители должны справляться с ограничениями флэш-памяти при записи данных
Твердотельные накопители используют тип памяти, называемый флэш-памятью NAND. В отличие от жестких дисков, ячейки NAND, содержащие данные, не могут быть перезаписаны напрямую; диск должен стереть существующие данные, прежде чем он сможет записать новые данные. Кроме того, в то время как твердотельные накопители записывают данные на страницах размером от 4 КБ до 16 КБ, они могут стирать данные только в больших группах страниц, называемых блоками, обычно размером от нескольких сотен КБ до нескольких МБ в современных твердотельных накопителях.
NAND также имеет ограниченную выносливость при записи. Чтобы избежать ненужной перезаписи данных, чтобы стереть блоки, и чтобы ни один блок не получил непропорциональное количество записей, накопитель пытается распределить записи, особенно небольшие случайные записи, по различным блокам. Если записи заменяют старые данные, они помечают старые страницы как недействительные. После того, как все страницы в блоке помечены как недействительные, диск может стереть его без необходимости перезаписывать действительные данные.
Для оптимального функционирования твердотельным накопителям требуется свободное место, но не каждая рабочая нагрузка способствует сохранению свободного места
Если на диске мало свободного места или его нет, он не сможет разложить записи. Вместо этого дисковод должен будет сразу стереть блоки, так как записи отправляются на дисковод, перезаписывая любые допустимые данные в этих блоках в другие блоки. Это приводит к тому, что в NAND записывается больше данных, чем отправляется на диск, явление, известное как усиление записи. Усиление записи особенно заметно при случайных нагрузках с интенсивной записью, таких как обработка онлайновых транзакций (OLTP), и его необходимо сводить к минимуму, поскольку это приводит к снижению производительности и долговечности.
Чтобы уменьшить усиление записи, большинство современных систем поддерживают команду TRIM, которая сообщает накопителю, в каких блоках больше нет действительных данных, поэтому их можно удалить. Это необходимо, поскольку в противном случае накопителю потребуется предположить, что данные, логически удаленные операционной системой, все еще действительны, что ограничивает способность накопителя поддерживать достаточное свободное пространство.
Однако TRIM иногда невозможен, например, когда диск находится во внешнем корпусе (большинство корпусов не поддерживают TRIM) или когда диск используется в более старой операционной системе. Кроме того, при очень интенсивных рабочих нагрузках произвольной записи записи будут распределяться по большим областям базовой NAND, что означает, что принудительная перезапись данных и сопутствующее усиление записи могут произойти, даже если накопитель почти не заполнен.
Современные SSD имеют значительно меньшее усиление записи, чем старые, но некоторые рабочие нагрузки все еще могут выиграть от избыточного выделения ресурсов.
Самые ранние твердотельные накопители имели гораздо менее зрелую прошивку, которая, как правило, переписывала данные гораздо чаще, чем необходимо. Ранние контроллеры Indilinx и JMicron ( JMF602 был печально известен заиканием и ужасной скоростью произвольной записи) страдали от чрезвычайно высокого усиления записи при интенсивных нагрузках произвольной записи, иногда превышающих 100x. (Представьте, что вы записываете более 100 МБ данных в NAND, когда вы просто пытаетесь записать 1 МБ!). Более новые контроллеры с преимуществами более высокой вычислительной мощности, улучшенных алгоритмов управления флэш-памятью и поддержки TRIM гораздо лучше справляются с этими ситуациями, хотя тяжелые рабочие нагрузки с произвольной записью могут по-прежнему вызывать усиление записи, превышающее 10x в современных твердотельных накопителях.
Избыточное выделение обеспечивает накопителю большую область свободного пространства для обработки случайных записей и предотвращения принудительной перезаписи данных. Все твердотельные накопители сверхобеспечены, по крайней мере, до некоторой минимальной степени; некоторые используют только разницу между GB и GiB, чтобы обеспечить около 7% свободного пространства для работы с диском, в то время как другие имеют больше избыточных ресурсов для оптимизации производительности для нужд конкретных приложений. Например, корпоративный твердотельный накопитель для тяжелых рабочих нагрузок OLTP или базы данных может иметь 512 ГБ физической NAND, но заявленную емкость составляет 400 ГБ, а не от 480 до 512 ГБ, типичных для потребительских твердотельных накопителей с аналогичным количеством NAND.
Если ваша рабочая нагрузка особенно требовательна или вы используете диск в среде, где TRIM не поддерживается, вы можете вручную перерасходовать пространство, разбивая диск так, чтобы некоторое пространство не использовалось. Например, вы можете разделить SSD объемом 512 ГБ на 400 ГБ и оставить оставшееся пространство нераспределенным, и диск будет использовать нераспределенное пространство в качестве свободного. Заметьте, однако, что это нераспределенное пространство должно быть обрезано, если оно было записано ранее; в противном случае это не принесет пользы, поскольку накопитель увидит, что это место занято. (Утилиты разметки должны быть достаточно умны, чтобы сделать это, но я не уверен на 100%; см. "Обрезает ли Windows неразделенное (неформатированное) пространство на SSD?")
Если вы просто обычный потребитель, избыточное выделение средств обычно не требуется
В типичных потребительских средах, где поддерживается TRIM, твердотельный накопитель заполнен менее чем на 70-80% и не получает постоянных ударов при случайной записи, усиление записи обычно не является проблемой, и избыточное выделение обычно не требуется.
В конечном счете, большинство потребителей не будут записывать почти столько данных на диск, чтобы изнашивать NAND в течение предполагаемого срока службы большинства твердотельных накопителей, даже с высоким усилением записи, поэтому не стоит терять сон.
Размер дополнительного пространства очень сильно отличается между моделями SSD накопителей, но в целом это все еще верно.
Минимальный объем избыточного пространства для твердотельного накопителя установлен на заводе, но пользователи могут выделить больше места для повышения производительности. В любом случае, умеренное понимание избыточного выделения ресурсов необходимо, чтобы принимать более обоснованные решения о покупке твердотельных накопителей и настраивать диски наиболее выгодным образом для каждой уникальной среды и варианта использования. SSD работают совсем по-другому. Основной единицей флэш-памяти NAND обычно является страница размером 4 килобайта (4 КБ), а блок обычно содержит 128 страниц. Запись может происходить по одной странице, но только на пустых (или стертых) страницах. Страницы не могут быть перезаписаны напрямую. Скорее, их сначала нужно стереть. Однако стирание страницы осложняется тем, что за один раз приходится стирать целые блоки страниц. Когда хост хочет перезаписать адрес, SSD фактически записывает на другую пустую страницу, а затем обновляет таблицу адресов логических блоков (LBA) (очень похоже на MFT жесткого диска). Внутри таблицы LBA исходная страница помечается как «недействительная», а новая страница помечается как текущее местоположение для новых данных.
Конечно, твердотельные накопители в какой-то момент должны стереть эти недействительные страницы данных, иначе полезное пространство на SSD в конечном итоге заполнится. SSD-накопители периодически проходят процесс, называемый сборкой мусора, для очистки недействительных страниц данных. Во время этого процесса контроллер SSD или флэш-контроллер, который управляет флэш-памятью NAND в SSD, считывает все хорошие страницы блока (пропуская недействительные страницы) и записывает их в недавно стертый блок. Затем исходный блок стирается, подготавливая его для новых данных. Все твердотельные накопители резервируют некоторое количество места для этих дополнительных операций записи, а также для встроенного ПО контроллера, замены неудачных блоков и других уникальных функций, которые различаются в зависимости от производителя контроллера твердотельного накопителя. Минимальный резерв — это просто разница между двоичными и десятичными соглашениями об именах. Многие люди в блаженном неведении о том, что один гигабайт (ГБ) равен ровно 1000000000 байт, а один гибибайт (ГиБ) равен ровно 2^30 = 1073741824 байт, или примерно на 7,37% больше, чем ГБ. Многие люди также в блаженном неведении о том, что объем памяти правильно измеряется в гигабайтах, тогда как память правильно измеряется в гибибайтах. Несмотря на то, что твердотельные накопители построены на основе микросхем флэш-памяти NAND, они продаются как устройства хранения данных, и производители твердотельных накопителей резервируют дополнительные 7,37% пространства памяти для фоновых операций, таких как сбор мусора.
Таким образом, даже если твердотельный накопитель кажется заполненным, на нем все равно будет 7,37% доступного пространства, с которым можно продолжать работу и выполнять запись. Однако, скорее всего, на этом уровне производительность записи пострадает. На практике производительность SSD начинает снижаться после того, как он заполнен примерно на 50%. Вот почему некоторые производители уменьшают объем емкости, доступной пользователю, и откладывают ее в качестве дополнительного избыточного выделения ресурсов. Например, производитель может зарезервировать 28 из 128 ГБ и продавать полученную конфигурацию как твердотельный накопитель емкостью 100 ГБ с избыточным выделением ресурсов на 28%. На самом деле эти 28% являются дополнением к встроенным 7,37%, поэтому полезно знать, как производители используют эти термины. Пользователям также следует учитывать, что используемый SSD редко бывает полностью заполнен. SSD-накопители используют эту неиспользуемую емкость, динамически используя ее в качестве дополнительного избыточного выделения ресурсов.