Questa sezione descrive come esportare CephFS tramite una condivisione Samba/CIFS. Le condivisioni Samba possono essere utilizzate con client Windows*.
A SUSE Enterprise Storage 5, l'esportazione delle condivisioni Samba è considerata un'anteprima e non è supportata.
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.
Accertare che nel cluster sia già esistente un CephFS operativo. Per informazioni, vedere Capitolo 11, Installazione di CephFS.
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.keyringroot@master #
scp
ceph.client.samba.gw.keyring SAMBA_NODE:/etc/ceph/
Sostituire SAMBA_NODE con il nome del nodo gateway Samba.
I passaggi seguenti vengono eseguiti sul nodo gateway Samba. Installare il daemon Samba sul nodo gateway Samba:
root #
zypper
in samba samba-ceph
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
Avviare a abilitare il daemon Samba:
root #
systemctl
start smb.serviceroot #
systemctl
enable smb.serviceroot #
systemctl
start nmb.serviceroot #
systemctl
enable nmb.service
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.
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.keyringroot@master #
scp
ceph.client.samba.gw.keyringearth
:/etc/ceph/root@master #
scp
ceph.client.samba.gw.keyringmars
:/etc/ceph/
Preparare earth
e mars
per ospitare il servizio Samba:
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
Verificare che i servizi ctdb
, smb
e nmb
siano arrestati e disabilitati:
root #
systemctl
disable ctdbroot #
systemctl
disable smbroot #
systemctl
disable nmbroot #
systemctl
stop smbroot #
systemctl
stop nmb
Aprire la porta 4379
del firewall su tutti i nodi. Questo passaggio è necessario affinché CTDB comunichi con altri nodi del cluster.
Creare una directory per il blocco CTDB sul file system condiviso:
root #
mkdir
-p /srv/samba/
Su earth
creare i file di configurazione per Samba. In seguito verranno sincronizzati con mars
.
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
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.
Installare ed eseguire il bootstrap del cluster SUSE Linux Enterprise High Availability.
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
Installare ha-cluster-bootstrap su entrambi i nodi:
root@earth #
zypper
in ha-cluster-bootstrap
root@mars #
zypper
in ha-cluster-bootstrap
Inizializzare il cluster su earth
:
root@earth #
ha-cluster-init
Lasciare che mars
si unisca al cluster:
root@mars #
ha-cluster-join
-c earth
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
Eseguire i comandi seguenti su earth
per configurare la risorsa CTDB:
root@earth #
crm
configurecrm(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 smbcrm(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.
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-ctdbcrm(live)configure#
order
o-with-ctdb 0: cl-ip cl-ctdbcrm(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.
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
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