《Windows Azure Platform 系列文章目录》

  

  对于A系列和D系列的虚拟机来说,使用的是普通存储。

  普通存储的存储资源,是按照每GB每月计费的。Microsoft Azure普通存储资源是用多少算多少的,且按照平均使用计算。

    http://blogs.msdn.com/b/windowsazurestorage/archive/2010/07/09/understanding-windows-azure-storage-billing-bandwidth-transactions-and-capacity.aspx?PageIndex=2#comments

  举个例子:虚拟机操作系统的文件,对于Windows平台,C盘系统盘容量127GB,操作系统实际使用30GB。只收取实际使用的30GB存储。

  但是我们通过Azure管理界面,只能知道VHD的容量大小。并不知道实际使用容量。

  笔者在这里提供一个Sample Code,可以计算某个VHD的实际使用容量。

  我们需要准备:

  1.Azure China 存储账号

  2.Azure China 存储账号密码

  3.VHD所在的Container Name

  4.VHD Name

  

  创建Visual Studio Windows Form项目,Nuget增加Azure Storage引用。图略。

  将配置信息保存在App.config文件里:

<appSettings><add key="AccountName" value="leivms"/><add key="AccountKey" value="storagekey"/><add key="ContainerName" value="vhds"/><add key="VHDName" value="Lei2012CHNVM-Lei2012CHNVM01-2016-01-25.vhd"/></appSettings>

  Sample Code如下:

        private string accountname;private string accountkey;private string containername;private void Form1_Load(object sender, EventArgs e){Calculate();}private void Calculate(){var container = GetContainer();var cloudpageblob = container.GetPageBlobReference(ConfigurationManager.AppSettings["VHDName"].ToString());//OutPut VHD Actual Sizestring actualSize = GetFormattedDiskSize(GetActualDiskSize(cloudpageblob));}private CloudBlobContainer GetContainer(){//Get config from Web.Configaccountname = ConfigurationManager.AppSettings["AccountName"].ToString();accountkey = ConfigurationManager.AppSettings["AccountKey"].ToString();containername = ConfigurationManager.AppSettings["ContainerName"].ToString();string connectionString = GenerateConnectionString();//Get Azure Storage Connection String var account = CloudStorageAccount.Parse(connectionString);var client = account.CreateCloudBlobClient();//Get BlobContainer Objectreturn client.GetContainerReference(containername);}private string GenerateConnectionString(){StringBuilder sbuilder = new StringBuilder();sbuilder.Append(@"BlobEndpoint=https://");sbuilder.Append(accountname);sbuilder.Append(".blob.core.chinacloudapi.cn/");sbuilder.Append(@";QueueEndpoint=https://");sbuilder.Append(accountname);sbuilder.Append(".queue.core.chinacloudapi.cn/");sbuilder.Append(@";TableEndpoint=https://");sbuilder.Append(accountname);sbuilder.Append(".table.core.chinacloudapi.cn/");sbuilder.Append(";AccountName=");sbuilder.Append(accountname);sbuilder.Append(";AccountKey=");sbuilder.Append(accountkey);return sbuilder.ToString();}private long GetActualDiskSize(CloudPageBlob pageBlob){pageBlob.FetchAttributes();return 124 + pageBlob.Name.Length * 2+ pageBlob.Metadata.Sum(m => m.Key.Length + m.Value.Length + 3)+ pageBlob.GetPageRanges().Sum(r => 12 + (r.EndOffset - r.StartOffset));}[DllImport("Shlwapi.dll", CharSet = CharSet.Auto)]public static extern long StrFormatByteSize(long fileSize, [MarshalAs(UnmanagedType.LPTStr)] StringBuilder buffer, int bufferSize);public static string GetFormattedDiskSize(long size){var sb = new StringBuilder(11);StrFormatByteSize(size, sb, sb.Capacity);return sb.ToString();}

  运行结果:

  1.上图中,Lei2012CHNVM-Lei2012CHNVM01-2016-01-25.vhd这个Page Blob容量大小为127GB

  

  

  2.运行代码后,这个vhd的实际使用容量为10GB

  

  

  参考资料:

http://fabriccontroller.net/calculating-how-much-space-a-windows-azure-disk-is-really-using/

本文转自Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/5179832.html,如需转载请自行联系原作者

Windows Azure Storage (23) 计算Azure VHD实际使用容量相关推荐

  1. Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob

    <Windows Azure Platform 系列文章目录> 请读者在参考本文之前,预习相关背景知识:Windows Azure Storage (1) Windows Azure St ...

  2. 将数据从 SQL Server 导入 Azure Storage Table

    点击上方蓝字关注"汪宇杰博客" 导语 最近有个需求要将数据存储从 SQL Server 数据库切换到 Azure Storage 中的 Table.然而不管是 SSMS 还是 Az ...

  3. Azure Table storage 基本用法 -- Azure Storage 之 Table

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table,其中的 Table 就是本文的主角 Azure Tabl ...

  4. Azure Blob Storage 基本用法 -- Azure Storage 之 Blob

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Table storage ...

  5. Azure File Storage 基本用法 -- Azure Storage 之 File

    Azure Storage 是微软 Azure 云提供的云端存储解决方案,当前支持的存储类型有 Blob.Queue.File 和 Table. 笔者在<Azure Blob Storage 基 ...

  6. Windows Azure Storage – 4万亿对象和计数

    Window Azure Storage有着惊人增长的一年.我们拥有超过4万亿的存储对象,每秒处理着270,000个请求,顶峰时达到每秒880000个请求. 大约一年前,我们达到了一万亿的目标.然后在 ...

  7. Windows Azure Storage论文解读

    Windows Azure Storage论文解读 整体架构 文件流层 stream layer 存储引擎 存储优化 分区层 Partition Layer 存储引擎 WAS总结 WAS是微软开发的云 ...

  8. Windows Azure Storage (1) Windows Azure Storage Service存储服务

    <Windows Azure Platform 系列文章目录> 如果读者使用的是国内由世纪互联运维的Azure China服务,请参考笔者的博文Azure China (4) 管理Azur ...

  9. Windows Azure Platform (九) Windows Azure Storage Service存储服务

    Windows Azure本质上来说就是将你本地的应用程序打包,然后上传到Windows Azure VM进行托管运行. 注意:任何保存在Windows Azure VM盘符的内容都是临时的.非持久化 ...

最新文章

  1. 菜鸟教程python3-Python3 简介
  2. [EasyTao(道)系列文章之一]太极之道
  3. professor‘s great paper in multi agent system
  4. android list 比较,LinkedList 和 ArrayList 的区别
  5. 关于分区索引与全局索引性能比较的示例
  6. java构建内存池队列_内存池完整实现代码及一些思考
  7. linux系统软件包依赖关系,Ubuntu解决包依赖关系
  8. (JSP)关于手机端(尤其是苹果手机)pdf文件无法打开的解决方案
  9. 你真的会用Context么?
  10. 计算机屏幕显示不能全屏,电脑屏幕小软件显示不全
  11. VisionPro工具说明
  12. 错误集--创建消息队列用户,用于controler和node节点连接rabbitmq的认证
  13. Python 列表,for循环,元组的使用【修改、添加、删除、排序、切片】w
  14. 注册机偷懒写法1、之直接扣代码
  15. 蓝凌OA系统任意文件读取
  16. 浅谈一下我对Android实现人脸认证登录的认识
  17. 网络受限_受限人工神经网络对幸福的追求
  18. Cpolar实现虚拟机内网穿透,搭建私人云服务器
  19. statusBar控件
  20. 精通 CSS+DIV 网页样式与布局 62

热门文章

  1. 360驱动大师v2.0官方版
  2. 驱动级键盘记录器与安全密码框(能获取QQ密码)
  3. Idea 类builder模式插件安装方法
  4. Linux常用命令摘抄
  5. OKI C8800dn 激光打印机驱动
  6. 和钱理群一起阅读鲁迅读后感
  7. 使用HD Tune扫描一块1TB的机械硬盘需要多长时间?
  8. Android组件化开发,其实就这么简单
  9. Git的管理、撤销、删除以及创建远程仓库
  10. CNN模型预测股票涨跌的始末过程——(一)股票数据的获取