Propriétaire du composant opérationnel : FICHIER
Profil de compétences : ingénieur de déploiement Cette page explique comment configurer le stockage de fichiers et de blocs pour le cluster à l'aide de NetApp ONTAP.16.1. Configurer les commutateurs de cluster ONTAP
Recherchez les mots de passe
switch-xx-ad-stgesw01-adminetswitch-xx-ad-stgesw02-admin(ils auront la même valeur). Si les mots de passe n'existent pas, initialisez les identifiants et générez un nouveau mot de passe aléatoire. Connectez-vous au commutateur via la console pour définir le mot de passe administrateur :# configure terminal # username ADMIN_USER password PASSWORD # exit # copy running-config startup-configEnregistrez les identifiants dans un secret et ajoutez-les à
cell.yaml.apiVersion: v1 kind: Secret metadata: name: netapp-ontap-cluster-switch-credential namespace: gpc-system type: Opaque stringData: username: ADMIN_USER password: PASSWORDExécutez la commande suivante pour obtenir les noms des commutateurs de stockage :
kubectl get storageswitch -n gpc-systemUn résultat semblable aux lignes suivantes doit s'afficher :
NAME AGE MANAGEMENTIP kb-ab-stgesw01 10d 192.0.2.0 kb-ab-stgesw02 10d 192.0.2.1Pour chaque commutateur, procédez comme suit et utilisez le nom du commutateur.
Exécutez la commande suivante pour récupérer la configuration du commutateur à partir du CR
switchstaticconfig:kubectl get switchstaticconfigs -n gpc-system $SWITCH_NAME-static-config -o yaml | /root/release/scripts/yq_linux_amd64 '.spec.config'Un résultat semblable aux lignes suivantes doit s'afficher :
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 !Déployez la configuration de commutateur obtenue sur le commutateur à l'aide d'un câble série ou d'un serveur de console en copiant et en collant le contenu dans le commutateur.
Cette configuration suppose que :
- Pour l'A250 : e0c/e0d sur le périphérique de stockage est connecté aux ports 4 à 6 à l'aide d'un câble répartiteur.
- Pour l'A400 : e3a/e3b sur le périphérique de stockage est connecté au port 7-34 à l'aide d'un câble 40 GbE ou 100 GbE (non réparti).
- Pour A800 : e0a/e1a sur le périphérique de stockage est connecté au port 7-34 à l'aide d'un câble 40 GbE ou 100 GbE (non réparti).
Toutefois, ce n'est peut-être pas le cas. Dans de nombreuses installations, le périphérique de stockage est connecté aux ports 4 à 6, même s'il s'agit d'un A400 ou d'un A800. Si une carte A400 ou A800 est connectée aux ports 4 à 6, ajustez la configuration du commutateur pour supprimer les lignes suivantes avant d'appliquer les modifications :
interface breakout module 1 port 1-3 map 10g-4x interface breakout module 1 port 4-6 map 25g-4xRemplacez ensuite cette ligne :
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-34Par les lignes de code suivantes :
interface e1/1-34Avec ces modifications, les ports 1 à 34 sont tous configurés pour les câbles 40GbE ou 100GbE (non répartis).
De plus, supprimez les lignes suivantes de la partie bannière MOTD de la configuration pour éviter toute confusion à l'avenir :
* 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-34Remplacez ces lignes par :
* Ports 1-34: 40/100GbE Intra-Cluster/HA Ports, int e1/1-34Confirmez le CR de l'objet ManagementSwitch.
Examinez l'objet
ManagementSwitchdu cluster KIND d'amorçage et trouvez la CR correcte qui représente le commutateur contenant le périphérique de stockage. Identifiez les ports de commutateur physiques sur le commutateur de gestion, qui sont physiquement connectés aux commutateurs de stockage, et vérifiez que ces connexions existent dans le CR ManagementSwitch dans lacpGroups.Par exemple, si la connexion de gestion au commutateur de stockage est connectée aux ports 10 et 11 du commutateur de gestion, vérifiez que les informations suivantes existent :
kind: ManagementSwitch spec: ... serverNetwork: ... lacpGroups: - - 10 - - 11Utilisez la commande suivante pour obtenir les lacpGroups :
kubectl get ManagementSwitchinternal <switch-name> --namespace=gpc-system -o=jsonpath='{.spec.serverNetwork.lacpGroups}'Un exemple de résultat doit ressembler à ceci, ce qui vous permet de confirmer l'existence des ports :
[[1],[2],[3],[4],[5],[6]]
16.2. Initialiser les appliances ONTAP
Répétez les étapes suivantes pour chaque contrôleur des systèmes AFF 250/400/800. Chaque système comporte deux contrôleurs ou nœuds.
Utilisez la console série et le nom d'utilisateur par défaut
adminpour vous connecter au nœud du contrôleur de stockage.Vérifiez la version du système NetApp ONTAP.
- Exécutez la commande
version. - La version du système NetApp ONTAP doit être 9.15.1. Si la version est antérieure à la version 9.15.1, mettez à niveau les nœuds vers la version 9.15.1 avant l'amorçage du cluster d'administrateur de l'organisation. Pour en savoir plus, consultez le guide de mise à niveau.
- Exécutez la commande
Définissez les adresses d'interface IP d'interconnexion du cluster.
Commencez par localiser la valeur
.spec.network.clusterInterconnectIPattendue pour leStorageNodeactuel dans 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'exécution de la commande précédente affichera les noms de tous les
StorageNodeet leurs valeurs.spec.network.clusterInterconnectIP. Exemple :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.11Dans l'exemple précédent, pour le nœud
aa-ad-stge03-01, les adresses IP169.254.0.9et169.254.0.10seront utilisées dans les étapes suivantes. En effet,169.254.0.9est l'adresse IP définie dans cellcfg pour le nœudaa-ad-stge03-01, et169.254.0.10est l'adresse IP suivante (numériquement) après169.254.0.9.Ensuite, vérifiez les valeurs réelles des adresses IP d'interconnexion de cluster pour le nœud actuel.
network interface showVous devriez voir deux interfaces réseau commençant par
169.254, comme dans l'exemple de résultat suivant :::> 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 trueSi l'adresse de l'interface
clus1correspond à la valeur définie dans cellcfg et que l'adresse de l'interfaceclus2est l'adresse IP suivante après l'adresseclus1(numériquement), vous pouvez ignorer le reste de cette étape et passer à la suivante.Si vous ne voyez qu'une seule interface pour le serveur virtuel du cluster, exécutez
net port showpour vérifier que le deuxième port est opérationnel. Si c'est le cas, cela signifie que vous avez oublié l'une des interfaces. Deux options s'offrent à vous pour résoudre le problème :Option 1 : Ajoutez manuellement l'adresse IP d'interconnexion à l'aide de la commande suivante :
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 : choisissez l'adresse IP suivante (numériquement) après l'adresse IP d'interconnexion du cluster spécifiée dans le cellcfg pour le nœud actuel. Par exemple, si l'adresse IP d'interconnexion du cluster spécifiée dans le cellcfg du nœud actuel est
169.254.0.3, choisissez169.254.0.4.Port : le port peut varier selon le modèle d'ONTAP. Vous devez sélectionner le port dont l'interface n'est pas affichée dans le résultat précédent.
- Pour A250 : choisissez entre e0c et e0d.
- Pour A400 : choisissez entre e3a et e3b.
- Pour A800 : choisissez entre e0a et e1a.
Option 2 : Rétablir la configuration d'usine du nœud ONTAP (cela implique une configuration 9a et 9b dans le menu de démarrage ONTAP). Exécutez à nouveau la commande après la réinitialisation pour vérifier que deux adresses IP existent. Notez qu'il est recommandé d'essayer d'abord l'option 1 et de ne passer à l'option 2 que si les choses ne fonctionnent pas correctement.
Ensuite, mettez à jour l'adresse IP d'interconnexion
clus1pour qu'elle corresponde à la valeurclusterInterconnectIPspécifiée pour le nœud actuel dans cellcfg.net int modify -vserver Cluster -lif clus1 -address <interconnect-ip>- interconnect-ip : valeur
clusterInterconnectIPspécifiée dans cellcfg pour le nœud actuel.
Ensuite, mettez à jour l'adresse IP d'interconnexion
clus2pour qu'elle soit la prochaine adresse IP (numériquement) après la valeurclusterInterconnectIPspécifiée pour le nœud actuel dans cellcfg.net int modify -vserver Cluster -lif clus2 -address <next-interconnect-ip>- next-interconnect-ip : choisissez l'adresse IP suivante (numériquement) après l'adresse IP d'interconnexion du cluster spécifiée dans le fichier cellcfg pour le nœud actuel. Par exemple, si l'adresse IP d'interconnexion du cluster spécifiée dans le fichier cellcfg pour le nœud actuel est
169.254.0.3, choisissez169.254.0.4.
Enfin, vérifiez que les valeurs IP d'interconnexion de cluster réelles pour le nœud actuel correspondent aux valeurs attendues dans le fichier cellcfg.
network interface showVous devriez voir deux interfaces réseau commençant par
169.254, comme dans l'exemple de résultat suivant. L'adresse de l'interfaceclus1doit correspondre à la valeur définie dans cellcfg. L'adresse de l'interfaceclus2doit être l'adresse IP suivante après l'adresseclus1(numériquement).::> 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 trueFacultatif : vérifiez la connectivité entre les clusters.
ping -lif clus2 -vserver Cluster -destination <interconnect-ip-other-node>interconnect-ip-other-node: Choisissez une adresse IP intercluster à partir d'autres nœuds. Si la connectivité est établie, la commande ping devrait répondre.
Définissez le mot de passe administrateur (il doit être le même sur tous les nœuds et est utilisé lorsque vous saisissez le mot de passe). Assurez-vous que le mot de passe répond aux exigences de complexité. Sinon, un avertissement s'affichera concernant les comptes utilisateur non 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_PASSWORDDéfinissez l'adresse IP et la passerelle de gestion. Consultez les instructions ci-dessous pour savoir comment obtenir les informations requises.
::> 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: GATEWAYQuittez l'assistant de configuration du cluster après avoir défini la passerelle par défaut en saisissant
ctrl+c.Exécutez la commande suivante pour obtenir les informations sur le sous-réseau :
# cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageCluster") | (.spec.network.clusterManagement.netmask)'Un résultat semblable aux lignes suivantes doit s'afficher :
203.0.113.0Exécutez la commande suivante pour obtenir les informations sur la passerelle :
kubectl get subnetclaim -n root kb-ad-mgmtsw01-stge-os-subnet -o jsonpath={.status.ipv4SubnetStatus.gateway} ; echoUn résultat semblable aux lignes suivantes doit s'afficher :
203.0.113.1Voici un exemple d'obtention d'informations sur la propriété intellectuelle :
# 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.0Activez SSH pour l'utilisateur administrateur :
security login create -user-or-group-name admin -application ssh -authentication-method password -role adminRenommez le nœud en lui attribuant le nom spécifié dans
cell.yaml.system node rename -node localhost -newname NODE_NAMEVérifiez que les disques sont correctement configurés.
Exécutez
storage aggregate show -fields uses-shared-diskset vérifiez queaggr0renvoie "true". Exemple de résultat :::> storage aggregate show -fields uses-shared-disks aggregate uses-shared-disks --------- ----------------- aggr0 trueExécutez
run -node * sysconfig -ret vérifiez que des noms d'appareils se terminant parP3existent. Cela permet de s'assurer que les disques comportent trois partitions. Exemple de résultat :::> 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/16347584Exécutez
run -node local disk show -npour vérifier que les partitions de disque sontNot Ownedet qu'il y a2 * <number of disks>partitions. Cet exemple montre 24 partitions non attribuées pour 12 disques.::> 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 S5Y0NA0T101609NP002Si l'une de ces étapes échoue, rétablissez la configuration d'usine du système.
16.3. Configurer le protocole NTP
Obtenez les adresses IP du serveur NTP pour les relais NTP exécutés dans le cluster d'amorçage :
kubectl get ntpservers -n ntp-system -o jsonpath='{.items[*].status.managementIP}{"\n"}'
Pour chacun des serveurs NTP, exécutez la commande suivante sur le premier nœud ONTAP :
cluster time-service ntp server create -server NTP_SERVER_IP
Par exemple, si vos nœuds ONTAP sont kb-ad-stge01-01, kb-ad-stge01-02, kb-ad-stge02-01 et kb-ad-stge02-02, exécutez la commande sur le nœud kb-ad-stge01-01.
16.4. Vérifier le dossier cellcfg
Pour récupérer les valeurs du nom d'utilisateur et du mot de passe de stockage pour le stockage de fichiers, utilisez le fichier du fournisseur de matériel dédié au stockage, par exemple WO15_SO7100911835-2_GDCH-4d-A250-A400_DD-010223.xlsx.
16.4.1. Valider le mot de passe administrateur
Recherchez le nom du secret ONTAP référencé dans /CELLCFG/file-storage.yaml après StorageCluster.spec.adminSecretName.
Recherchez le Secret correspondant et assurez-vous que les valeurs sont renseignées. Sinon, remplacez le nom d'utilisateur et le mot de passe de l'administrateur :
apiVersion: v1
kind: Secret
metadata:
name: SECRET_NAME
namespace: gpc-system
type: Opaque
stringData:
netapp_username: admin
netapp_password: PASSWORD
16.4.2. Vérifier les licences ONTAP
Vos licences logicielles ONTAP doivent avoir été fournies par le fournisseur de matériel.
Recherchez le champ StorageCluster.spec.licenses dans le dossier /cellcfg/af-storage.yaml et assurez-vous que les licences sont renseignées.
Si ce n'est pas le cas, renseignez les champs avec les licences :
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
Pour référence, voici un exemple de la façon dont les entrées de licence doivent apparaître dans la configuration de la cellule :
licenses:
ABGITNWODUEVQELPECCAAAAAAAAA
AHJJWYTTTXKZOFKVBTBAAAAAAAAA
AHZTHBPQACAAAAKVBTBAAAAAAAAA
ALTXOYXSVDDCMADPECCAAAAAAAAA
ANWFPBPQACAAAAKVBTBAAAAAAAAA
APLKENWODUEVQELPECCAAAAAAAAA
ARIHVQFAHJMIWBDPECCAAAAAAAAA
AXFTCRFAHJMIWBDPECCAAAAAAAAA
16.5. Validation préliminaire
Exécutez la commande de validation :
gdcloud system check-config --config PATH_TO_CELL_CONFIG --artifacts-directory PATH_TO_ARTIFACTS \
--scenario FileBlockStorage
Si le journal contient des erreurs, suivez les messages pour résoudre le problème et exécutez à nouveau la validation.
16.5.1. Problèmes potentiels
Cette section présente les problèmes potentiels que vous pouvez rencontrer lors de la validation préliminaire des appliances de stockage de blocs de fichiers.
16.5.1.1. NumDisks pour StorageAggregate
Ignorez les échecs de validation liés au nombre incorrect de disques, mais vérifiez manuellement la valeur de NumDisks dans le CR StorageAggregate. Le StorageAggregate est défini dans le fichier xx-storage.yaml.
Le nombre total de disques configurés pour StorageAggregates pour une appliance de bloc de fichiers doit correspondre au nombre de disques présents dans l'appliance moins le nombre de disques de secours. Il est recommandé de réserver un disque de secours pour 12 disques.
Pour calculer la valeur de NumDisks, utilisez la formule suivante :
NumDisks = (Total_Disks/2) - ceil(Total_Disks/12)
NumDisks est égal à 10 si vous appliquez la formule à l'exemple (24/2) - ceil(24/12) décrit dans cette section.
16.6. Exécuter l'installation
Exécutez la commande d'installation :
gdcloud system storage install -v 3 --config PATH_TO_CELL_CONFIG
Cette commande effectue les opérations suivantes :
- Configure le cluster NetApp et ajoute les nœuds disponibles
- Crée les agrégats
- Configure LACP et les VLAN sur les ports de données
- Configurer les licences
- Configurer la surveillance
- Configure la gestion des clés externes
Une fois la tâche terminée, exécutez node show sur la console ONTAP pour vous assurer qu'aucun avertissement de ce type n'est affiché :
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.
Si c'est le cas, suivez les instructions, connectez-vous à ces nœuds et exécutez la commande cluster join correspondante pour vous assurer qu'il disparaît après l'opération.
16.7. Mettre à jour les paramètres de sécurité
Définir une bannière de connexion :
security login banner modify -vserver <cluster name> -message "<banner>"Limitez le délai avant expiration de la session CLI à dix minutes :
system timeout modify 10Appliquez la complexité des mots de passe et le nombre maximal de tentatives de connexion pour le rôle d'administrateur :
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 3Limitez le délai avant expiration de la session de l'interface utilisateur à dix minutes :
::> 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>Ajustez les paramètres de verrouillage des utilisateurs :
::> security login role config modify -vserver * -max-failed-login-attempts 3 -lockout-duration 1 -role * ::> security ssh modify -vserver * -max-authentication-retry-count 3Désactivez les ports USB (un redémarrage est nécessaire pour que la modification prenne effet) :
::> set diag ::*> system node usb-ports modify -node * -is-disabled-next-boot trueSupprimez le certificat d'amorçage.
Recherchez le certificat bootstrap-web-ca :
::> security certificate show-user-installedSi le certificat bootstrap-web-ca existe, le résultat se présente comme suit :
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
Lorsque vous souhaitez redémarrer les nœuds, redémarrez-les un par un à l'aide de la commande suivante :
::> system node reboot -node <node-name> -inhibit-takeover true
16.8. Stocker les utilisateurs ayant un accès d'urgence
Quatre comptes breakglass sont créés automatiquement et stockés en tant que secrets Kubernetes lors de la configuration.
- storage-root-level1
- storage-root-level1-backup
- storage-root-level2
- storage-root-level2-backup
Pour storage-root-level2 et storage-root-level2-backup, stockez et sécurisez vos identifiants sur papier comme indiqué :
Obtenez le nom d'utilisateur et le mot de passe du secret à l'aide des commandes suivantes, en remplaçant SECRET_NAME par le secret que vous souhaitez utiliser :
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 --decodeObtenez le nom du cluster ONTAP :
::> cluster identity showNotez si des utilisateurs inattendus disposent de droits d'administrateur :
::> useradmin user list- (Facultatif) Supprimez-les avec l'approbation de l'opérateur d'infrastructure. Effectuez toujours les opérations suivantes sur les charges de travail de production et des clients :
::> 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 ```Supprimez l'utilisateur d'administration NetApp créé à l'étape précédente.
::> 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'opérateur d'infrastructure principal note lisiblement le nom d'utilisateur et le mot de passe de chaque appliance sur des feuilles de papier distinctes. Ils plient les documents de sorte que leur contenu ne soit pas visible, les étiquettent (par exemple, "Identifiants racine pour le commutateur TOR 1") et les remettent à un ingénieur de niveau 1 pour qu'il les conserve en lieu sûr.
Sous l'œil attentif du responsable des opérations d'entrée/sortie, l'ingénieur de niveau 1 range les documents dans un coffre-fort physique.
L'IO ajoute une annotation aux secrets pour indiquer qu'ils ont été stockés dans le coffre-fort.
kubectl annotate secrets storage-root-level2 -n gpc-system disk.gdc.goog/persisted=''16.9. Mettre à jour les serveurs NTP
Effectuez les étapes suivantes après l'installation du cluster d'administrateur :
Obtenez les nouvelles adresses IP du serveur NTP pour les relais NTP exécutés dans le cluster d'administrateur :
kubectl get ntpservers -n gpc-systemDans ONTAP, supprimez tous les serveurs NTP existants :
cluster time-service ntp server show cluster time-service ntp server delete -server NTP_SERVER_IPAjoutez les nouveaux serveurs NTP à ONTAP :
cluster time-service ntp server create -server NTP_SERVER_IP