RE: How to grow RAID1 mirror on top of LVM?

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

 




-----Original Message-----
From: Lars Täuber [mailto:taeuber@xxxxxxx] 
Sent: Tuesday, April 29, 2008 2:56 AM
To: David Lethe
Cc: Neil Brown; Anton Altaparmakov; linux-raid@xxxxxxxxxxxxxxx
Subject: Re: How to grow RAID1 mirror on top of LVM?

Hallo David!

"David Lethe" <david@xxxxxxxxxxxx> schrieb:
> Lars:
> Even if you *could* do this, then your design would still be an awful idea.  You'd effectively have a random I/O filesystem.  Any write on a RAID1 disk would generate writes on all of the other disks.  Even with a small number of RAID1 targets and default journaling, I wouldn't be surprised if a single application write translated into at least a dozen physical disk writes.  
> 
> What if (when) both the RAID1 & RAID6 became corrupted?  How would you proceed?  How would you propose the md engine deal with this?   What if you lose a disk on the RAID6 while expanding the LVM and have a bad sector on remaining disks, or fsck shows filesytem corruption while you are expanding a md volume. 
> 
> Maybe you are starting to get the point.

No, sorry. I really don't understand. But maybe because I didn't tell detailed enough what our systems looks like.

We have here two huge RAID6 systems, that are connected through a 10G Ethernet switch. They are equally in size.
On these RAID6 we create LVs euqally in size and want them to be parts of a RAID1:

 RAID6    RAID6
monosan  duosan
  LV       LV             (multiple of)
    \     /     10GE
     RAID1
       |        10GE
      aoe
       |        1GE
     server               (multiple of)

>  What is preventing the md layer from doing what you want is that a heck of a lot of code would have to be written,

But could you tell me what in the current »design« prevents us to resize the LVs and the RAID1 on top?
When I understand it correctly the RAID information are written at the end of each accessible partition/LV.
What is different on an extended LV from a partition that is replaced with a bigger one?

[...]
Thanks
Lars

==================================

The drawing was helpful, as I interpreted your architecture differently.  I thought you had something like
     RAID6
    /  \
   /    \
RAID1    RAID1

Still, you could get into a great deal of inefficiency.   What are the block/chunk sizes in RAID6, RAID1, and your file system, and how is the journaling set up?  
How many disks are in the RAID1, and what is the average I/O size that your application generates.  

Lets' say you do a 4KB WRITE in the file system.  Factor in all of the above and see how many I/Os get generated on each disk.  If you are write-intensive, then consider how much less I/O will be generated if you reduced the sizes of the 2 RAID6 by 2 disks each, and added a RAID1 on each system, and used the RAID1 for the journal.  The Journal is write-intensive, and RAID1 is best architecture for a journal.  Also you can set correct and matching block sizes for the Journaling.  RAID6 has a huge penalty on writes, so the more writes you can move from the RAID6 md, the better.  

As for the question about resizing, I was under impression you built it differently, so forget that response. There is nothing in your architecture that will prevent you from resizing.

David

��.n��������+%������w��{.n�����{����w��ܨ}���Ơz�j:+v�����w����ޙ��&�)ߡ�a����z�ޗ���ݢj��w�f


[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