* migrating raid-1 to different drive geometry ? @ 2005-01-24 14:59 rfu 2005-01-24 22:47 ` Neil Brown 0 siblings, 1 reply; 7+ messages in thread From: rfu @ 2005-01-24 14:59 UTC (permalink / raw) To: linux-raid Hi, I'm running Fedora Core 1 on a server with 2 identical 60 GB ATA drives. These drives are organized in a RAID1 with 4 partitions. I now want to replace both drives with two different (but also identical) ATA drives with about 80 to 120 GB capacity each. how can the existing raid setup be moved to the new disks without data loss ? I guess it must be something like this: 1) physically remove first old drive 2) physically add first new drive 3) re-create partitions on new drive 4) run raidhotadd for each partition 5) wait until all partitions synced 6) repeat with second drive the big question is: since the drive geometry will definitely different between old 60GB and new 80GB drive(s), how do the new partitions have to be created on the new drive ? - do they have to have exactly the same amount of blocks ? - may they be bigger ? are there better strategies for such a migration ? tnx in advance. rainer. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: migrating raid-1 to different drive geometry ? 2005-01-24 14:59 migrating raid-1 to different drive geometry ? rfu @ 2005-01-24 22:47 ` Neil Brown 2005-01-25 0:35 ` Robin Bowes 0 siblings, 1 reply; 7+ messages in thread From: Neil Brown @ 2005-01-24 22:47 UTC (permalink / raw) To: rfu; +Cc: linux-raid On Monday January 24, rfu@kaneda.iguw.tuwien.ac.at wrote: > how can the existing raid setup be moved to the new disks > without data loss ? > > I guess it must be something like this: > > 1) physically remove first old drive > 2) physically add first new drive > 3) re-create partitions on new drive > 4) run raidhotadd for each partition > 5) wait until all partitions synced > 6) repeat with second drive Sounds good. > > the big question is: since the drive geometry will definitely different > between old 60GB and new 80GB drive(s), how do the new partitions > have to be created on the new drive ? > - do they have to have exactly the same amount of blocks ? No. > - may they be bigger ? Yes (they cannot be smaller). However making the partitions bigger will not make the arrays bigger. If you are using a recent 2.6 kernel and mdadm 1.8.0, you can grow the array with mdadm --grow /dev/mdX --size=max You will then need to convince the filesystem in the array to make use of the extra space. Many filesystems do support such growth. Some even support on-line growth. NeilBrown ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: migrating raid-1 to different drive geometry ? 2005-01-24 22:47 ` Neil Brown @ 2005-01-25 0:35 ` Robin Bowes 2005-01-25 0:53 ` Neil Brown 2005-01-25 0:54 ` Mike Hardy 0 siblings, 2 replies; 7+ messages in thread From: Robin Bowes @ 2005-01-25 0:35 UTC (permalink / raw) To: linux-raid Neil Brown wrote: > If you are using a recent 2.6 kernel and mdadm 1.8.0, you can grow the > array with > mdadm --grow /dev/mdX --size=max Neil, Is this just for RAID1? OR will it work for RAID5 too? R. -- http://robinbowes.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: migrating raid-1 to different drive geometry ? 2005-01-25 0:35 ` Robin Bowes @ 2005-01-25 0:53 ` Neil Brown 2005-01-25 0:54 ` Mike Hardy 1 sibling, 0 replies; 7+ messages in thread From: Neil Brown @ 2005-01-25 0:53 UTC (permalink / raw) To: Robin Bowes; +Cc: linux-raid On Tuesday January 25, robin-lists@robinbowes.com wrote: > Neil Brown wrote: > > If you are using a recent 2.6 kernel and mdadm 1.8.0, you can grow the > > array with > > mdadm --grow /dev/mdX --size=max > > Neil, > > Is this just for RAID1? OR will it work for RAID5 too? --grow --size=max should work for raid 1,5,6. NeilBrown ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: migrating raid-1 to different drive geometry ? 2005-01-25 0:35 ` Robin Bowes 2005-01-25 0:53 ` Neil Brown @ 2005-01-25 0:54 ` Mike Hardy 2005-01-25 8:22 ` Robin Bowes 1 sibling, 1 reply; 7+ messages in thread From: Mike Hardy @ 2005-01-25 0:54 UTC (permalink / raw) To: linux-raid I'd missed the mdadm --grow feature as well, so I checked into it. It is only capable of increasing size on raid5, not component count. The specific use case used as an example is that you slowly retire component drives and the replacements are larger. When all components are the larger size, you can grow the raid5 array to use the full size of the device, followed by a filesystem expansion to use the grown array. That makes sense, given the disk layout of raid5 - its not hard to add more stripes on the end of components, but adding new components requires each stripe to change significantly. To grow component count on raid5 you have to use raidreconf, which can work, but will toast the array if anything goes bad. I have personally had it work, and not work, in different instances. The failures were not necessarily raidreconf's fault, but its not fault tolerant is the point, as it starts at the first stripe, laying things out the new way, and if it doesn't finish, and finish correctly, you are in an irretrievable inconsistent state. raid1 can grow components with mdadm --grow though. Cool trick -Mike Robin Bowes wrote: > Neil Brown wrote: > >> If you are using a recent 2.6 kernel and mdadm 1.8.0, you can grow the >> array with >> mdadm --grow /dev/mdX --size=max > > > Neil, > > Is this just for RAID1? OR will it work for RAID5 too? > > R. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: migrating raid-1 to different drive geometry ? 2005-01-25 0:54 ` Mike Hardy @ 2005-01-25 8:22 ` Robin Bowes 2005-01-25 18:13 ` Mike Hardy 0 siblings, 1 reply; 7+ messages in thread From: Robin Bowes @ 2005-01-25 8:22 UTC (permalink / raw) To: linux-raid Mike Hardy wrote: > > I'd missed the mdadm --grow feature as well, so I checked into it. > > It is only capable of increasing size on raid5, not component count. The > specific use case used as an example is that you slowly retire component > drives and the replacements are larger. When all components are the > larger size, you can grow the raid5 array to use the full size of the > device, followed by a filesystem expansion to use the grown array. > > That makes sense, given the disk layout of raid5 - its not hard to add > more stripes on the end of components, but adding new components > requires each stripe to change significantly. > > To grow component count on raid5 you have to use raidreconf, which can > work, but will toast the array if anything goes bad. I have personally > had it work, and not work, in different instances. The failures were not > necessarily raidreconf's fault, but its not fault tolerant is the point, > as it starts at the first stripe, laying things out the new way, and if > it doesn't finish, and finish correctly, you are in an irretrievable > inconsistent state. > Bah, too bad. I don't need it yet, but at some stage I'd like to be able to add another 250GB drive(s) to me array and grow the array to use the additional space in a safe/failsafe way. Perhaps by the time I come to need it this might be possible? R. -- http://robinbowes.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: migrating raid-1 to different drive geometry ? 2005-01-25 8:22 ` Robin Bowes @ 2005-01-25 18:13 ` Mike Hardy 0 siblings, 0 replies; 7+ messages in thread From: Mike Hardy @ 2005-01-25 18:13 UTC (permalink / raw) To: Robin Bowes; +Cc: linux-raid Robin Bowes wrote: > Mike Hardy wrote: >> To grow component count on raid5 you have to use raidreconf, which can >> work, but will toast the array if anything goes bad. I have personally >> had it work, and not work, in different instances. The failures were >> not necessarily raidreconf's fault, but its not fault tolerant is the >> point, as it starts at the first stripe, laying things out the new >> way, and if it doesn't finish, and finish correctly, you are in an >> irretrievable inconsistent state. >> > > Bah, too bad. > > I don't need it yet, but at some stage I'd like to be able to add > another 250GB drive(s) to me array and grow the array to use the > additional space in a safe/failsafe way. > > Perhaps by the time I come to need it this might be possible? Well, I want to be clear here, as who ever wrote raidreconf deserves some respect, and I don't want to appear to be disparaging it. raidreconf works. I'm not aware of any bugs in it. Further, if mdadm was to implement the feature of adding components to a raid5 array, I'm guessing it would look exactly the same as raidreconf, simply because of the work it has to do (re-configuring each stripe, moving parity blocks and data blocks around, etc). Its just the way the raid5 disk layout is. So, since raidreconf does work, its definitely possible now, but you have to make absolutely amazingly sure of three things: 1) the component size you add is at least as large as the rest of the components (it'll barf at the end if not) 2) the old and new configurations you feed raidreconf are perfect (or what happens is undefined) 3) you have absolutely no bad blocks on any component, as it will read each block on each component and write each block on each component. (that's a tall order these days, if you get a bad block, what can it do?) If any of those things go bad, your array goes bad, but its not the algorithm's fault, as far as I can tell. Its constrained by the problem's requirements. So I'd add: 4) you have a perfect, fresh backup of the array ;-) Honestly, I've done it, and it does work, its just touchy. You can practice with it with loop devices (check for a raid5 loop array creator and destructor script I posted a week or so back) if you want to see it. -Mike ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2005-01-25 18:13 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-01-24 14:59 migrating raid-1 to different drive geometry ? rfu 2005-01-24 22:47 ` Neil Brown 2005-01-25 0:35 ` Robin Bowes 2005-01-25 0:53 ` Neil Brown 2005-01-25 0:54 ` Mike Hardy 2005-01-25 8:22 ` Robin Bowes 2005-01-25 18:13 ` Mike Hardy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).