Назад | Перейти на главную страницу

Обнуление SSD-дисков

Мы размещаем VPS для клиентов. Каждому клиентскому VPS предоставляется LVM LV на стандартном жестком диске шпинделя. Если клиент уходит, мы обнуляем этот LV, чтобы его данные не перешли к другим клиентам.

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

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

Это проблема, если кто-то может физически схватить диск и разобрать его (потому что тогда они могут напрямую читать флеш-чипы), но если единственный доступ, который у них есть, - это шина SATA, тогда запись всех нулей во все диск вполне подойдет.

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

Из этот источник:

Многократная перезапись всего диска с многократными повторениями может успешно уничтожить данные, но из-за уровня трансляции микропрограмм (FTL) это значительно сложнее и требует много времени, чем на традиционных жестких дисках. Судя по их результатам, это малопривлекательный вариант.

Ваш лучший вариант, безопасное стирание с помощью полного шифрования диска:

Некоторые современные твердотельные накопители могут использовать шифрование всего диска - например, новые диски Intel 320 и некоторые диски Sandforce серии 2200. Эти диски можно безопасно стереть простым и быстрым способом без какого-либо износа диска. Накопитель использует шифрование AES для всех записываемых данных, поэтому безопасное стирание просто означает удаление старого ключа AES и замену его новым. Это фактически делает невозможным восстановление всех «старых» данных на диске.

Однако автоматизировать безопасное стирание Intel непросто. AFAIK это должно быть сделано из приложения Intel с графическим интерфейсом для Windows, его можно запустить только на пустом не загрузочном диске и так далее. Видеть стр. 21 и далее в документации Intel.

Другой вариант - безопасное стирание ATA:

Другой вариант - выполнить команду ATA Secure Erase через fx HDPARM в Linux. Это будет намного проще автоматизировать с помощью сценариев.

При условии, что накопитель «хорошо» реализует ATA Secure Erase, следует ожидать, что он, по крайней мере, удалит «уровень флэш-трансляции» (FTL). Таблица FTL содержит отображение между логическими секторами (которые операционная система «видит») и физическими страницами NVRAM на самом диске. После уничтожения этой таблицы сопоставления будет очень сложно - но, вероятно, возможно - восстановить данные с диска.

Однако мне не известны какие-либо исследования, которые показали бы, что ATA Secure Erase последовательно и хорошо реализуется на всех дисках производителя, поэтому я не решаюсь сказать, что это всегда будет работать - вам следует прочитать техническую документацию производителя.

Для одного раздела:

Когда я читаю комментарии к другим ответам, кажется, что OP хочет безопасно стереть только отдельные разделы. Один из хороших способов сделать это - создать зашифрованный объемы, f.x. с помощью L.U.K.S или TrueCrypt. Таким образом, вы можете безопасно стереть том, отбросив ключ шифрования, аналогично тому, как это делает схема шифрования полного диска на диске.

Вывод:

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

Выравнивание износа не имеет никакого отношения к обнулению данных.

Вы обнуляете данные, чтобы другие люди / приложения не читали эти данные. Твердотельные накопители «выравнивают уровень износа» своих данных, чтобы гарантировать, что они будут использоваться дольше из-за «повреждения», которое запись наносит твердотельным дискам. Кроме того, диски обычно делают это, когда они не заняты, в серверных ситуациях тихие времена не всегда доступны, поэтому эта работа часто не выполняется.

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

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

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

SSD имеют другой метод безопасного стирания. Я скажу, что это кажется очень громоздким, потому что вам обычно нужен контроллер SATA определенного типа, который может выполнять эмуляцию IDE, а процедура может быть сложной. Некоторые производители предоставляют инструменты для безопасного стирания собственных SSD, но вы также можете сделать это с помощью hdparm в Linux: https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase. Но в этих инструкциях вы заметите, что перед тем, как продолжить, вы должны убедиться, что диск не «завис». Это один из наиболее сложных шагов, потому что он требует поиска материнской платы и контроллера SATA, который позволит вам «разморозить» диск во время загрузки системы, что обычно включает отключение его от кабеля SATA, а затем его повторное подключение.

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

