Date: Sun, 31 Jan 2010 00:55:21 +0200 From: Mikolaj Golub <to.my.trociny@gmail.com> To: Alan Aldrich <aaldrich@ihouseweb.com> Cc: freebsd-net@freebsd.org Subject: Re: NFS mount properties Message-ID: <86wryzurs6.fsf@kopusha.onet> In-Reply-To: <C8C37242-1FE0-46F4-B66B-BDAF8995FED0@ihouseweb.com> (Alan Aldrich's message of "Thu\, 28 Jan 2010 08\:46\:33 -0800") References: <C8C37242-1FE0-46F4-B66B-BDAF8995FED0@ihouseweb.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 28 Jan 2010 08:46:33 -0800 Alan Aldrich wrote: > I am trying to determine how to examine the actual properties of an > nfs mount in FreeBSD > In CentOS one can 'cat /proc/mounts' to determine all of the mount > properties. > Specifically I am trying to confirm whether the mount is using TCP or > UDP as I want it to > be TCP . Is there some similar way to tell in FreeBSD? > > My fstab entry says this > 192.168.44.55:/mcp/home /net nfs rw,async,-d,-3,-s,-i,noatime,- > T 0 0 > It mounts fine, > but I want to confirm that it is actually mounting with TCP and not > UDP and cannot figure out > what tool will tell me this. > > 'mount' tells me this > 192.168.44.55:/mcp/home on /net (nfs, asynchronous, noatime) > > but not whether it is mounted TCP or UDP If it is mounted with TCP u UDP you can find out with netstat, checking tcp connections to 2049 port. If you see established connections like below tcp4 0 0 10.0.0.110.895 10.0.100.2.2049 ESTABLISHED then tcp is used. Certainly if you have several mounts on the same ip it complicates the situation :-) I don't know any such tools that would report this info and would glad to hear about them, but if I really needed this info I could use the universal tool -- kgdb :-) zhuzha:~% sudo kgdb (kgdb) set print pretty (kgdb) p *mountlist.tqh_first.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next $26 = { ... mnt_list = { tqe_next = 0xc5e9a78c, tqe_prev = 0xc5e9acac }, ... mnt_opt = 0xc61f7760, ... mnt_stat = { f_version = 537068824, f_type = 4, f_flags = 0, f_bsize = 512, f_iosize = 32768, f_blocks = 284354052, f_bfree = 137997300, f_bavail = 115248976, f_files = 18394110, f_ffree = 16921938, f_syncwrites = 0, f_asyncwrites = 0, f_syncreads = 0, f_asyncreads = 0, f_spare = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, f_namemax = 255, f_owner = 0, f_fsid = { val = {67174148, 4} }, f_charspare = '\0' <repeats 79 times>, f_fstypename = "nfs", '\0' <repeats 12 times>, f_mntfromname = "srv01.ua1:/var/public\000\004(\000\000\000\000\000\214\004\b\003\000\000\000\003\000\000\000P\000\000\000X\002\000\000\200»\000\000\000ÐBÆ\000\000\000\000 \a \aÀ\a7Æ \a7ÆÀx\037Æ°x\037Æ\004\000\000\000\v\000\000", f_mntonname = "/mnt/0", '\0' <repeats 81 times> }, ... } (kgdb) p *mountlist.tqh_first.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_opt.tqh_first $27 = { link = { tqe_next = 0xc6370560, tqe_prev = 0xc61f7760 }, name = 0xc61f7770 "rw", value = 0xc61f7780, len = 1, pos = 0, seen = 0 } (kgdb) p *mountlist.tqh_first.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_opt.tqh_first.link.tqe_next $28 = { link = { tqe_next = 0xc6370580, tqe_prev = 0xc6370520 }, name = 0xc61f77a0 "soft", value = 0xc61f77b0, len = 1, pos = 1, seen = 1 } (kgdb) p *mountlist.tqh_first.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_opt.tqh_first.link.tqe_next.link.tqe_next $29 = { link = { tqe_next = 0xc63705a0, tqe_prev = 0xc6370560 }, name = 0xc61f77c0 "intr", value = 0xc61f7810, len = 1, pos = 2, seen = 1 } (kgdb) p *mountlist.tqh_first.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_opt.tqh_first.link.tqe_next.link.tqe_next.link.tqe_next $30 = { link = { tqe_next = 0xc63705e0, tqe_prev = 0xc6370580 }, name = 0xc61f77d0 "rsize", value = 0xc61f77e0, len = 6, pos = 3, seen = 1 } (kgdb) p *mountlist.tqh_first.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_opt.tqh_first.link.tqe_next.link.tqe_next.link.tqe_next.link.tqe_next $31 = { link = { tqe_next = 0xc6370620, tqe_prev = 0xc63705a0 }, name = 0xc61f77f0 "wsize", value = 0xc61f7800, len = 6, pos = 4, seen = 1 } (kgdb) p *mountlist.tqh_first.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_list.tqe_next.mnt_opt.tqh_first.link.tqe_next.link.tqe_next.link.tqe_next.link.tqe_next.link.tqe_next $32 = { link = { tqe_next = 0xc6370640, tqe_prev = 0xc63705e0 }, name = 0xc61f7820 "tcp", value = 0xc61f7830, len = 1, pos = 5, seen = 1 } If I needed to do this frequently I would write a gdb script taking as an example nice scripts from jhb :-) http://people.freebsd.org/~jhb/gdb/ -- Mikolaj Golub
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?86wryzurs6.fsf>