Migrálás NFS Azure-fájlmegosztásokra
Ez a cikk a Linux-fájlkiszolgálókról az NFS Azure-fájlmegosztásokra való migrálás alapvető szempontjait ismerteti, amelyek csak prémium szintű fájlmegosztásokként érhetők el (FileStorage-fiók típusa). Összehasonlítjuk az nyílt forráskód fájlmásoló eszközöket az fpsync és az rsync eszközzel, hogy megtudjuk, hogyan hajtják végre az adatokat az Azure-fájlmegosztásokra való másoláskor.
Megjegyzés:
Az Azure Files nem támogatja az NFS-hozzáférés-vezérlési listákat (ACL-eket).
A következőre érvényes:
Fájlmegosztás típusa | SMB | NFS |
---|---|---|
Standard szintű fájlmegosztások (GPv2), LRS/ZRS | ![]() |
![]() |
Standard szintű fájlmegosztások (GPv2), GRS/GZRS | ![]() |
![]() |
Prémium fájlmegosztások (FileStorage), LRS/ZRS | ![]() |
![]() |
Előfeltételek
Szüksége lesz legalább egy Linux rendszerű virtuális gépre (VM) csatlakoztatott NFS Azure-fájlmegosztásra. A létrehozáshoz lásd : NFS Azure-fájlmegosztás létrehozása és csatlakoztatása Linux rendszerű virtuális gépen. Javasoljuk, hogy több TCP-kapcsolat használatához csatlakoztassa a megosztást nconnecttel. További információ: Az NFS Azure-fájlmegosztás teljesítményének javítása.
Migrálási eszközök
Számos nyílt forráskód eszköz áll rendelkezésre az adatok NFS-fájlmegosztásokra való átviteléhez. Azonban nem mindegyik hatékony a helyszíni beállításokhoz képest eltérő teljesítménnyel rendelkező elosztott fájlrendszerek kezelésekor. Az elosztott fájlrendszerekben minden hálózati hívás egy olyan kiszolgálóra való oda-vissza utazást foglal magában, amely esetleg nem helyi. Ezért a hálózati hívásokra fordított idő optimalizálása elengedhetetlen az optimális teljesítmény és a hálózaton keresztüli hatékony adatátvitel eléréséhez.
Az fpsync és az rsync használata
Annak ellenére, hogy egyszálas, az rsync sokoldalú, nyílt forráskód fájlmásoló eszköz. Másolhat helyileg, egy másik gazdagépről bármely távoli rendszerhéjon keresztül, vagy egy távoli rsync démonba vagy onnan. Számos lehetőséget kínál, és lehetővé teszi a másolandó fájlok rugalmas specifikációját. Az fpsync azonban többszálú alkalmazás, ezért számos előnyt kínál, beleértve az rsync-feladatok párhuzamos futtatását is.
Ebben a cikkben az fpsync használatával helyezünk át adatokat Linux-fájlkiszolgálóról NFS Azure-fájlmegosztásokra.
Az adatok másolásához az fpsync rsync (alapértelmezett), cpio vagy tar eszközöket használ. Kiszámítja a forráskönyvtár src_dir/
részhalmazait, és szinkronizálási feladatokat hoz létre a célkönyvtárba dst_dir/
való szinkronizáláshoz. Szinkronizációs feladatokat hajt végre menet közben, miközben egyidejűleg bejárja a fájlrendszert, így hasznos eszköz a nagy fájlrendszerek hatékony migrálásához és a nagy adathalmazok több fájlból történő másolásához.
Megjegyzés:
Az Fpsync csak a címtár tartalmát szinkronizálja, magát a forráskönyvtárat nem. Az rsynctől eltérően az fpsync a forráskönyvtár végleges "/" tulajdonságát kényszeríti ki, ami azt jelenti, hogy a szinkronizálás után nem fog kapni egy alkönyvtárat a forráskönyvtár nevével a célkönyvtárban.
Fpart telepítése
Az fpsync használatához telepítenie kell az fpart fájlrendszer particionálóját. Telepítse az fpartot a választott Linux-disztribúcióra. Miután telepítette, az fpsync /usr/bin/
alatt kell megjelennie.
Az Ubuntu-on az apt csomagkezelővel telepítse az fpartot.
sudo apt-get install fpart
Adatok másolása a forrásból a célhelyre
Győződjön meg arról, hogy a cél (cél) Azure-fájlmegosztás linuxos virtuális géphez van csatlakoztatva. See Prerequisites.
Ha teljes migrálást végez, három fázisban másolja az adatokat:
- Alapkonfiguráció másolása: Másolás forrásból célhelyre, ha a célhelyen nincs adat. Az alapkonfigurációs másoláshoz az fpsync és a cpio használatát javasoljuk másolási eszközként.
- Növekményes másolás: Csak a forrás és a cél közötti növekményes módosítások másolása. Növekményes szinkronizáláshoz az fpsync és az rsync másolási eszköz használatát javasoljuk. Ezt többször is meg kell tenni az összes módosítás rögzítéséhez.
- Végső átadás: A célhelyen lévő olyan fájlok törléséhez, amelyek nem léteznek a forrásnál, végleges átadásra van szükség.
Az adatok fpsync használatával történő másolásához mindig szükség van a parancs bizonyos verziójára:
fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>
Alapkonfiguráció másolása
Az alapkonfiguráció másolásához használja az fpsync és a cpio parancsot.
fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>
További információ: Cpio és Tar támogatás.
Növekményes másolás
Növekményes szinkronizáláshoz használja az fpsyncet az alapértelmezett másolási eszközzel (rsync). Az összes módosítás rögzítéséhez javasoljuk, hogy ezt többször is futtassa.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Alapértelmezés szerint az fpsync a következő rsync-beállításokat adja meg: -lptgoD -v --numeric-ids
. Az fpsync parancshoz hozzáadva -o option
további rsync-beállításokat is megadhat.
Utolsó bérlet
Több növekményes szinkronizálás után végleges átadást kell végeznie a célhelyen lévő olyan fájlok törléséhez, amelyek nem léteznek a forrásban. Ezt manuálisan rsync --delete
is megteheti, ha további fájlokat szeretne törölni a /data/dst/
könyvtárból, vagy használhatja az fpsync-et az -E beállítással. További részletekért lásd : The Final Pass.
Az rsync és az fpsync összehasonlítása különböző adatkészletekkel
Ez a szakasz az rsync és az fpsync teljesítményét hasonlítja össze különböző adatkészletekkel.
Adatkészletek és konfiguráció
Az alábbi táblázat felsorolja azokat az adathalmazokat, amelyeket a másolási eszköz teljesítményének összehasonlításához használtunk különböző számítási feladatok esetén.
Config # | Másolás típusa | Fájlszám | Címtárak száma | Fájlméret | Teljes méret |
---|---|---|---|---|---|
1,1 | Alapkonfiguráció másolása | 1 millió | 1 | 0-32 KiB | 18 GiB |
1,2 | Növekményes (változásváltozás) | 1 millió | 1 | 0-32 KiB | 18 GiB |
2 | Alapkonfiguráció másolása | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
3 | Alapkonfiguráció másolása | 5000 | 1 | 10 MiB | 50 GiB |
A teszteket 8 virtuális processzorral, 32 GiB memóriával és több mint 1 TiB lemezterülettel rendelkező Azure Standard_D8s_v3 virtuális gépeken végezték el. A célhoz 1 TiB-nál nagyobb méretű NFS Azure-fájlmegosztásokat konfiguráltunk.
Kísérletek és eredmények: rsync és fpsync
A fenti konfigurációkkal végzett kísérleteink alapján megfigyeltük, hogy az fpsync akkor teljesített a legjobban, ha 64 szál rsync-et és 16 szálat használ a cpio használatával egy Azure NFS-fájlmegosztáshoz nconnect=8
. A tényleges eredmények a konfigurációtól és az adatkészlettől függően változnak.
Megjegyzés:
Az Azure Files átviteli sebessége sokkal magasabb lehet, mint az alábbi diagramokon látható. Néhány kísérletet szándékosan kis adathalmazokkal végeztek az egyszerűség kedvéért.
1. konfiguráció
Egyetlen könyvtár esetében, amely összesen 18 GiB méretű 1 millió kis fájlt tartalmaz, ezt a tesztet alappéldányként és növekményes másolatként is futtattuk.
A következő eredményeket figyeltük meg, amikor a forrásból a célba másolták az alapkonfigurációt.
Az alábbi eredményeket növekményes másolással (változásváltozással) figyeltük meg.
2. konfiguráció
Az alábbi eredmények 191 345 kis méretű fájl alapkonfigurációs másolatát mutatták be 3906 könyvtárban, összesen 3 GiB méretű könyvtárban.
3. konfiguráció
Az alábbi eredményeket egy 5000 nagyméretű fájl (10 MiB) alapkonfigurációs másolatát követtük egyetlen könyvtárban, összesen 50 GiB méretben.
Az eredmények összegzése
A többszálas alkalmazások, például az fpsync használata javíthatja az átviteli sebességet és az IOPS-t az NFS Azure-fájlmegosztásokra való migráláskor az egyszálú másolási eszközökhöz, például az rsynchez képest. Tesztjeink azt mutatják, hogy:
- Az adatok könyvtáron belüli elosztása segít párhuzamossá a migrálási folyamatnak, és ezáltal jobb teljesítményt nyújt.
- Az adatok nagyobb fájlméretekből történő másolása jobb teljesítményt eredményez, mint az adatok kisebb fájlméretekből való másolása.
Az alábbi táblázat összefoglalja az eredményeket:
Config # | Fájlszám | Címtárak száma | Fájlméret | Teljes méret | rsync időtartam | rsync átviteli sebesség | fpsync időtartam | fpsync átviteli sebesség | Átviteli sebesség nyeresége |
---|---|---|---|---|---|---|---|---|---|
1.1 (alapterv) | 1 millió | 1 | 0-32 KiB | 18 GiB | 837,06 perc | 0,33 MiB/s | 228,16 perc | 1,20 MiB/s | 267% |
1.2 (növekményes) | 1 millió | 1 | 0-32 KiB | 18 GiB | 84,02 perc | 3.25 MiB/s | 7,5 perc | 36.41 MiB/s | 1,020% |
2 (alapterv) | 191,345 | 3,906 | 0-32 KiB | 3 GiB | 191,86 perc | 0,27 MiB/s | 8,47 perc | 6,04 MiB/s | 2,164% |
3 (alapterv) | 5000 | 1 | 10 MiB | 50 GiB | 8,12 perc | 105.04 MiB/s | 2,76 perc | 308.90 MiB/s | 194% |
Külső féltől származó információra vonatkozó felelősséget kizáró nyilatkozat
A cikkben említett nyílt forráskód eszközök jól ismert külső megoldások. A Microsoft nem fejleszti, nem birtokolja vagy támogatja őket, sem közvetlenül, sem közvetve. Az ügyfél felelőssége, hogy megvizsgálja a harmadik fél dokumentációjában megadott szoftverlicencet és támogatási nyilatkozatot.