La gestión de archivos en Azure incrementa sus opciones y posibilidades con la función Azure Files que introduce SMB 2.1. Vamos a ver como podemos utilizar esta función que, aunque aún se encuentra en fase Preview, ya nos permite una gran variedad de opciones a la hora de interconectar aún más nuestra red local, nuestras máquinas virtuales,etc...para sacar aún más rendimiento a Azure.

microsoft azure1

 

 

La funcionalidad Azure Files, permite a nuestras máquinas virtuales en Azure montar vía el protocolo SMB un sistema de archivos compartidos. De esta manera nuestras MV pueden acceder de manera simultanea a este sistema de ficheros y ejecutar acciones lectura, escritura, borrado... sobre el mismo. Permitiendo compartir datos persistentes entre diferentes roles e instancias. Además de esto también nos permite conectar de manera sencilla este sistema de archivos desde nuestra máquina en local o directamente con recursos en red,etc... todo esto a través del API de ficheros de Windows además de a través del ya existente API Rest de ficheros en Azure.

Tres formas diferentes y complementarias de almacenar datos en Azure

  • Azure Files - Proporciona una interfaz SMB 2.1 para complementar a REST. Esto permite a nuestras aplicaciones en la nube usar métodos nativos para interaccionar con los ficheros (leer, escribir...). Está pensado para almacenar herramientas que necesiten estar disponibles desde diferentes instancias y permite acceso SMB desde la misma región y acceso REST desde cualquier otro lugar. El límite de tamaño es de 5TB por share.
  • Azure Blobs - Este es el método original de almacenamiento de datos en Azure, permite acceder a través de REST y escalar masivamente el almacenamiento, con contenedores que pueden llegar a los 500TB. Soporta streaming y accesos aleatorios.
  • Azure Disks - Básicamente discos persistentes en formato VHD y almacenados en un Blob que pueden adjuntarse a una MV pero no compartirse entre varias. (Aunque es posible adjuntarlo a otra MV diferente). Se utiliza para datos que no tienen porque estar disponibles desde fuera de la MV.

La mayor diferencia entre Azure Files y Azure Blobs y en lo que vamos a centrarnos en este artículo es aparte del tamaño máximo por share, la posibilidad de poder acceder al mismo a través de sistemas de fichero estándar, disponiendo de directorios y funciones como renombrado de ficheros y directorios que no eran posibles con los Blobs. Cada tipo de almacenamiento es perfecto para ciertas tareas en particular y depende del usuario elegir sabiamente cual se ajusta mejor a sus necesidades, vamos a centrarnos en Azure Files.

Características básicas de Azure Files

  • Hasta 5TB por share
  • Ficheros de hasta 1TB
  • Hasta 1000 IOPS (operaciones de entrada/salida por segundo)
  • Velocidades de hasta 60MBps en transferencia de datos por IO
  • Soporte de SMB 2.1 (Windows 7 en adelante, Windows Server 2008 R2 en adelante)

Trabajando con Azure Files

Para empezar a utilizar Azure Files, primero debemos acceder al portal Microsoft Azure Preview Portal, porque recordemos que esta funcionalidad se encuentra aún en modo preview y aplicaremos para una subscripción de Azure Files. Una vez se nos dé acceso podemos crear una cuenta de almacenamiento a través de nuestro panel de control de Azure.

01cuentaalmacenamientoazure

Una vez lo tengamos creado recibirá la dirección nombredecuenta.file.core.windows.net. Vamos a ver tres maneras de trabajar con nuestra nueva cuenta de almacenamiento:

1.Powershell

Una vez nos hayamos autenticado en nuestro Powershell contra Azure seguimos los siguientes pasos:

1-Crear un contexto para nuestra cuenta de almacenamiento y clave

$ctx=New-AzureStorageContext nombredecuenta clavedecuenta

La clave de la cuenta la podemos localizar en nuestra cuenta de almacenamiento clickando en el icono "keys"

02clavescuentaalmacenamientoazure

