Rechercher sur arkzoyd.com

26 juin 2009

Une pub Laposte.fr... ou est-ce une pub MacBook ou Starwars?

Créer un sparse file avec "dd"

Un sparse file est un fichier dont tous les morceaux ne sont pas alloués. Oracle peut dans certain cas créer des sparse file comme par exemple pour les tablespaces temporaires. Dans le cas où vous créez des fichiers qui servent de coquille pour le disque d'une machine virtuelle, un sparse file est idéal. Voici comment en créer un avec la comande dd sous Oracle Enterprise Linux:
time dd if=/dev/zero of=Oracle.img bs=1M seek=10000 count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.026489 seconds, 39.6 MB/s

real 0m0.067s
user 0m0.000s
sys 0m0.000s
Voilà 26 ms pour créer un fichiers de presque 10 Go, ça pourrait même faire rêver un administrateur Exadata; mais contrairement à ce que reporte la commande ls, le fichier fait en réalité 1M
ls -ltra Oracle.img
-rw-r--r-- 1 root root 10486808576 Jun 26 02:42 Oracle.img
du -hs Oracle.img
1.1M Oracle.img

23 juin 2009

Installer un serveur X sur le domaine 0 d'OracleVM

Les informations sur Oracle 11.2 commencent à filtrer sur Twitter, Facebook et différents blogs. Dans ce brouhaha, la présentation de DBFS par Kevin Closson vient largement en première place des sujets intéressants... Mais gardez raison! Surtout si vous avez signé un "Confidential Disclosure Agreement".

Parallèlement, Oracle ne manque pas d'actualités : Le lancement d'Oracle Fusion Middleware 11g est imminent; le 1er Juillet est le D-Day. D'autre part, les résultats de Q4FY'09 sont supérieurs aux attentes des analystes même s'ils sont en déclin...

En ce qui me concerne, le "next big thing" d'Oracle est disponible depuis bientôt 2 ans. Il s'appelle OracleVM et c'est la seule solution de virtualisation supportée par Oracle sur x86 et x86_64; Pour plus de détails sur les motivations derrière OracleVM et à propos de l'intérêt de la virtualisation avec Oracle, je vous invite à lire mon post précédent. Qui plus est, le rachat de Virtual Iron et le support de Live Migration avec les versions 11.1.0.7+ va faire grandir encore un plus une solution qui devient de plus en plus indispensable. En effet, OracleVM offre entre autre chose :
  • Un modèle de prix ultra-compétitif avec des licences gratuites et des prestations de support vendus par système physique.
  • La compatibilité avec les différents types de licences Oracle. En outre OracleVM permet de limiter l'utilisation des processeurs (hard partitioning) et de ne payer les licences que pour les limites fixées par la solution de virtualisation.
  • De nombreux templates disponibles sur edelivery comme OBIEE, Enterprise Manager, Weblogic, Siebel ou Oracle 11g qui permettent d'accélérer et de fiabiliser significativement les mises en oeuvre de vos projets Oracle.
  • Une intégration à Oracle Cluster Filesystem (OCFS) qui permet d'utiliser des REFLink et ainsi de cloner des systèmes en quelques secondes sans aucune licence. OCFS permet également de basculer des VM aussi simplement sur un SAN que sur un NAS
  • Une empreinte limitée (5 à 10% selon les tests avec la paravirtualisation) si on compare les performances d'un système virtualisé à un système non-virtualisé
  • Des performances largement améliorées si on les compare à d'autres solutions basées sur Xen ou VMWare
  • La mise en oeuvre de solution HA ou de migration à chaud (en cours de certification pour les systèmes de base de données)
  • La mise en place de limites d'utilisation sur les IO virtualisés et les processeurs qui permettent d'isoler les environnements qui cohabitent sur le même système physique
  • La conversion de machines physiques ou de machine virtuelles VMWare
