RoboCopy gebruiken om te migreren naar Azure-bestandsshares
In dit migratieartikel wordt het gebruik van RoboCopy beschreven voor het verplaatsen of migreren van bestanden naar een SMB Azure-bestandsshare. RoboCopy is een vertrouwd en bekend hulpprogramma voor het kopiëren van bestanden met een functieset die het geschikt maakt voor migraties. Het maakt gebruik van het SMB-protocol, waardoor het algemeen van toepassing is op elke bron- en doelcombinatie die SMB ondersteunt.
- Gegevensbronnen: elke bron die het SMB-protocol ondersteunt, zoals NAS (Network Attached Storage), Windows- of Linux-servers, een andere Azure-bestandsshare en nog veel meer
- Migratieroute: Van bronopslag ⇒ Windows-machine met RoboCopy ⇒ Azure-bestandsshare
- Geen cachebestanden on-premises: Omdat het uiteindelijke doel is om de Azure-bestandsshares rechtstreeks in de cloud te gebruiken, is er geen plan om Azure File Sync te gebruiken.
Er zijn veel verschillende migratieroutes voor verschillende bron- en implementatiecombinaties. Zie de tabel met migratiehandleidingen om de migratie te vinden die het beste bij uw behoeften past.
Van toepassing op
Bestands sharetype | SMB | NFS |
---|---|---|
Standaardbestandsshares (GPv2), LRS/ZRS | ||
Standaardbestandsshares (GPv2), GRS/GZRS | ||
Premium bestandsshares (FileStorage), LRS/ZRS |
AzCopy versus RoboCopy
AzCopy en RoboCopy zijn twee fundamenteel verschillende hulpprogramma's voor het kopiëren van bestanden. RoboCopy maakt gebruik van elke versie van het SMB-protocol. AzCopy is een 'born-in-the-cloud'-hulpprogramma dat kan worden gebruikt om gegevens te verplaatsen zolang het doel zich in Azure Storage bevindt. AzCopy is afhankelijk van een REST-protocol.
RoboCopy, als vertrouwde, op Windows gebaseerde kopieertool, heeft het voordeel van thuisgebruik als het gaat om het kopiëren van bestanden op volledige kwaliteit. RoboCopy ondersteunt veel migratiescenario's vanwege de uitgebreide set functies en de mogelijkheid om bestanden en mappen in volledige kwaliteit te kopiëren. Bekijk de sectie file fidelity in het migratieoverzichtsartikel voor meer informatie over het belang van het kopiëren van bestanden op maximale kwaliteit.
AzCopy is daarentegen pas onlangs uitgebreid ter ondersteuning van bestandskopie met enige betrouwbaarheid en heeft de eerste functies toegevoegd die als migratiehulpprogramma moeten worden beschouwd. Er zijn echter nog steeds hiaten en er kunnen eenvoudig misverstanden over functionaliteit zijn bij het vergelijken van AzCopy-vlaggen met RoboCopy-vlaggen.
Een voorbeeld: RoboCopy /MIR spiegelt de bron naar het doel. Dit betekent dat er bestanden worden toegevoegd, gewijzigd en verwijderd. Een belangrijk verschil in het gebruik van AzCopy -sync is dat verwijderde bestanden op de bron niet op het doel worden verwijderd. Dit zorgt voor een onvolledige functieset voor differentiële kopie. AzCopy blijft zich ontwikkelen. Op dit moment raden we het gebruik van AzCopy niet aan voor migratiescenario's met Azure-bestandsshares als doel.
Migratiedoelen
Het doel is om de gegevens van bestaande bestandssharelocaties naar Azure te verplaatsen. In Azure slaat u uw gegevens op in systeemeigen Azure-bestandsshares die u kunt gebruiken zonder dat u een Windows Server nodig hebt. Deze migratie moet worden uitgevoerd op een manier die de integriteit van de productiegegevens en beschikbaarheid tijdens de migratie garandeert. Dit laatste vereist dat downtime tot een minimum wordt beperkt, zodat deze in de normale onderhoudsvensters past of slechts iets groter is dan de normale onderhoudsvensters.
Migratieoverzicht
Het migratieproces bestaat uit verschillende fasen. Eerst moet u Azure-opslagaccounts en bestandsshares implementeren. Vervolgens gaat u netwerken configureren, een DFS-naamruimteimplementatie (DFS-N) overwegen of uw bestaande naamruimte bijwerken. Zodra het tijd is voor het kopiëren van gegevens, moet u overwegen om herhaalde, differentiële RoboCopy-uitvoeringen te overwegen om downtime te minimaliseren en ten slotte uw gebruikers te knippen naar de zojuist gemaakte Azure-bestandsshares. In de volgende secties worden de fasen van het migratieproces gedetailleerd beschreven.
Fase 1: Azure-opslagbronnen implementeren
In deze fase richt u de Azure-opslagaccounts en de SMB Azure-bestandsshares hierin in.
Houd er rekening mee dat een Azure-bestandsshare wordt geïmplementeerd in de cloud in een Azure-opslagaccount. Voor standaardbestandsshares is deze rangschikking het opslagaccount een schaaldoel voor prestatienummers zoals IOPS en doorvoer. Als u meerdere bestandsshares in één opslagaccount plaatst, maakt u een gedeelde groep IOPS en doorvoer voor deze shares.
In de algemene regel kunt u meerdere Azure-bestandsshares in hetzelfde opslagaccount groeperen als u archiveringsshares hebt of als u een lage dagelijkse activiteit verwacht. Als u echter zeer actieve shares hebt (shares die door veel gebruikers en/of toepassingen worden gebruikt), wilt u opslagaccounts met één bestandsshare implementeren. Deze beperkingen zijn niet van toepassing op FileStorage-opslagaccounts (Premium), waarbij de prestaties expliciet worden ingericht en gegarandeerd voor elke share.
Notitie
Er geldt een limiet van 250 opslagaccounts per abonnement per Azure-regio. Met een quotumverhoging kunt u maximaal 500 opslagaccounts per regio maken. Zie Quota voor Azure Storage-accounts verhogen voor meer informatie.
Een andere overweging bij het implementeren van een opslagaccount is redundantie. Zie Azure Files-redundantie.
Als u een lijst met uw shares hebt gemaakt, moet u elke share toewijzen aan het opslagaccount waarin deze wordt gemaakt.
De namen van uw resources zijn ook belangrijk. Als u bijvoorbeeld meerdere shares voor de HR-afdeling groeperen in een Azure-opslagaccount, moet u het opslagaccount de juiste naam opgeven. Op dezelfde manier moet u, wanneer u uw Azure-bestandsshares een naam krijgt, namen gebruiken die vergelijkbaar zijn met de namen die zijn gebruikt voor hun on-premises tegenhangers.
Implementeer nu het juiste aantal Azure-opslagaccounts met het juiste aantal Azure-bestandsshares. Volg hiervoor de instructies in Een SMB-bestandsshare maken. In de meeste gevallen wilt u ervoor zorgen dat de regio van elk van uw opslagaccounts hetzelfde is.
Fase 2: Het gebruik van Azure-bestandsshares voorbereiden
Met de informatie in deze fase kunt u bepalen hoe uw servers en gebruikers in Azure en buiten Azure worden ingeschakeld om uw Azure-bestandsshares te gebruiken. De meest kritieke beslissingen zijn:
- Netwerken: ervoor zorgen dat uw netwerken SMB-verkeer routeren.
- Verificatie: Azure-opslagaccounts configureren voor Kerberos-verificatie. Door verificatie op basis van identiteiten en domeindeelname van uw opslagaccount te gebruiken, kunnen uw apps en gebruikers hun AD-identiteit gebruiken voor verificatie.
- Autorisatie: ACL's op shareniveau voor elke Azure-bestandsshare bieden AD-gebruikers en -groepen toegang tot een bepaalde share. Binnen een Azure-bestandsshare worden systeemeigen NTFS-ACL's overgenomen. Autorisatie op basis van bestands- en map-ACL's werkt dan net als voor on-premises SMB-shares.
- Bedrijfscontinuïteit: het integreren van Azure-bestandsshares in een bestaande omgeving houdt vaak het behoud van bestaande shareadressen in. Als u nog geen DFS-naamruimten gebruikt, kunt u overwegen dat in uw omgeving tot stand te brengen. U kunt shareadressen behouden die uw gebruikers en scripts gebruiken, ongewijzigd. DFS-N biedt een routeringsservice voor naamruimten voor SMB door clients om te leiden naar Azure-bestandsshares.
Deze video is een handleiding en demo voor het veilig beschikbaar maken van Azure-bestandsshares rechtstreeks aan informatiewerkers en apps in vijf eenvoudige stappen.
De video verwijst naar specifieke documentatie voor de volgende onderwerpen. Houd er rekening mee dat Azure Active Directory nu Microsoft Entra ID is. Meer informatie leest u in Nieuwe naam voor Azure AD.
Een Azure-bestandsshare koppelen
Voordat u RoboCopy kunt gebruiken, moet u de Azure-bestandsshare toegankelijk maken via SMB. De eenvoudigste manier is om de share te koppelen als een lokaal netwerkstation aan de Windows Server waarop u van plan bent om RoboCopy te gebruiken.
Belangrijk
Zorg ervoor dat u de Azure-bestandsshare koppelt met behulp van de toegangssleutel voor het opslagaccount. Gebruik geen domeinidentiteit. Voordat u een Azure-bestandsshare kunt koppelen aan een lokale Windows Server, moet u fase 2 hebben voltooid : Het gebruik van Azure-bestandsshares voorbereiden.
Als u klaar bent, raadpleegt u Een Azure-bestandsshare gebruiken met Windows. Koppel vervolgens de Azure-bestandsshare waarvoor u RoboCopy wilt starten.
Fase 3: RoboCopy
Met de volgende RoboCopy-opdracht worden alleen de verschillen (bijgewerkte bestanden en mappen) van uw bronopslag naar uw Azure-bestandsshare gekopieerd.
robocopy <SourcePath> <Dest.Path> /MT:20 /R:2 /W:1 /B /MIR /IT /COPY:DATSO /DCOPY:DAT /NP /NFL /NDL /XD "System Volume Information" /UNILOG:<FilePathAndName>
Switch | Betekenis |
---|---|
/MT:n |
Met Robocopy kunnen meerdere threads worden uitgevoerd. De standaardwaarde n is 8. Het maximum is 128 threads. Hoewel een hoog aantal threads helpt de beschikbare bandbreedte te verzadigen, betekent dit niet dat uw migratie altijd sneller is met meer threads. Tests met Azure Files geven aan dat tussen 8 en 20 evenwichtige prestaties worden weergegeven voor een eerste kopieerbewerking. Volgende /MIR uitvoeringen worden geleidelijk beïnvloed door de beschikbare rekenkracht versus de beschikbare netwerkbandbreedte. Voor volgende uitvoeringen moet u de waarde van het aantal threads nauwkeuriger overeen laten komen met het aantal processorkernen en het aantal threads per kern. Overweeg of kernen moeten worden gereserveerd voor andere taken die een productieserver mogelijk heeft. Tests met Azure Files hebben aangetoond dat maximaal 64 threads een goede prestaties opleveren, maar alleen als uw processors ze tegelijkertijd in leven kunnen houden. |
/R:n |
Het Maximum aantal nieuwe pogingen voor een bestand dat niet kan worden gekopieerd bij de eerste poging. Robocopy probeert n tijden voordat het bestand permanent niet kan worden gekopieerd in de uitvoering. U kunt de prestaties van uw uitvoering optimaliseren: kies een waarde van twee of drie als u denkt dat time-outproblemen in het verleden fouten hebben veroorzaakt. Dit kan vaker voorkomen via WAN-koppelingen. Kies geen nieuwe poging of een waarde als u denkt dat het bestand niet kan worden gekopieerd omdat het actief in gebruik was. Als u het een paar seconden later opnieuw probeert, is het mogelijk niet voldoende om de status in gebruik van het bestand te wijzigen. Gebruikers of apps die het bestand openen houden, hebben mogelijk uren meer tijd nodig. In dit geval is het accepteren van het bestand niet gekopieerd en in een van uw geplande, volgende Robocopy-uitvoeringen, mogelijk geslaagd om het bestand uiteindelijk te kopiëren. Dit helpt de huidige uitvoering sneller te voltooien zonder te worden verlengd door veel nieuwe pogingen die uiteindelijk in een meerderheid van de kopieerfouten terechtkomen omdat bestanden nog steeds zijn geopend na de time-out voor opnieuw proberen. |
/W:n |
Specificeert de tijd dat Robocopy wacht voordat wordt geprobeerd een bestand te kopiëren dat niet is gekopieerd tijdens een vorige poging. n is het aantal seconden dat moet worden gewacht tussen nieuwe pogingen. /W:n wordt vaak samen met /R:n . |
/B |
Voert Robocopy uit in dezelfde modus die een back-uptoepassing zou gebruiken. Met deze switch kan Robocopy bestanden verplaatsen waarvoor de huidige gebruiker geen machtigingen heeft. De back-upswitch is afhankelijk van het uitvoeren van de Robocopy-opdracht in een console met verhoogde beheerdersrechten of PowerShell-venster. Als u Robocopy voor Azure Files gebruikt, moet u ervoor zorgen dat u de Azure-bestandsshare koppelt met behulp van de toegangssleutel voor het opslagaccount versus een domeinidentiteit. Als u dat niet doet, leiden de foutberichten mogelijk niet intuïtief tot een oplossing van het probleem. |
/MIR |
(Sspiegelen van bron naar doel.) Hiermee kan Robocopy alleen delta's kopiëren tussen bron en doel. Lege submappen worden gekopieerd. Items (bestanden of mappen) die zijn gewijzigd of die niet bestaan in het doel, worden gekopieerd. Items die aanwezig zijn in het doel, maar niet in de bron, worden opgeschoond (verwijderd) uit het doel. Wanneer u deze switch gebruikt, moeten de bron- en doelmapstructuren exact overeenkomen. Vergelijking betekent dat u kopieert van het juiste bron- en mapniveau naar het overeenkomende mapniveau op het doel. Alleen dan kan een 'inhaalkopie' succesvol zijn. Wanneer de bron en het doel niet overeenkomen, leidt het gebruik /MIR tot grootschalige verwijderingen en nieuwe bereiken. |
/IT |
Zorgt dat de betrouwbaarheid behouden blijft in bepaalde spiegelscenario's. Als een bestand bijvoorbeeld een wijziging in een ACL en een kenmerkupdate tussen twee Robocopy-uitvoeringen ondervindt, wordt het gemarkeerd als verborgen. Zonder /IT kan de ACL-wijziging worden gemist door Robocopy en niet worden overgedragen naar de doellocatie. |
/COPY:[copyflags] |
De fidelity van de kopie van het bestand. Standaard: /COPY:DAT . Copy flags: D = Data, A = Attributes, T = Timestamps, S = Security = NTFS ACL's, O = Owner information, U = Auditing information. Controlegegevens kunnen niet worden opgeslagen in een Azure-bestandsshare. |
/DCOPY:[copyflags] |
Fidelity voor de kopie van mappen. Standaard: /DCOPY:DA . Copy flags: D = Data, A = Attributes, T = Timestamps. |
/NP |
Geeft aan dat de voortgang van de kopie voor elk bestand en elke map niet wordt weergegeven. Als de voortgang wordt weergegeven, zullen de prestaties aanzienlijk verminderen. |
/NFL |
Hiermee geeft u op dat bestandsnamen niet aan het logboek moeten worden toegevoegd. Verbetert de kopieerprestaties. |
/NDL |
Hiermee geeft u op dat mapnamen niet aan het logboek moeten worden toegevoegd. Verbetert de kopieerprestaties. |
/XD |
Hiermee geeft u mappen die moeten worden uitgesloten. Wanneer Robocopy wordt uitgevoerd op de hoofdmap van een volume, kunt u overwegen om de verborgen System Volume Information map uit te sluiten. Indien gebruikt zoals ontworpen, is alle informatie in die informatie specifiek voor het exacte volume op dit exacte systeem en kan worden herbouwd op aanvraag. Het kopiëren van deze informatie is niet handig in de cloud of wanneer de gegevens ooit worden gekopieerd naar een ander Windows-volume. Als u deze inhoud achterlaat, mag niet worden beschouwd als gegevensverlies. |
/UNILOG:<file name> |
Hiermee wordt de status naar het logboekbestand geschreven als Unicode. (Hiermee wordt het bestaande logboek overschreven.) |
/L |
Alleen voor een testuitvoeringsbestanden worden alleen weergegeven. Ze worden niet gekopieerd, niet verwijderd en krijgen geen tijdstempel. Vaak gebruikt met /TEE voor console-uitvoer. Vlaggen uit het voorbeeldscript, zoals /NP , /NFL en /NDL , moeten mogelijk worden verwijderd om u goed gedocumenteerde testresultaten te bereiken. |
/Z |
Gebruik voorzichtig Bestanden kopiëren in de modus voor opnieuw opstarten. Deze switch wordt alleen aanbevolen in een instabiele netwerkomgeving. Het vermindert de kopieerprestaties aanzienlijk vanwege extra logboekregistratie. |
/ZB |
Gebruik voorzichtig de modus Opnieuw opstarten. Deze optie gebruikt de back-upmodus als de toegang is geweigerd. Deze optie vermindert de kopieerprestaties aanzienlijk vanwege controlepunten. |
Belangrijk
U wordt aangeraden een Windows Server 2022 te gebruiken. Wanneer u een Windows Server 2019 gebruikt, moet u ervoor zorgen dat op het laatste patchniveau of ten minste KB5005103 besturingssysteemupdate is geïnstalleerd. Het bevat belangrijke oplossingen voor bepaalde Robocopy-scenario's.
Tip
Bekijk de sectie Probleemoplossing als RoboCopy invloed heeft op uw productieomgeving, veel fouten rapporteert of niet zo snel verloopt als verwacht.
Fase 4: Cut-over gebruiker
Wanneer u de RoboCopy-opdracht voor het eerst uitvoert, hebben uw gebruikers en toepassingen nog steeds toegang tot bestanden op de bron van uw migratie en worden ze mogelijk gewijzigd. Het is mogelijk dat RoboCopy een map heeft verwerkt, naar de volgende map is verplaatst en vervolgens een gebruiker op de bronlocatie een bestand toevoegt, wijzigt of verwijdert dat nu niet wordt verwerkt in deze huidige RoboCopy-uitvoering. Dit gedrag is verwacht.
De eerste uitvoering gaat over het verplaatsen van het grootste deel van de gegevens naar uw Azure-bestandsshare. Dit eerste exemplaar kan enige tijd duren. Bekijk de sectie Probleemoplossing voor meer inzicht in wat van invloed kan zijn op RoboCopy-snelheden.
Zodra de eerste uitvoering is voltooid, voert u de opdracht opnieuw uit.
De tweede keer dat u RoboCopy voor dezelfde share uitvoert, wordt deze sneller voltooid, omdat deze alleen wijzigingen moet transporteren die zijn opgetreden sinds de laatste uitvoering. U kunt herhaalde taken uitvoeren voor dezelfde share.
Nadat u rekening hebt gehouden met de hoeveelheid acceptabele downtime, moet u gebruikerstoegang tot uw bronshares verwijderen. U kunt dit doen door stappen uit te voeren waardoor gebruikers de bestands- en mapstructuur en inhoud niet kunnen wijzigen. Een voorbeeld is om uw DFS-naamruimte te laten verwijzen naar een niet-bestaande locatie of de ACL's voor elke share te wijzigen.
Voer een laatste RoboCopy-ronde uit. Hiermee worden eventuele wijzigingen opgehaald die mogelijk zijn gemist. Hoe lang deze laatste stap duurt, is afhankelijk van de snelheid van de RoboCopy-scan. U kunt een schatting maken van de tijd (die gelijk is aan uw downtime) door te meten hoe lang de vorige uitvoering duurde.
In fase 2 hebt u uw gebruikers geconfigureerd voor toegang tot de share met hun identiteit en moet u een strategie hebben ingesteld voor uw gebruikers om bestaande paden naar uw nieuwe Azure-bestandsshares (DFS-N) te gebruiken.
U kunt proberen een aantal van deze kopieën parallel uit te voeren tussen verschillende bron- en doelshares. Houd hierbij rekening met de verhouding van de netwerkdoorvoer en het aantal kernen tot threads om het systeem niet te overbelasten.
Problemen oplossen en optimaliseren
Snelheid en slagingspercentage van een bepaalde RoboCopy-uitvoering zijn afhankelijk van verschillende factoren:
- IOPS op de bron- en doelopslag
- de beschikbare netwerkbandbreedte tussen bron en doel
- de mogelijkheid om bestanden en mappen in een naamruimte snel te verwerken
- het aantal wijzigingen tussen RoboCopy-uitvoeringen
- de grootte en het aantal bestanden dat u moet kopiëren
Overwegingen voor IOPS en bandbreedte
In deze categorie moet u rekening houden met de mogelijkheden van de bronopslag, de doelopslag en het netwerk waarmee ze worden verbonden. De maximale doorvoer wordt bepaald door de traagste van deze drie onderdelen. Zorg ervoor dat uw netwerkinfrastructuur is geconfigureerd ter ondersteuning van optimale overdrachtssnelheden naar de beste mogelijkheden.
Let op
Hoewel kopiëren zo snel mogelijk mogelijk is, is vaak het meest gewenst, kunt u het gebruik van uw lokale netwerk en NAS-apparaat overwegen voor andere, vaak bedrijfskritieke taken.
Het kopiëren zo snel mogelijk is mogelijk niet wenselijk wanneer er een risico bestaat dat de migratie beschikbare resources kan in beslag kunnen maken.
- Overweeg wanneer het het beste in uw omgeving is om migraties uit te voeren: overdag, buiten kantooruren of in het weekend.
- Overweeg ook QoS te netwerken op een Windows Server om de RoboCopy-snelheid te beperken.
- Vermijd onnodig werk voor de migratiehulpprogramma's.
RoboCopy kan vertragingen tussen pakketten invoegen door de /IPG:n
switch op te geven waar n
wordt gemeten in milliseconden tussen RoboCopy-pakketten. Het gebruik van deze switch kan helpen bij het vermijden van het gebruik van resources op zowel I/O-beperkte apparaten als overvolle netwerkkoppelingen.
/IPG:n
kan niet worden gebruikt voor nauwkeurige netwerkbeperking tot een bepaalde Mbps. Gebruik in plaats daarvan QoS voor Windows Server-netwerk. RoboCopy is volledig afhankelijk van het SMB-protocol voor alle netwerkbehoeften. Het gebruik van SMB is de reden waarom RoboCopy de netwerkdoorvoer zelf niet kan beïnvloeden, maar het gebruik ervan kan vertragen.
Een vergelijkbare gedachteregel is van toepassing op de IOPS die op de NAS is waargenomen. De clustergrootte op het NAS-volume, pakketgrootten en een matrix van andere factoren beïnvloeden de waargenomen IOPS. Het introduceren van vertraging tussen pakketten is vaak de eenvoudigste manier om de belasting van de NAS te beheren. Test meerdere waarden, bijvoorbeeld van ongeveer 20 milliseconden (n=20) naar veelvouden van dat getal. Zodra u een vertraging hebt geïntroduceerd, kunt u evalueren of uw andere apps nu naar verwachting kunnen werken. Met deze optimalisatiestrategie kunt u de optimale RoboCopy-snelheid in uw omgeving vinden.
Verwerkingssnelheid
RoboCopy doorkruist de naamruimte waarnaar wordt verwezen en evalueert elk bestand en elke map voor kopiëren. Elk bestand wordt geëvalueerd tijdens een eerste kopie en tijdens inhaalkopieën. Herhaalde uitvoeringen van RoboCopy /MIR op dezelfde bron- en doelopslaglocaties. Deze herhaalde uitvoeringen zijn handig om downtime voor gebruikers en apps te minimaliseren en om het algehele slagingspercentage van gemigreerde bestanden te verbeteren.
Er wordt vaak standaard rekening gehouden met bandbreedte als de meest beperkende factor in een migratie, en dat kan waar zijn. Maar de mogelijkheid om een naamruimte op te sommen, kan de totale tijd beïnvloeden om nog meer te kopiëren voor grotere naamruimten met kleinere bestanden. Houd er rekening mee dat het kopiëren van 1 TiB van kleine bestanden aanzienlijk langer duurt dan het kopiëren van 1 TiB van minder maar grotere bestanden, ervan uitgaande dat alle andere variabelen hetzelfde blijven. Daarom kan er sprake zijn van trage overdracht als u een groot aantal kleine bestanden migreert. Dit is normaal gedrag.
De oorzaak van dit verschil is de verwerkingskracht die nodig is om een naamruimte te doorlopen. RoboCopy ondersteunt kopieën met meerdere threads via de /MT:n
parameter waarbij n staat voor het aantal threads dat moet worden gebruikt. Houd bij het inrichten van een machine die specifiek is bedoeld voor RoboCopy, rekening met het aantal processorkernen en de relatie met het aantal threads dat ze bieden. De meest voorkomende zijn twee threads per kern. Het aantal kernen en threads van een machine is een belangrijk gegevenspunt om te bepalen welke waarden voor meerdere threads /MT:n
u moet opgeven. Overweeg ook hoeveel RoboCopy-taken u parallel wilt uitvoeren op een bepaalde computer.
Meer threads kopiëren ons 1 TiB-voorbeeld van kleine bestanden aanzienlijk sneller dan minder threads. Tegelijkertijd levert de extra investering op onze 1 TiB van grotere bestanden mogelijk geen proportionele voordelen op. Een hoog aantal threads probeert tegelijkertijd meer grote bestanden via het netwerk te kopiëren. Deze extra netwerkactiviteit verhoogt de kans dat de doorvoer- of opslag-IOPS wordt beperkt.
Tijdens een eerste RoboCopy in een leeg doel of een differentiële uitvoering met veel gewijzigde bestanden, bent u waarschijnlijk beperkt door de netwerkdoorvoer. Begin met een hoog aantal threads voor een eerste uitvoering. Een hoog aantal threads, zelfs buiten de momenteel beschikbare threads op de machine, helpt de beschikbare netwerkbandbreedte te verzadigen. Volgende /MIR-uitvoeringen worden geleidelijk beïnvloed door het verwerken van items. Minder wijzigingen in een differentiële uitvoering betekenen minder transport van gegevens via het netwerk. Uw snelheid is nu afhankelijk van de mogelijkheid om naamruimteitems te verwerken dan ze via de netwerkkoppeling te verplaatsen. Voor volgende uitvoeringen moet u de waarde voor het aantal threads vergelijken met het aantal processorkernen en het aantal threads per kern. Overweeg of kernen moeten worden gereserveerd voor andere taken die een productieserver mogelijk heeft.
Tip
Vuistregel: De eerste RoboCopy-uitvoering (waarmee veel gegevens van een netwerk met een hogere latentie worden verplaatst) profiteert van het over-inrichten van het aantal threads (/MT:n
). Volgende uitvoeringen kopiëren minder verschillen en de kans is groter dat de netwerkdoorvoer wordt beperkt tot de rekenbeperking. Onder deze omstandigheden is het vaak beter om het aantal RoboCopy-threads te vergelijken met de daadwerkelijk beschikbare threads op de machine. Overinrichting in dat scenario kan leiden tot meer contextverschuivingen in de processor, waardoor uw kopie mogelijk wordt vertraagd.
Vermijd onnodig werk
Vermijd grootschalige wijzigingen in uw naamruimte, zoals het verplaatsen van bestanden tussen mappen, het wijzigen van eigenschappen op grote schaal of het wijzigen van map- en bestandsmachtigingen (NTFS ACL's). Met name ACL-wijzigingen kunnen een grote impact hebben omdat ze vaak een trapsgewijs wijzigingseffect hebben op bestanden die lager in de maphiërarchie zijn. Gevolgen kunnen zijn:
- uitgebreide Runtime van RoboCopy-taken omdat elk bestand en elke map die wordt beïnvloed door een wijziging in de ACL moet worden bijgewerkt
- het hergebruik van gegevens die eerder zijn verplaatst, moet mogelijk opnieuw worden gecopieerd. Er moeten bijvoorbeeld meer gegevens worden gekopieerd wanneer mapstructuren veranderen nadat bestanden al eerder zijn gekopieerd. Een RoboCopy-taak kan een naamruimtewijziging niet 'afspelen'. De volgende taak moet de bestanden die eerder naar de oude mapstructuur zijn verplaatst, leegmaken en de bestanden opnieuw uploaden in de nieuwe mapstructuur.
Een ander belangrijk aspect is het effectief gebruiken van het RoboCopy-hulpprogramma. Met het aanbevolen RoboCopy-script maakt en slaat u een logboekbestand op voor fouten. Er kunnen kopieerfouten optreden. Dat is normaal. Deze fouten maken het vaak nodig om meerdere rondes van een kopieerprogramma zoals RoboCopy uit te voeren: een eerste uitvoering, bijvoorbeeld van een NAS naar DataBox of een server naar een Azure-bestandsshare, en een of meer extra uitvoeringen met de /MIR
schakeloptie om bestanden te vangen en opnieuw uit te voeren die niet zijn gekopieerd.
U moet voorbereid zijn om meerdere rondes van RoboCopy uit te voeren op basis van een bepaald naamruimtebereik. Opeenvolgende uitvoeringen worden sneller voltooid omdat ze minder te kopiëren zijn, maar steeds meer worden beperkt door de snelheid van de verwerking van de naamruimte. Wanneer u meerdere rondes uitvoert, kunt u elke ronde versnellen door RoboCopy niet onredelijk hard te laten proberen om alles in een bepaalde uitvoering te kopiëren. Deze RoboCopy-switches kunnen een aanzienlijk verschil maken:
/R:n
n = hoe vaak u een mislukt bestand opnieuw probeert te kopiëren en/W:n
n = het aantal seconden dat moet worden gewacht tussen nieuwe pogingen
/R:5 /W:5
is een redelijke instelling die u naar wens kunt aanpassen. In dit voorbeeld wordt een mislukt bestand vijf keer opnieuw geprobeerd, met een wachttijd van vijf seconden tussen nieuwe pogingen. Als het bestand nog steeds niet kan worden gekopieerd, probeert de volgende RoboCopy-taak het opnieuw. Bestanden die vaak zijn mislukt omdat ze in gebruik zijn of vanwege time-outproblemen, kunnen uiteindelijk op deze manier worden gekopieerd.
Kosten voor opslagtransacties schatten
Wanneer u met uw migratie naar Azure Files begint, kopieert RoboCopy uw bestanden en mappen naar Azure. Afhankelijk van uw factureringsmodel voor Azure Files kunnen er transactiekosten van toepassing zijn. Zie Facturering begrijpen.
Als u een factureringsmodel voor betalen per gebruik gebruikt voor standaard Azure-bestandsshares, kan het lastig zijn om het aantal transacties te schatten dat uw migratie genereert.
- Het is niet mogelijk om het aantal transacties te schatten op basis van de gebruikte opslagcapaciteit van de bron. Het aantal transacties wordt geschaald met het aantal naamruimte-items (bestanden en mappen) en hun eigenschappen die worden gemigreerd, niet hun grootte. Er zijn bijvoorbeeld meer transacties vereist voor het migreren van 1 GiB van kleine bestanden dan 1 GiB van grotere bestanden.
- Als u downtime wilt minimaliseren, moet u mogelijk meerdere keren kopieerbewerkingen uitvoeren van de bron naar het doel. Alle bron- en doelitems worden tijdens elke kopieerbewerking verwerkt, maar de volgende uitvoeringen worden sneller voltooid. Na de eerste bewerkingen worden alleen de verschillen tussen kopieeruitvoeringen via het netwerk vervoerd. Het is belangrijk om te begrijpen dat hoewel er minder gegevens worden verzonden, het aantal vereiste transacties hetzelfde kan blijven.
- Als u hetzelfde bestand twee keer kopieert, leidt dit mogelijk niet tot hetzelfde aantal transacties. Het verwerken van een item dat in een vorige kopieeruitvoering is gemigreerd, kan slechts enkele leestransacties tot gevolg hebben. Wijzigingen in metagegevens of inhoud tussen kopieeruitvoeringen kunnen daarentegen een groter aantal transacties vereisen om het doel bij te werken. Elk bestand in uw naamruimte kan unieke vereisten hebben, wat resulteert in een ander aantal transacties.
Het is raadzaam om enkele initiële tests uit te voeren op uw eigen gegevens om beter te begrijpen hoeveel transacties er worden gemaakt. Zo krijgt u een beter beeld van het totale aantal transacties dat een bestandsmigratie kan genereren.
Volgende stappen
De volgende artikelen helpen u inzicht te krijgen in geavanceerde opties en aanbevolen procedures.