Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 biedt ondersteuning voor 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 betere doorvoer te bereiken dan het downloaden en uploaden van bestanden. Er worden geen bandbreedtekosten in rekening gebracht 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 wordt 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 wilt beperken via de opslagfirewall, 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 privé-IP-adressen gebruikt 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 de firewall in de bron- en doelopslagaccounts.
In de volgende afbeelding ziet u het proces voor 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 voor de firewall niet nodig.
In de volgende afbeelding ziet u het proces voor 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, krijgt deze de foutmelding '403 Verboden'.
- Nadat de doelopslag de fout '403 Verboden' heeft ontvangen, wordt een andere GetBlob-aanvraag namens de client verzonden. Als de client toegang heeft tot de bronopslag, kan de doel 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 nadat er een geslaagde antwoordcode van de aanvraag is ontvangen.
Blobs kopiëren tussen opslagaccounts in een hub-spoke-architectuur met behulp van privé-eindpunten
Er treedt een 403-fout op wanneer u AzCopy gebruikt om blobs te kopiëren tussen opslagaccounts die zijn verbonden met privé-eindpunten in verschillende spoke-VNets vanaf een VIRTUELE machine 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 VIRTUELE machine de blobs tussen de opslagaccounts kopiëren met behulp van AzCopy. In het volgende architectuurdiagram ziet u het proces van het kopiëren van blobs tussen opslagaccounts in de tijdelijke oplossing 1.
Tijdelijke oplossing 2: plaats de VIRTUELE machine in hetzelfde VNet als het bronopslagaccount en koppel het VNet aan het doel-VNet
Een andere optie is om de virtuele machine binnen hetzelfde VNet te plaatsen als het bronopslagaccount. Stel vervolgens peering in 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 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 VIRTUELE machine 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 virtuele machine 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 VIRTUELE machine 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 Azure-feedbackcommunity.