CN107479721B - 远程多计算机切换技术的存储装置、系统及方法 - Google Patents

远程多计算机切换技术的存储装置、系统及方法 Download PDF

Info

Publication number
CN107479721B
CN107479721B CN201610804211.XA CN201610804211A CN107479721B CN 107479721 B CN107479721 B CN 107479721B CN 201610804211 A CN201610804211 A CN 201610804211A CN 107479721 B CN107479721 B CN 107479721B
Authority
CN
China
Prior art keywords
program
remote
remote kvm
server
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610804211.XA
Other languages
English (en)
Other versions
CN107479721A (zh
Inventor
李永富
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quanta Computer Inc
Original Assignee
Quanta Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quanta Computer Inc filed Critical Quanta Computer Inc
Publication of CN107479721A publication Critical patent/CN107479721A/zh
Application granted granted Critical
Publication of CN107479721B publication Critical patent/CN107479721B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/24Keyboard-Video-Mouse [KVM] switch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及远程多计算机切换技术的存储装置、系统及方法。远程多计算机切换通信技术可包括故障恢复的机制。在一些实施例中,系统可在系统上的控制面板程序与服务器上的控制器所执行的第一服务器程序之间建立第一远程多计算机切换通信。通过系统与控制器之间的第一网络连接可建立第一远程多计算机切换通信。接着,系统可检测与第一远程多计算机切换通信相关的错误。响应于错误,系统可在控制面板程序与由服务器上的操作系统程序或基本输入输出程序所执行的第二服务器程序之间建立第二远程多计算机切换通信。通过在系统与第二服务器程序之间的第二网络连接可建立第二远程多计算机切换通信。

Description

远程多计算机切换技术的存储装置、系统及方法
技术领域
本发明涉及一种远程多计算机切换(remote keyboard,video,and mouse)通信(session)的协议及机制。
背景技术
远程管理软件日益普遍地运用,以使用户远程地控制或管理服务器。实际上,现代服务器(modern servers)一般包括可让用户从另一装置远程地连接至服务器并控制服务器的远程多计算机切换(remote keyboard,video,and mouse,rKVM)功能(feature)。通过远程多计算机切换功能,用户可检视服务器的屏幕并存取服务器的部件,例如键盘和鼠标。远程多计算机切换功能通常是藉由服务器上的基板管理控制器(BMC)来操作。因此,远程多计算机切换通信的可靠性及稳定度绝大部分取决于基板管理控制器与远程多计算机切换的网络连接。若基板管理控制器或远程多计算机切换网络连接遇到问题时,远程多计算机切换通信可能会变得不稳定。在许多例子中,当基板管理控制器或远程多计算机切换网络连接遇到问题时,远程多计算机切换通信会提前终止。且若上述问题一直持续,用户可能甚至无法重建远程多计算机切换通信。这样可能会非常困扰用户,特别是当实体上存取服务器是很困难或无法实行时。
发明内容
本公开的其他特色和优点将于下述说明中阐述,且部分将从说明中显而易见或可从实施本文揭示原则时得知。本公开的特色和优点可藉由从所附的权利要求中特别指出的仪器和组合的方式来实现及获得。本公开的这些及其他特色将从下列说明及所附的权利要求中变得更充分显现,或可从实施本文所述的原理而得知。
公开一种针对远程多计算机切换通信的故障恢复的技术。在部分实施例中,系统可在系统上的控制面板程序与在服务器上藉由控制器,例如基板管理控制器(BMC)所执行的第一服务器程序之间建立第一远程多计算机切换通信。通过在系统和服务器上的控制器之间的第一网络连接可建立第一远程多计算机切换通信。举例来说,控制器可具有其自身通信接口以通过网络与系统通信。通信接口可不同于由服务器所使用的其他通信接口以建立网络连接。
再者,系统可以检测与第一远程多计算机切换通信相关的错误。举例来说,系统可以发送周期性命令给控制器及/或相关的服务器程序,请求控制器响应。命令可请求与其他服务器部件相关的网络地址,例如操作系统(operating system,OS)或者服务器的基本输入输出系统(BIOS)。若经过一段时间阀值或一连串的尝试阀值,系统仍然没有收到响应,则可推定错误产生于第一远程多计算机切换通信及/或系统与控制器之间的相关连接。
响应于错误,系统可在控制面板程序与在服务器上藉由操作系统或基本输入输出系统所执行的第二服务器程序之间建立第二远程多计算机切换通信。通过在系统与第二服务器程序之间的第二网络连接可建立第二远程多计算机切换通信。相对于(as opposedto)控制器,第二服务器程序可由服务器的操作系统或基本输入输出系统来执行或管理。再者,第二服务器程序可通过与第一服务器程序不同的通信接口来建立与控制面板程序的连接。用这种方式,即使控制器、第一服务器程序及/或与控制器相关的通信接口遇到错误或故障,第二服务器程序仍然会持续作用及与控制面板程序通信。
附图说明
为了描述其中本公开的上述及其他优点及特色可实现的方法,将藉由参照绘示于附图的特定实施例来呈现上文简要地描述的原理的更具体说明。要明白的是这些附图仅示出本公开的示例性实施例且非因而被视为限制其范围,通过使用附图以进一步的具体内容与细节来说明及解释本文的原则,其中;
图1A及图1B绘示示例性系统的实施例的示意图;
图2绘示远程多计算机切换服务的系统的示意图;
图3A绘示远程多计算机切换服务的示例性服务器端处理(process)的示意图;
图3B描述远程多计算机切换服务的示例性客户端处理的示意图;
图4绘示示例性远程多计算机切换服务的通信流的故障恢复的示意图;以及
图5描述远程多计算机切换服务的故障恢复的示例性方法的示意图。
附图标记说明
100、150、200:系统
102:总线
104、132:存储器
106:只读存储器
108、168:随机存取存储器
110:控制器
112、166:存储装置
114:模块一
116:模块二
118:模块三
120:输入设备
122、164:输出装置
124、158、212:通信接口
126:传感器
128:高速缓存
130、160:处理器
134:基本输入输出系统
136:显示器
152:芯片
154:电桥
156:用户接口部件
162:固件
170:基板管理控制器
202:网络
204:客户端
206:远程多计算机控制台
208:操作系统
210:显示器存储器
214:视频部件
218:主机连接
220:基板管理控制器连接
222、224、226:远程多计算机切换服务器程序
300、350:流程
302、304、306、308、310、312、314、316、352、354、355、356、358、360、361、362、364、500、502、504:步骤
400:通信流
402、404、406、408、410、412、414、416、418、420、422、424、426、428:消息
具体实施方式
接下来会详细说明本公开的各种实施例。当论述具体实施方式时,其应理解为仅用于说明用途。本领域技术人员将认知在不脱离本公开的精神与范畴下可使用其他部件及配置。
下文公开的是一种灵活且可靠的远程管理程序的系统、方法及非暂时性计算机可读存储介质。首先文中公开远程多计算机切换的示例性系统及配置的简要介绍说明。接下来将接续介绍远程多计算机切换包含例示及变化的详细说明。这些变化应根据阐述不同的实施例而在文中说明。本公开首先参照图1A及图1B。
如本文所使用,远程多计算机切换(rKVM)的术语是指远程管理的任何软件、协议、接口、固件及/或硬件,例如:远程桌面软件,其可被用来通过网络远程地存取或控制第一装置、第二装置的键盘、视频装置(亦即,屏幕或视频控制面板显示器)、鼠标以及任何其他部件,例如:存储装置或图像、存储装置、外围部件等。再者,远程多计算机切换可以藉由使用一种或多种协议来实施像是远程桌面协议(remote desktop protocol,RDP)、远程帧缓冲(remote framebuffer,RFB)、独立计算结构(independent computing architecture,ICA)、安全外壳协议(secure shell,SSH)、远程登录协议(telnet)、超文本传输协议(hypertext transfer protocol,HTTP)及/或其后继物和等效物,包含远程地存取或控制装置的键盘、视频装置、及鼠标的专用协议。
如本文使用,“BIOS”及“基本输入输出系统”可以指任何固件用于初始化系统的硬件部件、检查系统的硬件部件、从存储装置加载启动加载程序、从存储装置加载操作系统等。举例来说,如本文所使用,BIOS及基本输入输出系统的术语可被认知为在本领域中公知作为基本输入输出系统的固件或其后继物或等效物,像是可扩展固件接口(ExtensibleFirmware Interface,EFI)或是统一可扩展固件接口(Unified Extensible FirmwareInterface,UEFI)。
图1A和图1B绘示示例性系统的实施例。对本领域技术人员而言将显而易见实施本发明时有许多适当实施例。本领域技术人员将轻易明白其他系统的实施例也为可能的。
图1A绘示总线计算机系统结构的系统100,其中系统的部件使用总线102相互电性连接。此示例性系统100包括处理单元(中央处理器(CPU)或处理器130)以及耦接各种系统部件至处理器130的系统总线102,系统部件包括系统存储器104,像是只读存储器(ROM)106及随机存取存储器(RAM)108。系统100可包括直接链接于、紧邻于或整合为处理器130的一部分的高速缓存。系统100可借着处理器130从存储器104及/或存储装置112复制数据至高速缓存128以快速存取。因此,高速缓存可以藉由避免处理器130等待数据时延迟来提升表现。这些及其他模块可被控制或配置以控制处理器130来执行不同的动作。其他系统的存储器104也是可行的。存储器104可包含具有不同表现特性的许多不同类的存储器。处理器130可包括任何通用处理器及硬件模块或软件模块,像是存储在存储装置112的模块一114、模块二116、及模块三118配置以控制处理器,以及其中软件指令整合入实际处理器设计(actual processor design)的专用处理器。处理器130可实质上为包含多核心或处理器、总线、存储器控制器、高速缓存等的完全独立计算机系统(completely self-containedcomputing system)。多核心的处理器可能是对称或是非对称的。
为了让用户与计算机装置系统100互动,输入设备120可以表示任何数量的输入机制,像是语音输入的麦克风、手势或图像输入的触摸屏、键盘、鼠标、动作输入(motioninput)、语音(speech)等。输出装置122也可为本领域所公知的一或多种输出机制。在某些例子中,多模块的系统可以提供多种形态的输入让用户与计算机装置系统100进行通信。通信接口124一般可主控(govern)及管理用户输入及系统输出。在任何特定硬件配置的操作上是没有限制的,且因此随着硬件或固件配置的开发,文中基本特征可轻易取代为改良的硬件或固件配置。
存储装置112是非易失性存储器,像是非易失性存储器(NVMe)驱动器,且可以是可存储由计算机存取的数据的硬盘或是其他形式的计算机可读介质,例如磁式卡带(magnetic cassettes)、快闪存储卡(flash memory cards)、固态存储装置(solid statememory devices)、数字光盘(digital versatile disks)、磁带盒(cartridges)、随机存取存储器(RAM)108、只读存储器(ROM)106及其混合物等。
为了控制处理器130,存储装置112可以包含软件模块一114、模块二116、模块三118。其他硬件模块或软件模块也拟为提出。存储装置112可与系统总线102链接。在一方面中,执行特定功能的硬件模块可以包括存储在计算机可读介质内的软件部件,与所需硬件模块相连,例如处理器130、总线102、显示器136等,以执行功能。
控制器110可能是系统100上专用微控制器或处理器,例如BMC(基板管理控制器)。在某些实例中,控制器110可能是智能平台管理接口(Intelligent Platform ManagementInterface,IPMI)的一部分。再者,在某些实例中,控制器110可以被装载在系统100的主板或主要电路板上。控制器110可以管理在系统管理软件和硬件平台之间的接口。控制器110也可与各种系统装置及部件(内部及/或外部)通信,例如其他控制器或外围部件,如进一步于下文所述。
控制器110可对通知、警告、及/或事件产生特定响应且与远程装置或部件进行通信(例如:电子信箱消息、网络消息等),针对自动硬件复原程序(automatic hardwarerecovery procedures)产生指令或命令等。管理者可与控制器110远程通信,以初始化或进行特定的硬件复原程序或操作,如进一步于下文所述。
在系统100上的不同传感器(例如传感器126)可以向控制器110报告参数,例如冷却风扇的转速、电源状态、操作系统(OS)状态、硬件状态等。控制器110也可以包括系统事件日志(system event log)控制器及/或存储器以管理及维持由控制器110接收的事件、警告及通知。举例来说,控制器110或系统事件日志控制器可接收来自一或多个装置及部件的警告或通知,且在系统事件日志存储部件中维持警告或通知。
闪存(Flash memory)132可以是电子非易失性计算机存储介质或芯片,电子非易失性计算机存储介质或芯片可被系统100使用以存储及/或传输数据。闪存132可被电子式擦除及/或重新程序化。举例来说,闪存132可包括可擦除可编程只读存储器(erasableprogrammable read-only memory,EPROM)、电子可擦除可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、或互补金属氧化物半导体(complementary metal-oxidesemiconductor,CMOS)。当系统100首先电源开启时,闪存132可以存储由系统100执行的基本输入输出系统(BIOS)134的固件,连同一组基本输入输出系统134的专用配置。闪存132也可以存储由基本输入输出系统134使用的配置。
每次系统100启动时,基本输入输出系统134可以加载并执行作为顺序程序。基本输入输出系统134可以基于该组配置识别、初始化、并测试系统100中存在的硬件。基本输入输出系统134可在系统100上执行自我测试,例如开机自我测试(Power-on-Self-Test,POST)。自我测试可以测试不同硬件部件的功能,例如硬盘驱动器(hard disk drives)、光学读取装置(optical reading devices)、冷却装置、存储模块、扩充卡(expansion cards)等。为了存储操作系统(OS),基本输入输出系统134可寻址并分配存储器104、只读存储器106、随机存取存储器108及/或存储装置112的区域。基本输入输出系统134可加载启动加载程序及/或操作系统,且将系统100的控制转予操作系统。
系统100的基本输入输出系统134可包含固件配置,其定义基本输入输出系统134如何控制系统100中不同的硬件部件。固件配置可以决定系统100中不同的硬件部件启动的顺序。基本输入输出系统134可以提供允许不同的参数设定的接口,例如统一可扩展固件接口(UEFI),参数设定可不同于固件预设配置的参数。举例来说,用户(例如,管理者)可使用基本输入输出系统134以指定时序和总线的速度,定义附接至系统100的外围部件,监控健康状况(例如风扇转速及CPU温度限制),及/或提供影响系统100的整体表现及电源使用的各种其他参数。
虽然基本输入输出系统134被示出为存储于闪存132,然而本领域技术人员将轻易认知到基本输入输出系统134可以被存储到其他存储部件,例如存储器104或只读存储器106。然而,基本输入输出系统134被示出为存储在闪存132作为非限制性示例以用于说明目的。
系统100可包含一或多个传感器126。举例来说,一或多个传感器126也可以包含一或多个温度传感器、热传感器、氧气传感器、化学传感器、噪音传感器、热传感器、电流传感器、电压检测器、空气流量传感器、流量传感器、红外线温度计、热流量传感器、温度计、高温计等。举例来说,一或多个传感器126也可以藉由总线102与处理器、高速缓存128、闪存132、通信接口124、存储器104、只读存储器106、随机存取存储器108、控制器110及存储装置112进行通信。
在系统100中,不同部件(例如传感器126、处理器130、控制器110、存储装置112等)可以通过一种或多种不同方法与系统100中其他部件通信,例如内部集成电路总线(inter-integrated circuit bus,I2C bus)、系统管理总线(system management bus,SMBus)、增强型串行外围接口(enhanced serial peripheral interface,eSPI)、低接脚数(low pincount,LPC)、通用串行通信接口(general purpose input/output interface,GPIOinterface)、外围装置部件快速连接接口(peripheral component interconnect expressinterface,PCIe interface)等。
图1B绘示具有芯片结构的示例性计算机系统150,具有芯片结构的计算机系统可以被使用来执行描述方法或操作,且生成并显示图形用户界面(graphical userinterface,GUI)。计算机系统150可包括可被用于执行所公开技术的计算机硬件、软件、及固件。系统150可包括处理器160,表示可执行配置以实行不同运算的软件、固件、及硬件的任意数量的物理及/或逻辑上的不同资源。处理器160可与芯片152进行通信,芯片152可以控制处理器160的输入和输出。在这个实例,芯片152对输出装置164输出信息,例如显示器,且可从存储装置166读取和写入信息,举例来说,存储装置166可以包括磁性介质、固态或非易失性介质(例如NVMe)。芯片152可以从随机存取存储器168读取和写入数据。用来互相连接不同的用户接口部件156的电桥154也提供与芯片152的互相连接。这样的用户接口部件156可包括键盘、麦克风、碰触检测、处理电路、指向部件(pointing device),例如鼠标等。大致来说,系统150的输入可能来自于机器及/或人类所制造的不同来源。
芯片152可以跟一个或多个通信接口158互相连接,通信接口158可具备不同的物理接口。这样的通信接口可包含有线及无线的局域网络接口、广域无线网络接口、以及私人局域网络接口。本文所公开的用于产生、显示和使用图形用户界面的一些方法程序,可包括通过物理接口接收排序数据集(ordered datasets)或为机器本身藉由处理器160分析存储于存储装置166或随机存取存储器168的数据所产生。再者,机器可通过用户接口部件156接收来自用户的输入且执行适当的功能(functions),例如使用处理器160解译(interpreting)这些输入的浏览功能(browsing functions)。
再者,芯片152可以跟固件162通信,当电源开启时,固件162可以计算机系统150执行。根据固件162的配置设定,固件162可以识别、初始化和测试存在于计算机系统150的硬件。固件162可在系统150上执行自我测试,例如POST。自我测试可以测试不同硬件部件(152-168)的功能性。固件162可以寻址及分配随机存取存储器168的区域,以存储操作系统。固件162可以加载启动加载程序及/或操作系统,且交予系统控制权至操作系统。在某些状况,固件162可以与硬件部件(152-160及164-168)通信。此处,通过芯片152及/或一或多个其他部件,固件162可以与硬件部件(152-160及164-168)通信。在某些状况,固件162可以直接地与硬件部件(152-160及164-168)通信。
再者,芯片152可以与基板管理控制器170通信。基板管理控制器170可能是专用处理器或是控制器,其可执行管理、监测、及控制操作,相似于前述参照图1A所述的控制器110。举例来说,基板管理控制器170可以监视系统150和其他任意部件、产生日志、发送控制信号至一个或多个特定部件、及/或与其他装置部件进行通信、或是通过可为独立网络连接的网络连接来管理。
可明白的是示例性系统100和系统150可具有一个以上的处理器(例如处理器130及160),或是为通过网络连接在一起的计算机装置群组或丛集的一部分,以提供更好的处理能力。
图2说明远程多计算机切换(rKVM)的系统200的示意图。通过网络202,客户端204可与系统150建立远程多计算机切换通信。网络202可包含一个或多个网络。再者,网络202可以包括公共网络,例如因特网(Internet),也可以包括专用网,例如局域网络(localarea network,LAN),及/或也包括上述两者的结合,例如虚拟专用网(virtual privatenetwork,VPN)。
通过网络的链接,客户端204的系统可为任何计算装置,例如桌面计算机、笔记本计算机、平板计算机、智能型手机。客户端204的系统可包含用于远程多计算机切换的远程多计算机控制台206,其可用于以系统150上的远程多计算机切换服务器程序222-226建立远程多计算机切换通信。
为了通过网络202建立和维持网络链接,系统150可包括通信接口158。系统150也可包括用于执行各种指令并控制不同部件、操作及通信的处理器160及基板管理控制器170。系统150也可包括操作系统(OS)208,操作系统208被存储在系统150上的存储装置,例如存储装置166。操作系统208可管理系统的硬件和软件资源,并提供计算机程序服务。再者,通过网络202,操作系统208可以使用通信接口158去链接其他装置。通过网络202,操作系统208可以使用分配给操作系统208的指定网络地址(例如,因特网协议地址)去通信。
通过网络202,基本输入输出系统(固件162)可以使用通信接口158去通信。通过网络202,基本输入输出系统(固件162)可以使用分配给基本输入输出系统(固件162)的指定网络地址去通信。分配给基本输入输出系统(固件162)的网络地址可不同于分配给操作系统208的网络地址。然而,在某些状况下,当操作系统208在加载和运行时,基本输入输出系统(固件162)可能不会发送或接收网络通信。因此,在某些状况下,基本输入输出系统(固件162)可分配与操作系统208相同的网络地址,而不会造成地址冲突。
基板管理控制器170可以包含针对视频的视频部件214,例如视频图形阵列(videographics array,VGA)。视频部件214可以包括针对视频的指定硬件及/或软件。为了通过网络202建立网络连接,基板管理控制器170也可以包含通信接口212。为了让基板管理控制器170可通过网络202进行通信,在基板管理控制器170上的通信接口212可以使用分配给通信接口212的网络地址。分配给通信接口212的网络地址(且因而对基板管理控制器170)可不同于分配给基本输入输出系统(固件162)及操作系统208的网络地址。因此,在某些示例中,系统150可能针对基本输入输出系统(固件162)、操作系统208及基板管理控制器170具有不同网络地址。
系统150可以包括显示器存储器210,显示器存储器也包括分配给视频使用的存储器。显示器存储器210可包括硬件存储部件,例如随机存取存储器及/或虚拟存储器,例如逻辑数据(logical file)或盘片(disk)。系统150也可以包括芯片152,芯片152可以管理在处理器160、存储装置166、基本输入输出系统(固件162)、基板管理控制器170、显示器存储器210和其他任何部件之间的数据流。芯片152可以使不同的部件产生带内连接(in-bandconnections)。
系统150可包括由操作系统208主控(hosted)的远程多计算机切换服务器程序224、由基本输入输出系统(固件162)主控的远程多计算机切换服务器程序222及/或由基板管理控制器170主控的远程多计算机切换服务器程序226。远程多计算机切换服务器程序222-226可用于建立及维持与客户端204的系统的远程多计算机控制台206的程序的远程多计算机切换通信。
在基板管理控制器170的远程多计算机切换服务器程序226可使用在基板管理控制器170的通信接口212,去通过网络202与客户端204的系统的远程多计算机控制台206的程序建立基板管理控制器170的连结。再者,在基本输入输出系统(固件162)的远程多计算机切换服务器程序222与操作系统208的远程多计算机切换服务器程序224可以使用系统150的通信接口158,以通过网络202与客户端204的系统的远程多计算机控制台206的程序建立主机连接218。主机连接218与基板管理控制器连接220可与客户端204的系统的远程多计算机控制台206的程序通过网络202进行远程多计算机切换通信。
再者,主机连接218和基板管理控制器连接220可以使用不同的网络地址通过网络202去和远程多计算机控制台206的程序与客户端204的系统进行通信。举例来说,基板管理控制器连接220可基于分配给基板管理控制器170的网络地址,而主机连接218可基于分配给根据操作系统208及/或基本输入输出系统(固件162)的一个或多个不同网络地址。
远程多计算机切换服务器程序222-226可用于提供远程多计算机切换通信的故障恢复。举例来说,藉由基板管理控制器连接220,远程多计算机控制台206的程序可以建立与远程多计算机切换服务器程序226的远程多计算机切换通信。远程多计算机控制台206的程序可以周期性地向基板管理控制器170发送命令,请求基本输入输出系统(固件162)及/或操作系统208的网络地址。远程多计算机控制台206的程序可周期性地自基板管理控制器170接收基本输入输出系统(固件162)及/或操作系统208的网络地址。若远程多计算机控制台206的程序检测到与远程多计算机切换服务器程序226通过基板管理控制器连接220的目前远程多计算机切换通信有错误或故障,则远程多计算机控制台206的程序可以使用基本输入输出系统(固件162)及/或操作系统208的网络地址来持续远程多计算机切换通信,或通过主机连接218建立新的远程多计算机切换通信。
远程多计算机控制台206的程序可以基于事件检测错误或故障,例如封包丢失、连接退化、用户输入、远程多计算机切换服务器程序226未响应的判断、或是其他任何因素。举例来说,若远程多计算机控制台206的程序一段时间无法自远程多计算机切换服务器程序226接收一或多个响应,则远程多计算机控制台206的程序会检测到问题。为了说明,如前文所述,远程多计算机控制台206的程序可周期地发送命令至远程多计算机切换服务器程序226,请求基本输入输出系统(固件162)及/或操作系统208的网络地址。因此,若远程多计算机控制台206的程序有一段时间无法自远程多计算机切换服务器程序226接收响应、一段时间内为特定数量的远程多计算机切换服务器程序226响应、及/或超过一临界值的响应延迟,则远程多计算机控制台206的程序会检测到故障。
当远程多计算机控制台206的程序检测到错误,其可触发与远程多计算机切换服务器程序222或224通过主机连接218的连接。因此,通过主机连接218,远程多计算机控制台206的程序可与远程多计算机切换服务器程序222或224连接,以持续或重新建立与系统150的远程多计算机切换通信。以这样的方式,即使基板管理控制器170、远程多计算机切换服务器程序226、通信接口212及/或基板管理控制器连接220遇到问题或故障,远程多计算机控制台206的程序仍然会持续或维持与系统150的远程多计算机切换通信,否则这些问题或故障可能会影响远程多计算机控制台206的程序与远程多计算机切换服务器程序226之间的远程多计算机切换通信。
通过主机连接218与远程多计算机切换服务器程序222或224的远程多计算机切换通信期间,远程多计算机控制台206的程序可周期性地发送命令至远程多计算机切换服务器程序222或224,请求基板管理控制器170及远程多计算机切换服务器程序226的网络地址。因此,远程多计算机控制台206的程序周期性地接收来自远程多计算机切换服务器程序222及224的响应,验证基板管理控制器170和远程多计算机切换服务器程序226的网络地址。远程多计算机控制台206的程序可监测响应,以检测如之前所述的任何错误或故障。当远程多计算机控制台206的程序检测到错误或故障,通过基板管理控制器连接220,远程多计算机控制台206的程序可再次连接至远程多计算机切换服务器程序226,以持续或重新建立与系统150的远程多计算机切换通信。以此方式,即使主机连接218(例如基本输入输出系统(固件162)、操作系统208、通信接口158)遇到问题,远程多计算机控制台206的程序仍然可维持与系统150的远程多计算机切换通信。
基板管理控制器170、基本输入输出系统(固件162)和操作系统208可互相交换其各别网络地址,所以可各自提供其余的网络地址给远程多计算机控制台206的程序,以响应于从远程多计算机控制台206的程序所接受的请求或命令。举例来说,通过带内连接,基板管理控制器170、基本输入输出系统(固件162)和操作系统208可互相交换其各自的网络地址。当基板管理控制器170自远程多计算机控制台206的程序接收基本输入输出系统(固件162)及/或操作系统208的网络地址的请求时,通过带内连接,基板管理控制器170可响应自基本输入输出系统(固件162)及/或操作系统208所接收的网络地址。
使用各别的远程多计算机切换服务器程序222-226,基板管理控制器170、基本输入输出系统(固件162)及操作系统208可互相交换其各别网络地址。举例来说,远程多计算机切换服务器程序222-226的每一个可被配置以报告其各自网络地址至其他远程多计算机切换服务器程序222-226。在一些示例中,基本输入输出系统(固件162)及操作系统208可分别包括程序设计以分别回报基本输入输出系统(固件162)和操作系统208的网络地址给基板管理控制器170,且自基板管理控制器170取得基板管理控制器的网络地址。这些程序可为独立的程序或被合并在远程多计算机切换服务器程序222及224中。再者,这些程序可通过带内连接来通信,例如LPC、SMBus、I2C、eSPI、PCIe等。
图3A绘示远程多计算机切换服务的示例性服务器端流程300的示意图。在步骤302,服务器系统150电源开启且启动基板管理控制器170及基本输入输出系统(固件162)。在步骤304,基板管理控制器170发动其远程多计算机切换服务器程序226,且在步骤306,基本输入输出系统(固件162)发动其远程多计算机切换服务器程序222。
在步骤308,基本输入输出系统(固件162)发送其网络地址(例如IP地址)给基板管理控制器170,并且从基板管理控制器170取得基板管理控制器170的网络地址。基本输入输出系统(固件162)通过带内连接及命令与基板管理控制器170进行通信。
在步骤310,基板管理控制器170发送基本输入输出系统(固件162)的网络地址给远程客户端204的系统中的远程多计算机控制台206的程序。响应于从远程多计算机控制台206的程序所接收到的命令或请求,基板管理控制器170发送基本输入输出系统的网络地址。举例来说,基板管理控制器170可自远程多计算机控制台206的程序接收命令,请求基本输入输出系统的网络地址,而且在步骤310响应包括基本输入输出系统的网络地址的消息至远程多计算机控制台206的程序。
在某些状况中,步骤310可执行多次。举例来说,基板管理控制器170可周期性地发送基本输入输出系统(固件162)的网络地址给远程多计算机控制台206的程序。基板管理控制器170也可周期性地自远程多计算机控制台206的程序接收命令或请求,其可触发基板管理控制器170周期性地发送基本输入输出系统(固件162)的网络地址给远程多计算机控制台206的程序。
在步骤312,服务器系统150可启动操作系统208且自操作系统208发动远程多计算机切换服务器程序224。在步骤314,基板管理控制器170和操作系统208可彼此交换网络地址。举例来说,操作系统208可运行程序,此程序请求基板管理控制器170的网络地址,且回报操作系统208的网络地址给基板管理控制器170。此程序可能是独立程序或可为由操作系统208所主控的远程多计算机切换服务器程序224的一部分。
在步骤316,基板管理控制器170可发送操作系统208的网络地址给远程多计算机控制台206的程序。响应于来自远程多计算机控制台206的程序的命令或请求,基板管理控制器170可发送操作系统208的网络地址给远程多计算机控制台206的程序。此外,基板管理控制器170可以不同次数发送操作系统208的网络地址。举例来说,响应于来自远程多计算机控制台206的程序的周期性命令或请求,基板管理控制器170周期性地发送操作系统208的网络地址。
图3B绘示远程多计算机切换服务的示例性客户端流程350的示意图。在步骤352,客户端204的系统可发动远程多计算机控制台206的程序。在步骤354,远程多计算机控制台206的程序可与基板管理控制器的远程多计算机切换服务器程序226连接,以建立远程多计算机切换通信。远程多计算机控制台206的程序可使用基板管理控制器170的网络地址通过基板管理控制器连接220而与远程多计算机切换服务器程序连接。
在步骤355,通过现有的远程多计算机切换通信,远程多计算机控制台206的程序可以基板管理控制器的远程多计算机切换服务器程序226执行远程多计算机切换功能。远程多计算机切换功能可以是由远程多计算机控制台206的程序所使用的命令,以查询(query)基板管理控制器的远程多计算机切换服务器程序226及/或确认通信状态(例如启动运作、未启动等)或显示器存储器的数据。
在步骤356,远程多计算机控制台206的程序可发送命令给基板管理控制器170,请求基本输入输出系统(固件162)及/或操作系统208的网络地址。远程多计算机控制台206的程序可发送命令多次。举例来说,基于时间间隔或事件,远程多计算机控制台206的程序可周期性地发送命令。
在步骤358,远程多计算机控制台206的程序可判断远程多计算机控制台206的程序是否已自基板管理控制器170接收对命令的响应。当远程多计算机控制台206的程序收到响应,流程350回到步骤355,其中远程多计算机控制台206的程序可与远程多计算机切换服务器程序226继续远程多计算机切换通信。在步骤360,当远程多计算机控制台206的程序没有收到响应,则远程多计算机控制台206的程序连接至远程多计算机切换服务器程序222或224。使用在步骤356中自基板管理控制器170所接收的网络地址信息,远程多计算机控制台206的程序可连接远程多计算机切换服务器程序222或224。
藉由连接远程多计算机切换服务器程序222或224,远程多计算机控制台206的程序可通过主机连接218持续或重新建立远程多计算机切换通信。因此,当远程多计算机控制台206的程序检测通过基板管理控制器连接220连接至远程多计算机切换服务器程序226有问题时,可以通过主机连接218持续与服务器系统150的远程多计算机切换通信,且限制任何中断。
在步骤361,通过现有的远程多计算机切换通信,远程多计算机控制台206的程序可执行与基本输入输出系统/操作系统的远程多计算机切换服务器程序222或224的远程多计算机切换功能。再次,远程多计算机切换功能可以是由远程多计算机控制台206的程序所使用的命令,以查询远程多计算机切换服务器程序222及/或224、及/或确认通信状态(例如启动运作、未启动等)或显示器存储器的数据。
在步骤362,远程多计算机控制台206的程序可发送命令至操作系统208及/或基本输入输出系统(固件162),请求基板管理控制器170的网络地址。举例来说,基于时间间隔或事件,远程多计算机控制台206的程序可周期性地发送命令。
在步骤364,远程多计算机控制台206的程序判定远程多计算机控制台206的程序是否接收对于来自步骤361或步骤362的命令的响应。若远程多计算机控制台206的程序判定收到响应,则回到步骤361,其中远程多计算机控制台206的程序保持与远程多计算机切换服务器程序222或224的连接。在另一方面,若远程多计算机控制台206的程序判定一段临界时间内未接收到响应,则回到步骤354,其中远程多计算机控制台206的程序与远程多计算机切换服务器程序226连接,以通过基板管理控制器连接220持续或重新建立远程多计算机切换通信。
图4绘示对远程多计算机切换故障恢复的示例性通信流400的示意图。在消息402,基本输入输出系统(固件162)首先发送基本输入输出系统的网络地址给基板管理控制器170。在消息404,基板管理控制器170发送基板管理控制器的网络地址给基本输入输出系统(固件162)。
在消息406,远程多计算机控制台206的程序与基板管理控制器170(亦即,远程多计算机切换服务器程序226)建立远程多计算机切换连接。在消息408,远程多计算机控制台206的程序发送命令至基板管理控制器170,请求基本输入输出系统的网络地址。
在消息410,基板管理控制器170发送基本输入输出系统的网络地址至远程多计算机控制台206的程序。操作系统208启动之后,在消息412,操作系统208发送操作系统的网络地址给基板管理控制器170。在消息414,基板管理控制器170发送基板管理控制器的网络地址给操作系统208。
在消息416,远程多计算机控制台206发送命令给基板管理控制器170,请求操作系统的网络地址。在消息418,基板管理控制器170发送操作系统的网络地址给远程多计算机控制台206。
在消息420,远程多计算机控制台206发送另一个命令给基板管理控制器170,请求操作系统的网络地址及/或基本输入输出系统的网络地址,或执行远程多计算机切换的功能。在消息422,基板管理控制器170无法发送操作系统或是基本输入输出系统的网络地址,或是无法响应远程多计算机切换命令给远程多计算机控制台206。远程多计算机控制台206可以判定是否收到对消息420的响应,消息420包括命令,且接着发送消息424至操作系统208,以连接至操作系统208和远程多计算机切换服务器程序224。
在消息426,远程多计算机控制台206发送命令至操作系统208,请求基板管理控制器的网络地址。在消息428,操作系统208可发送基板管理控制器的网络地址给远程多计算机控制台206。
在消息430,远程多计算机控制台206发送另一个命令给操作系统208,请求基板管理控制器的网络地址。若远程多计算机控制台206没有收到来自操作系统208的响应,则可接着使用基板管理控制器的网络地址去连结基板管理控制器170。远程多计算机控制台206可周期性地持续发送命令和等待响应。若远程多计算机控制台206未收到一种或多种响应,则远程多计算机控制台206再次跟操作系统208或基本输入输出系统(固件162)连接。
图5绘示对远程多计算机切换故障恢复的示例性方法实施例。在步骤500,在远程多计算机控制台206的程序与远程多计算机切换服务器程序226之间,远程多计算机控制台206的程序建立远程多计算机切换通信。在基板管理控制器170与客户端204之间通过基板管理控制器连接220可建立远程多计算机切换通信。
步骤502,远程多计算机控制台206的程序可以检测在远程多计算机控制台206的程序与远程多计算机切换服务器程序226之间的远程多计算机切换通信的错误。举例来说,远程多计算机控制台206的程序发送一个或多个命令给远程多计算机切换服务器程序226并听取来自远程多计算机切换服务器程序226的一个或多个响应。一种或多种命令可以包括请求以触发远程多计算机切换服务器程序226发送基本输入输出系统及/或操作系统的网络地址给远程多计算机控制台206的程序。若远程多计算机控制台206的程序没有收到响应,可以判定错误的发生。一段时间内无法收到一种或多种响应、收到比预期少的响应、收到延迟临界值的响应等都可触发判定错误的发生。
步骤504,响应于错误,在远程多计算机控制台206的程序与远程多计算机切换服务器程序222或224之间,远程多计算机控制台206的程序可建立远程多计算机切换通信。举例来说,若远程多计算机切换服务器程序226不可取得时,远程多计算机控制台206的程序可与远程多计算机切换服务器程序222或224建立远程多计算机切换通信,且反之亦然。远程多计算机切换通信可以是与远程多计算机切换服务器程序226、222或224的早期远程多计算机切换通信的持续或延伸(extension),新的远程多计算机切换通信、或是早期远程多计算机切换通信的重新建立。
无论与哪个远程多计算机切换服务器程序222-226目前进行远程多计算机切换通信,远程多计算机控制台206的程序可以持续发送消息、并听取等待响应。若远程多计算机控制台206的程序无法收到临界数量值的响应,则可接着与另一个远程多计算机切换服务器程序连接,以维持或重建远程多计算机切换通信。
当与远程多计算机切换服务器程序222或224连接时,相较于与远程多计算机切换服务器程序226连接,远程多计算机控制台206的程序可连接至不同的网络地址及/或通信接口。以此方式,远程多计算机控制台206的程序可以维持对远程多计算机切换通信的故障恢复路径及连接。
在服务器端,基本输入输出系统(固件162)、基板管理控制器170、及操作系统208可通过带内连接进行通信,以互相交换各自的网络地址信息。举例来说,基板管理控制器170与基本输入输出系统(固件162)和操作系统208连接以交换网络地址的信息。基板管理控制器170可因此维持对基本输入输出系统(固件162)及操作系统208的网络地址信息;基本输入输出系统(固件162)可以维持对基板管理控制器170的网络地址信息;且操作系统208可维持对基板管理控制器170的网络地址信息。因此,基本输入输出系统(固件162)、基板管理控制器170及操作系统208可以报告各自的网络地址给远程多计算机控制台206的程序。
为了清楚解释,本发明描述相对于外围装置部件快速连接装置(peripheralcomponent interconnect express devices)。然而,根据之前示例的方法及概念,可执行对其他种装置的硬件恢复。实际上,这些文中所述的概念可以执行于硬件恢复,包括具热插入(hot-plug)或热抽换(hot-swap)支持的任何装置的热新增(hot-add)和热移除(hot-remove),例如通用串行总线(USB)装置。同样地,为了清楚起见及说明目的,外围装置部件快速连接装置被使用于此作为非限制性示例。
为了清楚说明,本发明的一些例子可能呈现为包含个别功能方块,包含具有装置、装置部件、软件内实施的方法的步骤或例程、或硬件及软件的组合的功能方块。
在某些实施例中,计算机可读存储装置、介质和存储器可以包括具有比特流等的有线及无线信号。然而,当上述部件被提及时,非暂时性计算机可读存储介质明确地排除例如能量、载波信号、电磁波和信号本身的介质(media)。
根据上述示例的方法可以被执行,使用存储于或另外可从计算机可读介质取得的计算机可读指令。举例来说,这些指令可以包括致使或另外配置通用计算机、专用计算机或特殊用途处理装置以执行特定功能或功能组的指令及数据。可使用的计算机资源的一部分可通过网络取得。举例来说,计算机可执行的指示可能是二进制、中间格式指令,例如汇编语言(assembly language)、固件或源代码(source code)。在根据之前所述的示例的方法期间,可用来存储指令、所使用的信息、及/或所创造的信息的计算机可读介质的示例包括磁盘片或光盘片、闪存、设置非易失性存储器的通用串行总线(USB)装置、网络存储装置等。
根据之前所述的装置执行方法可包括硬件、固件及/或软件,且可以采取任何各种形式要件(factors)。典型的此类形式要件的例子包括笔记本计算机、智能型手机、小型要件的个人计算机、个人数字助理等。本文所述的功能性也可实施于外围装置或附加适配卡(add-in cards)。进一步举例而言,这些功能性可以在不同芯片的电路板或不同处理过程中于单一装置实施。
指令、为了传递此类指令的介质、为了执行指令的计算机资源以及为了支持这样的计算机资源的其他结构为在这些公开中所述的提供功能性的方法。
虽然不同的例子或其他信息被用来解释所附权利要求的范畴内的方面,然而并非提示基于此类例子的特定特征或安排对权利要求进行限制,本领域技术人员将能够使用这些例子去衍生多元广义的执行方式。再者虽然有些标的特定于结构特征及/或方法步骤的示例而以文本阐述,将理解的是,在所附权利要求中定义的标的并不必然限于这些所述的特征或动作。举例来说,这样的功能性可以被不一样地分散于或是执行于除了本文所述者外的部件。而且,所述的特征和步骤公开作为落在所附的权利要求中的范畴内的系统及方法的部件的示例。
“一(a)”或“一(an)”单位的用语指的是一个或多个单位。因此,“一(a)”(或“一(an)”)、“一或多个”及“至少一个”的用语可以在本文中互相交换使用。“至少一个”、“一或多个”和“及/或”的词组为开放式叙述,在操作上可为合取的(conjunctive)或分离的(disjunctive)。举例来说,表述“A、B、及C的至少一个”、“A、B、或C的至少一个”、“A、B、及C的一或多个”、“A、B、或C的一或多个”以及“A、B、及/或C”意思是单指A、单指B、单指C、A及B一起、A及C一起、B及C一起、或ABC一起。另外,指出群组“的至少一个”的权利要求用语表示群组的一构成或群组的多个构成符合权利要求。举例来说,指示“A、B、及C的至少一个”以及“A、B、或C的至少一个”的权利要求用语表示单指A、单指B、单指C、A及B一起、A及C一起、B及C一起、或ABC一起。
“通信”的用语当用于本文中时是指任何耦合、连接、或交互作用,其利用任何系统、硬件、软件、协议或程序使用光信号及/或和电信号以交换信息或数据。
“计算机可读存储介质”、“计算机可读介质”、“计算机可读存储装置”或“计算机可读存储装置”的用语当在文中时使用时是指任何有形(tangible)的存储物,有形的存储物可以参与提供指令给处理器去执行。这样的介质或装置可以是任何形式,包括但不限于非易失性介质、易失性介质等。非易失性介质可以包括,例如NVRAM、SSD、NVMe、磁盘或光盘等。举例来说,易失性介质可包括易失存储器(dynamic memory),例如主存储器(mainmemory)。
举例来说,计算机可读介质或装置的一些形式可以包括软盘驱动器(floppydisk)、软盘驱动器(flexible disk)、硬盘机(hard disk)、存储器(memory)、磁带(magnetic tape)、或是任何磁性介质(magnetic medium)、磁光盘介质(magneto-opticalmedium)、CD-ROM、DVD、任何其他光学介质(optical medium)、穿孔卡(punch cards)、纸带(paper tape)、任何其他有孔形式的物理介质、RAM、PROM、EPROM、EEPROM、FLASH-EPROM、固态介质(solid state medium)像是存储卡、任何其他形式的存储芯片(memory chip)或卡匣(cartridge)、或是任何其他计算机可读的介质。当计算机可读介质或装置被配置为数据库时,将理解的是数据库可以是任何型式的数据库,例如:关联性、阶层性、面向对象性及/或其相似形式。因此,所公开技术可视为包含有形存储介质或装置、以及任何识别等效及后继介质或装置,其中存储了本发明的软件实施。

Claims (9)

1.一种用于远程多计算机切换通信的方法,其包含:
在一计算机装置运行的一控制面板程序与在一服务器上由一控制器所执行的一第一服务器程序之间建立一第一远程多计算机切换通信,其中该第一远程多计算机切换通信通过该计算机装置与该控制器之间的一第一网络连接而建立;
检测在该控制面板程序与该第一服务器程序之间与该第一远程多计算机切换通信相关的错误;
响应于错误,在该控制面板程序与由该服务器上的一操作系统或该服务器上的一基本输入输出系统的其中之一所执行的一第二服务器程序之间,建立一第二远程多计算机切换通信,其中通过在该计算机装置与该第二服务器程序之间的一第二网络连接来建立该第二远程多计算机切换通信,
其中该第一网络连接基于分配给一控制器的一第一网络地址所建立,且其中该第二网络连接基于分配给该操作系统或该基本输入输出系统的程序的至少之一的一第二网络地址所建立。
2.如权利要求1所述的方法,其中检测错误包含:
在该第一远程多计算机切换通信期间,向该控制器周期性地发送分配给该操作系统或该基本输入输出系统的程序的其中之一的一网络地址的请求,或执行一远程多计算机切换功能的请求;及
判定对请求的响应是否于一段预定时间期间内由该控制面板程序所接收。
3.如权利要求1所述的方法,其进一步包含:
从该第二服务器程序,基于对于请求该控制器的网络地址、或对于请求执行该远程多计算机切换功能的接收响应的故障,检测与该第二远程多计算机切换通信相关的一第二错误;以及
响应于该第二错误,在该控制面板程序与该第一服务器程序之间重新建立该第一远程多计算机切换通信,其中该第一远程多计算机切换通信通过在该计算机装置与该第一服务器程序之间的该第一网络连接来重新建立。
4.一种具有指令存储于其中的计算机可读存储装置,当一处理器执行该指令时,使该处理器执行下列操作,包含:
在一计算机装置运行的一控制面板程序与在一服务器上的一控制器所执行的一第一服务器程序之间建立一第一远程多计算机切换通信,其中通过该计算机装置与该控制器之间的一第一网络连接来建立该第一远程多计算机切换通信,
检测在该控制面板程序与由该控制器所执行的该第一服务器程序之间与该第一远程多计算机切换通信相关的错误;
响应于错误,在该控制面板程序与由该服务器上的一操作系统或该服务器上的一基本输入输出系统的程序的其中之一所执行的一第二服务器程序之间,建立一第二远程多计算机切换通信,其中该第二远程多计算机切换通信通过介于该计算机装置与该第二服务器程序之间的一第二网络连接来建立,
其中该第一网络连接基于分配给一控制器的一第一网络地址所建立,且其中该第二网络连接基于分配给该操作系统或该基本输入输出系统的程序的至少之一的一第二网络地址所建立。
5.如权利要求4所述的计算机可读存储装置,其中检测错误包含:
向该控制器发送对分配给在该服务器上运行的该操作系统或在该服务器上运行的该基本输入输出系统的其中之一的网络地址的请求,或是执行一远程多计算机切换功能的请求;及
当该控制面板程序在一段预定时间期间内无法从该控制器收到对于请求的响应时,则判定为错误。
6.如权利要求4所述的计算机可读存储装置,其中该第二网络连接是基于分配给该操作系统或该基本输入输出系统的至少一个的一第一网络地址而建立,而其中该第一网络连接是基于分配给该控制器的一第二网络地址而建立。
7.一种用于远程多计算机切换通信的系统,其包括:
一处理器:
一或多种计算机可读存储介质,该一或多种计算机可读存储介质存储一操作系统以及一基本输入输出系统的程序;以及
一控制器,该控制器配置以:
从该基本输入输出系统的程序接收与该基本输入输出系统的程序相关的一第一网络地址;
发送与该控制器相关的一第二网络地址给该基本输入输出系统的程序;
在一远程装置运行的一控制面板程序与由该控制器执行的一第一服务器程序之间建立一远程多计算机切换通信,其中该远程多计算机切换通信通过在该远程装置与该控制器之间的一网络连接而建立;
在该远程多计算机切换通信期间发送与该基本输入输出系统的程序相关的该第一网络地址至该远程装置;
发送与该控制器相关的一第二网络地址至由该操作系统执行的一第二服务器程序;
从该第二服务器程序接收与该操作系统相关的一第三网络地址;以及
发送与该操作系统相关的该第三网络地址至在该远程装置的该控制面板程序。
8.如权利要求7所述的系统,其中该控制器从该基本输入输出系统的程序接收该第一网络地址,且通过该控制器与该基本输入输出系统的程序之间的一带内连接来发送该第二网络地址至该基本输入输出系统的程序。
9.如权利要求7所述的系统,其进一步包含该远程装置,其中该远程装置包含一计算机可读存储介质,其中该计算机可读存储介质存储该控制面板程序,该控制面板程序包含一计算机可执行指令:
在该控制面板程序与由该控制器执行的该第一服务器程序之间,建立该远程多计算机切换通信并执行一远程多计算机切换功能;
检测在该控制面板程序与由该控制器执行的该第一服务器程序之间与该远程多计算机切换通信相关的错误;
响应于错误,在该控制面板程序与由该操作系统或该基本输入输出系统的程序的其中之一所执行的该第二服务器程序之间,建立一第二远程多计算机切换通信,其中,该第二远程多计算机切换通信通过该远程装置与该第二服务器程序之间的一第二网络连接而建立。
CN201610804211.XA 2016-06-07 2016-09-06 远程多计算机切换技术的存储装置、系统及方法 Active CN107479721B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/175,922 2016-06-07
US15/175,922 US10333772B2 (en) 2016-06-07 2016-06-07 Remote keyboard-video-mouse technologies

Publications (2)

Publication Number Publication Date
CN107479721A CN107479721A (zh) 2017-12-15
CN107479721B true CN107479721B (zh) 2020-12-29

Family

ID=58707341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610804211.XA Active CN107479721B (zh) 2016-06-07 2016-09-06 远程多计算机切换技术的存储装置、系统及方法

Country Status (5)

Country Link
US (1) US10333772B2 (zh)
EP (1) EP3255527B1 (zh)
JP (1) JP6383839B2 (zh)
CN (1) CN107479721B (zh)
TW (1) TWI616758B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180338007A1 (en) * 2017-05-17 2018-11-22 American Megatrends, Inc. System and method for providing extensible communication gateway with session pooling
US10649832B2 (en) * 2017-08-15 2020-05-12 Intel Corporation Technologies for headless server manageability and autonomous logging
CN108134827A (zh) * 2017-12-20 2018-06-08 联想(北京)有限公司 一种远程控制方法及电子设备
JP7221973B2 (ja) * 2018-01-31 2023-02-14 イリノイ トゥール ワークス インコーポレイティド 試験装置に遠隔サポートサービスを提供するシステム及び方法
CN108763138A (zh) * 2018-04-03 2018-11-06 郑州云海信息技术有限公司 一种通过单串口访问多系统的方法及系统
TWI679579B (zh) * 2018-08-17 2019-12-11 英業達股份有限公司 遠端登錄伺服器子系統方法與遠端登錄系統
CN109240862A (zh) * 2018-08-23 2019-01-18 郑州云海信息技术有限公司 一种带外管理测试bmc稳定性的方法
CN109862109B (zh) * 2019-03-06 2022-04-12 广州市高科通信技术股份有限公司 基于互联网的移动终端的控制方法、电子设备及存储介质
TWI709037B (zh) * 2019-05-23 2020-11-01 神雲科技股份有限公司 基本輸入輸出系統設置方法
CN112015690A (zh) * 2019-05-29 2020-12-01 中兴通讯股份有限公司 智能设备管理方法、装置、网络设备和可读存储介质
CN110865958B (zh) * 2019-11-19 2021-05-18 北京计算机技术及应用研究所 一种基于lrm的综合交换管理模块的设计方法
US11099838B1 (en) * 2020-02-26 2021-08-24 Quanta Computer Inc. Method and system for recovery for custom integrated circuit
CN111459863B (zh) * 2020-03-08 2021-09-28 苏州浪潮智能科技有限公司 一种基于nvme-mi的机箱管理系统及方法
US11126518B1 (en) * 2020-03-16 2021-09-21 Quanta Computer Inc. Method and system for optimal boot path for a network device
US11132471B1 (en) * 2020-08-21 2021-09-28 Waleed A. Elmandouh Methods and apparatus for secure access
CN113655900A (zh) * 2021-08-20 2021-11-16 合肥移瑞通信技术有限公司 计算机的操作设备及系统
TWI803213B (zh) * 2022-02-25 2023-05-21 研華股份有限公司 基於智慧型基板管理控制器的網路連線方法
US20230289194A1 (en) * 2022-03-14 2023-09-14 Sony Interactive Entertainment Inc. Sled level boot management control of compute nodes for context switching using boot controllers

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073637A1 (en) * 2002-10-15 2004-04-15 Larson Thane M. Server with LAN switch that connects ports based on boot progress information
CN1530803A (zh) * 2003-03-18 2004-09-22 国际商业机器公司 信息处理系统及其控制方法
US20060259612A1 (en) * 2005-05-12 2006-11-16 De Oliveira Henrique G Smart switch management module system and method
CN101227329A (zh) * 2008-02-18 2008-07-23 华为技术有限公司 网络设备管理的方法、装置及系统
CN101446936A (zh) * 2007-11-27 2009-06-03 宏正自动科技股份有限公司 改良式远程通用序列总线存取方法
CN101453356A (zh) * 2007-12-03 2009-06-10 联想(北京)有限公司 一种计算机切换器及其与多台服务器匹配的方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080313319A1 (en) * 2007-06-18 2008-12-18 Avocent Huntsville Corporation System and method for providing multi-protocol access to remote computers
US20090055157A1 (en) 2007-08-23 2009-02-26 Beyond Blades Ltd. Server Having Remotely Manageable Emulated Functions
JP5094377B2 (ja) * 2007-12-28 2012-12-12 富士通コンポーネント株式会社 Kvmスイッチ及び遠隔システム
US7792914B2 (en) * 2008-01-14 2010-09-07 Aten International Co., Ltd. Server with network-based remote access and server management functions using reduced number of network connections
WO2010030702A1 (en) * 2008-09-09 2010-03-18 Citrix Systems, Inc. Establishing a conference call by means of an url
TWI463327B (zh) 2010-11-01 2014-12-01 Aten Int Co Ltd 遠端管理裝置及遠端管理系統
US8869307B2 (en) * 2010-11-19 2014-10-21 Mobile Iron, Inc. Mobile posture-based policy, remediation and access control for enterprise resources
JP5708502B2 (ja) * 2012-01-04 2015-04-30 日本電気株式会社 情報保存システム、情報保存装置、及び、情報保存方法
US10003525B2 (en) * 2014-11-14 2018-06-19 Fisher-Rosemount Systems, Inc. Methods and apparatus to provide redundancy in a process control system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040073637A1 (en) * 2002-10-15 2004-04-15 Larson Thane M. Server with LAN switch that connects ports based on boot progress information
CN1530803A (zh) * 2003-03-18 2004-09-22 国际商业机器公司 信息处理系统及其控制方法
US20060259612A1 (en) * 2005-05-12 2006-11-16 De Oliveira Henrique G Smart switch management module system and method
CN101446936A (zh) * 2007-11-27 2009-06-03 宏正自动科技股份有限公司 改良式远程通用序列总线存取方法
CN101453356A (zh) * 2007-12-03 2009-06-10 联想(北京)有限公司 一种计算机切换器及其与多台服务器匹配的方法
CN101227329A (zh) * 2008-02-18 2008-07-23 华为技术有限公司 网络设备管理的方法、装置及系统

Also Published As

Publication number Publication date
JP6383839B2 (ja) 2018-08-29
US20170353347A1 (en) 2017-12-07
JP2017220241A (ja) 2017-12-14
TW201743222A (zh) 2017-12-16
EP3255527B1 (en) 2019-02-20
EP3255527A1 (en) 2017-12-13
TWI616758B (zh) 2018-03-01
US10333772B2 (en) 2019-06-25
CN107479721A (zh) 2017-12-15

Similar Documents

Publication Publication Date Title
CN107479721B (zh) 远程多计算机切换技术的存储装置、系统及方法
TWI684859B (zh) 遠端系統復原之方法
US9965367B2 (en) Automatic hardware recovery system
JP6453373B2 (ja) スケーラブルプールNVMeストレージボックス(a scalable pooled nvme storage box)
JP6530774B2 (ja) ハードウェア障害回復システム
US9489274B2 (en) System and method for performing efficient failover and virtual machine (VM) migration in virtual desktop infrastructure (VDI)
US9912535B2 (en) System and method of performing high availability configuration and validation of virtual desktop infrastructure (VDI)
US20150178096A1 (en) Remote bios update in system having multiple computers
EP3540605A1 (en) Cpld cache application in a multi-master topology system
US8677175B2 (en) Reducing impact of repair actions following a switch failure in a switch fabric
JP2021009683A (ja) ブートデバイスのリモート選択方法及びシステム
JP6864718B2 (ja) ハイブリッド電源のシステム及び方法
EP3739446B1 (en) Method and system for communication channels to management controller
US11144326B2 (en) System and method of initiating multiple adaptors in parallel
JP6703045B2 (ja) 機器ラック及び機器ラックからの状態報告を保証する方法
CN109391327B (zh) 自动组合数据中心数据的方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant