Configurare un backend NetApp HCI o SolidFire
Scoprite come creare e utilizzare un backend Element con l'installazione Trident.
Dettagli driver elemento
Trident fornisce il solidfire-san
driver di storage per comunicare con il cluster. Le modalità di accesso supportate sono: ReadWriteOnce (RWO), ReadOnlyMany (ROX), ReadWriteMany (RWX), ReadWriteOncePod (RWOP).
Il solidfire-san
driver di archiviazione supporta le modalità di volume file e block. Per la Filesystem
modalità volumeMode, Trident crea un volume e crea un filesystem. Il tipo di file system viene specificato da StorageClass.
Driver | Protocollo | VolumeMode | Modalità di accesso supportate | File system supportati |
---|---|---|---|---|
|
ISCSI |
Blocco |
RWO, ROX, RWX, RWOP |
Nessun filesystem. Dispositivo a blocchi raw. |
|
ISCSI |
Filesystem |
RWO, RWOP |
|
Prima di iniziare
Prima di creare un backend elemento, è necessario quanto segue.
-
Un sistema storage supportato che esegue il software Element.
-
Credenziali per un amministratore del cluster NetApp HCI/SolidFire o un utente tenant in grado di gestire i volumi.
-
Tutti i nodi di lavoro di Kubernetes devono disporre dei tool iSCSI appropriati. Fare riferimento alla "informazioni sulla preparazione del nodo di lavoro".
Opzioni di configurazione back-end
Per le opzioni di configurazione del backend, consultare la tabella seguente:
Parametro | Descrizione | Predefinito |
---|---|---|
|
Sempre 1 |
|
|
Nome del driver di storage |
Sempre "SolidFire-san" |
|
Nome personalizzato o backend dello storage |
"SolidFire_" + indirizzo IP di storage (iSCSI) |
|
MVIP per il cluster SolidFire con credenziali tenant |
|
|
Porta e indirizzo IP dello storage (iSCSI) |
|
|
Set di etichette arbitrarie formattate con JSON da applicare sui volumi. |
"" |
|
Nome tenant da utilizzare (creato se non trovato) |
|
|
Limitare il traffico iSCSI a un'interfaccia host specifica |
"predefinito" |
|
Utilizzare CHAP per autenticare iSCSI. Trident utilizza il protocollo CHAP. |
vero |
|
Elenco degli ID del gruppo di accesso da utilizzare |
Trova l'ID di un gruppo di accesso denominato "Trident" |
|
Specifiche QoS |
|
|
Fallire il provisioning se la dimensione del volume richiesta è superiore a questo valore |
"" (non applicato per impostazione predefinita) |
|
Flag di debug da utilizzare per la risoluzione dei problemi. Esempio, {"api":false, "method":true} |
nullo |
|
Non utilizzare debugTraceFlags a meno che non si stia eseguendo la risoluzione dei problemi e non si richieda un dump dettagliato del registro.
|
Esempio 1: Configurazione backend per solidfire-san
driver con tre tipi di volume
Questo esempio mostra un file backend che utilizza l'autenticazione CHAP e modellazione di tre tipi di volume con specifiche garanzie di QoS. È molto probabile quindi che si definiscano classi di archiviazione per utilizzare ciascuna di queste classi utilizzando il IOPS
parametro della classe di archiviazione.
---
version: 1
storageDriverName: solidfire-san
Endpoint: https://<user>:<password>@<mvip>/json-rpc/8.0
SVIP: <svip>:3260
TenantName: <tenant>
labels:
k8scluster: dev1
backend: dev1-element-cluster
UseCHAP: true
Types:
- Type: Bronze
Qos:
minIOPS: 1000
maxIOPS: 2000
burstIOPS: 4000
- Type: Silver
Qos:
minIOPS: 4000
maxIOPS: 6000
burstIOPS: 8000
- Type: Gold
Qos:
minIOPS: 6000
maxIOPS: 8000
burstIOPS: 10000
Esempio 2: Configurazione backend e classe di storage per solidfire-san
driver con pool virtuali
Questo esempio mostra il file di definizione back-end configurato con i pool virtuali insieme a StorageClasses che fanno riferimento ad essi.
Trident copia le etichette presenti su un pool di storage al LUN di storage backend al momento del provisioning. Per comodità, gli amministratori dello storage possono definire le etichette per ogni pool virtuale e raggruppare i volumi per etichetta.
Nel file di definizione di backend di esempio illustrato di seguito, vengono impostati valori predefiniti specifici per tutti i pool di storage, che impostano type
su Silver. I pool virtuali sono definiti nella storage
sezione . In questo esempio, alcuni pool di storage impostano il proprio tipo e alcuni pool sovrascrivono i valori predefiniti impostati in precedenza.
---
version: 1
storageDriverName: solidfire-san
Endpoint: https://<user>:<password>@<mvip>/json-rpc/8.0
SVIP: <svip>:3260
TenantName: <tenant>
UseCHAP: true
Types:
- Type: Bronze
Qos:
minIOPS: 1000
maxIOPS: 2000
burstIOPS: 4000
- Type: Silver
Qos:
minIOPS: 4000
maxIOPS: 6000
burstIOPS: 8000
- Type: Gold
Qos:
minIOPS: 6000
maxIOPS: 8000
burstIOPS: 10000
type: Silver
labels:
store: solidfire
k8scluster: dev-1-cluster
region: us-east-1
storage:
- labels:
performance: gold
cost: "4"
zone: us-east-1a
type: Gold
- labels:
performance: silver
cost: "3"
zone: us-east-1b
type: Silver
- labels:
performance: bronze
cost: "2"
zone: us-east-1c
type: Bronze
- labels:
performance: silver
cost: "1"
zone: us-east-1d
Le seguenti definizioni di StorageClass si riferiscono ai pool virtuali sopra indicati. Utilizzando il parameters.selector
Field, ogni StorageClass definisce quali pool virtuali possono essere utilizzati per ospitare un volume. Gli aspetti del volume saranno definiti nel pool virtuale scelto.
Il primo StorageClass (solidfire-gold-four
) verrà mappato al primo pool virtuale. Questa è l'unica piscina che offre prestazioni d'oro con un Volume Type QoS
di Gold. L'ultima StorageClass (solidfire-silver
) richiama qualsiasi pool di storage che offre prestazioni eccezionali. Trident deciderà quale pool virtuale viene selezionato e garantirà che i requisiti di storage vengano soddisfatti.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: solidfire-gold-four
provisioner: csi.trident.netapp.io
parameters:
selector: performance=gold; cost=4
fsType: ext4
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: solidfire-silver-three
provisioner: csi.trident.netapp.io
parameters:
selector: performance=silver; cost=3
fsType: ext4
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: solidfire-bronze-two
provisioner: csi.trident.netapp.io
parameters:
selector: performance=bronze; cost=2
fsType: ext4
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: solidfire-silver-one
provisioner: csi.trident.netapp.io
parameters:
selector: performance=silver; cost=1
fsType: ext4
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: solidfire-silver
provisioner: csi.trident.netapp.io
parameters:
selector: performance=silver
fsType: ext4