linux-lvm.redhat.com archive mirror
 help / color / mirror / Atom feed
* [linux-lvm] lvcreate/convert a clustered striped mirror
@ 2013-06-25 13:20 Franky Van Liedekerke
  2013-06-25 13:25 ` Franky Van Liedekerke
  0 siblings, 1 reply; 2+ messages in thread
From: Franky Van Liedekerke @ 2013-06-25 13:20 UTC (permalink / raw)
  To: linux-lvm

Since RHEL 6.4, the "-type raid*" options of lvcreate have been 
disabled for a clvm setup. Which is ok for me, since I don't like the 
chance of haveing data corruption.
However: when needing to do a mirror between 2 SAN storages, something 
is still needed. So I use the good old "-m 1" and cmirrord. And here 
lies the problem: suppose I have 2 disks from SAN 1, and 2 disks from 
SAN 2 so that I need to stripe over the SAN 1 disks and then mirror to 
SAN 2 disks.
This command (combining stripe and mirror) is working as expected:

lvcreate -m1 -i 2 -I 4 --nosync --alloc anywhere -n lvtest vgtest -L 
90G /dev/mapper/CLVM-SAN1-1315 /dev/mapper/CLVM-SAN1-1316  
/dev/mapper/CLVM-SAN2-1415 /dev/mapper/CLVM-SAN2-14

The command "lvs -a -o +devices" shows the setup is as expected:
   lvtest            vgtest     Mwa-a-m--  90.00g                        
lvtest_mlog   100.00         lvtest_mimage_0(0),lvtest_mimage_1(0)
   [lvtest_mimage_0] vgtest     iwa-aom--  90.00g                        
                              
/dev/mapper/CLVM-SAN1-1315(0),/dev/mapper/CLVM-SAN1-1316(0)
   [lvtest_mimage_1] vgtest     iwa-aom--  90.00g                        
                              
/dev/mapper/CLVM-SAN2-1415(0),/dev/mapper/CLVM-SAN2-1416(0)
   [lvtest_mlog]     vgtest     lwa-aom--   4.00m                        
                              /dev/mapper/CLVM-SAN2-1416(11520)


The command "pvs -a -o +devices" shows everything is ok (the mirror leg 
is also striped, since there's some space free on both the mirrored 
devices):
   PV                              VG         Fmt  Attr PSize   PFree  
Devices

   /dev/mapper/CLVM-SAN1-1315       vgtest     lvm2 a--   50.00g  5.00g 
/dev/mapper/CLVM-SAN1-1315(0),/dev/mapper/CLVM-SAN1-1316(0)
   /dev/mapper/CLVM-SAN1-1315       vgtest     lvm2 a--   50.00g  5.00g
   /dev/mapper/CLVM-SAN1-1316       vgtest     lvm2 a--   50.00g  5.00g 
/dev/mapper/CLVM-SAN1-1315(0),/dev/mapper/CLVM-SAN1-1316(0)
   /dev/mapper/CLVM-SAN1-1316       vgtest     lvm2 a--   50.00g  5.00g
   /dev/mapper/CLVM-SAN2-1415       vgtest     lvm2 a--   50.00g  5.00g 
/dev/mapper/CLVM-SAN2-1415(0),/dev/mapper/CLVM-SAN2-1416(0)
   /dev/mapper/CLVM-SAN2-1415       vgtest     lvm2 a--   50.00g  5.00g
   /dev/mapper/CLVM-SAN2-1416       vgtest     lvm2 a--   50.00g  4.99g 
/dev/mapper/CLVM-SAN2-1415(0),/dev/mapper/CLVM-SAN2-1416(0)
   /dev/mapper/CLVM-SAN2-1416       vgtest     lvm2 a--   50.00g  4.99g 
/dev/mapper/CLVM-SAN2-1416(11520)
   /dev/mapper/CLVM-SAN2-1416       vgtest     lvm2 a--   50.00g  4.99g

Now, however, if I decide to first create the stripe on SAN1:
   lvcreate -i 2 -I 4 -n lvtest vgtest -L 90G /dev/mapper/CLVM-SAN1-1315 
/dev/mapper/CLVM-SAN1-1316
and then the mirror (mirrorlog core used for testing):
   lvconvert -m1 --mirrorlog core vgtest/lvtest

The mirrored leg is now not striped:
   /dev/mapper/CLVM-SAN1-1315       vgtest     lvm2 a--   50.00g  5.00g 
/dev/mapper/CLVM-SAN1-1315(0),/dev/mapper/CLVM-SAN1-1316(0)
   /dev/mapper/CLVM-SAN1-1315       vgtest     lvm2 a--   50.00g  5.00g
   /dev/mapper/CLVM-SAN1-1316       vgtest     lvm2 a--   50.00g  5.00g 
/dev/mapper/CLVM-SAN1-1315(0),/dev/mapper/CLVM-SAN1-1316(0)
   /dev/mapper/CLVM-SAN1-1316       vgtest     lvm2 a--   50.00g  5.00g
   /dev/mapper/CLVM-SAN2-1415       vgtest     lvm2 a--   50.00g     0  
/dev/mapper/CLVM-SAN2-1415(0)
   /dev/mapper/CLVM-SAN2-1416       vgtest     lvm2 a--   50.00g  9.99g 
/dev/mapper/CLVM-SAN2-1416(0)
   /dev/mapper/CLVM-SAN2-1416       vgtest     lvm2 a--   50.00g  9.99g

In itself this is not a problem, but when the mirror breaks and you 
need to recreate it, the same command needs to be executed. Suppose in 
the beginning we execute the lvcreate with stripe/mirror combo and we 
need to rebuild the mirror after a failure, suddenly one part will no 
longer be striped.

So here are my questions:
- Is there an option to lvconvert to also force the same striping on 
the mirror leg?
- And a second question: "-mirrorlog mirrored" doesn't seem to be 
possible in a clvm setup, is this intended?
- And in general: is there another method to get a mirrored stripe in a 
clustered setup?

With friendly regards,

Franky

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [linux-lvm] lvcreate/convert a clustered striped mirror
  2013-06-25 13:20 [linux-lvm] lvcreate/convert a clustered striped mirror Franky Van Liedekerke
@ 2013-06-25 13:25 ` Franky Van Liedekerke
  0 siblings, 0 replies; 2+ messages in thread
From: Franky Van Liedekerke @ 2013-06-25 13:25 UTC (permalink / raw)
  To: linux-lvm

On 2013-06-25 15:20, Franky Van Liedekerke wrote:

<snip>

> Now, however, if I decide to first create the stripe on SAN1:
>   lvcreate -i 2 -I 4 -n lvtest vgtest -L 90G
> /dev/mapper/CLVM-SAN1-1315 /dev/mapper/CLVM-SAN1-1316
> and then the mirror (mirrorlog core used for testing):
>   lvconvert -m1 --mirrorlog core vgtest/lvtest
> 

Nevermind this part: I found out that "--stripes 2 -I 4" for the 
lvconvert command works ok (I tried with the -i option first, as in the 
lvcreate, but apparantly that's a different thing for lvconvert).

So the remaining questions are:

> - And a second question: "-mirrorlog mirrored" doesn't seem to be
> possible in a clvm setup, is this intended?
> - And in general: is there another method to get a mirrored stripe in
> a clustered setup?


With friendly regards,

Franky

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-06-25 13:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-25 13:20 [linux-lvm] lvcreate/convert a clustered striped mirror Franky Van Liedekerke
2013-06-25 13:25 ` Franky Van Liedekerke

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).