Vai al contenutoNaviga tra le pagine: pagina precedente [tasto di scelta p]/pagina successiva [tasto di scelta n]
documentation.suse.com / Documentazione di SUSE Enterprise Storage 7 / Guida alla distribuzione / Installazione di servizi aggiuntivi / Installazione di iSCSI Gateway
Si applica a SUSE Enterprise Storage 7

6 Installazione di iSCSI Gateway

iSCSI è un protocollo di rete dell'area di storage (SAN) che consente ai client (denominati iniziatori) di inviare comandi SCSI ai dispositivi di storage SCSI (destinazioni) su server remoti. SUSE Enterprise Storage 7 include una struttura che apre la gestione dello storage Ceph a client eterogenei, come Microsoft Windows* e VMware* vSphere, attraverso il protocollo iSCSI. L'accesso iSCSI multipath garantisce disponibilità e scalabilità per questi client e il protocollo iSCSI standardizzato fornisce inoltre un ulteriore livello di isolamento di sicurezza tra i client e il cluster SUSE Enterprise Storage 7. La struttura di configurazione è denominata ceph-iscsi. Con ceph-iscsi, gli amministratori dello storage Ceph possono definire volumi soggetti a thin-provisioning, replicati, a elevata disponibilità che supportano snapshot di sola lettura, cloni di scrittura-lettura e ridimensionamento automatico con il dispositivo di blocco RADOS (RBD) Ceph. Gli amministratori possono quindi esportare i volumi tramite un singolo host gateway ceph-iscsi o tramite più host gateway che supportano il failover multipath. Gli host Linux, Microsoft Windows e VMware possono collegarsi a volumi che utilizzano il protocollo iSCSI, che li rende disponibili come altri dispositivi di blocco SCSI. Questo significa che i clienti di SUSE Enterprise Storage 7 possono efficacemente eseguire un sottosistema completo dell'infrastruttura di storage di blocco su Ceph che fornisce tutte le funzioni e vantaggi di un SAN convenzionale, consentendo la crescita futura.

Questo capitolo presenta informazioni dettagliate per configurare un'infrastruttura del cluster Ceph insieme con un iSCSI Gateway, in modo che gli host client possano utilizzare da remoto i dati memorizzati come dispositivi di storage locale con il protocollo iSCSI.

6.1 Storage di blocco iSCSI

iSCSI è un'implementazione del set di comandi Small Computer System Interface (SCSI) mediante il Protocollo Internet (IP), specificato in RFC 3720. iSCSI è implementato come servizio dove un client (l'iniziatore) parla a un server (la destinazione) tramite una sessione sulla porta TCP 3260. Una porta e un indirizzo IP della destinazione iSCSI sono denominati portale iSCSI, dove una destinazione può essere esposta attraverso uno o più portali. La combinazione di una destinazione e uno o più portali è detta gruppo portale di destinazione (target portal group, TPG).

Il protocollo dello strato collegamento dati sottostante per iSCSI è di solito Ethernet. Più specificamente, le moderne infrastrutture iSCSI utilizzano reti Ethernet 10 GigE o più veloci per una velocità effettiva ottimale. Si consiglia la connettività Ethernet 10 Gigabit tra iSCSI Gateway e il cluster Ceph back-end.

6.1.1 La destinazione iSCSI Kernel Linux

La destinazione iSCSI Kernel Linux era in origine denominata LIO per linux-iscsi.org, il dominio originale e sito Web del progetto. Per qualche tempo, erano disponibili per la piattaforma Linux non meno di quattro implementazioni di destinazione iSCSI in concorrenza, ma LIO alla fine ha prevalso come singola destinazione di riferimento iSCSI. Il codice kernel mainline di LIO utilizza il semplice ma certamente ambiguo nome "destinazione", che distingue tra "core di destinazione" e una varietà di moduli di destinazione front-end e back-end.

Il modulo front-end più comunemente utilizzato è iSCSI. Tuttavia, LIO supporta anche i protocolli Fibre Channel (FC), Fibre Channel over Ethernet (FCoE) e diversi altri protocolli front-end. Attualmente, è supportato da SUSE Enterprise Storage solo il protocollo iSCSI.

