Vysvětlení velikostí adresářů ve službě Azure NetApp Files

Když se soubor vytvoří v adresáři, přidá se položka do skrytého indexového souboru ve svazku Azure NetApp Files. Tento indexový soubor pomáhá sledovat stávající inodes v adresáři a pomáhá urychlit vyhledávání požadavků na adresáře s velkým počtem souborů. Při přidání položek do tohoto souboru se velikost souboru zvýší (ale nikdy nezmenší) rychlostí přibližně 512 bajtů na položku v závislosti na délce názvu souboru. Delší názvy souborů přidávají do souboru větší velikost. Symbolické odkazy také přidávají položky do tohoto souboru. Tento koncept se označuje jako velikost adresáře, což je společný prvek ve všech systémech souborů založených na Linuxu. Velikost adresáře není maximálním celkovým počtem souborů na jednom svazku Azure NetApp Files. To je určeno maxfiles hodnotou.

Ve výchozím nastavení při vytvoření nového adresáře spotřebuje 4 KiB (4 096 bajtů) nebo osm 512bajtových bloků. Velikost nově vytvořeného adresáře z linuxového klienta můžete zobrazit pomocí příkazu statistiky.

# mkdir dirsize 
# stat dirsize 
File: ‘dirsize’ 
Size: 4096            Blocks: 8          IO Block: 32768  directory 

Velikosti adresářů jsou specifické pro jeden adresář a nekombinují se ve velikostech. Pokud má svazek například 10 adresářů, může každý přistupovat k limitu velikosti adresáře 320 MiB v jednom svazku.

Určení, jestli se adresář blíží velikosti limitu

Pro adresář 320-MiB je počet bloků 655360, přičemž každá velikost bloku je 512 bajtů. (To znamená 320x1024x1024/512.) Toto číslo se pro adresář 320-MiB překládá na přibližně 4 až 5 milionů souborů. Skutečný počet maximálních souborů však může být nižší v závislosti na faktorech, jako je počet souborů s jinými znaky než ASCII v adresáři.

Pomocí příkazu z klienta můžete stat zjistit, jestli se adresář blíží maximálnímu limitu velikosti metadat adresáře (320 MB). Pokud dosáhnete maximálního limitu velikosti pro jeden adresář pro Azure NetApp Files, dojde k chybě No space left on device .

Pro adresář 320 MB je počet bloků 655 360, přičemž každá velikost bloku je 512 bajtů. (To znamená 320x1024x1024/512.) Toto číslo se pro adresář 320 MB překládá na přibližně 4 miliony souborů. Skutečný počet maximálních souborů však může být nižší v závislosti na faktorech, jako je počet souborů s jinými znaky než ASCII v adresáři. Informace o monitorování maxdirsize naleznete v tématu Monitorování maxdirsize.

Důležité informace o velikosti adresáře

Při práci s prostředím s vysokým počtem souborů zvažte následující doporučení:

  • Svazky Azure NetApp Files podporují až 320 MiB pro velikosti adresářů. Tuto hodnotu nelze zvětšit.
  • Po překročení velikosti adresáře svazku se klientům zobrazí chyba nedostatek místa, i když je na svazku dostupné volné místo.
  • U běžných svazků představuje velikost adresáře MiB přibližně 4 až 5 milionů souborů v jednom adresáři. Tato hodnota závisí na délkách názvu souboru.
  • Velké svazky mají jinou architekturu než běžné svazky.
  • Vysoké počty souborů v jednom adresáři můžou při hledání představovat problémy s výkonem. Pokud je to možné, omezte celkovou velikost jednoho adresáře na 2 MiB (přibližně 27 000 souborů), pokud je potřeba časté hledání.
    • Pokud v jednom adresáři potřebujete více souborů, odpovídajícím způsobem upravte očekávání výkonu vyhledávání. Zatímco Azure NetApp Files indexuje výpisy adresářových souborů pro zajištění výkonu, vyhledávání může nějakou dobu trvat s vysokým počtem souborů.
  • Při návrhu systému souborů se vyhněte rozložení plochých adresářů. Informace o různých přístupech k rozložením adresářů najdete v tématu O rozloženích adresářů.
  • Pokud chcete vyřešit problémy s překročením velikosti adresáře a nejde vytvořit nové soubory, odstraňte nebo přesuňte soubory z příslušného adresáře.

