Modifications entre les versions 28 et 29
Version 28 à la date du 2010-05-12 12:44:38
Taille: 10407
Éditeur: FranckKouyami
Commentaire:
Version 29 à la date du 2010-05-12 12:48:11
Taille: 4950
Éditeur: FranckKouyami
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 85: Ligne 85:
!!! En cours de réécriture en suivant les commandes standards livrées avec openvz !!!

{{{
#! /bin/bash

# Définition de la fonction de génération des adresses macs à partir du numéro du VE

mac () {
# La racine commune de l'adresse MAC est fixee
mac="00:E1:00:01:"

# faire un controle sur la variable name (VEID du serveur)
if [ $1 -gt 100 ]
then
        {
        # Formater la variable name pour l'ajouter au reste de l'adresse MAC
        mac0=$(echo $1 | sed 's/./&:/g');
        mac0=$(echo $mac0 | sed 's/^\(.\{1\}\).\(.*\)$/\1\2/');
        mac0=$(echo $mac0 | sed 's/^\(.\{4\}\).\(.*\)$/\1\2/');

        # Ajouter le résultat obtenu a la racine de l'adresse MAC pour obtenir des adresses MAC completes
        mac1=$(echo "$mac""$mac0""A");
        mac2=$(echo "$mac""$mac0""B");
        }
else
        {
echo "Le nombre entre doit etre supérieur à 100";
return 0;
        }
fi
};

# recuperation des variables a utiliser dans le script
echo "Entrer le numero de la machine virtuelle a creer s'il vous plait"
read name
echo "Entrer la taille de la machine virtuelle a creer s'il vous plait"
read taille
echo "Entrer le nom du groupe de volumes a utiliser s'il vous plait"
read grvol
echo "Entrer le nom de l'hote de la machine virtuelle a créer s'il vous plait"
read hostname
echo "Entrer l'adresse IP de la machine virtuelle a créer s'il vous plait"
read ipadd
echo "Entrer le nom du pont auquel la machine virtuelle sera ajoutée s'il vous plait"
read bridge

# verifier que le numéro entré est supérieur à 100
if [ $name -lt 100 ]
then
        {
        echo "le numero du serveur doit être supérieur a 100";
        exit 0;
        }
fi

# verifier que le volume logique a creer n'existe pas encore
if [ -e /dev/mapper/$grvol-$name ]
then
         {
            echo "le point de montage existe déja";
            exit 0;
        }
fi

# Creation d'un volume logique
echo "creation du volume logique"
lvcreate --size $taille --name $name $grvol

# Creation du système de fichier
echo "création du système de fichier"
mkfs.ext3 /dev/$grvol/$name

# Ecriture des bonnes lignes dans le fstab
echo "écriture des bonnes lignes dans le fstab"
echo ''/dev/mapper/$grvol-$name /var/lib/vz/vz_list/$name ext3 defaults,errors=remount-ro 0 2 '' >> /etc/fstab

# Creation du repertoire de montage
echo "creation du repertoire de montage"
mkdir /var/lib/vz/vz_list/$name

# Montage des volumes logiques créés
echo "montage"
mount -a

# Création de l'environnement virtuel
vzctl create $name --ostemplate debian-5.0-i386-minimal

# Specification du nom du serveur virtuel
echo "Specification du nom du serveur virtuel"
vzctl set $name --hostname $hostname --save

# Specification de l'adresse IP du serveur virtuel
echo "Specification de l'adresse IP du serveur virtuel"

# Specification de la bonne addresse IP dans le fichier /etc/network/interfaces
sed -i 's/address 81.91.236.16/address '$ipadd'/g' /var/lib/vz/vz_list/$name/private/etc/network/interfaces

# creation de l'interface veth de la machine virtuelle

# appel de la fonction de creation des adresses MACs et passage de paramètre
mac $name

# Attribution d'une adresse veth au VE
vzctl set $name --netif_add "eth0,$mac1,veth$name.0,$mac2,$bridge" --save

# demarrage de la machine virtuelle
vzctl start $name
}}}
!!! Le [[/script de d'installation]] est en cours de réécriture en suivant les commandes standards livrées avec openvz !!!
 

Virtualisation de serveur

L'arrivée du nouveau serveur m'a permis de passer avec l'aide de Stéphanie Glèlè (Stagiaire au CNF de Cotonou), à la mise en place d'OpenVZ ainsi qu'à l'automatisation de certaines tâches (le plus possible). Les avancées sont à suivre ici à la semaine près :-D.

Initialisation

  • Installer openvz
  • Faire un /joli template

  • Mettre à jour les paramêtres

Plan d'adressage

Changement d'adresses

nfs-cotonou passe de 81.91.236.4 à 81.91.236.14

OpenVZ devient 81.91.236.3

Nouvelles entrées

Service

Ancien FQDN

Ancien IP hôte

Nouveau FQDN

Nouvel IP

Remarques ???

DNS

ns.bj.refer.org

81.91.236.2 (sur mail-cotonou)

ns.bj.refer.org

81.91.236.2

Reste sur son serveur actuel en attendant

Proxy squid

cnfc.bj.refer.org

81.91.236.4 (sur nfs-cotonou)

proxy.bj.refer.org

81.91.236.4

Openvz

mail

mx.bj.refer.org

81.91.236.2 (sur mail-cotonou)

mail-cotonou.bj.refer.org

81.91.236.2

Reste sur son serveur actuel en attendant

Hébergement cnfc

bj.refer.org

81.91.236.2 (sur mail-cotonou)

web.bj.refer.org

81.91.236.6

Openvz FAIT!! :-)

Hébergement partenaire

*.bj.refer.org

81.91.236.2 (sur mail-cotonou)

friends.bj.refer.org

81.91.236.7

Openvz FAIT!! :-)