Il modulo back-end di destinazione più utilizzato è quello in grado di riesportare semplicemente qualsiasi dispositivo di blocco disponibile sull'host di destinazione. Questo modulo è denominato iblock. Tuttavia, LIO ha anche un modulo back-end specifico RBD che supporta l'accesso I/O multipercorso parallelizzato alle immagini RBD.

6.1.2 Iniziatori iSCSI

Questa sezione presenta brevi informazioni sugli iniziatori iSCSI utilizzati su piattaforme Linux, Microsoft Windows e VMware.

6.1.2.1 Linux

L'iniziatore standard per la piattaforma Linux è open-iscsi. open-iscsi lancia un daemon, iscsid, che l'utente può quindi utilizzare per rilevare destinazioni iSCSI su qualsiasi portale dato, accedere alle destinazioni e mappare volumi iSCSI. iscsid comunica con il livello mediano SCSI per creare dispositivi di blocco nel kernel, che il kernel può quindi trattare come altri dispositivi di blocco SCSI nel sistema. L'iniziatore open-iscsi può essere distribuito insieme con la facility Device Mapper Multipath (dm-multipath) per fornire un dispositivo di blocco iSCSI ad alta disponibilità.

6.1.2.2 Microsoft Windows e Hyper-V

L'iniziatore iSCSI di default per il sistema operativo Microsoft Windows è l'iniziatore Microsoft iSCSI. Il servizio iSCSI può essere configurato tramite un'interfaccia grafica utente (GUI) e supporta I/O multipercorso per alta disponibilità.

6.1.2.3 VMware

L'iniziatore iSCSI di default per VMware vSphere ed ESX è l'iniziatore iSCSI del software VMware ESX, vmkiscsi. Quando abilitato, può essere configurato dal client vSphere o mediante il comando vmkiscsi-tool. È quindi possibile formattare i volumi di storage connessi attraverso l'adattatore di storage vSphere iSCSI con VMFS e utilizzarli come altri dispositivi di storage VM. L'iniziatore VMware supporta anche I/O multipercorso per alta disponibilità.

6.2 Informazioni generali su ceph-iscsi

ceph-iscsi combina i vantaggi dei dispositivi di blocco RADOS con la versatilità diffusa di iSCSI. Impiegando ceph-iscsi su un host di destinazione iSCSI (noto come iSCSI Gateway), qualsiasi applicazione che deve utilizzare uno storage di blocco può trarre vantaggio da Ceph, anche se non utilizza alcun protocollo del client Ceph. Al contrario, gli utenti possono utilizzare iSCSI o un altro protocollo front-end di destinazione per collegarsi a una destinazione LIO che traduce tutti gli I/O di destinazione in operazioni di storage RBD.

Cluster Ceph con un singolo iSCSI Gateway
Figura 6.1: Cluster Ceph con un singolo iSCSI Gateway

ceph-iscsi è intrinsecamente a elevata disponibilità e supporta operazioni multipath. Perciò, gli host iniziatori a valle possono utilizzare più iSCSI Gateway per alta disponibilità e scalabilità. Quando si comunica con una configurazione iSCSI con più gateway, gli iniziatori possono bilanciare il carico delle richieste iSCSI tra più gateway. Nel caso in cui un gateway sia in errore, temporaneamente irraggiungibile o disattivato per manutenzione, gli I/O continueranno in modo trasparente attraverso un altro gateway.

Cluster Ceph con più iSCSI Gateway
Figura 6.2: Cluster Ceph con più iSCSI Gateway

6.3 Considerazioni sulla distribuzione

Una configurazione minima di SUSE Enterprise Storage 7 con ceph-iscsi contiene i componenti seguenti:

  • Un cluster di storage Ceph. Il cluster Ceph consiste di un minimo di quattro server fisici contenenti almeno otto OSD (object storage daemon) ciascuno. In tale configurazione, tre nodi OSD raddoppiano come host monitor (MON).

  • Un server di destinazione iSCSI che esegue la destinazione LIO iSCSI, configurato tramite ceph-iscsi.

  • Un host iniziatore iSCSI, che esegue open-iscsi (Linux), l'iniziatore Microsoft iSCSI (Microsoft Windows) o qualsiasi altra implementazione di iniziatore iSCSI compatibile.

