Propietario del componente operable: FILE
Perfil de habilidades: ingeniero de implementaciones En esta página se proporcionan instrucciones para configurar el almacenamiento de archivos y de bloques en el clúster mediante NetApp ONTAP.16.1. Configurar los conmutadores del clúster de ONTAP
Busca las contraseñas
switch-xx-ad-stgesw01-adminyswitch-xx-ad-stgesw02-admin(tendrán el mismo valor). Si no existen, inicializa las credenciales y genera una nueva contraseña aleatoria. Inicia sesión en el switch a través de la consola para definir la contraseña de administrador:# configure terminal # username ADMIN_USER password PASSWORD # exit # copy running-config startup-configGuarda las credenciales en un secreto y añádelas a
cell.yaml.apiVersion: v1 kind: Secret metadata: name: netapp-ontap-cluster-switch-credential namespace: gpc-system type: Opaque stringData: username: ADMIN_USER password: PASSWORDEjecuta el siguiente comando para obtener los nombres de los conmutadores de almacenamiento:
kubectl get storageswitch -n gpc-systemDebería ver un resultado similar al siguiente:
NAME AGE MANAGEMENTIP kb-ab-stgesw01 10d 192.0.2.0 kb-ab-stgesw02 10d 192.0.2.1Sigue estos pasos para cada interruptor y usa el nombre del interruptor.
Ejecuta el siguiente comando para obtener la configuración del conmutador del CR
switchstaticconfig:kubectl get switchstaticconfigs -n gpc-system $SWITCH_NAME-static-config -o yaml | /root/release/scripts/yq_linux_amd64 '.spec.config'Debería ver un resultado similar al siguiente:
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 !Implementa la configuración del switch obtenida en el switch mediante un cable serie o un servidor de consola. Para ello, copia y pega el contenido en el switch.
En esta configuración se presupone lo siguiente:
- En el caso de A250, e0c/e0d del dispositivo de almacenamiento se conecta a los puertos 4-6 mediante un cable de conexión.
- En el caso de A400, e3a/e3b del dispositivo de almacenamiento se conecta al puerto 7-34 mediante un cable de 40 GbE o 100 GbE (no breakout).
- En el caso de A800, e0a/e1a del dispositivo de almacenamiento se conecta al puerto 7-34 mediante un cable de 40 GbE o 100 GbE (no breakout).
Sin embargo, puede que no sea así. En muchas instalaciones, el dispositivo de almacenamiento está conectado a los puertos 4-6, aunque sea un A400 o un A800. Si se conecta un A400 o un A800 a los puertos 4-6, ajusta la configuración del interruptor para eliminar las siguientes líneas antes de aplicar los cambios:
interface breakout module 1 port 1-3 map 10g-4x interface breakout module 1 port 4-6 map 25g-4xA continuación, sustituye esta línea:
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 esta opción:
interface e1/1-34Con estos cambios, los puertos del 1 al 34 se configuran para cables 40GbE o 100GbE (sin breakout).
Además, elimine las siguientes líneas de la parte del banner MOTD de la configuración para evitar posibles confusiones en el 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-34Sustituye estas líneas por las siguientes:
* Ports 1-34: 40/100GbE Intra-Cluster/HA Ports, int e1/1-34Confirma el CR del objeto ManagementSwitch.
Consulta el objeto de clúster KIND de arranque
ManagementSwitchy busca el CR correcto que representa el interruptor que contiene el dispositivo de almacenamiento. Identifica los puertos de conmutación físicos del conmutador de gestión, que están conectados físicamente a los conmutadores de almacenamiento, y confirma que estas conexiones existen en el CR ManagementSwitch en lacpGroups.Por ejemplo, si la conexión de gestión al conmutador de almacenamiento está conectada a los puertos 10 y 11 del conmutador de gestión, comprueba que existe la siguiente información:
kind: ManagementSwitch spec: ... serverNetwork: ... lacpGroups: - - 10 - - 11Usa el siguiente comando para obtener los lacpGroups:
kubectl get ManagementSwitchinternal <switch-name> --namespace=gpc-system -o=jsonpath='{.spec.serverNetwork.lacpGroups}'La salida de ejemplo debería tener este aspecto, lo que te permitirá confirmar que los puertos existen:
[[1],[2],[3],[4],[5],[6]]
16.2. Inicializar los dispositivos ONTAP
Repita los siguientes pasos para cada controlador de los sistemas AFF 250, 400 y 800. Cada sistema tiene dos controladores o nodos.
Usa la consola serie y el nombre de usuario predeterminado
adminpara conectarte al nodo del controlador de almacenamiento.Verifica la versión del sistema NetApp ONTAP.
- Ejecuta el comando
version. - La versión del sistema NetApp ONTAP debe ser 9.15.1. Si la versión es anterior a la 9.15.1, actualiza los nodos a la versión 9.15.1 antes de iniciar el clúster de administrador de la organización. Para obtener más información, consulta la guía de actualización.
- Ejecuta el comando
Define las direcciones de interfaz IP de interconexión de clústeres.
Primero, busca el valor
.spec.network.clusterInterconnectIPesperado para elStorageNodeactual en 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)'Al ejecutar el comando anterior, se mostrarán los nombres de todos los
StorageNodes y sus valores.spec.network.clusterInterconnectIP. Por ejemplo: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.11En el ejemplo anterior, para el nodo
aa-ad-stge03-01, se usarían las IPs169.254.0.9y169.254.0.10en los pasos siguientes. Esto se debe a que169.254.0.9es la IP definida en cellcfg para el nodoaa-ad-stge03-01y169.254.0.10es la siguiente IP (numéricamente) después de169.254.0.9.A continuación, comprueba los valores de IP de interconexión de clúster del nodo actual.
network interface showDeberías ver dos interfaces de red que empiecen por
169.254, como en el siguiente 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 trueSi la dirección de la interfaz
clus1coincide con el valor definido en cellcfg y la dirección de la interfazclus2es la siguiente IP después de la direcciónclus1(numéricamente), puedes saltarte el resto de este paso y continuar con el siguiente.Si solo ves una interfaz para el vServer del clúster, ejecuta
net port showpara verificar que el segundo puerto está activo y en funcionamiento. Si es así, significa que te has saltado una de las interfaces y tienes dos opciones para solucionarlo:Opción 1: Añadir manualmente la IP de interconexión con el siguiente 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: elige la siguiente IP (numéricamente) después de la IP de interconexión del clúster especificada en el archivo cellcfg del nodo actual. Por ejemplo, si la IP de interconexión del clúster especificada en el archivo cellcfg del nodo actual es
169.254.0.3, elige169.254.0.4.Puerto: en función del modelo de ONTAP, el puerto puede ser diferente. Debes elegir el puerto que no tenga una interfaz que se muestre en el resultado anterior.
- En el caso de A250, elige entre e0c y e0d.
- En el caso del A400, elige entre e3a y e3b.
- En el caso de A800, elige entre e0a y e1a.
Opción 2: restablecer de fábrica el nodo de ONTAP (esto implica una configuración 9a y 9b en el menú de arranque de ONTAP). Vuelve a ejecutar el comando después de restablecerlo para comprobar que hay dos IPs. Ten en cuenta que es recomendable probar primero la opción 1 y recurrir a la opción 2 solo si no funciona correctamente.
A continuación, actualiza la IP de interconexión
clus1para que sea el valorclusterInterconnectIPespecificado para el nodo actual en cellcfg.net int modify -vserver Cluster -lif clus1 -address <interconnect-ip>- interconnect-ip: el valor
clusterInterconnectIPespecificado en cellcfg para el nodo actual.
A continuación, actualiza la
clus2IP de interconexión para que sea la siguiente IP (numéricamente) después del valorclusterInterconnectIPespecificado para el nodo actual en cellcfg.net int modify -vserver Cluster -lif clus2 -address <next-interconnect-ip>- next-interconnect-ip: elige la siguiente IP (numéricamente) después de la IP de interconexión del clúster especificada en cellcfg para el nodo actual. Por ejemplo, si la IP de interconexión del clúster especificada en cellcfg para el nodo actual es
169.254.0.3, elige169.254.0.4.
Por último, comprueba que los valores de IP de interconexión de clústeres del nodo actual coincidan con los valores esperados en cellcfg.
network interface showDeberías ver dos interfaces de red que empiecen por
169.254, como en el siguiente resultado. La dirección de la interfazclus1debe coincidir con el valor definido en cellcfg. La dirección de la interfazclus2debe ser la siguiente IP después de la direcciónclus1(numéricamente).::> 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: verifica la conectividad entre clústeres.
ping -lif clus2 -vserver Cluster -destination <interconnect-ip-other-node>interconnect-ip-other-node: elige una IP de interconexión de otros nodos. Si hay conectividad, el ping debería responder.
Define la contraseña de administrador (debe ser la misma en todos los nodos y se usa al rellenar la contraseña). Asegúrate de que la contraseña cumpla los requisitos de complejidad. De lo contrario, verás una advertencia sobre las cuentas de usuario que no los cumplen.
::> 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_PASSWORDDefine la IP de gestión y la pasarela. Consulta las instrucciones que se indican a continuación para obtener la información necesaria.
::> 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: GATEWAYSal del asistente de configuración del clúster después de definir la pasarela predeterminada introduciendo
ctrl+c.Ejecuta el siguiente comando para obtener la información de la subred:
# cat cellcfg/*-storage.yaml | /root/release/scripts/yq_linux_amd64 'select(.kind == "StorageCluster") | (.spec.network.clusterManagement.netmask)'Debería ver un resultado similar al siguiente:
203.0.113.0Ejecuta el siguiente comando para obtener la información de la pasarela:
kubectl get subnetclaim -n root kb-ad-mgmtsw01-stge-os-subnet -o jsonpath={.status.ipv4SubnetStatus.gateway} ; echoDebería ver un resultado similar al siguiente:
203.0.113.1A continuación, se muestra un ejemplo de cómo obtener información 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.0Habilita SSH para el usuario administrador:
security login create -user-or-group-name admin -application ssh -authentication-method password -role adminCambia el nombre del nodo por el especificado en
cell.yaml.system node rename -node localhost -newname NODE_NAMEComprueba que los discos estén configurados correctamente.
Ejecuta
storage aggregate show -fields uses-shared-disksy comprueba queaggr0devuelva el valor true. Ejemplo:::> storage aggregate show -fields uses-shared-disks aggregate uses-shared-disks --------- ----------------- aggr0 trueEjecuta
run -node * sysconfig -ry comprueba que existen nombres de dispositivos que terminan enP3. De esta forma, te aseguras de que los discos tengan 3 particiones. Ejemplo:::> 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/16347584Ejecuta
run -node local disk show -npara verificar que las particiones del disco sonNot Ownedy que hay2 * <number of disks>particiones. En este ejemplo se muestran 24 particiones sin propietario 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 S5Y0NA0T101609NP002Si alguno de estos pasos falla, restablece el estado de fábrica del sistema.
16.3. Configurar el protocolo de tiempo de red
Obtén las IPs del servidor NTP de los retransmisores NTP que se ejecutan en el clúster de arranque:
kubectl get ntpservers -n ntp-system -o jsonpath='{.items[*].status.managementIP}{"\n"}'
En cada uno de los servidores NTP, ejecuta el siguiente comando en el primer nodo de ONTAP:
cluster time-service ntp server create -server NTP_SERVER_IP
Por ejemplo, si tus nodos de ONTAP son kb-ad-stge01-01, kb-ad-stge01-02, kb-ad-stge02-01 y kb-ad-stge02-02, ejecuta el comando en el nodo kb-ad-stge01-01.
16.4. Comprobar la carpeta cellcfg
Para obtener los valores del nombre de usuario y la contraseña de almacenamiento de archivos, usa el archivo del proveedor de hardware dedicado al almacenamiento. Por ejemplo, WO15_SO7100911835-2_GDCH-4d-A250-A400_DD-010223.xlsx
16.4.1. Verificar la contraseña de administrador
Busca el nombre del secreto de ONTAP al que se hace referencia en /CELLCFG/file-storage.yaml después de StorageCluster.spec.adminSecretName.
Busca el secreto correspondiente y asegúrate de que los valores se hayan rellenado. Si no es así, sustituye el nombre de usuario y la contraseña 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. Verificar licencias de ONTAP
El proveedor de hardware debe haberte proporcionado las licencias de software de ONTAP.
Busca el campo StorageCluster.spec.licenses en la carpeta /cellcfg/af-storage.yaml y comprueba que se hayan rellenado las licencias.
Si no es así, rellena los campos con las licencias:
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
A modo de referencia, a continuación se muestra un ejemplo de cómo deben aparecer las entradas de licencia en la configuración de la celda:
licenses:
ABGITNWODUEVQELPECCAAAAAAAAA
AHJJWYTTTXKZOFKVBTBAAAAAAAAA
AHZTHBPQACAAAAKVBTBAAAAAAAAA
ALTXOYXSVDDCMADPECCAAAAAAAAA
ANWFPBPQACAAAAKVBTBAAAAAAAAA
APLKENWODUEVQELPECCAAAAAAAAA
ARIHVQFAHJMIWBDPECCAAAAAAAAA
AXFTCRFAHJMIWBDPECCAAAAAAAAA
16.5. Validación preparatoria
Ejecuta el comando de validación:
gdcloud system check-config --config PATH_TO_CELL_CONFIG --artifacts-directory PATH_TO_ARTIFACTS \
--scenario FileBlockStorage
Si hay algún error en el registro, sigue los mensajes para solucionar el problema y vuelve a ejecutar la validación.
16.5.1. Posibles problemas
En esta sección se describen los posibles problemas que pueden surgir al realizar la validación previa de los dispositivos de almacenamiento de bloques de archivos.
16.5.1.1. NumDisks de StorageAggregate
Ignora los errores de validación en el recuento de discos incorrecto, pero verifica manualmente el valor de NumDisks en la CR StorageAggregate. El StorageAggregate se define en el archivo xx-storage.yaml.
El número total de discos configurados para StorageAggregates en un dispositivo de bloque de archivos debe coincidir con el número de discos del dispositivo menos el número de discos de repuesto. Lo más recomendable es reservar un disco de repuesto por cada 12 discos.
Para calcular el valor de NumDisks, usa la siguiente fórmula:
NumDisks = (Total_Disks/2) - ceil(Total_Disks/12)
NumDisks es igual a 10 si aplicas la fórmula al ejemplo de (24/2) - ceil(24/12) descrito en esta sección.
16.6. Ejecutar la instalación
Ejecuta el comando de instalación:
gdcloud system storage install -v 3 --config PATH_TO_CELL_CONFIG
Este comando hace lo siguiente:
- Configura el clúster de NetApp y añade los nodos disponibles.
- Crea las agregaciones.
- Configura LACP y las VLANs en los puertos de datos.
- Configurar licencias
- Configurar Monitoring
- Configura la gestión de claves externa.
Una vez que se haya completado el trabajo, ejecute node show en la consola de ONTAP para asegurarse de que no haya advertencias como estas:
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 es así, sigue las instrucciones e inicia sesión en estos nodos. Después, ejecuta el comando cluster join correspondiente para asegurarte de que desaparece tras la operación.
16.7. Actualizar la configuración de seguridad
Definir banner de inicio de sesión:
security login banner modify -vserver <cluster name> -message "<banner>"Limita el tiempo de espera de la sesión de la CLI a diez minutos:
system timeout modify 10Implementa la complejidad de las contraseñas y el número máximo de intentos de inicio de sesión en el rol 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 3Limita el tiempo de espera de la sesión de la interfaz de usuario a diez 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>Ajusta la configuración de bloqueo de usuarios:
::> security login role config modify -vserver * -max-failed-login-attempts 3 -lockout-duration 1 -role * ::> security ssh modify -vserver * -max-authentication-retry-count 3Inhabilitar puertos USB (es necesario reiniciar el dispositivo para que esta política tenga efecto):
::> set diag ::*> system node usb-ports modify -node * -is-disabled-next-boot trueElimina el certificado de arranque.
Busca el certificado bootstrap-web-ca:
::> security certificate show-user-installedSi el certificado bootstrap-web-ca existe, el resultado será el siguiente:
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
Cuando quieras reiniciar los nodos, reinícialos uno a uno con el siguiente comando:
::> system node reboot -node <node-name> -inhibit-takeover true
16.8. Almacenar usuarios con acceso de emergencia
Durante la configuración, se crean automáticamente cuatro cuentas de acceso de emergencia y se almacenan como secretos de Kubernetes.
- storage-root-level1
- storage-root-level1-backup
- storage-root-level2
- storage-root-level2-backup
En el caso de storage-root-level2 y storage-root-level2-backup, almacena y protege tus credenciales en papel como se indica:
Obtén el nombre de usuario y la contraseña del secreto con los siguientes comandos, sustituyendo SECRET_NAME por el secreto que quieras 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 --decodeObtén el nombre del clúster de ONTAP:
::> cluster identity showAnota los usuarios inesperados que tengan privilegios de administrador:
::> useradmin user list- Opcional: Elimínalos con la aprobación del operador de infraestructura. Siempre se realiza en cargas de trabajo de producción y 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 ```Elimina el usuario de administración de NetApp que has creado en el paso 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 sshEl operador de infraestructura principal (IO) escribe el nombre de usuario y la contraseña de cada dispositivo de forma legible en hojas de papel independientes. Doblan los documentos de forma que no se vea el contenido, los etiquetan (por ejemplo, "Credenciales de administrador para el interruptor 1 de TOR") y se los entregan a un técnico de nivel 1 para que los guarde en un lugar seguro.
Con el jefe de operaciones observando, el técnico de nivel 1 guarda los documentos en una caja fuerte física.
La IO añade una anotación a los secretos para marcar que se han almacenado en el espacio seguro.
kubectl annotate secrets storage-root-level2 -n gpc-system disk.gdc.goog/persisted=''16.9. Actualizar servidores NTP
Sigue estos pasos después de instalar el clúster de administrador:
Obtén las nuevas IPs del servidor NTP de los retransmisores NTP que se ejecutan en el clúster de administración:
kubectl get ntpservers -n gpc-systemEn ONTAP, elimina todos los servidores NTP que haya:
cluster time-service ntp server show cluster time-service ntp server delete -server NTP_SERVER_IPAñade los nuevos servidores NTP a ONTAP:
cluster time-service ntp server create -server NTP_SERVER_IP