# Tema 2 · 4 · EBS: snapshot, mover el disco a otra máquina y ampliarlo Presentación del Tema 2: «Laboratorio almacenamiento en bloque - 2» y «Laboratorio de bloques · paso a paso». Duración: unos 45 minutos. **Coste: la máquina Windows cuesta unos 0,19 USD/hora**; un volumen desconectado sigue facturando. > **Etiquetas de lo que creas.** Todo recurso que crees a mano (máquina, volumen, bucket, base de datos, tabla, función...) ponle estas etiquetas, al crearlo (apartado *Tags* / *Etiquetas*) o después desde su pestaña de etiquetas: `curso` = `G214`, `universidad` = `CUNEF` y `actividad` = `02.04-EBSSnapshotDetachAmpliar`. Si algún día hay que borrar recursos a mano, se localizan todos de golpe con `aws resourcegroupstaggingapi get-resources --region eu-north-1 --tag-filters Key=actividad,Values=02.04-EBSSnapshotDetachAmpliar`. Más detalle (cómo etiquetar con la CLI, cómo buscar y qué hacer en una emergencia): [README principal](../README.md), sección «Etiquetas». ## Qué vas a hacer Con el Windows y el disco de 8 GB del laboratorio anterior, comprobar las propiedades que hacen útil un volumen EBS: 1. Hacer un **snapshot** (copia incremental que vive en S3). 2. **Desconectar** el disco de Windows, conectarlo a **otra máquina Linux** y ver que tu fichero sigue ahí: el disco es independiente de la máquina. 3. Comprobar que **EBS es zonal**: un volumen creado desde el snapshot en otra zona no se puede conectar a la instancia original. 4. **Ampliar** el volumen de 8 a 12 GB «en caliente» y extender la partición desde el sistema operativo. 5. Calcular cuánto cuesta. Esta carpeta **no tiene ficheros**. Guía con capturas: `Anexo - Tema 2 - Guías de creación de recursos.docx` (apartado 7). ## Qué se crea en AWS Un snapshot, una instancia Linux `t3.micro` (Amazon Linux 2023), un volumen creado desde el snapshot en otra zona y, después, la ampliación del volumen original a 12 GB. **Todo se borra al final.** ## Antes de empezar - [ ] Has hecho [`02.03-EBSWindowsFormatearDisco.md`](02.03-EBSWindowsFormatearDisco.md): la instancia Windows está en marcha, `D:` formateado y con `D:\Prueba.txt`. - [ ] Región **eu-north-1**. Anota la **zona de disponibilidad** de la instancia Windows (EC2 → Instances, columna *Availability zone*, por ejemplo `eu-north-1a`). ## Paso a paso ### Paso 1 · Escribe un fichero y crea un snapshot 1. En Windows, comprueba que existe `D:\Prueba.txt`. 2. EC2 → **Elastic Block Store → Snapshots** → **Create snapshot**: tipo *Volume* y elige el volumen de 8 GB. **Qué verás:** el snapshot pasa a *Completed*. Es una copia **incremental** que vive en S3; solo paga lo realmente ocupado. ### Paso 2 · Desconecta el disco y llévalo a una máquina Linux 1. En Windows: **Disk Management** → clic derecho sobre el disco (la cabecera, «Disk 1») → **Offline**. Así Windows vacía su caché y el sistema de archivos queda consistente. 2. Lanza una segunda instancia **Linux (Amazon Linux 2023, `t3.micro`) en la misma zona de disponibilidad** que el volumen. Entra con el botón *Connect* (EC2 Instance Connect; si no conecta, mira el apartado 2.1 de [`01.01-CrearYConectarVM.md`](../tema1/01.01-CrearYConectarVM.md)). 3. EC2 → **Volumes** → selecciona el volumen de 8 GB → **Actions → Detach volume**. Cuando esté *Available*: **Actions → Attach volume** → la instancia Linux. 4. En la máquina Linux: ```bash lsblk -f sudo mkdir -p /mnt/win && sudo mount -t ntfs3 /dev/nvme1n1p2 /mnt/win ls /mnt/win sudo umount /mnt/win ``` **Qué verás:** `lsblk -f` muestra la partición `ntfs` (suele ser `nvme1n1p2`). En Amazon Linux 2023 hay que indicar el controlador con `-t ntfs3`: sin él, `mount` falla con *unknown filesystem type ntfs*. No hace falta instalar nada. `ls` debe enseñar `Prueba.txt` (en Linux importan las mayúsculas): **el disco conserva tus datos aunque cambie de máquina**. ### Paso 3 · Devuélvelo a Windows 1. Tras `umount`, EC2 → Volumes → **Detach volume** y después **Attach volume** a la instancia Windows. 2. En Windows el disco aparece **Offline** (Windows recuerda el estado): en Disk Management, clic derecho sobre el disco → **Online** (o en PowerShell: `Set-Disk -Number 1 -IsOffline $false`). **Qué verás:** `D:` y `Prueba.txt` siguen ahí. ### Paso 4 · Prueba el límite de zona 1. Crea un volumen desde el snapshot en **otra zona de disponibilidad** (Snapshots → el snapshot → **Create volume from snapshot** → zona distinta a la de la instancia Windows). 2. Intenta conectarlo a la instancia Windows (Volumes → **Attach volume**). **Qué verás:** **la instancia no aparece en la lista** (por API daría `InvalidVolume.ZoneMismatch`): EBS es **zonal**. Para mover un volumen de zona se hace un snapshot y un volumen nuevo en la zona de destino. ### Paso 5 · Amplía el volumen de 8 a 12 GB Son **dos pasos**: 1. EC2 → Volumes → selecciona el volumen de 8 GB → **Actions → Modify volume** → Size **12** GiB → *Modify*. **Solo se puede ampliar, nunca reducir**, y hay que esperar a que el estado salga de *optimizing* antes de otro cambio. 2. En Windows: **Disk Management** → clic derecho en **D:** → **Extend Volume** → *Next* → *Finish*. - Si *Extend Volume* sale en gris: menú **Action → Rescan Disks**. - O en PowerShell: `Resize-Partition -DriveLetter D -Size (Get-PartitionSupportedSize -DriveLetter D).SizeMax`. - Si sigue en gris tras ampliar, abre PowerShell como administrador y ejecuta `Update-HostStorageCache` antes de `Resize-Partition` (obliga a Windows a releer el tamaño del disco). **Qué verás:** `D:` pasa de 7,98 GB a unos **11,98 GB**. ### Paso 6 · Calcula el coste En (región Europe (Stockholm)): un volumen gp3 de 12 GB y su snapshot. Precio de referencia: el volumen gp3 de 12 GB cuesta unos **1,01 USD/mes** y el snapshot unos **0,0475 USD por GB-mes** sobre lo realmente ocupado. Los precios cambian: verifícalos en la calculadora. ## Errores frecuentes | Síntoma | Causa | Solución | |---|---|---| | No puedo conectar el volumen a la instancia Linux | Está en otra zona | Crea la instancia Linux en la **misma** zona del volumen | | `mount: unknown filesystem type 'ntfs'` | Amazon Linux 2023 necesita el controlador explícito | `sudo mount -t ntfs3 /dev/nvme1n1p2 /mnt/win` | | El disco aparece *Offline* al volver a Windows | Windows recuerda el estado | Clic derecho → *Online* | | *Extend Volume* en gris | Windows aún no ha releído el tamaño | *Action → Rescan Disks*, o `Update-HostStorageCache` en PowerShell | | *Modify volume* no me deja otro cambio | El volumen sigue en *optimizing* | Espera a que termine | ## Limpieza (importante: todo sigue facturando) 1. Terminar las dos instancias (Windows y Linux) y esperar a *Terminated*. 2. EC2 → Volumes → **Delete volume** de **todos** los volúmenes que queden (el de 12 GB y el creado en la otra zona). 3. EC2 → Snapshots → **Delete snapshot**. 4. Borra el Security Group y el par de claves. ## Cómo sabes que has terminado - [ ] Viste `Prueba.txt` desde Linux y volviste a verlo desde Windows. - [ ] Probaste que el volumen de otra zona **no** se conecta y sabes por qué (EBS es zonal). - [ ] `D:` mide unos 12 GB tras ampliar. - [ ] No queda ninguna instancia, volumen ni snapshot en EC2. Anterior: [`02.03-EBSWindowsFormatearDisco.md`](02.03-EBSWindowsFormatearDisco.md) · Siguiente: [`02.05-EFSCarpetaCompartida.md`](02.05-EFSCarpetaCompartida.md)