CN113347049B - Server cluster deployment method and device, computing equipment and storage medium - Google Patents

Server cluster deployment method and device, computing equipment and storage medium Download PDF

Info

Publication number
CN113347049B
CN113347049B CN202110889094.2A CN202110889094A CN113347049B CN 113347049 B CN113347049 B CN 113347049B CN 202110889094 A CN202110889094 A CN 202110889094A CN 113347049 B CN113347049 B CN 113347049B
Authority
CN
China
Prior art keywords
client
server
virtual machine
node
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110889094.2A
Other languages
Chinese (zh)
Other versions
CN113347049A (en
Inventor
梁彦刚
孟杰
薛皓琳
刘兴伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology Co Ltd
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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202111247771.7A priority Critical patent/CN114024841B/en
Priority to CN202110889094.2A priority patent/CN113347049B/en
Publication of CN113347049A publication Critical patent/CN113347049A/en
Application granted granted Critical
Publication of CN113347049B publication Critical patent/CN113347049B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)

Abstract

The invention discloses a server cluster deployment method, which is suitable for being executed in a server, wherein the server is in communication connection with one or more clients, and the method comprises the following steps: acquiring configuration information of a server, and generating main node information according to the configuration information; setting a network for each client connected with the server, and constructing a network port of the client; setting the client as a slave node according to the network port of the client, and generating slave node information; and constructing a server cluster which takes the server as the master node and the client as the slave node according to the master node information and the slave node information. The invention also discloses a server cluster deployment device, a computing device and a computer readable storage medium.

Description

