On Dec 29, Bruce Sterling Woodcock wrote:
It's "wack" and it's similar to fsck for UNIX or scandisk for NT. It corrects any errors to the filesystem that may have been introduced due to unusual crashes or hardware failures.
As Bruce said, the main difference between "wack" and fsck or scandisk is that you shouldn't need to run wack during normal operation.
In particular, unlike UNIX and NT, you don't need to run "wack" after a system panic, or when you pull the plug without shutting the system down, or after a power failure. The WAFL filesystem uses a database technique called "shadow paging with NV-RAM log replay" to maintain a fully consistent state on disk even in the face of unexpected shutdowns.
So when do you need to run wack? Suppose that you have a disk fail in RAID, and then when you try to reconstruct the data from the lost disk you discover that there is a bad sector on one of the other drives. Most of your file system data is just fine, but you've got a couple of blocks that can't be recovered. The RAID subsystem zeros both blocks, since that's the best that you can do, but now you need to run wack in order to fix things up, in case the zeroed blocks contained file system data like inodes, indirect blocks, or the free block map.
And yes, I must confess that like any computer, NetApp systems do contain the occasional bug, so WAFL has a number of checks to make sure that the on-disk data looks reasonable, and if it finds a problem it will ask you to perform a wack.
Our goal is for customers never to need to run wack, but the reality is that people sometimes do need to use it.
Dave