12 min de lectura

Objetivos de aprendizaje

Al final de este módulo, podrás:

  • Asociar un nivel de Block Storage (HDD, SSD Estándar, SSD Premium) a un patrón de acceso, y explicar por qué el piso de ~100 GB de SSD cambia el cálculo para los discos de arranque y datos.
  • Identificar los atributos de almacenamiento que son inmutables después de la provisión (tipo de almacenamiento y zona de disponibilidad) y diseñar alrededor de ellos.
  • Utilizar los datos de usuario de cloud-init para configurar un servidor Linux en el arranque inicial, y indicar dónde se aplica y dónde no se aplica cloud-init.
  • Adjuntar y configurar el almacenamiento en el servidor de la Unidad 4.1, asociar una imagen y proporcionar datos de usuario de cloud-init en el Data Center Designer.

Unidad 4.2: Imágenes, discos y Cloud-Init

Introducción

Un shell de servidor es inerte hasta que tiene un disco para arrancar y una forma de configurarse en el primer arranque. Dos de las propiedades del disco (su tipo de almacenamiento y su zona de disponibilidad) se fijan en la provisión y no se pueden cambiar después, lo que hace que el diseño del disco sea una decisión de diseño en lugar de una de tiempo de ejecución. Esta unidad amplía el Dedicated Core Server de la Unidad 4.1: adjunta almacenamiento, asocia una imagen de arranque y suministra datos de usuario de cloud-init para que el servidor llegue configurado en lugar de estar desnudo. No repite la creación del servidor.

1. Block Storage Niveles y el piso de rendimiento

IONOS Block Storage es un iSCSI Block Storage conectado a la red, replicado de forma activa-activa en dos servidores de almacenamiento con RAID dentro de cada uno (cuatro copias físicas en total) dentro de una región. Viene en tres niveles, y el nivel es una de las dos propiedades del disco que no se pueden cambiar más adelante, por lo que se elige de antemano por disco.

El rendimiento documentado por Volume es la base para igualar el nivel al patrón de acceso:

Rendimiento de almacenamiento SSD Premium SSD Standard
Velocidad de lectura/escritura, secuencial 1 MB/s por GB a un tamaño de bloque de 1 MB 0,5 MB/s por GB a un tamaño de bloque de 1 MB
Velocidad de lectura, aleatorio completo 75 IOPS por GB a un tamaño de bloque de 4 KB 40 IOPS por GB a un tamaño de bloque de 4 KB
Velocidad de escritura, aleatorio completo 50 IOPS por GB a un tamaño de bloque de 4 KB 30 IOPS por GB a un tamaño de bloque de 4 KB
Rendimiento de almacenamiento HDD Almacenamiento
Velocidad de lectura/escritura, secuencial 200 MB/s a un tamaño de bloque de 1 MB
Velocidad de lectura/escritura, aleatorio completo, regular 1.100 IOPS a un tamaño de bloque de 4 kB
Velocidad de lectura/escritura, aleatorio completo, de ráfaga 2.500 IOPS a un tamaño de bloque de 4 kB

Dos hechos impulsan la decisión de nivelación. Primero, el rendimiento de HDD es estático y independiente del tamaño de Volume, mientras que el rendimiento de SSD se escala con el tamaño de Volume: las tasas por GB anteriores significan que un SSD pequeño es un SSD lento. Segundo, IONOS recomienda reservar volúmenes de SSD de al menos 100 GB para obtener el beneficio completo; por debajo de ese piso, el rendimiento es subóptimo, lo que explica por qué no se recomiendan volúmenes de SSD inferiores a aproximadamente 100 GB para cargas de trabajo de bases de datos. Para un SSD Volume, el sistema predice el rendimiento desde el tamaño, y para volúmenes superiores a 600 GB, las tasas por Volume están limitadas en los máximos documentados (un SSD Premium Volume alcanza un máximo de 45.000 lecturas IOPS y 600 MB/s secuenciales por VM, dado que hay suficientes núcleos y RAM en el VM).

La regla de diseño práctica sigue directamente. Utilice HDD para datos fríos o secuenciales (copias de seguridad, archivos, registros preparados para exportar) donde su rendimiento independiente del tamaño es adecuado y su precio de 0,04 EUR por GB por mes es el más barato. Utilice SSD Standard (0,07 EUR por GB por mes) para cargas de trabajo generales, y SSD Premium (0,15 EUR por GB por mes) para discos de bases de datos y discos sensibles a la latencia, manteniendo cualquier Volume de base de datos en o por encima del piso de 100 GB para que se encuentre en la banda de rendimiento completo. Los volúmenes van desde 1 GiB hasta 4096 GiB (4 TiB); un VM puede adjuntar hasta 24 volúmenes HDD o SSD Standard, pero solo 4 volúmenes SSD Premium, lo que es una restricción que vale la pena verificar antes de expandir un diseño de datos de alto nivel. Los niveles se pueden mezclar en un VM, por lo que un patrón común es un disco de arranque/datos SSD Premium modesto, más volúmenes HDD para datos masivos.

