Saltar al contenido principal

Reemplazo planificado de un disco en un nodo

El reemplazo planificado se realiza mientras el disco aún funciona: ha llegado al final de su vida útil, su modelo ya no es compatible o muestra signos de un fallo inminente. Se diferencia del reemplazo de emergencia en un aspecto importante: es usted quien determina la secuencia, no una avería. Esto significa que puede preparar un disco de reemplazo, encender el indicador en el gabinete correcto y reemplazar el disco sin dejar el pool sin redundancia ni siquiera un minuto.

En el modelo de vStack Center, un disco tiene tres atributos independientes. Confundirlos es la principal fuente de errores en este procedimiento. Ninguno puede deducirse de otro.

AtributoDónde se veQué significaQué lo modifica
Estado de saludColumna Status de la pestaña Disk propsEl estado real del discoEl nodo, según las condiciones reales
RolSolo mediante la APIRol del disco: libre, particionado, miembro de pool, de repuesto (spare)Consultar el disco, marcarlo como de repuesto, quitar la etiqueta de repuesto, el reemplazo
En línea en el clústerSolo mediante la APIEl disco está disponible en la fabric del clúster y es visible para todos los nodosPoner el disco en línea en el clúster y retirarlo del clúster

El reemplazo en sí es una única operación. No "retira" el disco del gabinete: cambia el pool al dispositivo de reemplazo e inicia el resilvering. El disco antiguo se retira físicamente después, cuando el pool ya no lo utiliza.

Las operaciones con discos físicos, salvo el encendido de indicadores, no están disponibles en la interfaz web. Un administrador utiliza la API para reemplazar un disco, marcarlo como de repuesto y retirarlo del clúster; consulte la referencia de la API. En este procedimiento, la interfaz cumple otra función: mostrar el disco, su ubicación en el gabinete, el estado de salud del pool y el estado del resilvering.

El reemplazo es la operación más peligrosa del subsistema de discos, por lo que cuenta con su propia protección contra la pérdida de datos. Antes de enviar el comando, vStack Center consulta al nodo el rol real del disco de reemplazo y envía el comando solo si el disco de reemplazo está libre: de repuesto o sin usar. Si el disco de reemplazo está en uso, no es posible determinar su estado o el dispositivo averiado y el dispositivo nuevo son el mismo, el reemplazo se rechaza antes de enviar el comando al nodo. No se permiten reemplazos simultáneos en el mismo pool.

Todos los comandos del subsistema de discos son asíncronos: un comando aceptado significa "reenviado al agente del nodo". El resultado real llega en la respuesta del nodo y se ve la próxima vez que lea la lista de discos o el estado del pool.

Requisitos previos​

  • El rol Cluster master (role_id=1), necesario para todas las operaciones con discos físicos;
  • El indicador feature.physical_disc_management: sin él, todo el subsistema de discos no está disponible. El indicador se encuentra en las opciones del clúster;
  • Un disco de reemplazo en el mismo nodo: libre o ya marcado como de repuesto. No se puede usar un disco de reemplazo de otro nodo; el reemplazo opera dentro de un único nodo;
  • Se conocen el nombre del pool y la ruta del dispositivo que se reemplaza;
  • No hay otro reemplazo en curso en el pool: solo un reemplazo por pool a la vez;
  • vStack Center versión 3.0.5: las operaciones con discos físicos se introdujeron en esta versión.

Paso 1. Localice el disco y su ubicación en el gabinete​

Identifique el disco de tres maneras: por su entrada en la lista de discos, por la ruta de su dispositivo (que requiere el comando de reemplazo) y por su ubicación en el gabinete, para retirar el disco correcto.

  1. Abra Provider Data Center → Server Nodes, seleccione el nodo y despliegue la sección Disks. La misma lista, filtrada por pool, está disponible en la tarjeta del pool, en la sección Pool Disks. Abra el pool desde la tabla ZFS pools en Storage Resources.

  2. Cambie entre las pestañas: muestran distintas vistas de la misma lista. La columna ID vincula las filas de todas las pestañas, y encima de la tabla hay un campo de búsqueda (Search in table).

    PestañaColumnasFinalidad en este paso
    Disk propsID, Model, Size (GB), StatusIdentificar el modelo, el tamaño y el estado de salud
    ZFS propsPool name, Vdev_pool_name, Vdev_guid, Vdev_pool_guidAsegurarse de que el disco pertenece al pool correcto
    PlacementEnclosure_device, Enclosure_id, Dev_index, DeviceLocalizar el gabinete y la ranura
    LED on panelLed_fault, Led_locateComprobar que el indicador está encendido
    TimestampsCreated, Last_seenDeterminar la antigüedad del registro del disco
  3. Anote el nodo y el valor de Device para el comando de reemplazo, y Enclosure_device y Dev_index para encender el indicador. Los campos Pool name y Vdev_pool_name rellenados confirman que el disco es miembro de un pool y no está libre.