En outre l'intégration des technologies de Virtual Iron permettront à moyen terme d'automatiser complètement les installations d'OracleVM, de rebalancer les ressources automatiquement sur d'autres serveurs en fonction des performances, d'utiliser le minimum de serveurs physiques et même d'arrêter les serveurs inutiles et ainsi réduire les consommations électriques ou de refroidissement.

Cela dit, peut-être que vous aurez envie de tester OracleVM sans installer 2 machines comme c'est nécessaire en production. Et bien si vous êtes intéressé, il est en fait possible d'installer un serveur X dans le domaine 0 d'OracleVM comme dans le copie d'écran ci-dessous.


La procédure qui suit présente cette opération que j'ai testée avec OracleVM 2.1.5.
Nota Bene:
Ce qui est décrit ci-dessous n'est pas supporté et ne doit être utilisé qu'à des fins de démonstration
Etape 1. Installer OracleVM

Installez OracleVM sur votre serveur ou votre portable. Le logiciel peut-être téléchargé gratuitement sur edelivery. En outre, il est possible de l'installer sur une partition d'un disque interne ou sur un disque USB externe si votre serveur peut démarrer sur celui-ci.

Etape 2. Connecter le domaine 0 au référentiel de mise à jour d'Oracle EL5

L'opération est simple; elle consiste à télécharger le fichier de configuration depuis le référentiel YUM d'Oracle avec le script ci-dessous:
cd /etc/yum.repos.d
wget http://public-yum.oracle.com/public-yum-el5.repo
Positionnez le paramètre enable à 1 pour EL5 Update 3 comme ci-dessous:
[el5_u3_base]
[...]
enabled=1
Vous pouvez ensuite mettre à jour le domaine 0 avec yum:
yum update

Etape 3. Configurer le serveur X

Pour configurer le serveur X, utilisez les utilitaires X.org comme ci-dessous. Dans la plupart des cas, cela suffit à effectuer la configuration:
Xorg -configure
X -config /root/xorg.conf.new
Pour fermer le display X, tapez sur "Ctrl+Alt+Back"; Enfin ajouter le fichier de configuration à /etc/X11:
cp /root/xorg.conf.new /etc/X11/xorg.conf

Etape 4. Installer Gnome

Pour installer Gnome, lancez le script suivant:
yum groupinstall "gnome"
# Lancer le Serveur X et le Window Manager
startx
Etape 5. Installer GDM

Pour installer GDM, lancez le script suivant:
yum install gdm
echo Enable=true >>/etc/gdm/custom.conf
Une fois GDM installé et configuré, modifiez le fichier /etc/inittab en remplaçant:
id:3:initdefault:
par
id:5:initdefault:
Vous pouvez redémarrer le serveur ou simplement changer de niveau avec la commande ci-dessous:
init 5
Etape 6. Télécharger et démarrer les VM

Si vous voulez utiliser des VM, vous pouvez les télécharger sur edelivery. Notez que si vous voulez utiliser les templates HVM, il faut que le processeur Intel ou AMD le supporte. Vous pouvez vérifier les options des processeurs (vmx pour Intel et svm pour AMD); vous pouvez vérifier les "flags" des processeurs comme ci-dessous:
# Pour Intel
grep vmx /etc/cpuinfo
# Pour AMD
grep svm /etc/cpuinfo
Si les options sont disponibles, vous devez les activer dans le BIOS de votre serveur/portable puisque ces options sont désactivées par défaut.

Une fois les rpm installés, vous pouvez même envisager d'installer Oracle VM Manager dans le domaine 0, mais c'est déjà une autre histoire...

Oracle et VMWare

