Tema 2 de 4
Además de blobs, una cuenta de Azure Storage ofrece recursos compartidos de archivos y tablas clave-valor. Son servicios sencillos, pero el examen pregunta sus protocolos, cómo se identifica una fila en una tabla y en qué se diferencia una tabla de Azure de una tabla relacional.
Contenido
En las redes locales es habitual compartir archivos: se guardan en un equipo y se da acceso a usuarios y aplicaciones de otros equipos. Funciona en una red local, pero escala mal cuando crecen los usuarios o están en sedes distintas.
Azure Files ofrece recursos compartidos de archivos totalmente gestionados en la nube, accesibles con los protocolos estándar SMB y NFS.
Al alojar los recursos compartidos en Azure se eliminan los costes de hardware y mantenimiento, y se gana alta disponibilidad y almacenamiento escalable.
Capacidad por cuenta
Hasta 256 TiB en cuentas SSD con el modelo de facturación aprovisionado v2, y hasta 5 PiB en cuentas HDD de pago por uso, repartidos en cualquier número de recursos compartidos.
Archivos
El tamaño máximo de un archivo es 4 TiB; se pueden fijar cuotas para limitar cada recurso compartido. Admite hasta 2000 identificadores simultáneos por archivo o directorio.
Niveles de medios
HDD (discos duros) y SSD (discos de estado sólido). SSD ofrece más rendimiento a un precio mayor.
Carga y sincronización
Se suben archivos desde el portal o con AzCopy. Azure File Sync sincroniza copias en caché local con los datos de Azure Files.
| Protocolo | Clientes | Mejor para |
|---|---|---|
| SMB (Server Message Block) | Windows, Linux, macOS | Recursos compartidos generales, lift and shift, híbrido con Azure File Sync |
| NFS (Network File System) | Linux (no se admite en Windows) | Cargas de Linux, contenedores, HPC |
| API REST | Todas las plataformas | Acceso programático desde aplicaciones |
Requisitos de NFS
Para crear un recurso compartido NFS hay que usar el nivel SSD y controlar el acceso mediante un punto de conexión privado o un punto de conexión de servicio de una red virtual.
Admite almacenamiento con redundancia de zona (ZRS) y geográfica (GRS).
Una solución de almacenamiento NoSQL con tablas de elementos clave-valor. Cada elemento es una fila con columnas para los campos que hay que guardar.
No es una tabla relacional
Una tabla de Azure guarda datos semiestructurados. Cada fila necesita una clave única y una marca de tiempo, pero por lo demás las columnas pueden variar entre filas. No hay claves externas, relaciones, procedimientos almacenados ni vistas.
Los datos suelen estar desnormalizados: cada fila contiene todos los datos de una entidad lógica. Una fila de cliente puede guardar nombre, varios teléfonos y varias direcciones, y otra fila tener un número distinto de campos. En una base relacional, esa información se repartiría en varias filas de varias tablas.
PartitionKey
Un valor que eliges para agrupar filas relacionadas en la misma partición. Las filas con la misma clave de partición se guardan juntas.
RowKey
Un valor único para cada fila dentro de su partición. Juntas, las dos claves identifican de forma única la fila.
El particionado mejora la escalabilidad y el rendimiento:
| Concepto | Descripción |
|---|---|
| Tabla | Colección de entidades sin esquema impuesto |
| Entidad | Conjunto de propiedades, como una fila. Hasta 1 MB en Azure Storage (2 MB en Cosmos DB) |
| Propiedad | Par nombre-valor; hasta 252 por entidad, más tres del sistema: clave de partición, clave de fila y marca de tiempo |
| Dirección | http://<cuenta>.table.core.windows.net/<tabla>, accesible con el protocolo OData |
Es adecuado para terabytes de datos estructurados que no necesitan uniones complejas, claves externas ni procedimientos, y suele costar menos que SQL tradicional para volúmenes similares.
| Azure Table Storage | Azure Cosmos DB for Table | |
|---|---|---|
| Modelo | Clave-valor, PartitionKey + RowKey | El mismo modelo y programación |
| Rendimiento | Base | Mayor rendimiento y disponibilidad |
| Distribución | En la cuenta de almacenamiento | Distribución global |
| Índices | Índice agrupado por las claves | Índices secundarios automáticos en todas las propiedades |
Azure Table Storage sigue disponible; Cosmos DB for Table conviene cuando la carga necesita esas capacidades extra (ver Cosmos DB en este dominio).
| Situación | Respuesta | Por qué |
|---|---|---|
| Sustituir un servidor de archivos local por recursos compartidos en la nube | Azure Files | Recursos compartidos de red gestionados. |
| Mantener en servidores locales una caché de los archivos compartidos en Azure | Azure File Sync | Sincroniza copias locales con Azure Files. |
| Montar un recurso compartido desde Windows, Linux y macOS | SMB | Protocolo multiplataforma. |
| Un recurso compartido para cargas de Linux y contenedores | NFS (nivel SSD) | Solo clientes Linux; requiere el nivel SSD. |
| Guardar perfiles de usuario con campos variables y acceso rápido por clave | Azure Table Storage | Clave-valor sin esquema. |
| Consultas rápidas filtrando por la clave de partición | Particionado de Table Storage | Reduce la E/S necesaria. |
| Tabla clave-valor con distribución global e índices secundarios automáticos | Azure Cosmos DB for Table | Mismo modelo, más rendimiento y disponibilidad. |
❓ ¿Los recursos compartidos NFS de Azure Files funcionan en Windows?
No. NFS es para clientes Linux; SMB funciona en Windows, Linux y macOS.
❓ ¿Qué nivel exige un recurso compartido NFS?
El nivel SSD, con acceso por punto de conexión privado o de servicio.
❓ ¿Qué identifica de forma única una fila de Azure Table Storage?
La combinación de clave de partición y clave de fila.
❓ ¿Azure Table Storage admite claves externas y procedimientos almacenados?
No. No tiene relaciones, claves externas, procedimientos ni vistas.
❓ ¿Todas las filas de una tabla de Azure deben tener las mismas columnas?
No. Aparte de las claves y la marca de tiempo, las columnas pueden variar: son datos semiestructurados.
❓ ¿Para qué sirve Azure File Sync?
Para sincronizar copias en caché local de los recursos compartidos con Azure Files.
¿Entendiste este tema?
Pon a prueba lo que acabas de aprender
Una aplicación guarda datos de dispositivos en Azure Table Storage y casi siempre consulta todos los dispositivos de una misma planta. ¿Qué conviene usar como clave de partición?
Preguntas originales, cada una con su explicación.
Empezar un simulacro