这两种类型有什么区别?
在网上查了一下,知道NFS是把文件传输到客户端,而iscsi是把块传输到客户端,但还是不太清楚它们内部是怎么运作的,以及它们对文件的处理有什么不同。
谁能给我举一些例子或真实的工作案例,以便我能够想象一幅画面。
最终,我希望能够根据不同的场景判断哪种方法更好。
答案1
它们有不同的用途:
- NFS 用于将文件从一台服务器提供给多个客户端,并处理冲突等。
- 当您不直接连接计算单元的存储,而是通过(专用)网络连接时,可以使用 iSCSI。一次只能有一台计算机使用 iSCSI 驱动器。iSCSI 允许为服务器动态分配存储,每次从一个位置分配。
NFS 是一种网络文件服务,而 iSCSI 是一条长的虚拟 SCSI 电缆。
答案2
NFS,如 SMB(Windows)或 Samba(Linux)维护一个文件系统。它跟踪各种文件,包括安全性(谁拥有给定的文件或文件夹,或可以读取该文件或文件夹)、文件夹、文件大小等。当另一台计算机与其通信时,该客户端计算机会请求文件列表,NFS 服务器会提供文件列表,并允许客户端请求单个文件进行读取或写入。因此,NFS 可以允许多个客户端共享对其托管的这些文件的访问权限。
iSCSI 可能将大型文件用作虚拟硬盘,或暴露实际的物理磁盘。它只是提供数据块,就像数据块存储在实际磁盘上一样(即 512 字节或 4k 字节块)。当客户端计算机通过 iSCSI 启动器连接时,该客户端对磁盘具有独占访问权限。客户端负责将这些数据块划分或分组为文件,客户端本身确定它是 ZFS 还是 NTFS 或任何文件系统。
因此,iSCSI 服务器会更快,因为它不需要做太多工作。它每次只能连接一个客户端到目标磁盘,而且这种情况通常是永久性的。iSCSI 客户端通常不会频繁连接/断开连接,除非客户端是一台远程移动的笔记本电脑。在这种情况下,客户端会做更多的工作,因为所有文件系统工作(安全性、跟踪哪个数据块属于哪个文件)都必须由客户端完成。
答案3
iSCSI 实际上将原始设备或分区暴露给远程设备。因此,当您连接到新的 iSCSI 设备(服务器)时,就好像您获得了一个新的 10GB 或任何未格式化的硬盘。因此,远程系统(客户端)现在需要对其进行格式化和/或在其上放置任何类型的文件系统。
远程系统还可以轻松地使用全盘类型加密负责加密,而服务器对此无需了解任何信息。
NFS 只对文件起作用,不适用于更低级别的文件。您只能看到目录和文件,无需格式化。就像您连接到远程 Windows 共享一样。
对我来说,如果处理许多小文件,iSCSI 似乎更快,但网络配置和环境可能会有很大差异。