Server cluster deployment method and device, computing equipment and storage medium
Technical Field
The invention relates to the field of cloud computing, in particular to a server cluster deployment method and device, computing equipment and a storage medium.
Background
With the development of computer technology, people have higher and higher requirements on computer work, and computers are required to be kept for a long time and run without failure under many environments. In addition to improving the reliability of a single computer, people adopt a group of computers as a whole to provide a group of network resources for users, so that the stability of the whole service is improved, the service interruption time is reduced, and the application of a server clustering technology is realized.
The server cluster is a host cluster which operates like a single system and supports continuous and normal operation of computers, and reduces the influence of faults caused by software/hardware/human to the service to the minimum degree by protecting the service provided by the service program of a user to the outside continuously. Each computer in the server cluster is a node in the computer cluster. As computer clusters grow, their use is increasing, and the configuration and operation of individual nodes becomes more complex, creating a significant obstacle to configuring and using server clusters.
Therefore, a new server cluster deployment method and apparatus are needed.
Disclosure of Invention
To this end, the present invention provides a server cluster deployment method in an attempt to solve, or at least alleviate, the problems presented above.
According to an aspect of the present invention, there is provided a server cluster deployment method, adapted to be executed in a server, the server being communicatively connected to one or more clients, the method comprising the steps of: acquiring configuration information of a server, and generating main node information according to the configuration information; setting a network for each client connected with the server, and constructing a network port of the client; setting the client as a slave node according to the network port of the client, and generating slave node information; and constructing a server cluster which takes the server as the master node and the client as the slave node according to the master node information and the slave node information.
Optionally, in the method according to the present invention, the server further stores a plurality of language resource packages, each language resource package corresponding to one language, and the method further includes the steps of: providing a user with multiple language options; and loading the language resource packages corresponding to the corresponding languages for server cluster deployment according to the language options selected by the user.
Optionally, in the method according to the present invention, the obtaining configuration information of the server, and generating master node information according to the configuration information includes: acquiring an IP address, a host name and a user password of a server; and generating the main node information according to the IP address, the host name and the user password.
Optionally, in the method according to the present invention, further comprising the step of: and according to the communication connection with the client, performing connectivity check on each client connected with the server, and if the check is passed, performing network setting on the client.
Optionally, in the method according to the present invention, the network setting is performed on each client connected to the server, and the constructing of the network port of the client includes: acquiring a public key file from a client; and setting the firewall of the client according to the public key file, and constructing a network port of the client.
Optionally, in the method according to the present invention, setting the client as a slave node according to a network port of the client, and generating the slave node information includes the steps of: performing slave node authentication according to the host name of the client; after passing the authentication, obtaining the IP address and the host name of the client; and generating the slave node information according to the IP address and the host name.
Optionally, in the method according to the present invention, the server and the client connected to the server are preinstalled with cluster management software, and a server cluster with the server as a master node and the client as a slave node is constructed according to the master node information and the slave node information, including the steps of: storing the master node information of the server and the slave node information of the client in the server; and setting the installed cluster management software to start up and automatically start up in the server and the client according to the stored master node information and slave node information so as to create and start up the server cluster.
Optionally, in the method according to the present invention, further comprising the step of: providing installation options for default installation and advanced installation to a user; when the user selects the advanced installation, the virtual machine is installed and configured on the client side, and the slave node setting is carried out on the client side.
Optionally, in the method according to the present invention, further comprising the step of: and displaying the server cluster information after the server cluster is constructed.
According to another aspect of the present invention, there is provided a computing device comprising: one or more processors; a memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing any of the methods of the device fault detection classifier training method according to the present invention.
According to a further aspect of the invention, there is provided a computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computing device, cause the computing device to perform any of a server cluster deployment method according to the invention.
According to another aspect of the present invention, there is provided a server cluster deployment apparatus, where the apparatus resides in a server, the server is in communication connection with one or more clients, the apparatus includes a front-end module and a back-end module, the front-end module is in communication connection with the back-end module, and is adapted to obtain configuration information of the server and generate master node information according to the configuration information; the back-end module is suitable for setting the network of each client connected with the server and constructing a network port of the client; setting the client as a slave node according to the network port of the client, and generating slave node information; and constructing a server cluster which takes the server as the master node and the client as the slave node according to the master node information and the slave node information.
Optionally, in the apparatus according to the present invention, a plurality of language resource packages are stored, each language resource package corresponding to one language front end module, the front end module includes a language selection unit, and the language selection unit is adapted to provide a plurality of language options to a user; and loading the language resource packages corresponding to the corresponding languages for server cluster deployment according to the language options selected by the user.
Optionally, in the apparatus according to the present invention, the front-end module includes a cluster node configuration unit, and the cluster node configuration unit is adapted to obtain an IP address, a host name, and a user password of the server; and generating the main node information according to the IP address, the host name and the user password.
Optionally, in the apparatus according to the present invention, the backend module further includes a connectivity check unit, and the connectivity check unit is adapted to perform connectivity check on each client connected to the server according to the communication connection with the client, and perform network setup on the client if the check is passed.
Optionally, in the apparatus according to the present invention, the backend module further includes a password-free login setting unit, where the password-free login setting unit is adapted to obtain the public key file from the client; and setting the firewall of the client according to the public key file, and constructing a network port of the client.
Optionally, in the apparatus according to the present invention, the backend module further includes a node authentication unit, the node authentication unit is adapted to perform slave node authentication according to a host name of the client; after passing the authentication, obtaining the IP address and the host name of the client; and generating the slave node information according to the IP address and the host name.
Optionally, in the apparatus according to the present invention, the backend module further includes a resource package installation unit and a cluster creation unit, and the resource package installation unit is adapted to install cluster management software in advance on the server and the client connected to the server; the cluster creating unit is suitable for storing the master node information of the server and the slave node information of the client in the server; and setting the installed cluster management software to start up and automatically start up in the server and the client respectively according to the stored master node information and the slave node information so as to start up the server cluster.
Optionally, in the apparatus according to the present invention, the front-end module further comprises an advanced node configuration unit adapted to provide the user with installation options of default installation and advanced installation; when the user selects the advanced installation, the virtual machine is installed and configured on the client side, and the slave node setting is carried out on the client side.
Optionally, in the apparatus according to the present invention, the front-end module further comprises an advanced node configuration unit adapted to provide the user with installation options of default installation and advanced installation; when the user selects the advanced installation, the virtual machine is installed and configured on the client side, and the slave node setting of the client side is carried out, so that the service management is carried out on the client side.
The server cluster deployment method is suitable for being executed in a server which is in communication connection with one or more clients. Firstly, acquiring configuration information of a server, and generating main node information according to the configuration information; and then, network setting is carried out on each client connected with the server, and a network port of the client is constructed, so that the client is configured through a network interface, and a server cluster is conveniently constructed. And then setting the client as a slave node according to the network port of the client, generating slave node information, and constructing a server cluster which takes the server as a master node and the client as a slave node according to the master node information and the slave node information. According to the method provided by the invention, the server cluster can be quickly constructed, the quick deployment is realized, the complexity of constructing the cluster environment is reduced, and the online speed of the cluster service is increased.
Drawings
To the accomplishment of the foregoing and related ends, certain illustrative aspects are described herein in connection with the following description and the annexed drawings, which are indicative of various ways in which the principles disclosed herein may be practiced, and all aspects and equivalents thereof are intended to be within the scope of the claimed subject matter. The above and other objects, features and advantages of the present disclosure will become more apparent from the following detailed description read in conjunction with the accompanying drawings. Throughout this disclosure, like reference numerals generally refer to like parts or elements.
FIG. 1 shows a schematic diagram of a server and client communication connection according to an example embodiment of the present invention;
FIG. 2 illustrates a block diagram of a computing device 200, according to an exemplary embodiment of the invention;
FIG. 3 shows a flowchart of a server cluster deployment method 300 according to an example embodiment of the present invention;
FIG. 4a illustrates a page jump flow diagram according to an exemplary embodiment of the present invention;
FIG. 4b shows a page jump architecture diagram in accordance with an exemplary embodiment of the present invention;
FIG. 5 illustrates a flow diagram for constructing a network port of a client according to an exemplary embodiment of the present invention;
FIG. 6 is a schematic flow chart illustrating the creation of a server cluster according to one exemplary embodiment of the present invention;
FIG. 7 illustrates a flow diagram for setting up a slave node according to an exemplary embodiment of the present invention;
FIG. 8 is a schematic diagram illustrating an architecture of a server cluster deployment apparatus according to an exemplary embodiment of the present invention; and
fig. 9 is a schematic diagram illustrating a technical architecture of a server cluster deployment apparatus according to an exemplary embodiment of the present invention.
Detailed Description
Exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While exemplary embodiments of the present disclosure are shown in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Like reference numerals generally refer to like parts or elements.
Fig. 1 shows a schematic diagram of a server and a client communication connection according to an exemplary embodiment of the present invention. As shown in FIG. 1, the server 140 is connected with clients 110 to 130. The linking method between the server 140 and the clients 110 to 130 shown in fig. 1 is only exemplary, and the invention does not limit the connecting method between the server 140 and the clients 110 to 130 and the number of the clients connected to the server 140. The server not only configures the main node of the server, but also configures the client through the system communication connection with the client.
The server 140 and the connected clients 110-130 can be embodied as a computing device. FIG. 2 illustrates a block diagram of a computing device 200, according to an exemplary embodiment of the invention. As shown in FIG. 2, in a basic configuration 202, a computing device 200 typically includes a system memory 206 and one or more processors 204. A memory bus 208 may be used for communication between the processor 204 and the system memory 206.
Depending on the desired configuration, the processor 204 may be any type of processing, including but not limited to: a microprocessor (μ P), a microcontroller (μ C), a digital information processor (DSP), or any combination thereof. The processor 204 may include one or more levels of cache, such as a level one cache 210 and a level two cache 212, a processor core 214, and registers 216. Example processor cores 214 may include Arithmetic Logic Units (ALUs), Floating Point Units (FPUs), digital signal processing cores (DSP cores), or any combination thereof. The example memory controller 218 may be used with the processor 204, or in some implementations the memory controller 218 may be an internal part of the processor 204.
Depending on the desired configuration, system memory 206 may be any type of memory, including but not limited to: volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.), or any combination thereof. System memory 206 may include an operating system 220, one or more programs 222, and program data 228. In some embodiments, the program 222 may be arranged to execute the instructions 223 of the method 300 according to the invention on an operating system by one or more processors 204 using the program data 228.
Computing device 200 may also include a storage interface bus 234. The storage interface bus 234 enables communication from the storage devices 232 (e.g., removable storage 236 and non-removable storage 238) to the basic configuration 202 via the bus/interface controller 230. Operating system 220, programs 222, and at least a portion of data 224 can be stored on removable storage 236 and/or non-removable storage 238, and loaded into system memory 206 via storage interface bus 234 and executed by one or more processors 204 when computing device 200 is powered on or programs 222 are to be executed.
Computing device 200 may also include an interface bus 240 that facilitates communication from various interface devices (e.g., output devices 242, peripheral interfaces 244, and communication devices 246) to the basic configuration 202 via the bus/interface controller 230. The example output device 242 includes a graphics processing unit 248 and an audio processing unit 250. They may be configured to facilitate communication with various external devices, such as a display or speakers, via one or more a/V ports 252. Example peripheral interfaces 244 can include a serial interface controller 254 and a parallel interface controller 256, which can be configured to facilitate communications with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device) or other peripherals (e.g., printer, scanner, etc.) via one or more I/O ports 258. An example communication device 246 may include a network controller 260, which may be arranged to communicate with one or more other computing devices 262 over a network communication link via one or more communication ports 264.
A network communication link may be one example of a communication medium. Communication media may typically be embodied by computer readable instructions, data structures, program modules, and may include any information delivery media, such as carrier waves or other transport mechanisms, in a modulated data signal. A "modulated data signal" may be a signal that has one or more of its data set or its changes made in such a manner as to encode information in the signal. By way of non-limiting example, communication media may include wired media such as a wired network or private-wired network, and various wireless media such as acoustic, Radio Frequency (RF), microwave, Infrared (IR), or other wireless media. The term computer readable media as used herein may include both storage media and communication media.
In computing device 200 according to the present invention, program 222 comprises program instructions of server cluster deployment method 300 that may direct processor 204 to perform some of the steps of server cluster deployment method 300 operating in computing device 200 of the present invention such that various portions of computing device 200 implement deploying a server cluster by performing server cluster deployment training method 300 of the present invention. .
Computing device 200 may be implemented as a server, e.g., file server 240, database 250, a server, an application server, etc., which may be a device such as a Personal Digital Assistant (PDA), a wireless web-browsing device, an application-specific device, or a hybrid device that include any of the above functions. May be implemented as a personal computer including both desktop and notebook computer configurations, and in some embodiments computing device 200 is configured to perform server cluster deployment method 300.
Fig. 3 shows a flowchart of a server cluster deployment method 300 according to an exemplary embodiment of the present invention. The method 300 is suitable for execution in the server 140 and may be embodied as being executed in the computing device 200. As shown in fig. 3, the server cluster deployment method 300 starts at step S310, obtaining configuration information of a server, and generating master node information according to the configuration information. The method 300 is described below using the client 110 and the server 140 as examples. The invention does not limit the type of the server cluster, and according to an embodiment of the invention, the server cluster can be realized in a server cluster based on a placemaker.
The Pacemaker is the most widely used open source cluster resource manager in the Linux environment, and the Pacemaker utilizes the message and cluster member management functions provided by a cluster infrastructure (Corosyn or Heartteam) to realize fault detection and resource recovery of node and resource levels, thereby ensuring high availability of cluster services to the maximum extent. From a logical function, the Pacemaker is responsible for the full-life-cycle management of the software services in the cluster, driven by the resource rules defined by the cluster administrator, and the management even includes the whole software system and the interaction of the software systems with each other. The Pacemaker can manage clusters of any scale in practical application, and because the Pacemaker has a strong resource dependence model, a cluster administrator can accurately describe and express the relationship between cluster resources. Meanwhile, for any form of software resource, the software resource can be almost taken as a resource object to be managed by the Pacemaker by starting and managing scripts for the self-defined resource.
According to an embodiment of the present invention, the server further stores a plurality of language resource packages, each language resource package corresponding to a language for providing different languages to the user, and the use of the plurality of language resource packages facilitates the application of the method 300 of the present invention to the user using different languages. The method 300 further comprises the steps of: and providing a plurality of language options for a user, and loading the language resource package corresponding to the corresponding language for server cluster deployment according to the language options selected by the user.
According to an embodiment of the present invention, loading the corresponding language resource package according to the selected language option can be implemented by executing the following code:
function setLanguage(){
var lang = document.getElementById("set_lange");
if (lang.value == "en_ZH") {
var language = 'en_ZH'
} else {
var language = 'en_US'
} else {
......
}
loadProperties(language)
}
function loadProperties(type) {
jQuery.i18n.properties({
name: 'strings',
mode: 'map',
language: type,
encoding: 'UTF-8',
callback: function () {
$("[data-locale]").each(function(){
$(this).html($.i18n.prop($(this).data("locale")));
});
}
});
}
according to one embodiment of the invention, user agreement permissions are performed after language selection and loading of the corresponding language resource packages. User agreement permissions and language selections may be implemented in different window interfaces, including associated options, rendered and presented to the user. In executing the method 300 of the present invention, a plurality of window interfaces are drawn, each setting of the configuration information of an item is arranged in a separate window interface, and a jump of the window interfaces is performed when the configuration information of the next item is set.
Jump rules are set between different window interfaces, and a jump sequence is stipulated, namely, a target window interface can be jumped to from the current window page. Each window interface can also be provided with a jump button of the window interface and the like, so that a user can trigger the jump of the window interface conveniently. The invention does not limit the skip button of the window interface and the skip mode of the user triggering the window interface. The skip button may be implemented as a "next" style, etc.
The invention sets the visual window interface when configuring the server cluster, which is convenient for the user to operate and detect the configuration process, and the setting mode of the window interface makes the configuration information of the server cluster more organized and modularized, the information display of each window interface is more concise, and the server cluster is convenient to configure.
According to one embodiment of the invention, in order to configure a server cluster, a window interface 1 and a window interface 2 are provided, which can perform language selection and user agreement permission, respectively. FIG. 4a illustrates a page jump flow diagram according to an exemplary embodiment of the present invention. The window interface 1 and the window interface 2 can be obtained by writing html or js, the skip rules of the window interface 1 and the window interface 2 are preset and stored, and the next window interface of the window interface 1 is the window interface 2. A "next" button is provided in the window interface 1, which can be triggered by the user to jump to the window interface 2. A "previous step" button is provided in the window interface 2, which can be triggered by the user to go back to the window interface 1.
FIG. 4a illustrates a page jump flow diagram according to an exemplary embodiment of the present invention. When the user jumps to the page 2 through the 'next' button on the window interface 1, the window interface 1 stores the configuration information of the window interface 1. The stored configuration information is used to configure the server cluster. Successfully processing the related data, after the configuration information of the window interface is set, the window interface 1 sends a jump signal to display the next page: window interface 2. If the relevant data cannot be processed normally and the configuration information cannot be set normally, the window interface 1 pops up an error prompt window.
The user agreement permission is jumped to by the language selection interface as a separate window interface. When the user agreement is granted, the user of the method 300 of the present invention using the associated software is prompted to comply with the associated usage agreement, and the method 300 of the present invention can proceed only if the user agrees and complies with the usage agreement. The number of protocols used and their specific content are not limited by the present invention.
And then acquiring the configuration information of the server, acquiring the IP address, the host name and the user password of the server when generating the main node information according to the configuration information, and generating the main node information according to the IP address, the host name and the user password. When the server is configured as a host node, the IP address, host name and user password of the host node need to be configured. When the configuration information is acquired, the configuration information may be acquired from a system configuration file of the server or may be acquired by user input.
The user is also provided with an option of whether the host node is a cluster node when generating the host node information. And when the user selects the local machine as the cluster node, normally continuing to configure the server cluster for the local machine. When the user needs to log out the local computer from the server cluster and make the local computer separate from the server cluster, the local computer is selected as an option which is not used as a cluster node, and then the local computer can be registered from the server cluster.
And after the configuration information of the server is acquired, performing connectivity check on each client connected with the server according to the communication connection with the client, and if the check is passed, performing network setting on the client. In order to normally perform network setting on the client, the connection with each client is tested in advance, and whether the communication connection with the client is normal is checked. In performing the connectivity check, performing the connectivity check using a ping command for each client connected to the server, and checking whether the client can be connected.
According to one embodiment of the invention, performing connectivity check can be implemented by the shell executing the following code:
ping hostname
and judging whether the cluster nodes can be connected or not by the ping result.
Subsequently, step S320 is executed to perform network setting on each client connected to the server, and construct a network port of the client. Fig. 5 shows a flow diagram for constructing a network port of a client according to an exemplary embodiment of the present invention. As shown in fig. 5, the network port of the client is constructed after the connectivity check is successful. When a network port is constructed, secret-free login setting is firstly carried out, secret-free configuration is carried out on all clients connected with a server, and operation preparation is provided for subsequent steps. And acquiring a public key file from the client when the password-free login setting is carried out. The public key file is generated by the client according to the trust connection with the server. And then, after the server acquires the public key file, setting a firewall of the client according to the public key file, and constructing a network port of the client. According to one embodiment of the invention, when the client uses the Linux operating system, the SElinux check of the client is also carried out, and the SElinux tool of the client is closed. SELinux is Security-Enhanced Linux (Security-Enhanced Linux), which is a Linux kernel module and is also a Security subsystem of Linux. The SElinux tool is closed to configure the client according to the network port of the client. And when each step is executed, if the execution is successful, executing the next step, and if the execution is failed, displaying an error information prompt.
According to one embodiment of the invention, the secret-free login setting can be realized by the shell executing the following codes:
Ansible_yml=ssh.yml
/usr/bin/ansible-playbook -i /etc/ansible/hosts $Ansible_yml
yml file is a public key file, and can be specifically realized as an ansable script file, which is an automated operation and maintenance tool developed based on Python.
Close public key authentication of name close ssh check # #
shell: sed -i "s/^.*StrictHostKeyChecking.*$/ StrictHostKeyChecking no/g" /etc/ssh/ssh_config
Name delete rs a pub # # to avoid multiple runtime conflicts, delete the previous public key
file: path=/root/.ssh/ state=absent
-name key # # generating a new public key
shell: ssh-keygen -t rsa -b 2048 -N '' -f /root/.ssh/id_rsa
Delete name delete/tmp/ssh/# # temporary public key file
file: path=/tmp/ssh/ state=absent
-obtaining The public key in The name copy id _ rsa.pub for The remote for localhost # # remote host to local
fetch: src=/root/.ssh/id_rsa.pub dest=/tmp/ssh/
Name authenticated key log # #/tmp/ssh/lower itself is authentication information, copied to the key file under ssh, where mode is the right that must be added, otherwise the key file will not function
shell: find /tmp/ssh/* -type f -exec sh -c 'cat {}>>/tmp/ssh/authorized_keys.log' \;
When the firewall is set, the following codes can be executed through the shell:
systemctl restart firewalld && firewall-cmd --add-port 3121/tcp --add-port 2224/tcp --permanent && firewall-cmd --reload
selinux off setting:
setenforce 0 && sed -ir "s/^SELINUX=.*/SELINUX=disabled/" /etc/selinux/config
subsequently, step S330 and step S340 are performed to create a server cluster. FIG. 6 illustrates an exemplary process flow for creating a server cluster in accordance with the present invention. As shown in fig. 6, when creating a server cluster, the cluster name of the server cluster is set first, and then the cluster management software is installed, and software in the preset RPM package list is installed on all the nodes. The cluster management software is the necessary software needed for the server cluster to build and operate. The RPM is a red cap software package manager, and the developer writes the name of the software to be installed into an RPM package list in advance. The cluster service is then started, starting the pcsd service on all nodes and starting it up by commanding the systemctl start pcsd and systemctl enable pcsd. The pcsd service is the personal communication service of the client. Then HAcluster account password modification of the client is carried out, and the HAcluster account password is modified by a command id of hash & & echo PASSWWD | passswd-stdin HAcluster. The haccluster account password is the account password of the high-availability server cluster with the client as the slave node.
According to an embodiment of the present invention, the installation of the cluster management software may be implemented by executing the following code:
yum -y install pacemaker-remote resource-agents pcs
starting the cluster service can be realized by executing the following codes:
systemctl restart pcsd && systemctl enable pcsd
making a client's haccluster account password modification may be accomplished by executing the following code:
id hacluster && echo PASSWD passwd --stdin hacluster
wherein, PASSSWD | is a HAcluster account password;
subsequently, the server cluster slave node is set, step S330 is executed, the client is set as the slave node according to the network port of the client, and the slave node information is generated. And when the slave node information is generated, the slave node authentication is carried out according to the host name of the client, the IP address and the host name of the client are acquired after the authentication is passed, and the slave node information is generated according to the IP address and the host name. When the slave node is authenticated, the cluster node is authenticated by commanding the pcs host auth node. Wherein the pcs host author nodal is the host name of the slave node.
According to one embodiment of the present invention, the setting of the slave node of the server cluster can be implemented by executing the following codes:
pcs host auth HOSTNAME
wherein, HOSTNAME is the host name of the slave node.
Subsequently, step S340 is executed to construct a server cluster with the server as the master node and the client as the slave node according to the master node information and the slave node information. Specifically, when a server cluster is constructed, the master node information of the server and the slave node information of the client are stored in the server, and the installed cluster management software is respectively set in the server and the client according to the stored master node information and slave node information to start up automatically so as to create and start the server cluster. When creating a server cluster, the cluster is created by commanding the pcs cluster setup node. Wherein, the nodename is the name of the client as the slave node of the server cluster. When the server cluster is started, the cluster service is started by commanding pcs to cluster start cluster name. And then the cluster management software is automatically started by commanding the pcs cluster enable cluster name. Wherein clustername is the name of the server cluster.
According to an embodiment of the present invention, creating a server cluster may be implemented by executing the following code:
pcs cluster setup CLUSTERNAME HOSTNAME --force
wherein CLUSTERNAME is the name of the server cluster, and HOSTNAME is the name of the client as the slave node of the server cluster.
Starting cluster service and setting cluster management software to start automatically after starting can be realized by executing the following codes:
pcs cluster start --all && pcs cluster enable --all
according to one embodiment of the invention, after the cluster service is started and the cluster management software is set to be automatically started, the installation options of default installation and advanced installation are provided for the user. When the user selects the default installation option, the whole creating process is completed after the server cluster is successfully created. When the user selects the advanced installation, the virtual machine is installed and configured on the client side, and the slave node setting is carried out on the client side. And when the client side is subjected to slave node management, a node configuration list is generated, wherein the node configuration list comprises a node IP address, a hostname name and a guest/remote option. And when the node is logged off, deleting the related node information from the node configuration list. And when the node is generated, configuring the node information and writing the node information into a node configuration list. When the slave node is set, the configuration can be carried out according to different situations, including the condition that the slave node does not have a virtual machine, the slave node has the virtual machine and the slave node is set by the physical machine.
Fig. 7 shows a flow diagram of setting up a slave node according to an exemplary embodiment of the present invention. As shown in fig. 7, if there is no virtual machine in the slave node, a new virtual machine is required. The new virtual machine needs to set the following items:
(1) host machine IP: cluster node IP for building virtual machine
(2) Host hostname: building the name of the cluster node of the virtual machine in the local area network;
(3) host root password: building a cluster node root user password of the virtual machine;
(4) name of the virtual machine: the name of the virtual machine on the virtual machine management interface;
(5) mirror image storage path: an absolute path used for storing a disk file of the virtual machine;
(6) the size of the memory is as follows: the minimum memory allocated to the virtual machine is 1500M;
(7) the number of CPUs: the number of CPUs allocated to the virtual machine;
(8) network mode: the communication mode of the virtual machine and the host machine is a bridging mode by default;
(9) selecting a network card: a communication channel between the virtual machine and the host machine;
(10) the hostname of the virtual machine: the name of the virtual machine in the local area network;
(11) IP address: a virtual machine IP address;
(12) subnet mask: the virtual machine subnet mask needs to be filled in the form of 32-bit address, for example:
255.255.225.0;
(13) a gateway: a gateway for the virtual machine;
(14) DNS: resolving a domain name of the virtual machine;
(15) and (3) node selection: selecting a node type (guest/remote);
(16) virtual domain resource name: the name of the virtual machine resource in the cluster;
according to one embodiment of the invention, when a virtual machine is newly built in a slave node, a configuration interface of the newly built virtual machine is presented to a user by executing the following codes:
function saveAdvancedNode(){
var host _ IP = document. getElementById ('host _ IP'),/virtual machine host IP address configuration.
var host _ hostname = document. getElementById ('host _ hostname'),/virtual machine host hostname configuration.
var host _ root _ or _ password = document, get ElementById ('host _ root _ or _ password'),/virtual machine host root password configuration.
var chord _ node = document. getElementById ('chord _ node'),/the new virtual machine is a guest or remote node setting.
var vd _ resource _ name = document, getElementById ('vd _ resource _ name'),/virtual machine virtual domain resource name setting.
var virtual _ machine _ name = document, getElementById ('virtual _ machine _ name')/the name setting of the virtual machine inside the KVM list.
var mirror _ storage _ path = document, getElementById ('mirror _ storage _ path')/creating the mirror file path required by the virtual machine, the file being in qcow2 format.
var host _ name = document. getElementById ('host _ name'),/virtual machine hostname name setting.
var IP _ address = document. getElementById ('IP _ address')/virtual machine IP address setting.
var subnet _ mask = document, getElementById ('subnet _ mask'), and// virtual machine subnet mask settings.
var gateway = document. getElementById ('gateway'),/virtual machine gateway settings.
var dns = document, getelementbyid ('dns'),/virtual machine dns setting.
var memory _ size = document. getElementById ('memory _ size')/virtual machine memory size setting.
var cpu _ num = document. getelementbyid ('cpu _ num'),/virtual machine cpu number setting.
var network _ mode = document, getElementById ('network _ mode'),/virtual machine network mode setting (bridge)
var nic selection = document. getElementById ('nic selection'),/virtual machine uses a physical machine network card setting.
$.ajax({
url:"/advanced_install",
type:"post",
dataType:"JSON",
data:{
host_ip: host_ip.value,
host_hostname: host_hostname.value,
host_root_or_password: host_root_or_password.value,
choose_node: choose_node.value,
vd_resource_name: vd_resource_name.value,
virtual_machine_name: virtual_machine_name.value,
mirror_storage_path: mirror_storage_path.value,
host_name: host_name.value,
ip_address: ip_address.value,
subnet_mask: subnet_mask.value,
gateway: gateway.value,
dns: dns.value,
memory_size: memory_size.value,
cpu_num: cpu_num.value,
network_mode: network_mode.value,
nic_selection: nic_selection.value,
},
...... window.location.href="HA_advanced_installation valus="+ JSON.stringify(data.url);
}
}
});
}
And executing the following codes, and calling the shell to create the virtual machine by using the configuration information through an advanced cluster node.
virt-install --connect qemu:///system --virt-type kvm --name KVMNAME --memory MEMSIZE --vcpus=CPUNUM --disk path=FILEPATH/uos-KVMNAME.qcow2,bus=virtio,format=qcow2,sparse --force --import &
Wherein, KVMNAME is the name of the virtual machine in the switcher (KVM);
MEMSIZE is the memory size of the virtual machine;
CPUNUM is the number of the cpu of the virtual machine;
FILEPAT is a virtual machine image file storage path;
uos-KVMNAME. qcow2 is the name of the virtual machine image file, and qcow2 is the KVM virtual machine disk copy file, and the KVM virtual machine disk copy file can be manufactured by copying the disk distributed by the KVM virtual machine installation system in a whole manner.
The local mount of the image file of the virtual machine can be realized by executing the following codes:
guestmount -d KVMNAME -i MOUNTPATH
the KVMNAME is the name of the virtual machine in the KVM;
MOUNTPATH is the mount path of the mirror image file.
Modifying the virtual machine IP address may be accomplished by executing the following code:
sed -i 's/BOOTPROTO=.*/BOOTPROTO=none/' $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
sed -i 's/ONBOOT=.*/ONBOOT=yes/' $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
sed -i '/UUID=/d' $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
sed -i '/DEVICE=/d' $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
sed -i 's/DEFROUTE=.*/DEFROUTE=no/' $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
echo IPADDR=IPADDRVALUE >> $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
echo NETMASK=PREFIXVALUE >> $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
echo GATEWAY=GATEWAYVALUE >> $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
echo DNS1=DNS1VALUE >> $MOUNTPATH/etc/sysconfig/network-scripts/ifcfg-enp1s0
wherein, IPADDRVALUE is an IP address value;
PREFIXVALUE is a prefix value;
GATEWAYVALUE as gateway value;
DNS1VALUE is a DNS VALUE.
Setting the hostname of the KVM virtual machine may be implemented by executing the following code:
echo IPADDRVALUE HOSTNAMEVALUE >> MOUNTPATH/etc/hosts
wherein, IPADDRVALUE is an IP address value;
HOSTNAMEVALUE is the set hostname value;
MOUNTPATH is the mount path of the mirror image file.
Virtual machine image offload may be implemented by executing the following code:
guestunmount MOUNTPATH
wherein, MOUNTPATH is a mounting path;
guest is a slave node registration process:
the virtual machine resource agent file can be made by executing the following codes:
virsh dumpxml KVMNAME > /etc/pacemaker/KVMNAME.xml
the name KVMNAME of the KVM virtual machine is used for generating a Pacemaker resource agent file KVMNAME.
Making virtual domain resources may be accomplished by executing the following code:
pcs resource create VMDOMAINNAME VirtualDomain config=/etc/pacemaker/KVMNAME.xml migration_transport=ssh meta allow-migrate=true
wherein, VMDOMAINNAME is the name of virtual domain resource;
KVMNAME is the resource file name.
The virtual machine resource proxy file and the virtual domain resource are used for setting a guest node and a remote node.
Converting the virtual domain resource into a guest node may be implemented by executing the following code:
pcs cluster node add-guest HOSTNAMEVALUE VMDOMAINNAME
wherein, the HOSTNAMEVALUE is the hostname value of the virtual machine;
VMDOMAINNAME is the name of the virtual Domain resource.
Advanced installation mode node rpm package installation may be implemented by executing the following code:
yum makecache -y
yum -y install pacemaker-remote resource-agents pcs
the advanced installation mode node service initiation function may be implemented by executing the following code:
systemctl restart pcsd && systemctl enable pcsd
advanced installation mode authenticated account password modification may be implemented by executing the following code:
id hacluster && echo PASSWD | passwd --stdin hacluster
wherein, the paswd is the password uos of the certificate account.
The advanced installation mode guest node authentication can be realized by executing the following codes:
pcs host auth HOSTNAME -u hacluster -p PASSWD
the HOSTNAME is a name of a guest node HOSTNAME configured in the advanced mode.
The advanced installation mode remote node authentication method can be realized by executing the following codes:
pcs host auth HOSTNAME -u hacluster -p PASSWD
the HOSTNAME is a name of a guest node HOSTNAME configured in the advanced mode.
The advanced installation mode remote node creation function may be implemented by executing the following code:
pcs cluster node add-remote HOSTNAME
and the HOSTNAME is a HOSTNAME value configured for the advanced installation mode remote node.
When the slave node has a virtual machine, the following items are configured:
(1) host machine IP: an IP address of an entity machine with a virtual machine;
(2) host hostname: the name of the physical machine in the local area network;
(3) host root password: a login password of a root user of the entity machine;
(4) name of the virtual machine: the name of the virtual machine on the virtual machine management interface;
(5) the hostname of the virtual machine: the name of the built virtual machine in the local area network;
(6) IP address: a virtual machine IP address;
(7) root password: a virtual machine root user password;
(8) and (3) node selection: selecting a node type (guest/remote);
(9) virtual domain resource name: resource names of the virtual machines in the cluster;
according to one embodiment of the invention, when the virtual machine exists in the slave node, a corresponding configuration interface is displayed to a user, and the relevant codes of the interface are as follows:
function saveAdvancedNode(){
var host _ IP = document. getElementById ('host _ IP'),/virtual machine host IP address configuration.
var host _ hostname = document. getElementById ('host _ hostname'),/virtual machine host hostname configuration.
var host _ root _ or _ password = document, get ElementById ('host _ root _ or _ password'),/virtual machine host root password configuration.
var virtual _ name = document. getElementById ('virtual _ name')/name configuration of virtual machines within the KVM list.
var hostname = document. getElementById ('hostname'),/virtual machine hostname name configuration.
var IP _ addresses = document. getElementById ('IP _ addresses'),/virtual machine IP address configuration.
var root _ password = document. getElementById ('root _ password'),/virtual machine root password configuration.
var chord _ node = document. getElementById ('chord _ node'),/virtual machine guest or remote node selection.
var vd _ resource _ name = document, getElementById ('vd _ resource _ name'),/virtual machine virtual domain resource name setting.
$.ajax({
url:"/advanced_install_existing",
type:"post",
dataType:"JSON",
data:{
host_ip: host_ip.value,
host_hostname: host_hostname.value,
host_root_or_password: host_root_or_password.value,
virtual_name: virtual_name.value,
hostname: hostname.value,
ip_adress: ip_adress.value,
root_passwd: root_passwd.value,
choose_node: choose_node.value,
vd_resource_name: vd_resource_name.value,
}
.....
});
}
When the slave node is directly set by the entity machine, the entity machine can only set a remote node, and the following items are configured:
(1) IP address: adding the IP address of the entity machine of the cluster;
(2) password: root user password of the physical machine;
(3) host name: the name of the physical machine in the local area network;
according to one embodiment of the invention, when the physical machine setting is directly carried out on the slave node, a physical machine setting page can be presented to a user by executing the following codes:
function saveAdvancedNode(){
var host _ IP = document.
var password = document. getElementById ('password'),/physical machine root password configuration.
var host _ name = document. getElementById ('host _ name'),/physical machine hostname configuration.
$.ajax({
url:"/advanced_install_pm",
type:"post",
dataType:"JSON",
data:{
host_ip: host_ip.value,
password: password.value,
host_name: host_name.value,
}
......
});
}
When the slave node is configured, if the slave node cannot be configured successfully, an error message is displayed.
According to one embodiment of the invention, the server cluster information is displayed after the server cluster is constructed. The server cluster information includes process log information, specifically, creation of a virtual machine, setting of a guest/remote node, and a dependent file installed in a corresponding node.
And jumping to the ending interface after all the settings of the server cluster are successfully completed, and selecting to quit the installation program or opening the Web UI and then quitting the installation program according to the requirements.
The steps of the method 300 of the present invention may be implemented by a program, an installation tool, or the like, and fig. 8 shows a schematic architecture diagram of a server cluster deployment apparatus according to an exemplary embodiment of the present invention. The server cluster deployment apparatus shown in fig. 8 is only an example, and the specific architecture and module configuration of the server cluster deployment apparatus implementing the method 300 are not limited in the present invention. The server cluster deployment device may reside in the server 140. As shown in fig. 8, the server cluster deployment apparatus includes a front-end module and a back-end module, and a middleware module coupling the front-end module and the back-end module. The front-end module acquires configuration information of the server, main node information is generated according to the configuration information, the back-end module specifically carries out relevant setting on the server and a connection client side of the server, and the middleware module carries out data transmission between the front-end module and the back-end module.
According to an embodiment of the invention, the server further stores a plurality of language resource packages, each language resource package corresponds to one language, and the use of the plurality of language resource packages facilitates internationalization of the server cluster deployment device, so that the device is unhooked from specific languages and regions, and users using different languages are facilitated. The front-end module comprises a language selection unit, the language selection unit provides a plurality of language options for a user, and the language resource package corresponding to the corresponding language is loaded for server cluster deployment according to the language options selected by the user.
The front-end module further comprises a protocol permitting unit which prompts a user using the server cluster building device to follow a relevant use protocol, and the user can continue to use the server cluster building device only by agreeing to and following the use protocol. The number of protocols used and their specific content are not limited by the present invention.
The front-end module further comprises a first jumping unit, and the middleware module comprises a second jumping unit. The user agreement permission and the language selection can be realized in different window interfaces, the window interfaces comprise related options, and the second jumping unit renders and displays the window interfaces to the user. The second jumping unit draws a plurality of window interfaces, arranges the setting of each item of configuration information on a single window interface, and jumps the window interfaces when setting the configuration information of the next item.
And a first jumping unit of the front-end module receives the operation of a user on the current page, wherein the operation comprises selection of options displayed in the current window interface, jumping of the triggered window interface and the like. Each window interface can also be provided with a jump button of the window interface and the like, so that a user can trigger the jump of the window interface conveniently. The invention does not limit the skip button of the window interface and the skip mode of the user triggering the window interface. The skip button may be implemented as a "next" style, etc.
Jump rules are set between different window interfaces, and a jump sequence is stipulated, namely, a target window interface can be jumped to from the current window page. A second jumping unit of the middleware stores a jumping rule between window interfaces. And after the first jumping unit of the front-end module receives the user operation, the second jumping unit of the middleware processes the user operation, determines a target window interface according to the stored jumping rule, and then renders and displays the target window interface to be jumped to realize the jumping of the window interface.
According to one embodiment of the invention, in order to configure a server cluster, a window interface 1 and a window interface 2 are provided, which can perform language selection and user agreement permission, respectively. FIG. 4a illustrates a page jump flow diagram according to an exemplary embodiment of the present invention. The window interface 1 and the window interface 2 can be obtained by writing html or js, the skip rules of the window interface 1 and the window interface 2 are preset and stored, and the next window interface of the window interface 1 is the window interface 2. A "next" button is provided in the window interface 1, which can be triggered by the user to jump to the window interface 2. A "previous step" button is provided in the window interface 2, which can be triggered by the user to go back to the window interface 1.
FIG. 4b shows a page jump architecture diagram according to an exemplary embodiment of the present invention. When the user wants to jump to the page 2 through the "next" button of the window interface 1, the first jumping unit transmits the configuration information of the window interface 1 to the second jumping unit. And the second jumping unit stores the configuration information. The stored configuration information is used to configure the server cluster. The second jumping unit includes a middleware and an interface frame. And processing the data successfully, and after the configuration information of the window interface is set, the middleware sends a message of successful processing to the window interface 1 displayed by the first jumping unit. The middleware is a docking module responsible for delivering configuration-related messages to the window page, and the middleware may be implemented as python middleware. And then, the window interface 1 sends a jump signal to the interface frame, and the interface frame renders and displays the window interface 2 according to the received jump signal and a pre-stored jump rule, so that the jump of the window interface is realized.
The front-end module further comprises a cluster node configuration unit, the cluster node configuration unit acquires configuration information of the server, generates main node information according to the configuration information, specifically acquires an IP address, a host name and a user password of the server, and generates the main node information according to the IP address, the host name and the user password. When the configuration information is acquired, the configuration information may be acquired from a system configuration file of the server or may be acquired by user input.
The middleware module also comprises a configuration data processing unit which is responsible for processing data input by a user at the front-end module, transmitting the data to each unit of the rear-end module for processing, receiving the data waiting for the rear-end module, and transmitting the data to the front-end module for displaying and processing.
The cluster node configuration unit also provides the user with an option of whether the local device is a cluster node when generating the master node information. And when the user selects the local machine as the cluster node, normally continuing to configure the server cluster for the local machine. When a user needs to log out the local computer from the server cluster and make the local computer separate from the server cluster, the local computer is selected as an option which is not used as a cluster node, and then the local computer can be logged out from the server cluster.
The back-end module also comprises a connectivity checking unit, the connectivity checking unit checks the connectivity of each client connected with the server according to the communication connection with the client, and if the checking is passed, the network setting is carried out on the client. In order to normally perform network setting on the client, the connectivity check unit tests the connection with each client in advance, and checks whether the communication connection with the client is normal. When performing the connectivity check, the connectivity check unit performs the connectivity check using a ping command for each client connected to the server, checking whether the client can be connected to.
The back-end module also comprises a password-free login setting module. The password-free login setting unit performs network setting on each client connected with the server to construct a network port of the client. The password-free login setting unit performs password-free login setting, firewall setting and selinux setting functions. The specific password-free login setting unit acquires the public key file from the client. The public key file is generated by the client according to the trust connection with the server. And then setting the firewall of the client according to the public key file, and constructing the network port of the client. According to one embodiment of the invention, the secret login free setting unit also performs SElinux check of the client when the client uses a Linux operating system, and closes the SElinux tool of the client. SELinux is Security-Enhanced Linux (Security-Enhanced Linux), which is a Linux kernel module and is also a Security subsystem of Linux. The SElinux tool is closed to configure the client according to the network port of the client. When each step is executed, if the execution is successful, the secret-free login setting module directly executes the next step, and if the execution is failed, the middleware module is informed to display an error message prompt.
The middleware module also includes a call shell unit. When the password-free login setting unit is used for setting password-free login, a calling shell unit of the middleware module calls a shell to execute the following codes:
Ansible_yml=ssh.yml
/usr/bin/ansible-playbook -i /etc/ansible/hosts $Ansible_yml
yml file is a public key file, and can be specifically realized as an ansable script file, which is an automated operation and maintenance tool developed based on Python.
Close public key authentication of name close ssh check # #
shell: sed -i "s/^.*StrictHostKeyChecking.*$/ StrictHostKeyChecking no/g" /etc/ssh/ssh_config
Name delete rs a pub # # to avoid multiple runtime conflicts, delete the previous public key
file: path=/root/.ssh/ state=absent
-name key # # generating a new public key
shell: ssh-keygen -t rsa -b 2048 -N '' -f /root/.ssh/id_rsa
Delete name delete/tmp/ssh/# # temporary public key file
file: path=/tmp/ssh/ state=absent
-obtaining The public key in The name copy id _ rsa.pub for The remote for localhost # # remote host to local
fetch: src=/root/.ssh/id_rsa.pub dest=/tmp/ssh/
Name authenticated key log # #/tmp/ssh/lower itself is authentication information, copied to the key file under ssh, where mode is the right that must be added, otherwise the key file will not function
shell: find /tmp/ssh/* -type f -exec sh -c 'cat {}>>/tmp/ssh/authorized_keys.log' \;
When the password-free login setting unit is used for setting the firewall, the calling shell unit of the middleware module calls the shell to execute the following codes:
systemctl restart firewalld && firewall-cmd --add-port 3121/tcp --add-port 2224/tcp --permanent && firewall-cmd --reload
selinux off setting:
setenforce 0 && sed -ir "s/^SELINUX=.*/SELINUX=disabled/" /etc/selinux/config
the front-end module also comprises a cluster name setting unit, the cluster name setting unit sets the cluster name of the server cluster, and provides a page for a user to key in the server cluster name, so that the cluster name of the server cluster can be conveniently set.
The back-end module also comprises a resource package installation package unit, and the resource package installation module installs software in a preset RPM package list on all the nodes. The cluster management software is the necessary software needed for the server cluster to build and operate. The RPM is a red cap software package manager, and the developer writes the name of the software to be installed into an RPM package list in advance.
The back-end module also comprises a service starting unit which starts the cluster service, starts the pcsd service on all nodes by commanding the systemctl start pcsd and the systemctl enable pcsd and starts the pcsd service. The pcsd service is the personal communication service of the client.
The back-end module also comprises a password modification unit, wherein the password modification unit modifies the HAcluster account password of the client and modifies the HAcluster account password through a command id hash & echo PASSWD-stdin HAcluster. The haccluster account password is the account password of the high-availability server cluster with the client as the slave node.
The back-end module further comprises a node authentication unit. The node authentication unit sets the client as a slave node according to a network port of the client, and generates slave node information. And when the node authentication unit generates the slave node information, the slave node authentication is carried out according to the host name of the client, the IP address and the host name of the client are acquired after the authentication is passed, and the slave node information is generated according to the IP address and the host name. When the node authentication unit authenticates the slave node, the cluster node is authenticated by commanding the pcs host auth node. Wherein the pcs host author nodal is the host name of the slave node.
The back-end module also comprises a cluster creating unit, and the cluster creating unit constructs a server cluster which takes the server as a main node and the client as a slave node according to the main node information and the slave node information. When a specific cluster creating unit builds a server cluster, the master node information of the server and the slave node information of the client are stored in the server, and the installed cluster management software is respectively set in the server and the client to start up and automatically start up according to the stored master node information and slave node information so as to create and start the server cluster. When the cluster creating unit creates a server cluster, the cluster is created by commanding the pcs cluster setup node. Wherein, the nodename is the name of the client as the slave node of the server cluster. When the cluster creating unit starts the server cluster, the cluster service is started by commanding the pcs cluster start cluster name. And then the cluster management software is automatically started by commanding the pcs cluster enable cluster name. Wherein clustername is the name of the server cluster.
The front-end module also includes an advanced node configuration unit that provides installation options for default and advanced installations to a user. When the user selects the default installation option, the whole creating process is completed after the server cluster is successfully created. When the user selects advanced installation, the back-end module installs and configures the virtual machine at the client, and sets slave nodes for the client.
The back-end module also comprises a virtual machine installation unit, wherein the virtual machine installation unit is used for installing and configuring a virtual machine at the client and setting slave nodes of the client. And when the virtual machine installation unit manages the slave nodes of the client, a node configuration list is generated, wherein the node configuration list comprises a node IP address, a hostname name and a guest/remote option. And when the virtual machine installation unit logs out the node, relevant node information is deleted from the node configuration list. And when the virtual machine installation unit generates the nodes, configuring the node information and writing the node information into the node configuration list. When the virtual machine installation unit sets the slave node, the configuration can be carried out according to the conditions, including the condition that the slave node does not have the virtual machine, the virtual machine exists and the physical machine setting is carried out on the slave node.
The virtual machine installation unit calls the shell to establish the virtual machine by using the configuration information:
virt-install --connect qemu:///system --virt-type kvm --name KVMNAME --memory MEMSIZE --vcpus=CPUNUM --disk path=FILEPATH/uos-KVMNAME.qcow2,bus=virtio,format=qcow2,sparse --force --import &
wherein, KVMNAME is the name of the virtual machine in the switcher (KVM);
MEMSIZE is the memory size of the virtual machine;
CPUNUM is the number of the cpu of the virtual machine;
FILEPAT is a virtual machine image file storage path;
uos-KVMNAME. qcow2 is the name of the virtual machine image file, and qcow2 is the KVM virtual machine disk copy file, and the KVM virtual machine disk copy file can be manufactured by copying the disk distributed by the KVM virtual machine installation system in a whole manner.
The back-end module also comprises a virtual resource creating unit, and the virtual resource creating unit is used for making a virtual machine resource proxy file by executing the following codes:
virsh dumpxml KVMNAME > /etc/pacemaker/KVMNAME.xml
the name KVMNAME of the KVM virtual machine is used for generating a Pacemaker resource agent file KVMNAME.
The virtual resource creating unit creates a virtual domain resource by executing the following code:
pcs resource create VMDOMAINNAME VirtualDomain config=/etc/pacemaker/KVMNAME.xml migration_transport=ssh meta allow-migrate=true
wherein, VMDOMAINNAME is the name of virtual domain resource;
KVMNAME is the resource file name.
The virtual machine resource proxy file and the virtual domain resource which are manufactured by the virtual resource creating unit are used for setting a guest node and a remote node.
The back-end module also comprises a guest node making unit, the guest node making unit converts the virtual domain resource into a guest node and can be realized by executing the following codes:
pcs cluster node add-guest HOSTNAMEVALUE VMDOMAINNAME
wherein, the HOSTNAMEVALUE is the hostname value of the virtual machine;
VMDOMAINNAME is the name of the virtual Domain resource.
The back-end module also comprises a remote node making unit which converts the virtual domain resource into a remote node.
The back-end module also includes a log output unit that generates server cluster information. The server cluster information includes process log information, specifically, creation of a virtual machine, setting of a guest/remote node, and a dependent file that a corresponding node needs to install.
The middleware module further comprises a log information acquisition unit, and the log information acquisition unit acquires server cluster information from a log output unit of the back-end module and forwards the server cluster information to the front-end module.
The front-end module further comprises a log information acquisition unit, and the log information acquisition unit displays the server cluster information acquired from the middleware module after the server cluster is constructed. The server cluster information includes process log information, specifically, creation of a virtual machine, setting of a guest/remote node, and a dependent file that a corresponding node needs to install.
Fig. 9 is a schematic diagram illustrating a technical architecture of a server cluster deployment apparatus according to an exemplary embodiment of the present invention. As shown in fig. 9, the server cluster deployment apparatus uses python webview as a window launcher, uses a main part interactive interface designed by html, js, and css languages supported by a python flash framework, and uses a shell script to complete a specific implementation process through configuration parameters.
The server cluster deployment method is suitable for being executed in a server which is in communication connection with one or more clients. Firstly, acquiring configuration information of a server, and generating main node information according to the configuration information; and then, network setting is carried out on each client connected with the server, and a network port of the client is constructed, so that the client is configured through a network interface, and a server cluster is conveniently constructed. And then setting the client as a slave node according to the network port of the client, generating slave node information, and constructing a server cluster which takes the server as a master node and the client as a slave node according to the master node information and the slave node information. According to the method provided by the invention, the server cluster can be quickly constructed, the quick deployment is realized, the complexity of constructing the cluster environment is reduced, and the online speed of the cluster service is increased.
In the description provided herein, numerous specific details are set forth. It is understood, however, that embodiments of the invention may be practiced without these specific details. In some instances, well-known methods, structures and techniques have not been shown in detail in order not to obscure an understanding of this description.
Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure and aiding in the understanding of one or more of the various inventive aspects. However, the disclosed method should not be interpreted as reflecting an intention that: that the invention as claimed requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.
Those skilled in the art will appreciate that the modules or units or groups of devices in the examples disclosed herein may be arranged in a device as described in this embodiment, or alternatively may be located in one or more devices different from the devices in this example. The modules in the foregoing examples may be combined into one module or may be further divided into multiple sub-modules.
Those skilled in the art will appreciate that the modules in the device in an embodiment may be adaptively changed and disposed in one or more devices different from the embodiment. Modules or units or groups in embodiments may be combined into one module or unit or group and may furthermore be divided into sub-modules or sub-units or sub-groups. All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and all of the processes or elements of any method or apparatus so disclosed, may be combined in any combination, except combinations where at least some of such features and/or processes or elements are mutually exclusive. Each feature disclosed in this specification (including any accompanying claims, abstract and drawings) may be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.
Furthermore, those skilled in the art will appreciate that while some embodiments described herein include some features included in other embodiments, rather than other features, combinations of features of different embodiments are meant to be within the scope of the invention and form different embodiments. For example, in the following claims, any of the claimed embodiments may be used in any combination.
Furthermore, some of the described embodiments are described herein as a method or combination of method elements that can be performed by a processor of a computer system or by other means of performing the described functions. A processor having the necessary instructions for carrying out the method or method elements thus forms a means for carrying out the method or method elements. Further, the elements of the apparatus embodiments described herein are examples of the following apparatus: the apparatus is used to implement the functions performed by the elements for the purpose of carrying out the invention.
The various techniques described herein may be implemented in connection with hardware or software or, alternatively, with a combination of both. Thus, the methods and apparatus of the present invention, or certain aspects or portions thereof, may take the form of program code (i.e., instructions) embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other machine-readable storage medium, wherein, when the program is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the invention.
In the case of program code execution on programmable computers, the computing device will generally include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. Wherein the memory is configured to store program code; the processor is configured to execute the method for determining the apparatus shutdown state of the present invention according to instructions in the program code stored in the memory.
By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer-readable media includes both computer storage media and communication media. Computer storage media store information such as computer readable instructions, data structures, program modules or other data. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. Combinations of any of the above are also included within the scope of computer readable media.
As used herein, unless otherwise specified the use of the ordinal adjectives "first", "second", "third", etc., to describe a common object, merely indicate that different instances of like objects are being referred to, and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking, or in any other manner.
While the invention has been described with respect to a limited number of embodiments, those skilled in the art, having benefit of this description, will appreciate that other embodiments can be devised which do not depart from the scope of the invention as described herein. Furthermore, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the appended claims. The present invention has been disclosed in an illustrative rather than a restrictive sense, and the scope of the present invention is defined by the appended claims.

