[gull] LVM - OpenVZ: Howto PV inside VE
Félix Hauri
felix at f-hauri.ch
Sat Jan 22 11:00:22 CET 2011
Bonjour,
Comment gérer des volumes LVM (pvscan etc) *dans* un container OpenVZ?
Voici la situation:
- Machine de virtualisation sous GNU/Debian Lenny,
avec OpenVZ et KVM
- Système de fichier en raid-10 -> LVM:
1 Physical-Volume et 1 Volume-Group.
- Vieux serveur sous RH-9 (Shrike) -> KVM
- Autres machines Win?? -> KVM
- Serveur de backup avec rsync sous OpenVZ
Le problème est que l'installation RH-9 utilise 2 ``disques''
qui sont dans les faits deux LV de mon VG unique, et que
RH-9 utilise LVM (1) sur 2 PVs, dont 1 sur une partition
du premier disque et l'autre sur l'entier du second disque.
# pvscan
pvscan -- reading all physical volumes (this may take a while...)
pvscan -- ACTIVE PV "/dev/hda2" of VG "vg01" [2.48 GB / 0 free]
pvscan -- ACTIVE PV "/dev/hda10" of VG "vg01" [42.08 GB / 0 free]
pvscan -- ACTIVE PV "/dev/hdb" of VG "vg02" [136.45 GB / 0 free]
pvscan -- total: 3 [181.09 GB] / in use: 3 [181.09 GB] / in no VG: 0 [0]
# lvscan
lvscan -- ACTIVE "/dev/vg01/lv_data" [44.56 GB]
lvscan -- ACTIVE "/dev/vg02/lv_data" [136.45 GB]
lvscan -- 2 logical volumes with 181.02 GB total in 2 volume groups
lvscan -- 2 active logical volumes
De plus, on voit de toute la puissance de LVM est exploitée:
pas un byte ``free'' donc pas de snapshot possible!
Le resultat est que le second PV est visible depuis mon HN:
# pvs
PV VG Fmt Attr PSize PFree
/dev/dm-6 vg02 lvm1 a- 136.45G 0
/dev/md1 VGuniq lvm2 a- 2.73T 92.68G
# lvs -v
Finding all logical volumes
LV VG #Seg Attr LSize Maj Min KMaj KMin Origin Snap% Move Copy%
Log Convert LV UUID
ROOT VGuniq 1 -wi-ao 5,00G -1 -1 253 0
BACKUPS VGuniq 2 -wi-ao 980.00G -1 -1 253 5
VZ VGuniq 1 -wi-ao 600.00G -1 -1 253 3
RH9-sdA VGuniq 1 -wi-ao 80.00G -1 -1 253 7
RH9-sdB VGuniq 1 -wi-ao 160.00G -1 -1 253 6
...
lv_data vg02 1 -wn-a- 136.45G -1 -1 253 11
Cela devient épique si je tente de créer un snapshot de RH9-sdB:
# lvcreate -s -L 10G -n Bkup-RH9-sdB VGuniq/RH9-sdB
Logical volume "Bkup-RH9-sdB" created
debian:~# lvs -v
Found duplicate PV ppe47...: using /dev/dm-13 not /dev/dm-6
Found duplicate PV ppe47...: using /dev/dm-14 not /dev/dm-13
...
Bkup-RH9-sdB VGuniq 1 swi-a- 10.00G -1 -1 253 13 RH9-sdB 0.00
RH9-sdB VGuniq 1 owi-ao 160.00G -1 -1 253 6
...
# ls -l /dev/mapper/
brw-rw---- 1 root disk 253, 13 jan 22 10:33 VGuniq-Bkup--RH9--sdB
brw-rw---- 1 root disk 253, 15 jan 22 10:33 VGuniq-Bkup--RH9--sdB-cow
brw-rw---- 1 root disk 253, 6 jan 22 10:42 VGuniq-RH9--sdB
brw-rw---- 1 root disk 253, 14 jan 22 10:33 VGuniq-RH9--sdB-real
Je souhaite donc créer un conteneur VZ, dans lequel je donne accès
à b:253:13:r (idéalement en read-only) pour pouvoir monter
la partition et la backuper au niveau (nice) d'un conteneur.
# vzctl set 101 --devices c:10:60:rw --devices b:253:13:r
Setting devices
WARNING: Settings were not saved and will be resetted to original values
on next start (use --save flag)
(Nota, étant donné que j'agit sur des volumes provisoires, pouvant
potentiellement changer de nro de mineur, je ne --save pas.)
puis
# vzctl enter 101
# pvscan
No matching physical volumes found
# mkdir /dev/mapper
# mknod /dev/mapper/control c 10 60
# mknod /dev/sdb b 253 13
# vgscan
Reading all physical volumes. This may take a while...
# pvscan
No matching physical volumes found
# file -s /dev/sdb
/dev/sdb: LVM1 (Linux Logical Volume Manager), version 1 , System ID:
Si de là, quelqu'un à une idée, elle sera bien venue!
--
Félix Hauri - <felix at f-hauri.ch> - http://www.f-hauri.ch
More information about the gull
mailing list