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 17:41] 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 : | ||
- | ==== Snapshot ==== | + | pvmove /dev/sdd1 /dev/sdb1 |
- | Le lancement de cette commande prend une image du volume ''/dev/rootvg/rootlv'' | + | ==== 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. | ||
+ | === Créer un SnapShot === | ||
+ | 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 === | ||
+ | |||
+ | 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 | ||
+ | mount /dev/rootvg/root_snapshot_2008-09-15-0303 /SNAPSHOT/root_snapshot_2008-09-15-0303 | ||
+ | |||
+ | 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 | ||
+ | |||
+ | 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 | ||
+ | ln -s /SNAPSHOT/root_snapshot_2008-09-15-0303/$PWD /$PWD/.snapshot | ||
+ | |||
+ | === Supprimer un SnapShot === | ||
+ | umount /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 |