「网络工程师」教你锐捷设备配置堆叠
在常见网络中经常见到配置设备堆叠,堆叠大大扩展了端口密度,同时也带来方便、集中式管理的优点,减少维护量。下面我就以两台锐捷S2928G-S为例组建线型堆叠。
网络拓扑
一、配置步骤:
从单机模式空配置开始配置堆叠组参数,步骤如下:
1)配置设备优先级
注意:部分交换产品(以A产品为代号),默认优先级为1,范围为1-10,优先级越大越优先;若优先级一样,mac地址越小越优先;
部分交换产品(以B产品为代号),默认优先级为5,范围为1-10,优先级越小越优先;若优先级一样,mac地址越小越优先;
A产品:s20g、s23系列、s26系列、s26E/P系列、s29-E/S系列、s29系列;
B产品:s26I系列、s2924gt/8sfp-p;
2)配置设备别名
3)配置堆叠端口
特别说明: 无论物理链路上采用前文提到的2.5G专用堆叠线缆还是普通的千兆光口做堆叠,关于堆叠的基本参数都是需要配置,并且命令没有任何区别
分别配置堆叠主设备,从设备两台交换机的关于堆叠的基本配置
主设备:RG-S2928G-S-1配置如下:
ruijie#config terminal
ruijie(config)#device-priority 10 //配置设备优先级,数值越大越优先,默认是1,这边我们把主设备优先级设置为10
ruijie(config)#device-description RG-S2928G-S-1 //配置设备别名,用于堆叠后区分每台主机,便于记忆与管理
ruijie(config)#interface gigabitEthernet 0/28
ruijie(config-if-GigabitEthernet 0/28)#stack on //将28口配置为堆叠端口,随后系统会有日志提示,切换到堆叠模式才能生效
you must reload switch to change interface GigabitEthernet 0/28 to stack mode!
ruijie#write //关于堆叠的基本配置完成后需要确认无误后保存,否则重启丢失,堆叠无法建立
从设备:RG-S2928G-S-2配置如下:
ruijie#config terminal
ruijie(config)#device-description RG-S2928G-S-2
ruijie(config)#interface gigabitEthernet 0/28
ruijie(config-if-GigabitEthernet 0/28)#stack on
you must reload switch to change interface GigabitEthernet 0/28 to stack mode!
ruijie#write
二、功能验证:
1)将两台设备同时 直接断电重启,注意观察启动日志,当经历正常的系统启动后,会进入堆叠协商阶段 ,如果配置及物理链路没有问题的话,堆叠将自动建立成功
<---------------系统正常启动日志此次省略----------------------->
Copyright (c) 1998-2012s by Ruijie Networks.
All Rights Reserved.
Neither Decompiling Nor Reverse Engineering Shall Be Allowed.
*Oct 7 20:10:40: %MTD_DRIVER-5-MTD_NAND_FOUND: 1 NAND chips(chip size : 134217728) detected
Stack System is voting.. //当出现这个日志提示的时候,表示接入堆叠协商阶段,选举主从设备,时间经历约30秒,如果你等待超过1,2分钟,请检查堆叠模块的连接以及配置是否存在问题
*Oct 7 20:11:49: %DEVICE-5-CHANGED: Device S2928G-S (1) changed state to up.
*Oct 7 7 20:11:49: %DEVICE-5-CHANGED: Device S2928G-S (2) changed state to up. //当提示各成员设备状态都up的日志时,表示堆叠协商完成,相应的设备组建成堆叠组
2)执行show version slot,show version device,show member查看堆叠各成员状态
ruijie#show version slots //此次显示所有堆叠成员设备信息,端口总数等
Device Slot Ports Max Ports Module
------ ---- ----- ---------- --------------------------
1 0 28 28 S2928G-S
2 0 28 28 S2928G-S
ruijie#show member //此次显示更加丰富的堆叠成员的MAC,优先级,软件版本,设备别名等信息
Member Mac Address Priority Software Version Hardware Version Description
---------- -------------- -------- ------------------------------------------------ ---------------- -----------
1 001a.a9c4.05f2 10 RGOS 10.4(2b11)p1 Release(134566) 1.01 RG-S2928G-S-1
2 001a.a9c4.062e 1 RGOS 10.4(2b11)p1 Release(134566) 1.01 RG-S2928G-S-2
3)堆叠组只有主设备可以console管理,其他成员设备均无法管理,显示NGSA-M2.0>
三、功能测试:
配置完毕后,需要进行功能性测试,包括但不限于:
1)测试堆叠的可靠性
2)测试堆叠的带宽提升性
3)测试客户其他业务应用是否正常(协调客户联系确认业务测试方法或提前制定测试方案)
Linux设备驱动框架里的设计模式之——模板方法(Template Method)
本文系转载,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
作者: 宋宝华
来源: 微信公众号linux阅码场(id: linuxdev)
前言
《设计模式》这本经典的书里面定义了20多种设计模式,虽然都是面向对象的,似乎需要C++、Java这样的语言才能实现,但是根据笔者前面反复强调的,Linux内核虽然是用C语言和汇编语言写成,但是其实也到处充满了面向对象的设计。面向对象更多的是一种思想,而不是一个语言。我们可以用C语言实现极大的OO,Linux内核到处都有OO。
模版方法
比如,在Linux的设备驱动框架中,就用了一种非常经典简单的设计模式——模板方法(Template Method),当然还有一些其他的设计模式。而设计模式牛逼的地方在于,高手往往不经意之间已经用到了设计模式,甚至自己都不知道。如果高手没有系统地学习过设计模式,这其实不见得是一个问题。这并不意味着它不懂设计模式,只是他自己都不知道自己用到了哪个模式。而设计模式学习的终极目的,当然也是忘记设计模式,这个跟练独孤九剑没什么区别,到最后其实是无招胜有招。
模板方法这个模式,强调定义一个基类,这个基类实现了通用的流程和算法。比如做一件事情需要经过step1()、step2()、step3()。那么我们定义一个基类:
而其中的step1()、step2()、step3()、step4()具体如何实现则是因人而异,所以我们从baseClass类里面,继承出来的类里面,实现step1()、step2()、step3()这样的代码,override掉baseClass里面的函数。
这样的设计让外部不关心derivedClass,因为流程和接口都是在基类的。而基类实现的doSomething()成员函数,是对外的接口。这个UML关系是非常简单的:
驱动案例
在Linux设备驱动里面,大量存在类似的设计,我们以NAND为例子。在drivers/mtd/nand/nand_base.c这层里面,定义了NAND的一些操作流程。
比如写OOB的代码:
它这个里面要走cmdfunc()、write_buf()、cmdfunc()、waitfunc()这些步骤,这些步骤,不管是全世界哪个NAND的硬件,都是一样的通用的,但是具体的不同的NAND硬件控制器,实现这些步骤中涉及到的cmdfunc()等函数的实现方法却因人而异。
譬如freescale的版本fslelbcnand.c就是:
nandbase.c这个C文件是NAND的中间层,它非常类似我们前面说的实现baseClass这一层的代码,nandwriteoobstd函数类似baseClass :: doSomething。而Linux驱动中定义的nandchip的各个不同的NAND控制器,对nandchip这个结构体中成员函数cmdfunc()、writebuf()等的实现则是各异的,类似derivedClass里面override掉step1()、step2()。nandchip定义在include/linux/mtd/nand.h:
这样的设计,好处是非常明显的。特定的硬件只用管与自身操作相关的事情,而通用的流程,都由nand_base搞定,最大程度上减小了具体实例的代码量,也最大程度上复用了中间层的代码。
这样的例子无处不在,比如我们在LCD的中间层:
后语
本文后语不搭前言,请见谅。最近有很多童鞋询问笔者,做Linux驱动有没有前途?笔者明确地告诉大家:根本没有前途! 但是前途是自己赚的,这依赖你从驱动进去,但是从更大的视角出来:
通过做驱动理解很多OO的架构设计思想,升华自己高内聚和低耦合的理解,把自己变成一个更高level的software engineer;通过做驱动,进一步理解Linux本身的进程、内存、IO等知识,升华对软件系统和性能分析的理解,把自己变成一个更高level的技术expert。如果做了5年驱动,进入的时候是调试寄存器搞示波器,出来的时候还是调寄存器搞示波器,那自然是完全没有什么前途的!
有没有前途,这个事情,完全是因人而异的。前途是无所谓有,无所谓无的。你如果有抽象、衍生的能力和不断学习总结的精神,无论是做驱动还是不做驱动,都会是很有前途的事情。反之,做什么基本都没前途。
更多精彩更新中……欢迎关注微信公众号:linux阅码场(id: linuxdev)
相关问答
刚买过来的乐心手环插上usb怎么屏幕不亮?激活不了?确定手环是在已经激活并且有电的状态下:将乐心手环佩戴在手上,并把手垂下。然后像看表一样,把手从外拎向自己面前,时间和其他数据就会根据水平装置设定,自...
WIN10输入时总是跳屏怎么处理?-ZOL问答换个操作系统,比如WIN7。新系统出来总是伴随诸多兼容性问题,一般等它出来2~3年再装就好了有用(0)回复delphan记录了当前的nandflash有几个分区,每个分区的...