25 NFS Ganesha #
NFS Ganesha è un server NFS che viene eseguito in uno spazio di indirizzamento dell'utente come parte del kernel del sistema operativo. Con NFS Ganesha, è possibile collegare un meccanismo di memorizzazione, come Ceph, e accedervi da qualsiasi client NFS. Per istruzioni sull'installazione, vedere Sezione 8.3.6, «Distribuzione di NFS Ganesha».
A causa dell'aumento dell'overhead del protocollo e della latenza aggiuntiva causati dagli hop di rete extra tra il client e lo storage, l'accesso a Ceph tramite un gateway NFS potrebbe ridurre notevolmente le prestazioni dell'applicazione se confrontate con quelle del CephFS nativo.
Ogni servizio NFS Ganesha è composto da una gerarchia di configurazione contenente:
Un
ganesha.conf
di bootstrapUn oggetto di configurazione comune RADOS per ciascun servizio
Un oggetto di configurazione RADOS per ciascuna esportazione
La configurazione di bootstrap è la configurazione minima per l'avvio del daemon nfs-ganesha
all'interno di un container. Ciascuna configurazione di bootstrap conterrà una direttiva %url
che include eventuali configurazioni aggiuntive dell'oggetto di configurazione comune RADOS. L'oggetto di configurazione comune può includere ulteriori direttive %url
per ciascuna delle esportazioni NFS definite negli oggetti di configurazione RADOS di esportazione.
25.1 Creazione di un servizio NFS #
Per specificare la distribuzione dei servizi Ceph, si consiglia di creare un file con formattazione YAML contenente la specifica dei servizi da distribuire. È possibile creare un file della specifica separato per ogni tipo di servizio oppure specificare più tipi di servizi (o tutti) in un unico file.
A seconda dell'opzione scelta, per creare un servizio NFS Ganesha, sarà necessario aggiornare o creare un file con formattazione YAML pertinente. Per ulteriori informazioni sulla creazione del file, vedere Sezione 8.2, «Specifica del servizio e del posizionamento».
Dopo aver aggiornato o creato il file eseguire quanto riportato di seguito per creare un servizio nfs-ganesha
:
cephuser@adm >
ceph orch apply -i FILE_NAME
25.2 Avvio o riavvio di NFS Ganesha #
L'avvio del servizio NFS Ganesha non esporta automaticamente un file system CephFS. Per esportare un file system CephFS, creare un file di configurazione di esportazione. Per ulteriori dettagli, fare riferimento a Sezione 25.4, «Creazione di un'esportazione NFS».
Per avviare il servizio NFS Ganesha, eseguire:
cephuser@adm >
ceph orch start nfs.SERVICE_ID
Per riavviare il servizio NFS Ganesha, eseguire:
cephuser@adm >
ceph orch restart nfs.SERVICE_ID
Se si desidera riavviare soltanto un singolo daemon NFS Ganesha, eseguire:
cephuser@adm >
ceph orch daemon restart nfs.SERVICE_ID
Quando si avvia o riavvia NFS Ganesha, il timeout di tolleranza per NFS v4 è di 90 secondi. Durante la moratoria, le nuove richieste dai client vengono rifiutate attivamente. Pertanto, è possibile che i client subiscano un rallentamento delle richieste durante la moratoria di NFS.
25.3 Elenco di oggetti nel pool di recupero NFS #
Eseguire quanto riportato di seguito per elencare gli oggetti nel pool di recupero NFS:
cephuser@adm >
rados --pool POOL_NAME --namespace NAMESPACE_NAME ls
25.4 Creazione di un'esportazione NFS #
È possibile creare un'esportazione NFS nel Ceph Dashboard oppure manualmente, dalla riga di comando. Per creare l'esportazione mediante il Ceph Dashboard, fare riferimento al Capitolo 7, Gestione di NFS Ganesha e più specificamente alla Sezione 7.1, «Creazione di esportazioni NFS».
Per creare manualmente un'esportazione NFS, creare un file di configurazione per l'esportazione. Ad esempio, un file /tmp/export-1
con il seguente contenuto:
EXPORT { export_id = 1; path = "/"; pseudo = "/"; access_type = "RW"; squash = "no_root_squash"; protocols = 3, 4; transports = "TCP", "UDP"; FSAL { name = "CEPH"; user_id = "admin"; filesystem = "a"; secret_access_key = "SECRET_ACCESS_KEY"; } }
Dopo aver creato e salvato il file di configurazione per la nuova esportazione, eseguire il seguente comando per creare l'esportazione:
rados --pool POOL_NAME --namespace NAMESPACE_NAME put EXPORT_NAME EXPORT_CONFIG_FILE
Ad esempio:
cephuser@adm >
rados --pool example_pool --namespace example_namespace put export-1 /tmp/export-1
Modificare il blocco FSAL in modo che includa l'ID utente cephx
desiderato e la chiave di accesso segreta.
25.5 Verifica dell'esportazione NFS #
NFS v4 crea un elenco di esportazioni nella radice di uno pseudo file system. È possibile verificare che le condivisioni NFS vengano esportate montando /
del nodo del server NFS Ganesha:
#
mount
-t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpoint#
ls
/path/to/local/mountpoint cephfs
Per default, cephadm configurerà un server NFS v4. NFS v4 non interagisce con rpcbind
o con il daemon mountd
. Gli strumenti del client NFS, come showmount
, non visualizzeranno nessuna esportazione configurata.
25.6 Montaggio dell'esportazione NFS #
Per montare la condivisione NFS esportata su un host client, eseguire:
#
mount
-t nfs nfs_ganesha_server_hostname:/ /path/to/local/mountpoint
25.7 Cluster NFS Ganesha multipli #
È possibile definire più cluster NFS Ganesha per:
Separare i cluster NFS Ganesha per l'accesso a CephFS.