Skip to main content
Uma versão mais recente deste produto está disponível.
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Opções de configuração e exemplos

Colaboradores

Saiba mais sobre como criar e usar drivers SAN ONTAP com sua instalação do Astra Trident. Esta seção fornece exemplos de configuração de back-end e detalhes sobre como 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

version

Sempre 1

storageDriverName

Nome do controlador de armazenamento

"ONTAP-nas", "ONTAP-nas-economy", "ONTAP-nas-FlexGroup", "ONTAP-san", "ONTAP-san-economy"

backendName

Nome personalizado ou back-end de storage

Nome do driver

managementLIF

Endereço IP de um cluster ou LIF de gerenciamento de SVM

"10,0.0,1", "[2001:1234:abcd::fefe]"

dataLIF

Endereço IP do protocolo LIF. Use suportes quadrados para IPv6. Não pode ser atualizado depois de configurá-lo

Derivado do SVM, a menos que especificado

useCHAP

Usar CHAP para autenticar iSCSI para drivers SAN ONTAP [Boolean]

falso

chapInitiatorSecret

Segredo do iniciador CHAP. Necessário se useCHAP=true

""

labels

Conjunto de rótulos arbitrários formatados em JSON para aplicar em volumes

""

chapTargetInitiatorSecret

Segredo do iniciador de destino CHAP. Necessário se useCHAP=true

""

chapUsername

Nome de utilizador de entrada. Necessário se useCHAP=true

""

chapTargetUsername

Nome de utilizador alvo. Necessário se useCHAP=true

""

clientCertificate

Valor codificado em base64 do certificado do cliente. Usado para autenticação baseada em certificado

""

clientPrivateKey

Valor codificado em base64 da chave privada do cliente. Usado para autenticação baseada em certificado

""

trustedCACertificate

Valor codificado em base64 do certificado CA confiável. Opcional. Usado para autenticação baseada em certificado

""

username

Nome de usuário para se conetar ao cluster/SVM. Usado para autenticação baseada em credenciais

""

password

Senha para se conectar ao cluster/SVM. Usado para autenticação baseada em credenciais

""

svm

Máquina virtual de armazenamento para usar

Derivado se uma SVM managementLIF for especificada

igroupName

Nome do grupo para volumes SAN a serem usados

"Trident-<backend-UUID>"

storagePrefix

Prefixo usado ao provisionar novos volumes na SVM. Não pode ser atualizado depois de configurá-lo

"Trident"

limitAggregateUsage

Falha no provisionamento se o uso estiver acima dessa porcentagem. Não se aplica ao Amazon FSX for ONTAP

"" (não aplicado por padrão)

limitVolumeSize

Falha no provisionamento se o tamanho do volume solicitado estiver acima desse valor.

"" (não aplicado por padrão)

lunsPerFlexvol

Máximo de LUNs por FlexVol, tem de estar no intervalo [50, 200]

"100"

debugTraceFlags

Debug flags para usar ao solucionar problemas. Por exemplo, "api":false, "método":true"

nulo

useREST

Parâmetro booleano para usar APIs REST do ONTAP. Pré-visualização técnica

falso

Observação useREST é fornecido como uma prévia técnica recomendada para ambientes de teste e não para cargas de trabalho de produção. Quando definido como true, o Astra Trident usará as APIS REST do ONTAP para se comunicar com o back-end. Esse recurso requer o ONTAP 9.9 e posterior. Além disso, a função de login do ONTAP usada deve ter acesso ao ontap aplicativo. Isso é satisfeito com as funções e cluster-admin predefinidas vsadmin.

Para se comunicar com o cluster ONTAP, você deve fornecer os parâmetros de autenticação. Esse pode ser o nome de usuário/senha para um login de segurança ou um certificado instalado.

Aviso Se você estiver usando um back-end do Amazon FSX for NetApp ONTAP, não especifique o limitAggregateUsage parâmetro. fsxadmin`As funções e `vsadmin fornecidas pelo Amazon FSX para NetApp ONTAP não contêm as permissões de acesso necessárias para recuperar o uso agregado e limitá-lo por meio do Astra Trident.
Aviso Não use debugTraceFlags a menos que você esteja solucionando problemas e exija um despejo de log detalhado.

Para os ontap-san drivers, o padrão é usar todos os IPs de LIF de dados da SVM e usar multipath iSCSI. Especificar um endereço IP para o dataLIF para os ontap-san drivers obriga-os a desabilitar o multipath e usar apenas o endereço especificado.

Observação Ao criar um backend, lembre-se disso dataLIF e storagePrefix não pode ser modificado após a criação. Para atualizar esses parâmetros, você precisará criar um novo backend.

igroupName Pode ser definido como um grupo que já está criado no cluster ONTAP. Se não for especificado, o Astra Trident cria automaticamente um grupo chamado Trident-<backend-UUID>. Se estiver fornecendo um nome de grupo predefinido, o NetApp recomenda o uso de um grupo por cluster do Kubernetes, se o SVM for compartilhado entre ambientes. Isso é necessário para que o Astra Trident mantenha automaticamente adições/exclusões ao IQN.

