Linux LUKS и выбор файловой системы

12

Какая файловая система показывает лучшую производительность при работе на зашифрованном разделе LUKS? Имеет ли смысл использовать f2fs, когда раздел LUKS находится на SSD, или абстракция устройства отображения устройств делает оптимизацию SSD f2fs бесполезной?

Kevin
источник

Ответы:

8

Есть много советов, но очень мало эмпирических результатов для эффективности использования шифрования.

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

нажмите для увеличения изображениянажмите для увеличения изображения

Основываясь на этих результатах, автор решил использовать dm-crypt в режиме aes-xts-plain с длиной ключа 128 бит и btrfs с выравниванием ssd и compress=lzo.

Еще одна полезная статья - «Влияние производительности шифрования диска Linux на Ubuntu 14.04 LTS» . Он изучил использование ЦП во время установки на трех конфигурациях стандартных вариантов установки (без шифрования диска), метод полного шифрования диска с использованием LUKS на LVM и шифрование на основе домашних каталогов на основе eCryptfs. Результаты суммированы на графике ниже, и вывод состоит в том, что установка без шифрования в среднем составляла 26%, в то время как LUKS на LVM и шифрование eCryptfs составляли в среднем около 30 ~ 31%, так что оба они почти эквивалентны по производительности.

нажмите для увеличения изображениянажмите для увеличения изображения

Статья, которая не имеет эмпирических результатов, но содержит много полезных советов, - это LinuX, SSD и шифрование диска . Я рекомендую прочитать эту статью, и вот главный совет, данный:

  1. Для раздела SSD вы должны как минимум добавить параметры монтирования noatimeи nodiratimeподавить учет времени доступа к файлам и каталогам.
  2. Настройте виртуальные диски, используя tmpfs для временных файлов.
  3. Измените планировщик диска, чтобы использовать noop или срок .
  4. Включить кэш записи на уровне устройства
  5. Параметр браузера, чтобы не использовать дисковый кеш.
harrymc
источник
5

Я провел некоторое тестирование с системой от низкого до среднего уровня. Результаты ниже.

стол

В заключение кажется, что шифрование не делает оптимизации файловой системы бесполезными. Как видно из таблицы, для dmcrypt / LUKS (AES256) F2FSфайловая система была быстрее, чем EXT4почти во всех сценариях, в которых она была быстрее по умолчанию (то есть без шифрования). Несколько удивительно, но это также дало заметное преимущество в тех случаях, когда оно не обходилось без шифрования, а именно - Bonnie++ Sequential Output (Per char)и Flexible I/O Tester Sequential Readтесты.

Для этого же сценария он также был медленнее в двух тестах (Sequential Write - Bonnie ++ и FIO), но в любом случае не намного медленнее. Ваш пробег может варьироваться.

Я не тестировал EXT4 с AES-128bit из-за ограниченного времени, так как это не было бы важно для этого ответа.

Примечание: я наблюдал очень большие, странные отклонения при тестировании с AES-128bit. До 15% вариаций в большинстве тестов и даже 37% (!) В одном случае. Не уверен почему. Я не использовал систему ни для чего другого во время тестов. Система (root) сама зашифрована с помощью AES-256, так что я могу придумать гипотетическое объяснение, включающее конвейеры ЦП / opcache, но ... На самом деле пока не могу сказать. (Это также происходит при тестировании с живого CD, без разблокировки 256-битного раздела AES, так что это не причина).

Отклонение оставалось на уровне 3,6% (1,4%, как правило) везде. Я принимаю погрешность 4%. Таким образом, различия менее 4% следует игнорировать для этих результатов.

Испытательная установка:

SSD: Kingston SV300S37A/120G
Mainboard: ASUS Sabertooth 990FX R2.0
CPU: AMD FX-6350 @ stock
Kernel version: 4.11.3
IO Scheduler: CFQ
All tests were run using an 80GB secondary partition.

Таблица результатов в формате ASCII (различия, считающиеся «несущественными», опущены):

                                                                                                                |+===================================+| 
                                                                                                                ||            % Change               ||
                                      |+=====================+=====================+=================+|         ||--------+--------+--------+--------||
                                      ||   (no encryption)   |       AES-256       |    AES-128      ||         ||   F2FS / EXT4   |Crypto / NoCrypto||
