GNU/Linux >> Znalost Linux >  >> Linux

RCRON – Nastavení vysoké dostupnosti úloh cron

rcron je výkonný nástroj, který pomáhá systémovým administrátorům při nastavování redundance úloh cron a převzetí služeb při selhání přes skupiny počítačů. RCRON zajišťuje, že úloha nainstalovaná na několika počítačích bude spuštěna vždy pouze na aktivním.

Fungování RCRON

Vysoká dostupnost pomocí RCRON (Jeden uzel bude označen jako Aktivní a Druhý uzel bude označen jako Pasivní), Na obou bude stejná konfigurace cronu, jediný rozdíl bude aktivní/pasivní stav v souboru.

Pro automatické přepínání aktivního/pasivního stavu budeme používat KEEPALIVED Daemon, který využívá signál keepalive pro komunikaci mezi 2 uzly. Pokud po odeslání signálu není přijata žádná odpověď, předpokládá se, že spojení nefunguje.

V tomto scénáři je jeden uzel označen jako KEEPALIVED master a druhý jako KEEPALIVED backup. Hlavní uzel bude udržovat stav rcron aktivní a záložní uzel bude udržovat stav rcron pasivní. Jakmile se hlavní uzel dostane dolů, vyšle signál s prioritou 0 do záložního uzlu, který se přepne a bude se chovat jako MASTER UZEL a postupně označí rcron jako aktivní, jakmile se hlavní uzel znovu objeví, záložní uzel. přepne do záložního režimu.

Kroky instalace a konfigurace RCRON na CentOS/RHEL

V mém scénáři mám dva linuxové stroje, jeden je primární a druhý je podřízený.

Krok 1 :Povolit předávání IP na obou uzlech. Upravte soubor /etc/sysctl.conf a proveďte níže uvedenou změnu

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

Krok 2 :Přidejte úložiště EPEL na oba uzly.

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

Krok 3 :Nainstalujte potřebné balíčky na Oba uzly.

# yum install subversion byacc flex gcc

Krok 4 :Pokud získáváte internet z proxy serveru, nastavte http_proxy pro 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

Krok 5 :Pokud získáváme připojení k internetu přímo, přeskočte nastavení proxy. Stáhněte si software rcron ze SVN.

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

Krok 6 :Vytvořte adresář na obou uzlech.

# 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

Na hlavním uzlu Spustit pod příkazy :

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

Na podřízeném uzlu spusťte níže uvedené příkazy :

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

Krok 7 :Nyní nainstalujte balíček keepalive na oba uzly.

a) Stáhněte si nejnovější zdrojový tarball:

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

b) Nainstalujte balíček RPM BUILD:

# yum -y install rpm-build

c) Rozbalte tar ball a upravte soubor 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/

nahradit z verze 1.2.2 na verzi:1.2.7:

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

Příkaz výše vytvoří zkompilované RPM ze zdroje v umístění:

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

Nyní nainstalujte rpm pomocí příkazu rpm:

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

Krok 8 :NASTAVTE konfiguraci keepalved.

Pro hlavní uzel nastavte následující:

# 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"
}

Pro záložní uzel:

# 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"
}

Kde „172.16.243.145“ a „172.16.243.144“ jsou adresy IP počítačů se systémem Linux.

Krok 9 :Vytvořte ukázkový záznam crontab na masteru i slave.

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

Spusťte službu Keepalive na obou uzlech:

# service keepalived start ; chkconfig keepalived on

Poznámka :V případě, že bude démon keepalived zabit, vytvoříme skript crontab.

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

Obsah skriptu:

# 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 / Automatizované úlohy

  2. Odstraňování problémů s úlohami Cron

  3. Jak naplánovat úlohy Cron pomocí Crontab

  1. Jak odstranit úlohy cron

  2. Přidejte úlohy cron v CWP

  3. Jak mohu získat seznam všech naplánovaných úloh cron na mém počítači?

  1. Plánování úloh Cron pomocí Crontab

  2. Jak vypsat Cron Jobs v Linuxu

  3. Používáte úlohy CRON k návštěvě adresy URL?