Thread (6 messages) 6 messages, 4 authors, 2003-04-24

Re: Expanding size of existing raid1 md device

From: Sean Kormilo <hidden>
Date: 2003-04-24 20:47:07

Mike,

One thing I forgot to mention is that I want to be able to do this
without taking the system down at all.

I'm not sure I quite understand the process... I'd already have an
existing /dev/md0 and /dev/md1. Is "mdadm --create" supposed to allow me
to basically re-create the array? When I try this I get the following.
In this case, I removed /dev/sdb2 from /dev/md1 prior to attempting the
re-creation of the array. If I try to do it with both disks already
there I get the same error:

/usr/share/scsirastools/mdadm --create /dev/md1 -l1 -n2 /dev/sda2 missing
mdadm: /dev/sda2 appear to be part of a raid array:
    level=1 devices=2 ctime=Thu Apr 24 07:23:43 2003
Continue creating array? y
mdadm: SET_ARRAY_INFO failed for /dev/md1: File exists

Sean.
I've done this with a single partition but it should work for multiple also.

Sounds like you already partioned the new 36G correctly.
Before you insert the new 36G disk you need to re-create the raid array and resize the file system:
Let's assume you've already sync'd hda to the 36G hdc and replaced hda with a brand-new 36G
mdadm --create /dev/md0 -l1 -n2 /dev/hdc1 missing
resize2fs -p -f /dev/md0
e2fsck -C 0 /dev/md0
mdadm --add /dev/md0 /dev/hda1

And repeat for md1

----- Original Message ----- 
From: "Sean Kormilo" <redacted>
To: "linux-raid" <redacted>
Sent: Thursday, April 24, 2003 2:48 PM
Subject: Expanding size of existing raid1 md device

quoted
Hi,

I'm wondering if there is any way to do the following...

Assume I've got a system with 2 18GB disks. Each disk has 2 partitons
which are then setup as mirrored md devices.
/dev/md0 uses small 100MB partitions on each drive
/dev/md1 uses the rest of each disk (ie: ~17.9GB)

I'd like to be able to upgrade the system to use 36GB disks, such that
the /dev/md1 partition expands to take up the rest of the additional
space provided by the 36GB disk.

So, the process might look something like:
- fail and remove the partition for both md arrays
- remove 1 of the 18GB disks
- insert new 36GB disk
- partition 36GB disk with 100MB partition for /dev/md0
- partition 36GB disk with 35.9GB partition for /dev/md1
- hotadd the 36GB disk partitions so that it syncs with 18GB disk
- wait for sync to complete
- fail and remove the partitions on both md arrays on the 18GB disk
- remove the 18GB disk
- insert new 36GB disk
- partition 36GB disk with 100MB partition for /dev/md0
- partition 36GB disk with 35.9GB partition for /dev/md1
- hotadd the 36GB disk partitions so that it syncs with the other 36GB
disk

Having tried this, it works except that /dev/md1 does not make use of
the additional space provided by the 36GB disks even though the
partitions on both disks are larger. It appears to me that it is using
the value from the superblock when the array was created (which makes
sense).

Is there some way to force the md driver to expand to use the maximum
size available based on the disks/partitions in the array? Perhaps from
mdadm? Or is some kind of patch to the kernel required to make this
work? If so, any pointers as to where I'd look?

Thanks!

Sean.




-- 

Sean C. Kormilo, STORM Software Architect, Nortel Networks
              email: skormilo@nortelnetworks.com
  

-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
-- 

Sean C. Kormilo, STORM Software Architect, Nortel Networks
              email: skormilo@nortelnetworks.com
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help