Network infrastructure management system and computerized method

By implementing the collaborative work of UI backend components and configuration push components in the cloud local management console, the configuration problem during network switch stack failover is solved, and the integrity of seamless configuration transfer and configuration change is achieved.

CN117596135BActive Publication Date: 2025-03-04HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310718550.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2022-10-13
Filing Date
2023-06-16
Publication Date
2025-03-04
Estimated Expiration
2043-06-16

AI Technical Summary

Technical Problem

During failover events on the network switch stack, users may see errors and ambiguities, causing configuration changes to not be pushed to offline commander switches, causing problems with mismatch between network status and user configuration.

Method used

By implementing the collaborative work of UI backend components and configuration push components in the cloud-native management console, ensuring that during failover events, user configuration changes can be seamlessly transferred to the current commander switch, and the stack ID map is updated in real time by monitoring components to avoid configuration loss and errors.

Benefits of technology

This enables users to seamlessly configure and manage the network switch stack during failover events of the network switch stack, ensuring the integrity and consistency of configuration changes, and avoiding the problem of users seeing errors and ambiguity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117596135B_ABST
    Figure CN117596135B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to network switch stack failover configuration management. A network infrastructure management console configures one or more network switch stacks, each network switch stack comprising a plurality of switches. A monitoring component monitors the current commander switch of the stack. A user interface (UI) backend component comprises a cache memory and receives a user request for configuring the stack. The UI backend component receives notification of the current commander from the monitoring component and stores the requested configuration changes in a cache memory segment associated with the current commander. If the current commander switch of the stack has changed due to a failover event, the configuration changes stored in the cache memory segment associated with the previous current commander are written to the cache memory segment associated with the new current commander. A configuration push component receives the configuration changes and transmits the configuration changes to the network switch stack.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] The cloud-native management console provides users with a simple way to manage, monitor, and troubleshoot network infrastructure including customer networks and networked devices from a web-based user interface accessible via the cloud. This cloud-managed networking solution can provide a single control point to monitor all aspects of wired and wireless LANs, WANs, and VPNs across campus, branches, remote, and data center locations. Individual network switch devices include networking hardware, such as multi-port bridges, which connect devices on a computer network using packet switching to receive and forward data to a destination device. Some network switches can be connected together to form a network switch stack that can operate together, and the network switch stack is used as a large network switch. This switch stack can also be configured using a cloud-native management console, such as a cloud-based networking solution with a web user interface (UI). This cloud-based network infrastructure management solution can provide, for example, software as a service (SaaS), pre-set, and managed service options for flexible consumption and finance. BRIEF DESCRIPTION OF THE DRAWINGS

[0002] Various objects, features, aspects, and advantages of the inventive subject matter will become more apparent from the following description and the accompanying drawings, in which like reference numerals represent like components.

[0003] Figure 1 An overview diagram of a cloud management network according to an example is illustrated.

[0004] Figure 2 An overview diagram of a network infrastructure management console according to an example is illustrated.

[0005] Figure 3 A flow diagram illustrating steps performed by a user interface backend component of a network infrastructure management console according to an example is illustrated.

[0006] Figure 4 A flow diagram of steps performed by a configuration push component of a network infrastructure management console according to an example is illustrated.

[0007] Figure 5 A flow diagram of steps performed by a monitoring component of a network infrastructure management console according to an example is illustrated.

[0008] Figure 6 Illustrated is a portion of a screenshot of a review user interface according to an example.

[0009] Figure 7 A block diagram of a distributed computer system that can be used to implement one or more aspects of the various examples is illustrated.

[0010] Although examples are described with reference to the above drawings, the drawings are intended to be illustrative and various other examples are consistent with the spirit and within the scope of the present disclosure. Summary of the invention

[0011] The present disclosure is directed to systems, methods, and computer-readable media that provide configuration management in the event of a network switch stack failover in a network infrastructure management system. In various examples, the management architecture can be used in particular with a cloud networking solution that includes a management and orchestration console that allows routine maintenance and monitoring of wired and wireless local area networks (LANs), wide area networks (WANs), and virtual private networks (VPNs) across campus, branch, and remote office locations of a commercial enterprise, including small and medium-sized businesses (SMBs).

[0012] A cloud-native management console (also referred to as a network infrastructure management console) includes various examples described herein. The cloud-native management console provides a cloud-managed networking solution that provides a simple and powerful interface for business IT operations. The cloud-native management console can be used as a management and orchestration console for network edge services, examples of which include an edge services platform (ESP).

[0013] As known to those skilled in the art, edge computing is computing that occurs at or near the physical location of a user or data source. By placing computing services closer to these locations, users can benefit from faster and more reliable services, while companies benefit from the flexibility of hybrid cloud computing. Edge computing is a method by which companies can use and distribute a common resource pool across a large number of locations. Edge is a strategy for extending a unified environment from a core data center or data center to a physical location near users and data. Just as hybrid cloud strategies allow organizations to run the same workload in their own data centers and on public cloud infrastructures (e.g., Amazon web services operated by Amazon lnc., Microsoft Azure services operated by Microsoft), edge strategies extend cloud environments to more locations. Currently, edge computing is used across many industries, including telecommunications, manufacturing, transportation, utilities, and many other industries. For example, many edge use cases are based on the need to process data locally in real time, where sending data to a data center for processing can often result in unacceptable levels of latency.