Utiliser VMWare, ou tout autre solution de virtualisation avec des infrastructures x86 32 ou 64 bits a de nombreux intérêts, en particulier avec Oracle; elles permettent :
  • d'utiliser au mieux les ressources des datacenters en permettant de consolider les services sur les mêmes serveurs et ainsi d'optimiser les investissements; certaines fonctions, comme VMWare DRS, permettent de déplacer les ressources d'un serveurs à un autres automatiquement et avec un impact limité
  • d'apporter une grande flexibilité aux administrateurs qui peuvent créer ou utiliser des templates / gold images ou déplacer les machines virtuelles et les disques d'un serveurs à l'autre avec des solutions comme VMotion et Storage VMotion
  • d'isoler les environnements les uns des autres dans des machines virtuelles séparées et ainsi, à la fois, de simplifier les installations et limiter l'impact des erreurs
  • d'offrir des solutions pour reprendre automatiquement les services en cas de perte d'un serveur ou une erreur matérielle comme VMWare HA et VMWare Fault Tolerant.
  • de simplifier les configurations en remplaçant des périphériques physiques (réseaux, stockage...) par des périphériques virtuels. Cela permet également d'uniformiser les infrastructures à gérer, malgré les différences des matériels et des systèmes d'exploitation.
  • de maintenir des systèmes vieillissants sans avoir à mettre à jour les systèmes d'exploitation.
La plupart des entreprises utilisent la virtualisation sur x86. Cette tendance n'est pas nouvelle: il y a 7 ans j'utilisais déjà VMWare sur des environnements de test avec Oracle. Toutefois, il y a plusieurs choses à connaitre lorsque vous utilisez Oracle avec ce type de technologies...

Support et Stratégie

Commençons par l'ensemble des solutions de virtualisation supportées par les bases de données Oracle ! Vous y découvrirez qu'Oracle ne supporte aucun environnement virtualisés sur les plateformes x86 et x86_64 sauf OracleVM. Pour plus de détails, reportez-vous aux notes "249212.1 - Support Position for Oracle Products Running on VMWare Virtualized Environments" et "464754.1 - Certified Software on OracleVM".

Mais de qu'est-ce que ça veut dire ? Pour résumer, si vous utilisez Oracle et rencontrez un problème connu, Oracle vous supportera. Si par contre, le problème n'est pas référencé, vous devrez apporter la preuve que ce n'est pas votre environnement virtualisé qui introduit le problème. Vous pourrez, par exemple, reproduire le-dit problème sur un environnement non virtualisé ou avec OracleVM. Et le diable étant dans les détails, il existe des différences de moins en moins subtiles entre les environnements virtualisés et ceux non virtualisés; c'est d'autant plus vrai que ces technologies s'intégrent désormais dans les puces d'Intel et d'AMD.

Changeons de point de vue; au lieu de regarder pourquoi Oracle ne supporte pas les environnements virtualisés sur x86, regardons plutôt pourquoi Oracle développe un environnement virtualisé (basé sur Xen) pour ses produits.

Une base de données repose sur des ressources avec lesquelles, les environnements virtualisés ne sont pas toujours aussi à l'aise que pour gérer de la puissance CPU:
  • Oracle doit pouvoir s'appuyer sur des infrastructures de stockage performantes qu'il gère par lui même avec des composants comme ASM ou DirectNFS et en intégrant des protocoles particuliers sur des technologies comme Infiniband,
  • Oracle s'appuie sur la connaissance de l'OS pour utiliser au mieux des larges segments de mémoire ou pour décider du niveau de parallelisme qu'il peut mettre en oeuvre et ainsi optimiser la gestion des ressources du serveur
  • Oracle offre des fonctionnalités, au premier rang desquel le clustering, qui s'appuient sur les couches les plus profondes des OS pour gérer l'IO fencing ou assurer la cohérence d'infrastructures s'appuyant sur plusieurs serveurs.
Vu sous cet angle, il devient évident que l'infrastructure de virtualisation et la base de données ont tout intérêt à être intimement liées pour tirer le meilleur bénéfice l'un de l'autre. Alors vous direz qu'Oracle aurait pu mieux travailler avec VMware, Microsoft VirtualPC, KVM et la multitude d'autres fournisseurs d'infrastructures virtuelles, comme ils l'ont fait avant avec IBM ou Sun pour AIX et Solaris... A différentes époques différentes solutions, Oracle a choisi cette fois-ci de développer OracleVM et de racheter Virtual Iron. Ca sera peut-être aussi efficace après tout que de multiplier les partenariats pour délivrer la meilleure solution. Qui sait?

