Suche
Suche Menü

Projekt NAS Eigenbau – Teil 2: Aufbau, Systeminstallation und Datenmigration

Im vorhergehenden Teil dieser Artikelreihe hab ich euch mein Leid mit dem alten NAS geklagt und auch was das neue System wird – bzw geworden ist. Anlass, Vorüberlegungen und Hardware gabs im letzten Teil – diesmal gehts um den Aufbau, die Systeminstallation und die Datenmigration. 

Das hier soll übrigens keine Schritt für Schritt Anleitung werden und auch erhebt sie keine Anspruch auf Vollständigkeit. Vielmehr gehts hier im meinen Weg von einer „fertigen“ Buffalo LinkStation LS-WXL zu einem feinen Eigenbau NAS – inklusive dem einen oder anderen Stolperstein.

Der Aufbau

Ihr denkt jetzt nicht wirklich, dass ich hier nun drauf eingehen, wie ich den ganzen Krempel aus den Kartons befreit und zusammengefummelt hab, oder? Meeeep!

Viel interessanter mag sicher sein, wie ich das System von der Struktur, bzw. den Platten her aufgebaut habe. Bereits bei den Vorüberlegungen war klar, dass die beiden alten Platten komplett und eigenständig als Raid 1 Verbund für die Daten da sind. Eine separate 64GB SSD als Systemplatte tut ihr übriges.

Die Partitionierung? Klassisch – Noobhaft. Eine swap und eine ext4 Partition als root auf die SSD, jeweils eine Raid Autodetect (0xfd) über die komplette Größe auf die Datenplatten und diese dann zu einem Raid 1 (Spiegelung) zusammengefasst und als ext4 formatiert. Eine weitere Aufteilung der Systemplatte hab ich als überflüssig erachtet, da es weder ein Desktop- noch ein Multiusersystem werden soll.

Das System selbst? Linux, klar. Debian, Ubuntu, Arch standen bei mir in der engeren Wahl. Den Zuschlag hat letztenendes Debian Wheezy bekommen. Stabil, einfach, passt! Fertsch! Zumindest von der Planung her.

Die Installation

Da das System keinerlei optische Laufwerke drin hat (wozu auch), erfolgte die Systeminstallation via USB-Stick. Genauer gesagt hab ich zunächst das Debian NetInst Image via UNetbootin auf den Stick gedübelt und das System damit gebootet. Standart. Doof wurds nur, als das Installationssystem das Netzwerkinterface zwar erkannt hat, aber nach Firmware quakte. Glücklicherweise gibt inoffizielle Images die die non-free Firmware bereits mit an Bord haben. Damit klappte es dann auch mit dem Nachbarn der Installation.

Damit das frische System auch direkt beim Boot schon mit Raid Verbunden umgehen kann, muss man auch gleich die /etc/initramfs-tools/modules bearbeiten und die folgenden zwei Zeilen einfügen:

1
2
3
4
5
6
7
8
9
10
11
12
13
# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
md
raid1

Abschließend als root update-initramfs ausführen – fertsch!

Wer nun mag kann auch gern noch die /etc/fstab „auf alt“ zurückdrehen. Diese Sache mit den UUIDs der Platten war mir seit ihrer Einführung suspekt und bisher konnte mir auch noch niemand eine triftigen Grund liefern, diese zu nutzen. Bis das soweit ist, nehm ich lieber die altbekannte /dev/sd* Schreibweise. Netterweise fusselt Debian bei der generierung der /etc/fstab die alten Namen in die Kommentare – das „umbauen“ wird also recht easy. Meine fstab sieht aktuell wieder so aus:

1
2
3
4
5
6
7
8
9
10
11
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/sda1       /               ext4    noatime,errors=remount-ro 0       1
/dev/sda5       none            swap    sw              0       0
# RAID VERBUND
/dev/md0        /mnt/raid       ext4    defaults        0       2

Ich denke ihr seht die Änderungen. Zusätzlich hab ich noch der root Partition (die ja auf einer SSD liegt) ein noatime mit auf den Weg gegeben um die Schreib-/Lesezugriffe auf die SSD etwas zu minimieren.

Das wars dann auch schon an grundlegenden Maßnahmen zur Systeminstallation und Ersteinrichtung. Details zu den einzelnen Diensten gibts im dritten Teil dieser Artikelreihe. In diesem Part fehlt eigentlich nur noch die …

