Как могут SSD работать хорошо, когда зашифрованы или без TRIM?

491
Ivan X

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

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

Это оставляет меня со следующими вопросами:

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

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

  • Если в ОС включено шифрование всего диска, как это не сильно влияет на производительность? Разве не каждая внутренняя страница будет использоваться с точки зрения SSD?

  • Почему производители SSD не предоставляют инструменты для восстановления SSD до его первоначального заводского состояния со всеми деактивированными страницами по соображениям безопасности и производительности? (Единственный способ, которым я знаю, это сделать с помощью эзотерической утилиты Linux, которая может выдать команду ATA_SECURE_ERASE для встроенного ПО накопителя, и не всякому встроенному ПО можно доверять для правильного или всестороннего выполнения.)

Любое понимание будет оценено.

0
Я полагаю, что FTL диска распознает, что ОС выполняет запись в тот же логический блок, поэтому старое содержимое по определению больше не требуется? grawity 6 лет назад 0
Это имеет смысл, и я не учел это, хотя все еще кажется неэффективным, чтобы привод ждал этого. Ivan X 6 лет назад 0
И именно поэтому они изобрели TRIM. grawity 6 лет назад 0

2 ответа на вопрос

1
grawity

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

Они делают. Это выполняется автоматическим обслуживанием Windows каждую неделю или около того (с помощью дефрагментации диска, который распознает твердотельные накопители с жестких дисков), а также еженедельно fstrim.timerв Linux.

Если в ОС включено шифрование всего диска, как это не сильно влияет на производительность? Разве не каждая внутренняя страница будет использоваться с точки зрения SSD?

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

(Сообщение SSD о том, какие страницы пусты, покажет ту же информацию посторонним - лично я не думаю, что это проблема, но некоторые люди не хотят, чтобы что- то просочилось.)

Почему производители SSD не предоставляют инструменты для восстановления SSD до его первоначального заводского состояния со всеми деактивированными страницами по соображениям безопасности и производительности? (Единственный способ, которым я знаю, это сделать с помощью эзотерической утилиты Linux, которая может выдать команду ATA_SECURE_ERASE для встроенного ПО накопителя, и не всякому встроенному ПО можно доверять для правильного или всестороннего выполнения.)

Производители SSD уже предоставляют инструменты для этого - и эти инструменты используют ATA_SECURE_ERASE.

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

И было бы хуже на стороне хоста, потому что все, что у вас было бы, - это эзотерическая утилита Windows, о которой можно было бы быстро забыть и часто перестать работать со следующей версией Windows. (У меня все еще есть несколько инструментов, которые могут низкоуровнево форматировать USB-накопители, и все они требуют Windows XP.)

Между тем, ATA_SECURE_ERASE является довольно стандартным - есть программы для Windows, которые вызывают его, есть программы для Linux, некоторые из них графические, некоторые из них являются командной строкой, и все они работают независимо от марки или модели диска.

Это очень полезно. Благодарю. Я в первую очередь на стороне Mac, и Apple не документирует многие из их базовых технологий, поэтому трудно понять, предоставляют ли они некоторые из этих вещей для своих SSD. Я не совсем в курсе последних событий в Windows и Linux, поэтому я ценю информацию. В прошлый раз, когда я смотрел на производимые утилиты SSD для Windows, у них не было полной очистки (а некоторые до сих пор не имеют, например, утилиты внешнего накопителя Samsung T5, которая, как я полагаю, связана с невозможностью передачи ATA_SECURE_ERASE через USB) , Ivan X 6 лет назад 0
Передача любых расширенных команд ATA через USB Mass Storage (то есть SCSI) требует, чтобы и программа, и USB-корпус поддерживали их [SAT] (https://en.wikipedia.org/wiki/SCSI_/_ATA_Translation) или хотя бы один из более ранних специфичных для поставщика методов передачи. (Например, в Linux smartctl перечислены «sat», «usbjmicron», «usbcypres», «usbprolific» ...) grawity 6 лет назад 0
Правильно, но поскольку Samsung производит и программу, и корпус (внешний накопитель T5), они должны обеспечить эту возможность. Но, похоже, технически нет причин, почему они не могли. Ivan X 6 лет назад 0
0
DDS

Я не думаю, что это возможно (по стандартным командам) просто потому, что разбиение на страницы, как вы сказали, производится исключительно прошивкой (и то, как выполняется разбиение на страницы, имеет огромное значение для поставщиков SSD). Микропрограмма также поддерживает связь между свободными кластерами и свободными страницами, поэтому вы можете иметь 3 «логически смежных» сектора, распределенных по разным строкам (помните, что SDD должен удалить целую строку, чтобы удалить только одну страницу). Это то, чему меня учили, но в то время SSD не были мейнстримом, и я думаю, что они впервые говорили об этом.