Viewing logical/physical mapping when striping

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

 



Folks - my apologies if this sounds like a FAQ but alas a search of the HOWTO
and the list archives did not turn up anything along these lines...

I am trying to confirm by inspection (rather than guessing based on behaviour)
that a LV created with two stripes _is_ in fact striping rather than just
mapping LEs to PEs in a linear fashion.  I have tested both LVM 1.0.3 (SuSE
8.0) and LVM 1.0.5 (SuSE 9.0) and in both cases am left confused/annoyed.

According to the HOWTO:

  http://www.tldp.org/HOWTO/LVM-HOWTO/mapmode.html

there are two mapping modes;  presumably one gets linear mapping by default,
unless you explicitly ask for 'n' stripes with the '-i' param to 'lvcreate',
correct?

I have a number of LVs, all of which are supposedly striped (ie., were created
with '-i' and 'cat /proc/lvm/global' shows a status of 'AWDS2' for all LVs)
yet when I run 'lvdisplay -v' to look at the logical-to-physical mapping, it
is clear that the first 'n' LEs are on the first PV whilst the second 'n' LEs
are on the second PV (ie., just like the description of linear mapping in the
HOWTO).

Here's where my mind really gets screwed-up - if I throw data at the LVs, the
read/write pattern tends to indicate that the striping _is_ working, which
then contradicts the mapping that 'lvdisplay -v' shows!

What's happening?  Are LEs always mapped to PEs in a linear fashion whilst
striping occurs at some lower (per-chunk-of-an-LE) layer?  If so, is it
possible to run a command and confirm that mapping (so that file system
behaviour is deterministic, rather than just hoping that LVM is doing
precisely what you requested)?  Is the 'lvdisplay -v' just wrong?  If not, how
does it determine what PV/PE to display for any given LE if in reality each LE
is spread over multiple PVs/PEs??

Some selected command output below to hopefully better illustrate the
situation.  Any/all assistance welcomed.

Thanks..


# cat /proc/lvm/global | egrep -v '^$'
LVM module LVM version 1.0.3(19/02/2002)
Total:  1 VG  2 PVs  6 LVs (6 LVs open 6 times)
Global: 304734 bytes malloced   IOP version: 10   10:23:00 active
VG:  lvg  [2 PV, 6 LV/6 open]  PE Size: 4096 KB
  Usage [KB/PE]: 76292096 /18626 total  76292096 /18626 used  0 /0 free
  PVs: [AA] hda3                  38146048 /9313    38146048 /9313           0 /0
       [AA] hdc3                  38146048 /9313    38146048 /9313           0 /0
    LVs: [AWDS2 ] usr                       16777216 /4096     1x open
         [AWDS2 ] var                       18874368 /4608     1x open
         [AWDS2 ] opt                       16777216 /4096     1x open
         [AWDS2 ] home                       4194304 /1024     1x open
         [AWDS2 ] src                       11321344 /2764     1x open
         [AWDS2 ] tmp                        8347648 /2038     1x open
# lvdisplay -v /dev/lvg/home | egrep -v '^$'
--- Logical volume ---
LV Name                /dev/lvg/home
VG Name                lvg
LV Write Access        read/write
LV Status              available
LV #                   4
# open                 1
LV Size                4 GB
Current LE             1024
Allocated LE           1024
Stripes                2
Stripe size (KByte)    16
Allocation             next free
Read ahead sectors     10000
Block device           58:3
   --- Distribution of logical volume on 2 physical volumes  ---
   PV Name                  PE on PV     reads      writes
   /dev/hda3                512          33         18
   /dev/hdc3                512          34         22
   --- logical volume i/o statistic ---
   67 reads  40 writes
   --- Logical extents ---
   LE    PV                        PE     reads      writes
   00000 /dev/hda3                 06400  32         18
   00001 /dev/hda3                 06401  0          0
   00002 /dev/hda3                 06402  0          0
[...all PV the same, PEs incrementing by one...]
   00509 /dev/hda3                 06909  0          0
   00510 /dev/hda3                 06910  0          0
   00511 /dev/hda3                 06911  0          0
   00512 /dev/hdc3                 06400  7          9
   00513 /dev/hdc3                 06401  0          0
   00514 /dev/hdc3                 06402  0          0
[...all PV the same, PEs incrementing by one...]
   01021 /dev/hdc3                 06909  0          0
   01022 /dev/hdc3                 06910  0          0
   01023 /dev/hdc3                 06911  0          0
_______________________________________________
linux-lvm mailing list
linux-lvm@redhat.com
https://www.redhat.com/mailman/listinfo/linux-lvm
read the LVM HOW-TO at http://tldp.org/HOWTO/LVM-HOWTO/

[Index of Archives]     [Gluster Users]     [Kernel Development]     [Linux Clusters]     [Device Mapper]     [Security]     [Bugtraq]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]

  Powered by Linux