GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configurar la agrupación de servidores NFS con Pacemaker en CentOS 7/RHEL 7

NFS (Network File System) es el servidor más utilizado para proporcionar archivos a través de la red. Con el servidor NFS podemos compartir carpetas a través de la red y los clientes o sistemas autorizados pueden acceder a esas carpetas compartidas y usarlas en sus aplicaciones. Cuando se trata del entorno de producción, debemos configurar el servidor nfs en alta disponibilidad para descartar el punto único de falla.

En este artículo, discutiremos cómo podemos configurar el clúster de alta disponibilidad del servidor nfs (activo-pasivo) con pacemaker en CentOS 7 o RHEL 7

Los siguientes son los detalles de mi laboratorio que he usado para este artículo,

  • Servidor NFS 1 (nfs1.example.com) – 192.168.1.40 – CentOS 7 mínimo/RHEL 7
  • Servidor NFS 2 (nfs2.example.com) – 192.168.1.50 – CentOS 7 mínimo/RHEL 7
  • VIP del servidor NFS:192.168.1.51
  • Cortafuegos activado
  • SELinux habilitado

Consulte los pasos a continuación para configurar el clúster activo-pasivo del servidor NFS en CentOS 7/RHEL 7

Paso 1) Establezca el nombre de host en ambos servidores nfs y actualice el archivo /etc/hosts

Inicie sesión en ambos servidores nfs y configure el nombre de host como "nfs1.example.com" y "nfs2.example.com" respectivamente usando el comando hostnamectl, el ejemplo se muestra a continuación

~]# hostnamectl set-hostname "nfs1.example.com"
~]# exec bash

Actualice el archivo /etc/hosts en ambos servidores nfs,

192.168.1.40  nfs1.example.com
192.168.1.50  nfs2.example.com

Paso 2) Actualizar ambos servidores nfs e instalar paquetes pcs

Use el siguiente comando 'yum update' para aplicar todas las actualizaciones en ambos servidores nfs y luego reinicie una vez.

~]# yum update && reboot

Instale los paquetes pcs y fence-agent en ambos servidores nfs,

[[email protected] ~]# yum install -y pcs fence-agents-all
[[email protected] ~]# yum install -y pcs fence-agents-all

Una vez que los paquetes de pcs y de los agentes de esgrima estén instalados, permita los puertos relacionados con pcs en el firewall del sistema operativo desde ambos servidores nfs,

~]# firewall-cmd --permanent --add-service=high-availability
~]# firewall-cmd --reload

Ahora inicie y habilite el servicio pcsd en ambos nodos nfs usando los comandos debajo,

~]# systemctl enable pcsd
~]# systemctl start  pcsd

Paso 3) Autenticar los nodos nfs y formar un clúster

Establezca la contraseña para el usuario hacluster, el servicio pcsd utilizará este usuario para autenticar los nodos del clúster, así que primero configuremos la contraseña para el usuario hacluster en ambos nodos,

[[email protected] ~]# echo "enter_password" | passwd --stdin hacluster
[[email protected] ~]# echo "enter_password" | passwd --stdin hacluster

Ahora autentique los nodos del clúster. En nuestro caso, nfs2.example.com se autenticará en nfs1.example.com, ejecute el siguiente comando de clúster pcs en "nfs1"

[[email protected] ~]# pcs cluster auth nfs1.example.com nfs2.example.com
Username: hacluster
Password:
nfs1.example.com: Authorized
nfs2.example.com: Authorized
[[email protected] ~]#

Ahora es el momento de formar un clúster con el nombre "nfs_cluster ” y agregue ambos nodos nfs. Ejecutar debajo de "configuración de clúster de pcs ” comando desde cualquier nodo nfs,

[[email protected] ~]# pcs cluster setup --start --name nfs_cluster nfs1.example.com \
 nfs2.example.com

Habilite el servicio de clúster de PC en ambos nodos para que los nodos se unan al clúster automáticamente después de reiniciar. Ejecute el siguiente comando desde cualquiera de los nodos nfs,

[[email protected] ~]# pcs cluster enable --all
nfs1.example.com: Cluster Enabled
nfs2.example.com: Cluster Enabled
[[email protected] ~]#

Paso 4) Defina el dispositivo de cercado para cada nodo del clúster

El cercado es la parte más importante de un clúster, si alguno de los nodos falla, el dispositivo de cercado eliminará ese nodo del clúster. En Pacemaker, la esgrima se define utilizando el recurso Stonith (Dispara al otro nodo en la cabeza).

En este tutorial estamos usando un disco compartido de tamaño 1 GB (/dev/sdc) como dispositivo de vallado. Primero averigüemos la identificación del disco /dev/sdc

