AzCopy gebruiken om blobs te kopiëren tussen Azure-opslagaccounts met netwerkbeperkingen
In dit artikel wordt uitgelegd hoe u blobs kopieert tussen opslagaccounts met behulp van het opdrachtregelprogramma AzCopy. Ook wordt uitgelegd hoe u de kopieerbewerking implementeert wanneer netwerkbeperkingen zijn geconfigureerd voor de opslagaccounts.
Achtergrond
Het kopiëren van blobbestanden tussen twee opslagaccounts is een algemene vereiste voor veel Azure-gebruikers. Azure Storage ondersteunt het rechtstreeks kopiëren van blobs van het ene opslagaccount naar het andere, dat kan worden geïmplementeerd met behulp van het opdrachtregelprogramma AzCopy. Gebruikers hoeven geen bestanden te downloaden naar lokale schijven of buffers en ze vervolgens opnieuw te uploaden.
Het kopiëren van blobs tussen twee opslagaccounts met behulp van AzCopy is niet afhankelijk van de netwerkbandbreedte van uw lokale computer. Deze methode kan profiteren van de prestaties van opslagaccounts en Azure Virtual Network om een betere doorvoer te bereiken dan het downloaden en uploaden van bestanden. Er zijn geen bandbreedtekosten als beide opslagaccounts zich in dezelfde regio bevinden.
AzCopy-opdrachten voor het kopiëren van blobs tussen opslagaccounts
Als u autorisatiereferenties opgeeft met behulp van Microsoft Entra ID, gebruikt u de volgende opdracht:
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>'
In dit scenario moet u ervoor zorgen dat uw Microsoft Entra identiteit de juiste roltoewijzingen heeft voor zowel bron- als doelaccounts.
Als u een SAS-token (Shared Access Signature) gebruikt, gebruikt u de volgende opdracht:
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>'
In dit scenario moet u een SAS-token toevoegen aan zowel de bron- als doel-URL die worden gebruikt in uw AzCopy-opdrachten.
Zie Blobs kopiëren tussen Azure-opslagaccounts met AzCopy v10 voor meer informatie.
Blobs kopiëren tussen opslagaccounts met toegangsbeperking
Als u de toegang tot zowel bron- als doelopslagaccounts via de opslagfirewall wilt beperken, hebt u mogelijk meer configuraties nodig voor het kopiëren van blobs tussen opslagaccounts met behulp van AzCopy. Dit komt doordat de kopieeraanvraag tussen twee opslagaccounts gebruikmaakt van privé-IP-adressen en de IP-adressen dynamisch zijn.
Hier volgen twee ondersteunde scenario's:
Scenario 1: De client gebruikt een openbaar eindpunt voor toegang tot opslagaccounts
In dit scenario moet u het openbare IP-adres of het virtuele netwerk (VNet) van de client toevoegen aan de acceptatielijst voor firewalls in de bron- en doelopslagaccounts.
In de volgende afbeelding ziet u het proces van het kopiëren van blobs tussen opslagaccounts in dit scenario:
Scenario 2: Het VNet van de client heeft privékoppelingen geconfigureerd en gebruikt een privé-eindpunt voor toegang tot opslagaccounts
In dit scenario is de acceptatielijst van de firewall niet nodig.
In de volgende afbeelding ziet u het proces van het kopiëren van blobs tussen opslagaccounts in dit scenario:
Dit is het volledige proces van dit mechanisme voor de twee scenario's:
- De client verzendt een PutBlockfromURL-aanvraag naar de doelopslag.
- De doelopslag ontvangt de aanvragen en probeert blokken op te halen uit de opgegeven bron-URL. Omdat de doelopslag echter niet is toegestaan door de bronfirewall, wordt de fout '403 Verboden' weergegeven.
- Nadat de doelopslag de fout '403 Verboden' heeft ontvangen, verzendt deze een andere GetBlob-aanvraag namens de client. Als de client toegang heeft tot de bronopslag, kan de bestemming de blokken van de bron ophalen en een geslaagde antwoordcode naar de client retourneren.
- De client verzendt PutBlockList naar de doelopslag om de blokken door te voeren en het proces te voltooien na ontvangst van een geslaagde antwoordcode van de aanvraag.
Blobs kopiëren tussen opslagaccounts in een Hub-spoke-architectuur met behulp van privé-eindpunten
Een 403-fout treedt op wanneer u AzCopy gebruikt om blobs te kopiëren tussen opslagaccounts die zijn verbonden met privé-eindpunten in verschillende Spoke-VNets van een VM in een Hub-VNet. U vindt de fout '403 Deze aanvraag is niet gemachtigd om deze bewerking uit te voeren - CannotVerfiyCopySource' in de AzCopy-logboeken of in de Azure Storage-logboeken. In het volgende architectuurdiagram ziet u het scenario waarin de fout optreedt.
Tijdelijke oplossing 1: maak een privé-eindpunt voor het doelopslagaccount in het bron-VNet
Een mogelijke tijdelijke oplossing is het maken van een privé-eindpunt voor het doelopslagaccount in het bron-VNet. Met deze configuratie kan de VM de blobs kopiëren tussen de opslagaccounts met behulp van AzCopy. In het volgende architectuurdiagram ziet u het proces van het kopiëren van blobs tussen opslagaccounts in tijdelijke oplossing 1.
Tijdelijke oplossing 2: plaats de VM in hetzelfde VNet als het bronopslagaccount en koppel het VNet met het doel-VNet
Een andere optie is om de VM binnen hetzelfde VNet te plaatsen als het bronopslagaccount. Stel vervolgens peering tot stand tussen dit VNet en het doel-VNet. In het volgende architectuurdiagram ziet u het proces van het kopiëren van blobs tussen opslagaccounts in Tijdelijke oplossing 2.
Tijdelijke oplossing 3: Een tijdelijk faseringsaccount gebruiken om de gegevens te kopiëren
Als u de eerder genoemde tijdelijke oplossingen niet kunt implementeren of als u de bestaande netwerkconfiguratie van het opslagaccount of VNet niet kunt wijzigen, kunt u een tijdelijk faseringsaccount gebruiken om de gegevens te kopiëren:
- Maak een tijdelijk opslagaccount in dezelfde regio als het bronopslagaccount en het doelopslagaccount.
- Gebruik AzCopy om de gegevens van het bronopslagaccount naar het tijdelijke opslagaccount te kopiëren.
- Kopieer de gegevens van het tijdelijke opslagaccount naar het doelopslagaccount. Zorg ervoor dat het tijdelijke opslagaccount een privé-eindpunt heeft in hetzelfde VNet als het doelopslagaccount voordat u de gegevensoverdracht uitvoert.
Tijdelijke oplossing 4: Gebruik een VM en download de gegevens naar de VM en upload de gegevens vervolgens naar het doelopslagaccount
Gebruik deze tijdelijke oplossing alleen als andere methoden niet haalbaar zijn. Gebruik een VM om de gegevens te downloaden uit het bronopslagaccount en upload deze vervolgens naar het doelopslagaccount. Dit kan worden gedaan met AzCopy. Zorg ervoor dat de grootte en schijfcapaciteit van de VM geschikt zijn voor het gegevensoverdrachtproces.
Contacteer ons voor hulp
Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Feedback-community van Azure.