Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 将直接IO与ecryptfs和类似的可堆叠文件系统一起使用_Linux_Filesystems_Ecryptfs - Fatal编程技术网

Linux 将直接IO与ecryptfs和类似的可堆叠文件系统一起使用

Linux 将直接IO与ecryptfs和类似的可堆叠文件系统一起使用,linux,filesystems,ecryptfs,Linux,Filesystems,Ecryptfs,“ecryptfs”是否支持直接I/O?一般来说,修改用户提供的缓冲区的“可堆叠”文件系统如何支持直接I/O?我没有深入研究过这一点,但我个人会对文件系统驱动程序使用a,以便ecryptfs位于任何实际设备驱动程序之上。然后调用时,它们进入ecryptfs代码,然后ecryptfs调用设备驱动程序并进行写入。ecryptfs不支持直接I/O ecryptfs地址空间操作中没有直接IO()回调的实现。直接I/O除了“数据不来自缓冲区缓存,也不进入缓冲区缓存”之外,没有其他含义。到目前为止,没有理由

“ecryptfs”是否支持直接I/O?一般来说,修改用户提供的缓冲区的“可堆叠”文件系统如何支持直接I/O?

我没有深入研究过这一点,但我个人会对文件系统驱动程序使用a,以便ecryptfs位于任何实际设备驱动程序之上。然后调用时,它们进入ecryptfs代码,然后ecryptfs调用设备驱动程序并进行写入。

ecryptfs不支持直接I/O


ecryptfs地址空间操作中没有直接IO()回调的实现。

直接I/O除了“数据不来自缓冲区缓存,也不进入缓冲区缓存”之外,没有其他含义。到目前为止,没有理由不支持任何特定的文件系统。当然,在加密文件系统的情况下,这意味着每次读取一个扇区时,都必须对其进行一次又一次的解密……这里关心的是如何实现写入操作。如果没有副本,那么我们必须加密用户缓冲区中的数据,执行写操作,然后再次解密数据,因为我们不能修改用户缓冲区。当异步I/O也被抛出到图中时,这应该是困难的。
O\u DIRECT
不提供异步操作,或者在其他方面承诺了很多。它真正承诺的是(原话)“尽量减少缓存影响”,不通过缓冲区缓存。它并不能保证没有复制品。它确实避免了可以避免的复制品。而且,它往往与人们的想法相反(降低性能)。显然,如果您加密一个扇区,除非磁盘控制器具有硬件加密,否则您必须对其进行复制,但这是情不自禁的。不过,之后它仍然不会进入缓冲区缓存。不过,如果知道如何将其添加到修改数据的可堆叠文件系统中,那就太好了。特别是当异步IO使用直接I/O执行时,我们如何保证用户缓冲区的一致性并维护直接I/O的语义?