Re: Add disks and convert level 0 to level 5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed Sep 17, 2014 at 09:59:00am -0500, Michael Muratet wrote:

> 
> On Sep 10, 2014, at 7:27 PM, NeilBrown wrote:
> 
> > On Wed, 10 Sep 2014 11:15:24 -0500 Michael Muratet <muratetm@xxxxxxxxx> wrote:
> > 
> >> I have a two-disk RAID0 system that is working splendidly, thanks
> >> to the list for the help.
> >> 
> >> I managed to get my hands on more identical disks and since I have
> >> the disks and because I'm adding precious data, I'd like to add two
> >> more disks and grow to RAID5.
> >> 
> >> I have partitioned the two new drives to type 'fd', /dev/sde and /dev/sdf
> >> 
> >> I believe the command to accomplish the change is this:
> >> 
> >> mdadm /dev/md0 --grow --level=5 --add /dev/sde /dev/sdf
> >> 
> >> Following the old adage "measure twice, cut once", is this syntax
> >> correct? Is there any danger of data loss in such a conversion?
> > 
> > I recommend creating a few loop-back devices and experimenting.
> > i.e.:
> >  create some 100M files.
> >  use "losetup" to turn them into block devices.
> >  create an 2-device raid0
> >  try converting it as you suggest.
> > 
> > You find it doesn't do quite what you expected, but should be easy to fix.
> 
> In case anyone wants to do a similar thing...
> 
> As predicted, it did not do as I expected. I have another identical
> server and disks and so I did the experiment there.
> 
>   980  sudo fdisk /dev/sdc
>   981  sudo fdisk /dev/sdd
>   982  sudo fdisk /dev/sde
>   983  sudo fdisk /dev/sdf
>   988  sudo partprobe /dev/sdc
>   989  sudo partprobe /dev/sdd
>   990  sudo partprobe /dev/sde
>   991  sudo partprobe /dev/sdf
>   995  sudo mdadm --create /dev/md0 --level=0 --raid-disk=2 /dev/sdc1 /dev/sdd1
>   996  sudo mkfs -t ext3 /dev/md0
>   997  sudo mount -t ext3 /dev/md0 /db
> 
> Same RAID0 system I created before. Now to grow
> 
>  1004  sudo mdadm /dev/md0 --grow --level=5 --add /dev/sde1 /dev/sdf1
> 
> Makes a RAID5 system, but sde1 was added as a spare
> 
>  1022  sudo mdadm --grow /dev/md0 --raid-devices=4
> 
You should be able to combine the above into a single command (it worked
for me on loopback devices anyway):
    sudo mdadm --grow /dev/md0 --level=5 --raid-devices=4 \
               --add /dev/sde1 /dev/sdf1

> It's now a four disk RAID, but smaller than expected. It spread the
> original space over four drives, which I think is the documented
> behavior.
> 
As md has no knowledge of the filesystem or how to change the size of
it, then all it can do it redistribute the original data over the
additional disks. The md device size should have increased though, even
if the filesystem size hadn't.

>  1040  sudo umount /dev/md0
>  1045  sudo e2fsck -f /dev/md0
>  1046  sudo resize2fs -p /dev/md0
>  1048  sudo mount -t ext3 /dev/md0 /db
>  1049  df -h
> 
> /dev/md0                      2.7T  202M  2.6T   1% /db
> 
> which is what I wanted. I can't take my original system offline now,
> but when I can I will apply the same steps.
> 
You shouldn't need to take it offline - resize2fs works perfectly well
online.

Cheers,
    Robin
-- 
     ___        
    ( ' }     |       Robin Hill        <robin@xxxxxxxxxxxxxxx> |
   / / )      | Little Jim says ....                            |
  // !!       |      "He fallen in de water !!"                 |

Attachment: signature.asc
Description: Digital signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux