Introduction to basic knowledge of cluster

1. Introduction to the cluster

Cluster technology is a relatively new technology. Through cluster technology, relatively high benefits in terms of performance, reliability and flexibility can be obtained at a lower cost. Its task scheduling is a cluster system. core technology.

A cluster is a group of independent computers interconnected by a high-speed network that form a group and are managed as a single system. When a client interacts with the cluster, the cluster acts like a single server. Cluster configuration is used to improve availability and scalability.

 

 

Scalability:

In some large systems, it is very difficult to predict the number and behavior of end users, and scalability refers to the ability of the system to adapt to an increasing number of users. One of the most intuitive ways to improve the ability of such concurrent sessions is to increase resources (CPU, memory, hard disk, etc.), clustering is another way to solve this problem, it allows a group of servers to be grouped together and shared like a single server Handling a heavy task.

High availability:

A single server solution is not a robust approach because it is prone to a single point of failure. Some critical applications like banking and bill processing cannot tolerate even a few minutes of downtime. They need such services to be accessible at all times and responsive within a reasonably predictable period of time. The cluster solution achieves high availability by adding redundant servers in the cluster, so that services can still be provided after one of the servers fails.

Load balancing:

Load balancing is a key technology of clustering. By distributing requests to different servers, high availability and better performance can be achieved. A load balancer can range from a simple Servlet or Plug-Ins (such as a Linux box implemented using ipchains), to expensive hardware with built-in SSL accelerators. In addition to this, load balancers perform other important tasks, such as "session glue" to keep a user session on a server, and "health checks" to prevent requests from being dispatched to stale servers. Some load balancers also participate in the "failover" process we'll talk about below.

Fault tolerance:

High availability means less stringent requirements for data correctness. In a J2EE cluster, when a server instance fails, the service is still available because new requests will be handled by redundant servers. However, when a request is processed in a failing server, incorrect results may be obtained. A fault-tolerant service should ensure strictly correct behavior, no matter how many errors there are.

Failover:

Failover is another key technique used in clusters to gain fault tolerance. When a node fails, processing will continue without terminating by electing another node in the cluster. Transfers to another node can be explicitly coded, or automatically and transparently routed to another server by the underlying platform.

Idempotent methods:

Idempotent methods are those methods that can be called repeatedly with the same parameters to get the same result. These methods do not affect the system state and can be called repeatedly without worrying about changing the system. For example: getUsername() is idempotent, but deleteFile is not. It is an important concept when we discuss HTTP Session failover and EJB failover.

 

 

 

 

 

 

 

 

The purpose of the cluster

1 Improve performance

Some computing-intensive applications, such as: weather forecasting, nuclear test simulation, etc., require computers to have strong computing and processing capabilities. Even ordinary large-scale computer calculations are difficult to perform with existing technologies. At this time, computer cluster technology is generally used, and the computing power of dozens or even hundreds of computers is concentrated to meet the requirements. Improving processing performance has always been one of the important goals of cluster technology research.

2 Reduce costs

Typically a good cluster configuration costs more than $100,000 in hardware and software. But it's pretty cheap compared to a multi-million dollar special purpose supercomputer. Under the condition of achieving the same performance, using a computer cluster is more cost-effective than using a large computer with the same computing power. In a virtual machine system, multiple virtual machines are deployed on one machine, and multiple independent hosts are virtualized.

3 Improve scalability

If users want to expand the system capacity, they have to buy higher performance servers to get the additional CPU and memory they need. If clustering technology is used, only new servers need to be added to the cluster. From the perspective of customers, the service has almost no change in terms of continuity or performance, as if the system has been upgraded unknowingly.

4 Enhanced reliability

Cluster technology enables the system to continue to work when a failure occurs, minimizing system downtime. The cluster system greatly reduces the failure loss while improving the reliability of the system.

 

 

 

3. Cluster Classification

1 Science Cluster

Scientific clusters are the foundation of parallel computing. Typically, a scientific cluster involves parallel applications developed for the cluster to solve complex scientific problems. A scientific cluster looks like a supercomputer internally, consisting of tens to tens of thousands of individual processors that communicate on a common messaging layer to run parallel applications.

2 Load Balancing Cluster

Load balancing clusters provide a more practical system for enterprise needs. A load-balancing cluster enables the load to be distributed as evenly as possible across a cluster of computers. Load typically includes application processing load and network traffic load. Such a system is ideal for serving a large number of users using the same set of applications. Each node can bear a certain processing load, and can realize dynamic distribution of processing load among nodes to achieve load balancing. For network traffic load, when the network service program accepts high network traffic and cannot process it quickly, the network traffic will be sent to the network service program running on other nodes. At the same time, it can also be optimized according to the different available resources on each node or the special environment of the network. Like scientific computing clusters, load balancing clusters also distribute computing processing load among multiple nodes. The biggest difference between them is the lack of a single parallel program running across nodes. In most cases, each node in a load balancing cluster is an independent system running separate software.

However, there is a common relationship between nodes, whether it is direct communication between nodes or through a central load balancing server to control the load of each node. Typically, a specific algorithm is used to distribute this load.

3 High Availability Cluster

When a system in the cluster fails, the cluster software responds quickly and distributes the system's tasks to other working systems in the cluster for execution. Considering the error-prone nature of computer hardware and software, the main purpose of a high-availability cluster is to make the overall services of the cluster as available as possible. If the primary node in a high-availability cluster fails, it will be replaced by the secondary node during this time. The secondary node is usually a mirror of the primary node. When it replaces the master node, it can completely take over its identity, thus making the system environment consistent for the user.

High-availability clusters keep server systems running and responsive as quickly as possible. They often utilize redundant nodes and services running on multiple machines to track each other. If a node fails, its replacement will take over its responsibilities in seconds or less. Therefore, for users, the cluster never goes down.

In actual use, these three types of clusters blend with each other, such as high-availability clusters can also balance user load among its nodes. Likewise, one can also find a parallel cluster from the cluster in which the application is to be written, which can perform load balancing among the nodes. In this sense, the division of this cluster category is a relative concept, not absolute.

 

 

Fourth, the cluster system structure

According to a typical cluster architecture, the key technologies involved in the cluster can be attributed to four levels:

(1) Network layer: network interconnection structure, communication protocol, signal technology, etc.

(2) Node machine and operating system layer high-performance client, layered or microkernel-based operating system, etc.

(3) Cluster system management layer: resource management, resource scheduling, load balancing, parallel IPO, security, etc.

(4) Application layer: parallel program development environment, serial application, parallel application, etc.

Cluster technology is an organic combination of the above four levels. Although all related technologies solve different problems, they all have their indispensable importance.

The management layer of the cluster system is the embodiment of the unique functions and technologies of the cluster system. In the era of on-demand computing in the future, each cluster should become a node in the business grid, so autonomy (self-protection, self-configuration, self-optimization, self-treatment) will also become an important feature of the cluster . The realization of autonomy and the development and operation of various applications directly depend on the system management layer of the cluster. In addition, the perfection of the system management layer determines the ease of use, stability, scalability and many other key parameters of the cluster system. It is the cluster management system that organizes multiple machines so that it can be called a "cluster".

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326706753&siteId=291194637