浅谈存储网络拓扑若干概念

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




         近来又碰到多个初学者面对这几个词时候显得概念混乱,不知所措。qq上经常有留言咨询各种问题,其中也不乏一些问题描述的让我根本没法看懂,所以鄙人感觉有必要写一篇小文有针对性的澄清一下这几个概念。。
LANWANSAN、FC、ISCSINAS、LAN-Free、Frontend-Free

LAN:Local Area Network
        这个都知道,局域网。但是好像大家都叫习惯了,反而有人不理解LAN的本质意思了。好好看看这三个字,“局域网”,你在你的本地站点看得见摸得着的所有网络,任何形式的网络,都属于LAN。比如:本地电话交换网络,本地以太网络,本地存储网络。有人质疑,本地存储网络也属于LAN?存储网络不是SAN么?这就是一种概念不清并且不统一。将本地SAN归纳到LAN中将会很好的统一这些概念,随着本文的继续读者将会体会到。

WAN:Wide Area Network,广域网
        泛指跨越远距离的链路,或者地理上相隔很远的两个网络互连起来也形成了广域网。广域网这个词在应用的时候大部分时候指代长距离传输链路,即WAN常用于指代长距离链路而不是网络。比如在说“将本地站点通过WAN连接到远程”,这里的WAN就是指长距离传输链路。为何WAN一词会被赋予这种指代,原因是因为长距离链路普遍都是点对点链路而不是多点互访型链路,所以一个广域网,其具有广域网意义的也就是局域网之间的这条链路了。你说以太网链路是否可以作为广域网链路,当然可以,FC链路也同样可以跨长距离,所以此时也属于WAN链路。
SAN:Storage Area Network,存储区域网络
        即专用于传输对存储设备IO数据的网络。可以是任何形式的网络,比如FC网络,以太网络,SAS网络,Infiniband网络,或者,任何形式的IP网络。使用FC网进行IO传输的叫做FC-SAN,同理,使用IP网络的叫做IP-SAN。基于SAS网络的呢?当然叫SAS-SAN了,以此类推。那么,有人推出来个Ethernet-SAN,是不是也可以呢?上文说SAN也可以基于以太网络。没错,你可以这么说。你可以把FCOE称为一种Ethernet-SAN。那么IP-SAN是否也属于Ethernet-SAN呢?部分属于,因为IP-SAN的底层链路一般情况下都是使用以太网的,但是绝对不能说IP就是以太网。比如你使用ADSL通过Internet,一样可以连接到ISCSI Target,那此时就不能称其为Ethernet-SAN了,只能叫IP-SAN。以上列举的这些个访问方式,或者说协议,目前都是基于Block形式的SCSI协议+底层传输协议。还有另外一种存储IO访问方式协议集将在下文描述。

NAS:CIFS和NFS以及其他第三方厂商自行开发的基于文件偏移量IO的文件型IO协议
        业界将能够提供文件型IO访问而存储数据的存储设备称为NAS,即Network Attached Storage。NAS设备在局域网内部目前都是使用以太网来作为底层传输链路的,寻址路由和传输保障协议分别使用IP和TCP这两种目前最为广泛的协议。在这之上便是CIFS、NFS等上层协议了。NAS是一种设备,而不是一个网络。但是可以用NAS来指代文件型IO的访问方式,比如描述某个设备的IO方式是Block方式还是NAS方式,注意,但是避免用这种描述“某个设备使用SAN方式还是NAS方式”,原因下文再述。

SAN所包含的元素:
        关于SAN这个词有几个误区或者不成文的说法,比如只把将基于FC的数据传输方式叫做SAN,或者反过来,当说SAN的时候只表示FC-SAN而忽略了IP-SAN,这样容易对阅读方造成不便、混乱和误解。比如在描述某款产品的时候,“前端支持SAN方式访问”,其实这个设备只支持FC-SAN,但是他没有明确指出是否支持IP-SAN,这样就给阅读者带来了不便。
        另外,SAN是一个网络,但又不仅仅只表示由交换机组成的底层网络,而它包含更加丰富的元素,比如磁盘阵列、磁带库、虚拟化设备、备份服务器等。可以说SAN这个词与SA(Storage Area)近乎同义了,或者说SAI(Storage Area Infrastructure)。比如可以这样说“某SAN中包含两台xx磁盘阵列,一台备份服务器,一台磁带库”。