[0014] Therefore, the cloud-native management console of various examples herein provides a single control point that can be operated remotely from any location to monitor every aspect of wired and wireless LAN, WAN, and VPN across campus, branch, remote, and data center locations. In addition, artificial intelligence (AI)-enabled analysis, end-to-end orchestration and automation, and advanced security features can also be built locally into the solution. The solution can also include additional features such as real-time upgrades, robustness reports, and real-time chat support to bring more efficiency to daily maintenance activities. This cloud-native management console can be built on a cloud-native, microservices architecture that can meet the needs of enterprises of scale and elasticity, and is also driven by intuitive workflows and dashboards, which make the cloud-native management console suitable for small and medium-sized enterprises (SMBs) with limited IT staff at remote locations.

[0015] The example cloud-native management console described herein can eliminate the inefficiency of using disjointed, domain-specific network management tools. Loading, configuring, and supplying network devices are key activities in any environment, but may be time-consuming and complex. The example cloud-native management console described herein can be used to automate these processes using features such as easy setup wizards, flexible configuration options, and zero-touch provisioning, and can be further assisted by an intuitive mobile installer app. For example, the cloud-native management console may include a network health summary dashboard that provides quick insights for analyzing and improving networks, whether wired or wireless LANs or multiple LANs, or performance across WANs. As the interface changes to show network devices and connected clients specific to the location, IT operators can easily assess the state of the network from a single dashboard by browsing global and site-level details across multiple selected sites. In this way, information technology (IT) operators can quickly identify potential problems and focus on specific locations that require their immediate attention. The console may also allow IT operators or users to focus on specific devices in the network, including specific network switches or network switch stacks.

[0016] As known to those skilled in the art, a network switch stack is a collection of network switches interconnected by stack ports. A network switch stack can be set up and configured using a cloud-native management console and / or a virtual switching framework (VSF). In some examples of VSF, the first member in the stack becomes the conductor by default. The conductor switch (which may have been previously referred to as a commander or master switch) is a switch in the stack that maintains the switch configuration entered by the user. In some examples, the backup conductor is manually configured or specified by the user, and there is no default backup conductor. In some examples, any or all switches in the stack become members except the conductor and the backup conductor.

[0017] During a failover event, a problem with the cloud-native management console may occur on a stacked network switch that occurs at or approximately the same time as an IT operator working remotely makes a configuration change to the same network switch stack. The examples disclosed herein remove errors and / or ambiguities that a user may see during a failover event, in which the commander switch of the network switch stack that maintains the switch stack configuration is offline, and approximately at the same time, the network administrator uses the cloud-native management console to remotely manage the configuration of the switch stack. For example, a user may manage the stack from a web / cloud from some location, and the site / physical location of the stack may be in a different location, or even in a different city / state. The user may not see that the commander of the network switch stack has been offline, and therefore may inadvertently try to adjust the configuration of the stacked switch, which cannot be pushed to the offline commander, resulting in a mismatch between the actual network state and the user's network configuration. The examples disclosed herein ensure that the user will be able to configure the stacked switch even during a failover event, and the user's configuration changes will be transferred to the current commander switch even if the standby switch has become the commander switch due to the failover event.

[0018] The examples described herein help ensure that a network switch stack can be configured on a cloud-native management console in a seamless manner to a network administrator or other user without interruption, even during a failover event. As described above, a failover event occurs in a situation where a commander switch of a network switch stack in a cloud environment has failed, so that a corresponding standby switch of the network switch stack is activated. For example, a failover event may occur due to a software or hardware problem or an error in the current commander. A failover event may also occur due to user intervention (e.g., where a user executes a failover console command at a site on the current commander).

[0019] Figure 1An overview diagram of a cloud management network 100 according to an example is illustrated. In various example cloud-native management consoles (e.g., network infrastructure management console 120), a user using a wireless or wired network connection device such as a laptop 112 or mobile device 110 or mobile device 116 (e.g., a phone or tablet computer) connected to the cloud / web 122 can remotely access a user interface 128 via device 110, 112, or 116. The user can remotely configure any given network switch 106 by selecting it from a list of client devices on the user interface 128.

[0020] As background, a network switch managed within an enterprise may have a full set of management features, including a command line interface (CLI), a Simple Network Management Protocol (SNMP) agent, and a web interface. It may have additional features for manipulating the configuration, such as the ability to display, modify, backup, and restore the configuration. Enterprise-managed network switches are typically found in networks with a large number of switches and connections, where centralized management greatly saves management time and effort. A stackable network switch is a type of enterprise-managed network switch.

[0021] In some examples, there may be different models of stackable network switches. Stackable network switches may vary based on the number of physical ports supported by each switch and the speed of each port, etc. In some examples, multiple switches (e.g., up to 10) may be connected together to form a single large switch referred to as a stack. In other examples, a stack may include less than 10 or more than 10 switches. In some examples, a user / UI using a web interface such as a cloud-native management console will treat a stacked switch as a single switch, with a single switch having up to 10*48 or 10*54 ports, depending on the switch model connected to form a stack. In some examples, for example, a user can dynamically connect 2 switches to form a stack of 2 members, or connect up to 10 switches to form a stack of 10 members. In addition, the user can also delete members from the switch stack to reduce the stack size. The examples herein are not limited by any particular network switch or network switch stack configuration, and may be used with any plurality of network switches, and a plurality of network switches may be stacked together to form a single switch regardless of manufacturer or model, and may be used with any combination of networking switches and / or network switch stacks.

