nbdview ------- nbdview is a small Tcl/Tk program that lets you visualize reads and writes happening to an nbdkit server in real time. To use it you will need to start your nbdkit server with the log filter. For example, using the memory plugin (but any plugin may be used): size=$((64 * 1024 * 1024)) delay=40ms nbdkit --filter=log --filter=delay \ memory \ size=$size \ logfile=/tmp/log \ rdelay=$delay wdelay=$delay & In this example I have also added a delay which helps to make the stuff happening on screen easier to see and more "animated", but it is not required. Then start nbdview.tcl specifying the log file and virtual size: ./nbdview.tcl /tmp/log $size & Note that only small disk sizes really work (larger sizes would require too many pixels!) With the defaults compiled into nbdview.tcl: 4K block size, 128 x 128 pixel canvas, you can display at most 64MB. Then you can write to the NBD server using ordinary tools such as qemu, qemu-io, guestfish, etc. and observe the reads and writes to the disk. nbdraid ------- As above but allowing you to display operations to multiple (RAID) devices. Start N copies of nbdkit like this: size=$((64 * 1024 * 1024)) delay=40ms rm /tmp/error$i rm /tmp/sock$i nbdkit -U /tmp/sock$i \ --filter=error --filter=log --filter=delay \ memory \ size=$size \ logfile=/tmp/log$i \ rdelay=$delay wdelay=$delay \ error-rate=1 error-file=/tmp/error$i & Then start nbdraid.tcl: ./nbdraid $N $size /tmp/log%d /tmp/error%d