GlusterFS en máquinas virtuales de Azure de Red Hat Enterprise Linux para SAP NetWeaver

En este artículo se describe cómo implementar y configurar las máquinas virtuales y cómo instalar el clúster de GlusterFS que se puede usar para almacenar los datos compartidos de un sistema SAP con alta disponibilidad. En esta guía se describe cómo configurar un clúster de GlusterFS que se usa en dos sistemas SAP: NW1 y NW2. En los nombres de los recursos (por ejemplo, máquinas virtuales o redes virtuales) del ejemplo se da por supuesto que ha usado la plantilla del servidor de archivos de SAP con el prefijo de recursos glust.

Lea primero las notas y los documentos de SAP siguientes:

Información general

Para lograr alta disponibilidad, SAP NetWeaver requiere almacenamiento compartido. GlusterFS está configurado en un clúster distinto y lo pueden usar varios sistemas SAP.

Información general sobre la alta disponibilidad de SAP NetWeaver

Configuración de GlusterFS

Puede usar una plantilla de Azure de GitHub para implementar todos los recursos de Azure necesarios, como máquinas virtuales, conjuntos de disponibilidad e interfaces de red, o puede implementar los recursos manualmente.

Implementación de Linux mediante una plantilla de Azure

Azure Marketplace contiene una imagen de Red Hat Enterprise Linux que puede usar para implementar nuevas máquinas virtuales. Para implementar todos los recursos necesarios, puede usar una de las plantillas de inicio rápido de GitHub. La plantilla implementa las máquinas virtuales y el conjunto de disponibilidad, entre otros. Siga estos pasos para implementar la plantilla:

  1. Abra la plantilla del servidor de archivos SAP en Azure Portal
  2. Escriba los siguientes parámetros:
    1. Prefijo de recurso
      Escriba el prefijo que desea usar. El valor se usa como prefijo de los recursos que se implementan.
    2. Número de sistemas SAP: escriba el número de sistemas SAP que usarán este servidor de archivos. Esta acción implementará el número necesario de discos, entre otras cosas.
    3. Tipo de sistema operativo
      Seleccione una de las distribuciones de Linux. En este ejemplo, seleccione RHEL 7.
    4. Nombre de usuario administrador, contraseña del administrador o clave SSH
      Se crea un usuario nuevo que se puede usar para iniciar sesión en la máquina.
    5. Identificador de subred
      Si quiere implementar la máquina virtual en una red virtual existente en la que tiene una subred definida a la que se debe asignar la máquina virtual, asigne un nombre al identificador de esa subred específica. El identificador suele tener este aspecto: /subscriptions/ <id. de suscripción> /resourceGroups/ <nombre del grupo de recursos> /providers/Microsoft.Network/virtualNetworks/ <nombre de red virtual> /subnets/ <nombre de subred>

Implementación manual de Linux mediante Azure Portal

En primer lugar, debe crear las máquinas virtuales de este clúster. Después, creará un equilibrador de carga y usará las máquinas virtuales de los grupos de servidores back-end. Se recomienda que sea un equilibrador de carga estándar.

  1. Creación de un grupo de recursos
  2. Creación de una red virtual
  3. Creación de un conjunto de disponibilidad
    Establecimiento del dominio máximo de actualización
  4. Creación de la máquina virtual 1
    Use al menos RHEL 7; en este ejemplo se usó la imagen de Red Hat Enterprise Linux 7.4. https://portal.azure.com/#create/RedHat.RedHatEnterpriseLinux74-ARM
    Seleccione el conjunto de disponibilidad creado anteriormente.
  5. Creación de la máquina virtual 2
    Use al menos RHEL 7; en este ejemplo se usó la imagen de Red Hat Enterprise Linux 7.4. https://portal.azure.com/#create/RedHat.RedHatEnterpriseLinux74-ARM
    Seleccione el conjunto de disponibilidad creado anteriormente.
  6. Agregue un disco de datos por cada sistema SAP a ambas máquinas virtuales.

Configuración de GlusterFS

