CONTEXTVerteilen eine große Datei auf N VMs mit AzCopy
Mein Ziel 20 dev Umgebungen mit frischen Datenbanken zu aktualisieren, und es tun, so schnell und zuverlässig wie möglich. Wir erzeugen eine BAK, werfen sie in den Dateispeicher und versuchen dann (schlecht), sie auf alle Boxen herunter zu bringen, bevor ich aus der Ferne die unmount alten/mount new auf allen Boxen auslöse.
VERSUCH
Im Moment habe ich die folgenden als Powershell-Workflow haben:
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
}
Dies funktioniert wunderbar für kleine Textdateien, sondern auch für ~ 400 GB-Datenbank-Backups, es funktioniert nicht so anschwellen, weil Die Host-Maschine wird völlig überwältigt.
Was ist die sinnvollste Methode, um mit AZCopy eine große Datei automatisiert und parallel auf ~ 20 Maschinen zu kopieren?
Das ist nicht eine große Architektur ist. Ihrer Erzählung zufolge würden Sie ~ 8 TB an Daten pushen. Sie müssen andere Optionen in Erwägung ziehen, wie z. B. einen Torrent oder das Hochladen auf ein Azure-Speicherkonto. –
Sind die Ziele Azure-VMs? Haben Sie über die Verwendung von Azure-Dateien und die Zuordnung von Freigaben nachgedacht? – CtrlDot
@SamAxe Die Datei befindet sich in einem azurblauen Speicherkonto. – RobVious