在逻辑交换机之间使用链路聚合技术,无需部署STP、VRRP实现高可靠性

实现高可靠性的同时设备之间的链路可以同时传输流量,链路利用率得以提升






堆叠系统组建过程
物理链接:选择适当的连接方式和连接拓扑,组建堆叠网络
主机交换选举:成员交换机之间相互发送堆叠竞争报文,并根据选举原则,选出堆叠系统主交换机
堆叠链接拓扑


主交换机选举
确定出堆叠的连接方式和连接拓扑,完成成员交换机之间的物理连接之后,所有成员交换机上电,此时,堆叠系统开始进行主交换机的选举
首选,运行状态比较,已经运行的交换机比处于启动状态的交换机优先竞争为主交换机,堆叠主交换机选举超时时间为20S,堆叠成员交换机上电或重启时,由于不同成员交换机所需要的启动时间可能差异比较大,因此不是所有成员交换机都有机会参与主交换机的第一次选举
堆叠优先级高的交换机优先竞争为主交换机
堆叠优先级相同时,MAC地址小的交换机优先竞争为主交换机
堆叠系统的配置文件包括:
管理员拆除堆叠线缆


单机堆叠:单机堆叠就是一台交换机使用了堆叠功能,整个堆叠系统中只有一台主交换机,只有使用了堆叠功能的交换机才可以加入堆叠系统或与其他使用了堆叠功能的交换机组建堆叠

堆叠合并过程如下:
两个堆叠系统的主交换机通过竞争,选举出一个更优的作为新堆叠系统的主交换机
竞争成功的主交换机所在的堆叠系统将保持原有主备从角色和配置不变,业务也不会受到影响
而另一个堆叠系统的所有成员交换机将重新启动,以从交换机的角色加入新堆叠系统,其他堆叠ID将由新主交换机重新分配,并将同步新主交换机的配置文件和系统软件,该堆叠系统的原有业务也将中断
堆叠分裂
堆叠分裂是指稳定运行的堆叠系统中带电移出部分成员交换机,或者堆叠线缆多点故障导致一个堆叠系统变成多个堆叠系统

堆叠分裂引起的问题
由于堆叠吸引中所有成员交换机都使用同一个IP地址(VLAN接口地址)和MAC地址(堆叠系统MAC地址),一个堆叠系统分裂后,可能产生多个具有相同IP地址和MAC地址的堆叠系统,从而引起网络故障,为此必须进行IP地址和MAC地址的冲突检查

当堆叠系统的MAC地址是主交换机的MAC地址,主交换机故障或者离开堆叠系统,在默认情况下堆叠系统MAC地址会延时10分钟切换,即在10分钟内两个分裂的堆叠系统的MAC地址相同。
分裂后的堆叠系统通过MAD检测线缆(普通线缆,手动配置为MAD检测线缆)发送MAD检测报文进行竞选,竞选失败的堆叠系统会关闭所有的物理端口(手动配置端口保留端口除外)以保证不会因为IP、MA地址冲突对业务产生影响

MAD检测---代理检测
代理检测方式是在堆叠系统eth-trunk上启用代理检测,在代理商启用MAD检测功能,此种检测方式要求堆叠系统中的所有成员交换机都与代理设备连接,并将这些链路加入同一个eth-trunk内,与直连检测方式相比,代理检测方式无需占用额外的接口,eth-trunk接口可同时运行MAD代理检测和其他业务

在代理检测方式中,堆叠系统正常运行时,堆叠成员交换机以30s为周期通过检测链路发送MAD报文。堆叠成员交换机对正常工作状态下收到MAD报文不做任何处理;堆叠分裂后,分裂后的两个堆叠系统以1S为周期通过链路检测发送MAD报文进行多主冲突处理。

,MAC检测过程如下:
堆叠分裂之后,分裂后的堆叠系统存在相同的IP地址、MAC地址(堆叠系统MAC地址),将对导致网络中表项错误,如下游设备的ARP表项、MAC地址表项,从而导致业务异常
为此分裂后的堆叠系统会通过MAD检测线缆进行竞选
竞选失败者关闭自身物理接口,从而不会个竞选成功地堆叠系统产生IP地址、MAC地址冲突
堆叠分裂后,MAD冲突处理机制使用MAD报文进行MAD竞争,竞争结果为堆叠系统处于Detec状态或者Recovery状态:
Detect:竞争成功,堆叠系统将处于正常工作状态
Recovery:竞争失败,堆叠系统将处于禁止状态,关闭除手动配置得保留端口以外的其他所有物理端口

