e-t172.net
Développement, réseaux, sysadmin et futilités
Développement, réseaux, sysadmin et futilités
19/09/06
Depuis Dedibox, il est rentré dans mes habitudes de réinstaller entièrement un serveur dédié une fois qu’il m’a été livré. Oui, entièrement, distribution y comprise. J’y vois deux intérêts principaux :
Mais, me diriez-vous, comment cela est-il faisable sans accès physique à la machine, seulement un accès SSH ? En fait, la possibilité d’effectuer la manipulation dépend de 3 conditions : la présence d’un système de réinstallation gratuite du serveur (pour remettre celui-ci à sa configuration d’usine « au cas où »), la présence d’un système dit « rescue » (système d’exploitation distant minimal conçu au départ pour être utilisé en cas de pépin sur la machine), et la présence d’un système de partionnement personnalisé du (des) disque(s) dur(s) du serveur [1]. Les relations entre ces différentes conditions étant plutôt complexes, je les ai regroupées dans un tableau :
| Cas n° | Rescue | Réinst. | Part. | Commentaire |
|---|---|---|---|---|
| 1 | Oui | Oui | Oui | Aucun problème, vous pourrez effectuer la procédure de manière confortable. |
| 2 | Oui | Oui | Non | L’opération est possible, mais vous devrez vous assurer que le mode rescue proposé dispose des outils nécéssaires pour pouvoir installer le nouveau système depuis le système rescue [2]. Si ce n’est pas le cas, vous devrez installer le nouveau système depuis l’existant, ce qui impose de conserver le partionnement d’origine, ce qui peut se réveler problématique concernant l’emplacement du nouveau système. |
| 3 | Oui | Non | Oui | L’opération est possible, mais attention, une fois la procédure commencée, vous ne pourrez pas revenir en arrière si vous n’arrivez pas à faire booter le serveur sur votre nouveau système. |
| 4 | Non | Oui | Oui | L’opération est possible mais fastidieuse : si vous n’arrivez pas à faire booter votre nouveau système du premier coup (ce qui a de fortes chances d’arriver), vous êtes obligés de tout recommencer à zéro en utilisant la réinstallation automatique. |
| 5 | Oui | Non | Non | L’opération est possible, mais vous devrez vous assurer que le mode rescue proposé dispose des outils nécéssaires pour pouvoir installer le nouveau système depuis le système rescue [2]. Si ce n’est pas le cas, vous devrez installer le nouveau système depuis l’existant, ce qui impose de conserver le partionnement d’origine, ce qui peut se réveler problématique concernant l’emplacement du nouveau système. Par ailleurs, une fois la procédure commencée, vous ne pourrez pas revenir en arrière si vous n’arrivez pas à faire booter le serveur sur votre nouveau système, soyez donc sûr de vous. |
| 6 | Non | Oui | Non | L’opération est possible, mais vous devrez installer le nouveau système depuis l’existant, ce qui impose de conserver le partionnement d’origine, ce qui peut se réveler problématique concernant l’emplacement du nouveau système. Par ailleurs, l’opération se révèlera probablement fastidieuse : si vous n’arrivez pas à faire booter votre nouveau système du premier coup (ce qui a de fortes chances d’arriver), vous êtes obligés de tout recommencer à zéro en utilisant la réinstallation automatique. |
| 7 | Non | Non | Oui | L’opération est théoriquement possible mais tellement dangereuse que c’en devient suicidaire : si votre nouveau système ne boote pas du premier coup, vous êtes bon pour payer la réinstallation (qui est en général facturée à un prix dissuasif). |
| 8 | Non | Non | Non |
De là, vous avez deux méthodes à votre disposition pour mettre en place votre nouveau système :
debootstrap) et Gentoo, entre autres, le proposent. C’est la solution la plus propre et la plus fiable.Etant donné que les seules réinstallations que j’aie effectuées concernaient des Debian Unstable installées à chaud, je ne peux pas vous en dire plus sur la deuxième méthode. Voici quelques conseils :
chroot sur votre nouveau système avant de booter dessus, pour installer des packages par exemple, or vous ne pourrez pas le faire depuis un kernel 32 bits car tous les binaires contenus dans le chroot refuseront de fonctionner tant qu’ils ne tournent pas sur un kernel conçu pour les processeurs x86_64. (notons par ailleurs que debootstrap crée des environnements chroot pour installer les packages de base, debootstrap refusera donc de terminer l’installation d’une Debian AMD64 à partir d’un kernel 32 bits).Bonne chance !
[1] Curieusement, OVH ne propose le partitionnement personnalisé que lors de la réinstallation gratuite, jamais lors de la première installation. Donc, contrairement aux apparences, les clients d’OVH se trouvent dans le cas 1 du tableau.
[2] Les administrateurs souhaitant utiliser le système rescue pour installer leur nouveau système ET planifiant d’installer un nouveau système 64 bits doivent au préalable s’assurer que le système rescue proposé tourne sur un kernel 64 bits [3].
[3] Cette restriction ne s’applique pas si vous souhaitez installer votre nouveau système depuis une image préfabriquée (méthode 2).
[4] Oui, même Windows ! Certains ont déjà réussi à l’installer sur une Dedibox par cette méthode ; néanmoins, elle demande un certain nombre de compétences préalables en administration de systèmes Windows pour être exploitable.
[5] Certains systèmes de partitionnement particulièrement mal foutus (tels celui d’OVH) vous obligent à choisir une partition de type swap, dans ce cas placez-là en lieu et place d’une autre partition et recréez ensuite un système de fichiers normal sur la partition contenant le swap depuis le système préinstallé.
20/05/06
Je pense avoir découvert une différence fondamentale de comportement dans la fonction magique __autoload() entre PHP 5.0.x et PHP 5.1.x.
En effet, le manuel PHP indique à ce sujet :
Note : Les exceptions lancées depuis la fonction __autoload() ne peuvent être interceptées par un bloc catch : elles provoqueront une erreur fatale.
Or, cela est bel et bien vrai en PHP 5.0.x (jusqu’à PHP 5.0.5), mais est devenu faux en PHP 5.1.x (à partir de PHP 5.1.0), où les exceptions sont traitées correctement.
Pour vous en convaincre, saisissez les commandes suivantes en tant qu’utilisateur normal sur un shell Bash :
wget http://storage.e-t172.net/php-autoload/php-autoload && chmod +x php-autoload && ./php-autoload
Ce script va télécharger PHP 5.0.5 et PHP 5.1.0, les compiler (sans les installer, rassurez-vous) et éxécuter ce script PHP successivement avec les deux versions fraîchement compilées :
<?php
define('CLASS_DOES_NOT_EXIST', TRUE);
function __autoload($class)
{
if (CLASS_DOES_NOT_EXIST)
{
// On cree une "fausse classe" pour ne pas generer d'erreur "class not found"
eval('class '.$class.' { }');
throw new Exception('The class '.$class.' does not exist');
}
}
try
{
// Tentative d'instanciation d'une classe qui va appeller __autoload()
$test = new test();
// Commentez la ligne d'instanciation pour tester les appels statiques
test::go();
}
catch (Exception $e)
{
var_dump($e);
}
?>
Voici les résultats tels que le script Bash les affiche :
-----------
PHP 5.0.5 :
-----------
Fatal error: Function __autoload(test) threw an exception of type 'Exception' in /root/php-autoload-test/php-autoload.php on line 28
-----------
PHP 5.1.0 :
-----------
object(Exception)#1 (6) {
["message:protected"]=>
string(29) "The class test does not exist"
["string:private"]=>
string(0) ""
["code:protected"]=>
int(0)
["file:protected"]=>
string(40) "/root/php-autoload-test/php-autoload.php"
["line:protected"]=>
int(11)
["trace:private"]=>
array(1) {
[0]=>
array(4) {
["file"]=>
string(40) "/root/php-autoload-test/php-autoload.php"
["line"]=>
int(18)
["function"]=>
string(10) "__autoload"
["args"]=>
array(1) {
[0]=>
string(4) "test"
}
}
}
}
Conclusion : à partir de PHP 5.1, OUI vous pouvez thrower des exceptions depuis une fonction __autoload(), et je sens que ça va en ravir plus d’un.
En fait, il semblerait que ce problème de documentation soit connu, mais il est enfoui dans les commentaires du rapport de bug concerné (#31102) :
helly has introduced a way to catch the exceptions, so it needs to be documented.
En effet, il serait temps !
11/05/06
Arnaud vient d’annoncer, comme promis quelques jours plus tôt, une modification des CGV.
La nouvelle version est dénuée du fameux paragraphe qui a fait objet d’une longue controverse un peu partout :
Retrais :
L’usager s’engage à utiliser les Services à des fins personnelles. L’utilisation des Services à d’autres fins que personnelles, ainsi que la mise à disposition au profit des tiers, à titre gratuit ou onéreux, et la recommercialisation des Services sans autorisation écrite de DEDIBOX sont strictement prohibées.
7/05/06
Deux nouvelles particulièrement cocasses viennent de tomber :
Maintenant, c’est confirmé, on peut TOUT faire sur une Dedibox.
6/05/06
Après avoir publié mon billet sur Dedibox, je me suis mis à éplucher les Newsgroups, IRC et le principal forum non officiel pour chercher infos, benchmarks, témoignages et autres joyeusetés. Ceci afin de trier et centraliser les informations pour vous faire un billet complet sur la situation actuelle de Dedibox.
Je précise tout de suite que je n’ai depuis le début aucun préjugé ni arrière-pensée, contrairement à ce que disent certaines mauvaises langues sur IRC pointant du doigt mon billet et le comparant aux lamentations des, je cite, « freenautes mécontents alors qu’ils ne sont même pas dégroupés ». J’essaie de rester objectif (pour une fois), mais gardez à l’esprit tout de même que ni ce billet ni mon précédent ont une quelconque ambition journalistique. D’ailleurs les principales informations sur lesquels je me base proviennent de témoignages d’utilisateurs, Dedibox ne faisant lui-même aucune annonce, et restent donc non confirmées. (autrement dit : si je l’écris c’est qu’il y a des chances que ce soit vrai, mais ça reste tout de même à prendre avec des pincettes).
NOTE : les liens vers les newsgroups que je donne sont des liens en « news://« , par conséquent, il faut un lecteur de news correct pour pouvoir les lire.
Keger avait annoncé qu’il contacterait Dedibox pour demander des éclaircissements sur certains points de mon précédent billet. Dedibox a répondu :
J’ai lu avec attention votre demande.
Pour le processeur utilisé le site Dedibox.fr et le communiqué de presse de Iliad est assez clair. La consommation electrique.
Le paiement d’une Dedibox se fait pour un mois. Si l’abonné ne nous envoie pas son reglement (cheque) + résiliation avant la date de traitement, il gardera sa Dedibox pour un mois de plus.
Il n’y a pas de SLA avec notre service Dedibox. Nous ne garantissons rien du tout on se propose de rembourser suite a une coupure de plus de 48h.
Le paragraphe sur les restrictions d’utilisation est fait pour rappeler que l’abonné qui souscrit a notre offre est entièrement responsable de ce qu’il y a sur sa Dedibox. De plus nous interdisons la revente « Brute » du service Dedibox sans valeur ajoutée.
Hier une minorité d’administrateurs de Dedibox se sont plaints de problèmes d’instabilité. Concrètement, leur Dedibox ne tenait pas plus de 2 heures sans finir par planter. Un redémarrage par envoi de Ctrl+Alt+Suppr (possible depuis la console d’administration) est sans effet. Le redémarrage matériel fonctionne mais cela ne résoud pas le problème. Les diagnostics automatiques du matériel restent bloqués.
Liste des témoignages sur le newsgroup Dedibox :
4 heures plus tard, Arnaud, principal administrateur de Dedibox, indique que les machines en question sont en Kernel Panic, mais visiblement il y a eu deux problèmes en même temps vu que pour d’autres personnes il s’agirait d’un problème de VLAN.
Les machines en Kernel Panic ont été remplacées. L’opération s’est faite rapidement et efficacement si l’on en croit le témoignage élogieux de Benoît, environ 15 heures après le premier signalement du problème.
Du côté du problème de VLAN, Bisei signale la fin du problème à peu près au même moment.
A priori, le problème de la double interprétation du paragraphe 9.8 des Conditions Générales de Vente ne semble pas clos, et cette histoire est sujette à une controverse permanente sur les newsgroups.
Arnaud aurait déclaré sur IRC que la bonne interprétation était l’interprétation « laxiste » (ce qui semblait de toute façon le plus probable) et que les CGV allaient être modifiées pour les rendre plus claires. N’ayant pas lu cette déclaration de mes propres yeux, celle-ci reste non confirmée, d’autant plus qu’Arnaud est depuis resté muet sur le sujet.
Cependant, à lire la réponse au mail de Keger (voir plus haut), il apparaît maintenant comme quasi-acquis qu’il s’agit bien de l’interprétation laxiste du paragraphe.
Un certain nombre de clients aurait des problèmes de livraison de leur Dedibox. Un thread bien garni est présent dans le newsgroup principal (discussions), intitulé « Livraison ? ». Apparemment, certaines personnes sont livrées en une vingtaine d’heures alors que d’autres sont encore en attente de leur Dedibox commandée le 3… un topic sur le forum non-officiel tente de regrouper les informations à ce sujet.
Sur IRC, les admins invoquent le délai de 40 jours (ouvrés !) indiqué sur les CGV et recommandent la patience.
Sur les newsgroups, certaines personnes prétendent que Dedibox est en rupture de stock (ce qui ne m’étonnerait pas).
Yannick a même posté une explication humoristique que je recopie ici pour la postérité :
Après avoir erré plusieurs heures sur le site dedibox, avoir lu tous les posts, toute la doc, j’ai trouvé l’explication au retard de livraison : arnaud@dedibox.fr.
En fait tout repose sur Arnaud.
Le matin, Arnaud arrive à 6h30, il va vérifier les niveaux d’huile des groupes électrogènes, puis il va contrôler les répartiteurs électriques (c’est lui sur la photo au fond).
A 7h30, Réception de 100 baies 42U, Il les déballe, les installe, bien alignées, à 1m23 de la rangée précédente. Puis il s’occupe des arrivées électriques, des arrivées fibres et de l’installation des switchs dans chaque baie.
12h00, un tour sur les forums, pour répondre gentiment aux questions techniques, contractuelles, comptables, en mangeant un pain bagnat (c’est son faible à Arnaud, le pain bagnat…, le problème avec le pain bagnat, c’est l’huile d’olive qui coule sur le clavier).
Ensuite, un tour sur les différentes consoles des Dedibox qui ont eu un Kernel Panic… Pas le temps de débogger, il faut vite commencer la production des quelques 2000 dedibox en attente… « Eh m…, la carte mère rentre pas dans le boîtier, je leur avait dit pourtant !!! ». 14h30 une idée de génie, Arnaud démarre les groupes électrogènes et commence à limer les cartes mère sur la courroie de transmission…
19h00 : un petit tour à la salle de vidéo-surveillance… Pas de doute Arnaud est vraiment seul, si seul…
22h00 : allez, un dernier effort, Arnaud livre la 326 et la 327.
Mais demain c’est Vendredi et Arnaud a pris un jour de RTT… Il n’oublie pas d’éteindre en sortant, le week-end s’annonce pourri, tant pis, il va s’occuper de sa dedibox à lui, la sd-001, sur laquelle il a installé un cluster de 8 machines virtuelles en openvz. Ca rame un peu mais c’est tellement beau…
Y’a pas à dire, le Via C7 dont je parlais dans mon précédent billet semble aimer s’entourer de mystère. En effet, pour l’instant les annonces de performances et autres benchmarks annoncent des résultats complètement disparates. Certains annoncent un niveau équivalent à un Celeron 1,2 Ghz, d’autres un Celeron 1,6, Dedibox déclare le C7 équivalent à un Celeron 2,6 Ghz et certains annoncent même un niveau digne d’un Sempron 3000+ !
Bref, on se retrouve quelque peu désorienté face à la cacophonie ambiante. Un thread sur le newsgroup tente de comparer le C7 à des processeurs plus courants en se fiant à l’indication « BogoMips » calculée par le Kernel au démarrage de la machine et accessible en lisant le fichier /proc/cpuinfo. Voici les résultats des contributeurs au newsgroup :
Malheureusement, cette mesure est réputée d’une fiabilité douteuse – un peu comme toutes les mesures de performances d’ailleurs. C’est ce que nous rappelle Olivier :
Il faut cependant savoir que les BogoMips c’est, comme son nom l’indique : bogus, bidon.
Sur processeur x86 récent c’est 2 fois la fréquence.
Un Athlon 64 à 2Ghz aura donc 4000 bogomips, comme un VIA C7 2 Ghz.
Un biprocesseur avec 2 opteron à 2 Ghz : 2*2*2000 = 8000 bogomips.
Un Pentium 4 3 Ghz avec hyperthreading : 2*2*3000 = 12000 bogomips.
On voit bien que c’est bidon, et que ca représente RIEN.
J’ai repéré sur le newsgroup le témoignage de Christian. C’est une mine d’or.
J’ai testé ma dédibox, voici mon retour d’expérience.
29 € pour un serveur avec 100mbits de bande passante ! Ok, je cherche même pas à comprendre, je m’abonne tout de suite.
Dedibox commandée Mercredi à 10h14, juste après le communiqué de presse, l’interface d’inscription n’a pas posé de problèmes.
Machine reçue le jour même à 17h28, jusque là, tout va bien, surtout que Iliad nous a habitués à des lancements plutôt … foireux jusqu’à présent !
Je me précipite dans la console abonné, et je vois mon serveur attribué, la gestion du serveur se fait dans une popup plutôt bien faite et intuitive.
Installation avancée, je choisis une Debian, je choisis mon partionnement et les différents mots de passe. L’interface est très très impressionnante, pour avoir de nombreux serveurs ailleurs, je n’ai jamais trouvé d’équivalent ailleurs en matière de fonctionnalités et de facilité d’utilisation.
L’installation de ma Dedibox dure très exactement 4 minutes montre en main, et comble du luxe, on a même une belle interface de progression de l’installation !
Un petit tour de la console, parmis les fonctionnalités on remarque le monitoring plutôt bien fait, la possibilité de faire un test de sa Dedibox, un système rescue à la OVH, et la possibilité de rebooter à distance.
Les points positifs : installation très rapide, partionnement personnalisé (ca me change grandement des 2 Go de
/et des 30 Go de/homechez OVH), le choix de l’adresse IP (!), les fonctionnalités nombreuses et bien pensées, le système de reboot « soft » pour lequel je me demande toujours comment ils ont fait pour nous pondre ca.Les points négatifs : Pas de possibilité de changer le reverse de la dedibox après l’installation sans tout ré-installer !
Maintenant, regardons un peu la machine en elle-même.
Déjà je remarque que les modules kernel pour lm_sensor ne sont pas compilés, je refais mon Kernel. La compilation du Kernel dure 11 minutes, hum … pas mal.
Reboot, la machine ne revient pas, ok, je passe en mode rescue pour corriger un « hda1″ au lieu de « sda2″ dans GRUB. A nouveau reboot, ca marche, cool
![]()
Je remarque 2 choses via lm_sensors :
- Bizarre : pas de -5 et -12v sur la carte mère reportée par lm_sensor (limitation du chip ?)
- Présence d’un ventilateur cpu contrairement à ce qui est indiqué sur la documentation Dedibox.
Testons un peu l’alimentation, gros point faible des serveurs low-cost. Le test est facile à faire, il suffit de vérifier les tensions via lm_sensor lors des variation d’utilisation cpu.
Chez OVH, la tension du 3.3 V est à 3.41 V lorsque le serveur n’est pas chargé, et 2.76V lorsque le CPU est à 100%. Petit sous-dimensionnement de l’alimentation qui provoque évidemment une usure précoce de l’alim et parfois des plantages/freeze lors des montées en charge.
Je fait le même test sur ma Dedibox, 3.38 V pas chargé, 3.26 V avec le CPU à 100%, très bon point rassurant ! Le 5 V et le 12 V sont stables et ne varient pas, 4.92 V constant pour le 5 V, 12.13 V pour le 12 V, très bon point aussi.
Niveau température, après 1 nuit à grapher, CPU et la carte mère dans les 31 °C, disque dur à 32 °C, le tout est stable, chapeau !
Carte réseau Via, une VT6122, assez rare à trouver sur le marché, ca change des realtek instables et gourmantes en CPU. Un test de download depuis ftp.free.fr me donne 9,2 Mo/sec, pas mal aussi.
Disque dur Seagate, rien à redire, ces disques ont une excellente réputation de fiabilité.
Pour tester le CPU, je vais migrer un de mes serveur de streaming dessus.
Autant le dire tout de suite, je fais du streaming de vidéos X (principalement des live et de la VOD), les 100 MBits promis m’intéressent !
Mes applications tournent avec un serveur de streaming Flash :
Pour les live : j’ai un logiciel qui transcode le flux vidéo en flux de différents débits avant de le streamer avec Flashcom, pour s’adapter au débit de l’internaute. Ca consomme pas mal de CPU.
Pour la VOD, pas de transcodage à la volée, mais pas mal d’accès disque, j’apprécie les 1 Go de RAM que j’ai chez OVH.
Chez OVH (Superplan + large) pour 104 € le serveur rempli avec 15 MBits de trafic (environs 30 internautes simultanés dont 15 sur les live), le CPU tourne autour des 30% d’utilisation. Le facteur limitant étant les accès disques et surtout la bande passante de 15 MBits.
Sur ma Dedibox toute neuve pour 30 €, j’arrive à monter à 90 internautes simultanés avec 48 MBits constant en sortie, le cpu aux alentours de 55 %.
Je remarque tout de suite les très bonnes perfs au niveau des accès disque, et la bonne carte réseau qui soulage bien le CPU. Petit point négatif, le transcodage semble prendre un peu plus de CPU que sur mon serveur chez OVH, par contre je reste impressionné par les accès disque de ma Dedibox.
J’ai essayé de monter à 110 simultanés, mais pour une raison inconnue mon application Flashcom plante, quelqu’un a le même problème ?
Par contre, les performances réseau sont OK, les débits promis sont bien là ! Mais bof vers l’Asie lorsque ça passe par « Teleglobe » dans les traceroute, et c’est malheureusement 20% de mes visiteurs… Même symptôme chez OVH mais beaucoup moins nuancé. A méditer.
Dernier point, le support : je contacte le support sur un problème précis, 1 heure après réponse tout à fait cohérente d’un sympathique technicien dénommé Alban, très bon point.
Ils semblent utiliser un système de ticket, quelqu’un confirme?
En plus, les techniciens semblent très disponibles et accessibles, on notera la présence d’un IRC, chose rare chez les hébergeurs low-cost.
J’ai ouvert 4 comptes supplémentaires, j’ai hâte d’être livré !
Bravo Iliad pour cette offre explosive ! (dommage que le site internet soit si moche)
Chris