本节书摘来自异步社区《Cisco IOS XR技术精要》一书中的第2章,第2.5节,作者 【美】Mobeen Tahir , Mark Ghattas , Dawit Birhanu , Syed Natif Nawaz,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.5 进程迁移
Cisco IOS XR技术精要
在Cisco CRS-1和Cisco XR 12000系列路由器中,除了主备RP之外,还可以向系统中添加额外的路由处理器。额外的RP可以用来减缓活动RP(或RP对)的负载,有效地提高系统的整体处理能力。额外的RP对也可以构成主备的形式。进程从一台RP移动到另一台RP的过程被称为进程迁移(process placement)。
在CRS-1的环境中,分布式路由处理器(DRP)卡提供了额外的灵活性和性能。活动RP安放在指定的槽位中。
在XR 12000的环境中,用作主处理器的PRP可以充当DRP的角色来提供额外的性能。PRP可以安放在任何线卡槽位中。
进程迁移允许将资源密集的进程从活动RP迁移至DRP上,从而实现系统性能的提升。DRP并不执行任何机框指定之类的操作,该操作通常由RP来完成。在单框或多框的系统中,只有活动RP才能成为指定机框控制器(DSC)。
被称为placed(place守护进程)的进程管理着进程迁移特性。每个SDR上只有一个placed进程。进程迁移能够提供更优的系统资源分布能力,并增加系统的可用性。
配置进程迁移仅需要少量的命令便可实现,而且不要求对亲源关系有着深入的理解。所谓亲源(affinity),是指两个不同种类事物之间的相似性或吸引力。可以将亲源值理解成一种优先级,用来决定哪个进程将会被特定的RP吸引或排斥。进程迁移操作既可以是触发的,也可以是手动执行的。进程迁移可以配置成当内存门限达到上限时,为避免系统不稳定而触发、通过设置亲源值使资源密集进程吸引另一节点时触发,或被RP(DRP)排斥时触发。
Cisco文档详细介绍了影响进程迁移操作的可配置的4种亲源。下列亲源信息援引自IOS XR软件的进程迁移文档。
可配置的4种亲源如下。
affinity location set
affinity location type
affinity program
affinity self
affinity location set定义了运行在特定节点对上的进程的优先级。节点对(node pair)既可以是RP或DRP上的一组主备节点,也可以是DRP或DRP上无冗余备节点的单个主节点。
affinity location type定义了运行在特定类型位置上的进程的优先级。可用的位置类型如下。
Paired:具有备节点的RP节点。
Primary:SDR的活动RP节点(也被称为特定安全域路由器机框控制器,DSDRSC)。
Current:当前节点,这种方式会保留当前节点的进程类源优先级。
用户可以配置迁移策略来允许某些进程保持现状(current)或是通过指定不同的亲源值将其迁移至其他位置。亲源值越大,进程运行在特定位置的吸引力就越强烈。亲源值较低或为零表示进程运行在特定位置的需求很低(或无需求)。
affinity program定义了当某一进程与另一进程运行在同一节点或不同节点时,该进程的优先级。当某些进程运行在相同节点(吸引)或不同节点彼此分开(排斥)时,会运作得更好。在上述环境中,用户可能会用到这一亲源。
affinity self用来调整当启用了多个进程实例环境下的迁移行为。吸引亲源(正数)表示设置的优先级将应用到进程运行在相同节点上的所有实例中,而排斥亲源(负数)表示优先级将应用到进程运行在不同节点上的所有实例中。
命令show placement program all可以显示出所有进程或线程分别所属于哪个节点。如果想要以手动方式将进程从RP的默认位置迁移到DRP,可以通过修改进程对节点的亲源值(吸引力)来实现。在例2-13中,BGP进程被手动迁移到了路由器1(CRS1-1)2槽的DRP上。
例2-13 命令show placement program all输出
我们在另外一台路由器(CRS1-4)上再看一看默认的BGP进程迁移策略。命令show placement policy program < process-name> instance [x]可以查看某个程序(进程)已配置或默认的迁移策略。建议用户在使用这条命令的时候加上实例编号,否则会列出所有实例。例2-14给出了BGP进程的迁移策略。其中,RP上默认位置的affinity location type值为600。
例2-14 命令show placement policy program bgp instance 1输出
在例2-15中,配置了路由器CRS1-1将BGP进程迁移到2槽的DRP上。例子中给出了配置命令并解释了BGP进程是如何被“吸引”到DRP上的。配置中,使用了affinity location set指定机框上的节点,并将亲源值配置成了大于默认值(600)来吸引BGP进程。
例2-15 配置BGP进程迁移
在例2-15中,BGP进程被安置在了DRP上。由于RP上带有600的亲源值(只是比DRP上的亲源值小),所以RP上对进程的吸引力仍是有效的。如果DRP出现故障或服务中断,BGP进程将会迁移回RP。由于进程被迁移并在新位置上重新启用,所以BGP peer的流量会有一定程度的丢失,业务中断时间取决于配置了何种高可用(HA)特性。
在调整路由器的亲源关系时,命令placement reoptimize也是必不可少的。配置这条命令后,系统将会比较所有的亲源值,并执行必要的进程迁移修改。在Cisco IOS XR操作系统中配置了此命令并commit了之后,RP和DRP节点上的进程会基于内存和CPU的使用率,重新优化可迁移进程。在未对配置进行修改的情况下,没有必要使用此命令,IOS XR操作系统会根据触发的门限执行优化。