|+============+========================+----------+----------+----------+----------+------+----------||=========||--------+--------+--------+--------+|
|| Test suite | Test Method            | EXT4     | F2FS     | EXT4     | F2FS     | EXT4 | F2FS     || Unit    ||nocrypto| aes256 | aes128 | aes256 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
|| Manual     | Read                   | 390.6    | 391.59   | 320      | 325.6    | -    | 345.36   || MiB/s   ||        |        | -11.81 | -16.85 ||
||(cp and dd) | Write (zeros)          | 501.96   | 517.17   | 96.9     | 96.7     |      | 112.16   || MiB/s   ||        |        | -78.31 | -81.30 ||
||            | Write (random data)    | 100.44   | 97.99    | 91.8     | 89.5     |      | 97.64    || MiB/s   ||        |        |        | -08.66 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
||            | Seq. Output – Per char | 80.68    | 83.76    | 63.56    | 80.59    | -    | 75.56    || MiB/s   ||        | +26.79 | -09.79 |        ||
||            | Seq. Output – Block    | 498.92   | 492.42   | 104.74   | 101.13   |      | 90.9     || MiB/s   ||        |        | -81.54 | -79.46 ||
|| Bonnie++   | Seq. Output – Rewrite  | 196.4    | 198.99   | 74.69    | 70.8     |      | 70.27    || MiB/s   ||        | -05.21 | -64.69 | -64.42 ||
||            | Seq. Input - Per char  | 86.93    | 86.04    | 84.01    | 81.25    |      | 87.84    || MiB/s   ||        |        |        | -05.57 ||
||            | Seq. Input – Block     | 352.57   | 355.99   | 286.36   | 289.24   |      | 304.5    || MiB/s   ||        |        | -14.46 | -18.75 ||
||            | Random seeks           | 9452.9   | 9102.2   | 8142.3   | 8224.8   |      | 7431.4   || ops/s   ||        |        | -18.36 | -09.64 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
|| Fs-mark    | 1000 files, 1 thread   | 193.7    | 236.6    | 93.6     | 103.7    | -    | 73.9     || files/s || +18.13 | +10.79 | -68.77 | -56.17 ||
||            | 5000 files, 4 threads  | 310.1    | 348.8    | 90.9     | 99       |      | 91.6     || files/s || +11.10 | +08.91 | -73.74 | -71.62 ||
||--------------------------------------------------------------------------------------------------------------||--------|--------|--------|--------||
||            | Random read            | 56.77    | 69.86    | 58.79    | 63.51    |      | 61.93    || MiB/s   ||        |        |        |        ||
||            |                        | 14188    | 17461    | 14695    | 15874    |      | 15479    || IOPS    || +23.07 | +08.02 | -11.35 | -09.09 ||
|| Flexible   |                        |          |          |          |          | -    |          ||         ||        |        |        |        ||
|| I/O        | Random write           | 59.91    | 78.99    | 52.2     | 63.75    |      | 67.75    || MiB/s   ||        |        |        |        ||
|| Tester     |                        | 14973    | 19745    | 13046    | 15935    |      | 16934    || IOPS    || +31.87 | +22.14 | -14.24 | -19.30 ||
||            |                        |          |          |          |          |      |          ||         ||        |        |        |        ||
||            | Sequential read        | 284.02   | 247.57   | 95.14    | 95.17    |      | 95.98    || MiB/s   ||        |        |        |        ||
||            |                        | 71001    | 61889    | 23781    | 23788    |      | 23991    || IOPS    || -12.83 |        | -61.24 | -61.56 ||
||            |                        |          |          |          |          |      |          ||         ||        |        |        |        ||
||            | Sequential write       | 94.06    | 100.77   | 100.63   | 96.56    |      | 86.93    || MiB/s   ||        |        |        |        ||
||            |                        | 23512    | 25188    | 25153    | 24137    |      | 21728    || IOPS    || +07.13 | -04.04 | -13.74 | -04.17 ||
|+------------+------------------------+----------+----------+----------+----------+------+----------++---------++--------+--------+--------+--------+|
_
Marc.2377
источник