Présentation Zones Solaris

Voici mon premier billet sur solaris. J’ai écris ceci pour dans le cadre du laboratoire linux de SUPINFO. C’est une explication de l’utilisation des zones dans le pour l’entreprise.

Zone solaris

1. La virtualisation

La virtualisation serveur n’a rien de nouveau IBM le pratique depuis longtemps en mainframes avec VM/370 (1972). Mais ce n’est que plus récemment avec l’expansion de la Virtualisation pour serveur Intel x86 (Xen, OpenVZ, etc) que Sun à commencer avec Solaris 10 à mettre en avant ses solutions de Virtualisation. Dans ce document nous allons étudier la virtualisation n’ont pas pour mettre en avant le principe de mettre plusieurs OS différent sur une OS hôte comme ce que le grand publique a l’habitude de faire mais plutôt la consolidation.

2. Consolidation kesako ?

2.1. La consolidation : Faire plus avec moins.

Le principe de la consolidation est simple. Cela consiste à fusionner plusieurs processus hébergé sur des serveurs différents sur un même serveur tout en conservant la sécurité et la répartition de charge des processus.

Solaris zone Conslidation

Un exemple :
Vous êtes l’administrateur système d’un parc de 8 serveurs sous Solaris qui travail pour le même projet en load balancing. Il y 4 serveurs web, 3 serveur de BDD et 1 serveur mail. Tous ces serveurs ne sont pas exploiter aux mieux de leurs performance du fait de l’impossibilité de répartir la charge CPU entre eux selon le besoin. De surcroit la quantité de travail pour administrer les 8 serveurs lors des mises à jour ou du contrôle des logs est longue et fastidieuse.

Solution : La consolidation, vous regrouper ces processus sur le même serveur et vous partager aussi bien le CPU, la RAM et l’espace disque entre les serveurs, vous améliorer ainsi les performances, réduisez le temps de maintenance et les couts. Conteneur Solaris : Les Zones

Alors pour ceux qui ne lisent pas entre les lignes voici les 3 principaux intérêts de la consolidation :

  • La Continuité de service avec la migration des zones. Reprise en cas de panne en relançant la zone préalablement sauvegardé sur un autre serveur Solaris sans avoir besoin de la réinstaller.
  • Performance. Optimisation de la ressource des serveurs. En permettant de pouvoir utiliser un plus grand nombre d’application sur le même serveur les ressources ne soient pas gaspillées.
  • Cout. En réduisant le nombre de serveur, cela réduit par la même l’espace physique occupé dans le datacenter, les frais de gestion, l’énergie consommé par le serveur et par le système de refroidissement (50% du cout d’un serveur).

2.3. Les autres produits de consolidation

openvzvmware

Xen

Alors comme je l’écrivais plus haut Sun n’a pas inventé le principe de consolidation. Voici les autres
principales solutions de consolidation.

  • Xen pour plateforme x86, x64, IA-64, PowerPC et SPARC. Les OS supporté sont : Linux, FreeBSD, NetBSD, Plan 9, Gnu Hurd.
  • VMware GSX/ESX
  • Les solutions de IBM z/VM.
  • Virtuozzo (OpenVZ) qui s’inspire des Conteneurs solaris
  • Microsoft Virtual Server

3. La virtualisation chez Solaris : les Zones et les Containers

Maintenant que l’intérêt de la consolidation est clarifié attaquons nous à sa mise en place pour Solaris 10. Une machine virtuelle chez Solaris s’appel une Zone (elle peut aussi etre appeler Container).

Solaris zone

3.1. Définition des Zones et des Containers

Un « Solaris Containers » est une application de Virtualisation intégré directement au système d’exploitation qui est apparut pour la premières fois dans Solaris 10 en 2007.Il permet de contrôler et d’allouer les ressources aux différente Zones à partir du système hôte.

Une « Solaris Zones » permet de virtualiser un Système d’exploitation en l’isolant et le sécurisant du
reste du système. Une application fonctionnant dans une zone est donc isolé des autres applications
ce qui la protèges de failles ou de crash d’une application sur une autres. Une zone fournis un niveau d’abstraction pour l’OS virtualisé ce qui permet de séparer de l’accès direct a la couche matériel de la machine.
La limite théorique du nombre maximum de Zone est de 8192 mais en pratique elle dépend de la quantité de ressource hardware requise par les applications comparativement à la quantité hardware disponible. C’est-à-dire le nombre de processeur, mémoire vive, carte réseau, disque dur etc.

Mais est ce que cela consomme plus de ressource ?

OpenSolaris fournis un exemple d’un cas d’utilisation d’un environnement en production web. Sur un vieux Sun Entreprise 250 Server (2 CPU 300Mhz, 512 MB RAM, 3 HDD en RAID de 40 GB) il y a 40 zones d’installée et chacune des zones contient 5 service web Apache. En exécutant des requêtes http sur les serveurs apache les couts en ressource système de la gestion des zones est si faible qu’ils ne sont pas mesurable (moins de 5%).

4. Les différents types de Zones

Il existe 2 type de Zone : La Zone Globale qui est l’instance de Solaris 10 de la machine hôte qui se lance lors du boot et les Zones non-globale qui sont les machine virtualisé héberger dans la Zone Globale.

4.1. La zone Globale

Pour alléger la quantité de ressources nécessaire les applications coexistent dans la Zone Globale. Les Zones non-globale pourront donc faire appel directement à ses applications sans avoir forcement besoin de les installer (nous y reviendront).

