Справочная страница dd
о fdatasync
читает: physically write output file data before finishing
, поэтому он записывает данные только физически "один раз" (читается как «не принудительно сбрасывать каждые X блоков или байтов, но один сброс в конце»).
Если вы используете dd
для тестирования, это лучший способ получить наиболее точные результаты. Напротив, если не использовать этот конкретный флаг, вы сделаете ваши результаты нереалистичными: если вы пропустите его, то, вероятно, пропустите время для самого шифрования, поскольку dd
просто копирует данные.
Тем не менее, я также думал, что что-то происходит с вашими результатами, но я нашел эту статью, которая показывает почти то же самое: ecryptfs мучительно медленен. И ваш тест (копируется один файл ) - лучший сценарий для ecryptfs!
Поскольку ecryptfs записывает зашифрованный файл (с настраиваемым заголовком с метаданными внутри) для каждой версии с открытым текстом, наличие большого количества маленьких файлов подразумевает еще большее снижение производительности.
Однако у ecryptfs есть свои преимущества: вы можете отправить зашифрованный файл сразу, не теряя шифрование. Ваши резервные копии (при условии, что вы создаете резервные копии зашифрованных данных) будут быстрее, поскольку вы будете копировать только файлы размером с ваши данные (и даже быстрее, если они будут инкрементными, поскольку вы будете копировать только измененные файлы).
С другой стороны, dm-crypt может быть намного быстрее, но вам нужно будет отправить весь контейнер (целую файловую систему), чтобы сохранить шифрование как есть. И резервные копии также будут состоять из целого контейнера, и в большинстве случаев они не смогут делать инкрементные резервные копии.
Я использовал (и до сих пор использую) оба метода (но не те же инструменты) для хранения зашифрованных данных: синхронизировать файлы на основе файлов (ecryptfs) легче, если использовать такие службы онлайн-хостинга, как dropbox между компьютерами, но это довольно медленно внесение изменений и вызвало у меня некоторые проблемы с лежащей в основе файловой системой (предполагается, что она может записывать файлы, а проблемы, связанные с ограничениями в файловой системе, как правило, разрушают все это); Я предпочитаю шифрование на блочных устройствах: я отношусь к ним как к простым разделам, поэтому ограничения и проблемы не так сильно нарушаются. Единственный недостаток - копирование контейнера, что может занять больше времени.