Filesystem monitoring question

Cornelis Swanepoel rools.ster at gmail.com
Fri Nov 18 15:29:43 GMT 2005


Before all else let me just say that my programming experience is confined
to userland but I am very eager to learn about interaction with the FreeBSD
kernel.

There are many possible answers to this question. Can you explain
> more about exactly what you need?



This will be a server setup from scratch to accomodate the requirements.
Currently the share is a full partition but it can be setup on the new
server as a directory.
A number of SMB and NFS clients, around 30, will need to write to this
directory.
Writing to the directory is 24/7 since some clients VPN into the network
from different time zones.

When they have completed a write operation I need to trigger some code that
will act upon the file just written.
This code generates a unique id for the file, stats the file, compresses the
file(if over set limit), generates a preview of the file and stores some
info about the file and its owner in a MySQL db and a log on a seperate
machine.
It then moves the file to a different location on the same machine (which is
inaccesible to the NFS and SMB clients) and renames it as its unique
identifier.

At this point it is out of my hands.


Depending on what you can and cannot access ... If everything .. goes
> through VFS, that would work. But if
>
it's a production server, you might not be able to get permission to
> fiddle with the kernel.



This machine will be built from scratch and any kernel fiddling is possible.

ktrace might do everything you need, but I understand that it has an
> impact on system performance under load. I don't know if that matters
> to you at all. It also might be awkward if the SMB and NFS servers
> are kernel processes. (I just don't know; I've only used ktrace on
> ordinary user-land processes, and not even much of that.)



>From the limited research I've done it seems that ktrace might not be the
answer and I've been looking more into kqueue.
I will definitely look into the VFS option.

As I said at the start, this is all new to me and I greatly appreciate the
feedback so far.

If my explaination of the requirements is lacking please let me know
specifically and I can elaborate.

Thanks again and any further suggestions would be much appreciated.

Cornelis


More information about the freebsd-hackers mailing list