使用AzCopy

时间:2016-08-06 21:56:43

标签: powershell azure azure-powershell azcopy

CONTEXT

我的目标是使用新数据库刷新20个开发环境,并尽可能快速可靠地完成。我们生成一个BAK,将其扔进文件存储器,然后尝试(很差)将其下载到所有盒子,然后我在所有盒子上远程触发unmount old / mount new。

ATTEMPT

现在我将以下内容作为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台机器的最明智的方法是什么?

1 个答案:

答案 0 :(得分:1)

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

谢谢, 昂