Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
informatique:linux:lvm [2008/09/15 18:04] benoit |
informatique:linux:lvm [2018/12/28 06:55] (Version actuelle) benoit [Resizer un Logical Volume] |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ====== LVM ====== | ||
| + | |||
| + | ===== Description ===== | ||
| + | |||
| + | Diagramme des différentes couches de l'architecture LVM. | ||
| + | |||
| + | {{informatique:linux:lvm.jpg}} | ||
| + | |||
| + | ===== Fonctionnement ===== | ||
| + | |||
| ==== Créer un volume groupe et des files systèmes ==== | ==== Créer un volume groupe et des files systèmes ==== | ||
| Ligne 14: | Ligne 24: | ||
| mkdir /products | mkdir /products | ||
| echo "/dev/rootvg/lvproducts /products ext3 defaults 0 0" >> /etc/fstab | echo "/dev/rootvg/lvproducts /products ext3 defaults 0 0" >> /etc/fstab | ||
| + | | ||
| + | |||
| + | ==== Agrandir un volume group ==== | ||
| + | Pour ajouter un nouveau volume dans un volume group : | ||
| + | vgextend zimbravg /dev/sdc1 | ||
| Ligne 44: | Ligne 59: | ||
| + | :!: Remarque : Certaines version de LVM utilisent XFS, il faut donc utiliser ''xfs_growfs'' à la place de ''resize2fs''. Exemple : | ||
| + | xfs_growfs /dev/rootvg/lvusr | ||
| Ligne 85: | Ligne 102: | ||
| lvchange -a n /dev/rootvg/homelv | lvchange -a n /dev/rootvg/homelv | ||
| + | ==== Déplacer les données d'un PV à un autre PV faisant partie d'un même VG ==== | ||
| + | Pour déplacer les données de /dev/sdd1 vers /dev/sdb1 : | ||
| + | pvmove /dev/sdd1 /dev/sdb1 | ||
| - | + | ==== Snapshots ==== | |
| - | + | Le snapshot permet de faire une sauvegarde d'un LogicalVolume à un instant T. Ceci permet surtout de restaurer rapidement un fichier si celui-ci a été effacé par erreur. | |
| - | + | ||
| - | + | ||
| - | ==== Snapshot ==== | + | |
| - | Le snapshot permet de faire une sauvegarde du FS à un instant T. Ceci permet surtout de restaurer rapidement un fichier si celui-ci a été effacé par erreur. | + | |
| === Créer un SnapShot === | === Créer un SnapShot === | ||
| - | Pour prendre une image du volume ''/dev/rootvg/rootlv'' à un instant T, lancer | + | Pour prendre une image du volume logique ''/dev/rootvg/rootlv'' (monté sur /) à un instant T, lancer : |
| lvcreate -L100M -s -n root_snapshot_$(date +%Y-%m-%d-%H%M) /dev/rootvg/rootlv | lvcreate -L100M -s -n root_snapshot_$(date +%Y-%m-%d-%H%M) /dev/rootvg/rootlv | ||
| - | Ce volume de SnapShot est de 100Mo, tant qu'il y a moins de 100Mo modifié sur le volume ''/dev/rootvg/rootlv'' le snapshot restera **actif** au delà le SnapShot se **désactivera** et ne sera plus accessible. | + | :!: Ce SnapShot est de 100Mo, tant qu'il y a moins de 100Mo modifié sur ''/dev/rootvg/rootlv'' le SnapShot restera **actif** au delà il se **désactivera** et ne sera plus accessible. |
| === Accès au SnapShot === | === Accès au SnapShot === | ||
| - | Pour restaurer un fichier, il suffit de monter le volume ''root_snapshot_2008-09-15-0303'' | + | Pour avoir accès au SnapShot, il suffit de monter le volume logique ''/dev/rootvg/root_snapshot_2008-09-15-0303'' |
| mkdir -p /SNAPSHOT/root_snapshot_2008-09-15-0303 | mkdir -p /SNAPSHOT/root_snapshot_2008-09-15-0303 | ||
| mount /dev/rootvg/root_snapshot_2008-09-15-0303 /SNAPSHOT/root_snapshot_2008-09-15-0303 | mount /dev/rootvg/root_snapshot_2008-09-15-0303 /SNAPSHOT/root_snapshot_2008-09-15-0303 | ||
| - | On trouvera la même arborescence que ''/dev/rootvg/rootlv'' dans ''/SNAPSHOT/root_snapshot_2008-09-15-0303'' saut qu'il y aura nos ancien fichiers. Donc pour restaurer le fichier ''toto.txt'' il suffit de faire : | + | On trouvera la même arborescence que ''/'' dans ''/SNAPSHOT/root_snapshot_2008-09-15-0303'' sauf qu'il y aura nos anciens fichiers. Donc pour restaurer par exemple le fichier ''/home/user/toto.txt'' il suffit de faire : |
| cp /SNAPSHOT/root_snapshot_2008-09-15-0303/home/user/toto.txt /home/user/toto.txt | cp /SNAPSHOT/root_snapshot_2008-09-15-0303/home/user/toto.txt /home/user/toto.txt | ||
| - | Pour qu'un user ait accès à son snapshot, il suffit de créer un lien symbolique ainsi | + | Pour qu'un user ait accès à son snapshot, sans faire appel à l'administrateur on peut par exemple créer un lien symbolique ainsi |
| cd /home/user | cd /home/user | ||
| ln -s /SNAPSHOT/root_snapshot_2008-09-15-0303/$PWD /$PWD/.snapshot | ln -s /SNAPSHOT/root_snapshot_2008-09-15-0303/$PWD /$PWD/.snapshot | ||
| Ligne 119: | Ligne 135: | ||
| lvremove /dev/rootvg/root_snapshot_2008-09-15-0303 | lvremove /dev/rootvg/root_snapshot_2008-09-15-0303 | ||
| + | === Stratégie des SnapShots === | ||
| + | |||
| + | Idéalement il faut allouer 20% du VolumeGroup pour les SnapShots. La taille de chaque SnapShot devra être définis selon la fréquence et l'historique désiré. | ||
| + | |||
| + | ==== Thin Provisionning ==== | ||
| + | |||
| + | :!: Attention, le thin provisionning nécessite beaucoup de rigueur dans la supervision les volumes | ||
| + | |||
| + | Le ThinPool est le volume physiquement alloué : | ||
| + | Creation d'un Thin Pool : | ||
| + | lvcreate -L 100M -T datavg/mythinpool | ||
| + | |||
| + | Nous faisons ci-dessous un volume supérieur à celui physiquement alloué : | ||
| + | Puis le volume thin : | ||
| + | lvcreate -V200M -T datavg/mythinpool -n thinvolume | ||
| + | |||
| + | Faire les deux en une seule ligne de commande : | ||
| + | lvcreate -L100M -T datavg/mythinpool -V200M -n thinvolume | ||