本发明涉及一种服务器装置,特别是涉及一种能避免死锁的服务器装置内的广播流量(broadcasttraffic)的传输方法。
背景技术:
在典型的计算机系统内(例如数据中心内的机架式服务器),服务器系统包含多个服务器节点,其与外部集线器(例如外部路由交换器)通信以传输广播流量。此一部分通过与外部集线器及多个服务器节点相联的内部集线器(例如内部路由交换器)来完成的。因此,内部集线器可用于依照管理装置(例如用户)的请求而从外部集线器将广播流量传输至指定服务器节点。
服务器可用在具不同计算机需求的不同数据中心。然而,一般的服务器都预先安装单一的内部集线器,其可能在广播流量增加及管理装置有不同需求时,无法达到最佳效果。另外,服务器系统内服务器节点的增加数量需要更加一体化的系统架构,以提供稳定的连线以及有效率的流量。
技术实现要素:
以下呈现一个或更多的实施例的简化概要,以提供本发明的基本概念。此概要并非详尽概述本发明所有拟定实施例,也非旨在为识别所有示例的关键要素或重要元件,或是划定本发明的任何或全部示例的范围。本概要仅为了以简单的方式呈现一个或多个实施例的一些概念,以作为接下来呈现的更详细叙述的序言。
根据在此叙述的实施例的一个或更多示例,提供服务器系统内的广播流量的传输以避免死锁的系统及方法。该方法包含判定多个内部集线器可通信地耦接至多个服务器节点的链接状态。该方法也包含基于多个内部集线器的链接状态及一组集线器选择规则,选择多个内部集线器的其中之一以产生所选的内部集线器。该方法进一步包含使与外部集线器的通信单独限制于选定之内部集线器。
在另一示例中,提供一种服务器系统内的广播流量的传输设备。该设备包含至少一集线器控制器,其设置以:判定多个内部集线器可通信地连结至多个服务器节点的链接状态;基于多个内部集线器的链接状态及一组集线器选择规则,选择多个内部集线器的其中之一以产生选定的内部集线器;以及使与外部集线器的通信单独限制于选定的内部集线器。
在又另一示例中,提供一种非暂时性计算机可读介质以用于服务器系统内的广播分组的选路(routing)。非暂时性计算机可读介质储存可执行式指令,其使系统控制器装置:判定多个内部集线器可通信地连结至多个服务器节点的链接状态;基于多个内部集线器的链接状态及一组集线器选择规则,选择多个内部集线器的其中之一以产生选定的内部集线器;以及使与外部集线器的通信单独限制于选定的内部集线器。
附图说明
本发明的这些及其他范例示例将在以下的实施方式及所附的权利要求、以及附图中说明,其中:
图1a及图1b绘示用于理解本发明的各种示例的方框图;
图2a及图2b绘示在服务器系统内导向广播流量的例示性实施例的方框图以及显示基于链接状态的通信限制的例示性表格;
图3a及图3b绘示在服务器系统内导向广播流量的例示性实施例的方框图以及显示基于链接状态的通信限制的例示性表格;
图4绘示服务器系统内导向广播流量的例示性方法的流程图;以及
图5绘示例示性计算机系统的方框图。
附图标记说明
100、200、300:方框图
101、201、301:第一节点
102、202、302:第二节点
103、203、303:第n节点
104、204、304:第一内部集线器
105、205、305:第二内部集线器
106、206、306:外部集线器
107、207、307:管理装置
120:系统
208、308:服务器系统
209、309:集线器控制器
210、310:管理控制器
311:第一交换器
312:第二交换器
400:方法
410、420、430、440、450、460:步骤
500:系统架构
502:处理器
504:输入装置
506:显示器
508:网络接口
510:计算机可读介质
512:总线
514:操作系统
516:网络通信指令
518:图像处理系统
520:应用程序
522:服务控制器
具体实施方式
本发明的各种示例参照附图加以叙述。以下叙述中,为了说明,阐述了许多具体细节以提供对一或多个示例的彻底理解。然而,显然本发明在没有这些具体细节下也可实践。在其他情况下,现有的结构及装置以方框图的方式展现出来以辅助说明这些示例。这里使用「例示性」一词以表示「作用为例子、示例或举例说明」。任何在本文中被描述为「例示性」之实施例不必然被诠释为比其他实施例较佳或有利。
根据本发明,本公开书提供一种在服务器系统内传输广播流量时避免死锁的技术。公开首先参照图1a,其绘示用于理解本发明的各种示例的方框图 100。服务器系统104(例如机架式服务器)包含内部集线器(例如,内部以太路由装置),其可通信地连结到多个服务器节点101、102、103。内部集线器104可安置在服务器系统内并与服务器系统外的外部集线器106通信。如图1a所示,内部集线器104通过外部集线器106(例如外部以太路由装置)可连接至管理装置(例如用户),并因应管理装置107的要求处理广播数据分组。管理装置107可管理服务器节点,其藉由指定特定服务器节点并指示外部集线器来传输广播分组以到指定服务器节点。例如,如果管理装置107广播至第一节点101,第一节点101将通过第一内部集线器104及外部集线器106广播回管理装置107。如有需要,管理装置107可以最高相对优先权设置特定服务器节点或内部集线器。
随着科技的发展,增加服务器节点数量的需求也随之提升。为了管理更多的服务器节点,需要一个以上的内部集线器以使服务器系统更好的运作及稳定连线。其中一个解决方案为增加在系统120内的内部集线器104、105的数量,如图1b所示。然而,当一个以上的内部集线器耦接多个(thenumberof)服务器节点时,循环回路回流(endlessloopbackflow)可能会造成死锁问题,就如图1b中的粗箭头所示。当管理装置107广播至第一节点101时,在第一步骤中,第一节点101进行广播1至第一内部集线器104。就如第二步骤所示,第一内部集线器104通过外部集线器106广播至第二内部集线器105。第二内部集线器105可在第三步骤时再次广播至第一节点101。因此,第一节点101将接受两次广播,这可能会造成死锁的问题。
因为缺乏从一内部集线器至另一内部集线器的流量管理的中央系统,各个服务器节点将对彼此广播,而致使网络内资源冲突。
鉴于上述,本发明提供一个新方法以在服务器系统内驻留一个以上内部集线器时避免死锁问题并传输广播流量。此如图2a及图3a所示。特别是,图2a绘示利用集线器控制器来传输广播流量的例示性实施例的方框图200。为了避免死锁问题,服务器系统208可包含检测及控制广播流量的集线器控制器209(例如复杂可编程逻辑装置(cpld))。集线器控制器(例如,cpld)可为逻辑门,配置以提供服务器及其他路由装置的管理(management/administration)。在一些实施例中,集线器控制器209可连接至管理控制器210。管理控制器210可为基板管理控制器(bmc),其独立管理(admins/manages)计算机装置的中央处理器和/或操作系统。在某些实施 例,集线器控制器可为管理控制器的一部分。
在一些实施例,集线器控制器209可检测多个内部集线器204、205个别的链接状态。举例来说,多个内部集线器(例如,网络交换器)个别可通过检测链接(例如第一检测链接配置给第一内部集线器,第二检测链接配置给第二内部集线器)连接至集线器控制器209。每个检测链接在有需要时都可由管理装置207激活或关闭。当检测链接被激活时,管理控制器210可对每个激活的检测链接指派相对优先权,以制定广播流量的优先秩序(prioritize)。具最高相对优先权的检测链接被选择为内部集线器作为导向广播流量的主要通道。最高相对优先权表示通过所选(相联)的内部集线器传送广播分组是较简易且有效的。因此外部集线器206及指定节点之间的通信单独限制于选定的内部集线器。
因此,由集线器控制器209所启用的选定内部集线器的输出端口以辅助与外部集线器206的通信。另一方面,为了限制外部集线器以仅与选定的内部集线器通信,停用非选定的内部集线器的输出端口。这可相对于图2b进一步说明。例如,如果与第一内部集线器104相联的检测链接以及与第二内部集线器相联的另一检测链接都被激活的时候,则这两个检测链接的相对优先权将被决定。但是,只有一个内部集线器将被选为传输通道。就如图2b中表格的第一列所示,第一内部集线器的检测链接及第二内部集线器的检测链接皆被激活。依据一例示性实施例,在此情况下第一内部集线器的相对优先权被决定为较高。所以,第一内部集线器的输出端口被启用,而第二内部集线器的输出端口被停用,以限制只能与第一内部集线器通信。
在一些实施例中,检测链接可为非激活的。当检测链接非激活时,其相对优先权就变得较不重要,因为其难以通过与其相联的内部集线器传送数据分组。举例,就如图2b中表格的第二列所示,当第一内部集线器的检测链接系激活而第二内部集线器的检测链接是非激活时,藉由集线器控制器会启用第一内部集线器的输出端口,并停用第二内部集线器的输出端口。因此,从外部集线器来的通信只会被引导至第一内部集线器,且最后去到相对应的服务器节点。在某些实施例中,如图2b表格中的第三列所示,当第一内部集线器的检测链接系非激活而第二内部集线器的检测链接系激活时,第一内部集线器的输出端口将被停用而第二内部集线器的输出端口将被启用。因此,从外部集线器来的通信只会被引导至第二内部集线器及相对应的服务器节 点。
如果两个内部集线器如表格中第四列所示都为非激活时,第一内部集线器及第二内部集线器的输出端口都不会被启用,且这些非激活的集线器的相对优先权都不会被决定。然而,如果其中一个内部集线器(例如第二内部集线器)从非激活状态(第四列)变成激活状态(第三列)时,则主控制器就会检测到状态的改变,启用第二内部集线器的输出端口,且决定第二内部集线器的相对优先权。举例来说,如果一个以上的内部集线器的链接状态转变(从激活变成非激活或从非激活变成激活的任一情况),状态的转变将会被传递到集线器控制器,以使其采取适当行动。
图3a绘示当服务器系统内设置交换器时的例示性实施例方框图300。交换器311、312可为开/关式机械信号交换器,其控制信号的传输。第一交换器311与第一内部集线器304相联,而第二交换器312与第二内部集线器305相联。管理装置307可使内部集线器304、305的其中之一设为有较高相对优先权,以利用与选定的内部集线器相联的对应交换器,产生选定的内部集线器为广播流量通道。
图3a亦将相对于图3b的表格解释。集线器控制器309将识别激活链接并决定所识别的激活链接的相对优先权。例如,如图3b的表格的第一列所示,两个检测链接都被判定为激活的。所以集线器控制器309将决定各别所识别激活链接的相对优先权。在这个例子中,第一内部集线器的相对优先权经决定比第二内部集线器的相对优先权还高。因此,为了把通信单独限制在第一内部集线器,第一交换器311(相联交换器)将被开启,且第二交换器312将关闭。
图3b的表格的第二列显示例示性状况,其中第一内部集线器是激活的,而第二内部集线器是非激活的。在这情况下,集线器控制器309将控制第一交换器311及第二交换器312以控制广播流量的传输。例如,集线器控制器309将开启第一交换器311并关闭第二交换器312,因此使第一内部集线器(例如第一内部集线器与开启的交换器相联)成为选定的通道。因此通信信息将从外部集线器306去到第一交换器311,通过第一内部集线器304,最后去到相联的服务器节点。
在一相关示例中,如果第一内部集线器是非激活的而第二内部集线器是激活时,集线器控制器309将关闭第一交换器311并开启第二交换器312, 因而使第二内部集线器(例如,第二内部集线器与开启的第二交换器312相联)成为选定的通道。因此通信信息将从外部集线器306去到第二交换器312,通过第二内部集线器305,最后去到相联的服务器节点。
如表格中第四列所示,当两个内部集线器都为非激活时,两个交换器将会被关闭且这些非激活的集线器的相对优先权都不会被决定。然而,如果其中一个内部集线器(例如第二内部集线器)从非激活(第四列)变成激活时(第三列),则主控制器就会检测到状态的改变,开启第二交换器(与第二内部集线器相联的交换器)并且决定第二内部集线器的相对优先权。
根据本文所述的实施方式的一个或更多示例,图4绘示引导服务器系统内的广播流量的例示性方法的流程图。当服务器系统内有一个以上的内部集线器时,方法400可从步骤410开始。服务器系统可为微型服务器系统。在步骤420时,集线器控制器可识别连接到集线器控制器的多个内部集线器。集线器控制器之后可识别连接链接(例如检测链接)为激活的内部集线器。
在一些情况下,当集线器控制器正在判定多个内部集线器的激活状态时,连接链接状态可从非激活转变为激活。转变的链接将被视为激活的链接,且转变链接的相对优先权的值将被考量,以决定选择具有最高优先权的内部集线器。
在步骤430时,集线器控制器将决定一组集线器选择规则以使选定的内部集线器为传输通道。该组集线器选择规则可被储存于服务器系统内。在一些实施例中,管理装置可传送该组集线器选择规则至服务器系统供其使用。当选择一组集线器选择规则以应用到特定的服务器配置时,可以考虑多组不同的集线器选择规则。其中一个集线器选择规则可为相对优先权规则。
集线器控制器将会决定彼此相对的多个内部集线器之间的相对优先权的值。任何有最高相对优先权的内部集线器都可被选为内部集线器。相对优先权可由多种方式决定,例如内部集线器或服务器节点的频宽、由管理装置指定的特定值、或者连接到内部集线器的服务器节点的数量。选择内部集线器还可以有其他方法,且所叙述的选择方法并非旨在为选择内部集线器的唯一列表。
举例说明,在一些实施例中,服务器节点可被配置为高优先权,但是与该服务器节点相联的内部集线器可被配置为低优先权。在此情况下,集线器选择规则可指明有高优先权的服务器节点可超越有低优先权的内部服务器。 因此,低优先权的内部节点而不是高优先权的内部节点可被选为传输通道,以确保高优先权服务器节点被接入外部集线器。
再来,当决定一组选择规则时也可以考虑服务器节点的数量。就算单一个内部集线器可能配置为高相对优先权,如果该内部集线器相联于超过内部集线器最佳能容纳的服务器节点的数量,则内部集线器将会被给予不同的权重。因为每个服务器节点的频宽容量都不是最佳的,因此该内部集线器相较于其它有较少服务器节点的内部集线器而言较不受青睐。
在步骤440时,集线器控制器将会至少在某程度上根据链接状态及一组集线器选择规则而选择内部集线器。在步骤450时,集线器控制器将通过管理内部集线器或与内部集线器相联的交换器的运作,而把从外部集线器来的通信单独限制在选定的内部集线器。传输过程可在步骤460时继续。
图5是实施了图1至图4中的特点及过程的例示性系统架构500的方框图。系统架构500可实施在任何运行从编译指令衍生的软件应用程序的电子装置上,其包括但不局限在个人计算机、服务器、智能智能手机、介质播放器、电子平板、游戏主机及电邮装置等。在一些实施方式中,系统架构500可包含一个或多个处理器502、一个或多个输入装置504、一个或多个显示装置506、一个或多个网络接口508以及一个或多个计算机可读介质510。这些元件的每一个都可由总线512耦接。
显示装置506可为任何已知的显示技术,包括但不局限于使用液晶显示(lcd)或发光二极管(led)技术的显示装置。处理器502可用任何已知的处理器技术,包括但不局限于图形处理器及多核心处理器。输入装置504可为任何已知的输入装置技术,包括但不局限于键盘(包含虚拟键盘)、鼠标、轨迹球及触控板或触控显示。总线512可为任何已知的内部或外部总线技术,包括但不局限在isa、eisa、pci、pciexpress、nubus、usb、序列ata或火线(firewire)。
计算机可读介质510可为任何参与提供处理器502执行指令的介质,其包括但不局限于非易失性储存介质(例如光盘、磁盘及可携带盘等)或易失性存储器(例如,sdram及rom等)。计算机可读介质(例如储存装置、介质及存储器)可包含例如电缆或含有比特流的无线信号等等。然而,当提起时,非暂时性计算机可读储存介质明显的不包括例如能量、载波信号、电磁波及信号本身的介质。
计算机可读介质510可包含各种实施操作系统514(例如mac
图像处理系统518可包括提供图形及影像处理能力的指令。应用程序520可为利用或实施参照图1至图4所叙述的过程的应用。该过程也可在操作系统514内实施。
服务控制器522可为不依赖处理器502和/或操作系统514来运作的控制器。在一些实施例中,服务控制器522可在处理器502电源开启及操作系统514被载入处理器502前就电源开启及运作。例如,服务控制器522可通过指定网络接口或其他输入装置,提供计算机装置的操作系统加载前(pre-os)管理。例如服务控制器522可为基板管理控制器(bmc),其监控装置感测器(例如电压、温度及风扇等)、记录故障分析事件、提供led引导的诊断、执行电源管理及/或通过智能平台管理接口(ipmi)、键盘、影像及鼠标(kvm)重定向、通过区域网络传送串列端口命令的串行端口(serialoverlan,sol)或其他接口提供远程管理能力。服务控制器522可实施上述参照图1至图4所叙述的过程。例如,服务控制器522可配置来管理耦接至服务器机架的供电单元。
所述特点可在一个或更多的计算机程序中有利地实施,其可在可编程系统上执行,可编程系统包括耦接的至少一可编程化处理器,以从数据储存系统、至少一输入装置、及至少一输出装置接收数据及指令,以及传输数据及指令至数据储存系统、至少一输入装置、及至少一输出装置。计算机程序是一组指令,其可直接或间接地在计算机中应用以执行某活动或产生某结果。计算机程序可用任何形式的程序语言撰写(例如objective-c及java等),包含编译或解释语言,而且其可以任何形式配置,包括单独程序或模块、组件、子程序或其他适用于计算机环境的单位。
适合执行指令的程序的处理器例如可包括一般或专用微处理器以及任 何种类计算机的单一处理器或多重处理器或核心的其中之一。一般来说,处理器将从唯读存储器或随机存取存储器或两者接收指令及数据。计算机的不可或缺的部分分别是用来执行指令的处理器以及用来储存指令及数据的一或多个存储器。一般来说,计算机也会包括或操作上连接以通信于:用来储存数据档案的一或多个大量数据储存装置;此装置包含例如内部硬磁盘及外接式磁盘的磁盘、磁光盘(magneto-opticaldisks)及光盘。储存装置适用于有形地体现计算机程序指令及数据,其包含所有形式的易失性非易失性存储器,例如包括半导体存储装置,像是eprom、eeprom及快闪存储器装置;磁盘,像是内部硬磁盘及外接式磁盘;磁光盘;及cd-rom及dvd-rom磁盘。处理器及存储器可由特定应用集成电路(asics)辅助或整合。
为了提供用户互动,特征可以实现于计算机上,计算机具有:显示装置,像是阴极射线管(crt)或液晶显示(lcd)屏幕,以向用户显示信息;以及键盘及指向装置,例如鼠标或轨迹球,藉以使用户可提供输入于计算机。
特征可实现于计算机系统上,计算机系统包含:后端组件,例如数据服务器;中间软件组件,例如应用程序服务器或网际网络服务器;前端组件,例如拥有使用者图形接口或网际网络游览器的用户端计算机;或其任意组合。该系统的组件可通过例如通信网络的数字信息通信的任何形式或介质连接。通信网络的例子包括例如区域网络(lan)、广域网络(wan)及形成网际网络的计算机及网络。
计算机系统可包含客户端及服务器。客户端及服务器是一般远离彼此的,且通常通过网络互动。客户端及服务器之间的关系借着计算机程序产生,计算机程序在对应的计算机上运行且具有相对彼此的客户端-服务器关系。
这里所公开的实施例中的一或多个特点或步骤可用api实施。api可定义在一或多个参数上,其在呼叫程序及其他软件码(例如操作系统、程序馆常式或函数)之间传递,软件码提供服务、数据或执行操作或运算。
api可以程序码进行一或多个呼叫,其通过参数列表(parameterlist)或基于api规格文件所定义的呼叫约定的其他结构发送或接收一个或多个参数。参数可为常数、金钥(key)、数据结构、物件、物件类别(objectclass)、变数、数据形态,指标、阵列、列表(list)或其他呼叫。api呼叫及参数可在任何程序语言中实施。程序语言可定义程序编写者将实施以存取支持api的函数的词汇(vocabulary)及呼叫约定(callingconvention)。
在一些实施方式中,api呼叫可对应用程序报告运行应用程序的装置的能力,像是输入能力、输出能力、处理能力、电源能力、通信能力等。
叙述了好几个的实施方式。然而,将理解的是可对其进行多个改变。例如,可在所叙述的流程中提供其他步骤或可删去一些步骤,以及在所叙述的系统中添加或删除其他组件。因此,其他实施方式也在本发明的权利要求的范畴内。
虽然使用了各种例子及其他信息来解释在本发明权利要求的范畴以内的示例,鉴于上文例子中的特定特性或配置不应该暗示对权利要求的限制,本领域普通技术人员将能使用以上的例子来衍生出各种各样的实施方式。进一步虽然一些标的可被描写特定于构造特性和/或方法步骤的例子,然而将了解的是权利要求中所定义的标的不必然局限在所叙述的这些特性或动作。例如,这些功能可以与本文所述不同的方式发布或与本文所述不同的特征实行。相反的,所述的特性及步骤系公开为本发明权利要求的范畴以内的系统及方法的特征的例子。