Filesystem monitoring question
Eric Anderson
anderson at centtech.com
Fri Nov 18 15:48:51 GMT 2005
Cornelis Swanepoel wrote:
> 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.
Here's a non-optimal way, but just tossing it in anyway: make a clone
of nullfs (call it monitorfs say), modify it so that it outputs the
write's using a printf (or any other more efficient method). Then you
kldload your monitorfs module, and your tool watches the output.
Eric
--
------------------------------------------------------------------------
Eric Anderson Sr. Systems Administrator Centaur Technology
Anything that works is better than anything that doesn't.
------------------------------------------------------------------------
More information about the freebsd-hackers
mailing list