许多大型存储厂商(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有很多意义的特定工作负载:
好处是你不要添加另一个图层。 这有几个好处:
我帮助客户build立的一个系统有6个10Gbps到6个不同的交换机,其中5个分配1Gbps链接到30个机器,每个机器都在进行渲染工作。 这些机器每隔20秒就会丢失一个200 MB的文件,这样平均写入到存储器的速率为1,500 MB / s(实际上,写入负载有点突然,并不是完全可预测的,因为不同的场景复杂性会导致不同的渲染时间)。
在这之间,其他机器正在读取这些文件,将它们连接成恒定的videostream,然后将其传送给硬件编码器,并将产生的stream写回到存储器中,并将其写入单独的分区。
该服务器的总I / O负载高于当时可用的最快主板上的内存总线速度,所以瓶颈非常明显。 🙂