[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.5105 Reply
File: a47d5505845af286ff6dcb10def7467c7dac2806.jpg
Jpg, 121.83 KB, 550×777 - Click the image to expand
edit Find source with google Find source with iqdb
a47d5505845af286ff6dcb10def7467c7dac2806.jpg
Сап, добролор.
Ситуация такова. Есть роутер ASUS WL-500gP v2 с форком Олеговской прошивки (1.9.2.7-d-r1087), на котором через веб-интерфейс поднята NFS-шара. Необходимо подмонтировать эту же шару на подключенный к роутеру NAS. Хочу попробовать ради теста попробовать смонтировать эту шару на сам роутер, но пока ничего не выходит:
[root@GLaDOS root]$ pidof nfsd
338
[root@GLaDOS root]$ cat /etc/exports
# automagically generated from web settings
/tmp/mnt/ex-jffs 192.168.1.0/255.255.255.0(rw)
[root@GLaDOS root]$ ls -1 /tmp/mnt
ex-jffs
test
[root@GLaDOS root]$ mount -t nfs 192.168.1.1:/tmp/mnt/ex-jffs /tmp/mnt/test
mount: mounting 192.168.1.1:/tmp/mnt/ex-jffs on /tmp/mnt/test failed: No such device
Вопрос: где я неправ?
>> No.5108 Reply
>>5105
Дополнение: почитал man mount, глянул в netstat -a и добавил несколько опций к mount. Теперь соединение с nfsd происходит, но монтирование всё равно не работает:
[root@GLaDOS root]$ mount -t nfs -o udp,port=2049 192.168.1.1:/tmp/mnt/ex-jffs /tmp/mnt/test
mount: 192.168.1.1:/tmp/mnt/ex-jffs failed, reason given by server: Permission denied
>> No.5111 Reply
>>5105
ты опять выходишь на связь? я NAS у тебя чем сделан? FreeNAS или чем?
>> No.5113 Reply
>>5111
Что значит "опять"? Да, я спрашивал здесь о беспарольном ssh-доступе, но ты наверняка имел в виду что-то другое.
NAS на Linux с ядром 2.6 (D-Link DNS-313). Доступ к шаре требуется для леденящей душу затеи - запуска дополнительных пакетов NASа с шары, чтобы не раскручивать хард.
>> No.5155 Reply
> No such device
modprobe nfs
>> No.5156 Reply
>>5155
Ох щи, NFS же тоже требует поддержки ядром... Спасибо за подсказку, в таком случае я даже не знаю, какую сетевую файловую систему ещё можно будет попробовать.
>> No.5157 Reply
>>5156
почему бы не QFS?
>> No.5159 Reply
>>5157
Под нее опу придется пересобирать прошивку, что без доступа к COM-порту девайса не так уж и легко - сообщения ядра то в случае его паники не посмотришь. А модуль для поддержки nfs там есть.
>> No.5166 Reply
>>5159
На самом деле, как оказалось, пересборка прошивки на этом девайсе не так уж и сложна (>>hr/599, справа в центре). Сложнее с тем, чтобы собрать ядерный модуль для клиента NFS - опять-таки как оказалось, он не включен в ядро и не входит в стандартную прошивку, и мне не удалось найти уже собранный вариант даже для более распространенной DNS-323. Что ж, придётся ближе к концу недели искать тулчейн под эту прошивку и вновь пробовать свои силы в кросс-компиляции. Быть может, третья попытка окажется успешной...
>> No.5172 Reply
>>5166
Не знаю, как у DNS, но в прошивке олега(для DIR-320) модули ядра добавлять достаточно легко: просто надо указать их в конфиге ядра ($OLEGDIR/kernel/kernel.config).
>> No.5175 Reply
File: 1269887139500.png
Png, 1.00 KB, 200×20 - Click the image to expand
edit Find source with google Find source with iqdb
1269887139500.png
>>5172
Но зачем собирать модули для Олеговской прошивки самому, если на http://code.google.com/p/wl500g/downloads/list есть архив с кучей модулей на все случаи жизни, собранных под последнюю прошивку? Вот даже капча говорит, что так виртуалке легче - экономятся процессорные такты, которые могли бы уйти на компиляцию.
>> No.5176 Reply
File: 125449750818980.jpg
Jpg, 26.68 KB, 500×375 - Click the image to expand
edit Find source with google Find source with iqdb
125449750818980.jpg
>>5175
> Но зачем собирать модули для Олеговской прошивки самому, если на http://code.google.com/p/wl500g/downloads/list есть архив с кучей модулей на все случаи жизни, собранных под последнюю прошивку?
Так интересней же!
>> No.5259 Reply
Итак, ОП снова на связи.
У меня наконец-то дошли руки до моего NAS'а, и я наконец-то сделал несколько вещей:
1) чуть изменил прошивку, отключив идиотскую очистку rootfs при рестарте девайса
2) выкачал тулчейн под DNS-313 (ftp://tsd.dlink.com.tw/dns313v1.01_GPL_20080723.tgz)
3) после непродолжительных плясок с бубном собрал ядерный модуль nfs.ko, собрав на всякий случай заодно nfsd.ko, cifs.ko и ext3.ko

