Sistemas de archivos y almacenamiento en la nube
En este módulo aprenderás los fundamentos de los sistemas de archivos tradicionales, la gestión de almacenamiento en entornos Linux y Windows, y cómo se integran con los servicios de cloud…

En Linux, ¿qué directorio contiene los archivos de configuración del sistema?
Una unidad lógica en Windows (por ejemplo C:) se diferencia de una partición Linux porque:
¿Cuál de los siguientes es un ejemplo de almacenamiento de objetos en la nube?
Si una aplicación necesita alta velocidad de transferencia de datos grandes, ¿qué tipo de operación y métrica son más relevantes?
En un entorno de nube, ¿qué ocurre cuando los IOPS de un disco EBS se agotan?
¿Cuál es la principal diferencia entre almacenamiento de bloques y de objetos respecto a la jerarquía de carpetas?
En la jerarquía de UNIX/Linux, ¿qué representa el directorio "/dev"?
¿Qué tipo de disco en AWS sería más adecuado para una base de datos que requiere bajas latencias y alta IOPS?
¿Cuál de los siguientes componentes del sistema de archivos contiene información como fechas, dueño y permisos?
Sistemas de archivos y almacenamiento en la nube: conceptos clave
En este módulo aprenderás los fundamentos de los sistemas de archivos tradicionales, la gestión de almacenamiento en entornos Linux y Windows, y cómo se integran con los servicios de cloud computing. Cada sección está diseñada para reforzar los conceptos que aparecen en los cuestionarios de evaluación, ofreciendo explicaciones detalladas y ejemplos prácticos.
1. Journaling: protección contra la corrupción de datos
El journaling es una técnica esencial en sistemas de archivos modernos (ext4, XFS, NTFS, etc.). Su objetivo principal es prevenir la corrupción de archivos al registrar de forma anticipada los cambios que se van a aplicar en el disco. Este registro, llamado journal, almacena metadatos críticos y, en algunos casos, datos de usuario antes de que la operación se complete.
- Cómo funciona: antes de modificar una estructura de datos (por ejemplo, la tabla de inodos), el sistema escribe una entrada en el journal. Si ocurre un fallo de energía o un reinicio inesperado, el journal permite rehacer o deshacer esas operaciones, garantizando la consistencia del sistema de archivos.
- Ventajas: reducción del tiempo de recuperación tras un fallo, mayor integridad de datos y menor riesgo de pérdida de información.
- Desventajas: un ligero overhead de escritura, que puede mitigarse con discos SSD de alta velocidad.
En la práctica, al elegir un sistema de archivos para servidores críticos, prioriza aquellos con journaling robusto.
2. Directorios de configuración en Linux
En los sistemas basados en Unix/Linux, el directorio /etc alberga los archivos de configuración del sistema. Aquí se encuentran archivos como fstab (montaje de sistemas de archivos), hosts (resolución de nombres) y los scripts de inicio de servicios.
- Características de
/etc:- Es un directorio de texto plano, lo que facilita su edición con cualquier editor (vim, nano, etc.).
- Los cambios suelen requerir privilegios de superusuario (
root). - Se respalda frecuentemente en copias de seguridad del sistema.
- Comparación con otros directorios:
/bincontiene binarios ejecutables esenciales./devrepresenta dispositivos de hardware como archivos./homealberga los directorios personales de los usuarios.
3. Unidades lógicas en Windows vs. particiones en Linux
Una unidad lógica en Windows (por ejemplo, C:) difiere de una partición Linux en varios aspectos estructurales:
- En Windows cada unidad tiene su raíz independiente (
C:\,D:\, etc.), mientras que en Linux todas las particiones se integran bajo un único árbol de directorios que comienza en/. - Windows asigna letras de unidad y depende de un gestor de volúmenes (como el Disk Management) para montar discos, mientras que Linux utiliza puntos de montaje (mount points) definidos en
/etc/fstab. - El registro de Windows almacena configuraciones del sistema, mientras que Linux prefiere archivos de texto plano en
/etcy otros directorios.
Esta diferencia impacta en la administración de recursos y en la portabilidad de datos entre plataformas.
4. Almacenamiento de objetos en la nube
El modelo de almacenamiento de objetos se basa en guardar datos como unidades independientes (objetos) que incluyen el contenido, metadatos y un identificador único. Un ejemplo representativo es AWS S3, que permite:
- Escalabilidad prácticamente ilimitada.
- Acceso mediante API RESTful o SDKs.
- Control de versiones y políticas de ciclo de vida.
Otros servicios como Azure Blob Storage o Google Cloud Storage siguen el mismo paradigma, a diferencia de los discos de bloques (EBS, Azure Managed Disks) que requieren formateo y gestión de sistemas de archivos.
5. Métricas de rendimiento: throughput vs. IOPS
Cuando una aplicación necesita transferir grandes volúmenes de datos rápidamente, la métrica más relevante es el throughput (ancho de banda) asociado a operaciones de lectura secuencial. A diferencia de IOPS (operaciones de entrada/salida por segundo), que mide la cantidad de operaciones pequeñas y aleatorias, el throughput indica cuántos megabytes por segundo pueden leerse o escribirse de forma continua.
- Casos de uso de throughput: procesamiento de video, bases de datos analíticas, copias de seguridad masivas.
- Casos de uso de IOPS: bases de datos transaccionales, sistemas de archivos con alta concurrencia.
Seleccionar el tipo de almacenamiento adecuado (SSD de alta velocidad para throughput, discos de alta IOPS para operaciones aleatorias) optimiza costos y rendimiento.
6. IOPS agotados en discos EBS
En Amazon Elastic Block Store (EBS), los IOPS son un recurso limitado que se configura al crear el volumen. Cuando la aplicación supera el límite de IOPS, la latencia aumenta y el sistema operativo percibe una respuesta más lenta. No ocurre una desconexión automática ni una reducción del tamaño de bloque; simplemente el rendimiento se degrada.
- Consejo: monitorea métricas de CloudWatch y ajusta el tipo de volumen (por ejemplo, gp3 o io2) según la carga.
- Implementa burst credits y elastic provisioning para evitar cuellos de botella.
7. Diferencias entre almacenamiento de bloques y de objetos
El almacenamiento de bloques (EBS, discos locales) presenta una jerarquía de carpetas tradicional, similar a la de un sistema de archivos. En contraste, el almacenamiento de objetos es plano: no existe una verdadera estructura de carpetas; los "prefijos" que parecen directorios son simplemente parte del nombre del objeto.
- Ventaja del modelo de objetos: simplifica la escalabilidad y la gestión de metadatos.
- Desventaja: algunas aplicaciones que dependen de rutas de directorios deben adaptarse.
Para migrar datos, se suele usar herramientas que convierten los prefijos en carpetas virtuales o que emplean mount points como s3fs.
8. El directorio /dev en UNIX/Linux
El directorio /dev representa los dispositivos de hardware del sistema como archivos especiales. Cada dispositivo (disco, puerto serie, consola) tiene una entrada, por ejemplo /dev/sda para el primer disco SATA o /dev/tty0 para la consola virtual.
- Esta abstracción permite que programas interactúen con hardware mediante operaciones de lectura/escritura estándar.
- Los archivos en
/devpueden ser de tipo character (acceso byte a byte) o block (acceso por bloques).
Entender /dev es fundamental para tareas de administración como crear dispositivos de bucle (losetup) o montar imágenes ISO.
Resumen y mejores prácticas
Dominar los conceptos de sistemas de archivos y almacenamiento en la nube es esencial para cualquier profesional de TI. A continuación, se presentan algunas recomendaciones clave:
- Elige el tipo de almacenamiento adecuado: usa bloques para sistemas operativos y bases de datos que requieren estructuras de carpetas; emplea objetos para datos estáticos, copias de seguridad y contenido multimedia.
- Monitorea métricas de rendimiento: IOPS, latencia y throughput deben ser observados mediante herramientas como CloudWatch, Prometheus o Grafana.
- Implementa journaling y copias de seguridad: protege la integridad de los datos y reduce el tiempo de recuperación ante fallos.
- Comprende la diferencia entre sistemas operativos: la gestión de unidades lógicas en Windows difiere de los puntos de montaje en Linux; adapta tus scripts y procedimientos en consecuencia.
- Aprovecha la abstracción de dispositivos:
/devpermite manipular hardware de forma programática, facilitando la automatización de despliegues y pruebas.
Con estos conocimientos, estarás preparado para diseñar arquitecturas de almacenamiento resilientes, optimizar el rendimiento de aplicaciones y garantizar la seguridad de los datos tanto en entornos locales como en la nube.