Una configurazione di produzione raccomandata di SUSE Enterprise Storage 7 con ceph-iscsi consiste di:

  • Un cluster di storage Ceph. Un cluster Ceph di produzione consiste di un numero qualsiasi di (in genere oltre 10) nodi OSD, ciascuno che esegue in genere 10-12 OSD (object storage daemon), con non meno di tre host MON dedicati.

  • Diversi server di destinazione iSCSI che eseguono la destinazione LIO iSCSI, configurati tramite ceph-iscsi. Per bilanciamento di carico e failover iSCSI, questi server devono eseguire un kernel che supporti il modulo target_core_rbd. Dal canale di manutenzione SUSE Linux Enterprise Server sono disponibili pacchetti di aggiornamento.

  • Un numero a scelta di host iniziatori iSCSI, che eseguono open-iscsi (Linux), l'iniziatore Microsoft iSCSI (Microsoft Windows) o qualsiasi altra implementazione di iniziatore iSCSI compatibile.

6.4 Installazione e configurazione

Questa sezione descrive i passaggi per installare e configurare un iSCSI Gateway su SUSE Enterprise Storage.

6.4.1 Distribuzione di iSCSI Gateway in un cluster Ceph

Analogamente agli altri servizi Ceph, Ceph iSCSI Gateway viene distribuito tramite cephadm. Per ulteriori informazioni, vedere Sezione 5.4.3.5, «Distribuzione di iSCSI Gateway».

6.4.2 Creazione di immagini RBD

Le immagini RBD vengono create nello store Ceph e quindi esportate in iSCSI. Per questo scopo, si consiglia di utilizzare un pool RADOS dedicato. È possibile creare un volume da qualsiasi host in grado di collegarsi al cluster di storage mediante l'utility della riga di comando Ceph rbd. Ciò richiede che il client abbia almeno un file di configurazione ceph.conf minimo e appropriate credenziali di autenticazione CephX.

Per creare un nuovo volume per la successiva esportazione tramite iSCSI, utilizzare il comando rbd create, specificando la dimensione del volume in megabyte. Ad esempio, per creare un volume da 100 GB denominato testvol nel pool con il nome iscsi-images, eseguire:

cephuser@adm > rbd --pool iscsi-images create --size=102400 testvol

6.4.3 Esportazione di immagini RBD tramite iSCSI

Per esportare le immagini RBD tramite iSCSI, è possibile utilizzare l'interfaccia Web del Ceph Dashboard o l'utility gwcli ceph-iscsi. Questa sezione è incentrata esclusivamente su gwcli e illustra come creare una destinazione iSCSI in grado di esportare un'immagine RBD tramite la riga di comando.

Nota
Nota

Non è possibile esportare tramite iSCSI le immagini RBD con le proprietà seguenti:

  • immagini con la funzione di journaling abilitata

  • immagini con un'unità di striping inferiore a 4096 byte

Come root, immettere il container di iSCSI Gateway:

root # cephadm enter --name CONTAINER_NAME

Da root, avviare l'interfaccia riga di comando di iSCSI Gateway:

root # gwcli

Andare a iscsi-targets e creare una destinazione con il nome iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> create iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol

Creare gli iSCSI Gateway specificando il nome (name) e l'indirizzo ip del gateway:

gwcli >  /iscsi-targets> cd iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/gateways
gwcli >  /iscsi-target...tvol/gateways> create iscsi1 192.168.124.104
gwcli >  /iscsi-target...tvol/gateways> create iscsi2 192.168.124.105
Suggerimento
Suggerimento

Utilizzare il comando help per visualizzare l'elenco dei comandi disponibili nel nodo di configurazione corrente.

Aggiungere l'immagine RBD denominata testvol nel pool iscsi-images:

gwcli >  /iscsi-target...tvol/gateways> cd /disks
gwcli >  /disks> attach iscsi-images/testvol

Mappare l'immagine RBD alla destinazione:

gwcli >  /disks> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/disks
gwcli >  /iscsi-target...testvol/disks> add iscsi-images/testvol
Nota
Nota

È possibile utilizzare strumenti di livello inferiore, come targetcli, per interrogare la configurazione locale, ma non per modificarla.

Suggerimento
Suggerimento

È possibile utilizzare il comando ls per rivedere la configurazione. Alcuni nodi di configurazione supportano inoltre il comando info, che può essere utilizzato per visualizzare altri dettagli.

