Operable component owner: FILE
Profilo delle competenze: ingegnere del deployment Questa pagina fornisce istruzioni per configurare l'archiviazione di file e blocchi per il cluster utilizzando NetApp ONTAP.16.1. Configura gli switch del cluster ONTAP
Controlla le password
switch-xx-ad-stgesw01-admineswitch-xx-ad-stgesw02-admin(avranno lo stesso valore). Se le password non esistono, inizializza le credenziali e genera una nuova password casuale. Accedi allo switch tramite la console per impostare la password amministratore:# configure terminal # username ADMIN_USER password PASSWORD # exit # copy running-config startup-configSalva le credenziali in un secret e aggiungile a
cell.yamlapiVersion: v1 kind: Secret metadata: name: netapp-ontap-cluster-switch-credential namespace: gpc-system type: Opaque stringData: username: ADMIN_USER password: PASSWORDEsegui questo comando per ottenere i nomi degli switch di archiviazione:
kubectl get storageswitch -n gpc-systemDovresti vedere un output simile al seguente:
NAME AGE MANAGEMENTIP kb-ab-stgesw01 10d 192.0.2.0 kb-ab-stgesw02 10d 192.0.2.1Per ogni switch, esegui i seguenti passaggi e utilizza il nome dello switch.
Esegui questo comando per recuperare la configurazione dello switch dal CR
switchstaticconfig:kubectl get switchstaticconfigs -n gpc-system $SWITCH_NAME-static-config -o yaml | /root/release/scripts/yq_linux_amd64 '.spec.config'Dovresti vedere un output simile al seguente:
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 !Esegui il deployment della configurazione dello switch ottenuta sullo switch utilizzando un cavo seriale o un server di console copiando e incollando i contenuti nello switch.
Questa configurazione presuppone che:
- Per A250: e0c/e0d sul dispositivo di archiviazione è collegato alla porta 4-6 tramite un cavo breakout.
- Per A400: e3a/e3b sul dispositivo di archiviazione è collegato alla porta 7-34 utilizzando un cavo 40 GbE o 100 GbE (non breakout).
- Per A800: e0a/e1a sul dispositivo di archiviazione è collegato alla porta 7-34 tramite un cavo 40 GbE o 100 GbE (non breakout).
Tuttavia, potrebbe non essere così. In molte installazioni, il dispositivo di archiviazione è collegato alle porte 4-6, anche se il dispositivo è un A400 o A800. Se una A400 o A800 è collegata alle porte 4-6, modifica la configurazione dello switch per rimuovere le seguenti righe prima dell'applicazione:
interface breakout module 1 port 1-3 map 10g-4x interface breakout module 1 port 4-6 map 25g-4xQuindi sostituisci questa riga:
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-34Con questo:
interface e1/1-34Con queste modifiche, le porte 1-34 sono tutte configurate per cavi 40 GbE o 100 GbE (non breakout).
Inoltre, rimuovi le seguenti righe dalla sezione del banner MOTD della configurazione per evitare possibili confusioni in 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-34Sostituisci queste righe con:
* Ports 1-34: 40/100GbE Intra-Cluster/HA Ports, int e1/1-34Conferma il CR dell'oggetto ManagementSwitch.
Esamina l'oggetto
ManagementSwitchdel cluster KIND di bootstrap e trova la CR corretta che rappresenta lo switch che contiene il dispositivo di archiviazione. Identifica le porte di commutazione fisiche sullo switch di gestione, che sono collegate fisicamente agli switch di archiviazione e verifica che queste connessioni esistano in ManagementSwitch CR in lacpGroups.Ad esempio, se la connessione di gestione allo switch di archiviazione è connessa alle porte 10 e 11 dello switch di gestione, verifica che esistano le seguenti informazioni:
kind: ManagementSwitch spec: ... serverNetwork: ... lacpGroups: - - 10 - - 11Utilizza il seguente comando per ottenere i lacpGroups:
kubectl get ManagementSwitchinternal <switch-name> --namespace=gpc-system -o=jsonpath='{.spec.serverNetwork.lacpGroups}'Un output di esempio dovrebbe avere questo aspetto, consentendoti di confermare l'esistenza delle porte:
[[1],[2],[3],[4],[5],[6]]
16.2. Inizializza le appliance ONTAP
Ripeti i seguenti passaggi per ogni controller sui sistemi AFF 250/400/800. Ogni sistema ha due controller o nodi.
Utilizza la console seriale e il nome utente predefinito
adminper connetterti al nodo del controller di archiviazione.Verifica la versione del sistema NetApp ONTAP.
- Esegui il comando
version. - La versione del sistema NetApp ONTAP deve essere 9.15.1. Se la versione è precedente alla 9.15.1, esegui l'upgrade dei nodi alla versione 9.15.1 prima del bootstrap del cluster di amministrazione dell'organizzazione. Per maggiori dettagli, consulta la Guida all'upgrade.
- Esegui il comando
Imposta gli indirizzi dell'interfaccia IP di interconnessione del cluster.
Innanzitutto, individua il valore
.spec.network.clusterInterconnectIPprevisto per l'attualeStorageNodein 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)'L'esecuzione del comando precedente stamperà i nomi di tutti i
StorageNodee i relativi valori.spec.network.clusterInterconnectIP. Ad esempio: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.11Dall'esempio precedente, per il nodo
aa-ad-stge03-01, gli IP169.254.0.9e169.254.0.10verranno utilizzati nei passaggi successivi. Questo perché169.254.0.9è l'IP definito in cellcfg per il nodoaa-ad-stge03-01e169.254.0.10è l'IP successivo (numericamente) dopo169.254.0.9.Successivamente, controlla i valori IP di interconnessione del cluster effettivi per il nodo corrente.
network interface showDovresti vedere due interfacce di rete che iniziano con
169.254, simili all'output seguente:::> 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 l'indirizzo dell'interfaccia
clus1corrisponde al valore definito in cellcfg e l'indirizzo dell'interfacciaclus2è l'IP successivo all'indirizzoclus1(numericamente), puoi saltare il resto di questo passaggio e procedere al successivo.Se vedi una sola interfaccia per il vserver del cluster, esegui
net port showper verificare che la seconda porta sia attiva e funzionante. In questo caso, significa che hai perso una delle interfacce e hai due opzioni per risolvere il problema:Opzione 1: aggiungi manualmente l'IP di interconnessione con il seguente 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: scegli l'IP successivo (numericamente) dopo l'IP di interconnessione del cluster specificato in cellcfg per il nodo corrente. Ad esempio, se l'IP di interconnessione del cluster specificato in cellcfg per il nodo corrente è
169.254.0.3, scegli169.254.0.4.porta: a seconda del modello di ONTAP, la porta può essere diversa. Devi scegliere la porta che non ha un'interfaccia mostrata nell'output precedente.
- Per A250, scegli tra e0c ed e0d.
- Per A400: scegli tra e3a ed e3b.
- Per A800, scegli tra e0a ed e1a.
Opzione 2: ripristino delle impostazioni di fabbrica del nodo ONTAP (che prevede una configurazione 9a e 9b nel menu di avvio di ONTAP). Esegui di nuovo il comando dopo il ripristino per verificare che esistano due IP. Tieni presente che ti consigliamo di provare prima l'opzione 1 e di passare all'opzione 2 solo se le cose non funzionano correttamente.
Successivamente, aggiorna l'IP di interconnessione
clus1in modo che sia il valoreclusterInterconnectIPspecificato per il nodo corrente in cellcfg.net int modify -vserver Cluster -lif clus1 -address <interconnect-ip>- interconnect-ip: il valore
clusterInterconnectIPspecificato in cellcfg per il nodo corrente.
Successivamente, aggiorna l'IP di interconnessione
clus2in modo che sia l'IP successivo (numericamente) dopo il valoreclusterInterconnectIPspecificato per il nodo corrente in cellcfg.net int modify -vserver Cluster -lif clus2 -address <next-interconnect-ip>- next-interconnect-ip: scegli l'IP successivo (numericamente) dopo l'IP di interconnessione del cluster specificato in cellcfg per il nodo corrente. Ad esempio, se l'IP di interconnessione del cluster specificato in cellcfg per il nodo corrente è
169.254.0.3, scegli169.254.0.4.
Infine, controlla che i valori IP di interconnessione del cluster effettivi per il nodo attuale corrispondano ai valori previsti in cellcfg.
network interface showDovresti vedere due interfacce di rete che iniziano con
169.254, simili all'output seguente. L'indirizzo dell'interfacciaclus1deve corrispondere al valore definito in cellcfg. L'indirizzo dell'interfacciaclus2deve essere l'indirizzo IP successivo all'indirizzoclus1(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 true(Facoltativo) Verifica la connettività tra cluster.
ping -lif clus2 -vserver Cluster -destination <interconnect-ip-other-node>interconnect-ip-other-node: scegli un IP intercluster da altri nodi. Se la connettività è presente, il ping dovrebbe rispondere.
Imposta la password dell'amministratore (deve essere la stessa su tutti i nodi e viene utilizzata quando viene inserita la password). Assicurati che la password soddisfi i requisiti di complessità, altrimenti visualizzerai un avviso relativo agli account utente non conformi.
::> 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_PASSWORDImposta l'IP di gestione e il gateway. Consulta le istruzioni riportate di seguito su come ottenere le informazioni richieste.
::> 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: GATEWAYEsci dalla procedura guidata di configurazione del cluster dopo aver impostato il gateway predefinito inserendo
ctrl+c.Esegui questo comando per ottenere le informazioni sulla subnet:
# cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageCluster") | (.spec.network.clusterManagement.netmask)'Dovresti vedere un output simile al seguente:
203.0.113.0Esegui questo comando per ottenere le informazioni sul gateway:
kubectl get subnetclaim -n root kb-ad-mgmtsw01-stge-os-subnet -o jsonpath={.status.ipv4SubnetStatus.gateway} ; echoDovresti vedere un output simile al seguente:
203.0.113.1Di seguito è riportato un esempio di ottenimento delle informazioni sull'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.0Attiva SSH per l'utente amministratore:
security login create -user-or-group-name admin -application ssh -authentication-method password -role adminRinomina il nodo con il nome specificato in
cell.yaml.system node rename -node localhost -newname NODE_NAMEVerifica che i dischi siano configurati correttamente.
Esegui
storage aggregate show -fields uses-shared-diskse verifica cheaggr0restituisca true. Output di esempio:::> storage aggregate show -fields uses-shared-disks aggregate uses-shared-disks --------- ----------------- aggr0 trueEsegui
run -node * sysconfig -re verifica che esistano nomi di dispositivi che terminano conP3. In questo modo, i dischi avranno 3 partizioni. Output di esempio:::> 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/16347584Esegui
run -node local disk show -nper verificare che le partizioni del disco sianoNot Ownede che ci siano2 * <number of disks>partizioni. Questo esempio mostra 24 partizioni non di proprietà per 12 dischi.::> 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 uno di questi passaggi non va a buon fine, ripristina i dati di fabbrica del sistema.
16.3. Configurare il Network Time Protocol
Ottieni gli IP del server NTP per i relè NTP in esecuzione nel cluster di bootstrap:
kubectl get ntpservers -n ntp-system -o jsonpath='{.items[*].status.managementIP}{"\n"}'
Per ciascuno dei server NTP, esegui il seguente comando sul primo nodo ONTAP:
cluster time-service ntp server create -server NTP_SERVER_IP
Ad esempio, se i tuoi nodi ONTAP sono kb-ad-stge01-01, kb-ad-stge01-02, kb-ad-stge02-01 e kb-ad-stge02-02, esegui il comando sul nodo kb-ad-stge01-01.
16.4. Controlla la cartella cellcfg
Per recuperare i valori del nome utente e della password di archiviazione per l'archiviazione di file, utilizza il file del fornitore dell'hardware dedicato all'archiviazione, ad esempio WO15_SO7100911835-2_GDCH-4d-A250-A400_DD-010223.xlsx
16.4.1. Verifica la password amministratore
Trova il nome del secret ONTAP a cui viene fatto riferimento in /CELLCFG/file-storage.yaml dopo StorageCluster.spec.adminSecretName.
Trova il segreto corrispondente e assicurati che i valori siano compilati. In caso contrario, sostituisci il nome utente e la password dell'amministratore:
apiVersion: v1
kind: Secret
metadata:
name: SECRET_NAME
namespace: gpc-system
type: Opaque
stringData:
netapp_username: admin
netapp_password: PASSWORD
16.4.2. Verifica delle licenze ONTAP
Le licenze software ONTAP devono essere state fornite dal fornitore dell'hardware.
Individua il campo StorageCluster.spec.licenses nella cartella /cellcfg/af-storage.yaml e assicurati che le licenze siano compilate.
In caso contrario, compila i campi con le licenze:
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
Per riferimento, di seguito è riportato un esempio di come dovrebbero apparire le voci della licenza nella configurazione della cella:
licenses:
ABGITNWODUEVQELPECCAAAAAAAAA
AHJJWYTTTXKZOFKVBTBAAAAAAAAA
AHZTHBPQACAAAAKVBTBAAAAAAAAA
ALTXOYXSVDDCMADPECCAAAAAAAAA
ANWFPBPQACAAAAKVBTBAAAAAAAAA
APLKENWODUEVQELPECCAAAAAAAAA
ARIHVQFAHJMIWBDPECCAAAAAAAAA
AXFTCRFAHJMIWBDPECCAAAAAAAAA
16.5. Convalida preflight
Esegui il comando di convalida:
gdcloud system check-config --config PATH_TO_CELL_CONFIG --artifacts-directory PATH_TO_ARTIFACTS \
--scenario FileBlockStorage
Se nel log sono presenti errori, segui i messaggi per risolvere il problema ed esegui di nuovo la convalida.
16.5.1. Potenziali problemi
Questa sezione contiene i potenziali problemi che potresti riscontrare durante l'esecuzione della convalida preflight delle appliance di archiviazione a blocchi di file.
16.5.1.1. NumDisks per StorageAggregate
Ignora gli errori di convalida relativi al conteggio errato dei dischi, ma verifica manualmente il
valore di NumDisks nella CR StorageAggregate. StorageAggregate è
definito nel file xx-storage.yaml.
Il numero totale di dischi configurati per StorageAggregates per un'appliance di blocchi di file
deve corrispondere al numero di dischi presentati nell'appliance meno il numero
di dischi di riserva. La best practice prevede di riservare un disco di riserva ogni 12 dischi.
Per calcolare il valore di NumDisks, utilizza la seguente formula:
NumDisks = (Total_Disks/2) - ceil(Total_Disks/12)
NumDisks è uguale a 10 se applichi la formula all'esempio (24/2) - ceil(24/12) descritto in questa sezione.
16.6. Esegui l'installazione
Esegui il comando di installazione:
gdcloud system storage install -v 3 --config PATH_TO_CELL_CONFIG
Questo comando esegue le seguenti operazioni:
- Configura il cluster NetApp e aggiunge i nodi disponibili
- Crea gli aggregati
- Configura LACP e le VLAN sulle porte dati
- Configura licenze
- Configura il monitoraggio
- Configura la gestione delle chiavi esterna
Al termine del job, esegui node show sulla console ONTAP per assicurarti che non siano presenti avvisi come questi:
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.
In caso affermativo, segui le istruzioni e accedi a questi nodi ed esegui il comando cluster join corrispondente per assicurarti che scompaia dopo l'operazione.
16.7. Aggiorna le impostazioni di sicurezza
Imposta il banner di accesso:
security login banner modify -vserver <cluster name> -message "<banner>"Limita il timeout della sessione CLI a 10 minuti:
system timeout modify 10Imponi la complessità della password e il numero massimo di tentativi di accesso per il ruolo amministratore:
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 3Limita il timeout della sessione della UI a 10 minuti:
::> 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>Modifica le impostazioni di blocco utente:
::> security login role config modify -vserver * -max-failed-login-attempts 3 -lockout-duration 1 -role * ::> security ssh modify -vserver * -max-authentication-retry-count 3Disattiva le porte USB (è necessario riavviare per rendere effettive le modifiche):
::> set diag ::*> system node usb-ports modify -node * -is-disabled-next-boot trueRimuovi il certificato di bootstrap.
Trova il certificato bootstrap-web-ca:
::> security certificate show-user-installedSe il certificato bootstrap-web-ca esiste, l'output ha il seguente aspetto:
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 vuoi riavviare i nodi, riavviali uno alla volta con il seguente comando:
::> system node reboot -node <node-name> -inhibit-takeover true
16.8. Memorizzare gli utenti con accesso di emergenza
Durante la configurazione vengono creati automaticamente quattro account breakglass e memorizzati come secret Kubernetes.
- storage-root-level1
- storage-root-level1-backup
- storage-root-level2
- storage-root-level2-backup
Per storage-root-level2 e storage-root-level2-backup, memorizza e proteggi
le tue credenziali su carta come prescritto:
Ottieni il nome utente e la password dal secret con i seguenti comandi, sostituendo SECRET_NAME con il secret che vuoi utilizzare:
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 --decodeOttieni il nome del cluster ONTAP:
::> cluster identity showPrendi nota di eventuali utenti inattesi con privilegi amministrativi:
::> useradmin user list- (Facoltativo) Eliminali con l'approvazione dell'operatore dell'infrastruttura. Esegui sempre su workload di produzione e clienti:
::> 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 ```Elimina l'utente amministratore NetApp creato nel passaggio precedente.
::> 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 sshL'operatore dell'infrastruttura principale (IO) annota il nome utente e la password per ogni appliance in modo leggibile su fogli di carta separati. Piegare i documenti in modo che i contenuti non siano visibili, etichettarli, ad esempio "Credenziali root per lo switch TOR 1", e consegnarli a un tecnico di livello 1 per la custodia sicura.
Con l'ingegnere L1 che osserva, il responsabile dell'IO conserva i documenti in una cassaforte fisica.
L'IO aggiunge un'annotazione ai secret per indicare che il secret è stato memorizzato nel safe.
kubectl annotate secrets storage-root-level2 -n gpc-system disk.gdc.goog/persisted=''16.9. Aggiorna i server NTP
Esegui questi passaggi dopo l'installazione del cluster di amministrazione:
Ottieni i nuovi IP del server NTP per i relè NTP in esecuzione nel cluster di amministrazione:
kubectl get ntpservers -n gpc-systemIn ONTAP, elimina tutti i server NTP esistenti:
cluster time-service ntp server show cluster time-service ntp server delete -server NTP_SERVER_IPAggiungi i nuovi server NTP a ONTAP:
cluster time-service ntp server create -server NTP_SERVER_IP