我的Azure云服务存储文件应该放在哪里?

问题描述:

我有一个Azure云服务,它需要访问(读取)成千上万的小二进制文件并对其执行一些计算。这里的关键要求是速度 - 它需要尽可能快。我尝试使用Azure blob存储来保存这些文件,但访问速度太慢,所以目前我将这些文件保存在Azure云服务本地存储本身中。这并不理想,因为我们不应该在VM中存储状态 - 持久性无法保证,并且不能跨VM实例共享。我的Azure云服务存储文件应该放在哪里?

我阅读了关于Azure高级存储(可连接到VM的SSD驱动器)。这在理论上看起来很理想,但我看不出有什么方法可以将其添加到云服务中。

所以,我的问题是:

  1. 有没有办法来Azure的高级存储SSD磁盘添加到云服务 或者只能被添加到Azure的VM?
  2. 鉴于我需要从 云服务中快速读取数千个小型二进制文件,有没有其他存储机制可以尝试?
+0

是否需要使用CS而不是VM? –

+1

更改您的代码以适应云的编程模型,请勿尝试使云作为本地服务器工作。如果你想处理事件,你应该使用事件中心和/或流分析。 Blob存储扩展到很多文件,但试图处理很多小文件并不是最优的 - 你最终为实际加载数据支付更多的网络往返费用。将多个消息批量转换为更大的文件。像Hadoop这样的大数据解决方案喜欢大文件,但讨厌很多小文件 - 你不能划分一个小文件 –

向Azure计算机虚拟机添加磁盘,而不是云服务。在这种情况下,您可以使用提供类似于网络共享的存储的Azure文件存储服务。 https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-files/

+0

OP已经声明它们并不直接与blob进行性能要求。文件存储性能较低。 –

+0

噢好吧。有人可以参考的性能比较研究吗? – Aravind

根据您的要求,您可以使用Redis的: https://azure.microsoft.com/en-us/services/cache/

它的速度非常快,并存储在Redis的服务器上的数据可以在多个虚拟机实例共享。

Redis是一个键值对存储,因此您可以使用文件的“路径”作为键和其内容作为值。

为了最大限度地降低成本,请确保将Redis服务器定位在与您的服务相同的区域/资源组中。