Campus Numérique Francophone de Lomé

 

Accueil du site » Les Ressources » Cours et Tuto

>>HOWTO mettre en place LVM

19 juillet 2006

Description


Logical Volume Manager (LVM) est une couche logicielle entre les périphériques physiques de stockage et les systèmes de fichiers. Il permet d’abstraire la configuration physique des unités de stockage présentes sur la machine (nombre, capacités) afin d’en présenter une vision logique, autorisant ainsi une gestion de l’espace de stockage à la fois plus souple et plus performante.

Pour bien comprendre LVM, il faut tout d’abord maîtriser sa terminologie :

- Chaque partition sur un disque dur physique est considérée comme un volume physique (Physical Volume, PV). Les disques durs pouvant être partitionnés en une seule partition, on peut, par abus de langage, considérer un DD partitionné de cette manière comme un volume physique (une telle méthode est d’ailleurs largement conseillée). On peut à tout moment rajouter de nouveaux volumes physiques dans le système LVM, en rajoutant de nouveaux disques durs ou en partionnant de l’espace précedemment innocupé sur les DD existants. Il est également évidemment possible d’en enlever.

- Un groupe de volumes (Volume Group, VG) est un ensemble de volumes physiques. Un groupe de volumes est l’équivalent logique d’un disque dur physique. Un VG peut donc être constitué de 1 ou plusieurs PV, ces PV étant idéalement situés sur des disques durs différents. On peut rajouter ou enlever assez facilement et à tout moment des volumes physiques à un groupe de volumes.

- Un volume logique (Logical Volume, LV) est l’équivalent d’une partition classique, à la différence que c’est un VG qui est partitionné en volumes logiques, et pas un disque dur physique. Chaque LV supportera directement un système de fichiers au choix. Il est possible de redimensionner facilement un volume logique (agrandir ou rétrecir). Du point de vue utilisateur, un volume logique est absolument semblable à une partion classique. Un LV dépend de 1 et 1 seul VG.

Il est très intéressant de constater que la plupart (toutes ?) les opérations permises par LVM (création/suppression/redimmensionnement de PV/VG/LV) peuvent se faire "à chaud" et sans interruption de service. Les principales limitations sont liées aux systèmes de fichiers utilisés (par exemple ext2/3 ne supportent pas le redimensionnement à chaud, il faut démonter les partitions pour les redimensionner. ReiserFS, XFS et JFS supportent cette fonctionnalité). Dans le même ordre d’idée, le branchement de disque dur à chaud n’est pas supporté par la norme IDE, mais l’est par les normes Serial ATA et SCSI.

Voici quelques exemples des possibilités offertes par LVM :

- "Collage" (stripping) de disques durs : 2 (ou plus) disques durs de tailles quelconques peuvent constituer un groupe de volumes (disque dur virtuel) d’une capacité égale à la somme des capacités de chaque disque dur. Il est ainsi plus simple de calculer son plan de partitionnement, sans avoir à tenir compte des capacités de chaque disque.

- Agrandissement de partitions : si une partition devient remplie au delà d’un seuil critique, il suffit de rajouter un volume physique (par exemple un nouveau disque dur), le rajouter dans le groupe de volumes puis agrandir le volume logique correspondant, qui utilisera ainsi la nouvelle place disponible. A part la configuration de LVM, il n’y a absolument rien à modifier sur le système.

- Renouvellement de disque durs : il est possible de remplacer un disque dur vieillissant par un nouveau, en demandant à LVM de vider un volume physique (en déplacant ses données sur les autres PV disponibles), puis en échangeant les disques durs. Tout cela se fait sans la moindre interruption de service.

LVM est disponible dans les versions 1 (fiable et éprouvée) et 2 (plus récente, mais considérée comme tout aussi fiable). Nous nous intéresserons ici à LVM 2.

Configuration du noyau


- Le noyau standard livré avec les distributions les plus populaires est en général compilé avec la fonctionnalité LVM. 
- Si vous compilez votre noyau vous-même, assurez-vous d’activer « Multiple devices driver support (RAID and LVM) » puis « Logical volume manager (LVM) support  ».

Utilitaires indispensables


- Les utilitaires en ligne de commande pour gérer LVM sont disponibles pour Debian dans les paquetages lvm-common et lvm10 et, pour Redhat, dans le paquetage lvm. Toutes les commandes relatives à LVM (excepté e2fsadm) commencent par « pv », « vg » ou « lv » selon qu’elles manipulent respectivement les volumes physiques, les groupes de volumes ou les volumes logiques.

