Använda AzCopy för att kopiera blobar mellan Azure Storage-konton med nätverksbegränsningar

Den här artikeln beskriver hur du kopierar blobar mellan lagringskonton med hjälp av kommandoradsverktyget AzCopy. Den förklarar också hur du implementerar kopieringsåtgärden när nätverksbegränsningar konfigureras för lagringskontona.

Bakgrund

Att kopiera blobfiler mellan två lagringskonton är ett vanligt krav för många Azure-användare. Azure Storage stöder direktkopiering av blobar från ett lagringskonto till ett annat, vilket kan implementeras med hjälp av kommandoradsverktyget AzCopy. Användarna behöver inte ladda ned filer till lokala diskar eller buffertar och sedan ladda upp dem igen.

Kopiering av blobar mellan två lagringskonton med hjälp av AzCopy förlitar sig inte på nätverksbandbredden på den lokala datorn. Den här metoden kan dra nytta av prestanda för lagringskonton och Azure-Virtual Network för att uppnå bättre dataflöde än att ladda ned och ladda upp filer. Det finns inga bandbreddsavgifter om båda lagringskontona finns i samma region.

AzCopy-kommandon för att kopiera blobar mellan lagringskonton

  • Om du anger autentiseringsuppgifter för auktorisering med hjälp av Microsoft Entra ID använder du följande kommando:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path>'
    

    I det här scenariot måste du se till att din Microsoft Entra identitet har rätt rolltilldelningar för både käll- och målkonton.

  • Om du använder en SAS-token (signatur för delad åtkomst) använder du följande kommando:

    azcopy copy 'https://<source-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>' 'https://<destination-storage-account-name>.blob.core.windows.net/<container-name>/<blob-path><SAS-token>'
    

    I det här scenariot måste du lägga till en SAS-token till både käll- och mål-URL:en som används i AzCopy-kommandona.

Mer information finns i Kopiera blobar mellan Azure Storage-konton med AzCopy v10.

Kopiera blobar mellan lagringskonton med åtkomstbegränsning

Om du behöver begränsa åtkomsten till både käll- och mållagringskonton via lagringsbrandväggen kan du behöva fler konfigurationer för att kopiera blobar mellan lagringskonton med hjälp av AzCopy. Det beror på att kopieringsbegäran mellan två lagringskonton använder privata IP-adresser och ATT IP-adresserna är dynamiska.

Här är två scenarier som stöds:

Scenario 1: Klienten använder en offentlig slutpunkt för att komma åt lagringskonton

I det här scenariot måste du lägga till klientens offentliga IP-adress eller virtuella nätverk (VNet) i listan över tillåtna brandväggar i käll- och mållagringskontona.

Följande bild visar processen för att kopiera blobar mellan lagringskonton i det här scenariot:

Diagram som visar processen för att hantera blobar mellan lagringskonton i scenario 1.

I det här scenariot behövs inte listan över tillåtna brandväggar.

Följande bild visar processen för att kopiera blobar mellan lagringskonton i det här scenariot:

Diagram som visar processen för att hantera blobar mellan lagringskonton i scenario 2.

Här är den fullständiga processen för den här mekanismen för de två scenarierna:

  1. Klienten skickar en PutBlockfromURL-begäran till mållagringen.
  2. Mållagringen tar emot begäranden och försöker hämta block från den angivna käll-URL:en. Men eftersom mållagringen inte har tillåtits av källbrandväggen får den felet "403 Förbjuden".
  3. När mållagringen har fått felet "403 Förbjuden" skickar den en annan GetBlob-begäran för klientens räkning. Om klienten har åtkomst till källlagringen kan målet hämta blocken från källan och returnera en lyckad svarskod till klienten.
  4. Klienten skickar PutBlockList till mållagringen för att checka in blocken och slutföra processen efter att ha fått en lyckad svarskod från begäran.

Kopiera blobar mellan lagringskonton i en hub-spoke-arkitektur med hjälp av privata slutpunkter

Ett 403-fel uppstår när azcopy används för att kopiera blobar mellan lagringskonton som är anslutna till privata slutpunkter i olika virtuella ekernätverk från en virtuell dator i ett virtuellt hubbnätverk. Du hittar felet "403 This request is not authorized to perform this operation – CannotVerfiyCopySource" i AzCopy-loggarna eller i Azure Storage-loggarna. Följande arkitekturdiagram visar scenariot där felet inträffar.

Diagram som visar 403-felet med att kopiera blobar mellan lagringskonton i en Hub & Spoke-arkitektur med hjälp av privata slutpunkter.

Lösning 1: Skapa en privat slutpunkt för mållagringskontot i det virtuella källnätverket

En möjlig lösning är att skapa en privat slutpunkt för mållagringskontot i det virtuella källnätverket. Med den här konfigurationen kan den virtuella datorn kopiera blobarna mellan lagringskontona med hjälp av AzCopy. Följande arkitekturdiagram visar processen för att kopiera blobar mellan lagringskonton i lösning 1.

Diagram som visar processen för att kopiera blobar mellan lagringskonton i Lösning 1.

Lösning 2: Placera den virtuella datorn i samma virtuella nätverk som källlagringskontot och peerkoppla det virtuella nätverket med det virtuella målnätverket

Ett annat alternativ är att placera den virtuella datorn i samma virtuella nätverk som källlagringskontot. Upprätta sedan peering mellan det här virtuella nätverket och det virtuella målnätverket. Följande arkitekturdiagram visar processen för att kopiera blobar mellan lagringskonton i Lösning 2.

Diagram som visar processen för att kopiera blobar mellan lagringskonton i Lösning 2.

Lösning 3: Använd ett tillfälligt mellanlagringskonto för att kopiera data

Om du inte kan implementera de tidigare nämnda lösningarna eller om du inte kan ändra den befintliga nätverkskonfigurationen för lagringskontot eller det virtuella nätverket kan du använda ett tillfälligt mellanlagringskonto för att kopiera data:

  1. Skapa ett tillfälligt lagringskonto i samma region som källlagringskontot och mållagringskontot.
  2. Använd AzCopy för att kopiera data från källlagringskontot till det tillfälliga lagringskontot.
  3. Kopiera data från det tillfälliga lagringskontot till mållagringskontot. Kontrollera att det tillfälliga lagringskontot har en privat slutpunkt i samma virtuella nätverk som mållagringskontot innan du utför dataöverföringen.

Lösning 4: Använd en virtuell dator och ladda ned data till den virtuella datorn och ladda sedan upp data till mållagringskontot

Använd bara den här lösningen om andra metoder inte är möjliga. Använd en virtuell dator för att ladda ned data från källlagringskontot och ladda sedan upp dem till mållagringskontot. Detta kan göras med AzCopy. Kontrollera att den virtuella datorns storlek och diskkapacitet är lämpliga för dataöverföringsprocessen.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.