Übertragen von Daten mit AzCopy v7 unter Linux

AzCopy ist ein Befehlszeilenprogramm, das entwickelt wurde, um Daten in/aus Microsoft Azure Blob und File Storage zu kopieren. Hierbei werden einfache Befehle verwendet, die für optimale Leistung konzipiert sind. Sie können Daten zwischen einem Dateisystem und einem Speicherkonto oder zwischen Speicherkonten kopieren.

Wichtig

Dieser Artikel beschreibt eine ältere Version von AzCopy. Informationen zur Installation der neuesten Version von AzCopy finden Sie unter AzCopy v10.

Hinweis

Ab Version 7.2. von AzCopy werden die .NET Core-Abhängigkeiten im Paket mit AzCopy bereitgestellt. Wenn Sie Version 7.2 oder höher verwenden, ist die Installation von .NET Core nicht mehr erforderlich.

Herunterladen und Installieren von AzCopy

Installation unter Linux

Hinweis

Abhängig von Ihrer Distribution müssen Sie unter Umständen .NET Core 2.1-Abhängigkeiten installieren. Diese sind im Artikel Voraussetzungen für .NET Core unter Linux aufgeführt.

Installieren Sie bei RHEL 7-Distributionen ICU- und libunwind-Abhängigkeiten: yum install -y libunwind icu

Die Installation von AzCopy unter Linux (v7.2 oder höher) ist ganz einfach: Extrahieren Sie einfach das TAR-Paket, und führen Sie das Installationsskript aus.

RHEL 6-basierte Distributionen: Downloadlink

wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinuxrhel6
tar -xf azcopy.tar.gz
sudo ./install.sh

Alle anderen Linux-Distributionen: Downloadlink

wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64
tar -xf azcopy.tar.gz
sudo ./install.sh

Sie können die extrahierten Dateien entfernt, nachdem AzCopy unter Linux installiert ist. Wenn Sie nicht über Administratorrechte verfügen, können Sie azcopy auch mit dem Shellskript „azcopy“ im extrahierten Ordner ausführen.

Alternative Installation unter Ubuntu

Ubuntu 14.04

Apt-Quelle für das Microsoft-Produktrepository für Linux hinzufügen und AzCopy installieren:

sudo echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-trusty-prod/ trusty main" > azure.list
sudo cp ./azure.list /etc/apt/sources.list.d/
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF
sudo apt-get update
sudo apt-get install azcopy

Ubuntu 16.04

Apt-Quelle für das Microsoft-Produktrepository für Linux hinzufügen und AzCopy installieren:

echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod/ xenial main" > azure.list
sudo cp ./azure.list /etc/apt/sources.list.d/
sudo apt-key adv --keyserver packages.microsoft.com --recv-keys EB3E94ADBE1229CF
sudo apt-get update
sudo apt-get install azcopy

Schreiben Ihres ersten AzCopy-Befehls

Die grundlegende Syntax für AzCopy-Befehle ist:

azcopy --source <source> --destination <destination> [Options]

Die folgenden Beispiele zeigen eine Vielzahl von Szenarios zum Kopieren von Daten zu und aus Microsoft Azure Blobs und Dateien. Für eine detailliertere Erklärung der in jedem Beispiel verwendeten Parameter, wechseln Sie zum azcopy --help-Menü.

Blob: Herunterladen

Herunterladen eines einzelnen Blobs

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
    --destination /mnt/myfiles/abc.txt \
    --source-key <key> 

Wenn der Ordner /mnt/myfiles nicht vorhanden ist, erstellt AzCopy ihn und lädt abc.txt in den neuen Ordner herunter.

Ein einzelnes Blob aus der sekundären Region herunterladen

azcopy \
    --source https://myaccount-secondary.blob.core.windows.net/mynewcontainer/abc.txt \
    --destination /mnt/myfiles/abc.txt \
    --source-key <key>

Beachten Sie, dass der Lesezugriff im georedundanten Speicher aktiviert sein muss.

Herunterladen aller Blobs

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --recursive

Nehmen Sie an, die folgenden BLOBs befinden sich im angegebenen Container:

abc.txt
abc1.txt
abc2.txt
vd1/a.txt
vd1/abcd.txt

Nach dem Herunterladen enthält das Verzeichnis /mnt/myfiles die folgenden Dateien:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/vd1/a.txt
/mnt/myfiles/vd1/abcd.txt

Wenn Sie die Option --recursive nicht angeben, werden keine Blobs heruntergeladen.