Claims (10)

1. A server cluster deployment method, adapted to be executed in a server communicatively connected to one or more clients, the method comprising the steps of:
acquiring configuration information of a server, and generating main node information according to the configuration information;
setting a network for each client connected with the server, and constructing a network port of the client;
setting the client as a slave node according to the network port of the client, and generating slave node information;
constructing a server cluster which takes the server as a main node and the client as a slave node according to the main node information and the slave node information; the method comprises the following steps:
respectively setting the starting up of the installed cluster management software at the client according to the master node information and the slave node information;
providing installation options for default installation and advanced installation to a user;
when a user selects advanced installation, installing and configuring a virtual machine at a client, and setting slave nodes of the client;
wherein the installing and configuring of the virtual machine at the client comprises the steps of:
if the virtual machine does not exist in the client, a virtual machine is newly built in the client;
constructing virtual domain resources and virtual machine resource agent files;
and setting the node type of the virtual machine according to the virtual domain resource and the virtual machine resource proxy file, wherein the node type of the virtual machine comprises a guest node and a remote node.
2. The method of claim 1, wherein the server further stores a plurality of language resource packages, each language resource package corresponding to a language, the method further comprising the steps of:
providing a user with multiple language options;
and loading the language resource packages corresponding to the corresponding languages for server cluster deployment according to the language options selected by the user.
3. The method of claim 2, wherein the obtaining configuration information of the server and the generating of the master node information according to the configuration information comprises:
acquiring the IP address, the host name and the user password of the server;
and generating main node information according to the IP address, the host name and the user password.
4. The method of claim 3, further comprising the steps of:
and according to the communication connection with the client, performing connectivity check on each client connected with the server, and if the check is passed, performing network setting on the client.
5. The method of claim 4, wherein the network setup is performed for each client connected to the server, and the constructing of the network port of the client comprises the steps of:
acquiring a public key file from the client;
and setting the firewall of the client according to the public key file, and constructing the network port of the client.
6. The method of claim 5, setting the client as a slave node according to the client's network port, and generating slave node information comprises the steps of:
performing slave node authentication according to the host name of the client;
obtaining the IP address and the host name of the client after the authentication is passed;
and generating slave node information according to the IP address and the host name.
7. The method of any one of claims 1 to 6, wherein the server and the client connected to the server are preinstalled with cluster management software, and the server cluster with the server as a master node and the client as a slave node is constructed according to the master node information and the slave node information, and comprises the following steps:
storing the master node information of the server and the slave node information of the client in the server;
and setting the installed cluster management software to start up and automatically start up in the server and the client according to the stored master node information and slave node information so as to create and start up the server cluster.
8. A computing device, comprising:
one or more processors;
a memory; and
one or more apparatuses comprising instructions for performing any of the methods of claims 1-7.
9. A computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computing device, cause the computing device to perform any of the methods of claims 1-7.
10. A server cluster deployment device resides in a server, the server is in communication connection with one or more clients, the device comprises a front-end module and a back-end module which are in communication connection, the front-end module is suitable for acquiring configuration information of the server and generating main node information according to the configuration information;
the back-end module is suitable for setting the network of each client connected with the server and constructing a network port of the client;
setting the client as a slave node according to the network port of the client, and generating slave node information;
constructing a server cluster which takes the server as a main node and the client as a slave node according to the main node information and the slave node information;
wherein the front end module comprises an advanced node configuration unit adapted to provide installation options for a default installation and an advanced installation to a user;
the back-end module also comprises a cluster creating unit and a virtual machine installing unit, wherein the cluster creating unit is suitable for setting the installed cluster management software on the server and the client side respectively according to the master node information and the slave node information to start automatically, and the virtual machine installing unit is suitable for installing and configuring the virtual machine on the client side and setting the slave node of the client side when the user selects high-level installation;
the installation and configuration of the virtual machine at the client comprises the following steps:
if the virtual machine does not exist in the client, a virtual machine is newly built in the client;
constructing virtual domain resources and virtual machine resource agent files;
and setting the node type of the virtual machine according to the virtual domain resource and the virtual machine resource proxy file, wherein the node type of the virtual machine comprises a guest node and a remote node.
CN202110889094.2A 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium Active CN113347049B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111247771.7A CN114024841B (en) 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium
CN202110889094.2A CN113347049B (en) 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110889094.2A CN113347049B (en) 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111247771.7A Division CN114024841B (en) 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium

