用户对SAN交换机间链路(ISL) 协议的正确理解有助于避免由于不合理配置造成的性能影响。ISL在SAN拓扑中有几种表现形式,正确部署对于用户的SAN应用极其重要。
首先,我们要了解SAN中物理数据链路和这些链路上数据流向之间的区别,这是非常重要的。光纤协议是一个全双工协议,我们可以理解为一发一收,也可以理解为在发送链路上写数据,在接收链路上读数据。然而,对于ISL来说,其中一个交换机的接收链路是另外一个交换机的发送链路,无论是接收还是发送,我们都可以看作是交换机之间两个物理链路中同样的数据流。比如,一条物理链路允许数据从交换机X到交换机Y,另一条物理链路允许数据从交换机Y到交换机X,所以不管是收或是发,我们可以认为是一条物理链路A和一条物理链路B。
服务器可以从存储设备中读取数据或将数据写入存储设备。读数据和写数据都是数据流,我们通常认为读数据流占用一条物理链路,而写数据流通过另外一条物理链路。事实上,任何数据流可以通过任何一条物理链路进行传输。
标准与网络ISL
ISL有两种表现形式,第一种称作标准ISL。这种形式的ISL将不同的数据流完全隔离至单独的链路上。比如,当一个服务器向存储设备写入数据,写数据流只占用链路A而决不会占用链路B。相反,当一个服务器从存储设备读取数据,读数据流只占用链路B。不论有多少服务器或存储设备连接到SAN都会是这样。读数据流和写数据流决不会占用相同的物理链路。图1所示为一个标准ISL。
注意,如果有50台服务器,其中49台正向存储设备写数据,第50台服务器是从存储设备上读取数据,那么正在读取数据的服务器将不会受任何干扰。被49台服务器所占用的链路将会是一个瓶颈,而被第50台服务器占用的链路将会提供全部带宽给服务器。
第二种ISL表现形式称为网络ISL。这种表现形式下,读数据流和写数据流都在同一条物理链路上进行。(如图2)
如果服务器1向存储B写数据,服务器2从存储A上读数据,两个数据流将通过ISL2中同一条物理链路。ISL1和ISL3是标准ISL,ISL2就是一个网络ISL。这时,如果有49台主机连接到交换机A,并且它们都向存储B写数据,交换机B和交换机C之间的物理链路将变得拥塞,从而影响服务器2从存储A读取数据。
对于网络ISL,读和写的数据流可以共享相同的物理链路。相对的,读和写的数据流也显著地影响着彼此的性能。如果一个物理链路变得饱和,很难确定是因何而起。如图2中,假定服务器1和2每个需要链路带宽的60%,ISL1和ISL3可以轻松满足需求,而ISL2将会变得拥塞。这时去检查HBA和存储设备的端口使用情况,会发现没有一个端口繁忙到可以产生影响性能的问题。除非对SAN中数据流向状况知道得很详细,否则将很难查找出问题所在。
网络ISL同样使得判断物理链路何时变拥塞成为一个难题。用户必须考虑数据流的两种形式,而不仅仅是在单物理链路上的单一数据流。对于标准ISL,用户能测定写数据的链路峰值,通过提供足够的ISL来阻止饱和的发生;对于拥塞ISL,用户需要将读数据流的因素也考虑进去。不仅仅是写数据的峰值时刻,而是一整天内读写数据之和的峰值。假定写数据流的峰值在上午9点占据带宽的80%,读数据在这个时间点占用带宽不到10%,则没有任何问题。然而如果写数据在下午2点占用50%的带宽,读数据占用60%,那就会出现问题。
ISL对SAN拓扑的影响
SAN拓扑有三种基本类型:扁平、全网和核心-边缘。扁平拓扑结构没有ISL,它是一个或多个交换机连接不同的服务器和存储设备,服务器仅仅能访问和它连接到同一交换机的存储设备。没有any-to-any(任何点到任何点)的连接方式。
全网拓扑将扁平拓扑里的交换机用ISL彼此连接以提供any-to-any的连接方式。这种情况通常是连接到这个交换机的存储设备已满,但是连接到另外一台交换机的存储还可以利用。ISL提供了any-to-any的连接,因此不需要再购买新的存储设备。
如果将服务器和它经常要访问的存储设备通过同一个交换机相连,就会使网状拓扑获得更好的性能。在这种情况下,减小了交换机之间的流量,从而降低了ISL延迟。ISL仅仅用来在必要时提供any-to-any的连接。它们也可用来共享资源,比如磁带机。
级联交换机延迟是很小的,小于2微秒。对于99.9%的应用来说,这不是一个问题。但是对于那些不能容忍这样延迟的应用,最好还是使用扁平化拓扑结构。
核心-边缘是一个层次化拓扑结构,核心交换机连接所有的存储资源。它也可以连接磁带机、磁带介质服务器和第一层服务器。第一层服务器可以是对ISL延迟敏感的服务器。出于性能和可用性的考虑,核心-边缘拓扑中核心交换机通常采用导向器。
连接服务器的边缘交换机可以是导向器级的交换机或是普通交换机。有几个因素可以帮助用户决定在边缘使用什么样的交换机。这些边缘交换机通过ISL连接到核心交换机,而彼此之间不连接。核心-边缘拓扑的优点是使用标准ISL模式,这是一种非常容易扩展的拓扑结构。可以很方便地增加存储设备、服务器和交换机设备。它使用较少的ISL,比网状拓扑成本更低。
与边缘交换机相连的所有服务器通过核心交换机可以访问所有的存储设备。如果你需要增加新的存储阵列,可将其连接在核心交换机上。这样避免了选择将其具体与哪个交换机相连的难题。新增的服务器可以连接到边缘交换机上,这样所有的ISL使用方式都是普通ISL模式。如果边缘交换机的所有端口都被使用着,管理员可以连接新的边缘交换机到核心交换机,而这不会引起业务中断。等到核心交换端口用完的那时候,从SAN的发展史可以看出,厂商将会发布拥有更多端口的导向器级交换机。
将当前的核心交换机更换成一个更多端口的交换机流程是非常简单的,同时还可以将老的核心交换机迁移到边缘。如果你对端口的需求超过了新产品发布的速度,或者你不想迁移原有核心交换机,你也可以很轻松地增加第二台核心交换机到原有的架构中。
对于服务器和存储设备都部署在同一交换机上的情况,如果实际没有使用ISL,网状拓扑结构的唯一优势就是没有ISL延迟。但是随着需求的增长,这些优势将消失。一旦开始使用ISL,也就不再具有ISL无延迟的优势了。对于网络ISL方式,不能只考虑一点或者根本不考虑设备的连接关系,而需要仔细设计如何将设备连接到端口。相反,一个适当的核心-边缘设计能确保最小的ISL延迟和ISL失效,同时具备不间断的扩展性去满足主机数量和存储容量的增长。