GNU/Linux >> LINUX-Kenntnisse >  >> Linux

RCRON – Hochverfügbarkeit von Cron-Jobs einrichten

rcron ist ein leistungsstarkes Tool, das Systemadministratoren beim Einrichten von Cron-Job-Redundanz und Failover über Gruppen von Maschinen unterstützt. RCRON stellt sicher, dass ein auf mehreren Rechnern installierter Job immer nur auf dem aktiven läuft.

Arbeitsweise von RCRON

Hohe Verfügbarkeit mit RCRON (ein Knoten wird als aktiv und der zweite Knoten als passiv gestempelt), die gleiche Cron-Konfiguration wird auf beiden sein, der einzige Unterschied wäre der aktive/passive Status in einer Datei.

Für das automatische Umschalten des Aktiv-/Passiv-Zustands verwenden wir den KEEPALIVED-Daemon, der das Keepalive-Signal für die Kommunikation zwischen 2 Knoten verwendet. Wenn nach dem Senden eines Signals keine Antwort empfangen wird, wird davon ausgegangen, dass die Verbindung unterbrochen ist.

In diesem Szenario wird ein Knoten als KEEPALIVED-Master und der zweite als KEEPALIVED-Backup markiert. Der Master-Knoten hält den rcron-Zustand aktiv und der Backup-Knoten hält den rcron-Zustand passiv. Sobald der Master-Knoten ausfällt, sendet er ein 0-Prioritätssignal an den Backup-Knoten, der umschaltet und sich wie ein MASTER-KNOTEN verhält und rcron fortlaufend als aktiv markiert, sobald der Master-Knoten, der Backup-Knoten, wieder hochfährt wechselt in den Backup-Modus.

Installations- und Konfigurationsschritte von RCRON auf CentOS/RHEL

In meinem Szenario habe ich zwei Linux-Maschinen, eine ist primär und die zweite ist Slave.

Schritt 1 :Aktivieren Sie die IP-Weiterleitung auf beiden Knoten. Bearbeiten Sie die Datei /etc/sysctl.conf und nehmen Sie die folgende Änderung vor

net.ipv4.ip_forward = 1
# sysctl -p      ; Save the Changes without rebooting the Machine

Schritt 2 :Fügen Sie das EPEL-Repository auf beiden Knoten hinzu.

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm

Schritt 3 :Installieren Sie die erforderlichen Pakete auf beiden Knoten.

# yum install subversion byacc flex gcc

Schritt 4 :Wenn Sie Internet vom Proxy-Server erhalten, dann setzen Sie http_proxy für svn.

# mkdir /root/.subversion/
# vi ~/.subversion/servers
http-proxy-exceptions = *.example.com
http-proxy-host = www.example.com
http-proxy-port = 8080
http-compression = no

Schritt 5 :Wenn wir eine direkte Internetverbindung erhalten, überspringen Sie die Proxy-Einstellungen. Laden Sie die rcron-Software von SVN herunter.

# cd /root;
# svn co http://rcron.googlecode.com/svn/trunk rcron
# cd rcron/rcron
# ./configure
# make
# make install

Schritt 6 :Erstellen Sie das Verzeichnis auf beiden Knoten.

# mkdir /etc/rcron/
##############################################
For MASTER SERVER Setup RCRON.conf as follows
##############################################
# vi /etc/rcron/rcron.conf
# An arbitrary name
cluster_name        = cluster
# A file containing either the word "active" or the word "passive"
state_file          = /var/run/rcron/state
# The default state in case state_file can't be read
#default_state       = active
syslog_facility     = LOG_CRON
syslog_level        = LOG_INFO
# We can tune jobs niceness/priorities 
nice_level          = 19
+++++++++++++++++++++++++++++++++++++++++++++++
For BACKUP SERVER NODE , Setup RCRON.conf as follows
+++++++++++++++++++++++++++++++++++++++++++++++
vi /etc/rcron/rcron.conf;
# An arbitrary name
cluster_name = cluster
# A file containing either the word "active" or the word "passive"
state_file = /var/run/rcron/state
# The default state in case state_file can't be read
#default_state = passive
syslog_facility = LOG_CRON
syslog_level = LOG_INFO
# We can tune jobs niceness/priorities 
nice_level = 19

Führen Sie auf dem Master-Knoten die folgenden Befehle aus :

# mkdir /var/run/rcron
# touch /var/run/rcron/state
# echo "active" > /var/run/rcron/state

Führen Sie auf dem Slave-Knoten die folgenden Befehle aus :

