• Non ci sono risultati.

Importante: co-location dei servizi

I servizi che dispongono di una propria tolleranza agli errori e di un proprio bilanciamento del carico non devono essere in esecuzione sui nodi del cluster a cui viene applicata la priorità per i servizi di failover. Pertanto, non eseguire i servizi Ceph Monitor, del server di metadati, iSCSI o Ceph OSD sulle configurazioni a elevata disponibilità.

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

12.3.1 Installazione di base

In questa configurazione earth ha l'indirizzo IP 192.168.1.1 e mars l'indirizzo 192.168.1.2.

Inoltre, vengono utilizzati due indirizzi IP virtuali mobili che consentono ai client di connettersi al servizio indipendentemente dal nodo fisico sul quale è in esecuzione. 192.168.1.10 è uti-lizzato per amministrazione del cluster con Hawk2 e 192.168.2.1 esclusivamente per espor-tazioni NFS. Ciò semplifica la successiva applicazione delle limiespor-tazioni di sicurezza.

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

1. Preparare i nodi NFS Ganesha sul Salt master:

root@master # salt-run state.orch ceph.stage.0 root@master # salt-run state.orch ceph.stage.1

b. Assegnare ai nodi earth e mars il role-ganesha in /srv/pillar/ceph/propo-sals/policy.cfg:

role-ganesha/cluster/earth*.sls role-ganesha/cluster/mars*.sls

c. Eseguire le fasi da 2 a 4 di DeepSea.

root@master # salt-run state.orch ceph.stage.2 root@master # salt-run state.orch ceph.stage.3 root@master # salt-run state.orch ceph.stage.4

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

root # SUSEConnect -r ACTIVATION_CODE -e E_MAIL

3. Installare ha-cluster-bootstrap su entrambi i nodi:

root # zypper in ha-cluster-bootstrap

4. a. Inizializzare il cluster su earth:

root@earth # ha-cluster-init

b. Lasciare che mars si unisca al cluster:

root@mars # ha-cluster-join -c earth

5. Verificare lo stato del cluster. Si dovrebbero vedere due nodi aggiunti al cluster:

root@earth # crm status

6. Su entrambi i nodi, disabilitare l'avvio automatico del servizio NFS Ganesha durante il boot:

root # systemctl disable nfs-ganesha

7. Avviare la shell crm su earth:

root@earth # crm configure

I comandi successivi vengono eseguiti nella shell crm.

8. Su earth, avviare la shell crm per eseguire i comandi indicati per configurare la risorsa per i daemon NFS Ganesha come cloni del tipo di risorsa systemd:

crm(live)configure# primitive nfs-ganesha-server systemd:nfs-ganesha \ op monitor interval=30s

crm(live)configure# clone nfs-ganesha-clone nfs-ganesha-server meta interleave=true crm(live)configure# commit

Clone Set: nfs-ganesha-clone [nfs-ganesha-server]

Started: [ earth mars ]

9. Creare un IPAddr2 primitivo con la shell crm:

crm(live)configure# primitive ganesha-ip IPaddr2 \ params ip=192.168.2.1 cidr_netmask=24 nic=eth0 \ op monitor interval=10 timeout=20

crm(live)# status Online: [ earth mars ] Full list of resources:

Clone Set: nfs-ganesha-clone [nfs-ganesha-server]

Started: [ earth mars ]

ganesha-ip (ocf::heartbeat:IPaddr2): Started earth

10. Per configurare una relazione tra il server NFS Ganesha e l'IP virtuale mobile, si utilizza collocazione e ordinamento.

crm(live)configure# colocation ganesha-ip-with-nfs-ganesha-server inf: ganesha-ip nfs-ganesha-clone

crm(live)configure# order ganesha-ip-after-ganesha-server Mandatory: nfs-ganesha-clone ganesha-ip

11. Utilizzare il comando mount dal client per assicurare che la configurazione del cluster sia completa:

12.3.2 Eettuare la pulizia delle risorse

Nel caso di errore di NFS Ganesha in uno dei nodi, ad esempio earth, risolvere il problema ed effettuare la pulizia della risorsa. Solo dopo aver effettuato la pulizia, la risorsa può riposizionarsi in sicurezza su earth in caso di errore di NFS Ganesha su mars.

Per effettuare la pulizia della risorsa:

root@earth # crm resource cleanup nfs-ganesha-clone earth root@earth # crm resource cleanup ganesha-ip earth

12.3.3 Impostazione della risorsa di ping

In alcune situazioni, il server potrebbe non essere in grado di raggiungere il client a causa di un problema di rete. Una risorsa di ping può rilevare e mitigare questo problema. La configurazione della risorsa è facoltativa.

1. Definire la risorsa di ping:

crm(live)configure# primitive ganesha-ping ocf:pacemaker:ping \

params name=ping dampen=3s multiplier=100 host_list="CLIENT1 CLIENT2" \ op monitor interval=60 timeout=60 \

op start interval=0 timeout=60 \ op stop interval=0 timeout=60

host_list è un elenco di indirizzi IP separati da spazi. Viene eseguito regolarmente il ping sugli indirizzi IP per controllare eventuali indisponibilità di rete. Se un client deve sempre avere accesso al server NFS, aggiungerlo a host_list.

2. Creare un clone:

crm(live)configure# clone ganesha-ping-clone ganesha-ping \ meta interleave=true

3. Il comando seguente consente di creare un vincolo per il servizio NFS Ganesha. Forza il servizio a spostarsi su un altro nodo quando host_list non è raggiungibile.

crm(live)configure# location nfs-ganesha-server-with-ganesha-ping nfs-ganesha-clone \

rule -inf: not_defined ping or ping lte 0

12.3.4 DeepSea e HA di NFS Ganesha

DeepSea non supporta la configurazione HA (alta disponibilità) di NFS Ganesha. Per impedire a DeepSea di andare in errore dopo aver configurato HA di NFS Ganesha, escludere l'avvio e l'interruzione del servizio NFS Ganesha dalla fase 4 di DeepSea:

1. Copiare /srv/salt/ceph/ganesha/default.sls in /srv/salt/ceph/gane-sha/ha.sls.

2. Rimuovere la voce .service da /srv/salt/ceph/ganesha/ha.sls in modo che abbia l'aspetto seguente:

include:

- .keyring - .install - .configure

3. Aggiungere la riga seguente a /srv/pillar/ceph/stack/global.yml:

ganesha_init: ha

12.4 Configurazione attiva-attiva

Questa sezione fornisce un esempio di una configurazione attiva-attiva semplice di NFS Ganesha.

Lo scopo di questa configurazione consiste nel distribuire due server NFS Ganesha a un livello superiore dello stesso CephFS esistente. I server saranno due nodi del cluster Ceph con indirizzi separati. I client devono essere distribuiti tra questi ultimi manualmente. Il termine «failover» in questa configurazione indica lo smontaggio e il rimontaggio manuali dell'altro server sul client.

12.4.1 Prerequisiti

Per questa configurazione di esempio, è necessario quanto segue:

Cluster Ceph in esecuzione. Vedere la Sezione 5.3, «Distribuzione del cluster» per i dettagli sulla distribuzione e la configurazione del cluster Ceph tramite DeepSea.

Almeno un CephFS configurato. Vedere il Capitolo 11, Installazione di CephFS per ulteriori dettagli sulla distribuzione e la configurazione di CephFS.

Due nodi del cluster Ceph con NFS Ganesha distribuito. Vedere il Capitolo 12, Installazione di NFS Ganesha per ulteriori dettagli sulla distribuzione di NFS Ganesha.

Documenti correlati