Archives de catégorie : proxmoxVE

Etendre une partition LVM

La partition data d’une machine virtuelle sous Proxmox devenait un peu à l’étroit, plus que 83 Mo disponible. Pour info, Proxmox tourne dans une machine virtuelle sous VirtualBox.

Avant toute modification, j’ai effectué une copie du disque virtuel, on ne sait jamais, j’ai ajouté un disque virtuel de 20 Go sur la machine virtuelle Proxmox, pour la suite c’est ici.

Démarrage de la machine virtuelle
Déclaration du nouveau disque en type lvm: Choisir type 8e et écrire
cfdisk /dev/sdb
Création du nouveau volume LVM
pvcreate /dev/sdb1
Ajout de ce nouveau volume au VG « pve »
vgextend pve /dev/sdb1
Je choisis la taille à etendre: 10 Go
lvextend -L+10G /dev/pve/data
Pour étendre au maximum de la taille de la partition
lvextend -l +100%FREE /dev/pve/data
Et pour finir, ne pas oublier la prise en compte par le système.
resize2fs -p /dev/pve/data

Un reboot pour vérifier que tout est bien gardé au démarrage

df -hT
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/mapper/pve-root
ext3    2.0G  795M  1.1G  42% /
tmpfs        tmpfs    496M     0  496M   0% /lib/init/rw
udev         tmpfs    486M  236K  486M   1% /dev
tmpfs        tmpfs    496M  3.1M  493M   1% /dev/shm
/dev/mapper/pve-data
ext3     14G  3.4G   10G  26% /var/lib/vz
/dev/sda1     ext3    495M   37M  433M   8% /boot
/dev/fuse     fuse     30M   16K   30M   1% /etc/pve

Merci à : http://lapt.blogspot.fr/2009/05/augmenter-la-taille-dun-volume-logique.html

Générer un certificat SSL auto-signé

Dans le cadre du projet de test des serveurs OVH (Alpha-US), la distribution de départ Debian Squeeze a été mise à niveau en installant les paquets Proxmox VE

Le but ici étant de générer un certificat SSL auto-signé dans le but de l’utiliser avec le proxy http Pound, pour ensuite renvoyer les requêtes HTTPS vers un serveur virtuel utilisant la virtualisation Openvz

Dans un premier temps si ce n’est pas fait on installe les outils qui vont permettre de générer le certificat:

apt-get install ssl-cert

Génération du certificat:

En une commande, la seule chose qui est demandée c’est le nom du domaine, on peut très bien laisser localhost.

make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/ssl/pound.pem

Le nom du fichier certificat a été nommé pound.pem en rapport avec le nom du serveur proxy Pound

La config dans Pound, en plus de la conf http (extrait)

vi /etc/pound/pound.cfg

ListenHTTPS
 Address xxx.xxx.xxx.xxx
 Port 443
 Cert "/etc/ssl/pound.pem"
## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
 xHTTP 0

Service
 HeadRequire "Host: domaine.tld"
       BackEnd
       Address 192.168.0.7
       Port 80
       End
    End
 End

Pour tester la config:

pound -c starting... Config file /etc/pound/pound.cfg is OK

Installation de Proxmox VE en raid1 logiciel

Proxmox VE est un système de virtualisation basé sur la technologie OpenVZ et KVM. Pour disposer de la virtualisation KVM le processeur doit disposer des instructions intel VT ou amd V.
Pour vérifier si le processeur est compatible, il suffit de lancer la commande suivante qui doit retourner quelque chose.

egrep ‘(vmx|svm)’ /proc/cpuinfo

Ceci permettra d’installer des systèmes hôtes comme: Centos, Fédora, Windows comme sur un PC en dur.

Proxmox fournit une image ISO qui permet d’installer un tel système en quelques clics et avec une rapidité déconcertante. Le petit souci est que Proxmox ne gère pas nativement le RAID logiciel, de plus les cartes mères vendues supposant faire du raid matériel sont en faite du FakeRaid. Un vrai contrôleur raid coute très cher. J’ai trouvé un tuto qui permet d’installer un raid logiciel. Je l’ai adapter à ma config, le tout a été testé dans une Virtualbox ce qui m’a permis de faire plusieurs essais avant de parvenir au résultat final.