笔者建议:今后在描述具体技术参数时杜绝单独使用“SAN”一词,代之以“FC-SAN”“IP-SAN”“NAS-SAN”等,或者干脆直接只用协议来描述,比如FC,ISCSI,CIFS,NFS。比如“前端支持FC、ISCSI访问方式”,这样就没有任何歧义了。
各种关系论:

  • LAN与WAN的关系:LAN与WAN就是本地和远程的对应关系,本地的就是LAN,远距离的就是WAN。以太网与LAN的关系:绝对不要把LAN等同于以太网。LAN是一个大涵盖,不仅仅包括本地以太网络。如果某人描述“客户端与服务器通过LAN连接,服务器与磁盘阵列通过SAN连接”,这句话不是不对,但是描述太含糊,“通过LAN连接”,那种底层链路?没说。虽然大部分还是理解其意思,但是终究是不严谨。不如直接说“通过以太网连接”。另外,本地SAN也属于LAN,所以这句话追究起来,就是个病句了。
  • SAN与LAN和WAN的关系:如果一个SAN,或者说SA,完全在本地,则可以把这个SAN归属于LAN。如果某个SAN是跨长距离链路部署的,则可以说这个SAN跨越了WAN或者WAN链路。
  • SAN与FC和ISCSI的关系:FC泛指一种传输协议,即Fibre Channel。用FC协议来承载SCSI之后产生的协议叫做FCP。ISCSI指用IP网络来承载SCSI之后产生的协议。SAN与FCP和ISCSI的关系,就是网络与协议的关系。数据在SAN网络内传输时使用的多种协议中包含了FCP和ISCSI协议。
  • SAN与NAS的关系:NAS指一种设备,SAN或者说SA指的是一种网络和这个网络区域内的各种元素,NAS当然也属于存储区域中的元素,所以NAS属于SAN。

乱七八糟的Free:

  • LAN-Free:
        这个词根本不应该存在。
        关于他的由来,是起源于备份领域的一种技术。一般在某个企业网络系统内,客户端与服务器是使用以太网络进行数据通信的,而传统的备份系统中,备份服务器和介质服务器也需要使用以太网络与需要备份的服务器进行通信,将服务器上需要备份的数据通过同一个以太网络传输到介质服务器上从而写入介质保存。由于客户端与服务器通信的以太网络的繁忙程度直接关系到客户端的响应速度,本来对延迟就比较敏感。而备份数据流也通过同一个以太网进行传输,只能是火上浇油。那位说了,以太网交换机目前这么便宜,再买一个,服务器上再加个网卡,专门用于备份数据流的传输,井水不犯河水,客户端以太网不就是Free了么,不就行了么?是啊,所以说“LAN-Free”这个词真的让人摸不着头脑了。为什么这么说呢?上文说过,很多人都直接用LAN来指代客户端与服务器通信的前端以太网,或者不管前端还是后端,就指以太网。这样的话,刚才那个例子,再用一个单独出来的以太网专用作备份数据流的话,这样到底叫不叫LAN-Free了呢?如果说,“LAN-Free”中的“LAN”仅指代前端以太网而不是备份专用以太网的话, 那么上面的方法就是LAN-free;但是如果这个LAN指的是以太网的话,那么上面的方法依然用到了以太网,就不是LAN-Free。到底是不是呢?乱了。再说了,LAN本来的意思是局域网,即本地网络,不管你再怎么折腾,只要还在本地备份,那么都属于LAN之内,那么就不是所谓“LAN-Free”。彻底乱了。所以说,这个词根本不应该存在。哪个词更能表达这种不消耗前端客户端网络的备份方式呢?鄙人发明的一个词叫做“Frontend-Free”。
  • Frontend-Free:前端网络Free,即不管你怎么折腾,只要不耗费前端网络资源,管你再用一台以太网交换机也好,或者直接使用FC网络来存取备份的数据也好,都是Frontend-Free。这不就解决了么?

笔者在做一些方案或者写一些文章的时候,都会时刻注意这些词的应用,力求清晰严谨。

(2个打分, 平均:3.00 / 5)

雁过留声