Herunterladen von Blobs mit angegebenem Präfix

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --include "a" \
    --recursive

Nehmen Sie an, die folgenden BLOBs befinden sich im angegebenen Container. Alle Blobs, die mit dem Präfix a beginnen, werden heruntergeladen.

abc.txt
abc1.txt
abc2.txt
xyz.txt
vd1\a.txt
vd1\abcd.txt

Nach dem Herunterladen enthält der Ordner /mnt/myfiles die folgenden Dateien:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt

Das Präfix gilt für das virtuelle Verzeichnis, das den ersten Teil des Blobnamens bildet. Im obigen Beispiel stimmt das virtuelle Verzeichnis nicht mit dem angegebenen Präfix überein. Daher wird kein Blob heruntergeladen. Darüber hinaus lädt AzCopy keine Blobs herunter, wenn die Option --recursive nicht angegeben ist.

Für exportierte Dateien und Quell-Blobs dieselbe Uhrzeit der letzten Änderung festlegen

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination "/mnt/myfiles" \
    --source-key <key> \
    --preserve-last-modified-time

Sie haben auch die Möglichkeit, Blobs auf Basis der Uhrzeit ihrer letzten Änderung vom Herunterladen auszuschließen. Fügen Sie die Option --exclude-newer hinzu, falls Sie beispielsweise Blobs, deren Uhrzeit der letzten Änderung die gleiche oder eine spätere ist als die der Zieldatei, ausschließen wollen:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --preserve-last-modified-time \
    --exclude-newer

Fügen Sie die Option --exclude-older hinzu, falls Sie Blobs, deren Uhrzeit der letzten Änderung die gleiche oder eine frühere ist als die der Zieldatei, ausschließen wollen:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer \
    --destination /mnt/myfiles \
    --source-key <key> \
    --preserve-last-modified-time \
    --exclude-older

Blob: Hochladen

Hochladen einer einzelnen Datei

azcopy \
    --source /mnt/myfiles/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer/abc.txt \
    --dest-key <key>

Wenn der angegebene Zielcontainer nicht vorhanden ist, wird er von AzCopy erstellt und die Datei anschließend in den Container hochgeladen.

Hochladen einer einzelnen Datei in ein virtuelles Verzeichnis

azcopy \
    --source /mnt/myfiles/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer/vd/abc.txt \
    --dest-key <key>

Wenn das angegebene virtuelle Verzeichnis nicht vorhanden ist, lädt AzCopy die Datei hoch, um das virtuelle Verzeichnis im Blobnamen einzuschließen (zvd/abc.txt. B. im obigen Beispiel).

Umleitung von STDIN

gzip myarchive.tar -c | azcopy \
    --destination https://myaccount.blob.core.windows.net/mycontainer/mydir/myarchive.tar.gz \
    --dest-key <key>

Hochladen aller Dateien

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --recursive

Wenn Sie die Option --recursive angeben, werden die Inhalte des angegebenen Verzeichnisses rekursiv in den Blobspeicher hochgeladen. Das bedeutet, dass alle Unterordner und die darin enthaltenen Dateien ebenfalls hochgeladen werden. Nehmen Sie z. B. an, die folgenden Dateien befinden sich im Ordner /mnt/myfiles:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/subfolder/a.txt
/mnt/myfiles/subfolder/abcd.txt

Nach dem Hochladen enthält der Container die folgenden Dateien:

abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt

Wenn die Option --recursive nicht angegeben ist, werden nur die folgenden drei Dateien hochgeladen:

abc.txt
abc1.txt
abc2.txt

Hochladen von Dateien, die einem angegebenen Muster entsprechen

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --include "a*" \
    --recursive

Nehmen Sie z. B. an, die folgenden Dateien befinden sich im Ordner /mnt/myfiles:

/mnt/myfiles/abc.txt
/mnt/myfiles/abc1.txt
/mnt/myfiles/abc2.txt
/mnt/myfiles/xyz.txt
/mnt/myfiles/subfolder/a.txt
/mnt/myfiles/subfolder/abcd.txt

Nach dem Hochladen enthält der Container die folgenden Dateien:

abc.txt
abc1.txt
abc2.txt
subfolder/a.txt
subfolder/abcd.txt

Wenn die Option --recursive nicht angegeben ist, überspringt AzCopy die Dateien, die in den Unterverzeichnissen sind:

abc.txt
abc1.txt
abc2.txt

