Migreren naar NFS Azure-bestandendelen

✔️ Van toepassing op: Klassieke NFS-bestandsshares die zijn gemaakt met de Microsoft.Storage-resourceprovider

✖️ Is niet van toepassing op: NFS-bestandsshares die zijn gemaakt met de Microsoft. FileShares-resourceprovider of klassieke SMB-bestandsshares die zijn gemaakt met de Microsoft. Opslagresourceprovider

In dit artikel worden de basisaspecten besproken van het migreren van Linux-bestandsservers naar NFS Azure-bestandsshares, die alleen beschikbaar zijn als SSD-bestandsshares (Premium). Het vergelijkt ook de open source bestandskopieertools fpsync en rsync om je te helpen begrijpen hoe ze presteren bij het kopiëren van data naar Azure-bestandsdelingen.

Opmerking

Azure Files biedt geen ondersteuning voor NFS-toegangsbeheerlijsten (ACL's).

Vereiste voorwaarden

Je hebt minstens één NFS Azure-bestandsdeling nodig die is gekoppeld aan een Linux virtual machine (VM). Maak een Azure-klassieke bestandsshare aan door Een klassieke Azure-bestandsshare maken. Koppel de share door nconnect te gebruiken om meerdere TCP-verbindingen te gebruiken voor betere prestaties. Zie Prestaties van NFS Azure-bestandsshares verbeteren voor meer informatie.

Hulpprogramma's voor migratie

Er zijn veel hulpprogramma's beschikbaar om gegevens over te dragen naar NFS-bestandsshares. Niet alle zijn echter efficiënt bij het omgaan met een gedistribueerd bestandssysteem met verschillende prestatieoverwegingen vergeleken met on-premises setups. In een gedistribueerd bestandssysteem omvat elke netwerkoproep een retour naar een server die mogelijk niet lokaal is. Daarom is het optimaliseren van de tijd die wordt besteed aan netwerkoproepen cruciaal om optimale prestaties en efficiënte gegevensoverdracht via het netwerk te bereiken.

Azure Storage Mover gebruiken

U kunt nu Azure Storage Mover gebruiken om uw NFSv3- en NFSv4-bestandsshares te migreren naar NFSv4.1 Azure-bestandsshares. Azure Storage Mover is een volledig beheerde migratieservice waarmee u on-premises bestanden en mappen naar Azure kunt migreren terwijl downtime wordt geminimaliseerd.

fpsync versus rsync gebruiken

Ondanks dat u één thread hebt, is rsync een veelzijdig hulpprogramma voor het kopiëren van opensource-bestanden. Het kan lokaal, naar/van een andere host kopiëren via een externe shell of van/naar een externe rsync-daemon. Het biedt veel opties en maakt flexibele specificatie mogelijk van de set bestanden die moeten worden gekopieerd. fpsync is echter een multithreaded-toepassing en biedt daarom enkele voordelen, waaronder de mogelijkheid om rsync-taken parallel uit te voeren.

Dit artikel legt uit hoe je fpsync gebruikt om data van een Linux-bestandsserver naar NFS Azure-bestandsdelingen te verplaatsen.

Als u de gegevens wilt kopiëren, gebruikt fpsync rsync (standaard), cpio of tar-hulpprogramma's. Het berekent subsets van de bronmap src_dir/ en spawns synchronisatietaken om ze te synchroniseren met de doelmap dst_dir/. Het voert synchronisatietaken on-the-fly uit tijdens het tegelijkertijd verkennen van het bestandssysteem, waardoor het een handig hulpmiddel is voor het efficiënt migreren van grote bestandssystemen en het kopiëren van grote gegevenssets met meerdere bestanden.

Opmerking

Fpsync synchroniseert alleen de inhoud van de map, niet de bronmap zelf. In tegenstelling tot rsync dwingt fpsync de definitieve '/' af in de bronmap, wat betekent dat u na synchronisatie geen submap met de naam van de bronmap in de doelmap krijgt.

FPART installeren

Om fpsync te gebruiken, moet je de fpart-filesystem-partitioner installeren. Installeer fpart op de Linux-distributie van uw keuze. Na installatie verschijnt fpsync onder /usr/bin/.

Gebruik op Ubuntu de apt-pakketbeheerder om fpart te installeren.

sudo apt-get install fpart

Gegevens kopiëren van bron naar doel

Zorg ervoor dat uw Azure-bestandsshare (doel) is gekoppeld aan een Virtuele Linux-machine. Zie Vereisten.

Als u een volledige migratie uitvoert, kopieert u uw gegevens in drie fasen:

  1. Basislijnkopie: Kopiëren van bron naar doel wanneer er geen gegevens op de bestemming aanwezig zijn. Voor de basislijnkopie raden we aan om fpsync met cpio als kopieerhulpprogramma te gebruiken.
  2. Incrementele kopie: Kopieer alleen de incrementele wijzigingen van de bron naar het doel. Voor incrementele synchronisatie, gebruik fpsync met rsync als kopieertool. Voer dit commando meerdere keren uit om alle wijzigingen vast te leggen.
  3. Laatste pas: Er is een laatste pas nodig om bestanden op de bestemming te verwijderen die niet aanwezig zijn bij de bron.

Het kopiëren van gegevens met fpsync omvat altijd een versie van deze opdracht:

fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>

Referentiekopie

Gebruik fpsync voor basislijnkopie met cpio.

fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>

Zie Cpio- en Tar-ondersteuning voor meer informatie.

Incrementele kopie

Voor incrementele synchronisatie, gebruik fpsync de standaard kopieertool (rsync). Voer dit commando meerdere keren uit om alle wijzigingen vast te leggen.

fpsync -n <parallel transfers> <absolute source path> <absolute destination path>

Standaard specificeert de fpsync volgende rsync opties: -lptgoD -v --numeric-ids. Voeg toe -o option aan het fpsync commando om extra rsync opties te specificeren.

Laatste pas

Na verschillende incrementele synchronisaties moet u een laatste pas uitvoeren om bestanden op die bestemming te verwijderen die niet bij de bron aanwezig zijn. U kunt dit handmatig doen met rsync --delete om extra bestanden uit de /data/dst/ map te verwijderen, of u kunt fpsync gebruiken met de -E optie. Zie De laatste pas voor meer informatie.

rsync en fpsync vergelijken met verschillende gegevenssets

In deze sectie worden de prestaties van rsync en fpsync vergeleken met verschillende gegevenssets.

Gegevenssets en configuratie

De volgende tabel geeft een overzicht van de verschillende datasets die worden gebruikt om de prestaties van kopieertools onder verschillende workloads te vergelijken.

Configuratie # Kopieertype Aantal bestanden Aantal directories Bestandsgrootte Totale grootte
1.1 Referentiekopie 1 miljoen 1 0-32 KiB 18 GiB
1.2 Incrementeel (deltawijziging) 1 miljoen 1 0-32 KiB 18 GiB
2 Referentiekopie 191,345 3,906 0-32 KiB 3 GiB
3 Referentiekopie 5.000 1 10 MiB 50 GiB

De tests zijn uitgevoerd op Azure Standard_D8s_v3-VM's met 8 vCPU's, 32 GiB aan geheugen en meer dan 1 TiB aan schijfruimte voor grote gegevenssets. Voor de doelstelling hebben we NFS Azure-bestandsshares geconfigureerd met een ingerichte grootte van meer dan 1 TiB.

Experimenten en resultaten: rsync versus fpsync

Tests tonen aan dat fpsync het beste presteert wanneer je 64 threads met rsync en 16 threads met cpio gebruikt voor een Azure NFS-bestandsdeling die met nconnect=8wordt gemount. De werkelijke resultaten variëren afhankelijk van je configuratie en datasets.

Opmerking

Doorvoer voor Azure Files kan veel hoger zijn dan in de volgende grafieken wordt weergegeven. Sommige van de experimenten zijn opzettelijk uitgevoerd met kleine gegevenssets om het eenvoudig te maken.

Configuratie 1

Voor één map met 1 miljoen kleine bestanden in totaal 18 GiB hebben we deze test uitgevoerd als een basislijnkopie en incrementele kopie.

De volgende grafiek toont de resultaten van een basislijnkopie van bron naar bestemming.

Grafiek met de testresultaten van configuratie 1 voor een basislijnkopie.

De volgende grafiek toont de resultaten van een incrementele kopie (delta-verandering).

Grafiek met de testresultaten van configuratie 1 voor een incrementele kopie.

Configuratie 2

De volgende grafiek toont de resultaten van een basiskopie van 191.345 kleine bestanden in 3.906 mappen met een totale grootte van 3 GiB.

Grafiek met de testresultaten van configuratie 2 voor een basislijnkopie.

Configuratie 3

De volgende grafiek toont de resultaten van een basiskopie van 5.000 grote bestanden (10 MiB) in één map met een totale grootte van 50 GiB.

Grafiek met de testresultaten van configuratie 3 voor een basislijnkopie.

Samenvatting van resultaten

Het gebruik van toepassingen met meerdere threads, zoals fpsync, kan de doorvoer en IOPS verbeteren wanneer u migreert naar NFS Azure-bestandsshares in vergelijking met hulpprogramma's voor kopiëren met één thread, zoals rsync. Uit onze tests blijkt dat:

  • Het distribueren van gegevens in de directory helpt bij het parallelliseren van het migratieproces en levert zo betere prestaties op.
  • Het kopiëren van gegevens uit grotere bestandsgrootten levert betere prestaties op dan het kopiëren van gegevens uit kleinere bestandsgrootten.

De volgende tabel bevat een overzicht van de resultaten:

Configuratie # Aantal bestanden Aantal directories Bestandsgrootte Totale grootte rsync-duur rsync-doorvoersnelheid Duur van fpsync fpsync-doorvoersnelheid Doorvoerwinst
1.1 (basislijn) 1 miljoen 1 0-32 KiB 18 GiB 837,06 minuten 0,33 MiB/s 228,16 minuten 1,20 MiB/s 267%
1.2 (incrementeel) 1 miljoen 1 0-32 KiB 18 GiB 84,02 minuten 3,25 MiB/s 7,5 minuten 36,41 MiB/s 1020%
2 (basislijn) 191,345 3,906 0-32 KiB 3 GiB 191,86 minuten 0,27 MiB/s 8,47 minuten 6,04 MiB/s 2.164%
3 (basislijn) 5.000 1 10 MiB 50 GiB 8,12 minuten 105,04 MiB/s 2,76 minuten 308,90 MiB/s 194%

Disclaimer voor informatie van derden

De opensource-hulpprogramma's die in dit artikel worden genoemd, zijn bekende oplossingen van derden. Microsoft ontwikkelt, bezit of ondersteunt deze tools niet, noch direct noch indirect. Jij bent verantwoordelijk voor het controleren van de softwarelicentie en de ondersteuningsverklaring die in de documentatie van de derde partij zijn opgenomen.

Volgende stappen