Estas tablas no muestran el rol del disco ni el indicador "en línea en el clúster"; la API los proporciona. Compruébelos antes del reemplazo: el rol determina qué disco puede usarse como reemplazo.

Paso 2. Encienda el indicador del gabinete del disco​

Elegir la ranura equivocada cuesta un segundo disco, así que encienda el indicador antes de ir a la sala de servidores. Hay dos indicadores: de localización ("este") y de fallo.

  1. En la sección Disks de la tarjeta del nodo, vaya a la pestaña Front view o Inner view. Allí, cada disco tiene botones para los indicadores de localización y de fallo.
  2. Encienda el indicador de localización del disco que se reemplaza.
  3. Compruebe que el indicador está realmente encendido en la pestaña LED on panel, en las columnas Led_fault y Led_locate.

Puede realizar la misma operación mediante la API. En ese caso, indique el nombre del gabinete con el formato /dev/sesN, y no como aparece en la columna Enclosure_device. Cualquier otro formato se rechaza con el código -24307, y un gabinete desconocido, con -24316.

Paso 3. Registre el estado de salud del pool antes de la operación​

Registre el estado inicial antes de hacer cambios; de lo contrario, no tendrá nada con qué comparar después del reemplazo.

  1. Abra Provider Data Center → Storage Resources. La tabla ZFS pools contiene las columnas GUID, Name, Health, Consuming, Scrubbing, Resilvering, Current node y Capacity (RAW).
  2. Anote Health, Resilvering y Current node del pool en el que se reemplaza el disco. Inicie el reemplazo planificado solo en un pool en buen estado. Un pool degradado requiere un procedimiento distinto, descrito en "Recuperación de un pool degradado".
  3. Abra el pool y revise la sección Properties: Capacity, Provisioned, Used y Free indican si hay espacio suficiente para el resilvering.

La tabla y la página del pool leen de la base de datos de vStack Center y muestran el último estado registrado. La API proporciona el árbol actual del pool con el estado de cada dispositivo. Lo necesitará si la información de la interfaz difiere del estado real.

Paso 4. Prepare el disco de reemplazo​

El disco de reemplazo debe estar libre; de lo contrario, la protección bloqueará el comando. "Libre" significa un rol "spare" o "unused". El rol en la base de datos puede estar desactualizado, así que primero actualícelo consultando directamente al nodo.

  1. Busque candidatos en la sección Disks de la tarjeta del nodo: en la pestaña ZFS props, un disco libre tiene vacíos los campos Pool name y Vdev_pool_name. Compruebe Size (GB): el disco de reemplazo debe ser al menos tan grande como el disco que se reemplaza.
  2. Actualice el rol del candidato consultando directamente al nodo mediante la API: el nodo informa sobre el disco por la ruta del dispositivo, y vStack Center registra el rol actual. Para un disco que aún no se ha inventariado, la consulta no cambia nada; primero inventaríe ese disco desde la página del nodo.
  3. Si el disco de reemplazo simplemente está libre, puede dejarlo como está: el reemplazo acepta tanto discos de repuesto como sin usar. Si mantiene un disco de repuesto designado en el nodo, márquelo como de repuesto mediante la API. Es una operación destructiva: el nodo escribe una etiqueta de servicio en el disco, por lo que rechaza la operación en un disco con datos activos, salvo que se fuerce el etiquetado.
  4. Vuelva a leer la lista de discos y asegúrese de que el campo Pool name del disco de reemplazo sigue vacío.

Paso 5. Reemplace el disco​