2-Creamos un nuevo share

$s=New-AzureStorageShare nombredeshare -Context $ctx

O podemos acceder a un share que hayamos creado previamente con

$s=Get-AzureStorageShare nombredeshare -Context $ctx

3-Una vez completados estos dos pasos iniciales ya podemos trabajar con diferentes comandos para subir ficheros, crear directorios, borrar, descargar,etc...

Vamos a ver algunos ejemplos:

-Listar los share que tengamos en nuestro contexto

Get-AzureStorageShare -Context $ctx

-Crear un directorio

New-AzureStorageDirectory -Share $s -Path directorio

-Subir un fichero a un directorio

Set-AzureStorageFileContent -Share $s -Source c:\ejemplo\fichero.txt -Path directorio

-Listar el contenido de un directorio

Get-AzureStorageFile -Share $s -Path directorio

-Borrar fichero

Remove-AzureStorageFile -Share $s -Path directorio/fichero

-Borrar directorio

Remove-AzureStorageDirectory -Share $s -Path directorio

-Descargar fichero

GetAzureStorageFileContent -Share $s -Path directorio/fichero -Destination C:\ejemplo

2.Máquina Virtual

Como decíamos anteriormente podemos montar nuestra cuenta de almacenamiento en cualquier máquina virtual de Azure para de esta manera disponer de una acceso a la misma de una manera muy ágil y sencilla. Vamos a ver los sencillos pasos que hay que seguir para conseguir esto:

1-Conectamos a nuestra máquina virtual por ejemplo a través de escritorio remoto. Para esto accedemos a nuestro panel de control de Azure, vamos al apartado de máquinas virtuales, seleccionamos aquella MV a la que queramos conectar y clickamos en el icono "connect" que aparece en la parte inferior. Esto nos abrirá un dialogo de escritorio remoto, introducimos el usuario y contraseña de nuestra MV y accedemos al escritorio de la misma.

2-Abrimos CMD en la MV y ejecutamos el siguiente comando:

net use x: \\nombredecuenta.file.core.windows.net\nombredeshare /u:nombredecuenta clavedecuenta

A partir de este momento ya tenemos esta nueva unidad mapeada en nuestra MV y podemos trabajar con ella como si de cualquier otra carpeta de Windows se tratara y pudiendo realizar tareas de copia,etc... directamente entre nuestra máquina en local y la MV. Podemos mapear esta misma unidad desde múltiples MV para acceder a los mismos datos, etc....

3.AzCopy

Dentro de Microsoft Azure Storage Tools, encontramos la magnifica herramienta AzCopy. Esta herramienta de línea de comandos está diseñada para gestionar grandes volúmenes de datos hacia y desde almacenamientos Azure (Blob, File y Tablas). Vamos a ver como utilizar esta herramienta.

03microsoftazurestoragetools

 

1-Descargamos AzCopy, recomiendo la última versión preview 4.1.0 con la gramática de la cual he creado los siguientes ejemplos

2-Instalamos la aplicación y accedemos a su directorio a través de CMD para poder ejecutar comandos como los siguientes:

-Subir carpeta(estructura de carpetas..) a Azure

azcopy /Source:c:\ejemplo\ /Dest:https://nombredecuenta.file.core.windows.net/nombredeshare /DestKey:clavedecuenta /S

-Descargar un fichero

azcopy /Source:https://nombredecuenta.file.core.windows.net/nombredeshare /Dest:c:\ejemplo\ /SourceKey:clavedecuenta /Pattern:nombredefichero

-Descargar una carpeta/estructura de carpetas

azcopy /Source:https://nombredecuenta.file.core.windows.net/nombredeshare /Dest:c:\ejemplo\ /SourceKey:clavedecuenta /S

Estos son solo algunos ejemplos de diferentes maneras de gestionar Azure Files. Los límites, dada las posibilidades de interconexión entre nuestra red local, nuestras MV,etc... lo ponen vuestros scripts para sacar el máximo rendimiento de Azure.