Re: client (-1) cannot open NBD device /dev/nda or similar: Nosuch file or directory
Peter Breuer <[email protected]> Tue, 4 Nov 2008 16:23:50 +0100 (CET)
| Newsgroups | gmane.linux.enbd.general |
|---|---|
| Message-ID | <[email protected]> |
Hi Volker ... "Also sprach Volker Stoppe:" > Hallo list! > > I am trying to implement ENBD but I stuck at the moment when I want to > connect from the client to the Server. Compiation of the source works > fine, the modules are loading without a problem and I have no problem > starting with the server. I would be -very- glad if someone could help! > Nobody in the web seems to have my problem. I followed the instructions > from: http://www.it.uc3m.es/~ptb/nbd/ but there has to be something > missing. It is definitly not sudo (installed). Strange. Let's see (log output and /proc/nbdinfo is what I generally need to make diagnosis complete - te's have a go). > Environment: > Distri: Debian 4.0 > Kernel: 2.6.18-6-686 > ENBD: 2.4.35 > > PS: I know that client and server have the same hostname (clones). > > Some output of the Systems: > > == Server == > debian32:~/enbd# lsmod | grep enbd > enbd_ioctl 5920 0 > enbd 583032 1 enbd_ioctl > > debian32:~/enbd# ./enbd-server 4001 /dev/sda1 Listens on port 4001. > enbd-server[3843]: server: will open resources in mode linear > enbd-server[3843]: looking for blksize of /dev/sda1 with fstat... > enbd-server[3843]: blksize of /dev/sda1 is 4096 > enbd-server[3843]: set final blksize of whole resource to 4096 > enbd-server[3843]: looking for size of fd 4 with seek SEEK_END... > enbd-server[3843]: set size of fd 4 to 98668544 > enbd-server[3843]: server: set blksize to 4096. > enbd-server[3843]: size of exported file/device is 98668544B (24089 blocks) > enbd-server[3844]: server (-2) locked /var/state/enbd/server-1Bu49m.client_ips > enbd-server[3844]: server (-2) unlocked /var/state/enbd/server-1Bu49m.client_ips > enbd-server[3844]: server (-2) set new signal handlers Looks like it's doing something. I note the server is running without an explicit session identifier (-i ...) and the identifier (1Bu49m) has been assigned randomly. > debian32:~/enbd# ps aux | grep enbd > root 3844 0.0 0.1 1844 664 pts/0 S Nov03 0:00 ./enbd-server 4001 /dev/sda1 > root 3872 0.0 0.1 2872 748 pts/0 S+ 02:12 0:00 grep enbd > > debian32:/usr/src/enbd-2.4.35# cat /proc/nbdinfo > Device a-p: Closed Well, no client, I guess. Nobody seems to have connected. > Also the test didn't work: > debian32:/usr/src/enbd-2.4.35# make test > enbd-server[5969]: server (-2) sighandler propagates signal 15 > enbd-server[5969]: server (-2) sighandler terminates safely on signal 15 > /tmp/enbd-server localhost/8:3033 /tmp/core0 /tmp/core1 -i NBDabcdefNBD -t 120 -b 1024 -l -w 500 -h 10000 > enbd-server[6055]: server: will open resources in mode linear > enbd-server[6055]: looking for size of fd 4 with seek SEEK_END... > enbd-server[6055]: set size of fd 4 to 4194304 > enbd-server[6055]: looking for size of fd 5 with seek SEEK_END... > enbd-server[6055]: set size of fd 5 to 4194304 > enbd-server[6055]: size of exported file/device is 8388608B (8192 blocks) > enbd-server[6056]: server (-2) locked /var/state/enbd/server-NBDabcdefNBD.client_ips > enbd-server[6056]: server (-2) unlocked /var/state/enbd/server-NBDabcdefNBD.client_ips > enbd-server[6056]: server (-2) set new signal handlers > /tmp/enbd-client localhost:3033 -n 4 -b 1024 -i NBDabcdefNBD -t 120 -p 5 /dev/nda > enbd-client[6057]: enbd-client cmdline: #channels is 4 > enbd-client[6057]: enbd-client cmdline: blksize is 1024 > enbd-client[6057]: enbd-client cmdline: identifier is "NBDabcdefNBD" > enbd-client[6057]: enbd-client cmdline: negotiation timeout is 120 > enbd-client[6057]: enbd-client cmdline: pulse intvl is 5 > enbd-client[6057]: enbd-client #5757 main[0]: client (-1) cannot open NBD device /dev/nda or similar: No such file or directory Oh - well, that's clear! You don't have the /dev/nda, /dev/ndaS, /dev/ndaX, /dev/ndaSX devices nodes. You need to make them .. there's a MAKEDEV script provided. Alternatively, you can drop in the udev script provided. It's in the archive .. % ls -lR nbd/etc/udev/ nbd/etc/udev/: -rw-r--r-- 1 ptb kmem 1019 Oct 13 2006 enbd.rules drwxrwxr-x 2 ptb kmem 1024 Apr 13 2008 rules.d/ nbd/etc/udev/rules.d: lrwxrwxrwx 1 ptb kmem 13 Apr 13 2008 090-enbd.rules -> ../enbd.rules > client not running > cannot open /dev/nda rw: Invalid argument > done Well, that would be the case. > == Output of the Client == > > debian32:~/enbd# ls /dev/nda* > /dev/nda > > debian32:~/enbd# ps aux | grep enbd > root 3790 0.0 0.1 2876 752 pts/0 S+ 02:15 0:00 grep enbd > > debian32:~/enbd# ./enbd-client 192.168.1.20:4001 -n 1 /dev/nda1 > enbd-client[3788]: enbd-client cmdline: #channels is 1 > enbd-client[3788]: enbd-client #5757 main[0]: client (-1) cannot open NBD device /dev/nda1 or similar: No such file or directory Same. > I am thankful for every useful hint! Needs the /dev/nd[S]xy stuff, I would say. Try the MAKEDEV script. % ls nbd/scripts/ MAKEDEV REMOVEDEV postinst That gets installed somewhere ... run dpkg -L on the .deb to see where it goes (I don't have a package handy). Better check that the udev enbd.rules script refernces wherever it is put too! Tell me if not :). Regards Peter