I think it's general knowledge that once a NetApp gets above 90% full, performance starts to degrade quite noticeably.
I've been testing an application recently and observed that this is the case on ONTAP 5.2: * When ~95% full, my performance test came up with a number of ~4 seconds. * Freeing up space to get to around 60% full, the number was ~3.5 seconds. * Copying off my data files and copying them back to defragment them, the number was 2.8s.
The only thing I've been able to find about fragmentation is: * Some statements that WAFL tries hard to avoid fragmentation (which I'm sure it does) but can't always (which I'm sure of too). * Copying off data and copying it back again is the only way to resolve it.
The latter solution doesn't seem practical if the data in question is supposed to be available 24*7. Some applications have a method of doing this at an application level, but does anyone know whether there are methods/future plans for background non-intrusive defragmentation at a filesystem level? Or is it just me who thinks this would be a good idea?
Edward Hibbert Internet Applications Group Data Connection Ltd Tel: +44 131 662 1212 Fax: +44 131 662 1345 Email: eh@dataconnection.com Web: http://www.dataconnection.com
I think it's general knowledge that once a NetApp gets above 90% full, performance starts to degrade quite noticeably.
This happens because free disk blocks become scarce. WAFL tries to use free blocks in the same raid stripe to reduce updates to the parity disk. When free blocks are scarce they are scattered over different raid stripes so more parity updates are required. And if WAFL has to use free blocks from different cylinders, then this causes more disk head movement.
I've been testing an application recently and observed that this is the case on ONTAP 5.2:
- When ~95% full, my performance test came up with a number of ~4
seconds.
- Freeing up space to get to around 60% full, the number was ~3.5
seconds.
- Copying off my data files and copying them back to defragment them,
the number was 2.8s.
The only thing I've been able to find about fragmentation is:
- Some statements that WAFL tries hard to avoid fragmentation (which
I'm sure it does) but can't always (which I'm sure of too).
- Copying off data and copying it back again is the only way to
resolve it.
The latter solution doesn't seem practical if the data in question is supposed to be available 24*7. Some applications have a method of doing this at an application level, but does anyone know whether there are methods/future plans for background non-intrusive defragmentation at a filesystem level? Or is it just me who thinks this would be a good idea?
If speed is more important than space, then you will have better performance if you don't let the volume fill up. When WAFL has plenty of free disk blocks to choose from, it can write the data efficiently and this means that it can read the data back efficiently, too. (Data written inefficiently is also inefficient to read.)
You should also try to avoid creating a "hot" disk. This happens when you let a volume fill and enlarge it with one new disk. Now all your free space is on the new disk, so WAFL cannot spread writes out over all the disks in the volume.
If you enlarge a volume this way and create a "hot" disk, you can alleviate the situation. Look for old, seldom used files that were written when the volume was new and had plenty of free disk space. Make copies in the same volume of as many of these old files as you can. These copies will be written inefficiently on the new "hot" disk. Remove all your snapshots. Remove the original files and rename the copies to the original names. This frees up disk space that is scattered over all your disks, making the "hot" disk less of a problem.
If a volume has a high "churn rate" (i.e., rate at which most data in the volume gets replaced) then a "hot" disk will eventually disappear naturally. When old files are deleted it frees blocks on multiple disks, which tends to even out the distribution of free space.
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support
The only thing I've been able to find about fragmentation is:
- Some statements that WAFL tries hard to avoid fragmentation (which
I'm sure it does) but can't always (which I'm sure of too).
- Copying off data and copying it back again is the only way to
resolve it.
In the ONTAP Advanced Admin class, they talk about using the "wafl scan measure_layout" command to check on fragmentation. The recommendation is to call tech support if it returns a number greater than 50. There apparently is a command to redistribute blocks, but they are pretty adamant that it should only be run after consulting with tech support.
Note that wafl scan measure_layout is an advanced mode command, so if it breaks anything, don't blame me...
-- Deron Johnson djohnson@amgen.com
djohnson@amgen.com (Deron Johnson) writes: [...]
In the ONTAP Advanced Admin class, they talk about using the "wafl scan measure_layout" command to check on fragmentation. The recommendation is to call tech support if it returns a number greater than 50. There apparently is a command to redistribute blocks, but they are pretty adamant that it should only be run after consulting with tech support.
A possible clue to what that command is appears in the help text you get if you type "wafl" with no arguments (in advanced mode)...
Note that wafl scan measure_layout is an advanced mode command, so if it breaks anything, don't blame me...
Even more so for variants that actually modify the layout!
There also seeems to be an option to "fold" an individual file: compare the discussion of the cifs.snapshot_file_folding.enable option in an earlier thread.
Chris Thompson Email: cet1@cam.ac.uk
There also seeems to be an option to "fold" an individual file: compare the discussion of the cifs.snapshot_file_folding.enable option in an earlier thread.
Chris Thompson Email: cet1@cam.ac.uk
I tried the "wafl scan fold filename" command on our test filer running 6.3.1 and it worked according to what df reported for snapshot space usage.
I can see one particularly good use for this command. Suppose you are using NFS, accidentally delete a very large file, and copy it back from a snapshot. You have now consumed new blocks for the live file, but it is identical to the snapshot. With wafl scan fold you can recover the blocks.
Steve Losen scl@virginia.edu phone: 434-924-0640
University of Virginia ITC Unix Support