Exemplos e opções de configuração de SAN ONTAP
Saiba como criar e usar drivers SAN ONTAP com a instalação do Trident. Esta seção fornece exemplos de configuração de back-end e detalhes para mapear backends para StorageClasses.
Opções de configuração de back-end
Consulte a tabela a seguir para obter as opções de configuração de back-end:
Parâmetro | Descrição | Padrão | ||
---|---|---|---|---|
|
Sempre 1 |
|||
|
Nome do controlador de armazenamento |
|
||
|
Nome personalizado ou back-end de storage |
Nome do driver e dataLIF |
||
|
Endereço IP de um cluster ou LIF de gerenciamento de SVM. Um nome de domínio totalmente qualificado (FQDN) pode ser especificado. Pode ser definido para usar endereços IPv6 se o Trident tiver sido instalado usando o sinalizador IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como Para o switchover MetroCluster otimizado, consulte o Exemplo de MetroCluster.
|
"10,0.0,1", "[2001:1234:abcd::fefe]" |
||
|
Endereço IP do protocolo LIF. Pode ser definido para usar endereços IPv6 se o Trident tiver sido instalado usando o sinalizador IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como |
Derivado do SVM |
||
|
Máquina virtual de armazenamento para usar omit for MetroCluster. Consulte Exemplo de MetroCluster. |
Derivado se uma SVM |
||
|
Use CHAP para autenticar iSCSI para drivers SAN ONTAP [Boolean]. Defina como |
|
||
|
Segredo do iniciador CHAP. Necessário se |
"" |
||
|
Conjunto de rótulos arbitrários formatados em JSON para aplicar em volumes |
"" |
||
|
Segredo do iniciador de destino CHAP. Necessário se |
"" |
||
|
Nome de utilizador de entrada. Necessário se |
"" |
||
|
Nome de utilizador alvo. Necessário se |
"" |
||
|
Valor codificado em base64 do certificado do cliente. Usado para autenticação baseada em certificado |
"" |
||
|
Valor codificado em base64 da chave privada do cliente. Usado para autenticação baseada em certificado |
"" |
||
|
Valor codificado em base64 do certificado CA confiável. Opcional. Usado para autenticação baseada em certificado. |
"" |
||
|
Nome de usuário necessário para se comunicar com o cluster ONTAP. Usado para autenticação baseada em credenciais. |
"" |
||
|
Senha necessária para se comunicar com o cluster ONTAP. Usado para autenticação baseada em credenciais. |
"" |
||
|
Máquina virtual de armazenamento para usar |
Derivado se uma SVM |
||
|
Prefixo usado ao provisionar novos volumes na SVM. Não pode ser modificado mais tarde. Para atualizar esse parâmetro, você precisará criar um novo backend. |
|
||
|
Agregado para provisionamento (opcional; se definido, deve ser atribuído ao SVM). Para
Não especifique para ASA R2. |
"" |
||
|
Falha no provisionamento se o uso estiver acima dessa porcentagem. Se você estiver usando um back-end do Amazon FSX for NetApp ONTAP, não |
"" (não aplicado por padrão) |
||
|
Falha no provisionamento se o tamanho do volume solicitado estiver acima desse valor. Também restringe o tamanho máximo dos volumes que gerencia para LUNs. |
"" (não aplicado por padrão) |
||
|
Máximo de LUNs por FlexVol, tem de estar no intervalo [50, 200] |
|
||
|
Debug flags para usar ao solucionar problemas. Por exemplo, não use a menos que você esteja solucionando problemas e exija um despejo de log detalhado. |
|
||
|
Parâmetro booleano para usar APIs REST do ONTAP. |
|
||
|
Use para selecionar |
|
||
|
`formatOptions`Use para especificar argumentos de linha de comando para o `mkfs` comando, que serão aplicados sempre que um volume for formatado. Isto permite-lhe formatar o volume de acordo com as suas preferências. Certifique-se de especificar as formatOptions semelhantes às opções de comando mkfs, excluindo o caminho do dispositivo. Exemplo: "-e nodiscard" Suportado apenas para |
|||
|
Tamanho máximo de FlexVol requestable ao usar LUNs no back-end ONTAP-san-econômico. |
"" (não aplicado por padrão) |
||
|
Restringe a |
Recomendações para o uso de formatOptions
A Trident recomenda a seguinte opção para agilizar o processo de formatação:
-e nodiscard:
-
Manter, não tente descartar blocos no tempo mkfs (descartar blocos inicialmente é útil em dispositivos de estado sólido e armazenamento esparso / thin-provisionado). Isso substitui a opção obsoleta "-K" e é aplicável a todos os sistemas de arquivos (xfs, ext3 e ext4).
Opções de configuração de back-end para volumes de provisionamento
Você pode controlar o provisionamento padrão usando essas opções na defaults
seção da configuração. Para obter um exemplo, consulte os exemplos de configuração abaixo.
Parâmetro | Descrição | Padrão |
---|---|---|
|
Alocação de espaço para LUNs |
"True" se especificado, defina como |
|
Modo de reserva de espaço; "nenhum" (fino) ou "volume" (grosso). Defina como |
"nenhum" |
|
Política de instantâneos a utilizar. Defina como |
"nenhum" |
|
Grupo de políticas de QoS a atribuir aos volumes criados. Escolha uma das qosPolicy ou adaptiveQosPolicy por pool de armazenamento/backend. O uso de grupos de política de QoS com Trident requer o ONTAP 9.8 ou posterior. Você deve usar um grupo de políticas de QoS não compartilhado e garantir que o grupo de políticas seja aplicado individualmente a cada componente. Um grupo de políticas de QoS compartilhado impõe o limite máximo da taxa de transferência total de todos os workloads. |
"" |
|
Grupo de políticas de QoS adaptável a atribuir para volumes criados. Escolha uma das qosPolicy ou adaptiveQosPolicy por pool de armazenamento/backend |
"" |
|
Porcentagem de volume reservado para snapshots. Não especifique para ASA R2. |
"0" se |
|
Divida um clone de seu pai na criação |
"falso" |
|
Ative a criptografia de volume do NetApp (NVE) no novo volume; o padrão é |
"False" se especificado, defina como |
|
Ativar encriptação LUKS. "Usar a configuração de chave unificada do Linux (LUKS)"Consulte a . A criptografia LUKS não é compatível com NVMe/TCP. |
"" definido como |
|
Política de disposição em camadas para usar "nenhum" não especifique para o ASA R2. |
|
|
Modelo para criar nomes de volume personalizados. |
"" |
Exemplos de provisionamento de volume
Aqui está um exemplo com padrões definidos:
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: trident_svm
username: admin
password: <password>
labels:
k8scluster: dev2
backend: dev2-sanbackend
storagePrefix: alternate-trident
debugTraceFlags:
api: false
method: true
defaults:
spaceReserve: volume
qosPolicy: standard
spaceAllocation: 'false'
snapshotPolicy: default
snapshotReserve: '10'
|
Para todos os volumes criados usando ontap-san o driver, o Trident adiciona uma capacidade extra de 10% ao FlexVol para acomodar os metadados do LUN. O LUN será provisionado com o tamanho exato que o usuário solicita no PVC. O Trident adiciona 10 por cento ao FlexVol (mostra como tamanho disponível no ONTAP). Os usuários agora terão a capacidade utilizável que solicitaram. Essa alteração também impede que LUNs fiquem somente leitura, a menos que o espaço disponível seja totalmente utilizado. Isto não se aplica à ONTAP-san-economia.
|
Para backends que definem `snapshotReserve`o , o Trident calcula o tamanho dos volumes da seguinte forma:
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
O 1,1 é o adicional de 10% que o Trident adiciona ao FlexVol para acomodar os metadados do LUN. Para snapshotReserve
5%, e o pedido de PVC é de 5GiB, o tamanho total do volume é de 5,79GiB e o tamanho disponível é de 5,5GiB. O volume show
comando deve mostrar resultados semelhantes a este exemplo:

Atualmente, o redimensionamento é a única maneira de usar o novo cálculo para um volume existente.
Exemplos mínimos de configuração
Os exemplos a seguir mostram configurações básicas que deixam a maioria dos parâmetros padrão. Esta é a maneira mais fácil de definir um backend.
|
Se você estiver usando o Amazon FSX no NetApp ONTAP com Trident, o NetApp recomenda que você especifique nomes DNS para LIFs em vez de endereços IP. |
Exemplo de SAN ONTAP
Esta é uma configuração básica usando ontap-san
o driver.
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_iscsi
labels:
k8scluster: test-cluster-1
backend: testcluster1-sanbackend
username: vsadmin
password: <password>
Exemplo de MetroCluster
Você pode configurar o back-end para evitar ter que atualizar manualmente a definição do back-end após o switchover e o switchback durante "Replicação e recuperação da SVM"o .
Para comutação e switchback contínuos, especifique o SVM usando managementLIF
e omite os svm
parâmetros. Por exemplo:
version: 1
storageDriverName: ontap-san
managementLIF: 192.168.1.66
username: vsadmin
password: password
Exemplo de economia de SAN ONTAP
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
username: vsadmin
password: <password>
Exemplo de autenticação baseada em certificado
Neste exemplo de configuração básica clientCertificate
, clientPrivateKey
e trustedCACertificate
(opcional, se estiver usando CA confiável) são preenchidos backend.json
e recebem os valores codificados em base64 do certificado do cliente, da chave privada e do certificado de CA confiável, respetivamente.
---
version: 1
storageDriverName: ontap-san
backendName: DefaultSANBackend
managementLIF: 10.0.0.1
svm: svm_iscsi
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
clientCertificate: ZXR0ZXJwYXB...ICMgJ3BhcGVyc2
clientPrivateKey: vciwKIyAgZG...0cnksIGRlc2NyaX
trustedCACertificate: zcyBbaG...b3Igb3duIGNsYXNz
Exemplos CHAP bidirecional
Esses exemplos criam um backend com useCHAP
definido como true
.
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_iscsi
labels:
k8scluster: test-cluster-1
backend: testcluster1-sanbackend
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
Exemplo de NVMe/TCP
Você precisa ter um SVM configurado com NVMe no back-end do ONTAP. Esta é uma configuração básica de back-end para NVMe/TCP.
---
version: 1
backendName: NVMeBackend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_nvme
username: vsadmin
password: password
sanType: nvme
useREST: true
Exemplo de SCSI em FC (FCP)
Você precisa ter um SVM configurado com FC no back-end do ONTAP. Essa é uma configuração básica de back-end para FC.
---
version: 1
backendName: fcp-backend
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_fc
username: vsadmin
password: password
sanType: fcp
useREST: true
Exemplo de configuração de backend com nameTemplate
---
version: 1
storageDriverName: ontap-san
backendName: ontap-san-backend
managementLIF: <ip address>
svm: svm0
username: <admin>
password: <password>
defaults:
nameTemplate: "{{.volume.Name}}_{{.labels.cluster}}_{{.volume.Namespace}}_{{.vo\
lume.RequestName}}"
labels:
cluster: ClusterA
PVC: "{{.volume.Namespace}}_{{.volume.RequestName}}"
Exemplo de formatOptions para o driver ONTAP-san-Economy
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: ""
svm: svm1
username: ""
password: "!"
storagePrefix: whelk_
debugTraceFlags:
method: true
api: true
defaults:
formatOptions: -E nodiscard
Exemplos de backends com pools virtuais
Nesses arquivos de definição de back-end de exemplo, padrões específicos são definidos para todos os pools de armazenamento, como spaceReserve
em nenhum, spaceAllocation
em falso e encryption
em falso. Os pools virtuais são definidos na seção armazenamento.
O Trident define rótulos de provisionamento no campo "Comentários". Os comentários são definidos nas cópias do FlexVol volume Trident todas as etiquetas presentes em um pool virtual para o volume de storage no provisionamento. Por conveniência, os administradores de storage podem definir rótulos por pool virtual e volumes de grupo por rótulo.
Nesses exemplos, alguns dos pools de armazenamento definem seus próprios spaceReserve
spaceAllocation
valores , e encryption
, e alguns pools substituem os valores padrão.
Exemplo de SAN ONTAP
---
version: 1
storageDriverName: ontap-san
managementLIF: 10.0.0.1
svm: svm_iscsi
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
defaults:
spaceAllocation: "false"
encryption: "false"
qosPolicy: standard
labels:
store: san_store
kubernetes-cluster: prod-cluster-1
region: us_east_1
storage:
- labels:
protection: gold
creditpoints: "40000"
zone: us_east_1a
defaults:
spaceAllocation: "true"
encryption: "true"
adaptiveQosPolicy: adaptive-extreme
- labels:
protection: silver
creditpoints: "20000"
zone: us_east_1b
defaults:
spaceAllocation: "false"
encryption: "true"
qosPolicy: premium
- labels:
protection: bronze
creditpoints: "5000"
zone: us_east_1c
defaults:
spaceAllocation: "true"
encryption: "false"
Exemplo de economia de SAN ONTAP
---
version: 1
storageDriverName: ontap-san-economy
managementLIF: 10.0.0.1
svm: svm_iscsi_eco
useCHAP: true
chapInitiatorSecret: cl9qxIm36DKyawxy
chapTargetInitiatorSecret: rqxigXgkesIpwxyz
chapTargetUsername: iJF4heBRT0TCwxyz
chapUsername: uh2aNCLSd6cNwxyz
username: vsadmin
password: <password>
defaults:
spaceAllocation: "false"
encryption: "false"
labels:
store: san_economy_store
region: us_east_1
storage:
- labels:
app: oracledb
cost: "30"
zone: us_east_1a
defaults:
spaceAllocation: "true"
encryption: "true"
- labels:
app: postgresdb
cost: "20"
zone: us_east_1b
defaults:
spaceAllocation: "false"
encryption: "true"
- labels:
app: mysqldb
cost: "10"
zone: us_east_1c
defaults:
spaceAllocation: "true"
encryption: "false"
- labels:
department: legal
creditpoints: "5000"
zone: us_east_1c
defaults:
spaceAllocation: "true"
encryption: "false"
Exemplo de NVMe/TCP
---
version: 1
storageDriverName: ontap-san
sanType: nvme
managementLIF: 10.0.0.1
svm: nvme_svm
username: vsadmin
password: <password>
useREST: true
defaults:
spaceAllocation: "false"
encryption: "true"
storage:
- labels:
app: testApp
cost: "20"
defaults:
spaceAllocation: "false"
encryption: "false"
Mapeie os backends para StorageClasses
As seguintes definições do StorageClass referem-se ao Exemplos de backends com pools virtuais. Usando o parameters.selector
campo, cada StorageClass chama quais pools virtuais podem ser usados para hospedar um volume. O volume terá os aspetos definidos no pool virtual escolhido.
-
O
protection-gold
StorageClass será mapeado para o primeiro pool virtualontap-san
no back-end. Esta é a única piscina que oferece proteção de nível dourado.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: csi.trident.netapp.io parameters: selector: "protection=gold" fsType: "ext4"
-
O
protection-not-gold
StorageClass será mapeado para o segundo e terceiro pool virtual noontap-san
back-end. Estas são as únicas piscinas que oferecem um nível de proteção diferente do ouro.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-not-gold provisioner: csi.trident.netapp.io parameters: selector: "protection!=gold" fsType: "ext4"
-
O
app-mysqldb
StorageClass será mapeado para o terceiro pool virtual noontap-san-economy
back-end. Este é o único pool que oferece configuração de pool de armazenamento para o aplicativo tipo mysqldb.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: csi.trident.netapp.io parameters: selector: "app=mysqldb" fsType: "ext4"
-
O
protection-silver-creditpoints-20k
StorageClass será mapeado para o segundo pool virtual noontap-san
back-end. Esta é a única piscina que oferece proteção de nível de prata e 20000 pontos de crédito.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-silver-creditpoints-20k provisioner: csi.trident.netapp.io parameters: selector: "protection=silver; creditpoints=20000" fsType: "ext4"
-
O
creditpoints-5k
StorageClass será mapeado para o terceiro pool virtual noontap-san
back-end e o quarto pool virtual noontap-san-economy
back-end. Estas são as únicas ofertas de pool com 5000 pontos de crédito.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: csi.trident.netapp.io parameters: selector: "creditpoints=5000" fsType: "ext4"
-
O
my-test-app-sc
StorageClass será mapeado para otestAPP
pool virtual noontap-san
driver comsanType: nvme`o . Esta é a única piscina que oferece `testApp
.--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: my-test-app-sc provisioner: csi.trident.netapp.io parameters: selector: "app=testApp" fsType: "ext4"
O Trident decidirá qual pool virtual é selecionado e garante que o requisito de armazenamento seja atendido.