MAD冲突处理(2)
MAD竞争原则与主交换机的竞争原则类
1、优先比较启动时间,启动完成时间早的堆叠系统成为Detect状态,启动完成时间差在20S
内则认为堆叠的启动完成时间相同
2启动完成时间相同时,比较堆叠中主交换机的优先级,优先级高的堆叠系统成为Detcet状态
3优先级相同时,比较堆叠系统MAC,MAC地址小的堆叠系统成为Detect状态
堆叠主备倒换
如果堆叠系统当前的主交换机不是用户期望的,此时用户可以通过配置主备倒换实现将堆叠备交换机升为堆叠主交换机
出了用户通过命令执行的主备倒换之外,主交换机故障重启也会引起主备倒换

堆叠升级
堆叠升级方式有三种:智能升级、传统升级、平滑升级
智能升级:堆叠建立或者新的交换机加入堆叠时回自动和主交换机的版本进行同步
传统升级:和普通设备升级一样,指定下次启动版本,重启整个堆叠系统进行升级,会造成较长时间的业务终端。
平滑升级:将堆叠系统划分为active、backup区域,可以分区域升级,整个堆叠系统上下行采用备份组网,主、备链路分别处于active、backup区域,可以实现升级时的业务不中断。

跨设备链路聚合
堆叠支持跨设备链路聚合技术,堆叠成为逻辑上的一台交换机,支持将eth-trunk的成员接口分布在不同的成员交换机上
当其中一条聚合链路故障或堆叠中某台成员交换机故障时,eth-trunk接口通过堆叠线缆将流量重新分布到其他聚合链路上,实现了链路间和设备间的备份,保证了数据流量的可靠传输。


流量本地优先转发

为了保证流量转发效率、降低堆叠线缆带宽负载,设备可以开启流量本地优先转发,从本设备进入的流量优先从本地转发出去,当本设备无出接口或者出接口全部故障,才会从其他成员交换机的接口转发出去




支持CSS2构架的框式交换机采用转控分离的架构,单框内接口板之间流量、跨框流量无需经过主控板,集群系统内单台框无能够正常工作的主控板不影响该框的流量转发

对于只支持CSS架构的框式交换机,框式接口板之间流量、跨框流量必须经过主控板

单框上没有正常工作的主控板时流量无法从一个接口板转发到另外一个接口板,同时也无法跨框转发到另一个框
CSS2支持任意一个框式交换机内存在一个主控板运行正常,集群的两个框式交换机上的接口板都可以正常转发数据,该特效被称为“集群主控1+N备份”


