¿Debería un desarrollador mantener las bases de datos en el nodo de cómputo o en el nodo de almacenamiento?

Eva Wong es la Redactora técnica y manitas residente en ZimaSpace. Una geek de toda la vida con pasión por los homelabs y el software de código abierto, se especializa en traducir conceptos técnicos complejos en guías accesibles y prácticas. Eva cree que el autoalojamiento debe ser divertido, no intimidante. A través de sus tutoriales, empodera a la comunidad para desmitificar las configuraciones de hardware, desde construir su primer NAS hasta dominar los contenedores Docker.

Mantén de forma predeterminada los archivos activos de la base de datos en almacenamiento de baja latencia junto al cómputo y utiliza después el nodo de almacenamiento para copias de seguridad, volcados, réplicas y archivos.

Ese valor predeterminado cambia cuando el nodo de almacenamiento ofrece una ruta de almacenamiento de bloques diseñada deliberadamente, una latencia medida, una semántica de durabilidad correcta y un beneficio de recuperación que justifique la dependencia adicional. La decisión no consiste simplemente en elegir entre capacidad local o de red: los registros de transacciones, los archivos de datos, las copias de seguridad, las cargas de archivos de la aplicación y las bases de datos de prueba desechables tienen diferentes patrones de escritura y consecuencias ante fallos.

Separa el estado de la base de datos de los volcados y las copias de seguridad

Mapea todas las rutas relacionadas con la base de datos antes de elegir un nodo. El directorio de datos principal y el registro de transacciones son estado activo; requieren un orden de escritura coherente y una latencia predecible. Los volcados lógicos, las copias de seguridad base, los registros archivados, las exportaciones y los archivos cargados por la aplicación tienen patrones de acceso diferentes y a menudo pueden atravesar la red de forma segura.

No montes un único recurso compartido NAS y coloques todo dentro de él. Mantén separado el volumen activo de la base de datos de los destinos de copias de seguridad y de los datos masivos de la aplicación. Esto permite ajustar, supervisar, llenar, crear instantáneas, restaurar y migrar cada función sin fingir que todos los bytes persistentes necesitan el mismo medio.

En el caso de bases de datos de ramas de corta duración o pruebas de CI, el tiempo de reconstrucción puede importar más que la durabilidad. Colócalas en almacenamiento local rápido y recréalas a partir de migraciones o semillas saneadas. En el caso de la base de datos diaria de un servicio de desarrollo, trata el fallo de un SSD local como un evento de recuperación y mantén la copia remota lo suficientemente actualizada para cumplir el objetivo de punto de recuperación declarado.

Mide la ruta de escritura antes de elegir un nodo

El rendimiento de una base de datos depende de algo más que del rendimiento secuencial. Mide la latencia de confirmación síncrona, las lecturas y escrituras aleatorias, la profundidad de cola durante el tráfico de copias de seguridad y el comportamiento cuando la ruta de red se bloquea. Un enlace de 10GbE puede mover archivos grandes rápidamente y, aun así, añadir latencia y otro punto de fallo a cada transacción.

Una comparación publicada de PostgreSQL determinó que NVMe local ofrecía una latencia menor y más predecible que los servicios de almacenamiento en la nube conectados por red probados, aunque también señaló las ventajas de elasticidad y durabilidad del almacenamiento de red. Esos benchmarks de PostgreSQL local y conectado a la red no garantizan resultados en un laboratorio doméstico, pero muestran por qué la ubicación de la base de datos necesita mediciones de carga de trabajo, no solo la velocidad de la interfaz.

Ejecuta una prueba representativa con el mismo sistema de archivos, configuración de sincronización, versión de la base de datos, conjunto de datos y concurrencia previstos para el servicio. Durante la prueba, inicia una copia de seguridad grande o una transferencia multimedia en la red de almacenamiento. Si la latencia de cola o el tiempo de confirmación se vuelven erráticos, la capacidad centralizada no está compensando la ruta compartida.

Coloca los archivos principales de la base de datos cerca del cómputo de forma predeterminada

Para un desarrollador, un nodo de cómputo y bases de datos modestas, los SSD locales en espejo o un volumen local recuperable suelen ofrecer la asignación de responsabilidades más clara. El proceso de la base de datos, sus archivos de datos y su registro de escritura anticipada fallan juntos, mientras que el nodo de almacenamiento recibe copias de seguridad mediante un proceso consciente de la base de datos en lugar de alojar de forma remota un sistema de archivos siempre abierto.

