Migreren naar NFS Azure-bestandsshares
Dit artikel bevat informatie over de basisaspecten van het migreren van Linux-bestandsservers naar NFS Azure-bestandsshares, die alleen beschikbaar zijn als Premium-bestandsshares (FileStorage-accounttype). We vergelijken ook de opensource-hulpprogramma's voor het kopiëren van bestanden fpsync en rsync om te begrijpen hoe ze presteren bij het kopiëren van gegevens naar Azure-bestandsshares.
Notitie
Azure Files biedt geen ondersteuning voor NFS-toegangsbeheerlijsten (ACL's).
Van toepassing op
Bestands sharetype | SMB | NFS |
---|---|---|
Standaardbestandsshares (GPv2), LRS/ZRS | ||
Standaardbestandsshares (GPv2), GRS/GZRS | ||
Premium bestandsshares (FileStorage), LRS/ZRS |
Vereisten
U hebt ten minste één NFS Azure-bestandsshare nodig die is gekoppeld aan een virtuele Linux-machine (VM). Zie Een NFS Azure-bestandsshare maken en koppelen op een Virtuele Linux-machine om er een te maken. U wordt aangeraden de share te koppelen aan nconnect om meerdere TCP-verbindingen te gebruiken. Zie Prestaties van NFS Azure-bestandsshares verbeteren voor meer informatie.
Hulpprogramma's voor migratie
Veel opensource-hulpprogramma's zijn 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.
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.
In dit artikel gebruiken we fpsync om gegevens van een Linux-bestandsserver naar NFS Azure-bestandsshares 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.
Notitie
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
Als u fpsync wilt gebruiken, moet u de partitiefunctie voor het fpart-bestandssysteem installeren. Installeer fpart op de Linux-distributie van uw keuze. Zodra deze is geïnstalleerd, ziet u 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 bestemming wanneer er geen gegevens op het doel aanwezig zijn. Voor het kopiëren van de basislijn raden we u aan om fpsync met cpio te gebruiken als het hulpprogramma voor kopiëren.
- Incrementeel kopiëren: kopieer alleen de incrementele wijzigingen van de bron naar het doel. Voor incrementele synchronisatie raden we u aan om fpsync te gebruiken met rsync als het hulpprogramma voor kopiëren. Dit moet meerdere keren worden gedaan 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 in 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>
Basislijnkopie
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 gebruikt u fpsync met het standaardhulpprogramma voor kopiëren (rsync). Als u alle wijzigingen wilt vastleggen, raden we u aan dit meerdere keren uit te voeren.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Standaard geeft fpsync de volgende rsync-opties op: -lptgoD -v --numeric-ids
. U kunt extra rsync-opties opgeven door deze toe te voegen aan -o option
de fpsync-opdracht.
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 om rsync --delete
extra bestanden uit de /data/dst/
map te verwijderen of u kunt fpsync gebruiken met de optie -E. 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 bevat de verschillende gegevenssets die we hebben gebruikt om de prestaties van het kopieerprogramma onder verschillende werkbelastingen te vergelijken.
Config # | Kopieertype | Aantal bestanden | Aantal mappen | Bestandsgrootte | Totale grootte |
---|---|---|---|---|---|
1.1 | Basislijnkopie | 1 miljoen | 1 | 0-32 KiB | 18 GiB |
1.2 | Incrementeel (deltawijziging) | 1 miljoen | 1 | 0-32 KiB | 18 GiB |
2 | Basislijnkopie | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
3 | Basislijnkopie | 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 het doel hebben we NFS Azure-bestandsshares geconfigureerd met meer dan 1 TiB-ingerichte grootte.
Experimenten en resultaten: rsync versus fpsync
Op basis van onze experimenten met de bovenstaande configuraties hebben we vastgesteld dat fpsync het beste presteerde bij gebruik met 64 threads met rsync en 16 threads met cpio voor een Azure NFS-bestandsshare gekoppeld.nconnect=8
De werkelijke resultaten variëren op basis van uw configuratie en gegevenssets.
Notitie
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.
We hebben de volgende resultaten waargenomen die een basislijnkopie uitvoeren van de bron naar de bestemming.
We hebben de volgende resultaten waargenomen bij het uitvoeren van een incrementele kopie (deltawijziging).
Configuratie 2
We hebben de volgende resultaten waargenomen met een basislijnkopie van 191.345 kleine bestanden in 3.906 mappen met een totale grootte van 3 GiB.
Configuratie 3
We hebben de volgende resultaten waargenomen met een basislijnkopie van 5000 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:
Config # | Aantal bestanden | Aantal mappen | Bestandsgrootte | Totale grootte | rsync-duur | rsync-doorvoer | Duur van fpsync | fpsync-doorvoer | 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 | 1,020% |
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% |
Disclaimerinformatie van derden
De opensource-hulpprogramma's die in dit artikel worden genoemd, zijn bekende oplossingen van derden. Ze worden niet direct of indirect ontwikkeld, eigendom of ondersteund door Microsoft. Het is de verantwoordelijkheid van de klant om de softwarelicentie en de ondersteuningsverklaring van de derde partij te onderzoeken.