Hébergement temporaire

temporaire.bj.refer.org

81.91.236.2 (sur mail-cotonou)

temp.bj.refer.org

81.91.236.8

Openvz FAIT!! :-)

Mysql

bj.refer.org

81.91.236.2 (sur mail-cotonou)

mysql.bj.refer.org

81.91.236.9

Openvz FAIT!! :-)

Mysql friends

bj.refer.org

81.91.236.2 (sur mail-cotonou)

mysql-friends.bj.refer.org

81.91.236.10

Finalement, je sépare les serveurs mysql

Voip

voip.bj.refer.org

81.91.236.1 (nat sur le serveur interne)

voip.bj.refer.org

81.91.236.11

Openvz PRESQUE FAIT!! :-)

Mirroir débian/Ubuntu

debian/ubuntu.bj.refer.org

81.91.236.4 (sur nfs-cotonou)

debian/ubuntu.bj.refer.org

81.91.236.13

Openvz

Outils de monitoring

admin.bj.refer.org

Nouveau

admin.bj.refer.org

81.91.236.14

Openvz FAIT :-)

Webdav

NA

Nouveau

admin.bj.refer.org

81.91.236.15

Openvz FAIT :-)

Spécificités du CNFC

Espace disque

On a décidé de créer un volume logique pour chaque VE. Ensuite; cela permet de contrôler l'espace en plus des options internes d'OpenVZ.Donc pour ce faire on a du lvm sur du raid1 (question de redondance imédiate) sur les deux disques durs de la machine. On crée tous les lv dans le VG sys en attendant d'avoir les nouveaux disques pour séparer plus finement la configuration.

A la date du 04/02/2009 on avait :

openvz:~# vgdisplay
  --- Volume group ---
  VG Name               sys
  System ID
  Format                lvm2
...
  Alloc PE / Size       7584 / 29,62 GB
  Free  PE / Size       111528 / 435,66 GB

dans lequel on loge les Volumes Logiques (VL) des VEs.

Adressage Mac

On utilise une racine commune pour toutes les interfaces des VEs. Avec une base de la forme "00:E1:00:01:" et un numéro de VE de la forme XXX, cela donne : "00:E1:00:01:XX:XA" pour l'interface eth0 de la VE et "00:E1:00:01:XX:XB" pour la VETHXXX de l'hôte.

Quelques valeurs par défauts chez nous

# UBC parameters (in form of barrier:limit)
KMEMSIZE="16384000:18022400"
LOCKEDPAGES="4096:4096"
PRIVVMPAGES="262144:292912"
SHMPAGES="131072:131072"
NUMPROC="400:400"
PHYSPAGES="0:2147483647"
VMGUARPAGES="102400:2147483647"
OOMGUARPAGES="102400:2147483647"
NUMTCPSOCK="500:500"
NUMFLOCK="200:220"
NUMPTY="64:64"
NUMSIGINFO="512:512"
TCPSNDBUF="5365760:10485760"
TCPRCVBUF="5365760:10385760"
OTHERSOCKBUF="1506232:4063232"
DGRAMRCVBUF="262144:262144"
NUMOTHERSOCK="500:500"
DCACHESIZE="4194304:4317184"
NUMFILE="8192:9312"
AVNUMPROC="200:280"
NUMIPTENT="128:128"

Le template

Ben, c'est un template etch Lenny standard avec installé par défaut des outils comme vim, wget, nscd, logcheck, logrotate, ssh, etc. On y ajoute le resolver par defaut à 81.91.236.2.

Script de création

!!! Le /script de d'installation est en cours de réécriture en suivant les commandes standards livrées avec openvz !!!

Script de suppression

/Script de suppression pour supprimer automatiquement et démonter des VE

A savoir

Depuis vzctl version 3.0.23, il est possible de nommer directement les CT (ex-VE) et de l'utiliser pour faire les appels. Il suffit de lancer la commande suivante :

  • vzctl set $CTID --name nom_du_CT --save

Mise à jour des VE

J'ai fait un joli /script de mise a jour.

Todo list

  • Faire le script de surveillance des VEs (en projet)
  • Faire des fonctions dans des fichiers différents

ZAO/Cotonou/Modèles/OpenVz (dernière édition le 2010-05-12 12:48:11 par FranckKouyami)