Parmi les commandes installées, les plus importantes sont les suivantes :

- pvcreate : crée un PV à partir d’une partition
- pvdisplay : affiche les attributs d’un PV
- pvmove : déplace le contenu d’un PV vers un/des autre(s) (utile pour vider un disque)
- pvremove : supprime un PV
- pvscan : cherche les volumes physiques présents sur la machine

- vgcreate : crée un VG à partir d’un ou de plusieurs PV
- vgdisplay : affiche les informations sur les VG
- vgextend : ajoute des PV à un VG existant
- vgmknodes : recrée les fichiers spéciaux dans /dev (très utile en cas de boot sur le LiveCD Gentoo, pour retrouver ses partitions)
- vgreduce : supprime un/des PV à un VG
- vgscan : scanne les VG présents sur la machine

- lvcreate : crée un LV d’une taille donnée à partir d’un VG
- lvremove : supprime un LV
- lvresize : redimmensionne un LV

Toutes les commandes de LVM supportent les options —help, -v (verbose) et -t (test). Il est conseillé de toujours utiliser le mode verbeux (-v).

Exemples d’utilisation de LVM


Pour nos exemples, nous prendront une machine possédant les unités de stockages suivants :

- 1 disque dur de 60 Go (hda), partitionné en 3 partitions :

/dev/hda1 = 100 Mo => partition /boot (non gérée par LVM)
/dev/hda2 = 1,9 Go => partition / (non gérée par LVM)
/dev/hda3 = 58 Go => volume physique géré par LVM

- 1 disque dur de 80 Go (hdb), partitionné en 1 seule partition :

/dev/hdb1 = 80 Go => volume physique géré par LVM

Il est fortement déconseillé de créer plus d’une partition gérée par LVM sur le même disque dur physique. En effet, LVM n’ayant aucun moyen de savoir si 2 PV sont sur le même disque, les performances du système peuvent être dégradée en cas d’écriture simultanée sur 2 PV du même disque.

Création des volumes physiques


Pour commencer, nous initialisont les PV /dev/hda3 et /dev/hdb1 :

pvcreate -v /dev/hda3 /dev/hdb1

Les 2 partitions sont ainsi préparées pour LVM. Elles sont ainsi considérées comme des volumes physiques, et sont prêtes à être ajoutées dans un groupe de volumes.

Création du groupe de volumes


Pour créer un VG à partir des PV initialisées précédement :

vgcreate -v vg /dev/hda3 /dev/hdb1

Un VG doit avoir un nom (ici vg). Ce nom servira à identifier le groupe de volumes dans /dev (ici /dev/vg). C’est un répertoire qui contiendra un fichier spécial par volume logique créé ultérieurement.

# ls -ld /dev/vg/
drwx------ 2 root root 160 Aug 17 19:52 /dev/vg/

Autre méthode, en créant d’abord un VG à partir de hda3 puis en rajoutant hdb1 :

vgcreate vg /dev/hda3
vgextend vg /dev/hdb1

Avec l’une ou l’autre méthode, vous obtenez un VG regroupant les 2 PV hda3 et hdb1, d’une taille de 58 + 80 = 138 Go. Ce VG peut être considéré comme un disque dur virtuel d’une capacité de 138 Go. Il ne reste plus qu’à le partitionner, afin de créer les volumes logiques.

Il est possible de créer plusieurs VG sur la même machine, toutefois cela ne présente que peu d’intêret.

Création des volumes logiques


Nous découpons notre VG en 3 volumes logiques. Tout comme les VG, les LV doivent avoir un nom. Le plus simple est de donner le nom du point de montage auquel est destiné le volume logique. Ici, nous créerons home (32Go), var (8Go), et usr (8Go), pour les points de montage correspondants. Nous occuperons ainsi 32 + 8 + 8 = 48 Go sur notre disque virtuel de 138 Go, il restera donc 90 Go qui pourront être utilisés pour d’autres LV ou pour agrandir les LV existants. (Note : il est aussi intérressant de créer des LV pour /opt, /tmp, ainsi que pour le répertoire de travail de portage, et pour la partition de swap. Cependant, nous ne préoccuperons pas de ces LV ici)

# lvcreate -v -L32G -nhome vg
# lvcreate -v -L8G -nvar vg
# lvcreate -v -L8G -nusr vg

Une fois les volumes logiques créés, ils sont accessibles dans /dev/vg :

