专家博客 认识网络存储的基本常识

本文作者Henry Newman是Instrumental Inc.的首席技术官。他是一名行业咨询师,在高性能计算和存储领域拥有28年的工作经验。

过去十年来,我们在数据存储技术上的讨论已经发生了很大的变化,因此,下面我将概括地介绍有关网络存储的基本常识。

网络存储和网络连接的系统相比并没有多少不同。网络存储具有在网络上提供存储服务的能力。只要你可以将至少两台机器连接在一起,你就可以将服务器和存储连接在一起。或者说,只要你可以将成百上千台机器连接在一起,你就可以将成百上千台机器连接到成百甚至上千的存储系统,无论是本地的还是在广域网上的(WAN)。

现代网络存储是从上世纪90年代中期开始发展起来的,当时存储主要是利用光纤通道仲裁环(FC-AL)并通过光纤通道集线器来连接。现在,我们有光纤通道光纤架构,1GbE(1Gb/秒以太网)或10GbE(10Gb/秒以太网)上的iSCSI(互联网小型计算机系统接口),网络附加存储(NAS),InfiniBand和FCoE(以太网光纤通道),这些技术都可以用于网络存储。我相信,在未来几年,我们将看到以太网技术逐渐取代光纤通道技术(见《10GbE价格的下滑意味着光纤通道末日即将来临》)。

上世纪90年代,网络存储产生于UNIX系统的一系列新要求。当时,和服务器相比,存储还比较昂贵,在服务器模式下(DAS:直连式存储)分解存储并创建一个存储池以使一组服务器可以共享存储是很重要的一个问题,当然可靠性也是一个重要的问题。因此,每台服务器通过分配大型RAID(独立磁盘冗余阵列)存储得到自己的存储。当时之所以能做到这一点是因为RAID控制器的发展,当然,还有光纤通道。

很明显,下一步就是与存储共享相对应的数据共享。上世纪90年代末期,人们对数据共享的要求开始显现。一些厂商开始推出共享的文件系统。起初,这些文件系统针对的是少量服务器情况下的专门的应用程序的要求,但是在本世纪头十年的中期,这些文件系统开始变得通用起来,并且可以支持数百个服务器。如今,数据共享已经和5到7年前的存储共享一样普遍。

有一些基本的定义需要让大家了解。这里列出的是SNIA(网络存储行业协会)所给出的最重要的一些定义,同时附有一些评论。

直连式存储(DAS

DAS是直接连接在一台以上服务器上的存储系统,带有一个以上专有存储设备。基本上,你不需要通过交换机就可以让一台服务器直接连接到存储。这种存储是点到点的,其线缆是从服务器直接连到存储。

网络附加存储(NAS

1. 作为一个存储系统,NAS指的是连接到一个网络的存储单元,可以为计算机系统提供文件访问服务。这些单元通常包含一个引擎,由该引擎实施文件服务,同时数据存储在一个以上的设备中。

2. 作为一个网络,NAS是一套系统,通过文件访问协议,比如NFS(网络文件系统)或CIFS(通用互联网文件系统),为主机计算机提供文件服务。参见下面的存储局域网。

我认为未来NAS设备和基于NAS的存储将更加普遍。大多数NAS系统不能扩展到SAN(存储局域网)系统所能扩展到的规模和性能。这主要是因为NFS和CIFS通信协议的性能并不是为高速数据流而设计的。新版本的NFS有可能在明年问世,即pNFS(并行式NFS)。我们将在下一篇文章中展开讨论。

以太网光纤通道(FCoE

FCoE技术可以在以太网帧内封装光纤通道帧,从而使用户可以在以太网网络上进行光纤通道传输。以太网网络的价格比光纤通道便宜。

存储局域网(SAN

光纤通道或iSCSI存储局域网。这个定义很快也将涵盖FCoE存储局域网。

SAN使用块寻址方式。块寻址是一种算法,可以将存储在磁盘或磁带上的数据块确认为一系列数字,然后将这些数据转换为存储媒介上的物理地址。

小型计算机系统接口(SCSI

SCSI是一系列ANSI(美国国家标准学会)标准和建议标准的集合,定义的是那些通过主机总线适配器(HBA)将存储子系统或设备连接到主机的I/O总线。

串行高级技术附件(SATA

SATA是ATA接口的一种版本,使用串行连接架构。

串行连接SCSI(SAS

SAS是一种SCSI接口标准,供HBA和RAID控制器连接到SAS或SATA磁盘或磁带驱动器,以及其他SAS设备。

INCITS(国际信息技术标准委员会)技术委员会T10负责SAS的美国(ANSI)和国际(ISO)标准。

存储协议的变化

不 久以前,网络存储的情况还是由主机这边创建一个封装了数据或命令的SCSI包,然后将该包发送到FC(光纤通道)HBA;FC HBA获得SCSI包后,通过光纤通道协议将其发送到RAID控制器;RAID控制器然后将其写入光纤通道磁盘,然后磁盘驱动器获得SCSI包并将其转换 为驱动器上的数据。

现在,数据协议还是将SCSI传输到控制器,但是封装可以是用TCP/IP和以太网、InfiniBand或 FCoE。如今,数据到达控制器以后的事情也发生了变化。最新的RAID控制器–以及可预见的未来内所有新的控制器–将采用前端SCSI协议和底层硬 件接口,然后使用SAS协议传输到磁盘托架,然后再根据磁盘类型(SAS或SATA),针对磁盘驱动器使用合适的命令集。

SCSI是 SAS的子集,而SCSI是SATA的父集。对于SAS来说,一些SCSI所没有的额外命令对传输来说并不重要,但是对驱动器管理来(比如电源和错误管 理)说很重要,因此主机端不需要这些额外命令,只有RAID控制器或SAS HBA需要。下面是T10网站上摘下来的SCSI/SAS标准概览。

显然,除非你已经在业内呆过一段时间并知道所有的术语,且了解许多底层协议问题,否则这个图并不好懂。处理SATA接口和命令的T13组也有类似的架构。

希望通过这篇文章,你能够让大概了解网络存储的基本常识,并了解正在发生的变化和我认为将在未来十年内发生的变化。

存储是一件复杂的事情,因为它在过去20年来就没有发生什么大的变化,而我们的行业已经发生了很大的改变。从光纤通道和其他连接方式转移到10GbE是为了 降低复杂性,同时也是为了从硬件角度和人力资源角度打破原来网络管理与存储管理分开的管理模式。如果你是网络管理员,我强烈建议你学习一些存储知识;如果 你是SAN管理员,我也强烈建议你学习一些网络知识。在本系列的下篇文章中,我将概括SAN目前的现状以及目前的一些设置和管理问题,同时还将表达对 SAN未来发展的看法,并介绍如何从目前的架构迁移到未来的架构。