[[email protected] ~]# ls -l /dev/disk/by-id/

Anote la identificación del disco /dev/sdc como lo haremos en “pcs stonith ” comando.

Ahora ejecute debajo del comando "pcs stonith" desde cualquiera de los nodos para crear un dispositivo de cercado (disk_fencing)

[[email protected] ~]# pcs stonith create disk_fencing fence_scsi \ 
pcmk_host_list="nfs1.example.com nfs2.example.com" \ 
pcmk_monitor_action="metadata" pcmk_reboot_action="off" \ 
devices="/dev/disk/by-id/wwn-0x6001405e49919dad5824dc2af5fb3ca0" \ 
meta provides="unfencing"
[[email protected] ~]#

Verifique el estado de stonith usando el siguiente comando,

[[email protected] ~]# pcs stonith show
 disk_fencing   (stonith:fence_scsi):   Started nfs1.example.com
[[email protected] ~]#

Ejecute "estado de piezas Comando para ver el estado del clúster

[[email protected] ~]# pcs status
Cluster name: nfs_cluster
Stack: corosync
Current DC: nfs2.example.com (version 1.1.16-12.el7_4.7-94ff4df) \
 - partition with quorum
Last updated: Sun Mar  4 03:18:47 2018
Last change: Sun Mar  4 03:16:09 2018 by root via cibadmin on nfs1.example.com

2 nodes configured
1 resource configured
Online: [ nfs1.example.com nfs2.example.com ]
Full list of resources:
 disk_fencing   (stonith:fence_scsi):   Started nfs1.example.com
Daemon Status:
  corosync: active/enabled
  pacemaker: active/enabled
  pcsd: active/enabled
[[email protected] ~]#

Nota: Si los nodos de su clúster son máquinas virtuales y están alojados en VMware, puede usar "fence_vmware_soap ” agente de esgrima. Para configurar “fence_vmware_soap” como agente de cercado, consulte los siguientes pasos lógicos:

1) Verifique si los nodos de su clúster pueden llegar al hipervisor VMware o Vcenter

# fence_vmware_soap -a <vCenter_IP_address> -l <user_name> -p <password> \
 --ssl -z -v -o list |egrep "(nfs1.example.com|nfs2.example.com)"
or
# fence_vmware_soap -a <vCenter_IP_address> -l <user_name> -p <password> \ 
--ssl -z -o list |egrep "(nfs1.example.com|nfs2.example.com)"

si puede ver los nombres de las máquinas virtuales en la salida, está bien; de lo contrario, debe verificar por qué los nodos del clúster no pueden establecer una conexión con esxi o vcenter.

2) Defina el dispositivo de esgrima usando el siguiente comando,

# pcs stonith create vmware_fence fence_vmware_soap \ 
pcmk_host_map="node1:nfs1.example.com;node2:nfs2.example.com" \ 
ipaddr=<vCenter_IP_address> ssl=1 login=<user_name> passwd=<password>

3) verifique el estado de stonith usando el siguiente comando,

# pcs stonith show

Paso 5) Instale nfs y formatee el disco compartido nfs

Instale el paquete 'nfs-utils' en ambos servidores nfs

[[email protected] ~]# yum install nfs-utils -y
[[email protected] ~]# yum install nfs-utils -y

Detener y deshabilitar "nfs-lock local ” servicio en ambos nodos ya que este servicio será controlado por marcapasos

[[email protected] ~]# systemctl stop nfs-lock &&  systemctl disable nfs-lock
[[email protected] ~]# systemctl stop nfs-lock &&  systemctl disable nfs-lock

Supongamos que tenemos un disco compartido "/dev/sdb" de 10 GB de tamaño entre dos nodos de clúster, cree una partición en él y formatéelo como sistema de archivos xfs

[[email protected] ~]# fdisk /dev/sdb

Ejecute el comando partprobe en ambos nodos y reinicie una vez.

~]# partprobe

Ahora formatee “/dev/sdb1” como sistema de archivos xfs

[[email protected] ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=655296 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=2621184, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[[email protected] ~]#

Cree un punto de montaje para este sistema de archivos en ambos nodos,

[[email protected] ~]# mkdir /nfsshare
[[email protected] ~]# mkdir /nfsshare

Paso 6) Configure todos los recursos NFS necesarios en los nodos del clúster

Los siguientes son los recursos NFS requeridos:

  • Recurso del sistema de archivos
  • recurso de servidor nfs
  • recurso de exportación
  • Recurso de dirección IP flotante IPaddr2

