0

语境

我的目标是用新的数据库更新 20 个开发环境,并尽可能快速和可靠地完成。我们生成一个 BAK,将其放入文件存储中,然后尝试(很差地)将其放到所有盒子上,然后我远程触发所有盒子上的卸载旧 / 挂载新的。

试图

现在我有以下作为 Powershell 工作流:

Write-Output "Beginning workflow."
foreach -parallel ($dir in $destinations)
{
    $targetFile = "$dir\$sourcePattern"
    Write-Output "Checking: $targetFile"
    InlineScript{
        $fileExists = Test-Path $Using:targetFile
        if ($fileExists -eq $false){
            Write-Output "Copying to: $using:targetFile"
            &"$Using:AzCopyPath" /Source:"$Using:sourceDirectory" /Dest:$Using:dir /SourceKey:$Using:sourceKey /Pattern:"$Using:sourcePattern" /Z:$journalPath
            Write-Output "Copied to: " $Using:targetFile
        } else{
            Write-Output "Already copied: " $Using:targetFile
        }

这对于小型文本文件非常有效,但对于大约 400GB 的数据库备份,它并没有那么大,因为主机完全不堪重负。

使用 AZCopy 以自动化和并行方式将大文件复制到大约 20 台机器的最明智的方法是什么?

4

1 回答 1

1

请详细说明“主机完全不堪重负。”。你可能会达到 Azure 文件共享的规模限制或存储帐户的其他限制。单个文件共享的目标吞吐量高达 60 MB/秒,因此请确保您没有超过该限制。如果您达到该限制,您可能需要考虑将内容放在多个文件共享中。请参阅以下 MSDN 文章中文件和存储帐户的性能规模限制:https ://azure.microsoft.com/en-us/documentation/articles/storage-scalability-targets/ 。还请检查以确保您的存储帐户和 Azure VM 位于同一区域,以减少网络延迟。

谢谢, 昂

于 2016-08-07T20:01:37.710 回答