# ls -l /dev/vg/
total 0
lrwxrwxrwx 1 root root 19 Aug 17 19:52 home -> /dev/mapper/vg-home
lrwxrwxrwx 1 root root 18 Aug 17 19:52 usr -> /dev/mapper/vg-usr
lrwxrwxrwx 1 root root 18 Aug 17 19:52 var -> /dev/mapper/vg-var

Dans toutes les commandes de LVM, les LV sont désignés par leur chemin d’accès complet, par exemple /dev/vg/home.

Mise en place des systèmes de fichiers


Tout comme une partition classique, un volume logique doit absolument être formaté avant d’être utilisé. Tout les systèmes de fichiers sont possibles, y compris swap. Les systèmes de fichiers comme JFS, ReiserFS et XFS ont l’avantage de pouvoir être agrandis à chaud. En revanche, seul ReiserFS peut être rétreci (partition démontée).

ex : mkreiserfs /dev/vg/home pour formater la partition /home en ReiserFS

Le fichier /etc/fstab doit être modifié pour refléter l’organisation du disque :

/dev/hda2 / reiserfs noatime 0 0
/dev/hda1 /boot ext2 noatime 0 0
/dev/vg/swap none swap noatime 0 0 (on suppose le LV ’swap’ créé par LVM)
/dev/vg/usr /usr reiserfs noatime 0 0
/dev/vg/home /home reiserfs noatime 0 0
/dev/vg/var /var reiserfs noatime 0 0

Redimensionnement de PV/VG/LV


- Modifier la taille d’un PV revient à modifier la taille de la partition correspondante. Cela est possible mais délicat. Ce genre de manipulation est à éviter.
- Modifier la taille d’un VG revient à rajouter ou enlever des PV. Cela se fait avec les commandes vgextend et vgreduce :

# vgextend -v vg
# vgreduce -v vg

- Modifier la taille d’un LV revient à allouer plus ou moins de place à ce LV au sein du VG dont il dépend. Celà se fait avec la commande lvresize (ici augmentation de 32 Go de la taille de home, puis réduction de 16 Go) :

# lvresize -v -L+32G /dev/vg/home
# lvresize -v -L-16G /dev/vg/home

Attention, le fait qu’un LV soit agrandi ne signifie pas que le système de fichiers correspondant soit agrandi également. Il faut pour cela utiliser les commandes spécifiques au système de fichier employé, après avoir agrandi le LV :

- ext2/3 : resize2fs (package sys-fs/e2fsprogs, la partition doit être démontée pour être agrandie)
- ReiserFS : resize_reiserfs [-f] (package sys-fs/reiserfsprogs, la partition peut être démontée ou montée, dans ce cas utilisez l’option -f)
- XFS : xfs_growfs (package sys-fs/xfsprogs, la partition doit être montée, et c’est le point de montage qui est désigné)

De la même manière, il est nécessaire de réduire le système de fichiers avant de réduire la taille du LV. Seul ReiserFS et ext2/3 supportent d’être rétrécis.

- ext2/3 : resize2fs , la partition doit être démontée
- ReiserFS : resize_reiserfs -s- , la partition doit être démontée

 
 
http://artistlane.com/xenical-us.pdf
http://www.naturaldiamondcompany.com/erythromycin-opthalmic-ointment-0-5.pdf
generic lioresal
cyproheptadine hcl 4mg
revlimid sales
price of dilantin
 floricot
