Hice un poco de evaluación comparativa con ecryptfs y dm-crypt, y obtuve algunos resultados interesantes. Todo lo siguiente se realizó con un sistema de archivos Btrfs, utilizando dd
para copiar un archivo de ~ 700MB a / desde un disco RAM con la conv=fdatasync
opción de forzar la sincronización de datos. Los cachés de disco se borraron antes de cada prueba.
No encryption:
read - 165MB/s
write - 120MB/s
ecryptfs:
read - 125MB/s
write - 15MB/s
dm-crypt:
read - 150MB/s
write - 115MB/s
dm-crypt + ecryptfs:
read - 120MB/s
write - 15MB/s
Ahora entiendo que el cifrado es más lento que un sistema de archivos sin formato, sin embargo, no esperaba que el rendimiento masivo de escritura cayera con ecryptfs. ¿El hecho de que estoy forzando la sincronización de datos hace que esta prueba sea poco realista? ¿O hay alguna opción que pueda pasar a ecryptfs para que las escrituras funcionen más rápido?
Estaba usando el cifrado de nombre de archivo en ecryptfs, pero aparte de eso, todo estaba configurado por defecto.
fuente
Respuestas:
Página de manual de
dd
aproximadamentefdatasync
lecturasphysically write output file data before finishing
, por lo que solo escribe datos físicamente "una vez" (léalo como "no forzar un vaciado cada X bloques o bytes, sino un solo vaciado al final"). Si está utilizandodd
para hacer sus pruebas, es la mejor manera de obtener los resultados más precisos. Por el contrario, no usar ese indicador específico haría que sus resultados no fueran realistas: omitirlo probablemente perdería el tiempo para el cifrado en sí mismo, yadd
que solo está copiando datos.Sin embargo, también pensé que algo estaba sucediendo en cuanto a sus resultados, pero encontré este artículo que muestra casi lo mismo: ecryptfs es dolorosamente lento. ¡Y su prueba ( un solo archivo que se copia) es el mejor escenario para ecryptfs!
A medida que ecryptfs escribe un archivo encriptado (con un encabezado personalizado con metadatos dentro) para cada versión de texto claro, tener muchos archivos pequeños implica incluso una mayor caída en el rendimiento.
Sin embargo, ecryptfs tiene sus beneficios: puede enviar un archivo cifrado de inmediato sin perder el cifrado. Sus copias de seguridad (suponiendo que esté haciendo una copia de seguridad de sus datos cifrados ) serían más rápidas ya que solo copiaría archivos tan grandes como sus datos (e incluso más rápido si son incrementales, ya que solo copiaría archivos modificados).
dm-crypt, por otro lado, puede ser mucho más rápido, pero necesitaría enviar todo el contenedor (un sistema de archivos completo) para mantener el cifrado tal como está. Y las copias de seguridad también consistirían en todo el contenedor, no pudiendo hacer copias de seguridad incrementales en la mayoría de los casos.
He usado (y sigo usando) ambos métodos (sin embargo, no las mismas herramientas) para almacenar datos cifrados: es más fácil mantener sincronizado a través de archivos (ecryptfs) a través de servicios de alojamiento en línea como Dropbox entre PC, pero es bastante lento cuando haciendo cambios y me ha causado algunos problemas con el sistema de archivos subyacente (se supone que puede escribir los archivos y los problemas relacionados con los límites en el sistema de archivos tienden a romper todo); Prefiero el cifrado de dispositivos de bloque: los trato como particiones simples, por lo que los límites y los problemas no se rompen tan mal. El único inconveniente es copiar el contenedor, lo que puede llevar más tiempo.
fuente