Az Azure NetApp Files címtárméreteinek ismertetése
Amikor egy fájl létrejön egy könyvtárban, a rendszer hozzáad egy bejegyzést egy rejtett indexfájlhoz az Azure NetApp Files-köteten belül. Ez az indexfájl segít nyomon követni a címtárban lévő meglévő inódokat, és segít felgyorsítni a nagy számú fájllal rendelkező könyvtárak keresését. A fájl bejegyzéseinek hozzáadásakor a fájl mérete a fájlnév hosszától függően körülbelül 512 bájt/bejegyzés sebességgel nő (de soha nem csökken). A hosszabb fájlnevek nagyobb méretet adnak a fájlhoz. A szimbolikus hivatkozások bejegyzéseket is hozzáadnak ehhez a fájlhoz. Ezt a fogalmat könyvtárméretnek nevezzük, amely minden Linux-alapú fájlrendszer gyakori eleme. A címtárméret nem a fájlok maximális száma egyetlen Azure NetApp Files-kötetben. Ezt az érték határozza megmaxfiles
.
Alapértelmezés szerint egy új könyvtár létrehozásakor 4 kib (4096 bájt) vagy nyolc 512 bájtos blokkot használ fel. A stat paranccsal megtekintheti az újonnan létrehozott címtár méretét egy Linux-ügyfélből.
# mkdir dirsize
# stat dirsize
File: ‘dirsize’
Size: 4096 Blocks: 8 IO Block: 32768 directory
A címtárméretek egyetlen könyvtárra vonatkoznak, és nem egyesíthetők méretben. Ha például egy kötetben 10 könyvtár található, mindegyik elérheti a 320 MiB könyvtárméretkorlátot egyetlen kötetben.
Annak meghatározása, hogy egy könyvtár megközelíti-e a korlát méretét
Egy 320 MiB-könyvtár esetén a blokkok száma 655360, minden blokkméret 512 bájt. (Vagyis 320x1024x1024/512.) Ez a szám körülbelül 4-5 millió fájlt jelent egy 320 MiB-könyvtár esetében. A maximális fájlok tényleges száma azonban alacsonyabb lehet, olyan tényezőktől függően, mint a könyvtárban nem ASCII-karaktereket tartalmazó fájlok száma.
Az ügyfél parancsával megállapíthatja stat
, hogy egy címtár eléri-e a címtár metaadatainak maximális méretkorlátját (320 MB). Ha eléri az Azure NetApp Files egyetlen könyvtárának maximális méretkorlátját, a hiba No space left on device
bekövetkezik.
Egy 320 MB-os könyvtár esetében a blokkok száma 655 360, és minden blokkméret 512 bájt. (Vagyis 320x1024x1024/512.) Ez a szám körülbelül 4 millió fájlt jelent egy 320 MB-os könyvtár esetében. A maximális fájlok tényleges száma azonban alacsonyabb lehet, olyan tényezőktől függően, mint a könyvtárban nem ASCII-karaktereket tartalmazó fájlok száma. A maxdirsize monitorozásáról további információt a Figyelés maxdirsize
című témakörben talál.
A címtár méretének szempontjai
A nagy fájlszámú környezetek kezelésekor vegye figyelembe a következő javaslatokat:
- Az Azure NetApp Files-kötetek legfeljebb 320 MiB könyvtárméretet támogatnak. Ez az érték nem növelhető.
- A kötet könyvtárméretének túllépése után az ügyfelek akkor is helykihelyezési hibát jeleznek, ha szabad terület áll rendelkezésre a kötetben.
- Normál kötetek esetén a 320 MiB könyvtárméret nagyjából 4-5 millió fájlt jelent egyetlen könyvtárban. Ez az érték a fájlnév hosszától függ.
- A nagy kötetek architektúrája eltérő, mint a hagyományos kötetek.
- Az egyetlen könyvtárban lévő magas fájlszám problémákat okozhat a keresés során. Ha lehetséges, korlátozza egy könyvtár teljes méretét 2 MiB-re (körülbelül 27 000 fájlra), ha gyakori keresésekre van szükség.
- Ha több fájlra van szükség egyetlen könyvtárban, ennek megfelelően módosítsa a keresési teljesítményre vonatkozó elvárásokat. Bár az Azure NetApp Files indexeli a címtárfájl-listaelemeket a teljesítmény szempontjából, a keresések sok időt vehet igénybe a magas fájlszámmal.
- A fájlrendszer tervezésekor kerülje az egyszerű címtárelrendezéseket. A címtárelrendezések különböző megközelítéseiről további információt a Címtárelrendezések című témakörben talál.
- A könyvtárméret túllépésének és az új fájlok létrehozásának sikertelenségével kapcsolatos problémák megoldásához törölje vagy helyezze át a fájlokat a megfelelő könyvtárból.
Tudnivalók a címtárelrendezésekről
Az maxdirsize
érték problémákat okozhat a lapos címtárstruktúrák használatakor, ahol egyetlen mappa több millió fájlt tartalmaz egyetlen szinten. Azok a mappastruktúrák, amelyekben a fájlok, mappák és almappák egymásba vannak kapcsolva, alacsony hatással vannak a következőkre maxdirsize
: Számos könyvtárstruktúra-módszertan létezik.
A lapos könyvtárstruktúra egyetlen könyvtár, amely több fájlt tartalmaz ugyanazon könyvtár alatt.
A széles címtárstruktúra számos legfelső szintű könyvtárat tartalmaz, és a fájlok az összes könyvtárban elterülnek.
A mélykönyvtár-struktúra kevesebb legfelső szintű könyvtárat tartalmaz, sok alkönyvtárral. Bár ez a struktúra kevesebb fájlt biztosít mappánként, a fájl elérési útjának hossza problémát okozhat, ha a címtárelrendezések túl mélyek, és a fájlelérési utak túl hosszúak lesznek. A fájl elérési útjának hosszáról további információt az Azure NetApp Files fájlútvonal-hosszának ismertetése című témakörben talál.
A lapos címtárstruktúrák hatása az Azure NetApp Filesban
A lapos címtárstruktúrák (egyetlen vagy néhány könyvtárban lévő sok fájl) negatív hatással vannak számos fájlrendszerre, Azure NetApp-fájlkötetre vagy másra. A lehetséges problémák a következők:
- Memóriaterhelés
- Processzorhasználat
- Hálózati teljesítmény/késés (különösen a fájlok, műveletek,
GETATTR
READDIR
műveletek tömeges lekérdezése során)
Az Azure NetApp Files nagy méretű köteteinek kialakítása miatt a hatás maxdirsize
egyedi. Az Azure NetApp Files nagy kötetére maxdirsize
egyedi hatással van a kialakítása. A hagyományos kötetekkel ellentétben a nagy kötetek távoli, kemény hivatkozásokat használnak az Azure NetApp Filesban, hogy segítsenek átirányítani a forgalmat a különböző tárolóeszközökre, hogy nagyobb skálázást és teljesítményt nyújtsanak. Ha egybesimított könyvtárakat használ, nagyobb a helyi fájlokra mutató belső, távoli, kemény hivatkozások aránya. Ezek a távoli, kemény kapcsolatok a teljes maxdirsize
értékhez tartoznak, így egy nagy kötet gyorsabban közelítheti meg a korlátot maxdirsize
, mint egy normál kötet.
Ha például egyetlen könyvtár több millió fájllal rendelkezik, és nagyjából 85%-os távoli, kemény hivatkozásokat hoz létre a fájlrendszer számára, akkor várhatóan maxdirsize
a szokásos kötetek mennyiségének közel kétszerese fog kimerülni.
Az Azure NetApp Files címtárméreteivel kapcsolatos legjobb eredmények:
- Kerülje a lapos címtárstruktúrákat az Azure NetApp Filesban. A széles vagy mély könyvtárszerkezetek a legjobban működnek, feltéve, hogy a fájl vagy mappa elérési útja nem haladja meg a NAS protokollszabványokat.
- Ha a lapos címtárszerkezetek elkerülhetetlenek, figyelje a
maxdirsize
könyvtárakat.
Monitor maxdirsize
Egyetlen könyvtár esetén a stat
paranccsal keresse meg a könyvtár méretét.
# stat /mnt/dir_11/c5
Bár a stat
parancs egy adott könyvtár könyvtárméretének ellenőrzésére használható, előfordulhat, hogy nem olyan hatékony, ha önállóan futtatja egy könyvtáron. A legnagyobbtól a legkisebbig rendezett legnagyobb könyvtárméretek listájának megtekintéséhez az alábbi parancs biztosítja, hogy miközben kihagyja a pillanatkép-könyvtárakat a lekérdezésből.
# find /mnt -name .snapshot -prune -o -type d -ls -links 2 -prune | sort -rn -k 7 | head | awk '{print $2 " " $11}' | sort -rn
Feljegyzés
A stat parancs által jelentett könyvtárméret bájtban van. A keresési parancsban jelentett méret a KiB-ben van.
Példa
# stat /mnt/dir_11/c5
File: ‘/mnt/dir_11/c5’
Size: 322396160 Blocks: 632168 IO Block: 32768 directory
# find /mnt -name .snapshot -prune -o -type d -ls -links 2 -prune | sort -rn -k 7 | head | awk '{print $2 " " $11}' | sort -rn
316084 /mnt/dir_11/c5
3792 /mnt/dir_19
3792 /mnt/dir_16
Az előzőben a könyvtár mérete /mnt/dir_11/c5
316 084 KiB (308,6 MiB), amely megközelíti a 320 MiB korlátot. Ez körülbelül 4,1 millió fájlnak felel meg.
# ls /mnt/dir_11/c5 | wc -l
4171624
Ebben az esetben fontolja meg a korrekciós műveleteket, például a fájlok áthelyezését vagy törlését.