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 decisión en tiempo de ejecución. Esta unidad amplía el servidor Dedicated Core 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 vacío. No repite la creación del servidor.
1. Niveles de Block Storage y el umbral de rendimiento
IONOS CLOUD Block Storage es un almacenamiento de bloques iSCSI conectado en 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 tarde, por lo que se elige al principio por cada disco.
El rendimiento documentado por volumen es la base para coincidir con el nivel de acceso:
| Rendimiento de almacenamiento | SSD Premium | SSD Standard |
|---|---|---|
| Velocidad de lectura/escritura, secuencial | 1 MiB/s por GB a un tamaño de bloque de 1 MiB | 0,5 MiB/s por GB a un tamaño de bloque de 1 MiB |
| Velocidad de lectura, aleatorio completo | 75 IOPS por GB a un tamaño de bloque de 4 KiB | 40 IOPS por GB a un tamaño de bloque de 4 KiB |
| Velocidad de escritura, aleatorio completo | 50 IOPS por GB a un tamaño de bloque de 4 KiB | 30 IOPS por GB a un tamaño de bloque de 4 KiB |
| Rendimiento de almacenamiento | Almacenamiento HDD |
|---|---|
| Velocidad de lectura/escritura, secuencial | 200 MiB/s a un tamaño de bloque de 1 MiB |
| Velocidad de lectura/escritura, aleatorio completo, regular | 1.100 IOPS a un tamaño de bloque de 4 KiB |
| Velocidad de lectura/escritura, aleatorio completo, explosivo | 2.500 IOPS a un tamaño de bloque de 4 KiB |
Dos hechos impulsan la decisión del nivel. Primero, el rendimiento del HDD es estático e independiente del tamaño del volumen, mientras que el rendimiento del SSD se escala con el tamaño del volumen: las tarifas por GB anteriores significan que un SSD pequeño es un SSD lento. Segundo, IONOS CLOUD recomienda reservar volúmenes SSD de al menos 100 GB para obtener el beneficio completo; por debajo del umbral, el rendimiento es subóptimo, lo que explica por qué no se recomiendan volúmenes SSD inferiores a aproximadamente 100 GB para cargas de trabajo de bases de datos. Para un volumen SSD, el sistema predice el rendimiento desde el tamaño, y para volúmenes superiores a 600 GB las tarifas por volumen están limitadas en los máximos documentados (un volumen SSD Premium tiene un máximo de 45.000 lecturas IOPS y 600 MB/s secuenciales por volumen, dado suficientes núcleos y RAM en la VM).
La regla práctica sigue directamente. Utilice HDD para datos fríos o secuenciales (copias de seguridad, archivos, registros preparados para exportar) donde su throughput independiente del tamaño es adecuado y su tarifa es la más barata (0,04 EUR por GB al mes). Utilice SSD Standard (0,07 EUR por GB al mes) para cargas generales y SSD Premium (0,15 EUR por GB al mes) para discos latencia-sensibles y bases de datos, manteniendo cualquier volumen base en o por encima del umbral mínimo para que se encuentre en la banda completa. Los volúmenes van desde los 1 GiB hasta los 4096 GiB (4 TiB); una VM puede conectar hasta los volúmenes HDD o hasta los volúmenes SSD Standard pero solo hasta los volúmenes SSD Premium. Los niveles pueden combinarse en una sola VM; así que un patrón común es utilizar una modesta unidad SSD Premium junto con volúmenes HDD para uso general.
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 CLOUD (distribuciones de Linux que incluyen Alma, Debian, Rocky y Ubuntu, además de imágenes de Microsoft), o su propia imagen privada subida a través de FTPS. Las imágenes privadas y las instantáneas están bloqueadas en una región: son utilizables en la región en la que se subieron o crearon, y IONOS CLOUD no crea redundancia entre regiones para ellas. Si una carga de trabajo debe existir en dos regiones, la imagen se sube o copia en cada una; no hay replicación administrada entre regiones de imágenes 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 Volume entre HDD, SSD Standard y SSD Premium después de que esté provisionado. Un cambio de nivel significa crear un nuevo Volume y migrar los datos.
- Zona de disponibilidad. La zona del Volume está fijada en el momento de su 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: Block Storage ofrece Zonas 1, 2, 3 y Auto, mientras que la computación ofrece solo Zonas 1, 2 y Auto. La Zona 3 de Block Storage existe; la Zona 3 de computación no existe.
El tamaño del Volume, 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 con conservadurismo y crecer, nunca sobredimensionar un disco que no se puede reducir. Las instantáneas, el mecanismo de reversión a nivel de VM, también son locales en una región y no incrementales: una instantánea cubre la capacidad total asignada del Volume (un Volume 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 nodo 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 Linux públicas de IONOS CLOUD, y la inyección de clave SSH se aplica a las imágenes Linux públicas de IONOS CLOUD. No está soportado en Windows. Para la configuración de primera inicialización en Windows, usted recurre a un mecanismo diferente, no cloud-init.
Los datos de usuario se escriben como un script de shell o como YAML de cloud-config, y cloud-init de IONOS CLOUD acepta varios formatos, incluyendo un script de user-data (que comienza con #! o Content-Type: text/x-shellscript), datos de cloud-config (que comienzan con #cloud-config), un archivo de inclusión, un trabajo 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 de volumen, los datos de usuario de cloud-init se establecen en la creación del volumen y son inmutables después, lo que es coherente con el tratamiento de la configuración de primera inicialización como parte del aprovisionamiento en lugar de una edición posterior. Cuando necesita depurar lo que hizo cloud-init, 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 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 volumen en el momento de la creación:
#cloud-config
packages:
- nginx
runcmd:
- systemctl enable --now nginx
Implementación de DCD: Guía paso a paso
Esta guía se basa en el servidor Dedicated Core provisionado en la Unidad 4.1. Conecta un volumen de arranque en el nivel de almacenamiento adecuado, asocia una imagen de 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 (VDC) de FinCorp. No vuelva a crear el servidor.
Objetivo de construcción: Conectar y configurar el almacenamiento; proporcionar datos de usuario de cloud-init.
Pasos (en el Data Center Designer):
- En el Área de trabajo, seleccione el servidor Dedicated Core de la Unidad 4.1. Desde la Paleta, arrastre un elemento de almacenamiento (HDD o SSD) hacia el servidor para conectarlo; el servidor se expande para mostrar una sección de almacenamiento.
- Seleccione el nuevo elemento de almacenamiento para abrir el Inspector. Asígnale un nombre único en el VDC.
- 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.
- 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.
- Establezca el Tamaño, manteniendo un volumen SSD en o por encima del límite inferior de ~100 GB para un rendimiento completo. El tamaño se puede aumentar más tarde, pero nunca reducir.
- En Imagen, asocie una imagen: elija una imagen pública de Linux de IONOS CLOUD, o seleccione Imágenes propias para una imagen privada subida. Establezca la Contraseña del administrador/raíz (requerida para acceso a la Consola remota) y/o una clave SSH.
- Marque el volumen como dispositivo de arranque (haga clic en ARRANQUE / Establecer dispositivo de arranque) para que el servidor arranque desde él.
- Amplíe el campo cloud-init / user-data y pegue el script cloud-config o user-data. Confirme que la imagen informa que admite cloud-init. Haga clic en Provisionar cambios para aplicar.
Errores comunes:
- Elegir el tipo incorrecto de almacenamiento o zona, ambos inmutables. Un cambio en el nivel o una mudanza a otra zona significa reconstruir el volumen, no editararlo.
- Colocar una base de datos en un volumen SSD inferior a 100 GB. Por debajo del límite, el SSD funciona con IOPS subóptimos; mantenga los volúmenes de bases de datos en o por encima de 100 GB.
- Esperar cloud-init en Windows. Cloud-init es para imágenes públicas de Linux; la inyección de claves SSH está limitada a imágenes públicas de Linux de IONOS CLOUD.
- Suponer que una imagen está disponible en todas partes. Las imágenes y instantáneas privadas 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 con conservadurismo y aumente más tarde.
Resumen
Un servidor se vuelve útil cuando tiene un disco y una configuración de primera inicialización. Block Storage viene en tres niveles cuyo rendimiento y precio difieren, con un rendimiento de SSD que se escala según el tamaño y un piso de ~100 GB que mantiene a los SSD pequeños (y por lo tanto a los discos de base de datos pequeños) 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 en una región con ninguna replicación administrada entre regiones, y cloud-init configura las imágenes de Linux públicas en la primera inicialización (no Windows), establecida una vez en el volumen en la creación. El recorrido amplía el servidor de la Unidad 4.1 a un nodo de aplicación FinCorp configurado.
Puntos clave:
- El rendimiento de HDD es independiente del tamaño; el rendimiento de SSD se escala con el tamaño, por lo que un SSD pequeño 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 imágenes y las instantáneas están bloqueadas en una región, con ninguna replicación administrada entre regiones.
- Cloud-init configura las imágenes de Linux públicas en la primera inicialización (inyección de clave SSH en las imágenes de Linux públicas de IONOS CLOUD); no es compatible con Windows, y los datos del usuario están fijos en el volumen en la creación.
Terminología importante:
- Piso de rendimiento de SSD: el mínimo de ~100 GB por debajo del cual un volumen de SSD se ejecuta a IOPS subóptimos; la razón por la cual se desaconsejan los discos de base de datos pequeños.
- Cloud-init: el mecanismo de configuración de primera inicialización para las imágenes de Linux públicas, suministrado como datos del usuario y aplicado una vez en la inicialización.
- Imagen bloqueada en una región: una imagen o instantánea privada utilizable solo 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).