我在家里运行 Hyper-V 服务器,其中 Windows Server 2008 R2 VM 充当文件服务器。文件通过 SMB 在我的网络上共享。(此外,该机器使用 PERC 6/i RAID 卡,但我认为这并不重要)
我正在考虑设置专用的 SAN(iSCSI)机器,然后将我的 Hyper-V 服务器切换到 ESXi。
与 SMB 相比,使用 iSCSI 有哪些优势?
我认为我仍然需要一个通过 SMB 共享文件的文件服务器操作系统(例如 Win 2k8),所以我不确定最终结果是否会与我当前的设置有所不同......
答案1
Mike 是正确的,iSCSI 和 SMB/CIFS 在两个不同的抽象层上运行。
您可以将 SMB/CIFS 视为导出其他计算机可以访问的文件系统。目录结构、安全元数据等已经存在。客户端计算机可以读取和写入此文件系统中的文件,但这就是它们访问的范围。
使用 iSCSI,客户端计算机看到的与操作系统的物理卷相同。从 Windows 客户端计算机,您首先要配置指向 iSCSI 主机(目标)的 iSCSI 启动器。之后,您会在 Windows 磁盘管理控制面板中看到一个新的物理磁盘。然后,您可以对其进行初始化、分区,然后使用您想要的任何文件系统对其进行格式化。其他任何计算机都无法访问此区域(至少不能同时访问,并且忽略群集文件系统等高级功能)。
该过程与 ESXi 略有不同,但概念相同 - iSCSI 目标看起来就像另一个可以在其上构建 VMFS 文件系统的磁盘。
如果您正在构建自己的存储服务器,您可能会考虑的一件事是,可以同时完成这两件事。OpenFiler 和 FreeNAS 等软件允许您聚合存储池并允许 iSCSI 和 SMB/CIFS 访问。iSCSI 空间必须预先分配(很像虚拟机硬盘),并且对 CIFS 客户端不可见。这两个区域是分开的。您也可以继续使用 Windows 服务器并安装软件来导出 iSCSI 目标,例如 StarWinds 制作的软件。
iSCSI 总体上性能会更好,因为不会有那么多抽象层(本例中是 SMB 协议)。此外,由于它是一种块级协议,因此一些在安装到网络共享时无法运行的软件将可以在 iSCSI 上运行。
我认为 ESXi 可能不允许访问 SMB 共享,只允许访问 NFS,因此您可能也想研究一下这一点。如果是这样,您将需要某种方法来导出 NFS 共享,但上述讨论保持不变。OpenFiler/FreeNAS 支持 NFS,Windows 也可以使用它进行设置。
答案2
File Level
对比block level
块级别 (iSCSI) 您可以使用本地操作系统文件系统格式化远程卷。
假设您想要一个用于 Apple Time-machine 的卷,并且希望将其作为 Apple Journalized 文件系统。或者您想要一个格式化为 NTFS 的远程文件系统。要格式化磁盘,您需要具有对该磁盘的块访问权限。
SMB 已由托管 SMB 的设备格式化。这些文件系统通常是 EXT2&3,并且 Linux 子系统允许您通过 SMB 协议访问其自己的本地文件系统并进行写入。
答案3
我认为 SMB 是典型的网络共享,而 iSCSI 则作为独占的直接连接块存储(如本地安装的 HDD)呈现,因此允许您选择具有其自身相关优缺点的文件系统。(但我以前错了 :)
答案4
答案其实很简单:在 iSCSI 上,你可以使用客户端缓存,而在 SMB 上使用默认客户端则不可能。就是这样。
通过读取(如果您希望写入)缓存,您可以在许多实际情况下获得更高的性能。