Changes between Initial Version and Version 1 of SynBoot


Ignore:
Timestamp:
08/08/08 00:10:41 (16 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SynBoot

    v1 v1  
     1= Syn-3 startup procedure =
     2
     3Hieronder vind je de gehele bootprodecure, van begin tot eind op volgorde. Bekijk dit ware stuk Linux kunst dus goed, voordat je wijzigingen gaat maken! ;)
     4
     5== Boot loader ==
     6
     7Tegenwoordig gebruiken we grub als bootloader (vroeger lilo). Grub word geinstalleerd op de MBR van alle schijven die onderdeel zijn van de RAID1 boot array. (/dev/md0) Het installeren gebeurt automatisch door middel van source:trunk/npl/system/grub/syn3-grubinstall .
     8
     9Afhankelijk van het geselecteerde product type zal dit menu er anders uit zien. (zie SynProducts)
     10
     11Men heeft keuze uit 3 opstart mogelijkheden:
     12
     13 * Normal: Gebruikt bij iedere normale reboot
     14 * Test: Boot de nieuwst geinstalleerde kernel+initrd. Nadat deze geboot is moet de gebruik bevestigen dat deze goed werkt. Hierna worden deze kernel+initrd gekopieerd naar Normal.
     15 * Safe mode: Boot de kernel die na de eerste originele installatie op het systeem gezet was. Dit moet eigenlijk veranderd worden: Sommige systemen bevatten nog een 2.4 kernel en deze zal niet meer booten in de nieuwe 2.6 situatie van tegenwoordig.
     16
     17== InitRD ==
     18
     19Het eerste wat de kernel uitvoert is de init ramdisk. Deze ramdisk heeft als taak er voor te zorgen dat het root filesystem gestart kan worden. Deze procedure bestaat uit zeer veel stappen, omdat we willen dat Syn-3 altijd boot op alle machines en onder zoveel mogelijk situaties.
     20Deze procedure vind je in source:trunk/npl/kernel/initrd/linuxrc :
     21
     22=== Splash screen ===
     23
     24Bepaal of de user een splashscreen wil (aan de hand van kernel parameters) en laadt de juiste framebuffer driver in. De kernel is gepatched met fbsplash, dus zodra we een framebuffer driver inladen zal het splashscreen actief worden. fbsplash kijkt naar de kernel paramters welk screen nodig is, dus zo krijgen we onze Product Types. (SynProducts)
     25
     26=== Debug mode ===
     27
     28Als men het woord ''debug'' toevoegd aan de kernel commandline zal het systeem bij iedere stap naar een shell gaan.
     29
     30=== Inladen kernel modules ===
     31
     32Hierna worden alle nodige kernel modules ingeladen. Dit zijn in elk geval de drivers voor SCSI/SATA/IDE controllers en netwerk kaarten. (ivm redundancy).
     33Het detecteren van de juiste modules gaat door modprobe de juiste module te laten zoeken bij de inhoud van alle modalias files in /sys.
     34Verder worden er nog wat losse modules geladen, die je vind in source:trunk/npl/kernel/initrd/modules. (niet al deze files zijn in gebruik, check het script)
     35
     36=== Installer starten? ===
     37
     38Hierna word gekeken of men de installer wil aanroepen (ook kernel commandline parameter.) Indien dit het geval is zie dan SynInstaller.
     39
     40Nadat deze terug keert gaat het booten gewoon verder.
     41
     42=== Software RAID activatie ===
     43
     44Het software RAID systeem word geactiveerd door mdadm de raid devices te laten detecteren.
     45
     46Er zijn 2 raid arrays: md0 (kernel + initrd, gewoon RAID 1) en md1 (rest van het systeem, opgedeeld via LVM, RAID1 of RAID5)
     47
     48''''Dit detecteren gaat nu nog mis als er nog andere software raid systemen aanwezig zijn! ''''
     49
     50=== LVM activatie ===
     51
     52Als raid goed gegaan is laten we de lvm utils domweg alle gevonden LVM volume groups activeren.
     53
     54
     55=== Redundancy via DRBD ===
     56
     57Omdat de redundancy configuratie dynamisch is moeten we een config file inladen die in /boot (/dev/md0) staat. (drbd.conf)
     58We mogen /dev/md0 echter ''''niet'''' wijzigen, omdat dit voor corruptie zorgt als men redundancy zou gebruiken. Om deze reden mounten we het systeem met mount -oro,norecovery. Zo kunnen we de file toch inlezen, zonder het filesystem aan te passen.
     59
     60Indien DRBD actief is word source:trunk/npl/kernel/initrd/drbd.boot aangeroepen. Zie SynRedundancy voor een beschrijving van deze prodecure. Deze functie keert pas terug zodra de node actief (master) geworden is. (Dit kan dus 'oneindig' lang duren als de andere node al master is.)
     61
     62Er worden symlinks aangemaakt naar de juiste devices voor /dev/home, /dev/root, /dev/boot en /dev/swap.
     63
     64Of er nou wel of geen redundancy actief is - de boot procedure kan vanaf nu onveranderd verder gaan zonder dat men rekening hoeft te houden met redundancy.
     65
     66
     67=== Filesystem check en reparatie ===
     68
     69Theoretisch hoeft XFS nooit gerepaired te worden, doordat het journalling heeft, maar het komt toch wel eens voor. Vandaar dat we altijd een check en eventuele repair moeten doen.
     70
     71
     72=== Start root filesystem ===
     73
     74
     75Nu kan /dev/root gemount worden en worden hier de symlinks /dev/home, /dev/root, /dev/boot en /dev/swap neer gezet.
     76
     77
     78Er word gepivot root en /sbin/init word gestart.
     79
     80
     81== Init scripts ==
     82
     83Syn-3 is gebouwd op een slackware 10 omgeving, zodat we een zo kaal mogelijk start punt hadden.
     84Inmiddels hebben we veel grote toevoegingen en wijzigingen gemaakt, maar een groot deel van de init is nog gelijk gebleven.
     85
     86Hier beschijven we globaal wat er gebeurd zodat je weet waar je je eigen dingen neer moet zetten.
     87
     88=== BSD / Slackware standaard boot ===
     89
     90Het eerste deel van de boot is voornamelijk standaard slackware zooi. Bepaalde scripts zijn echter aangepast, deze vind je in source:trunk/npl/syn3/syn3-scripts/etc .
     91
     92=== Netwerk setup ===
     93
     94Dit gebeurd door de SCC (SynControlCenter), vanuit /etc/rc.d/rc.inet1.
     95
     96Om de netwerk instellingen te kunnen customizen kan de gebruiker /etc/network/network.up aanmaken en executable maken. Nadat de SCC alles geconfigged heeft word dit script aangeroepen. Exit code 1 geven als er iets mis gaat, dan ziet de user dit ook terug. Dit script is standaard niet aanwezig, maar er staan wel een aantal voorbeeld scripts. (bijv network.up.loadbalancer)
     97
     98Een update mag network.up nooit aanpassen! Als je een 'vaste' wijziging aan het netwerk wilt maken moet je '''/etc/rc.d/rc.inet1'''  (source:trunk/npl/syn3/syn3-scripts/etc/rc.d/rc.inet1) aanpassen. (of de SCC)
     99
     100=== Firewall setup ===
     101
     102Om de firewall te kunnen customizen kan de gebruiker op dezelfde manier als hierboven de /etc/firewall/firewall.up aanpassen. Hier staan al wat voorbeelden in.
     103
     104Ook hier geldt dat een update dit script nooit mag aanpassen, en dat je aanpassingen in '''/etc/rc.d/rc.inet1''' moet doen. (of in de SCC)
     105
     106
     107=== Boot scripts van packages ===
     108
     109Vanuit rc.local word souce:trunk/npl/syn3/syn3-scripts/scripts/syn3-boot aangeroepen. Dit script zorgt ervoor dat alle executable scripts in /etc/boot.d worden aangeroepen.
     110
     111Plaats custom bootscripts die bij iedere boot moeten worden gestart dus in '''/etc/boot.d/'''. (let op de exit codes!)
     112
     113Ook de eindgebruiker word aanbevolen hier een file neer te zetten, in plaats van de rc.local aan te passen.
     114
     115=== Services (Daemontools) ===
     116
     117Alle netwerk services van Syn-3 draaien onder daemontools. Zie ook SynServices.
     118
     119/usr/bin/svscanboot word gestart via /etc/inittab, na rc.M. Zodra svscanboot draait worden alle actieve services parallel opgestart, zonder te wachten! Om deze reden word /usr/bin/svcbootcheck aangeroepen vanuit de inittab. Deze controleert of alle services de juiste status (up/down) hebben. (Zie SynServices)
     120
     121=== Post installatie van packages ===
     122
     123Als laatste stap in het bootprocess word /sbin/postinst.sh aangeroepen vanuit de inittab. Deze zorgt er voor dat alle post-installatie scripts in /etc/postinst.d '''eenmalig''' worden uitgevoerd. Zie SynPackaging.
     124
     125=== SCC ===
     126
     127Als laatste word /etc/rc.d/rc.apache_webint gestart vanuit de inittab. (Deze restart ook automatisch bij problemen) Dit script zorgt er voor dat de Syn-3 Control Center gestart word. Dit is voor de gebruiker tevens de indicatie dat het systeem gereed is om te gebruiken. Zie SynControlCenter.
     128
     129= Syn-3 shutdown procedure =
     130
     131Dit is allemaal vrij droog, gewoon de services af laten sluiten via inittab runlevels.
     132
     133== Shutdown scripts ==
     134
     135Speciale shutdown scripts (zoals bijvoorbeeld voor vservers) plaats je in '''/etc/shutdown.d'''. Dit werkt het zelfde als boot.d; syn3-shutdown word als eerste stap van het shutdown process aangeroepen. (alles draait op dat moment dus nog)
     136
     137== Correct-afgesloten-controle ==
     138
     139Als laatste stap voor het read-only mounten word de file .cleanshutdown aangemaakt op alle filesystems. Hieraan kan het systeem bij een volgende start zien dat alles de vorige keer netjes afgesloten was.
     140
     141
     142
     143
     144
     145