![网络存储设备的文件系统对操作系统兼容性重要吗? (初学者问题)](https://linux22.com/image/201740/%E7%BD%91%E7%BB%9C%E5%AD%98%E5%82%A8%E8%AE%BE%E5%A4%87%E7%9A%84%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E5%AF%B9%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%85%BC%E5%AE%B9%E6%80%A7%E9%87%8D%E8%A6%81%E5%90%97%EF%BC%9F%20%EF%BC%88%E5%88%9D%E5%AD%A6%E8%80%85%E9%97%AE%E9%A2%98%EF%BC%89.png)
我已经使用 Linux 好几年了,所以我熟悉命令行,但网络对我来说是一个神秘而令人生畏的事情。
当我想在设备之间共享文件时,我使用闪存驱动器或外部 SSD/HDD,有时需要使用 NTFS 或 FAT 来实现兼容性。
我以前听说过 NAS,我认为它可能是在我的 Linux 安装之间共享文件的一种方式(使用 ext4),但在研究它之后,我得到的印象是 NAS 不被操作系统视为磁盘,就像“文件”一样。 NAS 一词似乎也是人们用来描述许多不同事物的快捷方式。
那么,NAS的文件系统对兼容性有影响吗? (例如:我可以在 Windows 中使用 ext4 格式的 NAS 驱动器吗?)另外,我是否正确理解 NAS 是操作系统与之通信的一种协议或中间层,而不是底层文件系统?
答案1
NAS=网络附加存储是一个高级抽象分类专用于提供基于文件的存储服务的网络主机,使用为文件共享设计的一个或多个网络协议(例如,SMB = Windows 文件共享协议、NFS、旧的已弃用的 Apple 特定的 AFP 或其他协议)。
使用的文件共享协议将对客户端隐藏 NAS 主机实现细节(例如使用的实际文件系统类型),但如果使用功能特别有限的文件系统类型,则可能会限制 NAS 可以提供的文件共享协议功能。
例如,如果 NAS 上使用无法使用 ACL 的文件系统(如 FAT32 或 exFAT),则客户端通常无法调整单个文件和目录的访问权限,因为 NAS 无法以有效的方式将 ACL 存储在此类文件系统中。基于共享的访问权限仍然是可控的,但是任何给定共享中的所有文件和所有目录都将具有与该共享通常具有的相同的访问权限。
担任 NAS 角色的系统可以是运行专用 NAS 服务器操作系统/软件包(例如FreeNAS/TrueNAS),或者是专门为提供NAS服务而设计的硬件设备(例如NetApp公司的主要产品线),甚至是几个这样的单元的容错排列。
运行通用操作系统的通用计算机通常不称为 NAS,即使它可能被配置用于相同的任务:此类系统更常见地描述为文件服务器反而。然而,由于家庭/小型企业 NAS 设备可能具有许多辅助功能,因此这种区别可能有些模糊。
如果存储不是通过基于文件的请求访问,而是通过基于块的请求访问(即,不是“将此数据写入文件位置 Y 之后名为 XXX.dat 的文件”),而是存储访问协议会说“写入此 16kB 块”从逻辑磁盘#ZZZ的块#NNNNNNNNNN开始的数据”),则适用的高级分类不是NAS,而是存储区域网络或 SAN。
使用 SAN,客户端设备将需要了解存储上使用的实际文件系统格式 - 但存储设备不必这样做,因为它只提供对类似磁盘的存储空间的原始区域的访问。
在现代融合网络架构中,SAN 访问协议可能使用常规以太网网络,例如 iSCSI 或 FCoE(以太网光纤通道),或专门针对存储使用而优化的硬件解决方案,例如使用 FCP 或 FC-NVMe 协议的光纤通道网络。
虽然小型 NAS 设备在家庭/小型企业中并不罕见,但 SAN 解决方案几乎完全是大型企业的产品。