[0022] Some examples include Figure 11. In some examples, the network infrastructure management console 120 provides a web / cloud-based user interface (UI) 128 to configure, manage, and monitor network switches and / or other networked devices. A user can use the UI 128 to configure various features available on a standalone network switch or a stack of networked switches. In some examples, the UI 128 can have one or more tables / pages for configuring one or more parameters for each feature on a specific standalone switch or stacked switch. On a stacked switch, a user can configure and monitor the stack through a commander.

[0023] In some examples, network switch stack 105 includes a set of up to 10 switches (eg, director switch 151, backup switch 152, and Figure 1 153 to 160 in the network switch stack). Other example network switch stacks may have more or less than 10 switches. All switches in the network switch stack 105 are connected to each other to function as a single switch, and the stack has a designated commander switch 151 to coordinate the stack switch operations. The stack 105 also has a backup switch 152 that becomes the commander if the originally designated commander stops functioning due to software or hardware or power failure or user intervention. The remaining member switches in the stack are treated as ordinary members of the network switch stack 105. The user can then use the stack's commander switch 151 to configure and monitor the stack at the physical site / location of the stack 105 or remotely from the UI 128.

[0024] In the event of a failover due to any software or hardware issue or user intervention on the director switch 151, the web-based user interface (UI) 128 seamlessly allows the stack to be managed / configured via the cloud by automatically communicating via the standby switch 152, which becomes the director of the networked stack switches 105. In various examples, the backend configuration component of the UI on the network infrastructure management console 120 (also referred to as the UI backend component 124) can generally allow the user to configure using the current director regardless of what the monitoring component 123 of the network infrastructure management console 120 sees as the actual director at the physical site / location.

[0025] The UI backend component 124 operates based on information received from the monitoring component 123 of the system. In this way, the user / UI will see the same commander as the monitoring component 123. The configuration push component 126 disclosed herein uses the current commander connection to push any user configuration changes, even if it loses connection to the commander when making configuration changes due to, for example, a failover. The UI backend component 124 buffers all configuration changes made by the user. The UI backend component 124 then ensures that any user-entered configuration changes are pushed to the network switch stack 105 via the device agent 129, which transmits the changes to the cloud / web 122 via a network connection. In some examples, the UI backend component 124 also maintains / updates the stack ID mapping (device serial number / name) to the current commander so that it can interact with the correct device configuration in the cache to show the stack configuration to the user, and the current commander also updates the commander cache when it obtains device configuration updates from the configuration push and monitoring components. In some examples, the stack ID of the stack does not change during the life of the stack and failover, but the commander changes due to failover or user intervention.

[0026] Figure 2 An overview diagram of a network infrastructure management console 200 according to an example is illustrated. As discussed herein, the network infrastructure management console 200 may include software instructions executed on one or more processors. These software instructions are described below in terms of components. However, the components may or may not be physically separated and may include software instructions executed on one or more processors, whether physical or virtual processors, and the components may be executed on the same processor or multiple processors or different processors. The network infrastructure management console 200 includes a device agent 230 and a user interface (UI) 210, the device agent 230 having a two-way communication link for communicating with a network switch, a switch stack, and other devices managed by a user on the network, and the UI 210 having a two-way communication link for transmitting a user interface to a user device connected to the cloud / web and receiving information and activity requests from the user device. The monitoring component 240, the UI backend component 220, and the configuration push component 126 are components in the network infrastructure management console 200 that perform operations for managing / configuring devices (such as a network switch or a network switch stack).

[0027] One component is a monitoring component 240 for monitoring the status of various connected devices via a device agent 230. In the absence of a monitoring component and a network infrastructure management console, a user may have to go to the device location / site and connect directly to the device console to make any configuration updates, status checks, etc. Users / customers can see their network switch devices (standalone and stacked) from a monitoring user interface (UI). Using the monitoring UI page, users can monitor, configure, and troubleshoot their devices remotely from the cloud / web. From the monitoring UI, users can also monitor which switch in the stack is the current commander switch, backup switch, or (multiple) member switches and their status from the device overview page in the UI. For stacked network switches, the monitoring component 240 shows which member switch in the stack is the commander, which member switch is the backup commander, and the status of each member in the switch member and its links. The user can see the current commander in the UI device list and can select the current commander to make any configuration changes.

[0028] Another component is a configuration UI backend component 220, through which a user remotely viewing the user interface 210 can edit / modify the device configuration. In some examples, the user can specify a device name to help the user easily identify the device / stack in the device that the user is managing. The stacked network switch is also assigned a unique stack ID or serial number assigned by the network infrastructure management console.

[0029] Users can add / remove members to stacked network switches from the stack management UI page. Users can also configure / manage links to stack members from the stack management UI page. By selecting a specific stack device from the device list, users can use the feature configuration page to configure different features. In some examples, configuration can be pushed or completed only on the director switch. In one instance, the user will see all ports of the stack, including all members to which it has been connected. The switch can be listed in the following format, where the physical ports on the switch and their corresponding logical software interfaces are identified using the format: member / slot / port. For example, a single / independent network switch device will be member 1. If there are no slots on the switch, the slot number is always 1. If the switch is a modular switch, the slot can specify the location of the module on the switch chassis (for example, the management module can be designated as slots 1 and 2 on the front of the switch, and the line module can be designated starting from slot 3 on the front of the switch). The port includes the physical number of the port on the switch, and can be numbered from 1, 2, etc., up to the number of ports per switch capacity. In some examples, for some switch models, the switch capacity can include any number of ports from 28 to 52 ports. In these examples, if a stacked network switch connects 10 members, the stacked network switch may have 10*(28 to 52) ports, such as 1 / x / x, 2 / x / x ... 10 / x / x. In this example, the port-related UI screen may, for example, show the stack ports based on the number of members attached to the stacked switch.

