Computing system with extended availability
By combining the network processing subsystem and the memory subsystem, a computing system engine with extended availability is provided, which solves the SDS availability problem when the central processing system is unavailable. It enables remote access to and use of the device-provided SDS without restarting, thereby improving the system's availability and efficiency.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-04-28
- Publication Date
- 2026-03-27
AI Technical Summary
When the central processing system is unavailable, conventional solutions for existing information processing systems require restarting the SDS on different server devices, which results in time-consuming and resource-wasting data backup and recovery processes, and fails to effectively maintain the availability of the SDS.
Through the network processing subsystem and network storage subsystem, a computing system engine with scalable availability is provided, allowing remote access and use of multiple devices to provide software-defined services, avoiding the need to restart the SDS on different server devices.
This enables the continued provision of SDS even when the central processing system is unavailable, reducing the time and resource consumption for data backup and recovery, and improving system availability and efficiency.
Smart Images

Figure CN116209988B_ABST
Abstract
Description
BACKGROUND
[0001] The present disclosure relates generally to information processing systems, and more specifically to extending the availability of information processing systems.
[0002] As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information processing systems. Information processing systems typically process, compile, store, and / or communicate information or data for business, personal, or other purposes. Thus, information processing systems allow users to take advantage of the value and use of information. Because technology and information processing needs and requirements can vary widely between different users or applications, information processing systems can also vary widely. An information processing system can be specially constructed for an intended use or it can be a general purpose system modified (e.g., programmed) for an intended use. Generally, an information processing system can include a number of components, such as a central processing system, a system memory, and a system bus that couples the central processing system to the system memory. As will be appreciated, one or more components of an information processing system can be located on a single computing device or distributed across multiple computing devices.
[0003] Information processing systems, such as server devices and / or other computing systems known in the art, can be configured to provide software-defined services (SDSs) using various server device hardware, which can include storage devices (e.g., hard disk drives (HDDs), solid state drives (SSDs), etc.), processing devices (e.g., graphics processing units (GPUs)), various input / output (I / O) devices (e.g., peripheral component interconnect (PCIe) devices), and / or other server device hardware that those skilled in the art will recognize as being capable of being used to provide various SDSs known in the art. However, SDSs can become unavailable due to various circumstances (e.g., due to unavailability of a central processing system in a server device, which can be due to a failure, a reboot, a power outage, or other central processing system issues or operations known in the art), and conventional server devices are configured in a manner that prevents access to server device hardware in the event that an SDS is unavailable.
[0004] A conventional solution to these problems is to restart the SDS on a different server device that includes available central processing system and utilize available service device hardware on that server device to provide the SDS. However, restarting the SDS provided by the first server device on the second server device without losing SDS functionality requires backing up data associated with the SDS (e.g., content data stored on storage devices in the first server device, state data associated with components in the first server device, etc.) onto a storage system external to the first server device and, in some cases, copying that data to the second server device or the SDS accepting the restart on the second server device loses SDS functionality. Thus, restarting the SDS on a different server device (or even merely maintaining the ability to restart the SDS on a different server device) consumes storage space, is time consuming, and presents other problems that those skilled in the art will appreciate.
[0005] Accordingly, it is desirable to provide an availability extended computing system that addresses the above problems. SUMMARY
[0006] According to one embodiment, an information handling system (IHS) includes a network processing subsystem and a network memory subsystem coupled to the network processing subsystem and including instructions that, when executed by the network processing subsystem, cause the network processing subsystem to provide an availability extended computing system engine configured to: determine that at least one software defined service (SDS) is unavailable, the at least one software defined service being provided by a central processing subsystem included in the IHS and coupled to the network processing subsystem via a device access controller subsystem included in the IHS; configure the device access controller subsystem to receive SDS communications from the availability extended computing system engine; allow a second computing system to remotely access a plurality of devices via a network and the availability extended computing system engine and through the device access controller subsystem, the plurality of devices being included in the IHS and coupled to the network processing subsystem via the device access controller subsystem; and transmit SDS communications received from the second computing system to the plurality of devices via the device access controller subsystem to allow the second computing device to provide the at least one SDS using the plurality of devices via the device access controller subsystem. BRIEF DESCRIPTION OF DRAWINGS
[0007] Figure 1 is a schematic diagram illustrating an embodiment of an information handling system (IHS).
[0008] Figure 2is a schematic diagram illustrating an embodiment of a network system.
[0009] Figure 3 is a schematic diagram illustrating an embodiment of a system control processor (SCP) subsystem that can be included in a computing system of Figure 2 and that can utilize the availability extension functionality of the present disclosure.
[0010] Figure 4A is a schematic diagram illustrating an embodiment of a system control processor (SCP) subsystem that can be included in a computing system of Figure 2 and that can utilize the availability extension functionality of the present disclosure.
[0011] Figure 4B is a schematic diagram illustrating an embodiment of a computing system of Figure 4A .
[0012] Figure 5 is a schematic diagram illustrating an embodiment of a system control processor (SCP) subsystem that can be included in a computing system of Figure 3 or Figure 4A and Figure 4B .
[0013] Figure 6 is a flowchart illustrating an embodiment of a method for providing availability extension of a computing system.
[0014] Figure 7A is a schematic diagram illustrating an embodiment of a computing system of Figure 4A and Figure 4B operating during a method of Figure 6 .
[0015] Figure 7B is a schematic diagram illustrating an embodiment of a computing system of Figure 4A and Figure 4B operating during a method of Figure 6 .
[0016] Figure 8A is a schematic diagram illustrating an embodiment of a computing system of Figure 4A and Figure 4B operating during a method of Figure 6 .
[0017] Figure 8B is a schematic diagram illustrating an embodiment of a computing system of Figure 4A and Figure 4B operating during a method of Figure 6 .
[0018] Figure 8C is a schematic diagram illustrating an embodiment of a network system of Figure 2 operating during a method of Figure 6 .
[0019] Figure 8D is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a network system operating during a method of Figure 6 .
[0020] Figure 8E is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 2 and Figure 6 is a schematic diagram illustrating an embodiment of a network system operating during a method of .
[0021] Figure 8F is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a network system operating during a method of Figure 6 .
[0022] Figure 9A is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a network system operating during a method of Figure 6 .
[0023] Figure 9B is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 2 and Figure 6 is a schematic diagram illustrating an embodiment of a network system operating during a method of .
[0024] Figure 9C is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a network system operating during a method of Figure 6 .
[0025] Figure 10 is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a network system operating during a method of Figure 6 .
[0026] Figure 11A is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a network system operating during a method of Figure 6 .
[0027] Figure 11B is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a network system operating during a method of Figure 6 .
[0028] Figure 11C is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 2 and Figure 6 is a schematic diagram illustrating an embodiment of a network system operating during a method of .
[0029] Figure 11D is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 6 is a schematic diagram illustrating an embodiment of a computing system operating during a method of
[0030] Figure 12 is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 4A and Figure 4B is a schematic diagram illustrating an embodiment of a computing system operating during a method of Figure 6 is a schematic diagram illustrating an embodiment of a computing system operating during a method of DETAILED DESCRIPTION
[0031] For the purposes of this disclosure, an information handling system can include any instrumentality or aggregate of instrumentalities operable to compute, calculate, determine, classify, process, transmit, receive, retrieve, originate, switch, store, display, communicate, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, or other purposes. For example, an information handling system can be a personal computer (e.g., a desktop or laptop), a tablet computer, a mobile device (e.g., a personal digital assistant (PDA) or a smart phone), a server (e.g., a blade server or a rack server), a network storage device, or any other suitable device and can vary in size, shape, performance, functionality, and price, depending on the requirements of a particular implementation. An information handling system can include a Random Access Memory (RAM), one or more processing resources such as a Central Processing Unit (CPU) or hardware or software control logic, ROM, and / or other types of nonvolatile memory. Additional components of an information handling system can include one or more storage devices (e.g., a disk drive such as a hard disk drive (HDD), a solid state drive (SSD), and / or other storage devices known in the art), one or more network ports for communicating with external devices, and various input and output (I / O) devices, such as a keyboard, a mouse, a touchscreen, and / or a video display, a large SSD, a graphics processing unit (GPU), a tensor processing unit (TPU), a field-programmable gate array (FPGA), and / or other I / O devices known in the art. An information handling system can also include one or more buses operable to transmit communications between various hardware components.
[0032] In one embodiment, Figure 1The IHS 100 includes a processor 102 that is connected to a bus 104. The bus 104 serves as the connection for the processor 102 to other components of the IHS 100. An input device 106 is coupled to the processor 102 to provide input to the processor 102. Examples of input devices can include a keyboard, a touchscreen, a pointing device such as a mouse, a trackball, and a touchpad, and / or various other input devices known in the art. Programs and data are stored on a mass storage device 108 that is coupled to the processor 102. Examples of mass storage devices can include hard disks, optical disks, magneto-optical disks, solid-state storage devices, and / or various other mass storage devices known in the art. The IHS 100 also includes a display 110 that is coupled to the processor 102 through a video controller 112. A system memory 114 is coupled to the processor 102 to provide the processor with fast storage to facilitate the processor 102 executing computer programs. Examples of system memories can include random access memory (RAM) devices such as dynamic RAM (DRAM), synchronous DRAM (SDRAM), solid-state memory devices, and / or various other memory devices known in the art. In one embodiment, a chassis 116 houses some or all of the components of the IHS 100. It should be understood that other buses and intermediate circuitry can be deployed between the above-described components and the processor 102 to facilitate interconnection between the components and the processor 102.
[0033] Referring now to Figure 2 , one embodiment of a network system 200 is shown in which computing systems that can utilize the availability extension of the present disclosure can be utilized. In the illustrated embodiment, the network system 200 includes a plurality of computing systems 202a, 202b, through 202c. In one embodiment, the computing systems 202a-202c can be provided by the IHS 100 discussed above with reference to Figure 1 , and / or can include some or all of the components of the IHS 100, and in particular examples can be provided by server devices. However, while discussed as being provided by server devices, one skilled in the art having the benefit of the present disclosure would recognize that the computing systems provided in the network system 200 can include any computing system that can be configured to operate similarly to the computing systems 202a-202c discussed below. In the illustrated embodiment, each of the computing systems can be coupled to a network 204, which can be provided by a local area network (LAN), the Internet, a combination thereof, and / or any other network as would be apparent to one skilled in the art having the benefit of the present disclosure. In some examples, the network 204 can include a first network for managing data traffic and a second network for other data traffic, while in other examples the network 204 can be used to manage data traffic and other data traffic.
[0034] In the illustrated embodiment, the management system 206 is also coupled to the network 204. In one embodiment, the management system 206 can be provided by the IHS 100 discussed above with respect to Figure 1 The IHS 100 discussed above provides, and / or can include, some or all of the components discussed above with respect to the computing systems 202a-202c, and in particular examples can be provided by one or more server devices that can be configured to perform management functions for the computing systems 202a-202c. In the illustrated embodiment, one or more network attached devices 208 are also coupled to the network 204. In one embodiment, the network attached devices 208 can be provided by a variety of different network attached devices that can be accessed by the computing systems 202a-202c via the network 204, and in particular examples discussed below are provided by one or more non-volatile express memory (NVMe) storage devices that can be configured to provide a network attached storage system for any or all of the computing systems 202a-202c. However, while a particular network system 200 has been shown and described, those of ordinary skill in the art having the benefit of this disclosure will recognize that computing systems for which the availability of this disclosure extends can be used with a variety of components and component configurations, and / or can be provided in a variety of computing system / network configurations, while still remaining within the scope of this disclosure.
[0035] Referring now to Figure 3 , an embodiment of a computing system 300 is shown that can provide any or all of the computing systems 202a-202c discussed above with respect to Figure 2 Thus, the computing system 300 can be provided by the IHS 100 discussed above with respect to Figure 1 and / or can include some or all of the components of the IHS 100, and in particular examples can be provided by a server device. However, while shown and discussed as being provided by a server device, those of ordinary skill in the art having the benefit of this disclosure will recognize that the functionality of the computing system 300 discussed below can be provided by other computing systems configured to operate similarly to the computing system 300 discussed below. In the illustrated embodiment, the computing system 300 includes a chassis 302 that houses components of the computing system 300, only some of which are shown and discussed below.
[0036] For example, chassis 302 can house a network subsystem, which in the embodiments shown and discussed below is provided by a system control processor (SCP) subsystem 304 that is provided in accordance with the teachings of the present disclosure to perform availability extension functionality discussed in greater detail below. In some examples, SCP subsystem 304 can be conceptualized as an “enhanced” smart NIC device that can be configured to perform functionality that is not available in conventional smart NIC devices, such as the platform root of trust functionality described in U.S. Patent Application No. 17 / 027,835 (Attorney Docket No. 16356.2212US01) filed September 22, 2020 by the inventors of the present disclosure, the disclosure of which is incorporated herein in its entirety. However, while the network subsystem that implements availability extension functionality in accordance with the teachings of the present disclosure is shown and described as an enhanced smart NIC device provided by SCP subsystem, those skilled in the art having the benefit of the present disclosure will appreciate that the availability extension functionality described herein can be implemented on other conventional smart NIC devices via the NIC device (and other components implementing the availability extension functionality discussed below) and / or using other subsystems, while still remaining within the scope of the present disclosure.
[0037] In some alternative examples, the network subsystem of the present disclosure can be provided by a BMC subsystem discussed in greater detail below (e.g., with SCP subsystem 304 omitted), which operates to provide local device access management to implement the availability extension functionality discussed below. In another alternative example, the network subsystem of the present disclosure can be provided by SCP subsystem 304 and a BMC subsystem discussed in greater detail below, where SCP subsystem 304 provides a single device management entry point for its computing system 300 and communicates with BMC subsystem 306 for local device access management in order to provide the availability extension functionality discussed below. In another alternative example, the network subsystem of the present disclosure can be provided by SCP subsystem 304 and a BMC subsystem discussed in greater detail below, where SCP subsystem 304 is used for local and remote device access management to provide the availability extension functionality discussed below. Thus, while several specific examples are described below that utilize SCP subsystem 304, those skilled in the art having the benefit of the present disclosure will appreciate that the functionality described below can be provided in other manners (e.g., by a combined SCP / BMC subsystem), while still remaining within the scope of the present disclosure.
[0038] In one embodiment, SCP subsystem 304 can be provided by a system control processor (SCP) 306 that is configured to provide a single device management entry point for computing system 300, as well as to communicate with BMC subsystem 306 for local device access management in order to provide the availability extension functionality discussed below. In another embodiment, SCP subsystem 304 can be provided by a system control processor (SCP) 306 that is configured to provide a single device management entry point for computing system 300, as well as to provide local device access management in order to provide the availability extension functionality discussed below. In another embodiment, SCP subsystem 304 can be provided by a system control processor (SCP) 306 that is configured to provide a single device management entry point for computing system 300, as well as to provide local and remote device access management in order to provide the availability extension functionality discussed below. Figure 1The IHS 100 discussed provides, and / or can include, some or all of the components of the IHS 100. In particular examples, the SCP subsystem 304 can be provided as an SCP card configured to connect to a slot on a motherboard in the chassis 302. In other examples, the SCP subsystem 304 can be integrated into the motherboard in the chassis 302. In other examples, the SCP subsystem 304 can be a separate / collocated circuit board that connects to a motherboard in the chassis 302 (e.g., a two-piece motherboard having a first piece that implements conventional motherboard functionality and a second piece that implements the SCP functionality discussed below). However, while several particular examples are provided, one of skill in the art having the benefit of the present disclosure will appreciate that the SCP subsystem 304 can be provided in the computing system 300 in a variety of ways that would be within the scope of the present disclosure.
[0039] The chassis 302 can also house a device access controller subsystem 306 that, in the implementation shown and discussed below, is provided by a fiber switch device. However, in other particular examples, the device access controller subsystem 308 can be provided by a peripheral component interconnect express (PCIe) switch device, a compute express link (CxL) switch device, a Z-Generation switch device, and / or other switch devices, and / or can include various components such as a protocol bridge and / or other combinations of elements between a processing system and a device that supports the device access control capabilities of the present disclosure. Thus, the device access controller subsystem 306 can be provided by a variety of ways as discussed above with reference to Figure 1 The IHS 100 discussed provides, and / or can include, some or all of the components of the IHS 100 configured to perform the switching functionality and / or the SDS control communication transport discussed in greater detail below.
[0040] The chassis 302 can also house a central processing system 308 that is coupled to the SCP subsystem 304 via the device access controller subsystem 306, and that can include the various processing components discussed above with reference to Figure 1 The processor 102 discussed can be a central processing unit (CPU) such as an x86 host processor, and / or various other processing components as would be apparent to one of skill in the art having the benefit of the present disclosure. In the implementation shown, the chassis 302 can also house a baseboard management controller (BMC) subsystem 310 that is coupled to the SCP subsystem 304, and that is configured to manage the interface between system management software in the computing system 300 and hardware in the computing system 300, as well as perform other BMC operations as would be apparent to one of skill in the art having the benefit of the present disclosure. Thus, the BMC subsystem 310 can be configured to utilize a dedicated management network connection (e.g., a dedicated network connection on the motherboard in the chassis 302, a dedicated network connection on the SCP subsystem 304, and / or a dedicated network connection on the device access controller subsystem 306) to communicate with the SCP subsystem 304 and / or the device access controller subsystem 306.Figure 3 The SCP subsystem 304 can be configured to utilize a network connection included in the SCP subsystem 304 (e.g., via a network communication service interface (NCSI) that allows use of a NIC port on the SCP subsystem 304), or can be configured to utilize a network connection included in the chassis 302 (e.g., via a network communication service interface (NCSI) that allows use of a NIC port on the chassis 302).
[0041] The chassis 302 can also house (or provide a coupling for) one or more input / output (I / O) devices 312 that are coupled to the SCP subsystem 304, the central processing system 308j, and the BMC subsystem 310 via a device access controller subsystem 306. Thus, one skilled in the art having the benefit of this disclosure will recognize that the I / O devices 312 can be housed in the chassis 302 and connected to an internal connector (e.g., on a motherboard in the chassis 302) that is coupled to the device access controller subsystem 306, or the I / O devices 312 can be disposed outside of the chassis 302 and connected to an external connector (e.g., on an external surface of the chassis 302) that is coupled to the device access controller subsystem 306. As shown, the I / O devices 312 can include one or more peripheral component interconnect express (PCIe) devices 312a (as the I / O devices 312 or in addition to other I / O devices). For example, the PCIe devices 312a can include NVMe storage devices that are housed in the chassis 302 (i.e., and connected to an internal connector on a motherboard in the chassis 302) or outside of the chassis 302 (i.e., and connected to an external connector on an external surface of the chassis 302). However, while specific I / O devices and / or PCIe devices have been described, one skilled in the art having the benefit of this disclosure will recognize that various other I / O devices (e.g., SAS storage controllers) would also fall within the scope of this disclosure. Figure 3
[0042] The chassis 302 can also house one or more components 314 that are coupled to the central processing system 308 and the BMC subsystem 310, and one skilled in the art having the benefit of this disclosure will appreciate that coupling the components 314 to the SCP subsystem 304 via the central processing subsystem 308 can render those components 314 unusable in the event that the central processing subsystem 308 becomes unusable. Thus, in some embodiments, the components 314 can be omitted, or can not be necessary for a remote computing system to perform a software defined service (SDS).
[0043] The chassis 302 may also accommodate one or more other devices 316, which are coupled to the SCP subsystem 304, the central processing system 308j, and the BMC subsystem 310 via the device access controller subsystem 306. Those skilled in the art will understand that the coupling of the other devices 316 to the SCP subsystem 304 via the device access controller subsystem 306 allows those other devices 316 to become available if the central processing subsystem 308j becomes unavailable, as discussed in more detail below. Therefore, the other devices 316 may include any devices used in the execution of a software-defined server (SDS), such as GPUs, TPUs, FPGAs, storage devices, and / or other devices known in the art. However, while a particular computing system 300 has been shown, those skilled in the art will recognize that a computing system (or other devices operating in a manner similar to that described below for computing system 300 according to the teachings of this disclosure) may include various components and / or component configurations for providing general computing system functions as well as the functions discussed below, while still falling within the scope of this disclosure. For example, in some embodiments, the foregoing reference may be omitted. Figure 3 The BMC subsystem 310 is described, and the SCP subsystem 304 can be configured to provide execution Figure 3 The BMC subsystem 310 contains the functions of the BMC subsystem.
[0044] Now see Figure 4A and Figure 4B The diagram illustrates a computing system 400, which provides the above-mentioned reference. Figure 3 The specific implementation of the computing system 300 discussed herein, therefore, the computing system 400 includes systems having the features described above. Figure 3 The computing system 300 discussed uses similar elements with the same reference numerals in the accompanying drawings. See also... Figure 4A In this embodiment, the central processing subsystem 308 and components 314 (if present) in the computing system 400 may be located in power zone 402, while the SCP subsystem 304, device access controller subsystem 306, BMC subsystem 310, I / O device 312 / PCIe device 312a, and other devices 316 are included in power zone 404, which is separate from power zone 402. Those skilled in the art who understand this disclosure will appreciate that the separation of power zones 402 and 404 allows the central processing subsystem 308 and components 314 (if present) to be powered separately from the SCP subsystem 304, device access controller subsystem 306, BMC subsystem 310, I / O device 312 / PCIe device 312a, and other devices 316.
[0045] Figure 4BThe power subsystems 402a and 404a can be provided by separate power subsystems (e.g., separate power supply units (PSUs)), by a single power subsystem (e.g., a PSU) with separate power zone functionality, and / or in any other manner that allows the power subsystems 402a and 404a to independently power to provide the independent power zones 402 and 404 described herein, as will be appreciated by those skilled in the art and the present disclosure. However, while the computing system 400 is shown and described as having multiple independent power zones that provide availability extension functionality, those skilled in the art and the present disclosure will appreciate that the computing system 300 discussed above with reference to Figure 3 may utilize a single power system / power zone for all of its components and still provide some of the availability extension functionality discussed below, while still falling within the scope of the present disclosure.
[0046] Referring to Figure 5 , an embodiment of an SCP subsystem 500 is shown that can provide the SCP subsystem 304 discussed above with reference to Figure 3 , Figure 4A and Figure 4B . Thus, the SCP subsystem 500 can be provided by the IHS 100 discussed above with reference to Figure 1 and / or can include some or all of the components of the IHS 100, and in particular examples can be provided as an SCP card, can be integrated into a motherboard, or can be provided as a separate / collocated circuit board. However, while shown and discussed as being provided in different manners in the computing system 300 / 400, those skilled in the art and the present disclosure will appreciate that the functionality of the SCP subsystem 500 discussed below can be provided by other devices configured to operate similarly to the SCP subsystem 500 discussed below (e.g., other network subsystems such as the smart NIC devices or NIC devices described above, etc.).
[0047] In the illustrated embodiment, the SCP subsystem 500 includes a chassis 502 (e.g., a circuit board) that supports the components of the SCP subsystem 500, some of which are shown below. For example, the chassis 502 may support a network processing subsystem (e.g., an SCP processing subsystem), including one or more network / SCP processors (not shown, but may include those described above). Figure 1 The processor 102 discussed; and the network storage subsystem (e.g., the SCP storage subsystem) (not illustrated, but may include the above-mentioned references) Figure 1 The network memory subsystem discussed (114) is coupled to the network processing system and includes instructions that, when executed by the network processing system, cause the network processing system to provide an availability-enhanced computing system engine (504), which is configured to perform the functions of the availability-enhanced computing system engine and / or the SCP subsystem discussed below.
[0048] Chassis 502 may also include a storage system (not shown, but may include the above-mentioned components). Figure 1 The storage device 108 discussed above, the network storage system discussed above, etc., is coupled to the availability-enhanced computing system engine 504 (e.g., via a connector between the storage system and the network / SCP processing subsystem) and may include one or more availability-enhanced computing system databases 506 configured to store any information used by the availability-enhanced computing system engine 504 discussed below. The chassis 502 may also support a communication system 508, which is coupled to the availability-enhanced computing system engine 504 (e.g., via a connector between the communication system 508 and the network / SCP processing subsystem) and may include... Figure 5 The network interface controller (NIC) device 508a shown connects the SCP subsystem 304 / 500 to network 204. Figure 5 The component connection 508 shown connects the SCP subsystem 304 / 500 to components in the computing system 300 / 400, and the wireless communication system (e.g., Near Field Communication (NFC) components, WiFi components, etc.) and / or any other communication components that will be obvious to those skilled in the art upon understanding this disclosure.
[0049] Accordingly, the communication system 508 can include any connections between the SCP subsystem 500 and the network 204, the central processing subsystem 308, the BMC subsystem 310, the I / O devices 312, the other devices 316, and / or any other components used with the computing system 202a / 300 / 400 discussed below. However, while a particular SCP subsystem 500 has been shown and described, one of ordinary skill in the art having the benefit of the instant disclosure will recognize that an SCP subsystem (or other network subsystem operating in a manner similar to that described below for the SCP subsystem 500 in accordance with the teachings of the instant disclosure) can include various components and / or component configurations for providing the functionality discussed below while still remaining within the scope of the instant disclosure.
[0050] Referring now to Figure 6 , an embodiment of a method 600 for providing an availability extended computing system is shown. As discussed below, the systems and methods of the instant disclosure provide a network subsystem in a first computing system that is configured to enable a second computing system to reach a path in the first computing system to devices used to provide SDSs, which allows the second computing system to provide SDSs using devices in the first computing system that were previously used by the first computing system to provide SDSs, and does not have to back up data associated with those SDSs and / or rebuild that data on the second computing system. For example, an availability extended computing system of the instant disclosure can include a first computing system and a second computing system coupled together via a network. The first computing system includes a device access controller subsystem coupled to a plurality of devices and a central processing subsystem configured to use the devices to provide SDSs via the device access controller subsystem. A network subsystem coupled to the device access controller subsystem determines that at least one SDS is unavailable, configures the device access controller subsystem to receive SDS communications from the network subsystem, allows the second computing system to remotely access the devices via the network subsystem and through the device access controller subsystem, and transmits SDS communications received from the second computing system to the devices via the device access controller subsystem, such that the second computing device can use the devices to provide SDSs via the device access controller subsystem.
[0051] Accordingly, the first computing system has extended availability such that it is able to use its devices to provide those SDS even when the first computing system is unable to provide the SDS. Moreover, the systems and methods of the present disclosure do not require the second computing system to have the same devices as the first computing system in order to back up the SDS provided by the first computing system. For example, the second computing system can not include expensive I / O devices such as GPUs, but instead can utilize the GPUs in the first computing system to support SDS as described above, thus enabling a variety of network configurations in which a single support system that does not have expensive I / O devices supports a plurality of different primary systems that have different sets of relatively expensive I / O devices.
[0052] Method 600 begins at block 602, in which a central processing subsystem in a first computing system provides one or more software defined services (SDS). Referring to Figure 7A In one embodiment of block 602, central processing subsystem 308 in computing system 202a / 400 is operable to perform SDS provisioning operations 700, which can include exchanging SDS communications with I / O devices 312, PCIe devices 312a, and / or other devices 316 included in computing system 202a / 400 via device access controller subsystem 306, as well as performing any other operations that one of skill in the art having the benefit of the present disclosure would recognize as providing one or more SDS. However, while computing system 202a / 400 is discussed in the examples below as providing SDS that utilize high availability functionality, one of skill in the art having the benefit of the present disclosure will recognize that any of computing systems 202b through 202c and / or 300 can provide SDS that utilize high availability functionality, while still being within the scope of the present disclosure.
[0053] As will be appreciated by those skilled in the art and informed by the present disclosure, the device access controller subsystem 306 can be provided by a fiber switch device configured to receive SDS communications from the central processing subsystem 308 and to forward those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 to which the SDS communications are directed using various switching techniques known in the art. Similarly, the device access controller subsystem 306 provided by a fiber switch device can be configured to receive SDS communications from the I / O devices 312, PCIe devices 312a, and / or other devices 316 and to forward those SDS communications to the central processing subsystem 308 using various switching techniques known in the art. However, while described as a fiber switch device, those skilled in the art and informed by the present disclosure will appreciate that other embodiments of the device access controller subsystem 306 can utilize other techniques (e.g., controller techniques, conversion board techniques, etc.) to implement the switching of SDS communications discussed herein while still falling within the scope of the present disclosure.
[0054] Thus, at block 602, the central processing subsystem 308 can operate to provide one or more SDS using the I / O devices 312, PCIe devices 312a, and / or other devices 316, which, as will be appreciated by those skilled in the art and informed by the present disclosure, can include software defined storage services, software defined processing services, and / or any other SDS known in the art. Moreover, while described as providing SDS, those skilled in the art and informed by the present disclosure will appreciate that the SDS discussed herein can be replaced with various applications that utilize devices in a computing system to provide, for example, database services, data analytics, AI training, interference services, and / or various other functions known in the art. As will be appreciated by those skilled in the art and informed by the present disclosure, the central processing subsystem 308 providing SDS using the I / O devices 312, PCIe devices 312a, and / or other devices 316 can include generating and storing “content” data (e.g., generating and storing content data on NVMe storage devices, SAS storage devices, and / or other storage devices that can be provided by the PCIe devices 312a / I / O devices 312), generating and storing “state” data (e.g., generating and storing state data on the I / O devices 312, PCIe devices 312a, and / or other devices 316 such as GPUs), and / or generating and storing any other data that will be apparent to those skilled in the art and informed by the present disclosure. Thus, providing one or more SDS using the I / O devices 312, PCIe devices 312a, and / or other devices 316 can be used to configure those devices (e.g., via data generated and stored on and / or associated with those devices) to allow the one or more SDS to be provided in a manner that provides the one or more SDS at any particular point in time.
[0055] Method 600 then proceeds to decision block 604, where it is determined whether the SDS are available via the first computing system. In different embodiments, different apparatuses at decision block 604 are operable to directly determine whether the SDS are available via the computing apparatus 202a / 400, and any of those direct SDS availability determinations can cause the SCP subsystem 304 in the computing system 202a / 400 to also determine whether the SDS are available via the computing apparatus 202a / 400 at block 604. In one embodiment, at decision block 604, the availability-extended computing system engine 504 in the SCP subsystem 304 / 500 in the computing system 202a / 400 is operable to directly determine whether the SDS are available via the computing system 202a / 400 based on communications with the central processing subsystem 308 in the computing system 202a / 400 that provide those SDS. For example, the availability-extended computing system engine 504 in the SCP subsystem 304 / 500 in the computing system 202a / 400 can exchange communications (e.g., "keep-alive" communications) with the central processing subsystem 308 in the computing system 202a / 400 that provide those SDS via the apparatus access controller subsystem 306, and at decision block 604, it can be determined whether the central processing subsystem 308 has not responded to those communications within a certain time period, whether those communications have not been transmitted within a certain time period, and / or whether the SDS are otherwise indicated as no longer available via the computing system 202a / 400.
[0056] In another embodiment, at decision block 604, the BMC subsystem 310 in the computing system 202a / 400 is operable to directly determine whether the SDS are available via the computing system 202a / 400 based on communications with the central processing subsystem 308 in the computing system 202a / 400 that provide those SDS. For example, the BMC subsystem 310 in the computing system 202a / 400 can exchange communications (e.g., "keep-alive" communications) with the central processing subsystem 308 in the computing system 202a / 400 that provide those SDS, and at decision block 604, it can be determined whether the central processing subsystem 308 has not responded to the "keep-alive" communications within a certain time period, whether the "keep-alive" communications have not been transmitted within a certain time period, and / or whether the SDS are otherwise indicated as no longer available via the computing system 202a / 400. As will be appreciated by those skilled in the art in light of the present disclosure, any direct determination of whether the SDS are available via the computing system 202a / 400 can be communicated by the BMC subsystem 310 to the SCP subsystem 304 in the computing system 202a / 400 in various ways, such that the SCP subsystem 304 indirectly determines whether the SDS are available via the computing system 202a / 400.
[0057] In another embodiment, at decision block 604, the management system 206 is operable to directly determine whether the SDS is available via the computing system 202a / 400 based on communication with the central processing subsystem 308 in the computing system 202a / 400 that provides those SDSs. For example, the management system 206 can exchange communications (e.g., "keep alive" communications) with the central processing subsystem 308 in the computing system 202a / 400 that provides those SDSs (e.g., via the SCP subsystem 304 and the device access controller subsystem 306 in the computing system 202a / 400, or via the SCP subsystem 304 and the BMC subsystem 310 in the computing system 202a / 400), and at decision block 604, can determine whether the central processing subsystem 308 has not responded to the "keep alive" communications within a certain time period, has not transmitted "keep alive" communications within a certain time period, and / or is otherwise indicating that the SDSs are no longer available via the computing system 202a / 400. As will be appreciated by those skilled in the art in light of the present disclosure, any direct determination of whether the SDSs are available via the computing system 202a / 400 can be communicated by the management system 206 to the SCP subsystem 304 in the computing system 202a / 400 in various ways (e.g., via the network 204) such that the SCP subsystem 304 indirectly determines whether the SDSs are available via the computing system 202a / 400.
[0058] In another embodiment, at decision block 604, the remote host provided in the example below by computing system 202b is operable to directly determine whether the SDS is available via computing system 202a / 400 based on communications with the central processing subsystem 308 in computing system 202a / 400 that provides those SDSs. For example, computing system 202b can exchange communications (e.g., "keep-alive" communications) with the central processing subsystem 308 in computing system 202a / 400 that provides those SDSs (e.g., via the SCP subsystem 304 and device access controller subsystem 306 in computing system 202a / 400, or via the SCP subsystem 304 and BMC subsystem 310 in computing system 202a / 400), and at decision block 604, can determine whether the central processing subsystem 308 has not responded to the "keep-alive" communications for a certain time period, has not transmitted "keep-alive" communications for a certain time period, and / or is otherwise indicating that the SDS is no longer available via computing system 202a / 400. As will be appreciated by those skilled in the art in light of the present disclosure, any direct determination of whether the SDS is available via computing system 202a / 400 can be communicated by computing system 202b to the SCP subsystem 304 in computing system 202a / 400 in various ways (e.g., via network 204) such that the SCP subsystem 304 indirectly determines whether the SDS is available via computing system 202a / 400.
[0059] If it is determined at decision block 604 that the SDS is available via the first computing system, the method 600 returns to block 602. Thus, the method 600 can loop such that the central processing subsystem 308 in the computing system 202a / 400 operates to provide the SDS as long as the SDS is available. If it is determined at decision block 604 that the SDS is not available via the first computing system, the method 600 proceeds to block 606 in which the network subsystem in the first computing system configures the device access controller subsystem in the first computing system to receive SDS communications from the network subsystem. As will be appreciated by those skilled in the art in light of the present disclosure, the SDS provided by the central processing subsystem 308 in the computing system 202a / 400 can become unavailable for various reasons that will fall within the scope of the present disclosure. For example, the SDS provided by the central processing subsystem 308 in the computing system 202a / 400 can become unavailable due to a central processing subsystem failure that renders the central processing subsystem 308 unavailable, a computing system reboot that renders the central processing subsystem 308 unavailable when performing a reboot operation that can be performed in an attempt to correct a software issue associated with the SDS, a failure or unavailability of the power zone 402 that renders the central processing subsystem 308 unavailable, and / or any other SDS unavailability scenario that will be apparent to those skilled in the art in light of the present disclosure.
[0060] Thus, referring to Figure 7B In some embodiments of decision block 604, the central processing subsystem 308 can become unavailable (as indicated by element 702 in Figure 7B ), such that the SDS is unavailable via the computing system 202a / 400 and this SDS unavailability will cause the method 600 to proceed to block 606. In one embodiment, at block 606, the SCP subsystem 304 / 500 in the computing system 202a / 400 is operable to directly or indirectly configure the device access controller subsystem 306 in the computing system 202a / 400 to receive SDS communications from the SCP subsystem 304 / 500 in the computing system 202a / 400. For example, referring to Figure 8A , the availability extended computing system engine 504 in the SCP subsystem 304 / 500 can perform the device access controller subsystem configuration operation 800 to directly configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem reconfiguration instructions and transmitting the device access controller subsystem reconfiguration instructions to the device access controller subsystem 306 via the component connection 508b in the communication system 508.
[0061] In another example, referring to Figure 8BAt block 606, the availability extended computing system engine 504 in the SCP subsystem 304 / 500 can perform the device access controller subsystem configuration operation 802 to indirectly configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem reconfiguration instructions and transmitting the device access controller subsystem reconfiguration instructions to the BMC subsystem 310 in the computing system 202a / 400 via the component connection 508b in the communication system 508, which causes the BMC subsystem 310 to perform the device access controller subsystem configuration operation 804 to correspondingly configure the device access controller subsystem 306.
[0062] In another example, referring to Figure 8C and Figure 8D At block 606, the management system 206 can perform the device access controller subsystem configuration operation 806 to configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem configuration instructions and transmitting the device access controller subsystem configuration instructions to the SCP subsystem 304 / 500 in the computing system 202a / 400 via the network 204, which causes the SCP subsystem 304 / 500 to perform the device access controller subsystem configuration operation 808 to correspondingly indirectly configure the device access controller subsystem 306 (e.g., by forwarding those device access controller subsystem configuration instructions received from the management system 206 to the device access controller subsystem 306).
[0063] In another example, referring to Figure 8E and Figure 8F At block 606, the remote host provided by the computing system 202b in the following example is operable to perform the device access controller subsystem configuration operation 810 to configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem configuration instructions and transmitting the device access controller subsystem configuration instructions to the SCP subsystem 304 / 500 in the computing system 202a / 400 via the network 204, which causes the SCP subsystem 304 / 500 to perform the device access controller subsystem configuration operation 812 to correspondingly indirectly configure the device access controller subsystem 306 (e.g., by forwarding those device access controller subsystem configuration instructions received from the computing system 202b to the device access controller subsystem 306).
[0064] However, while several examples of configurations of the device access controller subsystem 308 are described, those of ordinary skill in the art having knowledge of the present disclosure will appreciate that the device access controller subsystems of the present disclosure (e.g., fiber switch devices) can be configured in a variety of ways that will also fall within the scope of the present disclosure. Moreover, while several specific techniques for configuring access to devices via a device access controller subsystem are described herein, other techniques for configuring access to devices in a computing system that can be used with the present disclosure are described in U.S. Patent Application No. 17 / 081,808 (Attorney Docket No. 16356.2206US01), filed October 27, 2020, by some inventors of the present disclosure, the disclosure of which is incorporated herein by reference in its entirety.
[0065] As will be appreciated by those of ordinary skill in the art having knowledge of the present disclosure, prior to block 606, as discussed above with reference to block 602, the device access controller subsystem 308 can be configured to receive SDS communications from the central processing subsystem 308 and transmit those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 to provide SDS. For example, a fiber switch device providing the device access controller subsystem 308 in the computing system 202a / 400 can be configured to receive SDS communications from the central processing subsystem 308 and transmit those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 via fiber.
[0066] Moreover, those of ordinary skill in the art having knowledge of the present disclosure will recognize how the device access controller subsystem 308 can be reconfigured to receive SDS communications from the SCP subsystem 304 / 500 in the computing system 202a / 400 and transmit those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 to provide SDS, as discussed in more detail below with reference to block 610. For example, a fiber switch device providing the device access controller subsystem 308 in the computing system 202a / 400 can be reconfigured to receive SDS communications from the SCP subsystem 304 / 500 in the computing system 202a / 400 and transmit those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 via fiber. However, while specific configuration / reconfiguration scenarios are described, those of ordinary skill in the art having knowledge of the present disclosure will appreciate how the device access controller subsystem 308 can be configured to provide functionality in a variety of ways that will also fall within the scope of the present disclosure.
[0067] As will be appreciated by those skilled in the art in light of the disclosure, I / O devices 312, PCIe devices 312a, and / or other devices 316 can not be configured to and / or can not be capable of presenting themselves as more than one device, such that a reconfiguration of the above-described device access controller subsystem 308 is required to switch access to the device from the central processing subsystem 308 to the SCP subsystem 304 / 500, thereby allowing remote access to the device over the network 204 and via the SCP subsystem 204 / 500, as discussed in greater detail below. However, in some embodiments, I / O devices 312, PCIe devices 312a, and / or other devices 316 in computing system 202a / 400 can be configured to present themselves to both the SCP subsystem 304 / 500 and the central processing subsystem 308, such that the above-discussed reconfiguration of the device access controller subsystem 308 is not required.
[0068] For example, any of I / O devices 312, PCIe devices 312a, and / or other devices 316 can be configured to natively support multi-device presentation (e.g., using PCIe I / O virtualization techniques), such that no reconfiguration of the device access controller subsystem 308 is required after determining that SDS is not available via computing system 202a / 400. In another example, any of I / O devices 312, PCIe devices 312a, and / or other devices 316 can include multiple physical ports to support multi-device presentation, such that no reconfiguration of the device access controller subsystem 308 is required after determining that SDS is not available via computing system 202a / 400. Thus, prior to determining that SDS is not available via computing system 202a / 400, the device access controller subsystem 308 in computing system 202a / 400 can be configured at block 606 to receive SDS communications from the SCP subsystem 304 / 500 (i.e., the device access controller subsystem 308 can be configured to receive SDS communications from the SCP subsystem 304 / 500 simply because I / O devices 312, PCIe devices 312a, and / or other devices 316 are configured to natively support multi-device presentation, as discussed above).
[0069] Method 600 then proceeds to block 608, in which the network subsystem allows the second computing system to remotely access the devices in the first computing system via the network and the network subsystem and through the device access controller subsystem. In one embodiment, at block 608, the availability-extended computing system engine 504 in the SCP subsystem 304 / 500 is operable to allow the computing system 202b to remotely access the I / O devices 312, PCIe devices 312a, and / or other devices 316 in the computing system 202a / 400 via the network 204 and the SCP subsystem 304 / 500 and through the device access controller subsystem 308. For example, at block 608, the availability-extended computing system engine 504 in the SCP subsystem 304 / 500 can configure the NIC devices 508a in the communication system 508 in such a way that allows the computing system 202b to remotely access the I / O devices 312, PCIe devices 312a, and / or other devices 316 in the computing system 202a / 400 via the network 204 and the SCP subsystem 304 / 500 and through the device access controller subsystem 308.
[0070] For example, the configuration performed at block 608 can include the SCP subsystem 304 / 500 being configured to perform a remote access protocol (e.g., the NVMe over Fabrics protocol) to transmit device traffic that would otherwise be transmitted locally within its computing system via the network 204, configuring the SCP subsystem to present the devices in its computing system to a remote SCP subsystem, configuring the SCP subsystem to access remote devices, and / or other configuration operations that will be apparent to those of ordinary skill in the art having the present disclosure. However, while specific operations for allowing the computing system 202b to remotely access the I / O devices 312, PCIe devices 312a, and / or other devices 316 in the computing system 202a / 400 have been described, those of ordinary skill in the art having the present disclosure will appreciate that other operations can be performed to enable remote access as discussed below, while still remaining within the scope of the present disclosure.
[0071] Method 600 then proceeds to block 610, in which the network subsystem transmits SDS communications received from the second computing system to the devices via the device access controller subsystem. In one embodiment, at block 610, the computing system 202b can be configured to provide SDS that was previously provided by the computing system 202a in accordance with block 602. For example, at block 610, the SCP subsystem 304 / 500 and / or the management system 206 can configure the computing system 202b to perform remote SDS provisioning operations using the I / O devices 312, PCIe devices 312a, and / or other devices 316 in the computing system 202a / 400 using various SDS configuration techniques known in the art.
[0072] Referring to Figure 9A、 Figure 9B and Figure 9C In response to being configured to perform remote SDS operations, the SDS previously performed by the central processing subsystem 308 in the computing system 202a / 400 can be restarted on the central processing subsystem 308 in the computing system 202b / 400, which can be operable to perform remote SDS provisioning operations 900, which can include exchanging SDS communications with the I / O devices 312, PCIe devices 312a, and / or other devices 316 included in the computing system 202a / 400 via the network 204, as well as performing any other operations that would be considered by those skilled in the art having the benefit of the present disclosure to provision one or more SDSs. For example, the central processing subsystem 308 in the computing system 202b / 400 can transmit SDS communications to the device access controller subsystem 306 in the computing system 202b / 400, and the device access controller subsystem 306 in the computing system 202b / 400 can forward those SDS communications to the SCP subsystem 304 in the computing system 202b / 400, such that the SCP subsystem 304 in the computing system 202b / 400 transmits those SDS communications to the computing system 202a / 400 via the network 204, as shown in Figure 9A and Figure 9B The SCP subsystem 304 in the computing system 202a / 400 can then receive those SDS communications and transmit them to the device controller subsystem 306 in the computing system 202a / 400, and the device controller subsystem 306 in the computing system 202a / 400 can then forward those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 included in the computing system 202a / 400.
[0073] Similarly, the I / O devices 312, PCIe devices 312a, and / or other devices 316 included in the computing system 202a / 400 can transmit SDS communications to the device access controller subsystem 306 in the computing system 202a / 400, and the device access controller subsystem 306 in the computing system 202a / 400 can forward those SDS communications to the SCP subsystem 304 in the computing system 202a / 400, such that the SCP subsystem 304 in the computing system 202a / 400 transmits those SDS communications to the computing system 202b / 400 via the network 204. The SCP subsystem 304 in the computing system 202b / 400 can then receive those SDS communications and transmit them to the device controller subsystem 306 in the computing system 202b / 400, and the device controller subsystem 306 in the computing system 202b / 400 can then forward those SDS communications to the central processing subsystem 308 in the computing system 202b / 400.
[0074] As will be appreciated by those skilled in the art in light of the disclosure, the exchange of SDS communications between the central processing subsystem 308 in the computing system 202b / 400 and the I / O devices 312, PCIe devices 312a, and / or other devices 316 included in the computing system 202a / 400 is operable to provide the same SDS provided by the central processing subsystem 308 in the computing system 202a / 400 in accordance with block 602. Moreover, while the computing system 202b / 400 is discussed in the examples below as remotely providing SDS to provide the high availability functionality of the present disclosure, those skilled in the art in light of the disclosure will recognize that any other computing system (e.g., up to 202c and / or 300) can remotely provide SDS to provide the high availability functionality while still falling within the scope of the present disclosure.
[0075] Accordingly, at block 610, the central processing subsystem 308 in the computing system 202b / 400 is operable to remotely provide one or more SDS using the I / O devices 312, PCIe devices 312a, and / or other devices 316 in the computing system 202a / 400, which, as will be appreciated by those skilled in the art in light of the disclosure, can include software defined storage services, software defined processing services, and / or any other SDS known in the art. Moreover, while described as providing SDS, those skilled in the art in light of the disclosure will recognize that the SDS discussed herein can be replaced with utilizing the devices in the computing system to provide various applications such as database services, data analytics, AI training, interference services, and / or various other functionality known in the art. As will be appreciated by those skilled in the art in light of the disclosure, the central processing subsystem 308 in the computing system 202b / 400 providing SDS using the I / O devices 312, PCIe devices 312a, and / or other devices 316 in the computing system 202a allows for utilizing “content” data (e.g., stored on NVMe storage devices, SAS storage devices, and / or other storage devices that can be provided by the PCIe devices 312a / I / O devices 312 in the computing system 202a / 400), utilizing “state” data (e.g., stored on the I / O devices 312, PCIe devices 312a, and / or other devices 316 such as GPUs in the computing system 202a / 400), and / or utilizing any other data in the computing system 202a / 400 that will be apparent to those skilled in the art in light of the disclosure. Accordingly, the computing system 202b remotely providing one or more SDS using the I / O devices 312, PCIe devices 312a, and / or other devices 316 in the computing system 202a allows for providing the one or more SDS in the same manner that the computing system 202a provides the SDS.
[0076] As will be appreciated by those skilled in the art in light of the present disclosure, the second computing system can use the devices in the first computing system that previously provided SDS locally to provide those SDS remotely in various situations. For example, if the central processing subsystem in the first computing system fails or becomes unavailable such that the SDS provided by that central processing subsystem becomes unavailable, then the second computing system can be utilized to provide those SDS remotely while the first computing system is powered down and restarted in an attempt to repair the unavailability of the central processing subsystem therein. In another example, if a power zone that includes the central processing subsystem in the first computing system fails or becomes unavailable such that the SDS provided by that central processing subsystem becomes unavailable, then the second computing system can be utilized to provide those SDS remotely until the power zone is restored.
[0077] In another example, if an update is made to the operating system (or other software) in the first computing system such that the SDS provided using that operating system becomes unavailable, then the second computing system can be utilized to provide those SDS remotely until the operating system (or other software) update is complete. In another example, if the first computing system is being rebooted such that the SDS provided using that first computing system becomes unavailable, then the second computing system can be utilized to provide those SDS remotely until the reboot operation is complete, as will be appreciated by those skilled in the art in light of the present disclosure that, in performing reboot operations, particularly when those reboot operations are performed on computing systems that are rebooted infrequently, a significant amount of time can be consumed due to the often time-consuming firmware updates that are performed. However, while various situations have been described in which the second computing system uses the devices in the first computing system (that previously provided those SDS locally) to provide SDS remotely, those skilled in the art in light of the present disclosure will appreciate that the remote-provisioning / availability-extending functionality of the present disclosure will provide benefits in various other situations as well that will fall within the scope of the present disclosure.
[0078] Method 600 then proceeds to decision block 612, where it is determined whether the first computing system is available to provide the SDS that became unavailable at decision block 604. Similar to the scenarios discussed above with respect to decision block 604, at decision block 612, different means are operable to directly determine whether the SDS is available via the computing device 202a / 400, and any of those direct determinations can cause the SCP subsystem 304 in the computing system 202a / 400 to also determine whether the SDS is available via the computing device 202a / 400 at block 612. Thus, at decision block 612, the SCP subsystem 304 / 500 in the computing system 202a / 400 is operable to directly determine whether the SDS is available via the computing system 202a / 400, the BMC subsystem 310 in the computing system 202a / 400 is operable to directly determine whether the SDS is available via the computing system 202a / 400 and communicate that to the SCP subsystem 304 in the computing system 202a / 400, the management system 206 is operable to directly determine whether the SDS is available via the computing system 202a / 400 and communicate that to the SCP subsystem 304 in the computing system 202a / 400, or the remote host provided by the computing system 202b is operable to directly determine whether the SDS is available via the computing system 202a / 400 and communicate that to the SCP subsystem 304 in the computing system 202a / 400.
[0079] In particular examples, determining whether the SDS is available via the computing system can include determining whether the computing system is ready to provide those SDSs, is able to provide those SDSs, and / or is otherwise currently configured to provide those SDSs. For example, an inability to provide the SDS can be due to a hardware failure in the computing system, and determining whether the SDS is available at decision block 612 can include determining whether the hardware failure has been repaired and the computing system has rebooted. However, one of skill in the art having the benefit of the present disclosure will appreciate that SDS availability on a computing system can be determined in a variety of ways that will also be within the scope of the present disclosure.
[0080] If it is determined at decision block 612 that the first computing system is not available to provide the SDS that became unavailable at decision block 604, the method 600 returns to block 610. Thus, the method 600 can loop such that as long as the SDS is unavailable via the computing system 202a / 400, the central processing subsystem 308 in the computing system 202b / 400 operates to provide the SDS using the devices in the computing system 202a / 400. If it is determined at decision block 612 that the first computing system is available to provide the SDS that became unavailable at decision block 604, the method 600 proceeds to block 614, where the network subsystem in the first computing system configures the device access controller subsystem to receive SDS communications from the central processing subsystem. As will be appreciated by those skilled in the art and informed by the present disclosure, the SDS can again become unavailable for use by the central processing subsystem 308 in the computing system 202a / 400 for various reasons that will fall within the scope of the present disclosure. For example, the SDS can again become available via the central processing subsystem 308 in the computing system 202a / 400 due to a central processing subsystem 308 restoration that makes the central processing subsystem 308 available, completion of a computing system restart that makes the central processing subsystem 308 available, restoration of the power zone 402 that makes the central processing subsystem 308 available, or any other SDS availability scenario that will be apparent to those skilled in the art and informed by the present disclosure.
[0081] Thus, in some embodiments of decision block 612, the central processing subsystem 308 can become available such that the SDS is available via the computing system 202a / 400, and the SDS availability will cause the method 600 to proceed to block 614, where the central processing subsystem 308 in the computing system 202b / 400 stops providing the SDS using the devices in the computing system 202a / 400, local access to those devices by the central processing subsystem 308 in the computing system 202a / 400 is restored, and the central processing subsystem 308 in the computing system 202a / 400 then begins to again provide those SDSs. In one embodiment, at block 614, the SCP subsystem 304 / 500 in the computing system 202a / 400 is operable to directly or indirectly configure the device access controller subsystem 306 in the computing system 202a / 400 to receive SDS communications from the central processing subsystem 308 in the computing system 202a / 400. For example, with reference to the above discussion of FIG. 5, the SCP subsystem 304 / 500 in the computing system 202a / 400 can be operable to directly or indirectly configure the device access controller subsystem 306 in the computing system 202a / 400 to receive SDS communications from the central processing subsystem 308 in the computing system 202a / 400. Figure 8ASimilarly as discussed, the availability-extended computing system engine 504 in the SCP subsystem 304 / 500 can perform a device access controller subsystem configuration operation (similar to the device access controller subsystem configuration operation 800) to directly configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem reconfiguration instructions and transmitting the device access controller subsystem reconfiguration instructions to the device access controller subsystem 306 via the component connection 508b in the communication system 508.
[0082] In another example, similarly as discussed above with reference to Figure 8B Similarly as discussed, at block 614, the availability-extended computing system engine 504 in the SCP subsystem 304 / 500 can perform a device access controller subsystem configuration operation (similar to the device access controller subsystem configuration operation 802) to indirectly configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem configuration instructions and transmitting the device access controller subsystem configuration instructions to the BMC subsystem 310 in the computing system 202a / 400 via the component connection 508b in the communication system 508, which causes the BMC subsystem 310 to perform the device access controller subsystem configuration operation 804 to correspondingly configure the device access controller subsystem 306.
[0083] In another example, similarly as discussed above with reference to Figure 8C and Figure 8D Similarly as discussed, at block 606, the management system 206 can perform a device access controller subsystem configuration operation (similar to the device access controller subsystem configuration operation 806) to configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem configuration instructions and transmitting the device access controller subsystem configuration instructions to the SCP subsystem 304 / 500 in the computing system 202a / 400 via the network 204, which causes the SCP subsystem 304 / 500 to perform the device access controller subsystem configuration operation 808 to correspondingly indirectly configure the device access controller subsystem 306 (e.g., by forwarding those device access controller subsystem configuration instructions received from the management system 206 to the device access controller subsystem 306).
[0084] In another example, similarly as discussed above with reference to Figure 8E and Figure 8FSimilarly, at block 606, the remote host provided by the computing system 202b is operable to perform a device access controller subsystem configuration operation (similar to the device access controller subsystem configuration operation 810) to configure the device access controller subsystem 306 in the computing system 202a / 400 by, for example, generating device access controller subsystem configuration instructions and transmitting the device access controller subsystem configuration instructions to the SCP subsystem 304 / 500 in the computing system 202a / 400 via the network 204, which causes the SCP subsystem 304 / 500 to perform a device access controller subsystem configuration operation 812 to indirectly configure the device access controller subsystem 306 accordingly (e.g., by forwarding those device access controller subsystem configuration instructions received from the computing system 202b to the device access controller subsystem 306).
[0085] However, while several examples of configuration of the device access controller subsystem 308 are described, one of skill in the art having knowledge of the disclosure will appreciate that device access controller subsystems of the disclosure (e.g., fiber switch devices) can be configured in a variety of ways that will also fall within the scope of the disclosure. Moreover, while several specific techniques for configuring access to devices via device access controller subsystems are described herein, other techniques for configuring access to devices in a computing system that can be used with the disclosure are described in U.S. Patent Application No. 17 / 081,808 (Attorney Docket No. 16356.2206US01), filed October 27, 2020, by some inventors of the disclosure, the disclosure of which is incorporated herein by reference in its entirety.
[0086] As will be appreciated by one of skill in the art having knowledge of the disclosure, at block 614, the device access controller subsystem 308 can be reconfigured to receive SDS communications from the central processing subsystem 308 and transmit those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 to provide SDS, as discussed above with reference to block 602. For example, a fiber switch device providing the device access controller subsystem 308 in the computing system 202a / 400 can be configured to receive SDS communications from the central processing subsystem 308 and transmit those SDS communications to the I / O devices 312, PCIe devices 312a, and / or other devices 316 via fiber. However, while a specific configuration / reconfiguration scenario is described, one of skill in the art having knowledge of the disclosure will appreciate how the device access controller subsystem 308 can be configured to provide functionality in a variety of ways that will also fall within the scope of the disclosure.
[0087] As discussed above, I / O devices 312, PCIe devices 312a, and / or other devices 316 can not be configured to and / or be unable to present themselves as more than one device, which requires reconfiguration of the device access controller subsystem 308 described above to switch access to the device from the SCP subsystem 304 / 500 to the central processing subsystem 308 to allow the central processing subsystem 308 to access the device locally. However, as also discussed above, in some embodiments, I / O devices 312, PCIe devices 312a, and / or other devices 316 in computing system 202a / 400 can be configured to present themselves to both the SCP subsystem 304 / 500 and the central processing subsystem 308 simultaneously, such that the reconfiguration of the device access controller subsystem 308 discussed above is not required. For example, any of I / O devices 312, PCIe devices 312a, and / or other devices 316 can be configured to support multiple device presentation natively (e.g., using devices that are multi-ported natively or can be provided multiple ports using PCIe I / O virtualization techniques), such that no reconfiguration of the device access controller subsystem 308 is required after determining that SDS are available via computing system 202a / 400. Thus, prior to determining that SDS are available via computing system 202a / 400, the device access controller subsystem 308 in computing system 202a / 400 can be configured to receive SDS communications from the central processing subsystem 308 (i.e., as discussed above, based on I / O devices 312, PCIe devices 312a, and / or other devices 316 being configured to support multiple device presentation natively, the device access controller subsystem 308 can be configured to receive SDS communications from the central processing subsystem 308). Method 600 then returns to block 602, where the central processing subsystem 308 in computing system 202a / 400 operates to provide SDS similarly to the cases discussed above.
[0088] Thus, systems and methods have been described that provide an SCP subsystem in a first server that is configured to implement a path for a second server to reach an apparatus in the first server for providing SDSs, which allows the second server to provide SDSs using the apparatus in the first server that was previously used by the first server to provide the SDSs, and without having to back up data associated with those SDSs and / or reconstruct the data on the second server. For example, a compute system of the present disclosure that extends availability can include a first server and a second server coupled together via a network. The first server includes a fiber switch coupled to a plurality of apparatuses and a host CPU complex configured to provide SDSs using the apparatuses via the fiber switch. An SCP subsystem coupled to the fiber switch determines that at least one SDS is unavailable, configures the fiber switch to receive SDS communications from the SCP subsystem, allows the second server to remotely access the apparatuses via the SCP subsystem and through the fiber switch, and transmits SDS communications received from the second server to the apparatuses via the fiber switch, such that the second server provides SDSs using the apparatuses via the fiber switch. Thus, the first server has extended availability such that it is able to use its apparatuses to provide SDSs even when it is unable to provide the SDSs.
[0089] While illustrative implementations have been illustrated and described, various modifications, changes, and alternatives can become apparent to those skilled in the art from the foregoing disclosure and it is intended that all such modifications, changes, alternatives, and equivalents fall within the scope of the implementations disclosed herein.
Claims
1. An availability-enhanced computing system, the availability-enhanced computing system comprising: Second computing system; as well as A first computing system, connected to the second computing system via a network, wherein the first computing system includes: Device access controller subsystem; Multiple devices, the multiple devices being connected to the device access controller subsystem; A central processing subsystem, connected to the device access controller subsystem, wherein the central processing subsystem is configured to provide at least one software-defined service (SDS) using the plurality of devices via the device access controller subsystem; and A network subsystem, connected to the device access controller subsystem, wherein the network subsystem is configured to: It has been determined that at least one SDS provided by the central processing subsystem is unavailable; Configure the device access controller subsystem to receive SDS communication from the network subsystem; The second computing system is allowed to remotely access the plurality of devices via the network subsystem and through the device access controller subsystem; and The device access controller subsystem transmits SDS communications received from the second computing system to the plurality of devices so as to allow the second computing system to use the plurality of devices to provide the at least one SDS via the device access controller subsystem.
2. The system of claim 1, wherein the device access controller subsystem includes a fiber optic switching device.
3. The system of claim 1, wherein the network subsystem includes a system control processor (SCP) subsystem.
4. The system of claim 1, wherein the network subsystem is configured to: It is determined that the at least one SDS can be provided by the central processing subsystem after the at least one SDS becomes unavailable; and The device access controller subsystem is configured to receive SDS communications from the central processing subsystem so as to allow the central processing subsystem to provide at least one SDS again via the device access controller subsystem using the plurality of devices.
5. The system of claim 1, wherein the network subsystem is configured to determine that the at least one SDS provided by the central processing subsystem is unavailable by at least one of the following operations: The at least one SDS is determined to be unavailable using direct central processing subsystem / network subsystem communication. Receive SDS unavailability communication from the Baseboard Management Controller (BMC) subsystem included in the first computing system; Receives SDS unavailability communication from a management system, which is connected to the first computing system via the network; Receive SDS unavailability communication from the second computing system; or The first computing system receives SDS unavailability communication from a third computing system connected to the network.
6. The system of claim 1, wherein the network subsystem is configured to configure the device access controller subsystem to receive SDS communication from the network subsystem by at least one of the following operations: The device access controller subsystem configuration communication is generated and transmitted to the device access controller subsystem. The management system connected to the first computing system via the network generates device access controller subsystem configuration communication and transmits the device access controller subsystem configuration communication to the device access controller subsystem; or The first computing system is instructed to generate device access controller subsystem configuration communication and transmit the device access controller subsystem configuration communication to the device access controller subsystem.
7. An information processing system (IHS), said information processing system comprising: Network processing subsystem; as well as A network storage subsystem, coupled to the network processing subsystem, includes instructions that, when executed by the network processing subsystem, cause the network processing subsystem to provide an availability-enhanced computing system engine, the availability-enhanced computing system engine being configured to: It is determined that at least one software-defined service (SDS) is unavailable, said software-defined service being provided by a central processing subsystem, said central processing subsystem being included in said IHS and connected to said network processing subsystem via a device access controller subsystem included in said IHS; The device access controller subsystem is configured to receive SDS communications from the computing system engine of the availability extension; The second computing system is allowed to remotely access multiple devices, which are included in the IHS and connected to the network processing subsystem via the network and the computing system engine of the availability extension, and through the device access controller subsystem. and The device access controller subsystem transmits SDS communications received from the second computing system to the plurality of devices so as to allow the second computing system to use the plurality of devices to provide the at least one SDS via the device access controller subsystem.
8. The IHS of claim 7, wherein the device access controller subsystem includes a fiber optic switching device.
9. The IHS of claim 7, wherein the network processing subsystem and the network storage subsystem are included on the system control processor (SCP) subsystem.
10. The IHS of claim 7, wherein the availability-enhanced computing system engine is configured to: It is determined that the at least one SDS can be provided by the central processing subsystem after the at least one SDS becomes unavailable; and The device access controller subsystem is configured to receive SDS communications from the central processing subsystem so as to allow the central processing subsystem to provide at least one SDS again via the device access controller subsystem using the plurality of devices.
11. The IHS of claim 7, wherein the availability-extended computing system engine is configured to determine that the at least one SDS provided by the central processing subsystem is unavailable by at least one of the following operations: The system communication process, using the direct central processing subsystem / network processing subsystem, determines that at least one SDS is unavailable; Receive SDS unavailability communication from the substrate management controller (BMC) subsystem included in the IHS; Receives SDS unavailability communication from a management system, which is connected to the IHS via the network; Receive SDS unavailability communication from the second computing system; or Receive SDS unavailability communication from a third computing system, which is connected to the IHS via the network.
12. The IHS of claim 7, wherein the availability-extended computing system engine is configured to configure the device access controller subsystem to receive SDS communications from the availability-extended computing system engine by at least one of the following operations: The device access controller subsystem configuration communication is generated and transmitted to the device access controller subsystem. The management system connected to the IHS via the network generates device access controller subsystem configuration communication and transmits the device access controller subsystem configuration communication to the device access controller subsystem; or The IHS includes a Baseboard Management Controller (BMC) subsystem that generates Device Access Controller Subsystem Configuration Communication and transmits the Device Access Controller Subsystem Configuration Communication to the Device Access Controller Subsystem.
13. The IHS of claim 7, wherein the availability-extended computing system engine is configured to configure the device access controller subsystem to receive SDS communication from the availability-extended computing system engine before determining that the at least one SDS is unavailable.
14. A method for providing scalable computing systems, the method comprising: The network subsystem of the first computing system determines that at least one software-defined service (SDS) is unavailable, wherein the at least one SDS was provided by a central processing subsystem before it became unavailable, and wherein the central processing subsystem is included in the first computing system and is connected to the network subsystem via a device access controller subsystem; The device access controller subsystem is configured via the network subsystem to receive SDS communication from the network subsystem; The network subsystem allows the second computing system to remotely access multiple devices via the network and the network subsystem, and through the device access controller subsystem, wherein the multiple devices are included in the first computing system and are connected to the network subsystem via the device access controller subsystem; as well as The network subsystem transmits SDS communications received from the second computing system to the plurality of devices via the device access controller subsystem so as to allow the second computing system to provide the at least one SDS using the plurality of devices via the device access controller subsystem.
15. The method of claim 14, wherein the device access controller subsystem includes a fiber optic switching device.
16. The method of claim 14, wherein the network subsystem includes a system control processor (SCP) subsystem.
17. The method of claim 14, further comprising: The network subsystem determines that the at least one SDS can be provided by the central processing subsystem after the at least one SDS becomes unavailable. and The network subsystem configures the device access controller subsystem to receive SDS communications from the central processing subsystem so that the central processing subsystem can again provide at least one SDS using the plurality of devices via the device access controller subsystem.
18. The method of claim 14, wherein determining that the at least one SDS provided by the central processing subsystem is unavailable is performed by at least one of the following operations: The network subsystem uses direct central processing subsystem / network subsystem communication to determine that at least one SDS is unavailable; The network subsystem receives SDS unavailability communication from the baseboard management controller (BMC) subsystem included in the first computing system. The network subsystem receives SDS unavailability communication from the management system, and the management system is connected to the first computing system via the network. Receive SDS unavailability communication from the second computing system through the network subsystem; or The network subsystem receives SDS unavailability communication from a third computing system, which is connected to the first computing system via the network.
19. The method of claim 14, wherein configuring the device access controller subsystem to receive SDS communication from the network subsystem is performed by at least one of the following operations: The network subsystem generates device access controller subsystem configuration communication and transmits the device access controller subsystem configuration communication to the device access controller subsystem. The device access controller subsystem configuration communication is generated from the management system connected to the first computing system via the network subsystem, and the device access controller subsystem configuration communication is transmitted to the device access controller subsystem; or The network subsystem instructs the baseboard management controller (BMC) subsystem included in the first computing system to generate device access controller subsystem configuration communication and transmit the device access controller subsystem configuration communication to the device access controller subsystem.
20. The method of claim 14, wherein the configuration of the device access controller subsystem to receive SDS communication from the subsystem occurs before determining that the at least one SDS is unavailable.
Citation Information
Patent Citations
Platform root-of-trust system
US11907386B2
Device access control system
US20220129536A1
Software defined automation system and architecture
CN108513655A
NVM EXPRESS controller for remote memory access
CN109582614A