Bracket level boot management control for compute nodes for context switching using boot controllers

Remote boot control and network reconfiguration of computing nodes using BMC and cloud management controllers address the challenge of dynamic resource adaptation in data centers, enhancing flexibility and utilization efficiency.

CN119137577APending Publication Date: 2024-12-13SONY INTERACTIVE ENTERTAINMENT LLC
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
CN202380037681.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-03-14
Filing Date
2023-02-23
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

Data centers dedicated to online gaming face challenges in dynamically reconfiguring computing resources to handle fluctuating demand and provide other services due to static configurations and local configuration changes, leading to idle resources and limited flexibility.

Method used

Implementing remote boot control of computing nodes using board management controllers (BMC) and cloud management controllers to manage communication interfaces, enabling remote execution of BIOS firmware and dynamic reconfiguration of rack assemblies for different priority services.

Benefits of technology

Enables flexible utilization of computing resources by allowing remote booting and network reconfiguration, optimizing resource allocation and reducing idle time through dynamic adaptation to demand fluctuations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119137577A_ABST
    Figure CN119137577A_ABST
Patent Text Reader

Abstract

A method for performing system booting. The method includes receiving, at a board management controller (BMC), a boot configuration instruction to enable a compute node having an operating system, where the compute node is located on a carriage including a plurality of compute nodes, where the BMC is configured to manage a plurality of communication interfaces providing communications to the plurality of compute nodes. The method includes sending boot instructions from the BMC to a boot controller of the compute node over a communications interface to execute basic input / output system (BIOS) firmware stored remotely from the compute node. The method includes performing execution of the BIOS firmware on the compute node to initiate loading of the operating system for execution by the compute node.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to remote startup of computing resources, including remote boot control of computing nodes, such as computing nodes of a computing rack of a streaming array of a rack assembly, and network reconfiguration of rack assemblies of a data center. Background Art

[0002] In recent years, online services that allow online or cloud gaming to be performed in a streaming format between a cloud gaming server and clients connected via a network have been advancing. The streaming format has become increasingly popular due to the on-demand availability of game titles, the ability to perform more complex games, the ability to network between players for multiplayer gaming, the sharing of assets between players, the sharing of instant experiences between players and / or spectators, allowing friends to watch friends play video games, allowing friends to join friends in ongoing game play, etc.

[0003] A data center may be configured with a variety of computing resources to support online or cloud gaming. For example, each of the computing resources may be configured to execute a gaming application to allow for gameplay of the gaming application, which may then be streamed to a user. The demand for computing resources may fluctuate depending on one or more parameters, including the time period of demand, the geographic region of demand, the type of game being pursued, etc. Since online gaming has limited demand for computing resources, there may be periods of time when computing resources are idle.

[0004] Data centers dedicated to online gaming may be restricted from making short-term changes to computing resources in order to handle various other computing services other than gaming. That is, because computing resources are configured to play games, those computing resources are not configured to provide other types of services for applications that require different computing resource platforms. When computing resources are statically configured, changing the configuration of these computing resources to support these other services may be impossible. Changing the configuration of these computing resources may also be difficult when configuration parameters need to be changed locally on the computing resources before any configuration changes are implemented.

[0005] It is against this background that embodiments of the present disclosure are presented. Summary of the invention

[0006] Embodiments of the present disclosure are directed to providing remote booting of computing resources, including remote boot control of computing nodes such as computing nodes of a computing rack of a streaming array of a rack assembly, and network reconfiguration of rack assemblies of a data center.

[0007] Embodiments of the present disclosure disclose a method for performing system boot. The method includes receiving a boot configuration instruction at a board management controller (BMC) to enable a computing node having an operating system, wherein the computing node is located on a bracket including a plurality of computing nodes, wherein the BMC is configured to manage a plurality of communication interfaces that provide communication to the plurality of computing nodes. The method includes sending a boot instruction from the BMC to a boot controller of the computing node via a communication interface to execute a basic input / output system (BIOS) firmware stored away from the computing node. The method includes executing the execution of the BIOS firmware on the computing node to initiate loading of the operating system for execution by the computing node.

[0008] One embodiment of the present disclosure discloses a method. The method includes detecting, at a cloud management controller, a decrease in demand for a first priority service supported by a data center including a plurality of rack assemblies, wherein each of the plurality of rack assemblies is configured in a first configuration that facilitates the first priority service, wherein the cloud management controller manages the configuration of the plurality of rack assemblies, wherein the first priority service is implemented by a first plurality of applications. The method includes sending a reconfiguration message from the cloud management controller to a rack controller of the rack assembly to reconfigure the rack assembly from the first configuration to a second configuration, wherein the second configuration facilitates a second priority service, wherein the second priority service has a lower priority than the first priority service, wherein the second plurality of services is implemented by a second plurality of applications. The method includes configuring the rack assembly in the second configuration. Each of the plurality of rack assemblies includes one or more network storage devices and one or more streaming arrays, wherein each streaming array includes one or more computing brackets, wherein each computing bracket includes one or more computing nodes.

[0009] Other embodiments of the present disclosure disclose a non-transitory computer-readable medium storing a computer program for executing system startup. The non-transitory computer-readable medium includes program instructions for receiving a startup configuration instruction at a board management controller (BMC) to enable a computing node with an operating system, wherein the computing node is located on a bracket including a plurality of computing nodes, wherein the BMC is configured to manage a plurality of communication interfaces that provide communication to the plurality of computing nodes. The non-transitory computer-readable medium includes program instructions for sending a boot instruction from the BMC to a boot controller of the computing node via a communication interface to execute a basic input / output system (BIOS) firmware stored away from the computing node. The non-transitory computer-readable medium includes program instructions for executing the BIOS firmware on the computing node to initiate loading of the operating system for execution by the computing node.

[0010] Other aspects of the present disclosure will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The present disclosure may be best understood by referring to the following description taken in conjunction with the accompanying drawings, in which:

[0012] Figure 1 is a schematic diagram of a game cloud system for providing games between one or more computing nodes located in one or more data centers through a network according to one embodiment of the present disclosure.

[0013] Figure 2A is a schematic diagram of multiple rack assemblies including multiple computing nodes at a representative data center of a gaming cloud system according to one embodiment of the present disclosure.

[0014] Figure 2B is a schematic diagram of multiple rack assemblies including multiple computing nodes at a representative data center of a gaming cloud system according to one embodiment of the present disclosure, wherein each network storage device is accessible by a corresponding computing node array.

[0015] Figure 3 is a schematic diagram of a computing rack including a plurality of computing nodes within a rack assembly configured for remote boot control of the computing nodes using a board management controller according to one embodiment of the present disclosure.

[0016] Figure 4 is a flow chart illustrating steps in a method of performing remote boot of a computing node using a board management controller according to one embodiment of the present disclosure.

[0017] Figure 5is a flow chart illustrating steps in a method for reconfiguring rack assemblies of a data center according to one embodiment of the present disclosure.

[0018] Figure 6 Components of an example device are shown that may be used to perform aspects of various embodiments of the present disclosure. DETAILED DESCRIPTION

[0019] Although the following detailed description contains many specific details for illustrative purposes, those skilled in the art will appreciate that many variations and modifications of the following details are within the scope of the present disclosure. Therefore, the various aspects of the present disclosure described below are set forth without causing any loss of generality to the claims attached to this specification and without imposing any limitations on the claims.

[0020] In general, embodiments of the present disclosure provide remote boot control of computing nodes, such as computing nodes of a computing rack of a streaming array of a rack assembly. In particular, external hardware is used in the boot process of the computing node, so that no storage device is required, which allows flexibility in what software is used for external booting. Moreover, embodiments of the present disclosure provide network reconfiguration of rack assemblies of a data center. In particular, dark time utilization of computing resources of a data center is achieved by reconfiguring the networking of the rack assembly, such as reconfiguring the internal networking to provide computing node to computing node communication within the rack assembly through a network interface.

[0021] With the above general understanding of various embodiments, example details of the embodiments will now be described with reference to the various figures.

[0022] Throughout this specification, references to "applications" or "games" or "video games" or "game applications" or "game titles" are intended to refer to any type of interactive application that is directed by executing input commands. For purposes of illustration only, interactive applications include applications for gaming, word processing, video processing, video game processing, etc. Furthermore, the terms introduced above are interchangeable.

[0023] Figure 11 is a schematic diagram of a system 100 for providing a game between one or more computing nodes located at one or more data centers over a network 150 according to one embodiment of the present disclosure. According to an embodiment of the present disclosure, the system is configured to provide a game between one or more cloud gaming servers over a network, and more specifically configured for remote boot control of computing nodes such as computing nodes of a computing rack of a streaming array of a rack assembly, and network reconfiguration of rack assemblies of a data center to provide better utilization of computing resources (e.g., multi-purpose) in the data center. Cloud gaming includes executing a video game at a server to generate game-rendered video frames, which are then sent to a client for display.

[0024] It should also be understood that in various embodiments (e.g., in a cloud gaming environment or in a standalone system), a physical machine (e.g., a central processing unit CPU and a graphics processing unit GPU) or a virtual machine or a combination of the two may be used to perform cloud gaming and / or other services. For example, a hypervisor of host hardware (e.g., located at a data center) may be used to create a virtual machine (e.g., an instance) using one or more components of the hardware layer (such as multiple CPUs, memory modules, GPUs, network interfaces, communication components, etc.). These physical resources may be arranged in racks such as CPU racks, GPU racks, memory racks, etc., where a top-of-rack switch may be used to access the physical resources in the rack, which facilitates assembly and access to the fabric of components for the instance (e.g., when building a virtualized component of the instance). In general, the hypervisor may present multiple client operating systems configured with multiple instances of virtual resources. That is, each of the operating systems may be configured with a corresponding set of virtualized resources supported by one or more hardware resources (e.g., located at a corresponding data center). For example, each operating system may be supported by a virtual CPU, multiple virtual GPUs, virtual memory, virtualized communication components, etc. In addition, the configuration of an instance may be transferred from one data center to another to reduce waiting time. When saving a user's game session, the instant utilization defined for the user or game can be utilized. The instant utilization may include any number of configurations described herein for optimizing the fast rendering of video frames for a game session. In one embodiment, the instant utilization defined for a game or user can be transferred between data centers as a configurable setting. The ability to transfer instant utilization settings enables efficient migration of game play from data center to data center in situations where users connect to play games from different geographical locations.