Angeben des MIME-Inhaltstyps für Ziel-Blobs

AzCopy legt den Inhaltstyp eines Zielblobs standardmäßig als application/octet-streamfest. Sie können den Inhaltstyp jedoch mit der Option --set-content-type [content-type] explizit angeben. Mit dieser Syntax wird der Inhaltstyp für alle Blobs in einem Hochladevorgang festgelegt.

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/myContainer/ \
    --dest-key <key> \
    --include "ab" \
    --set-content-type "video/mp4"

Wenn Sie für die Option --set-content-type keinen Wert angeben, legt AzCopy den Inhaltstyp jedes Blobs und jeder Datei gemäß der jeweiligen Dateierweiterung fest.

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/myContainer/ \
    --dest-key <key> \
    --include "ab" \
    --set-content-type

Anpassen der Zuordnung von MIME-Inhaltstypen

Für AzCopy wird eine Konfigurationsdatei verwendet, die eine Zuordnung der Dateierweiterung zum Inhaltstyp enthält. Sie können diese Zuordnung anpassen und bei Bedarf neue Paare hinzufügen. Die Zuordnung befindet sich unter /usr/lib/azcopy/AzCopyConfig.json

Blob: Kopieren

Kopieren eines einzelnen Blobs innerhalb eines Azure Storage-Kontos

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer2/abc.txt \
    --source-key <key> \
    --dest-key <key>

Wenn Sie einen Blob ohne die Option „--sync-copy“ kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.

Kopieren von Blobs zwischen Azure Storage-Konten

azcopy \
    --source https://sourceaccount.blob.core.windows.net/mycontainer1/abc.txt \
    --destination https://destaccount.blob.core.windows.net/mycontainer2/abc.txt \
    --source-key <key1> \
    --dest-key <key2>

Wenn Sie einen Blob ohne die Option „--sync-copy“ kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.

Kopieren eines einzelnen Blobs aus der sekundären Region in die primäre Region

azcopy \
    --source https://myaccount1-secondary.blob.core.windows.net/mynewcontainer1/abc.txt \
    --destination https://myaccount2.blob.core.windows.net/mynewcontainer2/abc.txt \
    --source-key <key1> \
    --dest-key <key2>

Beachten Sie, dass der Lesezugriff im georedundanten Speicher aktiviert sein muss.

Kopieren eines einzelnen Blobs und seiner Momentaufnahmen zwischen Storage-Konten

azcopy \
    --source https://sourceaccount.blob.core.windows.net/mycontainer1/ \
    --destination https://destaccount.blob.core.windows.net/mycontainer2/ \
    --source-key <key1> \
    --dest-key <key2> \
    --include "abc.txt" \
    --include-snapshot

Nach dem Kopiervorgang enthält der Zielcontainer den Blob und seine Momentaufnahmen. Der Container enthält den folgenden Blob und seine Momentaufnahmen:

abc.txt
abc (2013-02-25 080757).txt
abc (2014-02-21 150331).txt

Synchrones Kopieren von Blobs zwischen Storage-Konten

Standardmäßig kopiert AzCopy Daten zwischen zwei Speicherendpunkten auf asynchrone Weise. Aus diesem Grund wird der Kopiervorgang im Hintergrund ausgeführt, indem wenig Bandbreitenkapazität verwendet wird, die keine SLA im Hinblick darauf hat, wie schnell ein Blob kopiert wird.

Die Option --sync-copy gewährleistet, dass der jeweilige Kopiervorgang mit gleichmäßiger Geschwindigkeit erfolgt. Beim synchronen Kopieren lädt AzCopy die zu kopierenden Blobs aus der angegebenen Quelle in den lokalen Arbeitsspeicher herunter und dann in das Speicherziel des jeweiligen Blobs hoch.

azcopy \
    --source https://myaccount1.blob.core.windows.net/myContainer/ \
    --destination https://myaccount2.blob.core.windows.net/myContainer/ \
    --source-key <key1> \
    --dest-key <key2> \
    --include "ab" \
    --sync-copy

--sync-copy können zu zusätzlichen Ausgangskosten im Vergleich zu asynchronen Kopien führen. Zum Vermeiden von Ausgangskosten empfiehlt sich die Verwendung dieser Option auf einem Azure-VM, der sich in derselben Region wie das Quellspeicherkonto befindet.

Datei: Herunterladen

Herunterladen einer einzelnen Datei