Implémenter Oracle sur des environnements x86 virtualisés

Les organisations mettent en oeuvre différents types d'environnements pour différents objectifs. Ces environnements ont des besoins distincts:
  • Les environnements de développement et de tests unitaires n'ont souvent pas besoin d'être très performant, contrairement aux environnements d'intégration, de qualité (pré-production), de production ou pour le plan de reprise d'activité. Ces environnements ne contiennent souvent que de petits jeux de tests mais les développeurs aimerait toujours en avoir plus.
  • Selon les cas, les développeurs voudront reconstruire des environnements de tests mensuellement, hebdomadairement ou même pour chaque série de tests. De plus, la manière de reconstruire ces environnements est souvent très différente de la manière de reconstruire un environnement de pré-production qui doit quant à lui rester le plus proche possible de la production.
  • L'indisponibilité d'un environnement de production peut coûter très cher tandis que l'indisponibilité d'un environnement de test pourra avoir un impact limité dans certains cas.
Appuyez-vous sur ces besoins différents pour répartir vos environnements de manière pertinente... Ayez également à l'esprit un certain nombre de limites des environnements virtualisés sur x86:
  • VMWAre, VirtualPC et les solutions basées sur Xen ne permettent pas de garantir un minimum de ressources à plusieurs Virtual Machines qui utilisent les mêmes processeurs. Si les solutions comme DRS permettent d'imaginer pouvoir rebalancer les environnements lorsque des minimas sont atteints, ses solutions sont limitées avec des bases Oracle, au moins avec les bases de production; le fait qu'OracleVM Live Migration ne soit pas encore supporté avec Oracle donne le ton... On aura donc tendance à, sinon complétement séparer les environnements de production des environnements de tests, au moins à dédier des processeurs par type d'environnements ou à permettre à dédier certains processeurs physiques à vos environnements de production(*)
  • Les autres limites de VMWare et aux autres environnements virtualisés sur x86 sont relatifs à l'utilisation de la virtualisation du stockage et militent pour l'utilisation des technologies de virtualisation directement au niveau d'Oracle comme ASM ou DirectNFS:
    • Un device virtuel ne peut pas être accédés directement depuis un serveur physique ce qui limite les possibilités si vous voulez pouvoir vous appuyer sur une approche V2P pour adresser un éventuel problème avec une base de données de production.
    • Comme pour les ressources CPU, si les devices virtuels partagent les même devices physiques, il n'y a pas de moyen de prioriser ou de balancer les accès disques simplement.
Mais tout ceci n'est qu'un début et Oracle a désormais les clés pour offrir le niveau suivant à la virtualisation. Il faut dire qu'avec Virtual Iron, Sun Solaris, Sun xVM, VirtualBox ou JRockit Virtual Edition et quelques milliards de cash, l'avenir sera intéressant...

(*) n'oubliez pas que virtualisation ne signifie pas seulement mutualisation et qu'il y a plusieurs avantages à avoir, pourquoi pas, un serveurs physique pour une machine virtuelle. Les capacités de clonage ou de de reprendre en quelques minutes tout un environnement virtuel sur un autre serveur sont quelques exemples des autres bénéfices de la virtualisation.

18 juin 2009

L'atelier Infrastructure Oracle à Toulouse... C'est demain!

Bonjour,

Si vous rencontrez quelques difficultés techniques aujourd'hui et que vous habitez à Toulouse, j'anime un atelier sur les Infrastructures Oracle demain. Il reste 2 places alors, battez-vous pour venir discuter et déjeuner dans notre nouvelle agence de Toulouse.

Sinon, vous devrez attendre la prochaine inauguration qui sera à Paris dès la rentrée; les travaux débutent la semaine prochaine... Voilà vous pouvez rallumer votre navigateur web, et retourner à notre dur labeur quotidien, comme moi:


Oops! Ce n'est pas mon jour.

Grégory