La ubicación local no significa utilizar una única unidad de arranque sin protección. Separa el volumen de la base de datos del sistema operativo cuando sea práctico, supervisa el espacio libre y el estado de las unidades, reserva capacidad para las operaciones de mantenimiento y exporta copias de seguridad antes de las actualizaciones. Fija la ubicación de los contenedores o las máquinas virtuales para que un planificador no inicie la base de datos en otro nodo sin su estado.

Utiliza almacenamiento local solo cuando la ruta de recuperación sea real. Si sustituir el nodo de cómputo exigiera adivinar a partir de una copia obsoleta, el almacenamiento centralizado podría revelar un fallo de copia de seguridad existente en lugar de crearlo. Corrige el flujo de copia de seguridad y restauración antes de optimizar la ruta de datos.

-15% OFF

Utiliza el nodo de almacenamiento para copias de seguridad, réplicas y archivos

Un nodo de almacenamiento es valioso cuando recibe volcados coherentes con la aplicación, copias de seguridad base, registros de transacciones archivados, instantáneas inmutables o una réplica de la base de datos con su propio propósito de recuperación. También puede almacenar archivos adjuntos grandes o exportaciones analíticas mientras el catálogo y los registros de la base de datos sensibles a la latencia permanecen en local.

Función de los datos Ubicación predeterminada Motivo Prueba necesaria
Datos principales y registro de transacciones SSD del nodo de cómputo Ruta de escritura más baja y predecible Latencia de confirmación y recuperación tras un fallo
Volcados lógicos Nodo de almacenamiento Fuente de restauración portable y compatible con versiones Restaurar en una base de datos vacía
Copia de seguridad base y registros archivados Nodo de almacenamiento Recuperación a un momento dado Recuperar hasta una marca de tiempo determinada
Réplica de lectura Cualquiera de los nodos con su propio volumen Escalado de lecturas u opción de recuperación Retraso y procedimiento de promoción
Cargas, exportaciones y análisis en frío Nodo de almacenamiento La capacidad importa más que la latencia de las transacciones Impacto de las transferencias simultáneas

Las pruebas de la comunidad sobre PostgreSQL sobre NFS en un servidor de almacenamiento produjeron resultados contraintuitivos y preguntas de configuración, no una respuesta universal. Por eso debes tratar el almacenamiento primario remoto como una excepción diseñada: valida el comportamiento de sincronización, la gestión de fallos, las opciones de montaje, la semántica de caché y la recuperación en la pila exacta.

Valida la recuperación ante fallos y el desencadenante de migración

Prueba cuatro eventos: reinicia la base de datos correctamente, bloquea el nodo de cómputo durante las escrituras, interrumpe el enlace de almacenamiento durante una copia de seguridad y restaura en un host vacío. Confirma el punto de recuperación, el tiempo de recuperación, las comprobaciones de integridad de la base de datos y el comportamiento de reconexión de la aplicación. Un benchmark normal rápido no demuestra que la ruta de escritura interrumpida sea segura.

La configuración supera la prueba cuando los datos activos tienen una latencia predecible, las copias de seguridad no pueden sobrescribir ni bloquear la base de datos principal y un nodo de cómputo de sustitución puede restaurarse sin suposiciones de almacenamiento no documentadas. Mueve los archivos principales a un servicio de almacenamiento diseñado para ello solo cuando los beneficios medidos de recuperación o movilidad superen la dependencia de la red; devuélvelos al almacenamiento local cuando la latencia de cola o las interrupciones del enlace se conviertan en la principal fuente de incidentes.

Para elegir una arquitectura más amplia, la comparación de ZimaSpace entre un NAS centrado en el almacenamiento y un servidor doméstico centrado en el cómputo ayuda a decidir qué función debe permanecer estable a medida que cambian las cargas de trabajo de desarrollo.

Regla final de configuración

Como regla predeterminada, utiliza almacenamiento SSD local y protegido para los archivos activos de la base de datos y el nodo de almacenamiento para copias de seguridad verificadas, archivos y réplicas seleccionadas. Elige almacenamiento primario remoto solo después de medir su semántica de escritura, latencia de cola, comportamiento ante interrupciones y ventaja de recuperación.

Configuración de NAS y Servidor

Más para leer

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.