配置集群连接方式、集群ID及集群优先级
SW1的配置如下:
set css mode ipu
set css 1
set css priority 100
SW2的配置如下
set css mode ipu
set css 2
set css priority 10
配置逻辑集群端口
SW1配置如下:
interface css-port 1
port interface xge 1/0/1 to xge1/0/2 enable
quit
interface css-port 2
port interface xge 2/0/2 to xge1/0/2 enable
quit
配置SW1、SW2的业务口xge1/0/1 ~xge1/0/2为集群物理成员端口并加入集群端口1 ,
xge2/0/1 ~ xge2/0/2为集群物理成员端口并加入集群端口2
SW2配置如下:
interface css-port 1
port interface xge 1/0/1 to xge1/0/2 enable
quit
interface css-port 2
port interface xge 2/0/2 to xge 2/0/2 enable
quit
使集群功能
SW1:
css enable
Warning:The CSS configuration will take effect only after the Syetem is rebooted
he next CSS mode is LPU.Reboot now ? [Y/N]: y
SW2:
css enable
Warning:The CSS configuration will take effect only after the Syetem is rebooted
he next CSS mode is LPU.Reboot now ? [Y/N]: y
以上全文选自华为官方产品文档
没找到链接,舔着脸选个原创嘿嘿
我想用sunspot重现以下原始solr查询q=exact_term_text:fooORterm_textv:foo*ORalternate_text:bar*但我无法通过标准的太阳黑子界面理解这是否可能以及如何实现,因为看起来:fulltext方法似乎不接受多个文本/搜索字段参数我不知道将什么参数作为第一个参数传递给fulltext,就好像我通过了"foo"或"bar"结果不匹配如果我传递一个空参数,我得到一个q=*:*范围过滤器(例如with(:term).starting_with('foo*')(顾名思义)作为过滤器查询应用,因此不参与评分。似乎可以手动编写字符串(或者可能使
我一直在使用postgres关注railscast的全文搜索,但我不断收到以下错误#的未定义局部变量或方法“作用域”我关注了railscast确切地。我安装了所有正确的gem。(pg_search,pg)。这是我的代码文章Controller(我在这里也使用acts_as_taggable)defindex@articles=Article.text_search(params[:query]).page(params[:page]).per_page(3)ifparams[:tag]@articles=Article.tagged_with(params[:tag])else@art
我正在myrapwebsite上实现全文搜索功能,我遇到了一些关于说唱歌手和歌曲名称的问题。例如,某人可能想使用查询“camron”(省略中间单词撇号)来搜索说唱歌手“Cam'ron”。同样,有人可能会使用查询“3peat”来搜索歌曲“3Peat”。“TheNotoriousB.I.G.”有点奇怪:“TheNotoriousBIG”和“TheNotoriousB.I.G.”两者都有效(我猜是因为solr.StandardFilterFactory从首字母缩略词中删除了点?),但“TheNotoriousB.I.G”(即减去结尾的点)没有。理想情况下,这些名称的所有合理变体都应该有效。我
在Windows计算机上运行VisualC++,我发现以下代码行似乎是通过调用__dtoui3的呼叫损坏内存(此调用后一堆字节更改。具体来说,DBL_MAX的值似乎是在两次中打印的,在记忆中的随机位置行)doubletemp=DBL_MAX;unsignedintblissfullyUnaware=(unsignedint)temp;但是,以下没有:doubletemp=0;unsignedintblissfullyUnaware=(unsignedint)temp;谁能阐明为什么会发生这种情况?看答案[cons.fpint]/1浮点类型的prvalue可以转换为整数类型的prvalue。转换
我想对我的JavaScript代码进行全文搜索,但我通常对评论中的匹配项不感兴趣。如何在全文搜索中忽略任何注释匹配项?这样的功能会提高我作为程序员的工作效率。此外,我该如何做相反的事情:只在评论中搜索?(我目前正在使用TextMate,但很乐意更改。) 最佳答案 查看我们的SourceCodeSearchEngine(SCSE).该工具使用语言结构来索引您的代码库以指导索引;它可以为包括JavaScript在内的许多语言这样做。然后根据抽象语言标记来陈述搜索查询,例如,要查找涉及字符串“tax”乘以某个常数的标识符,您可以这样写:I
我有一个可爱的Highcharts图,其中包含堆叠的列。我想要一个可以切换堆叠是“正常”还是“百分比”的按钮。我正在尝试以下操作(不起作用):$('#button').click(function(){varchart=$('#container').highcharts();chart.options.plotOptions.column.stacking='percent';chart.redraw();});在这里fiddle:http://jsfiddle.net/CRKcj/2/如有任何帮助,我们将不胜感激! 最佳答案 不
我刚刚开始使用Chrome开发者工具中的控制台(一般来说对Javascript来说还是个新手)。我注意到,当我连续两次记录同一个变量(在本例中是一个对象)时,日志会堆叠它并在它旁边放置一个小数字图标。我点击这个以为我将能够看到该对象两次(因为它已经更新了两次),但是没有任何反应。更多说明图片:如您所见,Object下拉列表旁边的蓝色圆圈中有一个小“2”。第一个日志在3处有Object.num,第二个在4处,但是我只能看到第二个。任何关于如何查看两个日志的答案都将不胜感激。:). 最佳答案 发生这种情况是因为您两次记录同一个对象。即使
我正在使用SlickGrid,现在,如果我有很长的列标题,SlickGrid会用省略号(...)缩短标题。我的问题是:有没有办法在鼠标悬停时查看整个文本?顺便说一句,我可以通过注册这个很酷的插件来为长单元格条目做到这一点https://github.com/mleibman/SlickGrid/blob/master/plugins/slick.autotooltips.js:mygrid.registerPlugin(newSlick.AutoTooltips());这是一个使用该插件的jsFiddle:http://jsfiddle.net/crystality/h5ZLP/1/请
我有一个用这个片段创建的对象,它看起来像这样:...varsteps=newArray();this.createStep=function(){steps.push(newstep());returnsteps[steps.length-1];};this.getSteps=function(){returnsteps;};//returnsArraythis.removeStep=function(pos){steps.splice(parseInt(pos),1);};//integerpossitionzerobasethis.insertStep=function(pos){
我正在使用SlickGriddatatable我的一些单元格有很长的文本条目(1000个字符或更多)。默认情况下,SlickGrid仅显示部分文本,并使用省略号缩写其余部分。这很好用,除了我想在鼠标悬停时显示全文,或者有一些其他方法来扩展单元格以显示完整条目。这在SlickGrid中是否可行,如果可行,如何实现? 最佳答案 只需使用这个插件:https://github.com/mleibman/SlickGrid/blob/master/plugins/slick.autotooltips.js这样注册就大功告成了!mygrid.