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 armazenamento. Essas variações afetam o uso de certos parâmetros, conforme indicado. "Saiba mais sobre as diferenças entre os sistemas ASA r2 e outros sistemas ONTAP.".
|
|
Somente o ontap-san O driver (com protocolos iSCSI e NVMe/TCP) é compatível com sistemas ASA r2.
|
Na configuração do backend Trident , não é necessário especificar que seu sistema é um ASA r2. Ao selecionar ontap-san como o storageDriverName O Trident detecta automaticamente o ASA r2 ou o sistema ONTAP tradicional. Alguns parâmetros de configuração de backend não se aplicam aos sistemas ASA r2, conforme indicado na tabela abaixo.
Opções de configuração do backend
Consulte a tabela a seguir para obter 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 backend de armazenamento |
Nome do motorista + "_" + 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 o Trident foi instalado usando a opção IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como por exemplo: Para uma transição perfeita para o MetroCluster , consulte oExemplo MetroCluster .
|
"10.0.0.1", "[2001:1234:abcd::fefe]" |
||
|
Endereço IP do protocolo LIF. Pode ser configurado para usar endereços IPv6 se o Trident foi instalado usando a opção IPv6. Os endereços IPv6 devem ser definidos entre colchetes, como por exemplo: |
Derivado pelo SVM |
||
|
Máquina virtual de armazenamento a ser usada Omitir para Metrocluster. Veja oExemplo MetroCluster . |
Derivado de uma SVM |
||
|
Usar CHAP para autenticar iSCSI para drivers ONTAP SAN [Booleano]. Definir para |
|
||
|
Segredo do iniciador CHAP. Obrigatório se |
"" |
||
|
Conjunto de rótulos arbitrários formatados em JSON para aplicar aos volumes |
"" |
||
|
Segredo iniciador do alvo CHAP. Obrigatório se |
"" |
||
|
Nome de usuário de entrada. Obrigatório se |
"" |
||
|
Nome de usuário alvo. Obrigatório se |
"" |
||
|
Valor do certificado do cliente codificado em Base64. Utilizado para autenticação baseada em certificado. |
"" |
||
|
Valor da chave privada do cliente codificado em Base64. Utilizado para autenticação baseada em certificado. |
"" |
||
|
Valor codificado em Base64 do certificado da Autoridade Certificadora (CA) confiável. Opcional. Utilizado 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 "Autenticar o Trident em um SVM de backend usando credenciais do Active Directory". |
"" |
||
|
Senha necessária para se comunicar com o cluster ONTAP . Usado para autenticação baseada em credenciais. Para autenticação do Active Directory, consulte "Autenticar o Trident em um SVM de backend usando credenciais do Active Directory". |
"" |
||
|
Máquina virtual de armazenamento para usar |
Derivado de uma SVM |
||
|
Prefixo usado ao provisionar novos volumes no SVM. Não pode ser modificado posteriormente. Para atualizar esse parâmetro, você precisará criar um novo backend. |
|
||
|
Agregado para provisionamento (opcional; se definido, deve ser atribuído à SVM). Para o
Não especificar para sistemas ASA r2. |
"" |
||
|
O provisionamento falhará se a utilização for superior a esta percentagem. Se você estiver usando um backend Amazon FSx for NetApp ONTAP , não especifique. |
"" (não aplicado por padrão) |
||
|
O provisionamento falhará 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 a serem usados na resolução de problemas. Exemplo: {"api":false, "method":true} Não utilize a menos que esteja solucionando problemas e precise de um despejo de log detalhado. |
|
||
|
Parâmetro booleano para usar APIs REST do ONTAP . `useREST`Quando definido para `true` O Trident usa APIs REST do ONTAP para se comunicar com o backend; quando configurado para `false` O Trident utiliza chamadas ONTAPI (ZAPI) para se comunicar com o backend. Este recurso requer o ONTAP 9.11.1 e posterior. Além disso, a função de login do ONTAP utilizada deve ter acesso ao `ontapi` aplicativo. Isso é satisfeito pelo predefinido `vsadmin` e `cluster-admin` papéis. A partir da versão Trident 24.06 e do ONTAP 9.15.1 ou posterior, `useREST` está definido para `true` por padrão; alterar `useREST` para `false` para usar chamadas ONTAPI (ZAPI). `useREST`Está totalmente qualificado para NVMe/TCP.
Se especificado, sempre defina como |
|
||
|
Use para selecionar |
`iscsi`se estiver em branco |
||
|
Usar Compatível com |
|||
|
Tamanho máximo de FlexVol solicitável ao usar LUNs no backend ontap-san-economy. |
"" (não aplicado por padrão) |
||
|
Restringe |
Recomendações para usar formatOptions
A Trident recomenda a seguinte opção para agilizar o processo de formatação:
-E nodiscard:
-
Mantenha os blocos salvos e não tente descartá-los durante a criação do sistema de arquivos (o descarte inicial de blocos é útil em dispositivos de estado sólido e em armazenamento com provisionamento esparso/dinâmico). Esta opção substitui a opção obsoleta "-K" e é aplicável a todos os sistemas de arquivos (xfs, ext3 e ext4).
Autenticar o Trident em um SVM de backend usando credenciais do Active Directory
Você pode configurar o Trident para autenticar em um SVM de backend usando credenciais do Active Directory (AD). Antes que uma conta do AD possa acessar o SVM, você deve configurar o acesso do controlador de domínio do AD ao cluster ou SVM. Para administração de cluster com uma conta do AD, você deve criar um túnel de domínio. Consulte "Configurar o acesso do controlador de domínio do Active Directory no ONTAP" para mais detalhes.
-
Configurar as definições do Sistema de Nomes de Domínio (DNS) para um 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 o 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 backend do Trident , defina o
usernameepasswordparâmetros para o nome do usuário ou grupo do AD e senha, respectivamente.
Opções de configuração de backend para provisionamento de volumes
Você pode controlar o provisionamento padrão usando essas opções em defaults seção da configuração. Para ver um exemplo, consulte 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" (fino) ou "volume" (grosso). Definir para |
"nenhum" |
|
Política de instantâneo a ser utilizada. Definir para |
"nenhum" |
|
Grupo de políticas de QoS a ser atribuído aos volumes criados. Escolha uma das opções qosPolicy ou adaptiveQosPolicy para cada pool de armazenamento/backend. A utilização de grupos de políticas de QoS com o 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 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 adaptativas a serem atribuídas aos volumes criados. Escolha qosPolicy ou adaptiveQosPolicy por pool de armazenamento/backend. |
"" |
|
Percentagem do volume reservada para instantâneos. Não especificar para sistemas ASA r2. |
"0" se |
|
Separar um clone de seu progenitor no momento da criação. |
"falso" |
|
Ative a Criptografia de Volume NetApp (NVE) no novo volume; o padrão é |
"falso" Se especificado, defina como |
|
Ative a criptografia LUKS. Consulte"Use o Linux Unified Key Setup (LUKS)" . |
"" Definido para |
|
Política de escalonamento para usar "nenhum" Não especificar para sistemas ASA r2. |
|
|
Modelo para criar nomes de volume personalizados. |
"" |
Exemplos de provisionamento em 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 O driver Trident adiciona 10% a mais de capacidade ao FlexVol para acomodar os metadados do LUN. O LUN será provisionado com o tamanho exato que o usuário solicitar no PVC. O Trident adiciona 10% ao FlexVol (mostrado 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 as LUNs se tornem somente leitura, a menos que o espaço disponível esteja totalmente utilizado. Isso não se aplica a ontap-san-economy.
|
Para back-ends que definem snapshotReserve 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 representa os 10% extras que a Trident adiciona ao FlexVol para acomodar os metadados do 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 volume show O comando deve exibir resultados semelhantes a este exemplo:
Atualmente, o redimensionamento é a única maneira de usar o novo cálculo para um volume existente.
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 o Amazon FSx no NetApp ONTAP com Trident, a 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 o ontap-san motorista.
---
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 MetroCluster
Você pode configurar o backend para evitar a necessidade de atualizar manualmente a definição do backend após a troca de modo (switchover) e o retorno ao modo anterior (switchback)."Replicação e recuperação de SVM" .
Para uma transição perfeita e um retorno perfeito, especifique a SVM usando managementLIF e omitir o svm parâmetros. 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 extraem 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 CHAP bidirecionais
Esses exemplos criam um backend com useCHAP definido para 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 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 em seu backend ONTAP . 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}}"
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 backend de exemplo, valores padrão específicos são definidos para todos os pools de armazenamento, como: spaceReserve em nenhum, spaceAllocation em falso, e encryption falso. Os pools virtuais são definidos na seção de armazenamento.
O Trident define os rótulos de provisionamento no campo "Comentários". Os comentários são definidos no FlexVol volume. O Trident copia todos os rótulos presentes em um pool virtual para o volume de armazenamento durante o provisionamento. Para maior conveniência, os administradores de armazenamento podem definir rótulos por pool virtual e agrupar volumes por rótulo.
Nesses exemplos, alguns dos pools de armazenamento definem seus próprios limites. spaceReserve , spaceAllocation , e encryption valores, 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 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 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 backends para StorageClasses
As seguintes definições de StorageClass referem-se a:Exemplos de backends com pools virtuais . Usando o parameters.selector No campo StorageClass, cada StorageClass especifica quais pools virtuais podem ser usados para hospedar um volume. O volume terá os aspectos definidos na piscina virtual escolhida.
-
O
protection-goldA StorageClass será mapeada para o primeiro pool virtual noontap-sanbackend. Esta é a única piscina 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-goldA StorageClass será mapeada para o segundo e terceiro pool virtual emontap-sanbackend. Essas são as únicas pools 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-mysqldbA StorageClass será mapeada para o terceiro pool virtual emontap-san-economybackend. Este é o único pool que oferece configuração de pool de armazenamento para aplicativos 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-20kA StorageClass será mapeada para o segundo pool virtual emontap-sanbackend. Este é o único pool que oferece proteção de nível prata e 20.000 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-5kA StorageClass será mapeada para o terceiro pool virtual emontap-sanbackend e o quarto pool virtual noontap-san-economybackend. Essas são as únicas ofertas de piscina 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-scA classe de armazenamento será mapeada para otestAPPpiscina virtual noontap-sanmotorista comsanType: nvme. Esta é a única piscina 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"
A Trident decidirá qual pool virtual será selecionado e garantirá que o requisito de armazenamento seja atendido.