arden@nortelnetworks.com (Bruce Arden) writes
[...]
It seems to me that shrinking volumes by removing 1 disk could be done by a 6 stage process: 1) Mark the last drive in the volume as full (i.e. Read Only) 2) Find files with data on that disk 3) Rewrite those files (this could be done by clients rather than the filer) 4) Wait for snapshots with data on this disk to be deleted. 5) Write zeros to the data area of the disk (to ensure the parity is correct after removal) 6) Final tidy up and marking disk as spare.
This scheme is remarkably similar to the procedure used for vacating the disk blocks needed for zone checksums in a 5.x -> 6.x upgrade. That suggests that it is feasible, at least in principle.
It would be highly undesirable to have clients involved in step (3), and there's no need. Nor need whole files be moved: only the blocks actually allocated on the deprecated disc(s) need to be marked as "dirty" internally to the filer, so that they get reallocated on undeprecated discs.
Chris Thompson University of Cambridge Computing Service, Email: cet1@ucs.cam.ac.uk New Museums Site, Cambridge CB2 3QG, Phone: +44 1223 334715 United Kingdom.