Diferència entre revisions de la pàgina «ASIX/M10/UF2/A04/E2»
| Línia 124: | Línia 124: | ||
<source>vi /etc/my.cnf.d/server.cnf</source> | <source>vi /etc/my.cnf.d/server.cnf</source> | ||
Editarem la secció [galera] i la deixarem de la següent forma: | Editarem la secció [galera] i la deixarem de la següent forma: | ||
| − | <source | + | <source highlight="5,6"> |
[galera] | [galera] | ||
# Mandatory settings | # Mandatory settings | ||
Revisió del 14:09, 13 maig 2018
Contingut
Guillem Solà i Boeck (host A10BPC22)
Crear un cluster de MariaDB amb 3 nodes i 1 balançejador de càrrega
Disseny preliminar
- node1 →192.168.56.101
- node2 →192.168.56.102
- node3 →192.168.56.103
- haproxy →192.168.56.100
Requeriments
- Necessitarem tenir instal·lat el programa rsync, que és en el qual es recolza Galera per a fer la sincronització entre nodes amb
yum install rsync -y - Farem servir un script simple per a fer la configuració de la xarxa: adreça IP i nom de host
NEWIP=$1 NEWHOSTNAME=$2 rm -f /etc/udev/rules.d/70-persistent-net.rules cat > /etc/sysconfig/network-scripts/ifcfg-enp0s8 <<DELIMIT DEVICE=enp0s8 ONBOOT=yes BOOTPROTO=static IPADDR=$NEWIP DELIMIT cat > /etc/sysconfig/network <<DELIMIT NETWORKING=yes HOSTNAME=$NEWHOSTNAME DELIMIT cat > /etc/hostname <<DELIMIT $NEWHOSTNAME DELIMIT
- Necessitarem instal·lar MariaDB 10.x ja que incorpora el sistema Galera que permet muntatge de clústers. Com que CentOS 7 inclou per defecte el repositori per a MariaDB 5, haurem d'afegir manualment el repositori de la versió 10 com s'indica a la pàgina oficial.
- OPCIONAL: podem optar per instal·lar les network-tools i l'editor de text nano si ens hi sentim més còmodes. Encara que hi ha l'editor vi per defecte i també tenim la comanda
ip aper a saber l'adreça IP d'aquella màquina en cas de necessitar-ho.
Creació i configuració del cluster
Una vegada acomplerts els requeriments, actualitzarem el sistema amb yum update -y i instal·larem MariaDB 10.x amb yum install MariaDB (parar atenció amb les majúscules, perquè sinó, instal·larem la versió 5).
Mentre s'instal·la, aprofitant que podem obrir vàries connexions SSH, podem desactivar el SELinux per a evitar problemes per culpa de permisos: posarem disabled a la línia 6 de l'arxiu.
vi /etc/selinux/config
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
També desactivarem el firewalld amb systemctl disable firewalld i així ens estalviem d'obrir ports.
Així doncs, quan estigui tot a punt, podem reiniciar la màquina perquè s'apliquin els canvis del SeLinux i el Firewall.
Un cop reiniciat, posarem a punt el servei MariaDB amb la comanda mysql_secure_installation i escollirem les opcions adequades:
[root@node1 ~]# mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n
... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Després aturarem el servei systemctl stop mariadb per a poder editar sense problemes l'arxiu de configuració per a, més endavant, poder posar en marxa el cluster.
vi /etc/my.cnf.d/server.cnf
Editarem la secció [galera] i la deixarem de la següent forma:
[galera] # Mandatory settings wsrep_on=ON wsrep_cluster_address=gcomm://192.168.56.101,192.168.56.102,192.168.56.103 wsrep_node_address=192.168.56.101 wsrep_node_incoming_address=192.168.56.101 # wsrep_sst_donor = binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 innodb_buffer_pool_size=122M wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_name="m10cluster" wsrep_slave_threads=1 wsrep_certify_nonPK=1 wsrep_max_ws_rows=0 wsrep_max_ws_size=2147483647 wsrep_debug=0 wsrep_convert_LOCK_to_trx=0 wsrep_retry_autocommit=1 wsrep_auto_increment_control=1 wsrep_drupal_282555_workaround=0 wsrep_causal_reads=0 wsrep_notify_cmd= # # Allow server to accept connections on all interfaces. # bind-address=0.0.0.0 # # Optional setting wsrep_slave_threads=1 innodb_flush_log_at_trx_commit=0
Les línies marcades (5 i 6) són les que s'han de modificar i posar l'adreça IP del node que estem configurant.
Ara ja podem agafar aquesta màquina virtual, apagar-la i fer-ne 2 clons per als altres 2 nodes.
Una vegada clonades 2 màquines més, haurem d'engegar-les una per una perquè no hi hagi conflicte de IPs i executarem l'script d'abans per a configurar el hostname i l'adreça que li pertoqui. També haurem d'editar l'arxiu /etc/mysql.cnf.d/server.cnf per a adaptar l'adreça del node a la que correspongui.
Creació i configuració del cluster
El primer que farem serà la instal·lació de MariaDB versió 10, engegar el servei amb systemctl start mariadb i executar mysql_secure_installation. Una vegada posat a punt, aturarem el servei systemctl stop mariadb per a configurar l'arxiu /etc/my.cnf.d/server.cnf i deixarem la secció [galera] de la següent manera:
[galera] # Mandatory settings wsrep_on=ON wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.56.200,192.168.56.201,192.168.56.202" binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 # # Allow server to accept connections on all interfaces. # bind-address=0.0.0.0 wsrep_cluster_name="ClusterM10" wsrep_node_address="192.168.56.200" wsrep_sst_method=rsync
Una vegada configurat l'arxiu, apagarem la màquina i farem els 2 clons per a node2 i node3: engegarem les màquines una per una i configurarem