Ensure datasets are not busy when taking a snapshot
This is a very common failure mode for image-backed datasets:
About to: '/usr/testbed/bin/sshtb -n -host c220g5-111012 /usr/local/bin/create-versioned-image METHOD=frisbee SERVER=184.108.40.206 IMAGENAME=praxis-PG0/bench-setup:0 BSNAME=bs IZOPTS=N' as uid 0 c220g5-111012: started image capture for '/.amd_mnt/ops.wisc.cloudlab.us/proj/praxis-PG0/images/bench-setup/bench-setup.ndz.tmp', waiting up to 90 minutes total or 8 minutes idle. umount: /benchdata: target is busy. Could not unmount /dev/mapper/emulab-bs! Could not parse all arguments FAILED: Returned error code 2 generating image ...
We want to unmount the filesystem to get a consistent snapshot of the filesystem, but the user has a process active on the dataset at that time.
Things to look at:
- attempting to locate all such processes and killing them
- doing a forcible unmount
- shutting down the machine to single-user
- identifying the situation in advance and refusing to snapshot