Los elementos siguientes tienen el prefijo [A]: aplicable a todos los nodos; [1]: aplicable solo al nodo 1; [2]: aplicable solo al nodo 2 o [3]: aplicable solo al nodo 3.

  1. [A] Configure la resolución nombres de host

    Puede usar un servidor DNS o modificar /etc/hosts en todos los nodos. En este ejemplo se muestra cómo utilizar el archivo /etc/hosts. Reemplace la dirección IP y el nombre de host en los siguientes comandos

    sudo vi /etc/hosts
    

    Inserte las siguientes líneas en /etc/hosts. Cambie la dirección IP y el nombre de host para que coincida con su entorno

    # IP addresses of the Gluster nodes
    10.0.0.40 glust-0
    10.0.0.41 glust-1
    10.0.0.42 glust-2
    
  2. [A] Registro

    Registre las máquinas virtuales y asócielas a un grupo que contenga repositorios para RHEL 7 y GlusterFS

    sudo subscription-manager register
    sudo subscription-manager attach --pool=<pool id>
    
  3. [A] Habilitación de los repositorios de GlusterFS

    Para instalar los paquetes necesarios, habilite los siguientes repositorios.

    sudo subscription-manager repos --disable "*"
    sudo subscription-manager repos --enable=rhel-7-server-rpms
    sudo subscription-manager repos --enable=rh-gluster-3-for-rhel-7-server-rpms
    
  4. [A] Instalación de los paquetes de GlusterFS

    Instale estos paquetes en todos los nodos de GlusterFS

    sudo yum -y install redhat-storage-server
    

    Reinicie los nodos después de la instalación.

  5. [A] Modificación de las reglas de firewall

    Agregue reglas de firewall para permitir el tráfico de cliente a los nodos de GlusterFS.

    # list the available zones
    firewall-cmd --get-active-zones
    
    sudo firewall-cmd --zone=public --add-service=glusterfs --permanent
    sudo firewall-cmd --zone=public --add-service=glusterfs
    
  6. [A] Habilitación e inicio del servicio de GlusterFS

    Inicie el servicio de GlusterFS en todos los nodos.

    sudo systemctl start glusterd
    sudo systemctl enable glusterd
    
  7. [1] Creación de un GlusterFS

    Ejecute los siguientes comandos para crear el clúster de GlusterFS

    sudo gluster peer probe glust-1
    sudo gluster peer probe glust-2
    
    # Check gluster peer status
    sudo gluster peer status
    
    # Number of Peers: 2
    # 
    # Hostname: glust-1
    # Uuid: 10d43840-fee4-4120-bf5a-de9c393964cd
    # State: Accepted peer request (Connected)
    # 
    # Hostname: glust-2
    # Uuid: 9e340385-12fe-495e-ab0f-4f851b588cba
    # State: Accepted peer request (Connected)
    
  8. [2] Prueba del estado del mismo nivel

    Compruebe el estado del mismo nivel en el segundo nodo

    sudo gluster peer status
    # Number of Peers: 2
    #
    # Hostname: glust-0
    # Uuid: 6bc6927b-7ee2-461b-ad04-da123124d6bd
    # State: Peer in Cluster (Connected)
    #
    # Hostname: glust-2
    # Uuid: 9e340385-12fe-495e-ab0f-4f851b588cba
    # State: Peer in Cluster (Connected)
    
  9. [3] Prueba del estado del mismo nivel

    Compruebe el estado del mismo nivel en el tercer nodo

    sudo gluster peer status
    # Number of Peers: 2
    #
    # Hostname: glust-0
    # Uuid: 6bc6927b-7ee2-461b-ad04-da123124d6bd
    # State: Peer in Cluster (Connected)
    #
    # Hostname: glust-1
    # Uuid: 10d43840-fee4-4120-bf5a-de9c393964cd
    # State: Peer in Cluster (Connected)
    
  10. [A] Creación de LVM

    En este ejemplo, el GlusterFS se usa en dos sistemas SAP: NW1 y NW2. Use los siguientes comandos para crear configuraciones de LVM para estos sistemas SAP.

    Use estos comandos para el sistema NW1

    sudo pvcreate --dataalignment 1024K /dev/disk/azure/scsi1/lun0
    sudo pvscan
    sudo vgcreate --physicalextentsize 256K rhgs-NW1 /dev/disk/azure/scsi1/lun0
    sudo vgscan
    sudo lvcreate -l 50%FREE -n rhgs-NW1/sapmnt
    sudo lvcreate -l 20%FREE -n rhgs-NW1/trans
    sudo lvcreate -l 10%FREE -n rhgs-NW1/sys
    sudo lvcreate -l 50%FREE -n rhgs-NW1/ascs
    sudo lvcreate -l 100%FREE -n rhgs-NW1/aers
    sudo lvscan
    
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/sapmnt
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/trans
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/sys
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/ascs
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW1/aers
    
    sudo mkdir -p /rhs/NW1/sapmnt
    sudo mkdir -p /rhs/NW1/trans
    sudo mkdir -p /rhs/NW1/sys
    sudo mkdir -p /rhs/NW1/ascs
    sudo mkdir -p /rhs/NW1/aers
    
    sudo chattr +i /rhs/NW1/sapmnt
    sudo chattr +i /rhs/NW1/trans
    sudo chattr +i /rhs/NW1/sys
    sudo chattr +i /rhs/NW1/ascs
    sudo chattr +i /rhs/NW1/aers
    
    echo -e "/dev/rhgs-NW1/sapmnt\t/rhs/NW1/sapmnt\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/trans\t/rhs/NW1/trans\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/sys\t/rhs/NW1/sys\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/ascs\t/rhs/NW1/ascs\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW1/aers\t/rhs/NW1/aers\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    sudo mount -a
    

    Use estos comandos para el sistema NW2

    sudo pvcreate --dataalignment 1024K /dev/disk/azure/scsi1/lun1
    sudo pvscan
    sudo vgcreate --physicalextentsize 256K rhgs-NW2 /dev/disk/azure/scsi1/lun1
    sudo vgscan
    sudo lvcreate -l 50%FREE -n rhgs-NW2/sapmnt
    sudo lvcreate -l 20%FREE -n rhgs-NW2/trans
    sudo lvcreate -l 10%FREE -n rhgs-NW2/sys
    sudo lvcreate -l 50%FREE -n rhgs-NW2/ascs
    sudo lvcreate -l 100%FREE -n rhgs-NW2/aers
    
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/sapmnt
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/trans
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/sys
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/ascs
    sudo mkfs.xfs -f -K -i size=512 -n size=8192 /dev/rhgs-NW2/aers
    
    sudo mkdir -p /rhs/NW2/sapmnt
    sudo mkdir -p /rhs/NW2/trans
    sudo mkdir -p /rhs/NW2/sys
    sudo mkdir -p /rhs/NW2/ascs
    sudo mkdir -p /rhs/NW2/aers
    
    sudo chattr +i /rhs/NW2/sapmnt
    sudo chattr +i /rhs/NW2/trans
    sudo chattr +i /rhs/NW2/sys
    sudo chattr +i /rhs/NW2/ascs
    sudo chattr +i /rhs/NW2/aers
    sudo lvscan
    
    echo -e "/dev/rhgs-NW2/sapmnt\t/rhs/NW2/sapmnt\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/trans\t/rhs/NW2/trans\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/sys\t/rhs/NW2/sys\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/ascs\t/rhs/NW2/ascs\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    echo -e "/dev/rhgs-NW2/aers\t/rhs/NW2/aers\txfs\tdefaults,inode64,nobarrier,noatime,nouuid 0 2" | sudo tee -a /etc/fstab
    sudo mount -a
    
  11. [1] Creación del volumen distribuido

    Use los siguientes comandos para crear el volumen de GlusterFS para el sistema NW1 e inícielo.

    sudo gluster vol create NW1-sapmnt replica 3 glust-0:/rhs/NW1/sapmnt glust-1:/rhs/NW1/sapmnt glust-2:/rhs/NW1/sapmnt force
    sudo gluster vol create NW1-trans replica 3 glust-0:/rhs/NW1/trans glust-1:/rhs/NW1/trans glust-2:/rhs/NW1/trans force
    sudo gluster vol create NW1-sys replica 3 glust-0:/rhs/NW1/sys glust-1:/rhs/NW1/sys glust-2:/rhs/NW1/sys force
    sudo gluster vol create NW1-ascs replica 3 glust-0:/rhs/NW1/ascs glust-1:/rhs/NW1/ascs glust-2:/rhs/NW1/ascs force
    sudo gluster vol create NW1-aers replica 3 glust-0:/rhs/NW1/aers glust-1:/rhs/NW1/aers glust-2:/rhs/NW1/aers force
    
    sudo gluster volume start NW1-sapmnt
    sudo gluster volume start NW1-trans
    sudo gluster volume start NW1-sys
    sudo gluster volume start NW1-ascs
    sudo gluster volume start NW1-aers
    

    Use los siguientes comandos para crear el volumen de GlusterFS para el sistema NW2 e inícielo.

    sudo gluster vol create NW2-sapmnt replica 3 glust-0:/rhs/NW2/sapmnt glust-1:/rhs/NW2/sapmnt glust-2:/rhs/NW2/sapmnt force
    sudo gluster vol create NW2-trans replica 3 glust-0:/rhs/NW2/trans glust-1:/rhs/NW2/trans glust-2:/rhs/NW2/trans force
    sudo gluster vol create NW2-sys replica 3 glust-0:/rhs/NW2/sys glust-1:/rhs/NW2/sys glust-2:/rhs/NW2/sys force
    sudo gluster vol create NW2-ascs replica 3 glust-0:/rhs/NW2/ascs glust-1:/rhs/NW2/ascs glust-2:/rhs/NW2/ascs force
    sudo gluster vol create NW2-aers replica 3 glust-0:/rhs/NW2/aers glust-1:/rhs/NW2/aers glust-2:/rhs/NW2/aers force
    
    sudo gluster volume start NW2-sapmnt
    sudo gluster volume start NW2-trans
    sudo gluster volume start NW2-sys
    sudo gluster volume start NW2-ascs
    sudo gluster volume start NW2-aers
    

Pasos siguientes