Good Morning, Fellow Stack Overflow-ers,
I have a Windows 2019 DC Virtual Machine with a 127GiB OS Disk with MS Azure. The WM image is Standard B2s (2 vcpus, 4 GiB memory)
I want to swap this with a smaller 8GiB OS disk - having successfully created this in my portal and labelled useastOS - Azure is failing to allow me to swap from the previous 127GiB disk to the smaller 8GiB Disk. On the "Swap OS Disk" menu illustrated, you will see there is no option to use the useastOS disk.
Puzzling.
This is a managed disk and so there is no reason whatsoever as to why Azure is not giving me the option.
So my question is there any valid reason as to why Azure is not allowing me to swap to the smaller useastOS or is this bug within Azure that I need to make Azure aware of?
When you are creating a Managed Disk like this, there is no SO installed, it is an empty disk, that's why Azure assumes it is a data disk, not a SO disk.
Now, when you upload your VHD disk to blob storage, you can tell Azure that this disk is OS and not a data disk like this.
Looking for upload VHD to Azure blob, here it is an example https://learn.microsoft.com/en-us/azure/virtual-machines/windows/prepare-for-upload-vhd-image.
Your question is how to swap SO disk to a new one smaller, this is what I understood, in case you just want to add a second disk as a data disk, you can go to VM overview, from blade disk, you can add it easily.
Anyway, I hope that I could help in any :)
Just in case, confirm that you selected an operation system when you created this disk useastOS. For example, in my case it is Windows, but disk can be either Windows or Linux, when you don't select anything, Azure assumes it is a data disk, not an operation system.
Related
I need to know the difference between the SSD disk and the data disk. According to this capture, this virtual machine has a hard disk ssd 16gb, and 4 disks data. But these 4 disks, how much do they have? Are they ssd? what are they for?
enter image description here
data disks can be ssd or not, depending on how you set them up. they are used to store data :)
amount of data disks you can attach depends on the vm sku. you dont always have to attach 4 data disks (or whatever vm supports, you can have 0 - VM SKU maximum data disks).
The 16gb ssd is local ssd (local to the host machine hosting your vm) attached to the VM (not OS disk). its a temporary drive - meaning it can go away when you reboot vm, so content will be lost and you will get a new temporary drive. it can be used to store throw away logs, for example, or temporary files. IO operations on this disk do not count towards IO limit and this drive is completely free (you pay for the VM SKU and it is part of that cost).
you can learn about data disk prices here: https://azure.microsoft.com/en-us/pricing/details/managed-disks/. Storage prices do not take into account os or data disks. they just bill you for storage.
reference:
https://learn.microsoft.com/en-us/azure/virtual-machines/windows/attach-managed-disk-portal
https://learn.microsoft.com/en-us/azure/virtual-machines/windows/attach-disk-ps
It means in addition to the OS disk, you can connect 4 data disks to the VM.
It does not mean there are 4 disks, just that you can add 4 if you want.
You should discuss the VM requirements with your client. Maybe he needs an additional data disk, maybe not.
The capture you posted, specifies that this VM can take up to 4 data disks. The price does not include them. Also, you should check the Azure price calculator to generate more accurate offers.
My Linux VMs each have two disk (OS + Data)
The data disks are currently set to 1024Gb but only contain <15Gb of content
In have two environments (test and production). The production data disk is premium the test data disk is standard.
I want to reduce the size of the production data disk because as I discovered Premium disks are changed on the full size, not just the amount being used as standard disks are.
So before doing this in production, I wanted to try in test. I stop the VM then try to change the size of the disk through the Azure portal but I get an error stating that the new size must be greater than the current - it won't let me reduce the size.
Is that a constraint of premium disks as tell? Is it a constraint of the Azure portal, or can I run CLI/powershell commands that can do this? Or am I forced to create a new disk, copy data, then remove the old disk?
You can't reduce the size of a disk, so you have to attach another disk and copy the content over using robocopy or other method.
Let's say I have an Azure IaaS virtual machine with a mounted data disk (e.g. E: drive). Then I copy 1000 files of varying sizes onto it. As soon as Windows says the copy is complete I take a snapshot of the mounted data disk.
Here's the problem: if I mount that snapshot, some files are missing and others are corrupt.
However, if I wait a while after the copy is complete and then take a snapshot, all of the data is there.
This tells me there is some behind the scenes caching that's done, which is expected. Is there any documentation available that discusses how Azure caches data before it's actually flushed to blobs?
It depends on the cache settings of your disks when you created it.
If you mounted the drive in azure with cache setting to "Write", then writes are cached and you should wait or turn off VMs to be safe.
You can play with IaaS Management Studio -evaluation for 30 days-, this tool, among other things, prevents you to take snapshot when it detects that your blob is a disk with cache settings to write. (I'm the dev behind this tool :))
Maybe I don't fully understand how Azure charges for VHD storage.
When I started out, I had a 120gb VHD with only ~30gb used. I was only getting charged for roughly 1gb per day for Azure. As I filled up the hard drive, the daily usage grew as expected. I ended up using 100gb of the drive and was getting hit with roughly 3.6gb per day from Azure. That makes perfect sense to me.
The other day, I free'd up a lot of space on the VHD and now I only use 30gb again where the other 90gb is free space. However, it seems that I'm still getting charged for roughly 3.6gb per day.
Could someone help explain this to me? Do I need to do something to reclaim the free space? If so, how?
Thanks
It's now possible to manually reclaim unused space by executing the following PowerShell command (starting from Windows Server 2012 / R2):
Optimize-Volume -DriveLetter F -ReTrim
More information: Release unused space from your Windows Azure Virtual Hard Disks to reduce their billable size
Even though the files on the VHD may be deleted, you still pay for the space they once consumed. Check out this post by the Windows Azure storage team - http://blogs.msdn.com/b/windowsazurestorage/archive/2012/06/28/exploring-windows-azure-drives-disks-and-images.aspx.
In the "Storage Capacity" section -
"It is also important to note that when you delete files within the file system used by the VHD, most operating systems do not clear or zero these ranges, so you can still be paying capacity charges within a blob for the data that you deleted via a disk/drive."
I have an existing Azure CloudDrive that I want to make bigger. The simplist way I can think of is to creating a new drive and copying everything over. I cannot see anyway to just increase the size of the vhd. Is there a way?
Since an Azure drive is essentially a page blob, you can resize it. You'll find this blog post by Windows Azure Storage team useful regarding that: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/04/11/using-windows-azure-page-blobs-and-how-to-efficiently-upload-and-download-page-blobs.aspx. Please read the section titled "Advanced Functionality – Clearing Pages and Changing Page Blob Size" for sample code.
yes you can,
please i know this program, is ver easy for use, you can connect with you VHD and create new, upload VHD and connect with azure, upload to download files intro VHD http://azuredriveexplorer.codeplex.com/
I have found these methods so far:
“the soft way”: increase the size of the page blob and fix the
VHD data structure (the last 512 bytes).
Theoretically this creates unpartitioned disk space after the
current partition. But if the partition table also expects
metadata at the end of the disk (GPT? or Dynamic disks), that
should be fixed as well.
I'm aware of only one tool
that can do this in-place modification. Unfortunately this tool is
not much more than a one-weekend hack (at the time of this writing)
and thus it is fragile. (See the disclaimer of the author.) But fast.
Please notify me (or edit this post) if this tool gets improved significantly.
create a larger disk and copy everything over, as you've suggested.
This may be enough if you don't need to preserve NTFS features like
junctions, soft/hard links etc.
plan for the potential expansion and start with a huge (say 1TB) dynamic VHD,
comprised of a small partition and lots of unpartitioned (reserved) space.
Windows Disk Manager will see the unpartitioned space in the VHD, and can expand the
partition to it whenever you want -- an in-place operation. The subtle point is
that the unpartitioned area, as long as unparitioned, won't be billed, because
isn't written to. (Note that either formatting or defragmenting does allocate
the area and causes billing.)
However it'll count against the quota of your Azure Subscription (100TB).
“the hard way”: download the VHD file, use a VHD-resizer program to insert unpartitioned disk space, mount the
VHD locally, extend the partition to the unpartitioned space, unmount,
upload.
This preserves everything, even works for an OS partition, but is very
slow due to the download/upload and software installations involved.
same as above but performed on a secondary VM in Azure. This speeds up
downloading/uploading a lot. Step-by-step instructions are available here.
Unfortunately all these techniques require unmounting the drive for quite a lot of time, i.e. cannot be performed in high-available manner.