利用Cisco MDS 9500建立高可用性存储网络

    简介


    在当今的企业环境中,高可用性已经变成了必须达到的指标。随着数据增长速度的持续提高,数据可用性的重要性也不断升级。而随着企业和应用的增长,相关的数据中心基础设施也必须随之扩展。由互联网引发的向全球经济的转移已经使正常运作从8×5模式转向了24×7模式。在这种“全天候”运作模式中,对高可用性的要求越来越高。为保持企业正常运作,作为公司最重要的资源的数据必须随时可用。不仅丢失数据会带来灾难性后果,中断数据访问也会使企业造成重要损失。


    99%的正常运行时间看似很高,但这种“高度可用的”环境仍然意味着每年有83小时以上的停运。无论是哪种规模的企业,都将遭受严重影响。为设计高度可用的解决方案时,必须考虑停机的成本。对于金融经纪公司而言,99%的正常运行时间意味着每年将会损失5.4亿美元的收入。

























 


每小时成本


金融经纪


$6.5MM


信用卡授权


$2.6MM


家庭购物


$0.1MM


目录销售


$0.09MM


飞机预定


$0.09MM


电话售票


$0.07MM























可用性


停运时间(分钟/年)


99.999%


5


99.99%


50


99.9%


500


99%


5000


90%


