filesystems - POSIX 存储和 NFS 有什么区别?

标签 filesystems storage posix nfs

在生物信息学领域,我们越来越多地使用基于集群的部署,如 Kubernetes、Spark 和 Hadoop。 POSIX 存储这个术语不断出现在文档中。

POSIX 存储和 NFS block 存储 (EBS) 有什么区别?术语可以互换吗?它基本上意味着不是对象存储(S3)或微软(SMB、CIFS)的东西吗?

最佳答案

我的理解是:

POSIX 存储是指可以使用 POSIX 文件系统函数(即通常的“fopen”)访问的任何存储,并且符合 POSIX filesystem requirements :这意味着它必须提供一些设施,如 POSIX 属性,或严格遵循 POSIX 语义的原子文件阻塞。

这通常是通过 POSIX 操作系统连接到主机(直接或通过 SAN)的存储。此外,文件系统必须支持 POSIX。

NFS、CIFS、其他 NAS 文件系统以及 HDFS (Hadoop) 不兼容 POSIX。这些工作在网络协议(protocol)之上,通常由其他一些文件系统支持,并且它们的访问语义不允许 POSIX 兼容性(但请参阅@SteveLoughran 关于 NFS 的说明)。

NTFS 和 FAT 是文件系统,但它们不支持 POSIX(它们不支持具有相同语义的锁定)。 Windows 也不提供与 POSIX 兼容的功能,但即使是 Linux 也不能在这些文件系统上完全兼容 POSIX 存储。它们不是“POSIX 存储”。

Amazon EBS 卷是 block 存储 (SAN),因此一旦将卷附加到您的主机,如果您使用的文件系统是 POSIX,并且您正在运行 POSIX 操作系统,则可以将其视为“POSIX 存储”。

S3 不是文件系统,它有自己的对象访问 API,因此它不支持 POSIX 文件功能。

大多数典型的 Linux 文件系统(当直接由 POSIX 主机安装时)都支持 POSIX(即 ext3、ext4、xfs、zfs)。

关于filesystems - POSIX 存储和 NFS 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52297719/

相关文章:

filesystems - 是否有文件系统掩码之类的东西?

java - java在数据库中存储对象

c - 删除文件 c 前面的内容

java - 将文件系统条目加载到内存映射文件(NIO2)的最快、最干净的方法

java - 如何从 Tomcat/Java 应用程序创建文件名带有 UTF-8 字符的系统文件?

linux - 在结构 inode 中存储一些数据

Android Xamarin : Open file from Storage (with path)

c# - 在 metro 应用程序中存储大量数据

c - 如何将 Libev io 与 mqueue 一起使用

c - 初始化返回变量时,读取缓冲区清零