Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >So stellen Sie eine Hochverfügbarkeitsarchitektur unter Linux bereit
Mit dem Aufkommen des Big-Data-Zeitalters beginnen immer mehr Unternehmen und Organisationen, Linux-Betriebssysteme als Serverplattformen zu verwenden. Um die Verfügbarkeit und Stabilität von Anwendungen sicherzustellen, ist die Hochverfügbarkeitsarchitektur zu einem unverzichtbaren Bestandteil von Linux-Servern geworden. In diesem Artikel wird erläutert, wie Sie eine Hochverfügbarkeitsarchitektur unter Linux bereitstellen.
Was ist Hochverfügbarkeitsarchitektur?
Hochverfügbarkeit (HA) bezieht sich auf eine Systemarchitektur, die weiterhin Dienste bereitstellen kann, wenn das System ausfällt. HA kann durch eine Vielzahl von Technologien implementiert werden, wie z. B. Lastausgleich, redundantes Backup, Failover usw. Für Anwendungen auf Unternehmensebene ist die Aufrechterhaltung einer hohen Verfügbarkeit von entscheidender Bedeutung, da sie sicherstellt, dass die Anwendung auch im Falle unerwarteter Umstände weiterhin normal funktionieren kann.
Schritte zur Bereitstellung einer Hochverfügbarkeitsarchitektur unter Linux
Zuerst müssen Sie das Netzwerk planen. Um eine hohe Verfügbarkeit sicherzustellen, sollte jedem Knoten im Cluster eine unabhängige IP-Adresse zugewiesen und zu einer virtuellen IP-Adresse zusammengefasst werden. Darüber hinaus muss der Netzwerkspeicher so konfiguriert werden, dass der Cluster Daten zwischen Knoten teilen kann.
Bevor Sie die Software installieren, installieren Sie die erforderlichen Softwarepakete auf jedem Knoten, z. B. Heartbeat-, Corosync- und PC-Pakete. Es kann mit dem folgenden Befehl auf CentOS installiert werden:
sudo yum install corosync pcs pacemaker resource-agents
Als nächstes müssen Corosync und Heartbeat konfiguriert werden, um die Kommunikation zwischen den beiden Knoten zu ermöglichen. Dies ist einer der wichtigsten Schritte zur Gewährleistung einer hohen Verfügbarkeit. Legen Sie die IP-Adresse, den Kanalnamen und den Kanalport des Knotens in der Konfigurationsdatei fest. Bitte stellen Sie während dieses Konfigurationsprozesses sicher, dass die folgenden Informationen konfiguriert sind:
totem { version: 2 secauth: off interface { ringnumber: 0 bindnetaddr: 192.168.50.0 mcastaddr: 226.94.1.1 mcastport: 5405 } transport: udpu } logging { to_logfile: yes logfile: /var/log/corosync/corosync.log to_syslog: yes }
In der Heartbeat-Konfigurationsdatei müssen Sie die IP-Adresse und die virtuelle IP-Adresse des Knotens festlegen. Stellen Sie sicher, dass die Anwendung, die die virtuelle IP-Adresse bereitstellt, installiert ist.
#设定hacluster集群名称 cluster hacluster #设定故障探测时间间隔 必须<ping的-send值 keepalive 2 #每次探测(waitting)会加入2秒 deadtime 10 #装备ping用的参数,每次等待10秒 warntime 10 initdead 20 udpport 694 #主服务节点IP,可多行填写 node node1.example.com node node2.example.com #关联的主节点为node1,次节点为node2 crm respawn #virtual_ip是虚拟IP #Ethernet Bridge 和IP假设设为192.168.0.1/24 primitive virtual_ip ocf:heartbeat:IPaddr2 params ip="192.168.0.5" cidr_netmask="24" op monitor interval="10s" #IP暂停服务后强制迁移 location virtual_ip-primary virtual_ip rule $id="virtual_ip-rule" inf: virtual_ip
Installieren Sie das PC-Tool, ein Befehlszeilentool zum Konfigurieren der Pacemaker-Cluster-Management-Software. Es kann mit dem folgenden Befehl installiert werden:
sudo yum install pcs sudo systemctl enable pcsd.service && sudo systemctl start pcsd.service
Konfigurieren Sie die Firewall und stellen Sie sicher, dass die Firewall auf jedem Knoten die Kommunikation zulässt. Unter CentOS7 können Sie den folgenden Befehl verwenden:
sudo firewall-cmd --add-service=high-availability --permanent sudo firewall-cmd --reload
Erstellen Sie auf jedem Knoten den hacluster-Benutzer und fügen Sie ihn der Gruppe pcsd für die zukünftige Verwaltung des Pacemaker-Clusters hinzu:
sudo useradd hacluster sudo passwd hacluster sudo usermod -aG pcsd hacluster
Um den pcsd-Dienst zu aktivieren, verwenden Sie den folgenden Befehl:
sudo systemctl enable pcsd sudo systemctl start pcsd
Konfigurieren Sie den Authentifizierungsschlüssel auf Pacemaker mit dem folgenden Befehl, kopieren Sie den Authentifizierungsschlüssel mit den gleichen Optionen auf alle anderen Knoten:
sudo pcs cluster auth <node1.example.com> <node2.example.com> -u hacluster -p <password> --force
Installieren und konfigurieren Sie HAproxy, einen Hochgeschwindigkeitsserver für die Verfügbarkeit von TCP- und HTTP-Anwendungen Lastausgleichstools. Sie können den folgenden Befehl verwenden, um es unter CentOS zu installieren:
sudo yum -y install haproxy sudo systemctl enable haproxy
In der Konfigurationsdatei von haproxy müssen Sie den Lastausgleichsalgorithmus, die IP-Adresse und die Portnummer des Backend-Servers festlegen.
global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon # Enables HAProxy in daemon mode defaults log global mode http option httplog option dontlognull retries 3 option redispatch maxconn 2000 contimeout 5000 clitimeout 50000 srvtimeout 50000 frontend web bind *:80 mode http default_backend web-backend backend web-backend mode http balance roundrobin option httpchk HEAD / HTTP/1.1 Host:localhost server node1 10.0.0.2:80 check server node2 10.0.0.3:80 check
Testen Sie abschließend die Hochverfügbarkeit. Trennen Sie einen der Knoten und stellen Sie sicher, dass die virtuelle IP automatisch auf den anderen Knoten übertragen wird. Stellen Sie sicher, dass Anwendungen auf anderen Knoten normal unter der virtuellen IP ausgeführt werden, um eine hohe Verfügbarkeit sicherzustellen.
Fazit
Der Einsatz einer Hochverfügbarkeitsarchitektur unter Linux kann die Stabilität und Verfügbarkeit von Unternehmensanwendungen auch bei unerwarteten Ausfällen gewährleisten. Mithilfe der auf Corosync und Heartbeat basierenden HA-Architektur können Anwendungen über virtuelle IP-Adressen und Lastausgleichsalgorithmen auf verschiedene Serverknoten verteilt werden, um deren hohe Verfügbarkeit und Leistung sicherzustellen.
Das obige ist der detaillierte Inhalt vonSo stellen Sie eine Hochverfügbarkeitsarchitektur unter Linux bereit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!