Ahora emita un único comando. Un administrador lo ejecuta mediante la API. Todas las comprobaciones se realizan antes de enviar el comando al nodo, por lo que una llamada no válida no llegará al disco.

Prepare lo siguiente:

  • El nodo que contiene ambos discos;
  • El nombre del pool en el que se realiza el reemplazo;
  • La ruta del dispositivo que se reemplaza, de la columna Device;
  • La ruta del disco de reemplazo, que debe ser distinta de la ruta del dispositivo que se reemplaza.

Un comando aceptado solo significa "enviado al nodo". El resultado real llega en la respuesta del nodo. Si tiene éxito, el dispositivo nuevo se marca como miembro del pool. Si falla, se devuelve un error y el disco antiguo no se marca automáticamente como averiado: su rol no cambia.

Paso 6. Espere a que termine el resilvering​

El pool restablece la redundancia por sí mismo; vStack Center solo muestra el proceso.

  1. Abra Storage Resources y supervise las columnas Resilvering y Health del pool en el que se reemplaza el disco. Un valor de uno en Resilvering significa que el pool está restableciendo la redundancia después del reemplazo.
  2. El reemplazo ha finalizado cuando Resilvering vuelve a cero y Health sigue indicando un buen estado.
  3. Compruebe la pertenencia al pool: en la tarjeta del pool, en la pestaña Placement de la sección Pool Disks, el disco de reemplazo debe aparecer en lugar del disco antiguo.

vStack Center no muestra el progreso en porcentaje; solo hay un indicador de si está en curso. Estime la duración a partir del tamaño del pool en la sección Properties.

Paso 7. Desconecte y retire el disco antiguo​

Mientras un disco está en línea en el clúster, el clúster lo considera parte del clúster. Antes de retirarlo físicamente, desactive este indicador. La operación utiliza la API y elimina el LUN de la fabric. Especifique el disco por número de serie (preferible) o por la ruta del dispositivo.

aviso

No retire un disco del clúster mientras siga siendo miembro de un pool activo: el pool quedará degradado. Revise la sección Pool Disks para asegurarse de que el pool utiliza el disco de reemplazo y no el disco antiguo. El nodo protege las estructuras de datos activas y rechazará la operación, pero no debe confiar en ese rechazo en lugar de comprobarlo.

Después de la llamada, vuelva a leer la lista de discos: el indicador "en línea en el clúster" del disco está desactivado. Ya puede retirar físicamente el disco.

Finalización del trabajo​

  1. Apague ambos indicadores: tarjeta del nodo → sección Disks → pestaña Front view o Inner view. Compruebe el resultado en la pestaña LED on panel.
  2. Restablezca la reserva de discos de repuesto. El disco de reemplazo ya está en el pool, por lo que no queda ningún disco de repuesto en el nodo: ponga un disco nuevo en línea en el clúster y márquelo como de repuesto mediante la API.
  3. Actualice el inventario después de los cambios físicos: ejecute un inventario del nodo para la clase ses y después para cam. De lo contrario, la lista de discos conservará una entrada del disco retirado con un valor de Last_seen desactualizado.
  4. Compruebe el estado final en la pestaña ZFS props: el nuevo miembro del pool tiene rellenados los campos Pool name y Vdev_pool_name, mientras que el campo Pool name del disco de repuesto está vacío.

Verificación del resultado​

Qué comprobarDónde mirarResultado esperado
El pool utiliza el disco nuevoTarjeta del pool, Pool Disks → PlacementEl disco de reemplazo ha sustituido al disco antiguo
El resilvering ha finalizadoStorage ResourcesResilvering = 0, Health indica buen estado
El disco nuevo está registrado como miembro del poolPool Disks → ZFS propsLos campos Pool name y Vdev_pool_name del disco de reemplazo están rellenados
El disco antiguo se ha retirado del clústerMediante la APIEl indicador "en línea en el clúster" está desactivado
Los indicadores están apagadosSección Disks → LED on panelLed_fault y Led_locate están apagados
Se ha restablecido la reserva de discos de repuestoMediante la APIEl nodo tiene un disco con el rol "spare" y el campo Pool name vacío

Si algo sale mal​