[0025] System 100 includes a gaming cloud system 190 as implemented by one or more data centers (e.g., data centers 1 to N). As shown, an instance of gaming cloud system 190 may be located in data center N that provides management functionality, where the management functionality of gaming cloud system 190 may be distributed through multiple instances of gaming cloud system 190 at each of the data centers. In some implementations, gaming cloud system management functionality may be located outside of any data center.

[0026] The game cloud system 190 includes a distributor 191, which is configured to distribute each of the client devices (e.g., 1-N) to the corresponding resources in the corresponding data center. Specifically, when the client device 110 logs into the game cloud system 190, the client device 110 can be connected to the instance of the game cloud system 109 at the data center N, where the data center N can be geographically closest to the client device 110. The distributor 191 is capable of performing diagnostic tests to determine the available transmission and reception bandwidth to the client device 110. Moreover, the diagnostic test includes determining the waiting time and / or round-trip time between the corresponding data center and the client device 110. Based on the test, the distributor 191 is able to distribute resources to the client device 110 very specifically. For example, the distributor 191 is able to distribute a specific data center to the client device 110. In addition, the distributor 191 is able to distribute a specific computing node of a specific computing bracket of a specific streaming array of a specific rack assembly to the client device 110. The distribution can be performed based on the understanding of the assets (e.g., games) available at the computing node. Previously, client devices were allocated to data centers in general without further allocation to rack assemblies. In this way, distributor 191 is able to allocate client devices requesting execution of a particular computationally intensive gaming application to computing nodes that may not be running the computationally intensive application. In addition, load management of the allocation of computationally intensive gaming applications as requested by clients may be performed at distributor 191. For example, the same computationally intensive gaming application requested within a short period of time may be distributed across different computing nodes of different computing brackets in one rack assembly or different rack assemblies to reduce the load on a particular computing node, computing bracket, and / or rack assembly.

[0027] In some embodiments, allocation can be performed based on machine learning. Specifically, resource requirements can be predicted for a specific data center and its corresponding resources. For example, if it is predictable that a data center will soon handle many clients running computationally intensive game applications, then allocator 191 can allocate client devices 110 with that knowledge, and allocate resources that may not currently utilize all of its resource capabilities. In another case, it is expected that the load at data center N will increase, and allocator 191 can switch client devices 110 from the game cloud system 190 in data center N to the available resources in data center 3. In addition, future clients can be allocated to resources in a distributed manner, so that the load and demand of resources can be distributed throughout the game cloud system, across multiple data centers, across multiple rack assemblies, across multiple computing brackets and / or across multiple computing nodes. For example, client devices 110 can be allocated with resources from both the game cloud systems on data center N (e.g., by path 1) and data center 3 (e.g., by path 2).

[0028] Once the client device 110 is assigned to a specific computing node of a corresponding computing rack of a corresponding streaming array, the client device 110 is connected to the corresponding data center through a network. That is, the client device 110 can communicate with a data center different from the data center performing the assignment (such as data center 3).

[0029] According to one embodiment of the present disclosure, the system 100 provides games via a game cloud system 190, wherein the game is executed away from the client device (e.g., a thin client) of the corresponding user who is playing the game. The system 100 can provide game control to one or more users playing one or more games via a network 150 through a cloud game network or a game cloud system 190 in a single player mode or a multi-player mode. In some embodiments, the cloud game network or the game cloud system 190 may include a plurality of virtual machines (VMs) running on a hypervisor of a host, wherein one or more virtual machines are configured to utilize the hardware resources available to the hypervisor of the host to execute a game processor module. The network 150 may include one or more communication technologies. In some embodiments, the network 150 may include a 5th generation (5G) network technology with an advanced wireless communication system.

[0030] In some embodiments, wireless technology can be used to facilitate communication. Such technology may include, for example, 5G wireless communication technology. 5G is the fifth generation of cellular network technology. A 5G network is a digital cellular network in which the service area covered by the provider is divided into small geographic areas called cells. Analog signals representing sound and images are digitized in the phone, converted by an analog / digital converter, and transmitted as a bit stream. All 5G wireless devices in the cell communicate with the local antenna array and low-power automatic transceiver (transmitter and receiver) in the cell through radio waves on a frequency channel allocated by a frequency pool reused from other cells by a transceiver. The local antenna is connected to the telephone network and the Internet via a high-bandwidth optical fiber or wireless backhaul connection. As in other cell networks, a mobile device that crosses from one cell to another automatically transfers to the new cell. It should be understood that a 5G network is only an example type of communication network, and the embodiments of the present disclosure can utilize an earlier generation of wireless or wired communications and a newer generation of wired or wireless technology after 5G.

[0031] As shown, the system 100 including the game cloud system 190 can provide access to multiple game applications. Specifically, each of the client devices may be requesting access to different game applications from the cloud game network. For example, the game cloud system 190 may provide one or more game servers, which may be configured to execute on one or more hosts to execute one or more virtual machines of the corresponding game application. For example, the game server may manage a virtual machine that supports a game processor that instantiates an instance of a game application for a user. Therefore, multiple game processors of one or more game servers associated with multiple virtual machines are configured to execute multiple instances of one or more game applications associated with the game play of multiple users. In this way, the back-end server supports the streaming of media (e.g., video, audio, etc.) of the game play of multiple game applications to multiple corresponding users. That is, the game server of the game cloud system 190 is configured to stream data (e.g., rendered images and / or frames of the corresponding game play) back to the corresponding client device through the network 150. In this way, a computationally complex game application can be executed at the back-end server in response to a controller input received and forwarded by a client device. Each server is capable of rendering images and / or frames, which are then encoded (eg, compressed) and streamed to a corresponding client device for display.

[0032] In various embodiments, each virtual machine defines a resource environment that can support an operating system on which a game application can be run. In one embodiment, the virtual machine can be configured to simulate the hardware resource environment of a game console, wherein an operating system associated with the game console runs on the virtual machine to support the operation of a game work developed for that game console. In another embodiment, the operating system can be configured to simulate the native operating system environment of the game console, although the underlying virtual machine may be configured or may not be configured to simulate the hardware of the game console. In another embodiment, the simulator application runs on the operating system of the virtual machine, and the simulator is configured to simulate the native operating system environment of the game console, so as to support game applications and / or video games designed for that game console. It should be understood that various current and traditional game consoles can be simulated in a cloud-based game system. In this way, users can access game works from different game consoles via a cloud gaming system.

[0033] In one embodiment, the cloud game network or game cloud system 190 is a distributed game server system and / or architecture. Specifically, the distributed game engine executing the game logic is configured as a corresponding instance of the corresponding game application. In general, the distributed game engine uses each of the functions of the game engine and distributes these functions so that they are executed by numerous processing entities. Individual functions can be further distributed across one or more processing entities. The processing entity can be configured in different configurations including physical hardware, and / or configured as a virtual component or a virtual machine, and / or configured as a virtual container, wherein the container is different from the virtual machine because the container virtualizes the instance of the game application running on the virtualized operating system. The processing entity can utilize and / or rely on the server and its underlying hardware on one or more servers (computing nodes) of the cloud game network or game cloud system 190, wherein the server can be located on one or more racks. The coordination, allocation and management of the execution of those functions to various processing entities are performed by the distribution synchronization layer. In this way, the execution of those functions is controlled by the distribution synchronization layer, so that media (e.g., video frames, audio, etc.) can be generated for the game application in response to the player's controller input. The distributed synchronization layer enables those functions to be efficiently performed (eg, via load balancing) across distributed processing entities, allowing key game engine components / functions to be distributed and reassembled for more efficient processing.

[0034] Figure 2A 2 is a schematic diagram of a plurality of rack assemblies 210 including a plurality of computing nodes at a representative data center 200A of a gaming cloud system according to one embodiment of the present disclosure. For example, a plurality of data centers may be distributed throughout the world, such as in North America, Europe, and Japan.

[0035] The data center 200 includes a plurality of rack assemblies 220 (e.g., rack assemblies 220A to 220N). Each of the rack assemblies includes a corresponding network storage device and a plurality of computing brackets. For example, the representative rack assembly 220N includes a network storage device 211 and a plurality of computing brackets 230 (e.g., brackets 230A to 230N), and a rack controller 250 configured for internal and external network configurations of the components of the rack assembly 220N. Other rack assemblies may be similarly configured, whether modified or not. In particular, each of the computing brackets includes one or more computing nodes that provide hardware resources (e.g., processors, CPUs, GPUs, etc.). For example, the computing bracket 230N of the plurality of computing brackets 230 of the rack assembly 220N is shown as including four computing nodes, but it should be understood that the rack assembly may include one or more computing nodes. Each rack assembly is coupled to a cluster switch that is configured to provide communication with a management server configured to manage the corresponding data center. For example, chassis assembly 220N is coupled to cluster switch 240N. The cluster switch also provides communication to an external communication network (eg, the Internet, etc.).

[0036] Specifically, cluster fabrics (e.g., cluster switches, etc.) provide communication between rack assemblies, distributed storage devices 270, and communication networks in one or more clusters. In addition, cluster fabrics / switches also provide data center support services, such as management, logging, monitoring, event generation, boot management information tracking, etc. Cluster fabrics / switches can provide communication to external communication networks via router systems and communication networks (e.g., the Internet). Moreover, cluster fabrics / switches provide communication to storage devices 270. Depending on design choices, a rack assembly cluster at a representative data center of a game cloud system may include one or more rack assemblies. In one embodiment, a cluster includes fifty rack assemblies. In other embodiments, a cluster may include more than or less than fifty rack assemblies.

