这些文件是我需要动态链接的Dll,因此无法使用Azure存储。
我可以根据以下内容将磁盘连接到Azure虚拟机: http://www.windowsazure.com/en-us/manage/windows/how-to-guides/attach-a-disk/
但我怎样才能为工人角色做同样的事?
原因是:
存储一些所有Worker角色实例可以同时访问的文件。因此,不必将文件复制/同步到每个实例的所有本地驱动器。
部署新版网络角色时,文件需要保留。
答案 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)到本地存储。由于存储帐户和您的计算实例将在同一数据中心(至少应),因此副本应该非常快,并且没有带宽费用。您可以通过启动任务轻松完成此操作。好处?
提出一个信令方案让你的实例知道它们有一个软件更新(可能是一个简单的发布/子服务总线消息?)并不难。