Para el recurso del sistema de archivos, necesitamos un almacenamiento compartido entre los nodos del clúster, ya hemos creado una partición en el disco compartido (/dev/sdb1) en los pasos anteriores, por lo que usaremos esa partición. Use a continuación "creación de recursos de pcs ” comando para definir el recurso del sistema de archivos desde cualquiera de los nodos,

[[email protected] ~]# pcs resource create nfsshare Filesystem device=/dev/sdb1 \
  directory=/nfsshare fstype=xfs --group nfsgrp
[[email protected] ~]#

En el comando anterior hemos definido el sistema de archivos NFS como “nfsshare ” en el grupo “nfsgrp “. A partir de ahora, todos los recursos nfs se crearán bajo el grupo nfsgrp.

Cree un recurso nfsserver con el nombre 'nfsd ' usando el siguiente comando,

[[email protected] ~]# pcs resource create nfsd nfsserver \ 
nfs_shared_infodir=/nfsshare/nfsinfo --group nfsgrp
[[email protected] ~]#

Crear exportaciones recurso con el nombre “nfsroot

[[email protected] ~]#  pcs resource create nfsroot exportfs clientspec="192.168.1.0/24" options=rw,sync,no_root_squash directory=/nfsshare fsid=0 --group nfsgrp
[[email protected] ~]#

En el comando anterior, clientspec indica los clientes permitidos que pueden acceder a nfsshare

Crear NFS IPaddr2 recurso usando el siguiente comando,

[[email protected] ~]# pcs resource create nfsip IPaddr2 ip=192.168.1.51 \ 
cidr_netmask=24 --group nfsgrp
[[email protected] ~]#

Ahora vea y verifique el clúster usando el estado de pcs

[[email protected] ~]# pcs status

Una vez que haya terminado con los recursos NFS, permita los puertos del servidor nfs en el firewall del sistema operativo desde ambos servidores nfs,

~]# firewall-cmd --permanent --add-service=nfs
~]#  firewall-cmd --permanent --add-service=mountd
~]#  firewall-cmd --permanent --add-service=rpc-bind
~]#  firewall-cmd --reload

Paso 7)  Prueba a montar el recurso compartido NFS en los clientes

Ahora intente montar el recurso compartido nfs usando el comando de montaje, el ejemplo se muestra a continuación

[[email protected] ~]# mkdir /mnt/nfsshare
[[email protected] ~]# mount 192.168.1.51:/ /mnt/nfsshare/
[[email protected] ~]# df -Th /mnt/nfsshare
Filesystem     Type  Size  Used Avail Use% Mounted on
192.168.1.51:/ nfs4   10G   32M   10G   1% /mnt/nfsshare
[[email protected] ~]#
[[email protected] ~]# cd /mnt/nfsshare/
[[email protected] nfsshare]# ls
nfsinfo
[[email protected] nfsshare]#

Para las pruebas de clúster, detenga el servicio de clúster en cualquiera de los nodos y vea si se puede acceder a nfsshare o no. Supongamos que voy a detener el servicio de clúster en "nfs1.example.com"

[[email protected] ~]# pcs cluster stop
Stopping Cluster (pacemaker)...
Stopping Cluster (corosync)...
[[email protected] ~]#

Ahora vaya a la máquina del cliente y vea si todavía se puede acceder a nfsshare. En mi caso, todavía puedo acceder y crear archivos en él.

[[email protected] nfsshare]# touch test
[[email protected] nfsshare]#

Ahora habilite el servicio de clúster en "nfs1.example.com" usando el siguiente comando,

[[email protected] ~]# pcs cluster start
Starting Cluster...
[[email protected] ~]#

Eso es todo de este artículo, confirma que hemos configurado con éxito la agrupación en clústeres activo-pasivo de NFS usando marcapasos. Comparta sus opiniones y comentarios en la sección de comentarios a continuación.


Cent OS
  1. Configurar DNS en CentOS 5/RHEL 5 con chroot

  2. Cómo configurar el servidor DNS en CentOS 5 / RHEL 5

  3. Instalar y configurar el servidor FTP en CentOS 7 / RHEL 7 – (vsftpfd)

  4. Cómo configurar el servidor NFS en CentOS 7 / RHEL 7

  5. CentOS/RHEL 7:Configuración de un servidor NFS y un cliente NFS

Cómo configurar el servidor DNS (BIND) en CentOS 7 / RHEL 7

Configurar OpenLDAP con SSL en CentOS 7 / RHEL 7

Configure el servidor FreeIPA en CentOS 7 / RHEL 7:un sistema de gestión de identidad

Cómo configurar el servidor DNS (BIND) en CentOS 8 / RHEL 8

Cómo configurar el servidor VNC en CentOS/RHEL 6

Cómo instalar y configurar el servidor VNC en CentOS/RHEL 8