Tous systèmes Solaris 10 contiennent donc une Zone Globale. Cette zone globale a 2 fonctions : une pour le créer la couche d’interaction d’abstraction système et l’autre pour le contrôler et l’autre pour gérer les zones non-globale. Les processus et application fonctionnent donc dans la zone globale si aucune zone non-globale n’a été créée.

La zone globale est la seule zone où les zones non-globale peuvent être configurées, installées, gérées et désinstallées. Seul la zone globale est démarrable à partir du hardware du serveur.

L’administration de l’architecture système tel que la gestion périphérique, du routage des IP partagé,
de la reconfiguration dynamique est possible seulement dans la zone globale.
Il y a 2 façons de configurer les adresses IP, soit en allouant une IP exclusive pour une zone soit en IP
partager entre plusieurs zones.

4.2. Les zones Non-Globale

Si les paramètres par défaut sont sélectionnés, chaque Zone non-globale aura besoin d’au minimum 85MB d’espace disque libre pour s’installer si la zone globale a été installée avec tout les Metacluster des paquets Solaris. Tout nouveau paquet installer dans la zone globale demandera de l’espace disque pour les zones non-global. La quantité de mémoire vive minimum par zone est quand a elle de 40MB.
Il existe deux types de model de fichier système de zone non-globale: Les « wholes root » et les « sparse ». Le modèle « whole root » permet une configuration avec plus de paramètre alors que le modèle « wholes root » donne de meilleure performance.

Une zone installer avec le model « full-root » demandera dans les 500MB d’espace disque libre. Chaque zone, en incluant la zone globale se voit attribuer un nom de zone. La zone globale à toujours le nom globale. Chaque zone a un numéro d’identification unique attribué par le système quand la zone est démarrée. La zone globale a toujours le numéro d’identification 0. Le nom de la zone ainsi que son id sont configurable avec la commande « zonecfg ». Chaque zone a un nom de nœud qui est indépendant du nom de zone. Le nom de nœud est attribué par l’administrateur de la zone. Chaque zone dispose d’un chemin d’accès a son répertoire racine qui est relatif au répertoire racine de la zone globale.

4.3. Les différents types de zone Non-Globale

4.3.1. Les Zones Native

Par défaut une Zone non-globales et une Zone Native. Une Zone Native est une zone ayant les mêmes propriétés que le système d’exploitation (Solaris 10) en cours d’exécution sur la zone Globale.

Si le système d’exploitation hôte est configuré avec les Solaris Trusted Extensions chaque Zone non-globales sera associée avec le même niveau de sécurité ou label.

4.3.2. Les Branded Zones

Dans une Zone non-globales il est également possible de lancer un autre environnement d’exploitation que Solaris 10. Les Zones marqué (Branded Zones) permettent d’élargir la possibilité de création d’architecture de Zones différente à travers des framework ou des OS différente.

Il existe pour l’instant 2 types de Zone Branded supporté :

  • Lx branded (une Zone linux) est une Zone Non-globale qui permet d’utilisé les applications développés pour Linux dans un environnement linux complet. Lx branded n’est toutefois pas une distribution Linux à part entière.
  • Solaris 8 Branded permet de migrer un environnement sous Solaris 8 dans une Zone Solaris 8 fonctionnant sur un serveur hôte (Zone Globale) en Solaris 10.

4.4. Droit et privilèges

Un administrateur global a les droits super utilisateur ou rôle d’administrateur Primaire. Lorsque l’administrateur global est connecté à la zone globale il peut surveiller et contrôler l’ensemble du système.
Une zone non-globale peut être administrée par un « administrateur de zone ». L’administrateur global assigne le profil « d’administrateur de zone » dans l’interface de Management de Profile de zone. Les privilèges d’administrateur de zone sont confiné a une zone non-globale.

4.5. Récapitulatif

Zone Globale :

  • ID 0 attribué par le système.
  • Fournit la seule instance du noyau Solaris qui est bootable et fonctionnant sur le système.
  • Contiens une installation complète du Système d’exploitation Solaris.
  • Peut contenir d’autres logiciels, des répertoires, des fichiers et d’autres données qui ne sont pas installés par le biais de paquets.
  • Fournit une base de données produit complète sur tous composants logiciels installés dans la zone globale.
  • Contient les informations de configuration uniquement de la zone globale, comme le nom d’hôte de la zone globale, ou le système de fichier.
  • Est la seule zone qui connait tous composants ou système de fichier.
  • Est la seule zone qui connait l’existence des zones non-globales et leur configuration.
  • Est la seule a partir de laquelle une zone non-globale peut être configuré, installé, géré ou désinstallé.

Zone Non-Globale :

  • ID attribué par le système lors du démarrage de la zone.
  • Opération partagé sous le kernel démarré dans la zone globale.
  • Contient un sous-ensemble de l’installation complète des paquets de l’OS Solaris.
  • Contient des paquets partagés avec la zone globale.
  • Peut contenir des paquets logiciels non partagé depuis la zone globale. • Peut contenir d’autres logiciels, des répertoires, des fichiers et d’autres données qui ne sont pas installés par le biais de paquets ou partager depuis de la zone globale.
  • Fournit une base de données produit complète sur tous composants logiciels installés dans la zone, qu’ils soient présent dans la zone non-globale ou partager en lecture seule depuis la zone globale.
  • N’est pas conscient de l’existe d’autre zone.
  • Ne peux pas configurer, installé, géré ou désinstallé d’autres zone, même elle-même.
  • Contient les uniquement les informations de configuration de la zone non-globale, comme le nom d’hôte de la zone non-globale, ou le système de fichier.
  • Peut avoir sa propre configuration du fuseau horaire.