Os backends também podem ter grupos atualizados após a criação:

  • O igroup Name pode ser atualizado para apontar para um novo igroup que é criado e gerenciado no SVM fora do Astra Trident.

  • O igroupName pode ser omitido. Nesse caso, o Astra Trident criará e gerenciará um grupo Trident-<backend-UUID> automaticamente.

Em ambos os casos, os anexos de volume continuarão a ser acessíveis. Futuros anexos de volume usarão o igroup atualizado. Esta atualização não interrompe o acesso aos volumes presentes no back-end.

Um nome de domínio totalmente qualificado (FQDN) pode ser especificado para a managementLIF opção.

`managementLIF` Para todos os drivers ONTAP também pode ser definido como endereços IPv6. Certifique-se de que instala o Trident com o `--use-ipv6` sinalizador. Deve-se ter cuidado para definir `managementLIF` o endereço IPv6 entre parênteses retos.
Aviso Ao usar endereços IPv6, certifique-se de managementLIF que e dataLIF (se incluídos na definição do backend) estejam definidos entre colchetes, como [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]. Se dataLIF não for fornecido, o Astra Trident irá buscar os LIFs de dados do IPv6 do SVM.

Para habilitar os drivers ONTAP-san para usar o CHAP, defina o useCHAP parâmetro como true em sua definição de back-end. Em seguida, o Astra Trident configurará e usará CHAP bidirecional como a autenticação padrão para a SVM fornecida no back-end. "aqui"Consulte para saber como funciona.

Para ontap-san-economy o driver, a limitVolumeSize opção também restringirá o tamanho máximo dos volumes que gerencia para qtrees e LUNs.

Observação O Astra Trident define rótulos de provisionamento no campo "Comentários" de todos os volumes criados usando ontap-san o driver. Para cada volume criado, o campo "Comentários" no FlexVol será preenchido com todas as etiquetas presentes no pool de armazenamento em que ele é colocado. Os administradores de armazenamento podem definir rótulos por pool de armazenamento e agrupar todos os volumes criados em um pool de armazenamento. Isso fornece uma maneira conveniente de diferenciar volumes com base em um conjunto de rótulos personalizáveis que são fornecidos na configuração de back-end.

Opções de configuração de back-end para volumes de provisionamento

Você pode controlar como cada volume é provisionado por padrão usando essas opções em uma seção especial da configuração. Para obter um exemplo, consulte os exemplos de configuração abaixo.

Parâmetro Descrição Padrão

spaceAllocation

Alocação de espaço para LUNs

"verdadeiro"

spaceReserve

Modo de reserva de espaço; "nenhum" (fino) ou "volume" (grosso)

"nenhum"

snapshotPolicy

Política de instantâneos a utilizar

"nenhum"

qosPolicy

Grupo de políticas de QoS a atribuir aos volumes criados. Escolha uma das qosPolicy ou adaptiveQosPolicy por pool de armazenamento/backend

""

adaptiveQosPolicy

Grupo de políticas de QoS adaptável a atribuir para volumes criados. Escolha uma das qosPolicy ou adaptiveQosPolicy por pool de armazenamento/backend

""

snapshotReserve

Porcentagem de volume reservado para snapshots "0"

Se snapshotPolicy é "nenhum", então ""

splitOnClone

Divida um clone de seu pai na criação

"falso"

splitOnClone

Divida um clone de seu pai na criação

"falso"

encryption

Ative a criptografia de volume do NetApp

"falso"

securityStyle

Estilo de segurança para novos volumes

"unix"

tieringPolicy

Política de disposição em camadas para usar "nenhuma"

"Somente snapshot" para configuração pré-ONTAP 9.5 SVM-DR

Observação O uso de grupos de política de QoS com o Astra Trident requer o ONTAP 9.8 ou posterior. Recomenda-se usar um grupo de políticas QoS não compartilhado e garantir que o grupo de políticas seja aplicado individualmente a cada componente. Um grupo de política de QoS compartilhado aplicará o limite máximo da taxa de transferência total de todos os workloads.

Aqui está um exemplo com padrões definidos:

{
 "version": 1,
 "storageDriverName": "ontap-san",
 "managementLIF": "10.0.0.1",
 "dataLIF": "10.0.0.2",
 "svm": "trident_svm",
 "username": "admin",
 "password": "password",
 "labels": {"k8scluster": "dev2", "backend": "dev2-sanbackend"},
 "storagePrefix": "alternate-trident",
 "igroupName": "custom",
 "debugTraceFlags": {"api":false, "method":true},
 "defaults": {
     "spaceReserve": "volume",
     "qosPolicy": "standard",
     "spaceAllocation": "false",
     "snapshotPolicy": "default",
     "snapshotReserve": "10"
 }
}
Observação Para todos os volumes criados com ontap-san o driver, o Astra 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 Astra Trident adiciona 10% 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 Astra 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 10% adicional que o Astra 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:

Mostra a saída do comando volume show.

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.

Observação Se você estiver usando o Amazon FSX no NetApp ONTAP com Astra Trident, a recomendação é especificar nomes DNS para LIFs em vez de endereços IP.

ontap-san driver com autenticação baseada em certificado

Este é um exemplo de configuração de back-end mínimo. 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",
    "dataLIF": "10.0.0.3",
    "svm": "svm_iscsi",
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "clientCertificate": "ZXR0ZXJwYXB...ICMgJ3BhcGVyc2",
    "clientPrivateKey": "vciwKIyAgZG...0cnksIGRlc2NyaX",
    "trustedCACertificate": "zcyBbaG...b3Igb3duIGNsYXNz"
}

ontap-san Driver com CHAP bidirecional

Este é um exemplo de configuração de back-end mínimo. Essa configuração básica cria um ontap-san back-end com useCHAP definido como true.

{
    "version": 1,
    "storageDriverName": "ontap-san",
    "managementLIF": "10.0.0.1",
    "dataLIF": "10.0.0.3",
    "svm": "svm_iscsi",
    "labels": {"k8scluster": "test-cluster-1", "backend": "testcluster1-sanbackend"},
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret"
}

ontap-san-economy condutor

{
    "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",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret"
}

Exemplos de backends com pools de armazenamento virtual

No arquivo de definição de back-end de exemplo mostrado abaixo, 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 de armazenamento virtual são definidos na seção armazenamento.

Neste exemplo, alguns dos conjuntos de armazenamento definem os seus próprios spaceReserve spaceAllocation valores , e encryption , e alguns conjuntos substituem os valores predefinidos acima.

{
    "version": 1,
    "storageDriverName": "ontap-san",
    "managementLIF": "10.0.0.1",
    "dataLIF": "10.0.0.3",
    "svm": "svm_iscsi",
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret",

    "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"
            }
        }
    ]
}

Aqui está um exemplo iSCSI para ontap-san-economy o driver:

{
    "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",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret",

    "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"
            }
        }
    ]
}

Mapeie os backends para StorageClasses

As seguintes definições do StorageClass referem-se aos pools de armazenamento virtual acima. Usando o parameters.selector campo, cada StorageClass chama qual(s) pool(s) virtual(s) pode(m) ser(ão) usado(s) para hospedar um volume. O volume terá os aspetos definidos no pool virtual escolhido.

  • O primeiro StorageClass ) (protection-gold`será mapeado para o primeiro e segundo pool de armazenamento virtual `ontap-nas-flexgroup no back-end e o primeiro pool de armazenamento virtual ontap-san no back-end. Estas são as únicas piscinas que oferecem proteção de nível de ouro.

  • O segundo StorageClass ) (protection-not-gold`será mapeado para o terceiro, quarto pool de armazenamento virtual no `ontap-nas-flexgroup back-end e o segundo, terceiro pool de armazenamento virtual ontap-san no back-end. Estas são as únicas piscinas que oferecem um nível de proteção diferente do ouro.

  • O terceiro StorageClass ) (app-mysqldb`será mapeado para o quarto pool de armazenamento virtual no `ontap-nas back-end e o terceiro pool de armazenamento virtual ontap-san-economy no back-end. Estes são os únicos pools que oferecem configuração de pool de armazenamento para o aplicativo do tipo mysqldb.

  • O quarto StorageClass ) (protection-silver-creditpoints-20k`será mapeado para o terceiro pool de armazenamento virtual no `ontap-nas-flexgroup back-end e o segundo pool de armazenamento virtual ontap-san no back-end. Estas são as únicas piscinas que oferecem proteção de nível dourado em 20000 pontos de crédito.

  • O quinto StorageClass ) (creditpoints-5k`será mapeado para o segundo pool de armazenamento virtual `ontap-nas-economy no back-end e o terceiro pool de armazenamento virtual ontap-san no back-end. Estas são as únicas ofertas de pool em 5000 pontos de crédito.

O Astra Trident decidirá qual pool de storage virtual está selecionado e garantirá que o requisito de storage seja atendido.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: protection-gold
provisioner: netapp.io/trident
parameters:
  selector: "protection=gold"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: protection-not-gold
provisioner: netapp.io/trident
parameters:
  selector: "protection!=gold"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: app-mysqldb
provisioner: netapp.io/trident
parameters:
  selector: "app=mysqldb"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: protection-silver-creditpoints-20k
provisioner: netapp.io/trident
parameters:
  selector: "protection=silver; creditpoints=20000"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: creditpoints-5k
provisioner: netapp.io/trident
parameters:
  selector: "creditpoints=5000"
  fsType: "ext4"