Страница 1 из 1

Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-20 10:38:35
densan
Здравствуйте.
Имею FreeBSD 6.2-RELEASE #0, на котором стоит zoneminder-1.22.3,1. Столкнулся с такой проблемой. После нескольких месяцев записи. система стала ругаться на то, что не может создать каталог, как выяснилось был превышел лимит на 32К подкаталогов в одном каталоге. Обновляться до FreeBSD 7 чтобы использовать ZFS пока не могу. Поиск дал линк http://lists.freebsd.org/pipermail/free ... 01001.html где есть описание исправлений, которые необходимо внести в исходники, чтобы решить эту проблему. (http://www.maths.tcd.ie/~dwmalone/dircount_hack).
Связи с тем, что в этой ОС я только начинаю осваиваться прошу скорректировать мои действия.
1. в соотвествии с http://www.maths.tcd.ie/~dwmalone/dircount_hack правлю файлы в /usr/src/sbin/fsck_ffs
2. пересобираю ядро.
3. имею следующее:

Код: Выделить всё

df -h
Filesystem            Size    Used   Avail Capacity  Mounted on
/dev/mirror/gm0s1a    496M    178M    278M    39%    /
devfs                 1.0K    1.0K      0B   100%    /dev
/dev/mirror/gm0s1e    496M    290M    166M    64%    /tmp
/dev/mirror/gm0s1f    137G     89G     36G    71%    /usr
/dev/mirror/gm0s1d    2.9G    605M    2.1G    22%    /var
/dev/ad7s1d           450G    302M    414G     0%    /vds
devfs                 1.0K    1.0K      0B   100%    /var/named/dev
в /etc/fstab строка

Код: Выделить всё

/dev/ad7s1d                     /vds            ufs     rw              2
vds - отдельный HDD на который пишутся данные видеонаблюдения.
какие должны быть мои дальнейшие дествия?

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-20 11:56:12
paradox
помоему оно как то по другому можно изменить
sysctl -a смотреть надо

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-20 13:42:12
densan
глубокими знаниями в данной ОС не располагаю. Если есть описание решить данную проблему по-другому - дай ссылку плиз. Во вложении вывод sysctl -a

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-22 15:23:54
supchik
я тоже далеко не профи, но я смотрел бы в эту сторону сначала:
http://www.lissyara.su/?id=1123

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-25 16:47:05
densan
supchik
мне нужно увиличить не количесвто файлов в каталоге (что может tunefs), а количесвто вложенных подкаталогов.

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-25 17:14:16
Alex Keda

Код: Выделить всё

lissyara# pwd
/usr/home/lissyara/test
lissyara# sh test.sh
lissyara# pwd
/usr/home/lissyara/test
lissyara# ll
total 4
drwxr-xr-x  3 root  wheel   512B 25 дек 17:12 1
-rw-r--r--  1 root  wheel    81B 25 дек 17:12 test.sh
lissyara# ll 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60/61/62/63/
total 0
lissyara# echo test >> 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60/61/62/63/file.txt
lissyara# more 1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60/61/62/63/file.txt
test
lissyara# more test.sh
#!/bin/sh
i=1

while test $i != 64
do

        mkdir -p $i
        cd $i
        i=`expr $i + 1`
done
lissyara#     
вы уверены что понимаете какой именно лимит вам надо увеличить?

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-25 17:15:45
Alex Keda
стоп. 32 тысячи вложенных директорий? тысячи? именно уровень вложенности?
впрочем - неважно - сработает именно то ограничение которое подразумевалось в предыдущем посте.

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-25 17:27:11
Alex Keda
почитал тред по линкам - вас устраивает то что fsck может всё посносить нафиг? =)))

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-26 8:28:44
densan
lissyara в одном каталоге больше 32 000 подкаталогов, на одном уровне вложености.
Чувствую что моих знаний недостаточно, попробую в новогоние праздники все это хозяйство перевести на FreeBSD 7 и использовать ZFS.

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-26 9:47:03
Alex Keda
мда... действительно. работа такого скрипта:

Код: Выделить всё

lissyara# more test.sh
#!/bin/sh
i=1

while test $i != 3276
do

        mkdir -p $i ${i}_1 ${i}_2 ${i}_3 ${i}_4 ${i}_5 ${i}_6 ${i}_7 ${i}_8 ${i}_9 ${i}_0
        echo $i
        i=`expr $i + 1`
done
lissyara#     
закончилась так:

Код: Выделить всё

mkdir: 3275_7: Too many links
mkdir: 3275_8: Too many links
mkdir: 3275_9: Too many links
mkdir: 3275_0: Too many links
3275
lissyara# ll | wc -l
   32767
lissyara# more test.sh
но страшно другое:

Код: Выделить всё

lissyara$ ls -alh /usr/home/lissyara/ | grep tes
drwxr-xr-x  32767 root      wheel   508K 26 дек 09:44 test
lissyara$   
директория весит 508 килобайт.. ужасть какая-то...

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-26 10:11:59
manefesto
а ты хотел

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-26 10:25:16
Alex Keda

Код: Выделить всё

[root@orabackup new]# ls | wc -l
 437208
[root@orabackup new]# uname -a
Linux orabackup.xxx.local 2.4.21-32.ELsmp #1 SMP Wed May 18 17:49:28 EDT 2005 i686 i686 i386 GNU/Linux
[root@orabackup new]#     
типа того.
правда - первая команда молотила почти пять минут =)))

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-26 10:37:07
manefesto
э...линукс в этом плане круче ?

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-26 13:32:58
Alex Keda
ну, думаю zfs и тут обойдёт ext3/ext4 =)
=======
не забывай, что ufs - уже не один и не два десятка лет.

Re: Преодаление лимита в 32К подкаталогов в UFS

Добавлено: 2008-12-26 19:47:33
manefesto
ну ты явно утрируешь.
ufs переписывали же, изначально был ffs.
и кстати если я не ошибаюсь, то во фре UFS2.