Tenere presente che, l'autenticazione ACL è abilitata per default, pertanto questa destinazione non è ancora accessibile. Consultare la Sezione 6.4.4, «Autenticazione e controllo dell'accesso» per ulteriori informazioni sull'autenticazione e il controllo dell'accesso.

6.4.4 Autenticazione e controllo dell'accesso

L'autenticazione iSCSI è flessibile e include diverse possibilità di autenticazione.

6.4.4.1 Disabilitazione dell'autenticazione ACL

No Authentication indica che qualsiasi iniziatore potrà accedere ai LUN sulla destinazione corrispondente. È possibile abilitare l'impostazione No Authentication disabilitando l'autenticazione ACL:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> auth disable_acl

6.4.4.2 Uso dell'autenticazione ACL

Se si utilizza l'autenticazione ACL basata sul nome di iniziatore, la connessione è consentita soltanto agli iniziatori definiti. È possibile definire un iniziatore come indicato di seguito:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> create iqn.1996-04.de.suse:01:e6ca28cc9f20

Gli iniziatori definiti potranno eseguire la connessione, ma disporranno dell'accesso soltanto alle immagini RBD aggiunte esplicitamente all'iniziatore:

gwcli >  /iscsi-target...:e6ca28cc9f20> disk add rbd/testvol

6.4.4.3 Abilitazione dell'autenticazione CHAP

Oltre all'autenticazione ACL, è possibile abilitare l'autenticazione CHAP specificando un nome utente e una password per ciascun iniziatore:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts/iqn.1996-04.de.suse:01:e6ca28cc9f20
gwcli >  /iscsi-target...:e6ca28cc9f20> auth username=common12 password=pass12345678
Nota
Nota

I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e possono contenere caratteri alfanumerici, ., @, -, _ oppure :.

Le password devono avere una lunghezza compresa tra 12 e 16 caratteri e possono contenere caratteri alfanumerici, @, -, _ o /..

Facoltativamente, è possibile abilitare anche l'autenticazione CHAP reciproca specificando i parametri mutual_username e mutual_password nel comando auth.

6.4.4.4 Configurazione dell'autenticazione rilevazione e dell'autenticazione reciproca

L'autenticazione rilevazione è indipendente dai metodi di autenticazione descritti in precedenza. Richiede le credenziali per la navigazione, è facoltativa e può essere configurata tramite:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> discovery_auth username=du123456 password=dp1234567890
Nota
Nota

I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e possono contenere solo lettere, ., @, -, _ oppure :.

Le password devono avere una lunghezza compresa tra 12 e 16 caratteri e possono contenere solo lettere, @, -, _ oppure /.

Facoltativamente, è possibile specificare anche i parametri mutual_username e mutual_password nel comando discovery_auth.

È possibile disabilitare l'autenticazione rilevazione tramite il comando seguente:

gwcli >  /iscsi-targets> discovery_auth nochap

6.4.5 Configurazione delle impostazioni avanzate

È possibile configurare ceph-iscsi con parametri avanzati che vengono quindi trasmessi alla destinazione di I/O di LIO. Tali parametri sono suddivisi nei parametri target e disk.

Avvertimento
Avvertimento

Se non diversamente specificato, si consiglia di non modificare l'impostazione di default di questi parametri.

6.4.5.1 Visualizzazione delle impostazioni target

È possibile visualizzare il valore di tali impostazioni tramite il comando info:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol
gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> info

E modificare un'impostazione con il comando reconfigure:

gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> reconfigure login_timeout 20

Le impostazioni target disponibili sono:

default_cmdsn_depth

Profondità di default CmdSN (Command Sequence Number). Limita la quantità di richieste che l'iniziatore iSCSI può avere in sospeso in qualsiasi momento.

default_erl

Livello di ripristino errore di default.

login_timeout

Valore timeout di login in secondi.

netif_timeout

Timeout errore NIC in secondi.

prod_mode_write_protect

Se impostata a 1, impedisce le operazioni di scrittura sui LUN.

6.4.5.2 Visualizzazione delle impostazioni disk

È possibile visualizzare il valore di tali impostazioni tramite il comando info:

gwcli >  /> cd /disks/rbd/testvol
gwcli >  /disks/rbd/testvol> info

