Ghetto of mijn nieuwe home-server

Posted by Sander van Kasteel on March 06, 2015 · 913 words, 6 mins read

Categories:

Eigenlijk was ik al een tijd toe aan een nieuwe home server want mijn Raspberry Pi was echt niet krachtig genoeg meer voor alle taken die ik hem toe bedeelde, dus was het tijd voor wat vervanging.

Laatst was ik even op visite bij wat familie en die hadden nog een Packard Bell iMedia S2110 machine staan die niet meer gebruikt werd. Leuk!

Packard Bell iMedia S2110 case

Packard Bell maakt met de iMedia serie wat ze zelf "lifestyle PC's" noemen. Over het algemeen zijn dit machine's die gebouwd rondom de AMD E en Intel Atom / Pentium processoren worden opgebouwd en het liefste zo klein mogelijk. Denk hierbij aan Micro-ATX / Mini-ITX moederborden en vooral low-power.

Leuke hardware voor een simpele low-power home server in plaats van hardware voor een desktop waar Windows 7 of 8 op moet draaien. Als home-server ga ik hem ook inrichten.

Omdat de hardware nu ongeveer 3 jaar oud is, heeft de case al wat "mishandeling" doorgemaakt, dus heb ik er voor gekozen om alleen het moederbord, RAM en de voeding te gebruiken uit deze machine. De benodigde opslag capaciteit wordt geleverd door een 2,5 inch SATA harde schijf van Seagate die ik toevallig nog had liggen.

IMG_7557

Als behuizing ga ik een Coolermaster Elite 430 gebruiken want die had ik nog staan. Het enige nadeel aan deze kast is dat hij geen ondersteuning heeft voor 2.5" harde schijven, dus daarvoor heb ik een 2,5" naar 3,5" bracket gebruikt.

IMG_7446

IMG_7559

De hardware specs zijn alsvolgt;

  • AMD E2-1800
  • 4 Gb RAM
  • ATI Radeon HD 7340
  • 160 Gb Seagate HDD

Het moederbord is oorspronkelijk gemaakt door Acer en heeft als typenummer D1F-AD meegekregen bij zijn geboorte.

IMG_7562

De ATI Radeon GPU zit ingebakken bij de processor, dus misschien dat ik daar in de toekomst ook nog wat leuks mee doen.

Het is de bedoeling dat de server de volgende taken gaat afhandelen;

  • HTTP server
  • PHP
  • MySQL
  • OpenVPN
  • En misschien MongoDB of een andere NoSQL database

Omdat het een normaal Micro-ATX moederbord is, past die prima in de Coolermaster kast.

IMG_7565

Het enige wat er niet helemaal in paste is de voeding, dus dat probleem heb ik met wat tieraps moeten oplossen. Dit komt omdat de 24 pins ATX ongeveer een lengte heeft van 15 cm, dus had ik op dit moment geen andere optie dan de voeding dicht bij de 24 pins ATX te plaatsen.

IMG_7572

En omdat de voeding op zo'n "ghetto" manier vast gemaakt was, heb ik wel even netjes het stroomsnoer vast gemaakt met tieraps

IMG_7577

IMG_7575

Want ik zou niet willen dat als er aan het stroomsnoer getrokken word, dat gelijk de voeding mee getrokken word. Met al gevolgen van dien.

Zoals je waarschijnlijk wel gemerkt hebt, is dit een redelijke "ghetto" job aan het worden. Vandaar dat ik deze server ook de naam "ghetto" heb meegegeven.

En na het bouwen mag dan eindelijk de installatie beginnen van "ghetto". Alleen deze keer heb ik er een time-lapse video van gemaakt.

Ik heb op dit moment Debian Jessie met NGINX, PHP 5.5 en MySQL 5.5 geïnstalleerd en het is de bedoeling dat "ghetto" buiten mijn PHP development server ook nog eens de backend gaat worden voor mijn toekomstige domotica project(en).

Ik heb gelijk even heel simpel backup shell scriptje geschreven voor het maken van backups. Het shell script word door cron elke nacht om 12 uur uitgevoerd. Het maakt een directory aan met de huidige datum volgens de ISO 8601 standaard, dus op 12 maart 2015 word er de volgende map aangemaakt "2015-03-12" en daarin komt 1 tar.bz2 bestand te staan met de naam "backup.2015-03-12.tar.bz2" waar de volledige harde schijf in gebackupt word met uitzondering van de directories /dev, /run, /media, /mnt, /sys en /proc want deze mappen worden dynamisch bij boot aangemaakt en gevuld. Dus heeft het niet zo heel erg veel nut om deze mee te backuppen. Maar voor dat deze backup file word aangemaakt word eerst "apt-get clean && apt-get autoclean" uitgevoerd om te zorgen dat de belachelijke hoeveelheid aan cache van APT / DPKG niet mee gebackupd word. Vervolgens word deze backup file geplaatst in /mnt/backup en in mijn geval is /mnt/backup via CIFS (aka SMB) gemount aan een directory op mijn NAS. De source van mijn backup script is hieronder te vinden.

#!/bin/sh
# Written by Sander van Kasteel
# Copyright 2015
# LICENSE: GNU/GPL version 2
DATE=$(date +"%F")
FILENAME="backup.$DATE.tar.bz2"
# Clean APT cache
apt-get clean &amp;&amp; apt-get autoclean<

mkdir /mnt/backup/$(date +"%F")

echo "Backing-up data, please wait"
tar cfj /mnt/backup/$DATE/$FILENAME / --exclude="/sys" --exclude="/tmp" --exclude="/dev" --exclude="/mnt" --exclude="/proc" --exclude="/media" --exclude="/run"

Het enige wat ik nog wil veranderen aan mijn backup script is dat die automatisch backups naar een "x" aantal dagen verwijderd. Maar dat is iets voor later, zodra ik genoeg backups gemaakt heb ;)