¿"ecryptfs" admite E/S directas? En general, ¿cómo puede un sistema de archivos "apilable", que modifica el búfer proporcionado por la E/S directa de soporte del usuario?Uso de IO directo con ecryptfs y sistemas de archivos apilables similares
Respuesta
ecryptfs no es compatible con la E/S directa.
No hay implementación de la devolución de llamada de direct_IO() en ecryptfs address_space_operations.
Aún así sería bueno saber cómo se puede agregar esto a los sistemas de archivos apilables que modifican los datos. Especialmente cuando IO asíncrono se realiza con Direct I/O. ¿Cómo podemos garantizar la consistencia del buffer de usuario * y * mantener la semántica de la E/S directa? – ghostkadost
No he investigado tanto, pero personalmente usaría un decorator pattern para los controladores del sistema de archivos, de modo que ecryptfs se coloque encima de cualquiera de los controladores de dispositivo reales. Luego, cuando se hacen las llamadas, entran en el código de ecryptfs, luego ecryptfs llama a los controladores del dispositivo y hace la escritura.
- 1. Haskell IO Monad y uso de memoria
- 2. idiomático IO con Scala
- 3. ¿Qué son modificaciones apilables?
- 4. Java IO Performance XOR con 2 archivos
- 5. jQuery: el uso directo() con cada uno()
- 6. Uso de cargas de archivos HTML5 con AJAX y jQuery
- 7. Haskell IO con interact y mapa
- 8. IntPtr.ToInt32() y x64 sistemas
- 9. Adobe AIR y diferentes sistemas de archivos del sistema operativo
- 10. Uso de C++ en sistemas integrados
- 11. Archivos de registro en sistemas distribuidos masivamente
- 12. Uso directo del canal vs uso de un proxy?
- 13. Haskell recursión con números aleatorios y IO
- 14. Almacenamiento sin conexión HTML5. ¿Almacenamiento de archivos? Directorios y sistemas de archivos API
- 15. ¿Está wget o programas similares siempre disponibles en los sistemas POSIX?
- 16. EUnit y io: formato
- 17. Diferencias (si existen) entre el bloqueo directo y la inanición en los sistemas operativos
- 18. Uso de diff y supresión de archivos completamente diferentes
- 19. La experiencia con los sistemas de facturación
- 20. CQRS con sistemas heredados
- 21. Interactuar con POS - Dispositivos terminales y sistemas de conmutación bancaria
- 22. Desarrollo de "Sistemas de archivos" para linux, mac, windows
- 23. ¿Cómo distinguen los sistemas de control de fuente populares los archivos binarios de los archivos de texto
- 24. R archivos de ayuda en diferentes sistemas operativos
- 25. IO y quizás Interacción de mónada
- 26. Uso de Mercurial con seguimiento de elementos de trabajo similares a TFS
- 27. diferencia entre IO-APIC-fasteoi y IO-APIC-edge
- 28. ¿Cómo puedo comparar dos archivos similares a vimdiff de vim?
- 29. funcionales de programación y sistemas tipo
- 30. "Uint32", "int16" y similares; ¿son estándares C++?
La E/S directa no significa nada más que "los datos no provienen y no entran en la memoria caché del búfer". Hasta ahora, no hay ninguna razón por la cual un sistema de archivos particular no debería ser capaz de soportarlo. Por supuesto, en el caso de un sistema de archivos encriptado, significará que cada vez que lea un sector, debe ser descifrado una y otra vez ... – Damon
La preocupación aquí es cómo se implementa una operación de escritura. Si no puede haber copia, debemos encriptar los datos en el búfer de usuario, realizar una operación de escritura y luego descifrar los datos nuevamente ya que no podemos dejar el búfer de usuario modificado. Esto debería ser difícil cuando las E/S asíncronas también se lanzan a la imagen. – ghostkadost
'O_DIRECT' no ofrece una operación asíncrona o promete una gran cantidad de lo contrario. Todo lo que _realmente_ promete es (cita original) "intentar minimizar los efectos de la memoria caché" al no pasar por la memoria caché del búfer. No da ninguna garantía de que no se hagan copias. Evita las copias que puede evitar. Y, la mayoría de las veces, hace lo contrario de lo que las personas piensan (degradan el rendimiento). Obviamente, si cifra un sector, a menos que el controlador de disco tenga cifrado HW, debe hacer una copia, pero no puede evitarlo. Sin embargo, todavía no entrará en la memoria caché del búfer. – Damon