在Microsoft Azure中,我在一个区域中有一个源存储帐户,在3个不同区域中有3个目标存储帐户。我想将blob数据从源存储帐户复制到所有3个目标存储帐户。目前,我在bash脚本中使用azcopy(版本6)命令来执行此操作。它首先在一个区域完成,然后在另一个区域开始。由于地理距离的原因,每天都需要一个小时。我想知道azcopy是否有任何选项可以并行地将blob从源复制到多个目的地。任何其他建议,以减少时间也被邀请:)
在我的bash script 中使用的azcopy命令的泛化:
/usr/bin/azcopy --source https://[srcaccount].blob.core.windows.net/[container]/[path/to/blob] --source-key $SOURCE_KEY --destination https://[destaccount].blob.core.windows.net/[container]/[path/to/blob] --dest-key $DEST_KEY --recursive --quiet --exclude-older
3条答案
按热度按时间qoefvg9y1#
Azcopy始终只能将数据从一个源复制到一个目标。但是既然你提到你需要每天都这样做,我可能会选择Azure数据工厂中的计划管道。您还可以将三个不同的复制作业设置为并行活动。
erhoui1w2#
只需为每个目的地生成一个单独的脚本示例。这样,你的复制将并行发生。
下面是在BASH中执行此操作的简单指南:https://www.slashroot.in/how-run-multiple-commands-parallel-linux
ssm49v7z3#
如果你正在寻找Powershell脚本,这里是:
Select-AzSubscription -Subscription“您的订阅名称”#设置订阅ID
变量
$SourceResource Account =“SourceResource Account”#替换为所需的源存储帐户$DestResource Account =“DestResource Account”#替换为所需的目标存储帐户$SourceResourceGroupName =“SourceResourceGroupName”#替换为所需的源资源组名称$DestResourceGroupName =“DestResourceGroupName”#替换为所需的目标资源组名称
获取源存储账户和目标存储账户的存储密钥
$SourceRankKey = Get-Aztek AccountKey-Name $SourceRankAccount-ResourceGroupName $SourceResourceGroupName $DestRankKey = Get-Aztek AccountKey-Name $DestRankAccount-ResourceGroupName $DestResourceGroupName
$SourceStory Context = New-Aztory Context-AccountName $SourceStory Account-AccountKey $SourceStory Key.Value[0] $DestStory Context = New-Aztory Context-AccountName $DestStory Account-AccountKey $DestStory Key.Value[0]
每个容器循环
$Containers = Get-AztagueContainer-Context $SourceContext foreach($Container in $Containers){
}