写点什么

Azure Drive 简化应用程序迁移至微软云计算过程

  • 2010-02-21
  • 本文字数:1480 字

    阅读完需:约 5 分钟

微软近期发布了测试版本的 Windows Azure Drive ,这个最初在 2009 年的 PDC 大会上被宣布为 XDrive 的存储器访问技术,能通过在存储器二进制大对象上创建一个 NTFS 格式的虚拟硬盘的方法,来简化将 Windows 应用程序迁移到云计算(服务器)上的过程。

Windows Azure 存储服务是一种基于 REST 模式的处理二进制大对象的服务。二进制大对象是一种能存放二进制或者文本文件的存储实体。二进制大对象通常被有序地存放在存储容器中。常见的二进制大对象有两种:

  • 块状二进制大对象——最多 200GB 的容量并支持线性读写的访问操作;这类二进制大对象对于流媒体的存储十分有用。
  • 页面二进制大对象——能够增长至 1TB 的容量并提供了任意读写的访问操作,此类的二进制大对象有助于存放普通的文本或者二进制文件。

存储服务的 API 提供了操作二进制大对象所需的工具,但是这些只对编写新的面向 Azure 云计算的应用程序提供了便利。已经存在的 Windows 应用程序对二进制大对象一无所知,因此它们需要被大规模地改写才能在云上运行。这便有了 Azure Drive 的用武之地了。

Windows Azure 操作系统拥有一个能够将页面二进制大对象安装为 VHD(Virtual Hard Drive,虚拟硬盘)的操作系统驱动器(OS Driver),并且还能对这个 VHD 执行读写操作。对于应用程序来说,这个过程就像操作一个已安装在机器上的普通 NTFS Windows 硬盘一样,但实际上这个操作系统驱动器却在对二进制大对象进行操作。所有无缓冲的或者被划掉的写入数据都被同步送到了存储器上,因此当用户接收到驱动器返回的“成功”信息后,就可以确定他的数据是安全的。如果发生应用程序崩溃或者驱动没有被载入的情况,这个功能将会非常重要。

Azure 开发团队还公开了一些 Azure Drive 的技术细节

  • 一个 Drive 就是将一个页面二进制大对象格式化成了固定 NTFS 格式,并且容量为 16MB 至 1TB 的 VHD。
  • 一个虚拟机可以动态加载最多 16 个硬盘。
  • 一个页面二进制大对象在同一时间段只能被一台虚拟机加载并执行读写操作。一个页面二进制大对象的快照可以在同一时间段被多个不同的虚拟机加载并执行只读操作。
  • 用来存储页面二进制大对象的存储器账户和用来执行应用程序的运算帐户应该被保存在 Windows Azure Developer Portal 的同一个物理地点上,以用来获取最好的硬盘性能。
  • Drive 能够通过 Windows Azure Blob 接口进行上传和下载。被格式化成固定 NTFS 格式的虚拟硬盘可以被当作页面二进制大对象,通过使用页面二进制大对象接口进行上传并加载成一个硬盘。类似的,一个格式化了的页面二进制大对象也能通过页面二进制大对象接口进行下载并可被当作一个 VHD 来使用。
  • Windows Azure 提供的操作系统驱动器只能被 Windows Azure 云中的 Windows Azure 虚拟机实例使用。微软现在还没有发布任何一个允许个人远程加载的硬盘。尽管如此,用户还是可以使用 GetBlob 来下载一个硬盘并通过在所下载的机器上加载这个被下载的 VHD 来使用它,但任何对于该下载版本的修改都将不会被发送到 Windows Azure Blob 服务器上。

Azure Drive 已经在二月份的Azure SDK 中发布,该SDK 中包含了加载了OS Driver 的Guest OS 1.1 版本。

PDC2009 上公布的但还没有发布的功能有:

  • 更好地操作云中的虚拟机:
    • 设置云中的虚拟机的管理员权限
    • 用户驱动构建和配置虚拟机镜像
    • 云中的虚拟机上的远程终端访问服务
  • 存储:
    • 可供用户有选择地复制数据的物理存放地点
    • 数据表的次要索引

参考资料: Azure Drive 白皮书 (docx 格式),PDC 2009 相关演讲: Windows Azure Present and Future Windows Azure Blob and Drive Deep Dive

查看英文原文: Azure Drive Eases the Migration to Microsoft’s Cloud

2010-02-21 02:591412

评论

发布
暂无评论
发现更多内容

Python进阶(五十二)Flask使用pymysql连接MySQL数据库

No Silver Bullet

Python MySQL pymysql 11月月更

[力扣] 剑指 Offer 第三天 - 左旋转字符串

陈明勇

Go 数据结构与算法 力扣 11月月更

「Go实战」一文带你搞懂从单队列到优先级队列的实现

Go学堂

golang 开源 程序员 优先级队列 11月月更

【愚公系列】2022年11月 微信小程序-app.json配置属性之其他属性

愚公搬代码

11月月更

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

Helm部署的服务如何修改配置

程序员欣宸

Kubernetes Helm 11月月更

腾讯二面vue面试题总结

bb_xiaxia1998

Vue

冷冷清清的双十一,电商促销节为何被消费者逐渐抛弃

石头IT视角

React-hooks面试考察知识点汇总

beifeng1996

React

React-Hooks怎样封装防抖和节流-面试真题

beifeng1996

记一场vue面试

bb_xiaxia1998

Vue

React源码分析7-state计算流程和优先级

goClient1992

React

【下】提高组件库Level必做好这六件事

小鑫同学

前端 组件库 11月月更

图解漏桶(LeakyBucket)限流器的实现原理

Go学堂

golang 程序员 个人成长 限流 漏桶

【上】提高组件库Level必做好这六件事

小鑫同学

前端 组件库 11月月更

2022-11-17:组合两个表。请写出sql语句,执行结果是{“headers“: [“first_name“, “last_name“, “city“, “state“], “values“: [

福大大架构师每日一题

数据库 福大大

docker安装WordPress(一)

蜗牛也是牛

GitHub上新被爆赞!高并发JUC源码分析笔记,竟深受程序员追捧

钟奕礼

Java java程序员 java编程 Java面试题

vue组件通信6种方式总结(常问知识点)

bb_xiaxia1998

Vue

Postman工具介绍

阿泽🧸

Postman 11月月更

前端一面经典react面试题(边面边更)

beifeng1996

React

vue为什么v-for的优先级比v-if的高?

bb_xiaxia1998

Vue

React源码分析5-commit

goClient1992

React

Python进阶(四十九)初识Flask Blueprint

No Silver Bullet

Python flask 11月月更 Blueprint

React源码分析6-hooks源码

goClient1992

React

react面试题详解

beifeng1996

React

DDD与应用架构

胖子笑西风

架构 DDD 框架 整洁架构 Java core

应用链如何成为 Web3 的“潜力链”

One Block Community

区块链 开发者 区块链应用 云存储 web3

Python进阶(五十)浅析Flask运行原理

No Silver Bullet

Python flask 11月月更

uni-app 性能优化实战之逻辑层条件编译的生产环境

恒山其若陋兮

11月月更 uni

Azure Drive简化应用程序迁移至微软云计算过程_.NET_Abel Avram_InfoQ精选文章