Académique Documents
Professionnel Documents
Culture Documents
2010 09 23 Organisation Dmz6
2010 09 23 Organisation Dmz6
Haute disponibilité
OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en oeuvre
Bilan
OpenVz, Pacemaker
Problématique de départ
Sécuriser les services de la DMZ
- Emission des messages électroniques (SMTP)
- Serveurs web institutionnels
- Machines d’accès et de transfert de fichiers
- Serveur d’agendas (OBM, Phpgroupware)
Renouvellement de la solution existante
- Mécanismes de haute disponibilité
- Virtualisation
OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
OpenVz, Pacemaker
Technologie de virtualisation
OpenVz, Pacemaker
Technologie de virtualisation
Intérêts :
Economique : mutualisation du matériel, bénéfice en terme de
coût d’acquisition, de possession (rack, électricité, climatisation,
réseau) et d’exploitation
Facilité d’administration : installation, déploiement et migration
aisées des machines virtuelles entre serveurs physiques,
simulation d’environnements de qualification ou de pré-
production, création de plateforme de tests ou de
développements réutilisables à volonté
Sécurisation : séparation des systèmes virtuels et hôtes
(invisibles), répartition des utilisateurs, allocation dynamique des
ressources, dimensionnement des serveurs facilités
OpenVz, Pacemaker
Technologie de virtualisation
Différentes techniques :
Machine virtuelle : Utilisation d’un logiciel. Emulation partielle ou
totale d’une machine
Hyperviseur complet : Utilisation d’un noyau hôte léger
permettant de faire tourner des systèmes d’exploitations natifs
Paravirtualiseur : Utilisation d’un noyau hôte allégé permettant
de faire tourner des systèmes d’exploitations invités, adaptés et
optimisés
Isolation : Séparation forte entre différents contextes logiciels sur
un même noyau de systèmes d’exploitation
OpenVz, Pacemaker
Technologie de virtualisation
Machine virtuelle :
Emulation logicielle
Bonne isolation
Coût en performance
Exemples :
- Qemu
- VMWare
- VirtualPC, VirtualServer
- VirtualBox
OpenVz, Pacemaker
Technologie de virtualisation
Hyperviseur complet :
Utilisation d’un micro-noyau
Outils de supervision
Emulation des I/O
Instructions spécifiques
Exemples :
- QEMU
- KVM
- VMWare Server
- VirtualPC, VirtualServer
- VirtualBox
OpenVz, Pacemaker
Technologie de virtualisation
Paravirtualiseur :
Micro-noyau hôte optimisé
OS invités adaptés et optimisés
Sans instructions spécifiques
Exemples :
- XEN
- KVM (avec Virtio)
- VMWare ESX et ESXi
- Microsoft Hyper-V Server
- Oracle VM
OpenVz, Pacemaker
Technologie de virtualisation
Isolateur :
Séparation en contextes
Régi par l’OS hôte
Mais cloisonnés
Un seul noyau
N espaces utilisateurs
Solution très légère
Exemples
- Linux-VServer
- BSD Jail
- OpenVZ
OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
OpenVz, Pacemaker
Technologie de clustering
Cluster = agrégat de machines dans un but de travail
coopératif.
Cluster : pour 2 fonctionnalités
Augmentation de la puissance de traitement (scalability) : on
veut que la puissance de traitement suive de manière linéaire le
nombre de machines du cluster.
Augmentation de la disponibilité (availability): on veut minimiser
les inconvénients liées aux pannes par la redondance des
machines entre elles.
OpenVz, Pacemaker
Cluster Haute-Disponibilité
Obligatoirement :
le service doit pouvoir supporter :
un arrêt brutal.
un redémarrage brutal.
OpenVz, Pacemaker
Cluster Actif-Passif
OpenVz, Pacemaker
Cluster Actif-Actif
OpenVz, Pacemaker
Cluster à répartition de charges
Ferme de serveurs
Répartition d’un même service sur plusieurs machines
Pour le monde extérieur : un serveur unique
OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
OpenVz, Pacemaker
OpenVZ : principes
C'est une virtualisation au niveau noyau en réalisant un
partitionnement des ressources systèmes
C'est le noyau du système d'exploitation qui fait une isolation
entre des machines virtuelles et permet d'exécuter des
applications dans des contextes différents
Chaque contexte d'exécution est une machine virtuelle (VPS)
se partageant le même noyau.
Un processus d'une machine virtuelle ne peut pas faire de déni
de service en dehors de sa machine virtuelle
Il n'y a pas d'« émulation » à proprement parler comme dans
d'autres système de virtualisation.
OpenVz, Pacemaker
OpenVZ : fonctionnalités
Chaque « Virtual Private Servers » VPS est un système
indépendant
Les VPS sont des systèmes Linux normaux (file system,
scripts, programmes) : aucune spécificité openVZ
Les VPS sont totalement isolés les uns des autres (mémoire,
file system, communication inter-processus (IPC))
Chaque VPS a sa propre adresse réseau, les adresses multiples
par VPS sont permises. Le trafic réseau de chaque VPS est
isolé (pas de snooping possible).
OpenVz, Pacemaker
OpenVZ : fonctionnalités
Migration à chaud : Sauvegarde sur disque de l’état du serveur
virtuel via un mécanisme de snaphot. Ce fichier peut alors être
transféré sur une autre machine et restauré en état de marche
en quelques secondes.
Les « beancounters » : Ensemble de paramètres (une
vingtaine) pouvant être attribué à chaque serveur virtuel pour
imposer des limites et préserver les ressources de la machine
hôte.
Gestion des ressources : Outils permettant de contrôler
l’utilisation des ressources de l’hôte par machine virtuelle
(mémoire résidente et virtuelle, quotas d’utilisation CPU et
disque, priorités d’accès CPU et disque)
OS template : « file system » d'une distribution Linux
permettant de « peupler » les VPS, disponibles sous forme de
paquetages ou pouvant être créés.
OpenVz, Pacemaker
OpenVZ : avantages
Pas besoin d’image disque de machine. Il suffit de copier un
file system pour installer une machine virtuelle
Consommation mémoire légère (la mémoire est mutualisée
entre le serveur hôte et les VPS et la mémoire demandée à
l'hôte est celle réellement utilisée par les processus du VPS)
Cela peut simplement être vu comme un chroot du file system
amélioré par une isolation des processus
Tous les processus des machines virtuelles font les appels
système à un seul noyau. Les E/S sont donc plus efficaces que
sur un système qui tournerait à travers une émulation
Intégré dans la distribution Debian en standard
Gestion fines des ressources
OpenVz, Pacemaker
OpenVZ : Installation sous Debian
Installation (noyau patché + utilitaires) :
aptitude install linux-image-2.6.26-2-openvz-amd64
aptitude install vzctl vzdump vzquota vzprocps
shutdown -r now
uname –r : 2.6.26-1-openvz-686
OpenVz, Pacemaker
OpenVZ : Installation sous Debian
Récupération d'un template d'OS :
cd /vz/template/cache
wget
http://download.openvz.org/template/precreated/debian-5.0-amd
64-minimal.tar.gz/
Création et configuration du VE :
vzctl create 101 --ostemplate \
debian-5.0-amd64-minimal.tar.gz
vzctl set 101 --onboot yes –save
vzctl set 101 --hostname xstra –save
vzctl set 101 --ipadd 172.16.0.101 –save
vzctl set 101 --nameserver 130.79.200.200 –save
vzctl set CTID –-diskspace 80G:80G –save
vzctl set 100 –-privvmpages 250M:250M –save
vzctl start 101
vzctl enter 101 OpenVz, Pacemaker
OpenVZ : Installation sous Debian
Autres commandes utiles :
vzlist
vzctl stop 101
vzctl destroy 101
vzctl exec 101 ps ax ou vztop
vzmemcheck, vzcpucheck, vzcalc
Sauvegarde et restauration :
Par défaut dans /var/lib/vz/dump
vzdump –compress –dumpdir /mnt/xstra/ --stop
101 –mailto sem-xstra@ipcms.u-strasbg.fr
vzdump –restore /mnt/xstra/xstra.tgz 101
Migration à chaud :
Fonctionne avec rsync et ssh (automatisation via clé ssh)
Vzmigrate –r no –online –v 172.16.0.102 101
OpenVz, Pacemaker
OpenVZ : Configuration
OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
OpenVz, Pacemaker
Pacemaker
Solution OpenSource de clustering
Gestion de la haute disponibilité des services et données
Evolution de hearbeat (différentes branches, version 3)
Gestion de cluster jusqu’à 16 noeuds
Gestion de différents modes : Actif/Passif, Actif/Actif
Depuis la version 2 gestion intégrée des ressources
Déplacement dynamique/manuel des ressources
Co-location et ordre de lancement des ressources
OpenVz, Pacemaker
Pacemaker (évolutions)
Linux-HAv1 :
Limitation à 2 nœuds en actif/passif
Configuration par scripts (haresources)
Pas de gestion automatique des ressources
Linux-HAv2 :
Ajout d’un gestionnaire de ressources (CRM)
16 nœuds en actif/actif ou actif/passif
Les communications se font via la couche heartbeat
Configuration par scripts XML ou interface graphique
Gestion automatique des ressources
Branche de développement arrêtée en 2007
OpenVz, Pacemaker
Pacemaker (évolutions)
Pacemaker :
Nouvelle branche de développement (OpenAIS)
16 nœuds en actif/actif ou actif/passif
Communications via heartbit ou OpenAIS
Configuration par scripts XML ou interface graphique
Possibilité de simuler des scénarios
Outils de diagnostiques performants
OpenVz, Pacemaker
Pacemaker : Installation sous Debian
Modification du fichier /etc/apt/source.list :
deb http://www.backports.org/debian lenny-backports
main contrib non-free
deb http://people.debian.org/~madkiss/ha lenny main
OpenVz, Pacemaker
Pacemaker : Installation sous Debian
Configuration corosync :
via le fichier /etc/corosync/corosync.conf
modifier au minimum :
interface {
# The following values need to be set based on your
# environment
ringnumber: 0
bindnetaddr: 172.16.152.130
mcastaddr: 226.94.1.1
mcastport: 5405
}
crm_mon --one-shot -V
OpenVz, Pacemaker
Pacemaker : Configuration
Via les commandes du gestionnaire de ressources :
crm : Exemple
primitive fs-serveur-web-01 ocf:heartbeat:Filesystem \
operations $id="fs-serveur-web-01-operations" op \
monitor interval="20" timeout="40" \
params device="/dev/vg-dataipcmsdmz/lv-serveur-web-01" \
directory="/dataipcmsdmz/lv-serveur-web-01" \
fstype="ext3"
OpenVz, Pacemaker
Pacemaker (GUI)
OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
OpenVz, Pacemaker
Solution mise en œuvre
VE 100 VE 101 failover VE 105 VE 106
OS Virtualisation OS Virtualisation
OpenVZ OpenVZ
Pacemaker Pacemaker
Corosync Corosync
Node 1 Node 2
Stockage partagé
2,25 Tb en raid 6
Solution mise en œuvre
VE1000
eth0 Web-proxy
bridge
eth1
br0 VE1001
eth2 OBM
130.79.210.0/28
VE1002
FTP
VE1003
VE2003
Mysql VE2003
bridge VE2002
VE2001
br1 VE2000
VE1004
Web-05
Web-04
Postgresql Web-03
Web-02
172.16.153.0/24 Web-01
OpenVz, Pacemaker
Solution mise en œuvre
Baie Provigo 610 SAS :
8 disques de 500 Go SATA à 7200 tr/min
1 disque Hot Spare
1 Raid Group (7 disques) en Raid 6 (2,5 To utile)
1 contrôleur, cache 1 Go, unité batterie
alimentation redondante
double connexions SAS vers les 2 serveurs
2 Serveurs Calleo 121
Quad Core
8 Go de mémoire, 160 Go (en mirroir), 2 x 1 Gb Ethernet + IPMI
Cluster
Actif/Actif
SMTP, OBM, SSH, HTTP, HTTPS, MYSQL, POSTGRESQL
OpenVz, Pacemaker
Plan de l’exposé
Contexte
Technologie de virtualisation
Technologie de clustering
OpenVZ
Pacemaker
Solution mise en œuvre
Bilan
OpenVz, Pacemaker
Bilan
Solution en place depuis 9 mois
Performante, bon niveau de sécurité
Peu consommatrice en ressources
Faible coût d’acquisition (environ 6 K€)
Investissement pour maitriser la technologie
Bonne documentation
A tester avec GFS2 et Proxmox
OpenVz, Pacemaker