locked
vhd snapshot billing confusion RRS feed

  • Question

  • Team,

    Thanks in advance

    As per the article https://docs.microsoft.com/en-us/rest/api/storageservices/understanding-how-snapshots-accrue-charges

    Snapshots data is calculated based on the unique pages. For example, If my vhd size is of 127 GB and currently I'm using 15 GB from that. if i take a snapshot then a snapshot of 127 gb will be created and it won't be charged as that is duplicate. But once i change something on the VM that unique page is charged and snapshot is not charged as it is the duplicate?

    Can you please clarify if I'm correct?

    if answer to above question is yes then when i run the script given by the PG where i can find out the billing of the storage account from below link, why it gives me the sum of all the snapshot size. i.e vm size used in vhd was 15 gb + snapshot 15 gb = 30 GB.

    https://docs.microsoft.com/en-us/azure/storage/scripts/storage-blobs-container-calculate-billing-size-powershell



    Wednesday, October 3, 2018 5:28 PM

Answers

  • Hi Aquib, My apologies for the delay ,I had a lot of priority tasks in different storage areas and different mediums, to answer your questions: 

    1) yes, you will only be charged for the base data, until you change anything on it, then you will be charged for the snapshot as well. Snapshots will contain all of your data.

    2) The snapshots are divided into two types: Full, or incremental. If you do an incremental over a full(adding changes to an existing snapshot of a base blob),  it will add the 12GB data over the base you have taken(the 127 + 12). if you use the full, it will do the full snapshot. I recommend checking this link for Incremental/Full snapshots

    3) If you do not take a full copy, you won't be able to restore all data, if you take full then incremental , you will be able to recover data even after the second incremental snapshot(Full + Incremental). It's critical to have the full done first, then continue with incremental snapshots as you move forward.

    Let  me know if this helps.
    Thanks,
    Adam


    Thursday, October 11, 2018 7:24 PM

All replies

  • Hi Qureshi, 

    Pricing for backing up VMs is not based on the maximum supported size for each data diskattached to the virtual machine. 
    Pricing is based on the actual data stored in the data disk. Example, if you have a base VM image of 150GB(100 for OS (50GB used by OS) + 50 DataDisk (Only 20 GB of data is used), you will be billed for the (50+20) data that is present. 
    Similarly, the backup storage bill is based on the amount of data that is stored in Azure Backup, which is the sum of the actual data in each recovery point.

    The below chart contains a visual example of what I explained, only the amount of actual data present will be billed.

    I would highly recommend checking the following   link  it provides additional info regarding VM backup & pricing.



    Does this answer you question ?

    Thanks,
    Adam


    Friday, October 5, 2018 7:45 PM
  • Adam,

    Thank you for trying, but my query was not related to Azure backup. My query was related to Azure storage snapshot and its pricing clarification which I needed.

    Saturday, October 6, 2018 3:59 AM
  • Thanks for clarifying, in regards of snapshots, only unique page blobs will be charged, when a page blob has been modified and the snapshot has not, you will accrue charges on the “unique” modified page blob. I’m not sure if I understand your scenario but here’s another explanation: if you have 127 GB and modify 15 GB of data that is not identical data on a snapshot, you will be charged for that data per the amount it represents in page blobs. When it comes to the script, you are correct, but the purpose of it is to mainly calculate the size of the container and blobs within it. I did a quick test which confirmed the finding

    Calculating container testcont ...

    Container 'testcont' with 50 blobs has a sizeof 74.14 MB. Before taking a blob snapshot of 8.38MB, then after:

    Calculating container testcont ...

    Container 'testcont' with 51 blobs has a sizeof 82.52 MB.

    The script doesn’t include the conditions regarding the snapshots, I think it should be mentioned(I will bring it to the attention of the authors),  in the test scenario I made, it should have kept the same size 74.14 since the snapshot itself is identical to the base blob. Does this answer your question @Aquib ?

    Monday, October 8, 2018 4:52 PM
  • Hi Adam,

    Thanks for the detailed explanation, About the article you did the test very well. 

    Question 1) Also just wanted to clarify, Let's consider a scenario My vhd is of 127GB I did not change anything to it and then took the snapshot. As there is nothing unique hence I will only be charged for the base blob and not for the snapshot data. But wanted to know does that snapshot include all my data in it? No confusion of billing but just wanted to know about the data in the snapshot is the actual data or just the pointer to the orignal page blob?

    Question 2) In the same scenario let's consider if my snapshot contains actual data in it which is of 127GB, Now I changed some data in the base blob of 12 GB. the second time when I take the snapshot will that include only the change data of 12GB as the snapshot are incremental?

    Question 3) If i loss the 1st snapshot then the second snapshot won't help me to restore anything right as the 1st full snapshot is deleted.

    Monday, October 8, 2018 5:20 PM
  • Hi Adam,

    I'm still waiting for reply to my questions. 

    Wednesday, October 10, 2018 4:57 PM
  • Any update?
    Thursday, October 11, 2018 4:24 PM
  • Hi Aquib, My apologies for the delay ,I had a lot of priority tasks in different storage areas and different mediums, to answer your questions: 

    1) yes, you will only be charged for the base data, until you change anything on it, then you will be charged for the snapshot as well. Snapshots will contain all of your data.

    2) The snapshots are divided into two types: Full, or incremental. If you do an incremental over a full(adding changes to an existing snapshot of a base blob),  it will add the 12GB data over the base you have taken(the 127 + 12). if you use the full, it will do the full snapshot. I recommend checking this link for Incremental/Full snapshots

    3) If you do not take a full copy, you won't be able to restore all data, if you take full then incremental , you will be able to recover data even after the second incremental snapshot(Full + Incremental). It's critical to have the full done first, then continue with incremental snapshots as you move forward.

    Let  me know if this helps.
    Thanks,
    Adam


    Thursday, October 11, 2018 7:24 PM
  • Thanks for sharing the information, I will go through the link which you shared as it is quite detailed one. Thanks once again for sharing.
    Friday, October 12, 2018 4:23 AM