E modificare un'impostazione con il comando reconfigure:

gwcli >  /disks/rbd/testvol> reconfigure rbd/testvol emulate_pr 0

Le impostazioni disk disponibili sono:

block_size

Dimensione di blocco del dispositivo sottostante.

emulate_3pc

Se impostata a 1, abilita Third Party Copy.

emulate_caw

Se impostata a 1, abilita Compare e Write.

emulate_dpo

Se impostato a 1, attiva Disable Page Out.

emulate_fua_read

Se impostata a 1, attiva la lettura Force Unit Access.

emulate_fua_write

Se impostata a 1, abilita la scrittura Force Unit Access.

emulate_model_alias

Se impostata a 1, utilizza il nome del dispositivo back-end per l'alias modello.

emulate_pr

Se impostata a 0, il supporto delle prenotazioni SCSI, incluse le Persistent Group Reservation, è disabilitato. Se è disabilitata, l'iSCSI Gateway SES può ignorare lo stato di prenotazione per generare una migliore latenza della richiesta.

Suggerimento
Suggerimento

Si consiglia di impostare backstore_emulate_pr a 0 se gli iniziatori iSCSI non richiedono il supporto della prenotazione SCSI.

emulate_rest_reord

Se impostata a 0, il modificatore algoritmo di coda ha riordinamento limitato.

emulate_tas

Se impostata a 1, abilita Task Aborted Status.

emulate_tpu

Se impostata a 1, abilita Thin Provisioning Unmap.

emulate_tpws

Se impostata a 1, abilita Thin Provisioning Write Same.

emulate_ua_intlck_ctrl

Se impostata a 1, abilita Unit Attention Interlock.

emulate_write_cache

Se impostata a 1, attiva Write Cache Enable.

enforce_pr_isids

Se impostata a 1, applica gli ISID di prenotazione persistenti.

is_nonrot

Se impostata a 1, il backstore è un dispositivo non rotativo.

max_unmap_block_desc_count

Numero massimo di descrittori di blocco per UNMAP.

max_unmap_lba_count:

Numero massimo di LBA per UNMAP.

max_write_same_len

Lunghezza massima per WRITE_SAME.

optimal_sectors

Dimensione richiesta ottimale in settori.

pi_prot_type

Tipo di protezione DIF.

queue_depth

Profondità coda.

unmap_granularity

Granularità UNMAP.

unmap_granularity_alignment

Allineamento granularità UNMAP.

force_pr_aptpl

Se abilitata, LIO scriverà sempre lo stato di prenotazione permanente nello spazio di memorizzazione permanente, a prescindere dal fatto che il client lo abbia richiesto o meno tramite aptpl=1. Ciò non ha effetto sul back-end RBD del kernel per LIO, che manterrà sempre lo stato di prenotazione permanente. Idealmente, l'opzione target_core_rbd dovrebbe forzarla su "1" e generare un errore se qualcuno tenta di disabilitarla tramite la configurazione.

unmap_zeroes_data

Determina se LIO invierà un bit LBPRZ agli iniziatori SCSI, per indicare che gli zero di una determinata area verranno riletti dopo l'esecuzione di un comando UNMAP o WRITE SAME con un bit di annullamento della mappatura.

6.5 Esportazione di immagini del dispositivo di blocco RADOS (RADOS Block Device, RBD) con tcmu-runner

ceph-iscsi supporta i backstore rbd (basati sul kernel) e user:rbd (tcmu-runner), rendendo la gestione invisibile all'utente e indipendente dal backstore.

Avvertimento
Avvertimento: tecnologia in anteprima

Le distribuzioni di iSCSI Gateway basate su tcmu-runner sono attualmente un'anteprima.

A differenza delle distribuzioni iSCSI Gateway basate su kernel, gli iSCSI Gateway basati su tcmu-runner non offrono supporto per Multipath I/O o per le prenotazioni permanenti SCSI.

Per esportare un'immagine del dispositivo di blocco RADOS con tcmu-runner, occorre semplicemente specificare il backstore user:rbd durante il collegamento del disco:

gwcli >  /disks> attach rbd/testvol backstore=user:rbd
Nota
Nota

Durante l'uso di tcmu-runner, sull'immagine RBD esportata deve essere abilitata la funzione exclusive-lock.