[0037] In one network configuration, each rack assembly provides high-speed access to a corresponding network storage device, such as within the rack assembly. In one embodiment, such high-speed access is provided through a PCIe fabric that provides direct access between a computing node and a corresponding network storage device. In other embodiments, high-speed access is provided through other network fabric topologies and / or networking protocols, including Ethernet, wireless bandwidth technology, remote direct memory access (RDMA) over converged Ethernet (RoCE), etc. For example, in rack assembly 220N, high-speed access is configured to provide a data path 201 between a specific computing node of a corresponding computing bracket and a corresponding network storage device (e.g., storage device 211). In particular, the network fabric (e.g., PCIe fabric) is capable of providing a network storage bandwidth (e.g., access) of greater than 4 gigabytes / second (GB / s) per computing node (e.g., of a rack assembly) at non-volatile memory express (NVMe) latency. Moreover, the control path 202 is configured for communicating control and / or management information between the network storage device 210 and each of the computing nodes.

[0038] In another network configuration (not shown), each rack assembly provides high-speed access between computing nodes. For example, the PCIe structure within the rack assembly is reconfigured to allow high-speed communication between computing nodes within the rack assembly, such as when forming a supercomputer, or when forming an artificial intelligence (AI) computer.

[0039] As shown in the figure, the cloud management controller 210 and / or the corresponding rack controller (eg, rack controller 220B) of the data center 200 are connected to ( Figure 1 190B) to allocate resources to the client device 110. In particular, the cloud management controller 210 and / or the corresponding rack controller (e.g., rack controller 220B) of the data center 200 can work with the instance of the game cloud system 190' and communicate with (e.g., Figure 1The initial instance of the game cloud system of the cloud computing system (of the cloud computing system) works in combination to allocate resources to the client device 110. That is, the allocator 191 can work with the cloud management controller 210 and / or the corresponding rack controller to allocate users to resources. In one embodiment, the corresponding rack controller is primarily responsible for starting the rack assembly, including configuring internal and external networking, powering on the computing brackets and / or computing nodes located in the corresponding rack controller, etc. The corresponding rack controller communicates status information such as how many working brackets are available for allocation, how many computing nodes are available for allocation, etc. to the cloud management controller 210. This information can be communicated to the allocator 191 by the cloud management controller 210 and / or the corresponding rack controller, so that the allocator can use the information to allocate users to resources (e.g., computing nodes, etc.). In some embodiments, the corresponding rack controller and the network storage device are configured on the same server (e.g., on the network storage device), while in other embodiments, the corresponding rack controller and the network storage device are configured on separate servers. In some embodiments, allocation is performed based on asset awareness such as knowing what resources and bandwidth are needed and what resources and bandwidth exist at the data center. Thus, for purposes of illustration, embodiments of the present disclosure are configured to assign a client device 110 to a particular compute node 232 of a corresponding compute tray 231 of a corresponding rack assembly 220B.

[0040] In one embodiment, the cloud management controller 210 in cooperation with the corresponding rack controller is configured to manage remote boot control of computing resources, such as computing nodes of corresponding computing racks of corresponding stripe arrays in the corresponding rack assembly. In another embodiment, the cloud management controller 210 is configured to directly manage remote boot control of computing resources, such as computing nodes of rack servers located within the streaming array of the rack assembly. That is, the cloud management controller 210 and / or the corresponding rack controller are configured to manage remote boot control of computing resources. For example, the cloud management controller 210 and / or the corresponding rack controller manages boot files (e.g., BIOS firmware) for startup and / or boot operations of computing nodes that may be located at storage addresses 265A to 265N of the remote storage device 260. In addition, the cloud management controller 210 and / or the corresponding rack controller may control boot management information 270 for each of the computing resources within the data center, including boot images (e.g., operating system images) of computing nodes within the data center. In this way, the computing resources of a data center (e.g., rack assemblies, computing trays, computing nodes, etc.) can be dynamically reconfigured depending on how those resources are expected to be used (e.g., for gaming during peak user demand, for secondary uses (e.g., performing system maintenance, performing AI modeling, executing applications via a supercomputer, etc.) during off-peak times).

[0041] The streaming rack assembly is centered around a computing node running a gaming application, a video game, and / or streaming the audio / video of a gaming session to one or more clients. In addition, within each rack assembly, game content can be stored on a storage server that provides network storage. Network storage is equipped with a large number of storage devices and high-speed networking to serve many computing nodes. Specifically, storage protocols (e.g., network file systems, etc.) will be implemented by a network fabric topology for accessing network storage devices. Data can be stored in a network storage device using file storage, block storage, or object storage technology based in part on the underlying storage protocol being implemented. For example, a PCIe fabric storage protocol can access block storage data from a network storage device.

[0042] Figure 2B 2 is a schematic diagram of a plurality of rack assemblies 221 including a plurality of computing nodes at a representative data center 200B of a gaming cloud system according to one embodiment of the present disclosure, wherein each network storage device is accessible by a corresponding array of computing nodes. Data center 200B is similar to data center 200A, wherein similarly numbered components have similar functionality. However, data center 200B has a rack assembly configuration different from that in data center 200A, such network storage devices being accessed by computing nodes of a single streaming array, as will be described below.

[0043] The data center 200B includes a plurality of rack assemblies 221 (e.g., rack assemblies 221A to 221N). Each of the rack assemblies includes one or more streaming arrays, wherein each streaming array includes a corresponding network storage device and a plurality of computing brackets. For example, the representative rack assembly 221N includes streaming arrays 225A to 225N. In one embodiment, the rack assembly 221N includes two streaming arrays, wherein each streaming array includes a network storage device, a corresponding rack controller, and a plurality of computing brackets. For example, the streaming array 225N includes a plurality of computing brackets 235 that access the network storage device 211N. Specifically, each streaming array includes a corresponding rack controller and a network storage device. For example, in the representative rack assembly 221N, the streaming array 225A includes a rack controller 250A and a network storage device 211A, and the streaming array 225N includes a rack controller 250N and a network storage device 211N. In some embodiments, the corresponding rack controller and network storage device pair of the corresponding streaming array are configured on the same server (e.g., on the network storage device), while in other embodiments, the corresponding rack controller and the network storage device are configured on separate servers. In other embodiments, the rack assembly includes multiple streaming arrays each having a corresponding network storage device, wherein a single rack controller of the rack assembly manages boot control (e.g., remote boot control, control boot management information, etc.) of computing resources across all streaming arrays. In other embodiments, the rack assembly includes multiple streaming arrays that access a single network storage device, wherein a single rack controller of the rack assembly manages boot control (e.g., remote boot control, control boot management information, etc.) of computing resources across all streaming arrays. As shown, each of the computing brackets includes one or more computing nodes that provide hardware resources (e.g., processors, CPUs, GPUs, etc.). For example, the computing bracket 235X of the streaming array 225N is shown as including four computing nodes, but it should be understood that the rack assembly may include one or more computing nodes.

[0044] Each rack assembly is coupled to a cluster switch via a corresponding rack controller, which is configured to provide communication with a cloud management controller 210 configured to manage a corresponding data center, as previously described. The corresponding rack controller provides internal management of resources in the corresponding rack assembly, including handling internal details of resources in the corresponding rack assembly, including ensuring those resources are started and maintained in working order by performing management of computing nodes, computing racks, streaming arrays, etc. For example, rack assembly 221N is coupled to cluster switch 240N. The cluster switch also provides communication to other rack assemblies (e.g., via the corresponding cluster switch) and to external communication networks (e.g., the Internet, etc.).

[0045] In a network configuration, each streaming array of the corresponding rack assembly provides high-speed access to the corresponding network storage device, as described above. In one embodiment, this high-speed access is provided by a PCIe fabric that provides direct access between a computing node and a corresponding network storage device. In other embodiments, high-speed access is provided by other network fabric topologies and / or network protocols including Ethernet, wireless bandwidth technology, remote RDMA on RoCE, etc. The computing node can run a game application and stream the audio / video of a game session to one or more clients, where the corresponding network storage device (e.g., a storage server) saves the game application, game data, and user data. For example, in the streaming array 225A of the rack assembly 221N, high-speed access is configured to provide data and control paths 201A between a specific computing node of the corresponding computing bracket and a corresponding network storage device (e.g., storage device 211A). Moreover, path 201N is configured to communicate control and / or management information between the network storage device 211N in the streaming array 225N and each of the computing nodes.

[0046] In another network configuration (not shown), each rack assembly provides high-speed access between computing nodes. For example, the PCIe structure within the rack assembly is reconfigured to allow high-speed communication between computing nodes within the rack assembly, such as when forming a supercomputer, or when forming an artificial intelligence (AI) computer.

[0047] As previously described, the cloud management controller 210 of the data center 200B, in cooperation with the corresponding rack controller of the corresponding rack assembly, communicates with the allocator 191 to allocate resources to the client device 110 to support the game cloud system 190' and / or 190. In some embodiments, the allocation is performed based on asset awareness such as knowing what resources and bandwidth are needed and what resources and bandwidth exist at the data center. Therefore, for illustration, the embodiments of the present disclosure are configured to allocate the client device 110 to a specific computing node 232B of the corresponding computing bracket 231B of the corresponding streaming array of the rack assembly 221B.

[0048] Figure 3 is a schematic diagram of a computing rack 300 including a plurality of computing nodes within a rack assembly according to one embodiment of the present disclosure, wherein the rack assembly is configured to remotely boot control the computing nodes at the computing node level and / or perform network reconfiguration of the corresponding rack assembly using a board management controller (e.g., via management control from a corresponding rack controller) .

