====== PCS COROSYNC PACEMAKER ======
Realizzare un cluster di failover con raspbian è diverso che con pidora\\
Infatti mentre che con le distro basate su RHEL si riesce ad usare il comando pcs per autenticare i nodi e creare il cluster, con raspbian bisogna modificare a mano il file di corosync.\\
comunque occorre effettuare i seguenti passaggi:\\
apt-get install pcs corosync pacemaker
modificare il file hosts e specificare gli ip dei nodi:\\
192.168.x.x nodo1
192.168.x.x nodo2
e commentare la seguente riga:\\
#127.0.1.1 nodox
poi eseguire comunque\\
pcs cluster auth nodo1 nodo2
il cui esito va a buon fine\\
poi invece di eseguire il comando di creazione del cluster (pcs cluster setup --name nomecluster nodo1 nodo2) \\
vado a modificare il file corosync.conf nel seguente modo
compatibility: whitetank
aisexec {
user: root
group: root
}
totem {
version: 2
secauth: on
threads: 0
rrp_mode: active
cluster_name: clstte
token: 10000
token_retransmits_before_loss_const: 10
clear_node_high_bit: yes
crypto_cipher: none
crypto_hash: none
transport: udpu
interface {
ringnumber: 0
bindnetaddr: 192.168.1.0
mcastport: 5405
ttl: 1
member {
memberaddr: 192.168.1.78 (ra1)
}
member {
memberaddr: 192.168.1.82 (ra2)
}
}
}
logging {
fileline: off
to_stderr: no
to_logfile: yes
to_syslog: yes
syslog_facility: daemon
debug: off
timestamp: on
logger_subsys {
subsys: AMF
debug: off
}
}
quorum {
provider: corosync_votequorum
expected_votes: 2
two_node: 1
}
Dovrò poi valutare di fare altri test con altri parametri del file corosync.conf specificati nel sito di clusterlabs.org nella sezione dedicata a ubuntu.\\
Riavviare quindi tutti e due i nodi e verificare con crm_mon\\
==== DRBD ====
Preparare i dispositivi drbd ridondanti. Su Raspbian è diverso da Centos. Ci sono discordanze tra il modulo del kernel e le utils per la gestione delle risporse (drbdadm).\\
Infatti ho netato che se anche io vado a impostare nei file .res la voce che dice di avviarsi come primary, le risporse rimangono ugualmente secondary.\\
Quindi per impostare le risorse su primary bisogna farlo fare a pacemaker:\\
Si disabilita all'avvio il servizio drbd.\\
systemctl disable drbd.service\\
infatti anche se si disabilita il servizio. il modulo viene caricato ugualmente. se si esegue \\
cat /proc/drbd
si noterà che drbd è prondo per ricevere ordini per attivare e gestire le risorse. Facciamolo fare a pacemaker.\\
pcs resource create r_drbd0 ocf:linbit:drbd drbd_resource=r0 op monitor interval=10s
poi definiamo i dual primary\\
pcs resource master rm_drbd0 r_drbd0 master-max=2 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
oppure un master ed uno slave\\
pcs resource master rm_drbd0 r_drbd0 master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
questi comandi dovranno essere dati solo dopo le tre direttive principali:\\
pcs property set stonith-enabled=false
pcs property set no-quorum-policy=ignore
pcs property set default-resource-stickiness=INFINITY
==== file system ====
per attivare il file system. Naturalmente dopo averlo formattato in ext4\\
pcs resource create fs_mmweb Filesystem device="/dev/drbd0" directory="/var/lib/mysql" fstype="ext4"
==== db ====
In modo simile a drbd per poter far prendere correttamente in carico a pacemaker il servizio di mariadb. dobbiamo effettuare alcune operazioni preliminari, ovvero disabilitare all'avvio i demoni di MySQL.\\
mv /etc/init.d/MySQL /root
poi\\
mv /etc/rc3.d/S01mysql /etc/rc3.d/K01mysql
mv /etc/rc3.d/S01mysql /etc/rc4.d/K01mysql
accertarsi di aver disabilitato all'avvio il servizio\\
systemctl disable mariadb.service
ed infine creare la risorsa\\
pcs resource create srv_maria ocf:heartbeat:mysql binary="/usr/bin/mysqld_safe" config="/etc/mysql/my.cnf" datadir="/var/lib/mysql" pid="/var/lib/mysql/mysql.pid" socket="/var/run/mysqld/mysqld.sock" additional_parameters="--bind-address=0.0.0.0" op start timeout=60s op stop timeout="60s" op monitor interval=20s timeout=30s
==== postfix ====
oltre ai pacchetti installati da postfixadmin installare anche\\
apt-get install sasl2-bin
creare l'utente vmail\\
useradd -d /var/lib/mysql/vmail
assegnare i diritti necessari per lavorare sulla directory, ma questo sarebbe sufficiente farlo da uno dei due nodi con la risorsa filesystem attiva.\\
chown vmail:vmail /var/lib/mysql/vmail
chmod 0-xr /var/lib/mysql/vmail
a questo punto andiamo direttamente a copiare su entrambi i nodi la configurazione del main.cf\\
smtpd_banner = $myhostname ESMTP $mail_name (Raspbian)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = str2
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, stefanostrozzi.it, str2, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
virtual_alias_maps = proxy:mysql:/etc/postfix/sql/virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:$config_directory/sql/virtual_mailbox_maps.cf
virtual_mailbox_base = /var/lib/mysql/vmail
virtual_minimum_uid = 1001
virtual_transport = virtual
virtual_uid_maps = static:1001
virtual_gid_maps = static:1001
e i vari file mappa che andranno posizionati come specificato qui sopra nel file main.cf\\
hosts = localhost
dbname = postfixadmin
user = postfixadmin
password = passworddipostfixadmin
query = SELECT goto FROM aliases WHERE address='%s' AND active = 1
hosts = localhost
dbname = postfixadmin
user = postfixadmin
password = passworddipostfixadmin
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '0' AND active = 1
hosts = localhost
dbname = postfixadmin
user = postfixadmin
password = passworddipostfixadmin
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = 1
ora proviamo a creare la risorsa postfix con pacemaker\\
==== risorsa IP ====
pcs resource create clstIP IPaddr2 ip=192.168.1.2 cidr_netmask=24
==== risorsa gruppo ====
pcs resource Group add g_clst r_tgt r_lun clstIP
==== servizio apache ====
pcs resource create srv_web ocf:heartbeat:apache configfile=/etc/apache2/apache2.conf statusurl="http://localhost/server-status" op monitor interval=1min