more flagyl pills
buy nuvigil online in india
buy generic namenda
mefloquine cost in usa
acyclovir manufacturers
buy aripiprazole 10 mg
paxil 25 mg in usa
acyclovir price 800mg
sustanon 250 for sale
coumadin oral
metronidazole arthritis in usa
pantoprazole tab
best price for fluconazole
xalatan discount
buy enalapril in new york
http://upsizemag.com/fluorouracil-cr&
buy generic fincar
60 mg cymbalta
buy dapoxetine cheap
discount avodart in mexico
wellbutrin pharmacy
pletoz online
information about orlistat availability
order maxalt
info about prometrium 100 costo
fertyl 50 mg tablet
http://www.phaseivengr.com/mobic-7-5-oral-tablet.pdf
comprar tadacip espana
xeloda cost medicare
acyclovir ointment
azithromycin no script canadian
buy sertraline 50 mg
tenofovir brands
buy gleevec cheap
terbinafine hydrochloride 1 cream
doxycycline pharmacy
benicar hct prices
http://pulseseismic.com/buy-lotensin-5-mg.pdf
acheter silagra 100
snovitra 40 mg
cost for ciprofloxacin hcl 5 ml
info about fluconazole cheapest price
gleevec discount
buy phenergan
armodafinil nuvigil
info about femalegra 100mg
more info rizatriptan odt 5mg
modafinil purchase in france
cernos capsules for sale achat tadalista stendra generic buy isotretinoin for bodybuilders buy generic oleanz online more antidepressant zoloft http://www.phaseivengr.com/rifagut-200mg.pdf http://www.phaseivengr.com/propranolol-hcl-40-mg.pdf femara metronidazole cipla about buy cheap mestilon zofran cost walgreens bactrim d.s. two tabs bid in france prexaton price http://artistlane.com/tab-mirtaz-15-mg.pdf order voltaren prednisolone acetate ophtalmic modvigil for sale in india wellbutrin pharmacy info about levothyroxine .0125 buy mirtazapine 15 mg amantadine apcalis jelly mirtazapine availability drug prozac erlotinib for sale http://pulseseismic.com/omeprazole-pills.pdf glipizide 20mg information oxybutynin er 10mg cost prednisolone brands in india in united states premarin generic equivalent about drug fosamax cernos depot for sale more buy soranib without a prescription levothyroxine 88mcg tablet zantac buy uk http://www.phaseivengr.com/lumigan-for-sale.pdf buy generic forzest decadron tablets pills finpecia 1mg by cipla http://pulseseismic.com/meds-actos.pdf http://upsizemag.com/buy-nolvadex-online-india.pdf http://artistlane.com/lipitor-tablet.pdf more info about tamoxifen cost with insurance http://www.naturaldiamondcompany.com/buy-raloxifene.pdf http://upsizemag.com/pepcid-ac-100.pdf http://www.naturaldiamondcompany.com/buy-diovan-40-mg.pdf generic of coreg cr information pelosta 1 online avanafil chile septra ds silagra malaysia ciprofloxacin buy online memantine japan in france buy cheap tadora about dilantin 1buy tadacip 20mg buy tadacip buy vidalista buy super p force 100mg buy caverta 100mg buy sildisoft 100mg http://www.puptection.com/about-us2/mission-statement/ about buy sildisoft buy super p force super p force 100mg http://www.puptection.com/home/item/7-mission-statement/ http://worldclaim.net/public-adjusters/ more info about buy sildigra buy suhagra 100mg buy tadaga in mexico http://www.bracesinfo.com/reviews/ buy sildisoft 50mg viraday 300mg buy tadasoft 40mg vidalista 20mg in uk tadasoft 20mg tadasoft 40mg vilitra 20mg information buy vidalista 20mg tadacip 20mg tadaga 40mg buy snovitra 20mg buy tadasoft 20mg in united states buy tadaga 40mg http://worldclaim.net/contact/ buy snovitratadalista soft 40 information about buy medrol sildisoft 50mg rapamune pharmacy oleanz rt 15 levaquin without prescription http://wellnessbynature.org/buy-cardura-online more info sorafenib agent information about carvedilol bisoprolol amlodipine 200 mg buy levaquin 750 mg 15mg actos http://dumbbellbombshell.com/generic-ciprofloxacin https://silverstatedrivingacademy.com/blog/buy-testosterone-undecanoate-injection enalapril 10 mg http://mysneakerspot.com/doxazosin-cardura-pfizer valsartan price http://americanautodistributing.com/topirol-50-mg buy xeloda 1.0mg risperidone 2mg eriacta 250mg amoxicillin urimax 0.4 price orlistat hong kong valif uk http://wellnessbynature.org/viread-300-mg generic prozac http://edcharkow.com/blog/imatinib-capsules-veenat-100 buy cheapest amitryn isotretinoin capsules https://www.envturfmgmt.com/betamethasone-cream-0-1 more info about buy lovegra uk bimatoprost careprost generic acyclovir ointment 5 clarithromycin ranbaxy norvasc hk zoloft 60 mg in france x-vir online about generics for zoloft zocor generic price buy generic synthroid http://rickrobinsonbuilders.com/bupropion-300-mg mirtazapine 15mg in india order rivastigmine buy doxycycline hyclate 100mg http://wokingham-berks.com/generic-drug-for-bactrim-ds leflunomide arava price in india information grifulvin v 500mg http://printheadshots.com/gleevec-avastin lumigan pharmacy online more terbinafine 250mg tablets malegra for sale http://mysneakerspot.com/canada-pharmacy-generic-femara information buy piracetam by ucb buy biaxin 250 mg buy rapacan canada qutipin 50 mg tablet omeprazole 40mg generic