Publications (2)

Publication Number Publication Date
CN113347049A CN113347049A (en) 2021-09-03
CN113347049B true CN113347049B (en) 2021-12-07

Family

ID=77480583

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111247771.7A Active CN114024841B (en) 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium
CN202110889094.2A Active CN113347049B (en) 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202111247771.7A Active CN114024841B (en) 2021-08-04 2021-08-04 Server cluster deployment method and device, computing equipment and storage medium

Country Status (1)

Country Link
CN (2) CN114024841B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538590A (en) * 2020-04-17 2020-08-14 姜海强 Distributed data acquisition method and system based on CS framework
CN113938382B (en) * 2021-10-15 2024-01-23 湖南麒麟信安科技股份有限公司 Parcemaker-based cluster management method, system and storage medium
CN115333944B (en) * 2022-07-20 2023-08-11 苏州浪潮智能科技有限公司 Virtual machine cluster IP resource configuration method, system, equipment and storage medium
CN115314381B (en) * 2022-10-11 2023-03-24 统信软件技术有限公司 Automatic deployment method and device and computing equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109104318A (en) * 2018-08-23 2018-12-28 广东轩辕网络科技股份有限公司 The dispositions method and system of method for realizing cluster self-adaption deployment, the self-adaption deployment big data cluster based on cloud platform
CN111538590A (en) * 2020-04-17 2020-08-14 姜海强 Distributed data acquisition method and system based on CS framework
CN113127009A (en) * 2019-12-30 2021-07-16 航天信息股份有限公司 Automatic deployment method and device for big data management platform

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3039024B1 (en) * 2015-07-15 2018-06-29 Rizze SYSTEM AND AUTOMATIC METHOD FOR DEPLOYING SERVICES ON A NETWORK NODE
CN107295080B (en) * 2017-06-19 2020-12-18 北京百度网讯科技有限公司 Data storage method applied to distributed server cluster and server
CN108549580B (en) * 2018-03-30 2023-04-14 平安科技(深圳)有限公司 Method for automatically deploying Kubernets slave nodes and terminal equipment
CN110493028A (en) * 2019-06-28 2019-11-22 浪潮电子信息产业股份有限公司 A kind of clustered deploy(ment) method, system, device and computer readable storage medium
CN110519348A (en) * 2019-08-15 2019-11-29 苏州浪潮智能科技有限公司 A kind of mostly service distributed type assemblies deployment system and method
CN112035435B (en) * 2020-08-26 2024-04-30 浪潮云信息技术股份公司 MySQL master-slave cluster installation and deployment method and cluster system
CN112491606B (en) * 2020-11-20 2022-05-24 湖南麒麟信安科技股份有限公司 Method for automatically deploying high-availability cluster of service system based on infrastructure
CN113157823A (en) * 2021-04-30 2021-07-23 中国建设银行股份有限公司 Cluster system deployment method and device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109104318A (en) * 2018-08-23 2018-12-28 广东轩辕网络科技股份有限公司 The dispositions method and system of method for realizing cluster self-adaption deployment, the self-adaption deployment big data cluster based on cloud platform
CN113127009A (en) * 2019-12-30 2021-07-16 航天信息股份有限公司 Automatic deployment method and device for big data management platform
CN111538590A (en) * 2020-04-17 2020-08-14 姜海强 Distributed data acquisition method and system based on CS framework

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Ansible的自动化部署与运维;刘佳等;《河南科技》;20200915(第26期);第15-16页第4节 *

