2014-07-26 295 views
0

如何创建可在虚拟机中运行的Web服务器之间共享的文件共享,以直接访问Azure中的blob存储?Azure使用文件共享从IIS虚拟机共享照片?

我正在将以.net 1.1编写的现有n层网站应用程序迁移到Azure虚拟机。

这是一个遗留的应用程序,我想移动在其目前的形式天青然后慢慢修改代码在以后的时间采取的云类型的服务优势。

的应用程序当前正在跨越4台服务器拆分:

1×SQL数据库服务器

2×IIS Web服务器应用程序(负载经由循环DNS平衡)

1×IIS Web服务器的照片(主机百万用户上传的照片)

照片服务器是一个怪物机与RAID 10阵列12的HDD。

用户可以上传其通过web服务器转移到使用简单文件共享相片服务器的照片。例如:

\\PhotoServer1\UserData\Photos\ 

文件共享可能会装载在Z:\ 2台Web服务器上的车程,他们没有问题,阅读和通过共享文件写入到照片服务器。

该照片服务器还充当IIS网页服务器并用于托管这些文件。例如:

http://photos.mysite.com/userdata/photos/234/234photo.jpeg 

我可以轻松地将SQL服务器和IIS Web服务器到Azure上的虚拟机。

但我努力理解我怎么能实现在其目前形式的文件/网络照片服务器。

我想设置网络服务器上的文件共享,然后读/写/通过Web服务器的虚拟机删除照片。

我可以简单地为文件/网络服务器设置另一个虚拟机,但它是一台繁忙的机器,我需要创建一个驱动器的RAID阵列,这似乎毫无意义,因为Azure存储已自行完成此操作。

我不能让我周围的Blob存储的头,我知道它不是一个硬盘驱动器,但它是很方便的把它看作对遗留应用程序,特别是在服务器之间共享。

问题:

  1. 我怎样才能创建可在虚拟机中运行直接访问Azure中Blob存储网络服务器共享的文件共享?

  2. 如果我将所有内容都存储在blob存储中,是否还需要IIS服务器来托管这些文件,如果是的话,是否也会通过文件共享将其挂载到IIS?

回答

0

有几种方法可以实现文件共享,包括按照您的建议将其托管在VM上。但是,这不会给你一个耐用的解决方案,因为如果虚拟机脱机,文件共享将会脱机。

Azure现在提供文件服务(仍在预览中),它允许您设置SMB ​​2.1(由BLOB存储支持)。这将允许您运行net use将该共享挂载为驱动器盘符,然后关闭。

可能会找到更多的信息here

1

Azure存储有两种潜在的服务可供您考虑解决您的问题 - Azure Blob和Azure文件。正如David在他的回答中提到的那样,只要您从云中的虚拟机访问它,Azure文件服务的设计看起来就像一个标准文件共享。您可以将共享挂载到一个或多个VM中,并像访问本地文件共享一样访问它。 David发布的链接是一个很好的起始地点,http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/introducing-microsoft-azure-file-service.aspx,在这里也可以看到:http://blogs.msdn.com/b/windowsazurestorage/archive/2014/05/27/persisting-connections-to-microsoft-azure-files.aspx

Blob存储有点像文件系统,但存储在云中并通过REST API访问。有关blob存储的基于代码/示例的概述,我推荐使用http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/下的代码示例。如果您使用blob存储,则可以让客户端直接访问blob,具体取决于您的身份验证需求。 Blob存储支持三种类型的身份验证 - 匿名(任何人都可以访问),共享密钥(必须拥有您的存储帐户密钥才能访问,帐户密钥可以完全访问存储帐户中的所有内容)以及SAS(共享访问签名) blob或容器级别)。 SAS通常是一个不错的选择,并且不需要拥有托管文件的服务器,尽管客户端确实需要访问SAS令牌的方式。有关认证概述,请参阅http://msdn.microsoft.com/en-us/library/azure/hh225339.aspx

请注意,blob和文件服务是分开的,您不能从另一个访问数据。