Qué veCausaQué hacer
Código de error -24907El disco de reemplazo no está libre: su rol no es ni "spare" ni "unused"Libere el disco o elija otro; actualice el rol consultando directamente al nodo
Código de error -24908No se pudo determinar el estado del disco de reemplazo: el nodo no respondió o se agotó el tiempo de espera de la solicitudEl reemplazo se rechazó deliberadamente. Compruebe la conectividad con el nodo y vuelva a consultar el disco
Código de error -24905El dispositivo que se reemplaza y el dispositivo nuevo son el mismoEspecifique dispositivos distintos
Código de error -24906Ya hay un reemplazo en curso en este poolEspere a que finalice el reemplazo actual: un reemplazo por pool
Código de error -24902El pool está vacío o no existe en el nodoCompare el nombre del pool con la columna Name de la tabla ZFS pools; es posible que el pool no esté importado en este nodo
Código de error -24903No se proporcionó la ruta del dispositivo que se reemplazaUtilice la ruta de la columna Device
Código de error -24904, -24502, -24402, -24803Falló la validación del formato de la ruta del dispositivoUtilice una ruta con el formato /dev/daN
Código de error -24504Ya hay una operación destructiva en curso en el discoEspere la respuesta del nodo: no pueden ejecutarse dos operaciones destructivas en el mismo disco
Código de error -24503El disco ya está marcado como de repuestoNo es necesario reintentar; compruebe el rol del disco
Código de error -24603El disco no está marcado como de repuesto, por lo que no hay etiqueta que quitarCompruebe el rol del disco antes de quitar la etiqueta
Código de error -24307Formato incorrecto del nombre del gabineteUtilice un nombre con el formato /dev/sesN, y no como aparece en la columna Enclosure_device
Código de error -24316No se encontró el gabineteCompruebe Enclosure_id y Enclosure_device en la pestaña Placement; si difieren, vuelva a recopilar el inventario
Código de error -24311, -24313, -24315El valor del indicador no es ni 0 ni 1, o no se proporcionó ningún indicadorProporcione al menos un indicador con un valor de 0 o 1
Código de error -24802No se especificó ni un número de serie ni una ruta de discoProporcione al menos un identificador del disco
Código de error -24901, -24501, -24601, -24801, -24401, -24301, -24201El indicador feature.physical_disc_management está desactivadoActive la gestión de discos físicos en las opciones del clúster
Código de error -403La operación solo está disponible para el rol Cluster masterInicie sesión con un rol de nivel de clúster
El comando se acepta, pero no ha cambiado nada en la lista de discosEl comando solo se ha reenviado al agente del nodo; el resultado llega más tardeVuelva a abrir las pantallas; compruebe Last_seen para ver la antigüedad de los datos
El disco se marcó correctamente como de repuesto, pero su rol no cambióEl disco aún no se ha inventariado, por lo que no hay ningún registro en el que guardar el rolEjecute un inventario del nodo para la clase cam y vuelva a intentarlo
El pool pasó a DEGRADED después de retirar el discoEl disco se retiró antes de que el pool cambiara al disco de reemplazoVuelva a colocar el disco en el gabinete y siga el procedimiento de recuperación
El reemplazo se completó correctamente, pero sigue sin haber redundanciaEl pool utiliza el disco de reemplazo, por lo que no queda ningún disco de repuesto en el nodoPonga un disco nuevo en línea en el clúster y márquelo como de repuesto

Limitaciones​

No se puede iniciar una comprobación de integridad del pool (scrub) desde vStack Center; esta operación no está disponible. La columna Scrubbing solo indica si se está ejecutando un proceso iniciado en el nodo.

vStack Center tampoco puede añadir un disco a un pool como dispositivo nuevo. Poner un disco en línea en el clúster lo hace visible para los nodos, pero la pertenencia al pool se modifica en el nodo. Reemplazar un miembro existente del pool es la única operación de pertenencia al pool disponible desde vStack Center.

La API proporciona la propiedad autoreplace del pool. Si está desactivada, un disco de repuesto no se sustituirá automáticamente, y el reemplazo siempre deberá iniciarlo un administrador.

Véase también​

Métodos de la API​

Operaciones de la API en esta página: pd-list, pd-status-map, pd-led, pd-info, pd-spare, pd-unspare, pd-replace, pd-use, pd-unuse, pd-pools-status, pool-map-by-guid, pools-get, node-inventory; consulte la referencia de la API.