2. Imágenes, inmutabilidad y bloqueo de región

Un disco se vuelve arrancable asociando una imagen con él: una imagen pública proporcionada por IONOS (distribuciones que incluyen Alma, CentOS, Rocky y Debian, además de imágenes de Microsoft), o su propia imagen privada subida a través de FTPS. Las imágenes privadas de IONOS están bloqueadas por región: son utilizables en la región en la que se subieron o crearon, y IONOS no crea redundancia entre regiones para ellas. Si una imagen debe existir en dos regiones, la imagen se sube o copia en cada una; no hay replicación administrada de imágenes entre regiones en la que confiar.

Dos propiedades de almacenamiento son inmutables después de la provisión y deben estar correctas desde el principio:

  • Tipo de almacenamiento. No puede cambiar un almacenamiento entre almacenamiento estándar y almacenamiento premium después de que esté provisionado. Un cambio de nivel significa crear un nuevo almacenamiento y migrar los datos.
  • Zona de disponibilidad. La zona del almacenamiento está fija en el momento de la creación; seleccionar Auto permite que el sistema asigne la zona óptima. Tenga en cuenta la asimetría que se lleva desde la Unidad 1.2 y que se revisa en el Módulo 5: IONOS ofrece zonas 1, 2, 3 y Auto, mientras que la computación ofrece solo zonas 1, 2 y Auto. La zona 3 de IONOS existe; la zona 3 de computación no existe.

El tamaño del almacenamiento, por otro lado, se puede aumentar después de la provisión (incluso en un servidor en ejecución, si el sistema operativo lo admite) pero nunca se puede reducir. Por lo tanto, la postura de dimensionamiento segura es empezar de manera conservadora y crecer, nunca sobredimensionar un disco que no se puede reducir. Las instantáneas, el mecanismo de reversión a nivel de almacenamiento, también son locales de la región y no incrementales: una instantánea cubre la capacidad de almacenamiento asignada completa (un almacenamiento de 100 GB que contiene 10 GB de datos todavía produce una instantánea de 100 GB) y es una herramienta de reversión, no una copia de seguridad de base de datos. Su papel en el plano de continuidad de datos se cubre en el Módulo 5.

3. Cloud-Init para la configuración de primera inicialización

Cloud-init es el mecanismo que convierte un servidor Linux recién iniciado a partir de una imagen básica en un Node configurado sin inicio de sesión manual. Usted proporciona datos de usuario en el momento de la creación, y cloud-init los aplica durante la primera inicialización. El límite de capacidad es preciso y vale la pena mencionarlo: cloud-init está completamente soportado en todas las imágenes públicas de IONOS Linux, y la inyección de clave SSH se aplica a las imágenes públicas de IONOS Cloud Linux. No está soportado en Windows. Para la configuración de primera inicialización de Windows, usted recurre a un mecanismo diferente, no cloud-init.