azcopy \
    --source https://myaccount.file.core.windows.net/myfileshare/myfolder1/abc.txt \
    --destination /mnt/myfiles/abc.txt \
    --source-key <key>

Wenn die angegebene Quelle eine Azure-Dateifreigabe ist, müssen Sie entweder den genauen Dateinamen (zabc.txt. B. zum Herunterladen einer einzelnen Datei) angeben oder die Option --recursive angeben, alle Dateien in der Freigabe rekursiv herunterzuladen. Wenn Sie sowohl ein Dateimuster als auch die Option --recursive angeben, führt dies zu einem Fehler.

Herunterladen aller Dateien

azcopy \
    --source https://myaccount.file.core.windows.net/myfileshare/ \
    --destination /mnt/myfiles \
    --source-key <key> \
    --recursive

Beachten Sie, dass alle leeren Ordner nicht heruntergeladen werden.

Datei: Hochladen

Hochladen einer einzelnen Datei

azcopy \
    --source /mnt/myfiles/abc.txt \
    --destination https://myaccount.file.core.windows.net/myfileshare/abc.txt \
    --dest-key <key>

Hochladen aller Dateien

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.file.core.windows.net/myfileshare/ \
    --dest-key <key> \
    --recursive

Beachten Sie, dass alle leeren Ordner nicht hochgeladen werden.

Hochladen von Dateien, die einem angegebenen Muster entsprechen

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.file.core.windows.net/myfileshare/ \
    --dest-key <key> \
    --include "ab*" \
    --recursive

Datei: Kopieren

Kopieren zwischen Dateifreigaben

azcopy \
    --source https://myaccount1.file.core.windows.net/myfileshare1/ \
    --destination https://myaccount2.file.core.windows.net/myfileshare2/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive

Wenn Sie eine Datei zwischen Dateifreigaben kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.

Kopieren aus einer Dateifreigabe zum Blob

azcopy \ 
    --source https://myaccount1.file.core.windows.net/myfileshare/ \
    --destination https://myaccount2.blob.core.windows.net/mycontainer/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive

Wenn Sie eine Datei von einer Dateifreigabe in ein Blob kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.

Kopieren vom Blob zur Dateifreigabe

azcopy \
    --source https://myaccount1.blob.core.windows.net/mycontainer/ \
    --destination https://myaccount2.file.core.windows.net/myfileshare/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive

Wenn Sie eine Datei aus einem Blob in eine Dateifreigabe kopieren, wird ein serverseitiger Kopiervorgang ausgeführt.

Synchrones Kopieren von Dateien

Sie können die Option --sync-copy angeben, um Daten synchron aus File Storage zu File Storage, aus File Storage zu Blob Storage oder aus Blob Storage zu File Storage zu kopieren. AzCopy führt diesen Vorgang aus, indem die Quelldaten in den lokalen Speicher heruntergeladen und dann in das Ziel hochgeladen werden. In diesem Fall finden Standardausgangskosten Anwendung.

azcopy \
    --source https://myaccount1.file.core.windows.net/myfileshare1/ \
    --destination https://myaccount2.file.core.windows.net/myfileshare2/ \
    --source-key <key1> \
    --dest-key <key2> \
    --recursive \
    --sync-copy

Der Standardblobtyp beim Kopieren aus File Storage in einen Blob Storage ist Blockblob. Benutzer können die Option --blob-type page angeben, um den Zielblobtyp zu ändern. Die Typen page | block | append sind verfügbar.

Beachten Sie, dass --sync-copy zu zusätzlichen Ausgangskosten im Vergleich zu asynchronen Kopien führen kann. Zum Vermeiden von Ausgangskosten empfiehlt sich die Verwendung dieser Option auf einem Azure-VM, der sich in derselben Region wie das Quellspeicherkonto befindet.

Andere AzCopy-Funktionen

Nur Daten kopieren, die im Ziel nicht vorhanden sind.

Die Parameter --exclude-older und --exclude-newer erlauben Ihnen, jeweils ältere oder neuere Quellressourcen vom Kopieren auszuschließen. Falls Sie nur Quellressourcen kopieren wollen, die im Ziel nicht existieren, können Sie beide Parameter im AzCopy-Befehl angeben.

--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --exclude-older --exclude-newer

--source /mnt/myfiles --destination http://myaccount.file.core.windows.net/myfileshare --dest-key <destkey> --recursive --exclude-older --exclude-newer