Also Published As

Publication number Publication date
CN113347049A (en) 2021-09-03
CN114024841A (en) 2022-02-08
CN114024841B (en) 2023-09-19

Similar Documents

Publication Publication Date Title
CN113347049B (en) Server cluster deployment method and device, computing equipment and storage medium
US11522701B2 (en) Generating and managing a composite identity token for multi-service use
US10515208B2 (en) Isolation and presentation of untrusted data
WO2019076369A1 (en) Cloud platform deployment method, device, electronic device, and readable storage medium
US20210224091A1 (en) Sharable link for remote computing resource access
US7444621B2 (en) Method and system for providing a common operating system
WO2016124013A1 (en) Method and apparatus for dynamically implementing application function
WO2019184164A1 (en) Method for automatically deploying kubernetes worker node, device, terminal apparatus, and readable storage medium
US10938930B2 (en) Dynamically accessing and configuring secured systems
US8418164B2 (en) Image install of a network appliance
US11188407B1 (en) Obtaining computer crash analysis data
US20210359897A1 (en) System for centralized monitoring and control of iot devices
JP2016529602A (en) Method and apparatus for firmware virtualization
JP2016532955A (en) Force encryption on connected devices
US10705895B2 (en) Device based automated tool integration for lifecycle management platform
JP2017187883A (en) Information processing device, information processing system, and configuration change verification program
CN107729117B (en) Virtual machine generation method and system
WO2021139261A1 (en) Application deployment method and device, and medium
CN113366811A (en) Secure cloud computing
CN111639329A (en) Method and device for updating password of virtual machine
US20230419067A1 (en) ENHANCED QUICK RESPONSE (qr) CODE SCAN SECURITY
US20180309847A1 (en) Asynchronous service provisioning in computing systems
Donepudi et al. Designing a web-based graphical interface for virtual machine management
CN115720143A (en) Authentication method, authentication device, electronic equipment and computer-readable storage medium
WO2020258175A1 (en) Method for automatically installing distributed big data platform cdh

Legal Events

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