[0030] The third component is a configuration push component 250, which in some examples is used to operate an active connection to push a configuration to a device (or the current director in the case of a stack switch device). The configuration push component 250 can push the configuration via a device agent 230 that can manage one or more devices associated with a user.

[0031] When a failover occurs at a site / customer device location, the monitoring component 240 detects the failover and displays the current commander accordingly. Similarly, the configuration push component 250 sees that the connection to the old commander has failed and begins detecting a new connection to the backup switch, which will then become the commander of the network switch stack. The configuration push component 250 then uses the new current commander connection to push the configuration, even though the configuration push component 250 has lost the connection to the previous current commander during the configuration push. During this failover, the examples herein ensure that if a user attempts to make any (multiple) configuration changes, the changes should be implemented in a seamless manner from the user's perspective. Changes should be applied using the connection using the correct / current commander device to push configuration changes to the correct / current commander device.

[0032] In order to provide a seamless user experience during these failover scenarios, a mechanism according to the examples herein is implemented in console 200 so that UI backend component 220 allows configuration using the current commander because UI backend component 220 receives the same information about the current commander from what is seen by monitoring component 240. In this way, the user does not need to worry about which switch is the actual designated commander switch of the network switch stack and does not need to visit the physical site / location of the network switch stack or go to the physical site / location of the network switch stack to check. In this way, the user at UI 210 can see the same commander as monitoring component 240.

[0033] Configuration push component 250 uses the current active commander connection to push the configuration, even if configuration push component 250 loses connection to the current commander due to a failover during the configuration push. In some examples, UI backend component 220 buffers all configuration changes made by the user at UI 210, stores the changes in cache 228, and ensures that the changes are pushed to the appropriate stack switches (and the appropriate commander).

[0034] In this manner, UI backend component 220 maintains and updates a simple mapping of stack ID to current leader (device serial number / name) in cache 228. For example, stack ID A has an entry 222 for the leader switching device and an entry 223 for the backup switching device in cache 228, while stack ID B has an entry 224 for the leader and an entry 225 for the backup. In some examples, the stack ID of each stacked network switch does not change during the life of the stack and failover, but the leader changes due to failover or user intervention.

[0035] The UI backend component 220 will store any updated device configuration changes for, for example, a stacked network switch corresponding to stack ID A that it receives from the UI 210, and will store the device configuration changes in the cache memory 228 at an appropriate location corresponding to the current commander known for stack ID A from the user's perspective so that the UI backend component 220 can interact with the correct device configuration entry in the cache memory 228 to show the stack configuration to the user.

[0036] Based on the active connection as received from device agent 230, configuration push component 250 will determine which switch (leader or standby) it should push the configuration to based on the active connection to the current leader, even though the UI may see the previous leader during the failover process from the user's perspective. Configuration push component 250 will return the running / active configuration from the stack switch using the sequence number of the leader that UI 210 has used to push the configuration. In this way, even though the previous leader may have failed over at the site / location, the user can still seamlessly view / edit the complete stack configuration.

[0037] The UI backend component 220 must also update the correct entry in the cache for the current stack commander when it receives device configuration updates from the configuration push component 250 and the monitoring component 240. If the UI backend component 220 receives information about a new commander, the UI backend component 220 copies the in-flight user configuration from the old commander cache entry to the new commander cache entry so that any user configuration is not lost during the failover. The configuration push component 250 then pushes the configuration changes to the correct commander based on the updates from the monitoring component 240.

[0038] Configuration push component 250 will figure out which switch (leader or standby) it should push the configuration to based on the active connection as received from device agent 230, even though the UI may see the old leader during the failover process. And configuration push component 250 will return the running / active configuration from the stack switch using the sequence number of the leader that the UI has used to push the configuration. In this way, even though the leader may have failed over at a site / location, the user can still seamlessly view and / or edit the complete stack configuration.

[0039] Figure 3 A flowchart 300 of steps performed by a user interface backend component of a network infrastructure management console according to an example is illustrated. In step 310, a user request is received from a client device to configure a network switch stack. From the perspective of the UI, the user configuration request may identify the current commander. For example, a user using the UI may add / remove members to a selected network stack from a stack management user interface page. The user may also configure / manage links to stack members, etc. from the stack management UI page.

[0040] At step 320, the UI backend component may receive notification of the current commander switch from the monitoring component. In the event that a failover event does not exist on the stack switch that the user is configuring, the current commander switch identified by the monitoring component may be the same as the commander identified by the user's configuration request. If a failover event occurs at the commander while the user is configuring the stack switch where the commander resides, the current commander switch identified by the monitoring component may be a spare switch from the stack, even if the user's requested configuration change identifies a commander that is currently out of service or offline due to a failover event.

[0041] At step 330, as described above, from the user's perspective, the user-requested configuration changes are stored in a cache memory associated with the current commander switch of the stack. At step 340, if a failover event has occurred that resulted in a commander switch change, the UI backend component writes the user-requested configuration changes to a cache memory segment associated with the new current commander switch for the stack. At step 350, the user-requested configuration changes are retrieved from the cache memory of the new (or current) commander switch corresponding to the stack ID.

[0042] Figure 4 A flowchart 400 illustrating steps performed by a configuration push component of a network infrastructure management console according to an example.

[0043] In step 410, the configuration push component receives the user requested configuration change from the UI backend component. The user requested configuration change is identified as being made to the current commander switch. If there is no failover event, the current commander switch will be the same as the commander identified by the user's request. If there has been a failover event, the current commander switch will currently be the standby switch as described above.

[0044] The configuration push component transmits the user requested configuration changes to the current commander switch on the network switch stack via the device agent in step 420. Therefore, the configuration push component will have updated information about the current commander from the UI backend component, so the updated configuration will be transmitted to the commander of the switch being configured and will not be affected by any intermediate failover events.

[0045] Figure 5 Flowchart 500 illustrates steps performed by a monitoring component of a network infrastructure management console, according to an example.

[0046] In step 510, the monitoring component monitors the status of network devices including standalone switches and stacked switches. For each switch and stacked switch, various network and device health metrics may be continuously monitored.

[0047] In step 520, a failover is detected at the stack switch when the designated leader switch is offline. The monitoring component will identify any failover events occurring at the stack switch, such as the leader switch stopping due to equipment failure or error or user intervention, as discussed herein.

[0048] The monitoring component detects that the backup switch has been designated as the new leader switch in step 530. Once the leader at the stack switch goes offline for any reason, the backup switch will be designated as the leader switch and the backup switch will initiate operations as the leader of the stack.

[0049] In step 540, the failover event and the new commander switch information are transmitted to the user interface backend component and displayed on the user interface. This is because the monitoring component will have identified that the failover event has occurred at the switch stack and the standby switch is already online as the commander. The current notification of the commander will be transmitted from the monitoring component to the UI backend component and the device agent.

[0050] Figure 6 A portion 600 of a screenshot of an audit user interface according to an example is illustrated. The top portion of the screen shows the current status of a leader 602 and two members 604 and 606 of a stacked switch, with the leader 602 having an "Up" status and one member 604 (a member switch that also serves as a designated backup switch) having a "Down" status.

[0051] The bottom portion of the screen shows a table of audit trail entries arranged in chronological order, with the most current audit trail entries near the top of the table. At audit trail entries 612, 613, and 614, three devices were moved to a single group to work together as a stacked switch, with the switch labeled "SG04KW60H1" initially designated as the leader switch.

[0052] At audit trail entry 620, the user has made a configuration change to the stack switch that targets the leader switch (which is "SG04KW60H1"), and the configuration change is pushed to the leader switch, at least from the user's perspective, as shown at 622. In one example, once the UI backend component and the monitoring component are notified of the leader change, the UI / monitoring page will reflect the earlier standby as the current leader. And the audit trail page below shows the failover event that occurred at the site as a reconnect event 623, and the serial number of the new leader as the target of the process configuration request at entry 624.

[0053] When failover occurs at the stack switch at the site / physical location, the monitoring component is getting updates from the device agent, so the monitoring component refreshes the UI to show the current commander based on each notification. Similarly, the configuration push component is also getting notifications from the device agent and will push configurations using that commander connection as the current commander. Since all of these are different services / processes and are all on the cloud platform (and can be distributed across multiple locations, servers, and / or networks), there may be a time gap when each of them gets notification of the current commander. Since the UI page does not get the notification and does not update the user's UI screen, the UI page may still see the old commander (let's call it Commander A) for some period of time. During this period, the user can try to make some configurations that select any commander that the monitoring UI page is showing.

[0054] However, if the configuration push component has been updated with the current commander (let's call it commander B), the configuration push component will error / fail the user configuration request because A is not the commander for the configuration push component. Similarly, if the monitoring component gets notified first, the user will try to use commander B to configure, and if the configuration push component has not been notified, it will fail the user configuration because the configuration push component still thinks A is the commander and B is the backup.

[0055] The examples disclosed herein address these issues and therefore remove errors and / or ambiguity that a user may see during failover, particularly in scenarios where the user is managing the stack from the web / cloud from one location, and the site / physical location of the stack may be in a different location, or even in a different city / state. Therefore, in various examples disclosed herein, the UI backend component obtains notification of the current commander from the monitoring component so that the monitoring component and the UI backend component always see the same commander to accept user configurations.

[0056] Additionally, the configuration push component accepts UI requests with any commander sent by the UI backend component, but pushes to the commanders it is notified of and connected to. When a failover is detected by the UI backend component, it copies the in-flight user configuration and the entire stack configuration cache to the new commander cache. Thus (1) no user configuration is lost or has to be redone, (2) the user does not see any errors when configuring during and after a failover, and (3) the user can always see the complete configuration of the stack from the current commander cache in the UI.

[0057] Figure 7A high-level block diagram of an apparatus that can be used to implement the systems, apparatus, and methods described herein is illustrated. The apparatus 700, which may include one or more server computers or portions thereof as discussed, includes a processor 710 operatively coupled to a persistent storage device 720 and a main memory device 730. In an example, the processor 710 is located on one or more virtual or physical processors. The processor 710 controls the overall operation of the apparatus 700 by executing computer program instructions that define these operations. The computer program instructions may be stored in the persistent storage device 720, or other computer-readable medium, and when it is desired to execute the computer program instructions, the computer program instructions are loaded into the main memory device 730. Thus, Figure 3 , Figure 4 and Figure 5 The method steps may be defined by computer program instructions stored in the main memory device 730 and / or the persistent storage device 720 and controlled by the processor 710 executing the computer program instructions. For example, the computer program instructions may be implemented as a computer executable code programmed by a person skilled in the art to execute the instructions by Figure 3 , Figure 4 and Figure 5 Thus, by executing the computer program instructions, the processor 710 performs the Figure 3 , Figure 4 and Figure 5 Additionally or alternatively, for implementing the method steps according to the disclosed example Figure 3 , Figure 4 and Figure 5 The instructions of the method steps may reside in the computer program product 750. When the processor 710 executes the instructions of the computer program product 750, the instructions or parts thereof are typically loaded into the main memory device 730, from which the processor 710 easily accesses the instructions.

[0058] The apparatus 700 or a device coupled to the apparatus 700 may also include one or more network interfaces 780 for communicating with other devices via a network (wired or wireless network). The apparatus 700 may also include one or more input / output devices 790 (e.g., a display, keyboard, mouse, speaker, buttons, etc.) that support user interaction with the apparatus 700.

[0059] The processor 710 may include general and special purpose microprocessors, and may be a single processor or one of a plurality of processors of the device 700. The processor 710 may include one or more central processing units (CPUs), and one or more graphics processing units (GPUs), which may, for example, work separately from and / or multitask with one or more CPUs to accelerate processing, such as for various image processing applications described herein. The processor 710, the persistent storage device 720, and / or the main memory device 730 may include, be supplemented by, or integrated into, one or more application specific integrated circuits (ASICs) and / or one or more field programmable gate arrays (FPGAs).

[0060] The persistent storage device 720 and the main memory device 730 each include a tangible, non-transitory computer-readable storage medium. The persistent storage device 720 and the main memory device 730 may each include a high-speed random access memory, such as a dynamic random access memory (DRAM), a static random access memory (SRAM), a double data rate synchronous dynamic random access memory (DDRRAM), or other random access solid-state memory devices, and may include non-volatile memory, such as one or more magnetic disk storage devices, such as internal hard disks and removable disks, magneto-optical disk storage devices, optical disk storage devices, flash memory devices, semiconductor memory devices, such as erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), compact disk read-only memory (CD-ROM), digital versatile disk read-only memory (DVD-ROM) disks, or other non-volatile solid-state storage devices.

[0061] Input / output devices 790 may include peripheral devices coupled to the apparatus, such as printers, scanners, display screens, etc. For example, input / output devices 790 may include a display device such as a cathode ray tube (CRT), plasma, or liquid crystal display (LCD) monitor for displaying information to a user (e.g., monitoring, configuring, or reviewing user interface (UI) screens), a keyboard through which a user can provide input to apparatus 700, and a pointing device such as a mouse or trackball.

[0062] Any or all of the systems and devices discussed herein may be performed by and / or integrated within a device, such as device 700 .

[0063] Those skilled in the art will recognize that the actual computer or computer system implementation may have other structures and may also include other components (e.g., batteries, fans, motherboards, power supplies, etc.), and Figure 7 is a high-level representation of the components of such a computer for illustrative purposes.

[0064] It should be appreciated by those skilled in the art that the disclosed technology provides many advantageous technical effects, including improved failover processing by allowing a user to seamlessly view and edit the entire network switch stack configuration remotely or on-site, even when the leader switch of the network switch stack has failed over to a backup switch serving as the leader. It should also be appreciated that the following description is not intended as an extensive overview, and as such, concepts may be simplified for clarity and conciseness.

[0065] Figure 1 and 2 The elements illustrated in the figure and the various functions attributed to each of the elements are described as such only for the purpose of ease of understanding. Those skilled in the art will understand that one or more of the functions attributed to the various elements may be performed by any of the other elements and / or by elements (not shown) configured to perform a combination of the various functions. Therefore, it should be noted that any language of a programming environment directed to a computing instance, a client device, a cloud-native management console or other network infrastructure management system, at least one processor, a non-transitory (or persistent) storage device, or a main memory device should be interpreted to include any suitable combination of computing devices, including servers, interfaces, systems, databases, agents, peers, controllers, or other types of computing devices that operate individually or collectively to perform the functions attributed to the various elements. In addition, those skilled in the art will understand that the description herein is not intended to be construed as a description of the various elements that are described herein. Figure 1 One or more of the system's functionality may be performed within the context of a client-server relationship, such as by one or more servers, one or more client devices (e.g., one or more user devices), and / or by a combination of one or more servers and client devices.

[0066] The systems, apparatus, and methods described herein may be implemented using a computer program product 750 tangibly embodied in an information carrier (e.g., in a non-transitory machine-readable storage device) for execution by a programmable processor; and may use one or more computer programs executable by such a processor to implement the systems, apparatus, and methods described herein, including Figure 4 , Figure 5 and Figure 6 A computer program is a set of computer program instructions that can be used directly or indirectly in a computer to perform a certain activity or cause a certain result. A computer program can be written in any form of programming language, including compiled languages ​​or interpreted languages, and a computer program can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.

[0067] Various examples have been described with reference to the accompanying drawings forming part of this article, and specific ways of practicing the examples are shown by way of illustration. However, this specification may be interpreted in many different forms and should not be interpreted as being limited to the examples set forth herein; on the contrary, these examples are provided to make this specification thorough and complete, and to fully convey the scope of the examples to those skilled in the art. This specification may be implemented as a method or device, etc. Therefore, any of the various examples herein may take the form of an all-hardware example, an all-software example, or an example combining software and hardware aspects. Therefore, the following description is not restrictive.

[0068] Throughout the specification and claims, unless the context clearly dictates otherwise, the following terms shall take the meanings expressly associated herein:

[0069] The phrase "in an example" used herein does not necessarily refer to the same example, although it may refer to the same example. Therefore, as described below, various examples can be easily combined without departing from the scope or spirit thereof.

[0070] As used herein, the term "or" is an inclusive "or" operator and is equivalent to the term "and / or" unless the context clearly dictates otherwise.

[0071] The term "based on" is not exclusive and allows for being based on additional factors not described unless the context clearly dictates otherwise.

[0072] As used herein, and unless the context dictates otherwise, the term "coupled to" is intended to include both direct coupling (where two elements coupled to each other are in contact with each other) and indirect coupling (where at least one additional element is located between the two elements). Thus, the terms "coupled to" and "coupled with..." are used synonymously. In the context of a networked environment where two or more components or devices are able to exchange data, the terms "coupled to" and "coupled with..." are also used to mean "communicatively coupled with...", possibly via one or more intermediate devices.

[0073] Furthermore, throughout the specification, the meanings of “a,” “an,” and “the” include plural references, and the meaning of “in” includes “in” and “on.”

[0074] Although some examples in the various examples presented herein constitute a single combination of inventive elements, it should be understood that the subject matter of the present invention is considered to include all possible combinations of disclosed elements. Therefore, if an example includes elements A, B, and C, and another example includes elements B and D, the subject matter of the present invention is also considered to include other remaining combinations of A, B, C, and D, even if this paper does not clearly discuss. In addition, the transition term "comprising" means having parts or components, or those parts or components. As used herein, the transition term "comprising" is inclusive or open-ended, and does not exclude additional, undescribed elements or method steps.

[0075] Throughout the discussion, references to servers, services, interfaces, clients, peers, portals, platforms, or other systems formed by computing devices are considered to represent one or more computing devices having at least one processor (e.g., ASIC, FPGA, DSP, x86, ARM, ClodFire, GPU, multi-core processor, etc.), which is configured to execute software instructions stored on a computer-readable tangible non-transitory medium (e.g., hard drive, solid state drive, RAM, flash memory, ROM, etc.). For example, a server may include one or more computers that operate as a web server, database server, or other type of computer server in a manner that implements the described roles, responsibilities, or functions. It should be further understood by those skilled in the art that the disclosed computer-based algorithms, processes, methods, or other types of instruction sets can be implemented as a computer program product, which includes a non-transitory tangible computer-readable medium storing instructions that cause the processor to perform the disclosed steps. Various servers, systems, databases, or interfaces can exchange data using standardized protocols or algorithms that may be based on HTTP, HTTPS, AES, public-private key exchange, web service APIs, known financial transaction protocols, or other electronic information exchange methods. The data exchange may be performed over a packet-switched network, a circuit-switched network, the Internet, a LAN, a WAN, a VPN, or other types of networks.

[0076] As used in the description herein and throughout the appended claims, when a system, server, device, or other computing element is described as being configured to perform or execute functions on data in a memory, the meaning of "configured to" or "programmed to" is limited to one or more processors or cores of the computing element being programmed by a set of software instructions stored in the memory of the computing element to execute the set of functions on target data or data objects stored in the memory.

[0077] It should be noted that any language pointing to a computer or computing instance should be interpreted as including any suitable computing device or combination of computing devices, including, for example, one or more servers, interfaces, systems, databases, agents, peers, controllers, or other types of computing devices operating alone or together. It should be understood by those skilled in the art that a computing device includes a processor configured to execute software instructions stored on a tangible, non-transient computer-readable storage medium (e.g., hard drive, FPGA, PLA, solid-state drive, RAM, flash memory, ROM, etc.), and may include various other components such as batteries, fans, motherboards, power supplies, etc. The software instructions configure or program the computing device to provide the role, responsibility, or other functionality discussed below with reference to the disclosed device. In addition, the disclosed technology can be implemented as a computer program product including a non-transient computer-readable medium storing software instructions, and the software instructions cause the processor to perform the disclosed steps associated with the implementation of a computer-based algorithm, process, method, or other instruction. In some examples, various servers, systems, databases, or interfaces use standardized protocols or algorithms to exchange data (possibly based on HTTP, HTTPS, AES, public key-private key exchange, web service API, or other electronic information exchange methods). Data exchange between devices may be performed over a packet-switched network, the Internet, a LAN, a WAN, a VPN, or other types of packet-switched networks; circuit-switched networks; cell-switched networks; or other types of networks.

[0078] The foregoing description should be understood to be illustrative in all respects, rather than restrictive, and the scope of the embodiments disclosed herein is not determined by the description, but by the claims interpreted according to the full scope allowed by patent law. It should be understood that the examples shown and described herein illustrate the principles of the present disclosure, and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the present disclosure. Various other feature combinations may be implemented by those skilled in the art without departing from the scope and spirit of the present invention.

Claims

1. A network infrastructure management system, comprising: at least one memory having computer readable instructions stored thereon, the computer readable instructions, when executed by at least one processor coupled to the at least one memory, causing the at least one processor to: configuring a network infrastructure management console user interface for display at a first client device of a plurality of client devices, wherein the plurality of client devices have access to configure one or more network switch stacks, the one or more network switch stacks each comprising one or more network switches; receiving, at a user interface backend component, from the first client device a first request for configuring a network switch stack, the first request being from a user operating the network infrastructure management console user interface; receiving, at a monitoring component, notification of a current director switch of the network switch stack; receiving, at the user interface backend component, the notification of the current commander switch; storing, at the user interface backend component, one or more configuration changes of the first request in a cache memory associated with the current director switch of the network switch stack; transmitting the one or more configuration changes of the first request from the user interface backend component to a configuration push component, wherein if the current commander switch of the network switch stack has changed due to a failover event after the network infrastructure management console user interface is displayed at the first client device, the one or more configuration changes are written to a cache memory associated with the new current commander switch prior to transmission and the one or more configuration changes are retrieved from the cache memory associated with the new current commander switch; as well as The one or more configuration changes of the first request are transmitted from the configuration push component to the network switch stack. 2 . The system of claim 1 , further comprising a device agent, wherein the device agent is communicatively coupled to one or more network switches or network switch stacks.

3. The system of claim 2, wherein the device agent receives notification of a current commander switch from the one or more network switch stacks and transmits the notification to the monitoring component and the configuration push component. 4 . The system of claim 2 , wherein the device agent receives the one or more configuration changes of the first request from the configuration push component and transmits the one or more configuration changes to the network switch stack.

5. The system of claim 1, wherein the user interface backend component further comprises a stack ID map comprising one or more unique stack identifiers, wherein each stack identifier is associated with a unique network switch stack and a current commander switch identifier.

6. The system of claim 5, wherein when the failover event occurs, the stack ID map is updated with a new current leader switch identifier.

7. The system of claim 5, wherein the current director switch identifier comprises one or more of a device serial number and a device name.

8. The system of claim 5, wherein the unique stack identifier does not change as long as the associated unique network switch stack is in service.

9. The system of claim 1, wherein the network switch stack comprises at least a director switch, a backup switch, and one or more member switches.

10. The system of claim 9, wherein the backup switch is capable of being designated as a leader switch during the failover event.

11. The system of claim 1, wherein the network switch stack comprises up to ten network switches.

12. The system of claim 1, wherein the failover event comprises a user intervention event.

13. A computerized method comprising: configuring a network infrastructure management console user interface for display at a first client device of a plurality of client devices, wherein the plurality of client devices have access to configure one or more network switch stacks, the one or more network switch stacks each comprising one or more network switches; receiving, at a user interface backend component, from the first client device a first request for configuring a network switch stack, the first request being from a user operating the network infrastructure management console user interface; receiving, at a monitoring component, notification of a current director switch of the network switch stack; receiving, at the user interface backend component, the notification of the current commander switch; storing, at the user interface backend component, one or more configuration changes of the first request in a cache memory associated with the current director switch; transmitting the one or more configuration changes of the first request from the user interface backend component to a configuration push component, wherein if the current commander switch of the network switch stack has changed due to a failover event after the network infrastructure management console user interface is displayed at the first client device, the one or more configuration changes are written to a cache memory associated with the new current commander switch prior to transmission and the one or more configuration changes are retrieved from the cache memory associated with the new current commander switch; as well as The one or more configuration changes of the first request are transmitted from the configuration push component to the network switch stack.

14. The method of claim 13, wherein the user interface backend component further comprises a stack ID map, wherein the stack ID map comprises one or more unique stack identifiers, wherein each stack identifier is associated with a unique network switch stack and a current commander switch identifier.

15. The method of claim 14, wherein when the failover event occurs, the stack ID map is updated with a new current leader switch identifier.

16. The method of claim 15, wherein the current director switch identifier comprises one or more of a device serial number and a device name.

17. The method of claim 14, wherein the unique stack identifier does not change as long as the associated unique network switch stack is in service.

18. The method of claim 13, wherein the network switch stack comprises at least a director switch, a backup switch, and one or more member switches.

19. The method of claim 18, wherein the backup switch is capable of being designated as a leader switch during the failover event.

20. A network infrastructure management console system, comprising: a network infrastructure management console configured to transmit a user interface for display at a first client device of a plurality of client devices, wherein the plurality of client devices have access to configure one or more network switch stacks, the one or more network switch stacks each comprising one or more network switches; a monitoring component configured to receive notification of a current leader switch of the network switch stack; A user interface backend component, the user interface backend component comprising a cache memory, and the user interface backend component is configured to: receiving a first request for configuring a network switch stack from the first client device, the first request being from a user operating the user interface; receiving the notification of the current director switch from the monitoring component; storing the one or more configuration changes of the first request in a cache memory segment, the cache memory segment being associated with the current leader switch; if the current commander switch of the network switch stack has changed due to a failover event after the network infrastructure management console user interface is displayed at the first client device, writing the one or more configuration changes stored in the cache memory segment associated with the previous current commander switch to a cache memory segment associated with a new current commander switch; as well as retrieving and transmitting the one or more configuration changes from the cache memory associated with the current leader switch; A configuration push component is configured to: receiving the one or more configuration changes of the first request from the user interface backend component; and The one or more configuration changes of the first request are transmitted from the configuration push component to the network switch stack.

21. The system of claim 20, further comprising a device agent, wherein the device agent is communicatively coupled to one or more network switches or network switch stacks.

22. The system of claim 21, wherein the device agent receives notification of a current commander switch from the one or more network switch stacks and transmits the notification to the monitoring component and the configuration push component.

23. The system of claim 21, wherein the device agent receives the one or more configuration changes of the first request from the configuration push component and transmits the one or more configuration changes to the network switch stack.

Citation Information

Patent Citations

  • Computer system providing hierarchical display remoting optimized with user and system hints and related methods

    CN112074812A

  • Systems and methods for switch stack emulation, monitoring, and control

    US10797987B1