How temporary is Azure VM Temporary Storage? - azure

When you create an Azure VM, it creates a D: drive named "Temporary Storage". It's unclear to me just how temporary this is though. Is it reset between reboots, start/stop, or just if the image is recreated? Or arbitrarily? Also, what are some use cases for this temporary storage?

Resets, reboots, fail overs etc. can wipe it. It is only to be used for swap files etc.
Performance Best Practices for SQL Server in Azure Virtual Machines
Temporary Disk
The temporary storage drive, labeled as the D: drive is not persisted and is not saved in the Windows Azure Blob storage. It is used primarily for the page file and its performance is not guaranteed to be predictable. Management tasks such as a change to the virtual machine size, resets the D: drive. In addition, Windows Azure erases the data on the temporary storage drive when a virtual machine fails over. The D: drive is not recommended for storing any user or system database files, including tempdb.
EDIT: Interestingly enough the above has now been updated to the below which says that is OK to store your tempdb on if you are using the D-Series Virtual Machines.
The temporary storage drive, labeled as the D: drive, is not persisted to Azure blob storage. Do not store your data or log files on the D: drive.
Only store tempdb and/or Buffer Pool Extensions on the D drive when using the D-Series Virtual Machines (VMs). Unlike the other VM series, the D drive in the D-Series VMs is SSD-based. This can improve the performance of workloads that heavily use temporary objects or that have working sets which don't fit in memory. For more information, see Using SSDs in Azure VMs to store SQL Server TempDB and Buffer Pool Extensions.
Some Azure Virtual Machine Basics Please
The Temporary storage drive is a local drive on the physical box that should only serve as scratch space. For example, we put the paging file onto this drive to save on transaction costs for each Windows page-in but nothing else. I would recommend you don’t put anything that you need persisted on this drive as it will be deleted upon any hardware failure the system sees whereas the OS disk and any data disks attached will remain persisted in storage even on hardware failures.

This disk is a local disk, non-replicated. If it crashes, anything on it is gone. If your VM is moved to another server, the content is gone. If you scale a VM size down, it's likely this data will be gone, as the allocation size decreases.
As for use cases: Think about database servers that need a scratch disk. Or maybe your workflow involves grabbing content from a blob, processing it, then shipping it off somewhere (e.g. photo/video/audio processing). You could download to temporary storage, do all of your transform work on that disk, then pick up the results, saving the final file somewhere durable. Temp storage use is really open-ended - it's really up to you how you use it; just realize that it's not durable storage (unlike your VHD, which is in durable storage).

When you resize the VM, When you shutdown or restart your VM, when your VM is moved to a different host server(due to service healing, shutdown and restart), when the host is updated, when the host experiences a hardware failure etc.
Source: Azure Pricing page

Related

Data Loss in Azure

I have a VM running on Azure and I have a CRM system running on this VM. For some reason, all the data entered in the CRM got lost and the person who set up the VM did not enable backup. So I can't restore to the last instance as well.
I don't know what exactly happened. I can't find Azure support to get on a call with them to check if any of the data is recoverable.
Please anyone guide me on what to do.
There's a very big chance the data that got lost was stored on the VM's temporary disk:
Temporary disk - Temporary disks use a solid-state drive that is located on the same Azure host as the VM. Temp disks are highly performant and may be used for operations such as temporary data processing. However, if the VM is moved to a new host, any data stored on a temporary disk is removed. The size of the temporary disk is determined by the VM size. Temporary disks are assigned a drive letter of D: by default.
Source: Default Azure Disks
Unfortunately any data lost from the temporary disk is not recoverable.

Increase the temporary disk size in azure vm

I have a test service fabric deployed to a single node VM. It is all working, but the temporary disk drive is only 20GB is size and keeps running out. I'm only using an A2_V2 Standard instance to keep tests down while we are testing things out.
Service Fabric is using the temporary disk for storage.
Is there a way to increase the size of the temporary disk?
Azure temporary disk size depends on your VM size. If you want to change its size, you need to resize your VM. However, the temporary disk will lost data if you resize the VM. BecauseThe temporary disk is not persisted.
Temporary Disk
The temporary storage drive, labeled as the D: drive is not persisted
and is not saved in the Windows Azure Blob storage. It is used
primarily for the page file and its performance is not guaranteed to
be predictable. Management tasks such as a change to the virtual
machine size, resets the D: drive. In addition, Windows Azure erases
the data on the temporary storage drive when a virtual machine fails
over. The D: drive is not recommended for storing any user or system
database files, including tempdb.
So, I don't suggest you use the temporary disk as the storage for the Service Fabric. You can add data disk to your VM.

