Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
✔️ Gäller för: Klassiska NFS-fillagringar som skapats med Microsoft.Storage-resursleverantören
✖️ Gäller inte för: NFS-fildelningar som skapats med resursprovidern Microsoft.FileShares eller klassiska SMB-fildelningar som skapats med resursprovidern Microsoft.Storage
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 SSD-filresurser (premium). Den jämför också open-source-filkopieringsverktygen fpsync och rsync för att hjälpa dig förstå hur de fungerar när man kopierar data till Azure-fildelningar.
Anmärkning
Azure Files stöder inte NFS-åtkomstkontrollistor (ACL).
Förutsättningar
Du behöver minst en NFS Azure-fildelning monterad på en Linux-virtuell maskin (VM). För att skapa en, se Skapa en klassisk Azure-filresurs. Montera delningen genom att använda nconnect för att använda flera TCP-anslutningar för bättre prestanda. För mer information, se Förbättra prestanda för NFS Azure-filresurser.
Migreringsverktyg
Många 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 Azure Storage Mover
Nu kan du använda Azure Storage Mover för att migrera dina NFSv3- och NFSv4-filresurser till NFSv4.1 Azure-filresurser. Azure Storage Mover är en fullständigt hanterad migreringstjänst som gör att du kan migrera lokala filer och mappar till Azure samtidigt som stilleståndstiden minimeras.
Använda fpsync jämfört med rsync
Trots att rsync är enkeltrådat är det ett mångsidigt filkopieringsverktyg med öppen källkod. 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.
Den här artikeln förklarar hur man använder fpsync för att flytta data från en Linux-filserver till NFS Azure-fildelningar.
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.
Anmärkning
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
För att använda fpsync behöver du installera fpart-filsystempartitioneraren. Installera fpart på valfri Linux-distribution. Efter installationen visas 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 destination för Azure-fildelning är monterad på en Linux-VM. 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, använd
fpsyncmed somrsynckopieringsverktyg. Kör detta kommando flera gånger för att fånga 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>
Referenskopia
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änd fpsync med standardverktyget för kopiering (rsync). Kör detta kommando flera gånger för att fånga alla ändringar.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Som standard specificeras fpsync följande rsync alternativ: -lptgoD -v --numeric-ids. Lägg till -o option i kommandot fpsync för att specificera extra rsync alternativ.
Slutlig kontroll
Efter flera inkrementella synkroniseringar måste du göra ett sista pass för att ta bort filer på destinationen som inte finns i 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
Följande tabell listar de olika datamängder som används för att jämföra kopieringsverktygens prestanda under olika arbetsbelastningar.
| Konfiguration # | Kopieringstyp | Antal filer | Antal kataloger | Filstorlek | Total storlek |
|---|---|---|---|---|---|
| 1.1 | Referenskopia | 1 miljon | 1 | 0-32 KiB | 18 GiB |
| 1.2 | Inkrementell (deltaändring) | 1 miljon | 1 | 0-32 KiB | 18 GiB |
| 2 | Referenskopia | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
| 3 | Referenskopia | 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
Tester visar att fpsync presterar bäst när du använder 64 trådar med rsync och 16 trådar med cpio för en Azure NFS-fildelning monterad med nconnect=8. De faktiska resultaten varierar beroende på din konfiguration och dina datamängder.
Anmärkning
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.
Följande diagram visar resultaten av en baslinjekopia från källa till destination.
Följande diagram visar resultaten av en inkrementell kopia (deltaförändring).
Konfiguration 2
Följande diagram visar resultaten från en baslinjekopia av 191 345 små filer i 3 906 kataloger med en total storlek på 3 GiB.
Konfiguration 3
Följande diagram visar resultaten av 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:
| Konfiguration # | Antal filer | Antal kataloger | Filstorlek | Total storlek | rsync-varaktighet | rsync-överföringskapacitet | Varaktighet för fpsync | fpsync-genomströmning | Dataflödesvinst |
|---|---|---|---|---|---|---|---|---|---|
| 1.1 (grundnivå) | 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
Verktyg med öppen källkod som nämns i den här artikeln är välkända lösningar från tredje part. Microsoft utvecklar, äger eller stödjer inte dessa verktyg, varken direkt eller indirekt. Du ansvarar för att granska mjukvarulicensen och supportuttalandet som finns i tredjeparts dokumentation.