这是一个明智的Azure Blob存储设置,是否有重组工具来帮助我迁移到它?

Gra*_*ler 2 azure azure-storage azure-storage-blobs

我认为我们在SAAS系统中使用Azure存储的方式略有不妥.我们为每个客户创建了一个存储帐户(Securtiy是主要考虑因素)和每个系统区域的容器,例如车辆,工作等

进一步阅读后,似乎有人建议我们应该为所有客户使用一个帐户.每个客户端都应该有一个容器(所以我们可以通过编程方式创建它)然后我们保护它.然后应该使用"虚拟"文件夹结构来构造文件,例如称为"客户端A"的容器.然后存储作业的文件(在系统的工作区域中),如工作/作业/ {entity id} /blah.pdf.这听起来合情合理吗?

如果是这样,我们现在有大约10个帐户需要重组.是否有任何工具可以让我们轻松地将一个帐户内容复制到另一个容器帐户?我很欣赏我们可能无法在帐户之间移动文件(因为我们很久以前就设置它们所以不能使用本机复制功能)所以我想某种副本.所有帐户中都有GB文件.

Gau*_*tri 5

为每个客户端保留不同的存储帐户可能不是一个坏主意.这样做(对我来说)的好处是:

  1. 你提到的更好的安全性.
  2. 您将能够获得更好的吞吐量/客户端,因为每个客户端都有自己的存储帐户.如果您为所有客户端保留一个存储帐户,并且如果一个客户端开始严重打击该帐户,则其他客户端将受到影响.
  3. 更好的可扩展性.每个存储帐户最多可容纳200 TB的数据.因此,如果您只保留一个存储帐户并假设每个客户端消耗100 GB的数据,您将只能容纳2000个客户端(我希望我的数学是正确的:)).使用单独的存储帐户,您不会受到限制.

也存在一些缺点.他们之中有一些是:

  1. 管理将是一场噩梦.想象你有2000个客户,那么你最终将管理2000个存储帐户.
  2. 您可能受限于Windows Azure.目前默认情况下,每个订阅可获得大约10或20个存储帐户,您需要联系支持人员以手动提升该限制.他们可以为您做到这一点,但我想您会希望这是一个自助服务模式,您可以在不联系支持的情况下创建任意数量的存储帐户.

现在回答您关于工具的问题,您可以自己编写一些使用复制Blob功能的东西.此功能允许您异步复制存储帐户中的blob数据.基本上这是你要做的是:

  1. 首先为目标存储帐户中的每个客户端创建一个blob容器.
  2. 枚举源存储帐户中的所有blob容器.
  3. 对于源存储帐户中的每个Blob容器,枚举blob.
  4. 将每个blob异步复制到客户端blob容器中的目标存储帐户.

如果您是PowerShell粉丝,您可以查看Cerebrata的Azure管理Cmdlet(http://www.cerebrata.com/Products/AzureManagementCmdlets),其中包含此功能.我本来可以推荐Cerebrata的Azure Management Studio,但我还没有尝试过这个功能[披露:我是Cerebrata团队的开发者之一].

希望这可以帮助.