How to differentiate a Azure Temporary Storage Drive vs other drives on my Azure VM?

I created a Azure Virtual Machine and it in turn created a temporary storage drive for me (D:). Now, If I have C:, D:, E:,F: drive in my VM how can I differentiate which is Azure temporary Storage which is not.
I have tried to Use DeviceType=3 but it lists all the Logical Drives.
I'm assuming you're talking about Virtual Machines (you didn't specify). For VMs:
Your OS disk is backed by durable blob storage. All the time. For Windows, this is approx. 127GB. For Linux, this is approx. 32GB.
Your temp drive is always in-chassis, and at risk. The temp disk size is advertised in the VM sizing specs.
Beyond that: You'd be taking the specific action of mounting additional disks, which are all durable, blob-backed. So you'll know exactly which drives there are.
After some research, it looks there isn't any programmatic way to identify the Azure temporary drive. May be the hack is to look for "DATALOSS_WARNING_README.txt" file in all the drives.

windows azure virtual machine hard drive full

I have a virtual machine running Windows on Microsoft Windows Azure. I am noticing that one of the hard drives shows as completely full. Do these drives automatically expand as data is added, or do I need to increase storage, and if so--how?
Thanks for any tips.
In Azure, both the OS Disk and any attached Data Disks are fixed format VHDs. They are not resized automatically and, in fact, there is no supported process to modify the size. Since these disks are allocated using sparse storage - i.e., you are only billed for space actually used - the general recommendation is to use 1TB disks. If the disk is empty you will not be billed.
Windows Server 2012 provides TRIM support which clears the space occupied in Azure Storage by deleted files. Without this support there could still be a charge for files which have been deleted from the filesystem but which still occupy pages in the page blob backing the VHD in Azure Storage.
Martin Balliauw has written up instructions for modifying the size of a VHD in Azure. He has also created a utility that helps with this task. This comes with a do it at your own risk warning.

Azure VM - Temporary Storage drive - a thing of the past?

I am confused about the Azure VM setup. I am trying to setup a SQL Server and the guidelines suggest that if your DBs are larger than 10GB, that you should setup a seperate Data Disk in Azure Storage. But all the documentation explicitly says not to use the D: Temporary Storage as it is volatile across reboots.
I completely understand this. The issue I have is that when I create a new VM, (I just created a SQL 2012 Web on 2008 R2 SP1 from the gallery), I get a single C: drive of about 128GB. When I then attach an empty data disk through the portal, it appears as D: and is called Temporary Storage.
My understanding is that this drive is not temporary storage (volatile) as I have created it through the portal as a data disk.
Is this a hangover from a past Azure configuration? I gather the VMs used to come with a 30GB OS drive but now come with a 128GB OS drive. Is this something to do with it?
I'm pretty confused!
The way it works, the D drive is the 70GB temp (volatile) drive (at least with Windows Server 2012):
Here, I just attached an empty disk and refreshed the windows Server disk manager. I then go to format it:
Once formatted, my new 20GB disk is assigned to F (and I still have a 70GB temp drive). This drive, backed by blob storage, is durable.
When you are using Azure VMs - the OS drive & the Data drives are backed by Azure Blob Storage (the VHDs are Page Blobs). The OS disk size limit during most of the CTP was 10GB, but was raised around the time the feature shipped to the larger 128GB. The deciding factor for Data Drive/No Data Drive/Lots of Data Drives (Max = 16) for SQL is more a function of your IOPS requirements than either the size of the DB corpus or the relative drive size.
For SQL workloads in a VM, I would strongly recommend reviewing:
http://go.microsoft.com/fwlink/?LinkId=306266
This is a performance paper based on the latest Azure bits, developed by the SQL team (updated June 2013).
Pat
In the interest of providing an answer to this question.
I think it was just an anomoly. #DavidMakogon helped me go through what was expected and it seems that my first VM simply didn't initialize the Temporary Drive on first boot, so this caused lots of confusion.
It's all working as expected now.

Resources