NAS在中高端存储arrays上的用途是什么?

许多大型存储厂商(EMC,NetApp等)都提供除FCP,FCoE或iSCSI之外还有NAS的存储设备。

什么时候使用这些盒子的NASfunction是合适的? 在SMB设置中,NAS更便宜,文件服务器的pipe理开销更低,但为什么有人能够承受VNX,而不是将块级存储映射到文件服务器并以此方式共享? 直接使用这些设备的NAS组件有什么好处?

如果您支持的解决scheme可能不适用于块存储,或者如果正确的FC基础架构成本过高,则优势就显现出来了。

考虑高性能计算环境中的大型分布式应用程序。 假设有1,000个计算节点。 NFS可能是应用程序数据的理想select,因为它的每个端口成本很低,规模也很可靠。 iSCSI将会有额外的开销和pipe理工作。 光纤通道将需要专用的基础设施,并且每个端口的成本都很高。 但是,应用程序可以从中端或高端arrays的IOPS,容量或扩展function中受益。

与其他协议相比,我使用VMware的NFS大约有80%的时间。 本机精简configuration,可视性/透明性以及数据存储大小限制都是将块存储呈现给同一主机的优势。 使用正确的devise,性能差异可以忽略不计。 有时,我可能会在同一个环境中(在不同的networking上)提供块 NAS存储。 灵活性很重要。

其他示例包括那些可能希望利用其客户机支持的协议的本机存储的组织,但直接使用SAN的快照/复制或备份工具。 Windows端的CIFS,Unix的NFS,以及我最近在NexentaStor存储中看到的Macintosh / AFP添加。

首先要考虑的是,如果您在存储设备上运行文件系统和文件共享协议(使其成为NAS),则不必在服务器上运行它。 这是可以避免的一点点工作。 如果文件系统需要在其他服务器和用户之间共享,这可能代表相当多的工作避免。

如果使用数据的服务器是唯一访问该服务器的服务器,则最好使用块级协议(FC,SAS,iSCSI或FCoE)。 这样做的主要原因是,虽然实际文件系统的pipe理对于系统来说相当容易,但是通过networking访问该文件系统的协议可能是毛茸茸的,效率低下的。 CIFS效率极低,而NFS比CIFS更有效,但其效率远低于基于SCSI的任何产品。

如果数据将在多台服务器之间共享,则您唯一的select是集群types环境,其中所有节点都可以访问相同的SCSI卷。 这可能不是一个可能性。 即使是(例如VMWare),通过中央服务器来处理文件系统和文件共享协议通常也是有好处的。

使用NAS有很多意义的特定工作负载:

  • VMWare:VMWare文件系统在安装最新版本的VMWare之前的所有内容上都会安装在SCSI卷上,并且对您的环境引入了各种限制。 VMWare向后倾斜,以确保它们支持在NFS上托pipe的VMDK,并且消除了许多商店对VMFS的需求。 也就是说,可能有一些你不能用NFS做的事情,你可以用VMFS。 我不是VMWare专家。
  • Hyper-V:微软hypervisor的最新testing版支持NAS,看起来确保它能够正常运行是他们的首要任务。
  • 文件服务器:用户的主目录和networking共享是中央NAS的完美应用。 这是您的域名中的less一台计算机,通常可以将多台文件服务器整合到一台NAS中。

好处是你不要添加另一个图层。 这有几个好处:

  • 存储系统试图针对观察到的访问模式进行优化; 如果在引入自己的caching的中间添加另一个系统,那么访问模式现在会变成任何cachingalgorithm,这可能更难以优化。
  • 一个合适的存储pipe理器有一个电池备份写入caching,允许日志只保存在RAM中。 如果另一个系统处理文件系统层,则会写入日志块,然后等待日志被确认,然后写入数据块。 保持NAS上的文件系统允许跳过这一步。
  • 存储pipe理器针对高吞吐量进行了优化。 普通的文件服务器可能会饱和一条10Gbps的链路,这是个疑问,所以这成为一个瓶颈。

我帮助客户build立的一个系统有6个10Gbps到6个不同的交换机,其中5个分配1Gbps链接到30个机器,每个机器都在进行渲染工作。 这些机器每隔20秒就会丢失一个200 MB的文件,这样平均写入到存储器的速率为1,500 MB / s(实际上,写入负载有点突然,并不是完全可预测的,因为不同的场景复杂性会导致不同的渲染时间)。

在这之间,其他机器正在读取这些文件,将它们连接成恒定的videostream,然后将其传送给硬件编码器,并将产生的stream写回到存储器中,并将其写入单独的分区。

该服务器的总I / O负载高于当时可用的最快主板上的内存总线速度,所以瓶颈非常明显。 🙂