O rozloženích adresářů

Tato maxdirsize hodnota může způsobit obavy, když používáte ploché adresářové struktury, kde jedna složka obsahuje miliony souborů na jedné úrovni. Struktury složek, ve kterých jsou soubory, složky a podsložky interspersed, mají malý dopad na maxdirsize. Existuje několik metodologií adresářové struktury.

Plochá adresářová struktura je jeden adresář s mnoha soubory pod stejným adresářem.

Diagram ploché adresářové struktury

Široká adresářová struktura obsahuje mnoho adresářů nejvyšší úrovně se soubory rozloženými napříč všemi adresáři.

Diagram široké adresářové struktury

Struktura hlubokého adresáře obsahuje méně adresářů nejvyšší úrovně s mnoha podadresáři. I když tato struktura poskytuje méně souborů na složku, délky cesty k souboru se můžou stát problémem, pokud jsou rozložení adresářů příliš hluboké a cesty k souborům se stanou příliš dlouhými. Podrobnosti o délkách cesty k souboru najdete v tématu Vysvětlení délky cest k souborům v Azure NetApp Files.

Diagram hloubkové adresářové struktury

Dopad plochých adresářových struktur ve službě Azure NetApp Files

Ploché adresářové struktury (mnoho souborů v jednom nebo několika adresářích) mají negativní vliv na širokou škálu systémů souborů, svazků Azure NetApp File nebo jiných. Mezi potenciální problémy patří:

  • Přetížení paměti
  • Využití procesoru
  • Výkon/latence sítě (zejména při hromadných dotazech na soubory, GETATTR operace, READDIR operace)

Vzhledem k návrhu velkých svazků Azure NetApp Files je dopad maxdirsize jedinečný. Velký objem maxdirsize služby Azure NetApp Files má jedinečný vliv na jeho návrh. Na rozdíl od běžného svazku používá velký svazek vzdálené pevné odkazy v Azure NetApp Files k přesměrování provozu mezi různými úložnými zařízeními, aby se zajistilo větší škálování a výkon. Při použití plochých adresářů existuje vyšší poměr interních vzdálených pevných odkazů k místním souborům. Tyto vzdálené pevné odkazy se započítávají do celkové maxdirsize hodnoty, takže velký svazek může přistupovat k limitu maxdirsize rychleji než běžný svazek.

Pokud má například jeden adresář miliony souborů a generuje přibližně 85% vzdálených pevných odkazů pro systém souborů, můžete očekávat maxdirsize , že bude vyčerpán téměř dvakrát, protože běžný svazek.

Nejlepších výsledků s velikostmi adresářů ve službě Azure NetApp Files:

  • Vyhněte se plochým adresářovým strukturám ve službě Azure NetApp Files. Široké nebo hluboké adresářové struktury fungují nejlépe, pokud délka cesty souboru nebo složky nepřekračuje standardy protokolu NAS.
  • Pokud jsou ploché adresářové struktury nepotřebné, monitorujte maxdirsize adresáře.

Monitor maxdirsize

Pro jeden adresář použijte stat příkaz k vyhledání velikosti adresáře.

# stat /mnt/dir_11/c5 

stat I když se dá příkaz použít ke kontrole velikosti adresáře konkrétního adresáře, nemusí být tak efektivní ho spouštět jednotlivě pro jeden adresář. Pokud chcete zobrazit seznam největších velikostí adresářů seřazených od největších po nejmenší, následující příkaz poskytuje při vynechání adresářů snímků z dotazu.

# find /mnt -name .snapshot -prune -o -type d -ls -links 2 -prune | sort -rn -k 7 | head | awk '{print $2 " " $11}' | sort -rn 

Poznámka:

Velikost adresáře hlášená příkazem stat je v bajtech. Velikost hlášená příkazem find je v KiB.

Příklad

# 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 

V předchozím případě je velikost /mnt/dir_11/c5 adresáře 316 084 KiB (308,6 MiB), která se blíží limitu 320 MiB. To odpovídá přibližně 4,1 milionu souborů.

# ls /mnt/dir_11/c5 | wc -l
4171624

V takovém případě zvažte opravné akce, jako je přesunutí nebo odstranění souborů.

Více informací