Entendiendo el almacenamiento temporal en Máquinas Virtuales de Microsoft Azure

Introducción

Cuando creamos una nueva máquina virtual en Microsoft Azure, ésta viene con una unidad de almacenamiento temporal asociada. Esta unidad temporal es “D:” para las máquinas virtuales Windows y “/dev/sdb1” para las máquinas virtuales Linux.

Es muy importante entender que esta unidad no se debe de ser utilizada para almacenar información que no se deba perder puesto que no es persistente.

En la siguiente imagen podemos observar como veríamos el almacenamiento temporal en las máquinas virtuales:

Windows

clip_image002

Linux

clip_image004

Escenarios

En escenarios como un reinicio de la máquina ya sea manual o debido a una actualización de Azure o cuando ocurra fallo de hardware en el que la máquina virtual deberá ser realojada en otro servidor, se mantendrá el disco de sistema y los discos conectados que se encuentran en la cuenta de almacenamiento, pero el disco temporal se perderá y se creará uno nuevo.

clip_image006

¿Pero para qué sirve el almacenamiento temporal en Microsoft Azure?

Como podemos ver en las imágenes, en el caso de Windows el fichero pagefile.sys se guarda en la unidad temporal (unidad D: ).

En Linux /mnt se encuentra montado sobre /dev/sdb1. Debemos tener en cuenta que /dev/shm utiliza el fichero swap que se encuentra en /mnt/resources (temporal), que sería el equivalente al pagefile.sys de Windows.

Esta unidad esta también indicada para almacenar cualquier tipo de ficheros temporales que utilicen las aplicaciones de la máquina virtual.

Windows

clip_image008

Linux

clip_image009

¿Cuál es el rendimiento de este almacenamiento temporal (IOPS)?

Este almacenamiento temporal se encuentra alojado en el mismo servidor donde se encuentra alojada la máquina virtual. Por lo tanto, tiene un mayor rendimiento en IOPS (Input/Output Operations Per Second) y unas menores latencias cuando lo comparamos con el almacenamiento persistente.

¿Cuándo se pierden los datos del almacenamiento temporal?

Debido a que el almacenamiento temporal se encuentra en el mismo servidor donde está alojada la máquina virtual, en el caso en el que la máquina virtual fuese realojada en otro servidor se perdería el contenido del almacenamiento temporal. Los escenarios donde la máquina virtual puede ser realojada son el reinicio de la máquina virtual, la redimensión o cambio de tamaño, el apagado de la máquina, cuando exista un fallo de hardware, debido a actualizaciones de la máquina virtual o debido a actualizaciones del sistema operativo que contiene la máquina virtual, entre otros.

¿Existe posibilidad de recuperar los datos del almacenamiento temporal?

No existe posibilidad de recuperar estos datos.

¿Qué debo hacer para almacenar datos que no debo perder?

Para datos que deban ser persistentes siempre debemos utilizar unidades de disco.

En el siguiente artículo encontrará información sobre como añadir más discos persistentes a la máquina virtual: https://azure.microsoft.com/en-us/documentation/articles/storage-windows-attach-disk/

 

Sergio Guerrero Haro

Microsoft Azure Support Engineer