--source http://myaccount.blob.core.windows.net/mycontainer --destination http://myaccount.blob.core.windows.net/mycontainer1 --source-key <sourcekey> --dest-key <destkey> --recursive --exclude-older --exclude-newer

Verwenden Sie eine Konfigurationsdatei, um das Befehlszeilenparameter anzugeben

azcopy --config-file "azcopy-config.ini"

Sie können beliebige AzCopy-Befehlszeilenparameter in eine Konfigurationsdatei einfügen. AzCopy verarbeitet die Parameter in der Datei ebenso wie bei der Angabe über die Befehlszeile, wobei mit den Inhalten der Datei ein direkter Austausch erfolgt.

Nehmen wir an, eine Konfigurationsdatei namens copyoperation enthält die folgenden Zeilen. Jeder AzCopy-Parameter kann in einer einzelnen Zeile angegeben werden.

--source http://myaccount.blob.core.windows.net/mycontainer --destination /mnt/myfiles --source-key <sourcekey> --recursive --quiet

oder in verschiedenen Zeilen:

--source http://myaccount.blob.core.windows.net/mycontainer
--destination /mnt/myfiles
--source-key<sourcekey>
--recursive
--quiet

Wenn Sie den Parameter auf zwei Zeilen verteilen, tritt bei der Ausführung von AzCopy ein Fehler auf, wie hier für den Parameter --source-key dargestellt:

http://myaccount.blob.core.windows.net/mycontainer
/mnt/myfiles
--sourcekey
<sourcekey>
--recursive
--quiet

Angeben einer Shared Access Signature (SAS)

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1/abc.txt \
    --destination https://myaccount.blob.core.windows.net/mycontainer2/abc.txt \
    --source-sas <SAS1> \
    --dest-sas <SAS2>

Sie können auch eine SAS in der Container-URI angeben:

azcopy \
    --source https://myaccount.blob.core.windows.net/mycontainer1/?SourceSASToken \
    --destination /mnt/myfiles \
    --recursive

Journaldateiordner

Sobald ein Befehl für AzCopy ausgeführt wird, prüft es, ob eine Journaldatei im Standardordner oder in einem Ordner vorhanden ist, den Sie über diese Option angegeben haben. Wenn die Journaldatei in keinem dieser Ordner vorhanden ist, behandelt AzCopy diesen Vorgang als neuen Vorgang und generiert somit eine neue Journaldatei.

Wenn die Journaldatei vorhanden ist, prüft AzCopy, ob die von Ihnen eingegebene Befehlszeile mit der Befehlszeile in der Journaldatei übereinstimmt. Wenn die beiden Befehlszeilen übereinstimmen, setzt AzCopy den unvollständigen Vorgang fort. Wenn sie nicht übereinstimmen, wird der Benutzer aufgefordert, entweder die Journaldatei zu überschreiben, um einen neuen Vorgang zu starten, oder den aktuellen Vorgang abzubrechen.

Falls Sie den Standardspeicherort für die Journaldatei verwenden wollen:

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --resume

Wenn Sie die Option --resume auslassen oder die Option --resume ohne den Ordnerpfad angeben (wie oben gezeigt), dann erstellt AzCopy die Journaldatei am Standardspeicherort ~\Microsoft\Azure\AzCopy. Wenn die Journaldatei bereits vorhanden ist, setzt AzCopy den Vorgang auf Basis der Journaldatei fort.

Falls Sie einen benutzerdefinierten Speicherort für die Journaldatei angeben wollen:

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key key \
    --resume "/mnt/myjournal"

In diesem Beispiel wird die Journaldatei erstellt, sofern diese nicht bereits vorhanden ist. Wenn sie vorhanden ist, setzt AzCopy den Vorgang auf Basis der Journaldatei fort.

Falls Sie einen AzCopy-Vorgang fortsetzen möchten, wiederholen Sie den gleichen Befehl. AzCopy unter Linux wird Sie dann zur Bestätigung auffordern:

Incomplete operation with same command line detected at the journal directory "/home/myaccount/Microsoft/Azure/AzCopy", do you want to resume the operation? Choose Yes to resume, choose No to overwrite the journal to start a new operation. (Yes/No)

Ausführliche Ausgabeprotokolle

azcopy \
    --source /mnt/myfiles \
    --destination https://myaccount.blob.core.windows.net/mycontainer \
    --dest-key <key> \
    --verbose

Angeben der Anzahl der zu startenden gleichzeitigen Vorgängen