# mkdir /var/run/rcron
# touch /var/run/rcron/state
# echo "passive" > /var/run/rcron/state

Schritt 7 :Installieren Sie nun das Keepalive-Paket auf beiden Knoten.

a) Laden Sie den neusten Quell-Tarball herunter:

# cd /root
# wget http://cgit.luffy.cx/keepalived/snapshot/keepalived-1.2.7.tar.gz

b) Installieren Sie das RPM BUILD-Paket:

# yum -y install rpm-build

c) Entpacken Sie die Tar-Kugel und bearbeiten Sie die Datei keepalived.spec.in:

# tar -zxvf keepalived-1.2.7.tar.gz
# mkdir -p /root/rpmbuild/SOURCES/
# cp /root/keepalived-1.2.7.tar.gz /root/rpmbuild/SOURCES/

von Version 1.2.2 auf Version:1.2.7 ersetzen:

# vi /root/keepalived-1.2.7/keepalived.spec.in
# yum -y install popt*
# cd /root/keepalived-1.2.7
# rpmbuild -ba keepalived.spec.in

Der obige Befehl erstellt ein kompiliertes RPM aus der Quelle am Speicherort:

/root/rpmbuild/RPMS/x86_64/keepalived-1.2.7-5.x86_64.rpm

Installieren Sie nun rpm mit dem rpm-Befehl:

# rpm -ivh /root/rpmbuild/RPMS/x86_64/keepalived-1.2.7-5.x86_64.rpm

Schritt 8 :SETUP der Keepalive-Konfiguration.

Richten Sie für den Master-Knoten Folgendes ein:

# vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 { 
state MASTER 
interface eth0 
lvs_sync_daemon_inteface eth0 
virtual_router_id 31 
priority 101 
advert_int 5
vrrp_unicast_bind 172.16.243.144 
vrrp_unicast_peer 172.16.243.145 
authentication { 
auth_type PASS 
auth_pass 1111
}
notify_backup "/bin/echo passive > /var/run/rcron/state" 
notify_master "/bin/echo active > /var/run/rcron/state" 
notify_fault "/bin/echo passive > /var/run/rcron/state"
}

Für den Sicherungsknoten:

# vi /etc/keepalived/keepalived.conf
vrrp_instance VI_1 {
state BACKUP 
interface eth0 
lvs_sync_daemon_inteface eth0
virtual_router_id 31
priority 100 
advert_int 5 
vrrp_unicast_bind 172.16.243.145 
vrrp_unicast_peer 172.16.243.144
authentication { 
auth_type PASS 
auth_pass 1111
}
notify_backup "/bin/echo passive > /var/run/rcron/state" 
notify_master "/bin/echo active > /var/run/rcron/state" 
notify_fault "/bin/echo passive > /var/run/rcron/state"
}

Wobei „172.16.243.145“ und „172.16.243.144“ die IP-Adresse von Linux-Rechnern sind.

Schritt 9 :Beispiel-Crontab-Eintrag auf Master und Slave erstellen.

* * * * * /usr/local/bin/rcron --conf /etc/rcron/rcron.conf echo `date` >> /tmp/output

Starten Sie den Keepalive-Dienst auf beiden Knoten:

# service keepalived start ; chkconfig keepalived on

Hinweis :Für den Fall, dass der Keepalived-Daemon getötet wird, werden wir ein Crontab-Skript erstellen.

* * * * * * /root/keep-alive-monitor

Inhalt des Skripts:

# cat /root/keep-alive-monitor
#!/bin/sh
echo "test" >> /tmp/monitor;
ps -ef|grep -v grep|grep -i keepalived;
if [ $? -eq 0 ] ; then 
exit 0
else 
echo "passive" > /var/run/rcron/state;
/etc/init.d/keepalived restart;
fi


Linux
  1. Cron-Jobs / Automatisierte Aufgaben

  2. Fehlerbehebung bei Cron-Jobs

  3. So löschen Sie Cronjobs

  4. Verwenden Sie CRON-Jobs, um die URL zu besuchen?

  5. Wie kann ich eine Liste aller geplanten Cron-Jobs auf meinem Computer abrufen?

Pfsense Hochverfügbarkeit

Geplante Cron-Jobs

So richten Sie Redis für Hochverfügbarkeit mit Sentinel in CentOS 8 ein – Teil 2

Cron-Jobs und Crontab unter Linux erklärt

So richten Sie Cron-Jobs in cPanel ein und verwalten sie

Linux-Fehlertoleranz:Linux-Hochverfügbarkeit