Je zal maar een eigen server hebben…. Eentje die dienst doet als webserver, mailserver en tegelijk fileserver. En je zal maar ‘tich’ jaar IT ervaring hebben. Dan weet je namelijk dat wanneer er iets engs met je server gebeurt, je meteen niks meer hebt! De gedachte alleen al maakt me angstig……
Hij staat al een paar jaar in de kast: m’n Linux OpenSuse PC. Een prima werkende PC die dienst doet als web-, mail-, en fileserver. Doordat ‘ie in de kast staat is hij dicht in de buurt van de TV. En ja hoor, middels een VGA kabel krijgt ook het plasma scherm de mooiste beelden door van de PC. En de surround set is ook blij want als iemand via Youtube een leuk filmpje afspeelt is het geluid via de surround set te horen en via de TV te zien. Tegelijkertijd host hij dus de websites van mij en m’n dochter, en stuurt hij vrolijk e-mails rond als daar een reden toe is. Eén keer in de 6 maanden haal ik mijn grote vriend uit de kast, maak hem open en blaas z’n ingewanden schoon met perslucht.
Iedere keer verbaas ik me er weer over wat een berg met stof er toch altijd in zit. Het is maar goed dat ik deze schoonmaakbeurt regelmatig uitvoer, want ik krijg wel eens PC’s ter reparatie aangeboden waarbij de koelribben ernstig dicht zitten, en daardoor de processor alle dienst weigert. Meestal een gevalletje ‘jammer, maar helaas’.
Maar dat is niet hetgeen waar ik me druk over kan maken. Ik heb meer een naar gevoel als ik er aan denk dat er iets van hardware kapot zal gaan: een krakende en tikkende harddisk, defecte geheugenmodules, of zelfs het complete moederbord dat er mee ophoudt. En dan heb ik het nog niet eens over mogelijke software problemen waar je mee te maken kan krijgen en waardoor de server ophoudt te bestaan.
Des temeer reden om een reserve PC te bouwen. Van de buurman heb ik een aantal Intel Core2Duo processoren gekregen en die voldoen ruim aan de standaard voor een backup-server. Moederbordje gekocht voor €30,=, 4GB (2 x 2GB) geheugen, een oude kompjoeterkast (is echt een oude kast want vroegâh schreef je computer nog met een k- en dan ompjoeter) van de zolder afgehaald en inbouwen maar….
Daarna begint het echte werk. Een image maken van de produktieserver. Dat gaat in Linux erg gemakkelijk met het commando dd. Geen gerommel met (illegale) image software, nee gewoon dd. Aangezien ik qua grootte twee identieke harddisks in de backupserver had gepropt, één HD van de produktieserver en een lege, is het commando: dd if=/dev/sda of=/dev/sdb (uiteraard heb ik eerst met fdisk -l gekeken welke van de twee schijven er sda is en welke sdb). Het zal je maar gebeuren dat je het per ongeluk omwisselt en dan je originele ‘produktie schijf’ overschrijft met een lege…….
Nadat je twee identieke schijven hebt, prop je de schijf uit de produktieserver weer gauw terug zodat je weer een werkende server hebt, en begin je aan het opstarten van de backupserver.
Nu blijkt dat OpenSuse bij een standaard installatie tijdens booten gebruik te maken van ‘disk by-id’. Heel kort door de bocht betekent dit dat GRUB (de bootmanager) op zoek gaat naar het ID van de harde schijf waarop OpenSuse is geïnstalleerd. In het geval van /dev/sda zou dit kunnen zijn ‘ata-Hitachi_HDP725050GLA380_GEK530RE21R06E’. Normaal gesproken is dit geen probleem, ware het niet dat de kopie harddisk, de image van het origineel, helemaal geen Hitachi schijf is! OpenSuse begint dus een zoektocht naar de originele harddisk en kan die uiteraard in de backupserver helemaal niet vinden. Beter is het om disk by-uuid te gebruiken. Elke partitie krijgt tijdens de installatie een nummer, het zgn uuid. Dit nummer verandert niet wanneer er een image van de disk wordt gemaakt. Opstarten is dan dus geen probleem en de schijf kan moeiteloos overgezet worden in een andere PC. Maar…. dan moeten er in Linux wel een aantal commando’s worden ingevoerd anders zal het nooit werken. Ik ga er even van uit dat de nieuwe schijf /dev/sda is. Start de PC op vanaf DVD (bijv live CD van je Linux distro) met je nieuwe harde schijf erin.
- mkdir /mnt/sda2
- mount /dev/sda2 /mnt/sda2
- mount –bind /dev /mnt/sda2/dev
- mount –bind /sys /mnt/sda2/sys
- mount –bind /proc /mnt/sda2/proc
- chroot /mnt/sda2
- mkinitrd