• .
  • .
  • .
  • .
  • .
  • .

Une problématique que vous pourrez souvent rencontrer, est de vouloir monter des systèmes de fichier sur des VE OpenVZ. J’ai d’abord essayé une technique qui au final ne fonctionne pas, mais je vais vous l’expliquer quand même.

J’avais donc mis en place dans mon fstab une ligne pour binder un dossier sur le fs de l’hote dans un dossier des VE. Un truc du genre :

# mount --bind /data  /var/lib/vz/private/vm/0/data

Bref, dans tous les cas, ceci ne fonctionne pas. Pour ce faire, après un peu de recherche, la solution est toute simple. Il est possible de définir des fichiers de configurations pour le montage et le démontage des systèmes de fichier pour chacune des vm.

# cat /etc/vz/conf/vps.mount
#!/bin/bash
source /etc/vz/vz.conf
source ${VE_CONFFILE}
mount –bind /data ${VE_ROOT}/data
# cat /etc/vz/conf/vps.mount 
#!/bin/bash
source /etc/vz/vz.conf
source ${VE_CONFFILE}
mount --bind /data ${VE_ROOT}/data

Puis un autre fichier pour le démontage de la partition

# cat /etc/vz/conf/vps.umount 
#!/bin/bash
source /etc/vz/vz.conf
source ${VE_CONFFILE}
umount ${VE_ROOT}/data

Voilà, maintenant à chaque appelle de vzctl start ou de vzctl mount ces scripts seront automatiquement lancés.

Cette article vous guidera sur une mise en place d’un ensemble de VE déployé sur des volumes logiques de type LVM. Pour rappel, OpenVZ permet à un serveur physique d’exécuter de multiples instances de systèmes d’exploitation isolés, connus sous le nom de serveurs privés virtuels (VPS) ou environnements virtuels (VE). LVM quand à lui, permet la gestion de volume logique ceci permettant de créer des volumes pouvant être redimensionnés à la volée ou bien d’être déplacés à chaud.

Préambule

Nous disposons d’un serveur fonctionnant sous GNU/Linux (cette article est basé sur du debian 5.0, mais il peut bien entendu être adapté), nous souhaitons créer un sous système.

Installation d’OpenVZ

L’installation d’openvz est des plus simple, il suffit d’installer le paquet du kernel (sous debian). Pour ce faire :

# aptitude install linux-image-openvz-amd64
# reboot (et rebooter sur votre nouveau noyau)

Installation de LVM et création des volumes logiques

# aptitude install lvm2
# pvcreate /dev/sda5 (création de la partition LVM sur la partition 5 du disque)
# vgcreate vg /dev/sda5 (création du groupe VG sur le volume LVM)

La commande pvcreate effectura la création de la partition LVM sur la partition cinq du disque.
La commande vgcreate créera, quand à elle, un groupe nommé “vg” sur cette partition. Ce nom pouvant bien entendu être changé à votre guise.

Ensuite, nous créons le disque pour le sous système.

lvcreate -n mail.fedae.fr -L 5g fedae-vg
lvcreate -n sql.fedae.fr -L 5g fedae-vg
lvcreate -n web.fedae.fr -L 5g fedae-vg
# lvcreate -n vm -L 5g vg
# mkfs -t ext3 /dev/vg/vm

Notre vm est alors créé et formaté, vous pouvez monter le volume automatique depuis votre fstab, ajouter alors cette ligne :

/dev/mapper/vg-vm      /var/lib/vz/private/vm ext3 defaults 0 0

Il faudrait bien entendu créer le dossier /var/lib/vz/private/vm qui contiendra le futur sous système.

Création du sous système

OpenVZ fonctionne sur un système de template, vous trouverez plus amples informations sur leur wiki. Nous allons donc installer une template déjà créer par l’équipe d’openVZ afin de nous faciliter la vie. Et ainsi générer le sous système à partir de cette dernière.

Récupération de la template :

# cd /var/lib/vz/template/cache/
# wget http://download.openvz.org/template/precreated/debian-5.0-x86_64.tar.gz

Création de la vm :

# vzctl create 10 --ostemplate debian-5.0-x86_64 --config vps.basic --private=/var/lib/vz/private/vm/10
# vzctl set 10 --name vm --save
# vzctl set vm --hostname vm.localhost --save
# vzctl set vm --ipadd 10.0.0.10 --save

Il ne nous reste plus qu’à démarrer notre nouvel vm :

# vzctl start vm

