Azure辅助角色 - 附加可在部署之间重用的磁盘

时间:2013-12-10 11:52:50

标签: azure azure-web-roles azure-worker-roles azure-virtual-machine

这些文件是我需要动态链接的Dll,因此无法使用Azure存储。

我可以根据以下内容将磁盘连接到Azure虚拟机: http://www.windowsazure.com/en-us/manage/windows/how-to-guides/attach-a-disk/

但我怎样才能为工人角色做同样的事?

原因是:

  1. 存储一些所有Worker角色实例可以同时访问的文件。因此,不必将文件复制/同步到每个实例的所有本地驱动器。

  2. 部署新版网络角色时,文件需要保留。

2 个答案:

答案 0 :(得分:2)

请查看Azure Drives:http://go.microsoft.com/?linkid=9710117。它本质上是一个页面blob(因此是持久存储),它包含一个NTFS格式的虚拟硬盘驱动器(VHD)。 Azure Drive的一个问题是,只有一个实例具有Azure驱动器的写入权限。所有其他实例仅具有只读权限。

答案 1 :(得分:2)

正如Gaurav指出的那样,您可以将vhd存储在blob中,然后附加到您的实例。请记住,对于其他实例,您需要创建blob的快照。只要vhd的内容没有改变,那么快照就很小(实际上是一堆指向blob页面的指针)。并且......如果您需要更新其中一个dll,则需要通过安装驱动器进行写入的实例来实现。

关于上面的标准#1(不希望为每个实例将文件复制到本地驱动器):我建议先尝试一下,看看从单个blob复制dll需要多长时间(或者在一个zip文件中在实例启动期间,单个blob)到本地存储。由于存储帐户和您的计算实例将在同一数据中心(至少),因此副本应该非常快,并且没有带宽费用。您可以通过启动任务轻松完成此操作。好处?

  • 更容易更新单个dll(您可以使用任何现成的blob管理工具,PowerShell等) - 更新您的dll和其他常见文件时甚至不需要运行实例。如果您要存储在已安装的驱动器中,那么如果要维护文件列表,则必需才能运行实例,并且您需要通过该实例进行所有文件管理。
  • 如果有什么东西会导致驱动器租约中断(不是说,但本地副本将独立于blob存储),则不会失去访问dll的风险。

提出一个信令方案让你的实例知道它们有一个软件更新(可能是一个简单的发布/子服务总线消息?)并不难。