# [LVM] comment sont reparti les lv sur les pv ? (soeur)

## pascuol

Bonjour,

j'ai besoin de savoir comment sont répartis mes différents LV dans mon LVM par rapport a mes PV.

clair non ?

un exemple ?

3 disques 

sda 1To

sdb 2To

sdc 3To

en 1er on cree un pv uniquement pour sda

on cree un vg "DATA" sur ce pv

dans ce vg DATA on créee 4 lv de 25% la taille du vg (1To en ce moment). lv1 lv2 lv3 lv4

ensuite on cree un pv pour sdb 

on exent le vg DATA avec sdb

on redimentionne les 4 lv a 20% la taille du vg. (2.5 To a ce moment)

parreil pour sdc. a 25%

au finale on se retourve avec 4 lv de 1.5To

ma question est la suivante :

ou se trouve mon lv1, dans quet etat ?

-sur sda et un peu sdb

-uniquement sur sdb 

-uniquement sur sdc

-un peu partout, eparpiller et morceler 

-un seul morceau ?

bref, y a-t-il une commande (que je n'ai pas trouver) ou un programme pour pouvoir avoir une vision de ou se trouve physiquement mes lv ?

genre :

```

       -------------------------------------------------------------

 sd  |      a    |           b               |             c              |

       -------------------------------------------------------------

 lv   |1|2|3|4| 1 | 2 | 3 | 4 |    1    |    2    |    3    |   4    |

       --------------------------------------------------------------

?

```

alors question subsidiaire, si les lv sont morcelés comme je l'imagine, dans mon exemple, est-il possible de les démorceler ? manuellement ou automatiquement ?

bien ssr sans perde de donnée.

Une astuce, un conseil, c'est le bien venu.

 :Cool: Last edited by pascuol on Wed Jan 25, 2012 3:33 pm; edited 1 time in total

----------

## guilc

Tout est éparpillé, de manière différente suivant que tu utilises plusieurs slices ou pas, et dans l'absolu, tu n'as pas à t'en soucier.

Et il y a tout ce qu'il faut dans les outils lvm pour avoir ces infos  :Wink: 

Pour voir comment sont répartis les volumes logiques sur les volumes physiques : lvdisplay  --maps

Et pour faire des déplacements de données d'un pv à l'autre, voir du côté de pvmove qui prend beaucoup d'options possibles. C'est entre autres la commande qui va permettre de déplacer des données pour sortir un disque du groupe. Mis ça fait beaucoup plus. Bien sûr, avec toutes les précautions d'usage. Normalement ça marche sans souci, mais, on n'est jamais à l'abri d'une perte de données.

Je t'invite à lire les pages man de ces 2 outils pour voir toutes les options possibles, mais ça devrait répondre à ton problème  :Wink: 

PS: peux-tu mettre ton titre du topic en conformité avec les conventions de notre forum s'il te plaît ? Merci  :Smile: 

----------

## pascuol

Je te remercie pour ta réponse, j'avais trouvé également qq commande genre lvs --segments

mais ce n'est pas tres human readable..

je vais prendre en exemple un de mes LV

```

  --- Logical volume ---                                                        

  LV Name                /dev/DATA/DataVol1

  VG Name                DATA

  LV UUID                hSSEva-AW5H-dVr2-bESF-LpuB-NMSc-sPfwlp

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                540.27 GiB

  Current LE             138310

  Segments               5

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0

 

  --- Segments ---

  Logical extent 0 to 59615:

    Type                linear

    Physical volume     /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1.1:1.0-scsi-0:

0:0:0

    Physical extents    0 to 59615

 

  Logical extent 59616 to 59618:

    Type                linear

    Physical volume     /dev/disk/by-path/pci-0000:00:1d.7-usb-0:1.1:1.0-scsi-0:

0:0:0

    Physical extents    238464 to 238466

 

  Logical extent 59619 to 78693:

    Type                linear

    Physical volume     /dev/sdd

    Physical extents    0 to 19074

 

  Logical extent 78694 to 78694:

    Type                linear

    Physical volume     /dev/sdd

    Physical extents    76309 to 76309

 

  Logical extent 78695 to 138309:

    Type                linear

    Physical volume     /dev/disk/by-id/usb-Generic_External_533133504A314551333

13136-0:0

    Physical extents    0 to 59614

 
```

on peut aisément comprendre que c'est le bordel, de plus ca sort des nom de pv sorti des entraille de l'enfer "/dev/disk/by-id/usb-Generic_External_533133504A314551333" c'est quel lecteur ca ?

 Bref pas super super clair.

Bon je sais que justement lvm est fait pour ne pas se tracasser de se probleme, mais comme je mets autre chose par dessus, j'ai besoin de comprendre comment cela est organiser. et je vais devoir trouver un moyen d'organiser tout ça.

J'ai donc eu un doute, qui se confirme ici, j'ai donc mnt besoin de controler la repartition de mes LV.

 Pour reprendre mon exemple, il est impératif que j'aie ceci a la place:

```

     -----------------------------------------------------------------------

 sd  |      a    |           b               |             c               |

      -----------------------------------------------------------------------

 lv  |       1            |               2         |     3        |     4   |   

      -----------------------------------------------------------------------

```

le man de la commande pvmove n'est pas tres clair et tres confus.

j'ai besoin également, lorsque j'ajoute un disque a mon VG, de controler ou savoir comment les LV vont se répartir dessus lors de la création afin de pouvoir m'arranger pour créer ca proprement.

Si qqn le sais ca m'arrange, sinon je vais devoir faire des tests..

bon je vais faire qq tests du coté de la commande pvmove.. on verra bien. J'espere trouver qqch de pratique ou de comprendre la logique derriere cela (que j'espere simple) comme ca au pire je crée un script pour gérer cela.

