obmedzenia filesystemu UFS2: Too many links

Jan Kulveit jk-freebsdcz at ks.cz
Tue Jan 16 12:16:59 CET 2007


Zdravim,

ze se jeste vracim k puvodnimu tematu

On Mon, Jan 15, 2007 at 10:35:54AM +0100, Lubomir Host wrote:
> Zdravim,
>
> chcem sa spytat, ci je mozne na nejakej verzii FreeBSD s nejakym
> suborovym systemom (napr UFS alebo UFS2) mat v jednom adresari viac ako
> 32766 podadresarov. Inymi slovami, aby presiel tento test (benchmark):
>
...

> Je tento problem riesitelny bez zmeny platformy?
>

1. Cekanim na dalsi verzi UFS. Cituju:
http://www.freebsd.org/news/status/report-jan-2005-mar-2005.html

]Many subdirs for UFS
]URL:
]http://groups-beta.google.com/group/muc.lists.freebsd.fs/browse_frm/thread/a36
]
]Contact: David Malone <dwmalone at FreeBSD.org>
]
]I'm currently looking at the limit on the number of subdirectories a
]directory can have in UFS. There is currently a limit of 32K subdirectories
]because of the 16 bit link count field in both struct stat and the on-disk
]inode format. The thread above shows that dirhash provides acceptable
]performance for directories with 100k subdirectories using a prototype
]patch. Two options for allowing many subdirectories seem to exist: changing
]the link counting scheme for directories and expanding the link count
field.
]The prototype patch implements the first scheme and there are plans to
]investigate the second scheme (which may require an ABI change).

Tezko rict kam to postoupilo, ale myslim ze za mail to stoji,
prinejmesim by to pripomenulo ze nekoho takovy problem trapi :-)

2. pouzitim ve vyse odkazovane diskusi uvedeneho patche, ovsem
jestli si troufnout nasadit to na produkcni server... na druhou
stranu ten pocet linku je cislo prakticky k nicemu: v uvedenem
pouziti by asi hlavni problem mohl byt s fsck v pripade nejakych
problemu

3. zmenama v nedobre navrzene aplikaci (bez ohledu na limity
filesystemu je ponekud odvazne pozadovat od OS efektivni pristup
k adresari s opravdu velkym poctem polozek... )

3.a.
IMO prokazatelne rozumne reseni je cosi-jako-index s pouzitim prostredku 
filesystemu: jako jmena nejeke hashe, prvni znaky jako jmena podadresaru,
typu 7/7a/jmenosouboru ...  Pro pripad, ze byste to opet nekdo psali,
tak v pripade aplikaci ktere jsou zaroven GPL a PHP lze vcetne resizovani 
obrazku a podobnych vymyslu prevzit napr. z Mediawiki. (Pokud to funguje 
na strance s navstevnosti asi tak kolem mista #10 a poctem souboru asi 
tak 1M x(pocet resizovanych velikosti))

3.b.
Paradoxne by asi fungoval i navrat k puvodni silenosti (tj uplne plocha 
struktura a vsechny soubory v jednom adresari) + vhodne nastaveni systemu,
aby mohly naplno zabrat dirhashe. Pozornosti doporucuju sysctl
vfs.ufs.dirhash_maxmem: 2097152
vfs.ufs.dirhash_mem: ? 

jk



More information about the Users-l mailing list