Operable component owner: FILE
Perfil de competências: engenheiro de implementação Esta página fornece instruções para configurar o armazenamento de ficheiros e blocos para o cluster com o NetApp ONTAP.16.1. Configure os comutadores do cluster ONTAP
Verifique as palavras-passe
switch-xx-ad-stgesw01-admineswitch-xx-ad-stgesw02-admin(têm o mesmo valor). Se as palavras-passe não existirem, inicialize as credenciais e gere uma nova palavra-passe aleatória. Inicie sessão no comutador através da consola para definir a palavra-passe do administrador:# configure terminal # username ADMIN_USER password PASSWORD # exit # copy running-config startup-configGuarde as credenciais num segredo e anexe-as a
cell.yamlapiVersion: v1 kind: Secret metadata: name: netapp-ontap-cluster-switch-credential namespace: gpc-system type: Opaque stringData: username: ADMIN_USER password: PASSWORDExecute o seguinte comando para obter os nomes dos comutadores de armazenamento:
kubectl get storageswitch -n gpc-systemDeverá ver um resultado semelhante ao seguinte:
NAME AGE MANAGEMENTIP kb-ab-stgesw01 10d 192.0.2.0 kb-ab-stgesw02 10d 192.0.2.1Para cada comutador, siga os passos abaixo e use o nome do comutador.
Execute o seguinte comando para obter a configuração do comutador a partir do
switchstaticconfigCR:kubectl get switchstaticconfigs -n gpc-system $SWITCH_NAME-static-config -o yaml | /root/release/scripts/yq_linux_amd64 '.spec.config'Deverá ver um resultado semelhante ao seguinte:
banner motd ! ****************************************************************************** * NetApp Reference Configuration File (RCF) * * Switch : Nexus N9K-C9336C-FX2 * Filename : Nexus-9336C-RCF-v1.8-Cluster.txt * Date : 11-01-2021 * Version : v1.8 * * Port Usage: * Ports 1- 3: Breakout mode (4x10G) Intra-Cluster/HA Ports, int e1/1/1-4, e1/2/1-4, e1/3/1-4 * Ports 4- 6: Breakout mode (4x25G) Intra-Cluster/HA Ports, int e1/4/1-4, e1/5/1-4, e1/6/1-4 * Ports 7-34: 40/100GbE Intra-Cluster/HA Ports, int e1/7-34 * Ports 35-36: Intra-Cluster ISL Ports, int e1/35-36 * * Dynamic breakout commands: * 10G: interface breakout module 1 port <range> map 10g-4x * 25G: interface breakout module 1 port <range> map 25g-4x * * Undo breakout commands and return interfaces to 40/100G configuration in config mode: * no interface breakout module 1 port <range> map 10g-4x * no interface breakout module 1 port <range> map 25g-4x * interface Ethernet <interfaces taken out of breakout mode> * inherit port-profile CLUSTER * priority-flow-control mode auto * service-policy type qos type input ROCE_QOS * exit * * This RCF supports Clustering, HA, RDMA, and DCTCP using a single port profile. * ****************************************************************************** ! conf t ! interface breakout module 1 port 1-3 map 10g-4x interface breakout module 1 port 4-6 map 25g-4x ! feature lacp feature lldp feature ssh feature sftp-server feature scp-server ! vlan 17,18 exit ! cdp enable cdp advertise v1 cdp timer 5 system default switchport no system default switchport shutdown snmp-server community cshm1! group network-operator errdisable recovery interval 30 port-channel load-balance src-dst ip-l4port-vlan no ip domain-lookup logging console 1 ! ! class-map type qos match-any HA match dscp 40 match cos 5 ! class-map type qos match-any RDMA match dscp 16 match cos 2 ! class-map type qos match-any CT match dscp 0 match cos 0 ! policy-map type qos ROCE_QOS class type qos HA set qos-group 5 class type qos RDMA set qos-group 2 class type qos class-default set qos-group 0 ! class-map type network-qos HA_NETQOS match qos-group 5 ! class-map type network-qos RDMA_NETQOS match qos-group 2 ! class-map type network-qos CT_NETQOS match qos-group 0 ! policy-map type queuing ROCE_QUEUING class type queuing c-out-8q-q7 priority level 1 class type queuing c-out-8q-q6 bandwidth remaining percent 0 class type queuing c-out-8q-q5 bandwidth remaining percent 43 random-detect threshold burst-optimized ecn class type queuing c-out-8q-q4 bandwidth remaining percent 0 class type queuing c-out-8q-q3 bandwidth remaining percent 0 class type queuing c-out-8q-q2 random-detect threshold burst-optimized ecn bandwidth remaining percent 28 class type queuing c-out-8q-q1 bandwidth remaining percent 0 class type queuing c-out-8q-q-default bandwidth remaining percent 28 random-detect threshold burst-optimized ecn ! policy-map type network-qos NETQOS class type network-qos HA_NETQOS pause pfc-cos 5 mtu 9216 class type network-qos RDMA_NETQOS pause pfc-cos 2 mtu 9216 class type network-qos CT_NETQOS mtu 9216 ! system qos service-policy type network-qos NETQOS service-policy type queuing output ROCE_QUEUING ! copp profile strict ! ! !********** Port Profiles ********** ! port-profile type ethernet CLUSTER description 10/25/40/1000GbE Intra-Cluster/HA Nodes switchport mode trunk switchport trunk allowed vlan 1,17-18 spanning-tree port type edge trunk spanning-tree bpduguard enable mtu 9216 state enabled exit ! ! !********** Interfaces ********** ! interface e1/1/1-4, e1/2/1-4, e1/3/1-4, e1/4/1-4, e1/5/1-4, e1/6/1-4, e1/7-34 inherit port-profile CLUSTER priority-flow-control mode auto service-policy input ROCE_QOS exit ! !********** Intra-Cluster ISL ports ********** ! interface Ethernet1/35 description Intra-Cluster Switch ISL Port 1/35 (port channel) priority-flow-control mode auto switchport mode trunk switchport trunk allowed vlan 1 mtu 9216 channel-group 1 mode active no shutdown ! interface Ethernet1/36 description Intra-Cluster Switch ISL Port 1/36 (port channel) priority-flow-control mode auto switchport mode trunk switchport trunk allowed vlan 1 mtu 9216 channel-group 1 mode active no shutdown ! interface port-channel1 service-policy input ROCE_QOS priority-flow-control mode auto switchport mode trunk switchport trunk allowed vlan 1 mtu 9216 no shutdown ! !********** Set management ip ********** ! interface mgmt0 ip address 172.28.2.10/29 ! vrf context management ip route 0.0.0.0/0 mgmt0 172.28.2.9 ! hostname kb-ad-stgesw01 ! end ! !********** Save config ******* copy run start !Implemente a configuração do comutador obtida no comutador através de um cabo série ou de um servidor de consola, copiando e colando o conteúdo no comutador.
Esta configuração pressupõe que:
- Para o A250: e0c/e0d no dispositivo de armazenamento está ligado à porta 4-6 através de um cabo de divisão.
- Para o A400: o e3a/e3b no dispositivo de armazenamento está ligado à porta 7-34 através de um cabo de 40 GbE ou 100 GbE (não dividido).
- Para o A800: e0a/e1a no dispositivo de armazenamento está ligado à porta 7-34 através de um cabo de 40 GbE ou 100 GbE (não dividido).
No entanto, isto pode não ser o caso. Em muitas instalações, o dispositivo de armazenamento está ligado às portas 4 a 6, mesmo quando o dispositivo é um A400 ou um A800. Se um A400 ou um A800 estiver ligado às portas 4 a 6, ajuste a configuração do comutador para remover as seguintes linhas antes de aplicar:
interface breakout module 1 port 1-3 map 10g-4x interface breakout module 1 port 4-6 map 25g-4xEm seguida, substitua esta linha:
interface e1/1/1-4, e1/2/1-4, e1/3/1-4, e1/4/1-4, e1/5/1-4, e1/6/1-4, e1/7-34Com esta opção:
interface e1/1-34Com estas alterações, as portas 1 a 34 estão todas configuradas para cabos de 40 GbE ou 100 GbE (não divididos).
Além disso, remova as seguintes linhas da parte do banner MOTD da configuração para evitar possíveis confusões no futuro:
* Ports 1- 3: Breakout mode (4x10G) Intra-Cluster/HA Ports, int e1/1/1-4, e1/2/1-4, e1/3/1-4 * Ports 4- 6: Breakout mode (4x25G) Intra-Cluster/HA Ports, int e1/4/1-4, e1/5/1-4, e1/6/1-4 * Ports 7-34: 40/100GbE Intra-Cluster/HA Ports, int e1/7-34Substitua estas linhas por:
* Ports 1-34: 40/100GbE Intra-Cluster/HA Ports, int e1/1-34Confirme o CR do objeto ManagementSwitch.
Examine o objeto do cluster KIND de arranque
ManagementSwitche encontre o CR correto que representa o comutador que contém o dispositivo de armazenamento. Identifique as portas de comutação físicas no comutador de gestão, que estão fisicamente ligadas aos comutadores de armazenamento, e confirme que estas ligações existem no CR ManagementSwitch em lacpGroups.Por exemplo, se a ligação de gestão ao comutador de armazenamento estiver ligada às portas 10 e 11 no comutador de gestão, confirme que as seguintes informações existem:
kind: ManagementSwitch spec: ... serverNetwork: ... lacpGroups: - - 10 - - 11Use o seguinte comando para obter os lacpGroups:
kubectl get ManagementSwitchinternal <switch-name> --namespace=gpc-system -o=jsonpath='{.spec.serverNetwork.lacpGroups}'Um exemplo de resultado deve ter o seguinte aspeto, o que lhe permite confirmar a existência das portas:
[[1],[2],[3],[4],[5],[6]]
16.2. Inicialize os dispositivos ONTAP
Repita os passos seguintes para cada controlador nos sistemas AFF 250/400/800. Cada sistema tem dois controladores ou nós.
Use a consola série e o nome de utilizador predefinido
adminpara estabelecer ligação ao nó do controlador de armazenamento.Verifique a versão do sistema NetApp ONTAP.
- Execute o comando
version. - A versão do sistema NetApp ONTAP tem de ser 9.15.1. Se a versão for anterior a 9.15.1, atualize os nós para 9.15.1 antes da inicialização do cluster de administrador da organização. Para ver detalhes, consulte o guia de atualização.
- Execute o comando
Defina os endereços da interface IP de interconexão do cluster.
Primeiro, localize o valor
.spec.network.clusterInterconnectIPesperado para oStorageNodeatual no cellcfg.# Note, this command relies on yq, which can be downloaded from https://github.com/mikefarah/yq. # If you do not want to install yq, you can manually inspect cellcfg/*-storage.yaml to determine the IPs. cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageNode") | (.metadata.name, .spec.network.clusterInterconnectIP)'A execução do comando anterior imprime os nomes de todos os
StorageNodes e os respetivos valores de.spec.network.clusterInterconnectIP. Por exemplo:aa-ad-stge01-01 169.254.0.1 --- aa-ad-stge01-02 169.254.0.3 --- aa-ad-stge02-01 169.254.0.5 --- aa-ad-stge02-02 169.254.0.7 --- aa-ad-stge03-01 169.254.0.9 --- aa-ad-stge03-02 169.254.0.11No exemplo anterior, para o nó
aa-ad-stge03-01, os IPs169.254.0.9e169.254.0.10seriam usados nos passos seguintes. Isto deve-se ao facto de169.254.0.9ser o IP definido no cellcfg para o nóaa-ad-stge03-01e169.254.0.10ser o IP seguinte (numericamente) após169.254.0.9.Em seguida, verifique os valores de IP de interligação do cluster reais para o nó atual.
network interface showDeverá ver duas interfaces de rede a começar por
169.254, semelhante ao seguinte resultado:::> net int show (network interface show) Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- Cluster clus1 up/up 169.254.19.166/16 localhost e3a true clus2 up/up 169.254.19.167/16 localhost e3b trueSe o endereço da interface
clus1corresponder ao valor definido no cellcfg e o endereço da interfaceclus2for o IP seguinte ao endereçoclus1(numericamente), pode ignorar o resto deste passo e avançar para o passo seguinte.Se vir apenas 1 interface para o servidor virtual do cluster, execute
net port showpara verificar se a segunda porta está em funcionamento. Se for o caso, significa que perdeu uma das interfaces e tem duas opções para corrigir o problema:Opção 1: adicione manualmente o IP de interligação através do seguinte comando:
net interface create -vserver Cluster -lif clus2 -role cluster -address <interconnect-ip> -netmask 255.255.0.0 -home-node localhost -home-port <port>interconnect-ip: escolha o IP seguinte (numericamente) após o IP de interligação do cluster especificado no cellcfg para o nó atual. Por exemplo, se o IP de interligação do cluster especificado no cellcfg para o nó atual for
169.254.0.3, escolha169.254.0.4.Porta: consoante o modelo do ONTAP, a porta pode ser diferente. Deve escolher a porta que não tem uma interface apresentada no resultado anterior.
- Para o A250: escolha entre e0c e e0d.
- Para o A400: escolha entre e3a e e3b.
- Para o A800: escolha entre e0a e e1a.
Opção 2: reponha as definições de fábrica do nó ONTAP (isto envolve uma configuração 9a e 9b no menu de arranque do ONTAP). Execute o comando novamente após a reposição para verificar se existem 2 IPs. Tenha em atenção que é recomendável experimentar primeiro a opção 1 e só recorrer à opção 2 se as coisas não estiverem a funcionar corretamente.
Em seguida, atualize o IP de interconexão
clus1para o valorclusterInterconnectIPespecificado para o nó atual no cellcfg.net int modify -vserver Cluster -lif clus1 -address <interconnect-ip>- interconnect-ip: o valor
clusterInterconnectIPespecificado no cellcfg para o nó atual.
Em seguida, atualize o IP de interligação
clus2para que seja o IP seguinte (numericamente) após o valorclusterInterconnectIPespecificado para o nó atual no cellcfg.net int modify -vserver Cluster -lif clus2 -address <next-interconnect-ip>- next-interconnect-ip: escolha o IP seguinte (numericamente) após o IP de interligação do cluster especificado no cellcfg para o nó atual. Por exemplo, se o IP de interligação do cluster especificado no cellcfg para o nó atual for
169.254.0.3, escolha169.254.0.4.
Por último, verifique se os valores de IP de interconexão do cluster reais do nó atual correspondem aos valores esperados no cellcfg.
network interface showDeverá ver duas interfaces de rede a começar por
169.254, semelhantes ao seguinte resultado. O endereço da interfaceclus1deve corresponder ao valor definido no cellcfg. O endereço da interfaceclus2deve ser o IP seguinte ao endereçoclus1(numericamente).::> net int show (network interface show) Logical Status Network Current Current Is Vserver Interface Admin/Oper Address/Mask Node Port Home ----------- ---------- ---------- ------------------ ------------- ------- ---- Cluster clus1 up/up 169.254.0.1/16 localhost e3a true clus2 up/up 169.254.0.2/16 localhost e3b trueOpcional: valide a conetividade entre clusters.
ping -lif clus2 -vserver Cluster -destination <interconnect-ip-other-node>interconnect-ip-other-node: escolha um IP intercluster de outros nós. Se houver conetividade, o ping deve responder.
Defina a palavra-passe de administrador (deve ser a mesma em todos os nós e é usada quando preenche a palavra-passe). Certifique-se de que a palavra-passe cumpre os requisitos de complexidade. Caso contrário, é apresentado um aviso sobre contas de utilizador não conformes.
::> security login password Enter your current password: Current password is empty, press Enter Enter a new password: Enter NEW_PASSWORD Enter it again: Enter NEW_PASSWORDDefina o IP de gestão e o gateway. Consulte as instruções abaixo sobre como obter as informações necessárias.
::> cluster setup Type yes to confirm and continue: yes Enter the node management interface port: e0M Enter the node management interface IP address: IP_ADDRESS for this node Enter the node management interface netmask: NETMASK for this IP Enter the node management interface default gateway: GATEWAYSaia do assistente de configuração do cluster depois de definir o gateway predefinido introduzindo
ctrl+c.Execute o seguinte comando para obter as informações da sub-rede:
# cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageCluster") | (.spec.network.clusterManagement.netmask)'Deverá ver um resultado semelhante ao seguinte:
203.0.113.0Execute o seguinte comando para obter as informações do gateway:
kubectl get subnetclaim -n root kb-ad-mgmtsw01-stge-os-subnet -o jsonpath={.status.ipv4SubnetStatus.gateway} ; echoDeverá ver um resultado semelhante ao seguinte:
203.0.113.1Segue-se um exemplo de como obter informações de IP:
# cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageNode") | (.metadata.name, .spec.network.managementIP)' kb-ad-stge01-01 203.0.113.0 --- kb-ad-stge01-02 203.0.113.0 --- kb-ad-stge02-01 203.0.113.0 --- kb-ad-stge02-02 203.0.113.0Ative o SSH para o utilizador administrador:
security login create -user-or-group-name admin -application ssh -authentication-method password -role adminMude o nome do nó para o nome especificado em
cell.yaml.system node rename -node localhost -newname NODE_NAMEVerifique se os discos estão configurados corretamente.
Execute
storage aggregate show -fields uses-shared-diskse verifique seaggr0devolve o valor verdadeiro. Exemplo de saída:::> storage aggregate show -fields uses-shared-disks aggregate uses-shared-disks --------- ----------------- aggr0 trueExecute
run -node * sysconfig -re verifique se existem nomes de dispositivos que terminam emP3. Isto serve para garantir que os discos têm 3 partições. Exemplo de saída:::> run -node * sysconfig -r 1 entry was acted on. Node: localhost Aggregate aggr0 (online, raid_dp) (block checksums) Plex /aggr0/plex0 (online, normal, active, pool0) RAID group /aggr0/plex0/rg0 (normal, block checksums) RAID Disk Device HA SHELF BAY CHAN Pool Type RPM Used (MB/blks) Phys (MB/blks) --------- ------ ------------- ---- ---- ---- ----- -------------- -------------- dparity 0n.18P3 0n 0 18 0 SSD-NVM N/A 63849/16345536 63857/16347584 parity 0n.19P3 0n 0 19 0 SSD-NVM N/A 63849/16345536 63857/16347584 data 0n.20P3 0n 0 20 0 SSD-NVM N/A 63849/16345536 63857/16347584 data 0n.21P3 0n 0 21 0 SSD-NVM N/A 63849/16345536 63857/16347584 data 0n.22P3 0n 0 22 0 SSD-NVM N/A 63849/16345536 63857/16347584Execute
run -node local disk show -npara verificar se as partições do disco sãoNot Ownede se existem2 * <number of disks>partições. Este exemplo mostra 24 partições não pertencentes a ninguém para 12 discos.::> run -node local disk show -n DISK OWNER POOL SERIAL NUMBER HOME DR HOME ------------ ------------- ----- ------------- ------------- ------------- 0n.21P1 Not Owned NONE S5Y0NA0T100941NP001 0n.21P2 Not Owned NONE S5Y0NA0T100941NP002 0n.22P1 Not Owned NONE S5Y0NA0T100944NP001 0n.22P2 Not Owned NONE S5Y0NA0T100944NP002 0n.18P1 Not Owned NONE S5Y0NA0T101588NP001 0n.18P2 Not Owned NONE S5Y0NA0T101588NP002 0n.20P1 Not Owned NONE S5Y0NA0T100947NP001 0n.20P2 Not Owned NONE S5Y0NA0T100947NP002 0n.3P1 Not Owned NONE S5Y0NA0T100942NP001 0n.3P2 Not Owned NONE S5Y0NA0T100942NP002 0n.1P1 Not Owned NONE S5Y0NA0T100943NP001 0n.1P2 Not Owned NONE S5Y0NA0T100943NP002 0n.5P1 Not Owned NONE S5Y0NA0T101314NP001 0n.5P2 Not Owned NONE S5Y0NA0T101314NP002 0n.2P1 Not Owned NONE S5Y0NA0T100946NP001 0n.2P2 Not Owned NONE S5Y0NA0T100946NP002 0n.23P1 Not Owned NONE S5Y0NA0T100939NP001 0n.23P2 Not Owned NONE S5Y0NA0T100939NP002 0n.19P1 Not Owned NONE S5Y0NA0T101608NP001 0n.19P2 Not Owned NONE S5Y0NA0T101608NP002 0n.0P1 Not Owned NONE S5Y0NA0T100873NP001 0n.0P2 Not Owned NONE S5Y0NA0T100873NP002 0n.4P1 Not Owned NONE S5Y0NA0T101609NP001 0n.4P2 Not Owned NONE S5Y0NA0T101609NP002Se algum destes passos falhar, faça uma reposição de fábrica do sistema.
16.3. Configure o Network Time Protocol
Obtenha os IPs do servidor NTP para os retransmissores NTP em execução no cluster de arranque:
kubectl get ntpservers -n ntp-system -o jsonpath='{.items[*].status.managementIP}{"\n"}'
Para cada um dos servidores NTP, execute o seguinte comando no primeiro nó do ONTAP:
cluster time-service ntp server create -server NTP_SERVER_IP
Por exemplo, se os seus nós ONTAP forem kb-ad-stge01-01, kb-ad-stge01-02, kb-ad-stge02-01 e kb-ad-stge02-02, execute o comando no nó kb-ad-stge01-01.
16.4. Verifique a pasta cellcfg
Para obter os valores do nome de utilizador e da palavra-passe de armazenamento para o armazenamento de ficheiros, use o ficheiro do fornecedor de hardware dedicado ao armazenamento, por exemplo, WO15_SO7100911835-2_GDCH-4d-A250-A400_DD-010223.xlsx
16.4.1. Valide a palavra-passe de administrador
Encontre o nome do segredo do ONTAP referenciado em /CELLCFG/file-storage.yaml após StorageCluster.spec.adminSecretName.
Encontre o segredo correspondente e certifique-se de que os valores estão preenchidos. Caso contrário, substitua o nome de utilizador e a palavra-passe de administrador:
apiVersion: v1
kind: Secret
metadata:
name: SECRET_NAME
namespace: gpc-system
type: Opaque
stringData:
netapp_username: admin
netapp_password: PASSWORD
16.4.2. Valide as licenças do ONTAP
As suas licenças de software ONTAP têm de ter sido fornecidas pelo fornecedor de hardware.
Localize o campo StorageCluster.spec.licenses na pasta /cellcfg/af-storage.yaml e certifique-se de que as licenças estão preenchidas.
Caso contrário, preencha os campos com as licenças:
apiVersion: ontap.netapp.storage.private.gdc.goog/v1alpha1
kind: StorageCluster
metadata:
creationTimestamp: null
name: zl-stge-clus-01
namespace: gpc-system
spec:
...
licenses:
- LICENSE_1
- LICENSE_2
- LICENSE_3
Para referência, segue-se um exemplo de como as entradas de licença devem ser apresentadas na configuração da célula:
licenses:
ABGITNWODUEVQELPECCAAAAAAAAA
AHJJWYTTTXKZOFKVBTBAAAAAAAAA
AHZTHBPQACAAAAKVBTBAAAAAAAAA
ALTXOYXSVDDCMADPECCAAAAAAAAA
ANWFPBPQACAAAAKVBTBAAAAAAAAA
APLKENWODUEVQELPECCAAAAAAAAA
ARIHVQFAHJMIWBDPECCAAAAAAAAA
AXFTCRFAHJMIWBDPECCAAAAAAAAA
16.5. Validação prévia
Execute o comando de validação:
gdcloud system check-config --config PATH_TO_CELL_CONFIG --artifacts-directory PATH_TO_ARTIFACTS \
--scenario FileBlockStorage
Se existirem erros no registo, siga as mensagens para corrigir o problema e execute a validação novamente.
16.5.1. Potenciais problemas
Esta secção contém potenciais problemas que pode encontrar ao realizar a validação prévia dos dispositivos de armazenamento de blocos de ficheiros.
16.5.1.1. NumDisks para StorageAggregate
Ignore as falhas de validação na contagem de discos incorreta, mas valide manualmente o valor de NumDisks no CR StorageAggregate. O StorageAggregate está definido no ficheiro xx-storage.yaml.
O número total de discos configurados para StorageAggregates para um dispositivo de bloco de ficheiros tem de corresponder ao número de discos apresentados no dispositivo menos o número de discos sobresselentes. A prática recomendada é reservar um disco sobresselente para cada 12 discos.
Para calcular o valor de NumDisks, use a seguinte fórmula:
NumDisks = (Total_Disks/2) - ceil(Total_Disks/12)
NumDisks é igual a 10 se aplicar a fórmula ao exemplo (24/2) - ceil(24/12) descrito nesta secção.
16.6. Execute a instalação
Execute o comando de instalação:
gdcloud system storage install -v 3 --config PATH_TO_CELL_CONFIG
Este comando faz o seguinte:
- Configura o cluster NetApp e adiciona nós disponíveis
- Cria os agregados
- Configura o LACP e as VLANs nas portas de dados
- Configure licenças
- Configure a monitorização
- Configura a gestão de chaves externas
Após a conclusão da tarefa, execute node show na consola do ONTAP para se certificar de que não existem avisos como estes:
kb-stge-clus-01::> node show
Node Health Eligibility Uptime Model Owner Location
--------- ------ ----------- ------------- ----------- -------- ---------------
kb-ad-stge01-01
true true 5 days 02:49 AFF-A250
kb-ad-stge01-02
true true 6 days 18:24 AFF-A250
kb-ad-stge02-01
true true 5 days 01:52 AFF-A800
kb-ad-stge02-02
true true 5 days 01:52 AFF-A800
kb-ad-stge03-01
true true 7 days 00:15 AFF-A400
kb-ad-stge03-02
true true 7 days 00:26 AFF-A400
Warning: Cluster operation (cluster join) for node "kb-ad-stge03-01" is not complete and the node is not fully functional.
Run "cluster join" on that node to complete the operation.
6 entries were displayed.
Se existirem, siga as instruções e inicie sessão nestes nós e execute o comando cluster join correspondente para se certificar de que desaparece após a operação.
16.7. Atualize as definições de segurança
Defina a faixa de início de sessão:
security login banner modify -vserver <cluster name> -message "<banner>"Limite o limite de tempo da sessão da CLI a dez minutos:
system timeout modify 10Aplique a complexidade da palavra-passe e o número máximo de tentativas de início de sessão na função de administrador:
security login role config modify -vserver CLUSTER_NAME -role admin -passwd-minlength 15 -passwd-min-special-chars 1 -passwd-min-lowercase-chars 1 -passwd-min-uppercase-chars 1 -passwd-min-digits 1 -disallowed-reuse 25 -max-failed-login-attempts 3Limite o limite de tempo da sessão da IU a dez minutos:
::> set diag Warning: These diagnostic commands are for use by NetApp personnel only. Do you want to continue? {y|n}: y ::> cluster application-record create -name sysmgr.inactivitytimeout -value 10 -vserver <cluster name>Ajuste as definições de bloqueio de utilizadores:
::> security login role config modify -vserver * -max-failed-login-attempts 3 -lockout-duration 1 -role * ::> security ssh modify -vserver * -max-authentication-retry-count 3Desative as portas USB (é necessário reiniciar para que a alteração entre em vigor):
::> set diag ::*> system node usb-ports modify -node * -is-disabled-next-boot trueRemova o certificado de arranque.
Encontre o certificado bootstrap-web-ca:
::> security certificate show-user-installedO resultado tem o seguinte aspeto se o certificado bootstrap-web-ca existir:
Vserver Serial Number Certificate Name Type ---------- --------------- -------------------------------------- ------------ aa-aa-stge01 45B86E1B5CF1CC144B874C80A39D2A99 bootstrap-web-ca server-ca Certificate Authority: bootstrap-web-ca Expiration Date: Mon Feb 19 22:55:03 2029
Quando quiser reiniciar os nós, reinicie-os um de cada vez com o seguinte comando:
::> system node reboot -node <node-name> -inhibit-takeover true
16.8. Armazene utilizadores de acesso de emergência
São criadas automaticamente quatro contas de acesso de emergência e armazenadas como os seguintes segredos do Kubernetes durante a configuração.
- storage-root-level1
- storage-root-level1-backup
- storage-root-level2
- storage-root-level2-backup
Para storage-root-level2 e storage-root-level2-backup, armazene e proteja
as suas credenciais em papel, conforme prescrito:
Obtenha o nome de utilizador e a palavra-passe do segredo com os seguintes comandos, substituindo SECRET_NAME pelo segredo que quer usar:
kubectl get secret -n gpc-system SECRET_NAME -o jsonpath='{.data.username}' | base64 --decode kubectl get secret -n gpc-system SECRET_NAME -o jsonpath='{.data.password}' | base64 --decodeObtenha o nome do cluster ONTAP:
::> cluster identity showVerifique se existem utilizadores inesperados com privilégios de administrador:
::> useradmin user list- Opcional: elimine-os com a aprovação do operador de infraestrutura. Realize sempre em cargas de trabalho de produção e de clientes:
::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application amqp ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application console ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application http ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application ontapi ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application service-processor ::> security login delete -user-or-group-name <username> -vserver <Cluster Name> -authentication-method password -application ssh ```Elimine o utilizador de administração do NetApp criado no passo anterior.
::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application amqp ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application console ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application http ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application ontapi ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application service-processor ::> security login delete -user-or-group-name admin -vserver <Cluster Name> -authentication-method password -application sshO operador de infraestrutura (IO) principal anota o nome de utilizador e a palavra-passe de cada dispositivo de forma legível em papéis separados. Dobram os papéis de forma que o conteúdo não fique visível, etiquetam os papéis, por exemplo, "Credenciais de raiz para o comutador TOR 1", e entregam-nos a um engenheiro de nível 1 para serem guardados em segurança.
Com a supervisão do IO principal, o engenheiro de nível 1 guarda os documentos num cofre físico.
O IO adiciona anotações aos segredos para marcar que o segredo foi armazenado no cofre.
kubectl annotate secrets storage-root-level2 -n gpc-system disk.gdc.goog/persisted=''16.9. Atualize os servidores NTP
Execute estes passos após a instalação do cluster de administrador:
Obtenha os novos IPs do servidor NTP para os retransmissores NTP em execução no cluster de administração:
kubectl get ntpservers -n gpc-systemNo ONTAP, elimine todos os servidores NTP existentes:
cluster time-service ntp server show cluster time-service ntp server delete -server NTP_SERVER_IPAdicione os novos servidores NTP ao ONTAP:
cluster time-service ntp server create -server NTP_SERVER_IP