Azure Blob vs 文件 vs 磁盘存储
Azure Blob vs File vs Disk storage
快速提问。我一直在阅读有关 azure blob/file/disk 存储选项的大量信息,而我的存储要求如此简单,以至于我对什么是最佳选择感到困惑。我正在阅读的大部分信息都完全超出了我的理解范围。
我希望有人能够将视野缩小到更合理大小的 pros/cons。我的情况如下:
我正在构建一个进行图像处理的 API。简而言之,用户发出获取特定图像并在顶部打印特定文本的请求,我的 API 处理它并吐出图像。目前我在 Azure 模拟器上 运行,因此图像文件(大约 3 GB 的 PNG)是从本地路径中提取的。我将很快部署到实时的 Azure 服务器,因此我想将这些图像文件存储在某个地方(而不是将它们放入实际的应用程序文件中)。
到目前为止,我的理解是磁盘和文件选项将使我的代码保持相对相同,仍然使用通用文件 I/O 来加载图像路径。磁盘将只允许访问此 API 是 运行 的机器的数据,但我不知道拥有磁盘是否有任何好处,这会施加此限制。 blob 存储将要求我更改它,但代码不多,而且我认为这不会太困难。
每个不同的选择都有很多细节,我很难做出决定:对于我的情况,三者之间是否有明确的选择?它归结为更容易的事情吗?性能和成本是重中之重,那么 pros/cons 与这些有关的是什么?这确实需要能够扩展到更多图像,但只是在一定程度上。在接下来的几年里,我可以预见它会从 3 GB 的图像增长到 10 GB 的图像,但不会从 3 GB 增长到 1000 GB。
你选择哪个完全取决于你,但客观地说:
- Azure 文件存储可以安装为 SMB 卷(这样您的应用程序的所有实例都可以使用它)。注意:这不是当前 Web 应用程序容易支持的东西 - 您只能通过 API,而不是通过附加磁盘写入文件共享。每个 Azure 文件存储卷最多支持 5TB,吞吐量最大。整个共享速度为 60MB/秒。它由 Azure blob 存储支持(因此,与 blob 一样耐用)。
- Azure 磁盘再次支持 blob(页面 blob),每个最大 1TB。每个磁盘都可安装到单个 VM。吞吐量高于文件存储(每个 blob 60/秒)。如果没有您自己的数据同步解决方案,则无法跨 VM 共享。安装和格式化后,可以像任何其他本地文件一样访问(例如,无需修改您的应用程序)
- Azure blob:每个存储帐户最多 500TB,每个块 blob 最多
200GB4.77TB。通过 REST API/SDK 访问,不能作为磁盘/驱动器安装。在不修改您的应用程序的情况下,您需要确保将 blob 内容复制到本地磁盘以对内容执行操作(您不能只将 blob 作为文件打开并修改它)。
(编辑以反映更大的块 blob 大小,2016 年 12 月引入)
快速提问。我一直在阅读有关 azure blob/file/disk 存储选项的大量信息,而我的存储要求如此简单,以至于我对什么是最佳选择感到困惑。我正在阅读的大部分信息都完全超出了我的理解范围。
我希望有人能够将视野缩小到更合理大小的 pros/cons。我的情况如下:
我正在构建一个进行图像处理的 API。简而言之,用户发出获取特定图像并在顶部打印特定文本的请求,我的 API 处理它并吐出图像。目前我在 Azure 模拟器上 运行,因此图像文件(大约 3 GB 的 PNG)是从本地路径中提取的。我将很快部署到实时的 Azure 服务器,因此我想将这些图像文件存储在某个地方(而不是将它们放入实际的应用程序文件中)。
到目前为止,我的理解是磁盘和文件选项将使我的代码保持相对相同,仍然使用通用文件 I/O 来加载图像路径。磁盘将只允许访问此 API 是 运行 的机器的数据,但我不知道拥有磁盘是否有任何好处,这会施加此限制。 blob 存储将要求我更改它,但代码不多,而且我认为这不会太困难。
每个不同的选择都有很多细节,我很难做出决定:对于我的情况,三者之间是否有明确的选择?它归结为更容易的事情吗?性能和成本是重中之重,那么 pros/cons 与这些有关的是什么?这确实需要能够扩展到更多图像,但只是在一定程度上。在接下来的几年里,我可以预见它会从 3 GB 的图像增长到 10 GB 的图像,但不会从 3 GB 增长到 1000 GB。
你选择哪个完全取决于你,但客观地说:
- Azure 文件存储可以安装为 SMB 卷(这样您的应用程序的所有实例都可以使用它)。注意:这不是当前 Web 应用程序容易支持的东西 - 您只能通过 API,而不是通过附加磁盘写入文件共享。每个 Azure 文件存储卷最多支持 5TB,吞吐量最大。整个共享速度为 60MB/秒。它由 Azure blob 存储支持(因此,与 blob 一样耐用)。
- Azure 磁盘再次支持 blob(页面 blob),每个最大 1TB。每个磁盘都可安装到单个 VM。吞吐量高于文件存储(每个 blob 60/秒)。如果没有您自己的数据同步解决方案,则无法跨 VM 共享。安装和格式化后,可以像任何其他本地文件一样访问(例如,无需修改您的应用程序)
- Azure blob:每个存储帐户最多 500TB,每个块 blob 最多
200GB4.77TB。通过 REST API/SDK 访问,不能作为磁盘/驱动器安装。在不修改您的应用程序的情况下,您需要确保将 blob 内容复制到本地磁盘以对内容执行操作(您不能只将 blob 作为文件打开并修改它)。
(编辑以反映更大的块 blob 大小,2016 年 12 月引入)