发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,本发明提供一种支持管理刀片到刀片的单主设备多从设备和刀片到管理刀片的多主设备单从设备的实时、无丢失的数据传输的刀片服务器控制方法及控制台。
为解决上述技术问题,本发明采用以下技术方案:
一种刀片服务器控制方法,包括以下步骤:
(1)控制台命令传输:
(1.1)远程终端与管理刀片中的主控单元建立连接,主控单元分配并重定向所述连接的端口与刀片的对应关系并管理远程终端和刀片建立或关闭远程连接;
(1.2)所述主控单元接收并缓存远程终端发送到各个刀片的控制台命令,并将所述控制台命令与对应的刀片地址组成主控数据包通过控制台总线发送到对应的刀片;
(1.3)所述刀片监听所述控制台总线,发现主控数据包中的刀片地址与自身地址相同时,保存主控数据包中的数据;
(2)控制台数据传输:
(2.1)任意一个刀片发起控制台数据传输的开始标识,并在与自身对应的时隙到来时将控制台数据通过所述控制台总线传输给主控单元,主控单元在所有刀片时隙传输结束后,发出停止标识,完成一次控制台数据传输;
(2.2)所述主控单元接收来自刀片的控制台数据并发送到远程终端。
作为上述方法的进一步改进:
所述步骤(1.2)具体包括以下步骤:
(1.2.1)所述主控单元接收到远程终端发送到各个刀片的控制台命令后,将所述控制台命令缓存在主控单元的输入缓冲单元中与刀片一一对应的FIFO队列中;
(1.2.2)当主控单元检测到输入缓冲单元内任一FIFO队列中有远程终端发来的控制台命令时,取出该FIFO队列中的控制台命令并加上该FIFO队列对应的刀片地址,组成主控数据包通过所述控制台总线发送到对应的刀片。
所述步骤(2.2)具体包括以下步骤:
(2.2.1)所述主控单元监控所述控制台总线,当检测来自刀片的控制台数据传输的开始标识后,开始对刀片数据时隙计数,将接收到的控制台数据放入刀片对应的主控单元的输出缓冲单元中与刀片一一对应的FIFO队列中,在计数值达到机箱中刀片总数时,发出停止标识结束一次控制台数据传输;
(2.2.2)当对应的刀片与远程终端没有建立远程连接时,从所述输出缓冲单元的FIFO队列中输出的控制台数据先保存到对应的缓存文件区中,在远程连接建立后再将缓存文件区中的内容输出并发送到远程终端。
所述步骤(1)和步骤(2)中,所述刀片地址与刀片的槽位地址一一对应;所述主控数据包中的内容还包括开始标识和停止标识。
本发明还提供一种刀片服务器控制台,包括设于管理刀片中的主控单元,所述主控单元通过控制台总线与刀片主板上的接口控制器连通;所述控制台总线包括:
主控数据线,用于将远程客户端发送到各个刀片的命令数据从主控单元传输到刀片接口控制器;
刀片数据线,用于将各个刀片输出的控制台数据从刀片接口控制器按序传输给主控单元;
时钟信号线,用于传输由主控单元端发出的控制台总线的同步时钟信号。
作为上述控制台的进一步改进:
所述主控单元包括:
主控总线接口控制器,用于检测到输入缓冲单元内任一FIFO队列中有远程终端发来的控制台命令时,根据所述控制台命令数据生成主控数据包并通过控制台总线发送到对应的刀片;实时从控制台总线上接收来自刀片的刀片数据包并进行解析,解析得到的控制台数据放入输出缓冲单元中的刀片对应的FIFO队列中;
输入缓冲单元,用于缓存远程控制终端发送过来的控制台命令;所述输入缓冲单元内包含有多个与刀片一一对应的FIFO队列;
输出缓冲单元,用于保存来自刀片的控制台数据;所述输出缓冲单元内包含有多个与刀片一一对应的FIFO队列;
以太网连接管理单元,用于监听以太网的连接请求并建立对应的控制台重定向连接;接收来自远程终端的控制台命令并存入输入缓冲单元;读取输出缓冲单元中的控制台数据并发送到远程终端;
重定向管理单元,用于对所述主控总线接口控制器、输入缓冲单元、输出缓冲单元和以太网连接管理单元进行管理和控制;并对刀片进行重定向的配置、使能和状态更新。
所述输出缓冲单元还包含有与刀片一一对应的缓存文件区,所述缓存文件区用于在刀片未与远程终端建立连接时缓存对应的刀片输出的控制台数据;且缓存的控制台数据在刀片与远程终端建立连接后通过以太网连接管理单元发送到远程终端。
所述接口控制器包括与刀片主板上的系统LPC总线相连的LPC接口单元、与控制台总线相连的刀片总线接口单元以及用于实现LPC接口单元与刀片总线接口单元之间的数据流转换的逻辑单元。
与现有技术相比,本发明的优点在于:
1、本发明的刀片服务器控制方法,采用识别主控数据包中的刀片地址的方式实现管理刀片到刀片的单主设备多从设备的实时、无丢失的数据传输;采用按时隙顺序传输的方式实现刀片到管理刀片的多主设备单从设备的实时、无丢失的数据传输;最终实现刀片到管理刀片的全双工通信。
2、本发明的刀片服务器控制台,仅通过主控数据线和刀片数据线以及时钟信号线等3根信号线组成的控制台总线将所有的刀片和管理刀片相连,远程客户端发出的命令数据通过主控数据线由主控单元传输到刀片接口控制器;同时,刀片输出的控制台数据通过刀片数据线由刀片接口控制器按序传输给主控单元,通过按序传输保证同一时刻,主控单元接收数据时仅有一个刀片输出数据,可避免多主设备单从设备通信时的数据丢失;进而实现控制台命令和控制台数据的全双工串行传输,不需要额外的交换机等附属设备,结构简单、成本低、应用方便。
具体实施方式
以下将结合说明书附图和具体实施方式对本发明作进一步详细说明。
如图2所示,本发明的刀片服务器控制台包括设于管理刀片中的主控单元,主控单元通过控制台总线与刀片主板上的接口控制器连通。控制台总线包括:主控数据线(MDATA),用于将远程客户端发送到各个刀片的命令数据从主控单元传输到刀片接口控制器;刀片数据线(BDATA),用于将各个刀片输出的控制台数据从刀片接口控制器按序传输给主控单元;时钟信号线(BCLK),用于传输由主控单元端发出的控制台总线的同步时钟信号。控制台总线可通过主控数据线和刀片数据线实现全双工串行数据传输。
如图3所示,刀片主板上的接口控制器包括与刀片主板上的LPC总线相连的LPC接口单元、与控制台总线相连的刀片总线接口单元以及用于实现LPC接口单元与刀片总线接口单元之间的数据流转换的UART16550逻辑单元。
如图4所示,主控单元包括:
主控总线接口控制器,检测到输入缓冲单元内任一FIFO队列中有远程终端发来的控制台命令时,根据控制台命令数据生成主控数据包并通过控制台总线发送到对应的刀片;实时从控制台总线上接收来自刀片的刀片数据包并进行解析,解析得到的控制台数据放入输出缓冲单元中的刀片对应的FIFO队列中。
输入缓冲单元,缓存远程控制终端发送过来的控制台命令;输入缓冲单元内包含有多个与刀片一一对应的FIFO队列。
输出缓冲单元,保存来自刀片的控制台数据;本实施例中,输出缓冲单元内包含有多个与刀片一一对应的FIFO队列和与刀片一一对应的缓存文件区,当刀片未与远程终端建立远程连接时,刀片输出的控制台数据保存到对应的缓存文件区中;当刀片与远程终端建立远程连接后,以太网连接管理单元将缓存文件区中的内容发送到远程终端。
以太网连接管理单元,监听以太网的连接请求并建立对应的控制台重定向连接;接收来自远程终端的控制台命令并存入输入缓冲单元;读取输出缓冲单元中的控制台数据并发送到远程终端。
重定向管理单元,对主控总线接口控制器、输入缓冲单元、输出缓冲单元和以太网连接管理单元进行管理和控制;并对刀片进行重定向的配置、使能和状态更新。重定向管理单元是主控单元的核心模块,通过这个模块,系统管理员能够对刀片控制台重定向功能进行配置、分配重定向以太网连接端口、指定端口与刀片的对应关系、使能刀片重定向功能、设定同一个刀片控制台允许远程连接的数目、确定关闭空闲远程连接的时机等各种功能,其他组成单元都是在重定向管理单元的控制下工作的。
如图1所示,采用上述的刀片服务器控制台实现本发明的刀片服务器控制方法,具体包括以下步骤:
1、将同一机箱内的所有刀片主板通过接口控制器连接到控制台总线,所有连接到控制台总线的刀片主板由管理刀片内的主控单元进行管理和重定向控制。与主控单元以太网连接的远程终端能够通过网络连接到所有刀片的控制台,通过控制台总线实现控制台命令传输和控制台数据传输两个方向的全双工传输。
在主控单元中设置一输入缓冲单元和输出缓冲单元,输入缓冲单元包括与刀片一一对应的FIFO队列;输出缓冲单元包括与刀片一一对应的FIFO队列和与刀片一一对应的缓存文件区。
如图1(a)所示,控制台命令传输步骤如下:
2、远程终端与主控单元通过以太网建立连接,主控单元分配并重定向以太网连接的端口与刀片的对应关系并管理远程终端和刀片建立或关闭远程连接。
2.1主控单元中的以太网连接管理控制单元实时监听远程终端的连接请求,当远程终端的连接请求到来时,判断请求的合法性,如果合法则建立连接。
2.2通过主控单元的重定向管理模块,系统管理员能够对刀片控制台重定向功能进行配置,分配重定向及指定以太网连接端口与刀片的对应关系,使能刀片重定向功能,设定同一个刀片控制台允许远程连接的数目,确定关闭空闲远程连接的时机等。
3、主控单元接收并缓存远程终端发送到各个刀片的控制台命令,并将控制台命令与对应的刀片地址组成主控数据包通过控制台总线发送到对应的刀片。
3.1以太网连接管理控制单元接收到远程终端发送到各个刀片的控制台命令后,将接收到的控制台命令依据以太网连接端口放入重定向管理单元指定的输入缓冲单元中的刀片对应的FIFO队列中,等待主控总线接口控制器将其发送到刀片的控制台。
3.2当主控单元的主控总线接口控制器检测到输入缓冲单元内任一FIFO队列中有远程终端发来的控制台命令时,取出该FIFO队列中的控制台命令并加上该FIFO队列对应的刀片地址,组成主控数据包通过主控数据线发送到对应的刀片的控制台。
本实施例中,主控数据包为MDATA数据帧。如图5所示,MBATA数据帧中的内容包括开始标识、与刀片的槽位地址一一对应的刀片地址、数据和停止标识;数据以字节为单位进行传输,长度可变,最小为1,最大长度可根据实际设计需求而定,本发明应用的设计最大长度设定为128。
如图1(b)所示,控制台数据传输步骤如下:
4、刀片监听控制台总线,发现主控数据包中的刀片地址与自身地址相同时,保存主控数据包中的数据。
4.1 当刀片的控制台的总线接口单元检测到主控数据包的开始标识后,接收随后的刀片地址,并与自身地址进行比较,如果地址不相同,则进入空闲状态,等待下一次的数据传输;如果地址相同,则开始接收并保存后面的数据直到检测到停止标识,然后进入空闲状态,等待下一次的数据传输。
4.2总线接口单元将接收的数据(控制台命令)传输到UART16550逻辑单元。LPC接口单元监控系统LPC总线上的数据读写命令和数据读写地址,如果数据读写地址为串口寄存器地址,则根据数据读写命令进行相应的处理;如果是写数据,则接收系统LPC总线上的数据并根据数据地址更新串口逻辑单元内的不同寄存器;如果是读数据,则读取UART16550逻辑单元内对应地址的寄存器内容并将数据传输到系统LPC总线。
4.3 UART16550逻辑单元对数据进行转换后由LPC接口单元经刀片主板的系统LPC总线发送给系统。UART16550逻辑单元按照业界标准的串口设备功能设计并根据本发明应用的实际情况进行了功能裁减。
5、步骤3的同时(全双工传输),任意一个刀片的刀片总线接口单元在UART16550逻辑单元有数据(控制台数据)需要发送时,发起控制台数据传输的开始标识,并在与自身对应的时隙到来时将控制台数据通过控制台总线传输给主控单元,主控单元在所有刀片时隙传输结束后,发出停止标识,完成一次控制台数据传输。一次控制台数据传输传输一个刀片数据包。
本实施例中,刀片数据包为BDATA数据帧。如图6所示,BDATA数据帧格式包括开始标识、刀片1时隙、刀片2时隙、……、刀片n时隙、停止标识。开始标识由有控制台数据需要传输的刀片的接口控制器发出,发出开始标识的刀片和所有其他的刀片随后进入数据传输状态,开始计数,当对应的控制台数据传输时隙到来时,如果有数据需要传输,则将数据发送到刀片数据线上;如果没有数据需要传输,则不做任何动作,直到主控单元发出停止标识,结束一次数据传输,所有刀片进入下一个数据传输周期。本实施例的这种BDATA数据帧格式设计,具有下述优点:
①、避免了多主总线的竞争问题。用开始标识同步所有刀片的数据传输动作,即使有多个刀片同时发出了开始标识,随后也都进入同一个数据传输周期。没有发出开始标识的刀片也进入传输周期,等待传输数据,在本次数据传输周期结束之前禁止再发出开始标识。
②、避免了控制台阻塞问题。本发明设计中所有刀片无优先级的限制,避免了优先级条件下由于高优先级节点交替占用总线而阻碍其他刀片发送数据的情况。
③、控制台数据实时传输。控制台总线上的刀片在每个传输周期内都有一次机会发送各自的控制台数据,并且在有数据需要传输时可以实时启动数据传输。
6、主控单元接收来自刀片的控制台数据并发送到远程终端。
6.1主控单元监控控制台总线,当检测来自刀片的控制台数据传输的开始标识后,开始对刀片数据时隙计数,将接收到的控制台数据放入刀片对应的输出缓冲单元的FIFO队列中,在计数值达到机箱中刀片总数时,发出停止标识结束一次控制台数据传输。
6.2 当对应的刀片与远程终端没有建立远程连接时,以太网连接管理单元将从输出缓冲单元的FIFO队列中输出的控制台数据先保存到对应的缓存文件区中,当缓存文件非空且远程连接已建立时,以太网连接管理单元再将缓存文件区中的内容输出并发送到远程终端,然后等待输出缓冲单元中对应的FIFO队列数据并发送。重定向管理单元可根据远程连接数目、时限等设定,控制以太网连接管理单元建立或者关闭某些远程连接。采用上述的缓存文件区的设置和功能,可实现无丢失的控制台数据传输。
本发明的刀片服务器控制方法简单、实时、无信息丢失的,对于降低刀片服务器系统的设计复杂度、降低设计成本、方便用户使用具有重大的意义。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。