----------

## guilc

Regarde bien les exemples sonnés en bas de la page man !

Il a des exemples indiquant comment déplacer des bouts de pv d'un disque vers un autre, en précisant les segments à déplacer, voire même de déplacer des segments au sein du même pv. Tu devrais avoir de quoi faire avec ça.

```
 82        To move a range of Physical Extents to a specific location (which must have sufficent free extents) use the form:                                                                                                        

 83                                                                                                                                                                                                                                 

 84         pvmove /dev/sdb1:1000-1999 /dev/sdc1                                                                                                                                                                                    

 85                                                                                                                                                                                                                                 

 86        or                                                                                                                                                                                                                       

 87                                                                                                                                                                                                                                 

 88         pvmove /dev/sdb1:1000-1999 /dev/sdc1:0-999                                                                                                                                                                              

 89                                                                                                                                                                                                                                 

 90        If the source and destination are on the same disk, the anywhere allocation policy would be needed, like this:                                                                                                           

 91                                                                                                                                                                                                                                 

 92         pvmove --alloc anywhere /dev/sdb1:1000-1999 /dev/sdb1:0-999 
```

Et pour les  liens "by-id", c'est des liens symboliques. un simple ls -l /dev/disk/by-* te donnera toutes les réponses sur les nommages  :Wink: 

----------

## pascuol

Merci pour ces précisioin, je vais regarder ca ce week-end..

apparemment on n'a pas le meme man ??

Voici le seu exemple donné dans mes man pages ... :'(

```
EXAMPLES 

       To move all logical extents of any logical volumes on /dev/hda4 to free

       physical  extents elsewhere in the volume group, giving verbose runtime

       information, use:

 

            pvmove -v /dev/hda4
```

plutot pas explicite du tout !

tes exemples sont bien mieux. Je pense que cela va me sauver et est suffisant. et un script devrait pouvoir le faire pour moi. Me suis dit que ca existait déja  :Smile: 

----------

## guilc

Peut-être parce que je suis en ~arch et pas toi ?

```
# eix -ec lvm2

[I] sys-fs/lvm2 (2.02.88@06/09/2011): User-land utilities for LVM2 (device-mapper) software.
```

Assure-toi que ta version à quand même la feature et que c'est que la doc qui manque   :Laughing: 

----------