Première précaution : il faut créer 2 disques virtuels avec une taille fixe et 4 Go minimum par disque.

Plus de blabla, la liste des commandes à lancer.

On installe déjà la distribution Proxmox sans se préoccuper du raid, choisir installation sur /dev/sda

Une fois installé, un premier reboot et le système est déjà fonctionnel.

Mise en place du RAID logiciel:

Le raid sera basé sur le soft mdadm.

1) Vérification et mise à jour si besoin de la distribution:
apt-get update
apt-get dist-upgrade -y
reboot

2) Installation du logiciel qui va permettre la gestion du raid.
apt-get install mdadm
yes to all
update-initramfs -u -t
reboot

3) Copie de la structure du premier disque sur le second:
sfdisk -d /dev/sda | sfdisk /dev/sdb –force
sfdisk -l /dev/sda
sfdisk -l /dev/sdb

4) Création du raid:

– Création des array du raid.

mdadm –create /dev/md0 –level=1 –raid-disks=2 missing /dev/sdb1
mdadm –create /dev/md1 –level=1 –raid-disks=2 missing /dev/sdb2
mdadm –examine –scan >> /etc/mdadm/mdadm.conf

– Copie de la partition /boot sur la partition du nouveau disque configuré en raid

copie la partition /boot
mkfs.ext3 /dev/md0
mkdir /mnt/md0
mount /dev/md0 /mnt/md0/
cp -ax /boot/* /mnt/md0/.

– On modifie le /etc/fstab pour booter sur le nouveau disque raid.

l’on remplace l’uuid du /dev/sda1 par le nouvel uuid du /dev/md0
On obtient la liste des uuid par la commande : blkid

vi /etc/fstab
UUID=5664deb0-6da2-45a1-9748-496f06a1b808 /boot ext3 defaults 0 1
reboot

Logiquement tout doit bien se passer, la suite des opérations:

On vérifie que l’on boot bien sur le raid qui contient uniquement le disque /dev/sdb

df # on boot bien sur /dev/md0

– Ajout de la partition /dev/sda1 dans le raid 1.

Cette opération va écraser le contenu du /dev/sda1 avec le contenu du /dev/md0.

mdadm –add /dev/md0 /dev/sda1
On vérifie en temps réel la recopie à l’identique de la partition.
watch cat /proc/mdstat (ctrl+c pour sortir)
reboot

A ce niveau tout doit encore bien se passer.
Les choses se compliquent. Proxmox créé des partitions de type lvm, on va donc devoir recréer tout cela.

– création et recopie des partitions LVM.

– Création du volume LVM physique.
pvcreate /dev/md1
– Extention du volume LVM pour permettre la copie des données.
vgextend pve /dev/md1
– Déplacement des données du disque /dev/sda2 sur le nouveau volume raid /dev/md1.
pvmove /dev/sda2 /dev/md1
– Attendre le 100% OK
– On retire le volume LVM du premier disque /dev/sda2 qui est désormais vide
vgreduce pve /dev/sda2

– Ajout de la partition /dev/sda2 dans le raid 1.
mdadm –add /dev/md1 /dev/sda2
watch cat /proc/mdstat
Attendre la fin de la construction pour sortir. (ctrl+c)

– On va ajouter dans grub le démarrage dur le 2ème disque physique.

vi /boot/grub/menu.lst
….
….
title           Proxmox Virtual Environment, kernel 2.6.18-2-pve-hd0
root            (hd0,0)
kernel          /vmlinuz-2.6.18-2-pve root=/dev/mapper/pve-root ro
initrd          /initrd.img-2.6.18-2-pve

title           Proxmox Virtual Environment, kernel 2.6.18-2-pve-hd1
root            (hd1,0)
kernel          /vmlinuz-2.6.18-2-pve root=/dev/mapper/pve-root ro
initrd          /initrd.img-2.6.18-2-pve

– Installation de grub dans le mbr:

grub-install /dev/sda
grub-install /dev/sdb

reboot final OK

Génial, tout fonctionne le système est en raid 1 et fonctionne parfaitement.

Quelques tests:

On casse:
mdadm –manage /dev/md1 –fail /dev/sda2
mdadm –manage /dev/md1 –remove /dev/sda2
cat /proc/mdstat
reboot

On répare:
mdadm –zero-superblock /dev/sda2
mdadm –add /dev/md1 /dev/sda2
watch cat /proc/mdsta
t # OK

Si changement de disque dur en vrai, refaire un grub-install /dev/sda et /dev/sdb

Attention pour l’installation de grub, il semble qu’il faille lancer en plus les commandes suivantes.

grub

grub> root (hd0,0)

grub> setup (hd0)

et

grub> root (hd1,0)

grub> setup (hd1)

Montage NFS sous noyau openVZ

Cet article décrit le montage de partitions NFS dans des serveurs virtuels (VE) avec un noyau openvz.

La configuration est la suivante:

– 1 Serveur sous centos 4.4 (HN) avec noyau 2.6.18-8.el5.028stab027.1
– 2 serveurs web (2 VE) avec une partition nfs montée pour les fichiers web
– 1 serveur FTP (VE) avec 2 montages NFS pour les fichiers.

Nota: L’authentification FTP se fait via un serveur MySQL qui se trouve lui aussi sur un autre serveur virtuel (VE)


Sur le serveur (HN)

Le nouveau noyau 2.6.18-8.el5.028stab027.1 permet de monter des partitions nfs dans les serveurs virtuels (VE).

Prépration du HN.
Montage du module NFS:

modprobe nfs

Les fichiers web se trouvent sur une partition du HN soit /nfs_mount/web/web01/ et /nfs_mount/web/web03.

Pour pouvoir monter le nfs sur le VE:

vzctl set 101 –features « nfs:on » –save
vzctl set 113 –features « nfs:on » –save
vzctl set 114 –features « nfs:on » –save

Vérification

vzctl exec 101 cat /proc/filesystems
ext2
ext3
nodev rpc_pipefs
nodev autofs
nodev proc
nodev sysfs
nodev tmpfs
nodev devpts
nodev nfs

Sur le (HN) il faudra mettre à 1 le fichier suivant, sinon pas de montage nfs possible dans les VE.

echo 1 > /proc/sys/kernel/ve_allow_kthreads

Configuration des fichiers du HN.
/etc/hosts.allow

portmap: 192.168.0.0/255.255.255.0
lockd: 192.168.0.0/255.255.255.0
rquotad: 192.168.0.0/255.255.255.0
mountd: 192.168.0.0/255.255.255.0
statd: 192.168.0.0/255.255.255.0

/etc/hosts.deny

portmap:ALL

/etc/exports

/nfs_mount/web/web03 192.168.0.0/255.255.255.0(rw,async,no_root_squash)
/nfs_mount/web/web01 192.168.0.0/255.255.255.0(rw,async,no_root_squash)

Nota: exportfs pour lister les montages NFS et exportfs -ra pour valider une modification du fichier.

Démarrage de NFS sur le (HN)

/etc/init.d/portmap start
/etc/init.d/nfs start

Sur le serveur virtuel (VE)

apt-get install portmap

Montage du NFS sur le (VE)

mount -t nfs 192.168.0.253:/nfs_mount/web/web03 /var/www/vhosts

exemple, montage du serveur FTP:

vzctl exec 114 df -hT
Filesystem Type Size Used Avail Use% Mounted on
simfs simfs 1.0G 152M 873M 15% /
tmpfs tmpfs 188M 0 188M 0% /dev/shm
nfs nfs 4.9G 1.8G 2.9G 39% /home/ftp/web03
nfs nfs 4.9G 1.8G 2.9G 39% /home/ftp/web01

Il est possible de faire le montage à partir du (HN)

vzctl exec 113 mount -t nfs 192.168.0.253:/nfs_mount/web/web03 /var/www/vhosts

Les possibilités sont gigantesques, un grand bravo à l’équipe openVZ. http://openvz.org/