Speedboot
De Wiki de la communauté Mandriva.
SpeedBoot est disponible depuis la version 2009 Spring.
Que fait speedboot?
Speedboot démarre en premier tous les scripts nécessaires au système graphique (display manager) pour obtenir rapidement un environnement de bureau, et ensuite les autres services nécessaires à un démarrage complet (full boot) sont chargés en arrière plan.
Comment est-il implémenté ?
Nous réutilisons des techniques qui ont déjà été utilisées sur certains de nos produits OEM, avec finit, mais avec une implémentation plus standard, en gardant les scripts d'initialisation (initscripts) actuels.
Pour avoir la possibilité de démarrer les services minimums nécessaires pour le gestionnaire d'affichage (display manager), nous avons introduit un niveau d'exécution (runlevel) nommé S (avec seulement 5 services : acpid, dbus, hal, syslog nd dm). Malheureusement le code de chkconfig ne supporte que des niveaux d'exécution (runlevels) au format numérique, ainsi le niveau d'exécution (runlevel) nommé S est implémenté en tant que niveau d'exécution (runlevel) nommé 7 (l'ensemble représente le même niveau d'exécution (runlevel), mais le chiffre 7 est le seul qui est utilisé dans initscripts).
Quand on démarre (booting) en mode speedboot, beaucoup d'actions qui sont effectuées dans les scripts d'initialisation (initscripts) sont ignorées. C'est pourquoi speedboot peut ne pas fonctionner sur votre système.
Lors de la phase 1 de speedboot, il désactive le plus d'actions possible dans rc.sysinit. Certaines actions ont juste besoin d'être différées après le démarrage du gestionnaire d'affichage (display manager), ainsi il essaiera de différer l'exécution de certaines des actions désactivées actuellement, lors de la phase 2 de speedboot.
Lors de la phase 2 (ou 3) de speedboot, nous activerons automatiquement speedboot si certains critères sont remplis et si aucune fonctionnalité en conflit n'est rencontrée sur le système, tel que système de fichier chiffré, système disques en raid, l'authentification réseau. Si speedboot échoue, le système retournera automatiquement en démarrage (boot) standard et ne réessaiera plus le mode speedboot par lui-même.
Actuellement, readahead est complètement désactivé lors de l'utilisation de speedboot. Nos mesures montrent des régressions lors de l'utilisation de readahead ou sreadahead mais qui se rencontrent pas avec des disques SSD.
Comment puis-je utiliser speedboot ?
Par défaut à partir de la 2009.1 RC 2, speedboot est activé en mode automatique par défaut, en utilisant le processus suivant :
- le premier démarrage sur une version spécifique du noyau (kernel) : speedboot est désactivé et le démarrage sera vérifié afin de voir si certaines conditions empêchent speedboot d'être activé
- le second démarrage sur la même version du noyau : si les conditions sont remplies, speedboot est activé et l'état est sauvegardé.
- si speedboot échoue, il sera testé une seconde fois (par exemple, si vous avrez un problème dkms, ou quelque chose de ressemblant) pour le prochain démarrage et soit il sera désactivé pour cette version du noyau (s'il échoue) ou réactivé.
- speedboot sera autodésactivé si l'authentification réseau est activé ou si le runlevel n'est pas 5
- pour désactiver ou forcer speedboot, vous pouvez changer celui par défaut dans /etc/sysconfig/speedboot ou faire un seul changement, en utilisant speedboot=yes/no/auto/probe sur la ligne de commande du noyau.
speedboot=probe est utilisé pour réinitialiser l'état pour une versionspécifique du noyau (et refaire la vérification) et devrait seulement être ajouté manuellement sur la ligne de commande du noyau.
l'état de speedboot est lisible dans /var/lib/speedboot/status
* OK : speedboot est activé * STANDARD BOOT : Le dernier boot a été un standard boot, le prochain utilisera speedboot * FAILED : X n'a pas pu démarrer avec le mode speedboot, speedboot est maintenant désactivé pour cette version du kernel. * FAILED (first time) : speedboot a échoué une fois, au prochain redémarrage, speedboot sera de nouveau testé et désactivé s'il échoue encore. Ceci est nécessaire pour prendre en compte le cas où un module DKMS ne serait pas encore reconstruit ou si le chipset graphique a changé. * DISABLED : Le sytème ne suppporte pas speedboot. La raison est donnée sur la ligne du status.
Les seules choses manquantes dans speedboot sont :
- le test de la vitesse du disque à activer ou non en lecture (readahead) (il est toujours activé mais ralentira les choses sur des disques durs lents).
- optimiser la répartition de la lecture (readahead "split") entre la première et la seconde phase et peut-être forcer la collecte de la lecture (readahead collection) quand speedboot a été réactivé.
Bien sûr, nous aimerions collecter le plus de données possibles avec bootchart, un ensemble de données lorsque speedboot est activé et quand il ne l'est pas.
(fr) Utiliser Bootchart
(en) Bootchart howto
Si speedboot échoue sur votre système, nous sommes aussi intéressés, aussi merci de rapporter le bogue concernant initscripts et d'attacher l'ensemble des graphiques de bootchart avec et sans speedboot activé.