50000


    资料来源:光纤通道行业协会1;Horison公司。


    如果正常运作时间能提高到99.999%,收入损失就可以缩减到每年540,000美元。


    1. “灾难来临时的业务连续性”,光纤通道行业协会,http://www.fibrechannel.com/technology/index.master.html。


    但是,实现99.999%的正常运作绝非易事,其中高度可用的存储基础设施是实现高数据可用性的核心,包括独立磁盘冗余阵列(RAID)技术、在一个集群系统上保存多份数据、远程集群、存储局域网(SAN)和可靠磁带备份等。值得注意的是,SAN体系结构支持的企业级高可用性配置不但能随着企业的发展而扩展,还能保护企业的数据存储投资。设计高度可用的SAN时需要考虑的因素包括:




  • 人工错误可能造成的影响及预防方法


  • 环境问题(例如供电中断、空调故障等)


  • 基础设施设备的软件故障(交换机等)


  • 计划内停机(软件升级、硬件维护)


  • 黑客带来的威胁


  • 基础设施设备的硬件故障(交换机等)

    其中的某些事件,例如硬件故障和断电等,可以通过设计加固予以解决。但是,人工错误等问题则无法通过设计有效解决。


    存储正常运行时间对整个机构能否实现提高可用性至关重要。每位员工都必须通过应用服务器或者直接从工作站访问存储才能制订关键业务决策。如果存储可用性出现问题,整个机构的运作都会受到影响。


    为避免这种问题,必须实现最高的正常运行时间,才能限制或消除对业务运行的影响。


    图1


    企业的高可用性优先顺序




    设计高可用性解决方案


    设计高度可用的存储环境时,必须采用端到端方法,即只考虑存储解决方案组件是不够的,必须考虑以下所有组件:


    存储子系统


    设计高度可用的解决方案时,必须考虑存储子系统的以下三个方面:


    数据保护




  • 冗余高速缓存—-几乎所有存储子系统都采用了某种类型的前端高速缓存。高速缓存能通过写操作高速缓存改善直接磁盘写操作引起的延迟,大大缩短子系统的响应时间。当应用服务器发出写命令时,存储子系统将把数据写入高速缓存,然后通知应用服务器写操作已完成。其后,数据将在方便的时间写入物理磁盘。为进一步提高可用性,许多子系统都提供前端高速缓存镜像。这样,即使高速缓存出现故障,数据也不会丢失。


  • RAID—-几乎所有子系统都利用廉价磁盘冗余阵列(RAID)提高数据可用性,实现数据保护,并加快访问速度。RAID包括简单的RAID 1(将数据映射到两块或多块磁盘),也包括利用了数据奇偶计算和高级块操作的RAID 5。尽管RAID 1和RAID 5技术提供的保护和性能不相同,但都能在磁盘发生故障时提高数据的可用性。


  • 数据复制—-存储复制的目的是防止整个子系统出现故障。虽然复制一般都以异步方式在较远的距离上执行,但这种方式不属于本文的讨论范围。同步存储复制不但能保证本地数据中心内的数据可用性,还能减小对重要应用的影响。这种复制可以由存储子系统执行,也可以通过基于主机的外部应用执行。无论采用哪种方法,都需要建立两个独立的存储子系统,而且每个系统都拥有一份相同数据的实时备份。

    图2


    同步数据复制模型




    子系统连接


    存储连接与存储本身的完整性同样重要。如果应用无法访问其存储,就无法正常工作。因此,存储子系统供应存储的方式对整个存储高可用性解决方案非常重要。




  • 冗余接口—-为实现真正的高可用性,必须采用冗余连接。磁盘逻辑单元必须通过存储子系统上的多个接口输出,这样不但可建立主机级多路径,还能从磁盘子系统本身增强两条物理连接的冗余性。

    图3


    能实现高可用性的冗余磁盘子系统接口




    子系统硬件冗余性




  • 电源冗余性—-电力是存储子系统的关键,多数存储子系统都提供双电源。另外,带有前端高速缓存的多数子系统一般都为高速缓存提供备用电池。某些子系统使用小电池,只为高速缓存提供几天的电力;某些子系统使用大电池,以便延长整个系统的运行时间,直至将高速缓存中的数据全部写入磁盘。


  • 热磁盘备用切换—-多数存储子系统都提供备用物理磁盘,但提供的数量不等。只有在磁盘出现故障或突然失效时,才会使用备用磁盘。子系统能够持续监控每个物理硬盘的运行状态。一旦发生错误迹象,就会将该磁盘上的数据复制到热备用磁盘上。另外,由于存储子系统中一般都使用了RAID,因此,当RADI磁盘组突然失效时,也可以使用热备用磁盘重新建立主机数据。无论是哪种情况,子系统都能完全恢复,并且不中断数据访问。

    存储网络


    提供主机与存储之间的连接的网络或矩阵也是整个高可用性解决方案中的重要一环。为保证设计中不出现单故障点,最好使用最佳实践。这种设计实践还有利于采用合理的冗余性,因为过度冗余将延长故障恢复时间。


    存储网络硬件




  • 交换机硬件—-与组成存储解决方案的所有其它组件相似,光纤通道交换机中的硬件也必须配备冗余硬件。在交换机产品系列中,硬件冗余性一般仅限于双电源,但这只能解决断电问题,而不能解决其它交换机组件失效问题。导向器级光纤通道交换机提高了存储网络的可用性,不但支持冗余电源,还为所有其它主机组件配备了冗余组件。控制模块负责提供恢复功能,交叉矩阵也嵌入在了冗余配置中。另外,软件升级必须不间断执行。因此,导向器级硬件能够使系统实现真正99.999%的正常运行时间。

    存储网络设计




  • 网络冗余性—-在光纤通道SAN中,需要关注的另一个方面是矩阵本身。与同一物理基础设施相连的所有设备都位于同一个光纤通道矩阵中,这使得SAN有可能受到矩阵级事件的影响,并波及到网络上的所有设备。添加交换机或修改分区配置等操作都有可能影响到整个矩阵。因此,设计多个分立、相连的矩阵有助于隔离这些事件的影响范围。思科的虚拟SAN(VSAN)功能能够利用同一个物理基础设施复制这种环境,例如事件隔离。关于VSAN,我们将在本文的后面详细讨论。

    图4


    设计采用隔离矩阵的SAN





  • 交换机间链路(ISL—-随着SAN的增长,交换机之间的连接将变得越来越重要。如果仅在交换机之间使用一条物理链路,将降低整体设计的冗余性。当链路中断时,冗余ISL能够提供故障恢复功能。

    应用主机


    主机总线适配器(HBA)是应用服务器与SAN之间的接口。与网卡相似,它们也可以插入到服务器中的总线插槽中。虽然多数服务器产生的输入/输出(I/O)都不会对一条光纤通道链路形成压力,但高可用性(HA)环境仍然要求双HBA。两个或多个HBA能够提供多条存储路径,以便在一个HBA发生故障时实现故障恢复,平时则在HBA之间平衡负载。这种“多路径”可以用多种方式实现,提高HBA可用性的途径包括:




  • 子系统软件—-多数大存储子系统提供商都已经开发了多路径软件,以便执行负载平衡和HBA故障恢复,例如EMC开发的PowerPath。这些产品一般都针对厂商的子系统开发,如果与厂商自己开发的子系统一起使用,能够提供增强操作模式。


  • 卷管理软件—-某些基于主机的卷管理应用支持多路径,例如Veritas开发的Dynamic Multipathing(DMP),这种解决方案并不针对具体的子系统厂商。


  • HBA驱动程序—-某些HBA厂商正在主机的HBA驱动程序中提供多路径特性,尽管这种解决方案只适用于某些HBA厂商或者某些HBA型号,但并不针对具体的存储厂商。


  • 操作系统—-几种操作系统(OS)现在支持操作系统本身的多路径特性,以便使多路径特性同时脱离存储子系统和HBA。

    提高存储网络的可用性


    Cisco MDS 9500系列多层导向器提供很多硬件和软件特性,能够支持光纤通道网络内的高级可用性。


    硬件特性


    下面介绍Cisco MDS 9500系列多层导向器中高可用性涉及的硬件特性。


    交换管理引擎模块


    Cisco MDS 9500系列多层导向器允许在一个机箱中安装两个交换管理引擎模块,以实现冗余性。每个模块都包含控制引擎和交换矩阵。控制引擎是负责管理整个系统的中央处理器。另外,控制引擎还参与所有网络控制协议,包括所有光纤通道服务。在冗余系统中,两个控制引擎以主用/备用模式操作,其中一个控制引擎一直作为主用控制引擎。备用控制引擎处于状态化等待模式,所有主机管理和控制协议都与主用控制引擎保持同步。尽管备用控制引擎并不真正管理交换机,但仍然从主用控制引擎连续接收信息,以便在两台控制引擎中同时保留交换机的状态信息。一旦主用控制引擎发生故障,备用控制引擎将能够无缝接管主用控制引擎的所有任务。


    交换矩阵是系统的交换引擎,即系统内所有端口之间的高速交换路径矩阵。交换矩阵嵌入在每个交换管理引擎模块中,如果冗余系统中配备了两个交换管理引擎模块,也就配备了两个交换矩阵。两个交换矩阵以负载共担主用?主用模式操作。每个交换矩阵都总共拥有720Gbps的交换容量,并为每个插槽提供80Gbps带宽。由于Cisco MDS 9500系列的每个交换模块不消耗为交换矩阵提供的80Gbps带宽,因此,即使只有一个交换管理引擎模块,系统也能全性能运作。在满负荷Cisco MDS 9500系列导向器中,即使其中某一交换管理引擎模块出现了故障,或者卸掉了一个交换管理引擎模块,系统性能也不会有任何下降。


    交换管理引擎模块属于可热插拔模块。在双交换管理引擎模块系统中,模块的插拔和更换不会对系统其它部分造成任何影响。


    图5


    Cisco MDS 9500系列交换系统



    电源


    Cisco MDS 9500系列多层导向器支持双冗余电源。电源以主用?主用配置操作,但相互独立运行。当一个电源发生故障时,另一个电源足以为整个系统供电。每个电源都是可热插拔的。由于一个电源就能为整个系统供电,因而能够热更换故障电源。


    系统风扇


    Cisco MDS 9500系列多层导向器使用一个风扇为整个系统制冷。虽然看似属于非冗余组件,但组件内部采用的是N+1冗余配置。风扇组中的每个风扇都单独监控。如果某个风扇发生了故障,系统将及时向最终用户通报情况。事实上,即使有多个风扇出现故障,系统运行也不受影响。在正常的操作环境下,系统允许四个风扇同时停转。整个风扇组件是可热插拔的,系统可以在不安装风扇组件的情况下连续工作30分钟,因此,管理员完全可以在保持系统正常操作的情况下更换风扇。


    软件特性


    与只依赖硬件冗余性提高可用性的传统光纤通道交换机不同,Cisco MDS 9500系列提供一组强大的硬件特性,能够大大增强典型存储网络中的硬件冗余性。


    不间断软件升级


    每年,计划内停机时间都占设备总停机时间的很大比例。计划内停机的首要原因是对网络设备中的软件进行升级,例如修复软件缺陷,或者添加新功能。但是,无论出于何种原因,计划内停机都将对业务运行造成影响。作为导向器级光纤通道交换机的重要特性之一,交换机必须能够在不影响SAN上流量正常传输的情况下加载和激活交换机上的新软件。


    Cisco MDS 9500系列多层导向器能够在不影响交换机上流量的前提下随时升级交换管理引擎模块和交换模块上的软件。在升级过程中,用户可以选择同时升级两个交换管理引擎,或者只升级主用交换管理引擎,即让主用交换管理引擎运行新版本,而让备用交换管理引擎运行老版本。如果新版本出现错误,可以立即恢复到运行老版本的备用交换管理引擎。这种方式既能提高软件升级的灵活性,又能立即返回原来的稳定软件版本。


    内部流程重启


    Cisco MDS 9500系列的另一个独特功能是失败软件流程重新启动。交换管理引擎模块能够持续监控所有软件流程。如果流程失败,交换管理引擎可以在不影响交换机内流量流动的情况下重新启动该流程。这个特性能够提高可靠性,因为如果流程能够重新启动,将不需要对交换管理引擎执行故障恢复。如果流程不能重新启动,或者重新启动后仍然无法正常执行,主用交换管理引擎模块将切换到备用交换管理引擎模块。


    VSAN


    目前,许多SAN设计者都因各种理由而建立了独立的存储网络。在本文中,独立存储网络指物理上完全隔离、用于将主机与存储相连的交换机或交换机组。某些常见的理由包括:




  • 高可用性—-企业最常采用的方法是建立多个并行矩阵,然后将主机和磁盘放置到这些物理隔离的并列矩阵中。一般情况下,实施隔离的主要原因是将名称服务等网络服务限制在单个矩阵内。这样,当某个矩阵中的服务失败时,将不会影响到其它并行矩阵。因此,并行矩阵能够提供从主机到磁盘的隔离路径。


  • 应用和备用网络—-许多客户至少为其存储网络环境建立了两个物理隔离网络,以便让一个网络支持应用主机,另一个网络支持备份环境。利用这种方法,可以有效地将备份流量与主应用流量隔离开。


  • 部门网络—-许多客户都为部门应用建立了独立的存储网络环境,即为每个部门的应用建立相对较小的独立网络。


  • 同类操作系统网络—-某些客户为装有不同操作系统的不同主机分别建立了独立的网络。由于某些操作系统采用特殊方法识别和使用存储,因此,许多客户都通过独立网络隔离不同环境,例如Sun Solaris网络和Windows NT/2K网络。

    虽然这些建立独立网络的这些原因都很合理,但却十分浪费。添加网络不但意味着添置硬件,增加资本投入,还意味着硬件利用率的降低。


    为了既能实现环境的隔离,又能缩减建立物理分割网络的成本,思科在Cisco MDS 9000系列中开发了虚拟SAN(VSAN)。VSAN能够在同一个物理基础设施之上建立多个独立的虚拟网络。利用ISL链路上基于硬件的帧标记功能,每个独立的虚拟网络将相互隔离。EISL链路是增强型ISL链路,它包括每个帧的附加标记信息,已经在连接任何Cisco MDS 9000系列交换机产品的链路上得到了支持。VSAN的成员关系根据物理端口而定,任何物理端口都不能同时属于多个VSAN。因此,与物理端口相连的任何节点都将成为该端口隶属的VSAN的成员。


    VSAN能够为用户提供极高的灵活性。例如,在Cisco MDS 9000系列产品中,每个物理基础设施能够支持1024个VSAN。每个VSAN都可以添加或者从EISL(增强型ISL)_Link中删除,以便控制VSAN的范围。另外,为根据每个VSAN的状态,还配备了特殊的流量计数器。


    VSAN最大的特点是能够提高可用性。VSAN不但能提供严格的硬件隔离,还能为每个新VSAN建立一套复制的光纤通道服务。因此,建立新VSAN时,将同时为支持新VSAN的交换机创建并激活完全隔离的一组服务,包括名称服务器、分区服务器、域名控制器、别名服务器和登录服务器。这组服务副本能够建立相互隔离的环境,解决同一个物理基础设施上的高可用性问题。例如,在VSAN 1中安装主分区集不会对VSAN 2中的操作构成任何影响。


    另外,利用VSAN还可以通过长途基础设施将远程数据中心里的隔离网络连接在一起。由于帧标记在硬件中执行,并包含在每个EISL帧中,因而可以通过多种介质传输,例如密集波分多路复用(DWDM)或粗波分多路复用(CWDM)等。因此,来自多个VSAN的流量可以通过同一对光纤多路传输,不但增加了传输距离,还能保持完全隔离。由于VSAN能够利用通用冗余物理基础设施建立灵活的隔离矩阵,因而大大提高了可扩展性,并最终实现了高可用性目标。


    图6


    利用VSAN降低SAN复杂性



    ISL PortChannel


    随着光纤通道矩阵的增大,越来越多的交换机都必须满足端口数量要求。ISL支持交换机之间的连接。与SAN中的所有其它连接相似,这些连接也必须采用冗余配置。利用思科的PortChannel技术,可以将16条独立物理链路整合成两台交换机之间的一条逻辑ISL链路。这种方式不但能建立完全永续的逻辑链路,还能在两台交换机之间提供32Gbps的带宽。思科PortChannel技术的主要优点是,捆绑式物理链路可以位于交换机任何交换模块的任何端口上。将物理链路分布在多个交换模块之后,不但能为链路故障提供保护(例如电缆断裂和光纤瑕疵),还能防止交换模块失效。


    图7


    Cisco MDS 9500系列中的端口通道




    Cisco MDS 9500系列多层导向器在PortChannel上支持两种负载平衡算法。第一种算法先查看帧的源和目标FC_ID,再进入PortChannel,然后通过源和目标FC_ID在帧内创建硬件分区,作为这些流量应该在虚拟链路中采用哪条物理链路的索引。来自这个源?目标FC_ID对的流量将一直使用同一条链路传输。其它源?目标FC_ID组合将制订独立链路决策,有可能通过或者不通过同一条链路传输。从目标到源的流量不必要通过同一条物理链路传输,因为目标方交换机也在对链路流量执行独立决策。


    Cisco MDS 9500系列中的第二种算法是根据源?目标FC_ID以及操作的Exchange_ID(OX_ID,RX_ID)平衡负载。每次执行操作时,都使用一个新的Exchange_ID,并制订新的物理链路决策。即使在相同的源节点与目标节点之间,这种方法也能大大提高整个PortChannel的效率。利用这种算法,来自相同源节点和目标节点的交换可以沿PortChannel链路分布,且仍然能够保持任何一次交换中所有帧的顺序。


    基于角色的安全性


    安全性一般不与高可用性一起考虑。但是,人工错误是引起停机的主要原因之一。用户可能没有意识到某项命令的结果就错误地了执行了这个命令。Cisco MDS 9000系列多层导向器和矩阵交换机支持基于角色的安全方法,以保证只有合法个人才能访问网络内的主要功能。管理员将为每个用户指定一个角色,用group_ID表示,用以说明在网络内的特定访问权限。这种访问权限规定了可以执行的命令,即某个权限可以访问命令行界面(CLI)命令解析器树的哪些节点。例如,管理员可以规定一个称为“no_debug”的角色,这个角色可以执行debug命令以外的任何命令。这种许可系统可以精确地解析器树中的第2个级别,因此,管理员甚至可以规定一个称为“no_debug_fspf”的角色,这个角色允许用户执行任何系统命令,包括debug命令,但FSPF debug命令除外。角色可以利用CLI命令在交换机内规定和分配。为简化管理,还可以在Radius服务器中集中分配角色。系统提供两个默认角色,称为网络管理员(完全访问)和网络操作员(只读访问)。用户最多可以规定64个具体角色。只有担当网络管理员角色的用户才能创建新角色。


    图8


    Cisco MDS 9500系列基于角色的访问特性




    总结


    存储网络中的停机将对整个商业基础设施造成巨大影响,使企业每年蒙受数百万美元的损失。通过设计高度灵活的强大存储局域网,可以显著缩短甚至消除停机时间。Cisco MDS 9500系列多层导向器提供硬件冗余性和可靠性,能够实现99.999%的硬件正常运行时间。除硬件冗余性外,Cisco MDS 9500系列还提供永续性极高的软件,能够利用全新的高可用性特性集消除存储网络中的停机情况。