Saltar a contenidoSaltar a navegación de páginas: página anterior [tecla acceso p]/página siguiente [tecla acceso n]
Se aplica a SUSE Enterprise Storage 5

13 Exportación de CephFS mediante Samba

Esta sección describe cómo exportar CephFS mediante un recurso compartido de Samba/CIFS. Los recursos compartidos de Samba se pueden utilizar con clientes de Windows*.

Aviso
Aviso: tecnología en fase preliminar

A partir de SUSE Enterprise Storage 5, la exportación de recursos compartidos de Samba se considera una tecnología en fase preliminar y no se admite.

13.1 Instalación de ejemplo

La exportación de CephFS es una tecnología en fase preliminar y no se admite. Para exportar un recurso compartido de Samba, deberá instalar manualmente Samba en un nodo de clúster y configurarlo. Es posible proporcionar funcionalidad de failover con CTDB y SUSE Linux Enterprise High Availability Extension.

  1. Asegúrese de que ya existe una instancia de CephFS en funcionamiento en el clúster. Para obtener información, consulte: Capítulo 11, Instalación de CephFS.

  2. Cree un anillo de claves específico de la pasarela de Samba en el master de Salt y cópielo en el nodo de pasarela de Samba:

    root@master # ceph auth get-or-create client.samba.gw mon 'allow r' \
        osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    root@master # scp ceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/

    Sustituya SAMBA_NODE con el nombre del nodo de pasarela de Samba.

  3. Los siguientes pasos se ejecutan en el nodo de pasarela de Samba. Instale el daemon de Samba en el nodo de pasarela de Samba:

    root # zypper in samba samba-ceph
  4. Edite el archivo /etc/samba/smb.conf y añada la sección siguiente:

    [SHARE_NAME]
            path = /
            vfs objects = ceph
            ceph:config_file = /etc/ceph/ceph.conf
            ceph: user_id = samba.gw
            read only = no
  5. Inicie y habilite el daemon de Samba:

    root # systemctl start smb.service
    root # systemctl enable smb.service
    root # systemctl start nmb.service
    root # systemctl enable nmb.service

13.2 Configuración de alta disponibilidad

En esta sección se proporciona un ejemplo de cómo establecer una configuración de dos nodos de alta disponibilidad de los servidores de Samba. La configuración requiere SUSE Linux Enterprise High Availability Extension. Los dos nodos se denominan earth (192.168.1.1) y mars (192.168.1.2).

Para obtener información sobre SUSE Linux Enterprise High Availability Extension, consulte https://www.suse.com/documentation/sle-ha-12/.

Asimismo, dos direcciones IP virtuales flotantes permiten a los clientes conectarse al servicio independientemente del nodo físico en el que se estén ejecutando. 192.168.1.10 se usa para la administración del clúster con Hawk2 y 192.168.2.1 se usa exclusivamente para las exportaciones CIFS. De esta forma es más fácil aplicar más tarde restricciones de seguridad.