“浅谈存储网络拓扑若干概念”有18个回复

  1. 陈怀临 于 2011-01-05 7:06 上午

    冬瓜头,你以后把文章编辑编辑。我每次都花不少时间替你打工,你忍心呀?我的时间还是很贵的。。。

  2. 冬瓜头 于 2011-01-05 4:02 下午

    感谢首席啊!实在过意不去,已经编辑了,后续发文定当注意!

  3. droplet 于 2011-01-05 8:55 下午

    live writer不能更新弯曲,报权限错误,老问题没有新答案,把大家的权限都升级成和杰夫一样的,看看行不行?

  4. 陈怀临 于 2011-01-05 9:12 下午

    droplet,我请教你一个问题: 在网络系统或者芯片设计的时候,Queue设计与相应的Memory系统的关系。。。如果答不上来,请加班,或者去买豆腐。。。:-)

  5. droplet 于 2011-01-05 10:10 下午

    芯片不懂,但是对于软件来说,queue有两个目的,
    1)包缓存,暂时不能处理的包要放到queue里面
    2)连接或者分离不同的处理过程,比如收发,处理,排序等等。
    对于芯片里面用queue,应该也是这个道理吧。

  6. aaa 于 2011-01-06 2:14 上午

    队列查找速度越快,占用空间越小是软硬件队列设计的指导方向,附加便于表项增减。说完了我就自动去卖豆腐。

  7. 冬瓜头 于 2011-01-06 2:25 上午

    太底层了不懂,我只知道形象比喻:cache是大海,buffer是水洼,queue是水渠。

  8. 戴小鼠 于 2011-01-06 2:58 上午

    冬瓜老大,纠正一个错误哦。不是fibre channel,是fiber channel哦

  9. 冬瓜头 于 2011-01-06 4:42 上午

    To 戴小鼠:

    确实是Fibre Channel,fiber channel只是模糊叫法了。曾经真遇到过某客户问,光纤盘阵里面真的全是走光的么?可见误导程度有多深。

  10. processor 于 2011-01-06 7:24 上午

    To 冬瓜头:

    能否说说各类存储系统中的关键芯片,其架构(micro-architecture)、功能。比如EMC系统中有哪些关键的ASIC?Adaptec的scsi卡的ASIC的架构。

  11. 冬瓜头 于 2011-01-06 8:03 上午

    To Processor:
    好的,知无不言,言无不尽!献丑了。太累了,晚上看了一晚上文章,临睡觉了发现被人出了个命题作文。。。

    我就头讲起吧。首先硬盘上的芯片就不说了,大家都知道,micro controller,dsp等。一个硬盘扩展柜中的所有磁盘都被连接到一个芯片中,这个芯片位于扩展柜的控制板中,早期产品用PBC芯片,最经典的就是Lattice的7147。PBC也就是port bypass circuit,完全的FCAL环逻辑,后来发展为sbod,switched box of disks,其实就是芯片变了,也就是底层变为点对点直达物理布线,而上层协议逻辑依然还是FCAL,只不过仲裁的时候再也不用手拉手传递了,直接由控制器独裁,指哪打哪!这类芯片包括PMC8738,LSI的等,PMC公司称这种sbod芯片为cut through switch(CTS),有些方案则混用PBC和CTS,CTS接磁盘,扩展柜之间则使用PBC串联,以上是FC方案。SAS方案就痛快了,全是SAS Expander,SAS交换芯片,没啥好说的,芯片之间采用4PHY宽端口一般。另外扩展柜控制板上还有其他ASIC,比如用来控制整个扩展柜的中控芯片,包括SES(scsi enclosure service)逻辑处理,探测各路sensor并用SES上报,再就是rom和ram芯片了,一般中控asic里就集成了ROM。ram则一般外置,比如128MB单片。控制板上还有PHY,这个就不说了,大家比我懂。再往上就是HBA上的芯片了,PHY,不说了。再就是IOP(IO processor)或者SOC(system on chip)等等,负责处理核心协议逻辑,比如FCP,SAS等。再往上,就是控制器主板上的特殊芯片了,cpu等不说了。往往一些厂商为了体现差异化,搞一块asic那是倍有面子!比如3PAR的号称thin built-in的Gen3 ASIC,HDS在AMS2k上使用的ASIC,IBM的DS5k(O的LSI的)上所用的ASIC,HDS高端存储中的ASIC。无非就是加速数据处理。 至于ASIC其内部架构,这个我就不在行了,我对ASIC仅理解到它使用VDHI语言把逻辑灌到电路中的,各位,向大家学习,谁知道请指教了。

  12. symantec 于 2011-01-07 10:09 下午

    ASIC和一般芯片的区别是啥?

    考你的,冬瓜头…

  13. aaa 于 2011-01-08 1:27 上午

    回droplet,我的浅见
    芯片不懂,但是对于软件来说,queue有两个目的,
    1)包缓存,暂时不能处理的包要放到queue里面
    包没有放在queue里面,包还是放在dram里面的,只是包的link list pointer放在queue里面
    2)连接或者分离不同的处理过程,比如收发,处理,排序等等。
    我个人觉得queue就是为了做调度和做shaper/plolicer

  14. droplet 于 2011-01-09 5:59 上午

    queue里面放的是packet descriptor,这个没错。queue最基本的操作,enqueue/dequeue,shaper和policer只是dequeue的一个策略,比如shaper就有很多种策略。enqueue也有策略,比如RED等。至于queue是link list还是其他,并不影响上层的使用方法。

  15. processor 于 2011-01-10 6:32 上午

    to 冬瓜头:多谢。

  16. 冬瓜头 于 2011-01-10 5:03 下午

    吾朝吾皇万岁,终于又解禁了。这几天好像被ban了。。

    ASIC与普通芯片区别,不知道何谓“普通芯片”?如果普通芯片是说PHY的话,那么我认为asic与phy的区别就是asic里面固化有更加上层的逻辑而已。

    cache是大海,buffer像水湾,queue则是管道了。管道里是永远都在流动的,也就是enqueue/dequeue。肤浅理解,请指正

  17. dongbinghua 于 2011-10-04 8:17 上午

    有道词典:fiber=fibre

    ASIC 属于 一般芯片 的一种吧?

  18. Lucien 于 2011-10-07 7:18 上午

    在network ASIC里面,一般需要在三个地方需要memory:ingress,bridge和egress。在这些地方,有两个应用必须用queue来实现:QOS和over-subscript。对于老的交换机,bridge不做QOS,所以没有queue;新的交换机,由于需要VOQ,bridge的memory也由queue实现。ingress和egress必须实现QOS,也就是需要queue。

    总之,现在的network ASIC,除了小的buffer们,其他的大块memory/buffer做成queue。