Saltar al contenutoSaltar alla navigazione delle pagine: pagina precedente [chiave d’accesso p]/pagina successiva [chiave d’accesso n]
Si applica a SUSE Enterprise Storage 5

13 Esportazione di CephFS tramite Samba

Questa sezione descrive come esportare CephFS tramite una condivisione Samba/CIFS. Le condivisioni Samba possono essere utilizzate con client Windows*.

Avviso
Avviso: tecnologia in anteprima

A SUSE Enterprise Storage 5, l'esportazione delle condivisioni Samba è considerata un'anteprima e non è supportata.

13.1 Installazione di esempio

L'esportazione di CephFS è un'anteprima e non è supportata. Per esportare una condivisione Samba, occorre installare manualmente Samba su un nodo cluster e configurarlo. La funzionalità di failover può essere fornita con CTDB e SUSE Linux Enterprise High Availability Extension.

  1. Accertare che nel cluster sia già esistente un CephFS operativo. Per informazioni, vedere Capitolo 11, Installazione di CephFS.

  2. Creare un portachiavi gateway Samba specifico sul Salt master e copiarlo nel nodo gateway 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/

    Sostituire SAMBA_NODE con il nome del nodo gateway Samba.

  3. I passaggi seguenti vengono eseguiti sul nodo gateway Samba. Installare il daemon Samba sul nodo gateway Samba:

    root # zypper in samba samba-ceph
  4. Modificare /etc/samba/smb.conf e aggiungere la sezione seguente:

    [SHARE_NAME]
            path = /
            vfs objects = ceph
            ceph:config_file = /etc/ceph/ceph.conf
            ceph: user_id = samba.gw
            read only = no
  5. Avviare a abilitare il daemon Samba:

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

13.2 Configurazione ad alta disponibilità

Questa sezione fornisce un esempio di come configurare una configurazione ad alta disponibilità a due nodi dei server Samba. La configurazione richiede SUSE Linux Enterprise High Availability Extension. I due nodi sono denominati earth (192.168.1.1) e mars (192.168.1.2).

Per informazioni su SUSE Linux Enterprise High Availability Extension, vedere https://www.suse.com/documentation/sle-ha-12/.

Inoltre, due indirizzi IP virtuali mobili consentono ai client di connettersi al servizio indipendentemente dal nodo fisico sul quale è in esecuzione. 192.168.1.10 è utilizzato per amministrazione del cluster con Hawk2 e 192.168.2.1 esclusivamente per esportazioni CIFS. Ciò semplifica la successiva applicazione delle limitazioni di sicurezza.

La procedura seguente descrive l'installazione di esempio. Ulteriori informazioni sono disponibili all'indirizzo https://www.suse.com/documentation/sle-ha-12/install-quick/data/install-quick.html.

  1. Creare un portachiavi gateway Samba specifico sul Salt master e copiarlo su entrambi i nodi:

    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. Preparare earth e mars per ospitare il servizio Samba:

    1. Prima di continuare, verificare che siano installati i seguenti pacchetti: ctdb, tdb-tools, e samba (necessario per le risorse smb e nmb).

      root # zypper in ctdb tdb-tools samba samba-ceph
    2. Verificare che i servizi ctdb, smb e nmb siano arrestati e disabilitati:

      root # systemctl disable ctdb
      root # systemctl disable smb
      root # systemctl disable nmb
      root # systemctl stop smb
      root # systemctl stop nmb
    3. Aprire la porta 4379 del firewall su tutti i nodi. Questo passaggio è necessario affinché CTDB comunichi con altri nodi del cluster.

    4. Creare una directory per il blocco CTDB sul file system condiviso:

      root # mkdir -p /srv/samba/
  3. Su earth creare i file di configurazione per Samba. In seguito verranno sincronizzati con mars.

    1. In /etc/ctdb/nodes inserire tutti i nodi contenenti tutti gli indirizzi IP privati di ogni nodo nel cluster:

      192.168.1.1
      192.168.1.2
    2. Configurare Samba. Aggiungere le righe seguenti nella sezione [global] di /etc/samba/smb.conf. Utilizzare il nome host prescelto al posto di "CTDB-SERVER" (tutti i nodi del cluster compaiono in effetti come un grande nodo con questo nome):

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

      Per informazioni su csync2, vedere https://www.suse.com/documentation/sle-ha-12/singlehtml/book_sleha/book_sleha.html#pro.ha.installation.setup.csync2.start.

  4. Installare ed eseguire il bootstrap del cluster SUSE Linux Enterprise High Availability.

    1. Registrare SUSE Linux Enterprise High Availability Extension su earth e mars.

      root@earth # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
      root@mars # SUSEConnect -r ACTIVATION_CODE -e E_MAIL
    2. Installare ha-cluster-bootstrap su entrambi i nodi:

      root@earth # zypper in ha-cluster-bootstrap
      root@mars # zypper in ha-cluster-bootstrap
    3. Inizializzare il cluster su earth:

      root@earth # ha-cluster-init
    4. Lasciare che mars si unisca al cluster:

      root@mars # ha-cluster-join -c earth
  5. Verificare lo stato del cluster. Dovrebbero essere visibili due nodi aggiunti nel 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. Eseguire i comandi seguenti su earth per configurare la risorsa 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

    Il binario /usr/lib64/ctdb/ctdb_mutex_ceph_rados_helper nell'opzione di configurazione ctdb_recovery_lock ha i parametri CLUSTER_NAME CEPHX_USER CEPH_POOL CEPHX_USER in questo ordine.

  7. Aggiungere un indirizzo IP di 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 è impostato su true, l'agente della risorsa IPaddr2 aggiunge un ID clone all'indirizzo specificato, portando a tre diversi indirizzi IP, che non sono di solito necessari, ma aiutano per il bilanciamento di carico. Per ulteriori informazioni su questo argomento, vedere https://www.suse.com/documentation/sle-ha-12/book_sleha/data/cha_ha_lb.html.

  8. Controllare il risultato:

    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. Eseguire un test da un computer client. Su un client Linux, eseguire il seguente comando per vedere se è possibile copiare i file dal e nel sistema:

    root # smbclient //192.168.2.1/myshare
Stampa pagina