Nous pouvons prendre la main (récupération du shell de la vm) en tapant cette commande :

# vzctl enter vm

Vous avez pu remarquer que votre connexion à internet ou autre n’est pas disponible depuis le sous système. Pour ce faire il vous faut rediriger le flux sur l’ip de sortie. Pour ce faire, je vous propose de rediriger toute la plage d’ip (/24) sur l’ip de sortie (ip_address)

# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j SNAT --to ip_address

Munin est un générateur de graphes (MRTG) permettant de visualiser graphiquement l’état d’un ou de plusieurs serveurs. Les services de bases pouvant être monitoré sont : Apache, mysql, Postfix, NFS, … De plus vous pourrez bien entendu avoir des graphes systèmes comme l’utilisation des disques, la mémoire, le réseau etc…

Dans cette exemple, nous prendrons pour host à monitorer creasso.org et pour document root du serveur web (apache) : /var/www/creasso.org/munin/

Sous debian, pour installer munin il suffit d’effectuer cette commande :

aptitude install munin munin-node munin-extra-plugins

La configuration de munin se trouve dans /etc/munin/. Pensons maintenant à l’éditer :

vi /etc/munin/munin.conf

La configuration pour un host ressemble à celle ci :

dbdir /var/lib/munin
htmldir /var/www/creasso.org/munin/
logdir /var/log/munin
rundir /var/run/munin
tmpldir /etc/munin/templates
[creasso.org]
address 127.0.0.1
use_node_name yes

Il nous reste encore à créer les répertoires pour les pages web générées :

mkdir -p /var/www/creasso.org/munin/
chown munin:munin /var/www/creasso.org/munin/

Puis à redémarrer notre serveur munin.

/etc/init.d/munin-node restart

Il ne vous reste plus qu’à aller voir le résultat, patientez quelques minutes le temps que munin regénère les graphes.

Et oui, comme tous les ans, pour les premières années sont plongés directement dans le bain. C’est le cas de le dire, en effet, la piscine commence. La piscine ? Oui. Cela correspond à 3 semaines de votre vie que vous offrez gracieusement à Epitech.

Son but ? Vous apprendre la programmation. Et pas seulement un niveau théorique et/ou débutant, mais de la pratique et un niveau avancé. Au programme : du shell (apprendre et comprendre l’arborescence des systèmes unix), du C (variables, pointeurs, listes chainées, arbres, trie, algorithme, etc…). Que du bonheur !

Cette année, j’ai la chance de participer à cette piscine du coté des méchants. Taper sur les doigts des élèves, leurs dire des mots doux (i.e: RTFM!) et plein d’autres petites choses agréables, comme donner des cours, les aider quand ils seront trop perdu, leurs mettre de mauvaises notes en soutenance et leur expliquer pourquoi je suis gentil quand même et pourquoi il faut m’aimer.

Enfin voilà, à partir de lundi c’est parti pour 3 semaines de travail acharnés pour aider tous les étudiants à réussir leurs années.

PS: Si vous me lisez les mecs, bon courage !

Je suis employé par Epitech (l’école d’informatique dans laquelle je fais mes études) pour diverses tâches, comme l’organisation des soutenances, la pédagogie (donner des cours, aider les autres étudiants), enfin tout ce qui peut se faire dans une école.

L’été dernier, durant mon travail d’assistant, j’ai donc été invité à gérer un groupe afin de mettre en place un intranet. Voici quelques prises de vue de ce dernier.

Read the rest of this entry »

A propos de moi

Passionné des nouvelles technologies, je propose en tant qu’auto-entrepreneur diverses activités : développement de bibliothèques, d’applications ou encore de progiciels mais aussi des prestations plus courantes comme la création de sites web et d'intranet professionnel.

De plus je suis administrateur système, je m occupe ainsi d’un micro parc de six machines dans un environnement professionnel. Passionné par les technologies libres et open-source, il m’arrive souvent d’apporter mon aide au développement de divers projets. Actuellement, je me concentre essentiellement sur Drupal, qui est selon moi le CMS le plus prometteur dans le domaine du net.

Vous avez un projet ?

Vous avez des idées plus ou moins abouties que vous tentez de concrétiser, vous rencontrez quelques problèmes, ou vous êtes bloqués, n’hésitez pas à partager avec moi votre projet.

Responsable et bien organisé je peux vous accompagner pour faire connaître votre projet ou tout simplement vous aider dans des développements temporels, ainsi que vous conseiller sur des améliorations possibles.