Exemplos e opções de configuração do ONTAP nas
Saiba mais sobre como criar e usar drivers NAS 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 |
---|---|---|
|
Sempre 1 |
|
|
Nome do controlador de armazenamento |
"ONTAP-nas", "ONTAP-nas-economy", "ONTAP-nas-FlexGroup", "ONTAP-san", "ONTAP-san-economy" |
|
Nome personalizado ou back-end de storage |
Nome do driver |
|
Endereço IP de um cluster ou LIF de gerenciamento de SVM para switchover MetroCluster otimizado, você precisa especificar um LIF de gerenciamento de SVM. |
"10,0.0,1", "[2001:1234:abcd::fefe]" |
|
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 |
|
Ativar criação e atualização automática de políticas de exportação [Boolean] |
falso |
|
Lista de CIDR para filtrar IPs de nós do Kubernetes em relação ao |
["0,0.0,0/0", "::/0"]» |
|
Conjunto de rótulos arbitrários formatados em JSON para aplicar em volumes |
"" |
|
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 para se conetar ao cluster/SVM. Usado para autenticação baseada em credenciais |
|
|
Senha para se conectar ao cluster/SVM. Usado para autenticação baseada em credenciais |
|
|
Máquina virtual de armazenamento para usar |
Derivado se uma SVM |
|
Nome do grupo para volumes SAN a serem usados |
"Trident-<backend-UUID>" |
|
Prefixo usado ao provisionar novos volumes na SVM. Não pode ser atualizado depois de configurá-lo |
"Trident" |
|
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) |
|
Falha no provisionamento se o tamanho do volume solicitado estiver acima desse valor. |
"" (não aplicado por padrão) |
|
Máximo de LUNs por FlexVol, tem de estar no intervalo [50, 200] |
"100" |
|
Debug flags para usar ao solucionar problemas. Por exemplo, "api":false, "método":true" |
nulo |
|
Lista separada por vírgulas de opções de montagem NFS |
"" |
|
Qtrees máximos por FlexVol, têm de estar no intervalo [50, 300] |
"200" |
|
Parâmetro booleano para usar APIs REST do ONTAP. Pré-visualização técnica não suportada com o MetroCluster. |
falso |
Considerações sobre o <code>useREST</code>
|
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.
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.
|
Não use debugTraceFlags a menos que você esteja solucionando problemas e exija um despejo de log detalhado.
|
Ao criar um backend, lembre-se de que o dataLIF e storagePrefix não pode ser modificado após a criação. Para atualizar esses parâmetros, você precisará criar um novo backend.
|
Um nome de domínio totalmente qualificado (FQDN) pode ser especificado para a managementLIF
opção. Um FQDN também pode ser especificado para a dataLIF
opção, caso em que o FQDN será usado para as operações de montagem NFS. Dessa forma, você pode criar um DNS de round-robin para balanceamento de carga em vários LIFs de dados.
`managementLIF` Para todos os drivers ONTAP também pode ser definido como endereços IPv6. Certifique-se de instalar o Astra Trident com o `--use-ipv6` sinalizador. Deve-se ter cuidado para definir o `managementLIF` endereço IPv6 entre parênteses retos.
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.
|
Usando as autoExportPolicy
opções e autoExportCIDRs
, o CSI Trident pode gerenciar políticas de exportação automaticamente. Isso é compatível com todos os drivers ONTAP-nas-*.
Para o ontap-nas-economy
driver, a limitVolumeSize
opção também restringirá o tamanho máximo dos volumes que gerencia para qtrees e LUNs, e a qtreesPerFlexvol
opção permite personalizar o número máximo de qtrees por FlexVol.
O nfsMountOptions
parâmetro pode ser usado para especificar opções de montagem. As opções de montagem para volumes persistentes do Kubernetes normalmente são especificadas em classes de storage, mas se nenhuma opção de montagem for especificada em uma classe de storage, o Astra Trident voltará a usar as opções de montagem especificadas no arquivo de configuração do back-end de storage. Se nenhuma opção de montagem for especificada na classe de storage ou no arquivo de configuração, o Astra Trident não definirá nenhuma opção de montagem em um volume persistente associado.
O Astra Trident define rótulos de provisionamento no campo "Comentários" de todos os volumes criados usando(ontap-nas e(ontap-nas-flexgroup . Com base no driver usado, os comentários são definidos no FlexVol (ontap-nas ) ou no FlexGroup (ontap-nas-flexgroup ). O Astra Trident copiará todas as etiquetas presentes em um pool de storage para o volume de storage no momento em que ele for provisionado. Os administradores de storage podem definir rótulos por pool de storage e agrupar todos os volumes criados em um pool de storage. 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 |
---|---|---|
|
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 |
"" |
|
Grupo de políticas de QoS adaptável a atribuir para volumes criados. Escolha uma das qosPolicy ou adaptiveQosPolicy por pool de armazenamento/backend. Não suportado pela ONTAP-nas-Economy. |
"" |
|
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" |
|
Estilo de segurança para novos volumes |
"unix" |
|
Política de disposição em camadas para usar "nenhuma" |
"Somente snapshot" para configuração pré-ONTAP 9.5 SVM-DR |
UnixPermissions |
Modo para novos volumes |
"777" |
Snapshotdir |
Controla a visibilidade |
"falso" |
Política de exportação |
Política de exportação a utilizar |
"padrão" |
Estilo de segurança |
Estilo de segurança para novos volumes |
"unix" |
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-nas", "backendName": "customBackendName", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "labels": {"k8scluster": "dev1", "backend": "dev1-nasbackend"}, "svm": "trident_svm", "username": "cluster-admin", "password": "password", "limitAggregateUsage": "80%", "limitVolumeSize": "50Gi", "nfsMountOptions": "nfsvers=4", "debugTraceFlags": {"api":false, "method":true}, "defaults": { "spaceReserve": "volume", "qosPolicy": "premium", "exportPolicy": "myk8scluster", "snapshotPolicy": "default", "snapshotReserve": "10" } }
Para ontap-nas
e ontap-nas-flexgroups
, o Astra Trident agora usa um novo cálculo para garantir que o FlexVol seja dimensionado corretamente com a porcentagem de snapshotServe e PVC. Quando o usuário solicita um PVC, o Astra Trident cria o FlexVol original com mais espaço usando o novo cálculo. Esse cálculo garante que o usuário receba o espaço gravável que solicitou no PVC, e não menor espaço do que o que solicitou. Antes de v21,07, quando o usuário solicita um PVC (por exemplo, 5GiB), com o snapshotServe a 50 por cento, eles recebem apenas 2,5GiBMB de espaço gravável. Isso ocorre porque o que o usuário solicitou é todo o volume e snapshotReserve
é uma porcentagem disso. Com o Trident 21,07, o que o usuário solicita é o espaço gravável e o Astra Trident define o snapshotReserve
número como a porcentagem de todo o volume. Isto não se aplica ontap-nas-economy
ao . Veja o exemplo a seguir para ver como isso funciona:
O cálculo é o seguinte:
Total volume size = (PVC requested size) / (1 - (snapshotReserve percentage) / 100)
Para snapshotServe de 50%, e a solicitação de PVC de 5GiB, o volume total é de 2/.5 10GiB e o tamanho disponível é de 5GiB, o que o usuário solicitou na solicitação de PVC. O volume show
comando deve mostrar resultados semelhantes a este exemplo:
Os back-ends existentes de instalações anteriores provisionarão volumes conforme explicado acima ao atualizar o Astra Trident. Para volumes que você criou antes da atualização, você deve redimensionar seus volumes para que a alteração seja observada. Por exemplo, um PVC de 2GiB mm com snapshotReserve=50
anterior resultou em um volume que fornece 1GiB GB de espaço gravável. Redimensionar o volume para 3GiB, por exemplo, fornece ao aplicativo 3GiBMB de espaço gravável em um volume de 6 GiB.
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, a recomendação é especificar nomes DNS para LIFs em vez de endereços IP. |
ontap-nas
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, "backendName": "DefaultNASBackend", "storageDriverName": "ontap-nas", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.15", "svm": "nfs_svm", "clientCertificate": "ZXR0ZXJwYXB...ICMgJ3BhcGVyc2", "clientPrivateKey": "vciwKIyAgZG...0cnksIGRlc2NyaX", "trustedCACertificate": "zcyBbaG...b3Igb3duIGNsYXNz", "storagePrefix": "myPrefix_" }
ontap-nas
driver com política de exportação automática
Este exemplo mostra como você pode instruir o Astra Trident a usar políticas de exportação dinâmicas para criar e gerenciar a política de exportação automaticamente. Isso funciona da mesma forma para os ontap-nas-economy
drivers e ontap-nas-flexgroup
.
{ "version": 1, "storageDriverName": "ontap-nas", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "svm": "svm_nfs", "labels": {"k8scluster": "test-cluster-east-1a", "backend": "test1-nasbackend"}, "autoExportPolicy": true, "autoExportCIDRs": ["10.0.0.0/24"], "username": "admin", "password": "secret", "nfsMountOptions": "nfsvers=4", }
ontap-nas-flexgroup
condutor
{ "version": 1, "storageDriverName": "ontap-nas-flexgroup", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "labels": {"k8scluster": "test-cluster-east-1b", "backend": "test1-ontap-cluster"}, "svm": "svm_nfs", "username": "vsadmin", "password": "secret", }
ontap-nas
Motorista com IPv6
{ "version": 1, "storageDriverName": "ontap-nas", "backendName": "nas_ipv6_backend", "managementLIF": "[5c5d:5edf:8f:7657:bef8:109b:1b41:d491]", "labels": {"k8scluster": "test-cluster-east-1a", "backend": "test1-ontap-ipv6"}, "svm": "nas_ipv6_svm", "username": "vsadmin", "password": "netapp123" }
ontap-nas-economy
condutor
{ "version": 1, "storageDriverName": "ontap-nas-economy", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "svm": "svm_nfs", "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.
ontap-nas
condutor
{ { "version": 1, "storageDriverName": "ontap-nas", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "svm": "svm_nfs", "username": "admin", "password": "secret", "nfsMountOptions": "nfsvers=4", "defaults": { "spaceReserve": "none", "encryption": "false", "qosPolicy": "standard" }, "labels":{"store":"nas_store", "k8scluster": "prod-cluster-1"}, "region": "us_east_1", "storage": [ { "labels":{"app":"msoffice", "cost":"100"}, "zone":"us_east_1a", "defaults": { "spaceReserve": "volume", "encryption": "true", "unixPermissions": "0755", "adaptiveQosPolicy": "adaptive-premium" } }, { "labels":{"app":"slack", "cost":"75"}, "zone":"us_east_1b", "defaults": { "spaceReserve": "none", "encryption": "true", "unixPermissions": "0755" } }, { "labels":{"app":"wordpress", "cost":"50"}, "zone":"us_east_1c", "defaults": { "spaceReserve": "none", "encryption": "true", "unixPermissions": "0775" } }, { "labels":{"app":"mysqldb", "cost":"25"}, "zone":"us_east_1d", "defaults": { "spaceReserve": "volume", "encryption": "false", "unixPermissions": "0775" } } ] }
ontap-nas-flexgroup
condutor
{ "version": 1, "storageDriverName": "ontap-nas-flexgroup", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "svm": "svm_nfs", "username": "vsadmin", "password": "secret", "defaults": { "spaceReserve": "none", "encryption": "false" }, "labels":{"store":"flexgroup_store", "k8scluster": "prod-cluster-1"}, "region": "us_east_1", "storage": [ { "labels":{"protection":"gold", "creditpoints":"50000"}, "zone":"us_east_1a", "defaults": { "spaceReserve": "volume", "encryption": "true", "unixPermissions": "0755" } }, { "labels":{"protection":"gold", "creditpoints":"30000"}, "zone":"us_east_1b", "defaults": { "spaceReserve": "none", "encryption": "true", "unixPermissions": "0755" } }, { "labels":{"protection":"silver", "creditpoints":"20000"}, "zone":"us_east_1c", "defaults": { "spaceReserve": "none", "encryption": "true", "unixPermissions": "0775" } }, { "labels":{"protection":"bronze", "creditpoints":"10000"}, "zone":"us_east_1d", "defaults": { "spaceReserve": "volume", "encryption": "false", "unixPermissions": "0775" } } ] }
ontap-nas-economy
condutor
{ "version": 1, "storageDriverName": "ontap-nas-economy", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "svm": "svm_nfs", "username": "vsadmin", "password": "secret", "defaults": { "spaceReserve": "none", "encryption": "false" }, "labels":{"store":"nas_economy_store"}, "region": "us_east_1", "storage": [ { "labels":{"department":"finance", "creditpoints":"6000"}, "zone":"us_east_1a", "defaults": { "spaceReserve": "volume", "encryption": "true", "unixPermissions": "0755" } }, { "labels":{"department":"legal", "creditpoints":"5000"}, "zone":"us_east_1b", "defaults": { "spaceReserve": "none", "encryption": "true", "unixPermissions": "0755" } }, { "labels":{"department":"engineering", "creditpoints":"3000"}, "zone":"us_east_1c", "defaults": { "spaceReserve": "none", "encryption": "true", "unixPermissions": "0775" } }, { "labels":{"department":"humanresource", "creditpoints":"2000"}, "zone":"us_east_1d", "defaults": { "spaceReserve": "volume", "encryption": "false", "unixPermissions": "0775" } } ] }
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 virtualontap-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 virtualontap-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 virtualontap-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 virtualontap-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 virtualontap-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"