Heimserver mit Debian
Ein Heimserver ist ein vielseitiges Werkzeug, auf dem verschiedene Dienste im eigenen Zuhause gehostet werden können, von der Dateifreigabe über Medien- und Datenbankverwaltung bis hin zur Smarthome-Steuerung. Linux ist eine sehr gute Grundlage für einen solchen Server. In diesem Artikel geht es um die Grundeinrichtung eines Servers mit Debian, der dann als Basis für die zuvor genannten Aufgaben dient.
Angeblich kann man Debian installieren, indem man einige Körner auf die Entertaste legt und ein Huhn vor den Rechner setzt. Und tatsächlich erhält man meist ein lauffähiges System, wenn man schlicht jede Frage des Installers mit "Weiter" beantwortet. Ein paar Vorüberlegungen helfen jedoch, dass man lange Spaß am System hat und auch bei Hardwareausfällen keine Daten verliert.
Bestenfalls sollte ein Heimserver mind. zwei identische Laufwerke enthalten. Diese können dann während der Installation zu einem RAID1, einem einzigen, logischen Laufwerk zusammengefasst werden. Ein RAID1 speichert alle Daten gespiegelt. Wenn ein Laufwerk ausfällt, stehen die Daten weiterhin als Kopie auf dem anderen Laufwerk zur Verfügung. Das defekte Laufwerk kann dann einfach ersetzt werden.
Die hierfür nötigen Einstellungen werden im Debian Installer unter dem Menüpunkt Partition Disks
vorgenommen. Debian schlägt hier zunächst vor, eine geführte Partitionierung durchzuführen. An sich ist das eine sehr gute Option, allerdings bietet sie keine Einrichtung eines RAIDs an. Daher wählt man die Option Manual
. Im darauf folgenden Dialog werden die erkannten Datenträger des Servers aufgelistet.
Wählt man eines der Laufwerke aus und drückt Enter
wird man bei neuen Laufwerken zunächst gebeten eine Partitionstabelle anzulegen. Hier sollte als Typ gpt
gewählt werden. Dieser Vorgang wird für alle weiteren Laufwerke wiederholt. Ist dies erfolgt, wird unter den jeweiligen Laufwerken jeweils ein weiterer Eintrag Free Space
angezeigt.
Wählt man einen der FREE SPACE
Einträge aus, kann man eine neue primäre Partition erstellen. Hier sollte zunächst auf jedem Laufwerk eine etwa 512 MB große EFI System Partition
erzeugt werden (der Typ kann über die Option Use as
ausgewählt werden).
Die Partition sollte das Bootable flag
gesetzt haben. Die Auswahl kann dann mit Done setting up the partition
übernommen werden. Das Resultat ist ein weiterer Eintrag unterhalb des gewählten, physikalischen Laufwerks:
Wählt man den verbliebenen FREE SPACE
, können weitere Partitionen erzeugt werden. Wie man die weitere Aufteilung vornimmt, ist jeweils abhängig von den eigenen Wünschen und Vorstellungen. Ich würde zunächst auf jedem Laufwerk eine ca. 2-4 GB große primäre Partition erstellen. Bei Use as
wähle ich den Eintrag Physical volume for RAID
. Im Anschluss erzeuge ich eine weitere Partition bei der ich den kompletten, verbliebenen FREE SPACE
des Laufwerks nutze. Auch hier wähle ich bei Use as
den Eintrag Physical volume for RAID
.
Wichtig ist, dass alle Laufwerke die als RAID zusammengefasst werden sollen, gleich eingerichtet werden. Hierbei kann es passieren, dass auf einem (oder allen Laufwerken) ein kleiner Bereich am Anfang und Ende des Laufwerks weiterhin als FREE SPACE
angezeigt wird. Das ist nicht schlimm und kann ignoriert werden, selbst dann, wenn es nur auf einem der Laufwerke der Fall sein sollte:
Um fortzufahren wählen wir nun dein Eintrag Configure software RAID
. Meist dürfte hier nun noch eine Abfrage erscheinen, die nachfragt, ob wir unsere Partitionen wirklich wie oben beschrieben anlegen möchten. Das möchten wir natürlich. Im nächsten Schritt wählen wir Create MD device
und erzeugen ein solches als RAID1
. Wer vier Laufwerke im System hat, kann auch ein RAID10
verwenden, was neben der oben beschriebenen Spiegelung der Daten auch die Geschwindigkeit des Laufwerks erhöht.
Bei der Frage wie viele Laufwerke wir für das RAID nutzen möchten, geben wir immer genau die Zahl der zuvor konfigurierten Laufwerke an. Bei Number of spare devices for the RAID1 array
bleibt uns somit nichts anderes mehr übrig als 0
anzugeben.
Bei der nachfolgenden Auswahl der logischen Laufwerke, wählen wir zunächst unsere 2GB Partitionen aus:
Anschließend erzeugen wir ein weiteres MD device
und wählen unsere Partitionen mit dem verbliebenen FREE SPACE
. Für die EFI system partitions
erzeugen wir kein MD device
. Unsere Partitionstabelle sollte nun wie folgt aussehen:
Nun erzeugen wir unsere erste echte Partition, auf der wir dann auch tatsächlich später unsere Daten ablegen, hierzu erzeugen wir über den Eintrag #1 2.0 GB
unterhalb von RAID1 device #0
ein Dateisystem und wählen bei Use as
die Option ext2 File system
aus (ext3
oder ext4
ist auch ok). Unter Mount point
wählen wir die Option /boot - static files of the boot loader
:
Wie man von hier aus weitermacht, hängt sehr davon ab, wie man das System später nutzen möchte, und wie viel Wert man auf Komfort und den Schutz der Daten legt. Im einfachsten Fall wählt man einfach den #2
Eintrag unterhalb von RAID1 device #1
aus und erzeugt ein Ext4 file system
mit dem Mount point: / - the root file system
.
Wer seine Daten besser schützen möchte, kann hier auch unter Use as
den Eintrag physical volume for encryption
oder physical volume for LVM
auswählen. Ich würde hier zunächst encryption
wählen und im Partitionsmanager mit der Funktion Configure encrypted volume
fortfahren und dort /dev/md1
wählen. Das zu vergebene Kennwort sollte man sich gut merken, da man ohne dieses Kennwort nie wieder auf seine gespeicherten Daten zugreifen kann. Wichtig, das Kennwort muss bei jedem Bootvorgang unseres Servers manuell eingegeben werden, ansonsten startet der Server nicht. Die Eingabe muss direkt am Gerät erfolgen, der Server sollte also bestenfalls stets an einem Monitor und einer Tastatur angeschlossen sein (wir werden uns zu einem späteren Zeitpunkt aber auch noch anschauen, wie man die Eingabe über eine SSH-Verbindung vornehmen kann).
Ist das verschlüsselte Laufwerk soweit eingerichtet (bei neuen Laufwerken kann man das Löschen der Partition getrost überspringen/abbrechen), sollte unsere Konfiguration wie folgt aussehen:
Mit diesen Einstellungen könnte man die Einrichtung der Laufwerke beenden. Ich möchte jedoch LVM nutzen. LVM oder Logical volume manager
ermöglicht es mit dem verfügbaren Speicherplatz flexibler umgehen zu können. Außerdem kann LVM sog. Snapshots erzeugen, die z.B. während eines Backups sehr hilfreich sein können, da man mittels Snapshot sicherstellen kann, dass sich die zu sicherenden Daten während des Backupvorgangs nicht verändern. Gerade bei größeren Datenbanken ist dies sehr wichtig.
Um unser LVM einzurichten, wählen wir den Eintrag #1 ext4
unterhalb von Encrypted volume (md1_crypt)
und ändern den Use as
Eintrag von ext4
auf physical volume for LVM
. Zurück im Partitionsmanager wählen wir den Eintrag Configure the Logical Volume Manager
. Zunächst erzeugen wir eine Volume group
. Diese nennen wir einfach vg0
und wählen hierfür unser device
mit dem handlichen Namen /dev/mapper/md1_crypt
, also unser verschlüsseltes Laufwerk.
Anschließend wählen wir die Funktion Create logical volume
innerhalb unseres vg0
. Welche Volumes wir hier erzeugen ist komplett unseren Wünschen überlassen. Ich beginne hier einfach mal mit einem Swaplaufwerk und nenne das Volume daher swap
. Ich stelle dem Volume 8GB
Speicherplatz zur Verfügung. Ein weiteres logical volume
nenne ich root
und weise diesem 64GB
Speicher zu (hier könnte man z.B. auch die Eingabe 90% nutzen, um 90% des noch freien Speichers der Volume Group zuzuweisen). Wichtig ist, nicht den gesamten freien Speicher von vg0
zu verplanen, ansonsten können wir keine Snapshots mehr anlegen. Ist mein root
-Volume fertig konfiguriert beende ich die LVM Konfiguration und habe nun noch mehr Laufwerkseinträge im Partitionsmanager:
Ich wähle nun zunächst den Eintrag #1
unterhalb von LVM VG vg0, LV root
aus. Hier stelle ich unter Use as
den Wert Ext4 journaling file system
ein. Als Mount point
wähle ich / - the root file system
. Zurück im Partitionsmanager wähle ich den Eintrag #1
unterhalb von LVM VG vg0, LV swap
aus. Unter Use as
wähle ich Swap area
aus.
Unsere Partitionstabelle sollte nun wie folgt aussehen:
Endlich können wir Finish partitioning and write changes to disk
auswählen und mit der Installation von Debian fortfahren, bzw. das Huhn weiter seine Körner picken lassen.
Lasst euch von dem Partitionierungsvorgang nicht abschrecken, wie bereits erwähnt kann man auch direkt nach der Erzeugung des RAID Laufwerks damit beginnen sich eine Root- und Swappartition anzulegen, ganz ohne Crypto und LVM. Wer eh nur ein einzelnen Laufwerk in seinem Heimserver hat, kann auch die Guided - use entire disk
Optionen nutzen. Hier hat man dann ebenfalls die Wahl LVM und/oder LVM und Verschlüsselung zu nutzen und wird dann sehr komfortabel und einfach durch den Prozess geführt. Wer es manuell machen möchte/muss, keine Angst man kann hier nichts kaputt machen und den Vorgang beliebig oft wiederholen. Im schlimmsten Fall bootet der Server einfach nicht richtig, in diesem Fall startet man den Debian Installer einfach erneut und löscht alle Partitionen und versucht es noch einmal. Wichtig ist, gerade wenn man verschlüsselte Laufwerke nutzt eine unverschlüsselte /boot
Partition zu haben, denn irgendwoher muss der Server ja die Software laden, die zum Entschlüsseln der Festplatte benötigt wird. Das ist nur von einem unverschlüsselten Laufwerk möglich.