[Update Apr 11th, 2009:]
All ZFS movies on this site:
ZFS vs UFS
ZFS as a movie actor
and my Youtube Playlist:
and my Channel:
To begin, I started with a DTrace script like this:
#pragma D option quiet
printf("%i,%i,%i,%i,%i\n",(timestamp/1000000),args->dev_minor,args->b_lblkno,args->b_flags & B_WRITE,args->b_bcount);
This resulted in a file beginning like that:
[.... continued ...]
The columns mean: Timestamp (in milliseconds), minor device node of device, logical block number, read/write (read=0,write=256), number of bytes read or written starting from the given logical block.
This data file was then processed with a nifty perl script (using GD and the libgd graphics library), displaying each pixel as a block range of the device. Each read requests makes the dot greener, each write makes the underlying dot more red. For 10 seconds of data, I made a frame - at the end I had an animated gif which is funny to watch. You see growing "red" areas (write) and more or less random read i/o. And: You see the spool area, where files are written and read afterwards (the middle of the picture) - this is the heavy loaded postfix spool queue.
The left side of the graphic shows device 448, the right side device 512. Both are the two parts of a zpool mirror - hence the rather identical access patterns.
View animated gif but be warned: The file is 5 MB in size and it depends on your browser whether it can handle such large animated gifs - or not.