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 |
"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 [mcc-best]. |
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
|
"" |
||
|
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 |
"verdadeiro" |
|
Modo de reserva de espaço; "nenhum" (fino) ou "volume" (grosso) |
"nenhum" |
|
Política de instantâneos a utilizar |
"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 |
"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 é |
"falso" |
|
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. |
"" |
|
Estilo de segurança para novos volumes |
|
|
Política de disposição em camadas para usar "nenhuma" |
"Somente snapshot" para configuração pré-ONTAP 9.5 SVM-DR |
|
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, recomendamos 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 economia de SAN ONTAP
--- version: 1 storageDriverName: ontap-san-economy managementLIF: 10.0.0.1 svm: svm_iscsi_eco username: vsadmin password: <password>
-
exemplo
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 dataLIF
parâmetros e. svm
Por exemplo:
--- version: 1 storageDriverName: ontap-san managementLIF: 192.168.1.66 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 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}}_{{.volume.RequestName}}" }, "labels": {"cluster": "ClusterA", "PVC": "{{.volume.Namespace}}_{{.volume.RequestName}}"}
Exemplo de formatOptions para o driver <code> ONTAP-san-economy</code>
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 no FlexVol. O Trident copia 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.