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.
✔️ 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:
- 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.
-
Incrementele kopie: Kopieer alleen de incrementele wijzigingen van de bron naar het doel. Voor incrementele synchronisatie, gebruik
fpsyncmetrsyncals kopieertool. Voer dit commando meerdere keren uit om alle wijzigingen vast te leggen. - 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.
De volgende grafiek toont de resultaten van een incrementele kopie (delta-verandering).
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.
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.
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.