Date: Tue, 17 Jul 2007 21:09:25 GMT From: Ulf Lilleengen <lulf@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 123663 for review Message-ID: <200707172109.l6HL9P4N078787@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=123663 Change 123663 by lulf@lulf_carrot on 2007/07/17 21:09:07 - Add more to my TODO. Affected files ... .. //depot/projects/soc2007/lulf/TODO#6 edit Differences ... ==== //depot/projects/soc2007/lulf/TODO#6 (text+ko) ==== @@ -149,13 +149,45 @@ 20. Make sync/rebuild requests also get delayed due to rebuild requests? -20. When to trondheim. Write papers for status report. +20. When to trondheim. Write papers for status report. Done. -21. Updateman-page +21. Updateman-page. Done 22. Add a raid5 command to create a raid5 array the same way that is done with -concat/mirror/stripe +concat/mirror/stripe. Done + +23. Make sure unequal plexes cannot be mirrored. Done + +23. Create patches. Done. + +24. Grow RAID-5 arrays. +How should it be done? +The way to do this can be by duplicating existing subdisks, add a new one Other +than that, I'm having plans to make it possible to resize RAID-5 arrays. There +are two ways I thought of doing this: If the old array had three drives, and the +new one four, one would create a new plex with subdisks where three of them +referenced the same drives as the old plex, but also had a new subdisk for the +new disk. Then, reading X Bytes from the old plex, and then write it to the new +plex, which should prevent it from overwriting old data, right (At least if X +bytes is #disks x stripesize). Could this work, or does it just seem too +complex? If the stripesize is large and there are many disks, one could perhaps +run out of memory. + +The problem is that it's hard to clone everything. We could +modify the gv_plex structure to have a added subdisks field, where all new +writes would go until the GV_PLEX_GROW flag is gone, but reads still would only be +served from the normal subdisk list. One would need to modify gv_plexbuffer and +code in the raid5 config to use this list actively. We can use only one list if +we assure that we get the correct sdno and psdno. + +Where and when should it be done? +It should be done if sdcount is increased in gv_sd_to_plex, the plex is not +newborn, and the plexorg is raid-5 + +Or + +The subdisk is added to the plex as normal, but the subdisk carries a special +flag which tells the system to expand the array when 'init' is run. Should there +be a grow command perhaps? -23. Make sure unequal plexes cannot be mirrored. -23. Create patches.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200707172109.l6HL9P4N078787>