Чрезвычайно низкая скорость записи на зашифрованный внешний диск на Mavericks

10

Запись на полностью зашифрованную флешку на Mavericks происходит крайне медленно.

В качестве модели накопителя я использовал Kingston DataTraveler Ultimate 3.0 G3 (64 ГБ). Я проверил скорость передачи, прочитав / записав большой файл с / на зашифрованный и незашифрованный диск. Я тестировал на текущем Macbook с Mavericks и на более старой машине с Mountain Lion. Я использовал Дисковую утилиту для форматирования диска как Mac OS Extended (Журнальный) и Mac OS Extended (Журнальный, Зашифрованный).

MacBook Pro (2013) с USB 3.0 под управлением OS X 10.9.2 (13C64)

Запись: 86,16 МБ / с (зашифровано: 0,62 МБ / с)
Чтение: 181,66 МБ / с (зашифровано: 151,15 МБ / с)

MacBook Pro (2007) с USB 2.0 под управлением OS X 10.8.5 (12F45)

Запись: 23,57 МБ / с (зашифровано: 5,04 МБ / с)
Чтение: 36,23 МБ / с (зашифровано: 37,87 МБ / с)

Как вы можете видеть на более старой машине, скорость записи явно уменьшается при записи на зашифрованный том, но все равно примерно в десять раз быстрее по сравнению с более новой машиной, на которой работает Mavericks. Может ли это быть какой-то недавно появившейся проблемой в FileVault или CoreStorage?

Обновление (2014-06-28)

У USB-накопителя изначально был аппаратный дефект. Я получил запасной диск (той же модели), который по-прежнему не дает ожидаемых результатов, но по крайней мере скорость шифрованной записи MBP 2013 года теперь находится на уровне MBP 2007 года.

MacBook Pro (2013) с USB 3.0 под управлением OS X 10.9.3 (13D65)

Запись: 135,41 МБ / с (зашифровано: 9,29 МБ / с)
Считано: 196,22 МБ / с (зашифровано: 187,04 МБ / с)

MacBook Pro (2007) с USB 2.0 под управлением OS X 10.8.5 (12F45)

Запись: - МБ / с (зашифровано: 9,39 МБ / с)
Считано: - МБ / с (зашифровано: 37,79 МБ / с)

Тем не менее, остается вопрос, почему зашифрованная скорость записи на USB-накопитель на MBP 2013 меньше десяти процентов от обычной скорости записи. Я также сравнил скорости чтения / записи до и после активации FileVault на внутреннем твердотельном накопителе MBP 2013 года, и там я вообще не смог обнаружить никакого замедления.

Штефан Шмидт
источник
1
Ничего себе - нормальное чтение / запись и зашифрованные записи выглядят хорошо. Но эта зашифрованная запись мучительно медленная. Какой инструмент измеряет МБ / с? Можете ли вы воспроизвести эти результаты, используя Blackmagic (бесплатно на MAS)
bmike
Я использовал простой однострочник Bash time, ddи awk. Blackmagic дает мне те же результаты: goo.gl/bn32fC (незашифрованный) против goo.gl/yghyqA (зашифрованный).
Стефан Шмидт
Я подозреваю, что скорость чтения для зашифрованного тома отсутствует, потому что продолжительность чтения меньше, чем интервал выборки пропускной способности Blackmagic
Стефан Шмидт,

Ответы:

2

У меня та же проблема, которая, я уверен, связана с тем, как работают операции записи на флэш-памяти и как работает шифрование основного хранилища (или любого целого тома).

Во-первых, поведение записи: в отличие от энергозависимой памяти (используемой в памяти вашего компьютера) или жестких дисков, где любой бит может быть записан в 0 или 1 в любое время, флэш-память имеет два основных состояния: запись и стирание. Внутри «записано» 0 и 1. Когда вам нужно записать во флэш-память, вы должны записать весь блок, который в данный момент находится в стертом состоянии. Программное обеспечение файловой системы в ОС может знать, какие блоки свободны, но контроллер и хранилище на флэш-устройстве этого не знают. Для ОС, «связанной с шиной», был разработан особый способ сообщить SSD о доступности блоков: он называется TRIM. Насколько мне известно, стеки протоколов USB не поддерживают TRIM. Таким образом, в основном, флэш-память продолжает заполняться, пока не будет фактически стертых блоков, после чего файловая система должна стереть и перезаписать блоки, читая их, объединяя новые данные, стирая и записывая их обратно. Вот почему вы видите снижение производительности записи небольших файлов на SSD с течением времени.

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

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

xgrep
источник
Это действительно звучит очень разумно. Я немного покопался, и кажется, что для внешних накопителей eSATA и Thunderbolt оба поддерживают TRIM. Это может быть интересно в отношении внешних твердотельных накопителей, но, возможно, не для флэш-накопителей, поскольку на компьютерах Mac нет интерфейсов eSATA и не похоже, что доступные флэш-накопители Thunderbolt будут доступны в ближайшее время: goo.gl/sDM1au
Stefan Schmidt
1
На всякий случай, если кому-то интересно: пока что мой обходной путь - создать зашифрованный разреженный пакет на диске, размер которого соответствует емкости диска. Я не делал никаких тестов, но он выглядит примерно на уровне записи незашифрованных данных на диск.
Стефан Шмидт
@StefanSchmidt зашифрованный редкий пакет, как описано здесь? blog.fosketts.net/2015/07/22/…
Брэд Купит
@BradCupit Да, но я синхронизирую содержимое разреженного комплекта, а не сам разреженный комплект, поэтому я монтирую разреженный комплект с помощью hdiutil attach, затем использую его rsyncдля синхронизации с моей локальной папкой, затем размонтирую разреженный комплект с hdiutil detachи извлекаю диск diskutil eject.
Стефан Шмидт