Unidad 4.2: Imágenes, discos y Cloud-Init
Introducción
Una shell de servidor es inerte hasta que cuenta con un disco desde el cual iniciar y un medio para configurarse en el primer arranque. Dos de las propiedades del disco (su tipo de almacenamiento y su zona de disponibilidad) se fijan durante la aprovisionamiento y no pueden modificarse posteriormente, lo que convierte la disposición del disco en una decisión de diseño y no de 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 proporciona datos de usuario de cloud-init para que el servidor llegue configurado y no en estado desnudo. 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 a la red, replicado en modo activo-activo entre dos servidores de almacenamiento con RAID interno en cada uno (cuatro copias físicas en total) dentro de una región. Se ofrece en tres niveles, y el nivel es una de las dos propiedades del disco que no se pueden cambiar posteriormente, por lo que se selecciona de antemano para cada disco.
El rendimiento documentado por Volume es la base para asignar el nivel adecuado al patrón de acceso:
| Rendimiento del almacenamiento | SSD Premium | SSD Standard |
|---|---|---|
| Velocidad de lectura/escritura, secuencial | 1 MiB/s por GB con tamaño de bloque de 1 MiB | 0,5 MiB/s por GB con tamaño de bloque de 1 MiB |
| Velocidad de lectura, aleatoria completa | 75 IOPS por GB con tamaño de bloque de 4 KiB | 40 IOPS por GB con tamaño de bloque de 4 KiB |
| Velocidad de escritura, aleatoria completa | 50 IOPS por GB con tamaño de bloque de 4 KiB | 30 IOPS por GB con tamaño de bloque de 4 KiB |
| Rendimiento del almacenamiento | HDD Storage |
|---|---|
| Velocidad de lectura/escritura, secuencial | 200 MiB/s con tamaño de bloque de 1 MiB |
| Velocidad de lectura/escritura, aleatoria completa, regular | 1.100 IOPS con tamaño de bloque de 4 KiB |
| Velocidad de lectura/escritura, aleatoria completa, ráfaga | 2.500 IOPS con tamaño de bloque de 4 KiB |
Dos hechos determinan la decisión sobre el nivel. Primero, el rendimiento de HDD es estático e independiente del tamaño del Volume, mientras que el rendimiento de SSD escala con el tamaño del Volume: las tasas por GB anteriores significan que un SSD pequeño es un SSD lento. Segundo, IONOS CLOUD recomienda reservar Volumes SSD de al menos 100 GB para obtener el beneficio completo; por debajo de ese umbral, el rendimiento es subóptimo, por lo que no se recomiendan Volumes SSD de menos de aproximadamente 100 GB para cargas de trabajo de bases de datos. Para un Volume SSD, el sistema predice el rendimiento a partir del tamaño, y para Volumes superiores a 600 GB, las tasas por Volume se limitan a los máximos documentados (un Volume SSD Premium alcanza un máximo de 45.000 IOPS de lectura y 600 MB/s secuenciales por Volume, siempre que haya suficientes núcleos y RAM en la VM).
La regla práctica de disposición se deriva directamente de esto. Use HDD para datos fríos o secuenciales (copias de seguridad, archivos, registros preparados para exportación), donde su ancho de banda independiente del tamaño es adecuado y su precio de 0,04 EUR por GB al mes es el más económico. Use SSD Standard (0,07 EUR por GB al mes) para cargas de trabajo generales, y SSD Premium (0,15 EUR por GB al mes) para discos sensibles a la latencia y de bases de datos, manteniendo cualquier Volume de base de datos en o por encima del umbral de 100 GB para que se encuentre en la banda de rendimiento completo. Los Volumes van desde 1 GiB hasta 4096 GiB (4 TiB); una VM puede adjuntar hasta 24 Volumes HDD o SSD Standard, pero solo 4 Volumes SSD Premium, lo cual es una restricción que conviene verificar antes de desplegar una disposición de datos de alto nivel. Se pueden mezclar niveles en una sola VM, por lo que un patrón común es un disco de arranque/datos SSD Premium modesto más Volumes HDD para volumen.
2. Imágenes, inmutabilidad y bloqueo por región
Un disco se vuelve arrancable al asociar 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 una imagen privada propia subida mediante FTPS. Las imágenes privadas y los Snapshot están bloqueados por región: son utilizables en la región donde fueron subidos o creados, e IONOS CLOUD no crea redundancia entre regiones para ellos. Si una carga de trabajo debe existir en dos regiones, la imagen se sube o copia en cada una; no existe una replicación entre regiones administrada de imágenes a la que recurrir.
Dos propiedades de almacenamiento son inmutables después del aprovisionamiento y deben ser correctas desde el inicio:
- Tipo de almacenamiento. No se puede cambiar un Volume entre HDD, SSD Standard y SSD Premium después de que sea aprovisionado. Un cambio de nivel implica crear un nuevo Volume y migrar los datos.
- Zona de disponibilidad. La zona del Volume se fija en el momento de la creación; la selección de Auto permite que el sistema asigne la zona óptima. Observe la asimetría heredada de la Unidad 1.2 y revisitada en el Módulo 5: Block Storage ofrece las zonas 1, 2, 3 y Auto, mientras que el cómputo ofrece solo las zonas 1, 2 y Auto. La zona 3 de Block Storage existe; la zona 3 de cómputo no.
El tamaño del Volume, por el contrario, puede aumentarse después del aprovisionamiento (incluso en un servidor en ejecución, si el sistema operativo lo soporta), pero nunca puede reducirse. Por lo tanto, la postura de dimensionamiento segura es comenzar de forma conservadora y crecer, nunca aprovisionar en exceso un disco que no puede reducirse. Los Snapshot, el mecanismo de reversión a nivel de VM, también son locales a la región y no incrementales: un Snapshot cubre toda la capacidad asignada del Volume (un Volume de 100 GB que contiene 10 GB de datos sigue produciendo un Snapshot 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 aborda en el Módulo 5.
3. Cloud-Init para la configuración en el primer arranque
Cloud-init es el mecanismo que convierte un servidor Linux recién iniciado, a partir de una imagen sin configurar, en un nodo configurado sin necesidad de iniciar sesión manualmente. Usted proporciona los datos de usuario en el momento de la creación, y cloud-init los aplica durante el primer arranque. El alcance de esta capacidad es preciso y vale la pena explicitarlo: cloud-init está totalmente compatible con todas las imágenes públicas de Linux de IONOS CLOUD, y la inyección de claves SSH se aplica a las imágenes públicas de Linux de IONOS CLOUD. No está compatible con Windows. Para la configuración en el primer arranque de Windows, debe recurrir a un mecanismo diferente, no a 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, incluido un script de datos de usuario (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 de upstart, un cloud boothook y cargas codificadas en base64 (que cloud-init decodifica y luego trata como uno de los tipos admitidos). En el recurso de volumen, los datos de usuario de cloud-init se establecen en la creación del volumen y son inmutables a partir de entonces, lo cual es coherente con tratar la configuración del primer arranque como parte del aprovisionamiento y no como una edición posterior. Cuando necesite 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 la aplicación FinCorp e instala un paquete en el primer arranque ilustra la estructura; el punto arquitectónico es que esto se ejecuta exactamente una vez, en el primer arranque, y queda fijado en el volumen en el momento de la creación:
#cloud-config
packages:
- nginx
runcmd:
- systemctl enable --now nginx
Guía de implementación de DCD
Esta guía amplía el servidor Dedicated Core aprovisionado en la Unidad 4.1. Adjunta un Volume de arranque en la jerarquía de almacenamiento adecuada, asocia una imagen de Linux y proporciona datos de usuario de cloud-init para que el servidor de aplicaciones de FinCorp llegue configurado. El requisito previo es la carcasa del servidor de la Unidad 4.1 en el VDC de FinCorp. No vuelva a crear el servidor.
Objetivo de la construcción: Adjuntar y configurar almacenamiento; proporcionar datos de usuario de cloud-init.
Pasos (en Data Center Designer):
- En el Workspace, seleccione el servidor Dedicated Core de la Unidad 4.1. Desde la Palette, arrastre un elemento de almacenamiento (HDD o SSD) sobre el servidor para conectarlo; el servidor se expandirá para mostrar una sección de almacenamiento.
- Seleccione el nuevo elemento de almacenamiento para abrir el Inspector. Asigne un nombre único dentro del VDC.
- Elija el tipo de almacenamiento (para el disco de arranque/datos de la aplicación de FinCorp, SSD Premium). Esto es inmutable después del aprovisionamiento, por lo que confirme la jerarquía ahora.
- Establezca la Zona de disponibilidad (Auto permite que el sistema asigne la zona óptima). Esto también es inmutable después del aprovisionamiento.
- Establezca el Tamaño, manteniendo un Volume SSD en o por encima del umbral de aproximadamente 100 GB para un rendimiento completo. El tamaño puede aumentarse más tarde, pero nunca reducirse.
- Bajo Imagen, asocie una imagen: elija una imagen pública de Linux de IONOS CLOUD, o seleccione Own Images para una imagen privada cargada. Establezca la Contraseña de root/administrador (obligatoria para el acceso a la consola remota) y/o una clave SSH.
- Marque el Volume como dispositivo de arranque (haga clic en BOOT / Make Boot Device) para que el servidor inicie desde él.
- Expanda el campo cloud-init / user-data y pegue el script cloud-config o user-data. Confirme que la imagen informe soporte para cloud-init. Haga clic en Provision Changes para aplicar.
Errores comunes:
- Elegir el tipo de almacenamiento o la zona incorrectos, ambos inmutables. Un cambio de jerarquía o de zona implica reconstruir el Volume, no editarlo.
- Colocar una base de datos en un Volume SSD de menos de 100 GB. Por debajo del umbral, el SSD opera con IOPS subóptimos; mantenga los Volumes de base 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.
- Asumir que una imagen está disponible en todas partes. Las imágenes privadas y las instantáneas están restringidas por región; cargue o copie en cada región que necesite.
- Aprovisionar un disco de más por seguridad. Los Volumes pueden crecer pero nunca encogerse, por lo que comience de forma conservadora y aumente más tarde.
Resumen
Un servidor se vuelve útil cuando cuenta con un disco y una configuración de primer arranque. Block Storage se ofrece en tres niveles, cuyos rendimiento y precio difieren; el rendimiento de SSD escala según el tamaño, y existe un umbral de aproximadamente 100 GB que excluye a los SSD de pequeño tamaño (y, por lo tanto, a los discos de bases de datos pequeños) de la banda de rendimiento completo. El tipo de almacenamiento y la zona de disponibilidad son inmutables después del aprovisionamiento, mientras que el tamaño puede aumentar pero nunca disminuir, por lo que la distribución de discos es una decisión de diseño. Las imágenes están restringidas a una región y no existe replicación administrada entre regiones, y cloud-init configura las imágenes públicas de Linux en el primer arranque (no en Windows), estableciéndose una sola vez en el volumen en el momento de la creación. La guía práctica extiende el servidor de la Unidad 4.1 hasta un nodo de aplicación FinCorp configurado.
Puntos clave:
- El rendimiento de HDD es independiente del tamaño; el rendimiento de SSD escala con el tamaño, por lo que un SSD pequeño es un SSD lento y los volúmenes de base de datos deben ubicarse en o por encima de aproximadamente 100 GB.
- El tipo de almacenamiento y la zona de disponibilidad son inmutables después del aprovisionamiento; el tamaño aumenta pero nunca disminuye.
- Block Storage cuenta con las Zonas 1, 2, 3 y Auto; la computación solo cuenta con las Zonas 1, 2 y Auto.
- Las imágenes y las instantáneas están restringidas a una región, sin replicación administrada entre regiones.
- Cloud-init configura las imágenes públicas de Linux en el primer arranque (inyección de claves SSH en las imágenes públicas de Linux de IONOS CLOUD); no es compatible con Windows, y los datos de usuario se fijan en el volumen en el momento de la creación.
Terminología importante:
- Umbral de rendimiento de SSD: el mínimo de aproximadamente 100 GB por debajo del cual un volumen SSD opera con IOPS subóptimos; 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 imágenes públicas de Linux, proporcionado como datos de usuario y aplicado una sola vez en el arranque.
- Imagen restringida a una región: una imagen o instantánea privada que solo puede usarse en la región en la que se subió o se creó.
Lectura adicional
- Unidad 4.1: Selección de clase de cómputo (el servidor que esta unidad amplía).
- Unidad 5.7: Protección de datos y ciclo de vida (instantáneas, copia de seguridad y PITR compuestos en un plano de continuidad).
- Unidad 7.3: Ingeniería de rendimiento (umbrales de rendimiento del almacenamiento como palanca de latencia).