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.
Om du kopierar blobar mellan två lagringskonton med hjälp av AzCopy förlitar du dig 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 dina AzCopy-kommandon.
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:
Scenario 2: Klientens virtuella nätverk har konfigurerat privata länkar och använder en privat slutpunkt för att komma åt lagringskonton
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:
Här är den fullständiga processen för den här mekanismen för de två scenarierna:
- Klienten skickar en PutBlockfromURL-begäran till mållagringen.
- 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".
- 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.
- 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 Den här begäran har inte behörighet att utföra den här åtgärden – CannotVerfiyCopySource" i AzCopy-loggarna eller i Azure Storage-loggarna. Följande arkitekturdiagram visar scenariot där felet inträffar.
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.
Lösning 2: Placera den virtuella datorn i samma virtuella nätverk som källlagringskontot och peer-koppla det virtuella nätverket till 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.
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 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:
- Skapa ett tillfälligt lagringskonto i samma region som källlagringskontot och mållagringskontot.
- Använd AzCopy för att kopiera data från källlagringskontot till det tillfälliga lagringskontot.
- 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 endast 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.