[go: up one dir, main page]

HK1183571B - Method and system for synchronizing configuration file of virtual application distribution chassis - Google Patents

Method and system for synchronizing configuration file of virtual application distribution chassis Download PDF

Info

Publication number
HK1183571B
HK1183571B HK13110809.5A HK13110809A HK1183571B HK 1183571 B HK1183571 B HK 1183571B HK 13110809 A HK13110809 A HK 13110809A HK 1183571 B HK1183571 B HK 1183571B
Authority
HK
Hong Kong
Prior art keywords
blade
configuration
slave
blades
master
Prior art date
Application number
HK13110809.5A
Other languages
Chinese (zh)
Other versions
HK1183571A (en
Inventor
拉贾库玛.亚兰
丹尼斯.奥什巴
Original Assignee
A10 Networks Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by A10 Networks Inc. filed Critical A10 Networks Inc.
Publication of HK1183571A publication Critical patent/HK1183571A/en
Publication of HK1183571B publication Critical patent/HK1183571B/en

Links

Abstract

Synchronization of configuration files of a virtual application distribution chassis, includes: processing a configuration command received by a master blade; updating a first configuration file with the configuration command and an updated tag by the master blade; sending a configuration message by the master blade to the slave blades informing of the updated configuration file, the configuration message comprising the updated tag; in response to receiving the configuration message by a given slave blade of the one or more slave blades, comparing the updated tag in the configuration message with a tag in a second configuration file stored at the given slave blade; and in response to determining that the updated tag in the configuration message is more recent than the tag in the second configuration file stored at the given slave blade, sending a request for the updated configuration file to the master blade by the given slave blade.

Description

Method and system for synchronizing configuration files of virtual application distribution rack
Technical Field
The present invention relates generally to data communications, and more particularly to virtual cluster systems.
Background
Web services and cloud computing have not previously been popular. New servers are dumped and installed in the data center each day. The demand for Web services and enterprise computing comes from multiple market segments. The consumer oriented services include mobile applications, such as iPhoneTMApplication program and iPadTMApplication program and AndroidTMAn application program; mobile applications such as location-based services, turn-by-turn navigation services; electronic book services, e.g. KindleTM(ii) a Video applications, e.g. YouTubeTMOr HuluTM(ii) a Music applications, e.g. PandoraTMOr iTunesTM(ii) a Internet television services, e.g. NetflixTM(ii) a And many other fast-growing consumer Web services. On the enterprise side, there are cloud computing based services, such as GoogleTMDocument, Microsoft WindowsTMofficeLive and SharePointTMCom software, salesforceTMOnline software services, telepresence and Web conferencing services, and other various enterprise cloud computing services.
More and more servers are being deployed to accommodate the increasing computing needs. These servers are typically managed by a service controller, such as a Server Load Balancer (SLB) or an Application Delivery Controller (ADC). These controllers manage load balancing and delivery of service sessions from client host computers to servers. More controllers are also needed because more servers are used. These network controllers can be shared together for a number of important purposes, providing scalable services and solutions when dealing with a large number of users; providing high service availability when a processing server may be expecting an unexpected or ongoing failure; helping to ease the complexity of management and manipulation of a large number of controllers. The controllers within the cluster pool work in tandem with each other to provide continuous service to the user. If the configuration of a controller within a cluster changes and the change conflicts with the existing configuration of other controllers within the cluster, the change can have a serious adverse effect on the operation of those controllers. Typically, the cluster existing configuration is recorded in its entirety in a configuration file. All controllers within a cluster must comply with the configuration according to the configuration file for the controllers within the cluster to function properly. When a configuration change occurs, the configuration file must be updated to include the change. The new profile, which combines the new configuration change with the existing profile, becomes the most recent profile. The new configuration file will inform all controllers within the cluster. If one controller within the cluster becomes disabled and available again, the newly available controller needs to apply the configuration in the new configuration file to work in tandem with other controllers within the cluster.
Therefore, a method of synchronizing configuration files in a controller cluster in a virtual chassis system is needed.
Disclosure of Invention
According to an embodiment of the present invention, a method of synchronizing a configuration file of a virtual application distribution chassis including a plurality of blades, comprises: processing a configuration command received by a master blade (masterblade) of a plurality of blades of a virtual application distribution chassis; updating, by the master blade, the first configuration file with the configuration command and the updated tag; sending, by a master blade, a configuration message to one or more slave blades (slave blades) of the plurality of blades to notify of the updated configuration file, the configuration message including an updated tag; in response to receiving the configuration message by a designated slave blade of the one or more slave blades, comparing the tag updated in the configuration message to the tag in the second configuration file stored in the designated slave blade; and in response to determining that the updated tag in the configuration message is newer than the tag stored in the second configuration file of the designated slave blade, sending, by the designated slave blade, a request for the updated configuration file to the master blade.
In one aspect of the invention, processing a configuration command received by a primary blade of a plurality of blades of a virtual application distribution chassis comprises: receiving a configuration command by a primary blade of a virtual application distribution chassis; determining, by the master blade, that the configuration command is to be applied by one or more second slave blades of the plurality of blades of the virtual application distribution chassis; and sending, by the master blade, a second configuration message to the one or more second slave blades to apply the configuration command.
In one aspect of the invention, determining comprises: determining, by the master blade, that the configuration command applies the change to the network interface of the one or more second slave blades.
In one aspect of the invention, the configuration command includes a blade identifier, wherein determining, by the master blade, that the configuration command applies the change to the network interface of the one or more second slave blades comprises: determining, by the master blade, that the configuration command applies the change to the network interface of the slave blade associated with the blade identifier.
In one aspect of the invention, the configuration command includes a network interface identifier, wherein determining, by the master blade, that the configuration command applies the change to the network interface of the one or more second slave blades comprises: matching, by the master blade, the network interface identifier in the configuration command with a network interface identifier in memory; and retrieving (retrieve), by the master blade, from the memory, the blade identifier associated with the matching network interface identifier.
In one aspect of the invention, wherein processing the configuration command received by the primary blade of the plurality of blades of the virtual application distribution chassis comprises: receiving a configuration command by a primary blade of a virtual application distribution chassis; determining, by the primary blade, a configuration command to apply a change to a network application implemented through the virtual application distribution chassis; determining whether the configuration command matches any of a plurality of stored configuration commands applicable to the plurality of blades; determining, by the master blade, that the configuration command is to be applied by at least one slave blade of the plurality of blades that implements the web application in response to determining that the configuration command matches any of the plurality of stored configuration commands; and sending, by the master blade, a second configuration message to at least one slave blade implementing the web application to apply the configuration command.
In one aspect of the invention, sending, by the master blade, a second configuration message to at least one slave blade implementing the web application to apply the configuration command comprises: in response to receiving a second configuration message by a designated second slave blade of the one or more slave blades, applying, by the designated second slave blade, the configuration command in the second configuration message; and sending a reply configuration message to the master blade through the designated second slave blade, indicating that the configuration command has been applied by the second slave blade.
In one aspect of the invention, wherein sending, by the master blade, a configuration message including the updated tag to one or more of the plurality of blades to notify of the updated configuration file comprises: a configuration message including the tag and the updated configuration file is sent by the master blade to each of the one or more slave blades.
In one aspect of the invention, for a designated slave blade, sending a request for an updated configuration file to a master blade through the designated slave blade comprises: in response to determining that the updated tag in the configuration message is newer than the tag in the second configuration file stored within the designated slave blade, sending a request for the updated configuration file to the master blade through the designated slave blade; receiving, by the master blade, a request for an updated configuration file sent from a designated slave blade; and sending the requested updated configuration file to the specified slave blade.
In one aspect of the invention, wherein the request includes an updated tag, wherein for the designated slave blade, receiving, by the master blade, the request for the updated configuration file sent from the designated slave blade and sending the requested updated configuration file to the designated slave blade comprises: determining, by the master blade, that the third configuration file includes a newer label than the updated label; and sending the third configuration file to the designated slave blade.
Systems and computer program products corresponding to the above-described methods are also described and claimed herein.
Drawings
FIG. 1 illustrates an embodiment of a virtual application distribution chassis connected to a management host computer according to the present invention.
FIG. 2 illustrates components of an embodiment of a virtual application distribution chassis according to the present invention.
FIG. 3 illustrates connectivity of blades in an embodiment of a virtual application distribution chassis according to the present invention.
FIG. 4 illustrates a virtual application distribution chassis processing configuration commands according to an embodiment of the present invention.
FIG. 5 illustrates a master blade updating a configuration file after processing a configuration command according to an embodiment of the present invention.
FIG. 6 illustrates a master blade synchronizing updated configuration files to slave blades according to an embodiment of the present invention.
FIG. 7 illustrates a new slave blade synchronizing configuration files in a process that distributes chassis in conjunction with a virtual application according to an embodiment of the present invention.
Detailed Description
The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the embodiments will be readily apparent to those skilled in the art, and the generic principles herein may be applied to other embodiments. Thus, the present invention is not intended to be limited to the embodiments shown but is to be accorded the widest scope consistent with the principles and features described herein.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a Random Access Memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Existing examples of optical disks include compact disk read only memories (CD-ROMs), compact disks readable and writable (CD-R/W), and DVDs.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are some of the currently available types of network adapters.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified partial function(s). It should be noted that, in some other implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The terminology used in the description presented herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used in this application, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Fig. 1 illustrates an embodiment of a virtual application distribution chassis 300 managed by a management host 100 in accordance with the present invention.
The management host 100 is a computing device having a network access function. As shown in fig. 2, host 100 is operatively coupled with processor 103, computer-readable medium 104, and network interface 105. The computer readable medium 104 stores computer program code executable by the processor 103. The network interface 105 is connected to a data network 153. Examples of network interfaces 105 include ethernet, WiFi, mobile network interfaces, bluetooth, WiMAX, Digital Subscriber Line (DSL), cable interfaces, broadband network interfaces (such as T1 or T3), optical network interfaces, wireless network interfaces, or other data network interfaces. In one embodiment, host 100 is a workstation, desktop personal computer, or notebook personal computer. In one embodiment, the host 100 is a Personal Data Assistant (PDA), a smart phone, a tablet computer, or a mobile phone.
In FIG. 1, virtual application distribution chassis 300 includes a plurality of blades, such as blade 310, blade 312, blade 314, and blade 316. As shown in fig. 2, each blade (e.g., blade 310) is operatively coupled to a processor 303, a computer-readable medium 304, and a network interface 305. The computer readable medium 304 stores computer readable program code which, when executed by the processor 303, implements embodiments of the invention described herein. Returning to FIG. 1, in one embodiment, the virtual application degree distribution chassis 300 implements at least one network application 350, such as a server load balancing application, an application delivery control application, a service delivery application, a traffic management application, a security gateway application, a component of a firewall system, a component of a Virtual Private Network (VPN), a load balancer of a video server, or a service gateway, to distribute load to a plurality of servers. The web application 350 is implemented by one or more blades of the virtual application distribution chassis 300. In one embodiment, the web application 350 is implemented by a virtual application distribution chassis 300 having all of its blades. In an embodiment, the web application 350 is implemented by one or more, but not all, of the blades of the virtual application distribution chassis 300. The network interface 305 (fig. 2) is connected to the data network 153. In FIG. 1, blades 310, 312, 314, 316 form a virtual application distribution chassis 300 through their connection to data network 151. In one embodiment, the data network 151 connects the virtual application distribution chassis 300 with the data network 153. In one embodiment, data network 151 includes a data network 153. In one embodiment, the data network 151 resides within a data center, across multiple data centers over a wide area network such as an optical network, or covering multiple buildings within a campus network.
Blade 310 includes memory 306 (FIG. 2) that stores a plurality of data needed to execute program code stored in computer-readable medium 304, as well as other data. In an embodiment, the memory 306 includes a memory module, a hard disk, a solid state disk, a flash memory module, a dynamic memory module, a memory cache, or a removable memory module, such as a removable hard disk or flash memory drive.
Blade 310 is assumed to be the primary blade of virtual application distribution chassis 300. As shown in FIG. 2, the primary blade 310 also includes a management interface 307. The master blade 310 communicates with the management host 100 using a management interface 307. The management interface 307 is a network interface connected to the data network 153. In one embodiment, the network interface 305 and the management interface 307 reside on the same network card. In one embodiment, the management interface 307 resides in a different network card than the network interface 305.
In FIG. 1, management host 100 sends configuration command 113 to primary blade 310 using data network 153. The master blade 310 receives the configuration command 113 through the management interface 307. In this embodiment, the configuration commands 113 are applied to configure one or more blades of the virtual application distribution chassis 300. For example, the configuration command 113 configures a network interface of the blade 314, such as setting an ethernet address, an IP address, of an ethernet port of the blade 314. In another example, configuration command 113 configures a buffer size in the network interface of blade 312.
In another embodiment, the configuration commands 113 are applied to configure the web application 350 of the virtual application distribution chassis 300. For example, the web application 350 is a server load balancing application, and the configuration command 113 sets a server load balancer policy for the server. In one example, the network application 350 is a network traffic management application and the configuration command 113 configures quality of service parameters for the traffic management application. In another example, the network application 350 is a VPN firewall application and the configuration command 113 configures a corporate user account for VPN access. In another example, the web application 350 is a high availability service for another web application, and the configuration command 113 configures the high availability service.
In one embodiment, when web application 350 is implemented with all blades, web application configuration command 113 applies to all blades. In one embodiment, the web application configuration command 113 is applied to one or more blades implementing the web application 350.
The data network 153 connects the host 100 and the virtual cluster system 300. In one embodiment, the data network 153 is an Internet Protocol (IP) network. In one embodiment, the data network 153 is an enterprise data network or a regional enterprise data network. In one embodiment, the data network 153 is an internet service provider network. In one embodiment, the data network 153 is a cell data network. In one embodiment, the data network 153 includes a wired network, such as an ethernet network. In one embodiment, the data network 153 includes a wireless network, such as a WiFi network or a cellular network (cellular network).
Data network 151 connects virtual cluster system 300 with data network 153. In one embodiment, the data network 151 resides within a data center, across multiple data centers over a wide area network such as an optical network, or covering multiple buildings within a campus network.
FIG. 3 illustrates connectivity of blades of an embodiment of a virtual application distribution chassis according to the present invention. In this embodiment, blade 310 is hardware that is separate from the other blades. Blade 310 is connected to other blades 312, 314, and 316 through data network 151. In one embodiment, data network 151 includes a plurality of network switches, such as switch 414, switch 412, and switch 416. Network switch 412 or network switch 414 is a network device that connects a plurality of blades and a network switch. In one embodiment, switch 412 is an ethernet switch, an IP router, an optical network switch, a WAN network device, an ATM switch, an MPLS switch, a layer two network switch/hub/bridge, or a layer three network switch/router. In the embodiment shown in fig. 3, switch 412 connects blade 312, blade 310, and switch 416; switch 414 connects blade 314, blade 316, and switch 416. In this embodiment, blade 312 communicates with blade 310 using switch 412 and blade 316 using switches 412, 416, and 414.
In an embodiment, switches 412, 414, and 416 reside in the same physical location, such as a data center. In an embodiment, switches 412, 414, and 416 reside at different locations, such as within two or more data centers. Assume in this embodiment that blades 310, 312, 314, and 316 reside in different data centers.
Blade 310 communicates with other blades by sending and receiving virtual cluster system (VSC) messages 500. In one embodiment, blade 310 sends virtual cluster system message 500 via a broadcast network address, such as an ethernet broadcast address. In an embodiment, the virtual cluster system message 500 uses a multicast address, such as an ethernet multicast address, an IP multicast address, or other multicast network address. In one embodiment, blade 310 establishes a communication session (not shown) with blade 312 and sends virtual cluster system message 500 to blade 312 over the communication session. Blade 310 establishes separate communication sessions with the other individual blades to send virtual cluster system messages 500 to the blades. Examples of communication sessions include UDP sessions, TCP sessions, IP-based communication sessions, peer-to-peer communication sessions, unicast communication sessions, or other forms of data communication sessions. In an embodiment, blade 310 receives virtual cluster system message 500 using a broadcast, multicast address, or communication session with blade 312 or one of the other blades.
In an embodiment, blade 310 sends and receives configuration message 502 as a type of virtual cluster system message 500. Configuration message 502 conveys configuration command 113 to the receiving blade. In one embodiment, the configuration command 113 in the configuration message 502 is the actual configuration command sent by the host 110. In another embodiment, the configuration command 113 is not the actual configuration command sent by the host 100, but is a command that implements the host's configuration command at the receiving slave blade.
FIG. 4 illustrates a virtual application distribution chassis 300 that processes configuration commands 113 according to an embodiment of the invention. The management host 100 sends a configuration command 113 to the virtual cluster system 300.
The primary blade 310 of the virtual cluster system 300 receives (800) the configuration command 113 from the management host 100. The master blade 310 determines that the configuration command 113 is to be applied by one or more slave blades. For purposes of illustration, assume that master blade 310 determines that configuration command 113 is to be applied by slave blade 314. In one embodiment, management host 100 specifies the identity of blade 314 in configuration command 113. In one scenario, configuration command 113 is the configuration of the network interface of blade 314. Management host 100 includes an identification of blade 314 in configuration command 113. The primary blade 310 determines from the identification of the blade 314 in the configuration command 113 that the configuration command 113 is to be applied by the blade 314. In one embodiment, the configuration command 113 includes an identification of a network interface. The master blade 310 determines that the configuration command 113 is to be applied by the blade 314 using the network interface identification in the configuration command 113. In an embodiment, primary blade 310 stores in memory 306 a plurality of network interface identifications and identifications of blades in virtual application distribution chassis 300, wherein each network interface identification is associated with a blade identification. The master blade 310 matches the network interface identification with a plurality of network interface identifications in the memory 306. The master blade 310 obtains the blade identification of the matching network interface in the memory module 304.
In one embodiment, the configuration commands 113 are applied to the web application 350, which are to be applied by all blades implementing the web application 350. The master blade determines, based on the configuration commands 113, that all of the blades are to apply the configuration commands 113. In one embodiment, master blade 310 stores in memory 306 a plurality of configuration commands applicable to all of these blades. The master blade 310 matches the configuration command 113 with one or more configuration commands 306 in memory 306 and determines that the configuration command 113 is to be applied by all of these blades. For this embodiment, the processing of configuration commands 113 by primary blade 310 and blade 314 is repeated for each of the other blades of virtual application distribution chassis 300.
In one embodiment, configuration command 113 includes the identity of blade 314 and the configuration of web application 350. The primary blade 310 determines that the configuration command 113 is to be applied by the blade 314 based on the identification of the blade 314 from the configuration command 113.
In response to determining that configuration command 113 is to be applied by blade 314, master blade 310 sends (800) a configuration message 502 to slave blade 314. In an embodiment, the master blade 310 includes the configuration command 113 in a configuration message 502. As described above in connection with fig. 3, the configuration message 502 is delivered to the slave blade 314. Receive configuration message 502 from blade 314 and retrieve configuration command 113 (816). The slave blade 314 applies the configuration or change according to the configuration command 113 (818). The configuration command 113 may be implemented by a network interface 314b or a network application 314a applied from the blade 314 to the slave blade 314. After the slave blade 314 completes application of the configuration command 113, the slave blade 314 replies to the master blade 310 (819). The slave blade 314 sends a reply configuration message 503 to the master blade 310 in reply to indicate that the configuration command 113 has been applied by the slave blade 314. In step 807, the master blade 310 receives a reply configuration message 503(807) from the slave blade 314.
FIG. 5 illustrates a master blade updating a configuration file after processing a configuration command according to an embodiment of the present invention. The primary blade 310 includes a memory 306. Memory 306 includes the latest configuration file 330. The configuration file 300 includes a plurality of configuration commands that the virtual application distribution chassis 300 has recently received and processed. After processing the configuration commands 113, the master blade 310 updates the configuration file 330 to a configuration file 331, which includes the configuration commands of the configuration file 330 and the configuration commands 113. Configuration file 331 is newer than configuration file 330. In one embodiment, master blade 310 replaces configuration file 330 with configuration file 331. In one embodiment, master blade 310 archives configuration files 330 in a number of different locations in memory 306. For example, master blade 310 changes the file name of configuration file 330. The configuration file 331 becomes the latest configuration file. To distinguish between profiles 331 that are newer than profile 330, profile 330 includes a tag 340. The master blade 310 places a different label 341 in the configuration file 331 than the label 340. Tag 341 indicates that profile 331 is newer than profile 330. In one embodiment, the tag 341 is a timestamp. The tag 341 is a timestamp of when the master blade 310 created the configuration file 331. Tag 341 is a later time stamp than tag 340, thus indicating that profile 331 is newer than profile 330. In this embodiment, the master blade 310 includes a clock (not shown). The master blade 310 obtains the current time from the clock and uses the current time as the timestamp for the tag 341. In one embodiment, the master blade 310 obtains the current time after receiving the reply from the slave blade 314, as described above in connection with FIG. 4.
In one embodiment, the tag 341 is a number. Tag 341 is a number greater than tag 340 to indicate that profile 331 is newer than profile 330. For example, tag 341 is an integer and is larger than tag 340. In one embodiment, master blade 310 obtains tag 340 from configuration file 330 and computes tag 341 by adding one to tag 340.
In one embodiment, the tag 341 is a revision number. The master blade 310 obtains the tag 340 from the configuration file 330 and calculates a new revision number based on the tag 340. The master blade 310 uses the new revision number as a tag 341.
After the master blade 310 creates the configuration file 331, the master blade 310 notifies the slave blade 331 of the configuration file 331, thereby synchronizing the configuration file 331 with the configuration file stored locally by the slave blade. Master blade 310 sends configuration message 505 to slave blades 312, 314, and 316 to inform these slave blades of configuration file 331. In an embodiment, master blade 310 includes tag 341 in configuration message 505. Configuration message 505 is received from blades 312, 314, and 316 and tag 341 is retrieved.
In an embodiment, the master blade 310 includes the configuration message 505 in the configuration file 331.
FIG. 6 illustrates a master blade synchronizing an updated configuration file with a slave blade according to an embodiment of the present invention. Master blade 310 sends configuration message 505 to slave blade 312. Receives configuration message 505 from blade 312 and retrieves tag 341 from configuration message 505. The slave blade 312 includes a memory 412. In an embodiment, memory 412 includes the latest configuration files 330 that the slave blade 312 has obtained from the master blade. The configuration file 330 in memory 412 includes a tag 340. After retrieving tag 341 from configuration message 505, tag 340 is obtained from configuration file 330 in memory 412 from blade 312. From blade 312, tag 340 is compared to tag 341, and then it is determined that tag 341 is newer than tag 340. Thus, it is determined from blade 312 that there is a newer configuration file 331 in memory 412 than configuration file 330. In one embodiment, configuration message 505 does not include tag 341. Upon receiving configuration message 505, slave blade 312 sends a request configuration message for tag 341 to master blade 310, and master blade 310 replies with tag 341 with another configuration message.
In response to determining that tag 341 is newer than tag 340, slave blade 312 sends a request configuration message 507 to master blade 310 to request a configuration file. In an embodiment, slave blade 312 places tag 341 in request configuration message 507. The master blade 310 receives the request configuration message 507 and retrieves the tag 341. The master blade 310 finds that the tag 341 from the configuration message 507 matches the tag 341 from the configuration message 331 in the memory 306. The master blade 310 sends a configuration file 331 to the slave blade 312. In one embodiment, master blade 310 sends configuration file 331 in configuration message 509 to slave blade 312. In one embodiment, the master blade 310 sends the configuration file 331 using a separate file transfer communication session with the slave blade (server) 312.
In one embodiment, the request configuration message 507 does not include the tag 341. Upon receiving the request configuration file 507, the master blade 310 automatically sends the latest configuration file, i.e., configuration file 331, to the slave blade 312.
Upon receiving the configuration file 331 from the configuration message 509 or the file transfer communication session, the slave blade 312 stores the configuration file 331 and the tag 341 in the memory 412 of the slave blade 312. In one embodiment, slave blade 312 replaces configuration file 330 with configuration file 331. In an embodiment, slave blade 312 stores configuration file 330 at a different location in memory 412 or in memory 412 with a different filename. The configuration file 331 becomes the most recent configuration file for the slave blade 312.
In one embodiment, master blade 310 has a newer profile than profile 331. For example, between sending configuration message 505 through master blade 310 and sending reply configuration message 507 through slave blade 312, another configuration command may have been received from host 100, causing further configuration changes. In this case, although the slave blade 312 requests the configuration file 331 corresponding to the tag 341, the master blade 310 transmits an updated configuration file to the slave blade 312.
In an embodiment, the master blade 310 sends the configuration message 502 about the tag 341 more than once. As such, in the event that the slave blade 312 cannot receive other copies of the configuration message, the slave blade 312 will receive at least one copy of the configuration message 502. In one embodiment, the master blade 310 sends the configuration message 502 periodically, such as once every 30 seconds, 1 second, 5 minutes, or 100 milliseconds.
FIG. 7 illustrates a new slave blade synchronizing configuration files in a process that distributes chassis in conjunction with a virtual application, according to an embodiment of the present invention. One blade of the virtual application distribution chassis 300, i.e., the slave blade 316, is rejoined with the virtual application distribution chassis 300. While the master blade 310 is processing the configuration commands 113, the slave blade 316 may have failed. The slave blade 316 becomes available and rejoins the virtual application distribution chassis 300. The slave blade 316 includes a memory 416, and the configuration file 330 is stored within the memory 416. In an embodiment, slave blade 316 obtains configuration file 330, previously received from a master blade (such as master blade 310), which serves as the most up-to-date configuration file. Configuration file 330 is retrieved from storage 416 from blade 316 and a plurality of configuration commands are applied in configuration file 330. The slave blade 316 is coupled with the virtual application distribution chassis 300 and the blade configuration is associated with a configuration file 330.
Slave blade 316 receives configuration message 505 from master blade 310 and retrieves tag 341 from configuration message 505. The slave blade 316 compares the tag 341 with the tag 340 of the configuration file 330 in the memory 416. It is determined from blade 316 that label 341 is newer than label 340. As described above in connection with fig. 6, the slave blade 316 obtains the configuration file 331 from the master blade 310.
Once the configuration file 331 is obtained from the blade 316, the slave blade 316 applies the configuration commands in the configuration file 331. In an embodiment, the slave blade 316 resets itself to clear the configuration based on the configuration file 330. After reset from blade 316, slave blade 316 finds configuration file 331 in memory module 416 and applies the configuration commands in configuration file 331. In an embodiment, slave blade 316 applies configuration commands in configuration file 331 without clearing the configuration based on configuration commands in configuration file 330. In an embodiment, slave blade 316 withdraws configuration commands based on configuration file 330 and applies the configuration commands in configuration file 331.
After the configuration commands in configuration file 331 are applied from blade 316, slave blade 316 rejoins virtual application distribution chassis 300. When configuration message 502 is received from blade 316 and tag 341 is obtained from configuration message 505, tag 341 of configuration message 505 is compared from blade 316 to tag 341 from the configuration file in memory module 416. The slave blade 316 determines that the two tags are the same and that the configuration file 331 is the most recent configuration file indicated by the master blade 310.
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.

Claims (16)

1. A method of synchronizing a configuration file of a virtual application distribution chassis including a plurality of blades, comprising:
processing a configuration command received by a primary blade of the plurality of blades of the virtual application distribution chassis from a management host;
updating, by the primary blade, a first configuration file with the configuration command and an updated tag, the updated first configuration file including the received configuration command;
in response to receiving the configuration command, sending, by the master blade, a configuration message to one or more slave blades of the plurality of blades to notify of an updated configuration file, the configuration message including a tag of the update;
in response to receiving the configuration message by a designated slave blade of the one or more slave blades, comparing the updated tag in the configuration message to a tag in a second configuration file stored in the designated slave blade; and
sending, by the designated slave blade, a request for an updated configuration file to the master blade in response to determining that the updated tag in the configuration message is newer than the tag in the second configuration file stored in the designated slave blade.
2. The method of claim 1, wherein processing the configuration command received by the primary blade of the plurality of blades of the virtual application distribution chassis from the management host comprises:
receiving, by the primary blade of the virtual application distribution chassis, the configuration command;
determining, by the master blade, that the configuration command is to be applied by one or more second slave blades of the plurality of blades of the virtual application distribution chassis; and
sending, by the master blade, a second configuration message to the one or more second slave blades to apply the configuration command.
3. The method of claim 2, wherein determining, by the master blade, that the configuration command is to be applied by one or more second slave blades of the plurality of blades of the virtual application distribution chassis comprises:
determining, by the master blade, that the configuration command applies a change to the network interface of the one or more second slave blades.
4. The method of claim 3, wherein the configuration command includes a blade identifier, wherein determining, by the master blade, that the configuration command applies the change to the network interface of the one or more second slave blades comprises:
determining, by the master blade, that the configuration command applies a change to a network interface of a slave blade associated with the blade identifier.
5. The method of claim 3, wherein the configuration command includes a network interface identifier, wherein determining, by the master blade, that the configuration command applies the change to the network interface of the one or more second slave blades comprises:
matching, by the master blade, the network interface identifier in the configuration command with a network interface identifier in memory; and
retrieving, by the master blade from the memory, a blade identifier associated with the matched network interface identifier.
6. The method of claim 1, wherein processing the configuration command received by the primary blade of the plurality of blades of the virtual application distribution chassis from the management host comprises:
receiving, by the primary blade of the virtual application distribution chassis, the configuration command;
determining, by the primary blade, that the configuration command applies a change to a network application implemented by the virtual application distribution chassis;
determining whether the configuration command matches any of a plurality of stored configuration commands applicable to the plurality of blades;
in response to determining that the configuration command matches any of a plurality of stored configuration commands, determining, by the master blade, that the configuration command is to be applied by at least one slave blade of the plurality of blades that implements the web application; and
sending, by the master blade, a second configuration message to the at least one slave blade implementing the web application to apply the configuration command.
7. The method of claim 2, wherein sending, by the master blade, a second configuration message to the one or more second slave blades to apply the configuration command comprises:
in response to receiving the second configuration message by a designated second slave blade of the one or more slave blades, applying, by the designated second slave blade, a configuration command in the second configuration message; and
sending a reply configuration message to the master blade through the designated second slave blade indicating that the configuration command has been applied by the designated second slave blade.
8. The method of claim 1, wherein sending, by the master blade to one or more of the plurality of blades, a configuration message including the updated tag to notify of an updated configuration file in response to receiving the configuration command comprises:
sending, by the master blade, the configuration message including the updated tag and the updated configuration file to each of the one or more slave blades.
9. The method of claim 1, wherein sending, for the designated slave blade, a request for an updated configuration file to the master blade through the designated slave blade comprises:
in response to determining that the updated tag in the configuration message is newer than the tag in the second configuration file stored in the designated slave blade, sending, by the designated slave blade, a request for the updated configuration file to the master blade;
receiving, by the master blade, a request for the updated configuration file from the designated slave blade; and
sending the requested updated configuration file to the designated slave blade.
10. The method of claim 9, wherein the request includes the updated tag, wherein for the designated slave blade, receiving, by the master blade, a request for an updated profile from the designated slave blade and sending the requested updated profile to the designated slave blade comprises:
determining, by the master blade, that a third configuration file includes a tag that is newer than the updated tag; and
sending the third configuration file to the designated slave blade.
11. A system for synchronizing profiles of a virtual application distribution chassis, comprising:
a plurality of blades operably coupled to distribute a chassis for a virtual application within a data network, wherein each blade comprises a processor and a computer readable storage medium having a computer readable program which, when executed by the processor, causes the plurality of blades to:
processing a configuration command received by a primary blade of the plurality of blades of the virtual application distribution chassis from a management host;
updating, by the primary blade, a configuration file with the configuration command and a tag, the updated first configuration file including the received configuration command;
in response to receiving the configuration command, sending, by the master blade, a configuration message to one or more slave blades of the plurality of blades to notify of an updated configuration file, the configuration message including an updated tag;
in response to receiving the configuration message by a designated slave blade of the one or more slave blades, comparing the updated tag in the configuration message to a tag in a second configuration file stored in the designated slave blade; and
sending, by the designated slave blade, a request for an updated configuration file to the master blade in response to determining that the updated tag in the configuration message is newer than the tag stored in the second configuration file of the designated slave blade.
12. The system of claim 11, wherein processing the configuration command received by the primary blade of the plurality of blades of the virtual application distribution chassis from the management host comprises:
receiving, by the primary blade of the virtual application distribution chassis, the configuration command;
determining, by the master blade, that the configuration command is to be applied by one or more second slave blades of the plurality of blades of the virtual application distribution chassis; and
sending, by the master blade, a second configuration message to the one or more second slave blades to apply the configuration command.
13. The system of claim 12, wherein determining, by the master blade, that the configuration command is to be applied by one or more second slave blades of the plurality of blades of the virtual application distribution chassis comprises:
determining, by the master blade, that the configuration command applies a change to the network interface of the one or more second slave blades.
14. The system of claim 11, wherein processing the configuration command received by the primary blade of the plurality of blades of the virtual application distribution chassis from the management host comprises:
receiving, by the primary blade of the virtual application distribution chassis, the configuration command;
determining, by the primary blade, that the configuration command applies a change to a network application implemented by the virtual application distribution chassis;
determining whether the configuration command matches any of a plurality of stored configuration commands applicable to the plurality of blades;
in response to determining that the configuration command matches any of a plurality of stored configuration commands, determining, by the master blade, that the configuration command is to be applied by at least one slave blade of the plurality of blades that implements the web application; and
sending, by the master blade, a second configuration message to the at least one slave blade implementing the web application to apply the configuration command.
15. The system of claim 12, wherein sending, by the master blade, a second configuration message to the one or more second slave blades to apply the configuration command comprises:
in response to receiving the second configuration message by a designated second slave blade of the one or more slave blades, applying, by the designated second slave blade, the configuration command in the second configuration message; and
sending a reply configuration message to the master blade through the designated second slave blade indicating that the configuration command has been applied by the designated second slave blade.
16. The system of claim 11, wherein for a designated slave blade, sending a request for an updated configuration file to the master blade through the designated slave blade comprises:
in response to determining that the updated tag in the configuration message is newer than the tag in the second configuration file stored in the designated slave blade, sending, by the designated slave blade, a request for the updated configuration file to the master blade;
receiving, by the master blade, a request for the updated configuration file from the designated slave blade; and
sending the requested updated configuration file to the designated slave blade.
HK13110809.5A 2011-06-06 2013-09-23 Method and system for synchronizing configuration file of virtual application distribution chassis HK1183571B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/154,399 2011-06-06

Publications (2)

Publication Number Publication Date
HK1183571A HK1183571A (en) 2013-12-27
HK1183571B true HK1183571B (en) 2018-06-29

Family

ID=

Similar Documents

Publication Publication Date Title
CN107360234B (en) computer readable storage medium
US10530847B2 (en) Virtual application delivery chassis system
CN111459749B (en) Prometheus-based private cloud monitoring method and device, computer equipment and storage medium
US11770359B2 (en) Maintaining communications in a failover instance via network address translation
US20150296058A1 (en) Methods to Manage Services over a Service Gateway
US20140169168A1 (en) Configuration of a virtual service network
CN105635222A (en) Cloud terminal upgrading method and system, network management server and proxy server
US20210067402A1 (en) Disaster Recovery of Cloud Resources
GB2531546A (en) Collaborative maintenance of software programs
HK1183571B (en) Method and system for synchronizing configuration file of virtual application distribution chassis
CN104486215A (en) Message transmitting method and equipment
HK1183571A (en) Method and system for synchronizing configuration file of virtual application distribution chassis
CN105763582A (en) Method, device and system for switching service registration equipment
US9942314B2 (en) System and method for optimizing web service availability with a node group agreement protocol
US9798633B2 (en) Access point controller failover system
US10225135B2 (en) Provision of management information and requests among management servers within a computing network
HK1186802A (en) Virtual application delivery chassis system
HK1186802B (en) Virtual application delivery chassis system
HK1198848B (en) System and method to generate secure name records