Exemplos e opções de configuração de SAN ONTAP
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 |
---|---|---|
|
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 |
|
Usar CHAP para autenticar iSCSI para drivers SAN ONTAP [Boolean] |
falso |
|
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 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 |
|
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.
|
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.
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.
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.
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 |
---|---|---|
|
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 |
"" |
|
Porcentagem de volume reservado para snapshots "0" |
Se |
|
Divida um clone de seu pai na criação |
"falso" |
|
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 . |
"" |
|
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 |
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" } }
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:
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 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 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"