Opções e exemplos de configuração do ONTAP SAN
Aprenda como criar e usar drivers ONTAP SAN com sua instalação do Trident. Esta seção fornece exemplos de configuração de backend e detalhes para mapear backends para StorageClasses.
"Sistemas ASA r2" diferem de outros sistemas ONTAP (ASA, AFF e FAS) na implementação de sua camada de storage. Essas variações impactam o uso de certos parâmetros conforme indicado. "Saiba mais sobre as diferenças entre sistemas ASA r2 e outros sistemas ONTAP".
|
|
Apenas o `ontap-san`driver (com os protocolos iSCSI, NVMe/TCP e FC) é compatível com sistemas ASA r2. |
Na configuração do backend do Trident, não é necessário especificar que seu sistema é ASA r2. Ao selecionar ontap-san como o storageDriverName, o Trident detecta automaticamente os sistemas ASA r2 ou outros sistemas ONTAP. Alguns parâmetros de configuração do backend não se aplicam a sistemas ASA r2, conforme indicado na tabela abaixo.
Opções de configuração do backend
Consulte a tabela a seguir para as opções de configuração do backend:
| Parâmetro | Descrição | Padrão | ||
|---|---|---|---|---|
|
Sempre 1 |
|||
|
Nome do driver de armazenamento |
|
||
|
Nome personalizado ou o storage backend |
Nome do driver + "_" + dataLIF |
||
|
Endereço IP de um cluster ou LIF de gerenciamento de SVM. É possível especificar um nome de domínio totalmente qualificado (FQDN). Pode ser configurado para usar endereços IPv6 se Trident foi instalado usando a flag IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como Para um switchover MetroCluster perfeito, consulte o Exemplo do MetroCluster.
|
"10.0.0.1", "[2001:1234:abcd::fefe]" |
||
|
Endereço IP do protocolo LIF. Pode ser configurado para usar endereços IPv6 se Trident foi instalado usando o parâmetro IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como |
Derivado pelo SVM |
||
|
Máquina virtual de storage a ser usada Omitir para MetroCluster. Consulte o Exemplo do MetroCluster. |
Derivado se uma SVM |
||
|
Use CHAP para autenticar iSCSI para drivers ONTAP SAN [parâmetro booleano]. Defina como |
|
||
|
Segredo do iniciador CHAP. Obrigatório se |
"" |
||
|
Conjunto de rótulos arbitrários formatados em JSON para aplicar aos volumes |
"" |
||
|
Segredo do iniciador do alvo CHAP. Obrigatório se |
"" |
||
|
Nome de usuário de entrada. Obrigatório se |
"" |
||
|
Nome de usuário de destino. Obrigató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 da 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. Para autenticação do Active Directory, consulte "Autentique o Trident em um SVM de backend usando credenciais do Active Directory". |
"" |
||
|
Senha necessária para se comunicar com o cluster ONTAP. Usada para autenticação baseada em credenciais. Para autenticação do Active Directory, consulte "Autentique o Trident em um SVM de backend usando credenciais do Active Directory". |
"" |
||
|
Máquina virtual de storage para usar |
Derivado se uma SVM |
||
|
Prefixo usado ao provisionar novos volumes no SVM. Não pode ser modificado posteriormente. Para atualizar este parâmetro, você precisará criar um novo backend. |
|
||
|
Agregado para provisionamento (opcional; se definido, deve ser atribuído à SVM). Para o
Não especifique para sistemas ASA r2. |
"" |
||
|
O provisionamento falhará se o uso ultrapassar essa porcentagem. Se você estiver usando um Amazon FSx para NetApp ONTAP backend, não especifique |
"" (não aplicado por padrão) |
||
|
O provisionamento falha se o tamanho do volume solicitado for superior a este valor. Também restringe o tamanho máximo dos volumes que gerencia para LUNs. |
"" (não aplicado por padrão) |
||
|
Número máximo de LUNs por FlexVol, deve estar no intervalo [50, 200] |
|
||
|
Sinalizadores de depuração para usar na resolução de problemas. Exemplo, {"api":false, "method":true} Não use a menos que esteja solucionando problemas e precise de um despejo de log detalhado. |
|
||
|
Parâmetro booleano para usar as APIs REST do ONTAP. `useREST`Quando definido como `true`, Trident usa as APIs REST do ONTAP para se comunicar com o backend; quando definido como `false`, Trident usa chamadas ONTAPI (ZAPI) para se comunicar com o backend. Este recurso requer ONTAP 9.11.1 ou posterior. Além disso, a função de login do ONTAP usada deve ter acesso ao aplicativo `ontapi`. Isso é atendido pelas funções predefinidas `vsadmin` e `cluster-admin`. A partir da versão 24.06 do Trident e ONTAP 9.15.1 ou posterior, `useREST`é definido como `true` por padrão; altere `useREST` para `false` para usar chamadas ONTAPI (ZAPI).
Se especificado, defina sempre como |
|
||
|
Use para selecionar |
|
||
|
Use Compatível para |
|||
|
Tamanho máximo solicitável de FlexVol ao usar LUNs no backend ontap-san-economy. |
"" (não aplicado por padrão) |
||
|
Restringe `ontap-san-economy`os backends de criar novos volumes FlexVol para conter seus LUNs. Somente FlexVols preexistentes são usados para provisionar novos PVs. |
Recomendações para uso de formatOptions
Trident recomenda as seguintes opções para agilizar o processo de formatação:
-
-E nodiscard (ext3, ext4): Não tente descartar blocos durante a criação do sistema de arquivos (o descarte inicial de blocos é útil em dispositivos de estado sólido e em storage esparso/com thin provisioning). Esta opção substitui a opção obsoleta "-K" e é aplicável aos sistemas de arquivos ext3 e ext4.
-
-K (xfs): Não tente descartar blocos durante a criação do sistema de arquivos (mkfs). Esta opção se aplica ao sistema de arquivos xfs.
Autentique o Trident em um SVM de backend usando credenciais do Active Directory
Você pode configurar Trident para autenticar em uma SVM de backend usando credenciais do Active Directory (AD). Antes que uma conta do AD possa acessar a SVM, você deve configurar o acesso do controlador de domínio do AD ao cluster ou à SVM. Para administração do cluster com uma conta do AD, você deve criar domain tunnel. Consulte "Configurar o acesso do controlador de domínio do Active Directory no ONTAP" para obter detalhes.
-
Configurar as definições do Domain Name System (DNS) para uma SVM de backend:
vserver services dns create -vserver <svm_name> -dns-servers <dns_server_ip1>,<dns_server_ip2> -
Execute o seguinte comando para criar uma conta de computador para a SVM no Active Directory:
vserver active-directory create -vserver DataSVM -account-name ADSERVER1 -domain demo.netapp.com -
Use este comando para criar um usuário ou grupo do AD para gerenciar o cluster ou SVM
security login create -vserver <svm_name> -user-or-group-name <ad_user_or_group> -application <application> -authentication-method domain -role vsadmin -
No arquivo de configuração do Trident backend, defina os parâmetros
usernameepasswordpara o nome de usuário ou grupo do AD e a senha, respectivamente.
Opções de configuração de backend para provisionamento de volumes
Você pode controlar o provisionamento padrão usando essas opções na seção defaults do arquivo de configuração. Para um exemplo, veja os exemplos de configuração abaixo.
| Parâmetro | Descrição | Padrão |
|---|---|---|
|
Alocação de espaço para LUNs |
"verdadeiro" Se especificado, defina como |
|
Modo de reserva de espaço; "nenhum" (com thin provisioning) ou "volume" (thick). Definido como |
"none" |
|
Política do Snapshot a ser usada. Definida como |
"none" |
|
Grupo de políticas de QoS a ser atribuído aos volumes criados. Escolha um dos qosPolicy ou adaptiveQosPolicy por pool de storage/backend. O uso de grupos de políticas de QoS com Trident requer 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 a cada componente individualmente. Um grupo de políticas de QoS compartilhado impõe o limite máximo para a taxa de transferência total de todas as cargas de trabalho. |
"" |
|
Grupo de políticas de QoS adaptável a ser atribuído aos volumes criados. Escolha uma de qosPolicy ou adaptiveQosPolicy por pool de storage/backend |
"" |
|
Percentual do volume reservado para snapshots. Não especificar para sistemas ASA r2. |
"0" se |
|
Separar um clone de seu progenitor no momento da criação |
"false" |
|
Habilite NetApp Volume Encryption (NVE) no novo volume; o padrão é |
"falso" Se especificado, defina como |
|
Ative a criptografia LUKS. Consulte "Use Linux Unified Key Setup (LUKS)". |
Defina como |
|
Política de tiering para usar "none" Não especificar para sistemas ASA r2. |
|
|
Modelo para criar nomes de volume personalizados. |
"" |
Exemplos de provisionamento de volume
Aqui está um exemplo com valores padrão 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 o ontap-san driver, Trident adiciona 10 por cento de capacidade extra ao FlexVol para acomodar os metadados do LUN. O LUN será provisionado com o tamanho exato que o usuário solicitar no PVC. Trident adiciona 10 por cento ao FlexVol (exibido como tamanho disponível no ONTAP). Os usuários agora receberão a quantidade de capacidade utilizável que solicitaram. Essa alteração também impede que os LUNs se tornem somente leitura, a menos que o espaço disponível esteja totalmente utilizado. Isso não se aplica ao ontap-san-economy.
|
Para backends que definem snapshotReserve, Trident calcula o tamanho dos volumes da seguinte forma:
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
O valor 1.1 representa os 10% adicionais que o Trident adiciona ao FlexVol para acomodar os metadados da LUN. Para snapshotReserve = 5%, e solicitação de PVC = 5 GiB, o tamanho total do volume é 5,79 GiB e o tamanho disponível é 5,5 GiB. O comando volume show deve exibir resultados semelhantes a este exemplo:
Atualmente, o redimensionamento é a única maneira de usar o novo cálculo para um existing volume.
Exemplos de configuração mínima
Os exemplos a seguir mostram configurações básicas que deixam a maioria dos parâmetros com os valores padrão. Esta é a maneira mais fácil de definir um backend.
|
|
Se você estiver usando Amazon FSx no NetApp ONTAP com Trident, NetApp recomenda que você especifique nomes DNS para LIFs em vez de endereços IP. |
Exemplo de ONTAP SAN
Esta é uma configuração básica usando o ontap-san 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 do MetroCluster
Você pode configurar o backend para evitar ter que atualizar manualmente a definição do backend após switchover e switchback durante "Replicação e recuperação de SVM".
Para switchover e switchback sem interrupções, especifique a SVM usando managementLIF e omita os parâmetros svm. Por exemplo:
version: 1
storageDriverName: ontap-san
managementLIF: 192.168.1.66
username: vsadmin
password: password
Exemplo de economia ONTAP SAN
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 uma CA confiável) são preenchidos em backend.json e recebem os valores codificados em base64 do certificado do cliente, da chave privada e do certificado da CA confiável, respectivamente.
---
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 bidirecionais CHAP
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 uma SVM configurada com NVMe no seu backend ONTAP. Esta é uma configuração básica de backend 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 sobre FC (FCP)
Você precisa ter uma SVM configurada com FC no seu ONTAP backend. Esta é uma configuração básica de backend 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}}"
formatOptions exemplo 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 backend de exemplo, valores padrão específicos são definidos para todos os pools de storage, como spaceReserve em none, spaceAllocation em false e encryption em false. Os pools virtuais são definidos na seção de storage.
Trident define rótulos de provisionamento no campo "Comentários". Os comentários são definidos no volume FlexVol; Trident copia todos os rótulos presentes em um pool virtual para o volume de storage durante o provisionamento. Para conveniência, administradores de storage podem definir rótulos por pool virtual e agrupar volumes por rótulo.
Nestes exemplos, alguns pools de storage definem seus próprios spaceReserve, spaceAllocation, e encryption valores, e alguns pools substituem os valores padrão.
Exemplo de ONTAP SAN
---
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 ONTAP SAN
---
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"
Mapear back-ends para StorageClasses
As seguintes definições de StorageClass referem-se ao Exemplos de backends com pools virtuais. Usando o campo parameters.selector, cada StorageClass especifica quais pools virtuais podem ser usados para hospedar um volume. O volume terá os aspectos definidos no pool virtual escolhido.
-
O
protection-goldStorageClass será mapeado para o primeiro pool virtual noontap-sanbackend. Este é o único pool que oferece proteção de nível ouro.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-goldStorageClass corresponderá ao segundo e terceiro pool virtual noontap-sanbackend. Esses são os únicos pools que oferecem um nível de proteção diferente de gold.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-mysqldbStorageClass será mapeado para o terceiro pool virtual noontap-san-economybackend. Este é o único pool que oferece configuração de pool de storage para o aplicativo do 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-20kStorageClass será mapeado para o segundo pool virtual noontap-sanbackend. Este é o único pool que oferece proteção de nível 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-5kStorageClass corresponderá ao terceiro pool virtual noontap-sanbackend e ao quarto pool virtual noontap-san-economybackend. Essas são as únicas ofertas de pool com 5000 creditpoints.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-scStorageClass será mapeado para otestAPPpool virtual noontap-sandriver comsanType: nvme. Este é o único pool que oferecetestApp.--- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: my-test-app-sc provisioner: csi.trident.netapp.io parameters: selector: "app=testApp" fsType: "ext4"
Trident decidirá qual pool virtual será selecionado e garantirá que o requisito de storage seja atendido.