В моём ноутбуке стоит два жёстких диска. Первый – SSD-диск Intel X25-M G2 c операционной системой, уже зашифрован с помощью FileVault 2. Пришло время второго диска с данными, 500 GB 5400 rpm, который изначально был установлен в моём Macbook Pro 2.8 GHz.

Disk Utility пока не может работать с CoreStorage, поэтому приходится использовать командно-строковую утилиту diskutil.

Нахожу, какой раздел мне нужно перекодировать (Data):

$ diskutil list
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS Legacy                  50.0 GB    disk2s2
   3:                  Apple_HFS Data                    449.6 GB   disk2s3

Запускаю конвертирование, обязательно указываю ключевую фразу (данные не уничтожаются во время этой операции):

$ diskutil corestorage convert /dev/disk2s3 -stdinpassphrase
New passphrase for converted volume: **********
...
Finished CoreStorage operation on disk2s3 Data
Encryption in progress; use `diskutil coreStorage list` for status

С разделом можно работать сразу же, его шифрование производится в фоновом режиме. Процесс достаточно длительный. Я даже перевёл ноутбук в Sleep, не дождавшись окончания, но после просыпания шифрование продолжилось. Статус шифрования можно посмотреть командой (прогресс не виден, только статус Converting/Complete):

$ diskutil coreStorage list
...
        Logical Volume Family 3E0D6C21-4178-4597-9F79-91E13A02E6FA
        ----------------------------------------------------------
        Sequence:               6
        Encryption Status:      Unlocked
        Encryption Type:        AES-XTS
        Encryption Context:     Present
        Conversion Status:      Converting
        Has Encrypted Extents:  Yes
        Conversion Direction:   forward

Когда шифрование завершится, “Conversion Status:” станет “Complete”.

Сделал замеры производительности до и после шифрования, результаты приведены ниже.

Последовательное и случайное чтение/запись небольших файлов

Без шифрования

01-filevault-5400

С шифрованием

05-filevault-5400

Скорость операций случайного чтения/записи почти не изменилась. Последовательных – изменилось незначительно. Интересно приведение скорости записи после шифрованию к нормальному виду (на первом графике скорость записи выше скорости чтения). Возможно шифрование привело к дефрагментации диска.

Чтение/запись больших файлов размером от 1 до 10 MB

Без шифрования

02-filevault-5400

С шифрованием

06-filevault-5400

Скорость изменилась незначительно, на глаз до 4-7%. Всплеск скорости записи после шифрования вероятно вызвано эффектом кеширования, добавляемым подсистемой шифрования.

Чтение/запись больших файлов размером от 10 до 100 MB

Без шифрования

03-filevault-5400

С шифрованием

07-filevault-5400

Кривые чтения и записи стали отличаться, на мой взгляд из-за большей ресурсоёмкости шифрования записи. Скорость записи ухудшилась на 15%, чтения – на 5%.

Чтение/запись файла 200 MB

Без шифрования

04-filevault-5400

С шифрованием

08-filevault-5400

Скорость записи ухудшилась на 8%, чтения – на 2%.

Вывод

При включении шифрования AES-XTS на жёстком диске 5400 rpm в ноутбуке с процессором Core 2 Duo без поддержки команд AES-NI наблюдается ухудшение скорости записи до 15%, а скорости чтения – до 8%. Что вполне приемлемо как плата за безопасность данных.