El procedimiento siguiente describe la instalación de ejemplo. Encontrará más información en https://www.suse.com/documentation/sle-ha-12/install-quick/data/install-quick.html.

  1. Cree un anillo de claves específico de la pasarela de Samba en el master de Salt y cópielo en ambos nodos:

    root@master # ceph auth get-or-create client.samba.gw mon 'allow r' \
        osd 'allow *' mds 'allow *' -o ceph.client.samba.gw.keyring
    root@master # scp ceph.client.samba.gw.keyring earth:/etc/ceph/
    root@master # scp ceph.client.samba.gw.keyring mars:/etc/ceph/
  2. Prepare earth y mars para que alojen el servicio de Samba:

    1. Asegúrese de que los paquetes siguientes están instalados antes de continuar: ctdb, tdb-toolsy samba (se necesitan para los recursos smb y nmb).

      root # zypper in ctdb tdb-tools samba samba-ceph
    2. Asegúrese de que los servicios ctdb, smb y nmb están detenidos e inhabilitados:

      root # systemctl disable ctdb
      root # systemctl disable smb
      root # systemctl disable nmb
      root # systemctl stop smb
      root # systemctl stop nmb
    3. Abra el puerto 4379 del cortafuegos en todos los nodos. Esto es necesario para que CTDB pueda comunicarse con los demás nodos del clúster.

    4. Cree un directorio para el bloqueo CTDB en el sistema de archivos compartido:

      root # mkdir -p /srv/samba/
  3. En earth, cree los archivos de configuración de Samba. Más adelante, se sincronizarán automáticamente con mars.

    1. En /etc/ctdb/nodes, inserte todos los nodos que contienen todas las direcciones IP privadas de cada nodo del clúster:

      192.168.1.1
      192.168.1.2
    2. Configure Samba. Añada las líneas siguientes en la sección [global] de /etc/samba/smb.conf. Utilice el nombre de host que desee en lugar de "CTDB-SERVER" (en realidad, todos los nodos del clúster aparecerán como un nodo extenso con este nombre):

      [global]
          netbios name = CTDB-SERVER
          clustering = yes
          idmap config * : backend = tdb2
          passdb backend = tdbsam
          ctdbd socket = /var/lib/ctdb/ctdb.socket

      Para obtener más información sobre csync2, consulte https://www.suse.com/documentation/sle-ha-12/singlehtml/book_sleha/book_sleha.html#pro.ha.installation.setup.csync2.start.

  4. Instale y cargue el clúster de SUSE Linux Enterprise High Availability.

    1. Registre SUSE Linux Enterprise High Availability Extension en earth y mars.

      root@earth # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
      root@mars # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
    2. Instale ha-cluster-bootstrap en ambos nodos:

      root@earth # zypper in ha-cluster-bootstrap
      root@mars # zypper in ha-cluster-bootstrap
    3. Inicialice el clúster en earth:

      root@earth # ha-cluster-init
    4. Deje que mars se una al clúster:

      root@mars # ha-cluster-join -c earth
  5. Compruebe el estado del clúster. Debería observar que se han añadido dos nodos en el clúster:

    root@earth # crm status
    2 nodes configured
    1 resource configured
    
    Online: [ earth mars ]
    
    Full list of resources:
    
     admin-ip       (ocf::heartbeat:IPaddr2):       Started earth
  6. Ejecute los comandos siguientes en earth para configurar el recurso CTDB:

    root@earth # crm configure
    crm(live)configure# primitive ctdb ocf:heartbeat:CTDB params \
        ctdb_manages_winbind="false" \
        ctdb_manages_samba="false" \
        ctdb_recovery_lock="!/usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper
            ceph client.samba.gw cephfs_metadata ctdb-mutex"
        ctdb_socket="/var/lib/ctdb/ctdb.socket" \
            op monitor interval="10" timeout="20" \
            op start interval="0" timeout="90" \
            op stop interval="0" timeout="100"
    crm(live)configure# primitive nmb systemd:nmb \
        op start timeout="60" interval="0" \
        op stop timeout="60" interval="0" \
        op monitor interval="60" timeout="60"
    crm(live)configure# primitive smb systemd:smb \
        op start timeout="60" interval="0" \
        op stop timeout="60" interval="0" \
        op monitor interval="60" timeout="60"
    crm(live)configure# group g-ctdb ctdb nmb smb
    crm(live)configure# clone cl-ctdb g-ctdb meta interleave="true"
    crm(live)configure# commit

    El archivo binario /usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper de la opción de configuración ctdb_recovery_lock tiene los parámetros CLUSTER_NAME CEPHX_USER CEPH_POOL y CEPHX_USER, en este orden.

  7. Añada una dirección IP agrupada en clúster:

    crm(live)configure# primitive ip ocf:heartbeat:IPaddr2 params ip=192.168.2.1 \
        unique_clone_address="true" \
        op monitor interval="60" \
        meta resource-stickiness="0"
    crm(live)configure# clone cl-ip ip \
        meta interleave="true" clone-node-max="2" globally-unique="true"
    crm(live)configure# colocation col-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# order o-with-ctdb 0: cl-ip cl-ctdb
    crm(live)configure# commit

    Si unique_clone_address se define como true (verdadero), el agente de recurso IPaddr2 añade un ID de clonación a la dirección especificada, lo que da como resultado que haya tres direcciones IP distintas. Normalmente, no son necesarias, pero ayudan a la hora de equilibrar la carga. Para obtener más información sobre este tema, consulte https://www.suse.com/documentation/sle-ha-12/book_sleha/data/cha_ha_lb.html.

  8. Compruebe el resultado:

    root@earth # crm status
    Clone Set: base-clone [dlm]
         Started: [ factory-1 ]
         Stopped: [ factory-0 ]
     Clone Set: cl-ctdb [g-ctdb]
         Started: [ factory-1 ]
         Started: [ factory-0 ]
     Clone Set: cl-ip [ip] (unique)
         ip:0       (ocf:heartbeat:IPaddr2):       Started factory-0
         ip:1       (ocf:heartbeat:IPaddr2):       Started factory-1
  9. Realice una prueba desde un equipo cliente. En un cliente Linux, ejecute el comando siguiente para comprobar si puede copiar archivos desde el sistema y en el sistema:

    root # smbclient //192.168.2.1/myshare
Imprimir esta página