Datenmigration

Wohlwahrlich ein hochtrabendes Wort dafür, ein paar Daten von einer alten Platte auf die selbe alte Platte zu kopieren – nur etwas anders arrangiert. Zur Erlärung: Das alte NAS hat die Platten zwar auch in einem Raid 1 betrieben, hat die Platten aber auch in 7 oder 8 Partitionen unterteilt – wofür auch immer. Eben jenes Partitionsgefuzzel wollte ich ungern in das neue System übernehmen. Es galt also die Platten neu zu Partitionieren – und das möglichst ohne Datenverlust. Schon praktisch, dass ja auf beiden Platten die selben Daten liegen :-D

Zunächst hab ich mir also über parted eine der alten Platten (sdb in diesem Fall) mal angeschaut um die eigentliche Datenpartition zu finden und hab diese dann als Single-Drive Raid eingebunden:

mdadm -A -R /dev/md9 /dev/sdb6

Anschließend mal schnell einen Hilfsmountpoint und den späteren wirklichen Mountpoint erstellt und das eben eingebundene Array entsprechend gemountet:

cd \
mkdir sdb
mkdir /mnt/raid
mount /dev/md9 sdb

Nach einem Blick in die alten Daten (wirklich die richtige Partition erwischt?) konnt ich mich dann der zweiten Platte (sdc) widmen und diese neu partitionieren. Eine primäre Partition (sdc1) – Linux Raid Autodetect als Partitionstyp (0xfd).  That’s all. Anschließend kann aus der neu partitionierten Platte dann auch gleich schon der erste Teil des neuen Raids gemacht werden:

mdadm --create /dev/md0 --level 1 --raid-devices=2 missing /dev/sdc1

Anschließend das Raid Device noch formatieren und mounten:

mkfs.ext4 /dev/md0
mount /dev/md0 /mnt/raid

Jetzt kann das große Kopieren von der alten sdb aufs neue /mnt/raid beginnen. Sobald das durch ist, kann das alte Raid wieder unmounted und gestoppt werden:

umount /dev/md9
mdadm --stop md9

Jetzt noch sdb genau wie sdc vorhin partitionieren und dem bestehenden Array hinzufügen:

mdadm --add /dev/md0 /dev/sdb1

Nun synchronisiert sich das Array – der Fortschritt kann via cat /proc/mdstat verfolgt werden. Abschließend sollte auch noch eine nun passende mdadm.conf generiert werden:

/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf

Nun fehlt nur noch die passende Zeile in der /etc/fstab damit das Array auch beim Start gleich gemounted wird:

/dev/md0     /mnt/raid     ext4     defaults     0     2

Fertsch! Alle Daten noch da und das System bootet wie es soll.

Nun fehlt nur noch noch die Kür: Spielereien, Optimierungen und sonstiges Geraffel was auf keinem NAS / Homeserver fehlen sollte :-) Das gibts dann wohl im nächsten Teil dieser Mehrteiligen Artikelreihe. Dort dreht es sich dann um Dienste, Stromsparmaßnahmen und mein Fazit zu der ganzen Aktion
Andere Artikel dieser Reihe:
– Projekt NAS Eigenbau – Teil 1: Anlass, Vorüberlegungen und Hardware
– Projekt NAS Eigenbau – Teil 2: Aufbau, Systeminstallation und Datenmigration (diese Seite)
Projekt NAS Eigenbau – Teil 3: Dienste, Stromsparmaßnahmen und Fazit
Tweet about this on TwitterShare on FacebookShare on Google+Email this to someone

Autor:

Ich bin Andi, 34 Jahre jung, glücklicher Papa, Freizeit-Blogger, Pixelfänger und Pixelschubser. Ich hoffe der Artikel hat Dir gefallen. Über ein Feedback würd ich mich freuen :-) Du findest mich ausserdem bei Facebook, Twitter und Google+.

2 Kommentare Schreibe einen Kommentar

  1. Pingback: Projekt NAS Eigenbau – Teil 1: Anlass, Vorüberlegungen und Hardware › akaul.de

  2. Pingback: Projekt NAS Eigenbau – Teil 3: Dienste, Stromsparmaßnahmen und Fazit › akaul.de

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.