Migrera till NFS Azure-filresurser
Den här artikeln beskriver de grundläggande aspekterna av migrering från Linux-filservrar till NFS Azure-filresurser, som endast är tillgängliga som Premium-filresurser (fillagringskontotyp). Vi jämför även öppen källkod filkopieringsverktygen fpsync och rsync för att förstå hur de fungerar när de kopierar data till Azure-filresurser.
Kommentar
Azure Files stöder inte NFS-åtkomstkontrollistor (ACL).
Gäller för
Typ av filresurs | SMB | NFS |
---|---|---|
Standardfilresurser (GPv2), LRS/ZRS | ||
Standardfilresurser (GPv2), GRS/GZRS | ||
Premiumfilresurser (FileStorage), LRS/ZRS |
Förutsättningar
Du behöver minst en NFS Azure-filresurs monterad på en virtuell Linux-dator (VM). Information om hur du skapar en finns i Skapa en NFS Azure-filresurs och montera den på en virtuell Linux-dator. Vi rekommenderar att du monterar resursen med nconnect för att använda flera TCP-anslutningar. Mer information finns i Förbättra prestanda för NFS Azure-filresurs.
Migreringsverktyg
Många öppen källkod verktyg är tillgängliga för att överföra data till NFS-filresurser. Alla är dock inte effektiva när det gäller att hantera ett distribuerat filsystem med distinkta prestandaöverväganden jämfört med lokala installationer. I ett distribuerat filsystem innebär varje nätverksanrop en tur och retur till en server som kanske inte är lokal. Därför är det viktigt att optimera den tid som spenderas på nätverksanrop för att uppnå optimala prestanda och effektiv dataöverföring över nätverket.
Använda fpsync jämfört med rsync
Trots att rsync är enkeltrådat är det ett mångsidigt öppen källkod filkopieringsverktyg. Den kan kopieras lokalt, till/från en annan värd via ett fjärrgränssnitt eller till/från en fjärr-rsync-daemon. Det erbjuder många alternativ och möjliggör flexibel specifikation av den uppsättning filer som ska kopieras. fpsync är dock ett flertrådat program och erbjuder därför vissa fördelar, inklusive möjligheten att köra rsync-jobb parallellt.
I den här artikeln använder vi fpsync för att flytta data från en Linux-filserver till NFS Azure-filresurser.
För att kopiera data använder fpsync antingen rsync (standard), cpio eller tar-verktyg. Den beräknar delmängder av källkatalogen src_dir/
och skapar synkroniseringsjobb för att synkronisera dem till målkatalogen dst_dir/
. Den kör synkroniseringsjobb direkt samtidigt som filsystemet crawlas, vilket gör det till ett användbart verktyg för att effektivt migrera stora filsystem och kopiera stora datamängder med flera filer.
Kommentar
Fpsync synkroniserar bara kataloginnehåll, inte själva källkatalogen. Till skillnad från rsync framtvingar fpsync den sista "/" i källkatalogen, vilket innebär att du inte får någon underkatalog med namnet på källkatalogen i målkatalogen efter synkroniseringen.
Installera fpart
Om du vill använda fpsync måste du installera partitioneraren fpart-filsystem. Installera fpart på valfri Linux-distribution. När den har installerats bör du se fpsync under /usr/bin/
.
På Ubuntu använder du apt-pakethanteraren för att installera fpart.
sudo apt-get install fpart
Kopiera data från källa till mål
Kontrollera att din mål-Azure-filresurs (mål) är monterad på en virtuell Linux-dator. Se Förutsättningar.
Om du gör en fullständig migrering kopierar du dina data i tre faser:
- Originalkopia: Kopiera från källa till mål när det inte finns några data på målet. För baslinjekopiering rekommenderar vi att du använder fpsync med cpio som kopieringsverktyg.
- Inkrementell kopia: Kopiera endast de inkrementella ändringarna från källa till mål. För inkrementell synkronisering rekommenderar vi att du använder fpsync med rsync som kopieringsverktyg. Detta bör göras flera gånger för att samla in alla ändringar.
- Slutligt pass: Ett slutligt pass krävs för att ta bort filer på målet som inte finns vid källan.
Kopiering av data med fpsync omfattar alltid någon version av det här kommandot:
fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>
Originalkopia
För baslinjekopiering använder du fpsync med cpio.
fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>
Mer information finns i Cpio- och Tar-stöd.
Inkrementell kopia
För inkrementell synkronisering använder du fpsync med standardkopieringsverktyget (rsync). För att samla in alla ändringar rekommenderar vi att du kör detta flera gånger.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Som standard anger fpsync följande rsync-alternativ: -lptgoD -v --numeric-ids
. Du kan ange ytterligare rsync-alternativ genom att lägga -o option
till i fpsync-kommandot.
Slutligt pass
Efter flera inkrementella synkroniseringar måste du göra ett sista pass för att ta bort filer på målet som inte finns vid källan. Du kan antingen göra detta manuellt med rsync --delete
för att ta bort extra filer från /data/dst/
katalogen, eller så kan du använda fpsync med alternativet -E. Mer information finns i Det slutliga passet.
Jämföra rsync och fpsync med olika datauppsättningar
I det här avsnittet jämförs prestanda för rsync och fpsync med olika datauppsättningar.
Datauppsättningar och konfiguration
I följande tabell visas de olika datauppsättningar som vi använde för att jämföra prestanda för kopieringsverktyget under olika arbetsbelastningar.
Config # | Kopieringstyp | Antal filer | Antal kataloger | Filstorlek | Total storlek |
---|---|---|---|---|---|
1,1 | Originalkopia | 1 miljon | 1 | 0-32 KiB | 18 GiB |
1.2 | Inkrementell (deltaändring) | 1 miljon | 1 | 0-32 KiB | 18 GiB |
2 | Originalkopia | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
3 | Originalkopia | 5 000 | 1 | 10 MiB | 50 GiB |
Testerna utfördes på virtuella Azure Standard_D8s_v3-datorer med 8 virtuella processorer, 32 GiB minne och mer än 1 TiB diskutrymme för stora datamängder. För målet konfigurerade vi NFS Azure-filresurser med mer än 1 TiB-etablerad storlek.
Experiment och resultat: rsync jämfört med fpsync
Baserat på våra experiment med ovanstående konfigurationer observerade vi att fpsync presterade bäst när den användes med 64 trådar med rsync och 16 trådar med cpio för en Azure NFS-filresurs monterad med nconnect=8
. Faktiska resultat varierar beroende på konfiguration och datauppsättningar.
Kommentar
Dataflödet för Azure Files kan vara mycket högre än vad som visas i följande diagram. Några av experimenten utfördes avsiktligt med små datauppsättningar för enkelhetens skull.
Konfiguration 1
För en enskild katalog med 1 miljon små filer på totalt 18 GiB körde vi det här testet som både en baslinjekopia och inkrementell kopia.
Vi observerade följande resultat när vi gjorde en baslinjekopia från källa till mål.
Vi observerade följande resultat när vi gjorde en inkrementell kopia (deltaändring).
Konfiguration 2
Vi observerade följande resultat när vi gjorde en baslinjekopia av 191 345 små filer i 3 906 kataloger med en total storlek på 3 GiB.
Konfiguration 3
Vi observerade följande resultat när vi gjorde en baslinjekopia av 5 000 stora filer (10 MiB) i en enda katalog med en total storlek på 50 GiB.
Sammanfattning av resultat
Att använda program med flera trådar som fpsync kan förbättra dataflödet och IOPS vid migrering till NFS Azure-filresurser jämfört med entrådade kopieringsverktyg som rsync. Våra tester visar att:
- Genom att distribuera data i katalogen kan du parallellisera migreringsprocessen och därmed uppnå bättre prestanda.
- Att kopiera data från större filstorlekar ger bättre prestanda än att kopiera data från mindre filstorlekar.
I följande tabell sammanfattas resultatet:
Config # | Antal filer | Antal kataloger | Filstorlek | Total storlek | rsync-varaktighet | rsync-dataflöde | Varaktighet för fpsync | fpsync-dataflöde | Dataflödesvinst |
---|---|---|---|---|---|---|---|---|---|
1.1 (baslinje) | 1 miljon | 1 | 0-32 KiB | 18 GiB | 837,06 minuter | 0.33 MiB/s | 228,16 minuter | 1.20 MiB/s | 267% |
1.2 (inkrementell) | 1 miljon | 1 | 0-32 KiB | 18 GiB | 84,02 minuter | 3.25 MiB/s | 7,5 minuter | 36.41 MiB/s | 1,020% |
2 (baslinje) | 191,345 | 3,906 | 0-32 KiB | 3 GiB | 191,86 minuter | 0.27 MiB/s | 8,47 minuter | 6.04 MiB/s | 2,164% |
3 (baslinje) | 5 000 | 1 | 10 MiB | 50 GiB | 8,12 minuter | 105.04 MiB/s | 2,76 minuter | 308.90 MiB/s | 194% |
Ansvarsfriskrivning för information från tredje part
De öppen källkod verktyg som nämns i den här artikeln är välkända lösningar från tredje part. De utvecklas, ägs eller stöds inte av Microsoft, varken direkt eller indirekt. Det är kundens ansvar att undersöka programvarulicensen och supportutdraget som finns i dokumentationen från tredje part.