[0049] Each computing rack 300 includes one or more computing nodes (eg, nodes 1 through 4) located within a corresponding rack assembly. Figure 3 A computing bracket including four computing nodes is shown, but it should be understood that any number of computing nodes, including one or more computing nodes, may be provided in the computing bracket. The computing bracket 300 may provide a hardware platform (e.g., a circuit board) that provides computing resources (e.g., through computing nodes). For example, the computing bracket 300 shows a plurality of computing nodes (e.g., nodes 1 to 4) and auxiliary hardware that supports the operation of the computing nodes. The computing bracket 300 may be previously described in Figure 2A to 2B or implemented in any other rack assembly, streaming array, and / or data center configuration.

[0050] The tray switch / management panel 315A aggregates the switching functions provided by the PCIe switch board 320A and the tray management functionality provided in part by the board management controller (BMC) 350. For example, the PCIe switch board 320A provides communication with the computing nodes, such as via NT ports. Moreover, the BMC 350 can be directly connected to the PCIe switch board 320A (e.g., through 1x channels, etc.). As shown, in one embodiment, the panel 315A aggregates multiple functionalities, but in other embodiments, those functionalities can be implemented separately on independent controllers.

[0051] According to one embodiment of the present disclosure, in one network configuration, the computing bracket 300 is configured to provide high-speed access to network storage devices for computing nodes using PCIe (e.g., Gen 4-4th generation) communication. In other network configurations, the computing bracket 300 is configured to provide high-speed communication between computing nodes of the computing bracket within the rack assembly and to provide high-speed communication using computing nodes between different rack assemblies. In one implementation, the computing node includes several I / O interfaces. For example, the computing node may include an M.2 port, and multiple paths of PCIe Gen4 (bidirectional) through channels and / or connections 335. In particular, the computing bracket 300 includes a PCIe switch board 320A, which provides 8 PCIe paths to the array-level PCIe fabric, for example, through PCIe wiring 305 (e.g., quad form factor double density QSFP-DD, etc.). PCIe (e.g., Gen4) interfaces (e.g., 4 paths) can be used to expand the system with additional devices. In particular, the PCIe interface is used to connect to a PCIe fabric including a PCI Express switch 320A for high-speed storage.

[0052] Additionally, each compute node is configured for an Ethernet connection 311 (eg, Gigabit Ethernet) via an Ethernet patch panel 310A, which is configured to connect Ethernet cables between the compute nodes (eg, nodes 1-4) and a rack-level network switch (not shown).

[0053] Moreover, the board management controller (BMC) 350 is partially configured to manage one or more communication interfaces (e.g., PCIe, USB, UART, GPIO, I2C, I3C, etc.) that can each be used to communicate with a computing node on the computing bracket 300 through a corresponding communication channel (e.g., 330). That is, the BMC 350 is configured to manage multiple communication interfaces that provide communication to multiple computing nodes (e.g., computing nodes 1 to 4) on the computing bracket 300. For example, the corresponding computing node includes one or more universal asynchronous receiver transmitter (UART) connections configured for transmitting and / or receiving serial data. For example, there may be one or more UART ports intended for management purposes (e.g., connecting a computing node to the BMC 350). Moreover, the port can be used for remote control operations, such as "power on", "power off" and diagnostics. In addition, another UART port can provide serial console capabilities.

[0054] Rack management of resources in the computing rack 300 may be facilitated via one or more communication channels that implement a management interface used by a corresponding rack controller of a corresponding rack assembly. The management interface is capable of transmitting data packets, such as from a corresponding rack controller, to various different devices within the computing rack 300. The management interface may implement rack management, such as provided by a rack controller (e.g., by executing software), where the rack management software may be executed on the rack controller, or implemented via a network storage device. The rack management software is executed via the management interface to manage rack operations, including powering on / off systems and resources on the compute rack 300 (e.g., BMC 350, PCIe switch 320A, fan 390, power inserter board 340A, compute nodes 1 to 4, boot controllers on compute nodes, etc.), performing firmware updates, obtaining rack status (e.g., temperature, voltage, fan speed, etc.), and providing access to the UART interface of each compute node and / or BMC 350 (each of the compute nodes and / or the BMC may have a UART or other interface / port, including I2C, I3C, etc.).

[0055] In particular, management control may be provided from the corresponding rack controller via an Ethernet connection 335 and / or via a management interface via PCIe cabling 305 as a primary implementation. For example, the management interface 327 may be implemented as a separate line in the PCIe cabling 305 (e.g., two separate lines for sending and receiving) for use or further transmission via I2C, I3C, UART, or other interfaces. In particular, in addition to the Ethernet connection, the management interface may also be provided via a low-speed interface (e.g., as implemented by BMC 350) implemented using I2C, I3, UART, or other communication interface for transmitting control packets to devices within the computing bracket 300. In that manner, management control of the management interface may be provided via Ethernet (i.e., as a first option) and / or via the management interface 327 and / or I2C, I3, UART, or other communication interface via PCIe (i.e., as a second option).

[0056] In one embodiment, such as when receiving a board management control signal from PCIe cabling 305 via management interface 327, the management interface may be provided directly by BMC 350 or via the BMC, and delivered to the computing node via communication interface 330 (e.g., I2C, I3C, UART, etc.). For example, a PCIe channel may be reserved for communicating with BMC 350 for board management control. As previously described, BMC 350 is configured to manage the communication interface so as to provide remote booting of the computing node. Specifically, BMC 350 is configured to communicate with the corresponding computing node on the computing bracket 300 so as to perform remote booting control of the computing node. For example, external hardware is used in the booting process of the computing node as handled by the communication between BMC 350 and the corresponding computing node, so that no memory is required to store the boot configuration file on the computing node. This allows flexibility in what software is used to externally boot the computing node. That is, a computing node may be configured with one operating system to provide services belonging to a first priority level (eg, primary services), and then reconfigured with a second operating system to provide services belonging to a second priority level (eg, secondary services).

[0057] In another embodiment, the management interface may be provided by or via another auxiliary chip, such as a complex programmable logic device (CPLD) 325, that manages communications through the management interface (i.e., the transmission of management data packets). Transmission through the CPLD 325 provides a robust backup mechanism for delivering board management control signals throughout the computing bracket 300. For example, when Ethernet communications fail for some reason, or because the PCIe switch 320A fails, or when the BMC 350 crashes (e.g., its firmware is corrupted), the backup mechanism can be implemented. Under those conditions, the management interface 327 is configured to implement a backup mechanism for delivering board management control signals. Specifically, the management interface 327 connects to the first CPLD 325, where the CPLD 325 is also connected to the BMC 350 or directly connected to an I2C, I3, UART or other communication interface (e.g., through a channel 330). That is, the backup mechanism allows the BMC 350 to be bypassed so that the board management control signals from the chassis controller are forwarded through the CPLD 325 for delivery through the CPLD 330. Although the backup mechanism is very robust and reliable (i.e., the CPLD 325 is not prone to failure because it is implemented on dedicated hardware), the associated performance may be limited in range and / or speed. However, the backup mechanism provides a means of implementing at least low-level operations (i.e., as programmed through the CPLD 325), including power control, reset operations, and collecting some limited diagnostic information.

[0058] BMC 350 can provide board or bracket management functionality. In addition, the board management provided by BMC 350 includes control, monitoring and management of computing nodes, which is performed by delivering serial data (e.g., power on / off, diagnostic and logging information) for each computing node through connection 330 using signals such as universal asynchronous receive transmission (UART), I2C, I3C, etc. In other embodiments, board management can be provided through other interfaces, such as through Ethernet (e.g., directly communicating with the rack controller). In addition, BMC 350 can be configured to provide electromagnetic compatibility (EMC) control for controlling electromagnetic energy, and use UART signals to debug hysteresis. BMC 350 can be configured to provide control status information, such as via a control status light emitting diode (LED) on management panel 330A, and the management panel is further configured to use LEDs and buttons to give status. BMC 350 is configured to provide temperature and voltage monitoring. Moreover, BMC 350 is configured to manage fans configured for cooling. BMC 350 is further configured to manage Ethernet connections for board management.

[0059] The computing bracket 300 includes a power inserter board 340A, which is configured to provide power to the corresponding computing bracket through one or more bus connections. That is, the BMC 350 can be configured to use general purpose input / output (GPIO) and / or I2C and / or some other communication interface to the power inserter 340A to achieve power control / delivery to the computing nodes (e.g., from a 12 volt or higher bus to each computing node) through the rack management bus 360. In particular, the power management functionality is used to manage and / or monitor the power delivery to each of the computing nodes through the power inserter board 340A through the connection. For example, the rack management bus 360 can be configured to provide a bracket management control signal. Power monitoring (e.g., sensors connected through I2C channels for measuring current, voltage and other conditions of the power connection to the computing node) can be performed and communicated through the rack management bus 360, such as the communication of the BMC 350. The BMC 350 in cooperation with the corresponding rack controller may decide to power off a single component (e.g., a computing node, etc.) or the entire computing rack under certain conditions (including, for example, when a voltage is detected to be too high, a temperature is detected to be too high, a fan 390 on the computing rack 300 is detected to be unable to operate), and other adverse conditions. In particular, the BMC 350 provides management information (e.g., power conditions, etc.) to the corresponding rack controller to provide rack management instructions. The BMC 350 may operate independently of the rack controller under certain extreme conditions, but generally works in conjunction with the rack controller to perform rack management. For example, rack management is performed externally (e.g., via the rack controller) and communicated internally through the rack management bus 360, including when the rack is disabled under various conditions, such as during the expected maintenance of the rack assembly, the loss of power to the corresponding data center due to a fire in the data center, or the implementation of backup power, etc. Each computing node also includes a power input connector (e.g., designed for 12 volts) that is connected to the power inserter 340A through a corresponding bus bar 370 connection.