Los datos de usuario se escriben como un script de shell o como datos de configuración en la nube YAML, y IONOS cloud-init acepta varios formatos, incluyendo un script de datos de usuario (que comienza con #! o Content-Type: text/x-shellscript), datos de configuración en la nube (que comienzan con #cloud-config), un archivo de inclusión, un trabajo de upstart, un cloud boothook y payloads codificados en base64 (que cloud-init decodifica y luego maneja como uno de los tipos soportados). En el recurso Volume, los datos de usuario de cloud-init se establecen en la creación de Volume y son inmutables después, lo que es consistente con el tratamiento de la configuración de primera inicialización como parte de la provisión en lugar de una edición posterior. Cuando necesita depurar lo que cloud-init hizo, los registros se encuentran en /var/log/cloud-init-output.log y /var/log/cloud-init.log.

Un cloud-config mínimo que crea el usuario de la aplicación FinCorp e instala un paquete en la primera inicialización ilustra la forma; el punto arquitectónico es que esto se ejecuta exactamente una vez, en la primera inicialización, y está fijo en el Volume en la creación:

#cloud-config
packages:
  - nginx
runcmd:
  - systemctl enable --now nginx

DCD Implementación paso a paso

Esta implementación se basa en el Dedicated Core Server provisionado en la Unidad 4.1. Agrega un dispositivo de arranque Volume en el nivel de almacenamiento adecuado, asocia una imagen Linux y proporciona datos de usuario de cloud-init para que el servidor de aplicaciones FinCorp llegue configurado. El requisito previo es el shell del servidor de la Unidad 4.1 en el centro de datos virtual FinCorp. No vuelva a crear el servidor.

Objetivo de construcción: Adjuntar y configurar el almacenamiento; proporcionar datos de usuario de cloud-init.

Pasos (en el Data Center Designer):

  1. En el Espacio de trabajo, seleccione el Dedicated Core Server de la Unidad 4.1. Desde la Paleta, arrastre un elemento de almacenamiento (HDD o SSD) al servidor para conectarlo; el servidor se expande para mostrar una sección de almacenamiento.
  2. Seleccione el nuevo elemento de almacenamiento para abrir el Inspector. Asígnale un nombre único en el centro de datos virtual.
  3. Elija el tipo de almacenamiento (para el disco de arranque/datos de la aplicación FinCorp, SSD Premium). Esto es inmutable después de la provisión, así que confirme el nivel ahora.
  4. Establezca la Zona de disponibilidad (Auto permite que el sistema asigne la zona óptima). Esto también es inmutable después de la provisión.
  5. Establezca el Tamaño, manteniendo un dispositivo de arranque SSD Volume en o por encima del piso de ~100 GB para un rendimiento completo. El tamaño se puede aumentar más adelante, pero nunca se puede reducir.
  6. En Imagen, asocie una imagen: elija una imagen pública Linux de IONOS o seleccione Imágenes propias para una imagen privada subida. Establezca la contraseña de root/administrador (requerida para el acceso a la consola remota) y/o una clave SSH.
  7. Marque el Volume como dispositivo de arranque (haga clic en ARRANQUE / Establecer dispositivo de arranque) para que el servidor arranque desde él.
  8. Amplíe el campo cloud-init / user-data y pegue el script de configuración de nube o el script de datos de usuario. Confirme que la imagen informa que admite cloud-init. Haga clic en Provisionar cambios para aplicar.

Errores comunes:

  • Elegir el tipo de almacenamiento o la zona incorrectos, ambos de los cuales son inmutables. Un cambio de nivel o un movimiento de zona significa reconstruir el Volume, no editararlo.
  • Colocar una base de datos en un dispositivo de arranque SSD Volume de menos de 100 GB. Por debajo del piso, el SSD se ejecuta a un rendimiento subóptimo IOPS; mantenga los volúmenes de base de datos en o por encima de 100 GB.
  • Esperar cloud-init en Windows. Cloud-init es para imágenes públicas Linux; la inyección de claves SSH está limitada a imágenes públicas de IONOS Cloud Linux.
  • Suponer que una imagen está disponible en todas partes. Las imágenes privadas Images & Snapshots están bloqueadas por región; suba o copie a cada región que necesite.
  • Sobreaprovisionar un disco para estar seguro. Los volúmenes pueden crecer pero nunca disminuir, así que comience de manera conservadora y aumente más adelante.

Resumen

Un servidor se vuelve útil cuando tiene un disco y una configuración de primer arranque. Block Storage viene en tres niveles cuyo rendimiento y precio difieren, con el rendimiento de SSD escalando según el tamaño y un piso de ~100 GB que mantiene a los pequeños SSD (y por lo tanto a los pequeños discos de base de datos) fuera de la banda de rendimiento completo. El tipo de almacenamiento y la zona de disponibilidad son inmutables después de la provisión, mientras que el tamaño puede crecer pero nunca disminuir, por lo que el diseño del disco es una decisión de diseño. Las imágenes están bloqueadas por región sin replicación cruzada de región administrada, y cloud-init configura las imágenes públicas de Linux en el primer arranque (no Windows), establecidas una vez en el Volume en la creación. El recorrido amplía el servidor de la Unidad 4.1 a una aplicación configurada de FinCorp Node.

Puntos clave:

  • El rendimiento de HDD es independiente del tamaño; el rendimiento de SSD escala con el tamaño, por lo que un pequeño SSD es un SSD lento y los volúmenes de base de datos pertenecen a o por encima de ~100 GB.
  • El tipo de almacenamiento y la zona de disponibilidad son inmutables después de la provisión; el tamaño crece pero nunca disminuye.
  • Block Storage tiene Zonas 1, 2, 3 y Auto; el cómputo solo tiene Zonas 1, 2 y Auto.
  • Las Images & Snapshots están bloqueadas por región, sin replicación cruzada de región administrada.
  • Cloud-init configura las imágenes públicas de Linux en el primer arranque (inyección de clave SSH en las imágenes públicas de IONOS Linux); no es compatible con Windows, y los datos del usuario están fijos en el Volume en la creación.

Terminología importante:

  • Piso de rendimiento de SSD: el mínimo de ~100 GB por debajo del cual un SSD Volume se ejecuta a un rendimiento subóptimo de IOPS; la razón por la que se desaconsejan los discos de base de datos pequeños.
  • Cloud-init: el mecanismo de configuración de primer arranque para las imágenes públicas de Linux, suministrado como datos del usuario y aplicado una vez en el arranque.
  • Imagen bloqueada por región: una imagen privada o Snapshot que solo se puede utilizar en la región en la que se subió o creó.

Lectura adicional

  • Unidad 4.1: Selección de clase de cómputo (el servidor que extiende esta unidad).
  • Unidad 5.7: Protección y ciclo de vida de los datos (instantáneas, copia de seguridad y PITR compuestos en un plano de continuidad).
  • Unidad 7.3: Ingeniería de rendimiento (pisos de rendimiento de almacenamiento como una palanca de latencia).