Die Option --parallel-level gibt die Anzahl der gleichzeitigen Kopiervorgänge an. AzCopy startet standardmäßig eine bestimmte Anzahl gleichzeitiger Vorgänge zum Erhöhen des Datenübertragungsdurchsatzes. Die Anzahl gleichzeitiger Vorgänge entspricht der Anzahl der verfügbaren Prozessoren achtmal. Wenn Sie AzCopy in einem Netzwerk mit geringer Bandbreite ausführen, können Sie eine niedrigere Anzahl für --parallel-level angeben, um Fehler durch gleichzeitig verwendete Ressourcen zu vermeiden.

Tipp

Um die vollständige Liste der AzCopy-Parameter angezeigt zu bekommen, sehen Sie sich das Menü „azcopy --help“ an.

Installationsschritte für AzCopy 7.1 und ältere Versionen

AzCopy unter Linux (nur v7.1 und ältere Versionen) erfordert das .NET Core-Framework. Installationsanweisungen finden Sie auf der Seite zur .NET Core-Installation.

Beginnen Sie beispielsweise mit der Installation von .NET Core unter Ubuntu 16.10. Das neueste Installationshandbuch finden Sie auf der .NET Core unter Linux-Installationsseite.

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety main" > /etc/apt/sources.list.d/dotnetdev.list' 
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893
sudo apt-get update
sudo apt-get install dotnet-sdk-2.0.0

Nach der Installation von .NET Core laden Sie AzCopy herunter und installieren es.

wget -O azcopy.tar.gz https://aka.ms/downloadazcopyprlinux
tar -xf azcopy.tar.gz
sudo ./install.sh

Sie können die extrahierten Dateien entfernt, nachdem AzCopy unter Linux installiert ist. Wenn Sie nicht über Administratorrechte verfügen, können Sie azcopy auch mit dem Shellskript „azcopy“ im extrahierten Ordner ausführen.

Bekannte Probleme und bewährte Methoden

Fehler bei der Installation von AzCopy

Treten Probleme bei der Installation von AzCopy auf, können Sie versuchen AzCopy mithilfe des Bash-Skripts im extrahierten azcopy-Ordner auszuführen.

cd azcopy
./azcopy

Einschränken gleichzeitiger Schreibvorgänge beim Kopieren von Daten

Wenn Sie BLOBs oder Dateien mit AzCopy kopieren, denken Sie daran, dass eine andere Anwendung die Daten möglicherweise modifiziert, während Sie diese kopieren. Stellen Sie nach Möglichkeit sicher, dass die von Ihnen kopierten Daten während des Kopiervorgangs nicht verändert werden. Wenn Sie z. B. eine virtuelle Festplatte (Virtual Hard Disk, VHD) mit einem virtuellen Azure-Computer kopieren, stellen Sie sicher, dass derzeit keine anderen Anwendungen auf diese virtuelle Festplatte schreiben. Eine gute Möglichkeit hierfür bietet das Leasen der Ressource, die kopiert werden soll. Alternativ können Sie zunächst eine Momentaufnahme der virtuellen Festplatte (VHD) erstellen und anschließend die Momentaufnahme kopieren.

Wenn Sie andere Anwendungen nicht daran hindern können, während des Kopiervorgangs in BLOBs oder Dateien zu schreiben, beachten Sie, dass die kopierten Ressourcen bei der Beendigung des Auftrags möglicherweise nicht mehr vollständig mit den Quellressourcen übereinstimmen.

Ausführen mehrerer AzCopy-Prozesse

Sie können mehrere AzCopy-Prozesse auf einem einzelnen Client ausführen. Dazu müssen jedoch verschiedene Journalordner verwendet werden. Die Verwendung eines einzelnen Journalordners für mehrere AzCopy-Prozesse wird nicht unterstützt.

1. Prozess:

azcopy \
    --source /mnt/myfiles1 \
    --destination https://myaccount.blob.core.windows.net/mycontainer/myfiles1 \
    --dest-key <key> \
    --resume "/mnt/myazcopyjournal1"

2. Prozess:

azcopy \
    --source /mnt/myfiles2 \
    --destination https://myaccount.blob.core.windows.net/mycontainer/myfiles2 \
    --dest-key <key> \
    --resume "/mnt/myazcopyjournal2"

Nächste Schritte

Weitere Informationen zu Azure Storage und zu AzCopy finden Sie in den folgenden Ressourcen:

Azure Storage-Dokumentation:

Azure Storage-Blogbeiträge: