Jump to contentJump to page navigation: previous page [access key p]/next page [access key n]
Aplica-se a SUSE Enterprise Storage 5

13 Exportar o CephFS via Samba

Esta seção descreve como exportar o CephFS por meio de um compartilhamento Samba/CIFS. É possível usar compartilhamentos Samba com clientes Windows*.

Atenção
Atenção: Technology Preview

A partir do SUSE Enterprise Storage 5, a exportação de compartilhamentos Samba é considerada uma versão Technology Preview e não é suportada.

13.1 Exemplo de instalação

A exportação do CephFS é uma versão Technology Preview e não é suportada. Para exportar um compartilhamento Samba, você precisa instalar manualmente o Samba em um nó de cluster e configurá-lo. É possível fornecer a funcionalidade de failover com o CTDB e a SUSE Linux Enterprise High Availability Extension.

  1. Verifique se já existe um CephFS em execução no cluster. Para obter os detalhes, consulte o Capítulo 11, Instalação do CephFS.

  2. Crie um chaveiro específico do Gateway do Samba no master Salt e copie-o para o nó do gateway do 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/

    Substitua SAMBA_NODE pelo nome do nó do gateway do Samba.

  3. As etapas a seguir são executadas no nó do gateway do Samba. Instale o daemon do Samba no nó do gateway do Samba:

    root # zypper in samba samba-ceph
  4. Edite o /etc/samba/smb.conf e adicione a seguinte seção:

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

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

13.2 Configuração de alta disponibilidade

Esta seção apresenta um exemplo de como definir uma configuração de dois nós de alta disponibilidade dos servidores Samba. A configuração requer a SUSE Linux Enterprise High Availability Extension. Os dois nós são denominados earth (192.168.1.1) e mars (192.168.1.2).

Para obter detalhes sobre a SUSE Linux Enterprise High Availability Extension, consulte https://www.suse.com/documentation/sle-ha-12/.

Além disso, dois endereços IP virtuais flutuantes permitem aos clientes se conectarem ao serviço independentemente do nó físico no qual está sendo executado. 192.168.1.10 é usado para administração do cluster com Hawk2, e 192.168.2.1 é usado exclusivamente para exportações CIFS. Isso facilita aplicar as restrições de segurança mais tarde.

O procedimento a seguir descreve a instalação de exemplo. Mais detalhes podem ser encontrados em https://www.suse.com/documentation/sle-ha-12/install-quick/data/install-quick.html.

  1. Crie um chaveiro específico do Gateway do Samba no master Salt e copie-o para os dois nós:

    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 o earth e o mars para hospedar o serviço do Samba:

    1. Verifique se os seguintes pacotes estão instalados antes de continuar: ctdb, tdb-tools e samba (necessário para os recursos smb e nmb).

      root # zypper in ctdb tdb-tools samba samba-ceph
    2. Verifique se os serviços ctdb, smb e nmb estão parados e desabilitados:

      root # systemctl disable ctdb
      root # systemctl disable smb
      root # systemctl disable nmb
      root # systemctl stop smb
      root # systemctl stop nmb
    3. Abra a porta 4379 do seu firewall em todos os nós. Isso é necessário para o CTDB se comunicar com outros nós do cluster.

    4. Crie um diretório para o bloqueio do CTDB no sistema de arquivos compartilhado:

      root # mkdir -p /srv/samba/
  3. No earth, crie os arquivos de configuração para o Samba. Mais tarde, eles serão sincronizados automaticamente com o mars.

    1. Em /etc/ctdb/nodes, insira todos os nós que contêm todos os endereços IP privados de cada nó no cluster:

      192.168.1.1
      192.168.1.2
    2. Configure o Samba. Adicione as seguintes linhas à seção [global] do /etc/samba/smb.conf. Use o nome de host de sua escolha em vez de "CTDB-SERVER" (todos os nós no cluster aparecerão como um nó grande com esse nome, efetivamente):

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

      Para obter detalhes sobre o csync2, consulte https://www.suse.com/documentation/sle-ha-12/singlehtml/book_sleha/book_sleha.html#pro.ha.installation.setup.csync2.start.

  4. Instale e inicialize o cluster da SUSE Linux Enterprise High Availability.

    1. Registre a SUSE Linux Enterprise High Availability Extension no earth e no mars.

      root@earth # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
      root@mars # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
    2. Instale o ha-cluster-bootstrap nos dois nós:

      root@earth # zypper in ha-cluster-bootstrap
      root@mars # zypper in ha-cluster-bootstrap
    3. Inicialize o cluster no earth:

      root@earth # ha-cluster-init
    4. Permita que o mars ingresse no cluster:

      root@mars # ha-cluster-join -c earth
  5. Verifique o status do cluster. Você deve ver dois nós adicionados ao cluster:

    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. Execute os seguintes comandos no earth para configurar o 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

    O binário /usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper na opção de configuração ctdb_recovery_lock tem os parâmetros CLUSTER_NAME CEPHX_USER CEPH_POOL CEPHX_USER, nessa ordem.

  7. Adicione um endereço IP em cluster:

    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

    Se unique_clone_address for definido como true, o agente de recurso IPaddr2 adicionará um ID de clone ao endereço especificado, resultando em três endereços IP diferentes. Geralmente, eles não são necessários, mas ajudam no equilíbrio de carga. Para obter mais informações sobre este tópico, consulte https://www.suse.com/documentation/sle-ha-12/book_sleha/data/cha_ha_lb.html.

  8. Verifique o 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. Faça o teste de uma máquina cliente. Em um cliente Linux, execute o seguinte comando para ver se você pode copiar arquivos do sistema e para o sistema:

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