存储网络简介:LAN与SAN的区别

网络虚拟化如今是一个很热的话题,各大厂商都在忙着争抢这块蛋糕。涉及的技术包括包括网卡的虚拟化(Emulation, I/O pass-through, SR-IOV), 网络的虚拟接入技术(VN-Tag/VEPA),覆盖网络交换(VXLAN/NVGRE),以及软件定义的网络(SDN/OpenFlow)等等。具体的介绍大家可以参考EMC中国研究院之前的一篇博客——“网络虚拟化-正在进行的网络变革”,其中对网络虚拟化的现状作了一个很好的总结。

有一点不知道大家有没有注意到,这里所说的网络其实是狭义的数据通讯网络,包括通常所说的局域网(LAN)和广域网(WAN/Internet),所采用的协议有以太网(Ethernet,二层)和英特网(IP,三层)协议等等。然而在企业级的数据中心(或云计算的数据中心)里还有一类重要的网络,那就是存储网络(StorageNetwork),占统治地位就是基于FC技术的存储域网络(SAN)。

存储网络简介

存储网络通常也被称作存储域网络(StorageArea Network, SAN),是为块级别(blocklevel)数据存储提供统一访问的专用网络。其中的支撑技术就是光纤通道(FibreChannel,FC)技术。 FC不是搭建存储网络的唯一选择,但却是业界应用中占统治地位的技术。FC通常包括两方面的含义:(1)传输媒介,能够提供长距离、高速、低延迟、低出错率的传输,以及通过硬件(HBA)实现传输协议(注:在这里光纤(fiber-optic)同样也不是必须的);(2)传输协议(FibreChannel Protocol,FCP),一个五层的网络协议栈(FC-0到FC-4,大家可以类比一下ISO的七层协议栈)。关于FCP这里只提一下其中比较重要的两层:(1)FC-2是数据传输层,可以在这里进行数据帧的流量控制(flowcontrol);(2)FC-4是上层协议映射层,实现对应用层协议(SCSI,IP等)的映射。细心的读者可能发现了问题,这里为什么会有IP协议呢?这里有个小插曲, FC协议最初是作为局域网(LAN)的主干网(backbone)技术设计的,用以代替百兆以太网(Ethernet)。当然结局大家都知道了,千兆和万兆以太网技术完胜。

基于以太网技术的LAN大家都比较熟悉,那么基于光纤通道技术的SAN与其相较到底有和异同呢?图1是数据中心中LAN和SAN的一个简化示意图,大家可以看到在SAN的构建中同样也采用了交换技术(Switching)。其实两者之间大多数的概念都是可以类比的,这里只提两个关键的不同点。其一, LAN是一个全联通的网络,任何两个节点(主机)之间都可能存在通讯;SAN从图论的角度来说是一个二分图(组1:主机,组2:存储系统),即组内部不存在任何通讯,所有的通讯都发生在组间。其二,LAN是一个尽力服务(best-effort)的网络,拥塞丢包都可能出现,可靠的数据传输依赖于上层协议(如TCP);而SAN则提供非常可靠的数据传输,上层协议(SCSI)对丢包的容忍性要差很多。

注:二分图,指顶点可以分成两个不相交的集使得在同一个集内的顶点不相邻的图。

图1 局域网(LAN)与存储域网(SAN)

表1局域网(LAN)与存储域网(SAN)

FC的基本通讯主要存在于两类端口之间,即N-Port(NodePort)和F-Port(FabricPort)。F-Port是FC交换机上的端口,用于连接N-Port。而N-Port是终端设备(主机或存储系统)的端口,通常位于主机适配卡(HostBus Adapter,HBA,图2)上,用于接入交换网络。每个N-Port有一个64位的全局唯一的名字(WorldwidePort Name,WWPN,参考以太网卡的MAC地址)。N-Port接入网络后会被分配一个24位的端口编号(N-PortID,可以类比DHCP得到的IP地址)。这个N-PortID被用于之后所有数据帧的寻址和投递。