Теперь возникает вот какая проблема - собранный модуль не хочет загружаться в память:
root@home-storage:/mnt/sda3/home/root# insmod /mnt/HD_a2/boot-files/modules/nfs.ko
insmod: cannot insert '/mnt/HD_a2/boot-files/modules/nfs.ko': unknown symbol in module
Версии исходников ядра и готового ядра на устройстве совпадают, компиляция прошла успешно. Архитектура вроде бы тоже совпадает, иначе insmod бы выдал сообщение "invalid module format". В какую сторону теперь копать? Как обнаружить, что именно мешает загрузке модуля?
>> No.5260 Reply
>>5259
И да, некоторые модули, собранные в той же партии (например, reiserfs.ko или exportfs.ko) всё же загружаются и, возможно, даже работают - следовательно, архитектура всё же верна. Может быть, я просто забыл собрать и загрузить какие-то модули с зависимостями модуля nfs.ko, но вряд ли...
ОП
>> No.5261 Reply
File: 1270477837036.png
Png, 1.17 KB, 200×20 - Click the image to expand
edit Find source with google Find source with iqdb
1270477837036.png
>>5260
И ещё одно дополнение вдогонку. При попытке загрузки модуля nfs.ko в dmesg падают вот такие сообщения:
nfs: Unknown symbol nlmclnt_proc
nfs: Unknown symbol rpc_proc_register
nfs: Unknown symbol rpc_wake_up_task
nfs: Unknown symbol rpc_shutdown_client
nfs: Unknown symbol lockd_down
nfs: Unknown symbol lockd_up
nfs: Unknown symbol xdr_encode_opaque
nfs: Unknown symbol rpc_sleep_on
nfs: Unknown symbol rpc_init_task
nfs: Unknown symbol xdr_encode_pages
nfs: Unknown symbol rpc_setbufsize
nfs: Unknown symbol rpc_clnt_sigmask
nfs: Unknown symbol rpc_clone_client
nfs: Unknown symbol rpc_max_payload
nfs: Unknown symbol rpc_proc_unregister
nfs: Unknown symbol rpc_call_sync
nfs: Unknown symbol rpc_delay
nfs: Unknown symbol rpc_execute
nfs: Unknown symbol rpc_killall_tasks
nfs: Unknown symbol rpciod_up
nfs: Unknown symbol rpc_clnt_sigunmask
nfs: Unknown symbol rpcauth_lookupcred
nfs: Unknown symbol rpciod_down
nfs: Unknown symbol xprt_create_proto
nfs: Unknown symbol rpc_restart_call
nfs: Unknown symbol xdr_inline_pages
nfs: Unknown symbol rpc_call_setup
nfs: Unknown symbol put_rpccred
nfs: Unknown symbol rpcauth_create
nfs: Unknown symbol nfs_debug
nfs: Unknown symbol rpc_create_client
nfs: Unknown symbol xdr_shift_buf
Видимо, дело всё-таки в недособранных зависимостях - буду разбираться, что именно необходимо для старта модуля nfs.ko.
>> No.5268 Reply
File: 1270488741634.png
Png, 0.89 KB, 200×20 - Click the image to expand
edit Find source with google Find source with iqdb
1270488741634.png
>>5261
Что же, пожалуй, последний репорт на сегодня. У меня получилось загрузить модуль nfs (всего-то нужно было загрузить модули exportfs, sunrpc и lockd). Что самое интересное, после этого даже заработало монтирование NFS-шар, однако скорость работы такого решения совсем не радует - порядка 600-700 кб/с. Так-то хватит, конечно, но всё-таки интересно узнать, где находится bottleneck связки, в который упирается скорость...
ОП
>> No.5270 Reply
>>5261
Ага, судя по всему таки нужные опции забыл. Ты модуль отдельно от ядра собирал? Если да, то почему бы не попробовать собрать его сразу(make menuconfig там). В тулчейне для олеговской прошивки такое прокатывает.
>> No.5271 Reply
>>5268
Хмм. А если наоборот - поднять сервер на DNS, и смонтировать шару с ПК, то что со скоростью будет?
>> No.5273 Reply
>>5270
Да, я собирал отдельно модули (make menuconfig && make modules). Запускать там собранное мной ядро пока боюсь, так как без распаянного на девайсе локального serial-терминала отлавливать и устранять причину возможных кернел-паников будет сложно.
>>5271
Тогда появляются новые грабли. Вывод с клиента-роутера:
[root@GLaDOS root]$ mount -t nfs storage:/mnt/HD_a2 /tmp/mnt/test
mount: storage:/mnt/HD_a2 failed, reason given by server: Permission denied
Вывод с сервера-DNS-313:
root@home-storage:/mnt/sda3/home/root# tail /var/log/messages     
...
Apr  5 17:51:50 home-storage daemon.notice mountd[2085]: authenticated mount request from GLaDOS.ApertureScience:773 for /mnt/HD_a2 (/mnt/HD_a2)
Apr  5 17:51:50 home-storage daemon.warn mountd[2085]: getfh failed: Function not implemented
...
root@home-storage:/mnt/sda3/home/root# exportfs
/mnt/HD_a2    	192.168.1.1
root@home-storage:/mnt/sda3/home/root# cat /ffp/etc/exports
/mnt/HD_a2 192.168.1.1(rw,sync,subtree_check,no_root_squash)
Примечание:
роутер == GLaDOS == 192.168.1.1
DNS-313 == storage == home-storage
>> No.5277 Reply
>>5273
> Вывод с клиента-роутера:
Хмм, а роутер, случаем, не с флешки ли данные берет? Просто, там и не должно быть высокой скорости - 2.5Mb максимум.
> getfh failed: Function not implemented
Хмм, portmapper запущен на обоих машинах?
>> No.5291 Reply
File: Снимок.png
Png, 115.74 KB, 1280×1024 - Click the image to expand
edit Find source with google Find source with iqdb
Снимок.png
>>5277
> Хмм, а роутер, случаем, не с флешки ли данные берет?
С флешки. Про низкую скорость помню - в своё время именно из-за неё я и купил NAS, а не USB-бокс для харда. Однако 700 КБ/с далеки от "нормальных" для этого роутера 2.5-4 МБ/с, поэтому причина низкой скорости может крыться и где-то в другом месте.
> Хмм, portmapper запущен на обоих машинах?
Да, запущен и на роутере, и на NASе. Однако, как оказалось, причина была в другом - nfsd на NASе просто не запускается, выдавая в лог такое сообщение:
Apr 6 09:46:22 home-storage daemon.err nfsd[2618]: nfssvc: Function not implemented Гугл подсказывает, что часто эта проблема возникает при проблемах с конфигурацией поддержки nfs-сервера в ядре, однако в моём случае модуль nfsd запускается и работает. На всякий случай прикреплю скриншот с опциями его сборки.
>> No.5293 Reply
Вдогонку к >>5291: решил проблему запуском на NASе другого демона NFS (unfsd), не требующего ядерной поддержки. Скорость работы в обратном направлении получилась гораздо более оптимистичной: 3.5 МБ/с на запись и 5 МБ/с на чтение. Видимо, крайне низкая скорость действительно объяснялась медленным USB-контроллером роутера.
>> No.5300 Reply
File: 98c86b680e882c45864aa5cbe6a28f8096ec167c.jpg
Jpg, 190.85 KB, 754×950 - Click the image to expand
edit Find source with google Find source with iqdb
98c86b680e882c45864aa5cbe6a28f8096ec167c.jpg
Ох чёрт побери, и зачем только я взялся городить эти костыли... Теперь появилась очередная проблема. NFS-шара с роутера монтируется на NAS, с неё успешно запускается софт - всё почти работает. Однако, некоторые приложения (например, vnstat, да наверняка и не он один) используют для блокировки файлов системный вызов flock, использование которого не поддерживается для файловой системы NFS. Как результат, такие приложения выдают сообщения об ошибке при блокировке типа такого:
root@home-storage:/mnt/sda3/home/root# vnstat -u -i egiga0 --config /ffp/etc/vnstat.conf 
Error: Locking database file for read failed:
No locks available (37)
Как решить эту проблему, я пока так и не понял, поэтому активно постигаю в гугле опыт тех, кто с ней уже сталкивался.
>> No.5301 Reply
>>5300
Попробуй заюзать AFS.
>> No.5304 Reply
File: 1270574592199.png
Png, 1.02 KB, 200×20 - Click the image to expand
edit Find source with google Find source with iqdb
1270574592199.png
>>5301
> The Andrew File System (AFS) is a distributed networked file system which uses a set of trusted servers to present a homogeneous, location-transparent file name space to all the client workstations. It was developed by Carnegie Mellon University as part of the Andrew Project.[when?] It is named after Andrew Carnegie and Andrew Mellon. Its primary use is in distributed computing.
Слишком круто будет, боюсь. В конце концов, требуется всего лишь расшарить одну директорию с роутера (MIPS, 260 МГц, 32 MB RAM) на NAS (ARM, 300 МГц, 64 метра RAM). Да и потом:
> A fourth implementation exists in the Linux kernel source code since at least version 2.6.10[3]. Committed by Red Hat, this is a fairly simple implementation still in its early stages of development and therefore incomplete.[4]
Следовательно, а) роутер на ядре 2.4.37 её гарантированно не поддерживает, и б) велика вероятность возникновения багов, разобраться с которыми самостоятельно я не смогу.

С другой стороны, среди сетевых kernel-based файловых систем выбор на самом деле невелик - кроме NFS, самбы и AFS, по большому счёту остаётся лишь CodaFS и NCPFS, которые опять-таки не поддерживаются ядрами 2.4. Поэтому лично я вижу лишь три варианта:
1) Забросить NFS и использовать CIFS (наименее геморройный способ, ящитаю).
2) Вооружиться терпением и допилить NFS.
3) Поглядеть в сторону userspace-файловых систем - например, sshfs.


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]