Il y a bien longtemps que je n’ai posté d’articles sur le site. En fait, je ne trouvais pas de sujet suffisamment intéressant pour le faire. Mais, grâce à Yoann Gini, et surtout à son excellent blog, je me suis penché sur un sujet très intéressant : la virtualisation. Je connaissais la théorie des gros serveurs de virtualisation, je connaissais également les solutions de virtualisation, mais je n’avais pas cherché plus loin depuis longtemps, n’en ayant pas le besoin, et depuis le temps, ça a évolué.
Ce qui m’a poussé à approfondir le sujet est tout bête. J’ai au travail 3 XServes, 2 qui tournent et un en spare. J’en suis très satisfait, ils sont blindés en RAM et j’ai des SSDs dans les racks. Mais… étant des early-2008, je ne peux aller plus haut que Lion Server. Si Snow Leopard reste à mon avis toujours le meilleur des systèmes serveur d’Apple, il faut bien se résoudre sur un point, le fait qu’il ait 6 ans n’est pas rassurant. Quelques solutions ne tournent carrément plus dessus et Lion devient de plus en plus un pré-requis minimum pour beaucoup de logiciels.
D’un autre côté, Lion Server est certainement un des pires OS serveurs d’Apple, tout simplement parce qu’il n’est pas fini, vraiment pas. En fait Lion Server est devenu correct… quand il est devenu Mountain Lion Server.
Sur mes XServe, j’ai également deux machines virtuelles pour faire tourner des Windows Server avec VMWare Fusion. Mes deux serveurs sont largement sous-utilisés, mais malgré cela, une des deux VMs Windows (le serveur Compta) n’est pas au top niveau perfs. Fusion, c’est bien, mais ça occupe un max de resources inutilement.
Le blog de Yoann, et spécialement son article sur la virtualisation m’ont donné matière à réfléchir.
L’idée serait donc au final de monter un hyperviseur sur chaque XServe et d’héberger mes OSX Servers en VM, avec les machines Windows. L’avantage est indéniablement une question de perf pour les machines Windows, mais aussi (ce n’est qu’une partie infime des avantages) :
Mais comme je voulais prendre mon temps pour tester, casser, refaire, recasser tout ça, j’ai pris un terrain de jeu beaucoup plus simple :
J’ai bien un autre Mini G4 en spare au cas ou celui qui héberge le site tombe en rade, mais bon, 10.4, c’est vieux, et un serveur datant de 2005, j’avais honte. J’avais des licences pour tous les OS Serveurs à partir du 10.6. L’idée est donc de tout basculer sur le Mac Mini 2011, doté d’un SSD et d’un HD, et de migrer progressivement vers Yosemite Server. Après avoir migré du G4 vers le Intel en passant à un Snow Leopard Server, j’étais près à commencer les tests.
Pour ceux qui ne connaissent pas, je conseille grandement la formation en ligne gratuite qu’offre vmware sur « la virtualisation » et les différents composants de leur suite logicielle : Virtualisation de Data Centers VMware - Principes de base Techniquement cela n’apporte pas grand chose, mais cela va permettre de connaître les termes utilisés et de dégrossir le sujet.
Ce que vous avez besoin pour virtualiser vos serveurs :
Et c’est tout… ou presque ! Pour être honnête, quelques autres choses sont plus qu’utiles :
vCenter n’est pas une obligation, surtout si vous avez peu de serveurs et peu de machines virtuelles. Cela va compliquer les choses pour les sauvegardes, la gestion à chaud des VMs, le monitoring, etc. Mais nous verrons dans un autre article que l’on peut faire beaucoup sans vCenter, en utilisant uniquement ce que l’on a dans la version gratuite de ESXi.
Pour ce qui est de la virtualisation sur Mac, les avis divergent quant à ce qu’on a le droit de faire selon ce qu’on comprend du contrat de licence d’Apple. Pour une étude plus poussé de ce qui est autorisé ou non, spécialement si on parle d’utilisation d’un hyperviseur. Je vous invite à consulter l’article de Yoann qui donne une explication détaillée du contrat de licence. Voici la position qui semble être la moins « risquée » :
La première chose à faire est de télécharger l’image iso de ESXi. Cela se fait à partir du site de VMWare. Aujourd’hui, la version 5.5 est la dernière disponible : Télécharger VMware vSphere Hypervisor (ESXi).
Vous vous retrouvez avec un fichier image dont il va falloir copier le contenu sur une clé USB. Malheureusement cela ne marche pas avec « Utilitaire de Disque ».
Une clé de 1Go suffit amplement, plus n’est bien entendu pas gênant. Le processus de création de la clé de démarrage s’est énormément simplifié avec les dernières versions de ESXi… Sauf si vous tentez de suivre la procédure standard de création d’une clé USB bootable… :)
La première chose à faire est de préparer la clé. On peut le faire avec « Utilitaire de Disque », mais c’est encore plus simple avec le terminal. Commençons donc par identifier l’identifiant de périphérique de la clé USB :
« diskutil list
»
Dans mon exemple, ma clé est /dev/disk2. La commande pour effacer et préparer la clé est simplement :
« diskutil eraseDisk FAT32 ESXI MBR /dev/diskX
» (attention à mettre le X correspondant à votre clé USB !!!)
Ensuite double-cliquez sur l’image ISO que vous avez téléchargé du site VMWare et copiez via le Finder l’ensemble des fichiers sur la clé nouvellement formatée.
Après cela, la clé et prête et vous pouvez la brancher au Mac sur lequel vous voulez installer ESXi et démarrer dessus en appuyant sur ALT au démarrage et en choisissant le volume « EFI Boot ».
ESXi démarre et après un certain temps va commencer l’installation. Ici, je fais le test sur un MacBook Pro contenant 2 disques, et je vais installer ESXi sur le deuxième disque.
Attention, le disque que vous sélectionnez sera entièrement effacé, vous ne pouvez pas sélectionner un seul volume du disque, c’est tout ou rien.
Choisissez le type de clavier et un mot de passe root.
Une fois installé, il faut débrancher la clé avant de presser Entrée pour redémarrer.
(Note : Si vous gardez un volume Mac OS X sur votre Mac, celui-ci va démarrer par défaut sur le volume Mac. Il n’est pas possible de configurer le démarrage sur ESXi via les préférences systèmes. Vous pouvez alors installer un utilitaire de démarrage comme rEFInd qui vous permet de gérer plus finement le démarrage de votre Mac.)
Une fois redémarré sur ESXi, vous arrivez sur l’interface suivante :
Nous allons faire les paramétrages de base, une fois ceux-ci effectués, vous n’aurez quasiment plus jamais à revenir sur la console du serveur. Pressez la touche F2 pour accéder au paramètres. Vous pouvez ici changer les paramètres réseau de votre serveur.
Il est également important d’activer le shell
et SSH
, surtout si vous restez avec la version gratuite de ESXi. C’est en effet moins utile avec vSphere puisque cela vous donne accès à des outils performants pour gérer les serveur.
Il est nécessaire d’avoir un Windows (7 minimum) pour pouvoir installer vSphere Client. Vous trouverez la dernière version du client pour Windows bien caché sur le site de VMWare : vSphere Client Download L’installation se fait ensuite sans aucune configuration particulière.
Vous pouvez ignorer pour l’instant l’alerte sur la licence d’évaluation.
La manière la plus simple de créer une machine virtuelle Mac OS X sur votre serveur ESXi, est de d’abord la créer… Dans VMWare Fusion Pro… :)
Une fois cela fait, le point à savoir est que la version gratuite de ESXi ne permet pas de gérer avec vSphere Client les machines virtuelles de type 10 ou supérieur. En fait, depuis la dernière mise à jour, on peut effectivement gérer un minimum de ces machines, mais certaines fonctionnalités sont désactivées. Le problème est que par défaut, les nouvelles VMs créées par Fusion sont de type 10 ou même 11. Il est donc préférable de changer le type de version de la VM avant de la transférer sur ESXi. Cela se fait relativement simplement :
J’en vois au fond de la salle qui s’agitent… Oui, en effet, dans la plupart des cas, il va vous mettre une erreur, disant que la machine n’accepte pas les disques SATA, ou que la version du système n’accepte pas ce type de machine ou…
Rien de plus simple, il faut tout simplement corriger la machine. Le cas peut être différent pour d’autres systèmes, mais pour Mac OS X, les points suivants devraient suffir :
IMPORTANT : Assurez-vous que la case Fractionner en plusieurs fichiers dans les paramètres des différents disques est décochée. Sans cela, le transfert se fera sans erreur apparente, mais le disque transféré sera vide !
Ensuite, il faut se connecter au serveur ESXi avec Fusion Pro. Dans le menu Fichier=>Se Connecter au serveur…
Et dans la liste des Machines virtuelles, faire glisser la VM de vos VMs locales vers le serveur ESXi.
Il demande alors de choisir le « disque » de destination (datastore), une fois le choix fait, le transfert se lance.
Pour une VM OSX, si la machine à transférer n’est pas la machine sur laquelle vous avez installé ESXi, la manière la plus simple est d’installer un système vierge et d’utiliser l’assistant de migration via le réseau.
Dans les autres cas, cela peut se compliquer un peu :)
Voici une manière que vous pouvez utiliser pour transférer une machine sous OSX vers votre serveur ESXi si vous ne souhaitez ou ne pouvez pas utiliser l’Assistant. L’inconvénient est qu’elle nécessite sur votre Mac de travail le double d’espace disque que la taille de la machine à transférer. (Il existe une manière plus simple mais je ne l’ai pas encore testé. Je détaillerai plus une fois que je l’aurai mise en pratique : il faut créer une image disque du/des volumes à migrer comme dans le point 7 ci-dessous ; ensuite, copier cette/ces images disque sur un serveur HTTP et notez son/leur URLs ; enfin, créez votre VM et lancez là, mais au lieu de lancer l’installation, allez dans Utilitaire de disque et faites une restauration en mettant l’URL en source de la restauration.)
1) Si vous n’avez pas encore de VM OSX, créez en local une machine virtuelle Mac OS X avec VMWare Fusion Pro et installez le système. Nommons là OSX-Temp. Cette machine ne servira que pour des transferts, vous pouvez donc lui allouer un disque relativement petit (15 à 20 Go devraient suffire).
2) Créez une autre VM (qui sera celle sur laquelle nous allons transférer votre système existant), nommons là par exemple MyOLD_OSX. Mais ne lancez aucune installation. Vérifiez que la taille du disque virtuel que vous attribuez à la machine est suffisamment gros.
3) Éteignez OSX-Temp, puis allez dans les paramètres de la VM et ajoutez un périphérique de type « Disque dur existant ».
4) Choisissez le disque de la VM que nous venons de créer (MyOLD_OSX) et faites bien attention à cocher la case Partager ce disque virtuel avec la machine qui l’a créé.
5) Redémarrez OSX-Temp et vous devriez voir un nouveau disque, vierge, sur le bureau. C’est celui de MyOLD_OSX.
6) Assurez vous que dans OSX-Temp, vous avez accès en partage à au moins un dossier de votre Mac local.
7) Faites une image disque du volume du Mac à migrer (avec Carbon Copy Cloner par exemple) et copiez la dans le dossier partagé en (6).
8) Assurez vous que vous avez bien accès à l’image disque dans OSX-Temp. Double-cliquez dessus pour monter le volume dans OSX-Temp.
9) Avec Carbon Copy Cloner (ou autre utilitaire de copie), transférez le contenu de l’image disque vers le disque partagé de MyOLD_OSX
10) Eteignez OSX-Temp et retirez le disque dans les préférences (sans l’effacer).
11) Démarrez MyOLD-OSX et vérifiez qu’elle tourne correctement.
12) Éteignez la VM et transférez là sur le serveur ESXi.
Il y a aussi des manières de faire avec VMWare Converter installé sur Windows 7, mais ce n’est pas forcément plus simple…
Il y a un point important à ne pas oublier, c’est la gestion de l’énergie.
Cela se fait à deux niveaux. Tout d’abord, au sein des VMs.
Soyez sûr de ne pas activer les options de réduction de l’énergie dans les VMs. Il n’est pas conseillé de mettre en veille les disque, et encore moins la machine virtuelle en elle-même au bout d’un temps d’inactivité. L’extinction de l’écran après inactivité est également inutile et peut parfois poser des soucis quand on veut prendre la main sur la VM. Mais il y a un point très important : l’économiseur d’écran ! La plupart des économiseurs d’écran sont très gourmands en resources et vont donc utiliser complètement inutilement les resources de l’hôte ESXi pour afficher un économiseur d’écran qui ne sera vu par personne. Personnellement, j’ai laissé l’économiseur « Message »/« Nom de l’ordinateur » qui ne fait qu’afficher le nom de la machine. Celui-là ne semble pas utiliser trop de resources.
Attention également, si vous avez un utilisateur connecté en permanence sur la VM, à ne pas avoir un fond d’écran qui change régulièrement, cela utilise aussi des resources inutilement.
Si vous n’avez aucun utilisateur auto-connecté, les préférences de l’économiseur d’écran sont prises depuis… le premier compte admin créé !!! (en tout cas sur Yosemite)
Ensuite, la gestion de l’énergie de la machine faisant tourner ESXi. Si vous souhaitez pouvoir définir certaines options, comme le fait de redémarrer après une coupure de courant, ou de programmer un démarrage automatique, voir même pour les Xserve si vous voulez configurer l’accès LOM… Il vous FAUT démarrer sous Mac OS X. Prévoyez donc un système Mac OS X démarrable (sur clé USB ou disque externe) vous permettant de configurer ces options.
Je vais vous montrer dans d’autres articles que, moyennant quelques scripts shell , l’utilisation de la licence gratuite de ESXi est suffisante pour un usage basique.
Nous allons donc commencer par saisir dans ESXi le numéro de série pour la licence gratuite qui est disponible après avoir téléchargé l’image d’installation. Vous pourrez ensuite acheter une licence si vous avez besoin de plus que ce que la licence gratuite vous propose. (là encore le suivi de la formation/présentation des différents produits vmware est un plus non négligeable pour comprendre ce dont vous pourriez avoir besoin)
Pour saisir le numéro de série, vous avez 2 moyens :
Dans le premier cas, c’est relativement simple, il faut juste avoir vSphere Client installé et disponible. Il faut alors aller dans la partie « Configuration » de l’hôte, puis dans « Fonctions autorisées ». Et enfin cliquer sur le lien « Modifier… » en haut à droite.
Pour ceux qui refusent d’installer vSphere Client sur un Windows, votre salut se trouve dans SSH
et la ligne de commande :
« vim-cmd vimsvc/license --show |head -15
» vous permettra de voir l’état de votre licence actuelle.
« vim-cmd vimsvc/license --set XXXXX-XXXXX-XXXXX-XXXXX-XXXXX |head -15
» vous permettra de saisir votre numéro de licence et d’apercevoir le résultat de la commande.
Parlons un peu des licences payante maintenant. Le type de licence que vous allez prendre va dépendre du nombre d’hôtes ESXi que vous souhaitez gérer et des fonctions que vous souhaitez avoir.
ESXi licence gratuite | vSphere Essential Kit | vSphere Essential Kit Plus | |
---|---|---|---|
Présentation | Virtualisation non centralisée et avec outils de gestion limités | Virtualisation avec gestion centralisée | Virtualisation avec gestion centralisée et continuité d’activité. |
Prix | 0€ | -Licence 1 an (renouvelable) : 280€
Licence illimité à partir de 545€ | -Licence 1 an (renouvelable) : 2275€
Licence illimité à partir de 4510€ |
Produit | vSphere Hypervisor ESXi | Ce kit comprend des licences pour 3 serveurs physiques (2 processeurs chacun max) :
| Ce kit comprend des licences pour 3 serveurs physiques (2 processeurs chacun max) : |
Avantages | - Gratuit
| - Prix accessible | - accès à une gestion centralisée par vCenter |
Inconvénients | - Pas de gestion centralisée
| - vMotion non inclu | - prix |
Pour les autres versions de vSphere (Standard, Entreprise, Entreprise Plus, etc.) le tarif est donné par processeur et propose quelques options plus poussées de gestion dynamique et des outils de surveillance. La licence 1 CPU de vSphere Standard est ainsi disponible à partir de 1200€, soit 2400€ pour un Xserve bi-processeur. Ou encore 6000€ pour des licences Standard pour 5 Mac Mini .
Un point à prendre en compte toutefois, plutôt important. Quelle que soit le type de licence que vous achetez, seules les machines officiellement validées seront supportées, et ceci n’inclut pas les Mac Mini…. Donc, même en payant 6000€ de licence pour pouvoir faire tourner vSphere/vCenter sur vos 5 Mac Mini, en cas de soucis, vous n’aurez pas accès au support.
Au jour d’aujourd’hui, les machines supportées sont :
Vous pouvez avoir la liste à jour sur La page de compatibilité
Tout n’est pas tout rose au pays de la virtualisation pour nous. Déjà, au niveau du support officiel, comme je le précisait plus haut, aucun Mac Mini, aussi sympas soient-ils pour héberger ESXi, ne sont officiellement supportés. Cela tourne bien, et beaucoup de monde les utilise dans cette configuration, mais aucun support ne sera fourni.
Un autre problème qui peut être très gênant, et qui doit en tout cas être pris en compte, la non-gestion de certaines particularités matérielles du monde Apple :
Donc la seule solution pour le stockage avec ESXi est de tout stocker en interne ou sur le réseau. Si vous optez pour un gestion centralisée des hôtes avec vCenter, le stockage réseau est de toute façon plus que conseillé pour ne pas être limité.
Mon nouveau serveur est en place, faisant tourner une VM en 10.6 Server hébergeant mosx.org et une VM en Yosemite server faisant tourner uniquement le serveur de Caching pour l’instant. Je n’ai pas eu le temps de migrer quoi que ce soit du 10.6 au 10.10 pour l’instant mais ça tourne très correctement. J’ai également d’autres VMs qui ne tournent pas en continu dessus. Les deux VMs des serveurs sont hébergées en interne sur le SSD du Mac Mini et je les sauvegarde tous les soirs par un script sur ReadyNAS monté en NFS sur le Mac Mini.
Malgré les limitations cités juste au dessus, l’intérêt de migrer mes XServes est toujours bien présent. Dans mon cas, voici comment je vois la solution finale :
Il faut par contre que je vérifie comment supprimer la carte RAID qui est dans un de mes XServes.
Je n’ai pas vérifié, mais il y a de fortes chances que l’installation de ESXi soit dépendante du matériel sur lequel ESXi est installé. Il me semble donc peu probable que ça marche (et même peu recommandé si ça marchait). Le problème n’est pas pour les VMs, mais pour l’hôte ESXi lui-même.
Il doit être possible d’utiliser une clé USB en tant que datastore pour stocker les VMs si c’est ça que tu veux, mais ce n’est pas supporté. De plus, attention au licences. Utiliser Mac OS X en machine virtuelle sur un ordinateur non Apple est dans tous les cas non permis.
Pour compléter l’article. Il semble y avoir différentes manières de configurer l’économiseur d’écran sur la page de login. La seule que j’ai trouvée qui marche de la même manière depuis Snow Leopard jusqu’à Yosemite est par la ligne de commande suivante :
sudo defaults write /Library/Preferences/com.apple.screensaver loginWindowIdleTime 0