Хотя один ответ уже принят, я думаю, что команда blkdiscard /dev/sdX все же стоит упомянуть здесь.

В соответствии с Arch Wiki: SSD, то blkdiscard команда будет сбросить все блоки и все данные будут потеряны. Рекомендуется использовать до того, как «вы хотите продать свой SSD».

Я не знаком с тем, как работает TRIM, поэтому не знаю, есть ли гарантия, что данные будут удалены. Но я думаю, это лучше, чем ничего не делать.

Кстати, я боюсь, что эта команда работает только на всем устройстве, а не на одном разделе.

Надеюсь это поможет. :)

Самый лучший способ удалить данные из образа виртуальной машины - использовать функцию TRIM. Многие новые операционные системы поддерживают это. Почти все современные твердотельные накопители также поддерживают его.

И что делает этот вариант еще лучше, так это то, что mлюбые сети SAN также поддерживают эту функцию под своим SCSI-именем UNMAP. Это отличная команда для сетей SAN, которые реализуют разреженное выделение ресурсов, что является отличной функцией для виртуальных машин, особенно в сочетании с дедупликацией блоков.

Когда SSD-накопителю дается команда TRIM, прошивка немедленно помечает эти блоки как свободные для повторного использования. Некоторые твердотельные накопители всегда возвращают нули для блоков TRIM'd. Другие диски будут возвращать данные, определенные реализацией (т. Е. Случайные).

В операционных системах, поддерживающих TRIM, простое удаление файла пометит блоки для TRIM. Фактическая операция TRIM может произойти сразу же или ее можно объединить для выполнения позже. Иногда есть инструменты, которые принудительно ОТРЕЗИРУЮТ файл или сканируют раздел на все неиспользуемые блоки.

Производительность TRIM в Linux по-прежнему невысока, поэтому, если вы ее используете, вам стоит изучить свои варианты. В Windows это выглядит довольно солидно.

Вам понадобится «Утилита SSD Secure Erase Utility». Если вы используете что-то вроде dd выравнивание износа может начаться, и вы получите резервные сектора, которые все еще содержат старые данные клиента. Утилита безопасного стирания сотрет все сектора на устройстве (а не только те, которые представлены операционной системой как диск).

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

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

В SSD, когда вы что-то записываете, процесс сильно отличается от обычного жесткого диска.

Представьте себе следующую ситуацию: «пустая» ячейка памяти на SSD-диске заполнена единицами. Когда вы что-то записываете в него, он записывает нули, а единицы не меняются.

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

"clear": 11111111 1-е сохранение: 11011011

новые данные: 00110011 нет никакого способа сделать 11011011 00110011 (обратите внимание, что необходимо было бы изменить единицу с 0 на 1, а это невозможно сделать на SSD). Итак, будет использована другая ячейка памяти.

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

Чтобы сделать то, что вы хотите: сначала сотрите (удалите) файлы. Ячейки памяти для этих файлов будут отмечены как свободные. Затем сделайте TRIM: все эти ячейки памяти станут 1 без каких-либо признаков данных.

Легко ответить: используйте Linux для переформатирования раздела как EXT4, который сообщает SSD, что все блоки готовы к стиранию, как при обрезке всех секторов раздела. Побочный эффект - небольшое количество операций записи (структуры EXT4).

Забудьте «dd» со случайным образом, это значительно сократит срок службы SSD. Некоторые твердотельные накопители интеллектуальны, и если они видят полный сектор, заполненный нулями, которые они не записывают, они помечают его для стирания.

Поскольку вы не можете знать внутренности прошивок, лучше всего переформатировать раздел как ext4 (без полного переформатирования, только быстрый, только структуры) в современном ядре Linux, он будет обрезать весь раздел перед форматированием.

Для всех, кто говорит о безопасном стирании, то есть для всего SSD сразу, требуется только один раздел SSD и БЕЗ потери остальной информации, хранящейся на нем (уровень раздела, а не уровень SSD).

Вывод: переформатируйте как Ext4, затем, если вам нужен другой формат, переформатируйте снова в таком другом формате.