[0060] Figure 4 4 is a flowchart 400 illustrating steps in a method for performing remote boot and / or remote start of a computing resource according to one embodiment of the present disclosure. For example, flowchart 400 may be implemented to use a board management controller (BMC) of a computing tray and a corresponding boot controller (e.g., Figure 3The computing nodes of a computing bracket including one or more computing nodes are remotely booted by the boot controller 320-1 of computing node 1, or the boot controller 320-2 of computing node 2, or the boot controller 320-3 of computing node 3, or the boot controller 320-4 of computing node 4) in the computing bracket 300 of the computing bracket 300. Specifically, in one embodiment, external hardware is used in the boot process of the computing node, so that no storage device is required to boot the OS, which allows flexibility in what software to use for external booting. In other embodiments, the computing node may be configured with a storage device that is partially used to boot the OS. Although flowchart 400 is for a computing node located in a data center (such as Figure 2A to 2B Although described with respect to remote booting of a compute node of a compute rack configured within a streaming array of a rack assembly within a cluster of rack assemblies within a data center (e.g., a BIOS, operating system configuration files, etc.), it should be understood that the operations described in flowchart 400 are generally applicable to remote booting of any computing resource that uses external hardware to store boot files (e.g., BIOS, operating system configuration files, etc.).

[0061] Traditionally, system startup may execute one or more processes to initialize hardware and load an operating system for executing application programs by a computer system. In general, a computer system typically loads and executes a basic input / output system (BIOS) firmware from a read-only non-volatile memory (e.g., an electrically erasable programmable read-only memory (EEPROM), a flash memory, etc.) located on the computer system at system startup to initialize the hardware of the computer system. For example, when one or more boot loaders are executed as indicated by the BIOS firmware, once the hardware is initialized, the BIOS firmware is used to boot the operating system from a local storage device (such as a hard disk or a solid-state drive (SSD)). Since the BIOS firmware for loading the operating system is located in a read-only memory, any operating system change requires changing the BIOS firmware on the local system and / or changing settings that may be stored in a local volatile memory (which may be configured with a battery source), which is difficult to complete in a sufficient amount of time to meet the real-time needs of the client and / or user.

[0062] Embodiments of the present disclosure provide remote booting of a computing node of a computing bracket (e.g., a game console), wherein there is no built-in storage device for booting on the platform (computing node) and there is no BIOS. In some embodiments, optionally, there may be a minimal storage device for a boot controller (located inside or outside the boot controller), while in other embodiments, there is no storage device for the boot controller. That is, remote booting includes exchanging BIOS implementations, and exchanging OS implementations accordingly. For example, a computing node may be configured to play games using a back-end streaming server of a cloud gaming system, wherein the computing node is located on a computing bracket of a streaming array including multiple computing brackets. The streaming array is located on a rack assembly of a data center including multiple clustered rack assemblies, wherein each rack assembly includes one or more network storage devices and one or more streaming arrays. External hardware is used in the booting process, so that no storage device is required (e.g., using less hardware to reduce the cost of each computing node), such as a non-volatile memory for storing BIOS firmware and / or other boot configuration files. The computing node may be configured with volatile memory, such as random access memory (RAM) used during the operation of the computing node (e.g., to run an operating system, applications, etc.). In this way, the remote booting of the computing node provides flexibility in what software is externally booted (e.g., selected between multiple BIOS firmwares), thereby providing flexibility in loading the desired operating system for executing applications on the computing node. For example, when the computing node is configured to play a game, an operating system suitable for playing the game is loaded to execute the game application on the computing node (e.g., without the need to use BIOS). On the other hand, the computing node may be configured for services other than games that require different operating systems. In that case, the computing node may be configured to load a new operating system using a remote boot process in order to execute other applications that provide services other than games on the computing node. The BIOS firmware required between gaming and non-gaming use cases is very different. Non-gaming use cases transform the computing node and / or system into a personal computer (PC) running a typical or standard OS. In this case, the BIOS may be stored locally in a non-volatile memory (e.g., SSD, etc.). On the other hand, the gaming use case is more specific and does not necessarily require a classic BIOS firmware. For example, certain features associated with BIOS firmware (e.g., functions that the BIOS typically performs to implement a PC's OS) are unnecessary in a gaming use case, while BIOS functionality that implements a gaming console may be performed by the gaming OS itself during loading, without the use of dedicated BIOS firmware.

[0063] Specifically, at 410, the method includes, at a board management controller (e.g., Figure 3The BMC 350 of the computing bracket 300 in the data center receives a boot configuration instruction (from the cloud management controller) to enable the computing node with the operating system. The instruction can be delivered to the BMC by the cloud management controller via the corresponding rack controller. The cloud management controller can be configured to cooperate with the corresponding rack controller to manage the remote boot of the computing nodes in the data center, and to collect information related to the boot of the computing nodes, such as storing the boot image of each of the computing nodes. More specifically, the BMC of the corresponding computing bracket is configured to manage multiple communication interfaces that provide communication for multiple computing nodes. For example, the communication interface may include an inter-integrated circuit (I2C) bus interface (for example, using PCI, PCIe, etc. to provide communication), I3C, or PCI, or PCIe, or UART, or USB, etc.

[0064] In particular, the BMC uses one or more of these communication interfaces to communicate with a boot controller within a computing node. In one implementation, the BMC may be configured on a system on a chip (SoC) that includes a central processing unit (CPU) and other components. The BMC will run a corresponding OS and / or firmware that may be loaded from a non-volatile memory (e.g., flash, ROM, etc.) located on an integrated circuit of the SoC, where the BMC's OS needs to be managed and / or updated. Although the BMC may provide management and update functionality, management of the BMC may be provided through a side channel, such as using a previously described interface with the BMC. Figure 3 The management interface of the related introduction. Therefore, the management interface can be used to manage and update the OS and / or firmware, and also perform other operations on the BMC described previously, including power on / off, power reset, etc. Moreover, the boot controller on the computing node may require firmware to function, and the firmware may be loaded by various methods depending on the hardware design. For example, in one embodiment, the boot controller may integrate its firmware into a small ROM located on the motherboard of the corresponding computing node. In another embodiment, the boot controller firmware can be loaded remotely by the BMC on the corresponding computing bracket, wherein the BMC pushes the boot controller firmware through a low-level interface via channel 330 (e.g., I2C, UART, serial peripheral interface (SPI), etc.).

[0065] This boot controller may be configured to load BIOS firmware on the main CPU of the computing node (e.g., RAM or system memory used by the CPU) according to the boot instructions. More specifically, in an embodiment of the present disclosure, the BMC is configured to provide instructions for loading BIOS and operating systems from one or more remote locations to the boot controller, wherein the instructions are provided via PCIe, USB, UART or other interfaces, and the BIOS firmware can be accessed via PCIe fabric. In addition to triggering the boot process, the BMC may also perform other operations to return information about the motherboard and / or boot controller of the computing node. For example, the board information may include board type, board version, serial number. The board information may also include CPU information including model, serial number, hardware encryption key and other information of the computing node. This board information can be used to verify compatibility between the BIOS or operating system to be booted to the corresponding computing node. In another implementation, the BIOS or operating system may be locked to a specific computing node system (e.g., by means of encryption).

[0066] Specifically, at 420, the method includes sending a boot instruction from the BMC to a boot controller of the computing node through the selected communication interface to execute BIOS firmware stored remotely from the computing node. That is, the BIOS firmware is stored in external hardware (i.e., external to the computing node). For example, the BIOS firmware may be stored on a memory of the BMC (memory on the BMC chip), or may be stored on a remote storage device of the corresponding rack assembly, or may be stored on a storage device remote from the corresponding rack assembly (e.g., a remote storage device accessible to one or more rack assemblies of a data center, such as Figure 2A to 2B at storage device addresses 260A to 260N).

[0067] In one embodiment, a pull method is implemented to access the BIOS firmware located outside the computing node. Specifically, the pull method includes receiving a request from a computing node at a BMC to access a storage address storing the BIOS firmware. That is, the storage address of the BIOS firmware is known to the corresponding rack controller, and further, the storage address is included in the boot configuration instruction provided to the BMC by the rack controller, wherein the storage address is included in the boot instruction delivered from the BMC to the computing node. The pull method further includes facilitating the computing node to access the storage address to retrieve the BIOS firmware. That is, the BMC forwards the request through an appropriate network to provide access to the BIOS firmware and deliver the BIOS firmware back to the computing node. Although the corresponding rack controller understands the internal details required for the remote boot control of the corresponding computing node, the upper cloud management controller can provide high-level instructions, such as moving the bracket and / or rack assembly from one operating mode to another operating mode. In this way, specific computing node management can be performed at the rack assembly level.

[0068] In another embodiment, a push method is implemented to access the BIOS firmware located outside the computing node. Specifically, the push method includes accessing the BIOS firmware at a storage address located outside the computing node by the BMC. That is, the storage address of the BIOS firmware is known to the corresponding rack controller, and further, the storage address is included in the startup configuration instruction provided to the BMC by the rack controller. In this way, the BMC can access the BIOS firmware from the storage address. The push method further includes sending the BIOS firmware from the BMC to the computing node in association with the boot instruction so that the computing node executes the BIOS firmware. For example, the BIOS firmware may be included in the boot instruction. In this way, the computing node does not need additional steps to access the BIOS firmware.

[0069] In one embodiment, a communication interface is selected based on an operating system initialized and loaded by executing BIOS firmware. For example, each of the operating systems may be associated with a corresponding communication interface. The control signal of each of the operations is delivered to the computing node through the corresponding communication interface. For example, the control signal of the first operating system is delivered through a first communication interface (I2C), and the control signal of the second operating system is delivered through a second communication interface (e.g., UART), and the control signal of the third operating system is delivered through a third communication interface (e.g., USB), and so on. In this way, based on the operating system, the boot instructions delivered from the BMC to the boot controller of the computing node are delivered through the corresponding communication interface managed by the BMC for conveying the control signal of the operating system. Therefore, the BMC can be configured as a switch to deliver the control signal for each of the multiple operating systems that the computing node can load through the corresponding communication interface obtained from the multiple communication interfaces managed by the BMC. That is, the BMC bracket switch board provides a communication interface to the computing node, such as PCI, PCIe, I2C, UART, USB, etc.

[0070] At 430, the method includes executing execution of BIOS firmware on a computing node (CPU) to initiate loading of an operating system for execution by the computing node. As previously described, execution of BIOS firmware (e.g., a first stage boot loader) may include execution of other related firmware and / or software or programs (e.g., a second stage boot loader) to complete loading of an operating system for use by the computing node. That is, in one scenario, the BIOS firmware may be complete and may not require any additional firmware and / or software or programs to complete loading of an operating system, while in other scenarios, the BIOS firmware may be used to call and / or execute other firmware and / or software or programs.

[0071] For illustration purposes only, the execution of the BIOS firmware may include initialization of system hardware and loading of an operating system. Specifically, the BIOS firmware may perform a power-on self-test (POST) process to initialize system hardware (e.g., video card and other hardware devices), perform memory tests and set memory and drive parameters), set plug-and-play devices, identify any boot devices to load a subsequent boot loader (e.g., second stage, etc.), which is executed to load an operating system (e.g., an operating system configuration file).

[0072] In addition, the method includes loading at least a portion of the operating system into the system memory (e.g., RAM) of the computing node from a storage address, wherein the storage address includes one or more operating system configuration files. In one embodiment, the entire operating system can be loaded into the system memory. However, some operating systems may be too large, and it is more efficient to load some parts of the operating system into the system memory and use and / or load the remainder when needed. For example, the first part of the operating system is loaded into the system memory of the computing node for execution. Moreover, the second part of the operating system can be stored in a corresponding network storage device for access by the computing node during the execution of the operating system (e.g., by PCIe fabric). For example, the data and / or files in the second part can be accessed and loaded into the system memory as needed, or can be remotely accessed during the execution of the operating system.

[0073] In another embodiment, the cloud management controller is cooperatively configured with the corresponding rack controller to manage one or more images of the operating system executed on the computing nodes. That is, the cloud management controller and / or the corresponding rack controller of the data center are configured to manage the software image (e.g., operating system image) of each computing node. In this way, the cloud management controller and / or the corresponding rack controller manages the operating systems executed on the various computing nodes and rack assemblies available in the data center. For example, the management information may be stored in Figure 2A Or in the storage device 260 of 2B.

[0074] In one embodiment, during the operating system exchange of the computing node, one or more jobs executed on the computing node before the conversion can be suspended and / or transferred for continued execution. For example, the computing node can use a first operating system execution application different from the new operating system loaded by remote boot to perform a job. For ease of explanation, the job can be associated with a game application, wherein the game application may be suspended so that it can be started later, or transferred to another computing node for seamless transfer and execution. For example, the state (for example, configuration) of the computing node during the job execution is captured and stored. The state is transferred to another computing node, such as on the same computing bracket, or on the same streaming array, or on the same rack assembly, or on the computing nodes of different rack assemblies in the same data center, or on the computing nodes in different data centers. The state is initialized in another computing node, and then the application is executed on the new computing node through the transferred state to resume the job. In one embodiment, the suspended job is suspended at a selected pause point or a pause point, and the pause point is not a predefined pause point, such as the end of the level of the game application.

[0075] During the dark time utilization of the computing node (e.g., enabled by remote booting), alternative jobs running on the computing node may also be suspended and / or transferred to a different data center for continued execution, such as transferred to a data center with low utilization, or transferred to a portion of the same data center with low utilization. For example, these alternative jobs may include machine learning workloads, or some other types of CPU / GPU workloads, or video encoding workloads, etc. In various implementations, the decision whether to suspend and / or transfer these alternative jobs may depend on what type of business model is implemented or selected for these alternative workloads. Some cost-effective jobs purchased by customers can be implemented by purchasing a certain amount of computing hours (i.e., excluding any transfers) and can be executed during different dark time periods. Other customers may pay for the cost of completing a certain number of jobs during a certain period (e.g., dark time period, extended dark time period), and may need to suspend and transfer from one resource to another. Other situations may occur, such as suspending a job without transferring when a higher-paying job needs service. In this way, the embodiments of the present disclosure support the suspension and transfer of jobs in various scenarios.

[0076] A big difference between the game use case and the dark time utilization case (i.e., performing alternative jobs) is its scale. Specifically, the game workload usually involves a single user occupying a single computing node, wherein multiple computing nodes support multiple users in a one-to-one relationship. For the dark time utilization use case, a single user may be an organization, so it is necessary to use many server racks or rack assemblies, and in some cases even the entire data center. For security reasons, the resources of these dark time utilization use cases will be allocated to organizational users according to rack assemblies (e.g., rack controllers and network storage devices) so that the resources of the dark time utilization allocated for the organization are isolated from other customers. This may also involve putting those resources into different networks with different firewall rules, etc., which requires reconfiguring those resources. This may also involve providing additional network access to those resources, such as accessing different computer networks of clients or requesting organizations or different organizations, such as for accessing data.

[0077] Purely for illustrative purposes, a suspended job may be associated with a game, video game, or game application. Specifically, an ongoing game may be paused at any time during the game, and the game may be resumed at the same time during the game at some future time (e.g., immediately after the transfer or at a later time). Capture and save the game state of the game and the configuration parameters of the computing node when executing the game. That is, the suspended game state saves enough data to reconstruct the game state when resuming the game. Therefore, when the game is paused, the game state is collected and saved in a storage device, so that the cloud gaming system does not need to store the state in the active memory or registers of the hardware. This enables the system to be freed up for other games or to provide other services to the computing node (e.g., dark time utilization of the computing node), and allows the game to be resumed from any remote computing node (e.g., client) at any time. When the game is resumed, the game state is loaded onto a new computing node (e.g., the same or different computing node) responsible for resuming the game. The loading of the game state may include generating a game state from a plurality of saved files and data structures, such as reconstructing the game state to put the computing node in the same or substantially the same state as when the game was paused.

[0078] For example, a cloud gaming system may include a cloud management controller, a rack controller, a storage device, and a plurality of computing nodes managed by the cloud gaming system and connected via a network. Each of the computing nodes configured as a game console may include a hardware layer, an operating system layer, and an application layer. The operating system layer is configured to interact with the hardware layer, and the operating system layer includes a state manager. The application layer is configured to instruct at least a portion of the operating system and a portion of the hardware layer. The application layer includes a game, wherein the state manager is configured to capture the game state data of the computing node when the game is paused and store the captured game state data. The state manager is also configured to apply the game state data on the same or different computing nodes so as to resume the game when the game is paused.

[0079] Figure 5 5 is a flowchart 500 illustrating steps in a method for reconfiguring a rack assembly of a data center according to one embodiment of the present disclosure. Flowchart 500 may be viewed at Figure 2A to 2B In particular, the flowchart can be implemented to perform rack assembly reconfiguration at any suitable point in time.

[0080] For example, the rack assembly can be reconfigured so that computing resources can be utilized during dark hours for a cloud gaming system that is primarily configured for gaming. That is, in a specific geographic area served by a regional data center, when computing resources are not fully utilized, there will be periods of less activity or inactivity (i.e., dark hours), such as during work or school hours, or during intensive social gatherings (e.g., during regional football games), or late at night or early in the morning, when users are not playing games on the cloud gaming system (e.g., sleeping time). Embodiments of the present disclosure provide for the utilization of computing resources during those dark hours or periods. In this way, monetizing computing resources during these dark hours is very important for cost reasons (i.e., increasing the net income of each computing resource within 24 hours).

[0081] Therefore, one or more rack assemblies of a data center can be reused during dark time to handle different workloads other than games. Generally speaking, it is more efficient to convert all computing nodes of the corresponding rack assembly to perform similar tasks (such as tasks performed during dark time), and network reconfiguration of the rack assembly may be required to complete those tasks. Because all computing nodes can be reconfigured to handle new tasks to be performed during dark time, the reconfiguration of the rack assembly will not adversely affect any computing nodes that may perform tasks (e.g., games) under the previous network configuration of that rack assembly. That is, the computing nodes that handle games can be transferred to other rack assemblies in the same data center or different data centers, as described above.

[0082] At 510, the method includes sending a reconfiguration message from the cloud management controller to the rack controller of the rack assembly to reconfigure the rack assembly from the first configuration to the second configuration. Other resources of the data center may also be reconfigured, including resources outside the cloud gaming rack assembly. In particular, some use cases may require a network / internet connection to other networks or other networks of a third-party cloud hosting company (e.g., AWS cloud computing). That connectivity may be established as part of the network configuration. In other cases, for security purposes, the resources of the data center may be reconfigured to isolate and / or prevent harmful workloads (e.g., from hackers, external companies requesting services, or untrusted customers) from negatively affecting the overall functionality and integrity of the data center in some way (e.g., primarily providing cloud gaming services). For example, reconfiguration can be used to counter a distributed denial of service (DDOS) or a hacker attack suffered by an external party or untrusted customer on certain parts of one or more data centers. In a first configuration, the rack assembly is configured to facilitate a first priority service implemented by a first plurality of applications (e.g., games). In a second configuration, the rack assembly is configured to facilitate a second priority service (e.g., executing artificial intelligence or AI services) implemented by a second plurality of applications. The second priority service (e.g., AI) may have a lower priority than the first priority service (games), such that the rack assembly is primarily managed to support games, but when gaming demand decreases (i.e., dark time), the rack assembly may be configured to handle the second priority service, thereby making computing resources more utilized throughout a 24-hour period.

[0083] In one implementation, the rack assembly includes one or more network storage devices and one or more streaming arrays, as previously described in Figure 2A to 2B Each of the streaming arrays includes one or more computing racks, wherein each computing rack includes one or more computing nodes.

[0084] A reconfiguration message may be sent to a rack assembly when it is deemed appropriate to switch to a different configuration. For example, reconfiguration of one or more rack assemblies may occur at a particular defined time (e.g., after 2 a.m. marking the start of dark time), or by predicting when dark time will occur by predicting usage of computing resources in a data center, etc. In one implementation, dark time is measured by a metric in which a cloud management controller is configured to detect a drop in demand for a first priority service supported by a data center including a plurality of rack assemblies. For example, each of the plurality of rack assemblies is configured in a first configuration that facilitates a first priority service (e.g., gaming).

[0085] Generally speaking, switching rack assemblies to different configurations may occur during dark hours. However, during certain time periods outside of dark hours, performing rack assembly reconfigurations may be beneficial. For example, if a second priority service (e.g., non-gaming workload) generates more revenue than a first priority service (e.g., gaming), then reverse prioritization may occur, in which the second priority service is prioritized over the second priority service (e.g., gaming). That is, the data center may deprioritize the first priority service (e.g., gaming).

[0086] In one implementation, the cloud management controller manages the network configuration of multiple rack assemblies. For example, the cloud management controller may maintain a list of the number of rack assemblies and the number of computing nodes that are configured or available for gaming (e.g., a first priority service), such as in a particular geographic area. In this way, when gaming demand decreases over a particular time period (indicating that dark time is about to begin), the cloud management controller may reconfigure one or more rack assemblies to support a second priority service that is superior to gaming, while still maintaining a sufficient number of rack assemblies to support current and predicted gaming demand by users of the data center.

[0087] At 520, the method includes configuring the rack assembly in a second configuration. In this manner, the rack assembly can execute applications supporting services of the second priority (eg, AI), thereby utilizing computing nodes that would otherwise be idle.

[0088] In one embodiment, reconfiguration of the rack assembly may include rebooting the compute nodes of the rack assembly into a different operating system. Generally, it may be beneficial to have the compute nodes of the rack assembly run the same operating system and further run the same version of the same operating system. For example, the different operating system may be better configured to support the execution of a second priority service (e.g., for executing applications during dark hours). The reboot of the compute node includes the reboot of the compute node previously in the Figure 4 The reboot process may include the operations described in , and may include receiving a boot configuration instruction at a BMC to enable a computing node with a new operating system. The computing node is located on a bracket including one or more computing nodes, and the BMC is configured to manage multiple communication interfaces that provide communication for the computing node. The reboot process may include sending a boot instruction from the BMC to a boot controller of the computing node through the communication interface to execute a basic input / output system (BIOS) firmware. The reboot process may include executing the BIOS firmware on the computing node to load an operating system for execution by the computing node.

[0089] In one embodiment, reconfiguration of the rack assembly, including rebooting a compute node of the rack assembly into a different operating system, may include loading new operating system software or other software components onto a corresponding network storage device of the rack assembly, or onto a cloud management controller or other storage device accessible to the cloud management controller.

[0090] In one embodiment, the reconfiguration of the rack assembly may include changing the network configuration of the rack assembly. That is, it is necessary to reconfigure the network configuration of the rack assembly to provide communication between the rack assembly and the remote rack assembly, wherein the network configuration defines the communication path between the rack assembly and another rack assembly. For example, it may be necessary to reconfigure the external access of the computing node using the virtual local area network, and it may be necessary to reconfigure the firewall accordingly to provide appropriate access to other remote rack assemblies (e.g., computing nodes located on the remote rack assembly). As previously mentioned, the resources in the data center can be reconfigured during the network configuration to include access to resources outside the cloud game rack assembly, such as providing network / Internet connection for other networks or other networks of third-party cloud hosting companies (e.g., AWS cloud computing). Moreover, resource reconfiguration can be performed for security purposes, such as when isolating and / or preventing harmful workloads (e.g., DDOS, hacker workloads or untrusted external companies or untrusted customers requesting services) from having a negative impact on the overall functionality and integrity of the data center in some way (e.g., mainly providing cloud game services).

[0091] In one embodiment, the reconfiguration of the rack assembly may include changing the boot storage architecture. For example, the network reconfiguration may provide high-speed access to boot files or operating system files for use during booting and / or execution of a corresponding operating system.

[0092] In one embodiment, the reconfiguration of the rack assembly may include the reconfiguration of the PCIe fabric (or equivalent) fabric to allow high-speed communication between computing nodes to form a "supercomputer" or AI computer, where high-speed computing node-to-computing node communication is required. For example, the rack assembly may initially be configured to provide direct access between multiple computing nodes of the rack assembly and at least one network storage device, such as for implementation during the game. However, during dark time, the rack assembly may be reconfigured in a second configuration. For example, the second configuration may configure the PCIe fabric for direct communication between multiple computing nodes in the rack assembly, rather than providing direct access to the network storage device (e.g., in the first configuration). In this way, in the second configuration, the PCIe fabric facilitates direct communication between the first computing node and the second computing node in the rack assembly. In addition, a rack reconfiguration may be performed to establish a special network configuration between the rack assemblies. Typically, cloud gaming rack assemblies operate independently of each other; however, for some use cases, two or more rack assemblies may be interconnected by reconfiguration to work together. Typically, firewalls and / or network settings (such as cluster-level switches) prevent this collaboration unless reconfigured.

[0093] Figure 6 Components of an example apparatus 600 that may be used to perform aspects of various embodiments of the present disclosure are shown. For example, Figure 6 An exemplary hardware system suitable for providing remote boot control of computing nodes (such as computing racks of a streaming array of rack assemblies) and network reconfiguration of rack assemblies of a data center according to embodiments of the present disclosure is shown. This block diagram shows a device 600 that may be incorporated with or may be a personal computer, a server computer, a game console, a mobile device, or other digital device, each of which is suitable for practicing embodiments of the present invention. Device 600 includes a central processing unit (CPU) 602 for running software applications and optionally an operating system. CPU 602 may be composed of one or more homogeneous or heterogeneous processing cores.

[0094] According to various embodiments, CPU 602 is one or more general purpose microprocessors having one or more processing cores. Additional embodiments may be implemented using one or more CPUs having a microprocessor architecture that is particularly well suited for highly parallel and computationally intensive applications such as media and interactive entertainment applications configured for graphics processing during game execution.

[0095] Memory 604 stores applications and data for use by CPU 602 and GPU 616. Storage device 606 provides non-volatile storage devices and other computer-readable media for applications and data, and may include fixed disk drives, removable disk drives, flash memory devices, and CD-ROM, DVD-ROM, Blu-ray, HD-DVD or other optical storage devices, as well as signal transmission and storage media. User input device 608 communicates user input from one or more users to device 600, and examples of user input devices may include keyboards, mice, joysticks, touch pads, touch screens, static or video recorders / cameras, and / or microphones. Network interface 609 allows device 600 to communicate with other computer systems via an electronic communication network, and may include wired or wireless communications through local area networks and wide area networks (such as the Internet). Audio processor 612 is suitable for generating analog or digital audio output from instructions and / or data provided by CPU 602, memory 604 and / or storage device 606. The components of device 600 , including CPU 602 , graphics subsystem including GPU 616 , memory 604 , data storage device 606 , user input device 608 , network interface 609 , and audio processor 612 , are connected via one or more data buses 622 .

[0096] The graphics subsystem 614 is further connected to the data bus 622 and the components of the device 600. The graphics subsystem 614 includes at least one graphics processing unit (GPU) 616 and a graphics memory 618. The graphics memory 618 includes a display memory (e.g., a frame buffer) for storing pixel data for each pixel of an output image. The graphics memory 618 may be integrated into the same device as the GPU 616, connected to the GPU 616 as a separate device, and / or implemented in the memory 604. The pixel data may be provided directly from the CPU 602 to the graphics memory 618. Alternatively, the CPU 602 provides the GPU 616 with data and / or instructions defining the desired output image, and the GPU 616 generates pixel data for one or more output images based on the data and / or instructions. The data and / or instructions defining the desired output image may be stored in the memory 604 and / or the graphics memory 618. In one embodiment, GPU 616 includes 3D rendering capabilities that generate pixel data for output images from instructions and data defining the geometry, lighting, shading, textures, motion, and / or camera parameters of a scene. GPU 616 may further include one or more programmable execution units capable of executing shader programs.

[0097] Graphics subsystem 614 periodically outputs pixel data of an image from graphics memory 618 for display on display device 610 or for projection by a projection system (not shown). Display device 610 may be any device capable of displaying visual information in response to a signal from device 600, including CRT, LCD, plasma, and OLED displays. For example, device 600 may provide an analog or digital signal to display device 610.

[0098] In other embodiments, the graphics subsystem 614 includes multiple GPU devices that are combined to perform graphics processing for a single application executed on a corresponding CPU. For example, multiple GPUs can perform multi-GPU rendering of geometry for an application by pretesting the geometry for a screen area that may be staggered before rendering the object of the image frame. In other examples, multiple GPUs can perform frame rendering in an alternating form, wherein in a continuous frame cycle, GPU 1 renders the first frame, and GPU 2 renders the second frame, and so on, until the last GPU is reached, and then the initial GPU renders the next video frame (for example, if there are only two GPUs, GPU 1 renders the third frame). That is, the GPUs rotate when rendering frames. Rendering operations may overlap, wherein GPU 2 may start rendering the second frame before GPU 1 finishes rendering the first frame. In another implementation, different shader operations in rendering and / or graphics pipelines may be assigned to multiple GPU devices. The main GPU is performing main rendering and synthesis. For example, in a group including three GPUs, master GPU 1 may perform a primary rendering (e.g., a first shader operation) and a composition of the outputs from slave GPU 2 and slave GPU 3, wherein slave GPU 2 may perform a second shader (e.g., a fluid effect such as a river) operation, and slave GPU 3 may perform a third shader (e.g., a particle smoke) operation, wherein master GPU 1 composites the results from each of GPU 1, GPU 2, and GPU 3. In that manner, different GPUs may be assigned to perform different shader operations (e.g., waving a flag, wind, smoke generation, fire, etc.) to render a video frame. In yet another embodiment, each of the three GPUs may be assigned to a different object and / or portion of a scene corresponding to a video frame. In the above embodiments and implementations, these operations may be performed in the same frame cycle (simultaneous parallelism) or in different frame cycles (sequential parallelism).

[0099] Thus, the present disclosure describes methods and systems for providing remote boot control of compute nodes, such as compute nodes of a compute shelf of a streaming array of rack assemblies, and network reconfiguration of rack assemblies of a data center.

[0100] It should be understood that the various embodiments defined herein may be combined or assembled into specific implementations using the various features disclosed herein. Therefore, the examples provided are only some possible examples and are not limited to various implementations that may define more implementations by combining various elements. In some examples, some implementations may include fewer elements without departing from the spirit of the disclosed or equivalent implementations.

[0101] Embodiments of the present disclosure may be practiced with various computer system configurations including handheld devices, microprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, etc. Embodiments of the present disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through wired or wireless networks.

[0102] In view of the above embodiments, it should be understood that the embodiments of the present disclosure may employ various computer-implemented operations involving data stored in a computer system. These operations are those operations that require physical manipulation of physical quantities. Any of the operations described herein that form part of the embodiments of the present disclosure are useful machine operations. The embodiments of the present disclosure also relate to devices or equipment for performing these operations. The device may be specially constructed for the desired purpose, or the device may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines may be used in conjunction with computer programs written according to the teachings of this article, or it may be more convenient to construct more specialized devices to perform the desired operations.

[0103] The present disclosure may also be embodied as computer readable code on a computer readable medium. A computer readable medium is any data storage device that can store data, which can then be read by a computer system. Examples of computer readable media include hard drives, network attached storage devices (NAS), read-only memories, random access memories, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes, and other optical and non-optical data storage devices. A computer readable medium may include a computer readable tangible medium distributed on a network coupled computer system so that the computer readable code is stored and executed in a distributed manner.

[0104] Although the method operations are described in a particular order, it should be understood that other housekeeping operations may be performed between the operations, or the operations may be adjusted so that they occur at slightly different times, or may be distributed in a system that allows processing operations to occur at various intervals associated with the processing, so long as the processing covering the operations is performed in the desired manner.

[0105] Although the foregoing disclosure has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Therefore, the present embodiments are to be considered as illustrative rather than restrictive, and the embodiments of the present disclosure are not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.

Claims

1. A method for executing system startup, comprising: receiving, at a board management controller (BMC), a boot configuration instruction to enable a computing node having an operating system, wherein the computing node is located on a chassis including a plurality of computing nodes, wherein the BMC is configured to manage a plurality of communication interfaces providing communications to the plurality of computing nodes; sending boot instructions from the BMC to a boot controller of the computing node via a communication interface to execute basic input / output system (BIOS) firmware stored remotely from the computing node; as well as Execution of the BIOS firmware is performed on the computing node to initiate loading of the operating system for execution by the computing node.

2. The method according to claim 1, further comprising: receiving, at the BMC, a request from the computing node to access a storage address storing the BIOS firmware; as well as facilitating the computing node to access the storage address to retrieve the BIOS firmware, The storage address is included in the boot instruction from the BMC.

3. The method according to claim 1, wherein the sending the guidance instruction comprises: The BMC accesses the BIOS firmware at a storage address, wherein the storage address is included in the startup configuration instruction; as well as The BIOS firmware is sent from the BMC to the computing node in association with the boot instruction so that the computing node executes the BIOS firmware.

4. The method according to claim 1, wherein the executing the BIOS firmware comprises: At least a portion of the operating system is loaded from a storage address into a system memory of the computing node.

5. The method of claim 4 , wherein loading at least a portion of the operating system from the storage address into the system memory comprises: loading a first portion of the operating system into the system memory of the computing node for execution; as well as During the execution of the operating system by the computing node, a second portion of the operating system is loaded into a network storage device for access by the computing node through a PCIe fabric.

6. The method according to claim 1, further comprising: selecting the communication interface based on the operating system, wherein the BMC is configured as a switch to deliver control signals for each of a plurality of operating systems through a corresponding communication interface obtained from the plurality of communication interfaces, The control signal for the operating system is delivered to the computing node through the communication interface.

7. The method according to claim 1, further comprising: One or more images of the operating system on the computing nodes are managed at a cloud management controller in the data center.

8. The method according to claim 1, further comprising: pausing a job being executed by the computing node during execution of an application program by the computing node using a first operating system different from the operating system being loaded for execution; capturing the state of the computing node and storing the state; transferring the state of the computing node to another computing node; as well as executing the application on the other computing node to resume the job, The job is paused at a selected pause point that is not a predefined pause point.

9. The method according to claim 1, wherein the computing bracket is one of a plurality of computing brackets of a streaming array, wherein each of the plurality of rack assemblies comprises one or more network storage devices and one or more streaming arrays, Each streaming array includes one or more computing racks. Each computing bracket includes one or more computing nodes.

10. A method comprising: sending a reconfiguration message from the cloud management controller to a rack controller of a rack assembly to reconfigure the rack assembly from a first configuration to a second configuration, wherein the rack assembly is configured to facilitate services of a first priority implemented by a first plurality of applications, wherein the second configuration is configured to facilitate services of a second priority implemented by a second plurality of applications, wherein the services of the second priority have a lower priority than the services of the first priority; as well as configuring the rack assembly in the second configuration, The rack assembly includes one or more network storage devices and one or more streaming arrays, each of which includes one or more computing racks, and each of which includes one or more computing nodes.

11. The method according to claim 10, further comprising: detecting, at the cloud management controller, a decrease in demand for a service of the first priority supported by a data center including a plurality of rack assemblies, wherein each of the plurality of rack assemblies is configured in the first configuration to facilitate service of the first priority, The cloud management controller manages configuration of the plurality of rack assemblies.

12. The method of claim 10, wherein the configuring the rack assembly in the second configuration comprises: reconfiguring a PCIe fabric in the second configuration for direct communication between a plurality of computing nodes in the rack assembly such that the PCIe fabric facilitates direct communication between a first computing node and a second computing node in the rack assembly, Wherein in the first configuration, the PCIe fabric is configured for direct access between the plurality of computing nodes of the rack assembly and at least one network storage device.

13. The method of claim 10, wherein the configuring the rack assembly in the second configuration comprises: rebooting each of a plurality of computing nodes of the rack assembly to execute an operating system configured to support execution of the service of the second priority, The reboot of the compute node includes: receiving, at a board management controller (BMC), a boot configuration instruction to enable the computing node having the operating system, wherein the computing node is located on a chassis including a plurality of computing nodes, wherein the BMC is configured to manage a plurality of communication interfaces providing communications to the plurality of computing nodes; sending a boot instruction from the BMC to a boot controller of the computing node through a communication interface to execute a basic input / output system (BIOS) firmware; and The BIOS firmware is executed on the computing node to load the operating system for execution by the computing node.

14. The method of claim 10, wherein the configuring the rack assembly in the second configuration comprises: A network configuration between the rack assembly and another rack assembly is changed, wherein the network configuration defines a communication path between the rack assembly and the another rack assembly.

15. A non-transitory computer-readable medium storing a computer program for executing system startup, the computer-readable medium comprising: program instructions for receiving, at a board management controller (BMC), a boot configuration instruction to enable a compute node having an operating system, wherein the compute node is located on a chassis including a plurality of compute nodes, wherein the BMC is configured for managing a plurality of communication interfaces providing communications to the plurality of compute nodes; for sending boot instructions from the BMC to a boot controller of the computing node via a communication interface to execute program instructions of a basic input / output system (BIOS) firmware stored remotely from the computing node; and Program instructions for executing the BIOS firmware on the computing node to initiate loading of the operating system for execution by the computing node.

16. The non-transitory computer readable medium of claim 15, further comprising: program instructions for receiving, at the BMC, a request from the computing node to access a storage address storing the BIOS firmware; and program instructions for facilitating the computing node to access the storage address to retrieve the BIOS firmware, The storage address is included in the boot instruction from the BMC.

17. The non-transitory computer-readable medium of claim 15, wherein the program instructions for sending the boot instruction comprise: program instructions for the BMC to access the BIOS firmware at a storage address, wherein the storage address is included in the startup configuration instructions; and Program instructions for sending the BIOS firmware from the BMC to the computing node in association with the boot instruction for the computing node to execute the BIOS firmware.

18. The non-transitory computer-readable medium of claim 15, wherein the program instructions for executing the BIOS firmware include: Program instructions for loading at least a portion of the operating system from a storage address into a system memory of the computing node.

19. The non-transitory computer readable medium of claim 15, further comprising: program instructions for selecting the communication interface based on the operating system, wherein the BMC is configured as a switch to deliver control signals for each of a plurality of operating systems through a corresponding communication interface obtained from the plurality of communication interfaces, The control signal for the operating system is delivered to the computing node through the communication interface.

20. The non-transitory computer readable medium of claim 15, further comprising: program instructions for suspending a job being executed by the computing node during execution of an application program by the computing node using a first operating system different from the operating system being loaded for execution; program instructions for capturing a state of the computing node and storing the state; transferring the state of the computing node to another computing node; as well as executing the application on the other computing node to resume the job, The job is paused at a selected pause point that is not a predefined pause point.

Citation Information

Patent Citations

  • Boot mechanisms for 'bring your own' management

    CN104871174A

  • Node interconnection apparatus, resource control node and server system

    CN106105152A

  • Game state saving, transferring and resuming for cloud game

    CN111420397A

  • Asset aware computing architecture for graphics processing

    CN112181633A

  • Method for acquiring packet, device and recording medium

    US20150263943A1